@vef-framework/components 1.0.64 → 1.0.66

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,41 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const shared = require('@vef-framework/shared');
7
- const react = require('react');
8
-
9
- function useDisplayValue(value, record, rowIndex, config) {
10
- const {
11
- defaultValue,
12
- formatter,
13
- prefix,
14
- suffix
15
- } = config;
16
- const valueToUse = shared.isNullish(value) ? defaultValue : value;
17
- return react.useMemo(() => {
18
- if (shared.isFunction(formatter)) {
19
- return formatter(value, record, rowIndex);
20
- }
21
- if (shared.isExpression(formatter)) {
22
- const fn = shared.compileDynamicFn(formatter, "value", "record", "rowIndex", `return ${formatter.expression}`);
23
- return fn(value, record, rowIndex);
24
- }
25
- if (shared.isNullish(valueToUse)) {
26
- return;
27
- }
28
- return `${prefix ?? ""}${valueToUse}${suffix ?? ""}`;
29
- }, [
30
- formatter,
31
- valueToUse,
32
- prefix,
33
- suffix,
34
- value,
35
- record,
36
- rowIndex
37
- ]);
38
- }
39
-
40
- exports.useDisplayValue = useDisplayValue;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),r=require("react");exports.useDisplayValue=function useDisplayValue(i,s,u,t){const{defaultValue:o,formatter:n,prefix:l,suffix:a}=t,f=e.isNullish(i)?o:i;return r.useMemo((()=>{if(e.isFunction(n))return n(i,s,u);if(e.isExpression(n)){return e.compileDynamicFn(n,"value","record","rowIndex",`return ${n.expression}`)(i,s,u)}return e.isNullish(f)?void 0:`${l??""}${f}${a??""}`}),[n,f,l,a,i,s,u])};
41
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,72 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const jsxRuntime = require('@emotion/react/jsx-runtime');
7
- const hooks = require('@vef-framework/hooks');
8
- const shared = require('@vef-framework/shared');
9
- const react = require('react');
10
- const columnsSettings = require('../components/columns-settings.cjs');
11
- const operationButtons = require('../components/operation-buttons.cjs');
12
- const settingsIcon = require('../components/settings-icon.cjs');
13
- const useOperationColumnWidth = require('./use-operation-column-width.cjs');
14
-
15
- const DEFAULT_MAX_VISIBLE_OPERATION_BUTTONS = 3;
16
- function useHelperColumns({
17
- showRowNumber,
18
- operationButtons: operationButtons$1,
19
- maxVisibleOperationButtons,
20
- size
21
- }) {
22
- const rowNumberColumn = react.useMemo(() => {
23
- if (showRowNumber) {
24
- return {
25
- key: "_rowNumber",
26
- title: "#",
27
- align: "center",
28
- fixed: "left",
29
- // rowScope: "row",
30
- width: 48,
31
- shouldCellUpdate: () => false,
32
- render: (_, __, rowIndex) => rowIndex + 1
33
- };
34
- }
35
- }, [showRowNumber]);
36
- const authorizedOperationButtons = hooks.useAuthorizedItems(operationButtons$1 ?? []);
37
- const operationColumnWidth = useOperationColumnWidth.useOperationColumnWidth(
38
- authorizedOperationButtons,
39
- maxVisibleOperationButtons ?? DEFAULT_MAX_VISIBLE_OPERATION_BUTTONS,
40
- size
41
- );
42
- const operationColumn = react.useMemo(() => {
43
- if (authorizedOperationButtons && authorizedOperationButtons.length > 0) {
44
- return {
45
- key: "_operationButtons",
46
- title: "\u64CD\u4F5C",
47
- align: "center",
48
- fixed: "right",
49
- filterIcon: () => /* @__PURE__ */ jsxRuntime.jsx(settingsIcon.default, {}),
50
- filterDropdown: () => /* @__PURE__ */ jsxRuntime.jsx(columnsSettings.default, {}),
51
- width: operationColumnWidth,
52
- shouldCellUpdate: (record, prevRecord) => !shared.isDeepEqual(record, prevRecord),
53
- render: (_, record, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx(
54
- operationButtons.default,
55
- {
56
- maxVisibleOperationButtons: maxVisibleOperationButtons ?? DEFAULT_MAX_VISIBLE_OPERATION_BUTTONS,
57
- operationButtons: authorizedOperationButtons,
58
- record,
59
- rowIndex
60
- }
61
- )
62
- };
63
- }
64
- }, [authorizedOperationButtons, maxVisibleOperationButtons, operationColumnWidth]);
65
- return {
66
- rowNumberColumn,
67
- operationColumn
68
- };
69
- }
70
-
71
- exports.useHelperColumns = useHelperColumns;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@emotion/react/jsx-runtime"),t=require("@vef-framework/hooks"),r=require("@vef-framework/shared"),o=require("react"),n=require("../components/columns-settings.cjs"),i=require("../components/operation-buttons.cjs"),s=require("../components/settings-icon.cjs"),u=require("./use-operation-column-width.cjs");exports.useHelperColumns=function useHelperColumns({showRowNumber:l,operationButtons:a,maxVisibleOperationButtons:m,size:d}){const c=o.useMemo((()=>{if(l)return{key:"_rowNumber",title:"#",align:"center",fixed:"left",width:48,shouldCellUpdate:()=>!1,render:(e,t,r)=>r+1}}),[l]),p=t.useAuthorizedItems(a??[]),f=u.useOperationColumnWidth(p,m??3,d);return{rowNumberColumn:c,operationColumn:o.useMemo((()=>{if(p&&p.length>0)return{key:"_operationButtons",title:"操作",align:"center",fixed:"right",filterIcon:()=>e.jsx(s.default,{}),filterDropdown:()=>e.jsx(n.default,{}),width:f,shouldCellUpdate:(e,t)=>!r.isDeepEqual(e,t),render:(t,r,o)=>e.jsx(i.default,{maxVisibleOperationButtons:m??3,operationButtons:p,record:r,rowIndex:o})}}),[p,m,f])}};
72
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,55 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const hooks = require('@vef-framework/hooks');
7
- const shared = require('@vef-framework/shared');
8
- const react = require('react');
9
-
10
- function useOperationColumnWidth(operationButtons, maxVisibleOperationButtons, size = "medium") {
11
- const { Button: buttonThemeTokens } = hooks.useThemeTokens();
12
- const cellInlinePadding = size === "large" ? 16 : 8;
13
- const fontSize = buttonThemeTokens?.contentFontSizeSM ?? 16;
14
- return react.useMemo(() => {
15
- if (operationButtons.length === 0) {
16
- return 0;
17
- }
18
- const showMoreButton = operationButtons.length > maxVisibleOperationButtons;
19
- if (showMoreButton) {
20
- const longestButtons = /* @__PURE__ */ new Set();
21
- for (let i = 0; i < maxVisibleOperationButtons; i++) {
22
- const longestButton = shared.max(operationButtons, (button) => {
23
- if (longestButtons.has(button)) {
24
- return 0;
25
- }
26
- return button.label.length;
27
- });
28
- if (longestButton) {
29
- longestButtons.add(longestButton);
30
- }
31
- }
32
- return calculateButtonsWidth(Array.from(longestButtons), fontSize, cellInlinePadding, true);
33
- }
34
- return calculateButtonsWidth(operationButtons, fontSize, cellInlinePadding, false);
35
- }, [
36
- cellInlinePadding,
37
- fontSize,
38
- maxVisibleOperationButtons,
39
- operationButtons
40
- ]);
41
- }
42
- function calculateButtonsWidth(operationButtons, fontSize, cellInlinePadding, includeMoreButtonWidth) {
43
- const fontWidth = fontSize + 4;
44
- const buttonInlinePadding = 4 * 2;
45
- return operationButtons.map((button) => {
46
- const baseWidth = button.label.length * fontWidth + buttonInlinePadding;
47
- if (button.icon) {
48
- return baseWidth + fontWidth + 8;
49
- }
50
- return baseWidth;
51
- }).reduce((acc, width) => acc + width, 0) + (includeMoreButtonWidth ? fontWidth + buttonInlinePadding : 0) + cellInlinePadding * 2;
52
- }
53
-
54
- exports.useOperationColumnWidth = useOperationColumnWidth;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/hooks"),t=require("@vef-framework/shared"),r=require("react");function calculateButtonsWidth(e,t,r,n){const o=t+4;return e.map((e=>{const t=e.label.length*o+8;return e.icon?t+o+8:t})).reduce(((e,t)=>e+t),0)+(n?o+8:0)+2*r}exports.useOperationColumnWidth=function useOperationColumnWidth(n,o,u="medium"){const{Button:a}=e.useThemeTokens(),l="large"===u?16:8,s=a?.contentFontSizeSM??16;return r.useMemo((()=>{if(0===n.length)return 0;if(n.length>o){const e=new Set;for(let r=0;r<o;r++){const r=t.max(n,(t=>e.has(t)?0:t.label.length));r&&e.add(r)}return calculateButtonsWidth(Array.from(e),s,l,!0)}return calculateButtonsWidth(n,s,l,!1)}),[l,s,o,n])};
55
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,49 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const react = require('react');
7
- const props = require('../../vef-pagination/props.cjs');
8
-
9
- function usePaginationProps(paginated, size) {
10
- const [paginationParams, setPaginationParams] = react.useState({
11
- page: 1,
12
- size: props.defaultPageSizeOptions[2]
13
- });
14
- const handlePaginationChange = react.useMemo(() => {
15
- if (!paginated) {
16
- return;
17
- }
18
- return (pageNumber, pageSize) => {
19
- setPaginationParams({
20
- page: pageNumber,
21
- size: pageSize
22
- });
23
- };
24
- }, [paginated, setPaginationParams]);
25
- const paginationProps = react.useMemo(() => {
26
- if (!paginated) {
27
- return;
28
- }
29
- return {
30
- pageNumber: paginationParams.page,
31
- pageSize: paginationParams.size,
32
- size: size === "small" ? "small" : "medium",
33
- onChange: handlePaginationChange
34
- };
35
- }, [
36
- handlePaginationChange,
37
- paginated,
38
- paginationParams.page,
39
- paginationParams.size,
40
- size
41
- ]);
42
- return {
43
- paginationProps,
44
- paginationParams
45
- };
46
- }
47
-
48
- exports.usePaginationProps = usePaginationProps;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),a=require("../../vef-pagination/props.cjs");exports.usePaginationProps=function usePaginationProps(i,s){const[t,r]=e.useState({page:1,size:a.defaultPageSizeOptions[2]}),n=e.useMemo((()=>{if(i)return(e,a)=>{r({page:e,size:a})}}),[i,r]);return{paginationProps:e.useMemo((()=>{if(i)return{pageNumber:t.page,pageSize:t.size,size:"small"===s?"small":"medium",onChange:n}}),[n,i,t.page,t.size,s]),paginationParams:t}};
49
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,44 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const react = require('react');
7
-
8
- function useRowProps({
9
- enableRowClick = false,
10
- enableRowClickForSelection = false,
11
- onRowClick,
12
- disabledSelection,
13
- handleRowClickSelection
14
- }) {
15
- return react.useMemo(() => {
16
- if (!enableRowClick) {
17
- return;
18
- }
19
- return (record, index) => {
20
- const disabled = disabledSelection?.(record) ?? false;
21
- return {
22
- style: {
23
- cursor: disabled ? "not-allowed" : "pointer"
24
- // backgroundColor: index! % 2 === 0 ? "#fcfcfc" : undefined,
25
- },
26
- onClick: disabled ? void 0 : () => {
27
- if (!enableRowClickForSelection) {
28
- onRowClick?.(record, index ?? -1);
29
- }
30
- handleRowClickSelection?.(record);
31
- }
32
- };
33
- };
34
- }, [
35
- disabledSelection,
36
- enableRowClick,
37
- enableRowClickForSelection,
38
- handleRowClickSelection,
39
- onRowClick
40
- ]);
41
- }
42
-
43
- exports.useRowProps = useRowProps;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useRowProps=function useRowProps({enableRowClick:o=!1,enableRowClickForSelection:r=!1,onRowClick:t,disabledSelection:n,handleRowClickSelection:l}){return e.useMemo((()=>{if(o)return(e,o)=>{const i=n?.(e)??!1;return{style:{cursor:i?"not-allowed":"pointer"},onClick:i?void 0:()=>{r||t?.(e,o??-1),l?.(e)}}}}),[n,o,r,l,t])};
44
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,117 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const shared = require('@vef-framework/shared');
7
- const react = require('react');
8
- const useSelectedRows = require('./use-selected-rows.cjs');
9
-
10
- function useRowSelectionConfig({
11
- rowKey,
12
- selectedKeys,
13
- defaultSelectedKeys,
14
- selectable,
15
- enableRowClick,
16
- enableRowClickForSelection,
17
- multipleSelection = true,
18
- showSelectAllCheckbox = true,
19
- disabledSelection,
20
- onRowSelect,
21
- onRowDeselect,
22
- onRowSelectionChange
23
- }) {
24
- const {
25
- selectedKeys: selectedKeysToUse,
26
- selectedRecords,
27
- onChange
28
- } = useSelectedRows.useSelectedRows({
29
- selectedKeys,
30
- defaultSelectedKeys,
31
- onRowSelectionChange
32
- });
33
- const handleRowClickSelection = react.useMemo(() => {
34
- if (!enableRowClick || !enableRowClickForSelection) {
35
- return;
36
- }
37
- return (record) => {
38
- const key = shared.isFunction(rowKey) ? rowKey(record) : record[rowKey];
39
- if (selectedKeysToUse.includes(key)) {
40
- if (!multipleSelection) {
41
- return;
42
- }
43
- const newValue = selectedKeysToUse.filter((it) => it !== key);
44
- const newSelectedRows = selectedRecords.current.filter((it) => (shared.isFunction(rowKey) ? rowKey(it) : it[rowKey]) !== key);
45
- onChange(newValue, newSelectedRows);
46
- onRowDeselect?.(key, record);
47
- } else {
48
- const newValue = [key];
49
- if (multipleSelection) {
50
- newValue.push(...selectedKeysToUse);
51
- }
52
- const newSelectedRows = [record];
53
- if (multipleSelection) {
54
- newSelectedRows.push(...selectedRecords.current);
55
- }
56
- onChange(newValue, newSelectedRows);
57
- onRowSelect?.(key, record);
58
- }
59
- };
60
- }, [
61
- enableRowClick,
62
- enableRowClickForSelection,
63
- multipleSelection,
64
- onChange,
65
- onRowDeselect,
66
- onRowSelect,
67
- rowKey,
68
- selectedKeysToUse,
69
- selectedRecords
70
- ]);
71
- const rowSelectionConfig = react.useMemo(() => {
72
- if (!selectable) {
73
- return;
74
- }
75
- const config = {
76
- fixed: true,
77
- hideSelectAll: !showSelectAllCheckbox,
78
- preserveSelectedRowKeys: false,
79
- selectedRowKeys: selectedKeysToUse,
80
- type: multipleSelection ? "checkbox" : "radio",
81
- getCheckboxProps: shared.isFunction(disabledSelection) ? (record) => ({
82
- disabled: disabledSelection(record)
83
- }) : void 0,
84
- onChange: (selectedRowKeys, selectedRows) => {
85
- onChange(selectedRowKeys, selectedRows);
86
- },
87
- onSelect: shared.isFunction(onRowSelect) || shared.isFunction(onRowDeselect) ? (record, selected) => {
88
- const key = shared.isFunction(rowKey) ? rowKey(record) : record[rowKey];
89
- if (selected) {
90
- onRowSelect?.(key, record);
91
- } else {
92
- onRowDeselect?.(key, record);
93
- }
94
- } : void 0
95
- };
96
- return config;
97
- }, [
98
- selectable,
99
- showSelectAllCheckbox,
100
- selectedKeysToUse,
101
- multipleSelection,
102
- disabledSelection,
103
- onRowSelect,
104
- onRowDeselect,
105
- onChange,
106
- rowKey
107
- ]);
108
- return {
109
- rowSelectionConfig,
110
- handleRowClickSelection,
111
- selectedKeys: selectedKeysToUse,
112
- selectedRecords
113
- };
114
- }
115
-
116
- exports.useRowSelectionConfig = useRowSelectionConfig;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),o=require("react"),t=require("./use-selected-rows.cjs");exports.useRowSelectionConfig=function useRowSelectionConfig({rowKey:c,selectedKeys:n,defaultSelectedKeys:s,selectable:l,enableRowClick:i,enableRowClickForSelection:r,multipleSelection:u=!0,showSelectAllCheckbox:d=!0,disabledSelection:S,onRowSelect:a,onRowDeselect:w,onRowSelectionChange:f}){const{selectedKeys:R,selectedRecords:h,onChange:y}=t.useSelectedRows({selectedKeys:n,defaultSelectedKeys:s,onRowSelectionChange:f}),C=o.useMemo((()=>{if(i&&r)return o=>{const t=e.isFunction(c)?c(o):o[c];if(R.includes(t)){if(!u)return;const n=R.filter((e=>e!==t)),s=h.current.filter((o=>(e.isFunction(c)?c(o):o[c])!==t));y(n,s),w?.(t,o)}else{const e=[t];u&&e.push(...R);const c=[o];u&&c.push(...h.current),y(e,c),a?.(t,o)}}}),[i,r,u,y,w,a,c,R,h]);return{rowSelectionConfig:o.useMemo((()=>{if(!l)return;return{fixed:!0,hideSelectAll:!d,preserveSelectedRowKeys:!1,selectedRowKeys:R,type:u?"checkbox":"radio",getCheckboxProps:e.isFunction(S)?e=>({disabled:S(e)}):void 0,onChange:(e,o)=>{y(e,o)},onSelect:e.isFunction(a)||e.isFunction(w)?(o,t)=>{const n=e.isFunction(c)?c(o):o[c];t?a?.(n,o):w?.(n,o)}:void 0}}),[l,d,R,u,S,a,w,y,c]),handleRowClickSelection:C,selectedKeys:R,selectedRecords:h}};
117
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,31 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const react = require('react');
7
-
8
- function useSelectedRows({
9
- selectedKeys,
10
- defaultSelectedKeys,
11
- onRowSelectionChange
12
- }) {
13
- const [internalSelectedKeys, setInternalSelectedKeys] = react.useState(defaultSelectedKeys ?? []);
14
- const selectedKeysToUse = selectedKeys ?? internalSelectedKeys;
15
- const selectedRecords = react.useRef([]);
16
- const onChange = react.useCallback((keys, records) => {
17
- if (!selectedKeys) {
18
- setInternalSelectedKeys(keys);
19
- }
20
- selectedRecords.current = records;
21
- onRowSelectionChange?.(keys, records);
22
- }, [onRowSelectionChange, selectedKeys]);
23
- return {
24
- selectedKeys: selectedKeysToUse,
25
- selectedRecords,
26
- onChange
27
- };
28
- }
29
-
30
- exports.useSelectedRows = useSelectedRows;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useSelectedRows=function useSelectedRows({selectedKeys:t,defaultSelectedKeys:s,onRowSelectionChange:c}){const[o,r]=e.useState(s??[]),l=t??o,n=e.useRef([]),u=e.useCallback(((e,s)=>{t||r(e),n.current=s,c?.(e,s)}),[c,t]);return{selectedKeys:l,selectedRecords:n,onChange:u}};
31
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,61 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const jsxRuntime = require('@emotion/react/jsx-runtime');
7
- const shared = require('@vef-framework/shared');
8
- const react = require('react');
9
- const index = require('../components/columns/index.cjs');
10
-
11
- function useTableColumns(columns, rowNumberColumn, operationColumn) {
12
- return react.useMemo(() => {
13
- const columnsToUse = [];
14
- const dataColumns = columns.map((column) => {
15
- const {
16
- title,
17
- show,
18
- sort,
19
- fixed,
20
- dependentColumnNames,
21
- ...columnProps
22
- } = column;
23
- const sortToUse = shared.isNumber(sort) ? { multiple: sort } : sort ?? false ? true : void 0;
24
- const ColumnComponent = index.columnComponents[column.type];
25
- return {
26
- key: columnProps.name,
27
- dataIndex: columnProps.name,
28
- title: title || columnProps.name,
29
- fixed,
30
- hidden: !(show ?? true),
31
- sorter: sortToUse,
32
- align: columnProps.align,
33
- width: columnProps.width,
34
- shouldCellUpdate: (record, prevRecord) => !shared.isDeepEqual(
35
- dependentColumnNames.map((name) => record[name]),
36
- dependentColumnNames.map((name) => prevRecord[name])
37
- ),
38
- render: (value, record, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx(
39
- ColumnComponent,
40
- {
41
- columnProps,
42
- record,
43
- rowIndex,
44
- value
45
- }
46
- )
47
- };
48
- });
49
- if (rowNumberColumn) {
50
- columnsToUse.push(rowNumberColumn);
51
- }
52
- columnsToUse.push(...dataColumns);
53
- if (operationColumn) {
54
- columnsToUse.push(operationColumn);
55
- }
56
- return columnsToUse;
57
- }, [columns, rowNumberColumn, operationColumn]);
58
- }
59
-
60
- exports.useTableColumns = useTableColumns;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@emotion/react/jsx-runtime"),r=require("@vef-framework/shared"),n=require("react"),t=require("../components/columns/index.cjs");exports.useTableColumns=function useTableColumns(o,s,u){return n.useMemo((()=>{const n=[],i=o.map((n=>{const{title:o,show:s,sort:u,fixed:i,dependentColumnNames:a,...l}=n,m=r.isNumber(u)?{multiple:u}:!!u||void 0,d=t.columnComponents[n.type];return{key:l.name,dataIndex:l.name,title:o||l.name,fixed:i,hidden:!(s??1),sorter:m,align:l.align,width:l.width,shouldCellUpdate:(e,n)=>!r.isDeepEqual(a.map((r=>e[r])),a.map((e=>n[e]))),render:(r,n,t)=>e.jsx(d,{columnProps:l,record:n,rowIndex:t,value:r})}}));return s&&n.push(s),n.push(...i),u&&n.push(u),n}),[o,s,u])};
61
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
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const shared = require('@vef-framework/shared');
7
-
8
- const {
9
- useContextSelector,
10
- useContext,
11
- ContextProvider: TableContextProvider
12
- } = shared.createSelectableContext({
13
- isFetching: false,
14
- refetch: () => Promise.resolve({}),
15
- selectedKeys: [],
16
- selectedRecords: [],
17
- defaultColumnConfigMap: /* @__PURE__ */ new Map(),
18
- columnConfigMap: /* @__PURE__ */ new Map(),
19
- setColumnConfigMap: shared.noop,
20
- columnConfigMapHasChanged: false
21
- });
22
- const useTableContextSelector = useContextSelector;
23
- const useTableContext = useContext;
24
-
25
- exports.TableContextProvider = TableContextProvider;
26
- exports.useTableContext = useTableContext;
27
- exports.useTableContextSelector = useTableContextSelector;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),{useContextSelector:t,useContext:o,ContextProvider:r}=e.createSelectableContext({isFetching:!1,refetch:()=>Promise.resolve({}),selectedKeys:[],selectedRecords:[],defaultColumnConfigMap:new Map,columnConfigMap:new Map,setColumnConfigMap:e.noop,columnConfigMapHasChanged:!1}),n=t,s=o;exports.TableContextProvider=r,exports.useTableContext=s,exports.useTableContextSelector=n;
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,20 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const react = require('react');
7
-
8
- function useTableInstance(ref, data, refetch) {
9
- const tableRef = react.useRef(null);
10
- react.useImperativeHandle(ref, () => ({
11
- getData: () => data,
12
- refetch: async () => {
13
- await refetch();
14
- }
15
- }));
16
- return tableRef;
17
- }
18
-
19
- exports.useTableInstance = useTableInstance;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useTableInstance=function useTableInstance(t,a,n){const r=e.useRef(null);return e.useImperativeHandle(t,(()=>({getData:()=>a,refetch:async()=>{await n()}}))),r};
20
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,47 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const jsxRuntime = require('@emotion/react/jsx-runtime');
7
- const shared = require('@vef-framework/shared');
8
- const antd = require('antd');
9
- const react = require('react');
10
-
11
- const { Summary } = antd.Table;
12
- const { Row, Cell } = Summary;
13
- function useTableSummary(columns) {
14
- const summaryColumns = react.useMemo(() => columns.filter((column) => shared.isFunction(column.summary)).map((column) => {
15
- const {
16
- name,
17
- summary,
18
- summaryColSpan
19
- } = column;
20
- return {
21
- name,
22
- summary,
23
- summaryColSpan: summaryColSpan ?? 1
24
- };
25
- }), [columns]);
26
- return react.useMemo(() => {
27
- if (summaryColumns.length === 0) {
28
- return;
29
- }
30
- return (records) => /* @__PURE__ */ jsxRuntime.jsx(Summary, { fixed: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx(Row, { children: summaryColumns.map(({
31
- name,
32
- summary,
33
- summaryColSpan
34
- }, index) => /* @__PURE__ */ jsxRuntime.jsx(
35
- Cell,
36
- {
37
- colSpan: summaryColSpan,
38
- index,
39
- children: summary(records)
40
- },
41
- name
42
- )) }) });
43
- }, [summaryColumns]);
44
- }
45
-
46
- exports.useTableSummary = useTableSummary;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@emotion/react/jsx-runtime"),r=require("@vef-framework/shared"),m=require("antd"),a=require("react"),{Summary:n}=m.Table,{Row:u,Cell:t}=n;exports.useTableSummary=function useTableSummary(m){const s=a.useMemo((()=>m.filter((e=>r.isFunction(e.summary))).map((e=>{const{name:r,summary:m,summaryColSpan:a}=e;return{name:r,summary:m,summaryColSpan:a??1}}))),[m]);return a.useMemo((()=>{if(0!==s.length)return r=>e.jsx(n,{fixed:"bottom",children:e.jsx(u,{children:s.map((({name:m,summary:a,summaryColSpan:n},u)=>e.jsx(t,{colSpan:n,index:u,children:a(r)},m)))})})}),[s])};
47
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,18 +1,3 @@
1
- /*! VefFramework version: 1.0.64, build time: 2025-01-10T01:26:01.691Z, made by Venus. */
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
-
6
- const react = require('react');
7
-
8
- const defaultColumnWidth = 160;
9
- const selectionColumnWidth = 40;
10
- function useTableWidth(columns, selectable) {
11
- return react.useMemo(() => {
12
- const width = columns.filter((column) => column.hidden !== true).map((column) => column.width ?? column.minWidth ?? defaultColumnWidth).reduce((acc, w) => acc + w, 0);
13
- return selectable ? width + selectionColumnWidth : width;
14
- }, [columns, selectable]);
15
- }
16
-
17
- exports.useTableWidth = useTableWidth;
1
+ /*! VefFramework version: 1.0.66, build time: 2025-01-10T02:50:16.681Z, made by Venus. */
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useTableWidth=function useTableWidth(t,r){return e.useMemo((()=>{const e=t.filter((e=>!0!==e.hidden)).map((e=>e.width??e.minWidth??160)).reduce(((e,t)=>e+t),0);return r?e+40:e}),[t,r])};
18
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 */