@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.
- package/es/index.js +2 -81
- package/es/internal/index.js +2 -2
- package/es/internal/modern-normalize.css.js +2 -4
- package/es/internal/utils.js +2 -6
- package/es/vef-access-denied/access-denied-icon.js +2 -928
- package/es/vef-access-denied/index.js +10 -45
- package/es/vef-action-buttons/index.js +2 -75
- package/es/vef-auto-sizer/index.js +2 -6
- package/es/vef-avatar/index.js +2 -20
- package/es/vef-avatar-group/index.js +2 -25
- package/es/vef-badge/index.js +2 -47
- package/es/vef-bool/hooks/use-bool-instance.js +2 -34
- package/es/vef-bool/index.js +2 -60
- package/es/vef-breadcrumb/index.js +2 -48
- package/es/vef-button/components/base-button.js +2 -73
- package/es/vef-button/index.js +2 -151
- package/es/vef-card/index.js +2 -25
- package/es/vef-card-meta/index.js +2 -12
- package/es/vef-checkbox/hooks/use-checkbox-instance.js +2 -20
- package/es/vef-checkbox/hooks/use-data-options.js +2 -40
- package/es/vef-checkbox/index.js +4 -88
- package/es/vef-col/index.js +2 -11
- package/es/vef-color-picker/index.js +2 -46
- package/es/vef-compact/index.js +2 -15
- package/es/vef-config-provider/global-style.js +16 -23
- package/es/vef-config-provider/hooks/use-ui-config.js +2 -125
- package/es/vef-config-provider/index.js +4 -121
- package/es/vef-config-provider/store.js +2 -21
- package/es/vef-container/index.js +2 -18
- package/es/vef-crud-page/components/crud-actions.js +2 -32
- package/es/vef-crud-page/components/crud-filter.js +2 -54
- package/es/vef-crud-page/components/crud-footer.js +4 -116
- package/es/vef-crud-page/components/crud-form-modal.js +2 -53
- package/es/vef-crud-page/components/crud-header.js +2 -29
- package/es/vef-crud-page/components/crud-table.js +2 -76
- package/es/vef-crud-page/hooks/use-action-buttons.js +2 -37
- package/es/vef-crud-page/hooks/use-crud-context.js +2 -20
- package/es/vef-crud-page/hooks/use-crud-schema.js +2 -114
- package/es/vef-crud-page/hooks/use-operation-buttons.js +2 -60
- package/es/vef-crud-page/index.js +2 -150
- package/es/vef-crud-page/store.js +2 -142
- package/es/vef-divider/index.js +2 -24
- package/es/vef-drawer/components/action-button-wrapper.js +2 -49
- package/es/vef-drawer/components/button-props.js +1 -2
- package/es/vef-drawer/components/cancel-action-button.js +2 -21
- package/es/vef-drawer/components/ok-action-button.js +2 -20
- package/es/vef-drawer/context.js +2 -15
- package/es/vef-drawer/index.js +4 -154
- package/es/vef-dropdown/index.js +2 -92
- package/es/vef-dynamic-icon/index.js +2 -46
- package/es/vef-dynamic-icon/props.js +2 -6
- package/es/vef-empty/index.js +2 -37
- package/es/vef-empty-placeholder/index.js +5 -19
- package/es/vef-error/error-icon.js +2 -757
- package/es/vef-error/index.js +10 -48
- package/es/vef-filter/components/action-buttons.js +6 -119
- package/es/vef-filter/components/advanced-filter.js +9 -71
- package/es/vef-filter/components/basic-filter.js +5 -35
- package/es/vef-filter/components/fields/index.js +2 -11
- package/es/vef-filter/components/fields/input-number.js +2 -90
- package/es/vef-filter/components/fields/input.js +2 -67
- package/es/vef-filter/components/filter-field.js +2 -19
- package/es/vef-filter/components/filter-item.js +2 -112
- package/es/vef-filter/event.js +2 -44
- package/es/vef-filter/helper.js +2 -15
- package/es/vef-filter/hooks/use-action-handlers.js +2 -70
- package/es/vef-filter/hooks/use-computed-values.js +2 -55
- package/es/vef-filter/hooks/use-filter-context.js +2 -18
- package/es/vef-filter/hooks/use-filter-initialization.js +2 -37
- package/es/vef-filter/hooks/use-filter-instance.js +2 -26
- package/es/vef-filter/hooks/use-filter-items.js +2 -23
- package/es/vef-filter/hooks/use-filter-values-change.js +2 -30
- package/es/vef-filter/hooks/use-label-config.js +2 -27
- package/es/vef-filter/index.js +3 -141
- package/es/vef-filter/store.js +2 -71
- package/es/vef-flex/index.js +2 -31
- package/es/vef-float-button/index.js +2 -49
- package/es/vef-float-button-group/index.js +2 -20
- package/es/vef-form/components/fields/index.js +2 -11
- package/es/vef-form/components/fields/input-number.js +2 -123
- package/es/vef-form/components/fields/input.js +2 -132
- package/es/vef-form/components/form-actions.js +4 -58
- package/es/vef-form/components/form-content.js +3 -144
- package/es/vef-form/components/form-field.js +2 -22
- package/es/vef-form/components/form-group.js +4 -64
- package/es/vef-form/components/form-hidden-item.js +2 -36
- package/es/vef-form/components/form-item.js +2 -79
- package/es/vef-form/components/form-row.js +2 -98
- package/es/vef-form/event.js +2 -44
- package/es/vef-form/helper.js +2 -15
- package/es/vef-form/hooks/use-action-handlers.js +2 -130
- package/es/vef-form/hooks/use-columns-layout.js +2 -122
- package/es/vef-form/hooks/use-computed-values.js +2 -55
- package/es/vef-form/hooks/use-form-context.js +2 -14
- package/es/vef-form/hooks/use-form-initialization.js +2 -45
- package/es/vef-form/hooks/use-form-instance.js +2 -26
- package/es/vef-form/hooks/use-form-values-change.js +2 -30
- package/es/vef-form/hooks/use-label-width.js +2 -18
- package/es/vef-form/index.js +4 -174
- package/es/vef-form/store.js +2 -65
- package/es/vef-form/validation-rules.js +2 -286
- package/es/vef-form-drawer/index.js +2 -98
- package/es/vef-form-modal/index.js +2 -95
- package/es/vef-generic-select/index.js +2 -81
- package/es/vef-grid/index.js +7 -83
- package/es/vef-grid/props.js +2 -4
- package/es/vef-grid-item/index.js +2 -52
- package/es/vef-icon/index.js +2 -45
- package/es/vef-icon-select/index.js +12 -146
- package/es/vef-input/hooks/use-input-instance.js +2 -15
- package/es/vef-input/index.js +2 -64
- package/es/vef-input-number/hooks/use-input-number-instance.js +2 -13
- package/es/vef-input-number/index.js +2 -148
- package/es/vef-layout/common-styles.js +5 -10
- package/es/vef-layout/components/content.js +2 -13
- package/es/vef-layout/components/font-size.js +2 -68
- package/es/vef-layout/components/fullscreen.js +2 -23
- package/es/vef-layout/components/header-action-icons.js +7 -29
- package/es/vef-layout/components/header-content.js +2 -19
- package/es/vef-layout/components/header.js +7 -69
- package/es/vef-layout/components/icon-boy.js +2 -69
- package/es/vef-layout/components/icon-girl.js +2 -76
- package/es/vef-layout/components/icon-menu-fold-left.js +2 -23
- package/es/vef-layout/components/icon-menu-unfold-left.js +2 -23
- package/es/vef-layout/components/menu-groups.js +16 -123
- package/es/vef-layout/components/message.js +2 -11
- package/es/vef-layout/components/search.js +2 -11
- package/es/vef-layout/components/sider.js +6 -54
- package/es/vef-layout/components/title.js +9 -53
- package/es/vef-layout/components/user-avatar.js +10 -80
- package/es/vef-layout/hooks/use-layout-context.js +2 -10
- package/es/vef-layout/index.js +3 -33
- package/es/vef-layout/logo.svg.js +2 -4
- package/es/vef-layout/store.js +2 -16
- package/es/vef-loading-placeholder/index.js +6 -42
- package/es/vef-login/index.js +22 -152
- package/es/vef-login/login-icon.js +2 -668
- package/es/vef-menu/index.js +5 -77
- package/es/vef-modal/components/action-button-wrapper.js +2 -49
- package/es/vef-modal/components/button-props.js +1 -2
- package/es/vef-modal/components/cancel-action-button.js +2 -18
- package/es/vef-modal/components/ok-action-button.js +2 -20
- package/es/vef-modal/context.js +2 -15
- package/es/vef-modal/index.js +3 -239
- package/es/vef-not-found/index.js +10 -45
- package/es/vef-not-found/not-found-icon.js +2 -844
- package/es/vef-page/index.js +11 -87
- package/es/vef-pagination/index.js +2 -57
- package/es/vef-pagination/props.js +2 -13
- package/es/vef-paragraph/index.js +2 -89
- package/es/vef-password/hooks/use-password-instance.js +2 -13
- package/es/vef-password/index.js +2 -67
- package/es/vef-popconfirm/index.js +2 -56
- package/es/vef-popover/index.js +2 -29
- package/es/vef-radio/hooks/use-data-options.js +2 -40
- package/es/vef-radio/hooks/use-radio-instance.js +2 -20
- package/es/vef-radio/index.js +4 -88
- package/es/vef-rate/hooks/use-rate-instance.js +2 -13
- package/es/vef-rate/index.js +2 -30
- package/es/vef-responsive-container/index.js +3 -54
- package/es/vef-responsive-item/index.js +3 -23
- package/es/vef-ribbon/index.js +2 -38
- package/es/vef-row/index.js +2 -12
- package/es/vef-scroll-area/components/scrollbar.js +8 -34
- package/es/vef-scroll-area/index.js +4 -69
- package/es/vef-select/components/option.js +4 -23
- package/es/vef-select/hooks/use-data-options.js +2 -47
- package/es/vef-select/hooks/use-field-names.js +2 -21
- package/es/vef-select/hooks/use-render-label.js +3 -23
- package/es/vef-select/hooks/use-render-option.js +2 -19
- package/es/vef-select/hooks/use-select-instance.js +2 -20
- package/es/vef-select/index.js +2 -100
- package/es/vef-slider/hooks/use-slider-instance.js +2 -13
- package/es/vef-slider/index.js +2 -34
- package/es/vef-sortable-list/components/overlay-item.js +3 -31
- package/es/vef-sortable-list/components/sortable-item.js +3 -75
- package/es/vef-sortable-list/hooks/use-merged-items.js +2 -21
- package/es/vef-sortable-list/index.js +2 -114
- package/es/vef-space/index.js +2 -25
- package/es/vef-spin/index.js +2 -12
- package/es/vef-splitter/index.js +2 -20
- package/es/vef-splitter-panel/index.js +2 -12
- package/es/vef-status/index.js +2 -37
- package/es/vef-table/components/columns/bool.js +2 -91
- package/es/vef-table/components/columns/code.js +2 -10
- package/es/vef-table/components/columns/data-dictionary.js +2 -92
- package/es/vef-table/components/columns/enum.js +2 -101
- package/es/vef-table/components/columns/file.js +2 -10
- package/es/vef-table/components/columns/icon.js +2 -10
- package/es/vef-table/components/columns/id.js +2 -82
- package/es/vef-table/components/columns/image.js +2 -11
- package/es/vef-table/components/columns/index.js +2 -33
- package/es/vef-table/components/columns/markdown.js +2 -10
- package/es/vef-table/components/columns/number.js +2 -83
- package/es/vef-table/components/columns/render.js +2 -28
- package/es/vef-table/components/columns/rich-text.js +2 -10
- package/es/vef-table/components/columns/text.js +2 -88
- package/es/vef-table/components/columns-settings.js +11 -195
- package/es/vef-table/components/operation-buttons.js +3 -230
- package/es/vef-table/components/settings-icon.js +4 -19
- package/es/vef-table/components/table-footer.js +4 -102
- package/es/vef-table/helper.js +2 -15
- package/es/vef-table/hooks/use-computed-batch-buttons.js +2 -33
- package/es/vef-table/hooks/use-computed-columns.js +2 -20
- package/es/vef-table/hooks/use-computed-values.js +2 -38
- package/es/vef-table/hooks/use-data.js +2 -53
- package/es/vef-table/hooks/use-default-column-configs.js +2 -27
- package/es/vef-table/hooks/use-display-value.js +2 -36
- package/es/vef-table/hooks/use-helper-columns.js +2 -67
- package/es/vef-table/hooks/use-operation-column-width.js +2 -50
- package/es/vef-table/hooks/use-pagination-props.js +2 -44
- package/es/vef-table/hooks/use-row-props.js +2 -39
- package/es/vef-table/hooks/use-row-selection-config.js +2 -112
- package/es/vef-table/hooks/use-selected-rows.js +2 -26
- package/es/vef-table/hooks/use-table-columns.js +2 -56
- package/es/vef-table/hooks/use-table-context.js +2 -21
- package/es/vef-table/hooks/use-table-instance.js +2 -15
- package/es/vef-table/hooks/use-table-summary.js +2 -42
- package/es/vef-table/hooks/use-table-width.js +2 -13
- package/es/vef-table/index.js +6 -227
- package/es/vef-table/store.js +2 -17
- package/es/vef-tabs/index.js +2 -25
- package/es/vef-tag/index.js +2 -28
- package/es/vef-temporal-picker/helper.js +2 -57
- package/es/vef-temporal-picker/hooks/use-dayjs-value.js +2 -18
- package/es/vef-temporal-picker/hooks/use-temporal-limit.js +2 -34
- package/es/vef-temporal-picker/hooks/use-temporal-picker-instance.js +2 -19
- package/es/vef-temporal-picker/index.js +2 -125
- package/es/vef-temporal-range-picker/helper.js +2 -57
- package/es/vef-temporal-range-picker/hooks/use-dayjs-values.js +2 -23
- package/es/vef-temporal-range-picker/hooks/use-temporal-limit.js +2 -34
- package/es/vef-temporal-range-picker/hooks/use-temporal-range-picker-instance.js +2 -19
- package/es/vef-temporal-range-picker/index.js +2 -128
- package/es/vef-temporal-range-picker/props.js +2 -4
- package/es/vef-text/index.js +2 -80
- package/es/vef-textarea/hooks/use-textarea-instance.js +2 -13
- package/es/vef-textarea/index.js +2 -67
- package/es/vef-title/index.js +7 -89
- package/es/vef-tooltip/index.js +2 -35
- package/es/vef-tree-select/hooks/use-change-handler.js +2 -33
- package/es/vef-tree-select/hooks/use-data-options.js +2 -45
- package/es/vef-tree-select/hooks/use-tree-select-instance.js +2 -20
- package/es/vef-tree-select/index.js +2 -86
- package/es/vef-virtual-grid/index.js +4 -107
- package/es/vef-virtual-list/index.js +5 -215
- package/lib/index.cjs +2 -168
- package/lib/internal/index.cjs +2 -10
- package/lib/internal/modern-normalize.css.cjs +2 -8
- package/lib/internal/utils.cjs +2 -10
- package/lib/vef-access-denied/access-denied-icon.cjs +2 -932
- package/lib/vef-access-denied/index.cjs +10 -49
- package/lib/vef-access-denied/props.cjs +2 -4
- package/lib/vef-action-buttons/index.cjs +2 -79
- package/lib/vef-action-buttons/props.cjs +2 -4
- package/lib/vef-auto-sizer/index.cjs +2 -10
- package/lib/vef-auto-sizer/props.cjs +2 -4
- package/lib/vef-avatar/index.cjs +2 -24
- package/lib/vef-avatar/props.cjs +2 -4
- package/lib/vef-avatar-group/index.cjs +2 -29
- package/lib/vef-avatar-group/props.cjs +2 -4
- package/lib/vef-badge/index.cjs +2 -51
- package/lib/vef-badge/props.cjs +2 -4
- package/lib/vef-bool/hooks/use-bool-instance.cjs +2 -38
- package/lib/vef-bool/index.cjs +2 -64
- package/lib/vef-bool/props.cjs +2 -4
- package/lib/vef-breadcrumb/index.cjs +2 -52
- package/lib/vef-breadcrumb/props.cjs +2 -4
- package/lib/vef-button/components/base-button.cjs +2 -77
- package/lib/vef-button/index.cjs +2 -155
- package/lib/vef-button/props.cjs +2 -4
- package/lib/vef-card/index.cjs +2 -29
- package/lib/vef-card/props.cjs +2 -4
- package/lib/vef-card-meta/index.cjs +2 -16
- package/lib/vef-card-meta/props.cjs +2 -4
- package/lib/vef-checkbox/hooks/use-checkbox-instance.cjs +2 -24
- package/lib/vef-checkbox/hooks/use-data-options.cjs +2 -44
- package/lib/vef-checkbox/index.cjs +4 -92
- package/lib/vef-checkbox/props.cjs +2 -4
- package/lib/vef-col/index.cjs +2 -15
- package/lib/vef-col/props.cjs +2 -4
- package/lib/vef-color-picker/index.cjs +2 -50
- package/lib/vef-color-picker/props.cjs +2 -4
- package/lib/vef-compact/index.cjs +2 -19
- package/lib/vef-compact/props.cjs +2 -4
- package/lib/vef-config-provider/global-style.cjs +16 -28
- package/lib/vef-config-provider/hooks/use-ui-config.cjs +2 -129
- package/lib/vef-config-provider/index.cjs +4 -125
- package/lib/vef-config-provider/props.cjs +2 -4
- package/lib/vef-config-provider/store.cjs +2 -27
- package/lib/vef-container/index.cjs +2 -22
- package/lib/vef-container/props.cjs +2 -4
- package/lib/vef-crud-page/components/crud-actions.cjs +2 -36
- package/lib/vef-crud-page/components/crud-filter.cjs +2 -58
- package/lib/vef-crud-page/components/crud-footer.cjs +4 -120
- package/lib/vef-crud-page/components/crud-form-modal.cjs +2 -57
- package/lib/vef-crud-page/components/crud-header.cjs +2 -33
- package/lib/vef-crud-page/components/crud-table.cjs +2 -80
- package/lib/vef-crud-page/hooks/use-action-buttons.cjs +2 -41
- package/lib/vef-crud-page/hooks/use-crud-context.cjs +2 -24
- package/lib/vef-crud-page/hooks/use-crud-schema.cjs +2 -118
- package/lib/vef-crud-page/hooks/use-operation-buttons.cjs +2 -64
- package/lib/vef-crud-page/index.cjs +2 -154
- package/lib/vef-crud-page/props.cjs +2 -4
- package/lib/vef-crud-page/store.cjs +2 -148
- package/lib/vef-crud-page/types.cjs +2 -4
- package/lib/vef-divider/index.cjs +2 -28
- package/lib/vef-divider/props.cjs +2 -4
- package/lib/vef-drawer/components/action-button-wrapper.cjs +2 -53
- package/lib/vef-drawer/components/button-props.cjs +2 -4
- package/lib/vef-drawer/components/cancel-action-button.cjs +2 -25
- package/lib/vef-drawer/components/ok-action-button.cjs +2 -24
- package/lib/vef-drawer/context.cjs +2 -21
- package/lib/vef-drawer/index.cjs +4 -159
- package/lib/vef-drawer/props.cjs +2 -4
- package/lib/vef-dropdown/index.cjs +2 -96
- package/lib/vef-dropdown/props.cjs +2 -4
- package/lib/vef-dynamic-icon/index.cjs +2 -50
- package/lib/vef-dynamic-icon/props.cjs +2 -10
- package/lib/vef-empty/index.cjs +2 -41
- package/lib/vef-empty/props.cjs +2 -4
- package/lib/vef-empty-placeholder/index.cjs +5 -23
- package/lib/vef-empty-placeholder/props.cjs +2 -4
- package/lib/vef-error/error-icon.cjs +2 -761
- package/lib/vef-error/index.cjs +10 -52
- package/lib/vef-error/props.cjs +2 -4
- package/lib/vef-filter/components/action-buttons.cjs +6 -123
- package/lib/vef-filter/components/advanced-filter.cjs +9 -75
- package/lib/vef-filter/components/basic-filter.cjs +5 -39
- package/lib/vef-filter/components/fields/index.cjs +2 -15
- package/lib/vef-filter/components/fields/input-number.cjs +2 -94
- package/lib/vef-filter/components/fields/input.cjs +2 -71
- package/lib/vef-filter/components/fields/props.cjs +2 -4
- package/lib/vef-filter/components/filter-field.cjs +2 -23
- package/lib/vef-filter/components/filter-item.cjs +2 -116
- package/lib/vef-filter/event.cjs +2 -48
- package/lib/vef-filter/helper.cjs +2 -19
- package/lib/vef-filter/hooks/use-action-handlers.cjs +2 -74
- package/lib/vef-filter/hooks/use-computed-values.cjs +2 -59
- package/lib/vef-filter/hooks/use-filter-context.cjs +2 -24
- package/lib/vef-filter/hooks/use-filter-initialization.cjs +2 -41
- package/lib/vef-filter/hooks/use-filter-instance.cjs +2 -30
- package/lib/vef-filter/hooks/use-filter-items.cjs +2 -27
- package/lib/vef-filter/hooks/use-filter-values-change.cjs +2 -34
- package/lib/vef-filter/hooks/use-label-config.cjs +2 -31
- package/lib/vef-filter/index.cjs +3 -145
- package/lib/vef-filter/props.cjs +2 -4
- package/lib/vef-filter/store.cjs +2 -77
- package/lib/vef-filter/types.cjs +2 -4
- package/lib/vef-flex/index.cjs +2 -35
- package/lib/vef-flex/props.cjs +2 -4
- package/lib/vef-float-button/index.cjs +2 -53
- package/lib/vef-float-button/props.cjs +2 -4
- package/lib/vef-float-button-group/index.cjs +2 -24
- package/lib/vef-float-button-group/props.cjs +2 -4
- package/lib/vef-form/components/fields/index.cjs +2 -15
- package/lib/vef-form/components/fields/input-number.cjs +2 -127
- package/lib/vef-form/components/fields/input.cjs +2 -136
- package/lib/vef-form/components/fields/props.cjs +2 -4
- package/lib/vef-form/components/form-actions.cjs +4 -62
- package/lib/vef-form/components/form-content.cjs +3 -148
- package/lib/vef-form/components/form-field.cjs +2 -26
- package/lib/vef-form/components/form-group.cjs +4 -68
- package/lib/vef-form/components/form-hidden-item.cjs +2 -40
- package/lib/vef-form/components/form-item.cjs +2 -83
- package/lib/vef-form/components/form-row.cjs +2 -102
- package/lib/vef-form/event.cjs +2 -48
- package/lib/vef-form/helper.cjs +2 -19
- package/lib/vef-form/hooks/use-action-handlers.cjs +2 -134
- package/lib/vef-form/hooks/use-columns-layout.cjs +2 -126
- package/lib/vef-form/hooks/use-computed-values.cjs +2 -59
- package/lib/vef-form/hooks/use-form-context.cjs +2 -20
- package/lib/vef-form/hooks/use-form-initialization.cjs +2 -49
- package/lib/vef-form/hooks/use-form-instance.cjs +2 -30
- package/lib/vef-form/hooks/use-form-values-change.cjs +2 -34
- package/lib/vef-form/hooks/use-label-width.cjs +2 -22
- package/lib/vef-form/index.cjs +4 -178
- package/lib/vef-form/props.cjs +2 -4
- package/lib/vef-form/store.cjs +2 -71
- package/lib/vef-form/types.cjs +2 -4
- package/lib/vef-form/validation-rules.cjs +2 -312
- package/lib/vef-form-drawer/index.cjs +2 -102
- package/lib/vef-form-drawer/props.cjs +2 -4
- package/lib/vef-form-modal/index.cjs +2 -99
- package/lib/vef-form-modal/props.cjs +2 -4
- package/lib/vef-generic-select/index.cjs +2 -85
- package/lib/vef-generic-select/props.cjs +2 -4
- package/lib/vef-grid/index.cjs +7 -87
- package/lib/vef-grid/props.cjs +2 -8
- package/lib/vef-grid-item/index.cjs +2 -56
- package/lib/vef-grid-item/props.cjs +2 -4
- package/lib/vef-icon/index.cjs +2 -49
- package/lib/vef-icon/props.cjs +2 -4
- package/lib/vef-icon-select/index.cjs +12 -150
- package/lib/vef-icon-select/props.cjs +2 -4
- package/lib/vef-input/hooks/use-input-instance.cjs +2 -19
- package/lib/vef-input/index.cjs +2 -68
- package/lib/vef-input/props.cjs +2 -4
- package/lib/vef-input-number/hooks/use-input-number-instance.cjs +2 -17
- package/lib/vef-input-number/index.cjs +2 -152
- package/lib/vef-input-number/props.cjs +2 -4
- package/lib/vef-layout/common-styles.cjs +5 -14
- package/lib/vef-layout/components/content.cjs +2 -17
- package/lib/vef-layout/components/font-size.cjs +2 -72
- package/lib/vef-layout/components/fullscreen.cjs +2 -27
- package/lib/vef-layout/components/header-action-icons.cjs +7 -33
- package/lib/vef-layout/components/header-content.cjs +2 -23
- package/lib/vef-layout/components/header.cjs +7 -73
- package/lib/vef-layout/components/icon-boy.cjs +2 -73
- package/lib/vef-layout/components/icon-girl.cjs +2 -80
- package/lib/vef-layout/components/icon-menu-fold-left.cjs +2 -27
- package/lib/vef-layout/components/icon-menu-unfold-left.cjs +2 -27
- package/lib/vef-layout/components/menu-groups.cjs +16 -127
- package/lib/vef-layout/components/message.cjs +2 -15
- package/lib/vef-layout/components/search.cjs +2 -15
- package/lib/vef-layout/components/sider.cjs +6 -58
- package/lib/vef-layout/components/title.cjs +9 -57
- package/lib/vef-layout/components/user-avatar.cjs +10 -84
- package/lib/vef-layout/hooks/use-layout-context.cjs +2 -16
- package/lib/vef-layout/index.cjs +3 -37
- package/lib/vef-layout/logo.svg.cjs +2 -8
- package/lib/vef-layout/props.cjs +2 -4
- package/lib/vef-layout/store.cjs +2 -22
- package/lib/vef-loading-placeholder/index.cjs +6 -46
- package/lib/vef-loading-placeholder/props.cjs +2 -4
- package/lib/vef-login/index.cjs +22 -156
- package/lib/vef-login/login-icon.cjs +2 -672
- package/lib/vef-login/props.cjs +2 -4
- package/lib/vef-menu/index.cjs +5 -81
- package/lib/vef-menu/props.cjs +2 -4
- package/lib/vef-modal/components/action-button-wrapper.cjs +2 -53
- package/lib/vef-modal/components/button-props.cjs +2 -4
- package/lib/vef-modal/components/cancel-action-button.cjs +2 -22
- package/lib/vef-modal/components/ok-action-button.cjs +2 -24
- package/lib/vef-modal/context.cjs +2 -21
- package/lib/vef-modal/index.cjs +3 -244
- package/lib/vef-modal/props.cjs +2 -4
- package/lib/vef-not-found/index.cjs +10 -49
- package/lib/vef-not-found/not-found-icon.cjs +2 -848
- package/lib/vef-not-found/props.cjs +2 -4
- package/lib/vef-page/index.cjs +11 -91
- package/lib/vef-page/props.cjs +2 -4
- package/lib/vef-pagination/index.cjs +2 -61
- package/lib/vef-pagination/props.cjs +2 -17
- package/lib/vef-paragraph/index.cjs +2 -93
- package/lib/vef-paragraph/props.cjs +2 -4
- package/lib/vef-password/hooks/use-password-instance.cjs +2 -17
- package/lib/vef-password/index.cjs +2 -71
- package/lib/vef-password/props.cjs +2 -4
- package/lib/vef-popconfirm/index.cjs +2 -60
- package/lib/vef-popconfirm/props.cjs +2 -4
- package/lib/vef-popover/index.cjs +2 -33
- package/lib/vef-popover/props.cjs +2 -4
- package/lib/vef-radio/hooks/use-data-options.cjs +2 -44
- package/lib/vef-radio/hooks/use-radio-instance.cjs +2 -24
- package/lib/vef-radio/index.cjs +4 -92
- package/lib/vef-radio/props.cjs +2 -4
- package/lib/vef-rate/hooks/use-rate-instance.cjs +2 -17
- package/lib/vef-rate/index.cjs +2 -34
- package/lib/vef-rate/props.cjs +2 -4
- package/lib/vef-responsive-container/index.cjs +3 -58
- package/lib/vef-responsive-container/props.cjs +2 -4
- package/lib/vef-responsive-item/index.cjs +3 -27
- package/lib/vef-responsive-item/props.cjs +2 -4
- package/lib/vef-ribbon/index.cjs +2 -42
- package/lib/vef-ribbon/props.cjs +2 -4
- package/lib/vef-row/index.cjs +2 -16
- package/lib/vef-row/props.cjs +2 -4
- package/lib/vef-scroll-area/components/scrollbar.cjs +8 -38
- package/lib/vef-scroll-area/index.cjs +4 -73
- package/lib/vef-scroll-area/props.cjs +2 -4
- package/lib/vef-select/components/option.cjs +4 -27
- package/lib/vef-select/hooks/use-data-options.cjs +2 -51
- package/lib/vef-select/hooks/use-field-names.cjs +2 -25
- package/lib/vef-select/hooks/use-render-label.cjs +3 -27
- package/lib/vef-select/hooks/use-render-option.cjs +2 -23
- package/lib/vef-select/hooks/use-select-instance.cjs +2 -24
- package/lib/vef-select/index.cjs +2 -104
- package/lib/vef-select/props.cjs +2 -4
- package/lib/vef-slider/hooks/use-slider-instance.cjs +2 -17
- package/lib/vef-slider/index.cjs +2 -38
- package/lib/vef-slider/props.cjs +2 -4
- package/lib/vef-sortable-list/components/overlay-item.cjs +3 -35
- package/lib/vef-sortable-list/components/sortable-item.cjs +3 -79
- package/lib/vef-sortable-list/hooks/use-merged-items.cjs +2 -25
- package/lib/vef-sortable-list/index.cjs +2 -118
- package/lib/vef-sortable-list/props.cjs +2 -4
- package/lib/vef-space/index.cjs +2 -29
- package/lib/vef-space/props.cjs +2 -4
- package/lib/vef-spin/index.cjs +2 -16
- package/lib/vef-spin/props.cjs +2 -4
- package/lib/vef-splitter/index.cjs +2 -24
- package/lib/vef-splitter/props.cjs +2 -4
- package/lib/vef-splitter-panel/index.cjs +2 -16
- package/lib/vef-splitter-panel/props.cjs +2 -4
- package/lib/vef-status/index.cjs +2 -41
- package/lib/vef-status/props.cjs +2 -4
- package/lib/vef-table/components/columns/bool.cjs +2 -95
- package/lib/vef-table/components/columns/code.cjs +2 -14
- package/lib/vef-table/components/columns/data-dictionary.cjs +2 -96
- package/lib/vef-table/components/columns/enum.cjs +2 -105
- package/lib/vef-table/components/columns/file.cjs +2 -14
- package/lib/vef-table/components/columns/icon.cjs +2 -14
- package/lib/vef-table/components/columns/id.cjs +2 -86
- package/lib/vef-table/components/columns/image.cjs +2 -15
- package/lib/vef-table/components/columns/index.cjs +2 -37
- package/lib/vef-table/components/columns/markdown.cjs +2 -14
- package/lib/vef-table/components/columns/number.cjs +2 -87
- package/lib/vef-table/components/columns/props.cjs +2 -4
- package/lib/vef-table/components/columns/render.cjs +2 -32
- package/lib/vef-table/components/columns/rich-text.cjs +2 -14
- package/lib/vef-table/components/columns/text.cjs +2 -92
- package/lib/vef-table/components/columns-settings.cjs +11 -199
- package/lib/vef-table/components/operation-buttons.cjs +3 -234
- package/lib/vef-table/components/settings-icon.cjs +4 -23
- package/lib/vef-table/components/table-footer.cjs +4 -106
- package/lib/vef-table/helper.cjs +2 -19
- package/lib/vef-table/hooks/use-computed-batch-buttons.cjs +2 -37
- package/lib/vef-table/hooks/use-computed-columns.cjs +2 -24
- package/lib/vef-table/hooks/use-computed-values.cjs +2 -42
- package/lib/vef-table/hooks/use-data.cjs +2 -57
- package/lib/vef-table/hooks/use-default-column-configs.cjs +2 -31
- package/lib/vef-table/hooks/use-display-value.cjs +2 -40
- package/lib/vef-table/hooks/use-helper-columns.cjs +2 -71
- package/lib/vef-table/hooks/use-operation-column-width.cjs +2 -54
- package/lib/vef-table/hooks/use-pagination-props.cjs +2 -48
- package/lib/vef-table/hooks/use-row-props.cjs +2 -43
- package/lib/vef-table/hooks/use-row-selection-config.cjs +2 -116
- package/lib/vef-table/hooks/use-selected-rows.cjs +2 -30
- package/lib/vef-table/hooks/use-table-columns.cjs +2 -60
- package/lib/vef-table/hooks/use-table-context.cjs +2 -27
- package/lib/vef-table/hooks/use-table-instance.cjs +2 -19
- package/lib/vef-table/hooks/use-table-summary.cjs +2 -46
- package/lib/vef-table/hooks/use-table-width.cjs +2 -17
- package/lib/vef-table/index.cjs +6 -231
- package/lib/vef-table/props.cjs +2 -4
- package/lib/vef-table/store.cjs +2 -23
- package/lib/vef-table/types.cjs +2 -4
- package/lib/vef-tabs/index.cjs +2 -29
- package/lib/vef-tabs/props.cjs +2 -4
- package/lib/vef-tag/index.cjs +2 -32
- package/lib/vef-tag/props.cjs +2 -4
- package/lib/vef-temporal-picker/helper.cjs +2 -61
- package/lib/vef-temporal-picker/hooks/use-dayjs-value.cjs +2 -22
- package/lib/vef-temporal-picker/hooks/use-temporal-limit.cjs +2 -38
- package/lib/vef-temporal-picker/hooks/use-temporal-picker-instance.cjs +2 -23
- package/lib/vef-temporal-picker/index.cjs +2 -129
- package/lib/vef-temporal-picker/props.cjs +2 -4
- package/lib/vef-temporal-range-picker/helper.cjs +2 -61
- package/lib/vef-temporal-range-picker/hooks/use-dayjs-values.cjs +2 -27
- package/lib/vef-temporal-range-picker/hooks/use-temporal-limit.cjs +2 -38
- package/lib/vef-temporal-range-picker/hooks/use-temporal-range-picker-instance.cjs +2 -23
- package/lib/vef-temporal-range-picker/index.cjs +2 -132
- package/lib/vef-temporal-range-picker/props.cjs +2 -8
- package/lib/vef-text/index.cjs +2 -84
- package/lib/vef-text/props.cjs +2 -4
- package/lib/vef-textarea/hooks/use-textarea-instance.cjs +2 -17
- package/lib/vef-textarea/index.cjs +2 -71
- package/lib/vef-textarea/props.cjs +2 -4
- package/lib/vef-title/index.cjs +7 -93
- package/lib/vef-title/props.cjs +2 -4
- package/lib/vef-tooltip/index.cjs +2 -39
- package/lib/vef-tooltip/props.cjs +2 -4
- package/lib/vef-tree-select/hooks/use-change-handler.cjs +2 -37
- package/lib/vef-tree-select/hooks/use-data-options.cjs +2 -49
- package/lib/vef-tree-select/hooks/use-tree-select-instance.cjs +2 -24
- package/lib/vef-tree-select/index.cjs +2 -90
- package/lib/vef-tree-select/props.cjs +2 -4
- package/lib/vef-virtual-grid/index.cjs +4 -111
- package/lib/vef-virtual-grid/props.cjs +2 -4
- package/lib/vef-virtual-list/index.cjs +5 -219
- package/lib/vef-virtual-list/props.cjs +2 -4
- package/package.json +4 -4
- package/types/vef-config-provider/hooks/use-ui-config.d.ts +0 -1
|
@@ -1,22 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
const {
|
|
5
|
-
StoreProvider: ConfigStoreProvider,
|
|
6
|
-
useStore: useConfigStore,
|
|
7
|
-
useStoreApi: useConfigStoreApi
|
|
8
|
-
} = createComponentStore(
|
|
9
|
-
"Config",
|
|
10
|
-
({
|
|
11
|
-
fontSize = "large",
|
|
12
|
-
primaryColor = "#0064fa"
|
|
13
|
-
}) => (set) => ({
|
|
14
|
-
fontSize,
|
|
15
|
-
primaryColor,
|
|
16
|
-
setFontSize: (fontSize2) => set({ fontSize: fontSize2 }),
|
|
17
|
-
setPrimaryColor: (primaryColor2) => set({ primaryColor: primaryColor2 })
|
|
18
|
-
})
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
export { ConfigStoreProvider, useConfigStore, useConfigStoreApi };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{createComponentStore as r}from"@vef-framework/shared";const{StoreProvider:o,useStore:e,useStoreApi:i}=r("Config",(({fontSize:r="large",primaryColor:o="#0064fa"})=>e=>({fontSize:r,primaryColor:o,setFontSize:r=>e({fontSize:r}),setPrimaryColor:r=>e({primaryColor:r})})));export{o as ConfigStoreProvider,e as useConfigStore,i as useConfigStoreApi};
|
|
22
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,19 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { FloatButton } from 'antd';
|
|
4
|
-
import VefScrollArea from '../vef-scroll-area/index.js';
|
|
5
|
-
|
|
6
|
-
const { BackTop } = FloatButton;
|
|
7
|
-
function VefContainer({
|
|
8
|
-
className,
|
|
9
|
-
style,
|
|
10
|
-
children
|
|
11
|
-
}) {
|
|
12
|
-
return /* @__PURE__ */ jsxs(VefScrollArea, { className, style, children: [
|
|
13
|
-
children,
|
|
14
|
-
/* @__PURE__ */ jsx(BackTop, {})
|
|
15
|
-
] });
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { VefContainer as default };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{jsxs as e,jsx as r}from"@emotion/react/jsx-runtime";import{FloatButton as t}from"antd";import o from"../vef-scroll-area/index.js";const{BackTop:n}=t;function VefContainer({className:t,style:a,children:i}){return e(o,{className:t,style:a,children:[i,r(n,{})]})}export{VefContainer as default};
|
|
19
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,33 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { DisabledContextProvider } from '@vef-framework/hooks';
|
|
4
|
-
import { useMemo } from 'react';
|
|
5
|
-
import VefActionButtons from '../../vef-action-buttons/index.js';
|
|
6
|
-
import { useActionButtons } from '../hooks/use-action-buttons.js';
|
|
7
|
-
import { useCrudContext } from '../hooks/use-crud-context.js';
|
|
8
|
-
import { useCrudStore } from '../store.js';
|
|
9
|
-
|
|
10
|
-
function VefCrudActions({
|
|
11
|
-
tableApi,
|
|
12
|
-
tableApiParams,
|
|
13
|
-
actionButtons
|
|
14
|
-
}) {
|
|
15
|
-
const confirmedFilterValues = useCrudStore((state) => state.confirmedFilterValues);
|
|
16
|
-
const isFetching = tableApi.useIsFetching(useMemo(() => ({
|
|
17
|
-
...tableApiParams,
|
|
18
|
-
...confirmedFilterValues
|
|
19
|
-
}), [tableApiParams, confirmedFilterValues]));
|
|
20
|
-
const crudContext = useCrudContext();
|
|
21
|
-
const actionButtonsToUse = useActionButtons(actionButtons);
|
|
22
|
-
return /* @__PURE__ */ jsx(DisabledContextProvider, { value: isFetching, children: /* @__PURE__ */ jsx(
|
|
23
|
-
VefActionButtons,
|
|
24
|
-
{
|
|
25
|
-
buttons: actionButtonsToUse,
|
|
26
|
-
context: crudContext,
|
|
27
|
-
useFlexContainer: false
|
|
28
|
-
}
|
|
29
|
-
) });
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export { VefCrudActions as default };
|
|
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{DisabledContextProvider as t}from"@vef-framework/hooks";import{useMemo as r}from"react";import e from"../../vef-action-buttons/index.js";import{useActionButtons as s}from"../hooks/use-action-buttons.js";import{useCrudContext as i}from"../hooks/use-crud-context.js";import{useCrudStore as n}from"../store.js";function VefCrudActions({tableApi:m,tableApiParams:u,actionButtons:a}){const c=n((o=>o.confirmedFilterValues)),f=m.useIsFetching(r((()=>({...u,...c})),[u,c])),p=i(),l=s(a);return o(t,{value:f,children:o(e,{buttons:l,context:p,useFlexContainer:!1})})}export{VefCrudActions as default};
|
|
33
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.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo, useCallback } from 'react';
|
|
4
|
-
import VefActionButtons from '../../vef-action-buttons/index.js';
|
|
5
|
-
import VefFilter from '../../vef-filter/index.js';
|
|
6
|
-
import VefTitle from '../../vef-title/index.js';
|
|
7
|
-
import { useActionButtons } from '../hooks/use-action-buttons.js';
|
|
8
|
-
import { useCrudContext } from '../hooks/use-crud-context.js';
|
|
9
|
-
import { useCrudStore } from '../store.js';
|
|
10
|
-
|
|
11
|
-
function VefCrudFilter({
|
|
12
|
-
title,
|
|
13
|
-
tableApi,
|
|
14
|
-
tableApiParams,
|
|
15
|
-
filterSchema,
|
|
16
|
-
actionButtons
|
|
17
|
-
}) {
|
|
18
|
-
const [setFilterValues, confirmedFilterValues, setConfirmedFilterValues] = useCrudStore((state) => [
|
|
19
|
-
state.setFilterValues,
|
|
20
|
-
state.confirmedFilterValues,
|
|
21
|
-
state.setConfirmedFilterValues
|
|
22
|
-
]);
|
|
23
|
-
const isFetching = tableApi.useIsFetching(useMemo(() => ({
|
|
24
|
-
...tableApiParams,
|
|
25
|
-
...confirmedFilterValues
|
|
26
|
-
}), [tableApiParams, confirmedFilterValues]));
|
|
27
|
-
const crudContext = useCrudContext();
|
|
28
|
-
const actionButtonsToUse = useActionButtons(actionButtons);
|
|
29
|
-
const handleReset = useCallback(
|
|
30
|
-
() => setConfirmedFilterValues(null),
|
|
31
|
-
[setConfirmedFilterValues]
|
|
32
|
-
);
|
|
33
|
-
return /* @__PURE__ */ jsx(
|
|
34
|
-
VefFilter,
|
|
35
|
-
{
|
|
36
|
-
loading: isFetching,
|
|
37
|
-
prefix: /* @__PURE__ */ jsx(VefTitle, { noPaddingBottom: true, showLeftBar: true, level: 5, children: title }),
|
|
38
|
-
schema: filterSchema,
|
|
39
|
-
extraActionButtons: /* @__PURE__ */ jsx(
|
|
40
|
-
VefActionButtons,
|
|
41
|
-
{
|
|
42
|
-
buttons: actionButtonsToUse,
|
|
43
|
-
context: crudContext,
|
|
44
|
-
useFlexContainer: false
|
|
45
|
-
}
|
|
46
|
-
),
|
|
47
|
-
onChange: setFilterValues,
|
|
48
|
-
onConfirm: setConfirmedFilterValues,
|
|
49
|
-
onReset: handleReset
|
|
50
|
-
}
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export { VefCrudFilter as default };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{jsx as t}from"@emotion/react/jsx-runtime";import{useMemo as e,useCallback as o}from"react";import r from"../../vef-action-buttons/index.js";import i from"../../vef-filter/index.js";import n from"../../vef-title/index.js";import{useActionButtons as s}from"../hooks/use-action-buttons.js";import{useCrudContext as m}from"../hooks/use-crud-context.js";import{useCrudStore as a}from"../store.js";function VefCrudFilter({title:f,tableApi:l,tableApiParams:u,filterSchema:c,actionButtons:d}){const[p,x,h]=a((t=>[t.setFilterValues,t.confirmedFilterValues,t.setConfirmedFilterValues])),j=l.useIsFetching(e((()=>({...u,...x})),[u,x])),F=m(),C=s(d),b=o((()=>h(null)),[h]);return t(i,{loading:j,prefix:t(n,{noPaddingBottom:!0,showLeftBar:!0,level:5,children:f}),schema:c,extraActionButtons:t(r,{buttons:C,context:F,useFlexContainer:!1}),onChange:p,onConfirm:h,onReset:b})}export{VefCrudFilter as default};
|
|
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,121 +1,9 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { css } from '@emotion/react';
|
|
4
|
-
import { useApiContext } from '@vef-framework/core';
|
|
5
|
-
import { DisabledContextProvider } from '@vef-framework/hooks';
|
|
6
|
-
import { themeVariables, isNullish, showSuccessMessage, isFunction } from '@vef-framework/shared';
|
|
7
|
-
import { Trash2Icon } from 'lucide-react';
|
|
8
|
-
import { useMemo, useCallback, memo } from 'react';
|
|
9
|
-
import VefActionButtons from '../../vef-action-buttons/index.js';
|
|
10
|
-
import VefButton from '../../vef-button/index.js';
|
|
11
|
-
import VefDivider from '../../vef-divider/index.js';
|
|
12
|
-
import VefFlex from '../../vef-flex/index.js';
|
|
13
|
-
import VefIcon from '../../vef-icon/index.js';
|
|
14
|
-
import VefText from '../../vef-text/index.js';
|
|
15
|
-
import { useCrudContext } from '../hooks/use-crud-context.js';
|
|
16
|
-
import { useCrudStore } from '../store.js';
|
|
17
|
-
|
|
18
|
-
const footerStyle = css`
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{jsx as e,jsxs as t,Fragment as o}from"@emotion/react/jsx-runtime";import{css as r}from"@emotion/react";import{useApiContext as i}from"@vef-framework/core";import{DisabledContextProvider as n}from"@vef-framework/hooks";import{themeVariables as c,isNullish as s,showSuccessMessage as m,isFunction as a}from"@vef-framework/shared";import{Trash2Icon as l}from"lucide-react";import{useMemo as d,useCallback as f,memo as p}from"react";import u from"../../vef-action-buttons/index.js";import h from"../../vef-button/index.js";import x from"../../vef-divider/index.js";import v from"../../vef-flex/index.js";import b from"../../vef-icon/index.js";import y from"../../vef-text/index.js";import{useCrudContext as g}from"../hooks/use-crud-context.js";import{useCrudStore as j}from"../store.js";const k=r`
|
|
19
3
|
height: 100%;
|
|
20
4
|
display: flex;
|
|
21
5
|
justify-content: space-between;
|
|
22
6
|
align-items: center;
|
|
23
|
-
padding: ${
|
|
24
|
-
`;
|
|
25
|
-
function VefCrudFooterBase({
|
|
26
|
-
tableApi,
|
|
27
|
-
tableApiParams,
|
|
28
|
-
batchDeletionApi,
|
|
29
|
-
batchActionButtons,
|
|
30
|
-
selectionSummary
|
|
31
|
-
}) {
|
|
32
|
-
const { useApiMutation, stubMutationApi } = useApiContext();
|
|
33
|
-
const batchDeletionMutation = useApiMutation(batchDeletionApi ?? stubMutationApi);
|
|
34
|
-
const [selectedInfo, confirmedFilterValues, setSelectedInfo] = useCrudStore((state) => [
|
|
35
|
-
state.selectedInfo,
|
|
36
|
-
state.confirmedFilterValues,
|
|
37
|
-
state.setSelectedInfo
|
|
38
|
-
]);
|
|
39
|
-
const { selectedKeys, selectedRecords } = selectedInfo;
|
|
40
|
-
const batchActionButtonsToUse = useMemo(() => {
|
|
41
|
-
if (!isNullish(batchDeletionApi)) {
|
|
42
|
-
return [
|
|
43
|
-
...batchActionButtons ?? [],
|
|
44
|
-
{
|
|
45
|
-
key: "_batchDeletion",
|
|
46
|
-
label: "\u6279\u91CF\u5220\u9664",
|
|
47
|
-
icon: /* @__PURE__ */ jsx(VefIcon, { children: /* @__PURE__ */ jsx(Trash2Icon, {}) }),
|
|
48
|
-
color: "error",
|
|
49
|
-
permissions: [batchDeletionApi.key],
|
|
50
|
-
requireConfirmation: true,
|
|
51
|
-
confirmationMode: "detailed",
|
|
52
|
-
onClick: async ({ refetch }) => {
|
|
53
|
-
const { message } = await batchDeletionMutation.mutate(selectedRecords);
|
|
54
|
-
showSuccessMessage(message);
|
|
55
|
-
refetch();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
];
|
|
59
|
-
}
|
|
60
|
-
return batchActionButtons ?? [];
|
|
61
|
-
}, [batchActionButtons, batchDeletionApi, batchDeletionMutation, selectedRecords]);
|
|
62
|
-
const crudContext = useCrudContext();
|
|
63
|
-
const batchActionButtonContext = useMemo(() => ({
|
|
64
|
-
...crudContext,
|
|
65
|
-
...selectedInfo
|
|
66
|
-
}), [crudContext, selectedInfo]);
|
|
67
|
-
const isFetching = tableApi.useIsFetching(useMemo(() => ({
|
|
68
|
-
...tableApiParams,
|
|
69
|
-
...confirmedFilterValues
|
|
70
|
-
}), [tableApiParams, confirmedFilterValues]));
|
|
71
|
-
const handleCancelSelection = useCallback(() => {
|
|
72
|
-
setSelectedInfo({
|
|
73
|
-
selectedKeys: [],
|
|
74
|
-
selectedRecords: []
|
|
75
|
-
});
|
|
76
|
-
}, [setSelectedInfo]);
|
|
77
|
-
const selectionSummaryNode = useMemo(() => {
|
|
78
|
-
if (isFunction(selectionSummary)) {
|
|
79
|
-
return selectionSummary(selectedRecords);
|
|
80
|
-
}
|
|
81
|
-
}, [selectedRecords, selectionSummary]);
|
|
82
|
-
if (selectedKeys.length === 0) {
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
return /* @__PURE__ */ jsxs("div", { css: footerStyle, children: [
|
|
86
|
-
/* @__PURE__ */ jsxs(VefText, { color: "secondary", children: [
|
|
87
|
-
"\u5DF2\u9009\u62E9",
|
|
88
|
-
" ",
|
|
89
|
-
/* @__PURE__ */ jsx(VefText, { bold: true, color: "primary", children: selectedKeys.length }),
|
|
90
|
-
" ",
|
|
91
|
-
"\u9879",
|
|
92
|
-
selectionSummaryNode && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
93
|
-
/* @__PURE__ */ jsx(VefDivider, { orientation: "vertical" }),
|
|
94
|
-
selectionSummaryNode
|
|
95
|
-
] })
|
|
96
|
-
] }),
|
|
97
|
-
/* @__PURE__ */ jsx(DisabledContextProvider, { value: isFetching, children: /* @__PURE__ */ jsxs(VefFlex, { align: "center", gap: "medium", children: [
|
|
98
|
-
/* @__PURE__ */ jsx(
|
|
99
|
-
VefButton,
|
|
100
|
-
{
|
|
101
|
-
color: "primary",
|
|
102
|
-
variant: "text",
|
|
103
|
-
onClick: handleCancelSelection,
|
|
104
|
-
children: "\u53D6\u6D88\u9009\u62E9"
|
|
105
|
-
}
|
|
106
|
-
),
|
|
107
|
-
/* @__PURE__ */ jsx(
|
|
108
|
-
VefActionButtons,
|
|
109
|
-
{
|
|
110
|
-
buttons: batchActionButtonsToUse,
|
|
111
|
-
context: batchActionButtonContext,
|
|
112
|
-
useFlexContainer: false
|
|
113
|
-
}
|
|
114
|
-
)
|
|
115
|
-
] }) })
|
|
116
|
-
] });
|
|
117
|
-
}
|
|
118
|
-
const VefCrudFooter = memo(VefCrudFooterBase);
|
|
119
|
-
|
|
120
|
-
export { VefCrudFooter as default };
|
|
7
|
+
padding: ${c.padding};
|
|
8
|
+
`;const A=p((function VefCrudFooterBase({tableApi:r,tableApiParams:c,batchDeletionApi:p,batchActionButtons:A,selectionSummary:w}){const{useApiMutation:C,stubMutationApi:F}=i(),I=C(p??F),[M,B,D]=j((e=>[e.selectedInfo,e.confirmedFilterValues,e.setSelectedInfo])),{selectedKeys:K,selectedRecords:R}=M,S=d((()=>s(p)?A??[]:[...A??[],{key:"_batchDeletion",label:"批量删除",icon:e(b,{children:e(l,{})}),color:"error",permissions:[p.key],requireConfirmation:!0,confirmationMode:"detailed",onClick:async({refetch:e})=>{const{message:t}=await I.mutate(R);m(t),e()}}]),[A,p,I,R]),V=g(),q=d((()=>({...V,...M})),[V,M]),P=r.useIsFetching(d((()=>({...c,...B})),[c,B])),$=f((()=>{D({selectedKeys:[],selectedRecords:[]})}),[D]),_=d((()=>{if(a(w))return w(R)}),[R,w]);return 0===K.length?null:t("div",{css:k,children:[t(y,{color:"secondary",children:["已选择"," ",e(y,{bold:!0,color:"primary",children:K.length})," ","项",_&&t(o,{children:[e(x,{orientation:"vertical"}),_]})]}),e(n,{value:P,children:t(v,{align:"center",gap:"medium",children:[e(h,{color:"primary",variant:"text",onClick:$,children:"取消选择"}),e(u,{buttons:S,context:q,useFlexContainer:!1})]})})]})}));export{A as default};
|
|
121
9
|
/*! 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.
|
|
2
|
-
import
|
|
3
|
-
import VefFormModal from '../../vef-form-modal/index.js';
|
|
4
|
-
import { useCrudStore } from '../store.js';
|
|
5
|
-
|
|
6
|
-
function VefCrudFormModal({
|
|
7
|
-
formSchema,
|
|
8
|
-
formApis
|
|
9
|
-
}) {
|
|
10
|
-
const [
|
|
11
|
-
isFormOpen,
|
|
12
|
-
{
|
|
13
|
-
scene,
|
|
14
|
-
title,
|
|
15
|
-
width
|
|
16
|
-
},
|
|
17
|
-
{ onBeforeSubmit, onSubmitSuccess },
|
|
18
|
-
currentFormInitialValues,
|
|
19
|
-
isFormLoading,
|
|
20
|
-
closeForm
|
|
21
|
-
] = useCrudStore(
|
|
22
|
-
(state) => [
|
|
23
|
-
state.isFormOpen,
|
|
24
|
-
state.currentFormInfo,
|
|
25
|
-
state.currentFormEventHandlers,
|
|
26
|
-
state.currentFormInitialValues,
|
|
27
|
-
state.isFormLoading,
|
|
28
|
-
state.closeForm
|
|
29
|
-
]
|
|
30
|
-
);
|
|
31
|
-
const formApi = formApis[scene];
|
|
32
|
-
if (!formApi) {
|
|
33
|
-
throw new Error(`Form api for scene ${scene} not found, please check the formApis props of VefCrudPage component.`);
|
|
34
|
-
}
|
|
35
|
-
return /* @__PURE__ */ jsx(
|
|
36
|
-
VefFormModal,
|
|
37
|
-
{
|
|
38
|
-
initialValues: currentFormInitialValues,
|
|
39
|
-
loading: isFormLoading,
|
|
40
|
-
open: isFormOpen,
|
|
41
|
-
scene,
|
|
42
|
-
schema: formSchema,
|
|
43
|
-
submitApi: formApi,
|
|
44
|
-
title,
|
|
45
|
-
width,
|
|
46
|
-
onBeforeSubmit,
|
|
47
|
-
onClose: closeForm,
|
|
48
|
-
onSubmitSuccess
|
|
49
|
-
}
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export { VefCrudFormModal as default };
|
|
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 e from"../../vef-form-modal/index.js";import{useCrudStore as r}from"../store.js";function VefCrudFormModal({formSchema:t,formApis:n}){const[i,{scene:m,title:s,width:f},{onBeforeSubmit:u,onSubmitSuccess:c},a,l,d]=r((o=>[o.isFormOpen,o.currentFormInfo,o.currentFormEventHandlers,o.currentFormInitialValues,o.isFormLoading,o.closeForm])),p=n[m];if(!p)throw new Error(`Form api for scene ${m} not found, please check the formApis props of VefCrudPage component.`);return o(e,{initialValues:a,loading:l,open:i,scene:m,schema:t,submitApi:p,title:s,width:f,onBeforeSubmit:u,onClose:d,onSubmitSuccess:c})}export{VefCrudFormModal as default};
|
|
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,30 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { memo } from 'react';
|
|
4
|
-
import VefCrudFilter from './crud-filter.js';
|
|
5
|
-
|
|
6
|
-
function VefCrudHeaderBase({
|
|
7
|
-
title,
|
|
8
|
-
tableApi,
|
|
9
|
-
tableApiParams,
|
|
10
|
-
filterItems,
|
|
11
|
-
actionButtons
|
|
12
|
-
}) {
|
|
13
|
-
if (filterItems.length > 0) {
|
|
14
|
-
return /* @__PURE__ */ jsx(
|
|
15
|
-
VefCrudFilter,
|
|
16
|
-
{
|
|
17
|
-
actionButtons,
|
|
18
|
-
filterSchema: filterItems,
|
|
19
|
-
tableApi,
|
|
20
|
-
tableApiParams,
|
|
21
|
-
title
|
|
22
|
-
}
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
const VefCrudHeader = memo(VefCrudHeaderBase);
|
|
28
|
-
|
|
29
|
-
export { VefCrudHeader as default };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{jsx as t}from"@emotion/react/jsx-runtime";import{memo as e}from"react";import r from"./crud-filter.js";const a=e((function VefCrudHeaderBase({title:e,tableApi:a,tableApiParams:i,filterItems:o,actionButtons:l}){return o.length>0?t(r,{actionButtons:l,filterSchema:o,tableApi:a,tableApiParams:i,title:e}):null}));export{a as default};
|
|
30
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,77 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo, useCallback, useRef, useEffect, memo } from 'react';
|
|
4
|
-
import VefTable from '../../vef-table/index.js';
|
|
5
|
-
import { useCrudContext } from '../hooks/use-crud-context.js';
|
|
6
|
-
import { useOperationButtons } from '../hooks/use-operation-buttons.js';
|
|
7
|
-
import { useCrudStore, useCrudStoreApi } from '../store.js';
|
|
8
|
-
|
|
9
|
-
function VefCrudTableBase({
|
|
10
|
-
api,
|
|
11
|
-
apiParams,
|
|
12
|
-
deletionApi,
|
|
13
|
-
paginated,
|
|
14
|
-
schema,
|
|
15
|
-
selectable,
|
|
16
|
-
operationButtons,
|
|
17
|
-
...tableProps
|
|
18
|
-
}) {
|
|
19
|
-
const [confirmedFilterValues, selectedInfo, setSelectedInfo] = useCrudStore((state) => [state.confirmedFilterValues, state.selectedInfo, state.setSelectedInfo]);
|
|
20
|
-
const mergedApiParams = useMemo(() => ({
|
|
21
|
-
...apiParams,
|
|
22
|
-
...confirmedFilterValues
|
|
23
|
-
}), [apiParams, confirmedFilterValues]);
|
|
24
|
-
const handleSelectionChange = useCallback((selectedKeys, selectedRecords) => {
|
|
25
|
-
setSelectedInfo({
|
|
26
|
-
selectedKeys,
|
|
27
|
-
selectedRecords
|
|
28
|
-
});
|
|
29
|
-
}, [setSelectedInfo]);
|
|
30
|
-
const operationButtonsToUse = useOperationButtons(deletionApi, operationButtons);
|
|
31
|
-
const tableInstanceRef = useRef(null);
|
|
32
|
-
const crudStore = useCrudStoreApi();
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
crudStore.setState({ tableInstanceRef });
|
|
35
|
-
}, [crudStore]);
|
|
36
|
-
const crudContext = useCrudContext();
|
|
37
|
-
if (paginated) {
|
|
38
|
-
return /* @__PURE__ */ jsx(
|
|
39
|
-
VefTable,
|
|
40
|
-
{
|
|
41
|
-
ref: tableInstanceRef,
|
|
42
|
-
multipleSelection: true,
|
|
43
|
-
paginated: true,
|
|
44
|
-
api,
|
|
45
|
-
apiParams: mergedApiParams,
|
|
46
|
-
externalContext: crudContext,
|
|
47
|
-
operationButtons: operationButtonsToUse,
|
|
48
|
-
schema,
|
|
49
|
-
selectable,
|
|
50
|
-
selectedKeys: selectedInfo.selectedKeys,
|
|
51
|
-
selectionSummary: false,
|
|
52
|
-
onRowSelectionChange: handleSelectionChange,
|
|
53
|
-
...tableProps
|
|
54
|
-
}
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
return /* @__PURE__ */ jsx(
|
|
58
|
-
VefTable,
|
|
59
|
-
{
|
|
60
|
-
ref: tableInstanceRef,
|
|
61
|
-
multipleSelection: true,
|
|
62
|
-
api,
|
|
63
|
-
apiParams: mergedApiParams,
|
|
64
|
-
externalContext: crudContext,
|
|
65
|
-
schema,
|
|
66
|
-
selectable,
|
|
67
|
-
selectedKeys: selectedInfo.selectedKeys,
|
|
68
|
-
selectionSummary: false,
|
|
69
|
-
onRowSelectionChange: handleSelectionChange,
|
|
70
|
-
...tableProps
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
const VefCrudTable = memo(VefCrudTableBase);
|
|
75
|
-
|
|
76
|
-
export { VefCrudTable as default };
|
|
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{useMemo as t,useCallback as o,useRef as s,useEffect as a,memo as n}from"react";import r from"../../vef-table/index.js";import{useCrudContext as l}from"../hooks/use-crud-context.js";import{useOperationButtons as i}from"../hooks/use-operation-buttons.js";import{useCrudStore as c,useCrudStoreApi as m}from"../store.js";const p=n((function VefCrudTableBase({api:n,apiParams:p,deletionApi:d,paginated:u,schema:f,selectable:x,operationButtons:S,...b}){const[h,y,j]=c((e=>[e.confirmedFilterValues,e.selectedInfo,e.setSelectedInfo])),C=t((()=>({...p,...h})),[p,h]),K=o(((e,t)=>{j({selectedKeys:e,selectedRecords:t})}),[j]),g=i(d,S),R=s(null),B=m();a((()=>{B.setState({tableInstanceRef:R})}),[B]);const I=l();return e(r,u?{ref:R,multipleSelection:!0,paginated:!0,api:n,apiParams:C,externalContext:I,operationButtons:g,schema:f,selectable:x,selectedKeys:y.selectedKeys,selectionSummary:!1,onRowSelectionChange:K,...b}:{ref:R,multipleSelection:!0,api:n,apiParams:C,externalContext:I,schema:f,selectable:x,selectedKeys:y.selectedKeys,selectionSummary:!1,onRowSelectionChange:K,...b})}));export{p as default};
|
|
77
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,38 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { creationFormScene } from '@vef-framework/shared';
|
|
4
|
-
import { PlusIcon } from 'lucide-react';
|
|
5
|
-
import { useMemo } from 'react';
|
|
6
|
-
import VefIcon from '../../vef-icon/index.js';
|
|
7
|
-
import { useCrudStore } from '../store.js';
|
|
8
|
-
|
|
9
|
-
function useActionButtons(actionButtons) {
|
|
10
|
-
const formApiKeys = useCrudStore((state) => state.formApiKeys);
|
|
11
|
-
const showCreationActionButton = Reflect.has(formApiKeys, creationFormScene);
|
|
12
|
-
const creationFormApiKey = Reflect.get(formApiKeys, creationFormScene);
|
|
13
|
-
return useMemo(() => {
|
|
14
|
-
if (showCreationActionButton) {
|
|
15
|
-
return [
|
|
16
|
-
...actionButtons ?? [],
|
|
17
|
-
{
|
|
18
|
-
label: "\u521B\u5EFA",
|
|
19
|
-
key: `_${creationFormScene}`,
|
|
20
|
-
icon: /* @__PURE__ */ jsx(VefIcon, { children: /* @__PURE__ */ jsx(PlusIcon, {}) }),
|
|
21
|
-
color: "primary",
|
|
22
|
-
permissions: [creationFormApiKey],
|
|
23
|
-
onClick: ({ openForm, refetch }) => openForm({
|
|
24
|
-
scene: creationFormScene,
|
|
25
|
-
title: "\u521B\u5EFA",
|
|
26
|
-
onSubmitSuccess: () => {
|
|
27
|
-
refetch();
|
|
28
|
-
}
|
|
29
|
-
})
|
|
30
|
-
}
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
return actionButtons ?? [];
|
|
34
|
-
}, [showCreationActionButton, actionButtons, creationFormApiKey]);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export { useActionButtons };
|
|
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{creationFormScene as o}from"@vef-framework/shared";import{PlusIcon as r}from"lucide-react";import{useMemo as t}from"react";import i from"../../vef-icon/index.js";import{useCrudStore as m}from"../store.js";function useActionButtons(c){const n=m((e=>e.formApiKeys)),s=Reflect.has(n,o),f=Reflect.get(n,o);return t((()=>s?[...c??[],{label:"创建",key:`_${o}`,icon:e(i,{children:e(r,{})}),color:"primary",permissions:[f],onClick:({openForm:e,refetch:r})=>e({scene:o,title:"创建",onSubmitSuccess:()=>{r()}})}]:c??[]),[s,c,f])}export{useActionButtons};
|
|
38
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.
|
|
2
|
-
import {
|
|
3
|
-
import { useCrudStore } from '../store.js';
|
|
4
|
-
|
|
5
|
-
function useCrudContext() {
|
|
6
|
-
const [openForm, filterValues, tableInstanceRef] = useCrudStore((state) => [
|
|
7
|
-
state.openForm,
|
|
8
|
-
state.filterValues,
|
|
9
|
-
state.tableInstanceRef
|
|
10
|
-
]);
|
|
11
|
-
return useMemo(() => ({
|
|
12
|
-
openForm,
|
|
13
|
-
filterValues,
|
|
14
|
-
refetch: async () => {
|
|
15
|
-
await tableInstanceRef.current?.refetch();
|
|
16
|
-
}
|
|
17
|
-
}), [openForm, filterValues, tableInstanceRef]);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { useCrudContext };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{useMemo as e}from"react";import{useCrudStore as t}from"../store.js";function useCrudContext(){const[r,o,n]=t((e=>[e.openForm,e.filterValues,e.tableInstanceRef]));return e((()=>({openForm:r,filterValues:o,refetch:async()=>{await(n.current?.refetch())}})),[r,o,n])}export{useCrudContext};
|
|
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,115 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function useCrudSchema(schema) {
|
|
6
|
-
return useMemo(() => {
|
|
7
|
-
const tableColumns = [];
|
|
8
|
-
const filterItems = [];
|
|
9
|
-
const filterValueAsDefaultSet = /* @__PURE__ */ new Set();
|
|
10
|
-
const formGroupMap = {};
|
|
11
|
-
for (const item of schema) {
|
|
12
|
-
const {
|
|
13
|
-
filter,
|
|
14
|
-
form,
|
|
15
|
-
...column
|
|
16
|
-
} = item;
|
|
17
|
-
const { name, title } = column;
|
|
18
|
-
tableColumns.push(column);
|
|
19
|
-
if (filter) {
|
|
20
|
-
const {
|
|
21
|
-
label,
|
|
22
|
-
advanced,
|
|
23
|
-
...rest
|
|
24
|
-
} = filter;
|
|
25
|
-
const filterItem = {
|
|
26
|
-
name,
|
|
27
|
-
label: advanced && isNullish(label) ? title : label,
|
|
28
|
-
advanced,
|
|
29
|
-
...rest
|
|
30
|
-
};
|
|
31
|
-
if ((filterItem.type === "Input" || filterItem.type === "InputNumber") && isNullish(label) && isNullish(filterItem.placeholder)) {
|
|
32
|
-
filterItem.placeholder = isString(title) ? `\u8BF7\u8F93\u5165${title}` : "\u8BF7\u8F93\u5165";
|
|
33
|
-
}
|
|
34
|
-
filterItems.push(filterItem);
|
|
35
|
-
}
|
|
36
|
-
if (form) {
|
|
37
|
-
const {
|
|
38
|
-
group,
|
|
39
|
-
row,
|
|
40
|
-
column: column2,
|
|
41
|
-
filterValueAsDefault,
|
|
42
|
-
label,
|
|
43
|
-
...rest
|
|
44
|
-
} = form;
|
|
45
|
-
const groupKey = `${group ?? 1}`;
|
|
46
|
-
const groupSchema = formGroupMap[groupKey] ?? {};
|
|
47
|
-
if (!formGroupMap[groupKey]) {
|
|
48
|
-
formGroupMap[groupKey] = groupSchema;
|
|
49
|
-
}
|
|
50
|
-
const rowKey = `${row ?? 1}`;
|
|
51
|
-
const rowSchema = groupSchema[rowKey] ?? {};
|
|
52
|
-
if (!groupSchema[rowKey]) {
|
|
53
|
-
groupSchema[rowKey] = rowSchema;
|
|
54
|
-
}
|
|
55
|
-
const columnKey = `${column2 ?? 1}`;
|
|
56
|
-
const columnSchema = rowSchema[columnKey] ?? [];
|
|
57
|
-
if (!rowSchema[columnKey]) {
|
|
58
|
-
rowSchema[columnKey] = columnSchema;
|
|
59
|
-
}
|
|
60
|
-
if (rest.type === "Hidden") {
|
|
61
|
-
columnSchema.push({
|
|
62
|
-
name,
|
|
63
|
-
...rest
|
|
64
|
-
});
|
|
65
|
-
} else {
|
|
66
|
-
columnSchema.push({
|
|
67
|
-
name,
|
|
68
|
-
label: isNullish(label) ? title : label,
|
|
69
|
-
...rest
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
if (filterValueAsDefault ?? false) {
|
|
73
|
-
filterValueAsDefaultSet.add(name);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const formGroups = [];
|
|
78
|
-
const groupKeys = Object.keys(formGroupMap).sort();
|
|
79
|
-
for (const groupKey of groupKeys) {
|
|
80
|
-
const groupSchemaMap = formGroupMap[groupKey];
|
|
81
|
-
const formRows = [];
|
|
82
|
-
const rowKeys = Object.keys(groupSchemaMap).sort();
|
|
83
|
-
for (const rowKey of rowKeys) {
|
|
84
|
-
const rowSchema = groupSchemaMap[rowKey];
|
|
85
|
-
const formColumns = [];
|
|
86
|
-
const columnKeys = Object.keys(rowSchema).sort();
|
|
87
|
-
for (const columnKey of columnKeys) {
|
|
88
|
-
const columnSchema = rowSchema[columnKey];
|
|
89
|
-
const formColumn = {
|
|
90
|
-
key: columnKey,
|
|
91
|
-
items: columnSchema
|
|
92
|
-
};
|
|
93
|
-
formColumns.push(formColumn);
|
|
94
|
-
}
|
|
95
|
-
formRows.push({
|
|
96
|
-
key: rowKey,
|
|
97
|
-
columns: formColumns
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
formGroups.push({
|
|
101
|
-
key: groupKey,
|
|
102
|
-
rows: formRows
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
return {
|
|
106
|
-
tableSchema: tableColumns,
|
|
107
|
-
filterItems,
|
|
108
|
-
formGroups,
|
|
109
|
-
filterValueAsDefaultKeys: Array.from(filterValueAsDefaultSet)
|
|
110
|
-
};
|
|
111
|
-
}, [schema]);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export { useCrudSchema };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{isNullish as e,isString as t}from"@vef-framework/shared";import{useMemo as o}from"react";function useCrudSchema(r){return o((()=>{const o=[],s=[],n=new Set,c={};for(const a of r){const{filter:r,form:u,...f}=a,{name:l,title:m}=f;if(o.push(f),r){const{label:o,advanced:n,...c}=r,a={name:l,label:n&&e(o)?m:o,advanced:n,...c};("Input"===a.type||"InputNumber"===a.type)&&e(o)&&e(a.placeholder)&&(a.placeholder=t(m)?`请输入${m}`:"请输入"),s.push(a)}if(u){const{group:t,row:o,column:r,filterValueAsDefault:s,label:a,...f}=u,p=`${t??1}`,d=c[p]??{};c[p]||(c[p]=d);const h=`${o??1}`,i=d[h]??{};d[h]||(d[h]=i);const y=`${r??1}`,b=i[y]??[];i[y]||(i[y]=b),"Hidden"===f.type?b.push({name:l,...f}):b.push({name:l,label:e(a)?m:a,...f}),s&&n.add(l)}}const a=[],u=Object.keys(c).sort();for(const e of u){const t=c[e],o=[],r=Object.keys(t).sort();for(const e of r){const r=t[e],s=[],n=Object.keys(r).sort();for(const e of n){const t={key:e,items:r[e]};s.push(t)}o.push({key:e,columns:s})}a.push({key:e,rows:o})}return{tableSchema:o,filterItems:s,formGroups:a,filterValueAsDefaultKeys:Array.from(n)}}),[r])}export{useCrudSchema};
|
|
115
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 */
|