@guiexpert/table 1.1.85 → 1.1.88

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- function zt(d, e = 500) {
1
+ function Ut(d, e = 500) {
2
2
  let t = null, s = 0;
3
3
  return function(...o) {
4
4
  const i = Date.now(), r = e - (i - s);
@@ -7,7 +7,7 @@ function zt(d, e = 500) {
7
7
  }, r));
8
8
  };
9
9
  }
10
- function Ue(d, e = 500) {
10
+ function Ye(d, e = 500) {
11
11
  let t = null;
12
12
  return function(...s) {
13
13
  t && window.clearTimeout(t), t = window.setTimeout(() => {
@@ -15,7 +15,7 @@ function Ue(d, e = 500) {
15
15
  }, e);
16
16
  };
17
17
  }
18
- function jt(d = 500) {
18
+ function Yt(d = 500) {
19
19
  return function(e, t, s) {
20
20
  let o = 0;
21
21
  const i = s.value;
@@ -25,30 +25,25 @@ function jt(d = 500) {
25
25
  }, s;
26
26
  };
27
27
  }
28
- const _e = "any", X = "undefined", Le = "null", Oe = "string", ge = "number", fe = "boolean", Ve = "Array", K = "object", Z = [Le, X, _e];
28
+ const Le = "any", X = "undefined", Ve = "null", Oe = "string", fe = "number", me = "boolean", $e = "Array", K = "object", Q = [Ve, X, Le];
29
29
  class He {
30
30
  constructor(e) {
31
- this.propertyName = e, this.type = _e;
31
+ this.propertyName = e, this.type = Le;
32
32
  }
33
33
  }
34
- class ne {
34
+ class le {
35
35
  constructor(e) {
36
36
  this.propertyName = e, this.type = X;
37
37
  }
38
38
  }
39
- class Ye {
40
- constructor(e) {
41
- this.propertyName = e, this.type = Le;
42
- }
43
- }
44
39
  class Xe {
45
40
  constructor(e) {
46
- this.propertyName = e, this.type = Oe;
41
+ this.propertyName = e, this.type = Ve;
47
42
  }
48
43
  }
49
44
  class Ke {
50
45
  constructor(e) {
51
- this.propertyName = e, this.type = ge;
46
+ this.propertyName = e, this.type = Oe;
52
47
  }
53
48
  }
54
49
  class Je {
@@ -56,12 +51,17 @@ class Je {
56
51
  this.propertyName = e, this.type = fe;
57
52
  }
58
53
  }
54
+ class qe {
55
+ constructor(e) {
56
+ this.propertyName = e, this.type = me;
57
+ }
58
+ }
59
59
  class B {
60
60
  constructor(e, t = []) {
61
- this.propertyName = e, this.items = t, this.type = Ve;
61
+ this.propertyName = e, this.items = t, this.type = $e;
62
62
  }
63
63
  }
64
- class $e {
64
+ class Be {
65
65
  constructor(e, t = []) {
66
66
  this.propertyName = e, this.types = t;
67
67
  }
@@ -74,7 +74,7 @@ class L {
74
74
  this.propertyName = e, this.className = t, this.properties = s, this.type = K;
75
75
  }
76
76
  }
77
- class Ut {
77
+ class Xt {
78
78
  constructor() {
79
79
  this.rootPropertyType = null, this.allowCustomRenderer = !0, this.bufCustomRenderer = [], this.LABEL_MAPPINGS = {
80
80
  Id: "ID",
@@ -111,7 +111,7 @@ class Ut {
111
111
  }
112
112
  iteratePropertyItems(e, t, s = "") {
113
113
  for (let o = 0; o < t.length; o++) {
114
- let r = t[o].types.filter((n) => !Z.includes(n.type));
114
+ let r = t[o].types.filter((n) => !Q.includes(n.type));
115
115
  if (r.length === 1) {
116
116
  let n = r[0];
117
117
  const l = s ? [s, n.propertyName].join(".") : n.propertyName;
@@ -124,21 +124,21 @@ class Ut {
124
124
  p && p instanceof L && (a = p.className);
125
125
  }
126
126
  const c = this.getReadableColumnLabel(l);
127
- let h = 100, u = "", f = "ge-table-text-align-left";
128
- if (n.type === Ve) {
127
+ let h = 100, u = "", g = "ge-table-text-align-left";
128
+ if (n.type === $e) {
129
129
  if (this.allowCustomRenderer && a) {
130
130
  const p = `${a}ArrayCellRenderer`;
131
- u = ` bodyRenderer: new ${p}(),`, f = "", this.renderCumstomCellRenderer(a, p);
131
+ u = ` bodyRenderer: new ${p}(),`, g = "", this.renderCumstomCellRenderer(a, p);
132
132
  } else
133
133
  u = " bodyRenderer: new SimpleArrayCellRenderer(),";
134
134
  h = 250;
135
- } else n.type === ge ? (u = " bodyRenderer: new NumberCellRenderer(),", f = "ge-table-text-align-right") : n.type === fe && (u = " bodyRenderer: new TrueFalseCellRenderer(),", f = "ge-table-text-align-center", h = 80);
135
+ } else n.type === fe ? (u = " bodyRenderer: new NumberCellRenderer(),", g = "ge-table-text-align-right") : n.type === me && (u = " bodyRenderer: new TrueFalseCellRenderer(),", g = "ge-table-text-align-center", h = 80);
136
136
  e.push(` ColumnDef.create({
137
137
  property: "${l}",
138
138
  headerLabel: "${c}",
139
139
  width: new Size(${h}, "px"),
140
- bodyClasses: ["${f}"],
141
- headerClasses: ["${f}"],`), u && e.push(u), e.push(" }),");
140
+ bodyClasses: ["${g}"],
141
+ headerClasses: ["${g}"],`), u && e.push(u), e.push(" }),");
142
142
  }
143
143
  }
144
144
  }
@@ -194,7 +194,7 @@ export class ${t} implements CellRendererIf {
194
194
  `);
195
195
  }
196
196
  }
197
- class ve {
197
+ class Re {
198
198
  /**
199
199
  *
200
200
  * Fixes an invalid json like this:
@@ -260,21 +260,21 @@ class ve {
260
260
  return s;
261
261
  }
262
262
  }
263
- class qe {
263
+ class Ze {
264
264
  constructor() {
265
- this.property = "", this.value = "", this.path = "", this.propertyItem = new $e("", [new He("")]);
265
+ this.property = "", this.value = "", this.path = "", this.propertyItem = new Be("", [new He("")]);
266
266
  }
267
267
  toString() {
268
268
  var e;
269
269
  return `${this.path} -> : ${((e = this.propertyItem) == null ? void 0 : e.toString()) ?? ""}`;
270
270
  }
271
271
  }
272
- const Re = "Entity";
273
- function Ze(d) {
274
- let e = Qe(et(d));
275
- return e.includes(Re) || (e = e + Re), e;
276
- }
272
+ const Ae = "Entity";
277
273
  function Qe(d) {
274
+ let e = et(tt(d));
275
+ return e.includes(Ae) || (e = e + Ae), e;
276
+ }
277
+ function et(d) {
278
278
  if (!d || d.length === 0) return d;
279
279
  const e = ["Array", "Arr", "List", "s"];
280
280
  for (const t of e)
@@ -282,10 +282,10 @@ function Qe(d) {
282
282
  return d.slice(0, -t.length);
283
283
  return d;
284
284
  }
285
- function et(d) {
285
+ function tt(d) {
286
286
  return !d || d.length === 0 ? "" : d[0].toUpperCase() + d.slice(1);
287
287
  }
288
- class Yt {
288
+ class Kt {
289
289
  constructor() {
290
290
  this.debugging = !1;
291
291
  }
@@ -372,7 +372,7 @@ class Yt {
372
372
  json2PropertyType(e, t = "") {
373
373
  let s;
374
374
  if (typeof e == "string") {
375
- const o = new ve().fixJSON(e);
375
+ const o = new Re().fixJSON(e);
376
376
  s = this.json2Object(o);
377
377
  } else
378
378
  s = e;
@@ -488,7 +488,7 @@ class Yt {
488
488
  json2ValueInfos(e, t = "") {
489
489
  let s;
490
490
  if (typeof e == "string") {
491
- const o = new ve().fixJSON(e);
491
+ const o = new Re().fixJSON(e);
492
492
  s = this.json2Object(o);
493
493
  } else
494
494
  s = e;
@@ -512,7 +512,7 @@ class Yt {
512
512
  const r = s.get(i);
513
513
  if (r) {
514
514
  let n = !1;
515
- const l = r.propertyItem.types.filter((a) => !Z.includes(a.type));
515
+ const l = r.propertyItem.types.filter((a) => !Q.includes(a.type));
516
516
  if (l.length === 1) {
517
517
  const a = l[0];
518
518
  if (a instanceof B) {
@@ -557,7 +557,7 @@ class Yt {
557
557
  const l = this.getFirstValueInfoByPath(e, n);
558
558
  if (Array.isArray(l == null ? void 0 : l.value)) {
559
559
  const a = (l == null ? void 0 : l.value.length) ?? 0, c = this.countPath(e, i.path);
560
- a > c && (i.propertyItem.types.some((h) => h.type === X) || i.propertyItem.types.push(new ne(i.property)));
560
+ a > c && (i.propertyItem.types.some((h) => h.type === X) || i.propertyItem.types.push(new le(i.property)));
561
561
  }
562
562
  }
563
563
  }
@@ -578,7 +578,7 @@ class Yt {
578
578
  }
579
579
  extractValueInfos(e, t) {
580
580
  const s = [], o = (i, r, n) => {
581
- const l = new qe();
581
+ const l = new Ze();
582
582
  let a = r.split("/").pop() || "";
583
583
  if (a === "[]" ? a = n : a === "root" && (a = t), l.property = a, l.value = i, l.path = r, l.propertyItem = this.createPropertyItem(i, l.property), s.push(l), i && typeof i === K && !Array.isArray(i)) {
584
584
  for (const c in i)
@@ -594,15 +594,15 @@ class Yt {
594
594
  return o(e, "root", t), s.sort((i, r) => i.path.localeCompare(r.path));
595
595
  }
596
596
  createPropertyItem(e, t) {
597
- return new $e(t, [
597
+ return new Be(t, [
598
598
  this.createPropertyType(e, t)
599
599
  ]);
600
600
  }
601
601
  createPropertyType(e, t) {
602
- return e === null ? new Ye(t) : e === void 0 ? new ne(t) : typeof e === Oe ? new Xe(t) : typeof e === ge && !isNaN(e) ? new Ke(t) : typeof e === fe ? new Je(t) : Array.isArray(e) ? new B(t) : typeof e === K ? new L(t, Ze(t)) : new ne(t);
602
+ return e === null ? new Xe(t) : e === void 0 ? new le(t) : typeof e === Oe ? new Ke(t) : typeof e === fe && !isNaN(e) ? new Je(t) : typeof e === me ? new qe(t) : Array.isArray(e) ? new B(t) : typeof e === K ? new L(t, Qe(t)) : new le(t);
603
603
  }
604
604
  }
605
- class Xt {
605
+ class Jt {
606
606
  constructor() {
607
607
  this.orOperator = "|", this.rootPropertyType = null, this.rootName = "Root", this.renderTypeScriptInterfacesFifo = [], this.renderTypeScriptInterfacesDone = [];
608
608
  }
@@ -651,7 +651,7 @@ class Xt {
651
651
  var s, o;
652
652
  if (((s = e.types) == null ? void 0 : s.length) === 0) return "any";
653
653
  if (((o = e.types) == null ? void 0 : o.length) === 1) return this.renderType(e.types[0], e);
654
- const t = e.types.map((i) => this.renderType(i, e)).filter((i) => i !== X).sort((i, r) => Z.includes(i) ? 100 : Z.includes(r) ? -100 : i.localeCompare(r)).join(this.orOperator);
654
+ const t = e.types.map((i) => this.renderType(i, e)).filter((i) => i !== X).sort((i, r) => Q.includes(i) ? 100 : Q.includes(r) ? -100 : i.localeCompare(r)).join(this.orOperator);
655
655
  return t.includes(this.orOperator) ? "(" + t + ")" : t;
656
656
  }
657
657
  renderType(e, t) {
@@ -695,18 +695,18 @@ class G {
695
695
  function j(d) {
696
696
  return d && d.type === "TreeRow";
697
697
  }
698
- function ce(d) {
698
+ function de(d) {
699
699
  return d && d.type === "AreaModelTree";
700
700
  }
701
- function tt(d) {
701
+ function st(d) {
702
702
  return d && d.type === "CheckboxColumnDef";
703
703
  }
704
- class me {
704
+ class be {
705
705
  constructor(e = -1, t = -1, s = -1, o = -1, i, r, n, l = 0, a = 0, c = 0, h = "") {
706
706
  this.rowIndex = e, this.rowTop = t, this.columnIndex = s, this.columnLeft = o, this.areaIdent = i, this.sideIdent = r, this.originalEvent = n, this.clickCount = l, this.draggingX = a, this.draggingY = c, this.action = h;
707
707
  }
708
708
  clone() {
709
- return new me(
709
+ return new be(
710
710
  this.rowIndex,
711
711
  this.rowTop,
712
712
  this.columnIndex,
@@ -721,25 +721,25 @@ class me {
721
721
  );
722
722
  }
723
723
  }
724
- class V {
724
+ class O {
725
725
  constructor(e = ">", t = "", s = []) {
726
726
  this.content = e, this.style = t, this.classes = s;
727
727
  }
728
728
  }
729
- class Be {
730
- constructor(e = new V(
729
+ class We {
730
+ constructor(e = new O(
731
731
  ">",
732
732
  "transform: rotate(90deg) translate(66%, -66%); transform-origin: 0 0;",
733
733
  ["gt-table-tree-arrow-expanded"]
734
- ), t = new V(
734
+ ), t = new O(
735
735
  ">",
736
736
  "",
737
737
  ["ge-table-tree-arrow-collapsed"]
738
- ), s = new V(
738
+ ), s = new O(
739
739
  ">",
740
740
  "color:transparent;",
741
741
  ["gt-table-tree-arrow-hidden"]
742
- ), o = new V(
742
+ ), o = new O(
743
743
  "↕",
744
744
  "",
745
745
  ["gt-table-tree-arrow-expanded-all"]
@@ -747,12 +747,12 @@ class Be {
747
747
  this.arrowExpanded = e, this.arrowCollapsed = t, this.arrowPlaceholder = s, this.arrowExpandCollapseAll = o;
748
748
  }
749
749
  }
750
- class We {
751
- constructor(e = new V("↑", "", ["ge-header-sorted-asc"]), t = new V("↓", "", ["ge-header-sorted-desc"]), s = new V("↑", "color:transparent;", [])) {
750
+ class Ne {
751
+ constructor(e = new O("↑", "", ["ge-header-sorted-asc"]), t = new O("↓", "", ["ge-header-sorted-desc"]), s = new O("↑", "color:transparent;", [])) {
752
752
  this.iconAsc = e, this.iconDesc = t, this.iconPlaceholder = s;
753
753
  }
754
754
  }
755
- class st {
755
+ class ot {
756
756
  constructor(e) {
757
757
  this.domService = e;
758
758
  }
@@ -838,12 +838,12 @@ class st {
838
838
  return this.domService.appendChild(e.child, l), l;
839
839
  }
840
840
  addColumnDiv(e) {
841
- const { parent: t, geo: s, rowIndex: o = -1, columnIndex: i = -1, areaIdent: r, sideIdent: n, text: l = "", treeArrow: a, tableOptions: c, checkedType: h = void 0, sortState: u } = e, f = c == null ? void 0 : c.treeOptions, p = c == null ? void 0 : c.showCheckboxWihoutExtraColumn, m = this.domService.createElement("div");
841
+ const { parent: t, geo: s, rowIndex: o = -1, columnIndex: i = -1, areaIdent: r, sideIdent: n, text: l = "", treeArrow: a, tableOptions: c, checkedType: h = void 0, sortState: u } = e, g = c == null ? void 0 : c.treeOptions, p = c == null ? void 0 : c.showCheckboxWihoutExtraColumn, m = this.domService.createElement("div");
842
842
  this.domService.addClass(m, "ge-table-col-div"), p && this.domService.addClass(m, "ge-with-checkbox"), this.domService.addClass(m, `ge-table-col-div-${s.index}`), this.domService.setAttribute(m, "data-col-index", `${s.index}`), this.domService.setAttribute(m, "data-row-index", `${o}`), this.domService.setAttribute(m, "data-area", `${r}`);
843
- const g = ((s == null ? void 0 : s.index) ?? 0) % 2 === 0 ? "even" : "odd";
844
- if (r === "body" && n === "center" && this.domService.addClass(m, `ge-table-column-${g}`), this.domService.setStyle(m, "display", "clip"), this.domService.setStyle(m, "position", "absolute"), this.domService.setStyle(m, "left", `${s.left}px`), this.domService.setStyle(m, "top", `${s.top}px`), this.domService.setStyle(m, "width", `${s.width}px`), this.domService.setStyle(m, "height", `${s.height}px`), a && a !== "none" && (this.domService.addClass(m, "ge-table-col-tree"), this.addArrowDiv(m, a, f, o, i, r)), p && i === 0 && h && this.addCheckboxToDiv(m, h, r, o), l) {
845
- const y = a !== "none" && i === 0;
846
- this.addLabelDiv(m, l, y, o, i, r);
843
+ const f = ((s == null ? void 0 : s.index) ?? 0) % 2 === 0 ? "even" : "odd";
844
+ if (r === "body" && n === "center" && this.domService.addClass(m, `ge-table-column-${f}`), this.domService.setStyle(m, "display", "clip"), this.domService.setStyle(m, "position", "absolute"), this.domService.setStyle(m, "left", `${s.left}px`), this.domService.setStyle(m, "top", `${s.top}px`), this.domService.setStyle(m, "width", `${s.width}px`), this.domService.setStyle(m, "height", `${s.height}px`), a && a !== "none" && (this.domService.addClass(m, "ge-table-col-tree"), this.addArrowDiv(m, a, g, o, i, r)), p && i === 0 && h && this.addCheckboxToDiv(m, h, r, o), l) {
845
+ const b = a !== "none" && i === 0;
846
+ this.addLabelDiv(m, l, b, o, i, r);
847
847
  }
848
848
  return u && this.addSortedIcon(m, u, c == null ? void 0 : c.sortedOptions, i), this.domService.appendChild(t, m), m;
849
849
  }
@@ -872,7 +872,7 @@ class st {
872
872
  }
873
873
  return this.domService.appendChild(e, n), n;
874
874
  }
875
- addSortedIcon(e, t = "", s = new We(), o = -1) {
875
+ addSortedIcon(e, t = "", s = new Ne(), o = -1) {
876
876
  const i = this.domService.createElement("div");
877
877
  this.domService.addClass(i, "ge-table-sorted-icon-div"), this.domService.setStyle(i, "position", "absolute"), this.domService.setStyle(i, "top", "0"), this.domService.setStyle(i, "right", "0"), this.domService.setStyle(i, "width", "20px"), this.domService.setStyle(i, "background", "transparent"), this.domService.setStyle(i, "cursor", "pointer"), this.domService.setAttribute(i, "data-col-index", `${o}`), this.domService.setAttribute(i, "data-area", "header");
878
878
  let r;
@@ -883,7 +883,7 @@ class st {
883
883
  this.domService.addClass(i, a);
884
884
  return this.domService.appendChild(e, i), i;
885
885
  }
886
- addArrowDiv(e, t = "none", s = new Be(), o = -1, i = -1, r = "body") {
886
+ addArrowDiv(e, t = "none", s = new We(), o = -1, i = -1, r = "body") {
887
887
  const n = this.domService.createElement("div");
888
888
  this.domService.addClass(n, "ge-table-tree-arrow-div"), this.domService.setStyle(n, "display", "inline-block"), this.domService.setStyle(n, "position", ""), this.domService.setStyle(n, "width", "20px"), this.domService.setStyle(n, "background", "transparent"), this.domService.setStyle(n, "cursor", "pointer"), this.domService.setAttribute(n, "data-row-index", `${o}`), this.domService.setAttribute(n, "data-col-index", `${i}`), this.domService.setAttribute(n, "data-area", `${r}`);
889
889
  let l;
@@ -934,23 +934,25 @@ class st {
934
934
  return s ? (s.innerText = "", s) : (s = this.domService.createElement("div"), t.cache[e] = s, s);
935
935
  }
936
936
  }
937
- const re = (d) => d === "header" ? "header" : d === "footer" ? "footer" : "body";
938
- class ot {
937
+ const ne = (d) => d === "header" ? "header" : d === "footer" ? "footer" : "body";
938
+ class it {
939
939
  constructor(e, t) {
940
940
  if (this.rowIdx = -1, this.colIdx = -1, this.action = null, this.inputType = null, this.className = "", e !== null && (e instanceof HTMLDivElement || e instanceof HTMLSpanElement || e instanceof HTMLInputElement)) {
941
941
  this.className = e.className, this.action = e.getAttribute("data-ge-action"), this.inputType = e.getAttribute("data-input-type"), this.rowIdx = Number(e.getAttribute("data-row-index")), this.colIdx = Number(e.getAttribute("data-col-index"));
942
942
  const s = e.getAttribute("data-area");
943
- if (s && (this.areaIdent = re(s), this.areaModel = t.tableModel.getAreaModel(this.areaIdent), this.row = this.areaModel.getRowByIndex(this.rowIdx)), e instanceof HTMLInputElement) {
943
+ if (s && (this.areaIdent = ne(s), this.areaModel = t.tableModel.getAreaModel(this.areaIdent), this.row = this.areaModel.getRowByIndex(this.rowIdx)), e instanceof HTMLInputElement) {
944
944
  const o = e;
945
945
  this.value = o.value;
946
946
  }
947
947
  }
948
948
  }
949
949
  }
950
- class it {
950
+ class rt {
951
951
  constructor(e) {
952
- this.tableScope = e, this.doubleClickDelay = 500, this.expandedAll = !0, this.mouseDown = !1, this.dragging = !1, this.lastClicked = 0, this.tableScope.hostElement.addEventListener("click", this.onHostElementClicked.bind(this)), this.tableScope.hostElement.addEventListener("dblclick", this.onHostElementDblClicked.bind(this)), this.tableScope.hostElement.addEventListener("mousedown", this.onMouseDown.bind(this)), this.tableScope.hostElement.addEventListener("mousemove", this.onMouseMove.bind(this)), this.tableScope.hostElement.addEventListener("mouseup", this.onMouseUp.bind(this)), this.tableScope.hostElement.addEventListener("contextmenu", this.onContextmenu.bind(this)), this.tableScope.hostElement._MouseHandler = "true", this.tableScope.scrollViewport.addEventListener("scroll", this.tableScope.adjustAfterScrolling.bind(this.tableScope)), this.tableScope.scrollViewport.addEventListener("wheel", this.tableScope.onWheel.bind(this.tableScope), { passive: !1 }), [window, this.tableScope.hostElement].forEach(
953
- (t) => t.addEventListener("resize", this.tableScope.adjustContainersAndRows.bind(this.tableScope))
952
+ this.tableScope = e, this.doubleClickDelay = 500, this.expandedAll = !0, this.mouseDown = !1, this.dragging = !1, this.lastClicked = 0;
953
+ const t = this.tableScope.listenerAbortController.signal;
954
+ this.tableScope.hostElement.addEventListener("click", this.onHostElementClicked.bind(this), { signal: t }), this.tableScope.hostElement.addEventListener("dblclick", this.onHostElementDblClicked.bind(this), { signal: t }), this.tableScope.hostElement.addEventListener("mousedown", this.onMouseDown.bind(this), { signal: t }), this.tableScope.hostElement.addEventListener("mousemove", this.onMouseMove.bind(this), { signal: t }), this.tableScope.hostElement.addEventListener("mouseup", this.onMouseUp.bind(this), { signal: t }), this.tableScope.hostElement.addEventListener("contextmenu", this.onContextmenu.bind(this), { signal: t }), this.tableScope.hostElement._MouseHandler = "true", this.tableScope.scrollViewport.addEventListener("scroll", this.tableScope.adjustAfterScrolling.bind(this.tableScope), { signal: t }), this.tableScope.scrollViewport.addEventListener("wheel", this.tableScope.onWheel.bind(this.tableScope), { passive: !1, signal: t }), [window, this.tableScope.hostElement].forEach(
955
+ (s) => s.addEventListener("resize", this.tableScope.adjustContainersAndRows.bind(this.tableScope), { signal: t })
954
956
  );
955
957
  }
956
958
  /**
@@ -979,7 +981,7 @@ class it {
979
981
  return;
980
982
  }
981
983
  this.lastClicked = t;
982
- const s = new ot(e.target, this.tableScope);
984
+ const s = new it(e.target, this.tableScope);
983
985
  if (s.action === "toggleExpandCollapseAll")
984
986
  this.expandedAll = !this.expandedAll, this.tableScope.toggleExpandCollapseAll(this.expandedAll), e.preventDefault(), e.stopPropagation();
985
987
  else if (s.action === "toggleHeaderGroup")
@@ -1008,7 +1010,7 @@ class it {
1008
1010
  */
1009
1011
  onHostElementDblClicked(e) {
1010
1012
  if (this.lastClicked = Date.now(), e.target instanceof HTMLElement) {
1011
- const t = e.target, s = t.getAttribute("data-area"), o = re(s), i = Number(t.getAttribute("data-row-index")), r = Number(t.getAttribute("data-col-index")), n = this.tableScope.tableModel.getAreaModel(o);
1013
+ const t = e.target, s = t.getAttribute("data-area"), o = ne(s), i = Number(t.getAttribute("data-row-index")), r = Number(t.getAttribute("data-col-index")), n = this.tableScope.tableModel.getAreaModel(o);
1012
1014
  if (s && o === "header")
1013
1015
  this.tableScope.tableModel.isSortable(r) && (this.tableScope.clearSelection(), this.tableScope.onHeaderDblClicked(e, i, r));
1014
1016
  else if (t.getAttribute("data-row-index")) {
@@ -1081,7 +1083,7 @@ class it {
1081
1083
  }
1082
1084
  }
1083
1085
  }
1084
- class be {
1086
+ class ye {
1085
1087
  constructor(e, t = [], s = -1) {
1086
1088
  this.areaIdent = e, this.columnDefs = t, this.defaultRowHeight = s, this.rowSelectionModel = void 0, this.yPositions = [], this.cellRenderers = t.map((o) => o.rendererMap[e]);
1087
1089
  }
@@ -1179,7 +1181,7 @@ class be {
1179
1181
  this.yPositions[t + 1] = this.getRowHeight(t) + this.yPositions[t];
1180
1182
  }
1181
1183
  }
1182
- class ye {
1184
+ class we {
1183
1185
  genericSortComparator(e, t, s) {
1184
1186
  if (typeof e == "number" && typeof t == "number")
1185
1187
  return s * (e - t);
@@ -1197,7 +1199,7 @@ class ye {
1197
1199
  return s * ("" + e).localeCompare("" + t);
1198
1200
  }
1199
1201
  }
1200
- class _ extends be {
1202
+ class _ extends ye {
1201
1203
  /**
1202
1204
  * Creates an instance of AreaModelObjectArray.
1203
1205
  *
@@ -1228,7 +1230,7 @@ class _ extends be {
1228
1230
  * );
1229
1231
  */
1230
1232
  constructor(e, t, s, o = [], i = "ge-selected-row", r = "ge-focused-row") {
1231
- super(e, o, s), this.areaIdent = e, this.rows = t, this.defaultRowHeight = s, this.columnDefs = o, this.selectedRowClass = i, this.focusedRowClass = r, this.sorterService = new ye(), this._focusedRowIndex = 0, this.filteredRows = [...t], this.properties = o.map((n) => n.property);
1233
+ super(e, o, s), this.areaIdent = e, this.rows = t, this.defaultRowHeight = s, this.columnDefs = o, this.selectedRowClass = i, this.focusedRowClass = r, this.sorterService = new we(), this._focusedRowIndex = 0, this.filteredRows = [...t], this.properties = o.map((n) => n.property);
1232
1234
  }
1233
1235
  /**
1234
1236
  * Gets the index of the currently focused row.
@@ -1640,7 +1642,7 @@ class _ extends be {
1640
1642
  return o && t.length ? this.getPropertyValue(o, t) : o;
1641
1643
  }
1642
1644
  }
1643
- class rt {
1645
+ class nt {
1644
1646
  constructor(e) {
1645
1647
  this.tableScope = e;
1646
1648
  }
@@ -2030,6 +2032,22 @@ class rt {
2030
2032
  repaint() {
2031
2033
  this.tableScope.repaint();
2032
2034
  }
2035
+ /**
2036
+ * Releases the table: removes all DOM listeners (incl. the window resize listener), stops the
2037
+ * resize observer, calls the cleanup functions of all cell renderers and clears the host element.
2038
+ * The framework wrappers call it automatically when they are unmounted or receive a new table model.
2039
+ *
2040
+ * @example
2041
+ * // Plain TS: replace the table with a new model
2042
+ * tableApi.destroy();
2043
+ * const scope = new TableScope(hostDiv, newModel, new SimpleDomService(), new TableOptions(), new EventAdapter());
2044
+ * scope.firstInit();
2045
+ *
2046
+ * @returns {void}
2047
+ */
2048
+ destroy() {
2049
+ this.tableScope.destroy();
2050
+ }
2033
2051
  /**
2034
2052
  * Performs a complete repaint of the table by triggering a hard repaint on the underlying table scope.
2035
2053
  *
@@ -2256,15 +2274,15 @@ class rt {
2256
2274
  * tableApi.downloadExcel('quarterly-data.xlsx');
2257
2275
  */
2258
2276
  downloadExcel(e = "table.xlsx", t = "") {
2259
- const s = [], o = this.tableScope.tableModel.getColumnCount(), i = ["header", "body", "footer"];
2260
- for (const r of i) {
2261
- const n = this.tableScope.tableModel.getAreaModel(r), l = (n == null ? void 0 : n.getRowCount()) ?? 0;
2262
- for (let a = 0; a < l; a++) {
2263
- const c = [];
2264
- s.push(c);
2265
- for (let h = 0; h < o; h++)
2266
- c.push(n.getValueAt(a, h));
2267
- }
2277
+ var n, l;
2278
+ const s = [], o = this.tableScope.tableModel, i = [];
2279
+ for (let a = 0; a < o.getColumnCount(); a++)
2280
+ ((l = (n = o.getColumnDef(a)) == null ? void 0 : n.isVisible) == null ? void 0 : l.call(n)) !== !1 && i.push(a);
2281
+ const r = ["header", "body", "footer"];
2282
+ for (const a of r) {
2283
+ const c = o.getAreaModel(a), h = (c == null ? void 0 : c.getRowCount()) ?? 0;
2284
+ for (let u = 0; u < h; u++)
2285
+ s.push(i.map((g) => c.getValueAt(u, g)));
2268
2286
  }
2269
2287
  return this.tableScope.excelService.downloadExcel(s, e, t);
2270
2288
  }
@@ -2988,7 +3006,7 @@ class rt {
2988
3006
  return this.tableScope.loggingActive;
2989
3007
  }
2990
3008
  }
2991
- class we {
3009
+ class xe {
2992
3010
  constructor(e) {
2993
3011
  this.getStorageKeyFn = e;
2994
3012
  }
@@ -3055,7 +3073,7 @@ class we {
3055
3073
  // }
3056
3074
  // }
3057
3075
  }
3058
- class nt extends we {
3076
+ class lt extends xe {
3059
3077
  constructor(e) {
3060
3078
  super(e), this.SCROLL_STATE = "scrollState", this.scrollOffset = [0, 0], this.load();
3061
3079
  }
@@ -3077,14 +3095,14 @@ class nt extends we {
3077
3095
  }
3078
3096
  }
3079
3097
  }
3080
- class lt {
3098
+ class at {
3081
3099
  constructor(e = "collapsed", t = [], s = !1, o = !1) {
3082
3100
  this.mode = e, this.rowIds = t, this.allCollapsed = s, this.allExpanded = o;
3083
3101
  }
3084
3102
  }
3085
- class at extends we {
3103
+ class ct extends xe {
3086
3104
  constructor(e) {
3087
- super(e), this.COLLAPSED_EXPANDED_STATE = "collapsedExpandedState", this.collapsedExpandedState = new lt(), this.load();
3105
+ super(e), this.COLLAPSED_EXPANDED_STATE = "collapsedExpandedState", this.collapsedExpandedState = new at(), this.load();
3088
3106
  }
3089
3107
  collapsedExpandedStateGet() {
3090
3108
  return this.collapsedExpandedState;
@@ -3116,7 +3134,7 @@ class at extends we {
3116
3134
  this.checkAndPersistItem(this.COLLAPSED_EXPANDED_STATE, this.collapsedExpandedState);
3117
3135
  }
3118
3136
  }
3119
- class ct extends we {
3137
+ class dt extends xe {
3120
3138
  constructor(e) {
3121
3139
  super(e), this.SORTING_STATE = "sortingState", this.sortItems = [], this.load();
3122
3140
  }
@@ -3137,14 +3155,14 @@ class ct extends we {
3137
3155
  }
3138
3156
  }
3139
3157
  }
3140
- class O {
3158
+ class V {
3141
3159
  constructor(e = 0, t = 0, s = 0, o = 0, i) {
3142
3160
  this.left = e, this.width = t, this.height = s, this.top = o, this.index = i;
3143
3161
  }
3144
3162
  }
3145
- const se = class se {
3163
+ const oe = class oe {
3146
3164
  constructor(e, t, s, o) {
3147
- this.hostElement = e, this.tableModel = t, this.dom = s, this.tableOptions = o, this.scrollTop = 0, this.areaBodyWestGeo = new O(), this.areaBodyCenterGeo = new O(), this.areaBodyEastGeo = new O();
3165
+ this.hostElement = e, this.tableModel = t, this.dom = s, this.tableOptions = o, this.scrollTop = 0, this.areaBodyWestGeo = new V(), this.areaBodyCenterGeo = new V(), this.areaBodyEastGeo = new V();
3148
3166
  const i = this.hostElement;
3149
3167
  i.innerText = "", this.dom.setAttribute(i, "tabindex", "0"), this.dom.setStyle(
3150
3168
  this.dom.addClass("ge-table", i),
@@ -3309,12 +3327,12 @@ const se = class se {
3309
3327
  * @returns {void} Returns nothing.
3310
3328
  */
3311
3329
  resetSizeOfWrapperDiv() {
3312
- const e = `${this.tableModel.getContentWidthInPixel()}px`, t = this.tableModel.getContentHeightInPixel() + 1, s = `${Math.min(t, se.maxScrollHeightInPx)}px`;
3330
+ const e = `${this.tableModel.getContentWidthInPixel()}px`, t = this.tableModel.getContentHeightInPixel() + 1, s = `${Math.min(t, oe.maxScrollHeightInPx)}px`;
3313
3331
  this.dom.setStyle(this.contentWrapperDiv, "width", e), this.dom.setStyle(this.contentWrapperDiv, "height", s);
3314
3332
  }
3315
3333
  };
3316
- se.maxScrollHeightInPx = 8e6;
3317
- let Q = se;
3334
+ oe.maxScrollHeightInPx = 8e6;
3335
+ let ee = oe;
3318
3336
  class M {
3319
3337
  /**
3320
3338
  * Represents a constructor for a class.
@@ -3350,7 +3368,7 @@ class M {
3350
3368
  return e >= this.r1 && e <= this.r2 && t >= this.c1 && t <= this.c2;
3351
3369
  }
3352
3370
  }
3353
- class dt {
3371
+ class ht {
3354
3372
  constructor(e, t) {
3355
3373
  this.tableModel = e, this.areaModel = t, this.colAndRowspanRanges = void 0;
3356
3374
  }
@@ -3383,22 +3401,22 @@ class dt {
3383
3401
  return !1;
3384
3402
  }
3385
3403
  }
3386
- class T {
3404
+ class k {
3387
3405
  constructor(e, t, s) {
3388
3406
  this.header = e, this.body = t, this.footer = s;
3389
3407
  }
3390
3408
  }
3391
- class ht extends Q {
3409
+ class ut extends ee {
3392
3410
  constructor(e, t, s, o) {
3393
3411
  var r, n;
3394
3412
  super(e, t, s, o), this.firstVisibleRowIndex = -1, this.lastVisibleRowIndex = -1, this.firstFullVisibleRowIndex = -1, this.lastFullVisibleRowIndex = -1, this.displayedRowCount = 0, this.pixelLimitForFullVisible = 5, this.loggingActive = !1, this.dragging = !1, this.editing = !1, this.storedColumnWidths = [], this.scrollLeft = 0, this.scrollViewportLeft = 0, this.scrollFactorY = 0, this.scrollFactorX = 0, this.cleanupFunctions = {
3395
3413
  header: [],
3396
3414
  body: [],
3397
3415
  footer: []
3398
- }, this.tree = !1, this.colAndRowspanModels = new T(), this.draggingTargetColumnIndex = -1, this.contentScrollTop = 0, this.removables = [], this.tableModel.getSelectionModel ? this.getSelectionModel = this.tableModel.getSelectionModel : (r = this.tableOptions) != null && r.getSelectionModel && (this.getSelectionModel = this.tableOptions.getSelectionModel), (n = this.tableOptions) != null && n.getFocusModel && (this.getFocusModel = this.tableOptions.getFocusModel), ce(t.getAreaModel("body")) && (this.tree = !0), ["header", "body", "footer"].forEach(
3416
+ }, this.tree = !1, this.colAndRowspanModels = new k(), this.draggingTargetColumnIndex = -1, this.contentScrollTop = 0, this.removables = [], this.tableModel.getSelectionModel ? this.getSelectionModel = this.tableModel.getSelectionModel : (r = this.tableOptions) != null && r.getSelectionModel && (this.getSelectionModel = this.tableOptions.getSelectionModel), (n = this.tableOptions) != null && n.getFocusModel && (this.getFocusModel = this.tableOptions.getFocusModel), de(t.getAreaModel("body")) && (this.tree = !0), ["header", "body", "footer"].forEach(
3399
3417
  (l) => {
3400
3418
  var a;
3401
- this.colAndRowspanModels[l] = new dt(t, t.getAreaModel(l)), (a = this.colAndRowspanModels[l]) == null || a.init();
3419
+ this.colAndRowspanModels[l] = new ht(t, t.getAreaModel(l)), (a = this.colAndRowspanModels[l]) == null || a.init();
3402
3420
  }
3403
3421
  );
3404
3422
  }
@@ -3500,19 +3518,19 @@ class ht extends Q {
3500
3518
  this.areaHeightsOfRenderPass = void 0;
3501
3519
  }
3502
3520
  this.tableOptions.tableTopBorderVisible && this.removables.push(this.dom.addHorizontalBorder(
3503
- new O(0, e, 1, 0),
3521
+ new V(0, e, 1, 0),
3504
3522
  this.hostElement,
3505
3523
  "ge-table-border"
3506
3524
  )), this.tableOptions.tableBottomBorderVisible && this.removables.push(this.dom.addHorizontalBorder(
3507
- new O(0, e, 1, t - 1),
3525
+ new V(0, e, 1, t - 1),
3508
3526
  this.hostElement,
3509
3527
  "ge-table-border"
3510
3528
  )), this.tableModel.getFixedLeftColumnCount() > 0 && this.removables.push(this.dom.addVerticalBorder(
3511
- new O(s, 1, t, 0),
3529
+ new V(s, 1, t, 0),
3512
3530
  this.hostElement,
3513
3531
  "ge-table-body-west-vertical-border"
3514
3532
  )), ((i = this.tableModel.getAreaModel("header")) == null ? void 0 : i.getRowCount()) > 0 && this.removables.push(this.dom.addHorizontalBorder(
3515
- new O(0, e, 1, o),
3533
+ new V(0, e, 1, o),
3516
3534
  this.hostElement,
3517
3535
  "ge-table-body-west-vertical-border"
3518
3536
  ));
@@ -3564,10 +3582,10 @@ class ht extends Q {
3564
3582
  }
3565
3583
  const u = r.getCustomClassesAt(t, s);
3566
3584
  u.length && this.dom.addClasses(u, l);
3567
- const f = r.getCustomStyleAt(t, s);
3568
- if (f)
3569
- for (const p in f)
3570
- this.dom.setStyle(l, p, f[p]);
3585
+ const g = r.getCustomStyleAt(t, s);
3586
+ if (g)
3587
+ for (const p in g)
3588
+ this.dom.setStyle(l, p, g[p]);
3571
3589
  }
3572
3590
  }
3573
3591
  getFirstVisibleRowIndex() {
@@ -3652,7 +3670,7 @@ class ht extends Q {
3652
3670
  * scaled and scrollTop is no longer a content pixel position.
3653
3671
  */
3654
3672
  isScrollHeightCapped() {
3655
- return this.tableModel.getContentHeightInPixel() + 1 > Q.maxScrollHeightInPx;
3673
+ return this.tableModel.getContentHeightInPixel() + 1 > ee.maxScrollHeightInPx;
3656
3674
  }
3657
3675
  /** Scrollable range of the content in content pixels (content height minus visible body height). */
3658
3676
  getContentScrollRangeY() {
@@ -3724,80 +3742,80 @@ class ht extends Q {
3724
3742
  * @protected
3725
3743
  */
3726
3744
  adjustArea(e, t = 0) {
3727
- var x, A, k;
3728
- const s = this.getArea(e, "west"), o = this.getArea(e, "center"), i = this.getArea(e, "east"), r = ((x = this.areaHeightsOfRenderPass) == null ? void 0 : x[e]) ?? o.child.clientHeight;
3745
+ var w, v, I;
3746
+ const s = this.getArea(e, "west"), o = this.getArea(e, "center"), i = this.getArea(e, "east"), r = ((w = this.areaHeightsOfRenderPass) == null ? void 0 : w[e]) ?? o.child.clientHeight;
3729
3747
  s.child.innerText = "", o.child.innerText = "", i.child.innerText = "";
3730
3748
  const n = 0, l = this.areaBodyCenterGeo.width, a = this.tableModel.getPadding(), c = this.tableModel.getAreaModel(e), h = c.getRowCount();
3731
3749
  for (; this.cleanupFunctions[e].length; ) {
3732
- const w = this.cleanupFunctions[e].shift();
3733
- w && w();
3750
+ const x = this.cleanupFunctions[e].shift();
3751
+ x && x();
3734
3752
  }
3735
3753
  let u = t;
3736
- const f = this.tableModel.getColumnCount(), p = this.tableModel.getFixedRightColumnCount(), m = this.tableModel.getFixedLeftColumnCount();
3754
+ const g = this.tableModel.getColumnCount(), p = this.tableModel.getFixedRightColumnCount(), m = this.tableModel.getFixedLeftColumnCount();
3737
3755
  e === "body" && (this.firstVisibleRowIndex = -1, this.firstFullVisibleRowIndex = -1, this.lastVisibleRowIndex = -1, this.lastFullVisibleRowIndex = -1);
3738
- let g = 0;
3739
- const y = (A = c.getConstantRowHeight) == null ? void 0 : A.call(c);
3740
- if (y !== void 0 && y > 0 && u < 0) {
3741
- for (g = Math.min(h, Math.floor(-u / y)); g > 0 && u + g * y > 0; )
3742
- g--;
3743
- u = u + g * y;
3756
+ let f = 0;
3757
+ const b = (v = c.getConstantRowHeight) == null ? void 0 : v.call(c);
3758
+ if (b !== void 0 && b > 0 && u < 0) {
3759
+ for (f = Math.min(h, Math.floor(-u / b)); f > 0 && u + f * b > 0; )
3760
+ f--;
3761
+ u = u + f * b;
3744
3762
  }
3745
- for (let w = g; w < h; w++) {
3746
- const S = u, I = w === h - 1, v = this.tableModel.getRowHeight(e, w);
3747
- if (S + v > 0) {
3748
- e === "body" && this.firstVisibleRowIndex === -1 && (this.firstVisibleRowIndex = w, this.firstFullVisibleRowIndex = S < -this.pixelLimitForFullVisible ? this.firstVisibleRowIndex + 1 : this.firstVisibleRowIndex);
3749
- let R = { left: n, width: l, height: v, top: S, index: w }, D = this.dom.addRowDiv(o, R, w, e, "center");
3763
+ for (let x = f; x < h; x++) {
3764
+ const S = u, T = x === h - 1, R = this.tableModel.getRowHeight(e, x);
3765
+ if (S + R > 0) {
3766
+ e === "body" && this.firstVisibleRowIndex === -1 && (this.firstVisibleRowIndex = x, this.firstFullVisibleRowIndex = S < -this.pixelLimitForFullVisible ? this.firstVisibleRowIndex + 1 : this.firstVisibleRowIndex);
3767
+ let A = { left: n, width: l, height: R, top: S, index: x }, D = this.dom.addRowDiv(o, A, x, e, "center");
3750
3768
  const N = m;
3751
3769
  if (this.adjustColumnsToRowParent({
3752
3770
  areaIdent: e,
3753
3771
  sideIdent: "center",
3754
3772
  areaModel: c,
3755
- geo: R,
3773
+ geo: A,
3756
3774
  parent: D,
3757
- rowIndex: w,
3775
+ rowIndex: x,
3758
3776
  columnIndexStart: N,
3759
- columnIndexEnd: f - p - 1,
3777
+ columnIndexEnd: g - p - 1,
3760
3778
  verticalFixed: !1,
3761
- lastRowOfModel: I
3762
- }), a.left > 0 && (R = { left: n, width: this.areaBodyWestGeo.width, height: v, top: S, index: w }, D = this.dom.addRowDiv(s, R, w, e, "west"), this.adjustColumnsToRowParent({
3779
+ lastRowOfModel: T
3780
+ }), a.left > 0 && (A = { left: n, width: this.areaBodyWestGeo.width, height: R, top: S, index: x }, D = this.dom.addRowDiv(s, A, x, e, "west"), this.adjustColumnsToRowParent({
3763
3781
  areaIdent: e,
3764
3782
  sideIdent: "west",
3765
3783
  areaModel: c,
3766
- geo: R,
3784
+ geo: A,
3767
3785
  parent: D,
3768
- rowIndex: w,
3786
+ rowIndex: x,
3769
3787
  columnIndexStart: 0,
3770
3788
  columnIndexEnd: N - 1,
3771
3789
  verticalFixed: !0,
3772
- lastRowOfModel: I
3773
- })), a.right > 0 && (R = { left: n, width: this.areaBodyEastGeo.width, height: v, top: S, index: w }, D = this.dom.addRowDiv(i, R, w, e, "east"), this.adjustColumnsToRowParent({
3790
+ lastRowOfModel: T
3791
+ })), a.right > 0 && (A = { left: n, width: this.areaBodyEastGeo.width, height: R, top: S, index: x }, D = this.dom.addRowDiv(i, A, x, e, "east"), this.adjustColumnsToRowParent({
3774
3792
  areaIdent: e,
3775
3793
  sideIdent: "east",
3776
3794
  areaModel: c,
3777
- geo: R,
3795
+ geo: A,
3778
3796
  parent: D,
3779
- rowIndex: w,
3780
- columnIndexStart: f - p,
3781
- columnIndexEnd: f - 1,
3797
+ rowIndex: x,
3798
+ columnIndexStart: g - p,
3799
+ columnIndexEnd: g - 1,
3782
3800
  verticalFixed: !0,
3783
- lastRowOfModel: I
3784
- })), e === "header" && this.tree && w === h - 1) {
3801
+ lastRowOfModel: T
3802
+ })), e === "header" && this.tree && x === h - 1) {
3785
3803
  const U = this.dom.applyStyle(
3786
3804
  this.dom.setAttribute(
3787
- this.dom.addDiv(D, new O(16, 20, 20, 8)),
3805
+ this.dom.addDiv(D, new V(16, 20, 20, 8)),
3788
3806
  "data-ge-action",
3789
3807
  "toggleExpandCollapseAll"
3790
3808
  ),
3791
3809
  { cursor: "pointer" }
3792
3810
  ), C = this.tableOptions.treeOptions.arrowExpandCollapseAll;
3793
3811
  if (C) {
3794
- const je = this.dom.domService.createText(C.content);
3795
- this.dom.domService.appendChild(U, je), C.style && this.dom.applyStyleString(U, C.style);
3812
+ const Ue = this.dom.domService.createText(C.content);
3813
+ this.dom.domService.appendChild(U, Ue), C.style && this.dom.applyStyleString(U, C.style);
3796
3814
  }
3797
3815
  }
3798
3816
  }
3799
- if (u = u + v, u > r) {
3800
- e === "body" && (this.lastVisibleRowIndex = w, this.lastFullVisibleRowIndex = r - u < -this.pixelLimitForFullVisible ? w - 1 : w, this.displayedRowCount = this.lastFullVisibleRowIndex - this.firstFullVisibleRowIndex + 1);
3817
+ if (u = u + R, u > r) {
3818
+ e === "body" && (this.lastVisibleRowIndex = x, this.lastFullVisibleRowIndex = r - u < -this.pixelLimitForFullVisible ? x - 1 : x, this.displayedRowCount = this.lastFullVisibleRowIndex - this.firstFullVisibleRowIndex + 1);
3801
3819
  break;
3802
3820
  }
3803
3821
  }
@@ -3805,19 +3823,19 @@ class ht extends Q {
3805
3823
  render scope: this.firstFullVisibleRowIndex <- ` + this.firstFullVisibleRowIndex + `
3806
3824
  render scope: this.lastVisibleRowIndex <- ` + this.lastVisibleRowIndex + `
3807
3825
  render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex), this.colAndRowspanModels && this.colAndRowspanModels[e]) {
3808
- const w = ((k = this.colAndRowspanModels[e]) == null ? void 0 : k.getRanges()) ?? [];
3809
- if (w.length)
3810
- for (const S of w) {
3811
- let I = 0, v = o.child, R = "center";
3826
+ const x = ((I = this.colAndRowspanModels[e]) == null ? void 0 : I.getRanges()) ?? [];
3827
+ if (x.length)
3828
+ for (const S of x) {
3829
+ let T = 0, R = o.child, A = "center";
3812
3830
  if (S.c1 < m)
3813
- v = s.child, R = "west";
3814
- else if (p > 0 && S.c1 >= f - p)
3815
- v = i.child, R = "east";
3831
+ R = s.child, A = "west";
3832
+ else if (p > 0 && S.c1 >= g - p)
3833
+ R = i.child, A = "east";
3816
3834
  else {
3817
3835
  const D = this.areaBodyCenterGeo.width - this.tableModel.getContentWidthInPixel();
3818
- I = this.snapToDevicePixel(this.scrollFactorX * D) - this.areaBodyWestGeo.width, R = "center";
3836
+ T = this.snapToDevicePixel(this.scrollFactorX * D) - this.areaBodyWestGeo.width, A = "center";
3819
3837
  }
3820
- this.drawBigCell(S, I, t, c, v, R);
3838
+ this.drawBigCell(S, T, t, c, R, A);
3821
3839
  }
3822
3840
  }
3823
3841
  }
@@ -3832,10 +3850,10 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
3832
3850
  * @protected
3833
3851
  */
3834
3852
  drawBigCell(e, t, s, o, i, r) {
3835
- const n = s + this.getRowHeights(0, e.r1 - 1, o).reduce((g, y) => g + y, 0), l = this.tableModel.getColumnCount(), a = this.tableModel.getFixedRightColumnCount();
3853
+ const n = s + this.getRowHeights(0, e.r1 - 1, o).reduce((f, b) => f + b, 0), l = this.tableModel.getColumnCount(), a = this.tableModel.getFixedRightColumnCount();
3836
3854
  let c = 0;
3837
3855
  a > 0 && e.c1 >= l - a && (c = l - a);
3838
- const h = t + this.getColumnWidths(c, e.c1 - 1).reduce((g, y) => g + y, 0), u = this.getRowHeights(e.r1, e.r2, o).reduce((g, y) => g + y, 0), f = this.getColumnWidths(e.c1, e.c2).reduce((g, y) => g + y, 0);
3856
+ const h = t + this.getColumnWidths(c, e.c1 - 1).reduce((f, b) => f + b, 0), u = this.getRowHeights(e.r1, e.r2, o).reduce((f, b) => f + b, 0), g = this.getColumnWidths(e.c1, e.c2).reduce((f, b) => f + b, 0);
3839
3857
  let p = !1;
3840
3858
  const m = this.getSelectionModel ? this.getSelectionModel() : void 0;
3841
3859
  m && (p = m.getSelectionCount(e.r1, e.c1) > 0), e.gammaRange ? this.renderCell({
@@ -3846,7 +3864,7 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
3846
3864
  columnIndex: e.c1,
3847
3865
  left: h,
3848
3866
  top: n,
3849
- width: f,
3867
+ width: g,
3850
3868
  height: u,
3851
3869
  parent: i,
3852
3870
  cellSelected: p,
@@ -3860,7 +3878,7 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
3860
3878
  columnIndex: e.c1,
3861
3879
  left: h,
3862
3880
  top: n,
3863
- width: f,
3881
+ width: g,
3864
3882
  height: u,
3865
3883
  parent: i,
3866
3884
  cellSelected: p,
@@ -3871,7 +3889,7 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
3871
3889
  columnIndex: e.c1,
3872
3890
  cellLeft: h,
3873
3891
  cellTop: n,
3874
- cellWidth: f,
3892
+ cellWidth: g,
3875
3893
  cellHeight: u,
3876
3894
  parent: i
3877
3895
  });
@@ -3918,55 +3936,55 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
3918
3936
  var m;
3919
3937
  let h = 0;
3920
3938
  if (!a) {
3921
- const g = this.areaBodyCenterGeo.width - this.tableModel.getContentWidthInPixel();
3922
- h = this.snapToDevicePixel(this.scrollFactorX * g);
3939
+ const f = this.areaBodyCenterGeo.width - this.tableModel.getContentWidthInPixel();
3940
+ h = this.snapToDevicePixel(this.scrollFactorX * f);
3923
3941
  }
3924
- const u = 0, f = !!(e === "body" && t);
3942
+ const u = 0, g = !!(e === "body" && t);
3925
3943
  let p = h;
3926
- for (let g = n; g <= l; g++) {
3927
- const y = p, x = this.tableModel.getColumnWidth(g);
3928
- if (x > 0 && y + x > 0) {
3929
- let A = o.height;
3930
- const k = s.getRowspanAt(r, g), w = s.getColspanAt(r, g);
3931
- k > 1 && (A = this.getRowHeights(r, r + k - 1, s).reduce((v, R) => v + R, 0));
3932
- let S = x;
3933
- w > 1 && (S = this.getColumnWidths(g, g + w - 1).reduce((v, R) => v + R, 0));
3934
- let I = !1;
3935
- if (this.colAndRowspanModels && this.colAndRowspanModels[e] && (m = this.colAndRowspanModels[e]) != null && m.isInRange(r, g) && (I = !0), this.draggingTargetColumnIndex === g && e !== "header") {
3936
- this.renderDragTargetDiv(i, y, u, S, A);
3937
- const v = { left: y, top: u, width: S, height: A };
3938
- this.dom.addColumnBorderDivs(this.tableOptions, i, v, e, t);
3944
+ for (let f = n; f <= l; f++) {
3945
+ const b = p, w = this.tableModel.getColumnWidth(f);
3946
+ if (w > 0 && b + w > 0) {
3947
+ let v = o.height;
3948
+ const I = s.getRowspanAt(r, f), x = s.getColspanAt(r, f);
3949
+ I > 1 && (v = this.getRowHeights(r, r + I - 1, s).reduce((R, A) => R + A, 0));
3950
+ let S = w;
3951
+ x > 1 && (S = this.getColumnWidths(f, f + x - 1).reduce((R, A) => R + A, 0));
3952
+ let T = !1;
3953
+ if (this.colAndRowspanModels && this.colAndRowspanModels[e] && (m = this.colAndRowspanModels[e]) != null && m.isInRange(r, f) && (T = !0), this.draggingTargetColumnIndex === f && e !== "header") {
3954
+ this.renderDragTargetDiv(i, b, u, S, v);
3955
+ const R = { left: b, top: u, width: S, height: v };
3956
+ this.dom.addColumnBorderDivs(this.tableOptions, i, R, e, t);
3939
3957
  } else {
3940
- const v = this.renderSelectedBackgroundDiv(I, f, t, s, r, g, i, y, u, S, A);
3941
- "gammaCells" in s && s.getValueAt(r, g) && (I = !1), I || this.renderCell({
3958
+ const R = this.renderSelectedBackgroundDiv(T, g, t, s, r, f, i, b, u, S, v);
3959
+ "gammaCells" in s && s.getValueAt(r, f) && (T = !1), T || this.renderCell({
3942
3960
  areaModel: s,
3943
3961
  areaIdent: e,
3944
3962
  sideIdent: t,
3945
3963
  rowIndex: r,
3946
- columnIndex: g,
3947
- left: y,
3964
+ columnIndex: f,
3965
+ left: b,
3948
3966
  top: u,
3949
3967
  width: S,
3950
- height: A,
3968
+ height: v,
3951
3969
  parent: i,
3952
- cellSelected: v,
3970
+ cellSelected: R,
3953
3971
  lastRowOfModel: c,
3954
3972
  gammaRange: !0
3955
3973
  }), e === "header" && this.tableOptions.columnsResizable && this.renderHeaderCellResizeHandle({
3956
3974
  rowIndex: r,
3957
- columnIndex: g,
3958
- cellLeft: y,
3975
+ columnIndex: f,
3976
+ cellLeft: b,
3959
3977
  cellTop: u,
3960
3978
  cellWidth: S,
3961
- cellHeight: A,
3979
+ cellHeight: v,
3962
3980
  parent: i
3963
3981
  });
3964
3982
  }
3965
3983
  }
3966
- if (p = p + x, p > this.areaBodyCenterGeo.width)
3984
+ if (p = p + w, p > this.areaBodyCenterGeo.width)
3967
3985
  break;
3968
3986
  }
3969
- this.tableOptions.verticalBorderVisible && this.dom.addVerticalBorder(new O(p - 1, 1, o.height, 0), i);
3987
+ this.tableOptions.verticalBorderVisible && this.dom.addVerticalBorder(new V(p - 1, 1, o.height, 0), i);
3970
3988
  }
3971
3989
  /**
3972
3990
  * Retrieves the column index of the tree arrow column in the table.
@@ -3994,18 +4012,18 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
3994
4012
  lastRowOfModel: h
3995
4013
  }) {
3996
4014
  var U;
3997
- const f = this.editorRenderer && this.editorRendererRow === o && this.editorRendererColumn === i ? this.editorRenderer : e.getCellRenderer(o, i), p = { left: r, width: n, height: l, top: a, index: i }, m = e.getRowByIndex(o);
3998
- let g = "none";
4015
+ const g = this.editorRenderer && this.editorRendererRow === o && this.editorRendererColumn === i ? this.editorRenderer : e.getCellRenderer(o, i), p = { left: r, width: n, height: l, top: a, index: i }, m = e.getRowByIndex(o);
4016
+ let f = "none";
3999
4017
  if (i === this.getTreeArrowColumnIndex() && j(m)) {
4000
4018
  const C = m;
4001
- (U = C.children) != null && U.length ? C.expanded ? g = "expanded" : g = "collapsed" : g = "hidden";
4019
+ (U = C.children) != null && U.length ? C.expanded ? f = "expanded" : f = "collapsed" : f = "hidden";
4002
4020
  }
4003
- let x;
4021
+ let w;
4004
4022
  if (t === "header") {
4005
4023
  const C = this.tableModel.getColumnDef(i);
4006
- (!(C != null && C.sortIconVisible) || C != null && C.sortIconVisible()) && (x = C == null ? void 0 : C.sortState);
4024
+ (!(C != null && C.sortIconVisible) || C != null && C.sortIconVisible()) && (w = C == null ? void 0 : C.sortState);
4007
4025
  }
4008
- const A = e.getValueAt(o, i), k = f ? "" : `${A}`, w = e.isRowChecked(o), S = this.dom.addColumnDiv(
4026
+ const v = e.getValueAt(o, i), I = g ? "" : `${v}`, x = e.isRowChecked(o), S = this.dom.addColumnDiv(
4009
4027
  {
4010
4028
  parent: c,
4011
4029
  geo: p,
@@ -4013,18 +4031,18 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4013
4031
  columnIndex: i,
4014
4032
  areaIdent: t,
4015
4033
  sideIdent: s,
4016
- text: k,
4017
- treeArrow: g,
4034
+ text: I,
4035
+ treeArrow: f,
4018
4036
  tableOptions: this.tableOptions,
4019
- checkedType: w,
4020
- sortState: x
4037
+ checkedType: x,
4038
+ sortState: w
4021
4039
  }
4022
- ), I = e.getTooltipAt(o, i);
4023
- I && this.dom.setAttribute(S, "title", I);
4024
- const v = this.tableModel.getColumnDef(i);
4025
- v && v.classes[t] && this.dom.addClasses(v.classes[t], S);
4026
- let R;
4027
- f && (R = f.render(S, o, i, t, e, A, this.dom.domService));
4040
+ ), T = e.getTooltipAt(o, i);
4041
+ T && this.dom.setAttribute(S, "title", T);
4042
+ const R = this.tableModel.getColumnDef(i);
4043
+ R && R.classes[t] && this.dom.addClasses(R.classes[t], S);
4044
+ let A;
4045
+ g && (A = g.render(S, o, i, t, e, v, this.dom.domService));
4028
4046
  const D = e.getCustomClassesAt(o, i);
4029
4047
  if (D.length && this.dom.addClasses(D, S), this.dom.addColumnBorderDivs(this.tableOptions, c, p, t, s), h && this.dom.addHorizontalBorder({ left: r, width: n, height: l, top: a + l }, c), this.getFocusModel && t === "body") {
4030
4048
  const C = this.getFocusModel();
@@ -4035,7 +4053,7 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4035
4053
  if (N)
4036
4054
  for (const C in N)
4037
4055
  this.dom.setStyle(S, C, N[C]);
4038
- return [S, R];
4056
+ return [S, A];
4039
4057
  }
4040
4058
  /**
4041
4059
  * Applies CSS classes to an HTML element.
@@ -4152,6 +4170,18 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4152
4170
  *
4153
4171
  * @return {undefined}
4154
4172
  */
4173
+ /**
4174
+ * Cancels a pending debounced rendering and calls all renderer cleanup functions
4175
+ * (e.g. unmounts framework components rendered into cells). Used by {@link TableScope.destroy}.
4176
+ */
4177
+ disposeRendering() {
4178
+ this.debounceTimeout && (clearTimeout(this.debounceTimeout), this.debounceTimeout = null);
4179
+ for (const e of ["header", "body", "footer"])
4180
+ for (; this.cleanupFunctions[e].length; ) {
4181
+ const t = this.cleanupFunctions[e].shift();
4182
+ t && t();
4183
+ }
4184
+ }
4155
4185
  debounce(e, t = 1e3) {
4156
4186
  this.debounceTimeout && clearTimeout(this.debounceTimeout), this.debounceTimeout = setTimeout(e.bind(this), t);
4157
4187
  }
@@ -4201,7 +4231,7 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4201
4231
  if (r) {
4202
4232
  const n = e.index ?? 0, l = this.draggingColumn;
4203
4233
  for (let a = 0; a < r; a++) {
4204
- const c = s, h = i.getRowHeight(a), u = { left: 0, width: e.width, height: h, top: c, index: a }, f = i.getValueAt(a, n), p = i.getCellRenderer(a, n), m = p ? "" : `${f}`, g = {
4234
+ const c = s, h = i.getRowHeight(a), u = { left: 0, width: e.width, height: h, top: c, index: a }, g = i.getValueAt(a, n), p = i.getCellRenderer(a, n), m = p ? "" : `${g}`, f = {
4205
4235
  parent: l,
4206
4236
  geo: u,
4207
4237
  rowIndex: a,
@@ -4209,17 +4239,17 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4209
4239
  areaIdent: t,
4210
4240
  sideIdent: o,
4211
4241
  text: m
4212
- }, y = this.dom.addColumnDiv(g);
4213
- let x;
4214
- p && (x = p.render(y, a, n, t, i, f, this.dom.domService), x && this.cleanupFunctions[t].push(x));
4215
- const A = i.getCustomClassesAt(a, n);
4216
- A.length && this.dom.addClasses(A, y);
4217
- const k = this.tableModel.getColumnDef(n);
4218
- k && k.classes[t] && this.dom.addClasses(k.classes[t], y), this.dom.addColumnBorderDivs(this.tableOptions, l, u, t, o);
4219
- const w = i.getCustomStyleAt(a, n);
4220
- if (w)
4221
- for (const S in w)
4222
- this.dom.setStyle(y, S, w[S]);
4242
+ }, b = this.dom.addColumnDiv(f);
4243
+ let w;
4244
+ p && (w = p.render(b, a, n, t, i, g, this.dom.domService), w && this.cleanupFunctions[t].push(w));
4245
+ const v = i.getCustomClassesAt(a, n);
4246
+ v.length && this.dom.addClasses(v, b);
4247
+ const I = this.tableModel.getColumnDef(n);
4248
+ I && I.classes[t] && this.dom.addClasses(I.classes[t], b), this.dom.addColumnBorderDivs(this.tableOptions, l, u, t, o);
4249
+ const x = i.getCustomStyleAt(a, n);
4250
+ if (x)
4251
+ for (const S in x)
4252
+ this.dom.setStyle(b, S, x[S]);
4223
4253
  s = s + h;
4224
4254
  }
4225
4255
  }
@@ -4272,16 +4302,16 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4272
4302
  renderSelectedBackgroundDiv(e, t, s, o, i, r, n, l, a, c, h) {
4273
4303
  let u = !1;
4274
4304
  if (!e && t && o.isSelectable(i, r) && this.getSelectionModel) {
4275
- const f = this.getSelectionModel();
4276
- if (f) {
4277
- const p = f.getSelectionCount(i, r);
4305
+ const g = this.getSelectionModel();
4306
+ if (g) {
4307
+ const p = g.getSelectionCount(i, r);
4278
4308
  u = p > 0;
4279
4309
  for (let m = 0; m < p; m++) {
4280
- const g = this.dom.applyStylePosistionAbsolute(
4310
+ const f = this.dom.applyStylePosistionAbsolute(
4281
4311
  // ge-table-body-west-selected-range
4282
4312
  this.dom.createDivWithClass(`ge-table-${o.areaIdent}-${s}-selected-range`, n)
4283
4313
  );
4284
- this.dom.setStyle(g, "left", `${l}px`), this.dom.setStyle(g, "top", `${a}px`), this.dom.setStyle(g, "width", `${c}px`), this.dom.setStyle(g, "height", `${h}px`);
4314
+ this.dom.setStyle(f, "left", `${l}px`), this.dom.setStyle(f, "top", `${a}px`), this.dom.setStyle(f, "width", `${c}px`), this.dom.setStyle(f, "height", `${h}px`);
4285
4315
  }
4286
4316
  }
4287
4317
  }
@@ -4320,7 +4350,7 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4320
4350
  cellSelected: h,
4321
4351
  lastRowOfModel: u
4322
4352
  }) {
4323
- const [f, p] = this.addAndRenderCellDiv({
4353
+ const [g, p] = this.addAndRenderCellDiv({
4324
4354
  areaModel: e,
4325
4355
  areaIdent: t,
4326
4356
  sideIdent: s,
@@ -4333,7 +4363,7 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4333
4363
  parent: c,
4334
4364
  lastRowOfModel: u
4335
4365
  });
4336
- h && this.dom.addClass(`ge-table-${t}-${s}-selected-range`, f), p && this.cleanupFunctions[t].push(p);
4366
+ h && this.dom.addClass(`ge-table-${t}-${s}-selected-range`, g), p && this.cleanupFunctions[t].push(p);
4337
4367
  }
4338
4368
  /**
4339
4369
  * Render the header cell resize handle.
@@ -4354,14 +4384,18 @@ render scope: this.lastFullVisibleRowIndex <- ` + this.lastFullVisibleRowIndex),
4354
4384
  l.setAttribute(c, "data-col-index", `${t}`), l.setAttribute(c, "data-row-index", `${e}`), l.setAttribute(c, "data-area", "header"), l.setAttribute(c, "data-ge-action", "resize-column"), l.addClass(c, "ge-table-column-resize-handle"), l.setStyle(c, "display", "clip"), l.setStyle(c, "position", "absolute"), l.setStyle(c, "cursor", "col-resize"), l.setStyle(c, "left", `${s + i - a}px`), l.setStyle(c, "top", `${o}px`), l.setStyle(c, "width", `${a}px`), l.setStyle(c, "height", `${r}px`), l.appendChild(n, c);
4355
4385
  }
4356
4386
  }
4357
- class ut {
4387
+ class Me {
4358
4388
  constructor(e, t) {
4359
4389
  this.columnIndex = e, this.sortState = t;
4360
4390
  }
4361
4391
  }
4362
4392
  class pt {
4363
4393
  constructor(e) {
4364
- this.tableScope = e, this.tableScope.hostElement.addEventListener("change", this.onHostElementChanged.bind(this));
4394
+ this.tableScope = e, this.tableScope.hostElement.addEventListener(
4395
+ "change",
4396
+ this.onHostElementChanged.bind(this),
4397
+ { signal: this.tableScope.listenerAbortController.signal }
4398
+ );
4365
4399
  }
4366
4400
  /**
4367
4401
  * Handles the onHostElementChanged event.
@@ -4375,7 +4409,7 @@ class pt {
4375
4409
  if (e.target instanceof HTMLInputElement || e.target instanceof HTMLSelectElement || e.target instanceof HTMLTextAreaElement) {
4376
4410
  const t = e.target, s = t.getAttribute("data-area"), o = t.getAttribute("data-row-index"), i = t.getAttribute("data-col-index");
4377
4411
  if (s && o && i) {
4378
- const r = re(s), n = Number(o), l = Number(i);
4412
+ const r = ne(s), n = Number(o), l = Number(i);
4379
4413
  this.tableScope.updateModelValueAfterEdit(r, n, l, t.value);
4380
4414
  }
4381
4415
  }
@@ -4386,12 +4420,12 @@ class gt {
4386
4420
  this.rowIndex = e, this.columnIndex = t;
4387
4421
  }
4388
4422
  }
4389
- class xe {
4423
+ class Se {
4390
4424
  constructor(e) {
4391
4425
  this.cells = e;
4392
4426
  }
4393
4427
  static createSingle(e, t) {
4394
- return new xe([new gt(e, t)]);
4428
+ return new Se([new gt(e, t)]);
4395
4429
  }
4396
4430
  }
4397
4431
  class ft {
@@ -4402,14 +4436,39 @@ class ft {
4402
4436
  class mt {
4403
4437
  constructor(e) {
4404
4438
  var t, s;
4405
- this.tableScope = e, (t = this.tableScope.tableOptions) != null && t.getSelectionModel && (this.getSelectionModel = this.tableScope.tableOptions.getSelectionModel), (s = this.tableScope.tableOptions) != null && s.getFocusModel && (this.getFocusModel = this.tableScope.tableOptions.getFocusModel);
4439
+ this.tableScope = e, this.ignoreNextClick = !1, (t = this.tableScope.tableOptions) != null && t.getSelectionModel && (this.getSelectionModel = this.tableScope.tableOptions.getSelectionModel), (s = this.tableScope.tableOptions) != null && s.getFocusModel && (this.getFocusModel = this.tableScope.tableOptions.getFocusModel);
4440
+ }
4441
+ /**
4442
+ * Called on mouse down: a new gesture starts.
4443
+ */
4444
+ onMouseDown() {
4445
+ this.ignoreNextClick = !1;
4446
+ }
4447
+ /**
4448
+ * Selects a range by dragging the mouse over body cells (selection type "range").
4449
+ * The cell where the drag started stays the anchor, so a following shift-click extends from there.
4450
+ *
4451
+ * @param {GeMouseEvent} evt - the current mouse position
4452
+ * @param {GeMouseEvent} startEvt - the mouse down event that started the drag
4453
+ * @returns {boolean} true if the selection changed (repaint needed)
4454
+ */
4455
+ onMouseDragging(e, t) {
4456
+ var i, r;
4457
+ if (!t || t.action || t.areaIdent !== "body" || e.areaIdent !== "body" || t.rowIndex < 0 || t.columnIndex < 0 || e.rowIndex < 0 || e.columnIndex < 0) return !1;
4458
+ const s = (i = this.getSelectionModel) == null ? void 0 : i.call(this);
4459
+ if (!s || !("selectionType" in s) || s.selectionType !== "range") return !1;
4460
+ s.clear(), s.addSelection(this.createRangeByEvents(e, t));
4461
+ const o = (r = this.getFocusModel) == null ? void 0 : r.call(this);
4462
+ return o && !o.hasFocus(t.rowIndex, t.columnIndex) && (o.setFocus(t.rowIndex, t.columnIndex), this.tableScope.onFocusChanged(o)), this.previousEvt = t.clone(), this.ignoreNextClick = e.rowIndex !== t.rowIndex || e.columnIndex !== t.columnIndex, this.tableScope.onSelectionChanged(s), !0;
4406
4463
  }
4407
4464
  onMouseClicked(e, t) {
4408
4465
  var i, r, n, l, a, c, h;
4466
+ if (this.ignoreNextClick)
4467
+ return this.ignoreNextClick = !1, !1;
4409
4468
  let s = !1, o = !1;
4410
4469
  if (this.getSelectionModel && this.getFocusModel) {
4411
- const u = this.getSelectionModel(), f = this.getFocusModel();
4412
- u && f && (f.hasFocus(e.rowIndex, e.columnIndex) || (f.setFocus(e.rowIndex, e.columnIndex), this.tableScope.onFocusChanged(f), s = !0), (i = e.originalEvent) != null && i.shiftKey || u.hasSelection() && (u.clear(), s = !0), (r = e.originalEvent) != null && r.shiftKey && this.previousEvt ? (u.addSelection(this.createRangeByEvents(e, this.previousEvt)), o = !0, s = !0) : (n = e.originalEvent) != null && n.altKey && ((l = e.originalEvent) != null && l.ctrlKey || (a = e.originalEvent) != null && a.metaKey) ? (u.removeSelection(M.singleCell(e.rowIndex, e.columnIndex)), o = !0, s = !0) : (c = e.originalEvent) != null && c.ctrlKey || (h = e.originalEvent) != null && h.metaKey ? (u.addSelection(M.singleCell(e.rowIndex, e.columnIndex)), o = !0, s = !0) : (u.firstClick(e.rowIndex, e.columnIndex), s = !0), this.tableScope.onSelectionChanged(u));
4470
+ const u = this.getSelectionModel(), g = this.getFocusModel();
4471
+ u && g && (g.hasFocus(e.rowIndex, e.columnIndex) || (g.setFocus(e.rowIndex, e.columnIndex), this.tableScope.onFocusChanged(g), s = !0), (i = e.originalEvent) != null && i.shiftKey || u.hasSelection() && (u.clear(), s = !0), (r = e.originalEvent) != null && r.shiftKey && this.previousEvt ? (u.addSelection(this.createRangeByEvents(e, this.previousEvt)), o = !0, s = !0) : (n = e.originalEvent) != null && n.altKey && ((l = e.originalEvent) != null && l.ctrlKey || (a = e.originalEvent) != null && a.metaKey) ? (u.removeSelection(M.singleCell(e.rowIndex, e.columnIndex)), o = !0, s = !0) : (c = e.originalEvent) != null && c.ctrlKey || (h = e.originalEvent) != null && h.metaKey ? (u.addSelection(M.singleCell(e.rowIndex, e.columnIndex)), o = !0, s = !0) : (u.firstClick(e.rowIndex, e.columnIndex), s = !0), this.tableScope.onSelectionChanged(u));
4413
4472
  }
4414
4473
  return o ? this.previousEvt = void 0 : this.previousEvt = e == null ? void 0 : e.clone(), s;
4415
4474
  }
@@ -4488,7 +4547,7 @@ function wt(d) {
4488
4547
  return o !== i ? o - i : e.localeCompare(t);
4489
4548
  }).join(" ");
4490
4549
  }
4491
- function Ae(d) {
4550
+ function Ie(d) {
4492
4551
  let e = d.key.toLowerCase();
4493
4552
  if (e === " " && (e = "space"), e === "arrowleft" && (e = "left"), e === "arrowright" && (e = "right"), e === "arrowup" && (e = "up"), e === "arrowdown" && (e = "down"), e === "delete" && d.code === "Delete" && (e = "delete"), e === "backspace" && (e = "backspace"), e === "escape" && (e = "esc"), e === "return" && (e = "enter"), d.code.startsWith("Numpad")) {
4494
4553
  const s = d.code.replace("Numpad", "").toLowerCase();
@@ -4517,7 +4576,11 @@ class xt {
4517
4576
  */
4518
4577
  init() {
4519
4578
  var e, t;
4520
- (t = (e = this.tableScope) == null ? void 0 : e.tableOptions) != null && t.shortcutActionsDisabled ? this.isDebug() && console.debug("ShortcutService skipped.") : (this.assignPredefinedSystemShortcutMappings(), Object.assign(this.shortcutActionIdMapping, this.tableScope.tableOptions.shortcutActionIdMapping), this.isDebug() && console.debug("ShortcutService", this.shortcutActionIdMapping), this.tableScope.hostElement.addEventListener("keydown", this.onKeyDown.bind(this)));
4579
+ (t = (e = this.tableScope) == null ? void 0 : e.tableOptions) != null && t.shortcutActionsDisabled ? this.isDebug() && console.debug("ShortcutService skipped.") : (this.assignPredefinedSystemShortcutMappings(), Object.assign(this.shortcutActionIdMapping, this.tableScope.tableOptions.shortcutActionIdMapping), this.isDebug() && console.debug("ShortcutService", this.shortcutActionIdMapping), this.tableScope.hostElement.addEventListener(
4580
+ "keydown",
4581
+ this.onKeyDown.bind(this),
4582
+ { signal: this.tableScope.listenerAbortController.signal }
4583
+ ));
4521
4584
  }
4522
4585
  assignPredefinedSystemShortcutMappings() {
4523
4586
  this.isMacintosh() ? Object.assign(this.shortcutActionIdMapping, new yt().get()) : Object.assign(this.shortcutActionIdMapping, new bt().get());
@@ -4543,10 +4606,10 @@ class xt {
4543
4606
  return t;
4544
4607
  }
4545
4608
  findEntity(e) {
4546
- const t = Ae(e);
4609
+ const t = Ie(e);
4547
4610
  this.isDebug() && console.debug("ShortcutService shortcut :", t);
4548
4611
  for (const s in this.shortcutActionIdMapping)
4549
- if (Ae(e) === t)
4612
+ if (Ie(e) === t)
4550
4613
  return this.isDebug() && console.debug("ShortcutService action :", this.shortcutActionIdMapping[s]), this.shortcutActionIdMapping[s];
4551
4614
  }
4552
4615
  // private areTokensEquals(tokens1: string[], tokens2: string[]): boolean {
@@ -4593,7 +4656,7 @@ class xt {
4593
4656
  return this.shortcutActionIdMapping;
4594
4657
  }
4595
4658
  }
4596
- class de {
4659
+ class he {
4597
4660
  onCheckboxChanged(e) {
4598
4661
  }
4599
4662
  onContextmenu(e) {
@@ -4663,7 +4726,7 @@ class Ct {
4663
4726
  }
4664
4727
  }
4665
4728
  }
4666
- class Se {
4729
+ class Ce {
4667
4730
  constructor(e = "none", t = "single") {
4668
4731
  this.selectionType = e, this.selectionMode = t, this.ranges = [], this.negativeRanges = [], this.allSelected = !1, this.silent = !1, this.listenerArr = [];
4669
4732
  }
@@ -4782,12 +4845,12 @@ class vt {
4782
4845
  return [this.rowIndex, this.columnIndex];
4783
4846
  }
4784
4847
  }
4785
- class Ce {
4786
- constructor(e = new V(
4848
+ class ve {
4849
+ constructor(e = new O(
4787
4850
  "❯",
4788
4851
  "",
4789
4852
  ["gt-table-icon-expanded"]
4790
- ), t = new V(
4853
+ ), t = new O(
4791
4854
  "❯",
4792
4855
  "transform: rotate(180deg) translate(-100%, -100%); transform-origin: 0 0;",
4793
4856
  ["ge-table-icon-collapsed"]
@@ -4796,14 +4859,14 @@ class Ce {
4796
4859
  }
4797
4860
  // `⊖ `, `⊕ `;
4798
4861
  }
4799
- const Rt = new Se(), At = new vt("cell");
4862
+ const Rt = new Ce(), At = new vt("cell");
4800
4863
  class J {
4801
4864
  constructor() {
4802
4865
  this.overflowX = "auto", this.overflowY = "auto", this.horizontalBorderVisible = !0, this.verticalBorderVisible = !0, this.footerSeparatorBorderVisible = !0, this.headerSeparatorBorderVisible = !0, this.fixedEastSeparatorBorderVisible = !0, this.fixedWestSeparatorBorderVisible = !0, this.tableTopBorderVisible = !0, this.tableBottomBorderVisible = !0, this.hoverRowVisible = !0, this.hoverColumnVisible = !0, this.columnsResizable = !0, this.columnsDraggable = !0, this.columnResizeHandleWidthInPx = 4, this.defaultRowHeights = {
4803
4866
  header: 34,
4804
4867
  body: 34,
4805
4868
  footer: 34
4806
- }, this.footerVerticalSeparator = !1, this.headerToggleExpandCollapseIcons = !1, this.headerVerticalSeparator = !1, this.treeOptions = new Be(), this.headerGroupOptions = new Ce(), this.showCheckboxWihoutExtraColumn = !1, this.externalFilterFunction = void 0, this.sortedOptions = new We(), this.sortOrder = ["asc", "desc"], this.shortcutActionsDisabled = !1, this.resizeEventDebounceDelay = 500, this.getEditRenderer = (e, t) => new Ct(), this.getSelectionModel = () => Rt, this.getFocusModel = () => At;
4869
+ }, this.footerVerticalSeparator = !1, this.headerToggleExpandCollapseIcons = !1, this.headerVerticalSeparator = !1, this.treeOptions = new We(), this.headerGroupOptions = new ve(), this.showCheckboxWihoutExtraColumn = !1, this.externalFilterFunction = void 0, this.sortedOptions = new Ne(), this.sortOrder = ["asc", "desc"], this.shortcutActionsDisabled = !1, this.resizeEventDebounceDelay = 500, this.getEditRenderer = (e, t) => new Ct(), this.getSelectionModel = () => Rt, this.getFocusModel = () => At;
4807
4870
  }
4808
4871
  }
4809
4872
  const z = class z {
@@ -4818,25 +4881,27 @@ const z = class z {
4818
4881
  */
4819
4882
  createContent(e, t, s) {
4820
4883
  return new Promise((o, i) => {
4884
+ var r, n;
4821
4885
  if (t != null && t.hasSelection()) {
4822
- const r = this.mergeRanges(t.getRanges());
4823
- if (r) {
4824
- r.c2 = Math.min(r.c2, e.getColumnCount() - 1), r.r2 = Math.min(r.r2, e.getBodyModel().getRowCount() - 1);
4825
- const n = [];
4826
- for (let l = r.r1; l <= r.r2; l++) {
4827
- const a = [];
4828
- for (let c = r.c1; c <= r.c2; c++) {
4829
- const h = t.isSelected(l, c) ? e.getBodyModel().getTextValueAt(l, c) : "";
4830
- a.push(h);
4886
+ const l = this.mergeRanges(t.getRanges());
4887
+ if (l) {
4888
+ l.c2 = Math.min(l.c2, e.getColumnCount() - 1), l.r2 = Math.min(l.r2, e.getBodyModel().getRowCount() - 1);
4889
+ const a = [];
4890
+ for (let c = l.r1; c <= l.r2; c++) {
4891
+ const h = [];
4892
+ for (let u = l.c1; u <= l.c2; u++) {
4893
+ if (((n = (r = e.getColumnDef(u)) == null ? void 0 : r.isVisible) == null ? void 0 : n.call(r)) === !1) continue;
4894
+ const g = t.isSelected(c, u) ? e.getBodyModel().getTextValueAt(c, u) : "";
4895
+ h.push(g);
4831
4896
  }
4832
- n.push(a.join(z.columnSeparatorChar));
4897
+ a.push(h.join(z.columnSeparatorChar));
4833
4898
  }
4834
- return o(n.join(z.rowSeparatorChar));
4899
+ return o(a.join(z.rowSeparatorChar));
4835
4900
  }
4836
4901
  }
4837
4902
  if (s) {
4838
- const [r, n] = s.getFocus(), l = e.getBodyModel().getTextValueAt(r, n);
4839
- return o(l);
4903
+ const [l, a] = s.getFocus(), c = e.getBodyModel().getTextValueAt(l, a);
4904
+ return o(c);
4840
4905
  }
4841
4906
  i("Cannot copy, neither selection nor focus defined.");
4842
4907
  });
@@ -4865,11 +4930,11 @@ const z = class z {
4865
4930
  t,
4866
4931
  s
4867
4932
  ).then((r) => {
4868
- r && this.copyContent(r).then((n) => {
4933
+ r ? this.copyContent(r).then((n) => {
4869
4934
  o(r);
4870
4935
  }).catch((n) => {
4871
4936
  i();
4872
- });
4937
+ }) : o("");
4873
4938
  }).catch((r) => {
4874
4939
  i();
4875
4940
  });
@@ -4890,17 +4955,41 @@ const z = class z {
4890
4955
  };
4891
4956
  z.columnSeparatorChar = " ", z.rowSeparatorChar = `
4892
4957
  `;
4893
- let ee = z;
4958
+ let te = z;
4894
4959
  class Mt {
4895
4960
  constructor(e, t = 500) {
4896
- this.tableScope = e, this.debounceDelay = t, new ResizeObserver(Ue(this.handleResize.bind(this), t)).observe(this.tableScope.hostElement);
4961
+ this.tableScope = e, this.debounceDelay = t, this.disconnected = !1, this.resizeObserver = new ResizeObserver(Ye(this.handleResize.bind(this), t)), this.resizeObserver.observe(this.tableScope.hostElement);
4962
+ }
4963
+ /**
4964
+ * Stops observing the host element. Called by {@link TableScope.destroy}.
4965
+ */
4966
+ disconnect() {
4967
+ this.disconnected = !0, this.resizeObserver.disconnect();
4897
4968
  }
4898
4969
  handleResize(e) {
4970
+ if (this.disconnected)
4971
+ return;
4899
4972
  const t = e[0], { width: s } = t.contentRect;
4900
4973
  this.tableScope.recalcColumnWidths(s);
4901
4974
  }
4902
4975
  }
4903
- class It {
4976
+ let q;
4977
+ function It(d) {
4978
+ if (!q) {
4979
+ q = new Uint32Array(256);
4980
+ for (let t = 0; t < 256; t++) {
4981
+ let s = t;
4982
+ for (let o = 0; o < 8; o++)
4983
+ s = s & 1 ? 3988292384 ^ s >>> 1 : s >>> 1;
4984
+ q[t] = s >>> 0;
4985
+ }
4986
+ }
4987
+ let e = 4294967295;
4988
+ for (let t = 0; t < d.length; t++)
4989
+ e = q[(e ^ d[t]) & 255] ^ e >>> 8;
4990
+ return (e ^ 4294967295) >>> 0;
4991
+ }
4992
+ class Tt {
4904
4993
  /**
4905
4994
  * Downloads a matrix data as an Excel file.
4906
4995
  *
@@ -4938,32 +5027,32 @@ class It {
4938
5027
  return u.set("_rels/.rels", s), u.set("docProps/app.xml", o), u.set("docProps/core.xml", i), u.set("xl/_rels/workbook.xml.rels", r), u.set("xl/theme/theme1.xml", n), u.set("xl/worksheets/sheet1.xml", this.getX1WorksheetsSheet1Xml(e)), u.set("xl/sharedStrings.xml", l), u.set("xl/styles.xml", a), u.set("xl/workbook.xml", c), u.set("[Content_Types].xml", h), u;
4939
5028
  }
4940
5029
  getX1WorksheetsSheet1Xml(e) {
4941
- const t = [];
4942
- t.push(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
5030
+ const t = e.reduce((i, r) => Math.max(i, r.length), 1), s = e.length ? `A1:${this.getCellAddress(e.length - 1, t - 1)}` : "A1", o = [];
5031
+ o.push(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
4943
5032
  <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac xr xr2 xr3" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision" xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2" xmlns:xr3="http://schemas.microsoft.com/office/spreadsheetml/2016/revision3" xr:uid="{E15F8FC4-4D40-434C-921A-3D9CFAAA2865}">
4944
- <dimension ref="A1:B3"/>
5033
+ <dimension ref="${s}"/>
4945
5034
  <sheetViews>
4946
5035
  <sheetView tabSelected="1" workbookViewId="0"/></sheetViews>
4947
5036
  <sheetFormatPr baseColWidth="10" defaultRowHeight="16" x14ac:dyDescent="0.2"/>
4948
5037
  <sheetData>`);
4949
- for (let s = 0; s < e.length; s++) {
4950
- const o = e[s];
4951
- t.push('<row r="${r + 1}" spans="1:2" x14ac:dyDescent="0.2">');
4952
- for (let i = 0; i < o.length; i++) {
4953
- const r = o[i], n = this.getCellAddress(s, i);
4954
- if (typeof r == "number")
4955
- t.push(`<c r="${n}"><v>${r}</v></c>`);
4956
- else if (r instanceof Date) {
4957
- const l = r;
4958
- t.push(`<c r="${n}" t="inlineStr"><is><t>${l.toISOString()}</t></is></c>`);
5038
+ for (let i = 0; i < e.length; i++) {
5039
+ const r = e[i];
5040
+ o.push(`<row r="${i + 1}" spans="1:${t}" x14ac:dyDescent="0.2">`);
5041
+ for (let n = 0; n < r.length; n++) {
5042
+ const l = r[n], a = this.getCellAddress(i, n);
5043
+ if (typeof l == "number")
5044
+ o.push(`<c r="${a}"><v>${l}</v></c>`);
5045
+ else if (l instanceof Date) {
5046
+ const c = l;
5047
+ o.push(`<c r="${a}" t="inlineStr"><is><t>${c.toISOString()}</t></is></c>`);
4959
5048
  } else {
4960
- const l = r != null ? this.escapeXml(String(r)) : "";
4961
- t.push(`<c r="${n}" t="inlineStr"><is><t>${l}</t></is></c>`);
5049
+ const c = l != null ? this.escapeXml(String(l)) : "";
5050
+ o.push(`<c r="${a}" t="inlineStr"><is><t>${c}</t></is></c>`);
4962
5051
  }
4963
5052
  }
4964
- t.push("</row>");
5053
+ o.push("</row>");
4965
5054
  }
4966
- return t.push(""), t.push(""), t.push('</sheetData><pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>'), t.push("</worksheet>"), t.join(`
5055
+ return o.push(""), o.push(""), o.push('</sheetData><pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>'), o.push("</worksheet>"), o.join(`
4967
5056
  `);
4968
5057
  }
4969
5058
  escapeXml(e) {
@@ -4981,17 +5070,18 @@ class It {
4981
5070
  let s = 0;
4982
5071
  const o = [];
4983
5072
  e.forEach((h, u) => {
4984
- const f = new TextEncoder().encode(u), p = new TextEncoder().encode(h), m = new Uint8Array(30 + f.length), g = new DataView(m.buffer);
4985
- m.set([80, 75, 3, 4], 0), g.setUint16(4, 20, !0), g.setUint16(6, 0, !0), g.setUint16(8, 0, !0), g.setUint16(10, 0, !0), g.setUint16(12, 0, !0), g.setUint32(14, 0, !0), g.setUint32(18, p.length, !0), g.setUint32(22, p.length, !0), g.setUint16(26, f.length, !0), g.setUint16(28, 0, !0), m.set(f, 30), t.push(m, p), o.push({
5073
+ const g = new TextEncoder().encode(u), p = new TextEncoder().encode(h), m = It(p), f = new Uint8Array(30 + g.length), b = new DataView(f.buffer);
5074
+ f.set([80, 75, 3, 4], 0), b.setUint16(4, 20, !0), b.setUint16(6, 0, !0), b.setUint16(8, 0, !0), b.setUint16(10, 0, !0), b.setUint16(12, 0, !0), b.setUint32(14, m, !0), b.setUint32(18, p.length, !0), b.setUint32(22, p.length, !0), b.setUint16(26, g.length, !0), b.setUint16(28, 0, !0), f.set(g, 30), t.push(f, p), o.push({
4986
5075
  path: u,
4987
5076
  offset: s,
4988
- contentSize: p.length
4989
- }), s += m.length + p.length;
5077
+ contentSize: p.length,
5078
+ crc: m
5079
+ }), s += f.length + p.length;
4990
5080
  });
4991
5081
  const i = s;
4992
5082
  o.forEach((h) => {
4993
- const u = new TextEncoder().encode(h.path), f = new Uint8Array(46 + u.length), p = new DataView(f.buffer);
4994
- f.set([80, 75, 1, 2], 0), p.setUint16(4, 20, !0), p.setUint16(6, 20, !0), p.setUint16(8, 0, !0), p.setUint16(10, 0, !0), p.setUint16(12, 0, !0), p.setUint16(14, 0, !0), p.setUint32(16, 0, !0), p.setUint32(20, h.contentSize, !0), p.setUint32(24, h.contentSize, !0), p.setUint16(28, u.length, !0), p.setUint16(30, 0, !0), p.setUint16(32, 0, !0), p.setUint16(34, 0, !0), p.setUint16(36, 0, !0), p.setUint32(38, 0, !0), p.setUint32(42, h.offset, !0), f.set(u, 46), t.push(f), s += f.length;
5083
+ const u = new TextEncoder().encode(h.path), g = new Uint8Array(46 + u.length), p = new DataView(g.buffer);
5084
+ g.set([80, 75, 1, 2], 0), p.setUint16(4, 20, !0), p.setUint16(6, 20, !0), p.setUint16(8, 0, !0), p.setUint16(10, 0, !0), p.setUint16(12, 0, !0), p.setUint16(14, 0, !0), p.setUint32(16, h.crc, !0), p.setUint32(20, h.contentSize, !0), p.setUint32(24, h.contentSize, !0), p.setUint16(28, u.length, !0), p.setUint16(30, 0, !0), p.setUint16(32, 0, !0), p.setUint16(34, 0, !0), p.setUint16(36, 0, !0), p.setUint32(38, 0, !0), p.setUint32(42, h.offset, !0), g.set(u, 46), t.push(g), s += g.length;
4995
5085
  });
4996
5086
  const r = new Uint8Array(22), n = new DataView(r.buffer);
4997
5087
  r.set([80, 75, 5, 6], 0), n.setUint16(4, 0, !0), n.setUint16(6, 0, !0), n.setUint16(8, o.length, !0), n.setUint16(10, o.length, !0), n.setUint32(12, s - i, !0), n.setUint32(16, i, !0), n.setUint16(20, 0, !0), t.push(r);
@@ -5006,14 +5096,14 @@ class It {
5006
5096
  return this.createZip(s);
5007
5097
  }
5008
5098
  }
5009
- class Ne extends ht {
5010
- constructor(e, t, s, o, i, r = new ee(), n = new It()) {
5099
+ class Ge extends ut {
5100
+ constructor(e, t, s, o, i, r = new te(), n = new Tt()) {
5011
5101
  var c;
5012
- if (super(e, t, new st(s), o), this.eventListener = i, this.copyService = r, this.excelService = n, this.licenseManager = G.getInstance(), this.selectionService = new mt(this), this.api = new rt(this), this.mouseStartAction = "", this.mouseStartWidth = -1, this.mouseStartColumnIndex = -1, this.dragFrom = -1, this.dragTo = -1, this.lastDragFrom = -1, this.lastDragTo = -1, this.firstDraggingRendering = !0, this.lastContextmenu = Date.now(), t.setTableScope(this), i || (this.eventListener = new de()), (c = this.tableOptions) != null && c.autoRestoreOptions) {
5102
+ if (super(e, t, new ot(s), o), this.eventListener = i, this.copyService = r, this.excelService = n, this.licenseManager = G.getInstance(), this.listenerAbortController = new AbortController(), this.destroyed = !1, this.selectionService = new mt(this), this.api = new nt(this), this.mouseStartAction = "", this.mouseStartWidth = -1, this.mouseStartColumnIndex = -1, this.dragFrom = -1, this.dragTo = -1, this.lastDragFrom = -1, this.lastDragTo = -1, this.firstDraggingRendering = !0, this.lastContextmenu = Date.now(), t.setTableScope(this), i || (this.eventListener = new he()), (c = this.tableOptions) != null && c.autoRestoreOptions) {
5013
5103
  const h = this.tableOptions.autoRestoreOptions, u = h.getStorageKeyFn;
5014
- u && (h.autoRestoreScrollPosition && (this.storeScrollPosStateService = new nt(u)), h.autoRestoreCollapsedExpandedState && (this.storeStateCollapsedExpandService = new at(u)), h.autoRestoreSortingState && (this.storeSortingService = new ct(u)));
5104
+ u && (h.autoRestoreScrollPosition && (this.storeScrollPosStateService = new lt(u)), h.autoRestoreCollapsedExpandedState && (this.storeStateCollapsedExpandService = new ct(u)), h.autoRestoreSortingState && (this.storeSortingService = new dt(u)));
5015
5105
  }
5016
- this.mouseHandler = new it(this), this.inputHandler = new pt(this), this.resizeHandler = new Mt(this, o.resizeEventDebounceDelay), this.shortcutService = new xt(this), this.shortcutService.addListener(this.selectionService);
5106
+ this.mouseHandler = new rt(this), this.inputHandler = new pt(this), this.resizeHandler = new Mt(this, o.resizeEventDebounceDelay), this.shortcutService = new xt(this), this.shortcutService.addListener(this.selectionService);
5017
5107
  const l = this.getSelectionModel ? this.getSelectionModel() : void 0;
5018
5108
  l && l.addEventSelectionChangedListener(this);
5019
5109
  const a = this.getFocusModel ? this.getFocusModel() : void 0;
@@ -5031,8 +5121,8 @@ class Ne extends ht {
5031
5121
  *
5032
5122
  * @return {TableScope} - The newly created TableScope instance.
5033
5123
  */
5034
- static create(e, t, s = new J(), o = new de(), i = new St(), r = new ee()) {
5035
- return new Ne(e, t, i, s, o, r);
5124
+ static create(e, t, s = new J(), o = new he(), i = new St(), r = new te()) {
5125
+ return new Ge(e, t, i, s, o, r);
5036
5126
  }
5037
5127
  /**
5038
5128
  * Triggers an action based on the provided actionId.
@@ -5061,7 +5151,7 @@ class Ne extends ht {
5061
5151
  }
5062
5152
  updateModelValueAfterEdit(e, t, s, o) {
5063
5153
  var i, r;
5064
- e === "body" && this.tableModel.getAreaModel(e).setValue(t, s, o) && (this.resetEditorRenderer(), this.repaint(), (r = (i = this.eventListener).onModelChanged) == null || r.call(i, xe.createSingle(t, s)), this.hostElement.focus());
5154
+ e === "body" && this.tableModel.getAreaModel(e).setValue(t, s, o) && (this.resetEditorRenderer(), this.repaint(), (r = (i = this.eventListener).onModelChanged) == null || r.call(i, Se.createSingle(t, s)), this.hostElement.focus());
5065
5155
  }
5066
5156
  /**
5067
5157
  * Retrieves the TableApi object.
@@ -5083,6 +5173,37 @@ class Ne extends ht {
5083
5173
  var e;
5084
5174
  return this.tableModel.init(), (e = this.tableOptions) != null && e.externalFilterFunction && this.externalFilterChanged(!1), this.autoRestoreCollapsedExpandedState(), this.autoRestoreSortingState(), this.resetSizeOfWrapperDiv(), this.adjustContainersAndRows(), this.autoRestoreScrollPosition(), this;
5085
5175
  }
5176
+ /**
5177
+ * Releases the table: removes all DOM listeners (host element, scroll viewport, window resize),
5178
+ * stops the resize observer, unregisters from the selection and focus model, calls the cleanup
5179
+ * functions of all cell renderers and clears the host element.
5180
+ *
5181
+ * Call it before you create a new `TableScope` for the same host element (e.g. when a framework
5182
+ * wrapper receives a new table model) or when the table is removed from the page.
5183
+ * Calling it twice is harmless.
5184
+ *
5185
+ * @example
5186
+ * const scope = new TableScope(hostDiv, tableModel, new SimpleDomService(), new TableOptions(), new EventAdapter());
5187
+ * scope.firstInit();
5188
+ * // later, e.g. when a new model arrives:
5189
+ * scope.destroy();
5190
+ * new TableScope(hostDiv, newTableModel, new SimpleDomService(), new TableOptions(), new EventAdapter()).firstInit();
5191
+ */
5192
+ destroy() {
5193
+ if (this.destroyed)
5194
+ return;
5195
+ this.destroyed = !0, this.listenerAbortController.abort(), this.resizeHandler.disconnect();
5196
+ const e = this.getSelectionModel ? this.getSelectionModel() : void 0;
5197
+ e == null || e.removeEventSelectionChangedListener(this);
5198
+ const t = this.getFocusModel ? this.getFocusModel() : void 0;
5199
+ t == null || t.removeEventFocusChangedListener(this), this.disposeRendering(), this.hostElement.innerText = "";
5200
+ }
5201
+ /**
5202
+ * Returns `true` once {@link destroy} has been called.
5203
+ */
5204
+ isDestroyed() {
5205
+ return this.destroyed;
5206
+ }
5086
5207
  /**
5087
5208
  * Creates a GeMouseEvent object based on a MouseEvent.
5088
5209
  *
@@ -5090,7 +5211,7 @@ class Ne extends ht {
5090
5211
  * @return {GeMouseEvent} - The created GeMouseEvent object.
5091
5212
  */
5092
5213
  createGeMouseEvent(e) {
5093
- const t = new me();
5214
+ const t = new be();
5094
5215
  if (t.originalEvent = e, e) {
5095
5216
  const s = e.target;
5096
5217
  if ([t.areaIdent, t.sideIdent] = this.getAreaAndSideIdentByAttr(s), t.rowIndex = this.getNumberByAttr(s, "data-row-index"), t.columnIndex = this.getNumberByAttr(s, "data-col-index"), t.action = this.getStringByAttr(s, "data-ge-action"), t.areaIdent) {
@@ -5111,7 +5232,7 @@ class Ne extends ht {
5111
5232
  * @return {void}
5112
5233
  */
5113
5234
  onMouseDown(e) {
5114
- e.columnIndex > -1 && e.action && ["resize-column", "drag-column"].includes(e.action) && (this.mouseStartWidth = this.tableModel.getColumnWidth(e.columnIndex), this.mouseStartAction = e.action, this.mouseStartColumnIndex = e.columnIndex, this.mouseStartAction === "drag-column" && (this.firstDraggingRendering = !0, this.dragFrom = this.mouseStartColumnIndex));
5235
+ this.selectionService.onMouseDown(), e.columnIndex > -1 && e.action && ["resize-column", "drag-column"].includes(e.action) && (this.mouseStartWidth = this.tableModel.getColumnWidth(e.columnIndex), this.mouseStartAction = e.action, this.mouseStartColumnIndex = e.columnIndex, this.mouseStartAction === "drag-column" && (this.firstDraggingRendering = !0, this.dragFrom = this.mouseStartColumnIndex));
5115
5236
  }
5116
5237
  /**
5117
5238
  * Handles mouse dragging on the frame.
@@ -5121,7 +5242,7 @@ class Ne extends ht {
5121
5242
  */
5122
5243
  mouseDraggingOnFrame(e, t) {
5123
5244
  var s, o;
5124
- (o = (s = this.eventListener).onMouseDragging) == null || o.call(s, e), this.mouseEvent = e, this.mouseStartColumnIndex > -1 && this.mouseStartAction === "resize-column" && this.tableOptions.columnsResizable ? this.resizeColumn(e) : this.mouseStartAction === "drag-column" && e.columnIndex > -1 && this.tableOptions.columnsDraggable && (this.draggingTargetColumnIndex = e.columnIndex, this.dragTo = this.draggingTargetColumnIndex, this.dragFrom > -1 && this.dragTo > -1 && this.dragFrom !== this.dragTo && (this.lastDragFrom === this.dragTo && this.lastDragTo === this.dragFrom || (this.tableModel.changeColumnOrder(this.dragFrom, this.dragTo), this.lastDragFrom = this.dragFrom, this.lastDragTo = this.dragTo, this.dragFrom = this.dragTo, this.resetSizeOfWrapperDiv(), this.adjustContainersAndRows())), t && (this.adjustDraggingColumn(e, t.columnIndex, this.firstDraggingRendering), this.firstDraggingRendering = !1), this.repaint());
5245
+ (o = (s = this.eventListener).onMouseDragging) == null || o.call(s, e), this.mouseEvent = e, this.mouseStartColumnIndex > -1 && this.mouseStartAction === "resize-column" && this.tableOptions.columnsResizable ? this.resizeColumn(e) : !this.mouseStartAction && this.selectionService.onMouseDragging(e, t) ? this.repaint() : this.mouseStartAction === "drag-column" && e.columnIndex > -1 && this.tableOptions.columnsDraggable && (this.draggingTargetColumnIndex = e.columnIndex, this.dragTo = this.draggingTargetColumnIndex, this.dragFrom > -1 && this.dragTo > -1 && this.dragFrom !== this.dragTo && (this.lastDragFrom === this.dragTo && this.lastDragTo === this.dragFrom || (this.tableModel.changeColumnOrder(this.dragFrom, this.dragTo), this.lastDragFrom = this.dragFrom, this.lastDragTo = this.dragTo, this.dragFrom = this.dragTo, this.resetSizeOfWrapperDiv(), this.adjustContainersAndRows())), t && (this.adjustDraggingColumn(e, t.columnIndex, this.firstDraggingRendering), this.firstDraggingRendering = !1), this.repaint());
5125
5246
  }
5126
5247
  /**
5127
5248
  * Handles the end of mouse dragging event on a frame.
@@ -5169,7 +5290,7 @@ class Ne extends ht {
5169
5290
  toggleExpandCollapseAll(e = !0) {
5170
5291
  var s;
5171
5292
  const t = this.tableModel.getBodyModel();
5172
- ce(t) && (t.toggleExpandCollapseAll(e), this.repaint(), (s = this.storeStateCollapsedExpandService) == null || s.collapsedStateAll(e));
5293
+ de(t) && (t.toggleExpandCollapseAll(e), this.repaint(), (s = this.storeStateCollapsedExpandService) == null || s.collapsedStateAll(e));
5173
5294
  }
5174
5295
  /**
5175
5296
  * Toggles the checkbox state of a specific row in a table.
@@ -5226,7 +5347,7 @@ class Ne extends ht {
5226
5347
  */
5227
5348
  externalFilterChanged(e = !0) {
5228
5349
  const t = this.tableOptions.externalFilterFunction;
5229
- t && (e && this.clearSelectionModel(), this.tableModel.externalFilterChanged(t), this.scrollViewport.scrollTo(0, 0), this.tableModel.recalcHeightAndPadding(), this.resetSizeOfWrapperDiv(), this.repaint());
5350
+ t && (e && this.clearSelectionModel(), this.tableModel.externalFilterChanged(t), this.reapplySorting(), this.scrollViewport.scrollTo(0, 0), this.tableModel.recalcHeightAndPadding(), this.resetSizeOfWrapperDiv(), this.repaint());
5230
5351
  }
5231
5352
  /**
5232
5353
  * Handle the double click event on the table header.
@@ -5242,8 +5363,8 @@ class Ne extends ht {
5242
5363
  const o = this.tableModel.getColumnDef(s);
5243
5364
  if (o != null && o.sortable && o.sortable()) {
5244
5365
  e.preventDefault(), e.stopPropagation();
5245
- const n = o.sortStatesOrder ? o.sortStatesOrder : this.tableOptions.sortOrder, l = o.sortState ?? "", a = n[(n.indexOf(l) + 1) % n.length], c = new ut(s, a);
5246
- this.tableModel.doSort([c]) && ((i = this.tableModel.getColumnDefs()) == null || i.forEach((u) => u.sortState = ""), o.sortState = a), this.repaint(), (r = this.storeSortingService) == null || r.setSortItems([c]);
5366
+ const n = o.sortStatesOrder ? o.sortStatesOrder : this.tableOptions.sortOrder, l = o.sortState ?? "", a = n[(n.indexOf(l) + 1) % n.length], c = new Me(s, a), h = this.tableModel.doSort([c]);
5367
+ this.lastSortCompareFn = void 0, h && ((i = this.tableModel.getColumnDefs()) == null || i.forEach((u) => u.sortState = ""), o.sortState = a), this.repaint(), (r = this.storeSortingService) == null || r.setSortItems([c]);
5247
5368
  }
5248
5369
  }
5249
5370
  /**
@@ -5305,7 +5426,7 @@ class Ne extends ht {
5305
5426
  }
5306
5427
  toggleHeaderGroup(e) {
5307
5428
  const t = this.tableModel.getAreaModel("header");
5308
- "columnDefs" in this.tableModel && (this.tableModel.columnDefs = t.toggleHeaderGroup(e), console.info("####### !!!!!! *******, this.tableModel.columnDefs")), this.firstInit();
5429
+ "columnDefs" in this.tableModel && (this.tableModel.columnDefs = t.toggleHeaderGroup(e)), this.firstInit();
5309
5430
  }
5310
5431
  /**
5311
5432
  * Retrieves the selection model.
@@ -5411,7 +5532,7 @@ class Ne extends ht {
5411
5532
  const s = this.tableOptions.autoRestoreOptions, o = s.getRowId;
5412
5533
  if (s.autoRestoreCollapsedExpandedState && o) {
5413
5534
  const i = this.storeStateCollapsedExpandService.collapsedExpandedStateGet(), r = this.tableModel.getAreaModel("body");
5414
- if (ce(r)) {
5535
+ if (de(r)) {
5415
5536
  const n = r, l = r.getRowCount();
5416
5537
  for (let a = 0; a < l; a++) {
5417
5538
  const c = r.getRowByIndex(a);
@@ -5430,17 +5551,48 @@ class Ne extends ht {
5430
5551
  }
5431
5552
  }
5432
5553
  }
5554
+ /**
5555
+ * Calculates a width per column that fits the widest text of header, body and footer.
5556
+ *
5557
+ * The text is measured with the font and padding of a rendered cell label (canvas `measureText`),
5558
+ * so dates, numbers and long names are no longer cut off. To stay fast with millions of rows, the body
5559
+ * is scanned once by character length and only the longest candidates per column are measured.
5560
+ * Without a canvas (e.g. in tests) it falls back to 8 px per character.
5561
+ *
5562
+ * @returns {number[]} one width in px per column (at least 50 px)
5563
+ */
5433
5564
  calcAutoColumnWidths() {
5434
- const e = this.tableModel.getBodyModel(), t = this.tableModel.getColumnCount(), s = (e == null ? void 0 : e.getRowCount()) ?? 0;
5565
+ const e = this.tableModel.getBodyModel(), t = this.tableModel.getColumnCount();
5435
5566
  if (!e)
5436
5567
  return console.warn("Body model is not available."), [];
5437
- const o = new Array(t).fill(0);
5438
- for (let i = 0; i < s; i++)
5439
- for (let r = 0; r < t; r++) {
5440
- const n = e.getValueAt(i, r), l = (n == null ? void 0 : n.toString().length) || 0;
5441
- l > o[r] && (o[r] = l);
5442
- }
5443
- return o.map((i) => Math.max(i * 10, 50));
5568
+ const s = 30, o = Array.from({ length: t }, () => /* @__PURE__ */ new Set()), i = new Array(t).fill(0), r = (u) => {
5569
+ var m, f;
5570
+ const g = this.tableModel.getAreaModel(u), p = (g == null ? void 0 : g.getRowCount()) ?? 0;
5571
+ for (let b = 0; b < p; b++)
5572
+ for (let w = 0; w < t; w++) {
5573
+ const v = ((m = g.getTextValueAt) == null ? void 0 : m.call(g, b, w)) || (((f = g.getValueAt(b, w)) == null ? void 0 : f.toString()) ?? ""), I = v.length;
5574
+ if (I > i[w]) {
5575
+ i[w] = I;
5576
+ for (const x of o[w]) x.length < I - 2 && o[w].delete(x);
5577
+ }
5578
+ I >= i[w] - 2 && o[w].size < s && o[w].add(v);
5579
+ }
5580
+ };
5581
+ r("header"), r("body"), r("footer");
5582
+ const n = this.hostElement.querySelector(".ge-table-label"), l = getComputedStyle(n ?? this.hostElement), a = n ? (parseFloat(l.paddingLeft) || 0) + (parseFloat(l.paddingRight) || 0) : 20;
5583
+ let c = null;
5584
+ try {
5585
+ c = document.createElement("canvas").getContext("2d");
5586
+ } catch {
5587
+ c = null;
5588
+ }
5589
+ c && (c.font = l.font || `${l.fontSize} ${l.fontFamily}`);
5590
+ const h = (u) => c ? c.measureText(u).width : u.length * 8;
5591
+ return o.map((u) => {
5592
+ let g = 0;
5593
+ for (const p of u) g = Math.max(g, h(p));
5594
+ return Math.max(Math.ceil(g + a + 2), 50);
5595
+ });
5444
5596
  }
5445
5597
  setColumnWidth(e, t) {
5446
5598
  this.tableModel.setColumnWidth(e, t);
@@ -5459,10 +5611,26 @@ class Ne extends ht {
5459
5611
  reSort() {
5460
5612
  var t;
5461
5613
  let e = ((t = this.storeSortingService) == null ? void 0 : t.getSortItems()) ?? [];
5462
- this.tableModel.doSort(e);
5614
+ this.tableModel.doSort(e), this.repaint();
5463
5615
  }
5464
5616
  sort(e) {
5465
- this.tableModel.sort(e);
5617
+ var t;
5618
+ this.tableModel.sort(e), this.lastSortCompareFn = e, (t = this.tableModel.getColumnDefs()) == null || t.forEach((s) => s.sortState = ""), this.repaint();
5619
+ }
5620
+ /**
5621
+ * Sorts the (freshly filtered) body rows again, so a filter keeps the current order:
5622
+ * the last `sort(compareFn)` call, otherwise the columns with a `sortState` (header icons).
5623
+ */
5624
+ reapplySorting() {
5625
+ var t;
5626
+ if (this.lastSortCompareFn) {
5627
+ this.tableModel.sort(this.lastSortCompareFn);
5628
+ return;
5629
+ }
5630
+ const e = [];
5631
+ (t = this.tableModel.getColumnDefs()) == null || t.forEach((s, o) => {
5632
+ s.sortState && e.push(new Me(o, s.sortState));
5633
+ }), e.length && this.tableModel.doSort(e);
5466
5634
  }
5467
5635
  /**
5468
5636
  * Ensures that a specific row is visible in the viewport by scrolling if necessary.
@@ -5520,16 +5688,16 @@ class Ne extends ht {
5520
5688
  return e < t ? (this.scrollToIndex(0, e), !0) : e > s ? (this.scrollToIndex(0, e - o + 1), !0) : !1;
5521
5689
  }
5522
5690
  }
5523
- class Kt extends de {
5691
+ class qt extends he {
5524
5692
  constructor(e) {
5525
5693
  super(), this.onCheckboxChangedCallback = e, super.onCheckboxChanged = (t) => {
5526
5694
  this.onCheckboxChangedCallback(t);
5527
5695
  };
5528
5696
  }
5529
5697
  }
5530
- const oe = class oe {
5698
+ const ie = class ie {
5531
5699
  };
5532
- oe.themes = ["light", "combat", "paper", "blackboard"], oe.vars = {
5700
+ ie.themes = ["light", "combat", "paper", "blackboard"], ie.vars = {
5533
5701
  light: `html[data-theme="light"] {
5534
5702
  --ge-table-bg: rgba(255,255,255, 0.5);
5535
5703
  --ge-table-header-west-bg: rgba(233, 233, 233, 0.5);
@@ -5763,28 +5931,28 @@ oe.themes = ["light", "combat", "paper", "blackboard"], oe.vars = {
5763
5931
  --ge-table-drop-zone-bg: #758129;
5764
5932
  }`
5765
5933
  };
5766
- let Me = oe;
5767
- class Ie {
5934
+ let Te = ie;
5935
+ class Ee {
5768
5936
  constructor(e, t = !0, s, o, i = 0, r = !1, n = !1) {
5769
5937
  this.data = e, this.expanded = t, this.children = s, this.parent = o, this.deep = i, this.checked = r, this.keep = n, this.type = "TreeRow";
5770
5938
  }
5771
5939
  }
5772
- class he {
5940
+ class ue {
5773
5941
  static buildTreeRows(e, t = "children", s = 12) {
5774
5942
  const o = [];
5775
5943
  for (const i of e)
5776
- o.push(he.buildTreeRow(i, t, void 0, 0, s));
5944
+ o.push(ue.buildTreeRow(i, t, void 0, 0, s));
5777
5945
  return o;
5778
5946
  }
5779
- static buildTreeRow(e, t = "children", s = new Ie(e, !0, [], void 0, 0), o = 0, i = 12) {
5947
+ static buildTreeRow(e, t = "children", s = new Ee(e, !0, [], void 0, 0), o = 0, i = 12) {
5780
5948
  var n;
5781
5949
  if (o > i)
5782
5950
  return console.warn("Max deep limit reached: ", o), s;
5783
5951
  const r = e[t];
5784
5952
  if (r)
5785
5953
  for (const l of r) {
5786
- const a = new Ie(l, !0, [], s, o + 1);
5787
- if ((n = s.children) == null || n.push(a), he.buildTreeRow(
5954
+ const a = new Ee(l, !0, [], s, o + 1);
5955
+ if ((n = s.children) == null || n.push(a), ue.buildTreeRow(
5788
5956
  l,
5789
5957
  t,
5790
5958
  a,
@@ -5800,41 +5968,41 @@ class Y {
5800
5968
  this.header = e, this.body = t, this.footer = s;
5801
5969
  }
5802
5970
  }
5803
- class b {
5971
+ class y {
5804
5972
  constructor(e = 100, t = "px") {
5805
5973
  this.value = e, this.unit = t;
5806
5974
  }
5807
5975
  }
5808
- const Et = () => !0, Ee = () => !1;
5976
+ const Et = () => !0, kt = () => !1;
5809
5977
  class W {
5810
- constructor(e, t, s = new b(100, "px"), o = new T(), i = new T(), r = new b(100, "px"), n = new b(100, "px"), l, a, c, h, u, f, p, m, g = () => this.visible) {
5811
- this.property = e, this.headerLabel = t, this.width = s, this.classes = o, this.rendererMap = i, this.minWidth = r, this.maxWidth = n, this.sortable = l, this.sortComparator = a, this.sortState = c, this.sortStatesOrder = h, this.sortIconVisible = u, this.editable = f, this.getEditRenderer = p, this.editInputPipe = m, this.isVisible = g, this.visible = !0, s.unit !== "px" && (this.minWidth = new b(0, "px"), this.maxWidth = new b(1e5, "px"));
5978
+ constructor(e, t, s = new y(100, "px"), o = new k(), i = new k(), r = new y(100, "px"), n = new y(100, "px"), l, a, c, h, u, g, p, m, f = () => this.visible) {
5979
+ this.property = e, this.headerLabel = t, this.width = s, this.classes = o, this.rendererMap = i, this.minWidth = r, this.maxWidth = n, this.sortable = l, this.sortComparator = a, this.sortState = c, this.sortStatesOrder = h, this.sortIconVisible = u, this.editable = g, this.getEditRenderer = p, this.editInputPipe = m, this.isVisible = f, this.visible = !0, s.unit !== "px" && (this.minWidth = new y(0, "px"), this.maxWidth = new y(1e5, "px"));
5812
5980
  }
5813
5981
  static bodyRenderer(e) {
5814
- return new T(
5982
+ return new k(
5815
5983
  void 0,
5816
5984
  e,
5817
5985
  void 0
5818
5986
  );
5819
5987
  }
5820
5988
  static create(e) {
5821
- const t = new T(
5989
+ const t = new k(
5822
5990
  e.headerRenderer,
5823
5991
  e.bodyRenderer,
5824
5992
  e.footerRenderer
5825
- ), s = new T(
5993
+ ), s = new k(
5826
5994
  e.headerClasses,
5827
5995
  e.bodyClasses,
5828
5996
  e.footerClasses
5829
- ), o = e.sortIconVisible ?? e.sortable ?? Ee, i = e.editable ?? e.editable ?? Ee, r = e.isVisible ?? e.isVisible ?? Et;
5997
+ ), o = e.sortIconVisible ?? e.sortable, i = e.editable ?? e.editable ?? kt, r = e.isVisible ?? e.isVisible ?? Et;
5830
5998
  return new W(
5831
5999
  e.property ?? "",
5832
6000
  e.headerLabel ?? "",
5833
- e.width ?? new b(100, "px"),
6001
+ e.width ?? new y(100, "px"),
5834
6002
  s,
5835
6003
  t,
5836
- e.minWidth ?? new b(100, "px"),
5837
- e.maxWidth ?? new b(100, "px"),
6004
+ e.minWidth ?? new y(100, "px"),
6005
+ e.maxWidth ?? new y(100, "px"),
5838
6006
  e.sortable,
5839
6007
  e.sortComparator,
5840
6008
  e.sortState,
@@ -5847,8 +6015,8 @@ class W {
5847
6015
  );
5848
6016
  }
5849
6017
  }
5850
- const Jt = new b(500, "px"), qt = new b(400, "px"), Tt = new b(300, "px"), Zt = new b(290, "px"), Qt = new b(280, "px"), es = new b(270, "px"), ts = new b(260, "px"), ss = new b(250, "px"), os = new b(240, "px"), is = new b(230, "px"), rs = new b(220, "px"), ns = new b(210, "px"), Te = new b(200, "px"), ls = new b(190, "px"), as = new b(180, "px"), cs = new b(170, "px"), ds = new b(160, "px"), hs = new b(150, "px"), us = new b(140, "px"), ps = new b(130, "px"), gs = new b(120, "px"), fs = new b(110, "px"), ms = new b(100, "px"), bs = new b(90, "px"), ys = new b(80, "px"), ws = new b(70, "px"), xs = new b(60, "px"), Ss = new b(50, "px"), Cs = new b(40, "px"), vs = new b(30, "px"), Rs = new b(20, "px"), As = new b(10, "px"), Ms = new b(0, "px");
5851
- class F extends be {
6018
+ const Zt = new y(500, "px"), Qt = new y(400, "px"), Dt = new y(300, "px"), es = new y(290, "px"), ts = new y(280, "px"), ss = new y(270, "px"), os = new y(260, "px"), is = new y(250, "px"), rs = new y(240, "px"), ns = new y(230, "px"), ls = new y(220, "px"), as = new y(210, "px"), ke = new y(200, "px"), cs = new y(190, "px"), ds = new y(180, "px"), hs = new y(170, "px"), us = new y(160, "px"), ps = new y(150, "px"), gs = new y(140, "px"), fs = new y(130, "px"), ms = new y(120, "px"), bs = new y(110, "px"), ys = new y(100, "px"), ws = new y(90, "px"), xs = new y(80, "px"), Ss = new y(70, "px"), Cs = new y(60, "px"), vs = new y(50, "px"), Rs = new y(40, "px"), As = new y(30, "px"), Ms = new y(20, "px"), Is = new y(10, "px"), Ts = new y(0, "px");
6019
+ class F extends ye {
5852
6020
  constructor(e, t, s, o = []) {
5853
6021
  super(e, o, s), this.areaIdent = e, this.arr = t, this.defaultRowHeight = s, this.columnDefs = o, this.filteredArr = [...t];
5854
6022
  }
@@ -5959,7 +6127,7 @@ class P {
5959
6127
  changeColumnOrder(e, t) {
5960
6128
  }
5961
6129
  }
5962
- class kt {
6130
+ class Ft {
5963
6131
  flattenTree(e, t = []) {
5964
6132
  var s;
5965
6133
  for (const o of e)
@@ -5970,9 +6138,9 @@ class kt {
5970
6138
  return e.parent ? e.parent.expanded ? this.isVisible(e.parent) : !1 : !0;
5971
6139
  }
5972
6140
  }
5973
- class te extends be {
6141
+ class se extends ye {
5974
6142
  constructor(e, t, s, o = []) {
5975
- super(e, o, s), this.areaIdent = e, this.rows = t, this.defaultRowHeight = s, this.columnDefs = o, this.type = "AreaModelTree", this.sorterService = new ye(), this.service = new kt(), this.properties = o.map((i) => i.property), this.flattenRows = this.service.flattenTree(t), this.filteredFlattenRows = [...this.flattenRows];
6143
+ super(e, o, s), this.areaIdent = e, this.rows = t, this.defaultRowHeight = s, this.columnDefs = o, this.type = "AreaModelTree", this.sorterService = new we(), this.service = new Ft(), this.properties = o.map((i) => i.property), this.flattenRows = this.service.flattenTree(t), this.filteredFlattenRows = [...this.flattenRows];
5976
6144
  }
5977
6145
  changeColumnOrder(e, t) {
5978
6146
  this.arrayMove(this.properties, e, t), super.changeColumnOrder(e, t);
@@ -6008,7 +6176,7 @@ class te extends be {
6008
6176
  * @returns {number | undefined} The constant row height or `undefined`.
6009
6177
  */
6010
6178
  getConstantRowHeight() {
6011
- return this.getRowHeight === te.prototype.getRowHeight && this.defaultRowHeight > 0 ? this.defaultRowHeight : void 0;
6179
+ return this.getRowHeight === se.prototype.getRowHeight && this.defaultRowHeight > 0 ? this.defaultRowHeight : void 0;
6012
6180
  }
6013
6181
  getCustomClassesAt(e, t) {
6014
6182
  return ["ge-table-tree-cell", "ge-table-tree-deep-" + this.filteredFlattenRows[e].deep];
@@ -6085,7 +6253,7 @@ class te extends be {
6085
6253
  o.children && this.treeSort(o.children, t, s);
6086
6254
  }
6087
6255
  }
6088
- class ke {
6256
+ class De {
6089
6257
  constructor(e = []) {
6090
6258
  this.allRootNodes = e;
6091
6259
  }
@@ -6145,12 +6313,12 @@ class ke {
6145
6313
  s.checked && t.push(s), s.children && this.addSelectedRecursive(s.children, t);
6146
6314
  }
6147
6315
  }
6148
- class ue {
6316
+ class pe {
6149
6317
  constructor(e = 0, t = 0, s = 0, o = 0) {
6150
6318
  this.top = e, this.right = t, this.bottom = s, this.left = o;
6151
6319
  }
6152
6320
  }
6153
- class Dt {
6321
+ class Pt {
6154
6322
  constructor() {
6155
6323
  this.checkedRows = [];
6156
6324
  }
@@ -6181,11 +6349,11 @@ class Dt {
6181
6349
  }
6182
6350
  }
6183
6351
  }
6184
- class le {
6185
- constructor(e, t, s, o = 0, i = 0, r = !1, n = new Y(), l = [], a = [], c = -1, h = 0, u = 400, f = () => {
6352
+ class ae {
6353
+ constructor(e, t, s, o = 0, i = 0, r = !1, n = new Y(), l = [], a = [], c = -1, h = 0, u = 400, g = () => {
6186
6354
  }) {
6187
- var p, m, g, y;
6188
- this.headerAreaModel = e, this.bodyAreaModel = t, this.footerAreaModel = s, this.fixedLeftColumnCount = o, this.fixedRightColumnCount = i, this.rowCheckboxVisible = r, this.defaultRowHeights = n, this.columnDefs = l, this.columnSizes = a, this.overridingColumnWidth = c, this.columnCount = h, this.parentSize = u, this.getSelectionModel = f, this.rowCount = 0, this.contentHeightInPx = 0, this.contentWidthInPx = 0, this.padding = new ue(0, 0, 0, 0), this.xPositions = [], e.areaIdent = "header", t.areaIdent = "body", s.areaIdent = "footer", this.columnCount || ((p = this.columnDefs) != null && p.length ? this.columnCount = this.columnDefs.length : (m = this.columnSizes) != null && m.length && (this.columnCount = (g = this.columnSizes) == null ? void 0 : g.length)), (y = this.columnDefs) != null && y.length && tt(this.columnDefs[0]) && !t.rowSelectionModel && (t.rowSelectionModel = new Dt());
6355
+ var p, m, f, b;
6356
+ this.headerAreaModel = e, this.bodyAreaModel = t, this.footerAreaModel = s, this.fixedLeftColumnCount = o, this.fixedRightColumnCount = i, this.rowCheckboxVisible = r, this.defaultRowHeights = n, this.columnDefs = l, this.columnSizes = a, this.overridingColumnWidth = c, this.columnCount = h, this.parentSize = u, this.getSelectionModel = g, this.rowCount = 0, this.contentHeightInPx = 0, this.contentWidthInPx = 0, this.padding = new pe(0, 0, 0, 0), this.xPositions = [], e.areaIdent = "header", t.areaIdent = "body", s.areaIdent = "footer", this.columnCount || ((p = this.columnDefs) != null && p.length ? this.columnCount = this.columnDefs.length : (m = this.columnSizes) != null && m.length && (this.columnCount = (f = this.columnSizes) == null ? void 0 : f.length)), (b = this.columnDefs) != null && b.length && st(this.columnDefs[0]) && !t.rowSelectionModel && (t.rowSelectionModel = new Pt());
6189
6357
  }
6190
6358
  init() {
6191
6359
  this.recalcSize(this.parentSize), this.overridingColumnWidth === -1 && this.calcXPositions(), this.headerAreaModel && this.headerAreaModel.init(), this.bodyAreaModel && this.bodyAreaModel.init(), this.footerAreaModel && this.footerAreaModel.init();
@@ -6269,7 +6437,7 @@ class le {
6269
6437
  */
6270
6438
  recalcPadding() {
6271
6439
  const e = this.getSideAreaWidth("west"), t = this.getSideAreaWidth("east"), s = this.getAreaHeight("header"), o = this.getAreaHeight("footer");
6272
- this.padding = new ue(
6440
+ this.padding = new pe(
6273
6441
  s,
6274
6442
  t,
6275
6443
  o,
@@ -6574,7 +6742,7 @@ class le {
6574
6742
  return this.tableScope;
6575
6743
  }
6576
6744
  }
6577
- class De extends _ {
6745
+ class Fe extends _ {
6578
6746
  /**
6579
6747
  * Creates an instance of AreaModelObjectArrayWithColumndefs.
6580
6748
  *
@@ -6615,7 +6783,7 @@ class De extends _ {
6615
6783
  ), this.areaIdent = e, this.rows = t, this.columnDefs = s, this.defaultRowHeight = o;
6616
6784
  }
6617
6785
  }
6618
- class $ {
6786
+ class H {
6619
6787
  /**
6620
6788
  * TableFactory
6621
6789
  *
@@ -6653,32 +6821,32 @@ class $ {
6653
6821
  * Please consult each method's documentation for detailed explanation of their functionality.
6654
6822
  */
6655
6823
  static createTableModel(e) {
6656
- var t, s, o, i, r, n, l, a, c, h, u, f, p, m;
6824
+ var t, s, o, i, r, n, l, a, c, h, u, g, p, m;
6657
6825
  if (e.defaultRowHeights === void 0)
6658
6826
  if ((t = e.tableOptions) != null && t.defaultRowHeights)
6659
6827
  e.defaultRowHeights = e.tableOptions.defaultRowHeights;
6660
6828
  else {
6661
6829
  if (e.defaultRowHeights = new Y(), e.headerAreaModel && "defaultRowHeight" in e.headerAreaModel) {
6662
- const g = e.headerAreaModel.defaultRowHeight;
6663
- g > -1 && (e.defaultRowHeights.header = g);
6830
+ const f = e.headerAreaModel.defaultRowHeight;
6831
+ f > -1 && (e.defaultRowHeights.header = f);
6664
6832
  }
6665
6833
  if (e.bodyAreaModel && "defaultRowHeight" in e.bodyAreaModel) {
6666
- const g = e.bodyAreaModel.defaultRowHeight;
6667
- g > -1 && (e.defaultRowHeights.body = g);
6834
+ const f = e.bodyAreaModel.defaultRowHeight;
6835
+ f > -1 && (e.defaultRowHeights.body = f);
6668
6836
  }
6669
6837
  if (e.footerAreaModel && "defaultRowHeight" in e.footerAreaModel) {
6670
- const g = e.footerAreaModel.defaultRowHeight;
6671
- g > -1 && (e.defaultRowHeights.footer = g);
6838
+ const f = e.footerAreaModel.defaultRowHeight;
6839
+ f > -1 && (e.defaultRowHeights.footer = f);
6672
6840
  }
6673
6841
  }
6674
- if (e.columnDefs === void 0 && ((s = e.properties) != null && s.length ? e.columnDefs = e.properties.map((g) => new W(g, g.toUpperCase(), Te)) : (o = e.rows) != null && o.length ? e.columnDefs = Object.keys(e.rows[0]).map((g) => new W(g, g.toUpperCase(), Te)) : e.columnDefs = []), e.columnCount === void 0 && ((i = e.columnDefs) != null && i.length ? e.columnCount = e.columnDefs.length : (r = e.headerData) != null && r.length ? e.columnCount = e.headerData[0].length : (n = e.columnSizes) != null && n.length ? e.columnCount = (l = e.columnSizes) == null ? void 0 : l.length : console.warn('Property "columnCount" is missing and cannot be derived from other properties.')), e.headerAreaModel || ((a = e.headerData) != null && a.length ? e.headerAreaModel = new F(
6842
+ if (e.columnDefs === void 0 && ((s = e.properties) != null && s.length ? e.columnDefs = e.properties.map((f) => new W(f, f.toUpperCase(), ke)) : (o = e.rows) != null && o.length ? e.columnDefs = Object.keys(e.rows[0]).map((f) => new W(f, f.toUpperCase(), ke)) : e.columnDefs = []), e.columnCount === void 0 && ((i = e.columnDefs) != null && i.length ? e.columnCount = e.columnDefs.length : (r = e.headerData) != null && r.length ? e.columnCount = e.headerData[0].length : (n = e.columnSizes) != null && n.length ? e.columnCount = (l = e.columnSizes) == null ? void 0 : l.length : console.warn('Property "columnCount" is missing and cannot be derived from other properties.')), e.headerAreaModel || ((a = e.headerData) != null && a.length ? e.headerAreaModel = new F(
6675
6843
  "header",
6676
6844
  e.headerData,
6677
6845
  e.defaultRowHeights.header,
6678
6846
  e.columnDefs
6679
6847
  ) : (c = e.columnDefs) != null && c.length ? e.headerAreaModel = new F(
6680
6848
  "header",
6681
- [e.columnDefs.map((g) => g.headerLabel)],
6849
+ [e.columnDefs.map((f) => f.headerLabel)],
6682
6850
  e.defaultRowHeights.header,
6683
6851
  e.columnDefs
6684
6852
  ) : e.headerAreaModel = new P("header")), e.footerAreaModel || ((h = e.footerData) != null && h.length ? e.footerAreaModel = new F(
@@ -6689,15 +6857,15 @@ class $ {
6689
6857
  ) : e.footerAreaModel = new P("footer")), !e.bodyAreaModel)
6690
6858
  if (e.rows)
6691
6859
  if ((u = e.rows) != null && u.length && j(e.rows[0])) {
6692
- const g = e.rows;
6693
- e.bodyAreaModel = new te(
6860
+ const f = e.rows;
6861
+ e.bodyAreaModel = new se(
6694
6862
  "body",
6695
- g,
6863
+ f,
6696
6864
  e.defaultRowHeights.body,
6697
6865
  e.columnDefs
6698
- ), (e.columnDefs[0].property === "CheckboxColumn" || (f = e.tableOptions) != null && f.showCheckboxWihoutExtraColumn) && (e.bodyAreaModel.rowSelectionModel = new ke(g));
6866
+ ), (e.columnDefs[0].property === "CheckboxColumn" || (g = e.tableOptions) != null && g.showCheckboxWihoutExtraColumn) && (e.bodyAreaModel.rowSelectionModel = new De(f));
6699
6867
  } else
6700
- e.bodyAreaModel = new De(
6868
+ e.bodyAreaModel = new Fe(
6701
6869
  "body",
6702
6870
  e.rows,
6703
6871
  e.columnDefs,
@@ -6708,7 +6876,7 @@ class $ {
6708
6876
  e.bodyData,
6709
6877
  e.defaultRowHeights.body
6710
6878
  ) : e.bodyAreaModel = new P("body");
6711
- return e.fixedLeftColumnCount === void 0 && (e.fixedLeftColumnCount = 0), e.fixedRightColumnCount === void 0 && (e.fixedRightColumnCount = 0), e.rowCheckboxVisible === void 0 && (e.rowCheckboxVisible = !1), e.overridingColumnWidth === void 0 && (e.overridingColumnWidth = -1), !e.getSelectionModel && ((p = e.tableOptions) != null && p.getSelectionModel) && (e.getSelectionModel = (m = e.tableOptions) == null ? void 0 : m.getSelectionModel), new le(
6879
+ return e.fixedLeftColumnCount === void 0 && (e.fixedLeftColumnCount = 0), e.fixedRightColumnCount === void 0 && (e.fixedRightColumnCount = 0), e.rowCheckboxVisible === void 0 && (e.rowCheckboxVisible = !1), e.overridingColumnWidth === void 0 && (e.overridingColumnWidth = -1), !e.getSelectionModel && ((p = e.tableOptions) != null && p.getSelectionModel) && (e.getSelectionModel = (m = e.tableOptions) == null ? void 0 : m.getSelectionModel), new ae(
6712
6880
  e.headerAreaModel,
6713
6881
  e.bodyAreaModel,
6714
6882
  e.footerAreaModel,
@@ -6742,7 +6910,7 @@ class $ {
6742
6910
  * @method
6743
6911
  */
6744
6912
  static buildByTypedRowsParam(e) {
6745
- return $.buildByTypedRows(
6913
+ return H.buildByTypedRows(
6746
6914
  e.rows ?? [],
6747
6915
  e.columnDefs,
6748
6916
  e.tableOptions ?? new J(),
@@ -6789,13 +6957,13 @@ class $ {
6789
6957
  static buildByTypedRows(e, t, s = new J(), o = 0, i = 0) {
6790
6958
  const r = s.defaultRowHeights, n = t[0].property === "CheckboxColumn";
6791
6959
  if (e != null && e.length && j(e[0])) {
6792
- const a = e, c = new te(
6960
+ const a = e, c = new se(
6793
6961
  "body",
6794
6962
  a,
6795
6963
  r.body,
6796
6964
  t
6797
6965
  );
6798
- return (n || s.showCheckboxWihoutExtraColumn) && (c.rowSelectionModel = new ke(a)), $.createByAreaModelsParam({
6966
+ return (n || s.showCheckboxWihoutExtraColumn) && (c.rowSelectionModel = new De(a)), H.createByAreaModelsParam({
6799
6967
  headerAreaModel: new F("header", [t.map((h) => h.headerLabel)], r.header),
6800
6968
  bodyAreaModel: c,
6801
6969
  footerAreaModel: new F("footer", [], r.footer),
@@ -6809,7 +6977,7 @@ class $ {
6809
6977
  overridingColumnWidth: -1
6810
6978
  });
6811
6979
  }
6812
- return $.createByObjectArrayParam({
6980
+ return H.createByObjectArrayParam({
6813
6981
  rows: e,
6814
6982
  columnDefs: t,
6815
6983
  fixedLeftColumnCount: o,
@@ -6863,7 +7031,7 @@ class $ {
6863
7031
  */
6864
7032
  static createByObjectArrayParam(e) {
6865
7033
  const t = e.rowCheckboxVisible !== void 0 ? e.rowCheckboxVisible : !1;
6866
- return $.createByObjectArray(
7034
+ return H.createByObjectArray(
6867
7035
  e.rows,
6868
7036
  e.header ?? [],
6869
7037
  e.footer ?? [],
@@ -6917,7 +7085,7 @@ class $ {
6917
7085
  * If a parameter isn't provided, the default value is used.
6918
7086
  */
6919
7087
  static createByAreaModels(e = new P(), t, s = new P(), o = 0, i = 0, r = !1, n = new Y(), l, a = [], c = -1, h) {
6920
- return new le(
7088
+ return new ae(
6921
7089
  e,
6922
7090
  t,
6923
7091
  s,
@@ -6968,7 +7136,7 @@ class $ {
6968
7136
  * });
6969
7137
  */
6970
7138
  static createByAreaModelsParam(e) {
6971
- return $.createByAreaModels(
7139
+ return H.createByAreaModels(
6972
7140
  e.headerAreaModel ?? new P(),
6973
7141
  e.bodyAreaModel,
6974
7142
  e.footerAreaModel ?? new P(),
@@ -7032,9 +7200,9 @@ class $ {
7032
7200
  */
7033
7201
  static createByObjectArray(e, t = [], s = [], o = 0, i = 0, r = !1, n = new Y(), l, a = []) {
7034
7202
  let c;
7035
- t != null && t.length ? c = new F("header", t, n.header, l) : l != null && l.length ? c = new F("header", [l.map((f) => f.headerLabel)], n.header, l) : c = new P();
7036
- const h = s ? new F("footer", s, n.footer, l) : new P(), u = new De("body", e, l, n.body);
7037
- return new le(
7203
+ t != null && t.length ? c = new F("header", t, n.header, l) : l != null && l.length ? c = new F("header", [l.map((g) => g.headerLabel)], n.header, l) : c = new P();
7204
+ const h = s ? new F("footer", s, n.footer, l) : new P(), u = new Fe("body", e, l, n.body);
7205
+ return new ae(
7038
7206
  c,
7039
7207
  u,
7040
7208
  h,
@@ -7047,9 +7215,9 @@ class $ {
7047
7215
  );
7048
7216
  }
7049
7217
  }
7050
- class Ft {
7218
+ class _t {
7051
7219
  constructor(e, t, s = 200, o = 300, i = 0, r = 0) {
7052
- this.items = e, this.cellRenderer = t, this.coverWidth = s, this.coverHeight = o, this.width = i, this.firstRowPaddingTop = r, this.rowSelectionModel = void 0, this.areaIdent = "body", this.filteredItems = [], this.sorterService = new ye(), this.filteredItems = e;
7220
+ this.items = e, this.cellRenderer = t, this.coverWidth = s, this.coverHeight = o, this.width = i, this.firstRowPaddingTop = r, this.rowSelectionModel = void 0, this.areaIdent = "body", this.filteredItems = [], this.sorterService = new we(), this.filteredItems = e;
7053
7221
  }
7054
7222
  setParentWidth(e) {
7055
7223
  this.width = e;
@@ -7143,7 +7311,7 @@ class Ft {
7143
7311
  arrayMove(e, t, s) {
7144
7312
  }
7145
7313
  }
7146
- class Pt {
7314
+ class Lt {
7147
7315
  constructor(e, t = 0) {
7148
7316
  this.bodyModel = e, this.paddingTop = t, this.headerAreaModel = new P(), this.footerAreaModel = new P();
7149
7317
  }
@@ -7210,7 +7378,7 @@ class Pt {
7210
7378
  recalcHeightAndPadding() {
7211
7379
  }
7212
7380
  getPadding() {
7213
- return new ue(0, 0, 0, 0);
7381
+ return new pe(0, 0, 0, 0);
7214
7382
  }
7215
7383
  getContentHeightInPixel() {
7216
7384
  return this.paddingTop + this.bodyModel.getRowCount() * this.bodyModel.coverHeight;
@@ -7236,7 +7404,7 @@ class Pt {
7236
7404
  return this.tableScope;
7237
7405
  }
7238
7406
  }
7239
- class _t {
7407
+ class Vt {
7240
7408
  constructor() {
7241
7409
  this.autoRestoreSortingState = !1, this.autoRestoreCollapsedExpandedState = !1, this.autoRestoreScrollPosition = !1, this.autoRestoreCheckedState = !1, this.autoRestoreSelectedState = !1, this.getStorageKeyFn = void 0, this.isSame = (e, t, s) => {
7242
7410
  if (e && t && s.getRowId) {
@@ -7261,10 +7429,10 @@ class _t {
7261
7429
  };
7262
7430
  }
7263
7431
  }
7264
- class Is {
7432
+ class Es {
7265
7433
  static createCoverGridModel(e, t, s = 200, o = 300, i = 0, r = 0) {
7266
- const n = new Ft(e, t, s, o, i, r);
7267
- return new Pt(n, r);
7434
+ const n = new _t(e, t, s, o, i, r);
7435
+ return new Lt(n, r);
7268
7436
  }
7269
7437
  static createCoverGrisDefaultOptions(e, t = () => "CoverGrid") {
7270
7438
  return {
@@ -7286,7 +7454,7 @@ class Is {
7286
7454
  },
7287
7455
  // externalFilterFunction: this.filterFn.bind(this),
7288
7456
  autoRestoreOptions: {
7289
- ...new _t(),
7457
+ ...new Vt(),
7290
7458
  getStorageKeyFn: t,
7291
7459
  autoRestoreCollapsedExpandedState: !1,
7292
7460
  autoRestoreScrollPosition: !0,
@@ -7296,7 +7464,7 @@ class Is {
7296
7464
  };
7297
7465
  }
7298
7466
  }
7299
- const Es = [
7467
+ const ks = [
7300
7468
  "COPY_2_CLIPBOARD",
7301
7469
  "START_EDITING",
7302
7470
  "TOGGLE_SELECTION",
@@ -7314,17 +7482,17 @@ const Es = [
7314
7482
  // "PAGEUP_PRESSED",
7315
7483
  // "PAGEDOWN_PRESSED"
7316
7484
  ];
7317
- class Lt {
7485
+ class Ot {
7318
7486
  constructor(e, t) {
7319
7487
  this.tableModel = e, this.tableOptions = t;
7320
7488
  }
7321
7489
  }
7322
- class Ot {
7490
+ class $t {
7323
7491
  constructor(e, t, s, o, i, r, n) {
7324
7492
  this.emmitDataKey = e, this.emmitCancelKey = t, this.queryId = s, this.filter = o, this.sorting = i, this.startIndex = r, this.endIndex = n;
7325
7493
  }
7326
7494
  }
7327
- class Ts extends Ot {
7495
+ class Ds extends $t {
7328
7496
  constructor(e, t, s, o, i, r, n, l) {
7329
7497
  super(
7330
7498
  e,
@@ -7337,30 +7505,30 @@ class Ts extends Ot {
7337
7505
  ), this.rows = l;
7338
7506
  }
7339
7507
  }
7340
- class Vt {
7508
+ class Ht {
7341
7509
  constructor(e, t) {
7342
7510
  this.value = e, this.label = t;
7343
7511
  }
7344
7512
  }
7345
- class ks {
7513
+ class Fs {
7346
7514
  constructor(e, t) {
7347
7515
  this.index = e, this.px = t;
7348
7516
  }
7349
7517
  }
7350
- const Ds = { body: ["ge-table-text-align-left"] }, Fs = { body: ["ge-table-text-align-center"] }, Ps = { body: ["ge-table-text-align-right"] }, _s = {
7518
+ const Ps = { body: ["ge-table-text-align-left"] }, _s = { body: ["ge-table-text-align-center"] }, Ls = { body: ["ge-table-text-align-right"] }, Vs = {
7351
7519
  header: ["ge-table-text-align-left"],
7352
7520
  body: ["ge-table-text-align-left"],
7353
7521
  footer: ["ge-table-text-align-left"]
7354
- }, Ls = {
7522
+ }, Os = {
7355
7523
  header: ["ge-table-text-align-center"],
7356
7524
  body: ["ge-table-text-align-center"],
7357
7525
  footer: ["ge-table-text-align-center"]
7358
- }, Os = {
7526
+ }, $s = {
7359
7527
  header: ["ge-table-text-align-right"],
7360
7528
  body: ["ge-table-text-align-right"],
7361
7529
  footer: ["ge-table-text-align-right"]
7362
7530
  };
7363
- class Fe {
7531
+ class Pe {
7364
7532
  render(e, t, s, o, i, r, n) {
7365
7533
  if (i.isRowCheckable(t)) {
7366
7534
  n.addClass(e, "ge-table-row-checkbox-div");
@@ -7378,16 +7546,16 @@ class Fe {
7378
7546
  }
7379
7547
  }
7380
7548
  }
7381
- class Vs {
7549
+ class Hs {
7382
7550
  constructor() {
7383
- this.type = "CheckboxColumnDef", this.property = "CheckboxColumn", this.headerLabel = "", this.width = new b(50, "px"), this.minWidth = new b(50, "px"), this.maxWidth = new b(100, "px"), this.rendererMap = new T(new Fe(), new Fe(), void 0), this.classes = new T(
7551
+ this.type = "CheckboxColumnDef", this.property = "CheckboxColumn", this.headerLabel = "", this.width = new y(50, "px"), this.minWidth = new y(50, "px"), this.maxWidth = new y(100, "px"), this.rendererMap = new k(new Pe(), new Pe(), void 0), this.classes = new k(
7384
7552
  [],
7385
7553
  ["ge-table-text-align-left"],
7386
7554
  []
7387
7555
  );
7388
7556
  }
7389
7557
  }
7390
- class Hs {
7558
+ class Bs {
7391
7559
  /**
7392
7560
  * A factory that creates a new AreaObjectMap with the given body renderer.
7393
7561
  *
@@ -7395,29 +7563,29 @@ class Hs {
7395
7563
  * @returns {AreaObjectMap<CellRendererIf>} The newly created AreaObjectMap.
7396
7564
  */
7397
7565
  static body(e) {
7398
- return new T(
7566
+ return new k(
7399
7567
  void 0,
7400
7568
  e,
7401
7569
  void 0
7402
7570
  );
7403
7571
  }
7404
7572
  }
7405
- class $s {
7573
+ class Ws {
7406
7574
  constructor(e = "down", t) {
7407
7575
  this.status = e, this.originalEvent = t;
7408
7576
  }
7409
7577
  }
7410
- class Bs {
7578
+ class Ns {
7411
7579
  constructor(e, t, s, o, i = {}) {
7412
7580
  this.area = e, this.rowIndex = t, this.columnIndex = s, this.value = o, this.cssClasses = i;
7413
7581
  }
7414
7582
  }
7415
- class Ht {
7583
+ class Bt {
7416
7584
  constructor(e, t, s, o = !1, i = "normal", r = void 0) {
7417
7585
  this.data = e, this.property = t, this.toggle = s, this.closed = o, this.visibility = i, this.children = r, this.impl = "CellGroup";
7418
7586
  }
7419
7587
  }
7420
- class $t extends Ht {
7588
+ class Wt extends Bt {
7421
7589
  constructor(e, t = 0, s = 0, o) {
7422
7590
  super(
7423
7591
  e.data,
@@ -7542,7 +7710,7 @@ class E {
7542
7710
  static buildGroupExts(e, t = [], s = 0, o) {
7543
7711
  let i;
7544
7712
  for (let r = 0; r < e.length; r++) {
7545
- const n = e[r], l = new $t(n, s, r, o);
7713
+ const n = e[r], l = new Wt(n, s, r, o);
7546
7714
  i && (l.leftNeighbour = i, i.rightNeighbour = l), t.push(l), n.children && (l.children = E.buildGroupExts(n.children, [], s + 1, l)), i = l;
7547
7715
  }
7548
7716
  return t;
@@ -7584,7 +7752,7 @@ class E {
7584
7752
  e.push(o.data + " rowIndex:" + o.rowIndex), (s = o.children) != null && s.length && E.iterateThrowColumns(e, o.children);
7585
7753
  }
7586
7754
  }
7587
- class Ws {
7755
+ class Gs {
7588
7756
  constructor() {
7589
7757
  this.areaIdent = "body", this.rowSelectionModel = void 0;
7590
7758
  }
@@ -8222,14 +8390,14 @@ class Ws {
8222
8390
  return !1;
8223
8391
  }
8224
8392
  }
8225
- const ie = class ie {
8226
- constructor(e = new Ce()) {
8393
+ const re = class re {
8394
+ constructor(e = new ve()) {
8227
8395
  this.headerGroupOptions = e;
8228
8396
  }
8229
8397
  render(e, t, s, o, i, r, n) {
8230
8398
  const l = r != null && r.data ? r.data : "";
8231
8399
  if (r) {
8232
- const { toggle: a, visibility: c, closed: h } = r, u = a ? ie.toggleHeaderGroup : "";
8400
+ const { toggle: a, visibility: c, closed: h } = r, u = a ? re.toggleHeaderGroup : "";
8233
8401
  this.addText(e, o, t, s, l, u), a && c !== "always" && this.addArrowDiv(n, e, !h, t, s, o, u);
8234
8402
  } else
8235
8403
  this.addText(e, o, t, s, l, "");
@@ -8261,11 +8429,11 @@ const ie = class ie {
8261
8429
  }
8262
8430
  }
8263
8431
  };
8264
- ie.toggleHeaderGroup = "toggleHeaderGroup";
8265
- let pe = ie;
8266
- class Ns {
8267
- constructor(e = "header", t, s = [], o, i = new Ce()) {
8268
- this.areaIdent = e, this.groups = t, this.columnDefs = s, this.defaultRowHeight = o, this.headerGroupOptions = i, this.gammaCells = !0, this.arr = [], this.groupExts = [], this.cellGroupExtCellRenderer = new pe(this.headerGroupOptions), this.groupExts = E.buildGroupExts(t), this.init();
8432
+ re.toggleHeaderGroup = "toggleHeaderGroup";
8433
+ let ge = re;
8434
+ class zs {
8435
+ constructor(e = "header", t, s = [], o, i = new ve()) {
8436
+ this.areaIdent = e, this.groups = t, this.columnDefs = s, this.defaultRowHeight = o, this.headerGroupOptions = i, this.gammaCells = !0, this.arr = [], this.groupExts = [], this.cellGroupExtCellRenderer = new ge(this.headerGroupOptions), this.groupExts = E.buildGroupExts(t), this.init();
8269
8437
  }
8270
8438
  sort(e) {
8271
8439
  }
@@ -8362,10 +8530,15 @@ class Ns {
8362
8530
  }
8363
8531
  toggleHeaderGroup(e) {
8364
8532
  const t = this.arr[e.rowIdx][e.colIdx];
8365
- return t != null && t.toggle && t.visibility !== "always" && (t.closed = !t.closed, this.init()), E.buildColumnDefs(this.groupExts);
8533
+ t != null && t.toggle && t.visibility !== "always" && (t.closed = !t.closed, this.init());
8534
+ const s = E.buildColumnDefs(this.groupExts), o = new Map(this.columnDefs.map((r) => [r.property, r])), i = s.map((r) => {
8535
+ const n = o.get(r.property);
8536
+ return n ? (n.isVisible = r.isVisible, n) : r;
8537
+ });
8538
+ return this.columnDefs = i, i;
8366
8539
  }
8367
8540
  }
8368
- class Gs {
8541
+ class js {
8369
8542
  filterPredict(e, t, s = this.objectToString.bind(this)) {
8370
8543
  if (!e)
8371
8544
  return !1;
@@ -8419,12 +8592,12 @@ class Gs {
8419
8592
  return t.join(" ").toLowerCase();
8420
8593
  }
8421
8594
  }
8422
- class zs {
8595
+ class Us {
8423
8596
  static bodyRenderer(e) {
8424
- return new T(void 0, e, void 0);
8597
+ return new k(void 0, e, void 0);
8425
8598
  }
8426
8599
  }
8427
- class js {
8600
+ class Ys {
8428
8601
  constructor(e, t = !0, s = !1) {
8429
8602
  this.property = e, this.skipCheckableCheck = t, this.readonly = s;
8430
8603
  }
@@ -8444,17 +8617,17 @@ class js {
8444
8617
  ${h}
8445
8618
  class="ge-input-checkbox">`, !this.readonly) {
8446
8619
  const u = e.querySelector(".ge-input-checkbox");
8447
- u && u.addEventListener("click", (f, p) => (l[this.property] = !l[this.property], !0));
8620
+ u && u.addEventListener("click", (g, p) => (l[this.property] = !l[this.property], !0));
8448
8621
  }
8449
8622
  }
8450
8623
  }
8451
8624
  }
8452
- class Us {
8625
+ class Xs {
8453
8626
  render(e, t, s, o, i, r, n) {
8454
8627
  r && (e.innerText = new Date(r).toISOString());
8455
8628
  }
8456
8629
  }
8457
- class Ys {
8630
+ class Ks {
8458
8631
  constructor() {
8459
8632
  this.formatter = new Intl.DateTimeFormat("de-DE", {
8460
8633
  year: "numeric",
@@ -8477,17 +8650,17 @@ class Ys {
8477
8650
  }
8478
8651
  }
8479
8652
  }
8480
- class Xs {
8653
+ class Js {
8481
8654
  render(e, t, s, o, i, r, n) {
8482
8655
  r && (e.innerText = new Date(r).toLocaleDateString());
8483
8656
  }
8484
8657
  }
8485
- class Ks {
8658
+ class qs {
8486
8659
  render(e, t, s, o, i, r, n) {
8487
8660
  r === "male" || r === "m" ? e.innerText = "♂" : (r === "female" || r === "f") && (e.innerText = "♀");
8488
8661
  }
8489
8662
  }
8490
- class Js {
8663
+ class Zs {
8491
8664
  constructor(e = 100, t = !1) {
8492
8665
  this.maxValue = e, this.labelVisible = t;
8493
8666
  }
@@ -8517,17 +8690,17 @@ class Js {
8517
8690
  }
8518
8691
  }
8519
8692
  }
8520
- class qs {
8693
+ class Qs {
8521
8694
  render(e, t, s, o, i, r, n) {
8522
8695
  r === "true" || r === !0 ? e.innerHTML = '<span class="ge-true-text-color">✅</span>' : r === "false" || r === !1 ? e.innerHTML = '<span class="ge-false-text-color">❌</span>' : e.innerText = "";
8523
8696
  }
8524
8697
  }
8525
- class Zs {
8698
+ class eo {
8526
8699
  render(e, t, s, o, i, r, n) {
8527
8700
  r && (e.innerText = new Date(r).toISOString().replace(/T/g, " ").replace(/\..*/g, ""));
8528
8701
  }
8529
8702
  }
8530
- class Qs {
8703
+ class to {
8531
8704
  constructor(e = Number.MIN_SAFE_INTEGER, t = Number.MAX_SAFE_INTEGER) {
8532
8705
  this.min = e, this.max = t;
8533
8706
  }
@@ -8538,7 +8711,7 @@ class Qs {
8538
8711
  </div>`, (typeof r == "string" || isNaN(r) || r < this.min || r > this.max) && n.addClass(e, "ge-cell-error"));
8539
8712
  }
8540
8713
  }
8541
- class eo {
8714
+ class so {
8542
8715
  constructor(e) {
8543
8716
  this.property = e;
8544
8717
  }
@@ -8557,7 +8730,7 @@ class eo {
8557
8730
  }
8558
8731
  }
8559
8732
  }
8560
- class to {
8733
+ class oo {
8561
8734
  render(e, t, s, o, i, r, n) {
8562
8735
  if (r != null && r.length) {
8563
8736
  const l = n.createElement("div");
@@ -8570,7 +8743,7 @@ class to {
8570
8743
  e.innerText = "";
8571
8744
  }
8572
8745
  }
8573
- class so {
8746
+ class io {
8574
8747
  constructor(e, t = 100, s = !1) {
8575
8748
  this.property = e, this.maxValue = t, this.labelVisible = s;
8576
8749
  }
@@ -8602,7 +8775,7 @@ class so {
8602
8775
  }
8603
8776
  }
8604
8777
  }
8605
- class oo {
8778
+ class ro {
8606
8779
  render(e, t, s, o, i, r, n) {
8607
8780
  if (r) {
8608
8781
  e.innerHTML = `
@@ -8622,17 +8795,17 @@ class oo {
8622
8795
  }
8623
8796
  }
8624
8797
  }
8625
- class Ge {
8798
+ class ze {
8626
8799
  constructor(e, t, s, o, i, r) {
8627
8800
  this.action = e, this.area = t, this.areaModel = s, this.rowIndex = o, this.columnIndex = i, this.id = r;
8628
8801
  }
8629
8802
  }
8630
- class H {
8803
+ class $ {
8631
8804
  constructor(e, t, s = "", o = "", i = "button", r = !0) {
8632
8805
  this.action = e, this.label = t, this.icon = s, this.elementClass = o, this.elementType = i, this.enabled = r;
8633
8806
  }
8634
8807
  }
8635
- class Bt {
8808
+ class Nt {
8636
8809
  constructor(e, t) {
8637
8810
  this.actionEventListener = e, this.crudActions = t;
8638
8811
  }
@@ -8688,25 +8861,25 @@ class Bt {
8688
8861
  createActionEvent(e, t) {
8689
8862
  const s = e.getAttribute("data-area"), o = e.getAttribute("data-row-index"), i = e.getAttribute("data-col-index"), r = e.getAttribute("data-action") ?? "unknown", n = e.getAttribute("data-id") ?? "unknown";
8690
8863
  if (s && o && i) {
8691
- const l = re(s), a = Number(o), c = Number(i);
8692
- return new Ge(r, l, t, a, c, n);
8864
+ const l = ne(s), a = Number(o), c = Number(i);
8865
+ return new ze(r, l, t, a, c, n);
8693
8866
  }
8694
8867
  return null;
8695
8868
  }
8696
8869
  getCrudActions(e) {
8697
- return Array.isArray(e) && e.every((t) => t instanceof H) ? e : this.crudActions;
8870
+ return Array.isArray(e) && e.every((t) => t instanceof $) ? e : this.crudActions;
8698
8871
  }
8699
8872
  }
8700
- const io = function(d, e, t) {
8873
+ const no = function(d, e, t) {
8701
8874
  return d ? Number(d) : "";
8702
8875
  };
8703
- class ze {
8876
+ class je {
8704
8877
  constructor(e) {
8705
8878
  this.options = e;
8706
8879
  }
8707
8880
  static create(e) {
8708
- return new ze(
8709
- e.map((t) => new Vt(t, t))
8881
+ return new je(
8882
+ e.map((t) => new Ht(t, t))
8710
8883
  );
8711
8884
  }
8712
8885
  render(e, t, s, o, i, r, n) {
@@ -8732,7 +8905,7 @@ class ze {
8732
8905
  }
8733
8906
  }
8734
8907
  }
8735
- class ro extends Se {
8908
+ class lo extends Ce {
8736
8909
  constructor(e) {
8737
8910
  super("row", "multi"), this.model = e;
8738
8911
  }
@@ -8815,39 +8988,39 @@ class ro extends Se {
8815
8988
  this.isSelected(e, 0) ? this.unselectRow(e) : this.selectRow(e);
8816
8989
  }
8817
8990
  }
8818
- class no {
8991
+ class ao {
8819
8992
  constructor(e, t, s) {
8820
8993
  this.r = e, this.g = t, this.b = s;
8821
8994
  }
8822
8995
  }
8823
- class Pe {
8996
+ class _e {
8824
8997
  constructor(e, t, s, o) {
8825
8998
  this.minValue = e, this.minColor = t, this.maxValue = s, this.maxColor = o;
8826
8999
  }
8827
9000
  }
8828
- class q {
9001
+ class Z {
8829
9002
  static normalize(e, t, s, o = 0, i = 1) {
8830
9003
  return (e - t) / (s - t) * (i - o) + o;
8831
9004
  }
8832
9005
  static getTwoColorGradientRGB(e, t) {
8833
- const s = q.normalize(e, t.minValue, t.maxValue, 0, 1), o = t.maxColor.r - t.minColor.r, i = t.maxColor.g - t.minColor.g, r = t.maxColor.b - t.minColor.b, n = o * s + t.minColor.r, l = i * s + t.minColor.g, a = r * s + t.minColor.b;
9006
+ const s = Z.normalize(e, t.minValue, t.maxValue, 0, 1), o = t.maxColor.r - t.minColor.r, i = t.maxColor.g - t.minColor.g, r = t.maxColor.b - t.minColor.b, n = o * s + t.minColor.r, l = i * s + t.minColor.g, a = r * s + t.minColor.b;
8834
9007
  return `rgb(${Math.round(n)}, ${Math.round(l)}, ${Math.round(a)})`;
8835
9008
  }
8836
9009
  static getThreeColorGradientRGB(e, t) {
8837
- return e < t.middleValue ? q.getTwoColorGradientRGB(e, new Pe(t.minValue, t.minColor, t.middleValue, t.middleColor)) : e > t.middleValue ? q.getTwoColorGradientRGB(e, new Pe(t.middleValue, t.middleColor, t.maxValue, t.maxColor)) : `rgb(${t.middleColor.r}, ${t.middleColor.g}, ${t.middleColor.b})`;
9010
+ return e < t.middleValue ? Z.getTwoColorGradientRGB(e, new _e(t.minValue, t.minColor, t.middleValue, t.middleColor)) : e > t.middleValue ? Z.getTwoColorGradientRGB(e, new _e(t.middleValue, t.middleColor, t.maxValue, t.maxColor)) : `rgb(${t.middleColor.r}, ${t.middleColor.g}, ${t.middleColor.b})`;
8838
9011
  }
8839
9012
  }
8840
- class lo {
9013
+ class co {
8841
9014
  constructor(e, t, s, o, i, r) {
8842
9015
  this.minValue = e, this.minColor = t, this.middleValue = s, this.middleColor = o, this.maxValue = i, this.maxColor = r;
8843
9016
  }
8844
9017
  }
8845
- class Wt {
9018
+ class Gt {
8846
9019
  constructor(e = !0, t = !0, s = (r, n) => r * 10 + 10, o = 50, i = 450) {
8847
9020
  this.autoCalc = e, this.takeHeaderLabelsIntoAccount = t, this.charCountToWidth = s, this.minWidth = o, this.maxWidth = i;
8848
9021
  }
8849
9022
  }
8850
- class Nt {
9023
+ class zt {
8851
9024
  constructor(e) {
8852
9025
  this.object = e;
8853
9026
  }
@@ -8898,7 +9071,7 @@ class Nt {
8898
9071
  return s.join("");
8899
9072
  }
8900
9073
  }
8901
- class ae {
9074
+ class ce {
8902
9075
  constructor(e, t, s = "Edit Item") {
8903
9076
  this.idKey = e, this.dialogTitle = s, this.object = { ...t };
8904
9077
  }
@@ -8979,7 +9152,7 @@ class ae {
8979
9152
  return e.replace(/\./g, " ");
8980
9153
  }
8981
9154
  }
8982
- class Gt {
9155
+ class jt {
8983
9156
  constructor() {
8984
9157
  this.urls = {
8985
9158
  list: {
@@ -8987,15 +9160,15 @@ class Gt {
8987
9160
  method: "GET"
8988
9161
  }
8989
9162
  }, this.singleRowActions = [
8990
- new H("VIEW", "View", "", "", "link"),
8991
- new H("EDIT", "Edit", "", "", "link"),
8992
- new H("CLONE", "Clone", "", "", "link"),
8993
- new H("DELETE", "Delete", "", "", "link")
9163
+ new $("VIEW", "View", "", "", "link"),
9164
+ new $("EDIT", "Edit", "", "", "link"),
9165
+ new $("CLONE", "Clone", "", "", "link"),
9166
+ new $("DELETE", "Delete", "", "", "link")
8994
9167
  // new CrudAction('CREATE', 'Create', '', '', 'link'),
8995
9168
  ], this.tableActions = [
8996
- new H("CREATE", "Create", "", "", "button"),
8997
- new H("DELETE_SELECTED", "Delete Selected", "", "", "button")
8998
- ], this.autoAddActionColumn = !0, this.columnWidths = new Wt(), this.calcFixedRightColumnCount = (e) => e > 6 ? 1 : 0, this.getHeadersInit = () => ({}), this.getIdKey = () => "id", this.getIdByObject = (e) => (this.getIdKey() ?? "id") in e ? e.id : e, this.fetchList = (e) => {
9169
+ new $("CREATE", "Create", "", "", "button"),
9170
+ new $("DELETE_SELECTED", "Delete Selected", "", "", "button")
9171
+ ], this.autoAddActionColumn = !0, this.columnWidths = new Gt(), this.calcFixedRightColumnCount = (e) => e > 6 ? 1 : 0, this.getHeadersInit = () => ({}), this.getIdKey = () => "id", this.getIdByObject = (e) => (this.getIdKey() ?? "id") in e ? e.id : e, this.fetchList = (e) => {
8999
9172
  const t = e.getHeadersInit ? e.getHeadersInit() : {};
9000
9173
  let s = e.urls.list.url, o = e.urls.list.method ?? "GET";
9001
9174
  return fetch(s, {
@@ -9046,9 +9219,9 @@ class Gt {
9046
9219
  };
9047
9220
  }
9048
9221
  }
9049
- class ao {
9222
+ class ho {
9050
9223
  constructor() {
9051
- this.crudOptions = new Gt(), this.listenActionEvent = (e) => {
9224
+ this.crudOptions = new jt(), this.listenActionEvent = (e) => {
9052
9225
  };
9053
9226
  }
9054
9227
  createTableModel(e, t, s = (i) => {
@@ -9057,48 +9230,48 @@ class ao {
9057
9230
  this.crudOptions = e, this.listenActionEvent = o, e.fetchList(e).then((i) => {
9058
9231
  var r, n, l, a;
9059
9232
  if (t.rows = i, i != null && i.length) {
9060
- const c = (r = t.columnDefs) != null && r.length ? t.columnDefs.map((x) => x.property) : this.extractProperties(i[0]), h = new Se("row", "multi"), u = () => h;
9233
+ const c = (r = t.columnDefs) != null && r.length ? t.columnDefs.map((w) => w.property) : this.extractProperties(i[0]), h = new Ce("row", "multi"), u = () => h;
9061
9234
  this.tableOptions = {
9062
9235
  ...new J(),
9063
9236
  ...t.tableOptions,
9064
9237
  hoverColumnVisible: !1,
9065
9238
  getSelectionModel: u
9066
9239
  };
9067
- const f = this.calcAutoColumnWidths(i, c), p = (n = t.columnDefs) != null && n.length ? t.columnDefs : c.map(((x, A) => new W(x, x.toUpperCase(), new b(f[A], "px"))));
9240
+ const g = this.calcAutoColumnWidths(i, c), p = (n = t.columnDefs) != null && n.length ? t.columnDefs : c.map(((w, v) => new W(w, w.toUpperCase(), new y(g[v], "px"))));
9068
9241
  if ((l = e == null ? void 0 : e.columnWidths) != null && l.autoCalc)
9069
- for (let x = 0; x < p.length; x++) {
9070
- const A = p[x];
9071
- A.width = new b(f[x], "px");
9242
+ for (let w = 0; w < p.length; w++) {
9243
+ const v = p[w];
9244
+ v.width = new y(g[w], "px");
9072
9245
  }
9073
9246
  if (e.autoAddActionColumn) {
9074
- let x = new W(
9247
+ let w = new W(
9075
9248
  "id",
9076
9249
  "Actions",
9077
- Tt,
9078
- new T(["ge-table-text-align-left"], ["ge-table-text-align-left ge-table-actions-cell"], void 0)
9250
+ Dt,
9251
+ new k(["ge-table-text-align-left"], ["ge-table-text-align-left ge-table-actions-cell"], void 0)
9079
9252
  );
9080
- x.rendererMap = new T(
9253
+ w.rendererMap = new k(
9081
9254
  void 0,
9082
- new Bt(this, e.singleRowActions),
9255
+ new Nt(this, e.singleRowActions),
9083
9256
  void 0
9084
- ), p.push(x);
9257
+ ), p.push(w);
9085
9258
  }
9086
- const m = 0, g = e.calcFixedRightColumnCount(p.length);
9087
- this.tableModel = $.buildByTypedRowsParam({
9259
+ const m = 0, f = e.calcFixedRightColumnCount(p.length);
9260
+ this.tableModel = H.buildByTypedRowsParam({
9088
9261
  rows: i,
9089
9262
  columnDefs: p,
9090
9263
  tableOptions: this.tableOptions,
9091
9264
  fixedLeftColumnCount: m,
9092
- fixedRightColumnCount: g
9265
+ fixedRightColumnCount: f
9093
9266
  }), this.tableModel.getSelectionModel = u, this.bodyModel = (a = this.tableModel) == null ? void 0 : a.getBodyModel();
9094
- const y = new Lt(this.tableModel, this.tableOptions);
9095
- s(y);
9267
+ const b = new Ot(this.tableModel, this.tableOptions);
9268
+ s(b);
9096
9269
  }
9097
9270
  });
9098
9271
  }
9099
9272
  openDialogForCreate() {
9100
9273
  if (this.bodyModel) {
9101
- const e = new Ge("CREATE", "body", this.bodyModel, -1, -1, null);
9274
+ const e = new ze("CREATE", "body", this.bodyModel, -1, -1, null);
9102
9275
  this.onActionEvent(e);
9103
9276
  }
9104
9277
  }
@@ -9106,11 +9279,11 @@ class ao {
9106
9279
  var t, s, o, i;
9107
9280
  if (this.listenActionEvent && this.listenActionEvent(e), e.action === "VIEW") {
9108
9281
  let r = e.id;
9109
- (t = this.crudOptions) == null || t.fetchItem(this.crudOptions, r).then((n) => (console.info(n), new Nt(n).openDialog(), n));
9282
+ (t = this.crudOptions) == null || t.fetchItem(this.crudOptions, r).then((n) => (console.info(n), new zt(n).openDialog(), n));
9110
9283
  } else if (e.action === "EDIT") {
9111
9284
  let r = e.id;
9112
9285
  const n = this.crudOptions.getIdKey() ?? "id";
9113
- (s = this.crudOptions) == null || s.fetchItem(this.crudOptions, r).then((l) => (console.info(l), new ae(
9286
+ (s = this.crudOptions) == null || s.fetchItem(this.crudOptions, r).then((l) => (console.info(l), new ce(
9114
9287
  n,
9115
9288
  l
9116
9289
  ).openDialog((a) => {
@@ -9121,7 +9294,7 @@ class ao {
9121
9294
  const n = this.crudOptions.getIdKey() ?? "id";
9122
9295
  (o = this.crudOptions) == null || o.fetchItem(this.crudOptions, r).then((l) => {
9123
9296
  const a = JSON.parse(JSON.stringify(l));
9124
- return new ae(
9297
+ return new ce(
9125
9298
  n,
9126
9299
  a,
9127
9300
  "Clone Item"
@@ -9131,7 +9304,7 @@ class ao {
9131
9304
  });
9132
9305
  } else if (e.action === "CREATE") {
9133
9306
  const r = this.crudOptions.getIdKey() ?? "id", n = JSON.parse(JSON.stringify(this.crudOptions.getEmptyItem()));
9134
- return new ae(
9307
+ return new ce(
9135
9308
  r,
9136
9309
  n,
9137
9310
  "Create Item"
@@ -9142,7 +9315,7 @@ class ao {
9142
9315
  let r = e.id;
9143
9316
  (i = this.crudOptions) == null || i.deleteItem(this.crudOptions, r).then((n) => {
9144
9317
  var l, a, c, h, u;
9145
- return (l = this.bodyModel) == null || l.filterRowsByPredict((f) => f.id != r), (c = (a = this.tableModel) == null ? void 0 : a.getTableScope()) == null || c.clearSelection(!0), (u = (h = this.tableModel) == null ? void 0 : h.getTableScope()) == null || u.repaintHard(), n;
9318
+ return (l = this.bodyModel) == null || l.filterRowsByPredict((g) => g.id != r), (c = (a = this.tableModel) == null ? void 0 : a.getTableScope()) == null || c.clearSelection(!0), (u = (h = this.tableModel) == null ? void 0 : h.getTableScope()) == null || u.repaintHard(), n;
9146
9319
  });
9147
9320
  }
9148
9321
  }
@@ -9154,7 +9327,7 @@ class ao {
9154
9327
  const i = e.length ?? 0, r = new Array(o).fill(0);
9155
9328
  for (let c = 0; c < i; c++)
9156
9329
  for (let h = 0; h < o; h++) {
9157
- const u = t[h], f = this.getValueByT(e[c], u), p = (f == null ? void 0 : f.toString().length) || 0;
9330
+ const u = t[h], g = this.getValueByT(e[c], u), p = (g == null ? void 0 : g.toString().length) || 0;
9158
9331
  p > r[h] && (r[h] = p);
9159
9332
  }
9160
9333
  if (this.crudOptions.columnWidths.takeHeaderLabelsIntoAccount)
@@ -9187,196 +9360,197 @@ class ao {
9187
9360
  return s;
9188
9361
  }
9189
9362
  }
9190
- class co {
9363
+ class uo {
9191
9364
  constructor(e, t) {
9192
9365
  this.method = e, this.url = t;
9193
9366
  }
9194
9367
  }
9195
9368
  export {
9196
- be as AbstractAreaModel,
9197
- Ge as ActionEvent,
9198
- Bt as ActionsCellRenderer,
9369
+ ye as AbstractAreaModel,
9370
+ ze as ActionEvent,
9371
+ Nt as ActionsCellRenderer,
9199
9372
  He as AnyPropertyType,
9200
- Hs as AreaMapFactory,
9201
- Ws as AreaModel,
9373
+ Bs as AreaMapFactory,
9374
+ Gs as AreaModel,
9202
9375
  F as AreaModelArrayOfArrays,
9203
- Ns as AreaModelCellGroups,
9376
+ zs as AreaModelCellGroups,
9204
9377
  P as AreaModelHidden,
9205
9378
  _ as AreaModelObjectArray,
9206
- De as AreaModelObjectArrayWithColumndefs,
9207
- te as AreaModelTree,
9208
- T as AreaObjectMap,
9379
+ Fe as AreaModelObjectArrayWithColumndefs,
9380
+ se as AreaModelTree,
9381
+ k as AreaObjectMap,
9209
9382
  B as ArrayPropertyType,
9210
- _t as AutoRestoreOptions,
9211
- jt as AvoidDoubleExecution,
9212
- Je as BooleanPropertyType,
9213
- Ht as CellGroup,
9214
- $t as CellGroupExt,
9215
- pe as CellGroupExtCellRenderer,
9383
+ Vt as AutoRestoreOptions,
9384
+ Yt as AvoidDoubleExecution,
9385
+ qe as BooleanPropertyType,
9386
+ Bt as CellGroup,
9387
+ Wt as CellGroupExt,
9388
+ ge as CellGroupExtCellRenderer,
9216
9389
  M as CellRange,
9217
9390
  E as CellgroupFactory,
9218
- js as CheckboxBooleanPropertyCellRenderer,
9219
- Fe as CheckboxCellRenderer,
9220
- Vs as CheckboxColumnDef,
9221
- Dt as CheckboxModel,
9222
- Ts as ChunkData,
9223
- dt as ColAndRowspanModel,
9224
- lt as CollapsedExpandedData,
9225
- no as ColorRgb,
9391
+ Ys as CheckboxBooleanPropertyCellRenderer,
9392
+ Pe as CheckboxCellRenderer,
9393
+ Hs as CheckboxColumnDef,
9394
+ Pt as CheckboxModel,
9395
+ Ds as ChunkData,
9396
+ ht as ColAndRowspanModel,
9397
+ at as CollapsedExpandedData,
9398
+ ao as ColorRgb,
9226
9399
  W as ColumnDef,
9227
- Ut as ColumnDefGenerator,
9228
- Wt as ColumnWidths,
9229
- st as ConvenienceDomService,
9230
- ee as CopyService,
9231
- Ft as CoverGridBodyModel,
9232
- Is as CoverGridFactory,
9233
- Pt as CoverGridTableModel,
9234
- H as CrudAction,
9235
- ae as CrudObjectEdit,
9236
- Nt as CrudObjectView,
9237
- Gt as CrudOptions,
9238
- ao as CrudTableModelFactory,
9239
- Me as CssVars,
9240
- Ys as DateToIntlDDMMYYYYCellRenderer,
9241
- Us as DateToIsoCellRenderer,
9242
- Xs as DateToLocaleDateCellRenderer,
9243
- Zs as DateToTecCellRenderer,
9400
+ Xt as ColumnDefGenerator,
9401
+ Gt as ColumnWidths,
9402
+ ot as ConvenienceDomService,
9403
+ te as CopyService,
9404
+ _t as CoverGridBodyModel,
9405
+ Es as CoverGridFactory,
9406
+ Lt as CoverGridTableModel,
9407
+ $ as CrudAction,
9408
+ ce as CrudObjectEdit,
9409
+ zt as CrudObjectView,
9410
+ jt as CrudOptions,
9411
+ ho as CrudTableModelFactory,
9412
+ Te as CssVars,
9413
+ Ks as DateToIntlDDMMYYYYCellRenderer,
9414
+ Xs as DateToIsoCellRenderer,
9415
+ Js as DateToLocaleDateCellRenderer,
9416
+ eo as DateToTecCellRenderer,
9244
9417
  Y as DefaultRowHeights,
9245
- Q as EleScope,
9246
- de as EventAdapter,
9247
- Kt as EventCheckboxChangedHandler,
9248
- It as ExcelService,
9249
- Ee as FalseFn,
9418
+ ee as EleScope,
9419
+ he as EventAdapter,
9420
+ qt as EventCheckboxChangedHandler,
9421
+ Tt as ExcelService,
9422
+ kt as FalseFn,
9250
9423
  vt as FocusModel,
9251
9424
  gt as GeCellIndices,
9252
- q as GeCssColorUtil,
9253
- Gs as GeFilterService,
9254
- $s as GeKeyEvent,
9255
- xe as GeModelChangeEvent,
9256
- me as GeMouseEvent,
9425
+ Z as GeCssColorUtil,
9426
+ js as GeFilterService,
9427
+ Ws as GeKeyEvent,
9428
+ Se as GeModelChangeEvent,
9429
+ be as GeMouseEvent,
9257
9430
  ft as GeScrollEvent,
9258
- O as GeoData,
9259
- V as Icon,
9260
- ks as IndexAndPx,
9431
+ V as GeoData,
9432
+ ve as HeaderGroupOptions,
9433
+ O as Icon,
9434
+ Fs as IndexAndPx,
9261
9435
  Ct as InputCellRenderer,
9262
9436
  pt as InputHandler,
9263
- ve as JsonService,
9437
+ Re as JsonService,
9264
9438
  G as LicenseManager,
9265
- Ks as MaleFemaleToIconCellRenderer,
9266
- it as MouseHandler,
9267
- ot as MouseTargetData,
9268
- ro as MultiRowsSelectionModel,
9269
- Ye as NullPropertyType,
9270
- Js as NumberCellProgressBarCellRenderer,
9271
- Qs as NumberCellRenderer,
9272
- Ke as NumberPropertyType,
9439
+ qs as MaleFemaleToIconCellRenderer,
9440
+ rt as MouseHandler,
9441
+ it as MouseTargetData,
9442
+ lo as MultiRowsSelectionModel,
9443
+ Xe as NullPropertyType,
9444
+ Zs as NumberCellProgressBarCellRenderer,
9445
+ to as NumberCellRenderer,
9446
+ Je as NumberPropertyType,
9273
9447
  L as ObjectPropertyType,
9274
9448
  yt as OsxShortcutActionIdMapping,
9275
- _e as PROPERTY_TYPE_KEY_ANY,
9276
- Ve as PROPERTY_TYPE_KEY_ARRAY,
9277
- fe as PROPERTY_TYPE_KEY_BOOLEAN,
9278
- Le as PROPERTY_TYPE_KEY_NULL,
9279
- ge as PROPERTY_TYPE_KEY_NUMBER,
9449
+ Le as PROPERTY_TYPE_KEY_ANY,
9450
+ $e as PROPERTY_TYPE_KEY_ARRAY,
9451
+ me as PROPERTY_TYPE_KEY_BOOLEAN,
9452
+ Ve as PROPERTY_TYPE_KEY_NULL,
9453
+ fe as PROPERTY_TYPE_KEY_NUMBER,
9280
9454
  K as PROPERTY_TYPE_KEY_OBJECT,
9281
9455
  Oe as PROPERTY_TYPE_KEY_STRING,
9282
9456
  X as PROPERTY_TYPE_KEY_UNDEFINED,
9283
- ue as Padding,
9284
- oo as PositiveAndNegativeNumberRenderer,
9285
- so as ProgressBarCellRenderer,
9286
- $e as PropertyItem,
9287
- Yt as PropertyTypeService,
9288
- ht as RenderScope,
9289
- zs as Renderer,
9290
- Ot as RequestChunk,
9457
+ pe as Padding,
9458
+ ro as PositiveAndNegativeNumberRenderer,
9459
+ io as ProgressBarCellRenderer,
9460
+ Be as PropertyItem,
9461
+ Kt as PropertyTypeService,
9462
+ ut as RenderScope,
9463
+ Us as Renderer,
9464
+ $t as RequestChunk,
9291
9465
  Mt as ResizeHandler,
9292
- Xt as SchemeGenerator,
9293
- ze as SelectCellRenderer,
9294
- Se as SelectionModel,
9466
+ Jt as SchemeGenerator,
9467
+ je as SelectCellRenderer,
9468
+ Ce as SelectionModel,
9295
9469
  mt as SelectionService,
9296
9470
  xt as ShortcutService,
9297
- to as SimpleArrayCellRenderer,
9471
+ oo as SimpleArrayCellRenderer,
9298
9472
  St as SimpleDomService,
9299
- b as Size,
9300
- ut as SortItem,
9301
- We as SortedOptions,
9302
- eo as StarRatingCellRenderer,
9303
- at as StoreStateCollapsedExpandService,
9304
- nt as StoreStateScrollPosService,
9305
- ct as StoreStateSortingService,
9306
- Xe as StringPropertyType,
9307
- rt as TableApi,
9308
- Bs as TableCellUpdateEvent,
9309
- $ as TableFactory,
9310
- le as TableModel,
9311
- Lt as TableModelAndOptions,
9473
+ y as Size,
9474
+ Me as SortItem,
9475
+ Ne as SortedOptions,
9476
+ so as StarRatingCellRenderer,
9477
+ ct as StoreStateCollapsedExpandService,
9478
+ lt as StoreStateScrollPosService,
9479
+ dt as StoreStateSortingService,
9480
+ Ke as StringPropertyType,
9481
+ nt as TableApi,
9482
+ Ns as TableCellUpdateEvent,
9483
+ H as TableFactory,
9484
+ ae as TableModel,
9485
+ Ot as TableModelAndOptions,
9312
9486
  J as TableOptions,
9313
- Ne as TableScope,
9314
- lo as ThreeColorGradientArg,
9315
- ke as TreeCheckboxModel,
9316
- he as TreeFactory,
9317
- Be as TreeOptions,
9318
- Ie as TreeRow,
9319
- kt as TreeRowService,
9320
- qs as TrueFalseCellRenderer,
9487
+ Ge as TableScope,
9488
+ co as ThreeColorGradientArg,
9489
+ De as TreeCheckboxModel,
9490
+ ue as TreeFactory,
9491
+ We as TreeOptions,
9492
+ Ee as TreeRow,
9493
+ Ft as TreeRowService,
9494
+ Qs as TrueFalseCellRenderer,
9321
9495
  Et as TrueFn,
9322
- Pe as TwoColorGradientArg,
9323
- Z as UNIMPORTANT_TYPES,
9324
- ne as UndefinedPropertyType,
9325
- co as UrlInfo,
9326
- qe as ValueInfo,
9327
- Vt as ValueLabel,
9496
+ _e as TwoColorGradientArg,
9497
+ Q as UNIMPORTANT_TYPES,
9498
+ le as UndefinedPropertyType,
9499
+ uo as UrlInfo,
9500
+ Ze as ValueInfo,
9501
+ Ht as ValueLabel,
9328
9502
  bt as WindowsShortcutActionIdMapping,
9329
- Es as actionIds,
9330
- Ls as allCenter,
9331
- _s as allLeft,
9332
- Os as allRight,
9333
- Fs as bodyCenter,
9334
- Ds as bodyLeft,
9335
- Ps as bodyRight,
9336
- Ae as createHarmonizedShortcutByKeyboardEvent,
9337
- Ue as debounce,
9338
- io as editInputPipeForNumber,
9339
- Re as entitySuffix,
9340
- et as firstLetterUppercase,
9341
- re as getAreaIdentByString,
9342
- Ze as getEntityName,
9503
+ ks as actionIds,
9504
+ Os as allCenter,
9505
+ Vs as allLeft,
9506
+ $s as allRight,
9507
+ _s as bodyCenter,
9508
+ Ps as bodyLeft,
9509
+ Ls as bodyRight,
9510
+ Ie as createHarmonizedShortcutByKeyboardEvent,
9511
+ Ye as debounce,
9512
+ no as editInputPipeForNumber,
9513
+ Ae as entitySuffix,
9514
+ tt as firstLetterUppercase,
9515
+ ne as getAreaIdentByString,
9516
+ Qe as getEntityName,
9343
9517
  wt as harmonizeShortcut,
9344
- ce as isAreaModelTree,
9345
- tt as isCheckboxColumnDef,
9518
+ de as isAreaModelTree,
9519
+ st as isCheckboxColumnDef,
9346
9520
  j as isTreeRow,
9347
- Ms as px0,
9348
- As as px10,
9349
- ms as px100,
9350
- fs as px110,
9351
- gs as px120,
9352
- ps as px130,
9353
- us as px140,
9354
- hs as px150,
9355
- ds as px160,
9356
- cs as px170,
9357
- as as px180,
9358
- ls as px190,
9359
- Rs as px20,
9360
- Te as px200,
9361
- ns as px210,
9362
- rs as px220,
9363
- is as px230,
9364
- os as px240,
9365
- ss as px250,
9366
- ts as px260,
9367
- es as px270,
9368
- Qt as px280,
9369
- Zt as px290,
9370
- vs as px30,
9371
- Tt as px300,
9372
- Cs as px40,
9373
- qt as px400,
9374
- Ss as px50,
9375
- Jt as px500,
9376
- xs as px60,
9377
- ws as px70,
9378
- ys as px80,
9379
- bs as px90,
9380
- zt as throttle,
9381
- Qe as trimArraySuffixes
9521
+ Ts as px0,
9522
+ Is as px10,
9523
+ ys as px100,
9524
+ bs as px110,
9525
+ ms as px120,
9526
+ fs as px130,
9527
+ gs as px140,
9528
+ ps as px150,
9529
+ us as px160,
9530
+ hs as px170,
9531
+ ds as px180,
9532
+ cs as px190,
9533
+ Ms as px20,
9534
+ ke as px200,
9535
+ as as px210,
9536
+ ls as px220,
9537
+ ns as px230,
9538
+ rs as px240,
9539
+ is as px250,
9540
+ os as px260,
9541
+ ss as px270,
9542
+ ts as px280,
9543
+ es as px290,
9544
+ As as px30,
9545
+ Dt as px300,
9546
+ Rs as px40,
9547
+ Qt as px400,
9548
+ vs as px50,
9549
+ Zt as px500,
9550
+ Cs as px60,
9551
+ Ss as px70,
9552
+ xs as px80,
9553
+ ws as px90,
9554
+ Ut as throttle,
9555
+ et as trimArraySuffixes
9382
9556
  };