@vef-framework/components 1.0.5

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 (499) hide show
  1. package/README.md +27 -0
  2. package/dist/index.d.ts +65 -0
  3. package/dist/index.js +3 -0
  4. package/dist/internal/index.d.ts +1 -0
  5. package/dist/internal/index.js +3 -0
  6. package/dist/internal/utils.d.ts +9 -0
  7. package/dist/internal/utils.js +3 -0
  8. package/dist/vef-access-denied/access-denied-icon.d.ts +4 -0
  9. package/dist/vef-access-denied/access-denied-icon.js +3 -0
  10. package/dist/vef-access-denied/index.d.ts +5 -0
  11. package/dist/vef-access-denied/index.js +29 -0
  12. package/dist/vef-access-denied/props.d.ts +18 -0
  13. package/dist/vef-action-buttons/index.d.ts +6 -0
  14. package/dist/vef-action-buttons/index.js +3 -0
  15. package/dist/vef-action-buttons/props.d.ts +23 -0
  16. package/dist/vef-badge/index.d.ts +5 -0
  17. package/dist/vef-badge/index.js +3 -0
  18. package/dist/vef-badge/props.d.ts +28 -0
  19. package/dist/vef-bool/hooks/use-bool-instance.d.ts +6 -0
  20. package/dist/vef-bool/hooks/use-bool-instance.js +3 -0
  21. package/dist/vef-bool/index.d.ts +4 -0
  22. package/dist/vef-bool/index.js +3 -0
  23. package/dist/vef-bool/props.d.ts +63 -0
  24. package/dist/vef-button/components/base-button.d.ts +9 -0
  25. package/dist/vef-button/components/base-button.js +3 -0
  26. package/dist/vef-button/index.d.ts +4 -0
  27. package/dist/vef-button/index.js +3 -0
  28. package/dist/vef-button/props.d.ts +79 -0
  29. package/dist/vef-card/index.d.ts +5 -0
  30. package/dist/vef-card/index.js +3 -0
  31. package/dist/vef-card/props.d.ts +27 -0
  32. package/dist/vef-card-meta/index.d.ts +5 -0
  33. package/dist/vef-card-meta/index.js +3 -0
  34. package/dist/vef-card-meta/props.d.ts +7 -0
  35. package/dist/vef-checkbox/hooks/use-checkbox-instance.d.ts +11 -0
  36. package/dist/vef-checkbox/hooks/use-checkbox-instance.js +3 -0
  37. package/dist/vef-checkbox/hooks/use-data-options.d.ts +34 -0
  38. package/dist/vef-checkbox/hooks/use-data-options.js +3 -0
  39. package/dist/vef-checkbox/index.d.ts +6 -0
  40. package/dist/vef-checkbox/index.js +5 -0
  41. package/dist/vef-checkbox/props.d.ts +41 -0
  42. package/dist/vef-col/index.d.ts +5 -0
  43. package/dist/vef-col/index.js +3 -0
  44. package/dist/vef-col/props.d.ts +5 -0
  45. package/dist/vef-color-picker/index.d.ts +5 -0
  46. package/dist/vef-color-picker/index.js +3 -0
  47. package/dist/vef-color-picker/props.d.ts +28 -0
  48. package/dist/vef-compact/index.d.ts +5 -0
  49. package/dist/vef-compact/index.js +3 -0
  50. package/dist/vef-compact/props.d.ts +11 -0
  51. package/dist/vef-config-provider/fonts/din/bold.woff2.js +3 -0
  52. package/dist/vef-config-provider/fonts/din/regular.woff2.js +3 -0
  53. package/dist/vef-config-provider/hooks/use-ui-config.d.ts +46 -0
  54. package/dist/vef-config-provider/hooks/use-ui-config.js +3 -0
  55. package/dist/vef-config-provider/index.d.ts +5 -0
  56. package/dist/vef-config-provider/index.js +111 -0
  57. package/dist/vef-config-provider/props.d.ts +24 -0
  58. package/dist/vef-config-provider/reset-style.d.ts +4 -0
  59. package/dist/vef-config-provider/reset-style.js +257 -0
  60. package/dist/vef-config-provider/store.d.ts +12 -0
  61. package/dist/vef-config-provider/store.js +3 -0
  62. package/dist/vef-container/index.d.ts +5 -0
  63. package/dist/vef-container/index.js +3 -0
  64. package/dist/vef-container/props.d.ts +6 -0
  65. package/dist/vef-crud-page/components/crud-actions.d.ts +21 -0
  66. package/dist/vef-crud-page/components/crud-actions.js +3 -0
  67. package/dist/vef-crud-page/components/crud-filter.d.ts +31 -0
  68. package/dist/vef-crud-page/components/crud-filter.js +3 -0
  69. package/dist/vef-crud-page/components/crud-footer.d.ts +31 -0
  70. package/dist/vef-crud-page/components/crud-footer.js +9 -0
  71. package/dist/vef-crud-page/components/crud-form-modal.d.ts +18 -0
  72. package/dist/vef-crud-page/components/crud-form-modal.js +3 -0
  73. package/dist/vef-crud-page/components/crud-header.d.ts +32 -0
  74. package/dist/vef-crud-page/components/crud-header.js +3 -0
  75. package/dist/vef-crud-page/components/crud-table.d.ts +57 -0
  76. package/dist/vef-crud-page/components/crud-table.js +3 -0
  77. package/dist/vef-crud-page/hooks/use-action-buttons.d.ts +16 -0
  78. package/dist/vef-crud-page/hooks/use-action-buttons.js +3 -0
  79. package/dist/vef-crud-page/hooks/use-crud-context.d.ts +8 -0
  80. package/dist/vef-crud-page/hooks/use-crud-context.js +3 -0
  81. package/dist/vef-crud-page/hooks/use-crud-schema.d.ts +17 -0
  82. package/dist/vef-crud-page/hooks/use-crud-schema.js +3 -0
  83. package/dist/vef-crud-page/hooks/use-operation-buttons.d.ts +11 -0
  84. package/dist/vef-crud-page/hooks/use-operation-buttons.js +3 -0
  85. package/dist/vef-crud-page/index.d.ts +6 -0
  86. package/dist/vef-crud-page/index.js +3 -0
  87. package/dist/vef-crud-page/props.d.ts +84 -0
  88. package/dist/vef-crud-page/store.d.ts +119 -0
  89. package/dist/vef-crud-page/store.js +3 -0
  90. package/dist/vef-crud-page/types.d.ts +173 -0
  91. package/dist/vef-divider/index.d.ts +5 -0
  92. package/dist/vef-divider/index.js +3 -0
  93. package/dist/vef-divider/props.d.ts +25 -0
  94. package/dist/vef-drawer/components/action-button-wrapper.d.ts +14 -0
  95. package/dist/vef-drawer/components/action-button-wrapper.js +3 -0
  96. package/dist/vef-drawer/components/button-props.d.ts +15 -0
  97. package/dist/vef-drawer/components/button-props.js +2 -0
  98. package/dist/vef-drawer/components/cancel-action-button.d.ts +4 -0
  99. package/dist/vef-drawer/components/cancel-action-button.js +3 -0
  100. package/dist/vef-drawer/components/ok-action-button.d.ts +4 -0
  101. package/dist/vef-drawer/components/ok-action-button.js +3 -0
  102. package/dist/vef-drawer/context.d.ts +27 -0
  103. package/dist/vef-drawer/context.js +3 -0
  104. package/dist/vef-drawer/index.d.ts +5 -0
  105. package/dist/vef-drawer/index.js +10 -0
  106. package/dist/vef-drawer/props.d.ts +97 -0
  107. package/dist/vef-dropdown/index.d.ts +4 -0
  108. package/dist/vef-dropdown/index.js +3 -0
  109. package/dist/vef-dropdown/props.d.ts +68 -0
  110. package/dist/vef-empty/index.d.ts +5 -0
  111. package/dist/vef-empty/index.js +3 -0
  112. package/dist/vef-empty/props.d.ts +7 -0
  113. package/dist/vef-empty-placeholder/index.d.ts +5 -0
  114. package/dist/vef-empty-placeholder/index.js +7 -0
  115. package/dist/vef-empty-placeholder/props.d.ts +6 -0
  116. package/dist/vef-error/error-icon.d.ts +4 -0
  117. package/dist/vef-error/error-icon.js +3 -0
  118. package/dist/vef-error/index.d.ts +5 -0
  119. package/dist/vef-error/index.js +30 -0
  120. package/dist/vef-error/props.d.ts +18 -0
  121. package/dist/vef-filter/components/action-buttons.d.ts +3 -0
  122. package/dist/vef-filter/components/action-buttons.js +21 -0
  123. package/dist/vef-filter/components/advanced-filter.d.ts +13 -0
  124. package/dist/vef-filter/components/advanced-filter.js +11 -0
  125. package/dist/vef-filter/components/basic-filter.d.ts +14 -0
  126. package/dist/vef-filter/components/basic-filter.js +21 -0
  127. package/dist/vef-filter/components/fields/index.d.ts +9 -0
  128. package/dist/vef-filter/components/fields/index.js +3 -0
  129. package/dist/vef-filter/components/fields/input-number.d.ts +4 -0
  130. package/dist/vef-filter/components/fields/input-number.js +3 -0
  131. package/dist/vef-filter/components/fields/input.d.ts +4 -0
  132. package/dist/vef-filter/components/fields/input.js +3 -0
  133. package/dist/vef-filter/components/fields/props.d.ts +32 -0
  134. package/dist/vef-filter/components/filter-field.d.ts +4 -0
  135. package/dist/vef-filter/components/filter-field.js +3 -0
  136. package/dist/vef-filter/components/filter-item.d.ts +15 -0
  137. package/dist/vef-filter/components/filter-item.js +3 -0
  138. package/dist/vef-filter/event.d.ts +12 -0
  139. package/dist/vef-filter/event.js +3 -0
  140. package/dist/vef-filter/helper.d.ts +10 -0
  141. package/dist/vef-filter/helper.js +3 -0
  142. package/dist/vef-filter/hooks/use-action-handlers.d.ts +20 -0
  143. package/dist/vef-filter/hooks/use-action-handlers.js +3 -0
  144. package/dist/vef-filter/hooks/use-computed-values.d.ts +42 -0
  145. package/dist/vef-filter/hooks/use-computed-values.js +3 -0
  146. package/dist/vef-filter/hooks/use-filter-context.d.ts +8 -0
  147. package/dist/vef-filter/hooks/use-filter-context.js +3 -0
  148. package/dist/vef-filter/hooks/use-filter-initialization.d.ts +7 -0
  149. package/dist/vef-filter/hooks/use-filter-initialization.js +3 -0
  150. package/dist/vef-filter/hooks/use-filter-instance.d.ts +10 -0
  151. package/dist/vef-filter/hooks/use-filter-instance.js +3 -0
  152. package/dist/vef-filter/hooks/use-filter-items.d.ts +13 -0
  153. package/dist/vef-filter/hooks/use-filter-items.js +3 -0
  154. package/dist/vef-filter/hooks/use-filter-values-change.d.ts +11 -0
  155. package/dist/vef-filter/hooks/use-filter-values-change.js +3 -0
  156. package/dist/vef-filter/hooks/use-label-config.d.ts +14 -0
  157. package/dist/vef-filter/hooks/use-label-config.js +3 -0
  158. package/dist/vef-filter/index.d.ts +8 -0
  159. package/dist/vef-filter/index.js +10 -0
  160. package/dist/vef-filter/props.d.ts +106 -0
  161. package/dist/vef-filter/store.d.ts +77 -0
  162. package/dist/vef-filter/store.js +3 -0
  163. package/dist/vef-filter/types.d.ts +224 -0
  164. package/dist/vef-flex/index.d.ts +5 -0
  165. package/dist/vef-flex/index.js +3 -0
  166. package/dist/vef-flex/props.d.ts +12 -0
  167. package/dist/vef-float-button/index.d.ts +5 -0
  168. package/dist/vef-float-button/index.js +3 -0
  169. package/dist/vef-float-button/props.d.ts +26 -0
  170. package/dist/vef-float-button-group/index.d.ts +5 -0
  171. package/dist/vef-float-button-group/index.js +3 -0
  172. package/dist/vef-float-button-group/props.d.ts +11 -0
  173. package/dist/vef-form/components/fields/index.d.ts +10 -0
  174. package/dist/vef-form/components/fields/index.js +3 -0
  175. package/dist/vef-form/components/fields/input-number.d.ts +5 -0
  176. package/dist/vef-form/components/fields/input-number.js +3 -0
  177. package/dist/vef-form/components/fields/input.d.ts +5 -0
  178. package/dist/vef-form/components/fields/input.js +3 -0
  179. package/dist/vef-form/components/fields/props.d.ts +33 -0
  180. package/dist/vef-form/components/form-actions.d.ts +20 -0
  181. package/dist/vef-form/components/form-actions.js +5 -0
  182. package/dist/vef-form/components/form-content.d.ts +18 -0
  183. package/dist/vef-form/components/form-content.js +6 -0
  184. package/dist/vef-form/components/form-field.d.ts +5 -0
  185. package/dist/vef-form/components/form-field.js +3 -0
  186. package/dist/vef-form/components/form-group.d.ts +22 -0
  187. package/dist/vef-form/components/form-group.js +13 -0
  188. package/dist/vef-form/components/form-hidden-item.d.ts +14 -0
  189. package/dist/vef-form/components/form-hidden-item.js +3 -0
  190. package/dist/vef-form/components/form-item.d.ts +18 -0
  191. package/dist/vef-form/components/form-item.js +3 -0
  192. package/dist/vef-form/components/form-row.d.ts +26 -0
  193. package/dist/vef-form/components/form-row.js +3 -0
  194. package/dist/vef-form/event.d.ts +15 -0
  195. package/dist/vef-form/event.js +3 -0
  196. package/dist/vef-form/helper.d.ts +11 -0
  197. package/dist/vef-form/helper.js +3 -0
  198. package/dist/vef-form/hooks/use-action-handlers.d.ts +14 -0
  199. package/dist/vef-form/hooks/use-action-handlers.js +3 -0
  200. package/dist/vef-form/hooks/use-columns-layout.d.ts +12 -0
  201. package/dist/vef-form/hooks/use-columns-layout.js +3 -0
  202. package/dist/vef-form/hooks/use-computed-values.d.ts +42 -0
  203. package/dist/vef-form/hooks/use-computed-values.js +3 -0
  204. package/dist/vef-form/hooks/use-form-context.d.ts +6 -0
  205. package/dist/vef-form/hooks/use-form-context.js +3 -0
  206. package/dist/vef-form/hooks/use-form-initialization.d.ts +14 -0
  207. package/dist/vef-form/hooks/use-form-initialization.js +3 -0
  208. package/dist/vef-form/hooks/use-form-instance.d.ts +10 -0
  209. package/dist/vef-form/hooks/use-form-instance.js +3 -0
  210. package/dist/vef-form/hooks/use-form-values-change.d.ts +11 -0
  211. package/dist/vef-form/hooks/use-form-values-change.js +3 -0
  212. package/dist/vef-form/hooks/use-label-width.d.ts +9 -0
  213. package/dist/vef-form/hooks/use-label-width.js +3 -0
  214. package/dist/vef-form/index.d.ts +8 -0
  215. package/dist/vef-form/index.js +5 -0
  216. package/dist/vef-form/props.d.ts +158 -0
  217. package/dist/vef-form/store.d.ts +89 -0
  218. package/dist/vef-form/store.js +3 -0
  219. package/dist/vef-form/types.d.ts +335 -0
  220. package/dist/vef-form/validation-rules.d.ts +175 -0
  221. package/dist/vef-form/validation-rules.js +3 -0
  222. package/dist/vef-form-drawer/index.d.ts +9 -0
  223. package/dist/vef-form-drawer/index.js +3 -0
  224. package/dist/vef-form-drawer/props.d.ts +17 -0
  225. package/dist/vef-form-modal/index.d.ts +9 -0
  226. package/dist/vef-form-modal/index.js +3 -0
  227. package/dist/vef-form-modal/props.d.ts +20 -0
  228. package/dist/vef-grid/index.d.ts +5 -0
  229. package/dist/vef-grid/index.js +14 -0
  230. package/dist/vef-grid/props.d.ts +25 -0
  231. package/dist/vef-grid/props.js +3 -0
  232. package/dist/vef-grid-item/index.d.ts +5 -0
  233. package/dist/vef-grid-item/index.js +3 -0
  234. package/dist/vef-grid-item/props.d.ts +34 -0
  235. package/dist/vef-icon/index.d.ts +4 -0
  236. package/dist/vef-icon/index.js +3 -0
  237. package/dist/vef-icon/props.d.ts +12 -0
  238. package/dist/vef-input/hooks/use-input-instance.d.ts +12 -0
  239. package/dist/vef-input/hooks/use-input-instance.js +3 -0
  240. package/dist/vef-input/index.d.ts +4 -0
  241. package/dist/vef-input/index.js +3 -0
  242. package/dist/vef-input/props.d.ts +67 -0
  243. package/dist/vef-input-number/hooks/use-input-number-instance.d.ts +12 -0
  244. package/dist/vef-input-number/hooks/use-input-number-instance.js +3 -0
  245. package/dist/vef-input-number/index.d.ts +4 -0
  246. package/dist/vef-input-number/index.js +3 -0
  247. package/dist/vef-input-number/props.d.ts +124 -0
  248. package/dist/vef-loading-placeholder/index.d.ts +5 -0
  249. package/dist/vef-loading-placeholder/index.js +7 -0
  250. package/dist/vef-loading-placeholder/props.d.ts +6 -0
  251. package/dist/vef-login/index.d.ts +5 -0
  252. package/dist/vef-login/index.js +53 -0
  253. package/dist/vef-login/login-icon.d.ts +4 -0
  254. package/dist/vef-login/login-icon.js +3 -0
  255. package/dist/vef-login/props.d.ts +57 -0
  256. package/dist/vef-modal/components/action-button-wrapper.d.ts +14 -0
  257. package/dist/vef-modal/components/action-button-wrapper.js +3 -0
  258. package/dist/vef-modal/components/button-props.d.ts +15 -0
  259. package/dist/vef-modal/components/button-props.js +2 -0
  260. package/dist/vef-modal/components/cancel-action-button.d.ts +4 -0
  261. package/dist/vef-modal/components/cancel-action-button.js +3 -0
  262. package/dist/vef-modal/components/ok-action-button.d.ts +4 -0
  263. package/dist/vef-modal/components/ok-action-button.js +3 -0
  264. package/dist/vef-modal/context.d.ts +27 -0
  265. package/dist/vef-modal/context.js +3 -0
  266. package/dist/vef-modal/index.d.ts +5 -0
  267. package/dist/vef-modal/index.js +6 -0
  268. package/dist/vef-modal/props.d.ts +88 -0
  269. package/dist/vef-not-found/index.d.ts +5 -0
  270. package/dist/vef-not-found/index.js +30 -0
  271. package/dist/vef-not-found/not-found-icon.d.ts +4 -0
  272. package/dist/vef-not-found/not-found-icon.js +3 -0
  273. package/dist/vef-not-found/props.d.ts +18 -0
  274. package/dist/vef-page/index.d.ts +5 -0
  275. package/dist/vef-page/index.js +59 -0
  276. package/dist/vef-page/props.d.ts +29 -0
  277. package/dist/vef-pagination/index.d.ts +4 -0
  278. package/dist/vef-pagination/index.js +3 -0
  279. package/dist/vef-pagination/props.d.ts +59 -0
  280. package/dist/vef-pagination/props.js +3 -0
  281. package/dist/vef-paragraph/index.d.ts +5 -0
  282. package/dist/vef-paragraph/index.js +3 -0
  283. package/dist/vef-paragraph/props.d.ts +55 -0
  284. package/dist/vef-password/hooks/use-password-instance.d.ts +13 -0
  285. package/dist/vef-password/hooks/use-password-instance.js +3 -0
  286. package/dist/vef-password/index.d.ts +4 -0
  287. package/dist/vef-password/index.js +3 -0
  288. package/dist/vef-password/props.d.ts +58 -0
  289. package/dist/vef-popconfirm/index.d.ts +5 -0
  290. package/dist/vef-popconfirm/index.js +3 -0
  291. package/dist/vef-popconfirm/props.d.ts +33 -0
  292. package/dist/vef-popover/index.d.ts +5 -0
  293. package/dist/vef-popover/index.js +3 -0
  294. package/dist/vef-popover/props.d.ts +29 -0
  295. package/dist/vef-radio/hooks/use-data-options.d.ts +35 -0
  296. package/dist/vef-radio/hooks/use-data-options.js +3 -0
  297. package/dist/vef-radio/hooks/use-radio-instance.d.ts +11 -0
  298. package/dist/vef-radio/hooks/use-radio-instance.js +3 -0
  299. package/dist/vef-radio/index.d.ts +7 -0
  300. package/dist/vef-radio/index.js +5 -0
  301. package/dist/vef-radio/props.d.ts +59 -0
  302. package/dist/vef-rate/hooks/use-rate-instance.d.ts +12 -0
  303. package/dist/vef-rate/hooks/use-rate-instance.js +3 -0
  304. package/dist/vef-rate/index.d.ts +4 -0
  305. package/dist/vef-rate/index.js +3 -0
  306. package/dist/vef-rate/props.d.ts +25 -0
  307. package/dist/vef-responsive-container/index.d.ts +4 -0
  308. package/dist/vef-responsive-container/index.js +7 -0
  309. package/dist/vef-responsive-container/props.d.ts +21 -0
  310. package/dist/vef-responsive-item/index.d.ts +4 -0
  311. package/dist/vef-responsive-item/index.js +5 -0
  312. package/dist/vef-responsive-item/props.d.ts +12 -0
  313. package/dist/vef-ribbon/index.d.ts +5 -0
  314. package/dist/vef-ribbon/index.js +3 -0
  315. package/dist/vef-ribbon/props.d.ts +15 -0
  316. package/dist/vef-row/index.d.ts +5 -0
  317. package/dist/vef-row/index.js +3 -0
  318. package/dist/vef-row/props.d.ts +7 -0
  319. package/dist/vef-scroll-area/components/scrollbar.d.ts +2 -0
  320. package/dist/vef-scroll-area/components/scrollbar.js +34 -0
  321. package/dist/vef-scroll-area/index.d.ts +4 -0
  322. package/dist/vef-scroll-area/index.js +10 -0
  323. package/dist/vef-scroll-area/props.d.ts +24 -0
  324. package/dist/vef-select/components/option.d.ts +7 -0
  325. package/dist/vef-select/components/option.js +11 -0
  326. package/dist/vef-select/hooks/use-data-options.d.ts +37 -0
  327. package/dist/vef-select/hooks/use-data-options.js +3 -0
  328. package/dist/vef-select/hooks/use-field-names.d.ts +9 -0
  329. package/dist/vef-select/hooks/use-field-names.js +3 -0
  330. package/dist/vef-select/hooks/use-label-render.d.ts +11 -0
  331. package/dist/vef-select/hooks/use-label-render.js +10 -0
  332. package/dist/vef-select/hooks/use-option-render.d.ts +11 -0
  333. package/dist/vef-select/hooks/use-option-render.js +3 -0
  334. package/dist/vef-select/hooks/use-select-instance.d.ts +11 -0
  335. package/dist/vef-select/hooks/use-select-instance.js +3 -0
  336. package/dist/vef-select/index.d.ts +7 -0
  337. package/dist/vef-select/index.js +3 -0
  338. package/dist/vef-select/props.d.ts +153 -0
  339. package/dist/vef-slider/hooks/use-slider-instance.d.ts +12 -0
  340. package/dist/vef-slider/hooks/use-slider-instance.js +3 -0
  341. package/dist/vef-slider/index.d.ts +4 -0
  342. package/dist/vef-slider/index.js +3 -0
  343. package/dist/vef-slider/props.d.ts +72 -0
  344. package/dist/vef-sortable-list/components/overlay-item.d.ts +9 -0
  345. package/dist/vef-sortable-list/components/overlay-item.js +7 -0
  346. package/dist/vef-sortable-list/components/sortable-item.d.ts +21 -0
  347. package/dist/vef-sortable-list/components/sortable-item.js +7 -0
  348. package/dist/vef-sortable-list/hooks/use-merged-items.d.ts +10 -0
  349. package/dist/vef-sortable-list/hooks/use-merged-items.js +3 -0
  350. package/dist/vef-sortable-list/index.d.ts +7 -0
  351. package/dist/vef-sortable-list/index.js +3 -0
  352. package/dist/vef-sortable-list/props.d.ts +77 -0
  353. package/dist/vef-space/index.d.ts +5 -0
  354. package/dist/vef-space/index.js +3 -0
  355. package/dist/vef-space/props.d.ts +12 -0
  356. package/dist/vef-spin/index.d.ts +5 -0
  357. package/dist/vef-spin/index.js +3 -0
  358. package/dist/vef-spin/props.d.ts +12 -0
  359. package/dist/vef-splitter/index.d.ts +5 -0
  360. package/dist/vef-splitter/index.js +3 -0
  361. package/dist/vef-splitter/props.d.ts +16 -0
  362. package/dist/vef-splitter-panel/index.d.ts +5 -0
  363. package/dist/vef-splitter-panel/index.js +3 -0
  364. package/dist/vef-splitter-panel/props.d.ts +6 -0
  365. package/dist/vef-status/index.d.ts +5 -0
  366. package/dist/vef-status/index.js +3 -0
  367. package/dist/vef-status/props.d.ts +17 -0
  368. package/dist/vef-table/components/columns/bool.d.ts +5 -0
  369. package/dist/vef-table/components/columns/bool.js +3 -0
  370. package/dist/vef-table/components/columns/code.d.ts +4 -0
  371. package/dist/vef-table/components/columns/code.js +3 -0
  372. package/dist/vef-table/components/columns/data-dictionary.d.ts +4 -0
  373. package/dist/vef-table/components/columns/data-dictionary.js +3 -0
  374. package/dist/vef-table/components/columns/enum.d.ts +4 -0
  375. package/dist/vef-table/components/columns/enum.js +3 -0
  376. package/dist/vef-table/components/columns/file.d.ts +4 -0
  377. package/dist/vef-table/components/columns/file.js +3 -0
  378. package/dist/vef-table/components/columns/icon.d.ts +4 -0
  379. package/dist/vef-table/components/columns/icon.js +3 -0
  380. package/dist/vef-table/components/columns/id.d.ts +4 -0
  381. package/dist/vef-table/components/columns/id.js +3 -0
  382. package/dist/vef-table/components/columns/image.d.ts +4 -0
  383. package/dist/vef-table/components/columns/image.js +3 -0
  384. package/dist/vef-table/components/columns/index.d.ts +31 -0
  385. package/dist/vef-table/components/columns/index.js +3 -0
  386. package/dist/vef-table/components/columns/markdown.d.ts +4 -0
  387. package/dist/vef-table/components/columns/markdown.js +3 -0
  388. package/dist/vef-table/components/columns/number.d.ts +4 -0
  389. package/dist/vef-table/components/columns/number.js +3 -0
  390. package/dist/vef-table/components/columns/props.d.ts +24 -0
  391. package/dist/vef-table/components/columns/render.d.ts +4 -0
  392. package/dist/vef-table/components/columns/render.js +3 -0
  393. package/dist/vef-table/components/columns/rich-text.d.ts +4 -0
  394. package/dist/vef-table/components/columns/rich-text.js +3 -0
  395. package/dist/vef-table/components/columns/text.d.ts +4 -0
  396. package/dist/vef-table/components/columns/text.js +3 -0
  397. package/dist/vef-table/components/columns-settings.d.ts +2 -0
  398. package/dist/vef-table/components/columns-settings.js +54 -0
  399. package/dist/vef-table/components/operation-buttons.d.ts +22 -0
  400. package/dist/vef-table/components/operation-buttons.js +12 -0
  401. package/dist/vef-table/components/settings-icon.d.ts +2 -0
  402. package/dist/vef-table/components/settings-icon.js +5 -0
  403. package/dist/vef-table/components/table-footer.d.ts +34 -0
  404. package/dist/vef-table/components/table-footer.js +19 -0
  405. package/dist/vef-table/helper.d.ts +12 -0
  406. package/dist/vef-table/helper.js +3 -0
  407. package/dist/vef-table/hooks/use-computed-batch-buttons.d.ts +13 -0
  408. package/dist/vef-table/hooks/use-computed-batch-buttons.js +3 -0
  409. package/dist/vef-table/hooks/use-computed-columns.d.ts +10 -0
  410. package/dist/vef-table/hooks/use-computed-columns.js +3 -0
  411. package/dist/vef-table/hooks/use-computed-values.d.ts +45 -0
  412. package/dist/vef-table/hooks/use-computed-values.js +3 -0
  413. package/dist/vef-table/hooks/use-data.d.ts +11 -0
  414. package/dist/vef-table/hooks/use-data.js +3 -0
  415. package/dist/vef-table/hooks/use-default-column-configs.d.ts +9 -0
  416. package/dist/vef-table/hooks/use-default-column-configs.js +3 -0
  417. package/dist/vef-table/hooks/use-display-value.d.ts +32 -0
  418. package/dist/vef-table/hooks/use-display-value.js +3 -0
  419. package/dist/vef-table/hooks/use-helper-columns.d.ts +6 -0
  420. package/dist/vef-table/hooks/use-helper-columns.js +3 -0
  421. package/dist/vef-table/hooks/use-merged-value.d.ts +10 -0
  422. package/dist/vef-table/hooks/use-merged-value.js +3 -0
  423. package/dist/vef-table/hooks/use-operation-column-width.d.ts +11 -0
  424. package/dist/vef-table/hooks/use-operation-column-width.js +3 -0
  425. package/dist/vef-table/hooks/use-pagination-props.d.ts +17 -0
  426. package/dist/vef-table/hooks/use-pagination-props.js +3 -0
  427. package/dist/vef-table/hooks/use-row-props.d.ts +11 -0
  428. package/dist/vef-table/hooks/use-row-props.js +3 -0
  429. package/dist/vef-table/hooks/use-row-selection-config.d.ts +11 -0
  430. package/dist/vef-table/hooks/use-row-selection-config.js +3 -0
  431. package/dist/vef-table/hooks/use-table-columns.d.ts +12 -0
  432. package/dist/vef-table/hooks/use-table-columns.js +3 -0
  433. package/dist/vef-table/hooks/use-table-context.d.ts +9 -0
  434. package/dist/vef-table/hooks/use-table-context.js +3 -0
  435. package/dist/vef-table/hooks/use-table-instance.d.ts +10 -0
  436. package/dist/vef-table/hooks/use-table-instance.js +3 -0
  437. package/dist/vef-table/hooks/use-table-summary.d.ts +10 -0
  438. package/dist/vef-table/hooks/use-table-summary.js +3 -0
  439. package/dist/vef-table/hooks/use-table-width.d.ts +9 -0
  440. package/dist/vef-table/hooks/use-table-width.js +3 -0
  441. package/dist/vef-table/index.d.ts +7 -0
  442. package/dist/vef-table/index.js +56 -0
  443. package/dist/vef-table/props.d.ts +330 -0
  444. package/dist/vef-table/store.d.ts +21 -0
  445. package/dist/vef-table/store.js +3 -0
  446. package/dist/vef-table/types.d.ts +481 -0
  447. package/dist/vef-tabs/index.d.ts +5 -0
  448. package/dist/vef-tabs/index.js +3 -0
  449. package/dist/vef-tabs/props.d.ts +12 -0
  450. package/dist/vef-tag/index.d.ts +5 -0
  451. package/dist/vef-tag/index.js +3 -0
  452. package/dist/vef-tag/props.d.ts +20 -0
  453. package/dist/vef-temporal-picker/hooks/use-dayjs-value.d.ts +10 -0
  454. package/dist/vef-temporal-picker/hooks/use-dayjs-value.js +3 -0
  455. package/dist/vef-temporal-picker/hooks/use-temporal-formats.d.ts +8 -0
  456. package/dist/vef-temporal-picker/hooks/use-temporal-formats.js +3 -0
  457. package/dist/vef-temporal-picker/hooks/use-temporal-limit.d.ts +13 -0
  458. package/dist/vef-temporal-picker/hooks/use-temporal-limit.js +3 -0
  459. package/dist/vef-temporal-picker/hooks/use-temporal-picker-instance.d.ts +12 -0
  460. package/dist/vef-temporal-picker/hooks/use-temporal-picker-instance.js +3 -0
  461. package/dist/vef-temporal-picker/index.d.ts +5 -0
  462. package/dist/vef-temporal-picker/index.js +3 -0
  463. package/dist/vef-temporal-picker/props.d.ts +101 -0
  464. package/dist/vef-temporal-range-picker/hooks/use-dayjs-values.d.ts +10 -0
  465. package/dist/vef-temporal-range-picker/hooks/use-dayjs-values.js +3 -0
  466. package/dist/vef-temporal-range-picker/hooks/use-temporal-formats.d.ts +8 -0
  467. package/dist/vef-temporal-range-picker/hooks/use-temporal-formats.js +3 -0
  468. package/dist/vef-temporal-range-picker/hooks/use-temporal-limit.d.ts +13 -0
  469. package/dist/vef-temporal-range-picker/hooks/use-temporal-limit.js +3 -0
  470. package/dist/vef-temporal-range-picker/hooks/use-temporal-range-picker-instance.d.ts +12 -0
  471. package/dist/vef-temporal-range-picker/hooks/use-temporal-range-picker-instance.js +3 -0
  472. package/dist/vef-temporal-range-picker/index.d.ts +5 -0
  473. package/dist/vef-temporal-range-picker/index.js +3 -0
  474. package/dist/vef-temporal-range-picker/props.d.ts +82 -0
  475. package/dist/vef-temporal-range-picker/props.js +3 -0
  476. package/dist/vef-text/index.d.ts +5 -0
  477. package/dist/vef-text/index.js +3 -0
  478. package/dist/vef-text/props.d.ts +47 -0
  479. package/dist/vef-textarea/hooks/use-textarea-instance.d.ts +13 -0
  480. package/dist/vef-textarea/hooks/use-textarea-instance.js +3 -0
  481. package/dist/vef-textarea/index.d.ts +4 -0
  482. package/dist/vef-textarea/index.js +3 -0
  483. package/dist/vef-textarea/props.d.ts +58 -0
  484. package/dist/vef-title/index.d.ts +5 -0
  485. package/dist/vef-title/index.js +15 -0
  486. package/dist/vef-title/props.d.ts +39 -0
  487. package/dist/vef-tooltip/index.d.ts +5 -0
  488. package/dist/vef-tooltip/index.js +3 -0
  489. package/dist/vef-tooltip/props.d.ts +30 -0
  490. package/dist/vef-tree-select/hooks/use-change-handler.d.ts +10 -0
  491. package/dist/vef-tree-select/hooks/use-change-handler.js +3 -0
  492. package/dist/vef-tree-select/hooks/use-data-options.d.ts +36 -0
  493. package/dist/vef-tree-select/hooks/use-data-options.js +3 -0
  494. package/dist/vef-tree-select/hooks/use-tree-select-instance.d.ts +11 -0
  495. package/dist/vef-tree-select/hooks/use-tree-select-instance.js +3 -0
  496. package/dist/vef-tree-select/index.d.ts +7 -0
  497. package/dist/vef-tree-select/index.js +3 -0
  498. package/dist/vef-tree-select/props.d.ts +142 -0
  499. package/package.json +56 -0
@@ -0,0 +1,3 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{jsx as e,jsxs as t}from"@emotion/react/jsx-runtime";import{isNullish as o}from"@vef-framework/shared";import{useMemo as r}from"react";import s from"../vef-card/index.js";import i from"../vef-page/index.js";import m from"./components/crud-actions.js";import a from"./components/crud-footer.js";import n from"./components/crud-form-modal.js";import c from"./components/crud-header.js";import l from"./components/crud-table.js";import{useCrudSchema as p}from"./hooks/use-crud-schema.js";import{useCrudStore as f,CrudStoreProvider as u}from"./store.js";function b({title:r,actionButtons:p,batchActionButtons:u,tableSchema:b,filterItems:h,formGroups:d,tableApiParams:A,formApis:j,deletionApi:S,batchDeletionApi:y,selectionSummary:B,...g}){const{selectedKeys:P}=f((e=>e.selectedInfo)),k=!o(y)||!o(u)&&u.length>0;let w;if(g.paginated){const{tableApi:t,...o}=g;w=e(l,{showRowNumber:!0,api:t,apiParams:A,deletionApi:S,schema:b,selectable:k,...o})}else{const{tableApi:t,...o}=g;w=e(l,{showRowNumber:!0,api:t,apiParams:A,deletionApi:S,schema:b,selectable:k,...o})}const{tableApi:I}=g;return e(i,{scrollable:!0,title:r,actions:e(m,{actionButtons:p,tableApi:I,tableApiParams:A}),footer:P.length>0&&e(a,{batchActionButtons:u,batchDeletionApi:y,selectionSummary:B,tableApi:I,tableApiParams:A}),header:e(c,{actionButtons:p,filterItems:h,tableApi:I,tableApiParams:A,title:r}),children:t(s,{children:[w,j&&Object.keys(j).length>0&&d.length>0&&e(n,{formApis:j,formSchema:d})]})})}function h({schema:t,formApis:o,onFormOpen:s,onBeforeSubmit:i,onSubmitSuccess:m,...a}){const{tableSchema:n,filterItems:c,formGroups:l,filterValueAsDefaultKeys:f}=p(t),h=r((()=>{const e=o??{};return Object.keys(e).reduce(((t,o)=>(e[o]&&(t[o]=e[o].key),t)),{})}),[o]);return e(u,{filterValueAsDefaultKeys:f,formApiKeys:h,onBeforeSubmit:i,onFormOpen:s,onSubmitSuccess:m,children:e(b,{filterItems:c,formApis:o,formGroups:l,tableSchema:n,...a})})}export{h as default};
3
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,84 @@
1
+ import type { ActionButton, AnyValue, EmptyObject, Except, Mapper, MaybePromise, MutationApi, ObjectType, ObjectValue, PaginationParams, PaginationResult, QueryApi, QueryConfig, StringKey, TriMapper } from "@vef-framework/shared";
2
+ import type { ReactNode } from "react";
3
+ import type { FilterValues } from "../vef-filter/types";
4
+ import type { VefTableProps } from "../vef-table";
5
+ import type { BatchActionButtonContext, CrudContext, CrudFilterVirtualKeys, CrudFormApis, CrudFormScene, CrudSchema, FormEventHandlers } from "./types";
6
+ /**
7
+ * The props of VefCrudPage component.
8
+ */
9
+ export type VefCrudPageProps<Record extends ObjectType = ObjectValue, Params extends ObjectType = EmptyObject, FilterKeys extends ReadonlyArray<StringKey<Record>> = [], FormKeys extends ReadonlyArray<StringKey<Record>> = [], FormResult = AnyValue, Schema extends CrudSchema<Record, FilterKeys, FormKeys> = CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema> = CrudFormApis<Record, FormKeys, FormResult, Schema>> = VefDefaultCrudPageProps<Record, Params, FilterKeys, FormKeys, FormResult, Schema, FormApis> | VefPaginatedCrudPageProps<Record, Params, FilterKeys, FormKeys, FormResult, Schema, FormApis>;
10
+ /**
11
+ * The base props of VefCrudPage component.
12
+ */
13
+ type VefBaseCrudPageProps<Record extends ObjectType = ObjectValue, Params extends ObjectType = EmptyObject, FilterKeys extends ReadonlyArray<StringKey<Record>> = [], FormKeys extends ReadonlyArray<StringKey<Record>> = [], FormResult = AnyValue, Schema extends CrudSchema<Record, FilterKeys, FormKeys> = CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema> = CrudFormApis<Record, FormKeys, FormResult, Schema>> = Except<VefTableProps<Record, Params, Record, CrudContext<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis>>, "schema" | "paginated" | "selectable" | "multipleSelection" | "showSelectAllCheckbox" | "enableRowClick" | "enableRowClickForSelection" | "selectionSummary" | "value" | "defaultValue" | "batchActionButtons" | "onChange" | "onSelect" | "onDeselect" | "onRowClick" | keyof QueryConfig> & FormEventHandlers<Pick<Record, FormKeys[number]>, FormResult, CrudFormScene<FormApis>> & {
14
+ /**
15
+ * The schema of the crud page.
16
+ */
17
+ schema: Schema;
18
+ /**
19
+ * The title of the crud page.
20
+ */
21
+ title: ReactNode;
22
+ /**
23
+ * The action buttons of the crud page.
24
+ */
25
+ actionButtons?: Array<ActionButton<CrudContext<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis>>>;
26
+ /**
27
+ * The batch action buttons of the crud page.
28
+ */
29
+ batchActionButtons?: Array<ActionButton<BatchActionButtonContext<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis>>>;
30
+ /**
31
+ * The params of the table api.
32
+ */
33
+ tableApiParams?: Params;
34
+ /**
35
+ * The apis of the form.
36
+ */
37
+ formApis?: FormApis;
38
+ /**
39
+ * The api of the deletion.
40
+ */
41
+ deletionApi?: Readonly<MutationApi<Record, void>>;
42
+ /**
43
+ * The api of the batch deletion.
44
+ */
45
+ batchDeletionApi?: Readonly<MutationApi<Record[], void>>;
46
+ /**
47
+ * The mapper of the selection summary.
48
+ */
49
+ selectionSummary?: Mapper<Record[], ReactNode>;
50
+ /**
51
+ * The function to handle the form open event.
52
+ * Typically used to pre-fill or initialize the initial form values.
53
+ */
54
+ onFormOpen?: TriMapper<Partial<Pick<Record, FormKeys[number]>>, FilterValues<Pick<Record, FilterKeys[number]>>, CrudFormScene<FormApis>, MaybePromise<Partial<Pick<Record, FormKeys[number]>>>>;
55
+ };
56
+ /**
57
+ * The default props of VefCrudPage component.
58
+ */
59
+ type VefDefaultCrudPageProps<Record extends ObjectType = ObjectValue, Params extends ObjectType = EmptyObject, FilterKeys extends ReadonlyArray<StringKey<Record>> = [], FormKeys extends ReadonlyArray<StringKey<Record>> = [], FormResult = AnyValue, Schema extends CrudSchema<Record, FilterKeys, FormKeys> = CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema> = CrudFormApis<Record, FormKeys, FormResult, Schema>> = VefBaseCrudPageProps<Record, Params, FilterKeys, FormKeys, FormResult, Schema, FormApis> & {
60
+ /**
61
+ * Whether the table is paginated.
62
+ * @default false
63
+ */
64
+ paginated?: false;
65
+ /**
66
+ * The api of the table.
67
+ */
68
+ tableApi: Readonly<QueryApi<Params & Except<Pick<Record, FilterKeys[number]>, CrudFilterVirtualKeys<Schema>>, Record[]>>;
69
+ };
70
+ /**
71
+ * The paginated props of VefCrudPage component.
72
+ */
73
+ type VefPaginatedCrudPageProps<Record extends ObjectType = ObjectValue, Params extends ObjectType = EmptyObject, FilterKeys extends ReadonlyArray<StringKey<Record>> = [], FormKeys extends ReadonlyArray<StringKey<Record>> = [], FormResult = AnyValue, Schema extends CrudSchema<Record, FilterKeys, FormKeys> = CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema> = CrudFormApis<Record, FormKeys, FormResult, Schema>> = VefBaseCrudPageProps<Record, Params, FilterKeys, FormKeys, FormResult, Schema, FormApis> & {
74
+ /**
75
+ * Whether the table is paginated.
76
+ * @default false
77
+ */
78
+ paginated: true;
79
+ /**
80
+ * The api of the table.
81
+ */
82
+ tableApi: Readonly<QueryApi<Params & PaginationParams & Except<Pick<Record, FilterKeys[number]>, CrudFilterVirtualKeys<Schema>>, PaginationResult<Record>>>;
83
+ };
84
+ export {};
@@ -0,0 +1,119 @@
1
+ import { type AnyValue, type ChildrenProps, type Consumer, type Except, type Handler, type IdValue, type Mapper, type MaybeNull, type MaybePromise, type ObjectType, type StringKey, type TriMapper } from "@vef-framework/shared";
2
+ import { type RefObject } from "react";
3
+ import { type StoreApi } from "zustand";
4
+ import type { FilterValues } from "../vef-filter/types";
5
+ import type { VefTableInstance } from "../vef-table";
6
+ import type { CrudFilterVirtualKeys, CrudFormApis, CrudFormScene, CrudSchema, FormBehaviorConfig, FormEventHandlers, FormInfo } from "./types";
7
+ /**
8
+ * The selected info.
9
+ */
10
+ interface SelectedInfo<Record extends ObjectType> {
11
+ /**
12
+ * The selected keys.
13
+ */
14
+ selectedKeys: IdValue[];
15
+ /**
16
+ * The selected records.
17
+ */
18
+ selectedRecords: Record[];
19
+ }
20
+ /**
21
+ * The crud state.
22
+ */
23
+ export interface CrudState<Record extends ObjectType, FilterKeys extends ReadonlyArray<StringKey<Record>> = readonly [], FormKeys extends ReadonlyArray<StringKey<Record>> = readonly [], FormResult = AnyValue, Schema extends CrudSchema<Record, FilterKeys, FormKeys> = CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema> = CrudFormApis<Record, FormKeys, FormResult, Schema>> extends FormEventHandlers<Pick<Record, FormKeys[number]>, FormResult, CrudFormScene<FormApis>> {
24
+ /**
25
+ * The function to handle the form open event.
26
+ * Typically used to pre-fill or initialize the initial form values.
27
+ */
28
+ onFormOpen?: TriMapper<Partial<Pick<Record, FormKeys[number]>>, FilterValues<Pick<Record, FilterKeys[number]>>, CrudFormScene<FormApis>, MaybePromise<Partial<Pick<Record, FormKeys[number]>>>>;
29
+ /**
30
+ * The current form info.
31
+ */
32
+ currentFormInfo: FormInfo<CrudFormScene<FormApis>>;
33
+ /**
34
+ * The event handlers of the current form.
35
+ */
36
+ currentFormEventHandlers: FormEventHandlers<Pick<Record, FormKeys[number]>, FormResult, CrudFormScene<FormApis>>;
37
+ /**
38
+ * The initial values of the current form.
39
+ */
40
+ currentFormInitialValues: Partial<Pick<Record, FormKeys[number]>>;
41
+ /**
42
+ * Whether the form is open.
43
+ */
44
+ isFormOpen: boolean;
45
+ /**
46
+ * The function to open the form.
47
+ */
48
+ openForm: Mapper<FormInfo<CrudFormScene<FormApis>> & FormEventHandlers<Pick<Record, FormKeys[number]>, FormResult, CrudFormScene<FormApis>> & FormBehaviorConfig & {
49
+ initialValues?: Partial<Pick<Record, FormKeys[number]>>;
50
+ }, Promise<void>>;
51
+ /**
52
+ * The function to close the form.
53
+ */
54
+ closeForm: Handler;
55
+ /**
56
+ * Whether the form is loading.
57
+ */
58
+ isFormLoading: boolean;
59
+ /**
60
+ * The function to set whether the form is loading.
61
+ */
62
+ setIsFormLoading: Consumer<boolean>;
63
+ /**
64
+ * The keys of the filter values that are used as default values of the form.
65
+ */
66
+ filterValueAsDefaultKeys: Array<FormKeys[number]>;
67
+ /**
68
+ * The values of the filter.
69
+ */
70
+ filterValues: FilterValues<Pick<Record, FilterKeys[number]>>;
71
+ /**
72
+ * The function to set the values of the filter.
73
+ */
74
+ setFilterValues: Consumer<FilterValues<Pick<Record, FilterKeys[number]>>>;
75
+ /**
76
+ * The confirmed values of the filter.
77
+ */
78
+ confirmedFilterValues: MaybeNull<Except<Pick<Record, FilterKeys[number]>, CrudFilterVirtualKeys<Schema>>>;
79
+ /**
80
+ * The function to set the confirmed values of the filter.
81
+ */
82
+ setConfirmedFilterValues: Consumer<MaybeNull<Except<Pick<Record, FilterKeys[number]>, CrudFilterVirtualKeys<Schema>>>>;
83
+ /**
84
+ * The selected info.
85
+ */
86
+ selectedInfo: SelectedInfo<Record>;
87
+ /**
88
+ * The function to set the selected info.
89
+ */
90
+ setSelectedInfo: Consumer<SelectedInfo<Record>>;
91
+ /**
92
+ * The apis of the form.
93
+ */
94
+ formApiKeys: {
95
+ [K in CrudFormScene<FormApis>]: string;
96
+ };
97
+ /**
98
+ * The ref of the table instance.
99
+ */
100
+ tableInstanceRef: RefObject<MaybeNull<VefTableInstance<Record>>>;
101
+ }
102
+ /**
103
+ * The props of the crud store provider
104
+ */
105
+ export interface CrudStoreProviderProps<Record extends ObjectType, FilterKeys extends ReadonlyArray<StringKey<Record>>, FormKeys extends ReadonlyArray<StringKey<Record>>, FormResult, Schema extends CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema>> extends Pick<CrudState<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis>, "filterValueAsDefaultKeys" | "formApiKeys" | "onFormOpen" | "onBeforeSubmit" | "onSubmitSuccess">, ChildrenProps {
106
+ }
107
+ /**
108
+ * The provider component of the crud store.
109
+ */
110
+ export declare function CrudStoreProvider<Record extends ObjectType, FilterKeys extends ReadonlyArray<StringKey<Record>>, FormKeys extends ReadonlyArray<StringKey<Record>>, FormResult, Schema extends CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema>>({ filterValueAsDefaultKeys, formApiKeys, onFormOpen, onBeforeSubmit, onSubmitSuccess, children, }: CrudStoreProviderProps<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis>): import("react").FunctionComponentElement<import("react").ProviderProps<MaybeNull<StoreApi<CrudState<any, any, any, any, any, any>>>>>;
111
+ /**
112
+ * The hook to use the crud store api.
113
+ */
114
+ export declare function useCrudStoreApi<Record extends ObjectType, FilterKeys extends ReadonlyArray<StringKey<Record>>, FormKeys extends ReadonlyArray<StringKey<Record>>, FormResult, Schema extends CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema>>(): StoreApi<CrudState<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis>>;
115
+ /**
116
+ * The hook to use the crud store.
117
+ */
118
+ export declare function useCrudStore<Record extends ObjectType, FilterKeys extends ReadonlyArray<StringKey<Record>>, FormKeys extends ReadonlyArray<StringKey<Record>>, FormResult, Schema extends CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema>, R>(selector: Mapper<CrudState<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis>, R>): R;
119
+ export {};
@@ -0,0 +1,3 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{useSingleton as e,useUpdateEffect as r}from"@vef-framework/hooks";import{creationFormScene as o,isNullish as n,isFunction as t,mergeFns as s,showSuccessMessage as i,showSuccessAlert as u,invokeMaybeAsyncFn as m,isEqual as l}from"@vef-framework/shared";import{createContext as a,createElement as c,useContext as f}from"react";import{createStore as d}from"zustand";import{useStoreWithEqualityFn as F}from"zustand/traditional";const S=a(null);function p({filterValueAsDefaultKeys:l,formApiKeys:a,onFormOpen:f,onBeforeSubmit:F,onSubmitSuccess:p,children:b}){const V=e((()=>function({filterValueAsDefaultKeys:e,formApiKeys:r,onFormOpen:l,onBeforeSubmit:a,onSubmitSuccess:c}){return d(((f,d)=>({onFormOpen:l,onBeforeSubmit:a,onSubmitSuccess:c,currentFormInfo:{scene:o,title:"创建",width:"medium"},currentFormEventHandlers:{},currentFormInitialValues:{},isFormOpen:!1,openForm:async({initialValues:r,width:o,onBeforeSubmit:l,onSubmitSuccess:a,showSuccessTip:c=!0,successTipType:F="message",...S})=>{const{filterValues:p,onFormOpen:b,closeForm:V,onBeforeSubmit:y,onSubmitSuccess:I,setIsFormLoading:w}=d(),K={...e.reduce(((e,r)=>{const o=p[r];return n(o)||(e[r]=o),e}),{}),...r},v=t(l)||t(y)?async(e,r)=>{const o=await(l?.(e,r));return await(y?.(o??e,r))??o}:void 0,A=t(a)||t(I)?s((({message:e})=>{c&&("message"===F?i(e):u(e)),V()}),a,I):void 0;f({isFormOpen:!0,currentFormInfo:{...S,width:o??"medium"},currentFormEventHandlers:{onBeforeSubmit:v,onSubmitSuccess:A},isFormLoading:Boolean(b)}),b?await m(b,{onSuccess:e=>{f({currentFormInitialValues:e})},onFinally:()=>{w(!1)}},K,p,S.scene):f({currentFormInitialValues:K})},closeForm:()=>{f({isFormOpen:!1,currentFormInitialValues:{},currentFormEventHandlers:{}})},isFormLoading:!1,setIsFormLoading:e=>{f({isFormLoading:e})},filterValueAsDefaultKeys:e,filterValues:{},setFilterValues:e=>{f({filterValues:e})},confirmedFilterValues:null,setConfirmedFilterValues:e=>{f({confirmedFilterValues:e})},selectedInfo:{selectedKeys:[],selectedRecords:[]},setSelectedInfo:e=>{f({selectedInfo:e})},formApiKeys:r,tableInstanceRef:{current:null}})))}({filterValueAsDefaultKeys:l,onFormOpen:f,formApiKeys:a,onBeforeSubmit:F,onSubmitSuccess:p})));return r((()=>{V.setState({filterValueAsDefaultKeys:l,formApiKeys:a,onFormOpen:f,onBeforeSubmit:F,onSubmitSuccess:p})}),[l,a,f,F,p]),c(S.Provider,{value:V},b)}function b(){const e=f(S);if(!e)throw new Error("CrudStore can be used only inside CrudStoreProvider");return e}function V(e){return F(b(),e,l)}export{p as CrudStoreProvider,V as useCrudStore,b as useCrudStoreApi};
3
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,173 @@
1
+ import type { AnyValue, ApiResponse, BiMapper, Consumer, Except, IdValue, KeyValue, MaybePromise, MutationApi, NonEmptyTuple, ObjectType, ObjectValue, Provider, StringKey, TriConsumer, UnionToTuple } from "@vef-framework/shared";
2
+ import type { ReactNode } from "react";
3
+ import type { FilterItem } from "../vef-filter";
4
+ import type { FilterValues } from "../vef-filter/types";
5
+ import type { FormItem, FormScene } from "../vef-form";
6
+ import type { VefModalProps } from "../vef-modal";
7
+ import type { TableColumn } from "../vef-table";
8
+ /**
9
+ * The crud context.
10
+ */
11
+ export interface CrudContext<Record extends ObjectType, FilterKeys extends ReadonlyArray<StringKey<Record>>, FormKeys extends ReadonlyArray<StringKey<Record>>, FormResult = AnyValue, Schema extends CrudSchema<Record, FilterKeys, FormKeys> = CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema> = CrudFormApis<Record, FormKeys, FormResult, Schema>> {
12
+ /**
13
+ * The function to open the form.
14
+ */
15
+ openForm: Consumer<FormInfo<CrudFormScene<FormApis>> & FormEventHandlers<Pick<Record, FormKeys[number]>, FormResult, CrudFormScene<FormApis>> & FormBehaviorConfig & {
16
+ initialValues?: Partial<Pick<Record, FormKeys[number]>>;
17
+ }>;
18
+ /**
19
+ * The filter values.
20
+ */
21
+ filterValues: FilterValues<Pick<Record, FilterKeys[number]>>;
22
+ /**
23
+ * The function to refetch the table data of the crud page.
24
+ */
25
+ refetch: Provider<Promise<void>>;
26
+ }
27
+ /**
28
+ * The batch action button context.
29
+ */
30
+ export interface BatchActionButtonContext<Record extends ObjectType, FilterKeys extends ReadonlyArray<StringKey<Record>>, FormKeys extends ReadonlyArray<StringKey<Record>>, FormResult = AnyValue, Schema extends CrudSchema<Record, FilterKeys, FormKeys> = CrudSchema<Record, FilterKeys, FormKeys>, FormApis extends CrudFormApis<Record, FormKeys, FormResult, Schema> = CrudFormApis<Record, FormKeys, FormResult, Schema>> extends CrudContext<Record, FilterKeys, FormKeys, FormResult, Schema, FormApis> {
31
+ /**
32
+ * The selected keys.
33
+ */
34
+ selectedKeys: IdValue[];
35
+ /**
36
+ * The selected records.
37
+ */
38
+ selectedRecords: Record[];
39
+ }
40
+ /**
41
+ * The form info.
42
+ */
43
+ export interface FormInfo<Scene extends FormScene = FormScene> {
44
+ /**
45
+ * The scene of the form.
46
+ */
47
+ scene: Scene;
48
+ /**
49
+ * The title of the form.
50
+ */
51
+ title: ReactNode;
52
+ /**
53
+ * The width of the form.
54
+ */
55
+ width?: NonNullable<VefModalProps["width"]>;
56
+ }
57
+ /**
58
+ * The event handlers of the form.
59
+ */
60
+ export interface FormEventHandlers<Record extends ObjectType, Result, Scene extends FormScene = FormScene> {
61
+ /**
62
+ * The function to handle the form submit before event.
63
+ */
64
+ onBeforeSubmit?: BiMapper<Record, Scene, MaybePromise<Record>>;
65
+ /**
66
+ * The function to handle the form submit success event.
67
+ */
68
+ onSubmitSuccess?: TriConsumer<ApiResponse<Result>, Record, Scene>;
69
+ }
70
+ /**
71
+ * The behavior config of the form.
72
+ */
73
+ export interface FormBehaviorConfig {
74
+ /**
75
+ * Whether to show the success tip.
76
+ * @default true
77
+ */
78
+ showSuccessTip?: boolean;
79
+ /**
80
+ * The type of the success tip.
81
+ * @default "message"
82
+ */
83
+ successTipType?: "message" | "alert";
84
+ }
85
+ /**
86
+ * The coordinate of the form item.
87
+ */
88
+ interface FormItemCoordinate {
89
+ /**
90
+ * The group key of the form item.
91
+ */
92
+ group?: KeyValue;
93
+ /**
94
+ * The row key of the form item.
95
+ */
96
+ row?: KeyValue;
97
+ /**
98
+ * The column key of the form item.
99
+ */
100
+ column?: KeyValue;
101
+ }
102
+ type FilterCrudItem<Record extends ObjectType, Key extends StringKey<Record>, FilterKeys extends StringKey<Record>> = Key extends FilterKeys ? {
103
+ filter: Except<FilterItem<Pick<Record, FilterKeys>, Key>, "name">;
104
+ } : unknown;
105
+ type FormCrudItem<Record extends ObjectType, Key extends StringKey<Record>, FormKeys extends StringKey<Record>, FilterKeys extends StringKey<Record>> = Key extends FormKeys ? {
106
+ form: Except<FormItem<Pick<Record, FormKeys>>, "name"> & FormItemCoordinate & (Key extends FilterKeys ? {
107
+ filterValueAsDefault?: boolean;
108
+ } : unknown);
109
+ } : unknown;
110
+ /**
111
+ * The crud item.
112
+ */
113
+ export type CrudItem<Record extends ObjectType = ObjectValue, FilterKeys extends StringKey<Record> = never, FormKeys extends StringKey<Record> = never, Key extends StringKey<Record> = StringKey<Record>> = TableColumn<Record, Key> & FilterCrudItem<Record, Key, FilterKeys> & FormCrudItem<Record, Key, FormKeys, FilterKeys>;
114
+ /**
115
+ * The internal crud item.
116
+ */
117
+ export type InternalCrudItem<Record extends ObjectType = ObjectValue, FilterKeys extends StringKey<Record> = never, FormKeys extends StringKey<Record> = never, Key extends StringKey<Record> = StringKey<Record>> = TableColumn<Record, Key> & {
118
+ /**
119
+ * The filter of the item.
120
+ */
121
+ filter?: Except<FilterItem<Pick<Record, FilterKeys>>, "name">;
122
+ /**
123
+ * The form of the item.
124
+ */
125
+ form?: Except<FormItem<Pick<Record, FormKeys>>, "name"> & FormItemCoordinate & {
126
+ filterValueAsDefault?: boolean;
127
+ };
128
+ };
129
+ /**
130
+ * The union of the crud items.
131
+ */
132
+ type CrudItemUnion<Record extends ObjectType, FilterKeys extends StringKey<Record>, FormKeys extends StringKey<Record>, Keys extends UnionToTuple<StringKey<Record>>> = {
133
+ [K in keyof Keys]: CrudItem<Record, FilterKeys, FormKeys, Keys[K] & string>;
134
+ }[number];
135
+ /**
136
+ * The crud schema.
137
+ */
138
+ export type CrudSchema<Record extends ObjectType = ObjectValue, FilterKeys extends ReadonlyArray<StringKey<Record>> = [], FormKeys extends ReadonlyArray<StringKey<Record>> = []> = NonEmptyTuple<CrudItemUnion<Record, FilterKeys[number], FormKeys[number], UnionToTuple<StringKey<Record>>>>;
139
+ /**
140
+ * The virtual keys of the crud filter.
141
+ */
142
+ export type CrudFilterVirtualKeys<T extends readonly unknown[]> = {
143
+ [K in keyof T]: T[K] extends {
144
+ name: infer N;
145
+ filter: infer F;
146
+ } ? F extends {
147
+ virtual: true;
148
+ } ? N : never : never;
149
+ }[number];
150
+ /**
151
+ * The virtual keys of the crud form.
152
+ */
153
+ export type CrudFormVirtualKeys<T extends readonly unknown[]> = {
154
+ [K in keyof T]: T[K] extends {
155
+ name: infer N;
156
+ form: infer F;
157
+ } ? F extends {
158
+ virtual: true;
159
+ } ? N : never : never;
160
+ }[number];
161
+ /**
162
+ * The apis of the form.
163
+ */
164
+ export type CrudFormApis<Record extends ObjectType, FormKeys extends ReadonlyArray<StringKey<Record>>, FormResult, Schema extends CrudSchema<Record, never, FormKeys>> = {
165
+ [K in FormScene]?: Readonly<MutationApi<Except<Pick<Record, FormKeys[number]>, CrudFormVirtualKeys<Schema>>, FormResult>>;
166
+ };
167
+ /**
168
+ * The form scene of the crud.
169
+ */
170
+ export type CrudFormScene<FormApis extends CrudFormApis<any, any, any, any>> = keyof {
171
+ [K in keyof FormApis as FormApis[K] extends MutationApi ? K : never]: FormApis[K];
172
+ } & string;
173
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { FC } from "react";
2
+ import type { VefDividerProps } from "./props";
3
+ declare const VefDivider: FC<VefDividerProps>;
4
+ export type { VefDividerProps };
5
+ export default VefDivider;
@@ -0,0 +1,3 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{jsx as t}from"@emotion/react/jsx-runtime";import{Divider as i}from"antd";const o=({direction:o,title:e,titlePosition:n,titleEdgeMargin:r,...a})=>t(i,{children:e,orientation:n,orientationMargin:r,type:o,...a});export{o as default};
3
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,25 @@
1
+ import type { Direction, Except } from "@vef-framework/shared";
2
+ import type { DividerProps } from "antd";
3
+ /**
4
+ * The props for the VefDivider component.
5
+ */
6
+ export interface VefDividerProps extends Except<DividerProps, "dashed" | "type" | "orientation" | "orientationMargin" | "children"> {
7
+ /**
8
+ * The direction of the divider.
9
+ */
10
+ direction?: Direction;
11
+ /**
12
+ * The title of the divider.
13
+ */
14
+ title?: React.ReactNode;
15
+ /**
16
+ * The position of the title.
17
+ * Only works when `title` is provided.
18
+ */
19
+ titlePosition?: NonNullable<DividerProps["orientation"]>;
20
+ /**
21
+ * The edge margin of the title.
22
+ * Only works when `title` is provided and `titlePosition` is left or right.
23
+ */
24
+ titleEdgeMargin?: NonNullable<DividerProps["orientationMargin"]>;
25
+ }
@@ -0,0 +1,14 @@
1
+ import { type FC, type ReactElement } from "react";
2
+ import type { VefButtonProps } from "../../vef-button";
3
+ import type VefButton from "../../vef-button";
4
+ /**
5
+ * The props of the vef drawer action button wrapper.
6
+ */
7
+ export interface VefDrawerActionButtonWrapperProps {
8
+ /**
9
+ * The children.
10
+ */
11
+ children: ReactElement<VefButtonProps, typeof VefButton>;
12
+ }
13
+ declare const VefDrawerActionButtonWrapper: FC<VefDrawerActionButtonWrapperProps>;
14
+ export default VefDrawerActionButtonWrapper;
@@ -0,0 +1,3 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{jsx as o,Fragment as r}from"@emotion/react/jsx-runtime";import{invokeMaybeAsyncFn as e}from"@vef-framework/shared";import{useState as i,useMemo as t,cloneElement as n}from"react";import{useDrawerContextSelector as a}from"../context.js";const s=({children:s})=>{const[l,d]=a((o=>[o.isDisabled,o.setIsDisabled])),[m,c]=i(!1),{disabled:f,loading:p,onClick:b}=s.props,k=t((()=>{if(b)return async o=>{await e(b,{beforeInvoke:()=>{c(!0),d(!0)},onFinally:()=>{c(!1),d(!1)}},o)}}),[b,d]),u=n(s,{disabled:l||f,loading:m||p,onClick:k});return o(r,{children:u})};export{s as default};
3
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,15 @@
1
+ import type { MaybePromise, Provider } from "@vef-framework/shared";
2
+ import type { ReactNode } from "react";
3
+ /**
4
+ * The props of the action button.
5
+ */
6
+ export interface VefDrawerActionButtonProps {
7
+ /**
8
+ * The text of the button.
9
+ */
10
+ text: ReactNode;
11
+ /**
12
+ * The click handler of the button.
13
+ */
14
+ onClick?: Provider<MaybePromise<void>>;
15
+ }
@@ -0,0 +1,2 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,4 @@
1
+ import type { FC } from "react";
2
+ import type { VefDrawerActionButtonProps } from "./button-props";
3
+ declare const VefCancelActionButton: FC<VefDrawerActionButtonProps>;
4
+ export default VefCancelActionButton;
@@ -0,0 +1,3 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{jsx as t}from"@emotion/react/jsx-runtime";import o from"../../vef-button/index.js";import r from"./action-button-wrapper.js";const e=({text:e,onClick:i})=>t(r,{children:t(o,{color:"default",variant:"text",onClick:i,children:e})});export{e as default};
3
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,4 @@
1
+ import type { FC } from "react";
2
+ import type { VefDrawerActionButtonProps } from "./button-props";
3
+ declare const VefOkActionButton: FC<VefDrawerActionButtonProps>;
4
+ export default VefOkActionButton;
@@ -0,0 +1,3 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{jsx as o}from"@emotion/react/jsx-runtime";import{CheckOutlined as r}from"@ant-design/icons";import t from"../../vef-button/index.js";import i from"./action-button-wrapper.js";const n=({text:n,onClick:e})=>o(i,{children:o(t,{color:"primary",icon:o(r,{}),onClick:e,children:n})});export{n as default};
3
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,27 @@
1
+ import { type Consumer } from "@vef-framework/shared";
2
+ /**
3
+ * The context of the drawer.
4
+ */
5
+ export interface DrawerContext {
6
+ /**
7
+ * Whether the drawer is disabled.
8
+ */
9
+ isDisabled: boolean;
10
+ /**
11
+ * The setter of the drawer's disabled state.
12
+ */
13
+ setIsDisabled: Consumer<boolean>;
14
+ /**
15
+ * Whether the drawer is fully opened.
16
+ */
17
+ isFullyOpened: boolean;
18
+ /**
19
+ * Whether the drawer is fully closed.
20
+ */
21
+ isFullyClosed: boolean;
22
+ }
23
+ declare const DrawerContextProvider: import("react").ComponentType<{
24
+ value: DrawerContext;
25
+ children: import("react").ReactNode;
26
+ }>, useDrawerContext: import("@vef-framework/shared").Provider<DrawerContext>, useDrawerContextSelector: <R>(selector: import("@vef-framework/shared").Mapper<DrawerContext, R>) => R;
27
+ export { DrawerContextProvider, useDrawerContext, useDrawerContextSelector };
@@ -0,0 +1,3 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{createSelectableContext as e,noop as s}from"@vef-framework/shared";const{ContextProvider:o,useContext:t,useContextSelector:r}=e({isDisabled:!1,setIsDisabled:s,isFullyOpened:!1,isFullyClosed:!1});export{o as DrawerContextProvider,t as useDrawerContext,r as useDrawerContextSelector};
3
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,5 @@
1
+ import type { VefDrawerProps } from "./props";
2
+ declare const VefDrawer: import("react").NamedExoticComponent<VefDrawerProps>;
3
+ export type { VefDrawerProps };
4
+ export { default as VefDrawerActionButtonWrapper, type VefDrawerActionButtonWrapperProps } from "./components/action-button-wrapper";
5
+ export default VefDrawer;
@@ -0,0 +1,10 @@
1
+ /*! VefFramework version: 1.0.5, build time: 2024-12-10T10:24:47.065Z, made by Venus. */
2
+ import{jsx as e,jsxs as o,Fragment as t}from"@emotion/react/jsx-runtime";import{css as n}from"@emotion/react";import{themeVariables as l,isFunction as s}from"@vef-framework/shared";import{Drawer as r}from"antd";import{useMemo as i,useState as a,useLayoutEffect as c,useCallback as d,memo as m}from"react";import p from"./components/cancel-action-button.js";import f from"./components/ok-action-button.js";import{DrawerContextProvider as u}from"./context.js";export{default as VefDrawerActionButtonWrapper}from"./components/action-button-wrapper.js";const C=n`
3
+ .vef-drawer-footer {
4
+ display: flex;
5
+ gap: ${l.padding};
6
+ justify-content: flex-end;
7
+ align-items: center;
8
+ }
9
+ `,h={narrow:"25",half:"50",wide:"75",full:"100"},x=m((({title:n,open:l,closable:m=!0,closeOnEscPress:x=!0,closeOnMaskClick:k=!1,destroyOnClose:y=!1,placement:g="right",expansionSize:O,extra:b,showCancelButton:w=!0,cancelButtonText:j="取消",okButtonText:B="提交",actions:F,loading:v,cancelOnClose:A=!0,onClose:z,onCancel:D,onOk:$,onAfterOpen:I,onAfterClose:T,children:E})=>{const M=i((()=>"small"===O?{size:"default"}:"medium"===O?{size:"large"}:"left"===g||"right"===g?{width:h[O]?`${h[O]}vw`:O}:{height:h[O]?`${h[O]}vh`:O}),[O,g]),[P,S]=a({isFullyOpened:!1,isFullyClosed:!1}),[V,W]=a(!1),q=i((()=>({isDisabled:V,setIsDisabled:W,...P})),[V,P]),G=v||V;c((()=>{l&&P.isFullyClosed&&S((e=>({...e,isFullyClosed:!1})))}),[l]);const H=i((()=>{const n=e(p,{text:j,onClick:D},"cancelActionButton"),l=e(f,{text:B,onClick:$},"okActionButton");return s(F)?F([n,l]):F||(w?o(t,{children:[n,l]}):l)}),[F,j,B,D,$,w]),J=d((()=>{G||(A&&D?.(),z?.())}),[A,G,D,z]),K=d((e=>{const o=s(I),t=s(T);e?(o&&I(),S((e=>({...e,isFullyOpened:!0})))):(t&&T(),S((e=>({...e,isFullyClosed:!0}))))}),[I,T]);return e(u,{value:q,children:e(r,{afterOpenChange:K,closable:m,css:C,destroyOnClose:y,extra:b,footer:!v&&H,keyboard:x,loading:v,maskClosable:k,open:l,placement:g,title:n,zIndex:20,onClose:J,...M,children:E})})}));export{x as default};
10
+ /*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
@@ -0,0 +1,97 @@
1
+ import type { ChildrenProps, Consumer, LengthValue, LiteralUnion, Mapper, MaybePromise, Placement, Provider } from "@vef-framework/shared";
2
+ import type { ReactElement, ReactNode } from "react";
3
+ /**
4
+ * The props of the VefDrawer component.
5
+ */
6
+ export interface VefDrawerProps extends Required<ChildrenProps> {
7
+ /**
8
+ * The title of the drawer.
9
+ */
10
+ title: ReactNode;
11
+ /**
12
+ * Whether the drawer is open.
13
+ */
14
+ open?: boolean;
15
+ /**
16
+ * Whether the drawer is closable.
17
+ * @default true
18
+ */
19
+ closable?: boolean;
20
+ /**
21
+ * Whether the drawer is closed when the mask is clicked.
22
+ * @default false
23
+ */
24
+ closeOnMaskClick?: boolean;
25
+ /**
26
+ * Whether the drawer is closed when the escape key is pressed.
27
+ * @default true
28
+ */
29
+ closeOnEscPress?: boolean;
30
+ /**
31
+ * Whether the drawer is destroyed when it is closed.
32
+ * @default false
33
+ */
34
+ destroyOnClose?: boolean;
35
+ /**
36
+ * Whether the drawer is canceled when it is closed.
37
+ * @default true
38
+ */
39
+ cancelOnClose?: boolean;
40
+ /**
41
+ * The placement of the drawer.
42
+ * @default "right"
43
+ */
44
+ placement?: Placement;
45
+ /**
46
+ * The width or height of the drawer.
47
+ * Whether it is width or height, it depends on the value of placement property.
48
+ */
49
+ expansionSize?: LiteralUnion<"small" | "medium" | "narrow" | "half" | "wide" | "full", LengthValue>;
50
+ /**
51
+ * Whether the drawer is loading.
52
+ */
53
+ loading?: boolean;
54
+ /**
55
+ * The extra content of the drawer top right corner.
56
+ */
57
+ extra?: ReactNode;
58
+ /**
59
+ * Whether to show the cancel button.
60
+ * @default true
61
+ */
62
+ showCancelButton?: boolean;
63
+ /**
64
+ * The text of the cancel button.
65
+ * @default "取消"
66
+ */
67
+ cancelButtonText?: string;
68
+ /**
69
+ * The text of the ok button.
70
+ * @default "提交"
71
+ */
72
+ okButtonText?: string;
73
+ /**
74
+ * The actions content of the drawer.
75
+ */
76
+ actions?: ReactNode | Mapper<readonly [ReactElement, ReactElement], ReactNode>;
77
+ /**
78
+ * The callback function when the ok button is clicked.
79
+ */
80
+ onOk?: Provider<MaybePromise<void>>;
81
+ /**
82
+ * The callback function when the drawer is closed.
83
+ */
84
+ onClose?: Consumer<void>;
85
+ /**
86
+ * The callback function when the cancel button is clicked.
87
+ */
88
+ onCancel?: Consumer<void>;
89
+ /**
90
+ * The callback function when the drawer is opened.
91
+ */
92
+ onAfterOpen?: Consumer<void>;
93
+ /**
94
+ * The callback function when the drawer is closed.
95
+ */
96
+ onAfterClose?: Consumer<void>;
97
+ }