@aplus-frontend/ui 0.5.2 → 0.5.4

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 (107) hide show
  1. package/es/index.mjs +37 -33
  2. package/es/src/ap-field/text/index.vue2.mjs +13 -13
  3. package/es/src/ap-grid/editable/form-item.vue.d.ts +16 -0
  4. package/es/src/ap-grid/editable/form-item.vue.mjs +257 -0
  5. package/es/src/ap-grid/editable/form-item.vue2.mjs +4 -0
  6. package/es/src/ap-grid/editable/index.vue.d.ts +18 -0
  7. package/es/src/ap-grid/editable/index.vue.mjs +288 -0
  8. package/es/src/ap-grid/editable/index.vue2.mjs +4 -0
  9. package/es/src/ap-grid/editable/interface.d.ts +95 -0
  10. package/es/src/ap-grid/editable/interface.mjs +1 -0
  11. package/es/src/ap-grid/editable/style/css.d.ts +0 -0
  12. package/es/src/ap-grid/editable/style/css.js +1 -0
  13. package/es/src/ap-grid/editable/style/index.d.ts +0 -0
  14. package/es/src/ap-grid/editable/style/index.js +1 -0
  15. package/es/src/ap-grid/hooks/use-editable-columns.d.ts +6 -0
  16. package/es/src/ap-grid/hooks/use-editable-columns.mjs +68 -0
  17. package/es/src/ap-grid/index.d.ts +4 -1
  18. package/es/src/ap-grid/index.mjs +3 -0
  19. package/es/src/ap-grid/index.vue.mjs +114 -104
  20. package/es/src/ap-grid/interface.d.ts +15 -0
  21. package/es/src/ap-grid/utils/col.mjs +39 -39
  22. package/es/src/ap-grid/utils/editable.d.ts +3 -0
  23. package/es/src/ap-grid/utils/editable.mjs +27 -0
  24. package/es/src/ap-grid/utils/table.mjs +24 -17
  25. package/es/src/business/batch-input-group/index.vue.mjs +6 -5
  26. package/es/src/config-provider/config-provider-props.mjs +1 -1
  27. package/es/src/editable-table/utils.d.ts +3 -2
  28. package/es/src/index.mjs +24 -20
  29. package/es/src/path-map.mjs +3 -1
  30. package/lib/index.js +1 -1
  31. package/lib/src/ap-field/text/index.vue2.js +1 -1
  32. package/lib/src/ap-grid/editable/form-item.vue.d.ts +16 -0
  33. package/lib/src/ap-grid/editable/form-item.vue.js +1 -0
  34. package/lib/src/ap-grid/editable/form-item.vue2.js +1 -0
  35. package/lib/src/ap-grid/editable/index.vue.d.ts +18 -0
  36. package/lib/src/ap-grid/editable/index.vue.js +1 -0
  37. package/lib/src/ap-grid/editable/index.vue2.js +1 -0
  38. package/lib/src/ap-grid/editable/interface.d.ts +95 -0
  39. package/lib/src/ap-grid/editable/interface.js +1 -0
  40. package/lib/src/ap-grid/editable/style/css.cjs +1 -0
  41. package/lib/src/ap-grid/editable/style/css.d.ts +0 -0
  42. package/lib/src/ap-grid/editable/style/index.cjs +1 -0
  43. package/lib/src/ap-grid/editable/style/index.d.ts +0 -0
  44. package/lib/src/ap-grid/hooks/use-editable-columns.d.ts +6 -0
  45. package/lib/src/ap-grid/hooks/use-editable-columns.js +1 -0
  46. package/lib/src/ap-grid/index.d.ts +4 -1
  47. package/lib/src/ap-grid/index.js +1 -1
  48. package/lib/src/ap-grid/index.vue.js +1 -1
  49. package/lib/src/ap-grid/interface.d.ts +15 -0
  50. package/lib/src/ap-grid/utils/col.js +1 -1
  51. package/lib/src/ap-grid/utils/editable.d.ts +3 -0
  52. package/lib/src/ap-grid/utils/editable.js +1 -0
  53. package/lib/src/ap-grid/utils/table.js +1 -1
  54. package/lib/src/business/batch-input-group/index.vue.js +2 -2
  55. package/lib/src/config-provider/config-provider-props.js +1 -1
  56. package/lib/src/editable-table/utils.d.ts +3 -2
  57. package/lib/src/index.js +1 -1
  58. package/lib/src/path-map.js +1 -1
  59. package/package.json +1 -1
  60. package/theme/antd-global-overwrite/admin/index.css +54 -54
  61. package/theme/antd-global-overwrite/admin/table.css +54 -54
  62. package/theme/antd-global-overwrite/admin/table.less +4 -3
  63. package/theme/antd-global-overwrite/aplus/index.css +54 -54
  64. package/theme/antd-global-overwrite/aplus/table.css +54 -54
  65. package/theme/antd-global-overwrite/aplus/table.less +4 -3
  66. package/theme/ap-grid/editable.css +22 -0
  67. package/theme/ap-grid/editable.less +28 -0
  68. package/theme/index.css +22 -0
  69. package/theme/index.less +1 -0
  70. package/es/src/theme/antd-global-overwrite/admin/alert.css +0 -50
  71. package/es/src/theme/antd-global-overwrite/admin/button.css +0 -27
  72. package/es/src/theme/antd-global-overwrite/admin/form.css +0 -60
  73. package/es/src/theme/antd-global-overwrite/admin/index.css +0 -838
  74. package/es/src/theme/antd-global-overwrite/admin/message.css +0 -17
  75. package/es/src/theme/antd-global-overwrite/admin/modal.css +0 -117
  76. package/es/src/theme/antd-global-overwrite/admin/pagination.css +0 -122
  77. package/es/src/theme/antd-global-overwrite/admin/steps.css +0 -127
  78. package/es/src/theme/antd-global-overwrite/admin/table.css +0 -318
  79. package/es/src/theme/antd-global-overwrite/aplus/alert.css +0 -50
  80. package/es/src/theme/antd-global-overwrite/aplus/button.css +0 -27
  81. package/es/src/theme/antd-global-overwrite/aplus/form.css +0 -93
  82. package/es/src/theme/antd-global-overwrite/aplus/index.css +0 -873
  83. package/es/src/theme/antd-global-overwrite/aplus/message.css +0 -17
  84. package/es/src/theme/antd-global-overwrite/aplus/modal.css +0 -111
  85. package/es/src/theme/antd-global-overwrite/aplus/pagination.css +0 -147
  86. package/es/src/theme/antd-global-overwrite/aplus/steps.css +0 -125
  87. package/es/src/theme/antd-global-overwrite/aplus/table.css +0 -303
  88. package/es/src/theme/reset.css +0 -257
  89. package/lib/src/theme/antd-global-overwrite/admin/alert.css +0 -50
  90. package/lib/src/theme/antd-global-overwrite/admin/button.css +0 -27
  91. package/lib/src/theme/antd-global-overwrite/admin/form.css +0 -60
  92. package/lib/src/theme/antd-global-overwrite/admin/index.css +0 -838
  93. package/lib/src/theme/antd-global-overwrite/admin/message.css +0 -17
  94. package/lib/src/theme/antd-global-overwrite/admin/modal.css +0 -117
  95. package/lib/src/theme/antd-global-overwrite/admin/pagination.css +0 -122
  96. package/lib/src/theme/antd-global-overwrite/admin/steps.css +0 -127
  97. package/lib/src/theme/antd-global-overwrite/admin/table.css +0 -318
  98. package/lib/src/theme/antd-global-overwrite/aplus/alert.css +0 -50
  99. package/lib/src/theme/antd-global-overwrite/aplus/button.css +0 -27
  100. package/lib/src/theme/antd-global-overwrite/aplus/form.css +0 -93
  101. package/lib/src/theme/antd-global-overwrite/aplus/index.css +0 -873
  102. package/lib/src/theme/antd-global-overwrite/aplus/message.css +0 -17
  103. package/lib/src/theme/antd-global-overwrite/aplus/modal.css +0 -111
  104. package/lib/src/theme/antd-global-overwrite/aplus/pagination.css +0 -147
  105. package/lib/src/theme/antd-global-overwrite/aplus/steps.css +0 -125
  106. package/lib/src/theme/antd-global-overwrite/aplus/table.css +0 -303
  107. package/lib/src/theme/reset.css +0 -257
@@ -0,0 +1,288 @@
1
+ import { defineComponent as M, useSlots as U, ref as w, watch as v, unref as n, createBlock as $, openBlock as q, withCtx as p, createVNode as R, mergeProps as J, createSlots as Q, renderList as X, renderSlot as Y, normalizeProps as Z, guardReactiveProps as ee } from "vue";
2
+ import { ApForm as h } from "../../ap-form/index.mjs";
3
+ import { isEqual as ae, isArray as b, isNumber as y, cloneDeep as m, omit as te } from "lodash-unified";
4
+ import "../../config-provider/index.mjs";
5
+ import "../../hooks/index.mjs";
6
+ import { isDef as g } from "../../utils/index.mjs";
7
+ import { useGetEditableColumns as le } from "../hooks/use-editable-columns.mjs";
8
+ import "../index.vue2.mjs";
9
+ import { useNamespace as oe } from "../../config-provider/hooks/use-namespace.mjs";
10
+ import { useControllableValue as ne } from "../../hooks/useControllableValue.mjs";
11
+ import { useGlobalConfig as re } from "../../config-provider/hooks/use-global-config.mjs";
12
+ import se from "../index.vue.mjs";
13
+ const we = /* @__PURE__ */ M({
14
+ name: "EditableGrid",
15
+ __name: "index",
16
+ props: {
17
+ dropdownPrefixCls: {},
18
+ loading: {
19
+ type: [Boolean, Object],
20
+ default: void 0
21
+ },
22
+ bordered: {
23
+ type: Boolean,
24
+ default: !1
25
+ },
26
+ locale: {},
27
+ onResizeColumn: {},
28
+ getPopupContainer: {},
29
+ scroll: {},
30
+ sortDirections: {
31
+ default: () => ["ascend", "descend"]
32
+ },
33
+ showSorterTooltip: {
34
+ type: [Boolean, Object],
35
+ default: !0
36
+ },
37
+ prefixCls: {},
38
+ tableLayout: {
39
+ default: "fixed"
40
+ },
41
+ title: {},
42
+ id: {},
43
+ showHeader: {
44
+ type: Boolean,
45
+ default: !0
46
+ },
47
+ components: {},
48
+ customRow: {},
49
+ customHeaderRow: {},
50
+ direction: {},
51
+ expandFixed: {
52
+ type: [String, Boolean],
53
+ default: !1
54
+ },
55
+ expandColumnWidth: {},
56
+ expandedRowKeys: {},
57
+ defaultExpandedRowKeys: {},
58
+ expandedRowRender: {},
59
+ expandRowByClick: {
60
+ type: Boolean,
61
+ default: !1
62
+ },
63
+ expandIcon: {},
64
+ onExpand: {},
65
+ onExpandedRowsChange: {},
66
+ defaultExpandAllRows: {
67
+ type: Boolean,
68
+ default: !1
69
+ },
70
+ indentSize: {
71
+ default: 15
72
+ },
73
+ expandIconColumnIndex: {},
74
+ showExpandColumn: {
75
+ type: Boolean,
76
+ default: !0
77
+ },
78
+ expandedRowClassName: {},
79
+ childrenColumnName: {
80
+ default: "children"
81
+ },
82
+ rowExpandable: {},
83
+ sticky: {
84
+ type: [Boolean, Object],
85
+ default: !1
86
+ },
87
+ transformCellText: {},
88
+ rowClassName: {},
89
+ stripe: {
90
+ type: Boolean
91
+ },
92
+ headerRowClassName: {},
93
+ footerRowClassName: {},
94
+ cellClassName: {},
95
+ headerCellClassName: {},
96
+ footerCellClassName: {},
97
+ rowStyle: {},
98
+ headerRowStyle: {},
99
+ footerRowStyle: {},
100
+ cellStyle: {},
101
+ headerCellStyle: {},
102
+ footerCellStyle: {},
103
+ height: {},
104
+ minHeight: {},
105
+ maxHeight: {},
106
+ mergeCells: {},
107
+ mergeFooterItems: {},
108
+ cellConfig: {},
109
+ rowSelection: {
110
+ type: Boolean,
111
+ default: void 0
112
+ },
113
+ onLoadingChange: {},
114
+ pagination: {
115
+ type: [Boolean, Object],
116
+ default: !1
117
+ },
118
+ searchFormWrapperStyle: {},
119
+ tableWrapperStyle: {},
120
+ wrapperStyle: {},
121
+ size: {
122
+ default: "medium"
123
+ },
124
+ adaptive: {
125
+ type: Boolean,
126
+ default: !1
127
+ },
128
+ columnResizable: {
129
+ type: [Boolean, Object],
130
+ default: !1
131
+ },
132
+ rowKey: {
133
+ default: "key"
134
+ },
135
+ footer: {},
136
+ virtual: {
137
+ type: [Boolean, Object],
138
+ default: void 0
139
+ },
140
+ expandable: {},
141
+ value: {},
142
+ columns: {},
143
+ defaultValue: {},
144
+ "onUpdate:value": {},
145
+ onChange: {},
146
+ maxLength: {},
147
+ name: {
148
+ default: "ap-editable-table-inner-name"
149
+ },
150
+ onFieldChange: {}
151
+ },
152
+ emits: ["update:value"],
153
+ setup(B, {
154
+ expose: F,
155
+ emit: S
156
+ }) {
157
+ const N = U(), t = B, {
158
+ b: V
159
+ } = oe("editable-grid"), _ = S, C = w(), {
160
+ value: s,
161
+ updateValue: L
162
+ } = ne(t, _), u = w(), D = re("valueTypeMap"), c = h.useWatch(t.name, u);
163
+ v(() => c.value, (e) => {
164
+ var a;
165
+ L(e), (a = t.onChange) == null || a.call(t, e);
166
+ }, {
167
+ deep: !0
168
+ }), v(s, (e) => {
169
+ var a;
170
+ e !== n(c) && (ae(e, n(c)) || (a = u.value) == null || a.setFieldValue(t.name, e));
171
+ }, {
172
+ deep: !0
173
+ });
174
+ const E = le(t, D);
175
+ function k() {
176
+ var e;
177
+ (e = u.value) == null || e.resetFields();
178
+ }
179
+ function A(e) {
180
+ return e ? (b(e) ? e : [e]).map((o) => b(o) ? [t.name, ...o] : [t.name, o]) : void 0;
181
+ }
182
+ async function T(e, a) {
183
+ var l;
184
+ const o = await ((l = u.value) == null ? void 0 : l.validateFields(A(e), a));
185
+ return o == null ? void 0 : o[t.name];
186
+ }
187
+ function j(e, a) {
188
+ var r, d, i;
189
+ const o = ((r = n(s)) == null ? void 0 : r.length) || 0;
190
+ if (g(t.maxLength) && o >= t.maxLength)
191
+ return;
192
+ const l = [...n(s) || []];
193
+ g(a) ? l.splice(a, 0, {
194
+ ...e || {}
195
+ }) : l.push({
196
+ ...e || {}
197
+ }), (i = (d = u.value) == null ? void 0 : d.setFieldValue) == null || i.call(d, t.name, l);
198
+ }
199
+ function O(e, a = "suffix") {
200
+ var i, f, x;
201
+ const o = ((i = n(s)) == null ? void 0 : i.length) || 0, l = y(e) ? e : e.length;
202
+ if (g(t.maxLength) && o + l > t.maxLength)
203
+ return;
204
+ const r = [...n(s) || []], d = y(e) ? new Array(e).fill(0).map(() => ({})) : m(e);
205
+ a === "suffix" ? r.push(...d) : r.unshift(...d), (x = (f = u.value) == null ? void 0 : f.setFieldValue) == null || x.call(f, t.name, r);
206
+ }
207
+ function z(e) {
208
+ var l, r;
209
+ let a = m(n(s) || []);
210
+ const o = y(e) ? [e] : e;
211
+ a = a.filter((d, i) => !o.includes(i)), (r = (l = u.value) == null ? void 0 : l.setFieldValue) == null || r.call(l, t.name, a);
212
+ }
213
+ function P() {
214
+ return n(s);
215
+ }
216
+ function H(e) {
217
+ var a;
218
+ (a = u.value) == null || a.setFieldValue(t.name, e);
219
+ }
220
+ function I(e) {
221
+ var a;
222
+ return (a = n(s)) == null ? void 0 : a[e];
223
+ }
224
+ function W(e, a, o = !0) {
225
+ var r, d;
226
+ const l = m(n(s));
227
+ l[e] && (l[e] = {
228
+ ...o ? l[e] : {},
229
+ ...a
230
+ }, (d = (r = u.value) == null ? void 0 : r.setFieldValue) == null || d.call(r, t.name, [...l]));
231
+ }
232
+ function G(e) {
233
+ var o;
234
+ const a = e === "end" ? s.value.length - 1 : e;
235
+ (o = C.value) == null || o.scrollToRow(a);
236
+ }
237
+ function K() {
238
+ var e, a;
239
+ (a = (e = u.value) == null ? void 0 : e.setFieldValue) == null || a.call(e, t.name, []);
240
+ }
241
+ return F({
242
+ resetFields: k,
243
+ validateFields: T,
244
+ add: j,
245
+ remove: z,
246
+ getRowData: I,
247
+ getRowsData: P,
248
+ setRowData: W,
249
+ addMultiple: O,
250
+ scrollTo: G,
251
+ clear: K,
252
+ setTableData: H
253
+ }), (e, a) => (q(), $(n(h), {
254
+ ref_key: "formRef",
255
+ ref: u,
256
+ "initial-values": {
257
+ [t.name]: n(s)
258
+ },
259
+ style: {
260
+ height: "100%"
261
+ }
262
+ }, {
263
+ default: p(() => [R(n(h).FormItem, {
264
+ name: e.name,
265
+ "no-style": ""
266
+ }, {
267
+ default: p(() => [R(se, J(n(te)(t, ["name", "value", "onUpdate:value", "maxLength", "onChange", "defaultValue"]), {
268
+ ref_key: "tableRef",
269
+ ref: C,
270
+ class: n(V)(),
271
+ columns: n(E),
272
+ "data-source": n(m)(n(s)),
273
+ "search-form": !1
274
+ }), Q({
275
+ _: 2
276
+ }, [X(N, (o, l) => ({
277
+ name: l,
278
+ fn: p((r) => [Y(e.$slots, l, Z(ee(r || {})))])
279
+ }))]), 1040, ["class", "columns", "data-source"])]),
280
+ _: 3
281
+ }, 8, ["name"])]),
282
+ _: 3
283
+ }, 8, ["initial-values"]));
284
+ }
285
+ });
286
+ export {
287
+ we as default
288
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./index.vue.mjs";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,95 @@
1
+ import { Recordable } from '../../type';
2
+ import { ApTableValueFields, ApTableValueTypes, CommonFieldReturnType, FieldPropsType } from '../../ap-table/interface';
3
+ import { ApGridColumnType, ApGridProps } from '../interface';
4
+ import { VNode } from 'vue';
5
+ import { DataIndex } from '@aplus-frontend/antdv/es/vc-table/interface';
6
+ import { EditableTableExpose } from '../../editable-table';
7
+ import { NamePath } from '@aplus-frontend/antdv/es/form/interface';
8
+ import { ApFormItemProps } from '../../ap-form';
9
+ export type EditableGridColumnType<RecordType = any, ExtraValueType = 'text', ValueType extends ApTableValueTypes = ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType = ExtraValueType | ValueType> = MergedValueType extends ExtraValueType | ValueType ? Omit<ApGridColumnType<RecordType, ExtraValueType, ValueType, MergedValueType>, 'children' | 'customRender' | 'hideInSearch' | 'hideInTable' | 'tooltip' | 'customRenderFormItem' | 'fieldProps'> & {
10
+ children?: EditableGridColumnType<RecordType, ExtraValueType, ValueType, MergedValueType>[];
11
+ /**
12
+ * 在title之后展示一个icon并触发tooltip
13
+ */
14
+ tooltip?: any;
15
+ /**
16
+ * 是否可编辑
17
+ */
18
+ editable?: boolean | ((text: any, record: RecordType, index: number) => boolean);
19
+ /**
20
+ * 自定义表单,适用于内置`valueType`不满足的情况下使用
21
+ */
22
+ customRenderFormItem?: (config: EditableGridColumnType<RecordType>, fieldProps: Recordable, editable: boolean, record: RecordType) => any;
23
+ /**
24
+ * 指定值类型(将会用于普通列和可编辑表格的渲染)
25
+ */
26
+ valueType?: MergedValueType;
27
+ /**
28
+ * 值类型额外配置的参数(支持函数)
29
+ */
30
+ fieldProps?: FieldPropsType<Extract<MergedValueType, ValueType> extends never ? CommonFieldReturnType : ApTableValueFields[Extract<MergedValueType, ValueType>], RecordType, ExtraValueType, ValueType, MergedValueType>;
31
+ /**
32
+ * 自定义渲染,添加了`editable`以及`originalNode`
33
+ * @param opt
34
+ * @returns
35
+ */
36
+ customRender?: (opt: {
37
+ value: any;
38
+ text: any;
39
+ record: RecordType;
40
+ index: number;
41
+ renderIndex: number;
42
+ column: ApGridColumnType<RecordType>;
43
+ editable?: boolean;
44
+ originalNode?: VNode;
45
+ }) => any;
46
+ } : never;
47
+ export type EditableGridProps<RecordType = any> = Omit<ApGridProps<RecordType>, 'columns' | 'dataSource' | 'onChange' | 'card' | 'request' | 'params' | 'defaultData' | 'searchForm' | 'beforeSearchSubmit' | 'manual'> & {
48
+ /**
49
+ * 列配置
50
+ */
51
+ columns?: EditableGridColumnType<RecordType, any>[];
52
+ /**
53
+ * 表格数据v-model
54
+ */
55
+ value?: RecordType[];
56
+ /**
57
+ * 表格数据默认值(只生效一次,如果是异步数据,请使用`v-model`)
58
+ */
59
+ defaultValue?: RecordType[];
60
+ 'onUpdate:value'?: (value: RecordType[]) => void;
61
+ /**
62
+ * 数据修改时触发onChange(也包含数据的删除)
63
+ * @param value
64
+ * @returns
65
+ */
66
+ onChange?: (value: RecordType[]) => void;
67
+ /**
68
+ * 表格最大行数,超过行后将无法调用相关API新增
69
+ */
70
+ maxLength?: number;
71
+ /**
72
+ * 设置可编辑表格的名字,如果不传,将会使用默认值
73
+ */
74
+ name?: any;
75
+ /**
76
+ * 当字段值变更的时候触发(注意,向表单设置值并不会触发)
77
+ * @returns
78
+ */
79
+ onFieldChange?: (rowIndex: number, fieldName: DataIndex, newValue: any) => void;
80
+ };
81
+ export type EditableGridExpose<RecordType = any, ModelType = RecordType[]> = Omit<EditableTableExpose<ModelType, RecordType>, 'scrollTo'> & {
82
+ scrollTo: (index: number | 'end') => void;
83
+ };
84
+ export type EditableGridFormItemExpose<RecordType = any, ModelType = RecordType[]> = Omit<EditableGridExpose<RecordType, ModelType>, 'resetFields' | 'validateFields'>;
85
+ export type EditableGridFormItemProps<RecordType = any> = Omit<EditableGridProps<RecordType>, 'name'> & {
86
+ label?: string;
87
+ /**
88
+ * FormItem的name
89
+ */
90
+ name: NamePath;
91
+ /**
92
+ * 额外的表单项配置属性
93
+ */
94
+ formItem?: Partial<Omit<ApFormItemProps, 'name' | 'label'>>;
95
+ };
File without changes
@@ -0,0 +1 @@
1
+ import '@aplus-frontend/ui/theme/ap-grid/editable.css';
File without changes
@@ -0,0 +1 @@
1
+ import '@aplus-frontend/ui/theme/ap-grid/editable.less';
@@ -0,0 +1,6 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ import { EditableGridProps } from '../editable/interface';
3
+ import { ValueTypeRenderConfig } from '../../config-provider';
4
+ import { ApGridColumnType } from '../interface';
5
+ export declare const useGetEditableColumns: (props: EditableGridProps, extraValueTypes: Ref<Record<string, ValueTypeRenderConfig> | undefined>) => ComputedRef<ApGridColumnType[]>;
6
+ export default useGetEditableColumns;
@@ -0,0 +1,68 @@
1
+ import { useSlots as E, computed as R, unref as m } from "vue";
2
+ import { isFunction as T, isArray as s } from "lodash-unified";
3
+ import { getEditableTableTitle as k, mergeClass as A } from "../../editable-table/utils.mjs";
4
+ import { updateFormProps as q, getFieldProps as v } from "../../ap-table/utils.mjs";
5
+ import "../../config-provider/index.mjs";
6
+ import { useToken as w } from "@aplus-frontend/antdv/es/theme/internal";
7
+ import { getFinalEditableNode as G } from "../utils/editable.mjs";
8
+ import { useNamespace as S } from "../../config-provider/hooks/use-namespace.mjs";
9
+ const M = (n, f) => {
10
+ const {
11
+ em: b,
12
+ be: x
13
+ } = S("editable-grid"), g = E(), [, h] = w();
14
+ return R(() => {
15
+ const l = n.columns;
16
+ if (!l)
17
+ return [];
18
+ function o(C) {
19
+ return C.map((e) => ({
20
+ ...e,
21
+ children: o(e.children || []),
22
+ title: k(e, x("table-header", "title"), b("header-cell", "required"), g.headerCell, m(h).colorPrimary),
23
+ // tips: 已经处理了title,传递tooltip为undefined不会再内部处理
24
+ tooltip: void 0,
25
+ customRender({
26
+ value: r,
27
+ originalNode: F,
28
+ ...a
29
+ }) {
30
+ const i = T(e.editable) ? e.editable(a.text, a.record, a.index) : !!e.editable;
31
+ let d = F;
32
+ if (i) {
33
+ const t = q(e, v(e.fieldProps, {
34
+ value: r,
35
+ ...a
36
+ })), c = {};
37
+ n.onFieldChange && (c[`onUpdate:${t.valuePropName || "value"}`] = (y) => {
38
+ var u;
39
+ return (u = n.onFieldChange) == null ? void 0 : u.call(n, a.index, e.dataIndex, y);
40
+ });
41
+ const N = s(e.dataIndex) ? e.dataIndex : [e.dataIndex], I = {
42
+ name: [...s(n.name) ? n.name : [n.name], a.index, ...N],
43
+ ...t || {},
44
+ field: {
45
+ style: "width: 100%",
46
+ ...(t == null ? void 0 : t.field) || {},
47
+ ...c,
48
+ class: A("is-editable", t.class)
49
+ }
50
+ };
51
+ d = G(e, I, a.record, m(f));
52
+ }
53
+ return e.customRender ? e.customRender({
54
+ value: r,
55
+ ...a,
56
+ editable: i,
57
+ originalNode: d
58
+ }) : d;
59
+ }
60
+ }));
61
+ }
62
+ return o(l);
63
+ });
64
+ };
65
+ export {
66
+ M as default,
67
+ M as useGetEditableColumns
68
+ };
@@ -1,3 +1,6 @@
1
1
  import { default as ApGrid } from './index.vue';
2
- export { ApGrid };
2
+ import { default as EditableGrid } from './editable/index.vue';
3
+ import { default as EditableGridFormItem } from './editable/form-item.vue';
4
+ export { ApGrid, EditableGrid, EditableGridFormItem };
3
5
  export * from './interface';
6
+ export * from './editable/interface';
@@ -1,2 +1,5 @@
1
1
  import "./index.vue2.mjs";
2
+ import "./editable/index.vue2.mjs";
3
+ import "./editable/form-item.vue2.mjs";
2
4
  import "./interface.mjs";
5
+ import "./editable/interface.mjs";