@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,131 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import {
|
|
3
|
-
import { isFunction, VefError, showLoadingMessage, omit, showSuccessMessage } from '@vef-framework/shared';
|
|
4
|
-
import { useCallback, useMemo } from 'react';
|
|
5
|
-
import { useFormStore } from '../store.js';
|
|
6
|
-
|
|
7
|
-
function useActionHandlers({
|
|
8
|
-
submitApi,
|
|
9
|
-
submitTip = "\u63D0\u4EA4\u4E2D...",
|
|
10
|
-
onBeforeSubmit,
|
|
11
|
-
onSubmit,
|
|
12
|
-
onSubmitSuccess,
|
|
13
|
-
onSubmitFailure,
|
|
14
|
-
onReset
|
|
15
|
-
}) {
|
|
16
|
-
const [
|
|
17
|
-
form,
|
|
18
|
-
scene,
|
|
19
|
-
eventBus,
|
|
20
|
-
setIsLoading,
|
|
21
|
-
virtualFieldNames,
|
|
22
|
-
getValues,
|
|
23
|
-
initialValues,
|
|
24
|
-
invokeValueChangeHandlers
|
|
25
|
-
] = useFormStore((state) => [
|
|
26
|
-
state.form,
|
|
27
|
-
state.scene,
|
|
28
|
-
state.eventBus,
|
|
29
|
-
state.setIsLoading,
|
|
30
|
-
state.virtualFieldNames,
|
|
31
|
-
state.getValues,
|
|
32
|
-
state.initialValues,
|
|
33
|
-
state.invokeValueChangeHandlers
|
|
34
|
-
]);
|
|
35
|
-
const { useApiMutation, stubMutationApi } = useApiContext();
|
|
36
|
-
const { mutate } = useApiMutation(submitApi ?? stubMutationApi);
|
|
37
|
-
if (!isFunction(onSubmit) && !submitApi) {
|
|
38
|
-
throw new VefError(-1, "'onSubmit' or 'submitApi' prop is required for VefForm component");
|
|
39
|
-
}
|
|
40
|
-
const handleReset = useCallback(() => {
|
|
41
|
-
const values = getValues();
|
|
42
|
-
form.resetFields();
|
|
43
|
-
invokeValueChangeHandlers();
|
|
44
|
-
eventBus.emitChange(initialValues);
|
|
45
|
-
onReset?.(values, scene);
|
|
46
|
-
}, [
|
|
47
|
-
form,
|
|
48
|
-
getValues,
|
|
49
|
-
onReset,
|
|
50
|
-
scene,
|
|
51
|
-
invokeValueChangeHandlers,
|
|
52
|
-
initialValues,
|
|
53
|
-
eventBus
|
|
54
|
-
]);
|
|
55
|
-
const handleSubmit = useMemo(() => {
|
|
56
|
-
if (isFunction(onSubmit)) {
|
|
57
|
-
if (submitApi) {
|
|
58
|
-
console.warn("'submitApi' prop is ignored when 'onSubmit' prop is provided in VefForm component");
|
|
59
|
-
}
|
|
60
|
-
return async (values) => {
|
|
61
|
-
setIsLoading(true);
|
|
62
|
-
let valuesToUse = values;
|
|
63
|
-
let closeLoading = null;
|
|
64
|
-
try {
|
|
65
|
-
const submitTipToUse = isFunction(submitTip) ? submitTip(values, scene) : submitTip;
|
|
66
|
-
closeLoading = showLoadingMessage(submitTipToUse);
|
|
67
|
-
if (isFunction(onBeforeSubmit)) {
|
|
68
|
-
valuesToUse = await onBeforeSubmit(valuesToUse, scene);
|
|
69
|
-
}
|
|
70
|
-
const valuesToSubmit = omit(valuesToUse, virtualFieldNames);
|
|
71
|
-
await onSubmit(valuesToSubmit, scene);
|
|
72
|
-
eventBus.emitSubmitResult(true);
|
|
73
|
-
} catch (error) {
|
|
74
|
-
eventBus.emitSubmitResult(false);
|
|
75
|
-
throw error;
|
|
76
|
-
} finally {
|
|
77
|
-
setIsLoading(false);
|
|
78
|
-
closeLoading?.();
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
return async (values) => {
|
|
83
|
-
setIsLoading(true);
|
|
84
|
-
let valuesToUse = values;
|
|
85
|
-
let closeLoading = null;
|
|
86
|
-
try {
|
|
87
|
-
const submitTipToUse = isFunction(submitTip) ? submitTip(values, scene) : submitTip;
|
|
88
|
-
closeLoading = showLoadingMessage(submitTipToUse);
|
|
89
|
-
if (isFunction(onBeforeSubmit)) {
|
|
90
|
-
valuesToUse = await onBeforeSubmit(values, scene);
|
|
91
|
-
}
|
|
92
|
-
const toSubmitValues = omit(valuesToUse, virtualFieldNames);
|
|
93
|
-
const apiResponse = await mutate(toSubmitValues);
|
|
94
|
-
(onSubmitSuccess ?? (({ message }) => {
|
|
95
|
-
showSuccessMessage(message);
|
|
96
|
-
}))(apiResponse, valuesToUse, scene);
|
|
97
|
-
eventBus.emitSubmitResult(true);
|
|
98
|
-
} catch (error) {
|
|
99
|
-
eventBus.emitSubmitResult(false);
|
|
100
|
-
onSubmitFailure?.(error, valuesToUse, scene);
|
|
101
|
-
} finally {
|
|
102
|
-
setIsLoading(false);
|
|
103
|
-
closeLoading?.();
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
}, [
|
|
107
|
-
onSubmit,
|
|
108
|
-
submitApi,
|
|
109
|
-
setIsLoading,
|
|
110
|
-
submitTip,
|
|
111
|
-
scene,
|
|
112
|
-
onBeforeSubmit,
|
|
113
|
-
virtualFieldNames,
|
|
114
|
-
eventBus,
|
|
115
|
-
mutate,
|
|
116
|
-
onSubmitSuccess,
|
|
117
|
-
onSubmitFailure
|
|
118
|
-
]);
|
|
119
|
-
const handleSubmitFailed = useCallback(({ values, errorFields }) => {
|
|
120
|
-
eventBus.emitSubmitResult(false);
|
|
121
|
-
onSubmitFailure?.(new VefError(-1, errorFields.flatMap((field) => field.errors).join(", ")), values, scene);
|
|
122
|
-
}, [eventBus, onSubmitFailure, scene]);
|
|
123
|
-
return {
|
|
124
|
-
handleReset,
|
|
125
|
-
handleSubmit,
|
|
126
|
-
handleSubmitFailed
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
export { useActionHandlers };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{useApiContext as e}from"@vef-framework/core";import{isFunction as t,VefError as i,showLoadingMessage as o,omit as n,showSuccessMessage as r}from"@vef-framework/shared";import{useCallback as s,useMemo as a}from"react";import{useFormStore as u}from"../store.js";function useActionHandlers({submitApi:m,submitTip:l="提交中...",onBeforeSubmit:c,onSubmit:p,onSubmitSuccess:b,onSubmitFailure:f,onReset:d}){const[S,w,h,v,A,F,R,g]=u((e=>[e.form,e.scene,e.eventBus,e.setIsLoading,e.virtualFieldNames,e.getValues,e.initialValues,e.invokeValueChangeHandlers])),{useApiMutation:y,stubMutationApi:V}=e(),{mutate:k}=y(m??V);if(!t(p)&&!m)throw new i(-1,"'onSubmit' or 'submitApi' prop is required for VefForm component");return{handleReset:s((()=>{const e=F();S.resetFields(),g(),h.emitChange(R),d?.(e,w)}),[S,F,d,w,g,R,h]),handleSubmit:a((()=>t(p)?(m&&console.warn("'submitApi' prop is ignored when 'onSubmit' prop is provided in VefForm component"),async e=>{v(!0);let i=e,r=null;try{const s=t(l)?l(e,w):l;r=o(s),t(c)&&(i=await c(i,w));const a=n(i,A);await p(a,w),h.emitSubmitResult(!0)}catch(e){throw h.emitSubmitResult(!1),e}finally{v(!1),r?.()}}):async e=>{v(!0);let i=e,s=null;try{const a=t(l)?l(e,w):l;s=o(a),t(c)&&(i=await c(e,w));const u=n(i,A),m=await k(u);(b??(({message:e})=>{r(e)}))(m,i,w),h.emitSubmitResult(!0)}catch(e){h.emitSubmitResult(!1),f?.(e,i,w)}finally{v(!1),s?.()}}),[p,m,v,l,w,c,A,h,k,b,f]),handleSubmitFailed:s((({values:e,errorFields:t})=>{h.emitSubmitResult(!1),f?.(new i(-1,t.flatMap((e=>e.errors)).join(", ")),e,w)}),[h,f,w])}}export{useActionHandlers};
|
|
131
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,123 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
const MAX_SPANS = 24;
|
|
6
|
-
const SPAN_BASES = [
|
|
7
|
-
{
|
|
8
|
-
breakpoint: "xs",
|
|
9
|
-
base: MAX_SPANS,
|
|
10
|
-
spans: 1
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
breakpoint: "sm",
|
|
14
|
-
base: MAX_SPANS / 2,
|
|
15
|
-
spans: 2
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
breakpoint: "md",
|
|
19
|
-
base: MAX_SPANS / 3,
|
|
20
|
-
spans: 3
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
breakpoint: "lg",
|
|
24
|
-
base: MAX_SPANS / 4,
|
|
25
|
-
spans: 4
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
breakpoint: "xl",
|
|
29
|
-
base: MAX_SPANS / 4,
|
|
30
|
-
spans: 4
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
breakpoint: "xxl",
|
|
34
|
-
base: MAX_SPANS / 6,
|
|
35
|
-
spans: 6
|
|
36
|
-
}
|
|
37
|
-
];
|
|
38
|
-
const ALLOWED_SPANS = unique(SPAN_BASES.map((item) => item.spans));
|
|
39
|
-
function calculateResponsiveLayout(rowKey, columns, autoExpand) {
|
|
40
|
-
const totalSpans = columns.reduce((acc, column) => acc + (column.span ?? 1), 0);
|
|
41
|
-
if (!ALLOWED_SPANS.includes(totalSpans)) {
|
|
42
|
-
throw new VefError(-3, `The total spans of the columns of the row [${rowKey}] must be one of the following: ${ALLOWED_SPANS.join(", ")}.`);
|
|
43
|
-
}
|
|
44
|
-
const requiredBase = 24 / totalSpans;
|
|
45
|
-
const layout = {};
|
|
46
|
-
for (const {
|
|
47
|
-
breakpoint,
|
|
48
|
-
base,
|
|
49
|
-
spans
|
|
50
|
-
} of SPAN_BASES) {
|
|
51
|
-
if (requiredBase >= base) {
|
|
52
|
-
layout[breakpoint] = columns.reduce((acc, column) => {
|
|
53
|
-
acc[column.key] = (column.span ?? 1) * requiredBase;
|
|
54
|
-
return acc;
|
|
55
|
-
}, {});
|
|
56
|
-
} else {
|
|
57
|
-
const map = {};
|
|
58
|
-
let remainingSpans = spans;
|
|
59
|
-
let lastColumnKey = null;
|
|
60
|
-
for (const column of columns) {
|
|
61
|
-
const requiredSpan = column.span ?? 1;
|
|
62
|
-
if (remainingSpans >= requiredSpan) {
|
|
63
|
-
map[column.key] = requiredSpan * base;
|
|
64
|
-
remainingSpans -= requiredSpan;
|
|
65
|
-
lastColumnKey = column.key;
|
|
66
|
-
} else {
|
|
67
|
-
if (lastColumnKey) {
|
|
68
|
-
if (autoExpand) {
|
|
69
|
-
map[lastColumnKey] += remainingSpans * base;
|
|
70
|
-
}
|
|
71
|
-
remainingSpans = spans;
|
|
72
|
-
lastColumnKey = null;
|
|
73
|
-
}
|
|
74
|
-
if (requiredSpan > spans) {
|
|
75
|
-
map[column.key] = 24;
|
|
76
|
-
} else {
|
|
77
|
-
map[column.key] = requiredSpan * base;
|
|
78
|
-
remainingSpans -= requiredSpan;
|
|
79
|
-
lastColumnKey = column.key;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (remainingSpans === 0) {
|
|
83
|
-
remainingSpans = spans;
|
|
84
|
-
lastColumnKey = null;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (remainingSpans > 0) {
|
|
88
|
-
if (autoExpand) {
|
|
89
|
-
map[lastColumnKey] += remainingSpans * base;
|
|
90
|
-
}
|
|
91
|
-
lastColumnKey = null;
|
|
92
|
-
}
|
|
93
|
-
layout[breakpoint] = map;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return layout;
|
|
97
|
-
}
|
|
98
|
-
function calculateFixedLayout(rowKey, columns) {
|
|
99
|
-
const totalSpans = columns.reduce((acc, column) => acc + (column.span ?? 1), 0);
|
|
100
|
-
if (totalSpans > MAX_SPANS || MAX_SPANS % totalSpans !== 0) {
|
|
101
|
-
throw new VefError(-3, `The total spans of the columns of the row [${rowKey}] must be less than or equal to ${MAX_SPANS} and a divisor of ${MAX_SPANS}.`);
|
|
102
|
-
}
|
|
103
|
-
const base = MAX_SPANS / totalSpans;
|
|
104
|
-
return columns.reduce((acc, column) => {
|
|
105
|
-
acc[column.key] = (column.span ?? 1) * base;
|
|
106
|
-
return acc;
|
|
107
|
-
}, {});
|
|
108
|
-
}
|
|
109
|
-
function useColumnsLayout(rowKey, columns, layoutMode, autoExpand) {
|
|
110
|
-
return useMemo(() => {
|
|
111
|
-
if (columns.length === 0) {
|
|
112
|
-
return {};
|
|
113
|
-
}
|
|
114
|
-
if (layoutMode === "responsive") {
|
|
115
|
-
return calculateResponsiveLayout(rowKey, columns, autoExpand);
|
|
116
|
-
} else {
|
|
117
|
-
return calculateFixedLayout(rowKey, columns);
|
|
118
|
-
}
|
|
119
|
-
}, []);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export { useColumnsLayout };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{unique as e,VefError as s}from"@vef-framework/shared";import{useMemo as n}from"react";const o=24,t=[{breakpoint:"xs",base:o,spans:1},{breakpoint:"sm",base:12,spans:2},{breakpoint:"md",base:8,spans:3},{breakpoint:"lg",base:6,spans:4},{breakpoint:"xl",base:6,spans:4},{breakpoint:"xxl",base:4,spans:6}],a=e(t.map((e=>e.spans)));function useColumnsLayout(e,r,u,l){return n((()=>0===r.length?{}:"responsive"===u?function calculateResponsiveLayout(e,n,o){const r=n.reduce(((e,s)=>e+(s.span??1)),0);if(!a.includes(r))throw new s(-3,`The total spans of the columns of the row [${e}] must be one of the following: ${a.join(", ")}.`);const u=24/r,l={};for(const{breakpoint:e,base:s,spans:a}of t)if(u>=s)l[e]=n.reduce(((e,s)=>(e[s.key]=(s.span??1)*u,e)),{});else{const t={};let r=a,u=null;for(const e of n){const n=e.span??1;r>=n?(t[e.key]=n*s,r-=n,u=e.key):(u&&(o&&(t[u]+=r*s),r=a,u=null),n>a?t[e.key]=24:(t[e.key]=n*s,r-=n,u=e.key)),0===r&&(r=a,u=null)}r>0&&(o&&(t[u]+=r*s),u=null),l[e]=t}return l}(e,r,l):function calculateFixedLayout(e,n){const t=n.reduce(((e,s)=>e+(s.span??1)),0);if(t>o||o%t!=0)throw new s(-3,`The total spans of the columns of the row [${e}] must be less than or equal to 24 and a divisor of 24.`);const a=o/t;return n.reduce(((e,s)=>(e[s.key]=(s.span??1)*a,e)),{})}(e,r)),[])}export{useColumnsLayout};
|
|
123
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,56 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { isFunctionOrExpression, isDeepEqual } from '@vef-framework/shared';
|
|
4
|
-
import { computeValue } from '../helper.js';
|
|
5
|
-
import { useFormStore } from '../store.js';
|
|
6
|
-
|
|
7
|
-
function useComputedValues(values, returnAsObject = false) {
|
|
8
|
-
const [scene, eventBus, getValues] = useFormStore((state) => [state.scene, state.eventBus, state.getValues]);
|
|
9
|
-
const forceUpdate = useUpdater();
|
|
10
|
-
const currentValues = getValues();
|
|
11
|
-
const computedValues = useDeepMemo(() => values.reduce((acc, it) => {
|
|
12
|
-
const {
|
|
13
|
-
key,
|
|
14
|
-
rawValue,
|
|
15
|
-
defaultValue
|
|
16
|
-
} = it;
|
|
17
|
-
const computedValue = computeValue(rawValue, currentValues, scene, defaultValue);
|
|
18
|
-
acc[key] = computedValue;
|
|
19
|
-
return acc;
|
|
20
|
-
}, {}), [currentValues, scene, values]);
|
|
21
|
-
useDeepLayoutEffect(() => {
|
|
22
|
-
const realComputedValues = values.filter(({ rawValue }) => isFunctionOrExpression(rawValue));
|
|
23
|
-
const shouldListenChangeEvent = realComputedValues.length > 0;
|
|
24
|
-
if (shouldListenChangeEvent) {
|
|
25
|
-
const handleChange = (newValues) => {
|
|
26
|
-
for (const value of realComputedValues) {
|
|
27
|
-
const {
|
|
28
|
-
key,
|
|
29
|
-
rawValue,
|
|
30
|
-
defaultValue
|
|
31
|
-
} = value;
|
|
32
|
-
const computedValue = computedValues[key];
|
|
33
|
-
const refreshedValue = computeValue(rawValue, newValues, scene, defaultValue);
|
|
34
|
-
if (!isDeepEqual(refreshedValue, computedValue)) {
|
|
35
|
-
forceUpdate();
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
eventBus.onChange(handleChange);
|
|
41
|
-
return () => {
|
|
42
|
-
eventBus.offChange(handleChange);
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}, [computedValues, eventBus, forceUpdate, scene, values]);
|
|
46
|
-
if (returnAsObject) {
|
|
47
|
-
return values.reduce((acc, { key }) => {
|
|
48
|
-
acc[key] = computedValues[key];
|
|
49
|
-
return acc;
|
|
50
|
-
}, {});
|
|
51
|
-
}
|
|
52
|
-
return values.map(({ key }) => computedValues[key]);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export { useComputedValues };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{useUpdater as e,useDeepMemo as r,useDeepLayoutEffect as o}from"@vef-framework/hooks";import{isFunctionOrExpression as t,isDeepEqual as u}from"@vef-framework/shared";import{computeValue as a}from"../helper.js";import{useFormStore as f}from"../store.js";function useComputedValues(s,n=!1){const[l,m,c]=f((e=>[e.scene,e.eventBus,e.getValues])),p=e(),i=c(),k=r((()=>s.reduce(((e,r)=>{const{key:o,rawValue:t,defaultValue:u}=r,f=a(t,i,l,u);return e[o]=f,e}),{})),[i,l,s]);return o((()=>{const e=s.filter((({rawValue:e})=>t(e)));if(e.length>0){const handleChange=r=>{for(const o of e){const{key:e,rawValue:t,defaultValue:f}=o,s=k[e],n=a(t,r,l,f);if(!u(n,s)){p();break}}};return m.onChange(handleChange),()=>{m.offChange(handleChange)}}}),[k,m,p,l,s]),n?s.reduce(((e,{key:r})=>(e[r]=k[r],e)),{}):s.map((({key:e})=>k[e]))}export{useComputedValues};
|
|
56
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,15 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
const {
|
|
5
|
-
useContextSelector: useFormContextSelector,
|
|
6
|
-
useContext: useFormContext,
|
|
7
|
-
ContextProvider: FormContextProvider
|
|
8
|
-
} = createSelectableContext({
|
|
9
|
-
autoExpand: true,
|
|
10
|
-
labelPosition: "top",
|
|
11
|
-
layoutMode: "responsive"
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
export { FormContextProvider, useFormContext, useFormContextSelector };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{createSelectableContext as o}from"@vef-framework/shared";const{useContextSelector:e,useContext:t,ContextProvider:r}=o({autoExpand:!0,labelPosition:"top",layoutMode:"responsive"});export{r as FormContextProvider,t as useFormContext,e as useFormContextSelector};
|
|
15
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,46 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function useFormInitialization(schema, initialValues) {
|
|
6
|
-
return useMemo(() => {
|
|
7
|
-
const mergedInitialValues = {
|
|
8
|
-
...initialValues
|
|
9
|
-
};
|
|
10
|
-
const valueChangeHandlers = {};
|
|
11
|
-
const virtualFieldNames = [];
|
|
12
|
-
for (const group of schema) {
|
|
13
|
-
const { rows } = group;
|
|
14
|
-
for (const row of rows) {
|
|
15
|
-
const { columns } = row;
|
|
16
|
-
for (const column of columns) {
|
|
17
|
-
const { items } = column;
|
|
18
|
-
for (const item of items) {
|
|
19
|
-
const {
|
|
20
|
-
name,
|
|
21
|
-
defaultValue,
|
|
22
|
-
virtual
|
|
23
|
-
} = item;
|
|
24
|
-
if (!isNullish(defaultValue) && isNullish(mergedInitialValues[name])) {
|
|
25
|
-
mergedInitialValues[name] = defaultValue;
|
|
26
|
-
}
|
|
27
|
-
if (item.type !== "Hidden" && isFunction(item.onChange)) {
|
|
28
|
-
valueChangeHandlers[name] = item.onChange;
|
|
29
|
-
}
|
|
30
|
-
if (virtual === true) {
|
|
31
|
-
virtualFieldNames.push(name);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
mergedInitialValues,
|
|
39
|
-
valueChangeHandlers,
|
|
40
|
-
virtualFieldNames
|
|
41
|
-
};
|
|
42
|
-
}, []);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export { useFormInitialization };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{isNullish as o,isFunction as n}from"@vef-framework/shared";import{useMemo as t}from"react";function useFormInitialization(e,r){return t((()=>{const t={...r},a={},s=[];for(const r of e){const{rows:e}=r;for(const r of e){const{columns:e}=r;for(const r of e){const{items:e}=r;for(const r of e){const{name:e,defaultValue:i,virtual:f}=r;!o(i)&&o(t[e])&&(t[e]=i),"Hidden"!==r.type&&n(r.onChange)&&(a[e]=r.onChange),!0===f&&s.push(e)}}}}return{mergedInitialValues:t,valueChangeHandlers:a,virtualFieldNames:s}}),[])}export{useFormInitialization};
|
|
46
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import {
|
|
3
|
-
import { useFormStore } from '../store.js';
|
|
4
|
-
|
|
5
|
-
function useFormInstance(ref, reset) {
|
|
6
|
-
const [form, eventBus, getValues, setValues] = useFormStore((state) => [state.form, state.eventBus, state.getValues, state.setValues]);
|
|
7
|
-
useImperativeHandle(ref, () => ({
|
|
8
|
-
submit: () => new Promise((resolve, reject) => {
|
|
9
|
-
const handleResult = (result) => {
|
|
10
|
-
eventBus.offSubmitResult(handleResult);
|
|
11
|
-
if (result) {
|
|
12
|
-
resolve();
|
|
13
|
-
} else {
|
|
14
|
-
reject(result);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
eventBus.onSubmitResult(handleResult);
|
|
18
|
-
form.submit();
|
|
19
|
-
}),
|
|
20
|
-
reset,
|
|
21
|
-
getValues,
|
|
22
|
-
setValues
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export { useFormInstance };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{useImperativeHandle as e}from"react";import{useFormStore as t}from"../store.js";function useFormInstance(s,o){const[u,m,r,n]=t((e=>[e.form,e.eventBus,e.getValues,e.setValues]));e(s,(()=>({submit:()=>new Promise(((e,t)=>{const handleResult=s=>{m.offSubmitResult(handleResult),s?e():t(s)};m.onSubmitResult(handleResult),u.submit()})),reset:o,getValues:r,setValues:n})))}export{useFormInstance};
|
|
27
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo, useEffect, useLayoutEffect } from 'react';
|
|
4
|
-
import { useFormStore } from '../store.js';
|
|
5
|
-
|
|
6
|
-
function useFormValuesChange(onChange) {
|
|
7
|
-
const [scene, eventBus, invokeValueChangeHandlers] = useFormStore((state) => [state.scene, state.eventBus, state.invokeValueChangeHandlers]);
|
|
8
|
-
const handleValuesChange = useMemo(() => (_, values) => {
|
|
9
|
-
eventBus.emitChange(values);
|
|
10
|
-
}, [eventBus]);
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
if (isFunction(onChange)) {
|
|
13
|
-
const handleChange = (values) => {
|
|
14
|
-
onChange(values, scene);
|
|
15
|
-
};
|
|
16
|
-
eventBus.onChange(handleChange);
|
|
17
|
-
return () => {
|
|
18
|
-
eventBus.offChange(handleChange);
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
}, [eventBus, onChange, scene]);
|
|
22
|
-
useLayoutEffect(() => {
|
|
23
|
-
invokeValueChangeHandlers();
|
|
24
|
-
}, []);
|
|
25
|
-
return {
|
|
26
|
-
handleValuesChange
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export { useFormValuesChange };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{isFunction as e}from"@vef-framework/shared";import{useMemo as n,useEffect as r,useLayoutEffect as o}from"react";import{useFormStore as a}from"../store.js";function useFormValuesChange(s){const[t,m,u]=a((e=>[e.scene,e.eventBus,e.invokeValueChangeHandlers])),f=n((()=>(e,n)=>{m.emitChange(n)}),[m]);return r((()=>{if(e(s)){const handleChange=e=>{s(e,t)};return m.onChange(handleChange),()=>{m.offChange(handleChange)}}}),[m,s,t]),o((()=>{u()}),[]),{handleValuesChange:f}}export{useFormValuesChange};
|
|
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,19 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function useLabelWidth(labelPosition, labelWidth) {
|
|
6
|
-
const labelWidthToUse = useMemo(() => {
|
|
7
|
-
if (labelPosition === "top" || !labelWidth) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
if (labelWidth < 60 || labelWidth > 120) {
|
|
11
|
-
showWarningMessage("The labelWidth of VefForm component must be between 60 and 120, otherwise it will be 60 or 120.");
|
|
12
|
-
}
|
|
13
|
-
return Math.min(Math.max(labelWidth, 60), 120);
|
|
14
|
-
}, [labelPosition, labelWidth]);
|
|
15
|
-
return labelWidthToUse;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { useLabelWidth };
|
|
1
|
+
/*! VefFramework version: 1.0.65, build time: 2025-01-10T02:44:47.916Z, made by Venus. */
|
|
2
|
+
import{showWarningMessage as e}from"@vef-framework/shared";import{useMemo as t}from"react";function useLabelWidth(r,o){return t((()=>{if("top"!==r&&o)return(o<60||o>120)&&e("The labelWidth of VefForm component must be between 60 and 120, otherwise it will be 60 or 120."),Math.min(Math.max(o,60),120)}),[r,o])}export{useLabelWidth};
|
|
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 */
|
package/es/vef-form/index.js
CHANGED
|
@@ -1,175 +1,5 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { isNumber, isDeepEqual, omit } from '@vef-framework/shared';
|
|
6
|
-
import { Form } from 'antd';
|
|
7
|
-
import { useMemo, forwardRef, memo } from 'react';
|
|
8
|
-
import '../internal/index.js';
|
|
9
|
-
import VefFormActions from './components/form-actions.js';
|
|
10
|
-
import VefFormContent from './components/form-content.js';
|
|
11
|
-
import { FormEventBus } from './event.js';
|
|
12
|
-
import { useActionHandlers } from './hooks/use-action-handlers.js';
|
|
13
|
-
import { useFormContextSelector, FormContextProvider } from './hooks/use-form-context.js';
|
|
14
|
-
import { useFormInitialization } from './hooks/use-form-initialization.js';
|
|
15
|
-
import { useFormInstance } from './hooks/use-form-instance.js';
|
|
16
|
-
import { useFormValuesChange } from './hooks/use-form-values-change.js';
|
|
17
|
-
import { useLabelWidth } from './hooks/use-label-width.js';
|
|
18
|
-
import { useFormStore, FormStoreProvider } from './store.js';
|
|
19
|
-
import { convertBasicSizeToUiSize } from '../internal/utils.js';
|
|
20
|
-
|
|
21
|
-
const { useForm } = Form;
|
|
22
|
-
const scrollToFirstErrorOptions = {
|
|
23
|
-
scrollMode: "if-needed",
|
|
24
|
-
behavior: "smooth"
|
|
25
|
-
};
|
|
26
|
-
function VefFormBase({
|
|
27
|
-
schema,
|
|
28
|
-
labelAlign = "right",
|
|
29
|
-
variant,
|
|
30
|
-
showTabs = false,
|
|
31
|
-
height = "auto",
|
|
32
|
-
size,
|
|
33
|
-
disabled = false,
|
|
34
|
-
onChange,
|
|
35
|
-
submissionButton,
|
|
36
|
-
resetButton,
|
|
37
|
-
submitApi,
|
|
38
|
-
submitTip,
|
|
39
|
-
onBeforeSubmit,
|
|
40
|
-
onSubmit,
|
|
41
|
-
onSubmitSuccess,
|
|
42
|
-
onSubmitFailure,
|
|
43
|
-
onReset
|
|
44
|
-
}, ref) {
|
|
45
|
-
const [labelPosition, labelWidth] = useFormContextSelector((ctx) => [ctx.labelPosition, ctx.labelWidth]);
|
|
46
|
-
const [form, initialValues, isLoading] = useFormStore((state) => [state.form, state.initialValues, state.isLoading]);
|
|
47
|
-
const { handleValuesChange } = useFormValuesChange(onChange);
|
|
48
|
-
const {
|
|
49
|
-
handleReset,
|
|
50
|
-
handleSubmit,
|
|
51
|
-
handleSubmitFailed
|
|
52
|
-
} = useActionHandlers({
|
|
53
|
-
submitApi,
|
|
54
|
-
submitTip,
|
|
55
|
-
onBeforeSubmit,
|
|
56
|
-
onSubmit,
|
|
57
|
-
onSubmitSuccess,
|
|
58
|
-
onSubmitFailure,
|
|
59
|
-
onReset
|
|
60
|
-
});
|
|
61
|
-
useFormInstance(ref, handleReset);
|
|
62
|
-
const labelCol = useMemo(() => {
|
|
63
|
-
if (!labelWidth) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
return { flex: `0 0 ${labelWidth}px` };
|
|
67
|
-
}, [labelWidth]);
|
|
68
|
-
const formStyle = useMemo(() => {
|
|
69
|
-
let heightValue = height;
|
|
70
|
-
if (height === "full") {
|
|
71
|
-
heightValue = "100%";
|
|
72
|
-
} else if (isNumber(height)) {
|
|
73
|
-
heightValue = `${height}px`;
|
|
74
|
-
}
|
|
75
|
-
return css`
|
|
76
|
-
height: ${heightValue};
|
|
77
|
-
`;
|
|
78
|
-
}, [height]);
|
|
79
|
-
const contextDisabled = useContextDisabled();
|
|
80
|
-
const formDisabled = contextDisabled || disabled || isLoading;
|
|
81
|
-
return /* @__PURE__ */ jsxs(
|
|
82
|
-
Form,
|
|
83
|
-
{
|
|
84
|
-
labelWrap: true,
|
|
85
|
-
colon: false,
|
|
86
|
-
css: formStyle,
|
|
87
|
-
disabled: formDisabled,
|
|
88
|
-
form,
|
|
89
|
-
initialValues,
|
|
90
|
-
labelAlign,
|
|
91
|
-
labelCol,
|
|
92
|
-
layout: labelPosition === "top" ? "vertical" : "horizontal",
|
|
93
|
-
scrollToFirstError: scrollToFirstErrorOptions,
|
|
94
|
-
size: convertBasicSizeToUiSize(size),
|
|
95
|
-
variant,
|
|
96
|
-
onFinish: handleSubmit,
|
|
97
|
-
onFinishFailed: handleSubmitFailed,
|
|
98
|
-
onValuesChange: handleValuesChange,
|
|
99
|
-
children: [
|
|
100
|
-
/* @__PURE__ */ jsx(
|
|
101
|
-
VefFormContent,
|
|
102
|
-
{
|
|
103
|
-
height,
|
|
104
|
-
schema,
|
|
105
|
-
showTabs: showTabs === true ? "switch" : showTabs
|
|
106
|
-
}
|
|
107
|
-
),
|
|
108
|
-
/* @__PURE__ */ jsx(
|
|
109
|
-
VefFormActions,
|
|
110
|
-
{
|
|
111
|
-
handleReset,
|
|
112
|
-
resetButton,
|
|
113
|
-
submissionButton
|
|
114
|
-
}
|
|
115
|
-
)
|
|
116
|
-
]
|
|
117
|
-
}
|
|
118
|
-
);
|
|
119
|
-
}
|
|
120
|
-
const VefFormBaseForwarded = forwardRef(VefFormBase);
|
|
121
|
-
VefFormBaseForwarded.displayName = "VefFormBase";
|
|
122
|
-
function VefFormWrapper({
|
|
123
|
-
initialValues,
|
|
124
|
-
scene,
|
|
125
|
-
layoutMode = "responsive",
|
|
126
|
-
autoExpand = false,
|
|
127
|
-
labelPosition = "top",
|
|
128
|
-
labelWidth,
|
|
129
|
-
...restProps
|
|
130
|
-
}, ref) {
|
|
131
|
-
const { schema } = restProps;
|
|
132
|
-
const [form] = useForm();
|
|
133
|
-
const eventBus = useSingleton(() => new FormEventBus());
|
|
134
|
-
useUnmount(() => {
|
|
135
|
-
eventBus.clear();
|
|
136
|
-
});
|
|
137
|
-
const labelWidthToUse = useLabelWidth(labelPosition, labelWidth);
|
|
138
|
-
const formContext = useMemo(() => ({
|
|
139
|
-
labelPosition,
|
|
140
|
-
labelWidth: labelWidthToUse,
|
|
141
|
-
autoExpand,
|
|
142
|
-
layoutMode
|
|
143
|
-
}), [layoutMode, autoExpand, labelPosition, labelWidthToUse]);
|
|
144
|
-
const {
|
|
145
|
-
mergedInitialValues,
|
|
146
|
-
valueChangeHandlers,
|
|
147
|
-
virtualFieldNames
|
|
148
|
-
} = useFormInitialization(schema, initialValues);
|
|
149
|
-
const initialState = useMemo(() => ({
|
|
150
|
-
eventBus,
|
|
151
|
-
form,
|
|
152
|
-
initialValues: mergedInitialValues,
|
|
153
|
-
scene,
|
|
154
|
-
valueChangeHandlers,
|
|
155
|
-
virtualFieldNames
|
|
156
|
-
}), [eventBus, form, mergedInitialValues, scene, valueChangeHandlers, virtualFieldNames]);
|
|
157
|
-
return /* @__PURE__ */ jsx(FormStoreProvider, { initialState, children: /* @__PURE__ */ jsx(FormContextProvider, { value: formContext, children: /* @__PURE__ */ jsx(
|
|
158
|
-
VefFormBaseForwarded,
|
|
159
|
-
{
|
|
160
|
-
ref,
|
|
161
|
-
...restProps
|
|
162
|
-
}
|
|
163
|
-
) }) });
|
|
164
|
-
}
|
|
165
|
-
const VefForm = memo(
|
|
166
|
-
forwardRef(VefFormWrapper),
|
|
167
|
-
(prevProps, nextProps) => isDeepEqual(
|
|
168
|
-
omit(prevProps, ["initialValues", "schema"]),
|
|
169
|
-
omit(nextProps, ["initialValues", "schema"])
|
|
170
|
-
)
|
|
171
|
-
);
|
|
172
|
-
VefForm.displayName = "VefForm";
|
|
173
|
-
|
|
174
|
-
export { VefForm 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 o}from"@emotion/react/jsx-runtime";import{css as i}from"@emotion/react";import{useContextDisabled as t,useSingleton as s,useUnmount as a}from"@vef-framework/hooks";import{isNumber as n,isDeepEqual as r,omit as l}from"@vef-framework/shared";import{Form as m}from"antd";import{useMemo as u,forwardRef as h,memo as f}from"react";import"../internal/index.js";import c from"./components/form-actions.js";import d from"./components/form-content.js";import{FormEventBus as p}from"./event.js";import{useActionHandlers as b}from"./hooks/use-action-handlers.js";import{useFormContextSelector as v,FormContextProvider as g}from"./hooks/use-form-context.js";import{useFormInitialization as F}from"./hooks/use-form-initialization.js";import{useFormInstance as j}from"./hooks/use-form-instance.js";import{useFormValuesChange as S}from"./hooks/use-form-values-change.js";import{useLabelWidth as V}from"./hooks/use-label-width.js";import{useFormStore as k,FormStoreProvider as x}from"./store.js";import{convertBasicSizeToUiSize as B}from"../internal/utils.js";const{useForm:w}=m,C={scrollMode:"if-needed",behavior:"smooth"};const y=h((function VefFormBase({schema:s,labelAlign:a="right",variant:r,showTabs:l=!1,height:h="auto",size:f,disabled:p=!1,onChange:g,submissionButton:F,resetButton:V,submitApi:x,submitTip:w,onBeforeSubmit:y,onSubmit:T,onSubmitSuccess:W,onSubmitFailure:z,onReset:A},N){const[R,E]=v((e=>[e.labelPosition,e.labelWidth])),[M,P,$]=k((e=>[e.form,e.initialValues,e.isLoading])),{handleValuesChange:H}=S(g),{handleReset:I,handleSubmit:L,handleSubmitFailed:q}=b({submitApi:x,submitTip:w,onBeforeSubmit:y,onSubmit:T,onSubmitSuccess:W,onSubmitFailure:z,onReset:A});j(N,I);const D=u((()=>{if(E)return{flex:`0 0 ${E}px`}}),[E]),G=u((()=>{let e=h;return"full"===h?e="100%":n(h)&&(e=`${h}px`),i`
|
|
3
|
+
height: ${e};
|
|
4
|
+
`}),[h]),J=t();return e(m,{labelWrap:!0,colon:!1,css:G,disabled:J||p||$,form:M,initialValues:P,labelAlign:a,labelCol:D,layout:"top"===R?"vertical":"horizontal",scrollToFirstError:C,size:B(f),variant:r,onFinish:L,onFinishFailed:q,onValuesChange:H,children:[o(d,{height:h,schema:s,showTabs:!0===l?"switch":l}),o(c,{handleReset:I,resetButton:V,submissionButton:F})]})}));y.displayName="VefFormBase";const T=f(h((function VefFormWrapper({initialValues:e,scene:i,layoutMode:t="responsive",autoExpand:n=!1,labelPosition:r="top",labelWidth:l,...m},h){const{schema:f}=m,[c]=w(),d=s((()=>new p));a((()=>{d.clear()}));const b=V(r,l),v=u((()=>({labelPosition:r,labelWidth:b,autoExpand:n,layoutMode:t})),[t,n,r,b]),{mergedInitialValues:j,valueChangeHandlers:S,virtualFieldNames:k}=F(f,e),B=u((()=>({eventBus:d,form:c,initialValues:j,scene:i,valueChangeHandlers:S,virtualFieldNames:k})),[d,c,j,i,S,k]);return o(x,{initialState:B,children:o(g,{value:v,children:o(y,{ref:h,...m})})})})),((e,o)=>r(l(e,["initialValues","schema"]),l(o,["initialValues","schema"]))));T.displayName="VefForm";export{T as default};
|
|
175
5
|
/*! 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 */
|