@kong-ui-public/table-data-grid 0.3.12 → 0.3.14-pr.3713.032a726e9.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.
package/README.md CHANGED
@@ -212,6 +212,34 @@ should opt out of the default flexible fill behavior.
212
212
  | `width` | `number` | No | Explicit initial AG Grid column width in pixels. Columns with `width` do not receive default flex sizing. |
213
213
  | `minWidth` | `number` | No | Minimum AG Grid column width in pixels. Columns with only `minWidth` still fill available width by default. |
214
214
  | `maxWidth` | `number` | No | Maximum AG Grid column width in pixels. Columns with `maxWidth` do not receive default flex sizing. |
215
+ | `disableRowClick` | `boolean` | No | Suppresses `row:click` for clicks landing in this column's cells, e.g. an actions column. `cell:click` still fires. |
216
+
217
+ ## Custom Cell Content
218
+
219
+ Columns render custom cell content through a slot named after `header.key`.
220
+ Columns without a matching slot render their raw `rowValue`.
221
+
222
+ ```vue
223
+ <TableDataGrid
224
+ :fetcher="fetchRows"
225
+ :headers="headers"
226
+ >
227
+ <template #status="{ rowValue }">
228
+ <KBadge :appearance="rowValue === 'active' ? 'success' : 'neutral'">
229
+ {{ rowValue }}
230
+ </KBadge>
231
+ </template>
232
+ </TableDataGrid>
233
+ ```
234
+
235
+ | Field | Type | Notes |
236
+ | --- | --- | --- |
237
+ | `row` | `Row` | The full row record backing this cell. |
238
+ | `rowValue` | `unknown` | `row[header.key]`. |
239
+ | `column` | `TableDataGridHeader<Row>` | The header definition for this column. |
240
+ | `rowIndex` | `number` | The row's index in the currently loaded block. |
241
+ | `selected` | `boolean` | Whether the row is currently selected. |
242
+ | `refreshCell` | `() => void` | Forces AG Grid to re-render this cell. |
215
243
 
216
244
  ## Events
217
245
 
@@ -219,6 +247,8 @@ should opt out of the default flexible fill behavior.
219
247
  | --- | --- | --- |
220
248
  | `grid:ready` | `GridApi<Row>` | AG Grid is ready. |
221
249
  | `state` | `{ state: 'loading' \| 'success' \| 'error', hasData: boolean }` | Internal fetch lifecycle changes after the datasource starts requesting rows. |
250
+ | `row:click` | `(row: TableDataGridRowClickPayload<Row>, event: RowClickedEvent<Row>)` | A row is clicked, unless the click landed in a `disableRowClick` column. |
251
+ | `cell:click` | `TableDataGridCellClickPayload<Row>` | Any cell is clicked, including cells in `disableRowClick` columns. |
222
252
 
223
253
  ## Slots
224
254
 
@@ -226,6 +256,7 @@ should opt out of the default flexible fill behavior.
226
256
  | --- | --- |
227
257
  | `empty-state` | Replaces the default empty state after a successful empty first block. |
228
258
  | `error-state` | Replaces the default visible error state when `error` is true. |
259
+ | `[columnKey]` | Renders custom cell content for the column matching `header.key`. See [Custom Cell Content](#custom-cell-content). |
229
260
 
230
261
  ## Exports
231
262
 
@@ -233,6 +264,9 @@ should opt out of the default flexible fill behavior.
233
264
  - `TableDataGridMode`
234
265
  - `TableDataGridState`
235
266
  - `TableDataGridStatePayload`
267
+ - `TableDataGridRowClickPayload`
268
+ - `TableDataGridCellClickPayload`
269
+ - `TableDataGridCellSlotProps`
236
270
  - `TableDataGridHeader`
237
271
  - `TableDataGridInfiniteFetcherParams`
238
272
  - `TableDataGridFetcherResult`
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .table-data-grid-cell-renderer,.table-data-grid-cell-tooltip,.table-data-grid-cell-content{display:block;min-width:0;width:100%}.table-data-grid-cell-content{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kong-ui-public-table-data-grid[data-v-b8bd22c9]{border:none;border-radius:4px;border-radius:var(--kui-border-radius-20, 4px);box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;width:100%}.table-data-grid-grid[data-v-b8bd22c9]{--ag-background-color: var(--kui-color-background, #ffffff);--ag-border-color: var(--kui-color-border, #e0e4ea);--ag-foreground-color: var(--kui-color-text, #000933);--ag-header-background-color: var(--kui-color-background, #ffffff);--ag-header-column-border: 1px solid var(--kui-color-border, #e0e4ea);--ag-header-column-border-height: 30%;--ag-header-column-resize-handle-color: transparent;--ag-header-font-weight: var(--kui-font-weight-semibold, 600);--ag-header-text-color: var(--kui-color-text-neutral, #6c7489);--ag-wrapper-border: none;--ag-wrapper-border-radius: 0;flex:1 1 auto;min-height:0;width:100%}.ag-cell{align-items:center;display:flex;min-width:0}.ag-cell-wrapper,.ag-cell-value{min-width:0;width:100%}
1
+ .table-data-grid-cell-renderer,.table-data-grid-cell-tooltip,.table-data-grid-cell-content{display:block;min-width:0;width:100%}.table-data-grid-cell-content{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kong-ui-public-table-data-grid[data-v-e14d8346]{border:none;border-radius:4px;border-radius:var(--kui-border-radius-20, 4px);box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;width:100%}.table-data-grid-grid[data-v-e14d8346]{--ag-background-color: var(--kui-color-background, #ffffff);--ag-border-color: var(--kui-color-border, #e0e4ea);--ag-foreground-color: var(--kui-color-text, #0d0e14);--ag-header-background-color: var(--kui-color-background, #ffffff);--ag-header-column-border: 1px solid var(--kui-color-border, #e0e4ea);--ag-header-column-border-height: 30%;--ag-header-column-resize-handle-color: transparent;--ag-header-font-weight: var(--kui-font-weight-semibold, 600);--ag-header-text-color: var(--kui-color-text-neutral, #6c7489);--ag-wrapper-border: none;--ag-wrapper-border-radius: 0;flex:1 1 auto;min-height:0;width:100%}.ag-cell{align-items:center;display:flex;min-width:0}.ag-cell-wrapper,.ag-cell-value{min-width:0;width:100%}
@@ -1,276 +1,341 @@
1
- import { defineComponent as A, shallowRef as N, ref as R, computed as k, onMounted as W, watch as O, onUnmounted as V, nextTick as $, resolveComponent as T, openBlock as w, createElementBlock as G, createVNode as I, withCtx as j, createElementVNode as q, toDisplayString as H, readonly as _, renderSlot as x, unref as S, createBlock as P } from "vue";
2
- import { AgGridVue as Q } from "ag-grid-vue3";
3
- import { ModuleRegistry as J, AllCommunityModule as X, InfiniteRowModelModule as Y, themeQuartz as Z } from "ag-grid-community";
4
- import { createI18n as ee, i18nTComponent as te } from "@kong-ui-public/i18n";
5
- const ae = { class: "table-data-grid-cell-renderer" }, oe = /* @__PURE__ */ A({
6
- name: "TableDataGridCellRenderer",
7
- __name: "TableDataGridCellRenderer",
8
- props: {
9
- params: {}
10
- },
11
- setup(e, { expose: i }) {
12
- const a = N(e.params), t = R(null), r = R(!1), h = k(() => a.value.valueFormatted ?? String(a.value.value ?? ""));
13
- let f, u, m = !1;
14
- const C = () => {
15
- const d = t.value;
16
- r.value = !!d && d.scrollWidth > d.clientWidth;
17
- }, p = () => {
18
- m || (u !== void 0 && cancelAnimationFrame(u), u = requestAnimationFrame(() => {
19
- u = void 0, C();
20
- }));
21
- }, g = (d) => {
22
- if (f?.disconnect(), d) {
23
- f?.observe(d);
24
- const y = d.closest(".ag-cell");
25
- y && f?.observe(y);
26
- }
27
- p();
28
- };
29
- return W(() => {
30
- f = new ResizeObserver(p), g(t.value);
31
- }), O(t, g, { flush: "post" }), V(() => {
32
- m = !0, f?.disconnect(), u !== void 0 && cancelAnimationFrame(u);
33
- }), i({
34
- refresh(d) {
35
- return a.value = d, $(p), !0;
36
- }
37
- }), (d, y) => {
38
- const E = T("KTooltip");
39
- return w(), G("span", ae, [
40
- I(E, {
41
- class: "table-data-grid-cell-tooltip",
42
- disabled: !r.value,
43
- "kpop-attributes": { popoverDelay: 400 },
44
- "max-width": "300",
45
- placement: "bottom-start",
46
- target: "body",
47
- text: h.value
48
- }, {
49
- default: j(() => [
50
- q("span", {
51
- ref_key: "contentElement",
52
- ref: t,
53
- class: "table-data-grid-cell-content"
54
- }, H(h.value), 513)
55
- ]),
56
- _: 1
57
- }, 8, ["disabled", "text"])
58
- ]);
59
- };
60
- }
61
- });
1
+ import { computed as g, watch as T, ref as I, shallowRef as N, readonly as G, defineComponent as L, onMounted as $, onUnmounted as P, nextTick as j, resolveComponent as U, openBlock as R, createBlock as V, resolveDynamicComponent as q, createElementBlock as x, createVNode as O, withCtx as H, createElementVNode as Q, toDisplayString as J, useSlots as X, toRef as A, renderSlot as K, unref as C } from "vue";
2
+ import { AgGridVue as Y } from "ag-grid-vue3";
3
+ import { ModuleRegistry as Z, AllCommunityModule as ee, InfiniteRowModelModule as te, themeQuartz as ae } from "ag-grid-community";
4
+ import { createI18n as oe, i18nTComponent as le } from "@kong-ui-public/i18n";
62
5
  var F = /* @__PURE__ */ ((e) => (e.PENDING = "PENDING", e.LOADING = "LOADING", e.SUCCESS = "SUCCESS", e.ERROR = "ERROR", e))(F || {});
63
- const re = (e) => !!e?.length;
64
- function ne(e, i, a, t = re) {
65
- const r = k(() => t(e.value)), h = k(() => {
66
- const u = e.value !== void 0, m = i.value !== void 0 && i.value !== null;
67
- return a.value ? "LOADING" : r.value ? "SUCCESS" : m ? "ERROR" : u ? "SUCCESS" : "PENDING";
6
+ const ne = (e) => !!e?.length;
7
+ function re(e, c, t, a = ne) {
8
+ const r = g(() => a(e.value)), i = g(() => {
9
+ const y = e.value !== void 0, o = c.value !== void 0 && c.value !== null;
10
+ return t.value ? "LOADING" : r.value ? "SUCCESS" : o ? "ERROR" : y ? "SUCCESS" : "PENDING";
68
11
  });
69
12
  return {
70
13
  fetchState: F,
71
14
  hasData: r,
72
- state: h
15
+ state: i
73
16
  };
74
17
  }
75
18
  const se = ({
76
19
  emitState: e,
77
- fetchLifecycleState: i,
78
- hasData: a
20
+ fetchLifecycleState: c,
21
+ hasData: t
79
22
  }) => {
80
- O(
23
+ T(
81
24
  () => ({
82
- hasData: a.value,
83
- state: i.value
25
+ hasData: t.value,
26
+ state: c.value
84
27
  }),
85
- ({ hasData: t, state: r }) => {
28
+ ({ hasData: a, state: r }) => {
86
29
  if (r !== F.PENDING) {
87
30
  if (r === F.LOADING) {
88
31
  e({
89
- hasData: t,
32
+ hasData: a,
90
33
  state: "loading"
91
34
  });
92
35
  return;
93
36
  }
94
37
  if (r === F.ERROR) {
95
38
  e({
96
- hasData: t,
39
+ hasData: a,
97
40
  state: "error"
98
41
  });
99
42
  return;
100
43
  }
101
44
  e({
102
- hasData: t,
45
+ hasData: a,
103
46
  state: "success"
104
47
  });
105
48
  }
106
49
  }
107
50
  );
108
- }, le = ({ startRow: e, endRow: i }) => {
109
- const a = i - e;
51
+ }, ce = ({ startRow: e, endRow: c }) => {
52
+ const t = c - e;
110
53
  return {
111
- blockIndex: a > 0 ? Math.floor(e / a) : 0,
112
- pageSize: a
54
+ blockIndex: t > 0 ? Math.floor(e / t) : 0,
55
+ pageSize: t
113
56
  };
114
57
  }, ie = ({
115
58
  startRow: e,
116
- rowsLength: i,
117
- pageSize: a,
118
- total: t,
59
+ rowsLength: c,
60
+ pageSize: t,
61
+ total: a,
119
62
  hasMore: r
120
63
  }) => {
121
- if (typeof t == "number")
122
- return t;
123
- if (r !== !0 && (r === !1 || i < a))
124
- return e + i;
125
- }, ce = ({
64
+ if (typeof a == "number")
65
+ return a;
66
+ if (r !== !0 && (r === !1 || c < t))
67
+ return e + c;
68
+ }, ue = ({
126
69
  fetcher: e,
127
- resetKey: i
70
+ resetKey: c
128
71
  }) => {
129
- const a = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), r = R(0), h = N(), f = N(), u = N(), m = R(0), C = R(!1), p = (o) => o === r.value, g = () => {
130
- C.value = m.value > 0;
131
- }, d = () => {
132
- u.value = void 0, m.value += 1, g();
133
- }, y = () => {
134
- m.value = Math.max(0, m.value - 1), g();
135
- }, E = (o) => {
136
- const n = t.get(o);
137
- if (n)
138
- return n;
139
- let s;
140
- const v = {
141
- promise: new Promise((l) => {
142
- s = l;
72
+ const t = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), r = I(0), i = N(), v = N(), y = N(), o = I(0), u = I(!1), m = (l) => l === r.value, k = () => {
73
+ u.value = o.value > 0;
74
+ }, E = () => {
75
+ y.value = void 0, o.value += 1, k();
76
+ }, w = () => {
77
+ o.value = Math.max(0, o.value - 1), k();
78
+ }, D = (l) => {
79
+ const s = a.get(l);
80
+ if (s)
81
+ return s;
82
+ let d;
83
+ const h = {
84
+ promise: new Promise((f) => {
85
+ d = f;
143
86
  }),
144
- resolve: (l) => s(l)
87
+ resolve: (f) => d(f)
145
88
  };
146
- return t.set(o, v), v;
147
- }, b = (o, n) => {
148
- n.resolve(!1), t.get(o) === n && t.delete(o);
149
- }, c = async ({
150
- blockIndex: o,
151
- currentBlockCompletion: n,
152
- datasourceId: s
89
+ return a.set(l, h), h;
90
+ }, n = (l, s) => {
91
+ s.resolve(!1), a.get(l) === s && a.delete(l);
92
+ }, b = async ({
93
+ blockIndex: l,
94
+ currentBlockCompletion: s,
95
+ datasourceId: d
153
96
  }) => {
154
- if (o === 0)
97
+ if (l === 0)
155
98
  return "ready";
156
- const v = t.get(o - 1);
157
- if (!v)
158
- return b(o, n), "failed";
159
- const l = await v.promise;
160
- return p(s) ? l ? "ready" : (b(o, n), "failed") : (b(o, n), "stale");
161
- }, M = ({
162
- blockIndex: o,
163
- currentBlockCompletion: n,
164
- getRowsParams: s,
165
- pageSize: v,
166
- result: l
99
+ const h = a.get(l - 1);
100
+ if (!h)
101
+ return n(l, s), "failed";
102
+ const f = await h.promise;
103
+ return m(d) ? f ? "ready" : (n(l, s), "failed") : (n(l, s), "stale");
104
+ }, S = ({
105
+ blockIndex: l,
106
+ currentBlockCompletion: s,
107
+ getRowsParams: d,
108
+ pageSize: h,
109
+ result: f
167
110
  }) => {
168
- l.cursor !== void 0 && a.set(o, l.cursor), s.successCallback(l.data, ie({
169
- startRow: s.startRow,
170
- rowsLength: l.data.length,
171
- pageSize: v,
172
- total: l.total,
173
- hasMore: l.hasMore
174
- })), s.startRow === 0 && (f.value = l.data), n.resolve(!0);
175
- }, D = ({
176
- blockIndex: o,
177
- currentBlockCompletion: n,
178
- fetchError: s,
179
- getRowsParams: v
111
+ f.cursor !== void 0 && t.set(l, f.cursor), d.successCallback(f.data, ie({
112
+ startRow: d.startRow,
113
+ rowsLength: f.data.length,
114
+ pageSize: h,
115
+ total: f.total,
116
+ hasMore: f.hasMore
117
+ })), d.startRow === 0 && (v.value = f.data), s.resolve(!0);
118
+ }, _ = ({
119
+ blockIndex: l,
120
+ currentBlockCompletion: s,
121
+ fetchError: d,
122
+ getRowsParams: h
180
123
  }) => {
181
- u.value = s, v.failCallback(), b(o, n);
182
- }, K = () => {
183
- const o = r.value + 1;
184
- return r.value = o, a.clear(), t.clear(), f.value = void 0, u.value = void 0, m.value = 0, g(), {
185
- async getRows(n) {
124
+ y.value = d, h.failCallback(), n(l, s);
125
+ }, B = () => {
126
+ const l = r.value + 1;
127
+ return r.value = l, t.clear(), a.clear(), v.value = void 0, y.value = void 0, o.value = 0, k(), {
128
+ async getRows(s) {
186
129
  const {
187
- blockIndex: s,
188
- pageSize: v
189
- } = le({
190
- startRow: n.startRow,
191
- endRow: n.endRow
192
- }), l = E(s), z = await c({
193
- blockIndex: s,
194
- currentBlockCompletion: l,
195
- datasourceId: o
130
+ blockIndex: d,
131
+ pageSize: h
132
+ } = ce({
133
+ startRow: s.startRow,
134
+ endRow: s.endRow
135
+ }), f = D(d), z = await b({
136
+ blockIndex: d,
137
+ currentBlockCompletion: f,
138
+ datasourceId: l
196
139
  });
197
140
  if (z !== "ready") {
198
- z === "failed" && n.failCallback();
141
+ z === "failed" && s.failCallback();
199
142
  return;
200
143
  }
201
- d();
144
+ E();
202
145
  try {
203
- const B = s > 0 ? a.get(s - 1) : void 0, U = await e({
146
+ const M = d > 0 ? t.get(d - 1) : void 0, W = await e({
204
147
  mode: "infinite",
205
- pageSize: v,
206
- cursor: B
148
+ pageSize: h,
149
+ cursor: M
207
150
  });
208
- if (!p(o)) {
209
- b(s, l);
151
+ if (!m(l)) {
152
+ n(d, f);
210
153
  return;
211
154
  }
212
- M({
213
- blockIndex: s,
214
- currentBlockCompletion: l,
215
- getRowsParams: n,
216
- pageSize: v,
217
- result: U
155
+ S({
156
+ blockIndex: d,
157
+ currentBlockCompletion: f,
158
+ getRowsParams: s,
159
+ pageSize: h,
160
+ result: W
218
161
  });
219
- } catch (B) {
220
- if (!p(o)) {
221
- b(s, l);
162
+ } catch (M) {
163
+ if (!m(l)) {
164
+ n(d, f);
222
165
  return;
223
166
  }
224
- D({
225
- blockIndex: s,
226
- currentBlockCompletion: l,
227
- fetchError: B,
228
- getRowsParams: n
167
+ _({
168
+ blockIndex: d,
169
+ currentBlockCompletion: f,
170
+ fetchError: M,
171
+ getRowsParams: s
229
172
  });
230
173
  } finally {
231
- p(o) && y();
174
+ m(l) && w();
232
175
  }
233
176
  }
234
177
  };
235
- }, L = () => {
236
- h.value = K();
178
+ }, p = () => {
179
+ i.value = B();
237
180
  };
238
- return O(
239
- () => i?.value,
181
+ return T(
182
+ () => c?.value,
240
183
  () => {
241
- L();
184
+ p();
242
185
  },
243
186
  { immediate: !0 }
244
187
  ), {
245
- datasource: _(h),
246
- data: _(f),
247
- error: _(u),
248
- isFetching: _(C)
188
+ datasource: G(i),
189
+ data: G(v),
190
+ error: G(y),
191
+ isFetching: G(u)
192
+ };
193
+ }, de = {
194
+ key: 1,
195
+ class: "table-data-grid-cell-renderer"
196
+ }, fe = /* @__PURE__ */ L({
197
+ name: "TableDataGridCellRenderer",
198
+ __name: "TableDataGridCellRenderer",
199
+ props: {
200
+ params: {}
201
+ },
202
+ setup(e, { expose: c }) {
203
+ const t = N(e.params), a = I(null), r = I(!1), i = g(() => t.value.valueFormatted ?? String(t.value.value ?? "")), v = g(() => {
204
+ const n = t.value.colDef?.colId;
205
+ return n ? t.value.context?.cells?.slots?.[n] : void 0;
206
+ }), y = g(() => ({
207
+ column: t.value.headerDef,
208
+ refreshCell: () => {
209
+ const n = t.value.node;
210
+ n && t.value.api.refreshCells({ force: !0, rowNodes: [n] });
211
+ },
212
+ row: t.value.data ?? {},
213
+ rowIndex: t.value.node?.rowIndex ?? 0,
214
+ rowValue: t.value.value,
215
+ selected: t.value.node?.isSelected() ?? !1
216
+ })), o = () => v.value?.(y.value);
217
+ let u, m, k = !1;
218
+ const E = () => {
219
+ const n = a.value;
220
+ r.value = !!n && n.scrollWidth > n.clientWidth;
221
+ }, w = () => {
222
+ k || (m !== void 0 && cancelAnimationFrame(m), m = requestAnimationFrame(() => {
223
+ m = void 0, E();
224
+ }));
225
+ }, D = (n) => {
226
+ if (u?.disconnect(), n) {
227
+ u?.observe(n);
228
+ const b = n.closest(".ag-cell");
229
+ b && u?.observe(b);
230
+ }
231
+ w();
232
+ };
233
+ return $(() => {
234
+ u = new ResizeObserver(w), D(a.value);
235
+ }), T(a, D, { flush: "post" }), P(() => {
236
+ k = !0, u?.disconnect(), m !== void 0 && cancelAnimationFrame(m);
237
+ }), c({
238
+ refresh(n) {
239
+ return t.value = n, j(w), !0;
240
+ }
241
+ }), (n, b) => {
242
+ const S = U("KTooltip");
243
+ return v.value ? (R(), V(q(o), { key: 0 })) : (R(), x("span", de, [
244
+ O(S, {
245
+ class: "table-data-grid-cell-tooltip",
246
+ disabled: !r.value,
247
+ "kpop-attributes": { popoverDelay: 400 },
248
+ "max-width": "300",
249
+ placement: "bottom-start",
250
+ target: "body",
251
+ text: i.value
252
+ }, {
253
+ default: H(() => [
254
+ Q("span", {
255
+ ref_key: "contentElement",
256
+ ref: a,
257
+ class: "table-data-grid-cell-content"
258
+ }, J(i.value), 513)
259
+ ]),
260
+ _: 1
261
+ }, 8, ["disabled", "text"])
262
+ ]));
263
+ };
264
+ }
265
+ }), me = ({
266
+ headers: e,
267
+ slots: c
268
+ }) => {
269
+ const t = g(() => ({
270
+ cells: { slots: c }
271
+ })), a = (i) => ({
272
+ colId: i.key,
273
+ // Columns with no explicit width constraint share remaining space equally.
274
+ flex: !i.width && !i.maxWidth ? 1 : void 0,
275
+ headerName: i.label,
276
+ maxWidth: i.maxWidth,
277
+ minWidth: i.minWidth,
278
+ valueGetter: (v) => v.data?.[i.key],
279
+ width: i.width,
280
+ cellRenderer: fe,
281
+ // custom params passed to the cell renderer.
282
+ cellRendererParams: { headerDef: i }
283
+ });
284
+ return {
285
+ columnDefs: g(() => e.value.map(a)),
286
+ gridContext: t
287
+ };
288
+ }, ve = ({
289
+ cellClick: e,
290
+ headers: c,
291
+ rowClick: t
292
+ }) => {
293
+ const a = g(() => new Set(
294
+ c.value.filter((o) => o.disableRowClick).map((o) => o.key)
295
+ )), r = (o) => {
296
+ const u = o.event?.target;
297
+ return u instanceof Element ? u.closest(".ag-cell")?.getAttribute("col-id") ?? void 0 : void 0;
298
+ }, i = (o) => {
299
+ const u = r(o);
300
+ return !!(u && a.value.has(u));
301
+ };
302
+ return {
303
+ onCellClick: (o) => {
304
+ const u = o.colDef.colId;
305
+ !o.data || !u || e({
306
+ columnKey: u,
307
+ row: o.data,
308
+ value: o.value
309
+ });
310
+ },
311
+ onRowClick: (o) => {
312
+ o.data && !i(o) && t(o.data, o);
313
+ }
249
314
  };
250
- }, ue = { title: "No Data", message: "There is no data to display." }, de = { title: "An error occurred", message: "Data cannot be displayed due to an error." }, fe = {
251
- emptyState: ue,
252
- errorState: de
315
+ }, pe = { title: "No Data", message: "There is no data to display." }, he = { title: "An error occurred", message: "Data cannot be displayed due to an error." }, Ce = {
316
+ emptyState: pe,
317
+ errorState: he
253
318
  };
254
- function me() {
255
- const e = ee("en-us", fe);
319
+ function ye() {
320
+ const e = oe("en-us", Ce);
256
321
  return {
257
322
  i18n: e,
258
- i18nT: te(e)
323
+ i18nT: le(e)
259
324
  // Translation component <i18n-t>
260
325
  };
261
326
  }
262
- const ve = {
327
+ const ge = {
263
328
  class: "kong-ui-public-table-data-grid",
264
329
  "data-testid": "table-data-grid"
265
- }, pe = {
330
+ }, ke = {
266
331
  key: 0,
267
332
  class: "table-error-state",
268
333
  "data-testid": "table-error-state"
269
- }, he = {
334
+ }, be = {
270
335
  key: 1,
271
336
  class: "table-empty-state",
272
337
  "data-testid": "table-empty-state"
273
- }, ge = /* @__PURE__ */ A({
338
+ }, we = /* @__PURE__ */ L({
274
339
  __name: "TableDataGrid",
275
340
  props: {
276
341
  headers: {},
@@ -279,85 +344,85 @@ const ve = {
279
344
  pageSize: { default: 25 },
280
345
  refreshKey: { type: [String, Number, Boolean] }
281
346
  },
282
- emits: ["grid:ready", "state"],
283
- setup(e, { emit: i }) {
284
- J.registerModules([X, Y]);
285
- const a = i, { i18n: { t } } = me(), r = {
286
- cellRenderer: oe,
347
+ emits: ["grid:ready", "state", "row:click", "cell:click"],
348
+ setup(e, { emit: c }) {
349
+ Z.registerModules([ee, te]);
350
+ const t = c, { i18n: { t: a } } = ye(), r = X(), { columnDefs: i, gridContext: v } = me({
351
+ headers: A(() => e.headers),
352
+ slots: r
353
+ }), { onCellClick: y, onRowClick: o } = ve({
354
+ cellClick: (p) => t("cell:click", p),
355
+ headers: A(() => e.headers),
356
+ rowClick: (p, l) => t("row:click", p, l)
357
+ }), u = {
287
358
  resizable: !1,
288
359
  sortable: !1,
289
360
  suppressMovable: !0
290
- }, h = k(() => e.headers.map((c) => ({
291
- colId: c.key,
292
- // Headers without explicit width constraints should fill available space.
293
- flex: !c.width && !c.maxWidth ? 1 : void 0,
294
- headerName: c.label,
295
- maxWidth: c.maxWidth,
296
- minWidth: c.minWidth,
297
- valueGetter: (D) => D.data?.[c.key],
298
- width: c.width
299
- }))), f = k(() => [e.fetcher, e.pageSize, e.refreshKey]), {
300
- data: u,
301
- datasource: m,
302
- error: C,
303
- isFetching: p
304
- } = ce({
361
+ }, m = g(() => [e.fetcher, e.pageSize, e.refreshKey]), {
362
+ data: k,
363
+ datasource: E,
364
+ error: w,
365
+ isFetching: D
366
+ } = ue({
305
367
  fetcher: e.fetcher,
306
- resetKey: f
368
+ resetKey: m
307
369
  }), {
308
- fetchState: g,
309
- hasData: d,
310
- state: y
311
- } = ne(u, C, p), E = k(() => y.value === g.SUCCESS && !d.value);
370
+ fetchState: n,
371
+ hasData: b,
372
+ state: S
373
+ } = re(k, w, D), _ = g(() => S.value === n.SUCCESS && !b.value);
312
374
  se({
313
- emitState: (c) => a("state", c),
314
- fetchLifecycleState: y,
315
- hasData: d
375
+ emitState: (p) => t("state", p),
376
+ fetchLifecycleState: S,
377
+ hasData: b
316
378
  });
317
- const b = (c) => {
318
- a("grid:ready", c.api);
379
+ const B = (p) => {
380
+ t("grid:ready", p.api);
319
381
  };
320
- return (c, M) => {
321
- const D = T("KEmptyState");
322
- return w(), G("div", ve, [
323
- e.error ? (w(), G("div", pe, [
324
- x(c.$slots, "error-state", {}, () => [
325
- I(D, {
382
+ return (p, l) => {
383
+ const s = U("KEmptyState");
384
+ return R(), x("div", ge, [
385
+ e.error ? (R(), x("div", ke, [
386
+ K(p.$slots, "error-state", {}, () => [
387
+ O(s, {
326
388
  "icon-variant": "error",
327
- message: S(t)("errorState.message"),
328
- title: S(t)("errorState.title")
389
+ message: C(a)("errorState.message"),
390
+ title: C(a)("errorState.title")
329
391
  }, null, 8, ["message", "title"])
330
392
  ], !0)
331
- ])) : E.value ? (w(), G("div", he, [
332
- x(c.$slots, "empty-state", {}, () => [
333
- I(D, {
334
- message: S(t)("emptyState.message"),
335
- title: S(t)("emptyState.title")
393
+ ])) : _.value ? (R(), x("div", be, [
394
+ K(p.$slots, "empty-state", {}, () => [
395
+ O(s, {
396
+ message: C(a)("emptyState.message"),
397
+ title: C(a)("emptyState.title")
336
398
  }, null, 8, ["message", "title"])
337
399
  ], !0)
338
- ])) : (w(), P(S(Q), {
400
+ ])) : (R(), V(C(Y), {
339
401
  key: 2,
340
402
  "cache-block-size": e.pageSize,
341
403
  class: "table-data-grid-grid",
342
- "column-defs": h.value,
343
- datasource: S(m),
344
- "default-col-def": r,
404
+ "column-defs": C(i),
405
+ context: C(v),
406
+ datasource: C(E),
407
+ "default-col-def": u,
345
408
  "infinite-initial-row-count": 1,
346
- loading: S(p),
409
+ loading: C(D),
347
410
  "row-model-type": "infinite",
348
411
  "suppress-cell-focus": !0,
349
- theme: S(Z),
350
- onGridReady: b
351
- }, null, 8, ["cache-block-size", "column-defs", "datasource", "loading", "theme"]))
412
+ theme: C(ae),
413
+ onCellClicked: C(y),
414
+ onGridReady: B,
415
+ onRowClicked: C(o)
416
+ }, null, 8, ["cache-block-size", "column-defs", "context", "datasource", "loading", "theme", "onCellClicked", "onRowClicked"]))
352
417
  ]);
353
418
  };
354
419
  }
355
- }), ye = (e, i) => {
356
- const a = e.__vccOpts || e;
357
- for (const [t, r] of i)
358
- a[t] = r;
359
- return a;
360
- }, ke = /* @__PURE__ */ ye(ge, [["__scopeId", "data-v-b8bd22c9"]]);
420
+ }), De = (e, c) => {
421
+ const t = e.__vccOpts || e;
422
+ for (const [a, r] of c)
423
+ t[a] = r;
424
+ return t;
425
+ }, Fe = /* @__PURE__ */ De(we, [["__scopeId", "data-v-e14d8346"]]);
361
426
  export {
362
- ke as TableDataGrid
427
+ Fe as TableDataGrid
363
428
  };
@@ -1 +1 @@
1
- (function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("ag-grid-vue3"),require("ag-grid-community"),require("@kong-ui-public/i18n")):typeof define=="function"&&define.amd?define(["exports","vue","ag-grid-vue3","ag-grid-community","@kong-ui-public/i18n"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y["kong-ui-public-table-data-grid"]={},y.Vue,y.AgGridVue,y.agGridCommunity,y["kong-ui-public-i18n"]))})(this,(function(y,e,G,R,N){"use strict";const M={class:"table-data-grid-cell-renderer"},O=e.defineComponent({name:"TableDataGridCellRenderer",__name:"TableDataGridCellRenderer",props:{params:{}},setup(t,{expose:c}){const o=e.shallowRef(t.params),a=e.ref(null),n=e.ref(!1),b=e.computed(()=>o.value.valueFormatted??String(o.value.value??""));let m,u,p=!1;const D=()=>{const f=a.value;n.value=!!f&&f.scrollWidth>f.clientWidth},g=()=>{p||(u!==void 0&&cancelAnimationFrame(u),u=requestAnimationFrame(()=>{u=void 0,D()}))},S=f=>{if(m?.disconnect(),f){m?.observe(f);const k=f.closest(".ag-cell");k&&m?.observe(k)}g()};return e.onMounted(()=>{m=new ResizeObserver(g),S(a.value)}),e.watch(a,S,{flush:"post"}),e.onUnmounted(()=>{p=!0,m?.disconnect(),u!==void 0&&cancelAnimationFrame(u)}),c({refresh(f){return o.value=f,e.nextTick(g),!0}}),(f,k)=>{const E=e.resolveComponent("KTooltip");return e.openBlock(),e.createElementBlock("span",M,[e.createVNode(E,{class:"table-data-grid-cell-tooltip",disabled:!n.value,"kpop-attributes":{popoverDelay:400},"max-width":"300",placement:"bottom-start",target:"body",text:b.value},{default:e.withCtx(()=>[e.createElementVNode("span",{ref_key:"contentElement",ref:a,class:"table-data-grid-cell-content"},e.toDisplayString(b.value),513)]),_:1},8,["disabled","text"])])}}});var w=(t=>(t.PENDING="PENDING",t.LOADING="LOADING",t.SUCCESS="SUCCESS",t.ERROR="ERROR",t))(w||{});const I=t=>!!t?.length;function T(t,c,o,a=I){const n=e.computed(()=>a(t.value)),b=e.computed(()=>{const u=t.value!==void 0,p=c.value!==void 0&&c.value!==null;return o.value?"LOADING":n.value?"SUCCESS":p?"ERROR":u?"SUCCESS":"PENDING"});return{fetchState:w,hasData:n,state:b}}const x=({emitState:t,fetchLifecycleState:c,hasData:o})=>{e.watch(()=>({hasData:o.value,state:c.value}),({hasData:a,state:n})=>{if(n!==w.PENDING){if(n===w.LOADING){t({hasData:a,state:"loading"});return}if(n===w.ERROR){t({hasData:a,state:"error"});return}t({hasData:a,state:"success"})}})},z=({startRow:t,endRow:c})=>{const o=c-t;return{blockIndex:o>0?Math.floor(t/o):0,pageSize:o}},A=({startRow:t,rowsLength:c,pageSize:o,total:a,hasMore:n})=>{if(typeof a=="number")return a;if(n!==!0&&(n===!1||c<o))return t+c},V=({fetcher:t,resetKey:c})=>{const o=new Map,a=new Map,n=e.ref(0),b=e.shallowRef(),m=e.shallowRef(),u=e.shallowRef(),p=e.ref(0),D=e.ref(!1),g=r=>r===n.value,S=()=>{D.value=p.value>0},f=()=>{u.value=void 0,p.value+=1,S()},k=()=>{p.value=Math.max(0,p.value-1),S()},E=r=>{const s=a.get(r);if(s)return s;let l;const h={promise:new Promise(i=>{l=i}),resolve:i=>l(i)};return a.set(r,h),h},v=(r,s)=>{s.resolve(!1),a.get(r)===s&&a.delete(r)},d=async({blockIndex:r,currentBlockCompletion:s,datasourceId:l})=>{if(r===0)return"ready";const h=a.get(r-1);if(!h)return v(r,s),"failed";const i=await h.promise;return g(l)?i?"ready":(v(r,s),"failed"):(v(r,s),"stale")},_=({blockIndex:r,currentBlockCompletion:s,getRowsParams:l,pageSize:h,result:i})=>{i.cursor!==void 0&&o.set(r,i.cursor),l.successCallback(i.data,A({startRow:l.startRow,rowsLength:i.data.length,pageSize:h,total:i.total,hasMore:i.hasMore})),l.startRow===0&&(m.value=i.data),s.resolve(!0)},C=({blockIndex:r,currentBlockCompletion:s,fetchError:l,getRowsParams:h})=>{u.value=l,h.failCallback(),v(r,s)},j=()=>{const r=n.value+1;return n.value=r,o.clear(),a.clear(),m.value=void 0,u.value=void 0,p.value=0,S(),{async getRows(s){const{blockIndex:l,pageSize:h}=z({startRow:s.startRow,endRow:s.endRow}),i=E(l),F=await d({blockIndex:l,currentBlockCompletion:i,datasourceId:r});if(F!=="ready"){F==="failed"&&s.failCallback();return}f();try{const B=l>0?o.get(l-1):void 0,H=await t({mode:"infinite",pageSize:h,cursor:B});if(!g(r)){v(l,i);return}_({blockIndex:l,currentBlockCompletion:i,getRowsParams:s,pageSize:h,result:H})}catch(B){if(!g(r)){v(l,i);return}C({blockIndex:l,currentBlockCompletion:i,fetchError:B,getRowsParams:s})}finally{g(r)&&k()}}}},P=()=>{b.value=j()};return e.watch(()=>c?.value,()=>{P()},{immediate:!0}),{datasource:e.readonly(b),data:e.readonly(m),error:e.readonly(u),isFetching:e.readonly(D)}},K={emptyState:{title:"No Data",message:"There is no data to display."},errorState:{title:"An error occurred",message:"Data cannot be displayed due to an error."}};function L(){const t=N.createI18n("en-us",K);return{i18n:t,i18nT:N.i18nTComponent(t)}}const U={class:"kong-ui-public-table-data-grid","data-testid":"table-data-grid"},W={key:0,class:"table-error-state","data-testid":"table-error-state"},q={key:1,class:"table-empty-state","data-testid":"table-empty-state"},$=((t,c)=>{const o=t.__vccOpts||t;for(const[a,n]of c)o[a]=n;return o})(e.defineComponent({__name:"TableDataGrid",props:{headers:{},fetcher:{type:Function},error:{type:Boolean,default:!1},pageSize:{default:25},refreshKey:{type:[String,Number,Boolean]}},emits:["grid:ready","state"],setup(t,{emit:c}){R.ModuleRegistry.registerModules([R.AllCommunityModule,R.InfiniteRowModelModule]);const o=c,{i18n:{t:a}}=L(),n={cellRenderer:O,resizable:!1,sortable:!1,suppressMovable:!0},b=e.computed(()=>t.headers.map(d=>({colId:d.key,flex:!d.width&&!d.maxWidth?1:void 0,headerName:d.label,maxWidth:d.maxWidth,minWidth:d.minWidth,valueGetter:C=>C.data?.[d.key],width:d.width}))),m=e.computed(()=>[t.fetcher,t.pageSize,t.refreshKey]),{data:u,datasource:p,error:D,isFetching:g}=V({fetcher:t.fetcher,resetKey:m}),{fetchState:S,hasData:f,state:k}=T(u,D,g),E=e.computed(()=>k.value===S.SUCCESS&&!f.value);x({emitState:d=>o("state",d),fetchLifecycleState:k,hasData:f});const v=d=>{o("grid:ready",d.api)};return(d,_)=>{const C=e.resolveComponent("KEmptyState");return e.openBlock(),e.createElementBlock("div",U,[t.error?(e.openBlock(),e.createElementBlock("div",W,[e.renderSlot(d.$slots,"error-state",{},()=>[e.createVNode(C,{"icon-variant":"error",message:e.unref(a)("errorState.message"),title:e.unref(a)("errorState.title")},null,8,["message","title"])],!0)])):E.value?(e.openBlock(),e.createElementBlock("div",q,[e.renderSlot(d.$slots,"empty-state",{},()=>[e.createVNode(C,{message:e.unref(a)("emptyState.message"),title:e.unref(a)("emptyState.title")},null,8,["message","title"])],!0)])):(e.openBlock(),e.createBlock(e.unref(G.AgGridVue),{key:2,"cache-block-size":t.pageSize,class:"table-data-grid-grid","column-defs":b.value,datasource:e.unref(p),"default-col-def":n,"infinite-initial-row-count":1,loading:e.unref(g),"row-model-type":"infinite","suppress-cell-focus":!0,theme:e.unref(R.themeQuartz),onGridReady:v},null,8,["cache-block-size","column-defs","datasource","loading","theme"]))])}}}),[["__scopeId","data-v-b8bd22c9"]]);y.TableDataGrid=$,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("ag-grid-vue3"),require("ag-grid-community"),require("@kong-ui-public/i18n")):typeof define=="function"&&define.amd?define(["exports","vue","ag-grid-vue3","ag-grid-community","@kong-ui-public/i18n"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y["kong-ui-public-table-data-grid"]={},y.Vue,y.AgGridVue,y.agGridCommunity,y["kong-ui-public-i18n"]))})(this,(function(y,e,G,B,x){"use strict";var v=(t=>(t.PENDING="PENDING",t.LOADING="LOADING",t.SUCCESS="SUCCESS",t.ERROR="ERROR",t))(v||{});const M=t=>!!t?.length;function T(t,i,o,a=M){const s=e.computed(()=>a(t.value)),d=e.computed(()=>{const k=t.value!==void 0,n=i.value!==void 0&&i.value!==null;return o.value?"LOADING":s.value?"SUCCESS":n?"ERROR":k?"SUCCESS":"PENDING"});return{fetchState:v,hasData:s,state:d}}const O=({emitState:t,fetchLifecycleState:i,hasData:o})=>{e.watch(()=>({hasData:o.value,state:i.value}),({hasData:a,state:s})=>{if(s!==v.PENDING){if(s===v.LOADING){t({hasData:a,state:"loading"});return}if(s===v.ERROR){t({hasData:a,state:"error"});return}t({hasData:a,state:"success"})}})},A=({startRow:t,endRow:i})=>{const o=i-t;return{blockIndex:o>0?Math.floor(t/o):0,pageSize:o}},z=({startRow:t,rowsLength:i,pageSize:o,total:a,hasMore:s})=>{if(typeof a=="number")return a;if(s!==!0&&(s===!1||i<o))return t+i},K=({fetcher:t,resetKey:i})=>{const o=new Map,a=new Map,s=e.ref(0),d=e.shallowRef(),h=e.shallowRef(),k=e.shallowRef(),n=e.ref(0),u=e.ref(!1),p=l=>l===s.value,b=()=>{u.value=n.value>0},E=()=>{k.value=void 0,n.value+=1,b()},S=()=>{n.value=Math.max(0,n.value-1),b()},D=l=>{const c=a.get(l);if(c)return c;let f;const g={promise:new Promise(m=>{f=m}),resolve:m=>f(m)};return a.set(l,g),g},r=(l,c)=>{c.resolve(!1),a.get(l)===c&&a.delete(l)},w=async({blockIndex:l,currentBlockCompletion:c,datasourceId:f})=>{if(l===0)return"ready";const g=a.get(l-1);if(!g)return r(l,c),"failed";const m=await g.promise;return p(f)?m?"ready":(r(l,c),"failed"):(r(l,c),"stale")},R=({blockIndex:l,currentBlockCompletion:c,getRowsParams:f,pageSize:g,result:m})=>{m.cursor!==void 0&&o.set(l,m.cursor),f.successCallback(m.data,z({startRow:f.startRow,rowsLength:m.data.length,pageSize:g,total:m.total,hasMore:m.hasMore})),f.startRow===0&&(h.value=m.data),c.resolve(!0)},I=({blockIndex:l,currentBlockCompletion:c,fetchError:f,getRowsParams:g})=>{k.value=f,g.failCallback(),r(l,c)},N=()=>{const l=s.value+1;return s.value=l,o.clear(),a.clear(),h.value=void 0,k.value=void 0,n.value=0,b(),{async getRows(c){const{blockIndex:f,pageSize:g}=A({startRow:c.startRow,endRow:c.endRow}),m=D(f),F=await w({blockIndex:f,currentBlockCompletion:m,datasourceId:l});if(F!=="ready"){F==="failed"&&c.failCallback();return}E();try{const _=f>0?o.get(f-1):void 0,J=await t({mode:"infinite",pageSize:g,cursor:_});if(!p(l)){r(f,m);return}R({blockIndex:f,currentBlockCompletion:m,getRowsParams:c,pageSize:g,result:J})}catch(_){if(!p(l)){r(f,m);return}I({blockIndex:f,currentBlockCompletion:m,fetchError:_,getRowsParams:c})}finally{p(l)&&S()}}}},C=()=>{d.value=N()};return e.watch(()=>i?.value,()=>{C()},{immediate:!0}),{datasource:e.readonly(d),data:e.readonly(h),error:e.readonly(k),isFetching:e.readonly(u)}},V={key:1,class:"table-data-grid-cell-renderer"},L=e.defineComponent({name:"TableDataGridCellRenderer",__name:"TableDataGridCellRenderer",props:{params:{}},setup(t,{expose:i}){const o=e.shallowRef(t.params),a=e.ref(null),s=e.ref(!1),d=e.computed(()=>o.value.valueFormatted??String(o.value.value??"")),h=e.computed(()=>{const r=o.value.colDef?.colId;return r?o.value.context?.cells?.slots?.[r]:void 0}),k=e.computed(()=>({column:o.value.headerDef,refreshCell:()=>{const r=o.value.node;r&&o.value.api.refreshCells({force:!0,rowNodes:[r]})},row:o.value.data??{},rowIndex:o.value.node?.rowIndex??0,rowValue:o.value.value,selected:o.value.node?.isSelected()??!1})),n=()=>h.value?.(k.value);let u,p,b=!1;const E=()=>{const r=a.value;s.value=!!r&&r.scrollWidth>r.clientWidth},S=()=>{b||(p!==void 0&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{p=void 0,E()}))},D=r=>{if(u?.disconnect(),r){u?.observe(r);const w=r.closest(".ag-cell");w&&u?.observe(w)}S()};return e.onMounted(()=>{u=new ResizeObserver(S),D(a.value)}),e.watch(a,D,{flush:"post"}),e.onUnmounted(()=>{b=!0,u?.disconnect(),p!==void 0&&cancelAnimationFrame(p)}),i({refresh(r){return o.value=r,e.nextTick(S),!0}}),(r,w)=>{const R=e.resolveComponent("KTooltip");return h.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n),{key:0})):(e.openBlock(),e.createElementBlock("span",V,[e.createVNode(R,{class:"table-data-grid-cell-tooltip",disabled:!s.value,"kpop-attributes":{popoverDelay:400},"max-width":"300",placement:"bottom-start",target:"body",text:d.value},{default:e.withCtx(()=>[e.createElementVNode("span",{ref_key:"contentElement",ref:a,class:"table-data-grid-cell-content"},e.toDisplayString(d.value),513)]),_:1},8,["disabled","text"])]))}}}),U=({headers:t,slots:i})=>{const o=e.computed(()=>({cells:{slots:i}})),a=d=>({colId:d.key,flex:!d.width&&!d.maxWidth?1:void 0,headerName:d.label,maxWidth:d.maxWidth,minWidth:d.minWidth,valueGetter:h=>h.data?.[d.key],width:d.width,cellRenderer:L,cellRendererParams:{headerDef:d}});return{columnDefs:e.computed(()=>t.value.map(a)),gridContext:o}},W=({cellClick:t,headers:i,rowClick:o})=>{const a=e.computed(()=>new Set(i.value.filter(n=>n.disableRowClick).map(n=>n.key))),s=n=>{const u=n.event?.target;return u instanceof Element?u.closest(".ag-cell")?.getAttribute("col-id")??void 0:void 0},d=n=>{const u=s(n);return!!(u&&a.value.has(u))};return{onCellClick:n=>{const u=n.colDef.colId;!n.data||!u||t({columnKey:u,row:n.data,value:n.value})},onRowClick:n=>{n.data&&!d(n)&&o(n.data,n)}}},q={emptyState:{title:"No Data",message:"There is no data to display."},errorState:{title:"An error occurred",message:"Data cannot be displayed due to an error."}};function $(){const t=x.createI18n("en-us",q);return{i18n:t,i18nT:x.i18nTComponent(t)}}const P={class:"kong-ui-public-table-data-grid","data-testid":"table-data-grid"},j={key:0,class:"table-error-state","data-testid":"table-error-state"},H={key:1,class:"table-empty-state","data-testid":"table-empty-state"},Q=((t,i)=>{const o=t.__vccOpts||t;for(const[a,s]of i)o[a]=s;return o})(e.defineComponent({__name:"TableDataGrid",props:{headers:{},fetcher:{type:Function},error:{type:Boolean,default:!1},pageSize:{default:25},refreshKey:{type:[String,Number,Boolean]}},emits:["grid:ready","state","row:click","cell:click"],setup(t,{emit:i}){B.ModuleRegistry.registerModules([B.AllCommunityModule,B.InfiniteRowModelModule]);const o=i,{i18n:{t:a}}=$(),s=e.useSlots(),{columnDefs:d,gridContext:h}=U({headers:e.toRef(()=>t.headers),slots:s}),{onCellClick:k,onRowClick:n}=W({cellClick:C=>o("cell:click",C),headers:e.toRef(()=>t.headers),rowClick:(C,l)=>o("row:click",C,l)}),u={resizable:!1,sortable:!1,suppressMovable:!0},p=e.computed(()=>[t.fetcher,t.pageSize,t.refreshKey]),{data:b,datasource:E,error:S,isFetching:D}=K({fetcher:t.fetcher,resetKey:p}),{fetchState:r,hasData:w,state:R}=T(b,S,D),I=e.computed(()=>R.value===r.SUCCESS&&!w.value);O({emitState:C=>o("state",C),fetchLifecycleState:R,hasData:w});const N=C=>{o("grid:ready",C.api)};return(C,l)=>{const c=e.resolveComponent("KEmptyState");return e.openBlock(),e.createElementBlock("div",P,[t.error?(e.openBlock(),e.createElementBlock("div",j,[e.renderSlot(C.$slots,"error-state",{},()=>[e.createVNode(c,{"icon-variant":"error",message:e.unref(a)("errorState.message"),title:e.unref(a)("errorState.title")},null,8,["message","title"])],!0)])):I.value?(e.openBlock(),e.createElementBlock("div",H,[e.renderSlot(C.$slots,"empty-state",{},()=>[e.createVNode(c,{message:e.unref(a)("emptyState.message"),title:e.unref(a)("emptyState.title")},null,8,["message","title"])],!0)])):(e.openBlock(),e.createBlock(e.unref(G.AgGridVue),{key:2,"cache-block-size":t.pageSize,class:"table-data-grid-grid","column-defs":e.unref(d),context:e.unref(h),datasource:e.unref(E),"default-col-def":u,"infinite-initial-row-count":1,loading:e.unref(D),"row-model-type":"infinite","suppress-cell-focus":!0,theme:e.unref(B.themeQuartz),onCellClicked:e.unref(k),onGridReady:N,onRowClicked:e.unref(n)},null,8,["cache-block-size","column-defs","context","datasource","loading","theme","onCellClicked","onRowClicked"]))])}}}),[["__scopeId","data-v-e14d8346"]]);y.TableDataGrid=Q,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})}));
@@ -1,5 +1,5 @@
1
- import type { TableDataGridFetcher, TableDataGridHeader, TableDataGridStatePayload } from '../types';
2
- import type { GridReadyEvent } from 'ag-grid-community';
1
+ import type { TableDataGridCellClickPayload, TableDataGridCellSlotProps, TableDataGridFetcher, TableDataGridHeader, TableDataGridStatePayload } from '../types';
2
+ import type { GridReadyEvent, RowClickedEvent } from 'ag-grid-community';
3
3
  declare const __VLS_export: <Row extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
4
  props: import("vue").PublicProps & __VLS_PrettifyLocal<{
5
5
  headers: Array<TableDataGridHeader<Row>>;
@@ -10,18 +10,23 @@ declare const __VLS_export: <Row extends object>(__VLS_props: NonNullable<Awaite
10
10
  } & {
11
11
  onState?: ((payload: TableDataGridStatePayload) => any) | undefined;
12
12
  "onGrid:ready"?: ((api: import("ag-grid-community").GridApi<Row>) => any) | undefined;
13
+ "onCell:click"?: ((payload: TableDataGridCellClickPayload<Row>) => any) | undefined;
14
+ "onRow:click"?: ((row: Row, event: RowClickedEvent<Row, any>) => any) | undefined;
13
15
  }> & (typeof globalThis extends {
14
16
  __VLS_PROPS_FALLBACK: infer P;
15
17
  } ? P : {});
16
18
  expose: (exposed: {}) => void;
17
19
  attrs: any;
18
20
  slots: {
21
+ [columnKey: string]: (props: TableDataGridCellSlotProps<Row>) => unknown;
19
22
  'empty-state': () => unknown;
20
23
  'error-state': () => unknown;
21
24
  };
22
25
  emit: {
23
26
  (e: "grid:ready", api: GridReadyEvent<Row>["api"]): void;
24
27
  (e: "state", payload: TableDataGridStatePayload): void;
28
+ (e: "row:click", row: Row, event: RowClickedEvent<Row>): void;
29
+ (e: "cell:click", payload: TableDataGridCellClickPayload<Row>): void;
25
30
  };
26
31
  }>) => import("vue").VNode & {
27
32
  __ctx?: Awaited<typeof __VLS_setup>;
@@ -1 +1 @@
1
- {"version":3,"file":"TableDataGrid.vue.d.ts","sourceRoot":"","sources":["../../../src/components/TableDataGrid.vue"],"names":[],"mappings":"AAyMA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAe/D,QAAA,MAAM,YAAY,GAAK,GAAG,SAAS,MAAM,EACxC,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAyNO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;iBArN7C,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;iBAC/B,oBAAoB,CAAC,GAAG,CAAC;gBAC1B,OAAO;mBACJ,MAAM;qBACJ,MAAM,GAAG,MAAM,GAAG,OAAO;;;;KAiNmD,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI;WACtB,GAAG;;uBAvMM,MAAM,OAAO;uBACb,MAAM,OAAO;;;YAKxB,YAAY,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;YACpD,OAAO,WAAW,yBAAyB,GAAG,IAAI;;EAoMpD,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"TableDataGrid.vue.d.ts","sourceRoot":"","sources":["../../../src/components/TableDataGrid.vue"],"names":[],"mappings":"AAmNA,OAAO,KAAK,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAEV,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAgB1B,QAAA,MAAM,YAAY,GAAK,GAAG,SAAS,MAAM,EACxC,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WA0OO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;iBAtO7C,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;iBAC/B,oBAAoB,CAAC,GAAG,CAAC;gBAC1B,OAAO;mBACJ,MAAM;qBACJ,MAAM,GAAG,MAAM,GAAG,OAAO;;;;;;KAkOmD,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI;WACtB,GAAG;;qCAtNoB,0BAA0B,CAAC,GAAG,CAAC,KAAK,OAAO;uBAFzD,MAAM,OAAO;uBACb,MAAM,OAAO;;;YAMxB,YAAY,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI;YACpD,OAAO,WAAW,yBAAyB,GAAG,IAAI;YAClD,WAAW,OAAO,GAAG,SAAS,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI;YACzD,YAAY,WAAW,6BAA6B,CAAC,GAAG,CAAC,GAAG,IAAI;;EAkNlE,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
@@ -1,5 +1,16 @@
1
+ import type { TableDataGridHeader } from '../types';
1
2
  import type { ICellRendererParams } from 'ag-grid-community';
2
- type CellRendererParams = ICellRendererParams<Record<string, unknown>>;
3
+ import type { Slots } from 'vue';
4
+ type CellRendererParams = ICellRendererParams<Record<string, unknown>> & {
5
+ /** Set internally via `cellRendererParams` so the renderer can resolve the
6
+ * host slot and build its payload without leaking AG Grid's own `column`. */
7
+ headerDef?: TableDataGridHeader;
8
+ context?: {
9
+ cells?: {
10
+ slots?: Slots;
11
+ };
12
+ };
13
+ };
3
14
  type __VLS_Props = {
4
15
  params: CellRendererParams;
5
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TableDataGridCellRenderer.vue.d.ts","sourceRoot":"","sources":["../../../src/components/TableDataGridCellRenderer.vue"],"names":[],"mappings":"AAiIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAG5D,KAAK,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAMtE,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,kBAAkB,CAAA;CAC3B,CAAC;AA6IF,QAAA,MAAM,YAAY;wBAtEI,kBAAkB;oPAyEtC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"TableDataGridCellRenderer.vue.d.ts","sourceRoot":"","sources":["../../../src/components/TableDataGridCellRenderer.vue"],"names":[],"mappings":"AAyKA,OAAO,KAAK,EAA8B,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAGhC,KAAK,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG;IACvE;iFAC6E;IAC7E,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,KAAK,CAAA;SAAE,CAAA;KAAE,CAAA;CACxC,CAAA;AAMD,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,kBAAkB,CAAA;CAC3B,CAAC;AAsLF,QAAA,MAAM,YAAY;wBArFI,kBAAkB;oPAwFtC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchInfinite.d.ts","sourceRoot":"","sources":["../../../src/composables/useFetchInfinite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,gBAAgB,EACjB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAW9B,UAAU,uBAAuB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB;IACrE;;;OAGG;IACH,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,GAAI,GAAG,SAAS,MAAM,GAAG,gBAAgB,EAAE,wBAGrE,uBAAuB,CAAC,GAAG,CAAC;;;;;;;;;;;;;CA4T9B,CAAA"}
1
+ {"version":3,"file":"useFetchInfinite.d.ts","sourceRoot":"","sources":["../../../src/composables/useFetchInfinite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,gBAAgB,EACjB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAW9B,UAAU,uBAAuB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB;IACrE;;;OAGG;IACH,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,GAAI,GAAG,SAAS,MAAM,GAAG,gBAAgB,EAAE,wBAGrE,uBAAuB,CAAC,GAAG,CAAC;;;;;;;;;;;;;CA6T9B,CAAA"}
@@ -0,0 +1,21 @@
1
+ import type { TableDataGridHeader, TableDataGridRow } from '../types';
2
+ import type { ColDef } from 'ag-grid-community';
3
+ import type { Ref, Slots } from 'vue';
4
+ /**
5
+ * Converts `headers` into what AG Grid needs to render the table's columns:
6
+ * the column definitions themselves, and the shared grid `context`.
7
+ */
8
+ export declare const useTableDataGridColumnDefs: <Row extends object = TableDataGridRow>({ headers, slots, }: {
9
+ headers: Readonly<Ref<Array<TableDataGridHeader<Row>>>>;
10
+ slots: Slots;
11
+ }) => {
12
+ columnDefs: import("vue").ComputedRef<ColDef<Row, any>[]>;
13
+ gridContext: import("vue").ComputedRef<{
14
+ cells: {
15
+ slots: Readonly<{
16
+ [name: string]: import("vue").Slot<any> | undefined;
17
+ }>;
18
+ };
19
+ }>;
20
+ };
21
+ //# sourceMappingURL=useTableDataGridColumnDefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableDataGridColumnDefs.d.ts","sourceRoot":"","sources":["../../../src/composables/useTableDataGridColumnDefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAIrC;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAI,GAAG,SAAS,MAAM,GAAG,gBAAgB,EAAE,qBAG/E;IACD,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,KAAK,EAAE,KAAK,CAAA;CACb;;;;;;;;;CA0BA,CAAA"}
@@ -0,0 +1,17 @@
1
+ import type { TableDataGridCellClickPayload, TableDataGridHeader, TableDataGridRow, TableDataGridRowClickPayload } from '../types';
2
+ import type { CellClickedEvent, RowClickedEvent } from 'ag-grid-community';
3
+ import type { Ref } from 'vue';
4
+ /**
5
+ * Converts AG Grid's row and cell click events into `TableDataGrid`'s own
6
+ * row/cell interaction handlers, and governs how those interactions behave
7
+ * (e.g. suppressing row clicks for columns marked `disableRowClick`).
8
+ */
9
+ export declare const useTableDataGridInteractions: <Row extends object = TableDataGridRow>({ cellClick, headers, rowClick, }: {
10
+ cellClick: (payload: TableDataGridCellClickPayload<Row>) => void;
11
+ headers: Readonly<Ref<Array<TableDataGridHeader<Row>>>>;
12
+ rowClick: (row: TableDataGridRowClickPayload<Row>, event: RowClickedEvent<Row>) => void;
13
+ }) => {
14
+ onCellClick: (event: CellClickedEvent<Row>) => void;
15
+ onRowClick: (event: RowClickedEvent<Row>) => void;
16
+ };
17
+ //# sourceMappingURL=useTableDataGridInteractions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableDataGridInteractions.d.ts","sourceRoot":"","sources":["../../../src/composables/useTableDataGridInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EACnB,gBAAgB,EAChB,4BAA4B,EAC7B,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAG9B;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAI,GAAG,SAAS,MAAM,GAAG,gBAAgB,EAAE,mCAIjF;IACD,SAAS,EAAE,CAAC,OAAO,EAAE,6BAA6B,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;IAChE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,QAAQ,EAAE,CAAC,GAAG,EAAE,4BAA4B,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;CACxF;yBA0B6B,gBAAgB,CAAC,GAAG,CAAC;wBANtB,eAAe,CAAC,GAAG,CAAC;CAwBhD,CAAA"}
@@ -6,12 +6,33 @@ export type TableDataGridStatePayload = {
6
6
  state: TableDataGridState;
7
7
  hasData: boolean;
8
8
  };
9
+ export type TableDataGridRowClickPayload<Row extends object = TableDataGridRow> = Row;
10
+ export type TableDataGridCellClickPayload<Row extends object = TableDataGridRow> = {
11
+ row: Row;
12
+ columnKey: string;
13
+ value: unknown;
14
+ };
15
+ export type TableDataGridCellSlotProps<Row extends object = TableDataGridRow> = {
16
+ row: Row;
17
+ rowValue: unknown;
18
+ column: TableDataGridHeader<Row>;
19
+ rowIndex: number;
20
+ selected: boolean;
21
+ /** Forces AG Grid to re-render this cell. */
22
+ refreshCell: () => void;
23
+ };
9
24
  export type TableDataGridHeader<Row extends object = TableDataGridRow> = {
10
25
  key: Extract<keyof Row, string>;
11
26
  label: string;
12
27
  width?: number;
13
28
  minWidth?: number;
14
29
  maxWidth?: number;
30
+ /**
31
+ * Disables the `row:click` emit for clicks landing inside this column's
32
+ * cells, e.g. an actions column with its own buttons. AG Grid's own
33
+ * selection/click mechanics are unaffected.
34
+ */
35
+ disableRowClick?: boolean;
15
36
  };
16
37
  export interface TableDataGridInfiniteFetcherParams {
17
38
  mode: 'infinite';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAC1C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACtD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAEhE,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,kBAAkB,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI;IACvE,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,CAAC,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,0BAA0B,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI;IAC9E,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI,CACxE,MAAM,EAAE,kCAAkC,KACvC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAA;AAE7C,MAAM,MAAM,yBAAyB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAC1C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACtD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAEhE,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,kBAAkB,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,4BAA4B,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI,GAAG,CAAA;AAErF,MAAM,MAAM,6BAA6B,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI;IACjF,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,0BAA0B,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI;IAC9E,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI;IACvE,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,CAAC,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,MAAM,0BAA0B,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI;IAC9E,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI,CACxE,MAAM,EAAE,kCAAkC,KACvC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAA;AAE7C,MAAM,MAAM,yBAAyB,CAAC,GAAG,SAAS,MAAM,GAAG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kong-ui-public/table-data-grid",
3
- "version": "0.3.12",
3
+ "version": "0.3.14-pr.3713.032a726e9.0",
4
4
  "type": "module",
5
5
  "main": "./dist/table-data-grid.umd.js",
6
6
  "module": "./dist/table-data-grid.es.js",
@@ -48,8 +48,8 @@
48
48
  "@kong-ui-public/i18n": "^2.5.1"
49
49
  },
50
50
  "dependencies": {
51
- "ag-grid-community": "^36.0.0",
52
- "ag-grid-vue3": "^36.0.0"
51
+ "ag-grid-community": "^36.1.0",
52
+ "ag-grid-vue3": "^36.1.0"
53
53
  },
54
54
  "scripts": {
55
55
  "dev": "cross-env USE_SANDBOX=true vite",