@aplus-frontend/ui 6.28.3 → 6.28.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,30 +1,31 @@
1
- import { defineComponent as qe, useSlots as Je, ref as F, toRef as k, unref as t, computed as l, nextTick as Qe, watch as z, createElementBlock as E, openBlock as C, normalizeStyle as V, normalizeClass as m, createCommentVNode as ee, createElementVNode as R, createVNode as A, mergeProps as N, createSlots as Xe, withCtx as oe, Fragment as Ye, renderList as Ze, createBlock as te, resolveDynamicComponent as _e, renderSlot as re, withDirectives as eo, vShow as oo } from "vue";
2
- import { AgGridVue as to } from "ag-grid-vue3";
3
- import { ModuleRegistry as ro, AllCommunityModule as no } from "ag-grid-community";
4
- import { Spin as ao, Pagination as lo } from "@aplus-frontend/antdv";
5
- import { isUndefined as b, isFunction as so } from "lodash-unified";
1
+ import { defineComponent as Je, useSlots as Qe, ref as F, toRef as k, unref as t, computed as l, nextTick as Xe, watch as P, createElementBlock as z, openBlock as v, normalizeStyle as E, normalizeClass as m, createCommentVNode as oe, createElementVNode as R, createVNode as V, mergeProps as A, createSlots as Ye, withCtx as te, Fragment as Ze, renderList as _e, createBlock as re, resolveDynamicComponent as eo, renderSlot as ae, withDirectives as oo, vShow as to } from "vue";
2
+ import { AgGridVue as ro } from "ag-grid-vue3";
3
+ import { ModuleRegistry as ao, AllCommunityModule as no } from "ag-grid-community";
4
+ import { mergeProps as lo } from "./utils.mjs";
5
+ import { Spin as so, Pagination as io } from "@aplus-frontend/antdv";
6
+ import { isUndefined as b, isFunction as ne } from "lodash-unified";
6
7
  import "../config-provider/index.mjs";
7
- import { ApForm as io } from "../ap-form/index.mjs";
8
- import { recursionApColumns as co } from "../ap-table/utils.mjs";
9
- import { useTablePaging as uo } from "../ap-table/hooks/use-table-paging-ng.mjs";
10
- import mo from "./hooks/use-row-selection.mjs";
11
- import { useProvideSorter as po } from "./context.mjs";
12
- import { useProvideApTable as fo } from "../ap-table/context.mjs";
13
- import { sizeReverseMap as go, sizeMap as So } from "../ap-grid/constants.mjs";
14
- import { useToken as wo } from "@aplus-frontend/antdv/es/theme/internal";
15
- import { useTheme as yo } from "./theme.mjs";
16
- import { useColumns as ho } from "./hooks/use-columns.mjs";
8
+ import { ApForm as co } from "../ap-form/index.mjs";
9
+ import { recursionApColumns as uo } from "../ap-table/utils.mjs";
10
+ import { useTablePaging as mo } from "../ap-table/hooks/use-table-paging-ng.mjs";
11
+ import po from "./hooks/use-row-selection.mjs";
12
+ import { useProvideSorter as fo } from "./context.mjs";
13
+ import { useProvideApTable as go } from "../ap-table/context.mjs";
14
+ import { sizeReverseMap as So, sizeMap as wo } from "../ap-grid/constants.mjs";
15
+ import { useToken as yo } from "@aplus-frontend/antdv/es/theme/internal";
16
+ import { useTheme as ho } from "./theme.mjs";
17
+ import { useColumns as Co } from "./hooks/use-columns.mjs";
17
18
  import { useColumnsDef as vo } from "./hooks/use-columns-def.mjs";
18
- import { isDef as Co } from "../utils/index.mjs";
19
- import { getValidVNodeList as Ro } from "../utils/slot.mjs";
20
- import { useSearchForm as bo } from "./hooks/use-search-form.mjs";
19
+ import { isDef as Ro } from "../utils/index.mjs";
20
+ import { getValidVNodeList as bo } from "../utils/slot.mjs";
21
+ import { useSearchForm as Bo } from "./hooks/use-search-form.mjs";
21
22
  import "./components/empty/index.vue.mjs";
22
- import Bo from "./hooks/use-virtual-config.mjs";
23
- import { usePinnedRow as Fo } from "./hooks/use-pinned-row.mjs";
24
- import ko from "./hooks/use-selection-col-def.mjs";
25
- import { useNamespace as xo } from "../config-provider/hooks/use-namespace.mjs";
26
- import Io from "./components/empty/index.vue2.mjs";
27
- const ot = /* @__PURE__ */ qe({
23
+ import Fo from "./hooks/use-virtual-config.mjs";
24
+ import { usePinnedRow as ko } from "./hooks/use-pinned-row.mjs";
25
+ import xo from "./hooks/use-selection-col-def.mjs";
26
+ import { useNamespace as Io } from "../config-provider/hooks/use-namespace.mjs";
27
+ import To from "./components/empty/index.vue2.mjs";
28
+ const rt = /* @__PURE__ */ Je({
28
29
  name: "AgGrid",
29
30
  __name: "index",
30
31
  props: {
@@ -91,24 +92,21 @@ const ot = /* @__PURE__ */ qe({
91
92
  browserTooltips: { type: Boolean },
92
93
  virtual: { type: [Boolean, Object], default: void 0 },
93
94
  onRowClicked: {},
94
- onScrollEnd: {}
95
+ onScrollEnd: {},
96
+ rowClassName: {}
95
97
  },
96
- setup(ne, { expose: ae }) {
97
- ro.registerModules([no]);
98
- const o = ne, M = Je();
99
- function le(...e) {
100
- return e.reduce((r, n) => ({ ...r, ...n }), {});
101
- }
102
- const { e: B, b: c, be: se } = xo("ag-grid"), y = F(o.size), ie = yo(y, k(o, "rowHeight")), ce = Bo(k(o, "virtual")), { rowPinnedGridConfig: de, getRowPinnedCellClass: ue } = Fo(
98
+ setup(le, { expose: se }) {
99
+ ao.registerModules([no]);
100
+ const o = le, M = Qe(), { e: B, b: d, be: ie } = Io("ag-grid"), y = F(o.size), de = ho(y, k(o, "rowHeight")), ce = Fo(k(o, "virtual")), { rowPinnedGridConfig: O, getRowPinnedCellClass: ue } = ko(
103
101
  k(o, "summary")
104
- ), d = F(), [, me] = wo();
102
+ ), c = F(), [, me] = yo();
105
103
  let p = !!o.dataSource;
106
- const O = bo(o), { shownColumns: f, columns: W, columnKeys: pe } = ho(o), { defaultColDef: fe, columnDefs: ge } = vo(
107
- W,
104
+ const W = Bo(o), { shownColumns: f, columns: j, columnKeys: pe } = Co(o), { defaultColDef: fe, columnDefs: ge } = vo(
105
+ j,
108
106
  o,
109
107
  ue
110
108
  ), x = F({});
111
- po({
109
+ fo({
112
110
  sorter: x,
113
111
  setSorter(e) {
114
112
  x.value = e;
@@ -119,43 +117,43 @@ const ot = /* @__PURE__ */ qe({
119
117
  desc: "descend"
120
118
  };
121
119
  function we() {
122
- const e = d.value.getColumns()?.filter((s) => s.getSort() !== void 0), r = t(x) || {};
123
- let n = e?.[0];
120
+ const e = c.value.getColumns()?.filter((s) => s.getSort() !== void 0), r = t(x) || {};
121
+ let a = e?.[0];
124
122
  const u = Object.keys(r);
125
123
  if (u.length && u.every((s) => r[s] === null)) {
126
124
  const s = Object.keys(r)[0];
127
- s && (n = d.value?.getColumn(s));
125
+ s && (a = c.value?.getColumn(s));
128
126
  }
129
- if (!n)
127
+ if (!a)
130
128
  return;
131
- const i = n.getColDef(), w = n.getSort();
132
- L(void 0, void 0, {
129
+ const i = a.getColDef(), w = a.getSort();
130
+ G(void 0, void 0, {
133
131
  column: i,
134
132
  field: i.field,
135
133
  order: w ? Se[w] : null
136
134
  });
137
135
  }
138
- const ye = l(() => co(t(f), (e) => {
136
+ const ye = l(() => uo(t(f), (e) => {
139
137
  if (e.sorter === !0)
140
138
  return e.key || e.dataIndex;
141
- }).filter(Boolean)), he = l(() => Co(o.manual) ? o.manual : Ro(M.searchFormExtra?.() || []).some((r) => r.type?.name === "ApView")), {
139
+ }).filter(Boolean)), he = l(() => Ro(o.manual) ? o.manual : bo(M.searchFormExtra?.() || []).some((r) => r.type?.name === "ApView")), {
142
140
  formRef: g,
143
141
  submit: I,
144
142
  reset: T,
145
143
  data: S,
146
- tableProps: j,
147
- handleTableChangeOptional: L,
148
- submitWith: G,
149
- refresh: H,
150
- getPaging: ve,
151
- setPaging: Ce,
144
+ tableProps: L,
145
+ handleTableChangeOptional: G,
146
+ submitWith: H,
147
+ refresh: U,
148
+ getPaging: Ce,
149
+ setPaging: ve,
152
150
  setDataSource: Re
153
- } = uo({
151
+ } = mo({
154
152
  async request(e) {
155
- if (p = !1, !Fe.value && b(o.dataSource) && P(), !b(o.dataSource)) {
156
- const n = e.pageSize * (e.current - 1);
153
+ if (p = !1, !Fe.value && b(o.dataSource) && K(), !b(o.dataSource)) {
154
+ const a = e.pageSize * (e.current - 1);
157
155
  return {
158
- data: (o.pagination === !1 ? o.dataSource : o.dataSource.slice(n, n + e.pageSize)) || [],
156
+ data: (o.pagination === !1 ? o.dataSource : o.dataSource.slice(a, a + e.pageSize)) || [],
159
157
  total: o.dataSource.length || 0
160
158
  };
161
159
  }
@@ -173,7 +171,7 @@ const ot = /* @__PURE__ */ qe({
173
171
  formatParams: o.beforeSearchSubmit,
174
172
  pagination: o.pagination,
175
173
  sortFields: ye
176
- }), be = ko(o, f), Be = l(
174
+ }), be = xo(o, f), Be = l(
177
175
  () => b(o.dataSource) ? S.records : o.dataSource
178
176
  ), Fe = l(() => {
179
177
  const e = o.rowSelection === !0 ? {} : o.rowSelection;
@@ -181,35 +179,35 @@ const ot = /* @__PURE__ */ qe({
181
179
  }), {
182
180
  select: ke,
183
181
  unSelect: xe,
184
- selectedRows: D,
182
+ selectedRows: N,
185
183
  selectedRowKeys: Ie,
186
184
  clearAll: Te,
187
- selectMultiByKeys: De
188
- } = mo({
185
+ selectMultiByKeys: Ne
186
+ } = po({
189
187
  ...o.rowSelection === !0 ? {} : o.rowSelection,
190
188
  dataSource: Be,
191
189
  rowKey: o.rowKey
192
- }), Ke = {
190
+ }), De = {
193
191
  checkbox: "multiRow",
194
192
  radio: "singleRow"
195
- }, Pe = l(() => {
193
+ }, Ke = l(() => {
196
194
  if (!o.rowSelection)
197
195
  return;
198
196
  const { type: e = "checkbox", disabled: r } = o.rowSelection === !0 ? {} : o.rowSelection;
199
197
  return {
200
- mode: Ke[e],
201
- isRowSelectable: (n) => r ? !r(n.data) : !0
198
+ mode: De[e],
199
+ isRowSelectable: (a) => r ? !r(a.data) : !0
202
200
  };
203
201
  });
204
- function K(e) {
205
- return so(o.rowKey) ? o.rowKey(e) : e[o.rowKey];
202
+ function D(e) {
203
+ return ne(o.rowKey) ? o.rowKey(e) : e[o.rowKey];
206
204
  }
207
- const U = ({
208
- api: e = d.value
205
+ const $ = ({
206
+ api: e = c.value
209
207
  }) => {
210
208
  if (!o.rowSelection)
211
209
  return;
212
- const r = D.value;
210
+ const r = N.value;
213
211
  if (!r.length) {
214
212
  setTimeout(() => {
215
213
  p = !0;
@@ -217,250 +215,261 @@ const ot = /* @__PURE__ */ qe({
217
215
  return;
218
216
  }
219
217
  p = !1;
220
- const n = [];
218
+ const a = [];
221
219
  e.forEachNode((u) => {
222
- const h = u.data, i = K(h);
223
- r.find((w) => K(w) === i) && n.push(u);
224
- }), e.setNodesSelected({ nodes: n, newValue: !0 }), setTimeout(() => {
220
+ const h = u.data, i = D(h);
221
+ r.find((w) => D(w) === i) && a.push(u);
222
+ }), e.setNodesSelected({ nodes: a, newValue: !0 }), setTimeout(() => {
225
223
  p = !0;
226
224
  }, 0);
227
- }, ze = (e) => {
225
+ }, Pe = (e) => {
228
226
  p && (e.node.isSelected() ? ke(e.data) : xe(e.data));
229
- }, Ee = () => {
227
+ }, ze = () => {
230
228
  p = !0;
231
- }, P = () => {
232
- Te(), d.value?.deselectAll();
229
+ }, K = () => {
230
+ Te(), c.value?.deselectAll();
233
231
  };
234
- function Ve(e) {
235
- De(e), Qe(() => {
236
- U({});
232
+ function Ee(e) {
233
+ Ne(e), Xe(() => {
234
+ $({});
237
235
  });
238
236
  }
239
- function $(e = !1) {
237
+ function q(e = !1) {
240
238
  const r = e ? "getFieldsValueTransformed" : "getFieldsValue";
241
239
  return g.value?.apForm?.[r]?.(!0);
242
240
  }
243
- function q(e) {
241
+ function J(e) {
244
242
  g.value?.apForm?.setFieldsValue?.(e);
245
243
  }
246
- function J() {
244
+ function Q() {
247
245
  return g.value?.getSorterItems() || [];
248
246
  }
249
- function Q(e) {
247
+ function X(e) {
250
248
  g.value?.setSorterItems(e);
251
249
  }
252
- function X() {
250
+ function Y() {
253
251
  g.value?.resetSorterItems();
254
252
  }
255
- function Y(e) {
253
+ function Z(e) {
256
254
  return e && String(e);
257
255
  }
258
- function Ae(e) {
259
- const r = d.value;
256
+ function Ve(e) {
257
+ const r = c.value;
260
258
  if (!r)
261
259
  return;
262
- const n = r.getColumnState() || [], u = e.map((a) => a.key ? String(a.key) : a.key).filter(Boolean), h = n.map((a) => {
263
- if (!pe.value.includes(a.colId))
264
- return a;
265
- const v = !u.includes(a.colId), Z = {
266
- ...a,
267
- hide: v
268
- }, _ = e.find(
269
- ($e) => Y($e.key) === a.colId
260
+ const a = r.getColumnState() || [], u = e.map((n) => n.key ? String(n.key) : n.key).filter(Boolean), h = a.map((n) => {
261
+ if (!pe.value.includes(n.colId))
262
+ return n;
263
+ const C = !u.includes(n.colId), _ = {
264
+ ...n,
265
+ hide: C
266
+ }, ee = e.find(
267
+ (qe) => Z(qe.key) === n.colId
270
268
  );
271
- return _ && (Z.pinned = _.fixed || null), Z;
269
+ return ee && (_.pinned = ee.fixed || null), _;
272
270
  }), i = new Map(
273
- e.map((a, v) => [Y(a.key), v])
274
- ), w = h.filter((a) => i.has(a.colId)).sort(
275
- (a, v) => i.get(a.colId) - i.get(v.colId)
271
+ e.map((n, C) => [Z(n.key), C])
272
+ ), w = h.filter((n) => i.has(n.colId)).sort(
273
+ (n, C) => i.get(n.colId) - i.get(C.colId)
276
274
  ), s = [];
277
- let Ue = 0;
278
- for (const a of h)
279
- i.has(a.colId) ? s.push(w[Ue++]) : s.push(a);
275
+ let $e = 0;
276
+ for (const n of h)
277
+ i.has(n.colId) ? s.push(w[$e++]) : s.push(n);
280
278
  r.applyColumnState({
281
279
  state: s,
282
280
  applyOrder: !0
283
281
  });
284
282
  }
285
- fo({
283
+ go({
286
284
  columns: l(() => f.value),
287
- columnsBackup: l(() => W.value),
288
- size: l(() => So[y.value]),
285
+ columnsBackup: l(() => j.value),
286
+ size: l(() => wo[y.value]),
289
287
  updateColumns(e) {
290
- console.log("run reset", e), f.value = e, o.onShownColumnsChange?.(e), Ae(e);
288
+ console.log("run reset", e), f.value = e, o.onShownColumnsChange?.(e), Ve(e);
291
289
  },
292
290
  updateSize(e) {
293
- y.value = go[e];
291
+ y.value = So[e];
294
292
  },
295
293
  renderConfig: l(() => ({
296
- className: se("table-header", "title"),
294
+ className: ie("table-header", "title"),
297
295
  color: me.value.colorTextTertiary
298
296
  })),
299
297
  dataSource: l(() => t(S).records),
300
- getSearchFormValues: $,
301
- setSearchFormValues: q,
298
+ getSearchFormValues: q,
299
+ setSearchFormValues: J,
302
300
  submit: I,
303
- submitWith: G,
301
+ submitWith: H,
304
302
  reset: T,
305
- refresh: H,
306
- getSearchFormSorterItems: J,
307
- setSearchFormSorterItems: Q,
308
- resetSearchFormSorterItems: X
303
+ refresh: U,
304
+ getSearchFormSorterItems: Q,
305
+ setSearchFormSorterItems: X,
306
+ resetSearchFormSorterItems: Y
309
307
  });
310
- const Ne = l(
308
+ const Ae = l(
311
309
  () => b(o.loading) ? S.loading : o.loading
312
310
  ), Me = l(() => [
313
- c(),
314
- o.card ? null : c("wrapper"),
315
- c("adaptive"),
316
- c(`size-${y.value}`)
311
+ d(),
312
+ o.card ? null : d("wrapper"),
313
+ d("adaptive"),
314
+ d(`size-${y.value}`)
317
315
  ].filter(Boolean)), Oe = l(() => ({
318
316
  height: "100%",
319
317
  ...o.tableStyle || {}
320
318
  })), We = (e, r) => {
321
- L({ current: e, pageSize: r });
319
+ G({ current: e, pageSize: r });
322
320
  };
323
321
  function je(e) {
324
322
  const r = e.data;
325
- return K(r);
323
+ return D(r);
326
324
  }
327
325
  function Le(e, r) {
328
- d.value?.ensureIndexVisible(e, r);
326
+ c.value?.ensureIndexVisible(e, r);
329
327
  }
330
328
  function Ge(e) {
331
- o.onRowClicked?.(e.data);
329
+ o.onRowClicked?.(e.data, e.event);
332
330
  }
333
331
  function He(e) {
334
332
  o.onScrollEnd?.(e.direction);
335
333
  }
336
- return z(
334
+ const Ue = (e) => {
335
+ const r = [
336
+ O.value.getRowClass?.(e)
337
+ ];
338
+ if (!e.node.rowPinned) {
339
+ const a = ne(o.rowClassName) ? o.rowClassName(e.data, e.rowIndex) : o.rowClassName;
340
+ r.push(a);
341
+ }
342
+ return r.flat().filter(Boolean);
343
+ };
344
+ return P(
337
345
  () => o.dataSource,
338
346
  (e) => {
339
347
  Re(e);
340
348
  },
341
349
  { immediate: !0, deep: !0 }
342
- ), z(
350
+ ), P(
343
351
  () => o.size,
344
352
  (e) => {
345
353
  y.value = e;
346
354
  }
347
- ), z(
355
+ ), P(
348
356
  () => t(S).loading,
349
357
  (e) => {
350
358
  o.onLoadingChange?.(e);
351
359
  }
352
- ), ae({
360
+ ), se({
353
361
  submit: I,
354
362
  reset: T,
355
- refresh: H,
356
- submitWith: G,
357
- setSearchFormValues: q,
358
- getSearchFormValues: $,
363
+ refresh: U,
364
+ submitWith: H,
365
+ setSearchFormValues: J,
366
+ getSearchFormValues: q,
359
367
  getShowColumns: () => t(f),
360
368
  rowSelection: {
361
- selectedRows: l(() => D.value),
362
- setSelectedRowKeys: Ve,
363
- clearAll: P
369
+ selectedRows: l(() => N.value),
370
+ setSelectedRowKeys: Ee,
371
+ clearAll: K
364
372
  },
365
373
  scrollToRow: Le,
366
374
  getDataSource: () => t(S.records),
367
- getPaging: ve,
368
- setPaging: Ce,
369
- getSearchFormSorterItems: J,
370
- setSearchFormSorterItems: Q,
371
- resetSearchFormSorterItems: X
372
- }), (e, r) => (C(), E("div", {
375
+ getPaging: Ce,
376
+ setPaging: ve,
377
+ getSearchFormSorterItems: Q,
378
+ setSearchFormSorterItems: X,
379
+ resetSearchFormSorterItems: Y
380
+ }), (e, r) => (v(), z("div", {
373
381
  class: m(Me.value),
374
- style: V(e.wrapperStyle)
382
+ style: E(e.wrapperStyle)
375
383
  }, [
376
- t(b)(e.dataSource) && e.searchForm !== !1 && t(O).length > 0 ? (C(), E("div", {
384
+ t(b)(e.dataSource) && e.searchForm !== !1 && t(W).length > 0 ? (v(), z("div", {
377
385
  key: 0,
378
386
  class: m(e.card ? t(B)("search-wrapper") : null),
379
- style: V(e.searchFormWrapperStyle)
387
+ style: E(e.searchFormWrapperStyle)
380
388
  }, [
381
- A(t(io).SearchForm, N(e.searchForm || {}, {
389
+ V(t(co).SearchForm, A(e.searchForm || {}, {
382
390
  ref_key: "formRef",
383
391
  ref: g,
384
392
  "custom-reset": "",
385
- "submit-loading": t(j).loading,
393
+ "submit-loading": t(L).loading,
386
394
  onSubmit: t(I),
387
395
  onReset: t(T)
388
- }), Xe({
389
- default: oe(() => [
390
- (C(!0), E(Ye, null, Ze(t(O), (n) => (C(), te(_e(n.renderNode), {
391
- key: n.dataIndex
396
+ }), Ye({
397
+ default: te(() => [
398
+ (v(!0), z(Ze, null, _e(t(W), (a) => (v(), re(eo(a.renderNode), {
399
+ key: a.dataIndex
392
400
  }))), 128))
393
401
  ]),
394
402
  _: 2
395
403
  }, [
396
404
  M.searchFormExtra ? {
397
405
  name: "extra",
398
- fn: oe(() => [
399
- re(e.$slots, "searchFormExtra")
406
+ fn: te(() => [
407
+ ae(e.$slots, "searchFormExtra")
400
408
  ]),
401
409
  key: "0"
402
410
  } : void 0
403
411
  ]), 1040, ["submit-loading", "onSubmit", "onReset"])
404
- ], 6)) : ee("", !0),
412
+ ], 6)) : oe("", !0),
405
413
  R("div", {
406
414
  class: m([t(B)("table-wrapper"), e.card ? t(B)("table-wrapper-card") : null]),
407
- style: V(e.tableWrapperStyle)
415
+ style: E(e.tableWrapperStyle)
408
416
  }, [
409
417
  R("div", {
410
- class: m(t(c)("header-wrapper"))
418
+ class: m(t(d)("header-wrapper"))
411
419
  }, [
412
- re(e.$slots, "title", {
413
- selectedRows: t(D),
420
+ ae(e.$slots, "title", {
421
+ selectedRows: t(N),
414
422
  selectedRowKeys: t(Ie),
415
423
  shownColumns: t(f),
416
- clearAll: P
424
+ clearAll: K
417
425
  })
418
426
  ], 2),
419
427
  R("div", {
420
- class: m(t(c)("grid-wrapper"))
428
+ class: m(t(d)("grid-wrapper"))
421
429
  }, [
422
- A(t(to), N(le(t(ce), t(de)), {
430
+ V(t(ro), A(t(lo)(t(ce), t(O)), {
431
+ "get-row-class": Ue,
423
432
  style: Oe.value,
424
433
  "row-data": t(S).records,
425
434
  "column-defs": t(ge),
426
435
  "default-col-def": t(fe),
427
436
  "suppress-loading-overlay": "",
428
- "row-selection": Pe.value,
437
+ "row-selection": Ke.value,
429
438
  "selection-column-def": t(be),
430
439
  "get-row-id": je,
431
- theme: t(ie),
440
+ theme: t(de),
432
441
  "tooltip-show-delay": 500,
433
442
  "enable-browser-tooltips": e.browserTooltips,
434
443
  "tooltip-interaction": "",
435
- "no-rows-overlay-component": Io,
444
+ "no-rows-overlay-component": To,
436
445
  onSortChanged: we,
437
- onGridReady: r[0] || (r[0] = (n) => d.value = n.api),
438
- onRowDataUpdated: U,
439
- onRowSelected: ze,
440
- onFirstDataRendered: Ee,
446
+ onGridReady: r[0] || (r[0] = (a) => c.value = a.api),
447
+ onRowDataUpdated: $,
448
+ onRowSelected: Pe,
449
+ onFirstDataRendered: ze,
441
450
  onRowClicked: Ge,
442
451
  onBodyScrollEnd: He
443
452
  }), null, 16, ["style", "row-data", "column-defs", "default-col-def", "row-selection", "selection-column-def", "theme", "enable-browser-tooltips"]),
444
- eo(R("div", {
453
+ oo(R("div", {
445
454
  class: m(t(B)("table-loading-wrapper"))
446
455
  }, [
447
- A(t(ao), { delay: 300 })
456
+ V(t(so), { delay: 300 })
448
457
  ], 2), [
449
- [oo, Ne.value]
458
+ [to, Ae.value]
450
459
  ])
451
460
  ], 2),
452
461
  R("div", {
453
- class: m(t(c)("pagination-wrapper"))
462
+ class: m(t(d)("pagination-wrapper"))
454
463
  }, [
455
- e.pagination !== !1 ? (C(), te(t(lo), N({
464
+ e.pagination !== !1 ? (v(), re(t(io), A({
456
465
  key: 0,
457
- class: t(c)("pagination")
458
- }, t(j).pagination, { onChange: We }), null, 16, ["class"])) : ee("", !0)
466
+ class: t(d)("pagination")
467
+ }, t(L).pagination, { onChange: We }), null, 16, ["class"])) : oe("", !0)
459
468
  ], 2)
460
469
  ], 6)
461
470
  ], 6));
462
471
  }
463
472
  });
464
473
  export {
465
- ot as default
474
+ rt as default
466
475
  };
@@ -235,16 +235,22 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
235
235
  virtual?: false | AgGridVirtualConfig;
236
236
  /**
237
237
  * 行点击事件
238
+ * @param event 事件
238
239
  * @param record 行数据
239
240
  * @returns
240
241
  */
241
- onRowClicked?: (record: RecordType) => void;
242
+ onRowClicked?: (record: RecordType, event?: Event | null) => void;
242
243
  /**
243
244
  * 表格滚动结束后的事件
244
245
  * @param direction
245
246
  * @returns
246
247
  */
247
248
  onScrollEnd?: (direction: ScrollDirection) => void;
249
+ /**
250
+ * 非固定行的的自定义行样式类
251
+ * @description 固定行自定义样式类请使用`summary.rowClassName`
252
+ */
253
+ rowClassName?: string | string[] | ((data: RecordType, rowIndex: number) => string | string[]);
248
254
  };
249
255
  export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
250
256
  /**
@@ -1,29 +1,30 @@
1
1
  import { useToken as d } from "@aplus-frontend/antdv/es/theme/internal";
2
2
  import { themeQuartz as n } from "ag-grid-community";
3
3
  import { computed as c } from "vue";
4
- const p = (e, r) => {
4
+ const h = (o, r) => {
5
5
  const [, a] = d();
6
6
  return c(() => {
7
- const t = e.value === "mini", o = a.value;
7
+ const t = o.value === "mini", e = a.value;
8
8
  return n.withParams({
9
9
  headerHeight: "36px",
10
10
  headerFontSize: "12px",
11
11
  dataFontSize: "12px",
12
12
  rowHeight: r.value,
13
13
  spacing: t ? "5px" : "6.5px",
14
- foregroundColor: o.colorTextBase,
14
+ foregroundColor: e.colorTextBase,
15
15
  wrapperBorder: !1,
16
- rowBorder: { color: o.colorBorderSecondary },
17
- headerRowBorder: { color: o.colorBorderSecondary },
18
- selectedRowBackgroundColor: o.controlItemBgActive,
19
- checkboxCheckedBackgroundColor: o.colorPrimary,
16
+ rowBorder: { color: e.colorBorderSecondary },
17
+ headerRowBorder: { color: e.colorBorderSecondary },
18
+ selectedRowBackgroundColor: e.controlItemBgActive,
19
+ checkboxCheckedBackgroundColor: e.colorPrimary,
20
20
  rowHoverColor: "var(--ap-color-bg-2)",
21
21
  headerBackgroundColor: "var(--ap-table-header-bg)",
22
22
  headerColumnResizeHandleHeight: "50%",
23
- headerColumnResizeHandleWidth: "1px"
23
+ headerColumnResizeHandleWidth: "1px",
24
+ wrapperBorderRadius: "4px"
24
25
  });
25
26
  });
26
27
  };
27
28
  export {
28
- p as useTheme
29
+ h as useTheme
29
30
  };
@@ -0,0 +1,2 @@
1
+ import { GridOptions } from 'ag-grid-community';
2
+ export declare function mergeProps(...options: GridOptions[]): GridOptions<any>;
@@ -0,0 +1,6 @@
1
+ function o(...e) {
2
+ return e.reduce((r, n) => ({ ...r, ...n }), {});
3
+ }
4
+ export {
5
+ o as mergeProps
6
+ };
@@ -1,6 +1,6 @@
1
- import { isEmpty as n } from "lodash-unified";
1
+ import { isEmpty as a } from "lodash-unified";
2
2
  import { formatterMap as o } from "./formatter/index.mjs";
3
- function i(r, e) {
3
+ function m(r, e) {
4
4
  const t = o[e.valueType];
5
5
  return t ? t(r, e.extraProps || {}) : r.value;
6
6
  }
@@ -15,15 +15,17 @@ function l(r, e) {
15
15
  return r == null || r === "";
16
16
  case "array":
17
17
  case "attachment":
18
- return n(r);
18
+ return a(r);
19
19
  default:
20
20
  return !r;
21
21
  }
22
22
  }
23
- function m(r = {}, e) {
23
+ function u(r = {}, e) {
24
24
  return e.fromGlobal ? {
25
25
  ...r,
26
- downloadFile: e.fromGlobal
26
+ downloadFile(t, n) {
27
+ return e.fromGlobal?.([{ fileName: n, objectName: t }]);
28
+ }
27
29
  } : !r?.downloadFile && e.fromConfig ? {
28
30
  ...r,
29
31
  downloadFile: e.fromConfig
@@ -31,6 +33,6 @@ function m(r = {}, e) {
31
33
  }
32
34
  export {
33
35
  l as isEmptyWithType,
34
- m as mixinsAttachmentExtraProps,
35
- i as transformValue
36
+ u as mixinsAttachmentExtraProps,
37
+ m as transformValue
36
38
  };
@@ -1,2 +1,2 @@
1
- declare const _default: "6.28.3";
1
+ declare const _default: "6.28.4";
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
- const e = "6.28.3";
1
+ const e = "6.28.4";
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"),Pe=require("ag-grid-vue3"),W=require("ag-grid-community"),G=require("@aplus-frontend/antdv"),S=require("lodash-unified");require("../config-provider/index.js");const De=require("../ap-form/index.js"),Ke=require("../ap-table/utils.js"),Ae=require("../ap-table/hooks/use-table-paging-ng.js"),Me=require("./hooks/use-row-selection.js"),Oe=require("./context.js"),Ue=require("../ap-table/context.js"),L=require("../ap-grid/constants.js"),je=require("@aplus-frontend/antdv/es/theme/internal"),We=require("./theme.js"),Ge=require("./hooks/use-columns.js"),Le=require("./hooks/use-columns-def.js"),$e=require("../utils/index.js"),He=require("../utils/slot.js"),_e=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const Je=require("./hooks/use-virtual-config.js"),Qe=require("./hooks/use-pinned-row.js"),Xe=require("./hooks/use-selection-col-def.js"),Ye=require("../config-provider/hooks/use-namespace.js"),Ze=require("./components/empty/index.vue2.js"),eo=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:{},customRow:{},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:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{}},setup($,{expose:H}){W.ModuleRegistry.registerModules([W.AllCommunityModule]);const t=$,F=e.useSlots();function _(...o){return o.reduce((r,n)=>({...r,...n}),{})}const{e:C,b:u,be:J}=Ye.useNamespace("ag-grid"),w=e.ref(t.size),Q=We.useTheme(w,e.toRef(t,"rowHeight")),X=Je.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:Y,getRowPinnedCellClass:Z}=Qe.usePinnedRow(e.toRef(t,"summary")),i=e.ref(),[,ee]=je.useToken();let d=!!t.dataSource;const q=_e.useSearchForm(t),{shownColumns:f,columns:z,columnKeys:oe}=Ge.useColumns(t),{defaultColDef:te,columnDefs:re}=Le.useColumnsDef(z,t,Z),v=e.ref({});Oe.useProvideSorter({sorter:v,setSorter(o){v.value=o}});const ne={asc:"ascend",desc:"descend"};function ae(){const o=i.value.getColumns()?.filter(l=>l.getSort()!==void 0),r=e.unref(v)||{};let n=o?.[0];const c=Object.keys(r);if(c.length&&c.every(l=>r[l]===null)){const l=Object.keys(r)[0];l&&(n=i.value?.getColumn(l))}if(!n)return;const s=n.getColDef(),g=n.getSort();I(void 0,void 0,{column:s,field:s.field,order:g?ne[g]:null})}const le=e.computed(()=>Ke.recursionApColumns(e.unref(f),o=>{if(o.sorter===!0)return o.key||o.dataIndex}).filter(Boolean)),se=e.computed(()=>$e.isDef(t.manual)?t.manual:He.getValidVNodeList(F.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:p,submit:R,reset:b,data:m,tableProps:V,handleTableChangeOptional:I,submitWith:N,refresh:T,getPaging:ue,setPaging:ie,setDataSource:ce}=Ae.useTablePaging({async request(o){if(d=!1,!pe.value&&S.isUndefined(t.dataSource)&&x(),!S.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(se),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:le}),de=Xe.default(t,f),fe=e.computed(()=>S.isUndefined(t.dataSource)?m.records:t.dataSource),pe=e.computed(()=>{const o=t.rowSelection===!0?{}:t.rowSelection;return o?o.preserveSelectedRowKeys!==!1:!1}),{select:me,unSelect:ge,selectedRows:B,selectedRowKeys:Se,clearAll:we,selectMultiByKeys:ye}=Me.default({...t.rowSelection===!0?{}:t.rowSelection,dataSource:fe,rowKey:t.rowKey}),he={checkbox:"multiRow",radio:"singleRow"},Ce=e.computed(()=>{if(!t.rowSelection)return;const{type:o="checkbox",disabled:r}=t.rowSelection===!0?{}:t.rowSelection;return{mode:he[o],isRowSelectable:n=>r?!r(n.data):!0}});function k(o){return S.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const E=({api:o=i.value})=>{if(!t.rowSelection)return;const r=B.value;if(!r.length){setTimeout(()=>{d=!0},0);return}d=!1;const n=[];o.forEachNode(c=>{const y=c.data,s=k(y);r.find(g=>k(g)===s)&&n.push(c)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{d=!0},0)},ve=o=>{d&&(o.node.isSelected()?me(o.data):ge(o.data))},Re=()=>{d=!0},x=()=>{we(),i.value?.deselectAll()};function be(o){ye(o),e.nextTick(()=>{E({})})}function P(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return p.value?.apForm?.[r]?.(!0)}function D(o){p.value?.apForm?.setFieldsValue?.(o)}function K(){return p.value?.getSorterItems()||[]}function A(o){p.value?.setSorterItems(o)}function M(){p.value?.resetSorterItems()}function O(o){return o&&String(o)}function Be(o){const r=i.value;if(!r)return;const n=r.getColumnState()||[],c=o.map(a=>a.key?String(a.key):a.key).filter(Boolean),y=n.map(a=>{if(!oe.value.includes(a.colId))return a;const h=!c.includes(a.colId),U={...a,hide:h},j=o.find(Ee=>O(Ee.key)===a.colId);return j&&(U.pinned=j.fixed||null),U}),s=new Map(o.map((a,h)=>[O(a.key),h])),g=y.filter(a=>s.has(a.colId)).sort((a,h)=>s.get(a.colId)-s.get(h.colId)),l=[];let Te=0;for(const a of y)s.has(a.colId)?l.push(g[Te++]):l.push(a);r.applyColumnState({state:l,applyOrder:!0})}Ue.useProvideApTable({columns:e.computed(()=>f.value),columnsBackup:e.computed(()=>z.value),size:e.computed(()=>L.sizeMap[w.value]),updateColumns(o){console.log("run reset",o),f.value=o,t.onShownColumnsChange?.(o),Be(o)},updateSize(o){w.value=L.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:J("table-header","title"),color:ee.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(m).records),getSearchFormValues:P,setSearchFormValues:D,submit:R,submitWith:N,reset:b,refresh:T,getSearchFormSorterItems:K,setSearchFormSorterItems:A,resetSearchFormSorterItems:M});const ke=e.computed(()=>S.isUndefined(t.loading)?m.loading:t.loading),xe=e.computed(()=>[u(),t.card?null:u("wrapper"),u("adaptive"),u(`size-${w.value}`)].filter(Boolean)),Fe=e.computed(()=>({height:"100%",...t.tableStyle||{}})),qe=(o,r)=>{I({current:o,pageSize:r})};function ze(o){const r=o.data;return k(r)}function Ve(o,r){i.value?.ensureIndexVisible(o,r)}function Ie(o){t.onRowClicked?.(o.data)}function Ne(o){t.onScrollEnd?.(o.direction)}return e.watch(()=>t.dataSource,o=>{ce(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{w.value=o}),e.watch(()=>e.unref(m).loading,o=>{t.onLoadingChange?.(o)}),H({submit:R,reset:b,refresh:T,submitWith:N,setSearchFormValues:D,getSearchFormValues:P,getShowColumns:()=>e.unref(f),rowSelection:{selectedRows:e.computed(()=>B.value),setSelectedRowKeys:be,clearAll:x},scrollToRow:Ve,getDataSource:()=>e.unref(m.records),getPaging:ue,setPaging:ie,getSearchFormSorterItems:K,setSearchFormSorterItems:A,resetSearchFormSorterItems:M}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(xe.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(S.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(q).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(C)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(De.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:p,"custom-reset":"","submit-loading":e.unref(V).loading,onSubmit:e.unref(R),onReset:e.unref(b)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(q),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[F.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(C)("table-wrapper"),o.card?e.unref(C)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(B),selectedRowKeys:e.unref(Se),shownColumns:e.unref(f),clearAll:x})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("grid-wrapper"))},[e.createVNode(e.unref(Pe.AgGridVue),e.mergeProps(_(e.unref(X),e.unref(Y)),{style:Fe.value,"row-data":e.unref(m).records,"column-defs":e.unref(re),"default-col-def":e.unref(te),"suppress-loading-overlay":"","row-selection":Ce.value,"selection-column-def":e.unref(de),"get-row-id":ze,theme:e.unref(Q),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","no-rows-overlay-component":Ze.default,onSortChanged:ae,onGridReady:r[0]||(r[0]=n=>i.value=n.api),onRowDataUpdated:E,onRowSelected:ve,onFirstDataRendered:Re,onRowClicked:Ie,onBodyScrollEnd:Ne}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","theme","enable-browser-tooltips"]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(C)("table-loading-wrapper"))},[e.createVNode(e.unref(G.Spin),{delay:300})],2),[[e.vShow,ke.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(G.Pagination),e.mergeProps({key:0,class:e.unref(u)("pagination")},e.unref(V).pagination,{onChange:qe}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=eo;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Ee=require("ag-grid-vue3"),$=require("ag-grid-community"),De=require("./utils.js"),G=require("@aplus-frontend/antdv"),d=require("lodash-unified");require("../config-provider/index.js");const Ke=require("../ap-form/index.js"),Ae=require("../ap-table/utils.js"),Me=require("../ap-table/hooks/use-table-paging-ng.js"),Oe=require("./hooks/use-row-selection.js"),Ue=require("./context.js"),je=require("../ap-table/context.js"),L=require("../ap-grid/constants.js"),We=require("@aplus-frontend/antdv/es/theme/internal"),$e=require("./theme.js"),Ge=require("./hooks/use-columns.js"),Le=require("./hooks/use-columns-def.js"),He=require("../utils/index.js"),_e=require("../utils/slot.js"),Je=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const Qe=require("./hooks/use-virtual-config.js"),Xe=require("./hooks/use-pinned-row.js"),Ye=require("./hooks/use-selection-col-def.js"),Ze=require("../config-provider/hooks/use-namespace.js"),eo=require("./components/empty/index.vue2.js"),oo=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:{},customRow:{},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:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{}},setup(H,{expose:_}){$.ModuleRegistry.registerModules([$.AllCommunityModule]);const t=H,F=e.useSlots(),{e:C,b:u,be:J}=Ze.useNamespace("ag-grid"),w=e.ref(t.size),Q=$e.useTheme(w,e.toRef(t,"rowHeight")),X=Qe.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:q,getRowPinnedCellClass:Y}=Xe.usePinnedRow(e.toRef(t,"summary")),i=e.ref(),[,Z]=We.useToken();let f=!!t.dataSource;const N=Je.useSearchForm(t),{shownColumns:m,columns:z,columnKeys:ee}=Ge.useColumns(t),{defaultColDef:oe,columnDefs:te}=Le.useColumnsDef(z,t,Y),v=e.ref({});Ue.useProvideSorter({sorter:v,setSorter(o){v.value=o}});const re={asc:"ascend",desc:"descend"};function ne(){const o=i.value.getColumns()?.filter(l=>l.getSort()!==void 0),r=e.unref(v)||{};let n=o?.[0];const c=Object.keys(r);if(c.length&&c.every(l=>r[l]===null)){const l=Object.keys(r)[0];l&&(n=i.value?.getColumn(l))}if(!n)return;const s=n.getColDef(),S=n.getSort();P(void 0,void 0,{column:s,field:s.field,order:S?re[S]:null})}const ae=e.computed(()=>Ae.recursionApColumns(e.unref(m),o=>{if(o.sorter===!0)return o.key||o.dataIndex}).filter(Boolean)),le=e.computed(()=>He.isDef(t.manual)?t.manual:_e.getValidVNodeList(F.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:p,submit:R,reset:b,data:g,tableProps:I,handleTableChangeOptional:P,submitWith:T,refresh:V,getPaging:se,setPaging:ue,setDataSource:ie}=Me.useTablePaging({async request(o){if(f=!1,!fe.value&&d.isUndefined(t.dataSource)&&x(),!d.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(le),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ae}),ce=Ye.default(t,m),de=e.computed(()=>d.isUndefined(t.dataSource)?g.records:t.dataSource),fe=e.computed(()=>{const o=t.rowSelection===!0?{}:t.rowSelection;return o?o.preserveSelectedRowKeys!==!1:!1}),{select:me,unSelect:pe,selectedRows:B,selectedRowKeys:ge,clearAll:Se,selectMultiByKeys:we}=Oe.default({...t.rowSelection===!0?{}:t.rowSelection,dataSource:de,rowKey:t.rowKey}),ye={checkbox:"multiRow",radio:"singleRow"},he=e.computed(()=>{if(!t.rowSelection)return;const{type:o="checkbox",disabled:r}=t.rowSelection===!0?{}:t.rowSelection;return{mode:ye[o],isRowSelectable:n=>r?!r(n.data):!0}});function k(o){return d.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const E=({api:o=i.value})=>{if(!t.rowSelection)return;const r=B.value;if(!r.length){setTimeout(()=>{f=!0},0);return}f=!1;const n=[];o.forEachNode(c=>{const y=c.data,s=k(y);r.find(S=>k(S)===s)&&n.push(c)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{f=!0},0)},Ce=o=>{f&&(o.node.isSelected()?me(o.data):pe(o.data))},ve=()=>{f=!0},x=()=>{Se(),i.value?.deselectAll()};function Re(o){we(o),e.nextTick(()=>{E({})})}function D(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return p.value?.apForm?.[r]?.(!0)}function K(o){p.value?.apForm?.setFieldsValue?.(o)}function A(){return p.value?.getSorterItems()||[]}function M(o){p.value?.setSorterItems(o)}function O(){p.value?.resetSorterItems()}function U(o){return o&&String(o)}function be(o){const r=i.value;if(!r)return;const n=r.getColumnState()||[],c=o.map(a=>a.key?String(a.key):a.key).filter(Boolean),y=n.map(a=>{if(!ee.value.includes(a.colId))return a;const h=!c.includes(a.colId),j={...a,hide:h},W=o.find(Ve=>U(Ve.key)===a.colId);return W&&(j.pinned=W.fixed||null),j}),s=new Map(o.map((a,h)=>[U(a.key),h])),S=y.filter(a=>s.has(a.colId)).sort((a,h)=>s.get(a.colId)-s.get(h.colId)),l=[];let Te=0;for(const a of y)s.has(a.colId)?l.push(S[Te++]):l.push(a);r.applyColumnState({state:l,applyOrder:!0})}je.useProvideApTable({columns:e.computed(()=>m.value),columnsBackup:e.computed(()=>z.value),size:e.computed(()=>L.sizeMap[w.value]),updateColumns(o){console.log("run reset",o),m.value=o,t.onShownColumnsChange?.(o),be(o)},updateSize(o){w.value=L.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:J("table-header","title"),color:Z.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(g).records),getSearchFormValues:D,setSearchFormValues:K,submit:R,submitWith:T,reset:b,refresh:V,getSearchFormSorterItems:A,setSearchFormSorterItems:M,resetSearchFormSorterItems:O});const Be=e.computed(()=>d.isUndefined(t.loading)?g.loading:t.loading),ke=e.computed(()=>[u(),t.card?null:u("wrapper"),u("adaptive"),u(`size-${w.value}`)].filter(Boolean)),xe=e.computed(()=>({height:"100%",...t.tableStyle||{}})),Fe=(o,r)=>{P({current:o,pageSize:r})};function qe(o){const r=o.data;return k(r)}function Ne(o,r){i.value?.ensureIndexVisible(o,r)}function ze(o){t.onRowClicked?.(o.data,o.event)}function Ie(o){t.onScrollEnd?.(o.direction)}const Pe=o=>{const r=[q.value.getRowClass?.(o)];if(!o.node.rowPinned){const n=d.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=>{ie(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{w.value=o}),e.watch(()=>e.unref(g).loading,o=>{t.onLoadingChange?.(o)}),_({submit:R,reset:b,refresh:V,submitWith:T,setSearchFormValues:K,getSearchFormValues:D,getShowColumns:()=>e.unref(m),rowSelection:{selectedRows:e.computed(()=>B.value),setSelectedRowKeys:Re,clearAll:x},scrollToRow:Ne,getDataSource:()=>e.unref(g.records),getPaging:se,setPaging:ue,getSearchFormSorterItems:A,setSearchFormSorterItems:M,resetSearchFormSorterItems:O}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(ke.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(d.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(N).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(C)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(Ke.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:p,"custom-reset":"","submit-loading":e.unref(I).loading,onSubmit:e.unref(R),onReset:e.unref(b)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[F.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(C)("table-wrapper"),o.card?e.unref(C)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(B),selectedRowKeys:e.unref(ge),shownColumns:e.unref(m),clearAll:x})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("grid-wrapper"))},[e.createVNode(e.unref(Ee.AgGridVue),e.mergeProps(e.unref(De.mergeProps)(e.unref(X),e.unref(q)),{"get-row-class":Pe,style:xe.value,"row-data":e.unref(g).records,"column-defs":e.unref(te),"default-col-def":e.unref(oe),"suppress-loading-overlay":"","row-selection":he.value,"selection-column-def":e.unref(ce),"get-row-id":qe,theme:e.unref(Q),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","no-rows-overlay-component":eo.default,onSortChanged:ne,onGridReady:r[0]||(r[0]=n=>i.value=n.api),onRowDataUpdated:E,onRowSelected:Ce,onFirstDataRendered:ve,onRowClicked:ze,onBodyScrollEnd:Ie}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","theme","enable-browser-tooltips"]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(C)("table-loading-wrapper"))},[e.createVNode(e.unref(G.Spin),{delay:300})],2),[[e.vShow,Be.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(G.Pagination),e.mergeProps({key:0,class:e.unref(u)("pagination")},e.unref(I).pagination,{onChange:Fe}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=oo;
@@ -235,16 +235,22 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
235
235
  virtual?: false | AgGridVirtualConfig;
236
236
  /**
237
237
  * 行点击事件
238
+ * @param event 事件
238
239
  * @param record 行数据
239
240
  * @returns
240
241
  */
241
- onRowClicked?: (record: RecordType) => void;
242
+ onRowClicked?: (record: RecordType, event?: Event | null) => void;
242
243
  /**
243
244
  * 表格滚动结束后的事件
244
245
  * @param direction
245
246
  * @returns
246
247
  */
247
248
  onScrollEnd?: (direction: ScrollDirection) => void;
249
+ /**
250
+ * 非固定行的的自定义行样式类
251
+ * @description 固定行自定义样式类请使用`summary.rowClassName`
252
+ */
253
+ rowClassName?: string | string[] | ((data: RecordType, rowIndex: number) => string | string[]);
248
254
  };
249
255
  export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
250
256
  /**
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@aplus-frontend/antdv/es/theme/internal"),c=require("ag-grid-community"),d=require("vue"),l=(o,r)=>{const[,a]=n.useToken();return d.computed(()=>{const t=o.value==="mini",e=a.value;return c.themeQuartz.withParams({headerHeight:"36px",headerFontSize:"12px",dataFontSize:"12px",rowHeight:r.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"})})};exports.useTheme=l;
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;
@@ -0,0 +1,2 @@
1
+ import { GridOptions } from 'ag-grid-community';
2
+ export declare function mergeProps(...options: GridOptions[]): GridOptions<any>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function o(...e){return e.reduce((r,t)=>({...r,...t}),{})}exports.mergeProps=o;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("lodash-unified"),a=require("./formatter/index.js");function i(e,r){const t=a.formatterMap[r.valueType];return t?t(e,r.extraProps||{}):e.value}function o(e,r){if(r.isShowEmptyPlaceholder===!1)return!1;switch(r.valueType){case"text":case"number":case"dateRange":case"date":return e==null||e==="";case"array":case"attachment":return n.isEmpty(e);default:return!e}}function f(e={},r){return r.fromGlobal?{...e,downloadFile:r.fromGlobal}:!e?.downloadFile&&r.fromConfig?{...e,downloadFile:r.fromConfig}:e}exports.isEmptyWithType=o;exports.mixinsAttachmentExtraProps=f;exports.transformValue=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("lodash-unified"),i=require("./formatter/index.js");function o(e,r){const t=i.formatterMap[r.valueType];return t?t(e,r.extraProps||{}):e.value}function f(e,r){if(r.isShowEmptyPlaceholder===!1)return!1;switch(r.valueType){case"text":case"number":case"dateRange":case"date":return e==null||e==="";case"array":case"attachment":return a.isEmpty(e);default:return!e}}function l(e={},r){return r.fromGlobal?{...e,downloadFile(t,n){return r.fromGlobal?.([{fileName:n,objectName:t}])}}:!e?.downloadFile&&r.fromConfig?{...e,downloadFile:r.fromConfig}:e}exports.isEmptyWithType=f;exports.mixinsAttachmentExtraProps=l;exports.transformValue=o;
@@ -1,2 +1,2 @@
1
- declare const _default: "6.28.3";
1
+ declare const _default: "6.28.4";
2
2
  export default _default;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.28.3";exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.28.4";exports.default=e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aplus-frontend/ui",
3
- "version": "6.28.3",
3
+ "version": "6.28.4",
4
4
  "main": "./lib/index.js",
5
5
  "type": "module",
6
6
  "files": [
@@ -690,3 +690,6 @@
690
690
  user-select: text;
691
691
  -webkit-user-select: text;
692
692
  }
693
+ .aplus-ag-grid .ag-cell-focus:not(.ag-cell-range-selected):focus-within {
694
+ border-color: transparent;
695
+ }
@@ -154,16 +154,12 @@
154
154
  max-width: 300px;
155
155
  word-break: break-all;
156
156
  }
157
- // .ag-pinned-left-header, .ag-pinned-left-cols-container {
158
- // z-index: 1;
159
- // box-shadow: 8px 0px 10px -5px var(--ap-grid-fixed-scrolling-box-shadow-color);
160
- // border-right-color: transparent !important;
161
- // }
162
- // .ag-cell-last-left-pinned {
163
- // border-right-color: transparent !important;
164
- // }
165
157
  .ag-unselectable {
166
158
  user-select: text;
167
159
  -webkit-user-select: text;
168
160
  }
161
+ // avoid cell selectable style
162
+ .ag-cell-focus:not(.ag-cell-range-selected):focus-within {
163
+ border-color: transparent;
164
+ }
169
165
  });
@@ -80,6 +80,8 @@
80
80
  flex-shrink: 0;
81
81
  width: 16px;
82
82
  margin-left: 4px;
83
+ display: flex;
84
+ align-items: center;
83
85
  }
84
86
  .aplus-ap-copy__copy-btn .aplus-frontend-icon {
85
87
  cursor: pointer;
@@ -38,6 +38,8 @@
38
38
  flex-shrink: 0; // 防止按钮被压缩
39
39
  width: 16px;
40
40
  margin-left:4px;
41
+ display: flex;
42
+ align-items: center;
41
43
  .aplus-frontend-icon{
42
44
  cursor: pointer;
43
45
  color:#ABB7CC;
package/theme/index.css CHANGED
@@ -1755,6 +1755,8 @@
1755
1755
  flex-shrink: 0;
1756
1756
  width: 16px;
1757
1757
  margin-left: 4px;
1758
+ display: flex;
1759
+ align-items: center;
1758
1760
  }
1759
1761
  .aplus-ap-copy__copy-btn .aplus-frontend-icon {
1760
1762
  cursor: pointer;
@@ -4387,6 +4389,9 @@ div.aplus-ap-info-layout-admin__header-shadow.aplus-ap-info-layout-admin__sticky
4387
4389
  user-select: text;
4388
4390
  -webkit-user-select: text;
4389
4391
  }
4392
+ .aplus-ag-grid .ag-cell-focus:not(.ag-cell-range-selected):focus-within {
4393
+ border-color: transparent;
4394
+ }
4390
4395
  .aplus-ap-value-select-card {
4391
4396
  position: relative;
4392
4397
  margin-top: 8px;