@vef-framework/components 1.0.64 → 1.0.65

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 (573) hide show
  1. package/es/index.js +2 -81
  2. package/es/internal/index.js +2 -2
  3. package/es/internal/modern-normalize.css.js +2 -4
  4. package/es/internal/utils.js +2 -6
  5. package/es/vef-access-denied/access-denied-icon.js +2 -928
  6. package/es/vef-access-denied/index.js +10 -45
  7. package/es/vef-action-buttons/index.js +2 -75
  8. package/es/vef-auto-sizer/index.js +2 -6
  9. package/es/vef-avatar/index.js +2 -20
  10. package/es/vef-avatar-group/index.js +2 -25
  11. package/es/vef-badge/index.js +2 -47
  12. package/es/vef-bool/hooks/use-bool-instance.js +2 -34
  13. package/es/vef-bool/index.js +2 -60
  14. package/es/vef-breadcrumb/index.js +2 -48
  15. package/es/vef-button/components/base-button.js +2 -73
  16. package/es/vef-button/index.js +2 -151
  17. package/es/vef-card/index.js +2 -25
  18. package/es/vef-card-meta/index.js +2 -12
  19. package/es/vef-checkbox/hooks/use-checkbox-instance.js +2 -20
  20. package/es/vef-checkbox/hooks/use-data-options.js +2 -40
  21. package/es/vef-checkbox/index.js +4 -88
  22. package/es/vef-col/index.js +2 -11
  23. package/es/vef-color-picker/index.js +2 -46
  24. package/es/vef-compact/index.js +2 -15
  25. package/es/vef-config-provider/global-style.js +16 -23
  26. package/es/vef-config-provider/hooks/use-ui-config.js +2 -125
  27. package/es/vef-config-provider/index.js +4 -121
  28. package/es/vef-config-provider/store.js +2 -21
  29. package/es/vef-container/index.js +2 -18
  30. package/es/vef-crud-page/components/crud-actions.js +2 -32
  31. package/es/vef-crud-page/components/crud-filter.js +2 -54
  32. package/es/vef-crud-page/components/crud-footer.js +4 -116
  33. package/es/vef-crud-page/components/crud-form-modal.js +2 -53
  34. package/es/vef-crud-page/components/crud-header.js +2 -29
  35. package/es/vef-crud-page/components/crud-table.js +2 -76
  36. package/es/vef-crud-page/hooks/use-action-buttons.js +2 -37
  37. package/es/vef-crud-page/hooks/use-crud-context.js +2 -20
  38. package/es/vef-crud-page/hooks/use-crud-schema.js +2 -114
  39. package/es/vef-crud-page/hooks/use-operation-buttons.js +2 -60
  40. package/es/vef-crud-page/index.js +2 -150
  41. package/es/vef-crud-page/store.js +2 -142
  42. package/es/vef-divider/index.js +2 -24
  43. package/es/vef-drawer/components/action-button-wrapper.js +2 -49
  44. package/es/vef-drawer/components/button-props.js +1 -2
  45. package/es/vef-drawer/components/cancel-action-button.js +2 -21
  46. package/es/vef-drawer/components/ok-action-button.js +2 -20
  47. package/es/vef-drawer/context.js +2 -15
  48. package/es/vef-drawer/index.js +4 -154
  49. package/es/vef-dropdown/index.js +2 -92
  50. package/es/vef-dynamic-icon/index.js +2 -46
  51. package/es/vef-dynamic-icon/props.js +2 -6
  52. package/es/vef-empty/index.js +2 -37
  53. package/es/vef-empty-placeholder/index.js +5 -19
  54. package/es/vef-error/error-icon.js +2 -757
  55. package/es/vef-error/index.js +10 -48
  56. package/es/vef-filter/components/action-buttons.js +6 -119
  57. package/es/vef-filter/components/advanced-filter.js +9 -71
  58. package/es/vef-filter/components/basic-filter.js +5 -35
  59. package/es/vef-filter/components/fields/index.js +2 -11
  60. package/es/vef-filter/components/fields/input-number.js +2 -90
  61. package/es/vef-filter/components/fields/input.js +2 -67
  62. package/es/vef-filter/components/filter-field.js +2 -19
  63. package/es/vef-filter/components/filter-item.js +2 -112
  64. package/es/vef-filter/event.js +2 -44
  65. package/es/vef-filter/helper.js +2 -15
  66. package/es/vef-filter/hooks/use-action-handlers.js +2 -70
  67. package/es/vef-filter/hooks/use-computed-values.js +2 -55
  68. package/es/vef-filter/hooks/use-filter-context.js +2 -18
  69. package/es/vef-filter/hooks/use-filter-initialization.js +2 -37
  70. package/es/vef-filter/hooks/use-filter-instance.js +2 -26
  71. package/es/vef-filter/hooks/use-filter-items.js +2 -23
  72. package/es/vef-filter/hooks/use-filter-values-change.js +2 -30
  73. package/es/vef-filter/hooks/use-label-config.js +2 -27
  74. package/es/vef-filter/index.js +3 -141
  75. package/es/vef-filter/store.js +2 -71
  76. package/es/vef-flex/index.js +2 -31
  77. package/es/vef-float-button/index.js +2 -49
  78. package/es/vef-float-button-group/index.js +2 -20
  79. package/es/vef-form/components/fields/index.js +2 -11
  80. package/es/vef-form/components/fields/input-number.js +2 -123
  81. package/es/vef-form/components/fields/input.js +2 -132
  82. package/es/vef-form/components/form-actions.js +4 -58
  83. package/es/vef-form/components/form-content.js +3 -144
  84. package/es/vef-form/components/form-field.js +2 -22
  85. package/es/vef-form/components/form-group.js +4 -64
  86. package/es/vef-form/components/form-hidden-item.js +2 -36
  87. package/es/vef-form/components/form-item.js +2 -79
  88. package/es/vef-form/components/form-row.js +2 -98
  89. package/es/vef-form/event.js +2 -44
  90. package/es/vef-form/helper.js +2 -15
  91. package/es/vef-form/hooks/use-action-handlers.js +2 -130
  92. package/es/vef-form/hooks/use-columns-layout.js +2 -122
  93. package/es/vef-form/hooks/use-computed-values.js +2 -55
  94. package/es/vef-form/hooks/use-form-context.js +2 -14
  95. package/es/vef-form/hooks/use-form-initialization.js +2 -45
  96. package/es/vef-form/hooks/use-form-instance.js +2 -26
  97. package/es/vef-form/hooks/use-form-values-change.js +2 -30
  98. package/es/vef-form/hooks/use-label-width.js +2 -18
  99. package/es/vef-form/index.js +4 -174
  100. package/es/vef-form/store.js +2 -65
  101. package/es/vef-form/validation-rules.js +2 -286
  102. package/es/vef-form-drawer/index.js +2 -98
  103. package/es/vef-form-modal/index.js +2 -95
  104. package/es/vef-generic-select/index.js +2 -81
  105. package/es/vef-grid/index.js +7 -83
  106. package/es/vef-grid/props.js +2 -4
  107. package/es/vef-grid-item/index.js +2 -52
  108. package/es/vef-icon/index.js +2 -45
  109. package/es/vef-icon-select/index.js +12 -146
  110. package/es/vef-input/hooks/use-input-instance.js +2 -15
  111. package/es/vef-input/index.js +2 -64
  112. package/es/vef-input-number/hooks/use-input-number-instance.js +2 -13
  113. package/es/vef-input-number/index.js +2 -148
  114. package/es/vef-layout/common-styles.js +5 -10
  115. package/es/vef-layout/components/content.js +2 -13
  116. package/es/vef-layout/components/font-size.js +2 -68
  117. package/es/vef-layout/components/fullscreen.js +2 -23
  118. package/es/vef-layout/components/header-action-icons.js +7 -29
  119. package/es/vef-layout/components/header-content.js +2 -19
  120. package/es/vef-layout/components/header.js +7 -69
  121. package/es/vef-layout/components/icon-boy.js +2 -69
  122. package/es/vef-layout/components/icon-girl.js +2 -76
  123. package/es/vef-layout/components/icon-menu-fold-left.js +2 -23
  124. package/es/vef-layout/components/icon-menu-unfold-left.js +2 -23
  125. package/es/vef-layout/components/menu-groups.js +16 -123
  126. package/es/vef-layout/components/message.js +2 -11
  127. package/es/vef-layout/components/search.js +2 -11
  128. package/es/vef-layout/components/sider.js +6 -54
  129. package/es/vef-layout/components/title.js +9 -53
  130. package/es/vef-layout/components/user-avatar.js +10 -80
  131. package/es/vef-layout/hooks/use-layout-context.js +2 -10
  132. package/es/vef-layout/index.js +3 -33
  133. package/es/vef-layout/logo.svg.js +2 -4
  134. package/es/vef-layout/store.js +2 -16
  135. package/es/vef-loading-placeholder/index.js +6 -42
  136. package/es/vef-login/index.js +22 -152
  137. package/es/vef-login/login-icon.js +2 -668
  138. package/es/vef-menu/index.js +5 -77
  139. package/es/vef-modal/components/action-button-wrapper.js +2 -49
  140. package/es/vef-modal/components/button-props.js +1 -2
  141. package/es/vef-modal/components/cancel-action-button.js +2 -18
  142. package/es/vef-modal/components/ok-action-button.js +2 -20
  143. package/es/vef-modal/context.js +2 -15
  144. package/es/vef-modal/index.js +3 -239
  145. package/es/vef-not-found/index.js +10 -45
  146. package/es/vef-not-found/not-found-icon.js +2 -844
  147. package/es/vef-page/index.js +11 -87
  148. package/es/vef-pagination/index.js +2 -57
  149. package/es/vef-pagination/props.js +2 -13
  150. package/es/vef-paragraph/index.js +2 -89
  151. package/es/vef-password/hooks/use-password-instance.js +2 -13
  152. package/es/vef-password/index.js +2 -67
  153. package/es/vef-popconfirm/index.js +2 -56
  154. package/es/vef-popover/index.js +2 -29
  155. package/es/vef-radio/hooks/use-data-options.js +2 -40
  156. package/es/vef-radio/hooks/use-radio-instance.js +2 -20
  157. package/es/vef-radio/index.js +4 -88
  158. package/es/vef-rate/hooks/use-rate-instance.js +2 -13
  159. package/es/vef-rate/index.js +2 -30
  160. package/es/vef-responsive-container/index.js +3 -54
  161. package/es/vef-responsive-item/index.js +3 -23
  162. package/es/vef-ribbon/index.js +2 -38
  163. package/es/vef-row/index.js +2 -12
  164. package/es/vef-scroll-area/components/scrollbar.js +8 -34
  165. package/es/vef-scroll-area/index.js +4 -69
  166. package/es/vef-select/components/option.js +4 -23
  167. package/es/vef-select/hooks/use-data-options.js +2 -47
  168. package/es/vef-select/hooks/use-field-names.js +2 -21
  169. package/es/vef-select/hooks/use-render-label.js +3 -23
  170. package/es/vef-select/hooks/use-render-option.js +2 -19
  171. package/es/vef-select/hooks/use-select-instance.js +2 -20
  172. package/es/vef-select/index.js +2 -100
  173. package/es/vef-slider/hooks/use-slider-instance.js +2 -13
  174. package/es/vef-slider/index.js +2 -34
  175. package/es/vef-sortable-list/components/overlay-item.js +3 -31
  176. package/es/vef-sortable-list/components/sortable-item.js +3 -75
  177. package/es/vef-sortable-list/hooks/use-merged-items.js +2 -21
  178. package/es/vef-sortable-list/index.js +2 -114
  179. package/es/vef-space/index.js +2 -25
  180. package/es/vef-spin/index.js +2 -12
  181. package/es/vef-splitter/index.js +2 -20
  182. package/es/vef-splitter-panel/index.js +2 -12
  183. package/es/vef-status/index.js +2 -37
  184. package/es/vef-table/components/columns/bool.js +2 -91
  185. package/es/vef-table/components/columns/code.js +2 -10
  186. package/es/vef-table/components/columns/data-dictionary.js +2 -92
  187. package/es/vef-table/components/columns/enum.js +2 -101
  188. package/es/vef-table/components/columns/file.js +2 -10
  189. package/es/vef-table/components/columns/icon.js +2 -10
  190. package/es/vef-table/components/columns/id.js +2 -82
  191. package/es/vef-table/components/columns/image.js +2 -11
  192. package/es/vef-table/components/columns/index.js +2 -33
  193. package/es/vef-table/components/columns/markdown.js +2 -10
  194. package/es/vef-table/components/columns/number.js +2 -83
  195. package/es/vef-table/components/columns/render.js +2 -28
  196. package/es/vef-table/components/columns/rich-text.js +2 -10
  197. package/es/vef-table/components/columns/text.js +2 -88
  198. package/es/vef-table/components/columns-settings.js +11 -195
  199. package/es/vef-table/components/operation-buttons.js +3 -230
  200. package/es/vef-table/components/settings-icon.js +4 -19
  201. package/es/vef-table/components/table-footer.js +4 -102
  202. package/es/vef-table/helper.js +2 -15
  203. package/es/vef-table/hooks/use-computed-batch-buttons.js +2 -33
  204. package/es/vef-table/hooks/use-computed-columns.js +2 -20
  205. package/es/vef-table/hooks/use-computed-values.js +2 -38
  206. package/es/vef-table/hooks/use-data.js +2 -53
  207. package/es/vef-table/hooks/use-default-column-configs.js +2 -27
  208. package/es/vef-table/hooks/use-display-value.js +2 -36
  209. package/es/vef-table/hooks/use-helper-columns.js +2 -67
  210. package/es/vef-table/hooks/use-operation-column-width.js +2 -50
  211. package/es/vef-table/hooks/use-pagination-props.js +2 -44
  212. package/es/vef-table/hooks/use-row-props.js +2 -39
  213. package/es/vef-table/hooks/use-row-selection-config.js +2 -112
  214. package/es/vef-table/hooks/use-selected-rows.js +2 -26
  215. package/es/vef-table/hooks/use-table-columns.js +2 -56
  216. package/es/vef-table/hooks/use-table-context.js +2 -21
  217. package/es/vef-table/hooks/use-table-instance.js +2 -15
  218. package/es/vef-table/hooks/use-table-summary.js +2 -42
  219. package/es/vef-table/hooks/use-table-width.js +2 -13
  220. package/es/vef-table/index.js +6 -227
  221. package/es/vef-table/store.js +2 -17
  222. package/es/vef-tabs/index.js +2 -25
  223. package/es/vef-tag/index.js +2 -28
  224. package/es/vef-temporal-picker/helper.js +2 -57
  225. package/es/vef-temporal-picker/hooks/use-dayjs-value.js +2 -18
  226. package/es/vef-temporal-picker/hooks/use-temporal-limit.js +2 -34
  227. package/es/vef-temporal-picker/hooks/use-temporal-picker-instance.js +2 -19
  228. package/es/vef-temporal-picker/index.js +2 -125
  229. package/es/vef-temporal-range-picker/helper.js +2 -57
  230. package/es/vef-temporal-range-picker/hooks/use-dayjs-values.js +2 -23
  231. package/es/vef-temporal-range-picker/hooks/use-temporal-limit.js +2 -34
  232. package/es/vef-temporal-range-picker/hooks/use-temporal-range-picker-instance.js +2 -19
  233. package/es/vef-temporal-range-picker/index.js +2 -128
  234. package/es/vef-temporal-range-picker/props.js +2 -4
  235. package/es/vef-text/index.js +2 -80
  236. package/es/vef-textarea/hooks/use-textarea-instance.js +2 -13
  237. package/es/vef-textarea/index.js +2 -67
  238. package/es/vef-title/index.js +7 -89
  239. package/es/vef-tooltip/index.js +2 -35
  240. package/es/vef-tree-select/hooks/use-change-handler.js +2 -33
  241. package/es/vef-tree-select/hooks/use-data-options.js +2 -45
  242. package/es/vef-tree-select/hooks/use-tree-select-instance.js +2 -20
  243. package/es/vef-tree-select/index.js +2 -86
  244. package/es/vef-virtual-grid/index.js +4 -107
  245. package/es/vef-virtual-list/index.js +5 -215
  246. package/lib/index.cjs +2 -168
  247. package/lib/internal/index.cjs +2 -10
  248. package/lib/internal/modern-normalize.css.cjs +2 -8
  249. package/lib/internal/utils.cjs +2 -10
  250. package/lib/vef-access-denied/access-denied-icon.cjs +2 -932
  251. package/lib/vef-access-denied/index.cjs +10 -49
  252. package/lib/vef-access-denied/props.cjs +2 -4
  253. package/lib/vef-action-buttons/index.cjs +2 -79
  254. package/lib/vef-action-buttons/props.cjs +2 -4
  255. package/lib/vef-auto-sizer/index.cjs +2 -10
  256. package/lib/vef-auto-sizer/props.cjs +2 -4
  257. package/lib/vef-avatar/index.cjs +2 -24
  258. package/lib/vef-avatar/props.cjs +2 -4
  259. package/lib/vef-avatar-group/index.cjs +2 -29
  260. package/lib/vef-avatar-group/props.cjs +2 -4
  261. package/lib/vef-badge/index.cjs +2 -51
  262. package/lib/vef-badge/props.cjs +2 -4
  263. package/lib/vef-bool/hooks/use-bool-instance.cjs +2 -38
  264. package/lib/vef-bool/index.cjs +2 -64
  265. package/lib/vef-bool/props.cjs +2 -4
  266. package/lib/vef-breadcrumb/index.cjs +2 -52
  267. package/lib/vef-breadcrumb/props.cjs +2 -4
  268. package/lib/vef-button/components/base-button.cjs +2 -77
  269. package/lib/vef-button/index.cjs +2 -155
  270. package/lib/vef-button/props.cjs +2 -4
  271. package/lib/vef-card/index.cjs +2 -29
  272. package/lib/vef-card/props.cjs +2 -4
  273. package/lib/vef-card-meta/index.cjs +2 -16
  274. package/lib/vef-card-meta/props.cjs +2 -4
  275. package/lib/vef-checkbox/hooks/use-checkbox-instance.cjs +2 -24
  276. package/lib/vef-checkbox/hooks/use-data-options.cjs +2 -44
  277. package/lib/vef-checkbox/index.cjs +4 -92
  278. package/lib/vef-checkbox/props.cjs +2 -4
  279. package/lib/vef-col/index.cjs +2 -15
  280. package/lib/vef-col/props.cjs +2 -4
  281. package/lib/vef-color-picker/index.cjs +2 -50
  282. package/lib/vef-color-picker/props.cjs +2 -4
  283. package/lib/vef-compact/index.cjs +2 -19
  284. package/lib/vef-compact/props.cjs +2 -4
  285. package/lib/vef-config-provider/global-style.cjs +16 -28
  286. package/lib/vef-config-provider/hooks/use-ui-config.cjs +2 -129
  287. package/lib/vef-config-provider/index.cjs +4 -125
  288. package/lib/vef-config-provider/props.cjs +2 -4
  289. package/lib/vef-config-provider/store.cjs +2 -27
  290. package/lib/vef-container/index.cjs +2 -22
  291. package/lib/vef-container/props.cjs +2 -4
  292. package/lib/vef-crud-page/components/crud-actions.cjs +2 -36
  293. package/lib/vef-crud-page/components/crud-filter.cjs +2 -58
  294. package/lib/vef-crud-page/components/crud-footer.cjs +4 -120
  295. package/lib/vef-crud-page/components/crud-form-modal.cjs +2 -57
  296. package/lib/vef-crud-page/components/crud-header.cjs +2 -33
  297. package/lib/vef-crud-page/components/crud-table.cjs +2 -80
  298. package/lib/vef-crud-page/hooks/use-action-buttons.cjs +2 -41
  299. package/lib/vef-crud-page/hooks/use-crud-context.cjs +2 -24
  300. package/lib/vef-crud-page/hooks/use-crud-schema.cjs +2 -118
  301. package/lib/vef-crud-page/hooks/use-operation-buttons.cjs +2 -64
  302. package/lib/vef-crud-page/index.cjs +2 -154
  303. package/lib/vef-crud-page/props.cjs +2 -4
  304. package/lib/vef-crud-page/store.cjs +2 -148
  305. package/lib/vef-crud-page/types.cjs +2 -4
  306. package/lib/vef-divider/index.cjs +2 -28
  307. package/lib/vef-divider/props.cjs +2 -4
  308. package/lib/vef-drawer/components/action-button-wrapper.cjs +2 -53
  309. package/lib/vef-drawer/components/button-props.cjs +2 -4
  310. package/lib/vef-drawer/components/cancel-action-button.cjs +2 -25
  311. package/lib/vef-drawer/components/ok-action-button.cjs +2 -24
  312. package/lib/vef-drawer/context.cjs +2 -21
  313. package/lib/vef-drawer/index.cjs +4 -159
  314. package/lib/vef-drawer/props.cjs +2 -4
  315. package/lib/vef-dropdown/index.cjs +2 -96
  316. package/lib/vef-dropdown/props.cjs +2 -4
  317. package/lib/vef-dynamic-icon/index.cjs +2 -50
  318. package/lib/vef-dynamic-icon/props.cjs +2 -10
  319. package/lib/vef-empty/index.cjs +2 -41
  320. package/lib/vef-empty/props.cjs +2 -4
  321. package/lib/vef-empty-placeholder/index.cjs +5 -23
  322. package/lib/vef-empty-placeholder/props.cjs +2 -4
  323. package/lib/vef-error/error-icon.cjs +2 -761
  324. package/lib/vef-error/index.cjs +10 -52
  325. package/lib/vef-error/props.cjs +2 -4
  326. package/lib/vef-filter/components/action-buttons.cjs +6 -123
  327. package/lib/vef-filter/components/advanced-filter.cjs +9 -75
  328. package/lib/vef-filter/components/basic-filter.cjs +5 -39
  329. package/lib/vef-filter/components/fields/index.cjs +2 -15
  330. package/lib/vef-filter/components/fields/input-number.cjs +2 -94
  331. package/lib/vef-filter/components/fields/input.cjs +2 -71
  332. package/lib/vef-filter/components/fields/props.cjs +2 -4
  333. package/lib/vef-filter/components/filter-field.cjs +2 -23
  334. package/lib/vef-filter/components/filter-item.cjs +2 -116
  335. package/lib/vef-filter/event.cjs +2 -48
  336. package/lib/vef-filter/helper.cjs +2 -19
  337. package/lib/vef-filter/hooks/use-action-handlers.cjs +2 -74
  338. package/lib/vef-filter/hooks/use-computed-values.cjs +2 -59
  339. package/lib/vef-filter/hooks/use-filter-context.cjs +2 -24
  340. package/lib/vef-filter/hooks/use-filter-initialization.cjs +2 -41
  341. package/lib/vef-filter/hooks/use-filter-instance.cjs +2 -30
  342. package/lib/vef-filter/hooks/use-filter-items.cjs +2 -27
  343. package/lib/vef-filter/hooks/use-filter-values-change.cjs +2 -34
  344. package/lib/vef-filter/hooks/use-label-config.cjs +2 -31
  345. package/lib/vef-filter/index.cjs +3 -145
  346. package/lib/vef-filter/props.cjs +2 -4
  347. package/lib/vef-filter/store.cjs +2 -77
  348. package/lib/vef-filter/types.cjs +2 -4
  349. package/lib/vef-flex/index.cjs +2 -35
  350. package/lib/vef-flex/props.cjs +2 -4
  351. package/lib/vef-float-button/index.cjs +2 -53
  352. package/lib/vef-float-button/props.cjs +2 -4
  353. package/lib/vef-float-button-group/index.cjs +2 -24
  354. package/lib/vef-float-button-group/props.cjs +2 -4
  355. package/lib/vef-form/components/fields/index.cjs +2 -15
  356. package/lib/vef-form/components/fields/input-number.cjs +2 -127
  357. package/lib/vef-form/components/fields/input.cjs +2 -136
  358. package/lib/vef-form/components/fields/props.cjs +2 -4
  359. package/lib/vef-form/components/form-actions.cjs +4 -62
  360. package/lib/vef-form/components/form-content.cjs +3 -148
  361. package/lib/vef-form/components/form-field.cjs +2 -26
  362. package/lib/vef-form/components/form-group.cjs +4 -68
  363. package/lib/vef-form/components/form-hidden-item.cjs +2 -40
  364. package/lib/vef-form/components/form-item.cjs +2 -83
  365. package/lib/vef-form/components/form-row.cjs +2 -102
  366. package/lib/vef-form/event.cjs +2 -48
  367. package/lib/vef-form/helper.cjs +2 -19
  368. package/lib/vef-form/hooks/use-action-handlers.cjs +2 -134
  369. package/lib/vef-form/hooks/use-columns-layout.cjs +2 -126
  370. package/lib/vef-form/hooks/use-computed-values.cjs +2 -59
  371. package/lib/vef-form/hooks/use-form-context.cjs +2 -20
  372. package/lib/vef-form/hooks/use-form-initialization.cjs +2 -49
  373. package/lib/vef-form/hooks/use-form-instance.cjs +2 -30
  374. package/lib/vef-form/hooks/use-form-values-change.cjs +2 -34
  375. package/lib/vef-form/hooks/use-label-width.cjs +2 -22
  376. package/lib/vef-form/index.cjs +4 -178
  377. package/lib/vef-form/props.cjs +2 -4
  378. package/lib/vef-form/store.cjs +2 -71
  379. package/lib/vef-form/types.cjs +2 -4
  380. package/lib/vef-form/validation-rules.cjs +2 -312
  381. package/lib/vef-form-drawer/index.cjs +2 -102
  382. package/lib/vef-form-drawer/props.cjs +2 -4
  383. package/lib/vef-form-modal/index.cjs +2 -99
  384. package/lib/vef-form-modal/props.cjs +2 -4
  385. package/lib/vef-generic-select/index.cjs +2 -85
  386. package/lib/vef-generic-select/props.cjs +2 -4
  387. package/lib/vef-grid/index.cjs +7 -87
  388. package/lib/vef-grid/props.cjs +2 -8
  389. package/lib/vef-grid-item/index.cjs +2 -56
  390. package/lib/vef-grid-item/props.cjs +2 -4
  391. package/lib/vef-icon/index.cjs +2 -49
  392. package/lib/vef-icon/props.cjs +2 -4
  393. package/lib/vef-icon-select/index.cjs +12 -150
  394. package/lib/vef-icon-select/props.cjs +2 -4
  395. package/lib/vef-input/hooks/use-input-instance.cjs +2 -19
  396. package/lib/vef-input/index.cjs +2 -68
  397. package/lib/vef-input/props.cjs +2 -4
  398. package/lib/vef-input-number/hooks/use-input-number-instance.cjs +2 -17
  399. package/lib/vef-input-number/index.cjs +2 -152
  400. package/lib/vef-input-number/props.cjs +2 -4
  401. package/lib/vef-layout/common-styles.cjs +5 -14
  402. package/lib/vef-layout/components/content.cjs +2 -17
  403. package/lib/vef-layout/components/font-size.cjs +2 -72
  404. package/lib/vef-layout/components/fullscreen.cjs +2 -27
  405. package/lib/vef-layout/components/header-action-icons.cjs +7 -33
  406. package/lib/vef-layout/components/header-content.cjs +2 -23
  407. package/lib/vef-layout/components/header.cjs +7 -73
  408. package/lib/vef-layout/components/icon-boy.cjs +2 -73
  409. package/lib/vef-layout/components/icon-girl.cjs +2 -80
  410. package/lib/vef-layout/components/icon-menu-fold-left.cjs +2 -27
  411. package/lib/vef-layout/components/icon-menu-unfold-left.cjs +2 -27
  412. package/lib/vef-layout/components/menu-groups.cjs +16 -127
  413. package/lib/vef-layout/components/message.cjs +2 -15
  414. package/lib/vef-layout/components/search.cjs +2 -15
  415. package/lib/vef-layout/components/sider.cjs +6 -58
  416. package/lib/vef-layout/components/title.cjs +9 -57
  417. package/lib/vef-layout/components/user-avatar.cjs +10 -84
  418. package/lib/vef-layout/hooks/use-layout-context.cjs +2 -16
  419. package/lib/vef-layout/index.cjs +3 -37
  420. package/lib/vef-layout/logo.svg.cjs +2 -8
  421. package/lib/vef-layout/props.cjs +2 -4
  422. package/lib/vef-layout/store.cjs +2 -22
  423. package/lib/vef-loading-placeholder/index.cjs +6 -46
  424. package/lib/vef-loading-placeholder/props.cjs +2 -4
  425. package/lib/vef-login/index.cjs +22 -156
  426. package/lib/vef-login/login-icon.cjs +2 -672
  427. package/lib/vef-login/props.cjs +2 -4
  428. package/lib/vef-menu/index.cjs +5 -81
  429. package/lib/vef-menu/props.cjs +2 -4
  430. package/lib/vef-modal/components/action-button-wrapper.cjs +2 -53
  431. package/lib/vef-modal/components/button-props.cjs +2 -4
  432. package/lib/vef-modal/components/cancel-action-button.cjs +2 -22
  433. package/lib/vef-modal/components/ok-action-button.cjs +2 -24
  434. package/lib/vef-modal/context.cjs +2 -21
  435. package/lib/vef-modal/index.cjs +3 -244
  436. package/lib/vef-modal/props.cjs +2 -4
  437. package/lib/vef-not-found/index.cjs +10 -49
  438. package/lib/vef-not-found/not-found-icon.cjs +2 -848
  439. package/lib/vef-not-found/props.cjs +2 -4
  440. package/lib/vef-page/index.cjs +11 -91
  441. package/lib/vef-page/props.cjs +2 -4
  442. package/lib/vef-pagination/index.cjs +2 -61
  443. package/lib/vef-pagination/props.cjs +2 -17
  444. package/lib/vef-paragraph/index.cjs +2 -93
  445. package/lib/vef-paragraph/props.cjs +2 -4
  446. package/lib/vef-password/hooks/use-password-instance.cjs +2 -17
  447. package/lib/vef-password/index.cjs +2 -71
  448. package/lib/vef-password/props.cjs +2 -4
  449. package/lib/vef-popconfirm/index.cjs +2 -60
  450. package/lib/vef-popconfirm/props.cjs +2 -4
  451. package/lib/vef-popover/index.cjs +2 -33
  452. package/lib/vef-popover/props.cjs +2 -4
  453. package/lib/vef-radio/hooks/use-data-options.cjs +2 -44
  454. package/lib/vef-radio/hooks/use-radio-instance.cjs +2 -24
  455. package/lib/vef-radio/index.cjs +4 -92
  456. package/lib/vef-radio/props.cjs +2 -4
  457. package/lib/vef-rate/hooks/use-rate-instance.cjs +2 -17
  458. package/lib/vef-rate/index.cjs +2 -34
  459. package/lib/vef-rate/props.cjs +2 -4
  460. package/lib/vef-responsive-container/index.cjs +3 -58
  461. package/lib/vef-responsive-container/props.cjs +2 -4
  462. package/lib/vef-responsive-item/index.cjs +3 -27
  463. package/lib/vef-responsive-item/props.cjs +2 -4
  464. package/lib/vef-ribbon/index.cjs +2 -42
  465. package/lib/vef-ribbon/props.cjs +2 -4
  466. package/lib/vef-row/index.cjs +2 -16
  467. package/lib/vef-row/props.cjs +2 -4
  468. package/lib/vef-scroll-area/components/scrollbar.cjs +8 -38
  469. package/lib/vef-scroll-area/index.cjs +4 -73
  470. package/lib/vef-scroll-area/props.cjs +2 -4
  471. package/lib/vef-select/components/option.cjs +4 -27
  472. package/lib/vef-select/hooks/use-data-options.cjs +2 -51
  473. package/lib/vef-select/hooks/use-field-names.cjs +2 -25
  474. package/lib/vef-select/hooks/use-render-label.cjs +3 -27
  475. package/lib/vef-select/hooks/use-render-option.cjs +2 -23
  476. package/lib/vef-select/hooks/use-select-instance.cjs +2 -24
  477. package/lib/vef-select/index.cjs +2 -104
  478. package/lib/vef-select/props.cjs +2 -4
  479. package/lib/vef-slider/hooks/use-slider-instance.cjs +2 -17
  480. package/lib/vef-slider/index.cjs +2 -38
  481. package/lib/vef-slider/props.cjs +2 -4
  482. package/lib/vef-sortable-list/components/overlay-item.cjs +3 -35
  483. package/lib/vef-sortable-list/components/sortable-item.cjs +3 -79
  484. package/lib/vef-sortable-list/hooks/use-merged-items.cjs +2 -25
  485. package/lib/vef-sortable-list/index.cjs +2 -118
  486. package/lib/vef-sortable-list/props.cjs +2 -4
  487. package/lib/vef-space/index.cjs +2 -29
  488. package/lib/vef-space/props.cjs +2 -4
  489. package/lib/vef-spin/index.cjs +2 -16
  490. package/lib/vef-spin/props.cjs +2 -4
  491. package/lib/vef-splitter/index.cjs +2 -24
  492. package/lib/vef-splitter/props.cjs +2 -4
  493. package/lib/vef-splitter-panel/index.cjs +2 -16
  494. package/lib/vef-splitter-panel/props.cjs +2 -4
  495. package/lib/vef-status/index.cjs +2 -41
  496. package/lib/vef-status/props.cjs +2 -4
  497. package/lib/vef-table/components/columns/bool.cjs +2 -95
  498. package/lib/vef-table/components/columns/code.cjs +2 -14
  499. package/lib/vef-table/components/columns/data-dictionary.cjs +2 -96
  500. package/lib/vef-table/components/columns/enum.cjs +2 -105
  501. package/lib/vef-table/components/columns/file.cjs +2 -14
  502. package/lib/vef-table/components/columns/icon.cjs +2 -14
  503. package/lib/vef-table/components/columns/id.cjs +2 -86
  504. package/lib/vef-table/components/columns/image.cjs +2 -15
  505. package/lib/vef-table/components/columns/index.cjs +2 -37
  506. package/lib/vef-table/components/columns/markdown.cjs +2 -14
  507. package/lib/vef-table/components/columns/number.cjs +2 -87
  508. package/lib/vef-table/components/columns/props.cjs +2 -4
  509. package/lib/vef-table/components/columns/render.cjs +2 -32
  510. package/lib/vef-table/components/columns/rich-text.cjs +2 -14
  511. package/lib/vef-table/components/columns/text.cjs +2 -92
  512. package/lib/vef-table/components/columns-settings.cjs +11 -199
  513. package/lib/vef-table/components/operation-buttons.cjs +3 -234
  514. package/lib/vef-table/components/settings-icon.cjs +4 -23
  515. package/lib/vef-table/components/table-footer.cjs +4 -106
  516. package/lib/vef-table/helper.cjs +2 -19
  517. package/lib/vef-table/hooks/use-computed-batch-buttons.cjs +2 -37
  518. package/lib/vef-table/hooks/use-computed-columns.cjs +2 -24
  519. package/lib/vef-table/hooks/use-computed-values.cjs +2 -42
  520. package/lib/vef-table/hooks/use-data.cjs +2 -57
  521. package/lib/vef-table/hooks/use-default-column-configs.cjs +2 -31
  522. package/lib/vef-table/hooks/use-display-value.cjs +2 -40
  523. package/lib/vef-table/hooks/use-helper-columns.cjs +2 -71
  524. package/lib/vef-table/hooks/use-operation-column-width.cjs +2 -54
  525. package/lib/vef-table/hooks/use-pagination-props.cjs +2 -48
  526. package/lib/vef-table/hooks/use-row-props.cjs +2 -43
  527. package/lib/vef-table/hooks/use-row-selection-config.cjs +2 -116
  528. package/lib/vef-table/hooks/use-selected-rows.cjs +2 -30
  529. package/lib/vef-table/hooks/use-table-columns.cjs +2 -60
  530. package/lib/vef-table/hooks/use-table-context.cjs +2 -27
  531. package/lib/vef-table/hooks/use-table-instance.cjs +2 -19
  532. package/lib/vef-table/hooks/use-table-summary.cjs +2 -46
  533. package/lib/vef-table/hooks/use-table-width.cjs +2 -17
  534. package/lib/vef-table/index.cjs +6 -231
  535. package/lib/vef-table/props.cjs +2 -4
  536. package/lib/vef-table/store.cjs +2 -23
  537. package/lib/vef-table/types.cjs +2 -4
  538. package/lib/vef-tabs/index.cjs +2 -29
  539. package/lib/vef-tabs/props.cjs +2 -4
  540. package/lib/vef-tag/index.cjs +2 -32
  541. package/lib/vef-tag/props.cjs +2 -4
  542. package/lib/vef-temporal-picker/helper.cjs +2 -61
  543. package/lib/vef-temporal-picker/hooks/use-dayjs-value.cjs +2 -22
  544. package/lib/vef-temporal-picker/hooks/use-temporal-limit.cjs +2 -38
  545. package/lib/vef-temporal-picker/hooks/use-temporal-picker-instance.cjs +2 -23
  546. package/lib/vef-temporal-picker/index.cjs +2 -129
  547. package/lib/vef-temporal-picker/props.cjs +2 -4
  548. package/lib/vef-temporal-range-picker/helper.cjs +2 -61
  549. package/lib/vef-temporal-range-picker/hooks/use-dayjs-values.cjs +2 -27
  550. package/lib/vef-temporal-range-picker/hooks/use-temporal-limit.cjs +2 -38
  551. package/lib/vef-temporal-range-picker/hooks/use-temporal-range-picker-instance.cjs +2 -23
  552. package/lib/vef-temporal-range-picker/index.cjs +2 -132
  553. package/lib/vef-temporal-range-picker/props.cjs +2 -8
  554. package/lib/vef-text/index.cjs +2 -84
  555. package/lib/vef-text/props.cjs +2 -4
  556. package/lib/vef-textarea/hooks/use-textarea-instance.cjs +2 -17
  557. package/lib/vef-textarea/index.cjs +2 -71
  558. package/lib/vef-textarea/props.cjs +2 -4
  559. package/lib/vef-title/index.cjs +7 -93
  560. package/lib/vef-title/props.cjs +2 -4
  561. package/lib/vef-tooltip/index.cjs +2 -39
  562. package/lib/vef-tooltip/props.cjs +2 -4
  563. package/lib/vef-tree-select/hooks/use-change-handler.cjs +2 -37
  564. package/lib/vef-tree-select/hooks/use-data-options.cjs +2 -49
  565. package/lib/vef-tree-select/hooks/use-tree-select-instance.cjs +2 -24
  566. package/lib/vef-tree-select/index.cjs +2 -90
  567. package/lib/vef-tree-select/props.cjs +2 -4
  568. package/lib/vef-virtual-grid/index.cjs +4 -111
  569. package/lib/vef-virtual-grid/props.cjs +2 -4
  570. package/lib/vef-virtual-list/index.cjs +5 -219
  571. package/lib/vef-virtual-list/props.cjs +2 -4
  572. package/package.json +4 -4
  573. package/types/vef-config-provider/hooks/use-ui-config.d.ts +0 -1
@@ -1,34 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useComputedActionButtons } from '@vef-framework/hooks';
3
- import { useMemo } from 'react';
4
-
5
- function useComputedBatchActionButtons(batchActionButtons, tableContext) {
6
- const {
7
- externalContext,
8
- isFetching,
9
- refetch,
10
- selectedKeys,
11
- selectedRecords
12
- } = tableContext;
13
- const batchActionButtonContext = useMemo(() => ({
14
- isFetching,
15
- refetch,
16
- selectedKeys,
17
- selectedRecords,
18
- ...externalContext ?? {}
19
- }), [
20
- externalContext,
21
- isFetching,
22
- refetch,
23
- selectedKeys,
24
- selectedRecords
25
- ]);
26
- const computedBatchActionButtons = useComputedActionButtons(batchActionButtons, batchActionButtonContext);
27
- return {
28
- computedBatchActionButtons,
29
- batchActionButtonContext
30
- };
31
- }
32
-
33
- export { useComputedBatchActionButtons };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useComputedActionButtons as t}from"@vef-framework/hooks";import{useMemo as e}from"react";function useComputedBatchActionButtons(o,c){const{externalContext:n,isFetching:s,refetch:r,selectedKeys:i,selectedRecords:u}=c,d=e((()=>({isFetching:s,refetch:r,selectedKeys:i,selectedRecords:u,...n??{}})),[n,s,r,i,u]);return{computedBatchActionButtons:t(o,d),batchActionButtonContext:d}}export{useComputedBatchActionButtons};
34
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 */
@@ -1,21 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useMemo } from 'react';
3
-
4
- function useComputedColumns(columns, columnConfigMap) {
5
- return useMemo(() => columns.map(
6
- (column) => {
7
- const { name } = column;
8
- const config = columnConfigMap.get(name);
9
- return {
10
- ...column,
11
- show: config.show,
12
- fixed: config.fixed
13
- };
14
- }
15
- ).sort(
16
- (one, another) => columnConfigMap.get(one.name).order - columnConfigMap.get(another.name).order
17
- ), [columns, columnConfigMap]);
18
- }
19
-
20
- export { useComputedColumns };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useMemo as e}from"react";function useComputedColumns(o,r){return e((()=>o.map((e=>{const{name:o}=e,t=r.get(o);return{...e,show:t.show,fixed:t.fixed}})).sort(((e,o)=>r.get(e.name).order-r.get(o.name).order))),[o,r])}export{useComputedColumns};
21
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 */
@@ -1,39 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useDeepMemo } from '@vef-framework/hooks';
3
- import { computeValue } from '../helper.js';
4
-
5
- function useComputedValues(values, value, record, rowIndex, returnAsObject = false) {
6
- const computedValues = useDeepMemo(
7
- () => values.reduce((acc, it) => {
8
- const {
9
- key,
10
- rawValue,
11
- defaultValue
12
- } = it;
13
- const computedValue = computeValue(rawValue, value, record, rowIndex, defaultValue);
14
- acc[key] = computedValue;
15
- return acc;
16
- }, {}),
17
- [
18
- record,
19
- rowIndex,
20
- value,
21
- values
22
- ]
23
- );
24
- if (returnAsObject) {
25
- return values.reduce(
26
- (acc, { key }) => {
27
- acc[key] = computedValues[key];
28
- return acc;
29
- },
30
- {}
31
- );
32
- }
33
- return values.map(
34
- ({ key }) => computedValues[key]
35
- );
36
- }
37
-
38
- export { useComputedValues };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useDeepMemo as e}from"@vef-framework/hooks";import{computeValue as r}from"../helper.js";function useComputedValues(u,o,t,a,m=!1){const s=e((()=>u.reduce(((e,u)=>{const{key:m,rawValue:s,defaultValue:p}=u,f=r(s,o,t,a,p);return e[m]=f,e}),{})),[t,a,o,u]);return m?u.reduce(((e,{key:r})=>(e[r]=s[r],e)),{}):u.map((({key:e})=>s[e]))}export{useComputedValues};
39
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 */
@@ -1,54 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useDataQuery } from '@vef-framework/hooks';
3
- import { isNumber, isArray } from '@vef-framework/shared';
4
-
5
- function useData({ apiParams, ...queryConfig }, paginated, paginationParams) {
6
- const {
7
- data,
8
- isLoading,
9
- isFetching,
10
- isSuccess,
11
- refetch
12
- } = useDataQuery({
13
- apiParams: paginated ? {
14
- ...paginationParams,
15
- ...apiParams
16
- } : apiParams,
17
- keepPreviousData: true,
18
- staleTime: 0,
19
- ...queryConfig
20
- });
21
- if (isSuccess) {
22
- if (paginated) {
23
- if (!Object.hasOwn(data, "total") || !Object.hasOwn(data, "items")) {
24
- throw new Error(
25
- "The paginated data of VefTable is invalid. The data must contain the `total` and `items` properties. Please check the data."
26
- );
27
- }
28
- if (!isNumber(data.total)) {
29
- throw new Error(
30
- "The `total` property of the paginated data of VefTable is invalid. It must be a number."
31
- );
32
- }
33
- if (!isArray(data.items)) {
34
- throw new Error(
35
- "The `items` property of the paginated data of VefTable is invalid. It must be an array."
36
- );
37
- }
38
- } else {
39
- if (!isArray(data)) {
40
- throw new Error("The data of VefTable is invalid. It must be an array.");
41
- }
42
- }
43
- }
44
- return {
45
- data: paginated ? data?.items : data,
46
- isFetching,
47
- isLoading,
48
- total: paginated ? data?.total : void 0,
49
- refetch
50
- };
51
- }
52
-
53
- export { useData };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useDataQuery as a}from"@vef-framework/hooks";import{isNumber as e,isArray as t}from"@vef-framework/shared";function useData({apiParams:i,...r},o,s){const{data:n,isLoading:f,isFetching:h,isSuccess:d,refetch:m}=a({apiParams:o?{...s,...i}:i,keepPreviousData:!0,staleTime:0,...r});if(d)if(o){if(!Object.hasOwn(n,"total")||!Object.hasOwn(n,"items"))throw new Error("The paginated data of VefTable is invalid. The data must contain the `total` and `items` properties. Please check the data.");if(!e(n.total))throw new Error("The `total` property of the paginated data of VefTable is invalid. It must be a number.");if(!t(n.items))throw new Error("The `items` property of the paginated data of VefTable is invalid. It must be an array.")}else if(!t(n))throw new Error("The data of VefTable is invalid. It must be an array.");return{data:o?n?.items:n,isFetching:h,isLoading:f,total:o?n?.total:void 0,refetch:m}}export{useData};
54
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 */
@@ -1,28 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useMemo } from 'react';
3
-
4
- function useDefaultColumnConfigs(columns) {
5
- return useMemo(() => {
6
- const columnConfigs = /* @__PURE__ */ new Map();
7
- let currentOrder = 1;
8
- for (const column of columns) {
9
- const {
10
- name,
11
- title,
12
- fixed,
13
- configurable
14
- } = column;
15
- columnConfigs.set(name, {
16
- title: title ?? name,
17
- show: true,
18
- fixed,
19
- order: currentOrder++,
20
- configurable: configurable ?? true
21
- });
22
- }
23
- return columnConfigs;
24
- }, [columns]);
25
- }
26
-
27
- export { useDefaultColumnConfigs };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useMemo as e}from"react";function useDefaultColumnConfigs(o){return e((()=>{const e=new Map;let t=1;for(const n of o){const{name:o,title:r,fixed:f,configurable:u}=n;e.set(o,{title:r??o,show:!0,fixed:f,order:t++,configurable:u??!0})}return e}),[o])}export{useDefaultColumnConfigs};
28
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 */
@@ -1,37 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { isNullish, isFunction, isExpression, compileDynamicFn } from '@vef-framework/shared';
3
- import { useMemo } from 'react';
4
-
5
- function useDisplayValue(value, record, rowIndex, config) {
6
- const {
7
- defaultValue,
8
- formatter,
9
- prefix,
10
- suffix
11
- } = config;
12
- const valueToUse = isNullish(value) ? defaultValue : value;
13
- return useMemo(() => {
14
- if (isFunction(formatter)) {
15
- return formatter(value, record, rowIndex);
16
- }
17
- if (isExpression(formatter)) {
18
- const fn = compileDynamicFn(formatter, "value", "record", "rowIndex", `return ${formatter.expression}`);
19
- return fn(value, record, rowIndex);
20
- }
21
- if (isNullish(valueToUse)) {
22
- return;
23
- }
24
- return `${prefix ?? ""}${valueToUse}${suffix ?? ""}`;
25
- }, [
26
- formatter,
27
- valueToUse,
28
- prefix,
29
- suffix,
30
- value,
31
- record,
32
- rowIndex
33
- ]);
34
- }
35
-
36
- export { useDisplayValue };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{isNullish as r,isFunction as e,isExpression as t,compileDynamicFn as u}from"@vef-framework/shared";import{useMemo as o}from"react";function useDisplayValue(f,a,i,n){const{defaultValue:s,formatter:l,prefix:p,suffix:m}=n,d=r(f)?s:f;return o((()=>{if(e(l))return l(f,a,i);if(t(l)){return u(l,"value","record","rowIndex",`return ${l.expression}`)(f,a,i)}return r(d)?void 0:`${p??""}${d}${m??""}`}),[l,d,p,m,f,a,i])}export{useDisplayValue};
37
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 */
@@ -1,68 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { jsx } from '@emotion/react/jsx-runtime';
3
- import { useAuthorizedItems } from '@vef-framework/hooks';
4
- import { isDeepEqual } from '@vef-framework/shared';
5
- import { useMemo } from 'react';
6
- import VefColumnsSettings from '../components/columns-settings.js';
7
- import VefOperationButtons from '../components/operation-buttons.js';
8
- import VefSettingsIcon from '../components/settings-icon.js';
9
- import { useOperationColumnWidth } from './use-operation-column-width.js';
10
-
11
- const DEFAULT_MAX_VISIBLE_OPERATION_BUTTONS = 3;
12
- function useHelperColumns({
13
- showRowNumber,
14
- operationButtons,
15
- maxVisibleOperationButtons,
16
- size
17
- }) {
18
- const rowNumberColumn = useMemo(() => {
19
- if (showRowNumber) {
20
- return {
21
- key: "_rowNumber",
22
- title: "#",
23
- align: "center",
24
- fixed: "left",
25
- // rowScope: "row",
26
- width: 48,
27
- shouldCellUpdate: () => false,
28
- render: (_, __, rowIndex) => rowIndex + 1
29
- };
30
- }
31
- }, [showRowNumber]);
32
- const authorizedOperationButtons = useAuthorizedItems(operationButtons ?? []);
33
- const operationColumnWidth = useOperationColumnWidth(
34
- authorizedOperationButtons,
35
- maxVisibleOperationButtons ?? DEFAULT_MAX_VISIBLE_OPERATION_BUTTONS,
36
- size
37
- );
38
- const operationColumn = useMemo(() => {
39
- if (authorizedOperationButtons && authorizedOperationButtons.length > 0) {
40
- return {
41
- key: "_operationButtons",
42
- title: "\u64CD\u4F5C",
43
- align: "center",
44
- fixed: "right",
45
- filterIcon: () => /* @__PURE__ */ jsx(VefSettingsIcon, {}),
46
- filterDropdown: () => /* @__PURE__ */ jsx(VefColumnsSettings, {}),
47
- width: operationColumnWidth,
48
- shouldCellUpdate: (record, prevRecord) => !isDeepEqual(record, prevRecord),
49
- render: (_, record, rowIndex) => /* @__PURE__ */ jsx(
50
- VefOperationButtons,
51
- {
52
- maxVisibleOperationButtons: maxVisibleOperationButtons ?? DEFAULT_MAX_VISIBLE_OPERATION_BUTTONS,
53
- operationButtons: authorizedOperationButtons,
54
- record,
55
- rowIndex
56
- }
57
- )
58
- };
59
- }
60
- }, [authorizedOperationButtons, maxVisibleOperationButtons, operationColumnWidth]);
61
- return {
62
- rowNumberColumn,
63
- operationColumn
64
- };
65
- }
66
-
67
- export { useHelperColumns };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{jsx as o}from"@emotion/react/jsx-runtime";import{useAuthorizedItems as e}from"@vef-framework/hooks";import{isDeepEqual as t}from"@vef-framework/shared";import{useMemo as r}from"react";import n from"../components/columns-settings.js";import i from"../components/operation-buttons.js";import m from"../components/settings-icon.js";import{useOperationColumnWidth as s}from"./use-operation-column-width.js";function useHelperColumns({showRowNumber:p,operationButtons:u,maxVisibleOperationButtons:l,size:f}){const a=r((()=>{if(p)return{key:"_rowNumber",title:"#",align:"center",fixed:"left",width:48,shouldCellUpdate:()=>!1,render:(o,e,t)=>t+1}}),[p]),d=e(u??[]),c=s(d,l??3,f);return{rowNumberColumn:a,operationColumn:r((()=>{if(d&&d.length>0)return{key:"_operationButtons",title:"操作",align:"center",fixed:"right",filterIcon:()=>o(m,{}),filterDropdown:()=>o(n,{}),width:c,shouldCellUpdate:(o,e)=>!t(o,e),render:(e,t,r)=>o(i,{maxVisibleOperationButtons:l??3,operationButtons:d,record:t,rowIndex:r})}}),[d,l,c])}}export{useHelperColumns};
68
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 */
@@ -1,51 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useThemeTokens } from '@vef-framework/hooks';
3
- import { max } from '@vef-framework/shared';
4
- import { useMemo } from 'react';
5
-
6
- function useOperationColumnWidth(operationButtons, maxVisibleOperationButtons, size = "medium") {
7
- const { Button: buttonThemeTokens } = useThemeTokens();
8
- const cellInlinePadding = size === "large" ? 16 : 8;
9
- const fontSize = buttonThemeTokens?.contentFontSizeSM ?? 16;
10
- return useMemo(() => {
11
- if (operationButtons.length === 0) {
12
- return 0;
13
- }
14
- const showMoreButton = operationButtons.length > maxVisibleOperationButtons;
15
- if (showMoreButton) {
16
- const longestButtons = /* @__PURE__ */ new Set();
17
- for (let i = 0; i < maxVisibleOperationButtons; i++) {
18
- const longestButton = max(operationButtons, (button) => {
19
- if (longestButtons.has(button)) {
20
- return 0;
21
- }
22
- return button.label.length;
23
- });
24
- if (longestButton) {
25
- longestButtons.add(longestButton);
26
- }
27
- }
28
- return calculateButtonsWidth(Array.from(longestButtons), fontSize, cellInlinePadding, true);
29
- }
30
- return calculateButtonsWidth(operationButtons, fontSize, cellInlinePadding, false);
31
- }, [
32
- cellInlinePadding,
33
- fontSize,
34
- maxVisibleOperationButtons,
35
- operationButtons
36
- ]);
37
- }
38
- function calculateButtonsWidth(operationButtons, fontSize, cellInlinePadding, includeMoreButtonWidth) {
39
- const fontWidth = fontSize + 4;
40
- const buttonInlinePadding = 4 * 2;
41
- return operationButtons.map((button) => {
42
- const baseWidth = button.label.length * fontWidth + buttonInlinePadding;
43
- if (button.icon) {
44
- return baseWidth + fontWidth + 8;
45
- }
46
- return baseWidth;
47
- }).reduce((acc, width) => acc + width, 0) + (includeMoreButtonWidth ? fontWidth + buttonInlinePadding : 0) + cellInlinePadding * 2;
48
- }
49
-
50
- export { useOperationColumnWidth };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useThemeTokens as t}from"@vef-framework/hooks";import{max as e}from"@vef-framework/shared";import{useMemo as r}from"react";function useOperationColumnWidth(n,o,u="medium"){const{Button:a}=t(),l="large"===u?16:8,c=a?.contentFontSizeSM??16;return r((()=>{if(0===n.length)return 0;if(n.length>o){const t=new Set;for(let r=0;r<o;r++){const r=e(n,(e=>t.has(e)?0:e.label.length));r&&t.add(r)}return calculateButtonsWidth(Array.from(t),c,l,!0)}return calculateButtonsWidth(n,c,l,!1)}),[l,c,o,n])}function calculateButtonsWidth(t,e,r,n){const o=e+4;return t.map((t=>{const e=t.label.length*o+8;return t.icon?e+o+8:e})).reduce(((t,e)=>t+e),0)+(n?o+8:0)+2*r}export{useOperationColumnWidth};
51
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 */
@@ -1,45 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useState, useMemo } from 'react';
3
- import { defaultPageSizeOptions } from '../../vef-pagination/props.js';
4
-
5
- function usePaginationProps(paginated, size) {
6
- const [paginationParams, setPaginationParams] = useState({
7
- page: 1,
8
- size: defaultPageSizeOptions[2]
9
- });
10
- const handlePaginationChange = useMemo(() => {
11
- if (!paginated) {
12
- return;
13
- }
14
- return (pageNumber, pageSize) => {
15
- setPaginationParams({
16
- page: pageNumber,
17
- size: pageSize
18
- });
19
- };
20
- }, [paginated, setPaginationParams]);
21
- const paginationProps = useMemo(() => {
22
- if (!paginated) {
23
- return;
24
- }
25
- return {
26
- pageNumber: paginationParams.page,
27
- pageSize: paginationParams.size,
28
- size: size === "small" ? "small" : "medium",
29
- onChange: handlePaginationChange
30
- };
31
- }, [
32
- handlePaginationChange,
33
- paginated,
34
- paginationParams.page,
35
- paginationParams.size,
36
- size
37
- ]);
38
- return {
39
- paginationProps,
40
- paginationParams
41
- };
42
- }
43
-
44
- export { usePaginationProps };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useState as e,useMemo as a}from"react";import{defaultPageSizeOptions as i}from"../../vef-pagination/props.js";function usePaginationProps(n,r){const[o,p]=e({page:1,size:i[2]}),s=a((()=>{if(n)return(e,a)=>{p({page:e,size:a})}}),[n,p]);return{paginationProps:a((()=>{if(n)return{pageNumber:o.page,pageSize:o.size,size:"small"===r?"small":"medium",onChange:s}}),[s,n,o.page,o.size,r]),paginationParams:o}}export{usePaginationProps};
45
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 */
@@ -1,40 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useMemo } from 'react';
3
-
4
- function useRowProps({
5
- enableRowClick = false,
6
- enableRowClickForSelection = false,
7
- onRowClick,
8
- disabledSelection,
9
- handleRowClickSelection
10
- }) {
11
- return useMemo(() => {
12
- if (!enableRowClick) {
13
- return;
14
- }
15
- return (record, index) => {
16
- const disabled = disabledSelection?.(record) ?? false;
17
- return {
18
- style: {
19
- cursor: disabled ? "not-allowed" : "pointer"
20
- // backgroundColor: index! % 2 === 0 ? "#fcfcfc" : undefined,
21
- },
22
- onClick: disabled ? void 0 : () => {
23
- if (!enableRowClickForSelection) {
24
- onRowClick?.(record, index ?? -1);
25
- }
26
- handleRowClickSelection?.(record);
27
- }
28
- };
29
- };
30
- }, [
31
- disabledSelection,
32
- enableRowClick,
33
- enableRowClickForSelection,
34
- handleRowClickSelection,
35
- onRowClick
36
- ]);
37
- }
38
-
39
- export { useRowProps };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useMemo as o}from"react";function useRowProps({enableRowClick:e=!1,enableRowClickForSelection:n=!1,onRowClick:r,disabledSelection:l,handleRowClickSelection:i}){return o((()=>{if(e)return(o,e)=>{const t=l?.(o)??!1;return{style:{cursor:t?"not-allowed":"pointer"},onClick:t?void 0:()=>{n||r?.(o,e??-1),i?.(o)}}}}),[l,e,n,i,r])}export{useRowProps};
40
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 */
@@ -1,113 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { isFunction } from '@vef-framework/shared';
3
- import { useMemo } from 'react';
4
- import { useSelectedRows } from './use-selected-rows.js';
5
-
6
- function useRowSelectionConfig({
7
- rowKey,
8
- selectedKeys,
9
- defaultSelectedKeys,
10
- selectable,
11
- enableRowClick,
12
- enableRowClickForSelection,
13
- multipleSelection = true,
14
- showSelectAllCheckbox = true,
15
- disabledSelection,
16
- onRowSelect,
17
- onRowDeselect,
18
- onRowSelectionChange
19
- }) {
20
- const {
21
- selectedKeys: selectedKeysToUse,
22
- selectedRecords,
23
- onChange
24
- } = useSelectedRows({
25
- selectedKeys,
26
- defaultSelectedKeys,
27
- onRowSelectionChange
28
- });
29
- const handleRowClickSelection = useMemo(() => {
30
- if (!enableRowClick || !enableRowClickForSelection) {
31
- return;
32
- }
33
- return (record) => {
34
- const key = isFunction(rowKey) ? rowKey(record) : record[rowKey];
35
- if (selectedKeysToUse.includes(key)) {
36
- if (!multipleSelection) {
37
- return;
38
- }
39
- const newValue = selectedKeysToUse.filter((it) => it !== key);
40
- const newSelectedRows = selectedRecords.current.filter((it) => (isFunction(rowKey) ? rowKey(it) : it[rowKey]) !== key);
41
- onChange(newValue, newSelectedRows);
42
- onRowDeselect?.(key, record);
43
- } else {
44
- const newValue = [key];
45
- if (multipleSelection) {
46
- newValue.push(...selectedKeysToUse);
47
- }
48
- const newSelectedRows = [record];
49
- if (multipleSelection) {
50
- newSelectedRows.push(...selectedRecords.current);
51
- }
52
- onChange(newValue, newSelectedRows);
53
- onRowSelect?.(key, record);
54
- }
55
- };
56
- }, [
57
- enableRowClick,
58
- enableRowClickForSelection,
59
- multipleSelection,
60
- onChange,
61
- onRowDeselect,
62
- onRowSelect,
63
- rowKey,
64
- selectedKeysToUse,
65
- selectedRecords
66
- ]);
67
- const rowSelectionConfig = useMemo(() => {
68
- if (!selectable) {
69
- return;
70
- }
71
- const config = {
72
- fixed: true,
73
- hideSelectAll: !showSelectAllCheckbox,
74
- preserveSelectedRowKeys: false,
75
- selectedRowKeys: selectedKeysToUse,
76
- type: multipleSelection ? "checkbox" : "radio",
77
- getCheckboxProps: isFunction(disabledSelection) ? (record) => ({
78
- disabled: disabledSelection(record)
79
- }) : void 0,
80
- onChange: (selectedRowKeys, selectedRows) => {
81
- onChange(selectedRowKeys, selectedRows);
82
- },
83
- onSelect: isFunction(onRowSelect) || isFunction(onRowDeselect) ? (record, selected) => {
84
- const key = isFunction(rowKey) ? rowKey(record) : record[rowKey];
85
- if (selected) {
86
- onRowSelect?.(key, record);
87
- } else {
88
- onRowDeselect?.(key, record);
89
- }
90
- } : void 0
91
- };
92
- return config;
93
- }, [
94
- selectable,
95
- showSelectAllCheckbox,
96
- selectedKeysToUse,
97
- multipleSelection,
98
- disabledSelection,
99
- onRowSelect,
100
- onRowDeselect,
101
- onChange,
102
- rowKey
103
- ]);
104
- return {
105
- rowSelectionConfig,
106
- handleRowClickSelection,
107
- selectedKeys: selectedKeysToUse,
108
- selectedRecords
109
- };
110
- }
111
-
112
- export { useRowSelectionConfig };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{isFunction as e}from"@vef-framework/shared";import{useMemo as o}from"react";import{useSelectedRows as t}from"./use-selected-rows.js";function useRowSelectionConfig({rowKey:l,selectedKeys:c,defaultSelectedKeys:n,selectable:s,enableRowClick:r,enableRowClickForSelection:i,multipleSelection:d=!0,showSelectAllCheckbox:f=!0,disabledSelection:u,onRowSelect:a,onRowDeselect:w,onRowSelectionChange:S}){const{selectedKeys:h,selectedRecords:R,onChange:C}=t({selectedKeys:c,defaultSelectedKeys:n,onRowSelectionChange:S}),p=o((()=>{if(r&&i)return o=>{const t=e(l)?l(o):o[l];if(h.includes(t)){if(!d)return;const c=h.filter((e=>e!==t)),n=R.current.filter((o=>(e(l)?l(o):o[l])!==t));C(c,n),w?.(t,o)}else{const e=[t];d&&e.push(...h);const l=[o];d&&l.push(...R.current),C(e,l),a?.(t,o)}}}),[r,i,d,C,w,a,l,h,R]);return{rowSelectionConfig:o((()=>{if(!s)return;return{fixed:!0,hideSelectAll:!f,preserveSelectedRowKeys:!1,selectedRowKeys:h,type:d?"checkbox":"radio",getCheckboxProps:e(u)?e=>({disabled:u(e)}):void 0,onChange:(e,o)=>{C(e,o)},onSelect:e(a)||e(w)?(o,t)=>{const c=e(l)?l(o):o[l];t?a?.(c,o):w?.(c,o)}:void 0}}),[s,f,h,d,u,a,w,C,l]),handleRowClickSelection:p,selectedKeys:h,selectedRecords:R}}export{useRowSelectionConfig};
113
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 */
@@ -1,27 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { useState, useRef, useCallback } from 'react';
3
-
4
- function useSelectedRows({
5
- selectedKeys,
6
- defaultSelectedKeys,
7
- onRowSelectionChange
8
- }) {
9
- const [internalSelectedKeys, setInternalSelectedKeys] = useState(defaultSelectedKeys ?? []);
10
- const selectedKeysToUse = selectedKeys ?? internalSelectedKeys;
11
- const selectedRecords = useRef([]);
12
- const onChange = useCallback((keys, records) => {
13
- if (!selectedKeys) {
14
- setInternalSelectedKeys(keys);
15
- }
16
- selectedRecords.current = records;
17
- onRowSelectionChange?.(keys, records);
18
- }, [onRowSelectionChange, selectedKeys]);
19
- return {
20
- selectedKeys: selectedKeysToUse,
21
- selectedRecords,
22
- onChange
23
- };
24
- }
25
-
26
- export { useSelectedRows };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{useState as e,useRef as t,useCallback as c}from"react";function useSelectedRows({selectedKeys:o,defaultSelectedKeys:s,onRowSelectionChange:n}){const[r,d]=e(s??[]),l=o??r,u=t([]),a=c(((e,t)=>{o||d(e),u.current=t,n?.(e,t)}),[n,o]);return{selectedKeys:l,selectedRecords:u,onChange:a}}export{useSelectedRows};
27
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 */
@@ -1,57 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- import { jsx } from '@emotion/react/jsx-runtime';
3
- import { isNumber, isDeepEqual } from '@vef-framework/shared';
4
- import { useMemo } from 'react';
5
- import { columnComponents } from '../components/columns/index.js';
6
-
7
- function useTableColumns(columns, rowNumberColumn, operationColumn) {
8
- return useMemo(() => {
9
- const columnsToUse = [];
10
- const dataColumns = columns.map((column) => {
11
- const {
12
- title,
13
- show,
14
- sort,
15
- fixed,
16
- dependentColumnNames,
17
- ...columnProps
18
- } = column;
19
- const sortToUse = isNumber(sort) ? { multiple: sort } : sort ?? false ? true : void 0;
20
- const ColumnComponent = columnComponents[column.type];
21
- return {
22
- key: columnProps.name,
23
- dataIndex: columnProps.name,
24
- title: title || columnProps.name,
25
- fixed,
26
- hidden: !(show ?? true),
27
- sorter: sortToUse,
28
- align: columnProps.align,
29
- width: columnProps.width,
30
- shouldCellUpdate: (record, prevRecord) => !isDeepEqual(
31
- dependentColumnNames.map((name) => record[name]),
32
- dependentColumnNames.map((name) => prevRecord[name])
33
- ),
34
- render: (value, record, rowIndex) => /* @__PURE__ */ jsx(
35
- ColumnComponent,
36
- {
37
- columnProps,
38
- record,
39
- rowIndex,
40
- value
41
- }
42
- )
43
- };
44
- });
45
- if (rowNumberColumn) {
46
- columnsToUse.push(rowNumberColumn);
47
- }
48
- columnsToUse.push(...dataColumns);
49
- if (operationColumn) {
50
- columnsToUse.push(operationColumn);
51
- }
52
- return columnsToUse;
53
- }, [columns, rowNumberColumn, operationColumn]);
54
- }
55
-
56
- export { useTableColumns };
1
+ /*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
2
+ import{jsx as e}from"@emotion/react/jsx-runtime";import{isNumber as o,isDeepEqual as r}from"@vef-framework/shared";import{useMemo as t}from"react";import{columnComponents as n}from"../components/columns/index.js";function useTableColumns(m,s,a){return t((()=>{const t=[],i=m.map((t=>{const{title:m,show:s,sort:a,fixed:i,dependentColumnNames:d,...u}=t,l=o(a)?{multiple:a}:!!a||void 0,p=n[t.type];return{key:u.name,dataIndex:u.name,title:m||u.name,fixed:i,hidden:!(s??1),sorter:l,align:u.align,width:u.width,shouldCellUpdate:(e,o)=>!r(d.map((o=>e[o])),d.map((e=>o[e]))),render:(o,r,t)=>e(p,{columnProps:u,record:r,rowIndex:t,value:o})}}));return s&&t.push(s),t.push(...i),a&&t.push(a),t}),[m,s,a])}export{useTableColumns};
57
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 */