@aplus-frontend/ui 7.19.4 → 7.19.5

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.
@@ -1,20 +1,20 @@
1
- import { defineComponent as G, useSlots as W, ref as y, onMounted as U, watch as $, unref as r, createElementBlock as q, openBlock as J, Fragment as Q, createVNode as f, mergeProps as h, withCtx as C, createSlots as X, renderList as Y, renderSlot as Z, normalizeProps as ee, guardReactiveProps as oe } from "vue";
1
+ import { defineComponent as G, useSlots as U, ref as g, onMounted as W, watch as $, unref as r, createElementBlock as q, openBlock as J, Fragment as Q, createVNode as f, mergeProps as h, withCtx as C, createSlots as X, renderList as Y, renderSlot as Z, normalizeProps as ee, guardReactiveProps as oe } from "vue";
2
2
  import { cloneDeep as u, isEqual as te, omit as ae } from "lodash-unified";
3
- import { ApForm as b } from "../../ap-form/index.mjs";
3
+ import { ApForm as R } from "../../ap-form/index.mjs";
4
4
  import { useInjectForm as ne } from "../../ap-form/context.mjs";
5
5
  import { useWatch as le } from "../../ap-form/hooks/use-watch.mjs";
6
6
  import { getModelValue as re } from "../../ap-form/utils/get.mjs";
7
- import { transformValues as ie } from "../../ap-form/utils/transform.mjs";
7
+ import { transformValues as se } from "../../ap-form/utils/transform.mjs";
8
8
  import "../../config-provider/index.mjs";
9
- import { useGetEditableColumns as se } from "../hooks/use-editable-columns.mjs";
9
+ import { useGetEditableColumns as ie } from "../hooks/use-editable-columns.mjs";
10
10
  import { useEditableFormItemApi as me } from "../hooks/use-editable-form-item-api.mjs";
11
11
  import "../index.vue2.mjs";
12
12
  import ue from "../style/editable.mjs";
13
13
  import { getShadowName as de } from "../utils.mjs";
14
- import { getColumnTransformOptions as pe, arrayToObject as R, getRowKey as fe } from "./utils.mjs";
14
+ import { getColumnTransformOptions as pe, arrayToObject as b, getRowKey as fe } from "./utils.mjs";
15
15
  import { useNamespace as ce } from "../../config-provider/hooks/use-namespace.mjs";
16
16
  import { useGlobalConfig as we } from "../../config-provider/hooks/use-global-config.mjs";
17
- import ge from "../index.vue.mjs";
17
+ import ye from "../index.vue.mjs";
18
18
  const Ke = /* @__PURE__ */ G({
19
19
  name: "EditableGrid",
20
20
  __name: "form-item",
@@ -134,6 +134,10 @@ const Ke = /* @__PURE__ */ G({
134
134
  onChange: {},
135
135
  maxLength: {},
136
136
  onFieldChange: {},
137
+ supressForceRowUpdate: {
138
+ type: Boolean,
139
+ default: !1
140
+ },
137
141
  label: {},
138
142
  name: {},
139
143
  formItem: {}
@@ -141,27 +145,27 @@ const Ke = /* @__PURE__ */ G({
141
145
  setup(v, {
142
146
  expose: B
143
147
  }) {
144
- const x = W(), a = v, {
148
+ const x = U(), t = v, {
145
149
  b: S
146
- } = ce("editable-aggrid"), I = ue("editable-aggrid"), m = y(), {
150
+ } = ce("editable-aggrid"), I = ue("editable-aggrid"), m = g(), {
147
151
  internalInstance: n
148
152
  } = ne();
149
153
  function F(e) {
150
- const o = pe(a.columns || []);
154
+ const o = pe(t.columns || []);
151
155
  if (!Object.keys(o).length || !e?.length)
152
156
  return e;
153
- let t = [];
154
- for (const s of e)
155
- t.push(ie(s, o));
156
- return t;
157
+ let a = [];
158
+ for (const i of e)
159
+ a.push(se(i, o));
160
+ return a;
157
161
  }
158
- const i = de(a.name);
162
+ const s = de(t.name);
159
163
  let c = [];
160
- U(() => {
161
- const e = a.formItem?.initialValue ?? re(n?.getInitialValues() ?? {}, a.name);
162
- e && (n?.updateInitialModel(i, R(u(e), a.rowKey)), c = u(e), l.value || j(u(e), "suffix", !0));
164
+ W(() => {
165
+ const e = t.formItem?.initialValue ?? re(n?.getInitialValues() ?? {}, t.name);
166
+ e && (n?.updateInitialModel(s, b(u(e), t.rowKey)), c = u(e), l.value || j(u(e), "suffix", !0));
163
167
  });
164
- const l = y([]), T = le(a.name);
168
+ const l = g([]), T = le(t.name);
165
169
  $(() => T.value, (e) => {
166
170
  te(e, l.value) || w(e ?? u(c));
167
171
  }, {
@@ -169,7 +173,7 @@ const Ke = /* @__PURE__ */ G({
169
173
  flush: "post",
170
174
  immediate: !0
171
175
  });
172
- const E = we("valueTypeMap"), V = se(a, E, i), {
176
+ const E = we("valueTypeMap"), V = ie(t, E, s), {
173
177
  add: N,
174
178
  addMultiple: _,
175
179
  __addMultiple: j,
@@ -180,36 +184,36 @@ const Ke = /* @__PURE__ */ G({
180
184
  setRowData: z,
181
185
  clear: H,
182
186
  refreshRowIds: d
183
- } = me(a, n, l, i);
187
+ } = me(t, n, l, s);
184
188
  function L() {
185
189
  const e = m.value?._internalGridApi;
186
190
  if (!d.value?.length || !e)
187
191
  return;
188
- const o = d.value.map((t) => e.getRowNode(t)).filter((t) => !!t);
189
- e.refreshCells({
192
+ const o = d.value.map((a) => e.getRowNode(a)).filter((a) => !!a);
193
+ t.supressForceRowUpdate || e.refreshCells({
190
194
  rowNodes: o,
191
195
  force: !0
192
196
  }), d.value = [];
193
197
  }
194
198
  function w(e) {
195
199
  l.value = [...e];
196
- const o = R(e, a.rowKey);
197
- n?.setFieldValue(a.name, [...e]), n?.setFieldValue(i, o);
200
+ const o = b(e, t.rowKey);
201
+ n?.setFieldValue(t.name, [...e]), n?.setFieldValue(s, o);
198
202
  }
199
- function g(e, o) {
200
- const t = e === "end" ? l.value.length - 1 : e;
201
- m.value?.scrollToRow(t, o);
203
+ function y(e, o) {
204
+ const a = e === "end" ? l.value.length - 1 : e;
205
+ m.value?.scrollToRow(a, o);
202
206
  }
203
207
  function M(e, o) {
204
208
  m.value?.scrollToColumn(e, o);
205
209
  }
206
210
  function P(e, o) {
207
- const t = [i, String(e), o].flat();
208
- return n?.validateFields([t]);
211
+ const a = [s, String(e), o].flat();
212
+ return n?.validateFields([a]);
209
213
  }
210
214
  function A(e) {
211
- const t = r(l).map((s, p) => [i, String(fe(s, p, a.rowKey)), e].flat());
212
- return n?.validateFields(t);
215
+ const a = r(l).map((i, p) => [s, String(fe(i, p, t.rowKey)), e].flat());
216
+ return n?.validateFields(a);
213
217
  }
214
218
  return B({
215
219
  add: N,
@@ -221,21 +225,21 @@ const Ke = /* @__PURE__ */ G({
221
225
  setRowData: z,
222
226
  clear: H,
223
227
  setTableData: w,
224
- scrollTo: g,
225
- scrollToRow: g,
228
+ scrollTo: y,
229
+ scrollToRow: y,
226
230
  scrollToColumn: M,
227
231
  validateCell: P,
228
232
  validateColumn: A,
229
233
  table: m
230
- }), (e, o) => (J(), q(Q, null, [f(r(b).FormItem, {
234
+ }), (e, o) => (J(), q(Q, null, [f(r(R).FormItem, {
231
235
  hidden: "",
232
236
  name: e.name,
233
237
  "initial-value": e.formItem?.initialValue,
234
238
  transform: F
235
- }, null, 8, ["name", "initial-value"]), f(r(b).FormItem, h({
239
+ }, null, 8, ["name", "initial-value"]), f(r(R).FormItem, h({
236
240
  label: e.label
237
241
  }, e.formItem), {
238
- default: C(() => [f(ge, h(r(ae)(a, ["name", "maxLength", "onChange", "defaultValue", "formItem"]), {
242
+ default: C(() => [f(ye, h(r(ae)(t, ["name", "maxLength", "onChange", "defaultValue", "formItem"]), {
239
243
  ref_key: "tableRef",
240
244
  ref: m,
241
245
  class: [r(S)(), r(I)],
@@ -246,9 +250,9 @@ const Ke = /* @__PURE__ */ G({
246
250
  onUpdate: L
247
251
  }), X({
248
252
  _: 2
249
- }, [Y(x, (t, s) => ({
250
- name: s,
251
- fn: C((p) => [Z(e.$slots, s, ee(oe(p || {})))])
253
+ }, [Y(x, (a, i) => ({
254
+ name: i,
255
+ fn: C((p) => [Z(e.$slots, i, ee(oe(p || {})))])
252
256
  }))]), 1040, ["class", "columns", "data-source"])]),
253
257
  _: 3
254
258
  }, 16, ["label"])], 64));
@@ -135,7 +135,11 @@ const Fe = /* @__PURE__ */ M({
135
135
  name: {
136
136
  default: "ap-editable-table-inner-name"
137
137
  },
138
- onFieldChange: {}
138
+ onFieldChange: {},
139
+ supressForceRowUpdate: {
140
+ type: Boolean,
141
+ default: !1
142
+ }
139
143
  },
140
144
  emits: ["update:value"],
141
145
  setup(C, {
@@ -170,12 +174,12 @@ const Fe = /* @__PURE__ */ M({
170
174
  if (!d.value?.length || !e)
171
175
  return;
172
176
  const o = d.value.map((t) => e.getRowNode(t)).filter((t) => !!t);
173
- e.refreshCells({
177
+ a.supressForceRowUpdate || e.refreshCells({
174
178
  rowNodes: o,
175
179
  force: !0
176
180
  }), d.value = [];
177
181
  }
178
- function L() {
182
+ function U() {
179
183
  r.value?.resetFields();
180
184
  }
181
185
  function w(e) {
@@ -189,15 +193,15 @@ const Fe = /* @__PURE__ */ M({
189
193
  return e;
190
194
  }
191
195
  }
192
- async function P(e, o) {
196
+ async function L(e, o) {
193
197
  const n = (await r.value?.validateFields(w(e), o))?.[a.name];
194
198
  return g(n);
195
199
  }
196
- async function G(e, o) {
200
+ async function P(e, o) {
197
201
  const n = (await r.value?.validateFieldsReturnTransformed(w(e), o))?.[a.name];
198
202
  return g(n);
199
203
  }
200
- function U(e) {
204
+ function G(e) {
201
205
  y(e);
202
206
  const o = f(e, a.rowKey);
203
207
  r.value?.setFieldValue(a.name, o);
@@ -210,9 +214,9 @@ const Fe = /* @__PURE__ */ M({
210
214
  i.value?.scrollToColumn(e, o);
211
215
  }
212
216
  return x({
213
- resetFields: L,
214
- validateFields: P,
215
- validateFieldsReturnTransformed: G,
217
+ resetFields: U,
218
+ validateFields: L,
219
+ validateFieldsReturnTransformed: P,
216
220
  add: A,
217
221
  addMultiple: N,
218
222
  remove: j,
@@ -221,7 +225,7 @@ const Fe = /* @__PURE__ */ M({
221
225
  getRowsData: D,
222
226
  setRowData: z,
223
227
  clear: H,
224
- setTableData: U,
228
+ setTableData: G,
225
229
  scrollTo: R,
226
230
  scrollToRow: R,
227
231
  scrollToColumn: W,
@@ -78,6 +78,15 @@ export type EditableAgGridProps<RecordType = any> = Omit<AgGridProps<RecordType>
78
78
  * @returns
79
79
  */
80
80
  onFieldChange?: (rowIndex: number, fieldName: DataIndex, newValue: any) => void;
81
+ /**
82
+ * 是否禁止在行操作后(添加/删除行等)避免强制更新
83
+ * 默认情况下,表格行会在行操作后强制更新哪些受到影响的行来保证渲染始终是正确的,但这样会导致表单校验被清空、频繁更新导致渲染性能下降等问题
84
+ * 设置为`true`后,在行操作后不会主动强制更新受影响的行,由于不再更新行,配置中如果`editable`/`fieldProps`/`customRender`等函数使用
85
+ * 到了`rowIndex`等字段可能会出现渲染异常的问题
86
+ * @default false
87
+ * @since 7.19.5
88
+ */
89
+ supressForceRowUpdate?: boolean;
81
90
  };
82
91
  export type EditableAgGridExpose<RecordType = any, ModelType = RecordType[]> = Omit<EditableTableExpose<ModelType, RecordType>, 'scrollTo' | 'remove'> & {
83
92
  scrollTo: (index: number | 'end', position?: 'top' | 'bottom' | 'middle') => void;
@@ -1,6 +1,6 @@
1
- import { ComputedRef, Ref } from 'vue';
1
+ import { Ref } from 'vue';
2
2
  import { ValueTypeRenderConfig } from '../../config-provider';
3
3
  import { EditableAgGridProps } from '../editable/interface';
4
4
  import { AgGridColumnType } from '../interface';
5
- export declare const useGetEditableColumns: (props: EditableAgGridProps, extraValueTypes: Ref<Record<string, ValueTypeRenderConfig> | undefined>, shadowName?: string) => ComputedRef<AgGridColumnType[]>;
5
+ export declare const useGetEditableColumns: (props: EditableAgGridProps, extraValueTypes: Ref<Record<string, ValueTypeRenderConfig> | undefined>, shadowName?: string) => Ref<AgGridColumnType[]>;
6
6
  export default useGetEditableColumns;
@@ -1,104 +1,111 @@
1
- import { clsx as k } from "clsx";
2
- import { isArray as g, isFunction as w } from "lodash-unified";
3
- import { unref as E, computed as F } from "vue";
4
- import { getFinalEditableNode as v } from "../../ap-grid/utils/editable.mjs";
5
- import { updateFormProps as y, getFieldProps as q } from "../../ap-table/utils.mjs";
6
- import { getColumnIsRequired as A } from "../../editable-table/utils.mjs";
1
+ import { clsx as v } from "clsx";
2
+ import { isArray as g, isFunction as C } from "lodash-unified";
3
+ import { ref as E, watch as F, unref as y } from "vue";
4
+ import { getFinalEditableNode as q } from "../../ap-grid/utils/editable.mjs";
5
+ import { updateFormProps as A, getFieldProps as K } from "../../ap-table/utils.mjs";
6
+ import { getColumnIsRequired as M } from "../../editable-table/utils.mjs";
7
7
  import "../../utils/index.mjs";
8
- import { getRowKey as K } from "../editable/utils.mjs";
9
- import { isDef as M } from "../../utils/is.mjs";
10
- function b(t, n, i) {
11
- t.__skipNextRefresh ? t.__skipNextRefresh[n] = i : t.__skipNextRefresh = { [n]: i };
8
+ import { getRowKey as S } from "../editable/utils.mjs";
9
+ import { isDef as D } from "../../utils/is.mjs";
10
+ function I(t, d, r) {
11
+ t.__skipNextRefresh ? t.__skipNextRefresh[d] = r : t.__skipNextRefresh = { [d]: r };
12
12
  }
13
- function S(t, n, i) {
14
- t.__prevEditable ? t.__prevEditable[n] = i : t.__prevEditable = { [n]: i };
13
+ function G(t, d, r) {
14
+ t.__prevEditable ? t.__prevEditable[d] = r : t.__prevEditable = { [d]: r };
15
15
  }
16
- const O = (t, n, i) => {
17
- function I(e) {
18
- const s = e.editable, o = i ? [i] : g(t.name) ? t.name : [t.name];
19
- return !s || e.children?.length ? {
20
- _path: [...o]
16
+ const Q = (t, d, r) => {
17
+ const _ = E([]);
18
+ F(
19
+ () => t.columns,
20
+ (e) => {
21
+ if (!e?.length) {
22
+ _.value = [];
23
+ return;
24
+ }
25
+ function c(a) {
26
+ return a.map((n) => ({
27
+ ...n,
28
+ _requireMark: M(n),
29
+ children: c(n.children || []),
30
+ // 处理可编辑/不可编辑下的单元格渲染
31
+ ...R(n)
32
+ }));
33
+ }
34
+ _.value = c(e);
35
+ },
36
+ { immediate: !0, deep: !0 }
37
+ );
38
+ function R(e) {
39
+ const c = e.editable, a = r ? [r] : g(t.name) ? t.name : [t.name];
40
+ return !c || e.children?.length ? {
41
+ _path: [...a]
21
42
  } : {
22
- customRender({ value: d, originalNode: R, params: a, ...r }) {
23
- const c = w(e.editable) ? e.editable(
24
- r.text,
25
- r.record,
26
- r.rowIndex
43
+ customRender({ value: n, originalNode: p, params: o, ...i }) {
44
+ const s = C(e.editable) ? e.editable(
45
+ i.text,
46
+ i.record,
47
+ i.rowIndex
27
48
  ) : !!e.editable;
28
- let u = R;
29
- const p = g(e.dataIndex) ? e.dataIndex : [e.dataIndex], _ = K(
30
- r.record,
31
- r.rowIndex,
49
+ let u = p;
50
+ const w = g(e.dataIndex) ? e.dataIndex : [e.dataIndex], x = S(
51
+ i.record,
52
+ i.rowIndex,
32
53
  t.rowKey
33
54
  );
34
- if (c) {
35
- const x = y(
55
+ if (s) {
56
+ const h = A(
36
57
  e,
37
- q(e.fieldProps, {
38
- value: d,
39
- ...r
58
+ K(e.fieldProps, {
59
+ value: n,
60
+ ...i
40
61
  })
41
- ), h = {};
42
- t.onFieldChange && (h[`onUpdate:${x.valuePropName || "value"}`] = (N) => t.onFieldChange?.(
43
- r.rowIndex,
62
+ ), b = {};
63
+ t.onFieldChange && (b[`onUpdate:${h.valuePropName || "value"}`] = (k) => t.onFieldChange?.(
64
+ i.rowIndex,
44
65
  e.dataIndex,
45
- N
66
+ k
46
67
  ));
47
- const C = {
48
- name: [...o, String(_), ...p],
49
- ...x || {},
68
+ const N = {
69
+ name: [...a, String(x), ...w],
70
+ ...h || {},
50
71
  field: {
51
72
  style: "width: 100%",
52
- ...x?.field || {},
53
- ...h,
54
- class: k("is-editable", x.class)
73
+ ...h?.field || {},
74
+ ...b,
75
+ class: v("is-editable", h.class)
55
76
  }
56
77
  };
57
- u = v(
78
+ u = q(
58
79
  e,
59
- C,
60
- r.record,
61
- E(n)
80
+ N,
81
+ i.record,
82
+ y(d)
62
83
  );
63
84
  }
64
85
  e.customRender && (u = e.customRender({
65
- value: d,
66
- ...r,
67
- editable: c,
86
+ value: n,
87
+ ...i,
88
+ editable: s,
68
89
  originalNode: u,
69
- index: r.rowIndex,
70
- renderIndex: r.rowIndex,
71
- path: [...o, String(_)]
90
+ index: i.rowIndex,
91
+ renderIndex: i.rowIndex,
92
+ path: [...a, String(x)]
72
93
  }));
73
- const l = a.node, f = a.column.getColId(), m = l.__prevEditable?.[f];
74
- return !l.__skipNextRefresh?.[f] && M(m) && m !== c && (b(l, f, !0), setTimeout(() => {
75
- a?.api.refreshCells({
76
- rowNodes: [a.node],
77
- columns: [a.column.getColId()],
94
+ const l = o.node, f = o.column.getColId(), m = l.__prevEditable?.[f];
95
+ return !l.__skipNextRefresh?.[f] && D(m) && m !== s && (I(l, f, !0), setTimeout(() => {
96
+ o?.api.refreshCells({
97
+ rowNodes: [o.node],
98
+ columns: [o.column.getColId()],
78
99
  force: !0
79
- }), b(l, f, !1);
80
- }, 0)), S(l, f, c), u;
100
+ }), I(l, f, !1);
101
+ }, 0)), G(l, f, s), u;
81
102
  },
82
- _path: [...o]
103
+ _path: [...a]
83
104
  };
84
105
  }
85
- return F(() => {
86
- const e = t.columns;
87
- if (!e)
88
- return [];
89
- function s(o) {
90
- return o.map((d) => ({
91
- ...d,
92
- _requireMark: A(d),
93
- children: s(d.children || []),
94
- // 处理可编辑/不可编辑下的单元格渲染
95
- ...I(d)
96
- }));
97
- }
98
- return s(e);
99
- });
106
+ return _;
100
107
  };
101
108
  export {
102
- O as default,
103
- O as useGetEditableColumns
109
+ Q as default,
110
+ Q as useGetEditableColumns
104
111
  };
@@ -9,7 +9,7 @@ const e = () => ({
9
9
  },
10
10
  preview: {
11
11
  type: Boolean,
12
- default: !1
12
+ default: !0
13
13
  },
14
14
  values: {
15
15
  type: Array,
@@ -1,2 +1,2 @@
1
- declare const _default: "7.19.4";
1
+ declare const _default: "7.19.5";
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
- const e = "7.19.4";
1
+ const e = "7.19.5";
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),u=require("lodash-unified"),y=require("../../ap-form/index.js"),k=require("../../ap-form/context.js"),A=require("../../ap-form/hooks/use-watch.js"),z=require("../../ap-form/utils/get.js"),H=require("../../ap-form/utils/transform.js");require("../../config-provider/index.js");const L=require("../hooks/use-editable-columns.js"),G=require("../hooks/use-editable-form-item-api.js");require("../index.vue2.js");const W=require("../style/editable.js"),U=require("../utils.js"),c=require("./utils.js"),$=require("../../config-provider/hooks/use-namespace.js"),J=require("../../config-provider/hooks/use-global-config.js"),Q=require("../index.vue.js"),X=o.defineComponent({name:"EditableGrid",__name:"form-item",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowHoverable:{type:Boolean},rowSelection:{type:[Boolean,Object]},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{},emptyComponent:{},emptyText:{},onColumnResized:{},animateRows:{type:Boolean},plugins:{},columns:{},defaultValue:{},onChange:{},maxLength:{},onFieldChange:{},label:{},name:{},formItem:{}},setup(h,{expose:b}){const C=o.useSlots(),a=h,{b:R}=$.useNamespace("editable-aggrid"),v=W.default("editable-aggrid"),d=o.ref(),{internalInstance:l}=k.useInjectForm();function x(e){const t=c.getColumnTransformOptions(a.columns||[]);if(!Object.keys(t).length||!e?.length)return e;let n=[];for(const i of e)n.push(H.transformValues(i,t));return n}const s=U.getShadowName(a.name);let f=[];o.onMounted(()=>{const e=a.formItem?.initialValue??z.getModelValue(l?.getInitialValues()??{},a.name);e&&(l?.updateInitialModel(s,c.arrayToObject(u.cloneDeep(e),a.rowKey)),f=u.cloneDeep(e),r.value||F(u.cloneDeep(e),"suffix",!0))});const r=o.ref([]),B=A.useWatch(a.name);o.watch(()=>B.value,e=>{u.isEqual(e,r.value)||g(e??u.cloneDeep(f))},{deep:!0,flush:"post",immediate:!0});const S=J.useGlobalConfig("valueTypeMap"),q=L.useGetEditableColumns(a,S,s),{add:I,addMultiple:_,__addMultiple:F,remove:T,removeByKey:E,getRowData:N,getRowsData:V,setRowData:j,clear:D,refreshRowIds:m}=G.useEditableFormItemApi(a,l,r,s);function O(){const e=d.value?._internalGridApi;if(!m.value?.length||!e)return;const t=m.value.map(n=>e.getRowNode(n)).filter(n=>!!n);e.refreshCells({rowNodes:t,force:!0}),m.value=[]}function g(e){r.value=[...e];const t=c.arrayToObject(e,a.rowKey);l?.setFieldValue(a.name,[...e]),l?.setFieldValue(s,t)}function w(e,t){const n=e==="end"?r.value.length-1:e;d.value?.scrollToRow(n,t)}function K(e,t){d.value?.scrollToColumn(e,t)}function M(e,t){const n=[s,String(e),t].flat();return l?.validateFields([n])}function P(e){const n=o.unref(r).map((i,p)=>[s,String(c.getRowKey(i,p,a.rowKey)),e].flat());return l?.validateFields(n)}return b({add:I,addMultiple:_,remove:T,removeByKey:E,getRowData:N,getRowsData:V,setRowData:j,clear:D,setTableData:g,scrollTo:w,scrollToRow:w,scrollToColumn:K,validateCell:M,validateColumn:P,table:d}),(e,t)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(o.unref(y.ApForm).FormItem,{hidden:"",name:e.name,"initial-value":e.formItem?.initialValue,transform:x},null,8,["name","initial-value"]),o.createVNode(o.unref(y.ApForm).FormItem,o.mergeProps({label:e.label},e.formItem),{default:o.withCtx(()=>[o.createVNode(Q.default,o.mergeProps(o.unref(u.omit)(a,["name","maxLength","onChange","defaultValue","formItem"]),{ref_key:"tableRef",ref:d,class:[o.unref(R)(),o.unref(v)],size:"mini",columns:o.unref(q),"data-source":r.value,"search-form":!1,onUpdate:O}),o.createSlots({_:2},[o.renderList(C,(n,i)=>({name:i,fn:o.withCtx(p=>[o.renderSlot(e.$slots,i,o.normalizeProps(o.guardReactiveProps(p||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["label"])],64))}});exports.default=X;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),i=require("lodash-unified"),y=require("../../ap-form/index.js"),k=require("../../ap-form/context.js"),A=require("../../ap-form/hooks/use-watch.js"),z=require("../../ap-form/utils/get.js"),H=require("../../ap-form/utils/transform.js");require("../../config-provider/index.js");const L=require("../hooks/use-editable-columns.js"),G=require("../hooks/use-editable-form-item-api.js");require("../index.vue2.js");const U=require("../style/editable.js"),W=require("../utils.js"),c=require("./utils.js"),$=require("../../config-provider/hooks/use-namespace.js"),J=require("../../config-provider/hooks/use-global-config.js"),Q=require("../index.vue.js"),X=o.defineComponent({name:"EditableGrid",__name:"form-item",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowHoverable:{type:Boolean},rowSelection:{type:[Boolean,Object]},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{},emptyComponent:{},emptyText:{},onColumnResized:{},animateRows:{type:Boolean},plugins:{},columns:{},defaultValue:{},onChange:{},maxLength:{},onFieldChange:{},supressForceRowUpdate:{type:Boolean,default:!1},label:{},name:{},formItem:{}},setup(h,{expose:b}){const C=o.useSlots(),n=h,{b:R}=$.useNamespace("editable-aggrid"),v=U.default("editable-aggrid"),d=o.ref(),{internalInstance:l}=k.useInjectForm();function B(e){const t=c.getColumnTransformOptions(n.columns||[]);if(!Object.keys(t).length||!e?.length)return e;let a=[];for(const u of e)a.push(H.transformValues(u,t));return a}const s=W.getShadowName(n.name);let f=[];o.onMounted(()=>{const e=n.formItem?.initialValue??z.getModelValue(l?.getInitialValues()??{},n.name);e&&(l?.updateInitialModel(s,c.arrayToObject(i.cloneDeep(e),n.rowKey)),f=i.cloneDeep(e),r.value||_(i.cloneDeep(e),"suffix",!0))});const r=o.ref([]),x=A.useWatch(n.name);o.watch(()=>x.value,e=>{i.isEqual(e,r.value)||g(e??i.cloneDeep(f))},{deep:!0,flush:"post",immediate:!0});const S=J.useGlobalConfig("valueTypeMap"),q=L.useGetEditableColumns(n,S,s),{add:F,addMultiple:I,__addMultiple:_,remove:T,removeByKey:E,getRowData:N,getRowsData:V,setRowData:j,clear:D,refreshRowIds:m}=G.useEditableFormItemApi(n,l,r,s);function O(){const e=d.value?._internalGridApi;if(!m.value?.length||!e)return;const t=m.value.map(a=>e.getRowNode(a)).filter(a=>!!a);n.supressForceRowUpdate||e.refreshCells({rowNodes:t,force:!0}),m.value=[]}function g(e){r.value=[...e];const t=c.arrayToObject(e,n.rowKey);l?.setFieldValue(n.name,[...e]),l?.setFieldValue(s,t)}function w(e,t){const a=e==="end"?r.value.length-1:e;d.value?.scrollToRow(a,t)}function K(e,t){d.value?.scrollToColumn(e,t)}function M(e,t){const a=[s,String(e),t].flat();return l?.validateFields([a])}function P(e){const a=o.unref(r).map((u,p)=>[s,String(c.getRowKey(u,p,n.rowKey)),e].flat());return l?.validateFields(a)}return b({add:F,addMultiple:I,remove:T,removeByKey:E,getRowData:N,getRowsData:V,setRowData:j,clear:D,setTableData:g,scrollTo:w,scrollToRow:w,scrollToColumn:K,validateCell:M,validateColumn:P,table:d}),(e,t)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(o.unref(y.ApForm).FormItem,{hidden:"",name:e.name,"initial-value":e.formItem?.initialValue,transform:B},null,8,["name","initial-value"]),o.createVNode(o.unref(y.ApForm).FormItem,o.mergeProps({label:e.label},e.formItem),{default:o.withCtx(()=>[o.createVNode(Q.default,o.mergeProps(o.unref(i.omit)(n,["name","maxLength","onChange","defaultValue","formItem"]),{ref_key:"tableRef",ref:d,class:[o.unref(R)(),o.unref(v)],size:"mini",columns:o.unref(q),"data-source":r.value,"search-form":!1,onUpdate:O}),o.createSlots({_:2},[o.renderList(C,(a,u)=>({name:u,fn:o.withCtx(p=>[o.renderSlot(e.$slots,u,o.normalizeProps(o.guardReactiveProps(p||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["label"])],64))}});exports.default=X;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),i=require("lodash-unified"),f=require("../../ap-form/index.js");require("../../config-provider/index.js");require("../../hooks/index.js");const G=require("../hooks/use-editable-api.js"),L=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const M=require("../style/editable.js"),d=require("./utils.js"),U=require("../../config-provider/hooks/use-namespace.js"),W=require("../../hooks/useControllableValue.js"),$=require("../../config-provider/hooks/use-global-config.js"),J=require("../index.vue.js"),Q=a.defineComponent({name:"EditableGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowHoverable:{type:Boolean},rowSelection:{type:[Boolean,Object]},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{},emptyComponent:{},emptyText:{},onColumnResized:{},animateRows:{type:Boolean},plugins:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(v,{expose:h,emit:C}){const R=a.useSlots(),t=v,{b:x}=U.useNamespace("editable-aggrid"),B=M.default("editable-aggrid"),T=C,u=a.ref(),{value:s,updateValue:y}=W.useControllableValue(t,T),l=a.ref(),_=f.ApForm.useWatch(t.name,l);a.watch(s,e=>{const o=d.arrayToObject(e,t.rowKey);i.isEqual(o,a.unref(_))||l.value?.setFieldValue(t.name,o)},{deep:!0});const S=$.useGlobalConfig("valueTypeMap"),F=L.useGetEditableColumns(t,S),{add:q,addMultiple:A,remove:E,removeByKey:j,getRowData:N,getRowsData:K,setRowData:V,clear:k,refreshRowIds:c}=G.useEditableApi(t,l,s,y);function O(){const e=u.value?._internalGridApi;if(!c.value?.length||!e)return;const o=c.value.map(n=>e.getRowNode(n)).filter(n=>!!n);e.refreshCells({rowNodes:o,force:!0}),c.value=[]}function I(){l.value?.resetFields()}function w(e){return e?(i.isArray(e)?e:[e]).map(n=>i.isArray(n)?[t.name,...n]:[t.name,n]):void 0}function b(e){try{const o=Object.keys(e),n=s.value.map(r=>d.getRowKey(r,void 0,t.rowKey));return o.sort((r,p)=>n.findIndex(m=>String(m)===r)-n.findIndex(m=>String(m)===p)),o.map(r=>e[r])}catch{return e}}async function D(e,o){const r=(await l.value?.validateFields(w(e),o))?.[t.name];return b(r)}async function z(e,o){const r=(await l.value?.validateFieldsReturnTransformed(w(e),o))?.[t.name];return b(r)}function H(e){y(e);const o=d.arrayToObject(e,t.rowKey);l.value?.setFieldValue(t.name,o)}function g(e,o){const n=e==="end"?s.value.length-1:e;u.value?.scrollToRow(n,o)}function P(e,o){u.value?.scrollToColumn(e,o)}return h({resetFields:I,validateFields:D,validateFieldsReturnTransformed:z,add:q,addMultiple:A,remove:E,removeByKey:j,getRowData:N,getRowsData:K,setRowData:V,clear:k,setTableData:H,scrollTo:g,scrollToRow:g,scrollToColumn:P,table:u}),(e,o)=>(a.openBlock(),a.createBlock(a.unref(f.ApForm),{ref_key:"formRef",ref:l,"initial-values":{[t.name]:a.unref(d.arrayToObject)(a.unref(s),t.rowKey)},style:{height:"100%"}},{default:a.withCtx(()=>[a.createVNode(a.unref(f.ApForm).FormItem,{name:e.name,"no-style":""},{default:a.withCtx(()=>[a.createVNode(J.default,a.mergeProps(a.unref(i.omit)(t,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:u,class:[a.unref(x)(),a.unref(B)],size:"mini",columns:a.unref(F),"data-source":a.unref(s),"search-form":!1,onUpdate:O}),a.createSlots({_:2},[a.renderList(R,(n,r)=>({name:r,fn:a.withCtx(p=>[a.renderSlot(e.$slots,r,a.normalizeProps(a.guardReactiveProps(p||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=Q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),i=require("lodash-unified"),m=require("../../ap-form/index.js");require("../../config-provider/index.js");require("../../hooks/index.js");const P=require("../hooks/use-editable-api.js"),G=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const L=require("../style/editable.js"),d=require("./utils.js"),M=require("../../config-provider/hooks/use-namespace.js"),W=require("../../hooks/useControllableValue.js"),$=require("../../config-provider/hooks/use-global-config.js"),J=require("../index.vue.js"),Q=o.defineComponent({name:"EditableGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},rowHoverable:{type:Boolean},rowSelection:{type:[Boolean,Object]},onLoadingChange:{},onShownColumnsChange:{},pagination:{type:[Boolean,Object],default:!1},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{default:66},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{},emptyComponent:{},emptyText:{},onColumnResized:{},animateRows:{type:Boolean},plugins:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{},supressForceRowUpdate:{type:Boolean,default:!1}},emits:["update:value"],setup(v,{expose:h,emit:R}){const C=o.useSlots(),t=v,{b:x}=M.useNamespace("editable-aggrid"),B=L.default("editable-aggrid"),T=R,u=o.ref(),{value:s,updateValue:y}=W.useControllableValue(t,T),l=o.ref(),_=m.ApForm.useWatch(t.name,l);o.watch(s,e=>{const a=d.arrayToObject(e,t.rowKey);i.isEqual(a,o.unref(_))||l.value?.setFieldValue(t.name,a)},{deep:!0});const F=$.useGlobalConfig("valueTypeMap"),S=G.useGetEditableColumns(t,F),{add:q,addMultiple:A,remove:E,removeByKey:j,getRowData:N,getRowsData:K,setRowData:V,clear:k,refreshRowIds:c}=P.useEditableApi(t,l,s,y);function O(){const e=u.value?._internalGridApi;if(!c.value?.length||!e)return;const a=c.value.map(n=>e.getRowNode(n)).filter(n=>!!n);t.supressForceRowUpdate||e.refreshCells({rowNodes:a,force:!0}),c.value=[]}function I(){l.value?.resetFields()}function w(e){return e?(i.isArray(e)?e:[e]).map(n=>i.isArray(n)?[t.name,...n]:[t.name,n]):void 0}function b(e){try{const a=Object.keys(e),n=s.value.map(r=>d.getRowKey(r,void 0,t.rowKey));return a.sort((r,p)=>n.findIndex(f=>String(f)===r)-n.findIndex(f=>String(f)===p)),a.map(r=>e[r])}catch{return e}}async function D(e,a){const r=(await l.value?.validateFields(w(e),a))?.[t.name];return b(r)}async function U(e,a){const r=(await l.value?.validateFieldsReturnTransformed(w(e),a))?.[t.name];return b(r)}function z(e){y(e);const a=d.arrayToObject(e,t.rowKey);l.value?.setFieldValue(t.name,a)}function g(e,a){const n=e==="end"?s.value.length-1:e;u.value?.scrollToRow(n,a)}function H(e,a){u.value?.scrollToColumn(e,a)}return h({resetFields:I,validateFields:D,validateFieldsReturnTransformed:U,add:q,addMultiple:A,remove:E,removeByKey:j,getRowData:N,getRowsData:K,setRowData:V,clear:k,setTableData:z,scrollTo:g,scrollToRow:g,scrollToColumn:H,table:u}),(e,a)=>(o.openBlock(),o.createBlock(o.unref(m.ApForm),{ref_key:"formRef",ref:l,"initial-values":{[t.name]:o.unref(d.arrayToObject)(o.unref(s),t.rowKey)},style:{height:"100%"}},{default:o.withCtx(()=>[o.createVNode(o.unref(m.ApForm).FormItem,{name:e.name,"no-style":""},{default:o.withCtx(()=>[o.createVNode(J.default,o.mergeProps(o.unref(i.omit)(t,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:u,class:[o.unref(x)(),o.unref(B)],size:"mini",columns:o.unref(S),"data-source":o.unref(s),"search-form":!1,onUpdate:O}),o.createSlots({_:2},[o.renderList(C,(n,r)=>({name:r,fn:o.withCtx(p=>[o.renderSlot(e.$slots,r,o.normalizeProps(o.guardReactiveProps(p||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=Q;
@@ -78,6 +78,15 @@ export type EditableAgGridProps<RecordType = any> = Omit<AgGridProps<RecordType>
78
78
  * @returns
79
79
  */
80
80
  onFieldChange?: (rowIndex: number, fieldName: DataIndex, newValue: any) => void;
81
+ /**
82
+ * 是否禁止在行操作后(添加/删除行等)避免强制更新
83
+ * 默认情况下,表格行会在行操作后强制更新哪些受到影响的行来保证渲染始终是正确的,但这样会导致表单校验被清空、频繁更新导致渲染性能下降等问题
84
+ * 设置为`true`后,在行操作后不会主动强制更新受影响的行,由于不再更新行,配置中如果`editable`/`fieldProps`/`customRender`等函数使用
85
+ * 到了`rowIndex`等字段可能会出现渲染异常的问题
86
+ * @default false
87
+ * @since 7.19.5
88
+ */
89
+ supressForceRowUpdate?: boolean;
81
90
  };
82
91
  export type EditableAgGridExpose<RecordType = any, ModelType = RecordType[]> = Omit<EditableTableExpose<ModelType, RecordType>, 'scrollTo' | 'remove'> & {
83
92
  scrollTo: (index: number | 'end', position?: 'top' | 'bottom' | 'middle') => void;
@@ -1,6 +1,6 @@
1
- import { ComputedRef, Ref } from 'vue';
1
+ import { Ref } from 'vue';
2
2
  import { ValueTypeRenderConfig } from '../../config-provider';
3
3
  import { EditableAgGridProps } from '../editable/interface';
4
4
  import { AgGridColumnType } from '../interface';
5
- export declare const useGetEditableColumns: (props: EditableAgGridProps, extraValueTypes: Ref<Record<string, ValueTypeRenderConfig> | undefined>, shadowName?: string) => ComputedRef<AgGridColumnType[]>;
5
+ export declare const useGetEditableColumns: (props: EditableAgGridProps, extraValueTypes: Ref<Record<string, ValueTypeRenderConfig> | undefined>, shadowName?: string) => Ref<AgGridColumnType[]>;
6
6
  export default useGetEditableColumns;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("clsx"),b=require("lodash-unified"),I=require("vue"),F=require("../../ap-grid/utils/editable.js"),C=require("../../ap-table/utils.js"),M=require("../../editable-table/utils.js");require("../../utils/index.js");const S=require("../editable/utils.js"),$=require("../../utils/is.js");function R(t,r,n){t.__skipNextRefresh?t.__skipNextRefresh[r]=n:t.__skipNextRefresh={[r]:n}}function m(t,r,n){t.__prevEditable?t.__prevEditable[r]=n:t.__prevEditable={[r]:n}}const q=(t,r,n)=>{function v(e){const u=e.editable,l=n?[n]:b.isArray(t.name)?t.name:[t.name];return!u||e.children?.length?{_path:[...l]}:{customRender({value:d,originalNode:N,params:a,...i}){const c=b.isFunction(e.editable)?e.editable(i.text,i.record,i.rowIndex):!!e.editable;let f=N;const k=b.isArray(e.dataIndex)?e.dataIndex:[e.dataIndex],x=S.getRowKey(i.record,i.rowIndex,t.rowKey);if(c){const _=C.updateFormProps(e,C.getFieldProps(e.fieldProps,{value:d,...i})),h={};t.onFieldChange&&(h[`onUpdate:${_.valuePropName||"value"}`]=E=>t.onFieldChange?.(i.rowIndex,e.dataIndex,E));const w={name:[...l,String(x),...k],..._||{},field:{style:"width: 100%",..._?.field||{},...h,class:y.clsx("is-editable",_.class)}};f=F.getFinalEditableNode(e,w,i.record,I.unref(r))}e.customRender&&(f=e.customRender({value:d,...i,editable:c,originalNode:f,index:i.rowIndex,renderIndex:i.rowIndex,path:[...l,String(x)]}));const s=a.node,o=a.column.getColId(),g=s.__prevEditable?.[o];return!s.__skipNextRefresh?.[o]&&$.isDef(g)&&g!==c&&(R(s,o,!0),setTimeout(()=>{a?.api.refreshCells({rowNodes:[a.node],columns:[a.column.getColId()],force:!0}),R(s,o,!1)},0)),m(s,o,c),f},_path:[...l]}}return I.computed(()=>{const e=t.columns;if(!e)return[];function u(l){return l.map(d=>({...d,_requireMark:M.getColumnIsRequired(d),children:u(d.children||[]),...v(d)}))}return u(e)})};exports.default=q;exports.useGetEditableColumns=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const F=require("clsx"),b=require("lodash-unified"),x=require("vue"),M=require("../../ap-grid/utils/editable.js"),q=require("../../ap-table/utils.js"),S=require("../../editable-table/utils.js");require("../../utils/index.js");const $=require("../editable/utils.js"),A=require("../../utils/is.js");function v(t,n,r){t.__skipNextRefresh?t.__skipNextRefresh[n]=r:t.__skipNextRefresh={[n]:r}}function p(t,n,r){t.__prevEditable?t.__prevEditable[n]=r:t.__prevEditable={[n]:r}}const w=(t,n,r)=>{const h=x.ref([]);x.watch(()=>t.columns,e=>{if(!e?.length){h.value=[];return}function o(a){return a.map(d=>({...d,_requireMark:S.getColumnIsRequired(d),children:o(d.children||[]),...C(d)}))}h.value=o(e)},{immediate:!0,deep:!0});function C(e){const o=e.editable,a=r?[r]:b.isArray(t.name)?t.name:[t.name];return!o||e.children?.length?{_path:[...a]}:{customRender({value:d,originalNode:N,params:l,...i}){const c=b.isFunction(e.editable)?e.editable(i.text,i.record,i.rowIndex):!!e.editable;let f=N;const k=b.isArray(e.dataIndex)?e.dataIndex:[e.dataIndex],g=$.getRowKey(i.record,i.rowIndex,t.rowKey);if(c){const _=q.updateFormProps(e,q.getFieldProps(e.fieldProps,{value:d,...i})),R={};t.onFieldChange&&(R[`onUpdate:${_.valuePropName||"value"}`]=y=>t.onFieldChange?.(i.rowIndex,e.dataIndex,y));const E={name:[...a,String(g),...k],..._||{},field:{style:"width: 100%",..._?.field||{},...R,class:F.clsx("is-editable",_.class)}};f=M.getFinalEditableNode(e,E,i.record,x.unref(n))}e.customRender&&(f=e.customRender({value:d,...i,editable:c,originalNode:f,index:i.rowIndex,renderIndex:i.rowIndex,path:[...a,String(g)]}));const s=l.node,u=l.column.getColId(),I=s.__prevEditable?.[u];return!s.__skipNextRefresh?.[u]&&A.isDef(I)&&I!==c&&(v(s,u,!0),setTimeout(()=>{l?.api.refreshCells({rowNodes:[l.node],columns:[l.column.getColId()],force:!0}),v(s,u,!1)},0)),p(s,u,c),f},_path:[...a]}}return h};exports.default=w;exports.useGetEditableColumns=w;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=()=>({title:{type:String,default:""},imgSrc:{type:String,default:""},preview:{type:Boolean,default:!1},values:{type:Array,default:()=>[]},disableCopy:{type:Boolean,default:!1},showImg:{type:Boolean,default:!0}});exports.ApProductInfoProps=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=()=>({title:{type:String,default:""},imgSrc:{type:String,default:""},preview:{type:Boolean,default:!0},values:{type:Array,default:()=>[]},disableCopy:{type:Boolean,default:!1},showImg:{type:Boolean,default:!0}});exports.ApProductInfoProps=e;
@@ -1,2 +1,2 @@
1
- declare const _default: "7.19.4";
1
+ declare const _default: "7.19.5";
2
2
  export default _default;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="7.19.4";exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="7.19.5";exports.default=e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aplus-frontend/ui",
3
- "version": "7.19.4",
3
+ "version": "7.19.5",
4
4
  "main": "./lib/index.js",
5
5
  "type": "module",
6
6
  "typings": "./lib/index.d.ts",