@aplus-frontend/ui 6.40.0 → 6.41.0

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.
@@ -116,6 +116,7 @@ const xe = /* @__PURE__ */ A({
116
116
  },
117
117
  onUpdate: {},
118
118
  customRow: {},
119
+ theme: {},
119
120
  columns: {},
120
121
  defaultValue: {},
121
122
  onChange: {},
@@ -114,6 +114,7 @@ const Re = /* @__PURE__ */ P({
114
114
  },
115
115
  onUpdate: {},
116
116
  customRow: {},
117
+ theme: {},
117
118
  columns: {},
118
119
  value: {},
119
120
  defaultValue: {},
@@ -38,6 +38,7 @@ export type EditableAgGridColumnType<RecordType = any, ExtraValueType = 'text',
38
38
  column: AgGridColumnType<RecordType>;
39
39
  editable?: boolean;
40
40
  originalNode?: VNode;
41
+ path: (string | number)[];
41
42
  }) => any;
42
43
  /**
43
44
  * 是否渲染必填标记(只渲染标记不生成校验规则)
@@ -1,5 +1,5 @@
1
- import { getTableRenderProps as h, objectToString as P } from "../../ap-table/utils.mjs";
2
- import { rendererMap as y } from "../renderer/index.mjs";
1
+ import { getTableRenderProps as y, objectToString as P } from "../../ap-table/utils.mjs";
2
+ import { rendererMap as h } from "../renderer/index.mjs";
3
3
  import { isNumber as f, isFunction as m } from "lodash-unified";
4
4
  import { ref as R, unref as x, computed as T } from "vue";
5
5
  import "../components/body-cell/index.vue.mjs";
@@ -16,20 +16,20 @@ import v from "../components/header-cell/index.vue2.mjs";
16
16
  function F(t) {
17
17
  return f(t) && t > 1;
18
18
  }
19
- function M(t, a) {
20
- if (a.bodyCellTooltip)
21
- return m(a.bodyCellTooltip) ? a.bodyCellTooltip(t.value, t.data) : a.bodyCellTooltip;
22
- if (a.renderText)
23
- return a.renderText({
19
+ function M(t, o) {
20
+ if (o.bodyCellTooltip)
21
+ return m(o.bodyCellTooltip) ? o.bodyCellTooltip(t.value, t.data) : o.bodyCellTooltip;
22
+ if (o.renderText)
23
+ return o.renderText({
24
24
  value: t.value,
25
25
  record: t.data,
26
- column: a,
26
+ column: o,
27
27
  text: t.value
28
28
  });
29
- const n = a.valueType || "text", d = y[n];
29
+ const n = o.valueType || "text", d = h[n];
30
30
  if (d) {
31
- const p = h(
32
- { ...a, valueType: n },
31
+ const p = y(
32
+ { ...o, valueType: n },
33
33
  {
34
34
  value: t.value,
35
35
  text: t.value,
@@ -43,17 +43,18 @@ function M(t, a) {
43
43
  }
44
44
  return P(t.value);
45
45
  }
46
- const X = (t, a, n) => {
46
+ const X = (t, o, n) => {
47
47
  const d = _("valueTypeMap"), u = R(), { em: p } = G("ag-grid"), c = (r) => {
48
- const o = {
48
+ const a = {
49
49
  cellRenderer: W,
50
50
  cellRendererParams: {
51
51
  column: r,
52
- extraValueType: x(d)
52
+ extraValueType: x(d),
53
+ rowKey: o.rowKey
53
54
  }
54
55
  };
55
56
  if (r.customRender)
56
- return o;
57
+ return a;
57
58
  if (r.renderText)
58
59
  return {
59
60
  valueFormatter: (i) => r.renderText({
@@ -63,10 +64,10 @@ const X = (t, a, n) => {
63
64
  text: i.value
64
65
  })
65
66
  };
66
- const l = r.valueType || "text", e = y[l];
67
+ const l = r.valueType || "text", e = h[l];
67
68
  return e ? {
68
69
  valueFormatter: (i) => {
69
- const s = h(
70
+ const s = y(
70
71
  { ...r, valueType: l },
71
72
  {
72
73
  value: i.value,
@@ -79,18 +80,18 @@ const X = (t, a, n) => {
79
80
  );
80
81
  return e(s);
81
82
  }
82
- } : o;
83
+ } : a;
83
84
  }, b = (r) => {
84
- const o = {}, l = r.bodyCellTooltip || !r.customRender && (r.ellipsis === !0 || r.ellipsis === "tooltip" || f(r.ellipsis)), e = f(r.ellipsis) && r.ellipsis > 1, i = f(r.ellipsis) ? r.ellipsis : 1;
85
- return o.tooltipValueGetter = l ? (s) => M(s, r) : void 0, o.wrapText = !r.ellipsis || e, o.cellStyle = {
85
+ const a = {}, l = r.bodyCellTooltip || !r.customRender && (r.ellipsis === !0 || r.ellipsis === "tooltip" || f(r.ellipsis)), e = f(r.ellipsis) && r.ellipsis > 1, i = f(r.ellipsis) ? r.ellipsis : 1;
86
+ return a.tooltipValueGetter = l ? (s) => M(s, r) : void 0, a.wrapText = !r.ellipsis || e, a.cellStyle = {
86
87
  "--ag-grid-line-clamp": i
87
- }, o.tooltipComponent = z, o.tooltipComponentParams = {
88
+ }, a.tooltipComponent = z, a.tooltipComponentParams = {
88
89
  lineClamp: i,
89
90
  gridWrapperRef: u
90
- }, o;
91
+ }, a;
91
92
  }, g = T(() => {
92
93
  const r = x(t);
93
- function o(l) {
94
+ function a(l) {
94
95
  return l.map((e) => {
95
96
  const i = {
96
97
  field: S(e.dataIndex),
@@ -130,15 +131,15 @@ const X = (t, a, n) => {
130
131
  headerGroupComponentParams: {
131
132
  column: e
132
133
  },
133
- children: o(e.children)
134
+ children: a(e.children)
134
135
  } : i;
135
136
  });
136
137
  }
137
- return o(r);
138
+ return a(r);
138
139
  }), w = T(
139
140
  () => ({
140
141
  headerComponent: v,
141
- resizable: a.columnResizable,
142
+ resizable: o.columnResizable,
142
143
  suppressMovable: !0,
143
144
  cellDataType: !1
144
145
  })
@@ -1,93 +1,99 @@
1
- import { unref as w, computed as E } from "vue";
2
- import { isFunction as F, isArray as g } from "lodash-unified";
3
- import { mergeClass as p, getColumnIsRequired as v } from "../../editable-table/utils.mjs";
1
+ import { unref as k, computed as w } from "vue";
2
+ import { isArray as m, isFunction as E } from "lodash-unified";
3
+ import { mergeClass as F, getColumnIsRequired as v } from "../../editable-table/utils.mjs";
4
4
  import { updateFormProps as y, getFieldProps as q } from "../../ap-table/utils.mjs";
5
5
  import { getFinalEditableNode as A } from "../../ap-grid/utils/editable.mjs";
6
6
  import { isDef as K } from "../../utils/index.mjs";
7
7
  import { getRowKey as M } from "../editable/utils.mjs";
8
- function m(t, r, n) {
9
- t.__skipNextRefresh ? t.__skipNextRefresh[r] = n : t.__skipNextRefresh = { [r]: n };
8
+ function b(t, i, r) {
9
+ t.__skipNextRefresh ? t.__skipNextRefresh[i] = r : t.__skipNextRefresh = { [i]: r };
10
10
  }
11
- function D(t, r, n) {
12
- t.__prevEditable ? t.__prevEditable[r] = n : t.__prevEditable = { [r]: n };
11
+ function S(t, i, r) {
12
+ t.__prevEditable ? t.__prevEditable[i] = r : t.__prevEditable = { [i]: r };
13
13
  }
14
- const J = (t, r, n) => {
15
- function h(e) {
16
- return !e.editable || e.children?.length ? {} : {
17
- customRender({ value: f, originalNode: d, params: o, ...i }) {
18
- const s = F(e.editable) ? e.editable(
19
- i.text,
20
- i.record,
21
- i.rowIndex
14
+ const J = (t, i, r) => {
15
+ function I(e) {
16
+ const s = e.editable, o = r ? [r] : m(t.name) ? t.name : [t.name];
17
+ return !s || e.children?.length ? {
18
+ _path: [...o]
19
+ } : {
20
+ customRender({ value: d, originalNode: C, params: a, ...n }) {
21
+ const c = E(e.editable) ? e.editable(
22
+ n.text,
23
+ n.record,
24
+ n.rowIndex
22
25
  ) : !!e.editable;
23
- let c = d;
24
- if (s) {
25
- const u = y(
26
+ let u = C;
27
+ const R = m(e.dataIndex) ? e.dataIndex : [e.dataIndex], x = M(
28
+ n.record,
29
+ n.rowIndex,
30
+ t.rowKey
31
+ );
32
+ if (c) {
33
+ const _ = y(
26
34
  e,
27
35
  q(e.fieldProps, {
28
- value: f,
29
- ...i
36
+ value: d,
37
+ ...n
30
38
  })
31
- ), b = {};
32
- t.onFieldChange && (b[`onUpdate:${u.valuePropName || "value"}`] = (k) => t.onFieldChange?.(
33
- i.rowIndex,
39
+ ), h = {};
40
+ t.onFieldChange && (h[`onUpdate:${_.valuePropName || "value"}`] = (N) => t.onFieldChange?.(
41
+ n.rowIndex,
34
42
  e.dataIndex,
35
- k
43
+ N
36
44
  ));
37
- const I = g(e.dataIndex) ? e.dataIndex : [e.dataIndex], C = n ? [n] : g(t.name) ? t.name : [t.name], R = M(
38
- i.record,
39
- i.rowIndex,
40
- t.rowKey
41
- ), N = {
42
- name: [...C, String(R), ...I],
43
- ...u || {},
45
+ const p = {
46
+ name: [...o, String(x), ...R],
47
+ ..._ || {},
44
48
  field: {
45
49
  style: "width: 100%",
46
- ...u?.field || {},
47
- ...b,
48
- class: p("is-editable", u.class)
50
+ ..._?.field || {},
51
+ ...h,
52
+ class: F("is-editable", _.class)
49
53
  }
50
54
  };
51
- c = A(
55
+ u = A(
52
56
  e,
53
- N,
54
- i.record,
55
- w(r)
57
+ p,
58
+ n.record,
59
+ k(i)
56
60
  );
57
61
  }
58
- e.customRender && (c = e.customRender({
59
- value: f,
60
- ...i,
61
- editable: s,
62
- originalNode: c,
63
- index: i.rowIndex,
64
- renderIndex: i.rowIndex
62
+ e.customRender && (u = e.customRender({
63
+ value: d,
64
+ ...n,
65
+ editable: c,
66
+ originalNode: u,
67
+ index: n.rowIndex,
68
+ renderIndex: n.rowIndex,
69
+ path: [...o, String(x)]
65
70
  }));
66
- const a = o.node, l = o.column.getColId(), _ = a.__prevEditable?.[l];
67
- return !a.__skipNextRefresh?.[l] && K(_) && _ !== s && (m(a, l, !0), setTimeout(() => {
68
- o?.api.refreshCells({
69
- rowNodes: [o.node],
70
- columns: [o.column.getColId()],
71
+ const l = a.node, f = a.column.getColId(), g = l.__prevEditable?.[f];
72
+ return !l.__skipNextRefresh?.[f] && K(g) && g !== c && (b(l, f, !0), setTimeout(() => {
73
+ a?.api.refreshCells({
74
+ rowNodes: [a.node],
75
+ columns: [a.column.getColId()],
71
76
  force: !0
72
- }), m(a, l, !1);
73
- }, 0)), D(a, l, s), c;
74
- }
77
+ }), b(l, f, !1);
78
+ }, 0)), S(l, f, c), u;
79
+ },
80
+ _path: [...o]
75
81
  };
76
82
  }
77
- return E(() => {
83
+ return w(() => {
78
84
  const e = t.columns;
79
85
  if (!e)
80
86
  return [];
81
- function x(f) {
82
- return f.map((d) => ({
87
+ function s(o) {
88
+ return o.map((d) => ({
83
89
  ...d,
84
90
  _requireMark: v(d),
85
- children: x(d.children || []),
91
+ children: s(d.children || []),
86
92
  // 处理可编辑/不可编辑下的单元格渲染
87
- ...h(d)
93
+ ...I(d)
88
94
  }));
89
95
  }
90
- return x(e);
96
+ return s(e);
91
97
  });
92
98
  };
93
99
  export {
@@ -1,9 +1,9 @@
1
- import { defineComponent as io, useSlots as uo, ref as N, toRef as T, unref as t, computed as n, nextTick as z, watch as M, createElementBlock as W, openBlock as b, normalizeStyle as O, normalizeClass as f, createCommentVNode as le, createElementVNode as F, createVNode as G, mergeProps as H, createSlots as co, withCtx as ne, Fragment as mo, renderList as po, createBlock as se, resolveDynamicComponent as fo, renderSlot as ie, withDirectives as go, vShow as wo } from "vue";
1
+ import { defineComponent as io, useSlots as uo, ref as T, toRef as b, unref as t, computed as n, nextTick as z, watch as M, createElementBlock as W, openBlock as F, normalizeStyle as O, normalizeClass as f, createCommentVNode as le, createElementVNode as B, createVNode as G, mergeProps as H, createSlots as co, withCtx as ne, Fragment as mo, renderList as po, createBlock as se, resolveDynamicComponent as fo, renderSlot as ie, withDirectives as go, vShow as wo } from "vue";
2
2
  import { AgGridVue as So } from "ag-grid-vue3";
3
3
  import { ModuleRegistry as yo, AllCommunityModule as ho } from "ag-grid-community";
4
4
  import { mergeProps as Co } from "./utils.mjs";
5
5
  import { Spin as vo, Pagination as Ro } from "@aplus-frontend/antdv";
6
- import { isUndefined as B, isFunction as D } from "lodash-unified";
6
+ import { isUndefined as k, isFunction as D } from "lodash-unified";
7
7
  import "../config-provider/index.mjs";
8
8
  import { ApForm as bo } from "../ap-form/index.mjs";
9
9
  import { recursionApColumns as Fo } from "../ap-table/utils.mjs";
@@ -100,19 +100,24 @@ const vt = /* @__PURE__ */ io({
100
100
  rowClassRules: {},
101
101
  autoHeight: { type: Boolean },
102
102
  onUpdate: {},
103
- customRow: {}
103
+ customRow: {},
104
+ theme: {}
104
105
  },
105
106
  setup(de, { expose: ce }) {
106
107
  yo.registerModules([ho]);
107
- const o = de, L = uo(), { e: k, b: d, be: me } = Go("ag-grid"), h = N(o.size), pe = Eo(h, T(o, "rowHeight")), fe = Mo(T(o, "virtual")), { rowPinnedGridConfig: U, getRowPinnedCellClass: ge } = Wo(
108
- T(o, "summary")
109
- ), we = Ho("apGrid"), s = N(), [, Se] = Do();
108
+ const o = de, L = uo(), { e: x, b: d, be: me } = Go("ag-grid"), h = T(o.size), pe = Eo(
109
+ h,
110
+ b(o, "rowHeight"),
111
+ b(o, "theme")
112
+ ), fe = Mo(b(o, "virtual")), { rowPinnedGridConfig: U, getRowPinnedCellClass: ge } = Wo(
113
+ b(o, "summary")
114
+ ), we = Ho("apGrid"), s = T(), [, Se] = Do();
110
115
  let C = !!o.dataSource;
111
- const j = zo(o), { shownColumns: g, columns: $, columnKeys: ye, getTargetColumnByKey: he } = Ko(o), { defaultColDef: Ce, columnDefs: ve, gridWrapperRef: Re } = Po($, o, ge), x = N({});
116
+ const j = zo(o), { shownColumns: g, columns: $, columnKeys: ye, getTargetColumnByKey: he } = Ko(o), { defaultColDef: Ce, columnDefs: ve, gridWrapperRef: Re } = Po($, o, ge), I = T({});
112
117
  xo({
113
- sorter: x,
118
+ sorter: I,
114
119
  setSorter(e) {
115
- x.value = e;
120
+ I.value = e;
116
121
  }
117
122
  });
118
123
  const be = {
@@ -120,7 +125,7 @@ const vt = /* @__PURE__ */ io({
120
125
  desc: "descend"
121
126
  };
122
127
  function Fe() {
123
- const e = s.value.getColumns()?.filter((c) => c.getSort() !== void 0), r = t(x) || {};
128
+ const e = s.value.getColumns()?.filter((c) => c.getSort() !== void 0), r = t(I) || {};
124
129
  let a = e?.[0];
125
130
  const i = Object.keys(r);
126
131
  if (i.length && i.every((c) => r[c] === null)) {
@@ -140,7 +145,7 @@ const vt = /* @__PURE__ */ io({
140
145
  if (e.sorter === !0)
141
146
  return e.field ?? e.dataIndex ?? e.key;
142
147
  }).filter(Boolean)), ke = () => {
143
- x.value = {};
148
+ I.value = {};
144
149
  const e = s.value;
145
150
  if (!e)
146
151
  return;
@@ -160,7 +165,7 @@ const vt = /* @__PURE__ */ io({
160
165
  setDataSource: Te
161
166
  } = Bo({
162
167
  async request(e) {
163
- if (C = !1, y.value && !y.value.preserveSelectedRowKeys && B(o.dataSource) && V(), !B(o.dataSource)) {
168
+ if (C = !1, y.value && !y.value.preserveSelectedRowKeys && k(o.dataSource) && V(), !k(o.dataSource)) {
164
169
  const a = e.pageSize * (e.current - 1);
165
170
  return {
166
171
  data: (o.pagination === !1 ? o.dataSource : o.dataSource.slice(a, a + e.pageSize)) || [],
@@ -174,8 +179,8 @@ const vt = /* @__PURE__ */ io({
174
179
  };
175
180
  },
176
181
  namespace: "ap-grid",
177
- filterFields: N([]),
178
- params: T(o, "params"),
182
+ filterFields: T([]),
183
+ params: b(o, "params"),
179
184
  defaultData: o.defaultData,
180
185
  manual: t(xe),
181
186
  formatParams: o.beforeSearchSubmit,
@@ -190,7 +195,7 @@ const vt = /* @__PURE__ */ io({
190
195
  ...e
191
196
  };
192
197
  }), De = Oo(o, g), Ee = n(
193
- () => B(o.dataSource) ? S.records : o.dataSource
198
+ () => k(o.dataSource) ? S.records : o.dataSource
194
199
  ), {
195
200
  select: Ke,
196
201
  unSelect: Pe,
@@ -221,7 +226,7 @@ const vt = /* @__PURE__ */ io({
221
226
  function A(e) {
222
227
  return D(o.rowKey) ? o.rowKey(e) : e[o.rowKey];
223
228
  }
224
- const I = ({
229
+ const N = ({
225
230
  api: e = s.value
226
231
  }) => {
227
232
  if (o.onUpdate?.(), !y.value)
@@ -249,7 +254,7 @@ const vt = /* @__PURE__ */ io({
249
254
  };
250
255
  function Ue(e) {
251
256
  ze(e), z(() => {
252
- I({});
257
+ N({});
253
258
  });
254
259
  }
255
260
  const je = n(() => {
@@ -264,12 +269,12 @@ const vt = /* @__PURE__ */ io({
264
269
  });
265
270
  function $e(e) {
266
271
  Me(e), z(() => {
267
- I({});
272
+ N({});
268
273
  });
269
274
  }
270
275
  function qe(e) {
271
276
  We(e), z(() => {
272
- I({});
277
+ N({});
273
278
  });
274
279
  }
275
280
  function X(e = !1) {
@@ -344,7 +349,7 @@ const vt = /* @__PURE__ */ io({
344
349
  resetSearchFormSorterItems: oe
345
350
  });
346
351
  const Je = n(
347
- () => B(o.loading) ? S.loading : o.loading
352
+ () => k(o.loading) ? S.loading : o.loading
348
353
  ), Qe = n(() => [
349
354
  d(),
350
355
  o.card ? null : d("wrapper"),
@@ -430,13 +435,13 @@ const vt = /* @__PURE__ */ io({
430
435
  refreshCells: ao,
431
436
  redrawRows: lo,
432
437
  _internalGridApi: n(() => s.value)
433
- }), (e, r) => (b(), W("div", {
438
+ }), (e, r) => (F(), W("div", {
434
439
  class: f(Qe.value),
435
440
  style: O(e.wrapperStyle)
436
441
  }, [
437
- t(B)(e.dataSource) && e.searchForm !== !1 && t(j).length > 0 ? (b(), W("div", {
442
+ t(k)(e.dataSource) && e.searchForm !== !1 && t(j).length > 0 ? (F(), W("div", {
438
443
  key: 0,
439
- class: f(e.card ? t(k)("search-wrapper") : null),
444
+ class: f(e.card ? t(x)("search-wrapper") : null),
440
445
  style: O(e.searchFormWrapperStyle)
441
446
  }, [
442
447
  G(t(bo).SearchForm, H(e.searchForm || {}, {
@@ -448,7 +453,7 @@ const vt = /* @__PURE__ */ io({
448
453
  onReset: t(K)
449
454
  }), co({
450
455
  default: ne(() => [
451
- (b(!0), W(mo, null, po(t(j), (a) => (b(), se(fo(a.renderNode), {
456
+ (F(!0), W(mo, null, po(t(j), (a) => (F(), se(fo(a.renderNode), {
452
457
  key: a.dataIndex
453
458
  }))), 128))
454
459
  ]),
@@ -463,11 +468,11 @@ const vt = /* @__PURE__ */ io({
463
468
  } : void 0
464
469
  ]), 1040, ["submit-loading", "onSubmit", "onReset"])
465
470
  ], 6)) : le("", !0),
466
- F("div", {
467
- class: f([t(k)("table-wrapper"), e.card ? t(k)("table-wrapper-card") : null]),
471
+ B("div", {
472
+ class: f([t(x)("table-wrapper"), e.card ? t(x)("table-wrapper-card") : null]),
468
473
  style: O(e.tableWrapperStyle)
469
474
  }, [
470
- F("div", {
475
+ B("div", {
471
476
  class: f(t(d)("header-wrapper"))
472
477
  }, [
473
478
  ie(e.$slots, "title", {
@@ -477,7 +482,7 @@ const vt = /* @__PURE__ */ io({
477
482
  clearAll: V
478
483
  })
479
484
  ], 2),
480
- F("div", {
485
+ B("div", {
481
486
  ref_key: "gridWrapperRef",
482
487
  ref: Re,
483
488
  class: f(t(d)("grid-wrapper"))
@@ -505,25 +510,25 @@ const vt = /* @__PURE__ */ io({
505
510
  "dom-layout": e.autoHeight ? "autoHeight" : "normal",
506
511
  onSortChanged: Fe,
507
512
  onGridReady: r[0] || (r[0] = (a) => s.value = a.api),
508
- onRowDataUpdated: I,
513
+ onRowDataUpdated: N,
509
514
  onRowSelected: He,
510
515
  onFirstDataRendered: Le,
511
516
  onRowClicked: to,
512
517
  onBodyScrollEnd: ro
513
518
  }
514
519
  ), null, 16, ["style", "row-data", "column-defs", "default-col-def", "row-selection", "selection-column-def", "get-row-height", "theme", "enable-browser-tooltips", "row-class-rules", "dom-layout"]),
515
- go(F("div", {
516
- class: f(t(k)("table-loading-wrapper"))
520
+ go(B("div", {
521
+ class: f(t(x)("table-loading-wrapper"))
517
522
  }, [
518
523
  G(t(vo), { delay: 300 })
519
524
  ], 2), [
520
525
  [wo, Je.value]
521
526
  ])
522
527
  ], 2),
523
- F("div", {
528
+ B("div", {
524
529
  class: f(t(d)("pagination-wrapper"))
525
530
  }, [
526
- e.pagination !== !1 ? (b(), se(t(Ro), H({
531
+ e.pagination !== !1 ? (F(), se(t(Ro), H({
527
532
  key: 0,
528
533
  class: t(d)("pagination")
529
534
  }, t(q).pagination, { onChange: Ye }), null, 16, ["class"])) : le("", !0)
@@ -4,7 +4,7 @@ import { TableProps } from '@aplus-frontend/antdv';
4
4
  import { ApFormSearchFormPopoverSorterItem, ApFormSearchFormProps } from '../ap-form/interface';
5
5
  import { Recordable } from '../type';
6
6
  import { SortOrder, TableRowSelection } from '@aplus-frontend/antdv/es/table/interface';
7
- import { ColDef, GridApi, ICellRendererParams, IRowNode, IsFullWidthRowParams, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowHeightParams, RowPinnedType, ScrollDirection } from 'ag-grid-community';
7
+ import { ColDef, GridApi, ICellRendererParams, IRowNode, IsFullWidthRowParams, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowHeightParams, RowPinnedType, ScrollDirection, ThemeDefaultParams } from 'ag-grid-community';
8
8
  import { InternalPagingType } from '../ap-table/hooks/use-table-paging-ng';
9
9
  export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueType extends ApTableValueTypes = ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType = ExtraValueType | ValueType> = MergedValueType extends ExtraValueType | ValueType ? Omit<ExtraProColumnType<RecordType>, 'sorter' | 'rowSpan' | 'customCell' | 'customHeaderCell' | 'minWidth' | 'width' | 'maxWidth' | 'className' | 'class' | 'colSpan'> & {
10
10
  children?: AgGridColumnType<RecordType, ExtraValueType, ValueType>[];
@@ -84,6 +84,7 @@ export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueTyp
84
84
  pinned?: boolean;
85
85
  rowIndex?: number;
86
86
  params?: ICellRendererParams;
87
+ path?: (string | number)[];
87
88
  }) => any;
88
89
  width?: number;
89
90
  minWidth?: number;
@@ -111,6 +112,11 @@ export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueTyp
111
112
  * 自定表头列类名
112
113
  */
113
114
  headerClass?: ColDef<RecordType>['headerClass'];
115
+ /**
116
+ * 当单元格可编辑时,记录表单项的namePath
117
+ * @private 仅限内部使用,请勿传递
118
+ */
119
+ _path?: (string | number)[];
114
120
  } : null;
115
121
  export type AgGridRowSelection<RecordType> = Pick<TableRowSelection<RecordType>, 'type' | 'fixed' | 'columnWidth' | 'defaultSelectedRowKeys'> & {
116
122
  /**
@@ -319,6 +325,11 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
319
325
  * @since 6.37.0
320
326
  */
321
327
  customRow?: AgGridCustomRowConfig;
328
+ /**
329
+ * 自定义主题
330
+ * @since 6.41.0
331
+ */
332
+ theme?: Partial<ThemeDefaultParams>;
322
333
  };
323
334
  export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
324
335
  /**
@@ -1,3 +1,4 @@
1
1
  import { Ref, ComputedRef } from 'vue';
2
+ import { AgGridProps } from './interface';
2
3
  import { Theme, ThemeDefaultParams } from 'ag-grid-community';
3
- export declare const useTheme: (size: Ref<"medium" | "mini" | undefined>, rowHeight: Ref<undefined | number>) => ComputedRef<Theme<ThemeDefaultParams>>;
4
+ export declare const useTheme: (size: Ref<"medium" | "mini" | undefined>, rowHeight: Ref<undefined | number>, customTheme: Ref<AgGridProps["theme"]>) => ComputedRef<Theme<ThemeDefaultParams>>;
@@ -1,16 +1,14 @@
1
- import { useToken as d } from "@aplus-frontend/antdv/es/theme/internal";
2
- import { themeQuartz as n } from "ag-grid-community";
3
- import { computed as c } from "vue";
4
- const h = (o, r) => {
5
- const [, a] = d();
6
- return c(() => {
7
- const t = o.value === "mini", e = a.value;
8
- return n.withParams({
1
+ import { useToken as n } from "@aplus-frontend/antdv/es/theme/internal";
2
+ import { themeQuartz as c } from "ag-grid-community";
3
+ import { computed as l } from "vue";
4
+ const h = (o, r, a) => {
5
+ const [, t] = n();
6
+ return l(() => {
7
+ const d = o.value === "mini", e = t.value;
8
+ return c.withParams({
9
9
  headerHeight: "36px",
10
10
  headerFontSize: "12px",
11
11
  dataFontSize: "12px",
12
- rowHeight: r.value,
13
- spacing: t ? "5px" : "6.5px",
14
12
  foregroundColor: e.colorTextBase,
15
13
  wrapperBorder: !1,
16
14
  rowBorder: { color: e.colorBorderSecondary },
@@ -21,7 +19,10 @@ const h = (o, r) => {
21
19
  headerBackgroundColor: "var(--ap-table-header-bg)",
22
20
  headerColumnResizeHandleHeight: "50%",
23
21
  headerColumnResizeHandleWidth: "1px",
24
- wrapperBorderRadius: "4px"
22
+ wrapperBorderRadius: "4px",
23
+ ...a.value || {},
24
+ rowHeight: r.value,
25
+ spacing: d ? "5px" : "6.5px"
25
26
  });
26
27
  });
27
28
  };
@@ -1,23 +1,23 @@
1
- import { createVNode as o, Fragment as p } from "vue";
2
- import { isArray as c, isUndefined as N, isString as b, isBoolean as F, isNumber as E, pick as x } from "lodash-unified";
3
- import { valueEnumToArray as O, objectToString as $, getTableTitle as v, getTableRenderType as w, getTableRenderProps as S, getTableCellRenderNode as V } from "../../ap-table/utils.mjs";
4
- import { noRenderAsFormItemValueList as B } from "../../ap-table/constants.mjs";
1
+ import { createVNode as u, Fragment as h } from "vue";
2
+ import { isArray as b, isUndefined as E, isString as o, isBoolean as x, isNumber as O, pick as F } from "lodash-unified";
3
+ import { valueEnumToArray as S, objectToString as $, getTableTitle as R, getTableRenderType as V, getTableRenderProps as B, getTableCellRenderNode as M } from "../../ap-table/utils.mjs";
4
+ import { noRenderAsFormItemValueList as _ } from "../../ap-table/constants.mjs";
5
5
  import "../../ap-table/components/paragraph-ellipsis/index.vue.mjs";
6
- import M from "../../ap-table/components/paragraph-ellipsis/index.vue2.mjs";
7
- function h(e, r) {
8
- if (r)
9
- return c(r) ? r.reduce((t, l) => t?.[l], e) : e?.[r];
6
+ import j from "../../ap-table/components/paragraph-ellipsis/index.vue2.mjs";
7
+ function T(e, t) {
8
+ if (t)
9
+ return b(t) ? t.reduce((r, n) => r?.[n], e) : e?.[t];
10
10
  }
11
- function A(e) {
12
- if (!N(e))
13
- return c(e) ? e.reduce((r, t) => b(t) ? `${r}${r ? "." : ""}${t}` : `${r}[${t}]`, "") : String(e);
11
+ function v(e) {
12
+ if (!E(e))
13
+ return b(e) ? e.reduce((t, r) => o(r) ? `${t}${t ? "." : ""}${r}` : `${t}[${r}]`, "") : String(e);
14
14
  }
15
- function R(e) {
15
+ function A(e) {
16
16
  if (e)
17
17
  return e === !0 ? "left" : e;
18
18
  }
19
- function j(e) {
20
- return F(e) ? {
19
+ function q(e) {
20
+ return x(e) ? {
21
21
  sortable: e
22
22
  } : e ? {
23
23
  sortable: !0,
@@ -27,117 +27,126 @@ function j(e) {
27
27
  sortable: !1
28
28
  };
29
29
  }
30
- function q(e) {
31
- let r;
32
- return F(e.filters) && e.valueEnum ? r = O(e.valueEnum) : r = e.filters, r?.map((t) => ({
33
- label: b(t.text) ? t.text : "",
34
- value: t.value
30
+ function I(e) {
31
+ let t;
32
+ return x(e.filters) && e.valueEnum ? t = S(e.valueEnum) : t = e.filters, t?.map((r) => ({
33
+ label: o(r.text) ? r.text : "",
34
+ value: r.value
35
35
  }));
36
36
  }
37
37
  function W(e) {
38
38
  if (e)
39
- return (r) => e(r.value, r.row);
39
+ return (t) => e(t.value, t.row);
40
40
  }
41
- function _(e, r) {
42
- return e ? E(e) ? {
43
- tooltip: r,
41
+ function k(e, t) {
42
+ return e ? O(e) ? {
43
+ tooltip: t,
44
44
  rows: e
45
45
  } : e === !0 || e === "tooltip" ? {
46
- tooltip: r,
46
+ tooltip: t,
47
47
  rows: 1
48
48
  } : {
49
49
  tooltip: null,
50
50
  rows: 1,
51
- htmlTitle: e === "title" ? r : ""
51
+ htmlTitle: e === "title" ? t : ""
52
52
  } : !1;
53
53
  }
54
- function k(e, r, t) {
55
- if (B.includes(e.valueType))
56
- return t;
54
+ function z(e, t, r) {
55
+ if (_.includes(e.valueType))
56
+ return r;
57
57
  if (e.copyable || e.ellipsis) {
58
- const l = _(e.ellipsis, r), i = $(r);
59
- return o(M, {
58
+ const n = k(e.ellipsis, t), i = $(t);
59
+ return u(j, {
60
60
  rawValue: i,
61
61
  copyable: e.copyable,
62
- ellipsis: l,
63
- content: t
62
+ ellipsis: n,
63
+ content: r
64
64
  }, null);
65
65
  }
66
- return t;
66
+ return r;
67
+ }
68
+ function c(e, t, r) {
69
+ const n = F(e, ["width", "minWidth", "align"]);
70
+ return n.field = v(e.dataIndex), n.fixed = A(e.fixed), n.slots = {
71
+ header: () => R(e, r, void 0, t)
72
+ }, n.headerAlign = e.align, n.showOverflow = !1, n.showFooterOverflow = !1, n;
67
73
  }
68
- function T(e, r, t) {
69
- const l = x(e, ["width", "minWidth", "align"]);
70
- return l.field = A(e.dataIndex), l.fixed = R(e.fixed), l.slots = {
71
- header: () => v(e, t, void 0, r)
72
- }, l.headerAlign = e.align, l.showOverflow = !1, l.showFooterOverflow = !1, l;
74
+ function D(e, t, r) {
75
+ if (r)
76
+ return o(r) ? e[r] : r(e, t);
73
77
  }
74
- const z = ({
78
+ const G = ({
75
79
  value: e,
76
- ...r
77
- }, t, l, i = !0) => {
78
- const s = w(t), d = S({
79
- ...t,
80
+ ...t
81
+ }, r, n, i = !0) => {
82
+ const s = V(r), d = B({
83
+ ...r,
80
84
  valueType: s
81
85
  }, {
82
86
  value: e,
83
- ...r
84
- }), n = V(s, d, r.record, l), a = t.renderText?.({
85
- value: e,
86
- ...r
87
- }) || e, u = t.renderText ? o(p, null, [t.renderText?.({
87
+ ...t
88
+ }), l = M(s, d, t.record, n), a = r.renderText?.({
88
89
  value: e,
89
- ...r
90
- })]) : n;
91
- let f = i ? k(t, a, u) : u;
92
- return t.customRender && (f = t.customRender({
90
+ ...t
91
+ }) || e, p = r.renderText ? u(h, null, [r.renderText?.({
93
92
  value: e,
94
- ...r,
95
- column: t,
96
- originalNode: f,
97
- originalText: a
98
- })), o(p, null, [f]);
93
+ ...t
94
+ })]) : l;
95
+ let f = i ? z(r, a, p) : p;
96
+ if (r.customRender) {
97
+ const N = r._path || [], w = D(t.record, t.rowIndex, t.params.rowKey);
98
+ f = r.customRender({
99
+ value: e,
100
+ ...t,
101
+ column: r,
102
+ originalNode: f,
103
+ originalText: a,
104
+ path: [...N, String(w)]
105
+ });
106
+ }
107
+ return u(h, null, [f]);
99
108
  };
100
- function y(e, r, t, l) {
101
- const i = x(e, ["width", "minWidth", "align", "resizable", "className", "headerClassName", "footerClassName", "treeNode"]);
102
- i.field = A(e.dataIndex), i.fixed = R(e.fixed), i.headerAlign = e.align, i.footerAlign = e.align, i.showOverflow = !1, i.showFooterOverflow = !1, Object.assign(i, j(e.sorter)), i.filters = q(e), i.filterMultiple = e.filterMultiple, i.filterMethod = W(e.onFilter);
109
+ function y(e, t, r, n) {
110
+ const i = F(e, ["width", "minWidth", "align", "resizable", "className", "headerClassName", "footerClassName", "treeNode"]);
111
+ i.field = v(e.dataIndex), i.fixed = A(e.fixed), i.headerAlign = e.align, i.footerAlign = e.align, i.showOverflow = !1, i.showFooterOverflow = !1, Object.assign(i, q(e.sorter)), i.filters = I(e), i.filterMultiple = e.filterMultiple, i.filterMethod = W(e.onFilter);
103
112
  const s = ({
104
113
  row: d,
105
- rowIndex: n
106
- }) => z({
107
- value: h(d, e.dataIndex),
108
- text: h(d, e.dataIndex),
114
+ rowIndex: l
115
+ }) => G({
116
+ value: T(d, e.dataIndex),
117
+ text: T(d, e.dataIndex),
109
118
  record: d,
110
- index: n,
111
- renderIndex: n,
119
+ index: l,
120
+ renderIndex: l,
112
121
  column: e
113
- }, e, l);
122
+ }, e, n);
114
123
  return i.slots = {
115
- header: () => v(e, t, void 0, r),
124
+ header: () => R(e, r, void 0, t),
116
125
  default: s,
117
126
  footer: s
118
127
  }, e.html && (delete i.slots.default, delete i.slots.footer, i.type = "html"), e.seq && (i.type = "seq", i.slots = {}), i;
119
128
  }
120
- function J(e, r, t, l) {
129
+ function X(e, t, r, n) {
121
130
  if (!e.children?.length)
122
- return y(e, r, t, l);
131
+ return y(e, t, r, n);
123
132
  function i(d) {
124
- return d.map((n) => {
125
- if (n.children?.length) {
126
- const a = T(n, r, t);
127
- return a.children = i(n.children), a;
133
+ return d.map((l) => {
134
+ if (l.children?.length) {
135
+ const a = c(l, t, r);
136
+ return a.children = i(l.children), a;
128
137
  }
129
- return y(n, r, t, l);
138
+ return y(l, t, r, n);
130
139
  });
131
140
  }
132
- const s = T(e, r, t);
141
+ const s = c(e, t, r);
133
142
  return s.children = i(e.children), s;
134
143
  }
135
144
  export {
136
- z as contentCustom,
137
- A as dataIndexToField,
138
- h as getValueByDataIndex,
139
- J as transformCol,
140
- R as transformFixed,
141
- T as transformToColGroup,
145
+ G as contentCustom,
146
+ v as dataIndexToField,
147
+ T as getValueByDataIndex,
148
+ X as transformCol,
149
+ A as transformFixed,
150
+ c as transformToColGroup,
142
151
  y as transformToColumn
143
152
  };
@@ -1,2 +1,2 @@
1
- declare const _default: "6.40.0";
1
+ declare const _default: "6.41.0";
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
- const e = "6.40.0";
1
+ const e = "6.41.0";
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 e=require("vue"),g=require("../../ap-form/index.js"),r=require("lodash-unified");require("../../config-provider/index.js");const j=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const A=require("../hooks/use-editable-form-item-api.js"),D=require("../../ap-form/context.js"),P=require("../../ap-form/utils/get.js"),k=require("../utils.js"),L=require("../../ap-form/hooks/use-watch.js"),M=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../config-provider/hooks/use-global-config.js"),H=require("../index.vue.js"),K=e.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:{},rowSelection:{type:Boolean},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:{},columns:{},defaultValue:{},onChange:{},maxLength:{},onFieldChange:{},label:{},name:{},formItem:{}},setup(w,{expose:y}){const h=e.useSlots(),t=w,{b}=z.useNamespace("editable-aggrid"),s=e.ref(),{internalInstance:u,model:C}=D.useInjectForm(),i=k.getShadowName(t.name);let c;e.onMounted(()=>{const o=t.formItem?.initialValue??P.getModelValue(e.unref(C),t.name);c=r.cloneDeep(o),p(o,"suffix")});const n=e.ref([]),R=L.useWatch(t.name);e.watch(()=>R.value,o=>{r.isEqual(o,n.value)||m(o??c)},{deep:!0});const v=G.useGlobalConfig("valueTypeMap"),x=j.useGetEditableColumns(t,v,i),{add:B,addMultiple:p,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,refreshRowIds:d}=A.useEditableFormItemApi(t,u,n,i);function N(){const o=s.value?._internalGridApi;if(!d.value?.length||!o)return;const a=d.value.map(l=>o.getRowNode(l)).filter(l=>!!l);o.refreshCells({rowNodes:a,force:!0}),d.value=[]}function m(o){n.value=o;const a=M.arrayToObject(o,t.rowKey);u?.setFieldValue(t.name,o),u?.setFieldValue(i,a)}function V(o){const a=o==="end"?n.value.length-1:o;s.value?.scrollToRow(a)}return y({add:B,addMultiple:p,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,setTableData:m,scrollTo:V}),(o,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(g.ApForm).FormItem,{hidden:"",name:o.name},null,8,["name"]),e.createVNode(e.unref(g.ApForm).FormItem,e.mergeProps(e.unref(r.omit)(o.formItem,"initialValue"),{label:o.label}),{default:e.withCtx(()=>[e.createVNode(H.default,e.mergeProps(e.unref(r.omit)(t,["name","maxLength","onChange","defaultValue","formItem"]),{ref_key:"tableRef",ref:s,class:e.unref(b)(),size:"mini",columns:e.unref(x),"data-source":n.value,"search-form":!1,onUpdate:N}),e.createSlots({_:2},[e.renderList(h,(l,f)=>({name:f,fn:e.withCtx(T=>[e.renderSlot(o.$slots,f,e.normalizeProps(e.guardReactiveProps(T||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["label"])],64))}});exports.default=K;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("../../ap-form/index.js"),r=require("lodash-unified");require("../../config-provider/index.js");const j=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const A=require("../hooks/use-editable-form-item-api.js"),D=require("../../ap-form/context.js"),P=require("../../ap-form/utils/get.js"),k=require("../utils.js"),L=require("../../ap-form/hooks/use-watch.js"),M=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../config-provider/hooks/use-global-config.js"),H=require("../index.vue.js"),K=e.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:{},rowSelection:{type:Boolean},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:{},columns:{},defaultValue:{},onChange:{},maxLength:{},onFieldChange:{},label:{},name:{},formItem:{}},setup(w,{expose:y}){const h=e.useSlots(),t=w,{b}=z.useNamespace("editable-aggrid"),s=e.ref(),{internalInstance:u,model:C}=D.useInjectForm(),i=k.getShadowName(t.name);let c;e.onMounted(()=>{const o=t.formItem?.initialValue??P.getModelValue(e.unref(C),t.name);c=r.cloneDeep(o),m(o,"suffix")});const n=e.ref([]),R=L.useWatch(t.name);e.watch(()=>R.value,o=>{r.isEqual(o,n.value)||p(o??c)},{deep:!0});const v=G.useGlobalConfig("valueTypeMap"),x=j.useGetEditableColumns(t,v,i),{add:B,addMultiple:m,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,refreshRowIds:d}=A.useEditableFormItemApi(t,u,n,i);function N(){const o=s.value?._internalGridApi;if(!d.value?.length||!o)return;const a=d.value.map(l=>o.getRowNode(l)).filter(l=>!!l);o.refreshCells({rowNodes:a,force:!0}),d.value=[]}function p(o){n.value=o;const a=M.arrayToObject(o,t.rowKey);u?.setFieldValue(t.name,o),u?.setFieldValue(i,a)}function V(o){const a=o==="end"?n.value.length-1:o;s.value?.scrollToRow(a)}return y({add:B,addMultiple:m,remove:S,removeByKey:q,getRowData:_,getRowsData:E,setRowData:F,clear:I,setTableData:p,scrollTo:V}),(o,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(g.ApForm).FormItem,{hidden:"",name:o.name},null,8,["name"]),e.createVNode(e.unref(g.ApForm).FormItem,e.mergeProps(e.unref(r.omit)(o.formItem,"initialValue"),{label:o.label}),{default:e.withCtx(()=>[e.createVNode(H.default,e.mergeProps(e.unref(r.omit)(t,["name","maxLength","onChange","defaultValue","formItem"]),{ref_key:"tableRef",ref:s,class:e.unref(b)(),size:"mini",columns:e.unref(x),"data-source":n.value,"search-form":!1,onUpdate:N}),e.createSlots({_:2},[e.renderList(h,(l,f)=>({name:f,fn:e.withCtx(T=>[e.renderSlot(o.$slots,f,e.normalizeProps(e.guardReactiveProps(T||{})))])}))]),1040,["class","columns","data-source"])]),_:3},16,["label"])],64))}});exports.default=K;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../../ap-form/index.js"),s=require("lodash-unified");require("../../config-provider/index.js");require("../../hooks/index.js");const O=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const P=require("../hooks/use-editable-api.js"),c=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../hooks/useControllableValue.js"),H=require("../../config-provider/hooks/use-global-config.js"),I=require("../index.vue.js"),L=e.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:{},rowSelection:{type:Boolean},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:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(m,{expose:y,emit:w}){const g=e.useSlots(),o=m,{b}=z.useNamespace("editable-aggrid"),h=w,u=e.ref(),{value:r,updateValue:p}=G.useControllableValue(o,h),l=e.ref(),v=d.ApForm.useWatch(o.name,l);e.watch(r,a=>{const t=c.arrayToObject(a,o.rowKey);s.isEqual(t,e.unref(v))||l.value?.setFieldValue(o.name,t)},{deep:!0});const C=H.useGlobalConfig("valueTypeMap"),R=O.useGetEditableColumns(o,C),{add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,refreshRowIds:i}=P.useEditableApi(o,l,r,p);function A(){const a=u.value?._internalGridApi;if(!i.value?.length||!a)return;const t=i.value.map(n=>a.getRowNode(n)).filter(n=>!!n);a.refreshCells({rowNodes:t,force:!0}),i.value=[]}function N(){l.value?.resetFields()}function V(a){return a?(s.isArray(a)?a:[a]).map(n=>s.isArray(n)?[o.name,...n]:[o.name,n]):void 0}async function j(a,t){return(await l.value?.validateFields(V(a),t))?.[o.name]}function k(a){p(a);const t=c.arrayToObject(a,o.rowKey);l.value?.setFieldValue(o.name,t)}function D(a){const t=a==="end"?r.value.length-1:a;u.value?.scrollToRow(t)}return y({resetFields:N,validateFields:j,add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,setTableData:k,scrollTo:D}),(a,t)=>(e.openBlock(),e.createBlock(e.unref(d.ApForm),{ref_key:"formRef",ref:l,"initial-values":{[o.name]:e.unref(c.arrayToObject)(e.unref(r),o.rowKey)},style:{height:"100%"}},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ApForm).FormItem,{name:a.name,"no-style":""},{default:e.withCtx(()=>[e.createVNode(I.default,e.mergeProps(e.unref(s.omit)(o,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:u,class:e.unref(b)(),size:"mini",columns:e.unref(R),"data-source":e.unref(r),"search-form":!1,onUpdate:A}),e.createSlots({_:2},[e.renderList(g,(n,f)=>({name:f,fn:e.withCtx(K=>[e.renderSlot(a.$slots,f,e.normalizeProps(e.guardReactiveProps(K||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=L;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../../ap-form/index.js"),s=require("lodash-unified");require("../../config-provider/index.js");require("../../hooks/index.js");const O=require("../hooks/use-editable-columns.js");require("../index.vue2.js");const P=require("../hooks/use-editable-api.js"),c=require("./utils.js"),z=require("../../config-provider/hooks/use-namespace.js"),G=require("../../hooks/useControllableValue.js"),H=require("../../config-provider/hooks/use-global-config.js"),I=require("../index.vue.js"),L=e.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:{},rowSelection:{type:Boolean},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:{},columns:{},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},maxLength:{},name:{default:"ap-editable-table-inner-name"},onFieldChange:{}},emits:["update:value"],setup(m,{expose:y,emit:w}){const g=e.useSlots(),o=m,{b}=z.useNamespace("editable-aggrid"),h=w,u=e.ref(),{value:r,updateValue:p}=G.useControllableValue(o,h),l=e.ref(),v=d.ApForm.useWatch(o.name,l);e.watch(r,a=>{const t=c.arrayToObject(a,o.rowKey);s.isEqual(t,e.unref(v))||l.value?.setFieldValue(o.name,t)},{deep:!0});const C=H.useGlobalConfig("valueTypeMap"),R=O.useGetEditableColumns(o,C),{add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,refreshRowIds:i}=P.useEditableApi(o,l,r,p);function A(){const a=u.value?._internalGridApi;if(!i.value?.length||!a)return;const t=i.value.map(n=>a.getRowNode(n)).filter(n=>!!n);a.refreshCells({rowNodes:t,force:!0}),i.value=[]}function N(){l.value?.resetFields()}function V(a){return a?(s.isArray(a)?a:[a]).map(n=>s.isArray(n)?[o.name,...n]:[o.name,n]):void 0}async function j(a,t){return(await l.value?.validateFields(V(a),t))?.[o.name]}function k(a){p(a);const t=c.arrayToObject(a,o.rowKey);l.value?.setFieldValue(o.name,t)}function D(a){const t=a==="end"?r.value.length-1:a;u.value?.scrollToRow(t)}return y({resetFields:N,validateFields:j,add:x,addMultiple:B,remove:_,removeByKey:S,getRowData:q,getRowsData:F,setRowData:E,clear:T,setTableData:k,scrollTo:D}),(a,t)=>(e.openBlock(),e.createBlock(e.unref(d.ApForm),{ref_key:"formRef",ref:l,"initial-values":{[o.name]:e.unref(c.arrayToObject)(e.unref(r),o.rowKey)},style:{height:"100%"}},{default:e.withCtx(()=>[e.createVNode(e.unref(d.ApForm).FormItem,{name:a.name,"no-style":""},{default:e.withCtx(()=>[e.createVNode(I.default,e.mergeProps(e.unref(s.omit)(o,["name","value","onUpdate:value","maxLength","onChange","defaultValue"]),{ref_key:"tableRef",ref:u,class:e.unref(b)(),size:"mini",columns:e.unref(R),"data-source":e.unref(r),"search-form":!1,onUpdate:A}),e.createSlots({_:2},[e.renderList(g,(n,f)=>({name:f,fn:e.withCtx(K=>[e.renderSlot(a.$slots,f,e.normalizeProps(e.guardReactiveProps(K||{})))])}))]),1040,["class","columns","data-source"])]),_:3},8,["name"])]),_:3},8,["initial-values"]))}});exports.default=L;
@@ -38,6 +38,7 @@ export type EditableAgGridColumnType<RecordType = any, ExtraValueType = 'text',
38
38
  column: AgGridColumnType<RecordType>;
39
39
  editable?: boolean;
40
40
  originalNode?: VNode;
41
+ path: (string | number)[];
41
42
  }) => any;
42
43
  /**
43
44
  * 是否渲染必填标记(只渲染标记不生成校验规则)
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("../../ap-table/utils.js"),T=require("../renderer/index.js"),o=require("lodash-unified"),d=require("vue");require("../components/body-cell/index.vue.js");require("../components/header-cell/index.vue.js");require("../components/tooltip/index.vue.js");require("../../config-provider/index.js");const q=require("../../ap-grid/utils/col.js"),w=require("../../utils/index.js"),P=require("../../config-provider/hooks/use-global-config.js"),S=require("../../config-provider/hooks/use-namespace.js"),D=require("../components/body-cell/index.vue2.js"),R=require("../components/tooltip/index.vue2.js"),C=require("../components/header-cell/index.vue2.js");function I(t){return o.isNumber(t)&&t>1}function G(t,l){if(l.bodyCellTooltip)return o.isFunction(l.bodyCellTooltip)?l.bodyCellTooltip(t.value,t.data):l.bodyCellTooltip;if(l.renderText)return l.renderText({value:t.value,record:t.data,column:l,text:t.value});const u=l.valueType||"text",p=T.rendererMap[u];if(p){const f=x.getTableRenderProps({...l,valueType:u},{value:t.value,text:t.value,record:t.data,column:t.column,rowIndex:t.node?.rowIndex,pinned:t.node?.rowPinned});return p(f)}return x.objectToString(t.value)}const M=(t,l,u)=>{const p=P.useGlobalConfig("valueTypeMap"),c=d.ref(),{em:f}=S.useNamespace("ag-grid"),y=r=>{const i={cellRenderer:D.default,cellRendererParams:{column:r,extraValueType:d.unref(p)}};if(r.customRender)return i;if(r.renderText)return{valueFormatter:s=>r.renderText({value:s.value,record:s.data,column:r,text:s.value})};const a=r.valueType||"text",e=T.rendererMap[a];return e?{valueFormatter:s=>{const n=x.getTableRenderProps({...r,valueType:a},{value:s.value,text:s.value,record:s.data,column:s.column,rowIndex:s.node?.rowIndex,pinned:s.node?.rowPinned});return e(n)}}:i},b=r=>{const i={},a=r.bodyCellTooltip||!r.customRender&&(r.ellipsis===!0||r.ellipsis==="tooltip"||o.isNumber(r.ellipsis)),e=o.isNumber(r.ellipsis)&&r.ellipsis>1,s=o.isNumber(r.ellipsis)?r.ellipsis:1;return i.tooltipValueGetter=a?n=>G(n,r):void 0,i.wrapText=!r.ellipsis||e,i.cellStyle={"--ag-grid-line-clamp":s},i.tooltipComponent=R.default,i.tooltipComponentParams={lineClamp:s,gridWrapperRef:c},i},h=d.computed(()=>{const r=d.unref(t);function i(a){return a.map(e=>{const s={field:q.dataIndexToField(e.dataIndex),colId:w.isDef(e.key)?String(e.key):void 0,sortable:!!e.sorter,comparator:e.sorter===!0?()=>0:e.sorter,headerComponentParams:{column:e},resizable:e.resizable,width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth,flex:e.width?void 0:1,pinned:e.fixed||null,colSpan:e.colSpan,cellClass:u(n=>{const v=e.cellClass||"",g=o.isFunction(v)?v(n.data,n.node):v;return[`${f("cell",e.align||"left")}`,I(e.ellipsis)?f("cell","multiline"):null,g].flat().filter(Boolean)}),headerStyle:e.headerStyle,headerClass:e.headerClass,autoHeight:!0,...b(e),...y(e)};return e.children?.length?{...s,headerGroupComponent:C.default,headerGroupComponentParams:{column:e},children:i(e.children)}:s})}return i(r)}),_=d.computed(()=>({headerComponent:C.default,resizable:l.columnResizable,suppressMovable:!0,cellDataType:!1}));return{columnDefs:h,defaultColDef:_,gridWrapperRef:c}};exports.useColumnsDef=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("../../ap-table/utils.js"),T=require("../renderer/index.js"),o=require("lodash-unified"),d=require("vue");require("../components/body-cell/index.vue.js");require("../components/header-cell/index.vue.js");require("../components/tooltip/index.vue.js");require("../../config-provider/index.js");const q=require("../../ap-grid/utils/col.js"),w=require("../../utils/index.js"),P=require("../../config-provider/hooks/use-global-config.js"),S=require("../../config-provider/hooks/use-namespace.js"),D=require("../components/body-cell/index.vue2.js"),R=require("../components/tooltip/index.vue2.js"),C=require("../components/header-cell/index.vue2.js");function I(t){return o.isNumber(t)&&t>1}function G(t,i){if(i.bodyCellTooltip)return o.isFunction(i.bodyCellTooltip)?i.bodyCellTooltip(t.value,t.data):i.bodyCellTooltip;if(i.renderText)return i.renderText({value:t.value,record:t.data,column:i,text:t.value});const u=i.valueType||"text",p=T.rendererMap[u];if(p){const f=x.getTableRenderProps({...i,valueType:u},{value:t.value,text:t.value,record:t.data,column:t.column,rowIndex:t.node?.rowIndex,pinned:t.node?.rowPinned});return p(f)}return x.objectToString(t.value)}const M=(t,i,u)=>{const p=P.useGlobalConfig("valueTypeMap"),c=d.ref(),{em:f}=S.useNamespace("ag-grid"),y=r=>{const l={cellRenderer:D.default,cellRendererParams:{column:r,extraValueType:d.unref(p),rowKey:i.rowKey}};if(r.customRender)return l;if(r.renderText)return{valueFormatter:s=>r.renderText({value:s.value,record:s.data,column:r,text:s.value})};const a=r.valueType||"text",e=T.rendererMap[a];return e?{valueFormatter:s=>{const n=x.getTableRenderProps({...r,valueType:a},{value:s.value,text:s.value,record:s.data,column:s.column,rowIndex:s.node?.rowIndex,pinned:s.node?.rowPinned});return e(n)}}:l},b=r=>{const l={},a=r.bodyCellTooltip||!r.customRender&&(r.ellipsis===!0||r.ellipsis==="tooltip"||o.isNumber(r.ellipsis)),e=o.isNumber(r.ellipsis)&&r.ellipsis>1,s=o.isNumber(r.ellipsis)?r.ellipsis:1;return l.tooltipValueGetter=a?n=>G(n,r):void 0,l.wrapText=!r.ellipsis||e,l.cellStyle={"--ag-grid-line-clamp":s},l.tooltipComponent=R.default,l.tooltipComponentParams={lineClamp:s,gridWrapperRef:c},l},h=d.computed(()=>{const r=d.unref(t);function l(a){return a.map(e=>{const s={field:q.dataIndexToField(e.dataIndex),colId:w.isDef(e.key)?String(e.key):void 0,sortable:!!e.sorter,comparator:e.sorter===!0?()=>0:e.sorter,headerComponentParams:{column:e},resizable:e.resizable,width:e.width,minWidth:e.minWidth,maxWidth:e.maxWidth,flex:e.width?void 0:1,pinned:e.fixed||null,colSpan:e.colSpan,cellClass:u(n=>{const v=e.cellClass||"",g=o.isFunction(v)?v(n.data,n.node):v;return[`${f("cell",e.align||"left")}`,I(e.ellipsis)?f("cell","multiline"):null,g].flat().filter(Boolean)}),headerStyle:e.headerStyle,headerClass:e.headerClass,autoHeight:!0,...b(e),...y(e)};return e.children?.length?{...s,headerGroupComponent:C.default,headerGroupComponentParams:{column:e},children:l(e.children)}:s})}return l(r)}),_=d.computed(()=>({headerComponent:C.default,resizable:i.columnResizable,suppressMovable:!0,cellDataType:!1}));return{columnDefs:h,defaultColDef:_,gridWrapperRef:c}};exports.useColumnsDef=M;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("vue"),_=require("lodash-unified"),I=require("../../editable-table/utils.js"),C=require("../../ap-table/utils.js"),F=require("../../ap-grid/utils/editable.js"),$=require("../../utils/index.js"),m=require("../editable/utils.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){return!e.editable||e.children?.length?{}:{customRender({value:o,originalNode:d,params:l,...i}){const u=_.isFunction(e.editable)?e.editable(i.text,i.record,i.rowIndex):!!e.editable;let c=d;if(u){const f=C.updateFormProps(e,C.getFieldProps(e.fieldProps,{value:o,...i})),x={};t.onFieldChange&&(x[`onUpdate:${f.valuePropName||"value"}`]=y=>t.onFieldChange?.(i.rowIndex,e.dataIndex,y));const N=_.isArray(e.dataIndex)?e.dataIndex:[e.dataIndex],k=n?[n]:_.isArray(t.name)?t.name:[t.name],w=m.getRowKey(i.record,i.rowIndex,t.rowKey),E={name:[...k,String(w),...N],...f||{},field:{style:"width: 100%",...f?.field||{},...x,class:I.mergeClass("is-editable",f.class)}};c=F.getFinalEditableNode(e,E,i.record,h.unref(r))}e.customRender&&(c=e.customRender({value:o,...i,editable:u,originalNode:c,index:i.rowIndex,renderIndex:i.rowIndex}));const a=l.node,s=l.column.getColId(),g=a.__prevEditable?.[s];return!a.__skipNextRefresh?.[s]&&$.isDef(g)&&g!==u&&(R(a,s,!0),setTimeout(()=>{l?.api.refreshCells({rowNodes:[l.node],columns:[l.column.getColId()],force:!0}),R(a,s,!1)},0)),M(a,s,u),c}}}return h.computed(()=>{const e=t.columns;if(!e)return[];function b(o){return o.map(d=>({...d,_requireMark:I.getColumnIsRequired(d),children:b(d.children||[]),...v(d)}))}return b(e)})};exports.default=q;exports.useGetEditableColumns=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("vue"),b=require("lodash-unified"),C=require("../../editable-table/utils.js"),R=require("../../ap-table/utils.js"),F=require("../../ap-grid/utils/editable.js"),m=require("../../utils/index.js"),M=require("../editable/utils.js");function q(t,r,n){t.__skipNextRefresh?t.__skipNextRefresh[r]=n:t.__skipNextRefresh={[r]:n}}function S(t,r,n){t.__prevEditable?t.__prevEditable[r]=n:t.__prevEditable={[r]:n}}const v=(t,r,n)=>{function N(e){const u=e.editable,a=n?[n]:b.isArray(t.name)?t.name:[t.name];return!u||e.children?.length?{_path:[...a]}:{customRender({value:d,originalNode:k,params:l,...i}){const c=b.isFunction(e.editable)?e.editable(i.text,i.record,i.rowIndex):!!e.editable;let f=k;const w=b.isArray(e.dataIndex)?e.dataIndex:[e.dataIndex],g=M.getRowKey(i.record,i.rowIndex,t.rowKey);if(c){const _=R.updateFormProps(e,R.getFieldProps(e.fieldProps,{value:d,...i})),x={};t.onFieldChange&&(x[`onUpdate:${_.valuePropName||"value"}`]=y=>t.onFieldChange?.(i.rowIndex,e.dataIndex,y));const E={name:[...a,String(g),...w],..._||{},field:{style:"width: 100%",..._?.field||{},...x,class:C.mergeClass("is-editable",_.class)}};f=F.getFinalEditableNode(e,E,i.record,I.unref(r))}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,o=l.column.getColId(),h=s.__prevEditable?.[o];return!s.__skipNextRefresh?.[o]&&m.isDef(h)&&h!==c&&(q(s,o,!0),setTimeout(()=>{l?.api.refreshCells({rowNodes:[l.node],columns:[l.column.getColId()],force:!0}),q(s,o,!1)},0)),S(s,o,c),f},_path:[...a]}}return I.computed(()=>{const e=t.columns;if(!e)return[];function u(a){return a.map(d=>({...d,_requireMark:C.getColumnIsRequired(d),children:u(d.children||[]),...N(d)}))}return u(e)})};exports.default=v;exports.useGetEditableColumns=v;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),$e=require("ag-grid-vue3"),$=require("ag-grid-community"),je=require("./utils.js"),j=require("@aplus-frontend/antdv"),i=require("lodash-unified");require("../config-provider/index.js");const Je=require("../ap-form/index.js"),Qe=require("../ap-table/utils.js"),Xe=require("../ap-table/hooks/use-table-paging-ng.js"),Ye=require("./hooks/use-row-selection.js"),Ze=require("./context.js"),eo=require("../ap-table/context.js"),B=require("../ap-grid/constants.js"),oo=require("@aplus-frontend/antdv/es/theme/internal"),to=require("./theme.js"),ro=require("./hooks/use-columns.js"),no=require("./hooks/use-columns-def.js"),ao=require("../utils/index.js"),lo=require("../utils/slot.js"),so=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const uo=require("./hooks/use-virtual-config.js"),io=require("./hooks/use-pinned-row.js"),co=require("./hooks/use-selection-col-def.js");require("./components/row/index.vue.js");const fo=require("../config-provider/hooks/use-namespace.js"),po=require("../config-provider/hooks/use-global-config.js"),mo=require("./components/row/index.vue2.js"),go=require("./components/empty/index.vue2.js"),wo=o.defineComponent({name:"AgGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onChange:{},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:{},columns:{},rowSelection:{type:Boolean},card:{type:Boolean},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{}},setup(J,{expose:Q}){$.ModuleRegistry.registerModules([$.AllCommunityModule]);const t=J,T=o.useSlots(),{e:R,b:c,be:X}=fo.useNamespace("ag-grid"),C=o.ref(t.size),Y=to.useTheme(C,o.toRef(t,"rowHeight")),Z=uo.default(o.toRef(t,"virtual")),{rowPinnedGridConfig:E,getRowPinnedCellClass:ee}=io.usePinnedRow(o.toRef(t,"summary")),oe=po.useGlobalConfig("apGrid"),l=o.ref(),[,te]=oo.useToken();let y=!!t.dataSource;const D=so.useSearchForm(t),{shownColumns:m,columns:V,columnKeys:re,getTargetColumnByKey:ne}=ro.useColumns(t),{defaultColDef:ae,columnDefs:le,gridWrapperRef:se}=no.useColumnsDef(V,t,ee),b=o.ref({});Ze.useProvideSorter({sorter:b,setSorter(e){b.value=e}});const ue={asc:"ascend",desc:"descend"};function ie(){const e=l.value.getColumns()?.filter(d=>d.getSort()!==void 0),r=o.unref(b)||{};let n=e?.[0];const s=Object.keys(r);if(s.length&&s.every(d=>r[d]===null)){const d=Object.keys(r)[0];d&&(n=l.value?.getColumn(d))}if(!n)return;const u=n.getColDef(),f=n.getSort(),p=ne(u.colId);P(void 0,void 0,{column:u,field:p?.field??u.field??u.colId,order:f?ue[f]:null})}const ce=o.computed(()=>Qe.recursionApColumns(o.unref(m),e=>{if(e.sorter===!0)return e.field??e.dataIndex??e.key}).filter(Boolean)),de=()=>{b.value={};const e=l.value;if(!e)return;const r=e.getColumnState()?.map(n=>({...n,sort:null}));e.applyColumnState({state:r})},fe=o.computed(()=>ao.isDef(t.manual)?t.manual:lo.getValidVNodeList(T.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:g,submit:F,reset:x,data:w,tableProps:z,handleTableChangeOptional:P,submitWith:A,refresh:K,getPaging:pe,setPaging:me,setDataSource:ge}=Xe.useTablePaging({async request(e){if(y=!1,S.value&&!S.value.preserveSelectedRowKeys&&i.isUndefined(t.dataSource)&&I(),!i.isUndefined(t.dataSource)){const n=e.pageSize*(e.current-1);return{data:(t.pagination===!1?t.dataSource:t.dataSource.slice(n,n+e.pageSize))||[],total:t.dataSource.length||0}}const r=await t.request?.(e);return{data:r?.data||[],total:r?.total||0}},namespace:"ap-grid",filterFields:o.ref([]),params:o.toRef(t,"params"),defaultData:t.defaultData,manual:o.unref(fe),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ce,onClickReset:de}),S=o.computed(()=>{const e=t.rowSelection||oe.value?.rowSelection;if(e)return e===!0?B.DEFAULT_ROW_SELECTION_CONFIG:{...B.DEFAULT_ROW_SELECTION_CONFIG,...e}}),we=co.default(t,m),Se=o.computed(()=>i.isUndefined(t.dataSource)?w.records:t.dataSource),{select:Ce,unSelect:ye,selectedRows:N,selectedRowKeys:he,clearAll:ve,selectMultiByKeys:Re,selectMulti:be,unSelectMulti:ke}=Ye.default({...S.value,dataSource:Se,rowKey:t.rowKey}),Be={checkbox:"multiRow",radio:"singleRow"},Fe=o.computed(()=>{const e=S.value;if(!e)return;const{type:r="checkbox",disabled:n}=e;return{mode:Be[r],isRowSelectable:s=>n?!n(s.data):!0,hideDisabledCheckboxes:e.hideDisabled??!1}});function q(e){return i.isFunction(t.rowKey)?t.rowKey(e):e[t.rowKey]}const k=({api:e=l.value})=>{if(t.onUpdate?.(),!S.value)return;const r=N.value||[];y=!1;const n=[];e.forEachNode(s=>{const h=s.data,u=q(h),f=s.isSelected();r.find(p=>q(p)===u)?!f&&n.push(s):f&&s.setSelected(!1)}),e.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{y=!0},0)},xe=e=>{y&&(e.node.isSelected()?Ce(e.data):ye(e.data),i.isFunction(S.value?.tooltip)&&e.api.refreshCells({rowNodes:[e.node],columns:["ag-Grid-SelectionColumn"],force:!0}))},Ne=()=>{y=!0},I=()=>{ve(),l.value?.deselectAll()};function qe(e){Re(e),o.nextTick(()=>{k({})})}const Ie=o.computed(()=>{const e=t.customRow;return e?{isFullWidthRow:e.isCustomRow,fullWidthCellRenderer:mo.default,fullWidthCellRendererParams:{render:e.render}}:{}});function Te(e){be(e),o.nextTick(()=>{k({})})}function Ee(e){ke(e),o.nextTick(()=>{k({})})}function M(e=!1){const r=e?"getFieldsValueTransformed":"getFieldsValue";return g.value?.apForm?.[r]?.(!0)}function _(e){g.value?.apForm?.setFieldsValue?.(e)}function O(){return g.value?.getSorterItems()||[]}function W(e){g.value?.setSorterItems(e)}function U(){g.value?.resetSorterItems()}function G(e){return e&&String(e)}function De(e){const r=l.value;if(!r)return;const n=r.getColumnState()||[],s=e.map(a=>a.key?String(a.key):a.key).filter(Boolean),h=n.map(a=>{if(!re.value.includes(a.colId))return a;const v=!s.includes(a.colId),H={...a,hide:v},L=e.find(Le=>G(Le.key)===a.colId);return L&&(H.pinned=L.fixed||null),H}),u=new Map(e.map((a,v)=>[G(a.key),v])),f=h.filter(a=>u.has(a.colId)).sort((a,v)=>u.get(a.colId)-u.get(v.colId)),p=[];let d=0;for(const a of h)u.has(a.colId)?p.push(f[d++]):p.push(a);r.applyColumnState({state:p,applyOrder:!0})}eo.useProvideApTable({columns:o.computed(()=>m.value),columnsBackup:o.computed(()=>V.value),size:o.computed(()=>B.sizeMap[C.value]),updateColumns(e){m.value=e,t.onShownColumnsChange?.(e),De(e)},updateSize(e){C.value=B.sizeReverseMap[e]},renderConfig:o.computed(()=>({className:X("table-header","title"),color:te.value.colorTextTertiary})),dataSource:o.computed(()=>o.unref(w).records),getSearchFormValues:M,setSearchFormValues:_,submit:F,submitWith:A,reset:x,refresh:K,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U});const Ve=o.computed(()=>i.isUndefined(t.loading)?w.loading:t.loading),ze=o.computed(()=>[c(),t.card?null:c("wrapper"),c("adaptive"),c(`size-${C.value}`)].filter(Boolean)),Pe=o.computed(()=>({height:"100%",...t.tableStyle||{}})),Ae=(e,r)=>{P({current:e,pageSize:r})};function Ke(e){const r=e.data;return q(r)}function Me(e,r){(i.isFunction(e)?l.value?.ensureNodeVisible:l.value?.ensureIndexVisible)?.(e,r)}function _e(e,r){l.value?.ensureColumnVisible(e,r)}function Oe(e){t.onRowClicked?.(e.data,e.event)}function We(e){t.onScrollEnd?.(e.direction)}function Ue(e){return l.value?.refreshCells(e)}function Ge(e){return l.value?.redrawRows(e)}const He=e=>{const r=[E.value.getRowClass?.(e)];if(!e.node.rowPinned){const n=i.isFunction(t.rowClassName)?t.rowClassName(e.data,e.rowIndex):t.rowClassName;r.push(n)}return r.flat().filter(Boolean)};return o.watch(()=>t.dataSource,e=>{ge(e)},{immediate:!0,deep:!0}),o.watch(()=>t.size,e=>{C.value=e}),o.watch(()=>o.unref(w).loading,e=>{t.onLoadingChange?.(e)}),Q({submit:F,reset:x,refresh:K,submitWith:A,setSearchFormValues:_,getSearchFormValues:M,getShowColumns:()=>o.unref(m),rowSelection:{selectedRows:o.computed(()=>N.value),setSelectedRowKeys:qe,setSelectedRows:Te,clearAll:I,unSelectRows:Ee},scrollToRow:Me,scrollToColumn:_e,getDataSource:()=>o.unref(w.records),getPaging:pe,setPaging:me,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U,refreshCells:Ue,redrawRows:Ge,_internalGridApi:o.computed(()=>l.value)}),(e,r)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(ze.value),style:o.normalizeStyle(e.wrapperStyle)},[o.unref(i.isUndefined)(e.dataSource)&&e.searchForm!==!1&&o.unref(D).length>0?(o.openBlock(),o.createElementBlock("div",{key:0,class:o.normalizeClass(e.card?o.unref(R)("search-wrapper"):null),style:o.normalizeStyle(e.searchFormWrapperStyle)},[o.createVNode(o.unref(Je.ApForm).SearchForm,o.mergeProps(e.searchForm||{},{ref_key:"formRef",ref:g,"custom-reset":"","submit-loading":o.unref(z).loading,onSubmit:o.unref(F),onReset:o.unref(x)}),o.createSlots({default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(o.unref(D),n=>(o.openBlock(),o.createBlock(o.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[T.searchFormExtra?{name:"extra",fn:o.withCtx(()=>[o.renderSlot(e.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass([o.unref(R)("table-wrapper"),e.card?o.unref(R)("table-wrapper-card"):null]),style:o.normalizeStyle(e.tableWrapperStyle)},[o.createElementVNode("div",{class:o.normalizeClass(o.unref(c)("header-wrapper"))},[o.renderSlot(e.$slots,"title",{selectedRows:o.unref(N),selectedRowKeys:o.unref(he),shownColumns:o.unref(m),clearAll:I})],2),o.createElementVNode("div",{ref_key:"gridWrapperRef",ref:se,class:o.normalizeClass(o.unref(c)("grid-wrapper"))},[o.createVNode(o.unref($e.AgGridVue),o.mergeProps(o.unref(je.mergeProps)(o.unref(Z),o.unref(E),Ie.value),{"get-row-class":He,style:Pe.value,"row-data":o.unref(w).records,"column-defs":o.unref(le),"default-col-def":o.unref(ae),"suppress-loading-overlay":"","row-selection":Fe.value,"selection-column-def":o.unref(we),"get-row-id":Ke,"get-row-height":t.getRowHeight,theme:o.unref(Y),"tooltip-show-delay":500,"enable-browser-tooltips":e.browserTooltips,"tooltip-interaction":"","row-class-rules":e.rowClassRules,"no-rows-overlay-component":go.default,"suppress-cell-focus":"","dom-layout":e.autoHeight?"autoHeight":"normal",onSortChanged:ie,onGridReady:r[0]||(r[0]=n=>l.value=n.api),onRowDataUpdated:k,onRowSelected:xe,onFirstDataRendered:Ne,onRowClicked:Oe,onBodyScrollEnd:We}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","get-row-height","theme","enable-browser-tooltips","row-class-rules","dom-layout"]),o.withDirectives(o.createElementVNode("div",{class:o.normalizeClass(o.unref(R)("table-loading-wrapper"))},[o.createVNode(o.unref(j.Spin),{delay:300})],2),[[o.vShow,Ve.value]])],2),o.createElementVNode("div",{class:o.normalizeClass(o.unref(c)("pagination-wrapper"))},[e.pagination!==!1?(o.openBlock(),o.createBlock(o.unref(j.Pagination),o.mergeProps({key:0,class:o.unref(c)("pagination")},o.unref(z).pagination,{onChange:Ae}),null,16,["class"])):o.createCommentVNode("",!0)],2)],6)],6))}});exports.default=wo;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),$e=require("ag-grid-vue3"),$=require("ag-grid-community"),je=require("./utils.js"),j=require("@aplus-frontend/antdv"),i=require("lodash-unified");require("../config-provider/index.js");const Je=require("../ap-form/index.js"),Qe=require("../ap-table/utils.js"),Xe=require("../ap-table/hooks/use-table-paging-ng.js"),Ye=require("./hooks/use-row-selection.js"),Ze=require("./context.js"),eo=require("../ap-table/context.js"),B=require("../ap-grid/constants.js"),oo=require("@aplus-frontend/antdv/es/theme/internal"),to=require("./theme.js"),ro=require("./hooks/use-columns.js"),no=require("./hooks/use-columns-def.js"),ao=require("../utils/index.js"),lo=require("../utils/slot.js"),so=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const uo=require("./hooks/use-virtual-config.js"),io=require("./hooks/use-pinned-row.js"),co=require("./hooks/use-selection-col-def.js");require("./components/row/index.vue.js");const fo=require("../config-provider/hooks/use-namespace.js"),mo=require("../config-provider/hooks/use-global-config.js"),po=require("./components/row/index.vue2.js"),go=require("./components/empty/index.vue2.js"),wo=e.defineComponent({name:"AgGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onChange:{},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:{},columns:{},rowSelection:{type:Boolean},card:{type:Boolean},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{},getRowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{},autoHeight:{type:Boolean},onUpdate:{},customRow:{},theme:{}},setup(J,{expose:Q}){$.ModuleRegistry.registerModules([$.AllCommunityModule]);const t=J,T=e.useSlots(),{e:R,b:c,be:X}=fo.useNamespace("ag-grid"),C=e.ref(t.size),Y=to.useTheme(C,e.toRef(t,"rowHeight"),e.toRef(t,"theme")),Z=uo.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:E,getRowPinnedCellClass:ee}=io.usePinnedRow(e.toRef(t,"summary")),oe=mo.useGlobalConfig("apGrid"),l=e.ref(),[,te]=oo.useToken();let y=!!t.dataSource;const D=so.useSearchForm(t),{shownColumns:p,columns:V,columnKeys:re,getTargetColumnByKey:ne}=ro.useColumns(t),{defaultColDef:ae,columnDefs:le,gridWrapperRef:se}=no.useColumnsDef(V,t,ee),b=e.ref({});Ze.useProvideSorter({sorter:b,setSorter(o){b.value=o}});const ue={asc:"ascend",desc:"descend"};function ie(){const o=l.value.getColumns()?.filter(d=>d.getSort()!==void 0),r=e.unref(b)||{};let n=o?.[0];const s=Object.keys(r);if(s.length&&s.every(d=>r[d]===null)){const d=Object.keys(r)[0];d&&(n=l.value?.getColumn(d))}if(!n)return;const u=n.getColDef(),f=n.getSort(),m=ne(u.colId);P(void 0,void 0,{column:u,field:m?.field??u.field??u.colId,order:f?ue[f]:null})}const ce=e.computed(()=>Qe.recursionApColumns(e.unref(p),o=>{if(o.sorter===!0)return o.field??o.dataIndex??o.key}).filter(Boolean)),de=()=>{b.value={};const o=l.value;if(!o)return;const r=o.getColumnState()?.map(n=>({...n,sort:null}));o.applyColumnState({state:r})},fe=e.computed(()=>ao.isDef(t.manual)?t.manual:lo.getValidVNodeList(T.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:g,submit:F,reset:x,data:w,tableProps:z,handleTableChangeOptional:P,submitWith:A,refresh:K,getPaging:me,setPaging:pe,setDataSource:ge}=Xe.useTablePaging({async request(o){if(y=!1,S.value&&!S.value.preserveSelectedRowKeys&&i.isUndefined(t.dataSource)&&I(),!i.isUndefined(t.dataSource)){const n=o.pageSize*(o.current-1);return{data:(t.pagination===!1?t.dataSource:t.dataSource.slice(n,n+o.pageSize))||[],total:t.dataSource.length||0}}const r=await t.request?.(o);return{data:r?.data||[],total:r?.total||0}},namespace:"ap-grid",filterFields:e.ref([]),params:e.toRef(t,"params"),defaultData:t.defaultData,manual:e.unref(fe),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ce,onClickReset:de}),S=e.computed(()=>{const o=t.rowSelection||oe.value?.rowSelection;if(o)return o===!0?B.DEFAULT_ROW_SELECTION_CONFIG:{...B.DEFAULT_ROW_SELECTION_CONFIG,...o}}),we=co.default(t,p),Se=e.computed(()=>i.isUndefined(t.dataSource)?w.records:t.dataSource),{select:Ce,unSelect:ye,selectedRows:N,selectedRowKeys:he,clearAll:ve,selectMultiByKeys:Re,selectMulti:be,unSelectMulti:ke}=Ye.default({...S.value,dataSource:Se,rowKey:t.rowKey}),Be={checkbox:"multiRow",radio:"singleRow"},Fe=e.computed(()=>{const o=S.value;if(!o)return;const{type:r="checkbox",disabled:n}=o;return{mode:Be[r],isRowSelectable:s=>n?!n(s.data):!0,hideDisabledCheckboxes:o.hideDisabled??!1}});function q(o){return i.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const k=({api:o=l.value})=>{if(t.onUpdate?.(),!S.value)return;const r=N.value||[];y=!1;const n=[];o.forEachNode(s=>{const h=s.data,u=q(h),f=s.isSelected();r.find(m=>q(m)===u)?!f&&n.push(s):f&&s.setSelected(!1)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{y=!0},0)},xe=o=>{y&&(o.node.isSelected()?Ce(o.data):ye(o.data),i.isFunction(S.value?.tooltip)&&o.api.refreshCells({rowNodes:[o.node],columns:["ag-Grid-SelectionColumn"],force:!0}))},Ne=()=>{y=!0},I=()=>{ve(),l.value?.deselectAll()};function qe(o){Re(o),e.nextTick(()=>{k({})})}const Ie=e.computed(()=>{const o=t.customRow;return o?{isFullWidthRow:o.isCustomRow,fullWidthCellRenderer:po.default,fullWidthCellRendererParams:{render:o.render}}:{}});function Te(o){be(o),e.nextTick(()=>{k({})})}function Ee(o){ke(o),e.nextTick(()=>{k({})})}function M(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return g.value?.apForm?.[r]?.(!0)}function _(o){g.value?.apForm?.setFieldsValue?.(o)}function O(){return g.value?.getSorterItems()||[]}function W(o){g.value?.setSorterItems(o)}function U(){g.value?.resetSorterItems()}function G(o){return o&&String(o)}function De(o){const r=l.value;if(!r)return;const n=r.getColumnState()||[],s=o.map(a=>a.key?String(a.key):a.key).filter(Boolean),h=n.map(a=>{if(!re.value.includes(a.colId))return a;const v=!s.includes(a.colId),H={...a,hide:v},L=o.find(Le=>G(Le.key)===a.colId);return L&&(H.pinned=L.fixed||null),H}),u=new Map(o.map((a,v)=>[G(a.key),v])),f=h.filter(a=>u.has(a.colId)).sort((a,v)=>u.get(a.colId)-u.get(v.colId)),m=[];let d=0;for(const a of h)u.has(a.colId)?m.push(f[d++]):m.push(a);r.applyColumnState({state:m,applyOrder:!0})}eo.useProvideApTable({columns:e.computed(()=>p.value),columnsBackup:e.computed(()=>V.value),size:e.computed(()=>B.sizeMap[C.value]),updateColumns(o){p.value=o,t.onShownColumnsChange?.(o),De(o)},updateSize(o){C.value=B.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:X("table-header","title"),color:te.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(w).records),getSearchFormValues:M,setSearchFormValues:_,submit:F,submitWith:A,reset:x,refresh:K,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U});const Ve=e.computed(()=>i.isUndefined(t.loading)?w.loading:t.loading),ze=e.computed(()=>[c(),t.card?null:c("wrapper"),c("adaptive"),c(`size-${C.value}`)].filter(Boolean)),Pe=e.computed(()=>({height:"100%",...t.tableStyle||{}})),Ae=(o,r)=>{P({current:o,pageSize:r})};function Ke(o){const r=o.data;return q(r)}function Me(o,r){(i.isFunction(o)?l.value?.ensureNodeVisible:l.value?.ensureIndexVisible)?.(o,r)}function _e(o,r){l.value?.ensureColumnVisible(o,r)}function Oe(o){t.onRowClicked?.(o.data,o.event)}function We(o){t.onScrollEnd?.(o.direction)}function Ue(o){return l.value?.refreshCells(o)}function Ge(o){return l.value?.redrawRows(o)}const He=o=>{const r=[E.value.getRowClass?.(o)];if(!o.node.rowPinned){const n=i.isFunction(t.rowClassName)?t.rowClassName(o.data,o.rowIndex):t.rowClassName;r.push(n)}return r.flat().filter(Boolean)};return e.watch(()=>t.dataSource,o=>{ge(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{C.value=o}),e.watch(()=>e.unref(w).loading,o=>{t.onLoadingChange?.(o)}),Q({submit:F,reset:x,refresh:K,submitWith:A,setSearchFormValues:_,getSearchFormValues:M,getShowColumns:()=>e.unref(p),rowSelection:{selectedRows:e.computed(()=>N.value),setSelectedRowKeys:qe,setSelectedRows:Te,clearAll:I,unSelectRows:Ee},scrollToRow:Me,scrollToColumn:_e,getDataSource:()=>e.unref(w.records),getPaging:me,setPaging:pe,getSearchFormSorterItems:O,setSearchFormSorterItems:W,resetSearchFormSorterItems:U,refreshCells:Ue,redrawRows:Ge,_internalGridApi:e.computed(()=>l.value)}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(ze.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(i.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(D).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(R)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(Je.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:g,"custom-reset":"","submit-loading":e.unref(z).loading,onSubmit:e.unref(F),onReset:e.unref(x)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(D),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[T.searchFormExtra?{name:"extra",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(R)("table-wrapper"),o.card?e.unref(R)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(c)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(N),selectedRowKeys:e.unref(he),shownColumns:e.unref(p),clearAll:I})],2),e.createElementVNode("div",{ref_key:"gridWrapperRef",ref:se,class:e.normalizeClass(e.unref(c)("grid-wrapper"))},[e.createVNode(e.unref($e.AgGridVue),e.mergeProps(e.unref(je.mergeProps)(e.unref(Z),e.unref(E),Ie.value),{"get-row-class":He,style:Pe.value,"row-data":e.unref(w).records,"column-defs":e.unref(le),"default-col-def":e.unref(ae),"suppress-loading-overlay":"","row-selection":Fe.value,"selection-column-def":e.unref(we),"get-row-id":Ke,"get-row-height":t.getRowHeight,theme:e.unref(Y),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","row-class-rules":o.rowClassRules,"no-rows-overlay-component":go.default,"suppress-cell-focus":"","dom-layout":o.autoHeight?"autoHeight":"normal",onSortChanged:ie,onGridReady:r[0]||(r[0]=n=>l.value=n.api),onRowDataUpdated:k,onRowSelected:xe,onFirstDataRendered:Ne,onRowClicked:Oe,onBodyScrollEnd:We}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","get-row-height","theme","enable-browser-tooltips","row-class-rules","dom-layout"]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(R)("table-loading-wrapper"))},[e.createVNode(e.unref(j.Spin),{delay:300})],2),[[e.vShow,Ve.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(c)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(j.Pagination),e.mergeProps({key:0,class:e.unref(c)("pagination")},e.unref(z).pagination,{onChange:Ae}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=wo;
@@ -4,7 +4,7 @@ import { TableProps } from '@aplus-frontend/antdv';
4
4
  import { ApFormSearchFormPopoverSorterItem, ApFormSearchFormProps } from '../ap-form/interface';
5
5
  import { Recordable } from '../type';
6
6
  import { SortOrder, TableRowSelection } from '@aplus-frontend/antdv/es/table/interface';
7
- import { ColDef, GridApi, ICellRendererParams, IRowNode, IsFullWidthRowParams, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowHeightParams, RowPinnedType, ScrollDirection } from 'ag-grid-community';
7
+ import { ColDef, GridApi, ICellRendererParams, IRowNode, IsFullWidthRowParams, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowHeightParams, RowPinnedType, ScrollDirection, ThemeDefaultParams } from 'ag-grid-community';
8
8
  import { InternalPagingType } from '../ap-table/hooks/use-table-paging-ng';
9
9
  export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueType extends ApTableValueTypes = ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType = ExtraValueType | ValueType> = MergedValueType extends ExtraValueType | ValueType ? Omit<ExtraProColumnType<RecordType>, 'sorter' | 'rowSpan' | 'customCell' | 'customHeaderCell' | 'minWidth' | 'width' | 'maxWidth' | 'className' | 'class' | 'colSpan'> & {
10
10
  children?: AgGridColumnType<RecordType, ExtraValueType, ValueType>[];
@@ -84,6 +84,7 @@ export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueTyp
84
84
  pinned?: boolean;
85
85
  rowIndex?: number;
86
86
  params?: ICellRendererParams;
87
+ path?: (string | number)[];
87
88
  }) => any;
88
89
  width?: number;
89
90
  minWidth?: number;
@@ -111,6 +112,11 @@ export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueTyp
111
112
  * 自定表头列类名
112
113
  */
113
114
  headerClass?: ColDef<RecordType>['headerClass'];
115
+ /**
116
+ * 当单元格可编辑时,记录表单项的namePath
117
+ * @private 仅限内部使用,请勿传递
118
+ */
119
+ _path?: (string | number)[];
114
120
  } : null;
115
121
  export type AgGridRowSelection<RecordType> = Pick<TableRowSelection<RecordType>, 'type' | 'fixed' | 'columnWidth' | 'defaultSelectedRowKeys'> & {
116
122
  /**
@@ -319,6 +325,11 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
319
325
  * @since 6.37.0
320
326
  */
321
327
  customRow?: AgGridCustomRowConfig;
328
+ /**
329
+ * 自定义主题
330
+ * @since 6.41.0
331
+ */
332
+ theme?: Partial<ThemeDefaultParams>;
322
333
  };
323
334
  export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
324
335
  /**
@@ -1,3 +1,4 @@
1
1
  import { Ref, ComputedRef } from 'vue';
2
+ import { AgGridProps } from './interface';
2
3
  import { Theme, ThemeDefaultParams } from 'ag-grid-community';
3
- export declare const useTheme: (size: Ref<"medium" | "mini" | undefined>, rowHeight: Ref<undefined | number>) => ComputedRef<Theme<ThemeDefaultParams>>;
4
+ export declare const useTheme: (size: Ref<"medium" | "mini" | undefined>, rowHeight: Ref<undefined | number>, customTheme: Ref<AgGridProps["theme"]>) => ComputedRef<Theme<ThemeDefaultParams>>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@aplus-frontend/antdv/es/theme/internal"),d=require("ag-grid-community"),c=require("vue"),i=(r,o)=>{const[,a]=n.useToken();return c.computed(()=>{const t=r.value==="mini",e=a.value;return d.themeQuartz.withParams({headerHeight:"36px",headerFontSize:"12px",dataFontSize:"12px",rowHeight:o.value,spacing:t?"5px":"6.5px",foregroundColor:e.colorTextBase,wrapperBorder:!1,rowBorder:{color:e.colorBorderSecondary},headerRowBorder:{color:e.colorBorderSecondary},selectedRowBackgroundColor:e.controlItemBgActive,checkboxCheckedBackgroundColor:e.colorPrimary,rowHoverColor:"var(--ap-color-bg-2)",headerBackgroundColor:"var(--ap-table-header-bg)",headerColumnResizeHandleHeight:"50%",headerColumnResizeHandleWidth:"1px",wrapperBorderRadius:"4px"})})};exports.useTheme=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@aplus-frontend/antdv/es/theme/internal"),c=require("ag-grid-community"),l=require("vue"),i=(r,o,a)=>{const[,t]=d.useToken();return l.computed(()=>{const n=r.value==="mini",e=t.value;return c.themeQuartz.withParams({headerHeight:"36px",headerFontSize:"12px",dataFontSize:"12px",foregroundColor:e.colorTextBase,wrapperBorder:!1,rowBorder:{color:e.colorBorderSecondary},headerRowBorder:{color:e.colorBorderSecondary},selectedRowBackgroundColor:e.controlItemBgActive,checkboxCheckedBackgroundColor:e.colorPrimary,rowHoverColor:"var(--ap-color-bg-2)",headerBackgroundColor:"var(--ap-table-header-bg)",headerColumnResizeHandleHeight:"50%",headerColumnResizeHandleWidth:"1px",wrapperBorderRadius:"4px",...a.value||{},rowHeight:o.value,spacing:n?"5px":"6.5px"})})};exports.useTheme=i;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("vue"),l=require("lodash-unified"),u=require("../../ap-table/utils.js"),x=require("../../ap-table/constants.js");require("../../ap-table/components/paragraph-ellipsis/index.vue.js");const q=require("../../ap-table/components/paragraph-ellipsis/index.vue2.js");function h(e,t){if(t)return l.isArray(t)?t.reduce((r,n)=>r?.[n],e):e?.[t]}function y(e){if(!l.isUndefined(e))return l.isArray(e)?e.reduce((t,r)=>l.isString(r)?`${t}${t?".":""}${r}`:`${t}[${r}]`,""):String(e)}function b(e){if(e)return e===!0?"left":e}function A(e){return l.isBoolean(e)?{sortable:e}:e?{sortable:!0,sortType:e?.type,sortBy:e?.by}:{sortable:!1}}function N(e){let t;return l.isBoolean(e.filters)&&e.valueEnum?t=u.valueEnumToArray(e.valueEnum):t=e.filters,t?.map(r=>({label:l.isString(r.text)?r.text:"",value:r.value}))}function R(e){if(e)return t=>e(t.value,t.row)}function S(e,t){return e?l.isNumber(e)?{tooltip:t,rows:e}:e===!0||e==="tooltip"?{tooltip:t,rows:1}:{tooltip:null,rows:1,htmlTitle:e==="title"?t:""}:!1}function V(e,t,r){if(x.noRenderAsFormItemValueList.includes(e.valueType))return r;if(e.copyable||e.ellipsis){const n=S(e.ellipsis,t),i=u.objectToString(t);return f.createVNode(q.default,{rawValue:i,copyable:e.copyable,ellipsis:n,content:r},null)}return r}function c(e,t,r){const n=l.pick(e,["width","minWidth","align"]);return n.field=y(e.dataIndex),n.fixed=b(e.fixed),n.slots={header:()=>u.getTableTitle(e,r,void 0,t)},n.headerAlign=e.align,n.showOverflow=!1,n.showFooterOverflow=!1,n}const v=({value:e,...t},r,n,i=!0)=>{const a=u.getTableRenderType(r),d=u.getTableRenderProps({...r,valueType:a},{value:e,...t}),s=u.getTableCellRenderNode(a,d,t.record,n),o=r.renderText?.({value:e,...t})||e,F=r.renderText?f.createVNode(f.Fragment,null,[r.renderText?.({value:e,...t})]):s;let p=i?V(r,o,F):F;return r.customRender&&(p=r.customRender({value:e,...t,column:r,originalNode:p,originalText:o})),f.createVNode(f.Fragment,null,[p])};function T(e,t,r,n){const i=l.pick(e,["width","minWidth","align","resizable","className","headerClassName","footerClassName","treeNode"]);i.field=y(e.dataIndex),i.fixed=b(e.fixed),i.headerAlign=e.align,i.footerAlign=e.align,i.showOverflow=!1,i.showFooterOverflow=!1,Object.assign(i,A(e.sorter)),i.filters=N(e),i.filterMultiple=e.filterMultiple,i.filterMethod=R(e.onFilter);const a=({row:d,rowIndex:s})=>v({value:h(d,e.dataIndex),text:h(d,e.dataIndex),record:d,index:s,renderIndex:s,column:e},e,n);return i.slots={header:()=>u.getTableTitle(e,r,void 0,t),default:a,footer:a},e.html&&(delete i.slots.default,delete i.slots.footer,i.type="html"),e.seq&&(i.type="seq",i.slots={}),i}function _(e,t,r,n){if(!e.children?.length)return T(e,t,r,n);function i(d){return d.map(s=>{if(s.children?.length){const o=c(s,t,r);return o.children=i(s.children),o}return T(s,t,r,n)})}const a=c(e,t,r);return a.children=i(e.children),a}exports.contentCustom=v;exports.dataIndexToField=y;exports.getValueByDataIndex=h;exports.transformCol=_;exports.transformFixed=b;exports.transformToColGroup=c;exports.transformToColumn=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("vue"),l=require("lodash-unified"),u=require("../../ap-table/utils.js"),q=require("../../ap-table/constants.js");require("../../ap-table/components/paragraph-ellipsis/index.vue.js");const A=require("../../ap-table/components/paragraph-ellipsis/index.vue2.js");function p(e,t){if(t)return l.isArray(t)?t.reduce((r,i)=>r?.[i],e):e?.[t]}function y(e){if(!l.isUndefined(e))return l.isArray(e)?e.reduce((t,r)=>l.isString(r)?`${t}${t?".":""}${r}`:`${t}[${r}]`,""):String(e)}function b(e){if(e)return e===!0?"left":e}function N(e){return l.isBoolean(e)?{sortable:e}:e?{sortable:!0,sortType:e?.type,sortBy:e?.by}:{sortable:!1}}function R(e){let t;return l.isBoolean(e.filters)&&e.valueEnum?t=u.valueEnumToArray(e.valueEnum):t=e.filters,t?.map(r=>({label:l.isString(r.text)?r.text:"",value:r.value}))}function _(e){if(e)return t=>e(t.value,t.row)}function V(e,t){return e?l.isNumber(e)?{tooltip:t,rows:e}:e===!0||e==="tooltip"?{tooltip:t,rows:1}:{tooltip:null,rows:1,htmlTitle:e==="title"?t:""}:!1}function O(e,t,r){if(q.noRenderAsFormItemValueList.includes(e.valueType))return r;if(e.copyable||e.ellipsis){const i=V(e.ellipsis,t),n=u.objectToString(t);return f.createVNode(A.default,{rawValue:n,copyable:e.copyable,ellipsis:i,content:r},null)}return r}function c(e,t,r){const i=l.pick(e,["width","minWidth","align"]);return i.field=y(e.dataIndex),i.fixed=b(e.fixed),i.slots={header:()=>u.getTableTitle(e,r,void 0,t)},i.headerAlign=e.align,i.showOverflow=!1,i.showFooterOverflow=!1,i}function g(e,t,r){if(r)return l.isString(r)?e[r]:r(e,t)}const F=({value:e,...t},r,i,n=!0)=>{const a=u.getTableRenderType(r),d=u.getTableRenderProps({...r,valueType:a},{value:e,...t}),s=u.getTableCellRenderNode(a,d,t.record,i),o=r.renderText?.({value:e,...t})||e,x=r.renderText?f.createVNode(f.Fragment,null,[r.renderText?.({value:e,...t})]):s;let h=n?O(r,o,x):x;if(r.customRender){const v=r._path||[],S=g(t.record,t.rowIndex,t.params.rowKey);h=r.customRender({value:e,...t,column:r,originalNode:h,originalText:o,path:[...v,String(S)]})}return f.createVNode(f.Fragment,null,[h])};function T(e,t,r,i){const n=l.pick(e,["width","minWidth","align","resizable","className","headerClassName","footerClassName","treeNode"]);n.field=y(e.dataIndex),n.fixed=b(e.fixed),n.headerAlign=e.align,n.footerAlign=e.align,n.showOverflow=!1,n.showFooterOverflow=!1,Object.assign(n,N(e.sorter)),n.filters=R(e),n.filterMultiple=e.filterMultiple,n.filterMethod=_(e.onFilter);const a=({row:d,rowIndex:s})=>F({value:p(d,e.dataIndex),text:p(d,e.dataIndex),record:d,index:s,renderIndex:s,column:e},e,i);return n.slots={header:()=>u.getTableTitle(e,r,void 0,t),default:a,footer:a},e.html&&(delete n.slots.default,delete n.slots.footer,n.type="html"),e.seq&&(n.type="seq",n.slots={}),n}function w(e,t,r,i){if(!e.children?.length)return T(e,t,r,i);function n(d){return d.map(s=>{if(s.children?.length){const o=c(s,t,r);return o.children=n(s.children),o}return T(s,t,r,i)})}const a=c(e,t,r);return a.children=n(e.children),a}exports.contentCustom=F;exports.dataIndexToField=y;exports.getValueByDataIndex=p;exports.transformCol=w;exports.transformFixed=b;exports.transformToColGroup=c;exports.transformToColumn=T;
@@ -1,2 +1,2 @@
1
- declare const _default: "6.40.0";
1
+ declare const _default: "6.41.0";
2
2
  export default _default;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.40.0";exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.41.0";exports.default=e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aplus-frontend/ui",
3
- "version": "6.40.0",
3
+ "version": "6.41.0",
4
4
  "main": "./lib/index.js",
5
5
  "type": "module",
6
6
  "files": [