@cronocode/react-box 3.1.2 → 3.1.3

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,38 +1,38 @@
1
- import { jsxs as u, jsx as r, Fragment as Ge } from "react/jsx-runtime";
2
- import h from "../box.mjs";
1
+ import { jsxs as h, jsx as s, Fragment as ke } from "react/jsx-runtime";
2
+ import p from "../box.mjs";
3
3
  import g from "./flex.mjs";
4
- import be, { useCallback as W, useMemo as H, useState as O, useRef as ke, useEffect as z } from "react";
5
- import { F as J, m as S, E as Q, b as Z, D as Le, S as A, P as q, G as $, C as De } from "../core.mjs";
6
- import ee from "./grid.mjs";
7
- import I from "./checkbox.mjs";
8
- import f from "./button.mjs";
9
- import { Span as L } from "./semantics.mjs";
10
- import te from "./tooltip.mjs";
11
- import Te from "./baseSvg.mjs";
12
- function Se(a) {
13
- const { grid: e } = a;
14
- return /* @__PURE__ */ u(g, { component: "datagrid.bottomBar", children: [
15
- /* @__PURE__ */ u(h, { children: [
4
+ import Te, { useCallback as X, useMemo as j, useState as te, useRef as De, useEffect as Q } from "react";
5
+ import { F as le, m as P, E as ae, b as de, D as Se, S as Z, P as ne, G as ee, C as _e } from "../core.mjs";
6
+ import ce from "./grid.mjs";
7
+ import q from "./checkbox.mjs";
8
+ import w from "./button.mjs";
9
+ import { Span as D } from "./semantics.mjs";
10
+ import he from "./tooltip.mjs";
11
+ import Be from "./baseSvg.mjs";
12
+ function Pe(l) {
13
+ const { grid: e } = l;
14
+ return /* @__PURE__ */ h(g, { component: "datagrid.bottomBar", children: [
15
+ /* @__PURE__ */ h(p, { children: [
16
16
  "Rows: ",
17
17
  e.props.data.length
18
18
  ] }),
19
- e.props.def.rowSelection && /* @__PURE__ */ u(h, { children: [
19
+ e.props.def.rowSelection && /* @__PURE__ */ h(p, { children: [
20
20
  "Selected: ",
21
21
  e.selectedRows.size
22
22
  ] })
23
23
  ] });
24
24
  }
25
- function ie(a) {
26
- const { cell: e } = a, t = W(() => {
25
+ function ue(l) {
26
+ const { cell: e } = l, t = X(() => {
27
27
  e.grid.toggleRowSelection(e.row.key);
28
28
  }, [e.grid, e.row.key]);
29
- return /* @__PURE__ */ r(I, { variant: "datagrid", checked: e.row.selected, onChange: t });
29
+ return /* @__PURE__ */ s(q, { variant: "datagrid", checked: e.row.selected, onChange: t });
30
30
  }
31
- ie.displayName = "DataGridCellRowSelection";
32
- const Be = "NO_PIN";
33
- class D {
31
+ ue.displayName = "DataGridCellRowSelection";
32
+ const Ee = "NO_PIN";
33
+ class S {
34
34
  constructor(e, t, i) {
35
- this.def = e, this.grid = t, this.parent = i, this.columns = e.columns?.map((n) => new D(e.pin ? { ...n, pin: e.pin } : n, t, this)) ?? [], this.isLeaf && (this._inlineWidth = this.key == _ ? void 0 : this.def.width ?? this.grid.DEFAULT_COLUMN_WIDTH_PX, this._pin = e.pin);
35
+ this.def = e, this.grid = t, this.parent = i, this.columns = e.columns?.map((n) => new S(e.pin ? { ...n, pin: e.pin } : n, t, this)) ?? [], this.isLeaf && (this._inlineWidth = this.key == E ? void 0 : this.def.width ?? this.grid.DEFAULT_COLUMN_WIDTH_PX, this._pin = e.pin);
36
36
  }
37
37
  columns = [];
38
38
  get visibleColumns() {
@@ -65,7 +65,7 @@ class D {
65
65
  getPinnedColumn(e) {
66
66
  if (this.hasPin(e)) {
67
67
  if (this.isLeaf) return this;
68
- const t = new D({ ...this.def, pin: e }, this.grid, this.parent);
68
+ const t = new S({ ...this.def, pin: e }, this.grid, this.parent);
69
69
  return t.columns = this.columns.filter((i) => i.hasPin(e)).map((i) => {
70
70
  const n = i.getPinnedColumn(e);
71
71
  return n.parent = t, n;
@@ -93,7 +93,7 @@ class D {
93
93
  let e = 0;
94
94
  if (this.parent) {
95
95
  const { visibleColumns: t, left: i } = this.parent, n = t.findIndex((o) => o === this);
96
- e += t.sumBy((o, s) => s < n ? o.inlineWidth ?? 0 : 0), e += i;
96
+ e += t.sumBy((o, r) => r < n ? o.inlineWidth ?? 0 : 0), e += i;
97
97
  } else {
98
98
  const t = this.grid.columns.value.left.filter((n) => n.isVisible), i = t.findIndex((n) => n === this);
99
99
  e += t.sumBy((n, o) => o < i ? n.inlineWidth ?? 0 : 0);
@@ -104,10 +104,10 @@ class D {
104
104
  let e = 0;
105
105
  if (this.parent) {
106
106
  const { visibleColumns: t } = this.parent, i = t.reverse(), n = i.findIndex((o) => o === this);
107
- e += i.sumBy((o, s) => s < n ? o.inlineWidth ?? 0 : 0), e += this.parent.right;
107
+ e += i.sumBy((o, r) => r < n ? o.inlineWidth ?? 0 : 0), e += this.parent.right;
108
108
  } else {
109
109
  const i = this.grid.columns.value.right.filter((o) => o.isVisible).reverse(), n = i.findIndex((o) => o === this);
110
- e += i.sumBy((o, s) => s < n ? o.inlineWidth ?? 0 : 0);
110
+ e += i.sumBy((o, r) => r < n ? o.inlineWidth ?? 0 : 0);
111
111
  }
112
112
  return e;
113
113
  }
@@ -143,16 +143,16 @@ class D {
143
143
  }
144
144
  resizeColumn = (e) => {
145
145
  this.grid.isResizeMode = !0;
146
- const t = e.pageX, { MIN_COLUMN_WIDTH_PX: i, update: n } = this.grid, o = this.leafs.sumBy((c) => c.inlineWidth) - this.leafs.length * i, s = this.leafs.toRecord((c) => [c.key, c.inlineWidth]), m = J.throttle((c) => {
147
- const p = (c.pageX - t) * (this.pin === "RIGHT" ? -1 : 1);
148
- this.leafs.forEach((w) => {
149
- const v = s[w.key], x = o > 0 ? (v - i) / o * p : p / this.leafs.length, C = Math.round(v + x);
150
- w.setWidth(C < i ? i : C);
146
+ const t = e.pageX, { MIN_COLUMN_WIDTH_PX: i, update: n } = this.grid, o = this.leafs.sumBy((d) => d.inlineWidth) - this.leafs.length * i, r = this.leafs.toRecord((d) => [d.key, d.inlineWidth]), u = le.throttle((d) => {
147
+ const m = (d.pageX - t) * (this.pin === "RIGHT" ? -1 : 1);
148
+ this.leafs.forEach((f) => {
149
+ const R = r[f.key], y = o > 0 ? (R - i) / o * m : m / this.leafs.length, k = Math.round(R + y);
150
+ f.setWidth(k < i ? i : k);
151
151
  }), this.grid.sizes.clear(), n();
152
- }, 40), l = new AbortController(), d = (c) => {
153
- l.abort(), this.grid.isResizeMode = !1, n();
152
+ }, 40), a = new AbortController(), c = (d) => {
153
+ a.abort(), this.grid.isResizeMode = !1, n();
154
154
  };
155
- window.addEventListener("mousemove", m, l), window.addEventListener("mouseup", d, l);
155
+ window.addEventListener("mousemove", u, a), window.addEventListener("mouseup", c, a);
156
156
  };
157
157
  pinColumn = (e) => {
158
158
  this.isLeaf ? this._pin = e : this.columns.forEach((t) => t.pinColumn(e)), this.grid.pinColumn(this.uniqueKey, e);
@@ -172,15 +172,15 @@ class D {
172
172
  this.grid.toggleColumnVisibility(this.key);
173
173
  };
174
174
  }
175
- class _e {
175
+ class Me {
176
176
  constructor(e, t, i) {
177
177
  this.grid = e, this.row = t, this.column = i;
178
178
  }
179
179
  get value() {
180
- return this.column.key === b ? this.row.rowIndex + 1 : this.row.data[this.column.key];
180
+ return this.column.key === C ? this.row.rowIndex + 1 : this.row.data[this.column.key];
181
181
  }
182
182
  }
183
- class Y {
183
+ class oe {
184
184
  constructor(e, t, i) {
185
185
  this.grid = e, this.data = t, this.rowIndex = i, this.grid = e, this.data = t, this.key = this.grid.getRowKey(t);
186
186
  }
@@ -188,7 +188,7 @@ class Y {
188
188
  parentRow;
189
189
  count = 1;
190
190
  get cells() {
191
- return this.grid.columns.value.visibleLeafs.map((e) => new _e(this.grid, this, e));
191
+ return this.grid.columns.value.visibleLeafs.map((e) => new Me(this.grid, this, e));
192
192
  }
193
193
  get selected() {
194
194
  return this.grid.selectedRows.has(this.key);
@@ -200,89 +200,89 @@ class Y {
200
200
  return this;
201
201
  }
202
202
  }
203
- const _ = "empty-cell", b = "row-number-cell", B = "row-selection-cell", y = "grouping-cell";
204
- class Me {
203
+ const E = "empty-cell", C = "row-number-cell", se = 70, _ = "row-selection-cell", x = "grouping-cell";
204
+ class Ne {
205
205
  constructor(e, t) {
206
206
  this.props = e, this.update = t, console.debug("\x1B[32m%s\x1B[0m", "[react-box]: DataGrid GridModel ctor");
207
207
  }
208
- sourceColumns = S(() => {
208
+ sourceColumns = P(() => {
209
209
  const { def: e } = this.props, t = [];
210
- if (this.groupColumns.size > 0 && t.push(new D({ key: y }, this)), t.push(...e.columns.map((i) => new D(i, this))), t.push(new D({ key: _, Cell: () => null }, this)), e.rowSelection) {
210
+ if (this.groupColumns.size > 0 && t.push(new S({ key: x }, this)), t.push(...e.columns.map((i) => new S(i, this))), t.push(new S({ key: E, Cell: () => null }, this)), e.rowSelection) {
211
211
  const i = typeof e.rowSelection == "object" && e.rowSelection.pinned ? "LEFT" : void 0;
212
212
  t.unshift(
213
- new D({ key: B, pin: i, width: 50, align: "center", Cell: ie }, this)
213
+ new S({ key: _, pin: i, width: 50, align: "center", Cell: ue }, this)
214
214
  );
215
215
  }
216
216
  if (e.showRowNumber) {
217
- const i = typeof e.showRowNumber == "object" && e.showRowNumber.pinned ? "LEFT" : void 0;
218
- t.unshift(new D({ key: b, pin: i, width: 70, align: "right" }, this));
217
+ let i, n = se;
218
+ typeof e.showRowNumber == "object" && (e.showRowNumber.pinned && (i = "LEFT"), n = e.showRowNumber.width ?? se), t.unshift(new S({ key: C, pin: i, width: n, align: "right" }, this));
219
219
  }
220
220
  return t;
221
221
  });
222
- columns = S(() => {
222
+ columns = P(() => {
223
223
  console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid columns memo");
224
- const e = this.sourceColumns.value.map((l) => l.getPinnedColumn("LEFT")).filter((l) => !!l), t = this.sourceColumns.value.map((l) => l.getPinnedColumn()).filter((l) => !!l), i = this.sourceColumns.value.map((l) => l.getPinnedColumn("RIGHT")).filter((l) => !!l), n = [...e, ...t, ...i].flatMap((l) => l.flatColumns), o = n.filter((l) => l.isLeaf), s = n.filter((l) => l.isLeaf && l.isVisible), m = n.maxBy((l) => l.death) + 1;
224
+ const e = this.sourceColumns.value.map((a) => a.getPinnedColumn("LEFT")).filter((a) => !!a), t = this.sourceColumns.value.map((a) => a.getPinnedColumn()).filter((a) => !!a), i = this.sourceColumns.value.map((a) => a.getPinnedColumn("RIGHT")).filter((a) => !!a), n = [...e, ...t, ...i].flatMap((a) => a.flatColumns), o = n.filter((a) => a.isLeaf), r = n.filter((a) => a.isLeaf && a.isVisible), u = n.maxBy((a) => a.death) + 1;
225
225
  return {
226
226
  left: e,
227
227
  middle: t,
228
228
  right: i,
229
229
  flat: n,
230
230
  leafs: o,
231
- visibleLeafs: s,
232
- maxDeath: m
231
+ visibleLeafs: r,
232
+ maxDeath: u
233
233
  };
234
234
  });
235
- headerRows = S(() => (console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid headerRows memo"), this.columns.value.flat.groupBy((t) => t.death).sortBy((t) => t.key).map((t) => {
236
- const i = t.values.groupBy((n) => n.pin ?? Be).toRecord((n) => [n.key, n.values]);
235
+ headerRows = P(() => (console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid headerRows memo"), this.columns.value.flat.groupBy((t) => t.death).sortBy((t) => t.key).map((t) => {
236
+ const i = t.values.groupBy((n) => n.pin ?? Ee).toRecord((n) => [n.key, n.values]);
237
237
  return [
238
238
  ...i.LEFT?.filter((n) => n.isVisible) ?? [],
239
239
  ...i.NO_PIN?.filter((n) => n.isVisible) ?? [],
240
240
  ...i.RIGHT?.filter((n) => n.isVisible) ?? []
241
241
  ];
242
242
  })));
243
- gridTemplateColumns = S(() => {
243
+ gridTemplateColumns = P(() => {
244
244
  console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid gridTemplateColumns memo");
245
- const { visibleLeafs: e } = this.columns.value, t = e.sumBy((s) => s.pin === "RIGHT" ? 1 : 0), i = e.length - t - 1, n = i > 0 ? `repeat(${i}, max-content)` : "", o = t > 0 ? `repeat(${t}, max-content)` : "";
245
+ const { visibleLeafs: e } = this.columns.value, t = e.sumBy((r) => r.pin === "RIGHT" ? 1 : 0), i = e.length - t - 1, n = i > 0 ? `repeat(${i}, max-content)` : "", o = t > 0 ? `repeat(${t}, max-content)` : "";
246
246
  return `${n} auto ${o}`;
247
247
  });
248
- rows = S(() => {
248
+ rows = P(() => {
249
249
  console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid rows memo");
250
250
  let e = this.props.data;
251
251
  if (this._sortColumn && (e = e.sortBy((t) => t[this._sortColumn], this._sortDirection)), this.groupColumns.size > 0) {
252
252
  const t = (i, n, o) => {
253
- const s = n.values().next().value;
254
- n.delete(s);
255
- const m = this.columns.value.leafs.findOrThrow((l) => l.key === s);
256
- return this._sortColumn === y && (i = i.sortBy((l) => l[s], this._sortDirection)), i.groupBy((l) => l[s]).map((l) => {
257
- let d;
258
- n.size > 0 ? d = t(l.values, new Set(n), o + 1) : d = l.values.map((p, w) => new Y(this, p, o + 1 + w));
259
- const c = new ne(this, m, d, o, l.key);
260
- return o += 1, c.expanded && (o += d.length), c;
253
+ const r = n.values().next().value;
254
+ n.delete(r);
255
+ const u = this.columns.value.leafs.findOrThrow((a) => a.key === r);
256
+ return this._sortColumn === x && (i = i.sortBy((a) => a[r], this._sortDirection)), i.groupBy((a) => a[r]).map((a) => {
257
+ let c;
258
+ n.size > 0 ? c = t(a.values, new Set(n), o + 1) : c = a.values.map((m, f) => new oe(this, m, o + 1 + f));
259
+ const d = new me(this, u, c, o, a.key);
260
+ return o += 1, d.expanded && (o += c.length), d;
261
261
  });
262
262
  };
263
263
  return t(e, new Set(this.groupColumns), 0);
264
264
  }
265
- return e.map((t, i) => new Y(this, t, i));
265
+ return e.map((t, i) => new oe(this, t, i));
266
266
  });
267
- flatRows = S(() => (console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid flatRows memo"), this.rows.value.flatMap((e) => e.flatRows)));
267
+ flatRows = P(() => (console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid flatRows memo"), this.rows.value.flatMap((e) => e.flatRows)));
268
268
  get rowHeight() {
269
269
  return this.props.def.rowHeight ?? this.DEFAULT_ROW_HEIGHT_PX;
270
270
  }
271
- sizes = S(() => {
271
+ sizes = P(() => {
272
272
  console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid sizes memo");
273
273
  const e = this.columns.value.flat.reduce((n, o) => {
274
- const { inlineWidth: s } = o;
275
- return typeof s == "number" && (n[o.widthVarName] = `${o.inlineWidth}px`), o.pin === "LEFT" && (n[o.leftVarName] = `${o.left}px`), o.pin === "RIGHT" && (n[o.rightVarName] = `${o.right}px`), n;
274
+ const { inlineWidth: r } = o;
275
+ return typeof r == "number" && (n[o.widthVarName] = `${o.inlineWidth}px`), o.pin === "LEFT" && (n[o.leftVarName] = `${o.left}px`), o.pin === "RIGHT" && (n[o.rightVarName] = `${o.right}px`), n;
276
276
  }, {});
277
277
  e[this.rowHeightVarName] = `${this.rowHeight}px`, e[this.leftEdgeVarName] = `${this.leftEdge}px`;
278
- const { visibleLeafs: t } = this.columns.value, i = t.find((n) => n.key === y);
278
+ const { visibleLeafs: t } = this.columns.value, i = t.find((n) => n.key === x);
279
279
  if (i) {
280
- const n = t.sumBy((o) => o.pin === i.pin && o.key !== b && o.key !== B ? o.inlineWidth ?? 0 : 0);
280
+ const n = t.sumBy((o) => o.pin === i.pin && o.key !== C && o.key !== _ ? o.inlineWidth ?? 0 : 0);
281
281
  e[i.groupColumnWidthVarName] = `${n}px`;
282
282
  }
283
283
  return this.groupColumns.forEach((n) => {
284
- const o = this.columns.value.leafs.findOrThrow((s) => s.key === n);
285
- e[o.groupColumnWidthVarName] = `${t.sumBy((s) => s.pin === o.pin ? s.inlineWidth ?? 0 : 0)}px`;
284
+ const o = this.columns.value.leafs.findOrThrow((r) => r.key === n);
285
+ e[o.groupColumnWidthVarName] = `${t.sumBy((r) => r.pin === o.pin ? r.inlineWidth ?? 0 : 0)}px`;
286
286
  }), e;
287
287
  });
288
288
  DEFAULT_ROW_HEIGHT_PX = 48;
@@ -362,24 +362,30 @@ class Me {
362
362
  return this._sortDirection;
363
363
  }
364
364
  }
365
- class Ne {
365
+ class We {
366
366
  constructor(e, t, i) {
367
367
  this.grid = e, this.row = t, this.column = i;
368
368
  }
369
369
  get value() {
370
- return this.column.key === b ? this.row.rowIndex + 1 : this.column.key === y ? `${this.row.groupValue} (${this.row.count})` : null;
370
+ return this.column.key === C ? this.row.rowIndex + 1 : this.column.key === x ? `${this.row.groupValue} (${this.row.count})` : null;
371
371
  }
372
372
  }
373
- class ne {
373
+ class me {
374
374
  constructor(e, t, i, n, o) {
375
- this.grid = e, this.groupColumn = t, this.rows = i, this.rowIndex = n, this.groupValue = o, i.forEach((s) => s.parentRow = this);
375
+ this.grid = e, this.groupColumn = t, this.rows = i, this.rowIndex = n, this.groupValue = o, i.forEach((r) => r.parentRow = this);
376
376
  }
377
377
  get key() {
378
378
  return `${this.parentRow?.key ?? ""}${this.groupColumn.key}${this.groupValue}`;
379
379
  }
380
380
  parentRow;
381
381
  get cells() {
382
- return this.grid.columns.value.visibleLeafs.map((e) => new Ne(this.grid, this, e));
382
+ return this.grid.columns.value.visibleLeafs.map((e) => new We(this.grid, this, e));
383
+ }
384
+ get selected() {
385
+ return this.allRows.every((e) => e.selected);
386
+ }
387
+ get indeterminate() {
388
+ return !this.selected && this.allRows.some((e) => e.selected);
383
389
  }
384
390
  get expanded() {
385
391
  return this.grid.expandedGroupRow.has(this.key);
@@ -397,33 +403,41 @@ class ne {
397
403
  return this.rows.flatMap((e) => e.allRows);
398
404
  }
399
405
  get groupingColumn() {
400
- return this.grid.columns.value.leafs.findOrThrow((e) => e.key === y);
406
+ return this.grid.columns.value.leafs.findOrThrow((e) => e.key === x);
401
407
  }
402
408
  get groupingColumnGridColumn() {
403
409
  const { visibleLeafs: e } = this.grid.columns.value, { groupingColumn: t } = this;
404
410
  return e.sumBy(
405
- (n) => n.pin === t.pin && n.key !== _ && n.key !== B && n.key !== b ? 1 : 0
411
+ (n) => n.pin === t.pin && n.key !== E && n.key !== _ && n.key !== C ? 1 : 0
406
412
  );
407
413
  }
408
414
  toggleRow() {
409
415
  this.grid.toggleGroupRow(this.key);
410
416
  }
411
417
  }
412
- function E(a) {
413
- const { children: e, column: t, style: i, ...n } = a, { key: o, pin: s, left: m, right: l, isEdge: d, align: c, widthVarName: p, leftVarName: w, rightVarName: v } = t;
414
- "align" in t.def && (n.jc = c);
415
- const x = o === b, C = o === B, R = s === "LEFT", G = s === "RIGHT";
416
- return /* @__PURE__ */ r(
418
+ function A(l) {
419
+ const { children: e, column: t, style: i, ...n } = l, { key: o, pin: r, left: u, right: a, isEdge: c, align: d, widthVarName: m, leftVarName: f, rightVarName: R } = t;
420
+ "align" in t.def && (n.jc = d);
421
+ const y = o === C, k = o === _, G = r === "LEFT", b = r === "RIGHT";
422
+ return /* @__PURE__ */ s(
417
423
  g,
418
424
  {
419
- component: "datagrid.cell",
425
+ component: "datagrid.body.cell",
420
426
  props: { role: "cell" },
421
- variant: { isPinned: R || G, isFirstLeftPinned: R && m === 0, isLastLeftPinned: R && d, isFirstRightPinned: G && d, isLastRightPinned: G && l === 0, isRowNumber: x, isRowSelection: C },
427
+ variant: {
428
+ isPinned: G || b,
429
+ isFirstLeftPinned: G && u === 0,
430
+ isLastLeftPinned: G && c,
431
+ isFirstRightPinned: b && c,
432
+ isLastRightPinned: b && a === 0,
433
+ isRowSelection: k,
434
+ isRowNumber: y
435
+ },
422
436
  style: {
423
- width: `var(${p})`,
437
+ width: `var(${m})`,
424
438
  height: `var(${t.grid.rowHeightVarName})`,
425
- left: R ? `var(${w})` : void 0,
426
- right: G ? `var(${v})` : void 0,
439
+ left: G ? `var(${f})` : void 0,
440
+ right: b ? `var(${R})` : void 0,
427
441
  ...i
428
442
  },
429
443
  ...n,
@@ -431,70 +445,68 @@ function E(a) {
431
445
  }
432
446
  );
433
447
  }
434
- E.displayName = "DataGridCell";
435
- function oe(a) {
436
- const { row: e } = a, t = W(() => {
437
- e.grid.toggleRowsSelection(e.allRows.map((i) => i.key));
448
+ A.displayName = "DataGridCell";
449
+ function pe(l) {
450
+ const { row: e } = l, { selected: t, indeterminate: i, cells: n, groupingColumn: o, groupingColumnGridColumn: r, depth: u, expanded: a } = e, c = X(() => {
451
+ e.grid.toggleRowsSelection(e.allRows.map((d) => d.key));
438
452
  }, []);
439
- return /* @__PURE__ */ r(g, { className: "grid-row", display: "contents", props: { role: "rowgroup" }, children: e.cells.map((i) => {
440
- const { key: n, pin: o, groupColumnWidthVarName: s } = i.column, m = o === "RIGHT";
441
- if (n === y)
442
- return /* @__PURE__ */ r(
443
- E,
453
+ return /* @__PURE__ */ s(g, { className: "grid-row", selected: t, display: "contents", props: { role: "rowgroup" }, children: n.map((d) => {
454
+ const { key: m, pin: f, groupColumnWidthVarName: R } = d.column, y = f === "RIGHT";
455
+ if (m === x)
456
+ return /* @__PURE__ */ s(
457
+ A,
444
458
  {
445
- column: i.column,
459
+ column: d.column,
446
460
  style: {
447
- width: `var(${s})`,
448
- right: m ? "0" : void 0
461
+ width: `var(${R})`,
462
+ right: y ? "0" : void 0
449
463
  },
450
- br: e.groupingColumn.pin === "LEFT" ? 1 : void 0,
451
- gridColumn: e.groupingColumnGridColumn,
452
- pl: 4 * e.depth,
464
+ br: o.pin === "LEFT" ? 1 : void 0,
465
+ gridColumn: r,
466
+ pl: 4 * u,
453
467
  overflow: "auto",
454
- children: /* @__PURE__ */ r(h, { textWrap: "nowrap", px: 4, children: /* @__PURE__ */ u(f, { clean: !0, onClick: () => e.toggleRow(), cursor: "pointer", display: "flex", gap: 1, ai: "center", children: [
455
- /* @__PURE__ */ r(Q, { fill: "currentColor", width: "14px", height: "14px", rotate: e.expanded ? 0 : -90 }),
456
- i.value
468
+ children: /* @__PURE__ */ s(p, { textWrap: "nowrap", px: 3, children: /* @__PURE__ */ h(w, { clean: !0, onClick: () => e.toggleRow(), cursor: "pointer", display: "flex", gap: 1, ai: "center", children: [
469
+ /* @__PURE__ */ s(ae, { fill: "currentColor", width: "14px", height: "14px", rotate: a ? 0 : -90 }),
470
+ d.value
457
471
  ] }) })
458
472
  },
459
- n
473
+ m
460
474
  );
461
- if (n === B) {
462
- const l = e.allRows, d = l.every((p) => p.selected), c = !d && l.some((p) => p.selected);
463
- return /* @__PURE__ */ r(E, { column: i.column, children: /* @__PURE__ */ r(I, { variant: "datagrid", m: 1, checked: d, indeterminate: c, onChange: t }) }, n);
464
- }
465
- if (n === _) return /* @__PURE__ */ r(h, {}, n);
466
- if (o !== e.groupingColumn.pin || n === b)
467
- return /* @__PURE__ */ r(E, { column: i.column, px: 4, children: i.value }, n);
475
+ if (m === _)
476
+ return /* @__PURE__ */ s(A, { column: d.column, children: /* @__PURE__ */ s(q, { variant: "datagrid", m: 1, checked: t, indeterminate: i, onChange: c }) }, m);
477
+ if (f !== o.pin || m === C || m === E)
478
+ return /* @__PURE__ */ s(A, { column: d.column, px: m === C ? 3 : void 0, children: d.value }, m);
468
479
  }) });
469
480
  }
470
- oe.displayName = "DataGridGroupRow";
471
- function re(a) {
472
- const { cell: e } = a;
473
- return /* @__PURE__ */ r(g, { height: "fit", width: "fit", overflow: "auto", ai: "center", jc: e.column.align, children: /* @__PURE__ */ r(h, { px: 4, textOverflow: "ellipsis", overflow: "hidden", textWrap: "nowrap", children: e.value }) });
481
+ pe.displayName = "DataGridGroupRow";
482
+ function ge(l) {
483
+ const { cell: e } = l;
484
+ return /* @__PURE__ */ s(g, { height: "fit", width: "fit", overflow: "auto", ai: "center", jc: e.column.align, children: /* @__PURE__ */ s(p, { px: 3, textOverflow: "ellipsis", overflow: "hidden", textWrap: "nowrap", children: e.value }) });
474
485
  }
475
- re.displayName = "DataGridCellText";
476
- function se(a) {
477
- const { row: e } = a;
478
- return /* @__PURE__ */ r(g, { className: "grid-row", display: "contents", props: { role: "row" }, children: e.cells.map((t) => /* @__PURE__ */ r(E, { column: t.column, children: t.column.Cell ? /* @__PURE__ */ r(t.column.Cell, { cell: t }) : /* @__PURE__ */ r(re, { cell: t }) }, t.column.key)) });
486
+ ge.displayName = "DataGridCellText";
487
+ function fe(l) {
488
+ const { row: e } = l, { selected: t } = e;
489
+ return /* @__PURE__ */ s(g, { className: "grid-row", selected: t, display: "contents", props: { role: "row" }, children: e.cells.map((i) => /* @__PURE__ */ s(A, { column: i.column, children: i.column.Cell ? /* @__PURE__ */ s(i.column.Cell, { cell: i }) : /* @__PURE__ */ s(ge, { cell: i }) }, i.column.key)) });
479
490
  }
480
- se.displayName = "DataGridRow";
481
- const Ee = 10, K = 20;
482
- function le(a) {
483
- const { grid: e, scrollTop: t } = a, i = e.flatRows.value.length, n = Math.max(0, Math.floor(t / e.rowHeight) - K), o = e.props.def.visibleRowsCount ?? Ee, s = e.rowHeight * o + e.rowHeight / 5, m = H(() => {
491
+ fe.displayName = "DataGridRow";
492
+ const He = 10, re = 20;
493
+ function we(l) {
494
+ const { grid: e, scrollTop: t } = l, i = e.flatRows.value.length, n = Math.max(0, Math.floor(t / e.rowHeight) - re), o = e.props.def.visibleRowsCount ?? He, r = e.rowHeight * o + e.rowHeight / 5, u = j(() => {
484
495
  if (console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid render rows"), e.props.data.length === 0)
485
- return /* @__PURE__ */ r(g, { jc: "center", ai: "center", gridColumn: "full-row", style: { height: s }, children: e.props.loading ? "loading..." : "empty" });
486
- const l = o + K * 2;
487
- return e.flatRows.value.take(l, n).map((c) => c instanceof ne ? /* @__PURE__ */ r(oe, { row: c }, c.key) : /* @__PURE__ */ r(se, { row: c }, c.key));
488
- }, [e.flatRows.value, e.props.data.length, e.props.loading, n, s, o]);
489
- return console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid render DataGridBody"), /* @__PURE__ */ r(h, { style: { height: s }, children: /* @__PURE__ */ r(
490
- h,
496
+ return /* @__PURE__ */ s(g, { jc: "center", ai: "center", gridColumn: "full-row", style: { height: r }, children: e.props.loading ? "loading..." : "empty" });
497
+ const a = o + re * 2;
498
+ return e.flatRows.value.take(a, n).map((d) => d instanceof me ? /* @__PURE__ */ s(pe, { row: d }, d.key) : /* @__PURE__ */ s(fe, { row: d }, d.key));
499
+ }, [e.flatRows.value, e.props.data.length, e.props.loading, n, r, o]);
500
+ return console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid render DataGridBody"), /* @__PURE__ */ s(p, { style: { height: r }, children: /* @__PURE__ */ s(
501
+ p,
491
502
  {
492
503
  style: {
493
504
  height: `${i * e.rowHeight}px`
494
505
  },
495
- children: /* @__PURE__ */ r(
496
- ee,
506
+ children: /* @__PURE__ */ s(
507
+ ce,
497
508
  {
509
+ component: "datagrid.body",
498
510
  width: "max-content",
499
511
  minWidth: "fit",
500
512
  transition: "none",
@@ -502,71 +514,79 @@ function le(a) {
502
514
  transform: `translateY(${n * e.rowHeight}px)`,
503
515
  gridTemplateColumns: e.gridTemplateColumns.value
504
516
  },
505
- children: m
517
+ children: u
506
518
  }
507
519
  )
508
520
  }
509
521
  ) });
510
522
  }
511
- le.displayName = "DataGridBody";
512
- function ae(a) {
513
- const { column: e } = a, [t, i, n] = Z({ hideOnScroll: !0, event: "mousedown" }), [o, s] = O({ top: 0, left: 0 }), m = H(() => o.left > window.innerWidth / 2, [o.left]), l = e.isLeaf && (e.grid.sortColumn !== e.key || e.grid.sortDirection === "DESC"), d = e.isLeaf && (e.grid.sortColumn !== e.key || e.grid.sortDirection === "ASC"), c = e.isLeaf && e.grid.sortColumn === e.key, p = e.pin !== "LEFT", w = e.pin !== "RIGHT", v = !!e.pin, x = e.isLeaf && e.key !== y, C = e.isLeaf && e.key === y, R = l || d || c, G = p || w || v, k = e.align === "right" ? 2 : void 0, T = e.align === "right" ? void 0 : e.pin === "RIGHT" ? 2.5 : 4;
514
- return /* @__PURE__ */ r(g, { position: "absolute", left: k, right: T, top: "1/2", translateY: -3, ai: "center", children: /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu", onClick: () => i(!t), children: [
515
- /* @__PURE__ */ r(L, { component: "datagrid.header.cell.contextMenu.icon", children: /* @__PURE__ */ r(Le, { fill: "currentColor" }) }),
516
- t && /* @__PURE__ */ u(
517
- te,
518
- {
519
- component: "datagrid.header.cell.contextMenu.tooltip",
520
- variant: { openLeft: m },
521
- onPositionChange: s,
522
- ref: n,
523
- children: [
524
- l && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.sortColumn("ASC"), children: [
525
- /* @__PURE__ */ r(L, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ r(A, { width: "100%", fill: "currentColor" }) }),
526
- "Sort Ascending"
527
- ] }),
528
- d && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.sortColumn("DESC"), children: [
529
- /* @__PURE__ */ r(L, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ r(A, { width: "100%", fill: "currentColor", rotate: 180 }) }),
530
- "Sort Descending"
531
- ] }),
532
- c && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.sortColumn(void 0), children: [
533
- /* @__PURE__ */ r(h, { width: 4 }),
534
- "Clear Sort"
535
- ] }),
536
- R && (G || x || C) && /* @__PURE__ */ r(h, { bb: 1, my: 2, borderColor: "gray-300" }),
537
- p && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.pinColumn("LEFT"), children: [
538
- /* @__PURE__ */ r(L, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ r(q, { width: "100%", fill: "currentColor" }) }),
539
- "Pin Left"
540
- ] }),
541
- w && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.pinColumn("RIGHT"), children: [
542
- /* @__PURE__ */ r(L, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ r(q, { width: "100%", fill: "currentColor", rotate: -90 }) }),
543
- "Pin Right"
544
- ] }),
545
- v && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.pinColumn(), children: [
546
- /* @__PURE__ */ r(h, { width: 4 }),
547
- "Unpin"
548
- ] }),
549
- R && G && (x || C) && /* @__PURE__ */ r(h, { bb: 1, my: 2, borderColor: "gray-300" }),
550
- x && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: e.toggleGrouping, children: [
551
- /* @__PURE__ */ r(L, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ r($, { width: "100%", fill: "currentColor" }) }),
552
- /* @__PURE__ */ u(h, { textWrap: "nowrap", children: [
553
- "Group by ",
554
- e.header ?? e.key
555
- ] })
556
- ] }),
557
- C && /* @__PURE__ */ u(f, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: e.grid.unGroupAll, children: [
558
- /* @__PURE__ */ r(L, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ r($, { width: "100%", fill: "currentColor" }) }),
559
- /* @__PURE__ */ r(h, { textWrap: "nowrap", children: "Un-Group All" })
560
- ] })
561
- ]
562
- }
563
- )
564
- ] }) });
523
+ we.displayName = "DataGridBody";
524
+ function Ce(l) {
525
+ const { column: e } = l, { key: t, pin: i, left: n, right: o, isEdge: r, isLeaf: u, align: a, header: c, grid: d } = e, [m, f, R] = de({ hideOnScroll: !0, event: "mousedown" }), [y, k] = te({ top: 0, left: 0 }), G = j(() => y.left > window.innerWidth / 2, [y.left]), b = u && (d.sortColumn !== t || d.sortDirection === "DESC"), L = u && (d.sortColumn !== t || d.sortDirection === "ASC"), v = u && d.sortColumn === t, T = i !== "LEFT", B = i !== "RIGHT", N = !!i, W = u && t !== x, H = u && t === x, F = b || L || v, O = T || B || N, $ = a === "right" ? 2 : void 0, Y = a === "right" ? void 0 : i === "RIGHT" ? 2.5 : 4, K = t === E, I = t === C, J = t === _, V = i === "LEFT", z = i === "RIGHT";
526
+ return /* @__PURE__ */ s(g, { position: "absolute", left: $, right: Y, top: "1/2", translateY: -3, ai: "center", children: /* @__PURE__ */ h(
527
+ w,
528
+ {
529
+ component: "datagrid.header.cell.contextMenu",
530
+ onClick: () => f(!m),
531
+ variant: { isPinned: V || i === "RIGHT", isFirstLeftPinned: V && n === 0, isLastLeftPinned: V && r, isFirstRightPinned: z && r, isLastRightPinned: z && o === 0, isSortable: u && !K && !I && !J, isRowNumber: I },
532
+ children: [
533
+ /* @__PURE__ */ s(D, { component: "datagrid.header.cell.contextMenu.icon", children: /* @__PURE__ */ s(Se, { fill: "currentColor" }) }),
534
+ m && /* @__PURE__ */ h(
535
+ he,
536
+ {
537
+ component: "datagrid.header.cell.contextMenu.tooltip",
538
+ variant: { openLeft: G },
539
+ onPositionChange: k,
540
+ ref: R,
541
+ children: [
542
+ b && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.sortColumn("ASC"), children: [
543
+ /* @__PURE__ */ s(D, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ s(Z, { width: "100%", fill: "currentColor" }) }),
544
+ "Sort Ascending"
545
+ ] }),
546
+ L && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.sortColumn("DESC"), children: [
547
+ /* @__PURE__ */ s(D, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ s(Z, { width: "100%", fill: "currentColor", rotate: 180 }) }),
548
+ "Sort Descending"
549
+ ] }),
550
+ v && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.sortColumn(void 0), children: [
551
+ /* @__PURE__ */ s(p, { width: 4 }),
552
+ "Clear Sort"
553
+ ] }),
554
+ F && (O || W || H) && /* @__PURE__ */ s(p, { bb: 1, my: 2, borderColor: "gray-300" }),
555
+ T && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.pinColumn("LEFT"), children: [
556
+ /* @__PURE__ */ s(D, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ s(ne, { width: "100%", fill: "currentColor" }) }),
557
+ "Pin Left"
558
+ ] }),
559
+ B && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.pinColumn("RIGHT"), children: [
560
+ /* @__PURE__ */ s(D, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ s(ne, { width: "100%", fill: "currentColor", rotate: -90 }) }),
561
+ "Pin Right"
562
+ ] }),
563
+ N && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: () => e.pinColumn(), children: [
564
+ /* @__PURE__ */ s(p, { width: 4 }),
565
+ "Unpin"
566
+ ] }),
567
+ F && O && (W || H) && /* @__PURE__ */ s(p, { bb: 1, my: 2, borderColor: "gray-300" }),
568
+ W && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: e.toggleGrouping, children: [
569
+ /* @__PURE__ */ s(D, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ s(ee, { width: "100%", fill: "currentColor" }) }),
570
+ /* @__PURE__ */ h(p, { textWrap: "nowrap", children: [
571
+ "Group by ",
572
+ c ?? t
573
+ ] })
574
+ ] }),
575
+ H && /* @__PURE__ */ h(w, { component: "datagrid.header.cell.contextMenu.tooltip.item", onClick: d.unGroupAll, children: [
576
+ /* @__PURE__ */ s(D, { component: "datagrid.header.cell.contextMenu.tooltip.item.icon", children: /* @__PURE__ */ s(ee, { width: "100%", fill: "currentColor" }) }),
577
+ /* @__PURE__ */ s(p, { textWrap: "nowrap", children: "Un-Group All" })
578
+ ] })
579
+ ]
580
+ }
581
+ )
582
+ ]
583
+ }
584
+ ) });
565
585
  }
566
- ae.displayName = "DataGridHeaderCellContextMenu";
567
- function de(a) {
568
- const { column: e } = a;
569
- return /* @__PURE__ */ r(
586
+ Ce.displayName = "DataGridHeaderCellContextMenu";
587
+ function Re(l) {
588
+ const { column: e } = l;
589
+ return /* @__PURE__ */ s(
570
590
  g,
571
591
  {
572
592
  height: "fit",
@@ -575,166 +595,168 @@ function de(a) {
575
595
  right: e.pin === "RIGHT" ? void 0 : 0,
576
596
  left: e.pin !== "RIGHT" ? void 0 : 0,
577
597
  py: 3,
578
- children: /* @__PURE__ */ r(
579
- h,
598
+ children: /* @__PURE__ */ s(
599
+ p,
580
600
  {
581
601
  cursor: "col-resize",
582
602
  px: 0.75,
583
603
  className: "resizer",
584
604
  height: "fit",
585
605
  props: { onMouseDown: e.resizeColumn, onTouchStart: e.resizeColumn },
586
- children: /* @__PURE__ */ r(h, { component: "datagrid.header.cell.resizer" })
606
+ children: /* @__PURE__ */ s(p, { component: "datagrid.header.cell.resizer" })
587
607
  }
588
608
  )
589
609
  }
590
610
  );
591
611
  }
592
- de.displayName = "DataGridHeaderCellResizer";
593
- function ce(a) {
594
- const { column: e } = a, { key: t, pin: i, left: n, right: o, isEdge: s, isLeaf: m, leafs: l, grid: d, header: c, gridRows: p, widthVarName: w, leftVarName: v, rightVarName: x, inlineWidth: C } = e, R = t === _, G = t === y, k = t === b, T = t === B, M = i === "LEFT", P = i === "RIGHT", F = M || i === "RIGHT", fe = M && n === 0, we = M && s, Ce = P && s, Re = P && o === 0, U = m && !R && !k && !T, ye = m ? 1 : l.length, ve = !k && !T, X = !k && !T, j = W(() => {
595
- d.toggleSelectAllRows();
596
- }, []), xe = H(() => {
597
- if (k) return null;
598
- if (T) {
599
- const N = d.selectedRows.size === d.props.data.length, V = !N && d.selectedRows.size > 0;
600
- return /* @__PURE__ */ r(I, { variant: "datagrid", m: 1, indeterminate: V, checked: N, onChange: j });
612
+ Re.displayName = "DataGridHeaderCellResizer";
613
+ function ye(l) {
614
+ const { column: e } = l, { key: t, pin: i, left: n, right: o, isEdge: r, isLeaf: u, leafs: a, grid: c, header: d, gridRows: m, widthVarName: f, leftVarName: R, rightVarName: y, inlineWidth: k } = e, G = t === E, b = t === x, L = t === C, v = t === _, T = i === "LEFT", B = i === "RIGHT", N = T || i === "RIGHT", W = T && n === 0, H = T && r, F = B && r, O = B && o === 0, $ = u && !G && !L && !v, Y = u ? 1 : a.length, K = !L && !v, I = !L && !v, J = v ? void 0 : e.align === "right" ? 10 : 3, V = v ? void 0 : e.align === "center" ? 3 : void 0, z = X(() => {
615
+ c.toggleSelectAllRows();
616
+ }, []), ie = j(() => {
617
+ if (L) return null;
618
+ if (v) {
619
+ const M = c.selectedRows.size === c.props.data.length, U = !M && c.selectedRows.size > 0;
620
+ return /* @__PURE__ */ s(q, { variant: "datagrid", m: 1, indeterminate: U, checked: M, onChange: z });
601
621
  }
602
- if (G) {
603
- if (d.groupColumns.size === 1) {
604
- const N = d.columns.value.leafs.findOrThrow((V) => V.key === d.groupColumns.values().next().value);
605
- return N.header ?? N.key;
622
+ if (b) {
623
+ if (c.groupColumns.size === 1) {
624
+ const M = c.columns.value.leafs.findOrThrow((U) => U.key === c.groupColumns.values().next().value);
625
+ return M.header ?? M.key;
606
626
  }
607
627
  return "Group";
608
628
  }
609
- return c ?? t;
610
- }, [d.groupColumns, d.selectedRows, j]);
611
- return /* @__PURE__ */ r(
629
+ return d ?? t;
630
+ }, [c.groupColumns, c.selectedRows, z]);
631
+ return /* @__PURE__ */ s(
612
632
  g,
613
633
  {
634
+ props: { role: "columnheader" },
614
635
  component: "datagrid.header.cell",
615
- variant: { isRowNumber: k, isPinned: F, isFirstLeftPinned: fe, isLastLeftPinned: we, isFirstRightPinned: Ce, isLastRightPinned: Re, isSortable: U },
616
- gridRow: p,
617
- gridColumn: ye,
636
+ variant: { isPinned: N, isFirstLeftPinned: W, isLastLeftPinned: H, isFirstRightPinned: F, isLastRightPinned: O, isSortable: $, isRowNumber: L },
637
+ gridRow: m,
638
+ gridColumn: Y,
618
639
  style: {
619
- width: `var(${w})`,
620
- left: M ? `var(${v})` : void 0,
621
- right: P ? `var(${x})` : void 0
640
+ width: `var(${f})`,
641
+ left: T ? `var(${R})` : void 0,
642
+ right: B ? `var(${y})` : void 0
622
643
  },
623
- children: !R && /* @__PURE__ */ u(Ge, { children: [
624
- /* @__PURE__ */ r(g, { width: "fit", height: "fit", jc: e.align, props: { onClick: U ? () => e.sortColumn() : void 0 }, children: /* @__PURE__ */ u(
644
+ children: !G && /* @__PURE__ */ h(ke, { children: [
645
+ /* @__PURE__ */ s(g, { width: "fit", height: "fit", jc: e.align, props: { onClick: $ ? () => e.sortColumn() : void 0 }, children: /* @__PURE__ */ h(
625
646
  g,
626
647
  {
627
648
  overflow: "hidden",
628
- position: m ? void 0 : "sticky",
649
+ position: u ? void 0 : "sticky",
629
650
  ai: "center",
630
651
  transition: "none",
631
- pl: e.align === "right" ? 10 : 4,
652
+ pl: J,
653
+ pr: V,
632
654
  style: {
633
- left: i ? void 0 : `var(${d.leftEdgeVarName})`
655
+ left: i ? void 0 : `var(${c.leftEdgeVarName})`
634
656
  },
635
657
  children: [
636
- /* @__PURE__ */ r(h, { overflow: "hidden", textOverflow: "ellipsis", textWrap: "nowrap", children: xe }),
637
- t === d.sortColumn && /* @__PURE__ */ r(h, { pl: (C ?? 0) < 58 ? 0 : 2, children: /* @__PURE__ */ r(A, { width: "16px", rotate: d.sortDirection === "ASC" ? 0 : 180, fill: "currentColor" }) }),
638
- X && /* @__PURE__ */ r(h, { minWidth: e.align === "right" ? 4 : 10 })
658
+ /* @__PURE__ */ s(p, { overflow: "hidden", textOverflow: "ellipsis", textWrap: "nowrap", children: ie }),
659
+ t === c.sortColumn && /* @__PURE__ */ s(p, { pl: (k ?? 0) < 58 ? 0 : 2, children: /* @__PURE__ */ s(Z, { width: "16px", rotate: c.sortDirection === "ASC" ? 0 : 180, fill: "currentColor" }) }),
660
+ I && /* @__PURE__ */ s(p, { minWidth: e.align === "right" ? 4 : 10 })
639
661
  ]
640
662
  }
641
663
  ) }),
642
- ve && /* @__PURE__ */ r(de, { column: e }),
643
- X && /* @__PURE__ */ r(ae, { column: e })
664
+ K && /* @__PURE__ */ s(Re, { column: e }),
665
+ I && /* @__PURE__ */ s(Ce, { column: e })
644
666
  ] })
645
667
  }
646
668
  );
647
669
  }
648
- ce.displayName = "DataGridHeaderCell";
649
- function ue(a) {
650
- const { grid: e } = a, { isResizeMode: t } = e;
651
- return /* @__PURE__ */ r(ee, { component: "datagrid.header", variant: { isResizeMode: t }, style: { gridTemplateColumns: e.gridTemplateColumns.value }, children: e.headerRows.value.map((i) => i.map((n) => /* @__PURE__ */ r(ce, { column: n }, n.uniqueKey))) });
670
+ ye.displayName = "DataGridHeaderCell";
671
+ function ve(l) {
672
+ const { grid: e } = l, { isResizeMode: t } = e;
673
+ return /* @__PURE__ */ s(ce, { component: "datagrid.header", variant: { isResizeMode: t }, style: { gridTemplateColumns: e.gridTemplateColumns.value }, children: e.headerRows.value.map((i) => i.map((n) => /* @__PURE__ */ s(ye, { column: n }, n.uniqueKey))) });
652
674
  }
653
- ue.displayName = "DataGridHeader";
654
- function he(a) {
655
- const { grid: e } = a, [t, i] = O(0), n = W(
656
- J.throttle((o) => {
675
+ ve.displayName = "DataGridHeader";
676
+ function xe(l) {
677
+ const { grid: e } = l, [t, i] = te(0), n = X(
678
+ le.throttle((o) => {
657
679
  i(o.target.scrollTop);
658
680
  }, 100),
659
681
  []
660
682
  );
661
- return /* @__PURE__ */ u(h, { overflowX: "scroll", props: { onScroll: n }, children: [
662
- /* @__PURE__ */ r(ue, { grid: e }),
663
- /* @__PURE__ */ r(le, { grid: e, scrollTop: t })
683
+ return /* @__PURE__ */ h(p, { overflowX: "scroll", props: { onScroll: n }, children: [
684
+ /* @__PURE__ */ s(ve, { grid: e }),
685
+ /* @__PURE__ */ s(we, { grid: e, scrollTop: t })
664
686
  ] });
665
687
  }
666
- he.displayName = "DataGridContent";
667
- function me(a) {
668
- const { grid: e } = a;
669
- return e.groupColumns.size === 0 ? null : /* @__PURE__ */ u(g, { component: "datagrid.topBar.columnGroups", children: [
670
- /* @__PURE__ */ r(L, { component: "datagrid.topBar.columnGroups.icon", children: /* @__PURE__ */ r($, { width: "100%", fill: "currentColor" }) }),
688
+ xe.displayName = "DataGridContent";
689
+ function Ge(l) {
690
+ const { grid: e } = l;
691
+ return e.groupColumns.size === 0 ? null : /* @__PURE__ */ h(g, { component: "datagrid.topBar.columnGroups", children: [
692
+ /* @__PURE__ */ s(D, { component: "datagrid.topBar.columnGroups.icon", children: /* @__PURE__ */ s(ee, { width: "100%", fill: "currentColor" }) }),
671
693
  Array.from(e.groupColumns, (t) => {
672
694
  const i = e.columns.value.leafs.findOrThrow((n) => n.key === t);
673
- return /* @__PURE__ */ u(be.Fragment, { children: [
674
- /* @__PURE__ */ r(Q, { fill: "currentColor", width: "14px", height: "14px", rotate: -90 }),
675
- /* @__PURE__ */ u(g, { component: "datagrid.topBar.columnGroups.item", children: [
695
+ return /* @__PURE__ */ h(Te.Fragment, { children: [
696
+ /* @__PURE__ */ s(ae, { fill: "currentColor", width: "14px", height: "14px", rotate: -90 }),
697
+ /* @__PURE__ */ h(g, { component: "datagrid.topBar.columnGroups.item", children: [
676
698
  i.header ?? i.key,
677
- /* @__PURE__ */ r(f, { component: "datagrid.topBar.columnGroups.item.icon", onClick: () => e.toggleGrouping(i.key), children: /* @__PURE__ */ r(De, { fill: "currentColor", width: "100%" }) })
699
+ /* @__PURE__ */ s(w, { component: "datagrid.topBar.columnGroups.item.icon", onClick: () => e.toggleGrouping(i.key), children: /* @__PURE__ */ s(_e, { fill: "currentColor", width: "100%" }) })
678
700
  ] })
679
701
  ] }, t);
680
702
  })
681
703
  ] });
682
704
  }
683
- me.displayName = "DataGridColumnGroups";
684
- function pe(a) {
685
- const { grid: e } = a, [t, i, n] = Z({ event: "mousedown" }), o = H(
705
+ Ge.displayName = "DataGridColumnGroups";
706
+ function be(l) {
707
+ const { grid: e } = l, [t, i, n] = de({ event: "mousedown" }), o = j(
686
708
  () => e.columns.value.leafs.filter(
687
- (s) => ![_, b, B, y].includes(s.key)
709
+ (r) => ![E, C, _, x].includes(r.key)
688
710
  ),
689
711
  [e.columns.value.leafs]
690
712
  );
691
- return /* @__PURE__ */ u(f, { component: "datagrid.topBar.contextMenu", onClick: () => i(!t), children: [
692
- /* @__PURE__ */ r(Te, { viewBox: "0 0 24 24", width: "20", fill: "currentColor", ...a, children: /* @__PURE__ */ r("path", { d: "M5 6h14M5 12h14M5 18h14", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) }),
693
- t && /* @__PURE__ */ r(te, { component: "datagrid.topBar.contextMenu.tooltip", ref: n, children: o.map((s) => /* @__PURE__ */ u(
694
- f,
713
+ return /* @__PURE__ */ h(w, { component: "datagrid.topBar.contextMenu", onClick: () => i(!t), children: [
714
+ /* @__PURE__ */ s(Be, { viewBox: "0 0 24 24", width: "20", fill: "currentColor", ...l, children: /* @__PURE__ */ s("path", { d: "M5 6h14M5 12h14M5 18h14", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) }),
715
+ t && /* @__PURE__ */ s(he, { component: "datagrid.topBar.contextMenu.tooltip", ref: n, children: o.map((r) => /* @__PURE__ */ h(
716
+ w,
695
717
  {
696
718
  component: "datagrid.topBar.contextMenu.tooltip.item",
697
- onClick: (m) => {
698
- m.stopPropagation(), s.toggleVisibility();
719
+ onClick: (u) => {
720
+ u.stopPropagation(), r.toggleVisibility();
699
721
  },
700
722
  children: [
701
- /* @__PURE__ */ r(I, { variant: "datagrid", checked: s.isVisible, onChange: () => {
723
+ /* @__PURE__ */ s(q, { variant: "datagrid", checked: r.isVisible, onChange: () => {
702
724
  }, focus: { outline: 0 } }),
703
- s.header ?? s.key
725
+ r.header ?? r.key
704
726
  ]
705
727
  },
706
- s.key
728
+ r.key
707
729
  )) })
708
730
  ] });
709
731
  }
710
- pe.displayName = "DataGridTopBarContextMenu";
711
- function ge(a) {
712
- const { grid: e } = a;
713
- return /* @__PURE__ */ u(g, { component: "datagrid.topBar", position: "relative", children: [
714
- /* @__PURE__ */ r(pe, { grid: e }),
715
- /* @__PURE__ */ r(me, { grid: e })
732
+ be.displayName = "DataGridTopBarContextMenu";
733
+ function Le(l) {
734
+ const { grid: e } = l;
735
+ return /* @__PURE__ */ h(g, { component: "datagrid.topBar", position: "relative", children: [
736
+ /* @__PURE__ */ s(be, { grid: e }),
737
+ /* @__PURE__ */ s(Ge, { grid: e })
716
738
  ] });
717
739
  }
718
- ge.displayName = "DataGridTopBar";
719
- function Pe(a) {
720
- const [e, t] = O(0), i = ke();
721
- return i.current || (i.current = new Me(a, () => t((n) => n + 1))), z(() => {
722
- i.current.props = a, i.current.rows.clear(), i.current.flatRows.clear(), i.current.update();
723
- }, [a.data]), z(() => {
724
- i.current.props = a, i.current.sourceColumns.clear(), i.current.columns.clear(), i.current.headerRows.clear(), i.current.gridTemplateColumns.clear(), i.current.rows.clear(), i.current.flatRows.clear(), i.current.sizes.clear(), i.current.update();
725
- }, [a.def]), z(() => {
726
- i.current.props = a, i.current.update();
727
- }, [a.loading]), i.current;
740
+ Le.displayName = "DataGridTopBar";
741
+ function Ie(l) {
742
+ const [e, t] = te(0), i = De();
743
+ return i.current || (i.current = new Ne(l, () => t((n) => n + 1))), Q(() => {
744
+ i.current.props = l, i.current.rows.clear(), i.current.flatRows.clear(), i.current.update();
745
+ }, [l.data]), Q(() => {
746
+ i.current.props = l, i.current.sourceColumns.clear(), i.current.columns.clear(), i.current.headerRows.clear(), i.current.gridTemplateColumns.clear(), i.current.rows.clear(), i.current.flatRows.clear(), i.current.sizes.clear(), i.current.update();
747
+ }, [l.def]), Q(() => {
748
+ i.current.props = l, i.current.update();
749
+ }, [l.loading]), i.current;
728
750
  }
729
- function We(a) {
730
- const e = Pe(a);
731
- return console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid render"), /* @__PURE__ */ u(h, { component: "datagrid", style: e.sizes.value, props: { role: "presentation" }, children: [
732
- /* @__PURE__ */ r(ge, { grid: e }),
733
- /* @__PURE__ */ r(he, { grid: e }),
734
- /* @__PURE__ */ r(Se, { grid: e })
751
+ function Ve(l) {
752
+ const e = Ie(l);
753
+ return console.debug("\x1B[36m%s\x1B[0m", "[react-box]: DataGrid render"), /* @__PURE__ */ h(p, { component: "datagrid", style: e.sizes.value, props: { role: "presentation" }, children: [
754
+ e.props.def.topBar && /* @__PURE__ */ s(Le, { grid: e }),
755
+ /* @__PURE__ */ s(xe, { grid: e }),
756
+ e.props.def.bottomBar && /* @__PURE__ */ s(Pe, { grid: e })
735
757
  ] });
736
758
  }
737
- We.displayName = "DataGrid";
759
+ Ve.displayName = "DataGrid";
738
760
  export {
739
- We as default
761
+ Ve as default
740
762
  };