@antdv-vue/pro-table 0.0.0-stage → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/CHANGELOG.md +255 -0
  2. package/README.md +106 -2
  3. package/dist/InternalTable.d.ts +360 -0
  4. package/dist/InternalTable.js +444 -0
  5. package/dist/RenderTypings.d.ts +33 -0
  6. package/dist/RenderTypings.js +1 -0
  7. package/dist/ResizableTableTitle.d.ts +24 -0
  8. package/dist/ResizableTableTitle.js +89 -0
  9. package/dist/Store/Provide.d.ts +68 -0
  10. package/dist/Store/Provide.js +132 -0
  11. package/dist/Table.d.ts +363 -0
  12. package/dist/Table.js +151 -0
  13. package/dist/TableRender.d.ts +54 -0
  14. package/dist/TableRender.js +295 -0
  15. package/dist/components/Alert/index.d.ts +45 -0
  16. package/dist/components/Alert/index.js +94 -0
  17. package/dist/components/Alert/style/index.d.ts +8 -0
  18. package/dist/components/Alert/style/index.js +11 -0
  19. package/dist/components/ColumnSetting/CheckboxList.d.ts +24 -0
  20. package/dist/components/ColumnSetting/CheckboxList.js +138 -0
  21. package/dist/components/ColumnSetting/CheckboxListItem.d.ts +17 -0
  22. package/dist/components/ColumnSetting/CheckboxListItem.js +84 -0
  23. package/dist/components/ColumnSetting/GroupCheckboxList.d.ts +22 -0
  24. package/dist/components/ColumnSetting/GroupCheckboxList.js +82 -0
  25. package/dist/components/ColumnSetting/ToolTipIcon.d.ts +12 -0
  26. package/dist/components/ColumnSetting/ToolTipIcon.js +47 -0
  27. package/dist/components/ColumnSetting/index.d.ts +26 -0
  28. package/dist/components/ColumnSetting/index.js +117 -0
  29. package/dist/components/ColumnSetting/style/index.d.ts +8 -0
  30. package/dist/components/ColumnSetting/style/index.js +73 -0
  31. package/dist/components/DragSortTable/index.d.ts +375 -0
  32. package/dist/components/DragSortTable/index.js +166 -0
  33. package/dist/components/DragSortTable/style/index.d.ts +8 -0
  34. package/dist/components/DragSortTable/style/index.js +25 -0
  35. package/dist/components/Dropdown/Button.d.ts +20 -0
  36. package/dist/components/Dropdown/Button.js +155 -0
  37. package/dist/components/Dropdown/index.d.ts +27 -0
  38. package/dist/components/Dropdown/index.js +149 -0
  39. package/dist/components/EditableTable/CellEditorTable.d.ts +63 -0
  40. package/dist/components/EditableTable/CellEditorTable.js +167 -0
  41. package/dist/components/EditableTable/EditableTable.d.ts +67 -0
  42. package/dist/components/EditableTable/EditableTable.js +141 -0
  43. package/dist/components/EditableTable/InternalEditableTable.d.ts +189 -0
  44. package/dist/components/EditableTable/InternalEditableTable.js +508 -0
  45. package/dist/components/EditableTable/RowEditorTable.d.ts +63 -0
  46. package/dist/components/EditableTable/RowEditorTable.js +147 -0
  47. package/dist/components/EditableTable/context.d.ts +9 -0
  48. package/dist/components/EditableTable/context.js +11 -0
  49. package/dist/components/EditableTable/index.d.ts +5 -0
  50. package/dist/components/EditableTable/index.js +5 -0
  51. package/dist/components/Form/FormRender.d.ts +77 -0
  52. package/dist/components/Form/FormRender.js +198 -0
  53. package/dist/components/Form/index.d.ts +33 -0
  54. package/dist/components/Form/index.js +91 -0
  55. package/dist/components/ToolBar/DensityIcon.d.ts +22 -0
  56. package/dist/components/ToolBar/DensityIcon.js +71 -0
  57. package/dist/components/ToolBar/FullScreenIcon.d.ts +6 -0
  58. package/dist/components/ToolBar/FullScreenIcon.js +30 -0
  59. package/dist/components/ToolBar/HeaderMenu.d.ts +22 -0
  60. package/dist/components/ToolBar/HeaderMenu.js +84 -0
  61. package/dist/components/ToolBar/index.d.ts +102 -0
  62. package/dist/components/ToolBar/index.js +322 -0
  63. package/dist/components/ToolBar/style/index.d.ts +8 -0
  64. package/dist/components/ToolBar/style/index.js +116 -0
  65. package/dist/index.d.ts +11 -0
  66. package/dist/index.js +10 -0
  67. package/dist/pro-table.esm.js +3274 -0
  68. package/dist/style/index.d.ts +11 -0
  69. package/dist/style/index.js +162 -0
  70. package/dist/typing.d.ts +409 -0
  71. package/dist/typing.js +1 -0
  72. package/dist/useFetchData.d.ts +10 -0
  73. package/dist/useFetchData.js +243 -0
  74. package/dist/utils/cellRenderToFromItem.d.ts +52 -0
  75. package/dist/utils/cellRenderToFromItem.js +163 -0
  76. package/dist/utils/columnRender.d.ts +54 -0
  77. package/dist/utils/columnRender.js +148 -0
  78. package/dist/utils/columnSort.d.ts +7 -0
  79. package/dist/utils/columnSort.js +17 -0
  80. package/dist/utils/genProColumnsToColumns.d.ts +69 -0
  81. package/dist/utils/genProColumnsToColumns.js +197 -0
  82. package/dist/utils/index.d.ts +122 -0
  83. package/dist/utils/index.js +227 -0
  84. package/dist/utils/useDragSort.d.ts +182 -0
  85. package/dist/utils/useDragSort.js +162 -0
  86. package/package.json +67 -3
@@ -0,0 +1,141 @@
1
+ import InternalEditableProTable, { RecordCreator, useEditableProTableInstanceExpose } from "./InternalEditableTable.js";
2
+ import { createVNode, defineComponent, mergeProps, shallowRef } from "vue";
3
+ import ProForm$1 from "@antdv-vue/pro-form";
4
+ import { FormItem } from "@antdv-vue/pro-utils";
5
+ //#region src/components/EditableTable/EditableTable.tsx
6
+ const EditableProTable = /* @__PURE__ */ defineComponent((props, { slots, attrs, expose }) => {
7
+ const form = ProForm$1.useFormInstance();
8
+ const editableTableRef = shallowRef(null);
9
+ expose(useEditableProTableInstanceExpose(editableTableRef));
10
+ return () => {
11
+ if (!props.name) return createVNode(InternalEditableProTable, mergeProps(attrs, { "ref": editableTableRef }, props, {
12
+ "tableLayout": props.tableLayout || "fixed",
13
+ "scroll": props.scroll || { x: "max-content" }
14
+ }), slots);
15
+ return createVNode(FormItem, mergeProps({ "style": { maxWidth: "100%" } }, props?.formItemProps, { "name": props.name }), { default: () => [createVNode(InternalEditableProTable, mergeProps(attrs, props, {
16
+ "ref": editableTableRef,
17
+ "tableLayout": props.tableLayout || "fixed",
18
+ "scroll": props.scroll || { x: "max-content" },
19
+ "editable": {
20
+ ...props.editable,
21
+ form
22
+ }
23
+ }), slots)] });
24
+ };
25
+ }, {
26
+ name: "EditableProTable",
27
+ inheritAttrs: false,
28
+ props: [
29
+ "beforeSearchSubmit",
30
+ "bodyCell",
31
+ "bordered",
32
+ "caption",
33
+ "cardBordered",
34
+ "cardProps",
35
+ "childrenColumnName",
36
+ "classes",
37
+ "columnEmptyText",
38
+ "columns",
39
+ "columnsState",
40
+ "components",
41
+ "controlled",
42
+ "dataSource",
43
+ "dateFormatter",
44
+ "debounceTime",
45
+ "defaultData",
46
+ "defaultExpandAllRows",
47
+ "defaultExpandedRowKeys",
48
+ "defaultSize",
49
+ "defaultValue",
50
+ "direction",
51
+ "dropdownPrefixCls",
52
+ "editable",
53
+ "errorBoundaryRender",
54
+ "expandIcon",
55
+ "expandIconColumnIndex",
56
+ "expandRowByClick",
57
+ "expandable",
58
+ "expandedRowClassName",
59
+ "expandedRowKeys",
60
+ "expandedRowRender",
61
+ "footer",
62
+ "form",
63
+ "formItemProps",
64
+ "getContainerWidth",
65
+ "getPopupContainer",
66
+ "ghost",
67
+ "headerCell",
68
+ "headerTitle",
69
+ "id",
70
+ "indentSize",
71
+ "loading",
72
+ "locale",
73
+ "manualRequest",
74
+ "maxLength",
75
+ "measureRowRender",
76
+ "name",
77
+ "onChange",
78
+ "onDataSourceChange",
79
+ "onExpand",
80
+ "onExpandedRowsChange",
81
+ "onHeaderRow",
82
+ "onLoad",
83
+ "onLoadingChange",
84
+ "onRequestError",
85
+ "onReset",
86
+ "onRow",
87
+ "onSizeChange",
88
+ "onSubmit",
89
+ "onTableChange",
90
+ "onValuesChange",
91
+ "options",
92
+ "optionsRender",
93
+ "pagination",
94
+ "params",
95
+ "polling",
96
+ "postData",
97
+ "prefixCls",
98
+ "recordCreatorProps",
99
+ "request",
100
+ "revalidateOnFocus",
101
+ "rootClass",
102
+ "rowClassName",
103
+ "rowHoverable",
104
+ "rowKey",
105
+ "rowSelection",
106
+ "scroll",
107
+ "search",
108
+ "searchFormRender",
109
+ "showHeader",
110
+ "showSorterTooltip",
111
+ "size",
112
+ "sortDirections",
113
+ "sticky",
114
+ "styles",
115
+ "summary",
116
+ "tableAlertOptionRender",
117
+ "tableAlertRender",
118
+ "tableClass",
119
+ "tableExtraRender",
120
+ "tableLayout",
121
+ "tableRender",
122
+ "tableStyle",
123
+ "tableViewRender",
124
+ "tailor",
125
+ "title",
126
+ "toolBarRender",
127
+ "toolbar",
128
+ "tooltip",
129
+ "type",
130
+ "value",
131
+ "virtual"
132
+ ]
133
+ });
134
+ EditableProTable.RecordCreator = RecordCreator;
135
+ EditableProTable.install = (app) => {
136
+ app.component(EditableProTable.name, EditableProTable);
137
+ app.component(RecordCreator.displayName, RecordCreator);
138
+ return app;
139
+ };
140
+ //#endregion
141
+ export { EditableProTable as default };
@@ -0,0 +1,189 @@
1
+ import { FilterValue, ProTableInstance, ProTableProps } from "../../typing.js";
2
+ import * as _$vue from "vue";
3
+ import { CSSProperties, ComputedRef, FunctionalComponent, Ref, ShallowRef } from "vue";
4
+ import { ProFormInstance } from "@antdv-vue/pro-form";
5
+ import { IntlType, ParamsType } from "@antdv-vue/pro-provider";
6
+ import * as _$_antdv_vue_pro_utils0 from "@antdv-vue/pro-utils";
7
+ import { FormItemProps, ProFieldValueObjectType, ProFieldValueType, WithFalse } from "@antdv-vue/pro-utils";
8
+ import * as _$antdv_next0 from "antdv-next";
9
+ import { ButtonProps } from "antdv-next";
10
+ import * as _$antdv_next_dist_table_interface0 from "antdv-next/dist/table/interface";
11
+ import { Key as Key$1, VueNode as VueNode$1 } from "@v-c/util/dist/type";
12
+
13
+ //#region src/components/EditableTable/InternalEditableTable.d.ts
14
+ type EditableProTableInstance<T extends Record<string, any>> = ProTableInstance<T> & {
15
+ editableFormRef: ProFormInstance<T>;
16
+ /**
17
+ * 获取一行数据的
18
+ * @param rowIndex
19
+ * @returns T | undefined
20
+ *
21
+ * @example getRowData(1) 可以传入第几行的数据
22
+ * @example getRowData("id") 也可以传入 rowKey,根据你列的唯一key 来获得。
23
+ */
24
+ getRowData?: (rowIndex: string | number) => T | undefined;
25
+ /**
26
+ * 获取整个 table 的数据
27
+ * @returns T[] | undefined
28
+ */
29
+ getRowsData?: () => T[] | undefined;
30
+ /**
31
+ * 设置一行的数据,会将数据进行简单的 merge
32
+ *
33
+ * {title:"old", decs:"old",id:"old"} -> set {title:"new"} -> {title:"new", decs:"old",id:"old"}
34
+ *
35
+ * @description 只会做最第一层对象的 merge 哦。
36
+ * {title:"old", decs:{name:"old",key:"old"},id:"old"} -> set {decs:{name:"new"}} -> {title:"old", decs:{name:"new"},id:"old"} -> set {decs:{name:"old"}}
37
+ *
38
+ * @param rowIndex
39
+ * @param data
40
+ * @returns void
41
+ *
42
+ * 根据行号设置
43
+ * @example setRowData(1, { title:"new" }) 可以传入修改第几行
44
+ *
45
+ * 根据行 id 设置
46
+ * @example setRowData("id", { title:"new" }) 也可以传入 rowKey,根据你列的唯一 key 来设置。
47
+ *
48
+ * 清空原有数据
49
+ * @example setRowData(1, { title:undefined })
50
+ *
51
+ */
52
+ setRowData?: (rowIndex: string | number, data: Partial<T>) => void;
53
+ };
54
+ interface CreatorButtonResult {
55
+ creatorButtonDom: ComputedRef<WithFalse<VueNode$1>>;
56
+ buttonRenderProps: ComputedRef<Record<string, any>>;
57
+ }
58
+ interface RecordCreatorProps<DataSourceType> {
59
+ record: DataSourceType | ((index: number, dataSource: DataSourceType[]) => DataSourceType);
60
+ position?: 'top' | 'bottom';
61
+ /**
62
+ * 新增一行的类型
63
+ *
64
+ * @augments dataSource 将会新增一行数据到 dataSource 中,不支持取消,只能删除
65
+ * @augments cache 将会把数据放到缓存中,取消后消失
66
+ */
67
+ newRecordType?: 'dataSource' | 'cache';
68
+ /** 要增加到哪个节点下,一般用于多重嵌套表格 */
69
+ parentKey?: Key$1 | ((index: number, dataSource: DataSourceType[]) => Key$1);
70
+ }
71
+ type EditableProTableProps<T, U extends ParamsType, ValueType = 'text'> = Omit<ProTableProps<T, U, ValueType>, 'onChange'> & {
72
+ defaultValue?: T[];
73
+ value?: T[];
74
+ 'onUpdate:value'?: (value?: T[]) => void;
75
+ onChange?: (value?: T[]) => void; /** @name onTableChange 原先的 table OnChange */
76
+ onTableChange?: ProTableProps<T, U>['onChange']; /** @name recordCreatorProps 新建按钮的设置 */
77
+ recordCreatorProps?: WithFalse<(RecordCreatorProps<T> & ButtonProps & {
78
+ style?: CSSProperties;
79
+ creatorButtonText?: VueNode$1;
80
+ })>; /** 最大行数 */
81
+ maxLength?: number; /** Table 的值发生改变,为了适应 Form 调整了顺序 */
82
+ onValuesChange?: (values: T[], record: T) => void; /** 是否受控,如果为 true,每次 value 更新都会重置表单 */
83
+ controlled?: boolean; /** FormItem 的设置 */
84
+ formItemProps?: Omit<FormItemProps, 'name'>;
85
+ };
86
+ /** 可编辑表格的按钮 */
87
+ declare const RecordCreator: FunctionalComponent<RecordCreatorProps<Record<string, any>>>;
88
+ declare function useCreatorButton<DataType, U extends ParamsType, ValueType>({
89
+ recordCreatorProps,
90
+ maxLength,
91
+ value,
92
+ intl,
93
+ columnsLength,
94
+ tableViewRender
95
+ }: {
96
+ recordCreatorProps: ComputedRef<EditableProTableProps<DataType, U, ValueType>['recordCreatorProps']>;
97
+ maxLength: ComputedRef<EditableProTableProps<DataType, U, ValueType>['maxLength']>;
98
+ value: Ref<readonly DataType[] | undefined>;
99
+ intl: ComputedRef<IntlType>;
100
+ columnsLength: ComputedRef<number | undefined>;
101
+ tableViewRender: ProTableProps<DataType, U, ValueType>['tableViewRender'];
102
+ }): CreatorButtonResult;
103
+ declare function useEditableProTableInstanceExpose<T extends Record<string, any>>(editableTableRef: ShallowRef<EditableProTableInstance<T> | null>): {
104
+ nativeElement: HTMLDivElement | null | undefined;
105
+ pageInfo: _$_antdv_vue_pro_utils0.PageInfo | undefined;
106
+ formRef: ProFormInstance<T> | null;
107
+ editableFormRef: ProFormInstance<T> | undefined;
108
+ getRowData: (rowIndex: string | number) => T | undefined;
109
+ getRowsData: () => T[] | undefined;
110
+ setRowData: (rowIndex: string | number, data: Partial<T>) => void | undefined;
111
+ preEditableKeys: ComputedRef<Key$1[] | undefined>;
112
+ focus: () => void | undefined;
113
+ fullScreen: () => Promise<void | undefined>;
114
+ cleanSelected: () => Promise<void | undefined>;
115
+ addEditRecord: (row: T, options?: _$_antdv_vue_pro_utils0.AddLineOptions) => Promise<boolean | undefined>;
116
+ cancelEditable: (recordKey: _$_antdv_vue_pro_utils0.RecordKey, needReTry?: boolean) => Promise<boolean | undefined>;
117
+ getRealIndex: (record: T) => number | undefined;
118
+ isEditable: (row: T & {
119
+ index: number;
120
+ }) => {
121
+ recordKey: string;
122
+ isEditable: boolean;
123
+ preIsEditable: boolean;
124
+ } | undefined;
125
+ onValuesChange: (value: T, values: T) => void | undefined;
126
+ reload: (resetPageIndex?: boolean) => Promise<void | undefined>;
127
+ reloadAndRest: () => Promise<void | undefined>;
128
+ reset: () => Promise<void | undefined>;
129
+ saveEditable: (recordKey: _$_antdv_vue_pro_utils0.RecordKey, needReTry?: boolean) => Promise<boolean | undefined>;
130
+ scrollTo: (arg: number | {
131
+ index?: number | undefined;
132
+ key?: Key$1 | undefined;
133
+ top?: number;
134
+ }) => void | undefined;
135
+ setPageInfo: (page: Partial<_$_antdv_vue_pro_utils0.PageInfo>) => Promise<void | undefined>;
136
+ startEditable: (recordKey: Key$1, record?: T | undefined) => Promise<boolean | undefined>;
137
+ };
138
+ declare const InternalEditableProTable: new <DataType extends Record<string, any>, Params extends ParamsType = ParamsType, ValueType extends (ProFieldValueType | ProFieldValueObjectType) = "text">(props: Omit<ProTableProps<DataType, Params, ValueType>, "onChange"> & {
139
+ defaultValue?: DataType[] | undefined;
140
+ value?: DataType[] | undefined;
141
+ 'onUpdate:value'?: ((value?: DataType[] | undefined) => void) | undefined;
142
+ onChange?: ((value?: DataType[] | undefined) => void) | undefined; /** @name onTableChange 原先的 table OnChange */
143
+ onTableChange?: ((pagination: _$antdv_next0.TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: _$antdv_next0.TableSorterResult<DataType> | _$antdv_next0.TableSorterResult<DataType>[], extra: _$antdv_next_dist_table_interface0.TableCurrentDataSource<DataType>) => void) | undefined; /** @name recordCreatorProps 新建按钮的设置 */
144
+ recordCreatorProps?: WithFalse<RecordCreatorProps<DataType> & ButtonProps & {
145
+ style?: CSSProperties;
146
+ creatorButtonText?: VueNode$1;
147
+ }> | undefined; /** 最大行数 */
148
+ maxLength?: number; /** Table 的值发生改变,为了适应 Form 调整了顺序 */
149
+ onValuesChange?: ((values: DataType[], record: DataType) => void) | undefined; /** 是否受控,如果为 true,每次 value 更新都会重置表单 */
150
+ controlled?: boolean; /** FormItem 的设置 */
151
+ formItemProps?: Omit<FormItemProps, "name">;
152
+ } & {} & _$vue.VNodeProps & _$vue.AllowedComponentProps & _$vue.ComponentCustomProps) => _$vue.CreateComponentPublicInstanceWithMixins<Omit<ProTableProps<DataType, Params, ValueType>, "onChange"> & {
153
+ defaultValue?: DataType[] | undefined;
154
+ value?: DataType[] | undefined;
155
+ 'onUpdate:value'?: ((value?: DataType[] | undefined) => void) | undefined;
156
+ onChange?: ((value?: DataType[] | undefined) => void) | undefined; /** @name onTableChange 原先的 table OnChange */
157
+ onTableChange?: ((pagination: _$antdv_next0.TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: _$antdv_next0.TableSorterResult<DataType> | _$antdv_next0.TableSorterResult<DataType>[], extra: _$antdv_next_dist_table_interface0.TableCurrentDataSource<DataType>) => void) | undefined; /** @name recordCreatorProps 新建按钮的设置 */
158
+ recordCreatorProps?: WithFalse<RecordCreatorProps<DataType> & ButtonProps & {
159
+ style?: CSSProperties;
160
+ creatorButtonText?: VueNode$1;
161
+ }> | undefined; /** 最大行数 */
162
+ maxLength?: number; /** Table 的值发生改变,为了适应 Form 调整了顺序 */
163
+ onValuesChange?: ((values: DataType[], record: DataType) => void) | undefined; /** 是否受控,如果为 true,每次 value 更新都会重置表单 */
164
+ controlled?: boolean; /** FormItem 的设置 */
165
+ formItemProps?: Omit<FormItemProps, "name">;
166
+ } & {}, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, _$vue.PublicProps, {}, false, {}, {}, {}, {}, string, {}, any, _$vue.ComponentProvideOptions, {
167
+ P: {};
168
+ B: {};
169
+ D: {};
170
+ C: {};
171
+ M: {};
172
+ Defaults: {};
173
+ }, Omit<ProTableProps<DataType, Params, ValueType>, "onChange"> & {
174
+ defaultValue?: DataType[] | undefined;
175
+ value?: DataType[] | undefined;
176
+ 'onUpdate:value'?: ((value?: DataType[] | undefined) => void) | undefined;
177
+ onChange?: ((value?: DataType[] | undefined) => void) | undefined; /** @name onTableChange 原先的 table OnChange */
178
+ onTableChange?: ((pagination: _$antdv_next0.TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: _$antdv_next0.TableSorterResult<DataType> | _$antdv_next0.TableSorterResult<DataType>[], extra: _$antdv_next_dist_table_interface0.TableCurrentDataSource<DataType>) => void) | undefined; /** @name recordCreatorProps 新建按钮的设置 */
179
+ recordCreatorProps?: WithFalse<RecordCreatorProps<DataType> & ButtonProps & {
180
+ style?: CSSProperties;
181
+ creatorButtonText?: VueNode$1;
182
+ }> | undefined; /** 最大行数 */
183
+ maxLength?: number; /** Table 的值发生改变,为了适应 Form 调整了顺序 */
184
+ onValuesChange?: ((values: DataType[], record: DataType) => void) | undefined; /** 是否受控,如果为 true,每次 value 更新都会重置表单 */
185
+ controlled?: boolean; /** FormItem 的设置 */
186
+ formItemProps?: Omit<FormItemProps, "name">;
187
+ } & {}, {}, {}, {}, {}, {}>;
188
+ //#endregion
189
+ export { EditableProTableInstance, EditableProTableProps, RecordCreator, RecordCreatorProps, InternalEditableProTable as default, useCreatorButton, useEditableProTableInstanceExpose };