@ninebone/table 0.0.773 → 0.0.775

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,118 +1,118 @@
1
- var bs = Object.defineProperty;
2
- var ps = (T) => {
3
- throw TypeError(T);
1
+ var ps = Object.defineProperty;
2
+ var ys = (C) => {
3
+ throw TypeError(C);
4
4
  };
5
- var ws = (T, n, e) => n in T ? bs(T, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[n] = e;
6
- var h = (T, n) => bs(T, "name", { value: n, configurable: !0 });
7
- var q = (T, n, e) => ws(T, typeof n != "symbol" ? n + "" : n, e), Se = (T, n, e) => n.has(T) || ps("Cannot " + e);
8
- var t = (T, n, e) => (Se(T, n, "read from private field"), e ? e.call(T) : n.get(T)), f = (T, n, e) => n.has(T) ? ps("Cannot add the same private member more than once") : n instanceof WeakSet ? n.add(T) : n.set(T, e), p = (T, n, e, s) => (Se(T, n, "write to private field"), s ? s.call(T, e) : n.set(T, e), e), Z = (T, n, e) => (Se(T, n, "access private method"), e);
9
- var ys = (T, n, e, s) => ({
10
- set _(r) {
11
- p(T, n, r, e);
5
+ var vs = (C, s, e) => s in C ? ps(C, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : C[s] = e;
6
+ var h = (C, s) => ps(C, "name", { value: s, configurable: !0 });
7
+ var q = (C, s, e) => vs(C, typeof s != "symbol" ? s + "" : s, e), Ee = (C, s, e) => s.has(C) || ys("Cannot " + e);
8
+ var t = (C, s, e) => (Ee(C, s, "read from private field"), e ? e.call(C) : s.get(C)), d = (C, s, e) => s.has(C) ? ys("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(C) : s.set(C, e), y = (C, s, e, n) => (Ee(C, s, "write to private field"), n ? n.call(C, e) : s.set(C, e), e), Q = (C, s, e) => (Ee(C, s, "access private method"), e);
9
+ var ms = (C, s, e, n) => ({
10
+ set _(o) {
11
+ y(C, s, o, e);
12
12
  },
13
13
  get _() {
14
- return t(T, n, s);
14
+ return t(C, s, n);
15
15
  }
16
16
  });
17
- import { trace as vs } from "@ninebone/util";
18
- const Ke = class Ke extends vs.constructor {
17
+ import { trace as Ss } from "@ninebone/util";
18
+ const Qe = class Qe extends Ss.constructor {
19
19
  constructor() {
20
20
  super(), this.init("nine-table", "green");
21
21
  }
22
22
  };
23
- h(Ke, "Trace");
24
- let Ae = Ke;
25
- const S = new Ae();
26
- var B, U, E, J, Q, tt, Xt, et, Gt;
27
- const Ze = class Ze extends HTMLElement {
23
+ h(Qe, "Trace");
24
+ let qe = Qe;
25
+ const S = new qe();
26
+ var F, K, E, tt, et, st, Zt, nt, Jt;
27
+ const ts = class ts extends HTMLElement {
28
28
  constructor() {
29
29
  super();
30
- f(this, B);
31
- f(this, U, !1);
32
- f(this, E);
33
- f(this, J);
34
- f(this, Q);
35
- f(this, tt);
36
- f(this, Xt, /* @__PURE__ */ h(() => {
37
- if (!t(this, B)) return;
38
- const e = t(this, B).querySelector(".ng-container-body .ng-part-body");
39
- e && (p(this, tt, new ResizeObserver(() => {
30
+ d(this, F);
31
+ d(this, K, !1);
32
+ d(this, E);
33
+ d(this, tt);
34
+ d(this, et);
35
+ d(this, st);
36
+ d(this, Zt, /* @__PURE__ */ h(() => {
37
+ if (!t(this, F)) return;
38
+ const e = t(this, F).querySelector(".ng-container-body .ng-part-body");
39
+ e && (y(this, st, new ResizeObserver(() => {
40
40
  this.refresh();
41
- })), t(this, tt).observe(e));
41
+ })), t(this, st).observe(e));
42
42
  }, "#observeResize"));
43
43
  q(this, "refresh", /* @__PURE__ */ h(() => {
44
- if (!t(this, B) || !t(this, E) || t(this, U)) return;
45
- const e = t(this, E).container, s = e.querySelector("table");
46
- if (!s) return;
47
- const r = t(this, E).track, o = t(this, E).thumb, i = t(this, B).querySelector(".ng-container-bottom"), a = e.clientWidth, c = s.scrollWidth;
44
+ if (!t(this, F) || !t(this, E) || t(this, K)) return;
45
+ const e = t(this, E).container, n = e.querySelector("table");
46
+ if (!n) return;
47
+ const o = t(this, E).track, i = t(this, E).thumb, r = t(this, F).querySelector(".ng-container-bottom"), a = e.clientWidth, c = n.scrollWidth;
48
48
  if (a !== 0 && c > a)
49
- i && (i.style.display = "flex");
49
+ r && (r.style.display = "flex");
50
50
  else {
51
- i && (i.style.display = "none");
51
+ r && (r.style.display = "none");
52
52
  return;
53
53
  }
54
- const l = r.clientWidth;
54
+ const l = o.clientWidth;
55
55
  if (l <= 0) return;
56
- const d = Math.max(Math.min(l * (a / c), l), 20);
57
- o.style.width = `${d}px`;
58
- const u = e.scrollLeft, b = c - a;
59
- let g = 0;
60
- b > 0 && (g = parseInt(u / b * (l - d), 10)), g < 0 && (g = 0);
61
- const y = l - d;
62
- g > y && (g = y), o.style.left = `${g}px`, t(this, E).left.disabled = g === 0, t(this, E).right.disabled = g >= y - 1;
56
+ const g = Math.max(Math.min(l * (a / c), l), 20);
57
+ i.style.width = `${g}px`;
58
+ const f = e.scrollLeft, b = c - a;
59
+ let u = 0;
60
+ b > 0 && (u = parseInt(f / b * (l - g), 10)), u < 0 && (u = 0);
61
+ const p = l - g;
62
+ u > p && (u = p), i.style.left = `${u}px`, t(this, E).left.disabled = u === 0, t(this, E).right.disabled = u >= p - 1;
63
63
  }, "refresh"));
64
- f(this, et, /* @__PURE__ */ h((e) => {
64
+ d(this, nt, /* @__PURE__ */ h((e) => {
65
65
  if (!t(this, E)) return !1;
66
- const s = t(this, E).container, r = s.querySelector("table");
67
- if (!r) return !1;
68
- const o = t(this, E).track.getBoundingClientRect(), i = t(this, E).thumb.clientWidth;
66
+ const n = t(this, E).container, o = n.querySelector("table");
67
+ if (!o) return !1;
68
+ const i = t(this, E).track.getBoundingClientRect(), r = t(this, E).thumb.clientWidth;
69
69
  let a = e;
70
70
  a < 0 && (a = 0);
71
- const c = o.width - i;
71
+ const c = i.width - r;
72
72
  a > c && (a = c), a = parseInt(a, 10), t(this, E).thumb.style.left = `${a}px`, t(this, E).left.disabled = a === 0, t(this, E).right.disabled = a >= c - 1;
73
- const l = s.clientWidth, u = r.scrollWidth - l;
74
- return c > 0 && u > 0 && (s.scrollLeft = a / c * u), a > 0 && a < c - 1;
73
+ const l = n.clientWidth, f = o.scrollWidth - l;
74
+ return c > 0 && f > 0 && (n.scrollLeft = a / c * f), a > 0 && a < c - 1;
75
75
  }, "#thumbMoveTo"));
76
- f(this, Gt, /* @__PURE__ */ h(() => {
77
- const e = /* @__PURE__ */ h((r) => {
78
- clearInterval(t(this, J)), clearInterval(t(this, Q));
79
- const o = parseInt(t(this, E).thumb.style.left || 0, 10);
80
- t(this, et).call(this, o + r), p(this, J, setInterval(() => {
81
- clearInterval(t(this, J)), p(this, Q, setInterval(() => {
82
- const i = parseInt(t(this, E).thumb.style.left || 0, 10);
83
- t(this, et).call(this, i + r) || clearInterval(t(this, Q));
76
+ d(this, Jt, /* @__PURE__ */ h(() => {
77
+ const e = /* @__PURE__ */ h((o) => {
78
+ clearInterval(t(this, tt)), clearInterval(t(this, et));
79
+ const i = parseInt(t(this, E).thumb.style.left || 0, 10);
80
+ t(this, nt).call(this, i + o), y(this, tt, setInterval(() => {
81
+ clearInterval(t(this, tt)), y(this, et, setInterval(() => {
82
+ const r = parseInt(t(this, E).thumb.style.left || 0, 10);
83
+ t(this, nt).call(this, r + o) || clearInterval(t(this, et));
84
84
  }, 50));
85
85
  }, 500));
86
- }, "delayScroll"), s = /* @__PURE__ */ h(() => {
87
- clearInterval(t(this, J)), clearInterval(t(this, Q));
86
+ }, "delayScroll"), n = /* @__PURE__ */ h(() => {
87
+ clearInterval(t(this, tt)), clearInterval(t(this, et));
88
88
  }, "clearTimer");
89
- ["mouseup", "mouseleave", "touchend"].forEach((r) => {
90
- t(this, E).left.addEventListener(r, s), t(this, E).right.addEventListener(r, s), t(this, E).track.addEventListener(r, s);
91
- }), t(this, E).left.addEventListener("mousedown", (r) => {
92
- r.button === 0 && e(-20);
93
- }), t(this, E).right.addEventListener("mousedown", (r) => {
94
- r.button === 0 && e(20);
95
- }), t(this, E).left.addEventListener("touchstart", () => e(-20)), t(this, E).right.addEventListener("touchstart", () => e(20)), t(this, E).track.addEventListener("mousedown", (r) => {
96
- if (r.button !== 0) return;
97
- r.preventDefault();
98
- const o = t(this, E).track.getBoundingClientRect(), i = t(this, E).thumb.clientWidth;
99
- t(this, et).call(this, r.clientX - o.left - i / 2);
100
- }), t(this, E).thumb.addEventListener("mousedown", (r) => {
101
- if (r.button !== 0) return;
102
- r.stopPropagation(), r.preventDefault(), p(this, U, !0), this.shiftX = r.clientX - t(this, E).thumb.getBoundingClientRect().left;
103
- const o = /* @__PURE__ */ h((a) => {
104
- if (!t(this, U)) return;
89
+ ["mouseup", "mouseleave", "touchend"].forEach((o) => {
90
+ t(this, E).left.addEventListener(o, n), t(this, E).right.addEventListener(o, n), t(this, E).track.addEventListener(o, n);
91
+ }), t(this, E).left.addEventListener("mousedown", (o) => {
92
+ o.button === 0 && e(-20);
93
+ }), t(this, E).right.addEventListener("mousedown", (o) => {
94
+ o.button === 0 && e(20);
95
+ }), t(this, E).left.addEventListener("touchstart", () => e(-20)), t(this, E).right.addEventListener("touchstart", () => e(20)), t(this, E).track.addEventListener("mousedown", (o) => {
96
+ if (o.button !== 0) return;
97
+ o.preventDefault();
98
+ const i = t(this, E).track.getBoundingClientRect(), r = t(this, E).thumb.clientWidth;
99
+ t(this, nt).call(this, o.clientX - i.left - r / 2);
100
+ }), t(this, E).thumb.addEventListener("mousedown", (o) => {
101
+ if (o.button !== 0) return;
102
+ o.stopPropagation(), o.preventDefault(), y(this, K, !0), this.shiftX = o.clientX - t(this, E).thumb.getBoundingClientRect().left;
103
+ const i = /* @__PURE__ */ h((a) => {
104
+ if (!t(this, K)) return;
105
105
  const c = t(this, E).track.getBoundingClientRect();
106
- t(this, et).call(this, a.clientX - c.left - this.shiftX);
107
- }, "onMouseMove"), i = /* @__PURE__ */ h(() => {
108
- p(this, U, !1), s(), document.removeEventListener("mousemove", o), document.removeEventListener("mouseup", i), this.refresh();
106
+ t(this, nt).call(this, a.clientX - c.left - this.shiftX);
107
+ }, "onMouseMove"), r = /* @__PURE__ */ h(() => {
108
+ y(this, K, !1), n(), document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", r), this.refresh();
109
109
  }, "onMouseUp");
110
- document.addEventListener("mousemove", o), document.addEventListener("mouseup", i);
110
+ document.addEventListener("mousemove", i), document.addEventListener("mouseup", r);
111
111
  });
112
112
  }, "#init"));
113
113
  }
114
114
  connectedCallback() {
115
- if (p(this, B, this.closest("nine-table-sheet") || this.getRootNode().host), !t(this, B)) return;
115
+ if (y(this, F, this.closest("nine-table-sheet") || this.getRootNode().host), !t(this, F)) return;
116
116
  this.innerHTML = `
117
117
  <style>
118
118
  nine-table-hscrollbar {
@@ -177,88 +177,88 @@ const Ze = class Ze extends HTMLElement {
177
177
  <button class='ng-scroll-right' disabled><div class='ng-scroll-icon'></div></button>
178
178
  `;
179
179
  const e = /* @__PURE__ */ h(() => {
180
- const s = t(this, B).querySelector(".ng-container-body .ng-part-body");
181
- if (!s) {
180
+ const n = t(this, F).querySelector(".ng-container-body .ng-part-body");
181
+ if (!n) {
182
182
  setTimeout(e, 10);
183
183
  return;
184
184
  }
185
- p(this, E, {
186
- container: s,
185
+ y(this, E, {
186
+ container: n,
187
187
  track: this.querySelector(".ng-scroll-track"),
188
188
  thumb: this.querySelector(".ng-scroll-thumb"),
189
189
  left: this.querySelector(".ng-scroll-left"),
190
190
  right: this.querySelector(".ng-scroll-right")
191
- }), s.addEventListener("scroll", () => {
192
- t(this, U) || this.refresh();
193
- }), t(this, Gt).call(this), t(this, Xt).call(this), this.refresh();
191
+ }), n.addEventListener("scroll", () => {
192
+ t(this, K) || this.refresh();
193
+ }), t(this, Jt).call(this), t(this, Zt).call(this), this.refresh();
194
194
  }, "initWhenReady");
195
195
  e();
196
196
  }
197
197
  disconnectedCallback() {
198
- t(this, tt) && t(this, tt).disconnect();
198
+ t(this, st) && t(this, st).disconnect();
199
199
  }
200
200
  };
201
- B = new WeakMap(), U = new WeakMap(), E = new WeakMap(), J = new WeakMap(), Q = new WeakMap(), tt = new WeakMap(), Xt = new WeakMap(), et = new WeakMap(), Gt = new WeakMap(), h(Ze, "NineTableHScrollBar");
202
- let Re = Ze;
203
- customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", Re);
204
- var st, nt, gt, k, qt, Tt, Kt;
205
- const Je = class Je extends HTMLElement {
201
+ F = new WeakMap(), K = new WeakMap(), E = new WeakMap(), tt = new WeakMap(), et = new WeakMap(), st = new WeakMap(), Zt = new WeakMap(), nt = new WeakMap(), Jt = new WeakMap(), h(ts, "NineTableHScrollBar");
202
+ let Ce = ts;
203
+ customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", Ce);
204
+ var rt, ot, pt, k, Tt, kt, Qt;
205
+ const es = class es extends HTMLElement {
206
206
  constructor() {
207
207
  super();
208
- f(this, st);
209
- f(this, nt);
210
- f(this, gt, !1);
211
- f(this, k);
212
- f(this, qt, 0);
213
- f(this, Tt, 0);
208
+ d(this, rt);
209
+ d(this, ot);
210
+ d(this, pt, !1);
211
+ d(this, k);
212
+ d(this, Tt, 0);
213
+ d(this, kt, 0);
214
214
  q(this, "refresh", /* @__PURE__ */ h(() => {
215
- if (S.log("vscrollbar.refresh"), !t(this, st) || !t(this, k)) return;
216
- const e = t(this, k).container, s = t(this, k).track, r = t(this, k).thumb, o = e.clientHeight, i = t(this, st).data.length, a = t(this, nt).getRowHeight(), c = i * a;
217
- if (c <= o || i === 0) {
215
+ if (S.log("vscrollbar.refresh"), !t(this, rt) || !t(this, k)) return;
216
+ const e = t(this, k).container, n = t(this, k).track, o = t(this, k).thumb, i = e.clientHeight, r = t(this, rt).data.length, a = t(this, ot).getRowHeight(), c = r * a;
217
+ if (c <= i || r === 0) {
218
218
  this.style.display = "none";
219
219
  return;
220
220
  } else
221
221
  this.style.display = "flex";
222
- const l = s.clientHeight;
222
+ const l = n.clientHeight;
223
223
  if (l <= 0) return;
224
- const d = Math.max(Math.min(l * (o / c), l), 20);
225
- r.style.height = `${d}px`;
226
- const u = e.scrollTop, b = Math.max(c - o, 1);
227
- S.log(e, u, b);
228
- let g = 0;
229
- b > 0 && (g = u / b * (l - d));
230
- const y = l - d;
231
- g < 0 && (g = 0), g > y && (g = y), r.style.top = `${g}px`, t(this, k).top.disabled = u <= 0, t(this, k).bottom.disabled = u >= b - 1;
224
+ const g = Math.max(Math.min(l * (i / c), l), 20);
225
+ o.style.height = `${g}px`;
226
+ const f = e.scrollTop, b = Math.max(c - i, 1);
227
+ S.log(e, f, b);
228
+ let u = 0;
229
+ b > 0 && (u = f / b * (l - g));
230
+ const p = l - g;
231
+ u < 0 && (u = 0), u > p && (u = p), o.style.top = `${u}px`, t(this, k).top.disabled = f <= 0, t(this, k).bottom.disabled = f >= b - 1;
232
232
  }, "refresh"));
233
- f(this, Kt, /* @__PURE__ */ h(() => {
233
+ d(this, Qt, /* @__PURE__ */ h(() => {
234
234
  S.log("nine-table-vscrollbar.#init");
235
- const e = t(this, k).container, s = /* @__PURE__ */ h(() => {
236
- const o = (t(this, st).data.get() || []).length, i = t(this, nt).getRowHeight();
237
- return o * i;
235
+ const e = t(this, k).container, n = /* @__PURE__ */ h(() => {
236
+ const i = (t(this, rt).data.get() || []).length, r = t(this, ot).getRowHeight();
237
+ return i * r;
238
238
  }, "getContentHeight");
239
- t(this, k).thumb.addEventListener("mousedown", (r) => {
240
- if (r.button !== 0) return;
241
- r.stopPropagation(), r.preventDefault(), p(this, gt, !0), p(this, qt, r.clientY), p(this, Tt, e.scrollTop);
242
- const o = /* @__PURE__ */ h((a) => {
243
- if (!t(this, gt)) return;
244
- const c = t(this, k).track.getBoundingClientRect(), l = t(this, k).thumb.clientHeight, u = c.height - l, b = a.clientY - t(this, qt), g = e.clientHeight, y = s(), w = Math.max(y - g, 1);
245
- if (u > 0 && w > 0) {
246
- const v = b / u * w;
247
- let m = t(this, Tt) + v;
248
- const C = Math.max(0, y - g);
249
- m < 0 && (m = 0), m > C && (m = C), e.scrollTop = m;
239
+ t(this, k).thumb.addEventListener("mousedown", (o) => {
240
+ if (o.button !== 0) return;
241
+ o.stopPropagation(), o.preventDefault(), y(this, pt, !0), y(this, Tt, o.clientY), y(this, kt, e.scrollTop);
242
+ const i = /* @__PURE__ */ h((a) => {
243
+ if (!t(this, pt)) return;
244
+ const c = t(this, k).track.getBoundingClientRect(), l = t(this, k).thumb.clientHeight, f = c.height - l, b = a.clientY - t(this, Tt), u = e.clientHeight, p = n(), x = Math.max(p - u, 1);
245
+ if (f > 0 && x > 0) {
246
+ const w = b / f * x;
247
+ let m = t(this, kt) + w;
248
+ const T = Math.max(0, p - u);
249
+ m < 0 && (m = 0), m > T && (m = T), e.scrollTop = m;
250
250
  }
251
251
  this.refresh();
252
- }, "onMouseMove"), i = /* @__PURE__ */ h(() => {
253
- p(this, gt, !1), document.removeEventListener("mousemove", o), document.removeEventListener("mouseup", i), this.refresh();
252
+ }, "onMouseMove"), r = /* @__PURE__ */ h(() => {
253
+ y(this, pt, !1), document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", r), this.refresh();
254
254
  }, "onMouseUp");
255
- document.addEventListener("mousemove", o), document.addEventListener("mouseup", i);
256
- }), t(this, k).track.addEventListener("mousedown", (r) => {
257
- if (r.button !== 0 || r.target === t(this, k).thumb) return;
258
- const o = t(this, k).track.getBoundingClientRect(), i = t(this, k).thumb.clientHeight, a = r.clientY - o.top - i / 2, l = o.height - i, d = e.clientHeight, u = s(), b = Math.max(u - d, 1);
255
+ document.addEventListener("mousemove", i), document.addEventListener("mouseup", r);
256
+ }), t(this, k).track.addEventListener("mousedown", (o) => {
257
+ if (o.button !== 0 || o.target === t(this, k).thumb) return;
258
+ const i = t(this, k).track.getBoundingClientRect(), r = t(this, k).thumb.clientHeight, a = o.clientY - i.top - r / 2, l = i.height - r, g = e.clientHeight, f = n(), b = Math.max(f - g, 1);
259
259
  if (l > 0 && b > 0) {
260
- const g = Math.max(0, Math.min(1, a / l));
261
- e.scrollTop = g * b;
260
+ const u = Math.max(0, Math.min(1, a / l));
261
+ e.scrollTop = u * b;
262
262
  }
263
263
  this.refresh();
264
264
  }), t(this, k).top.addEventListener("click", () => {
@@ -269,7 +269,7 @@ const Je = class Je extends HTMLElement {
269
269
  }, "#init"));
270
270
  }
271
271
  connectedCallback() {
272
- p(this, st, this.getRootNode().host), p(this, nt, this.closest("nine-table-sheet")), this.innerHTML = `
272
+ y(this, rt, this.getRootNode().host), y(this, ot, this.closest("nine-table-sheet")), this.innerHTML = `
273
273
  <style>
274
274
  nine-table-vscrollbar {
275
275
  display: flex;
@@ -334,230 +334,230 @@ const Je = class Je extends HTMLElement {
334
334
  <button class='ng-scroll-bottom' disabled><div class='ng-scroll-icon'></div></button>
335
335
  `;
336
336
  const e = /* @__PURE__ */ h(() => {
337
- const s = t(this, nt).querySelector(".ng-container-body .ng-part-body");
338
- if (!s) {
337
+ const n = t(this, ot).querySelector(".ng-container-body .ng-part-body");
338
+ if (!n) {
339
339
  setTimeout(e, 10);
340
340
  return;
341
341
  }
342
- p(this, k, {
343
- container: s,
342
+ y(this, k, {
343
+ container: n,
344
344
  track: this.querySelector(".ng-scroll-track"),
345
345
  thumb: this.querySelector(".ng-scroll-thumb"),
346
346
  top: this.querySelector(".ng-scroll-top"),
347
347
  bottom: this.querySelector(".ng-scroll-bottom")
348
- }), t(this, Kt).call(this), this.refresh();
348
+ }), t(this, Qt).call(this), this.refresh();
349
349
  }, "initWhenReady");
350
350
  e();
351
351
  }
352
352
  };
353
- st = new WeakMap(), nt = new WeakMap(), gt = new WeakMap(), k = new WeakMap(), qt = new WeakMap(), Tt = new WeakMap(), Kt = new WeakMap(), h(Je, "NineTableVScrollBar");
354
- let Ee = Je;
355
- customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar", Ee);
356
- var j, R, rt, P, D, X, ot, Ct, Be, Pe, Zt, Jt, kt, Lt, It, Qt, te, Ht, Fe, bt, Mt, ee;
357
- const Qe = class Qe {
358
- constructor(n) {
359
- f(this, j);
360
- f(this, R);
361
- f(this, rt);
362
- f(this, P, /* @__PURE__ */ new Map());
363
- f(this, D, null);
364
- f(this, X, null);
365
- f(this, ot, 0);
366
- f(this, Ct, 40);
367
- f(this, Be, !1);
368
- f(this, Pe, !1);
353
+ rt = new WeakMap(), ot = new WeakMap(), pt = new WeakMap(), k = new WeakMap(), Tt = new WeakMap(), kt = new WeakMap(), Qt = new WeakMap(), h(es, "NineTableVScrollBar");
354
+ let Te = es;
355
+ customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar", Te);
356
+ var V, R, it, j, O, G, at, It, je, Ye, te, ee, Lt, Mt, Ht, se, ne, $t, Ve, yt, Nt, re;
357
+ const ss = class ss {
358
+ constructor(s) {
359
+ d(this, V);
360
+ d(this, R);
361
+ d(this, it);
362
+ d(this, j, /* @__PURE__ */ new Map());
363
+ d(this, O, null);
364
+ d(this, G, null);
365
+ d(this, at, 0);
366
+ d(this, It, 40);
367
+ d(this, je, !1);
368
+ d(this, Ye, !1);
369
369
  //#ticking = false; // 🎯 고속 스크롤 스로틀링용 플래그
370
- f(this, Zt, 3);
370
+ d(this, te, 3);
371
371
  q(this, "refresh", /* @__PURE__ */ h(() => {
372
372
  var e;
373
373
  S.log("rowManager.refresh");
374
- const n = t(this, R).querySelector(".ng-container-body .ng-part-body");
375
- n && (t(this, kt).call(this), t(this, Lt).call(this), t(this, bt).call(this, n.scrollTop), (e = t(this, R).querySelector("nine-table-vscrollbar")) == null || e.refresh());
374
+ const s = t(this, R).querySelector(".ng-container-body .ng-part-body");
375
+ s && (t(this, Lt).call(this), t(this, Mt).call(this), t(this, yt).call(this, s.scrollTop), (e = t(this, R).querySelector("nine-table-vscrollbar")) == null || e.refresh());
376
376
  }, "refresh"));
377
377
  q(this, "initialize", /* @__PURE__ */ h(() => {
378
- S.log("rowManager.initialize"), p(this, rt, {
378
+ S.log("rowManager.initialize"), y(this, it, {
379
379
  scrollTables: t(this, R).querySelectorAll(".ng-part-body table"),
380
380
  firstTr: t(this, R).querySelector(".ng-container-body .ng-part-body tbody.bindable-tbody tr:not(.nodata)")
381
- }), p(this, D, null), t(this, P).clear(), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((i) => {
382
- const a = t(this, R).querySelector(i);
381
+ }), y(this, O, null), t(this, j).clear(), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((r) => {
382
+ const a = t(this, R).querySelector(r);
383
383
  if (!a) return;
384
384
  const c = a.querySelector(".ng-part-body table");
385
385
  if (!c) return;
386
386
  const l = c.querySelector("tbody.bindable-tbody");
387
387
  if (!l) return;
388
- const u = Array.from(l.querySelectorAll("tr")).map((b) => b.cloneNode(!0));
389
- t(this, P).set(i, u);
388
+ const f = Array.from(l.querySelectorAll("tr")).map((b) => b.cloneNode(!0));
389
+ t(this, j).set(r, f);
390
390
  });
391
- const n = t(this, R).querySelector(".ng-container-body .ng-part-body"), e = t(this, R).querySelector(".ng-container-left .ng-part-body"), s = t(this, R).querySelector(".ng-container-right .ng-part-body"), r = t(this, R).querySelector(".ng-container-body .ng-part-header"), o = t(this, R).querySelector(".ng-container-body .ng-part-footer");
392
- if (n) {
393
- t(this, kt).call(this), t(this, Ht).call(this), t(this, Lt).call(this), t(this, bt).call(this, n.scrollTop);
394
- let i = !1;
391
+ const s = t(this, R).querySelector(".ng-container-body .ng-part-body"), e = t(this, R).querySelector(".ng-container-left .ng-part-body"), n = t(this, R).querySelector(".ng-container-right .ng-part-body"), o = t(this, R).querySelector(".ng-container-body .ng-part-header"), i = t(this, R).querySelector(".ng-container-body .ng-part-footer");
392
+ if (s) {
393
+ t(this, Lt).call(this), t(this, $t).call(this), t(this, Mt).call(this), t(this, yt).call(this, s.scrollTop);
394
+ let r = !1;
395
395
  const a = /* @__PURE__ */ h((c) => {
396
- var u;
397
- if (i) return;
398
- i = !0;
399
- const l = c.scrollTop, d = c.scrollLeft;
400
- n && n.scrollTop !== l && (n.scrollTop = l), e && e.scrollTop !== l && (e.scrollTop = l), s && s.scrollTop !== l && (s.scrollTop = l), r && r.scrollLeft !== d && (r.scrollLeft = d), o && o.scrollLeft !== d && (o.scrollLeft = d), t(this, bt).call(this, l), (u = t(this, R).querySelector("nine-table-vscrollbar")) == null || u.refresh(), i = !1;
396
+ var f;
397
+ if (r) return;
398
+ r = !0;
399
+ const l = c.scrollTop, g = c.scrollLeft;
400
+ s && s.scrollTop !== l && (s.scrollTop = l), e && e.scrollTop !== l && (e.scrollTop = l), n && n.scrollTop !== l && (n.scrollTop = l), o && o.scrollLeft !== g && (o.scrollLeft = g), i && i.scrollLeft !== g && (i.scrollLeft = g), t(this, yt).call(this, l), (f = t(this, R).querySelector("nine-table-vscrollbar")) == null || f.refresh(), r = !1;
401
401
  }, "handleContainerScroll");
402
- [n, e, s].forEach((c) => {
402
+ [s, e, n].forEach((c) => {
403
403
  c == null || c.addEventListener("scroll", (l) => {
404
404
  S.log(l), S.log("rowManager.scroll event"), a(c);
405
405
  });
406
406
  });
407
407
  }
408
408
  }, "initialize"));
409
- f(this, Jt, /* @__PURE__ */ h((n, e) => {
409
+ d(this, ee, /* @__PURE__ */ h((s, e) => {
410
410
  S.log("rowManager.#renderRows");
411
- const s = t(this, P).get(e);
412
- if (!s || s.length === 0) return;
413
- const r = n.querySelector(".ng-part-body tbody.bindable-tbody");
414
- if (!r) return;
415
- r.querySelectorAll("tr:not(.nodata)").forEach((a) => a.remove());
416
- const o = r.querySelector("tr.nodata"), i = document.createDocumentFragment();
417
- for (let a = 0; a < t(this, Ct); a++)
418
- s.forEach((c) => {
419
- i.appendChild(c.cloneNode(!0));
411
+ const n = t(this, j).get(e);
412
+ if (!n || n.length === 0) return;
413
+ const o = s.querySelector(".ng-part-body tbody.bindable-tbody");
414
+ if (!o) return;
415
+ o.querySelectorAll("tr:not(.nodata)").forEach((a) => a.remove());
416
+ const i = o.querySelector("tr.nodata"), r = document.createDocumentFragment();
417
+ for (let a = 0; a < t(this, It); a++)
418
+ n.forEach((c) => {
419
+ r.appendChild(c.cloneNode(!0));
420
420
  });
421
- o ? o.before(i) : r.appendChild(i), e === ".ng-container-body" && (t(this, rt).firstTr = r.querySelector("tr:not(.nodata)"));
421
+ i ? i.before(r) : o.appendChild(r), e === ".ng-container-body" && (t(this, it).firstTr = o.querySelector("tr:not(.nodata)"));
422
422
  }, "#renderRows"));
423
- f(this, kt, /* @__PURE__ */ h(() => {
424
- if (t(this, D) !== null && t(this, D) > 0)
425
- return t(this, D);
426
- const n = t(this, R).querySelector(".ng-container-body .ng-part-body");
423
+ d(this, Lt, /* @__PURE__ */ h(() => {
424
+ if (t(this, O) !== null && t(this, O) > 0)
425
+ return t(this, O);
426
+ const s = t(this, R).querySelector(".ng-container-body .ng-part-body");
427
427
  S.log("rowManager.#measureAndCacheHeight");
428
- const e = t(this, P).get(".ng-container-body");
428
+ const e = t(this, j).get(".ng-container-body");
429
429
  if (!e || e.length === 0) throw new Error("invalid dom");
430
- const s = n.querySelector("tbody.bindable-tbody");
431
- if (S.log(s), !s) throw new Error("invalid dom");
432
- s.querySelectorAll("tr:not(.nodata)").forEach((b) => b.remove());
433
- const r = s.querySelector("tr.nodata"), o = document.createDocumentFragment();
430
+ const n = s.querySelector("tbody.bindable-tbody");
431
+ if (S.log(n), !n) throw new Error("invalid dom");
432
+ n.querySelectorAll("tr:not(.nodata)").forEach((b) => b.remove());
433
+ const o = n.querySelector("tr.nodata"), i = document.createDocumentFragment();
434
434
  e.forEach((b) => {
435
- o.appendChild(b.cloneNode(!0));
436
- }), r ? r.before(o) : s.appendChild(o);
437
- const i = t(this, R), a = i.style.display, c = i.style.visibility, l = i.style.position;
438
- (a === "none" || window.getComputedStyle(i).display === "none") && (i.style.display = "block", i.style.visibility = "hidden", i.style.position = "absolute");
439
- let d = 0;
440
- const u = s.querySelectorAll("tr");
441
- return u.forEach((b) => {
442
- let g = b.offsetHeight || b.getBoundingClientRect().height;
443
- if (g === 0) {
444
- const y = window.getComputedStyle(b);
445
- g = parseFloat(y.height) || parseFloat(y.minHeight) || 0;
435
+ i.appendChild(b.cloneNode(!0));
436
+ }), o ? o.before(i) : n.appendChild(i);
437
+ const r = t(this, R), a = r.style.display, c = r.style.visibility, l = r.style.position;
438
+ (a === "none" || window.getComputedStyle(r).display === "none") && (r.style.display = "block", r.style.visibility = "hidden", r.style.position = "absolute");
439
+ let g = 0;
440
+ const f = n.querySelectorAll("tr");
441
+ return f.forEach((b) => {
442
+ let u = b.offsetHeight || b.getBoundingClientRect().height;
443
+ if (u === 0) {
444
+ const p = window.getComputedStyle(b);
445
+ u = parseFloat(p.height) || parseFloat(p.minHeight) || 0;
446
446
  }
447
- d += g;
448
- }), u.forEach((b) => b.remove()), i.style.display = a, i.style.visibility = c, i.style.position = l, d <= 0 ? -1 : (p(this, D, d), t(this, It).call(this), t(this, D));
447
+ g += u;
448
+ }), f.forEach((b) => b.remove()), r.style.display = a, r.style.visibility = c, r.style.position = l, g <= 0 ? -1 : (y(this, O, g), t(this, Ht).call(this), t(this, O));
449
449
  }, "#measureAndCacheHeight"));
450
- f(this, Lt, /* @__PURE__ */ h(() => {
450
+ d(this, Mt, /* @__PURE__ */ h(() => {
451
451
  S.log("rowManager.#updateVirtualScrollHeight");
452
- const e = (t(this, j).data.get() || []).length, s = t(this, D), r = e * s;
453
- S.log("🔍 [VirtualHeight]", { totalCount: e, rowHeight: s, totalVirtualHeight: r }), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((o) => {
454
- const i = t(this, R).querySelector(o);
455
- if (!i) return;
456
- const a = i.querySelector(".ng-part-body .ng-virtual-spacer");
457
- a && (a.style.height = `${r}px`);
452
+ const e = (t(this, V).data.get() || []).length, n = t(this, O), o = e * n;
453
+ S.log("🔍 [VirtualHeight]", { totalCount: e, rowHeight: n, totalVirtualHeight: o }), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((i) => {
454
+ const r = t(this, R).querySelector(i);
455
+ if (!r) return;
456
+ const a = r.querySelector(".ng-part-body .ng-virtual-spacer");
457
+ a && (a.style.height = `${o}px`);
458
458
  });
459
459
  }, "#updateVirtualScrollHeight"));
460
- f(this, It, /* @__PURE__ */ h(() => {
461
- if (t(this, ot) > 0 && t(this, D) > 0) {
462
- const n = Math.ceil(t(this, ot) / t(this, D));
463
- p(this, Ct, n + t(this, Zt));
460
+ d(this, Ht, /* @__PURE__ */ h(() => {
461
+ if (t(this, at) > 0 && t(this, O) > 0) {
462
+ const s = Math.ceil(t(this, at) / t(this, O));
463
+ y(this, It, s + t(this, te));
464
464
  }
465
465
  }, "#updateRowCount"));
466
- f(this, Qt, /* @__PURE__ */ h(() => {
467
- var a, c, l, d, u, b;
468
- const n = t(this, R).querySelector(".ng-container-left .ng-part-body table"), e = t(this, R).querySelector(".ng-container-body .ng-part-body table"), s = t(this, R).querySelector(".ng-container-right .ng-part-body table");
466
+ d(this, se, /* @__PURE__ */ h(() => {
467
+ var a, c, l, g, f, b;
468
+ const s = t(this, R).querySelector(".ng-container-left .ng-part-body table"), e = t(this, R).querySelector(".ng-container-body .ng-part-body table"), n = t(this, R).querySelector(".ng-container-right .ng-part-body table");
469
469
  if (e) {
470
- const g = n ? Array.from(n.querySelectorAll("tbody tr")) : [], y = Array.from(e.querySelectorAll("tbody tr")), w = s ? Array.from(s.querySelectorAll("tbody tr")) : [], v = Math.max(g.length, y.length, w.length);
471
- for (let m = 0; m < v; m++) {
472
- const C = [
473
- ((a = g[m]) == null ? void 0 : a.getBoundingClientRect().height) || 0,
474
- ((c = y[m]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
475
- ((l = w[m]) == null ? void 0 : l.getBoundingClientRect().height) || 0
476
- ], A = Math.max(...C);
477
- A > 0 && (g[m] && (g[m].style.height = `${A}px`), y[m] && (y[m].style.height = `${A}px`), w[m] && (w[m].style.height = `${A}px`));
470
+ const u = s ? Array.from(s.querySelectorAll("tbody tr")) : [], p = Array.from(e.querySelectorAll("tbody tr")), x = n ? Array.from(n.querySelectorAll("tbody tr")) : [], w = Math.max(u.length, p.length, x.length);
471
+ for (let m = 0; m < w; m++) {
472
+ const T = [
473
+ ((a = u[m]) == null ? void 0 : a.getBoundingClientRect().height) || 0,
474
+ ((c = p[m]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
475
+ ((l = x[m]) == null ? void 0 : l.getBoundingClientRect().height) || 0
476
+ ], A = Math.max(...T);
477
+ A > 0 && (u[m] && (u[m].style.height = `${A}px`), p[m] && (p[m].style.height = `${A}px`), x[m] && (x[m].style.height = `${A}px`));
478
478
  }
479
479
  }
480
- const r = t(this, R).querySelector(".ng-container-left .ng-part-footer table"), o = t(this, R).querySelector(".ng-container-body .ng-part-footer table"), i = t(this, R).querySelector(".ng-container-right .ng-part-footer table");
481
- if (o) {
482
- const g = r ? Array.from(r.querySelectorAll("tfoot tr")) : [], y = Array.from(o.querySelectorAll("tfoot tr")), w = i ? Array.from(i.querySelectorAll("tfoot tr")) : [], v = Math.max(g.length, y.length, w.length);
483
- for (let m = 0; m < v; m++) {
484
- const C = [
485
- ((d = g[m]) == null ? void 0 : d.getBoundingClientRect().height) || 0,
486
- ((u = y[m]) == null ? void 0 : u.getBoundingClientRect().height) || 0,
487
- ((b = w[m]) == null ? void 0 : b.getBoundingClientRect().height) || 0
488
- ], A = Math.max(...C);
489
- A > 0 && (g[m] && (g[m].style.height = `${A}px`), y[m] && (y[m].style.height = `${A}px`), w[m] && (w[m].style.height = `${A}px`));
480
+ const o = t(this, R).querySelector(".ng-container-left .ng-part-footer table"), i = t(this, R).querySelector(".ng-container-body .ng-part-footer table"), r = t(this, R).querySelector(".ng-container-right .ng-part-footer table");
481
+ if (i) {
482
+ const u = o ? Array.from(o.querySelectorAll("tfoot tr")) : [], p = Array.from(i.querySelectorAll("tfoot tr")), x = r ? Array.from(r.querySelectorAll("tfoot tr")) : [], w = Math.max(u.length, p.length, x.length);
483
+ for (let m = 0; m < w; m++) {
484
+ const T = [
485
+ ((g = u[m]) == null ? void 0 : g.getBoundingClientRect().height) || 0,
486
+ ((f = p[m]) == null ? void 0 : f.getBoundingClientRect().height) || 0,
487
+ ((b = x[m]) == null ? void 0 : b.getBoundingClientRect().height) || 0
488
+ ], A = Math.max(...T);
489
+ A > 0 && (u[m] && (u[m].style.height = `${A}px`), p[m] && (p[m].style.height = `${A}px`), x[m] && (x[m].style.height = `${A}px`));
490
490
  }
491
491
  }
492
492
  }, "#syncRowHeights"));
493
- f(this, te, /* @__PURE__ */ h(() => {
494
- !t(this, R) || !(t(this, R) instanceof HTMLElement) || (p(this, X, new ResizeObserver((n) => {
495
- for (const e of n) {
496
- const s = e.target;
497
- if (!s.classList.contains("active")) continue;
498
- const r = e.contentRect.height;
499
- if (r > 0) {
500
- let o = 0;
501
- const i = s.querySelector(".ng-part-header"), a = s.querySelector(".ng-part-footer");
502
- i && (o += i.offsetHeight), a && (o += a.offsetHeight);
503
- const c = Math.max(r - o, 100);
504
- t(this, ot) !== c && (p(this, ot, c), t(this, It).call(this), t(this, D) !== null && (t(this, Ht).call(this), this.refresh()));
493
+ d(this, ne, /* @__PURE__ */ h(() => {
494
+ !t(this, R) || !(t(this, R) instanceof HTMLElement) || (y(this, G, new ResizeObserver((s) => {
495
+ for (const e of s) {
496
+ const n = e.target;
497
+ if (!n.classList.contains("active")) continue;
498
+ const o = e.contentRect.height;
499
+ if (o > 0) {
500
+ let i = 0;
501
+ const r = n.querySelector(".ng-part-header"), a = n.querySelector(".ng-part-footer");
502
+ r && (i += r.offsetHeight), a && (i += a.offsetHeight);
503
+ const c = Math.max(o - i, 100);
504
+ t(this, at) !== c && (y(this, at, c), t(this, Ht).call(this), t(this, O) !== null && (t(this, $t).call(this), this.refresh()));
505
505
  }
506
506
  }
507
- })), t(this, X).observe(t(this, R)));
507
+ })), t(this, G).observe(t(this, R)));
508
508
  }, "#initResizeObserver"));
509
- f(this, Ht, /* @__PURE__ */ h(() => {
510
- S.log("rowManager.#renderAllContainers"), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((n) => {
511
- const e = t(this, R).querySelector(n);
512
- e && e.querySelector(".ng-part-body tbody.bindable-tbody") && t(this, Jt).call(this, e, n);
513
- }), t(this, ee).call(this), t(this, Qt).call(this);
509
+ d(this, $t, /* @__PURE__ */ h(() => {
510
+ S.log("rowManager.#renderAllContainers"), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((s) => {
511
+ const e = t(this, R).querySelector(s);
512
+ e && e.querySelector(".ng-part-body tbody.bindable-tbody") && t(this, ee).call(this, e, s);
513
+ }), t(this, re).call(this), t(this, se).call(this);
514
514
  }, "#renderAllContainers"));
515
- f(this, Fe, /* @__PURE__ */ h((n) => {
515
+ d(this, Ve, /* @__PURE__ */ h((s) => {
516
516
  [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((e) => {
517
517
  var l;
518
- const s = t(this, R).querySelector(e);
519
- if (!s) return;
520
- const r = s.querySelector(".ng-part-body tbody.bindable-tbody");
521
- if (!r) return;
522
- const o = Array.from(r.querySelectorAll("tr:not(.nodata)")), i = ((l = t(this, P).get(e)) == null ? void 0 : l.length) || 1, c = (t(this, j).data.get() || []).length;
523
- o.forEach((d, u) => {
524
- const b = n + Math.floor(u / i);
518
+ const n = t(this, R).querySelector(e);
519
+ if (!n) return;
520
+ const o = n.querySelector(".ng-part-body tbody.bindable-tbody");
521
+ if (!o) return;
522
+ const i = Array.from(o.querySelectorAll("tr:not(.nodata)")), r = ((l = t(this, j).get(e)) == null ? void 0 : l.length) || 1, c = (t(this, V).data.get() || []).length;
523
+ i.forEach((g, f) => {
524
+ const b = s + Math.floor(f / r);
525
525
  if (b >= c) {
526
- d.style.visibility = "hidden";
526
+ g.style.visibility = "hidden";
527
527
  return;
528
528
  }
529
- const g = t(this, j).data.get(b);
530
- d.style.display = "", t(this, Mt).call(this, d, g, b);
529
+ const u = t(this, V).data.get(b);
530
+ g.style.display = "", t(this, Nt).call(this, g, u, b);
531
531
  });
532
532
  });
533
533
  }, "#adjustBufferRows"));
534
- f(this, bt, /* @__PURE__ */ h((n) => {
535
- var u, b;
536
- const e = t(this, D);
534
+ d(this, yt, /* @__PURE__ */ h((s) => {
535
+ var f, b;
536
+ const e = t(this, O);
537
537
  if (!e || e <= 0) return;
538
- const s = t(this, j).data.length;
539
- if (s === 0) return;
540
- const r = ((u = t(this, P).get(".ng-container-body")) == null ? void 0 : u.length) || 1, o = t(this, R).querySelector(".ng-container-body .ng-part-body");
541
- S.log("bodyContainer.clientHeight", o.clientHeight);
542
- const i = Math.max(0, s - Math.floor(o.clientHeight / e)), a = Math.min(i, Math.max(0, Math.floor(n / e)));
538
+ const n = t(this, V).data.length;
539
+ if (n === 0) return;
540
+ const o = ((f = t(this, j).get(".ng-container-body")) == null ? void 0 : f.length) || 1, i = t(this, R).querySelector(".ng-container-body .ng-part-body");
541
+ S.log("bodyContainer.clientHeight", i.clientHeight);
542
+ const r = Math.max(0, n - Math.floor(i.clientHeight / e)), a = Math.min(r, Math.max(0, Math.floor(s / e)));
543
543
  let c = Math.floor(a * e);
544
- S.log(`📜 [Scroll Calc] maxStartIndex: ${i}, startIndex: ${a}, offsetY: ${c}`), a === i && S.log(`📜 [Scroll Inspect] scrollTop: ${n}, rowHeight: ${e}, maxStartIndex: ${i}, startIndex: ${a}, offsetY: ${c}`);
545
- const l = t(this, rt).firstTr, d = l && l.dataset.row !== void 0 ? parseInt(l.dataset.row, 10) : -1;
546
- (b = t(this, rt)) == null || b.scrollTables.forEach((g) => {
547
- g.style.transform = `translate3d(0, ${c}px, 0)`;
548
- }), d !== a && (S.log(`🔄 [Row Bind Trigger] currentStartIndex(${d}) !== startIndex(${a})`), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((g) => {
549
- const y = t(this, R).querySelector(g);
550
- if (!y) return;
551
- const w = y.querySelector(".ng-part-body tbody.bindable-tbody");
552
- if (!w) return;
553
- Array.from(w.querySelectorAll("tr:not(.nodata)")).forEach((m, C) => {
554
- const A = a + Math.floor(C / r);
555
- if (A >= s) {
544
+ S.log(`📜 [Scroll Calc] maxStartIndex: ${r}, startIndex: ${a}, offsetY: ${c}`), a === r && S.log(`📜 [Scroll Inspect] scrollTop: ${s}, rowHeight: ${e}, maxStartIndex: ${r}, startIndex: ${a}, offsetY: ${c}`);
545
+ const l = t(this, it).firstTr, g = l && l.dataset.row !== void 0 ? parseInt(l.dataset.row, 10) : -1;
546
+ (b = t(this, it)) == null || b.scrollTables.forEach((u) => {
547
+ u.style.transform = `translate3d(0, ${c}px, 0)`;
548
+ }), g !== a && (S.log(`🔄 [Row Bind Trigger] currentStartIndex(${g}) !== startIndex(${a})`), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((u) => {
549
+ const p = t(this, R).querySelector(u);
550
+ if (!p) return;
551
+ const x = p.querySelector(".ng-part-body tbody.bindable-tbody");
552
+ if (!x) return;
553
+ Array.from(x.querySelectorAll("tr:not(.nodata)")).forEach((m, T) => {
554
+ const A = a + Math.floor(T / o);
555
+ if (A >= n) {
556
556
  m.style.display = "none";
557
557
  return;
558
558
  }
559
- const H = t(this, j).data.get(A);
560
- m.style.display = "", t(this, Mt).call(this, m, H, A);
559
+ const M = t(this, V).data.get(A);
560
+ m.style.display = "", t(this, Nt).call(this, m, M, A);
561
561
  });
562
562
  }));
563
563
  }, "#handleScroll"));
@@ -575,440 +575,471 @@ const Qe = class Qe {
575
575
  cell.dataset.row = dataIndex;
576
576
  });
577
577
  }; */
578
- f(this, Mt, /* @__PURE__ */ h((n, e, s) => {
579
- n.dataset.row = s, n.data = e, Array.from(n.cells).forEach((r, o) => {
580
- r.dataset.row = s;
581
- const i = Array.from(r.children).find((a) => a.tagName.toLowerCase().startsWith("cell-") || typeof a.refresh == "function");
582
- i && typeof i.refresh == "function" && i.refresh();
578
+ d(this, Nt, /* @__PURE__ */ h((s, e, n) => {
579
+ s.dataset.row = n, s.data = e, Array.from(s.cells).forEach((o, i) => {
580
+ o.dataset.row = n;
581
+ const r = Array.from(o.children).find((a) => a.tagName.toLowerCase().startsWith("cell-") || typeof a.refresh == "function");
582
+ r && typeof r.refresh == "function" && r.refresh();
583
583
  });
584
584
  }, "#bindRowData"));
585
- f(this, ee, /* @__PURE__ */ h(() => {
586
- var c, l, d;
585
+ d(this, re, /* @__PURE__ */ h(() => {
586
+ var c, l, g;
587
587
  S.log("rowManager.#syncHeaderHeights");
588
- const n = t(this, R).querySelector(".ng-container-left .ng-part-header table"), e = t(this, R).querySelector(".ng-container-body .ng-part-header table"), s = t(this, R).querySelector(".ng-container-right .ng-part-header table");
588
+ const s = t(this, R).querySelector(".ng-container-left .ng-part-header table"), e = t(this, R).querySelector(".ng-container-body .ng-part-header table"), n = t(this, R).querySelector(".ng-container-right .ng-part-header table");
589
589
  if (!e) return;
590
- const r = n ? Array.from(n.querySelectorAll("tr")) : [], o = Array.from(e.querySelectorAll("tr")), i = s ? Array.from(s.querySelectorAll("tr")) : [], a = Math.max(r.length, o.length, i.length);
591
- for (let u = 0; u < a; u++) {
590
+ const o = s ? Array.from(s.querySelectorAll("tr")) : [], i = Array.from(e.querySelectorAll("tr")), r = n ? Array.from(n.querySelectorAll("tr")) : [], a = Math.max(o.length, i.length, r.length);
591
+ for (let f = 0; f < a; f++) {
592
592
  const b = [
593
- ((c = r[u]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
594
- ((l = o[u]) == null ? void 0 : l.getBoundingClientRect().height) || 0,
595
- ((d = i[u]) == null ? void 0 : d.getBoundingClientRect().height) || 0
596
- ], g = Math.max(...b);
597
- g > 0 && (r[u] && (r[u].style.height = `${g}px`), o[u] && (o[u].style.height = `${g}px`), i[u] && (i[u].style.height = `${g}px`));
593
+ ((c = o[f]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
594
+ ((l = i[f]) == null ? void 0 : l.getBoundingClientRect().height) || 0,
595
+ ((g = r[f]) == null ? void 0 : g.getBoundingClientRect().height) || 0
596
+ ], u = Math.max(...b);
597
+ u > 0 && (o[f] && (o[f].style.height = `${u}px`), i[f] && (i[f].style.height = `${u}px`), r[f] && (r[f].style.height = `${u}px`));
598
598
  }
599
599
  }, "#syncHeaderHeights"));
600
600
  q(this, "destroy", /* @__PURE__ */ h(() => {
601
- t(this, X) && (t(this, X).disconnect(), p(this, X, null));
601
+ t(this, G) && (t(this, G).disconnect(), y(this, G, null));
602
602
  }, "destroy"));
603
- p(this, j, n.getRootNode().host), p(this, R, n), t(this, te).call(this);
603
+ y(this, V, s.getRootNode().host), y(this, R, s), t(this, ne).call(this);
604
604
  }
605
605
  getRowHeight() {
606
- return t(this, D);
606
+ return t(this, O);
607
607
  }
608
- templateLength(n = ".ng-container-body") {
608
+ templateLength(s = ".ng-container-body") {
609
609
  var e;
610
- return ((e = t(this, P).get(n)) == null ? void 0 : e.length) || 1;
610
+ return ((e = t(this, j).get(s)) == null ? void 0 : e.length) || 1;
611
611
  }
612
612
  };
613
- j = new WeakMap(), R = new WeakMap(), rt = new WeakMap(), P = new WeakMap(), D = new WeakMap(), X = new WeakMap(), ot = new WeakMap(), Ct = new WeakMap(), Be = new WeakMap(), Pe = new WeakMap(), Zt = new WeakMap(), Jt = new WeakMap(), kt = new WeakMap(), Lt = new WeakMap(), It = new WeakMap(), Qt = new WeakMap(), te = new WeakMap(), Ht = new WeakMap(), Fe = new WeakMap(), bt = new WeakMap(), Mt = new WeakMap(), ee = new WeakMap(), h(Qe, "RowManager");
614
- let qe = Qe;
615
- const se = class se {
613
+ V = new WeakMap(), R = new WeakMap(), it = new WeakMap(), j = new WeakMap(), O = new WeakMap(), G = new WeakMap(), at = new WeakMap(), It = new WeakMap(), je = new WeakMap(), Ye = new WeakMap(), te = new WeakMap(), ee = new WeakMap(), Lt = new WeakMap(), Mt = new WeakMap(), Ht = new WeakMap(), se = new WeakMap(), ne = new WeakMap(), $t = new WeakMap(), Ve = new WeakMap(), yt = new WeakMap(), Nt = new WeakMap(), re = new WeakMap(), h(ss, "RowManager");
614
+ let ke = ss;
615
+ const oe = class oe {
616
616
  /**
617
617
  * 🎯 레이아웃 내의 여러 rawTables 배열을 일괄로 받아 단일 마스터 템플릿으로 사전 컴파일합니다.
618
618
  */
619
- static compileAll(n) {
620
- return Array.isArray(n) ? n.map((e) => se.compile(e)) : [];
619
+ static compileAll(s) {
620
+ return Array.isArray(s) ? s.map((e) => oe.compile(e)) : [];
621
621
  }
622
622
  /**
623
623
  * 🎯 단일 원본 테이블을 받아 기본 구조 보정 및 2차원 격자 인덱스 사전 부여 완료된 마스터 테이블 반환
624
624
  */
625
- static compile(n) {
626
- if (!n) return null;
625
+ static compile(s) {
626
+ if (!s) return null;
627
627
  const e = /* @__PURE__ */ h((a) => {
628
628
  a.querySelectorAll("tbody td, tbody th, tfoot td, tfoot th").forEach((l) => {
629
- const d = l.getAttribute("cell-type") || "renderer";
629
+ const g = l.getAttribute("cell-type") || "renderer";
630
630
  if (l.children.length > 0 && l.firstElementChild.tagName.includes("-")) return;
631
- let u = `cell-${d}`;
632
- const b = l.getAttribute("data-bind"), g = l.getAttribute("data-expr"), y = l.getAttribute("maxbyte"), w = l.getAttribute("type");
633
- let v = [];
634
- b && v.push(`data-bind="${b}"`), g && v.push(`data-expr="${g}"`), y && v.push(`maxbyte="${y}"`), w && v.push(`type="${w}"`), l.innerHTML = `<${u} ${v.join(" ")}></${u}>`;
631
+ let f = `cell-${g}`;
632
+ const b = l.getAttribute("data-bind"), u = l.getAttribute("data-expr"), p = l.getAttribute("maxbyte"), x = l.getAttribute("type");
633
+ let w = [];
634
+ b && w.push(`data-bind="${b}"`), u && w.push(`data-expr="${u}"`), p && w.push(`maxbyte="${p}"`), x && w.push(`type="${x}"`), l.innerHTML = `<${f} ${w.join(" ")}></${f}>`;
635
635
  }), a.querySelectorAll("tbody td, tfoot td").forEach((l) => {
636
636
  l.setAttribute("tabindex", "0");
637
637
  });
638
- }, "processCellTypes"), s = /* @__PURE__ */ h((a) => {
638
+ }, "processCellTypes"), n = /* @__PURE__ */ h((a) => {
639
639
  if (!a.querySelector("colgroup")) {
640
- const c = a.querySelector("tbody tr") || a.querySelector("tr"), l = c ? c.querySelectorAll("th, td").length : 1, d = document.createElement("colgroup"), u = Math.max(Math.floor(a.clientWidth / l), 100);
640
+ const c = a.querySelector("tbody tr") || a.querySelector("tr"), l = c ? c.querySelectorAll("th, td").length : 1, g = document.createElement("colgroup"), f = Math.max(Math.floor(a.clientWidth / l), 100);
641
641
  for (let b = 0; b < l; b++) {
642
- const g = document.createElement("col");
643
- g.setAttribute("width", u), d.appendChild(g);
642
+ const u = document.createElement("col");
643
+ u.setAttribute("width", f), g.appendChild(u);
644
644
  }
645
- a.prepend(d);
645
+ a.prepend(g);
646
646
  }
647
647
  if (!a.querySelector("thead")) {
648
648
  const c = document.createElement("thead"), l = a.querySelector("colgroup");
649
649
  l ? l.after(c) : a.prepend(c);
650
650
  }
651
651
  a.classList.add("nine-table-element");
652
- }, "ensureTableStructure"), r = /* @__PURE__ */ h((a, c) => {
653
- const l = Array.from(a.querySelectorAll(c + " tr")), d = Array.from(a.querySelectorAll(c + " th," + c + " td")), u = l.length;
654
- if (u === 0 || d.length === 0) return;
652
+ }, "ensureTableStructure"), o = /* @__PURE__ */ h((a, c) => {
653
+ const l = Array.from(a.querySelectorAll(c + " tr")), g = Array.from(a.querySelectorAll(c + " th," + c + " td")), f = l.length;
654
+ if (f === 0 || g.length === 0) return;
655
655
  let b = 0;
656
- d.forEach((y) => {
657
- b += y.colSpan || 1;
656
+ g.forEach((p) => {
657
+ b += p.colSpan || 1;
658
658
  });
659
- const g = Array.from(Array(u), () => Array(b).fill(null));
660
- l.forEach((y) => {
661
- const w = y.sectionRowIndex;
662
- let v = 0;
663
- Array.from(y.querySelectorAll("th,td")).forEach((m) => {
664
- for (let H = 0; H < g[w].length; H++)
665
- if (g[w][H] === null) {
666
- v = H;
659
+ const u = Array.from(Array(f), () => Array(b).fill(null));
660
+ l.forEach((p) => {
661
+ const x = p.sectionRowIndex;
662
+ let w = 0;
663
+ Array.from(p.querySelectorAll("th,td")).forEach((m) => {
664
+ for (let M = 0; M < u[x].length; M++)
665
+ if (u[x][M] === null) {
666
+ w = M;
667
667
  break;
668
668
  }
669
- const C = m.rowSpan || 1, A = m.colSpan || 1;
670
- for (let H = 0; H < C; H++)
671
- for (let ut = 0; ut < A; ut++)
672
- w + H < u && v + ut < b && (g[w + H][v + ut] = H === 0 && ut === 0 ? "1" : "0");
669
+ const T = m.rowSpan || 1, A = m.colSpan || 1;
670
+ for (let M = 0; M < T; M++)
671
+ for (let W = 0; W < A; W++)
672
+ x + M < f && w + W < b && (u[x + M][w + W] = M === 0 && W === 0 ? "1" : "0");
673
673
  });
674
- }), l.forEach((y) => {
675
- const w = y.sectionRowIndex;
676
- Array.from(y.querySelectorAll("th,td")).forEach((v) => {
677
- for (let m = 0; m < g[w].length; m++)
678
- if (g[w][m] === "1") {
679
- v.dataset.col = m, g[w][m] = "0";
674
+ }), l.forEach((p) => {
675
+ const x = p.sectionRowIndex;
676
+ Array.from(p.querySelectorAll("th,td")).forEach((w) => {
677
+ for (let m = 0; m < u[x].length; m++)
678
+ if (u[x][m] === "1") {
679
+ w.dataset.col = m, u[x][m] = "0";
680
680
  break;
681
681
  }
682
682
  });
683
683
  });
684
- }, "resetColIndex"), o = n.cloneNode(!0);
685
- return s(o), e(o), r(o, "thead"), r(o, "tbody"), r(o, "tfoot"), Array.from(o.querySelectorAll("colgroup col")).forEach((a, c) => {
684
+ }, "resetColIndex"), i = s.cloneNode(!0);
685
+ return n(i), e(i), o(i, "thead"), o(i, "tbody"), o(i, "tfoot"), Array.from(i.querySelectorAll("colgroup col")).forEach((a, c) => {
686
686
  const l = a.getAttribute("fixed");
687
- l && o.querySelectorAll(`thead [data-col="${c}"], tbody [data-col="${c}"], tfoot [data-col="${c}"]`).forEach((d) => {
688
- d.setAttribute("fixed", l);
687
+ l && i.querySelectorAll(`thead [data-col="${c}"], tbody [data-col="${c}"], tfoot [data-col="${c}"]`).forEach((g) => {
688
+ g.setAttribute("fixed", l);
689
689
  });
690
- }), o;
690
+ }), i;
691
691
  }
692
692
  // 🎯 [추가] td/th에 선언된 cell-type 속성을 읽어 커스텀 태그로 자동 감싸기
693
693
  };
694
- h(se, "TableCompiler");
695
- let Te = se;
696
- var N, Y, V, At, ms;
697
- const ts = class ts {
698
- constructor(n) {
699
- f(this, V);
700
- f(this, N);
701
- f(this, Y, { startRow: -1, startCol: -1, endRow: -1, endCol: -1 });
694
+ h(oe, "TableCompiler");
695
+ let Ie = oe;
696
+ var N, U, X, Et, xs;
697
+ const ns = class ns {
698
+ constructor(s) {
699
+ d(this, X);
700
+ d(this, N);
701
+ d(this, U, { startRow: -1, startCol: -1, endRow: -1, endCol: -1 });
702
702
  q(this, "render", /* @__PURE__ */ h(() => {
703
- const { startRow: n, startCol: e, endRow: s, endCol: r } = t(this, Y);
704
- S.log("🎨 [CellSelection.render] Rendering range ->", t(this, Y));
705
- const o = t(this, N).querySelectorAll(
703
+ const { startRow: s, startCol: e, endRow: n, endCol: o } = t(this, U);
704
+ S.log("🎨 [CellSelection.render] Rendering range ->", t(this, U));
705
+ const i = t(this, N).querySelectorAll(
706
706
  ".ng-container-left .ng-part-body, .ng-container-body .ng-part-body, .ng-container-right .ng-part-body"
707
707
  );
708
- if (o.forEach((a) => {
708
+ if (i.forEach((a) => {
709
709
  a.querySelectorAll(".selected, .selected-top, .selected-bottom, .selected-left, .selected-right").forEach((c) => {
710
710
  c.classList.remove("selected", "selected-top", "selected-bottom", "selected-left", "selected-right");
711
711
  });
712
- }), n < 0 || e < 0) {
712
+ }), s < 0 || e < 0) {
713
713
  S.log("⚠️ [CellSelection.render] Range is invalid (< 0), skipping render.");
714
714
  return;
715
715
  }
716
- let i = 0;
717
- o.forEach((a) => {
716
+ let r = 0;
717
+ i.forEach((a) => {
718
718
  a.querySelectorAll("tbody tr").forEach((c) => {
719
- const { matrixRow: l } = Z(this, V, At).call(this, c);
720
- l < 0 || c.querySelectorAll("td, th").forEach((d) => {
721
- const u = parseInt(d.dataset.col, 10);
722
- if (isNaN(u)) return;
723
- const b = parseInt(d.rowSpan || 1, 10), g = parseInt(d.colSpan || 1, 10), y = l + b - 1, w = u + g - 1;
724
- y >= n && l <= s && w >= e && u <= r && (i++, d.classList.add("selected"), S.log(d, n, e, s, r), l <= n && d.classList.add("selected-top"), y >= s && d.classList.add("selected-bottom"), u <= e && d.classList.add("selected-left"), w >= r && d.classList.add("selected-right"));
719
+ const { matrixRow: l } = Q(this, X, Et).call(this, c);
720
+ l < 0 || c.querySelectorAll("td, th").forEach((g) => {
721
+ const f = parseInt(g.dataset.col, 10);
722
+ if (isNaN(f)) return;
723
+ const b = parseInt(g.rowSpan || 1, 10), u = parseInt(g.colSpan || 1, 10), p = l + b - 1, x = f + u - 1;
724
+ p >= s && l <= n && x >= e && f <= o && (r++, g.classList.add("selected"), S.log(g, s, e, n, o), l <= s && g.classList.add("selected-top"), p >= n && g.classList.add("selected-bottom"), f <= e && g.classList.add("selected-left"), x >= o && g.classList.add("selected-right"));
725
725
  });
726
726
  });
727
- }), S.log(`✨ [CellSelection.render] Total rendered cells marked: ${i}`);
727
+ }), S.log(`✨ [CellSelection.render] Total rendered cells marked: ${r}`);
728
728
  }, "render"));
729
- p(this, N, n), Z(this, V, ms).call(this), t(this, N).querySelectorAll(
729
+ y(this, N, s), Q(this, X, xs).call(this), t(this, N).querySelectorAll(
730
730
  ".ng-container-left .ng-part-body, .ng-container-body .ng-part-body, .ng-container-right .ng-part-body"
731
- ).forEach((s) => {
732
- s.addEventListener("scroll", () => {
733
- t(this, Y).startRow >= 0 && t(this, Y).startCol >= 0 && this.render();
731
+ ).forEach((n) => {
732
+ n.addEventListener("scroll", () => {
733
+ t(this, U).startRow >= 0 && t(this, U).startCol >= 0 && this.render();
734
734
  });
735
735
  }), S.log("🎯 [CellSelection] Initialized");
736
736
  }
737
- setRange(n, e, s, r) {
738
- S.log(`🔍 [CellSelection.setRange] Input -> startRow: ${n}, startCol: ${e}, endRow: ${s}, endCol: ${r}`);
739
- let o = Math.min(n, s), i = Math.max(n, s), a = Math.min(e, r), c = Math.max(e, r);
737
+ setRange(s, e, n, o) {
738
+ S.log(`🔍 [CellSelection.setRange] Input -> startRow: ${s}, startCol: ${e}, endRow: ${n}, endCol: ${o}`);
739
+ let i = Math.min(s, n), r = Math.max(s, n), a = Math.min(e, o), c = Math.max(e, o);
740
740
  const l = t(this, N).querySelectorAll(
741
741
  ".ng-container-left .ng-part-body, .ng-container-body .ng-part-body, .ng-container-right .ng-part-body"
742
742
  );
743
- let d = !0, u = 0;
744
- for (; d && u < 5; )
745
- d = !1, u++, l.forEach((b) => {
746
- b.querySelectorAll("tbody tr").forEach((g) => {
747
- if (g.classList.contains("nodata")) return;
748
- const { matrixRow: y } = Z(this, V, At).call(this, g);
749
- y < 0 || g.querySelectorAll("td, th").forEach((w) => {
750
- const v = parseInt(w.dataset.col, 10);
751
- if (isNaN(v)) return;
752
- const m = parseInt(w.rowSpan || 1, 10), C = parseInt(w.colSpan || 1, 10), A = y + m - 1, H = v + C - 1;
753
- if (A >= o && y <= i && H >= a && v <= c) {
754
- const ds = Math.min(o, y), fs = Math.max(i, A), us = Math.min(a, v), gs = Math.max(c, H);
755
- (ds !== o || fs !== i || us !== a || gs !== c) && (o = ds, i = fs, a = us, c = gs, d = !0);
743
+ let g = !0, f = 0;
744
+ for (; g && f < 5; )
745
+ g = !1, f++, l.forEach((b) => {
746
+ b.querySelectorAll("tbody tr").forEach((u) => {
747
+ if (u.classList.contains("nodata")) return;
748
+ const { matrixRow: p } = Q(this, X, Et).call(this, u);
749
+ p < 0 || u.querySelectorAll("td, th").forEach((x) => {
750
+ const w = parseInt(x.dataset.col, 10);
751
+ if (isNaN(w)) return;
752
+ const m = parseInt(x.rowSpan || 1, 10), T = parseInt(x.colSpan || 1, 10), A = p + m - 1, M = w + T - 1;
753
+ if (A >= i && p <= r && M >= a && w <= c) {
754
+ const B = Math.min(i, p), Kt = Math.max(r, A), gs = Math.min(a, w), bs = Math.max(c, M);
755
+ (B !== i || Kt !== r || gs !== a || bs !== c) && (i = B, r = Kt, a = gs, c = bs, g = !0);
756
756
  }
757
757
  });
758
758
  });
759
759
  });
760
- p(this, Y, { startRow: o, startCol: a, endRow: i, endCol: c }), S.log("📦 [CellSelection.setRange] Final Range ->", t(this, Y)), this.render();
760
+ y(this, U, { startRow: i, startCol: a, endRow: r, endCol: c }), S.log("📦 [CellSelection.setRange] Final Range ->", t(this, U)), this.render();
761
761
  }
762
762
  };
763
- N = new WeakMap(), Y = new WeakMap(), V = new WeakSet(), At = /* @__PURE__ */ h(function(n) {
764
- if (!n || n.classList.contains("nodata")) return { dataRow: -1, subRowIndex: -1, matrixRow: -1 };
765
- const e = parseInt(n.dataset.row, 10);
763
+ N = new WeakMap(), U = new WeakMap(), X = new WeakSet(), Et = /* @__PURE__ */ h(function(s) {
764
+ if (!s || s.classList.contains("nodata")) return { dataRow: -1, subRowIndex: -1, matrixRow: -1 };
765
+ const e = parseInt(s.dataset.row, 10);
766
766
  if (isNaN(e)) return { dataRow: -1, subRowIndex: -1, matrixRow: -1 };
767
- const s = n.closest("tbody"), o = Array.from(s.querySelectorAll("tr:not(.nodata)")).filter((l) => parseInt(l.dataset.row, 10) === e), i = o.indexOf(n), a = o.length > 0 ? o.length : 1, c = e * a + (i >= 0 ? i : n.sectionRowIndex % a);
768
- return { dataRow: e, subRowIndex: i, matrixRow: c };
769
- }, "#getMatrixRow"), ms = /* @__PURE__ */ h(function() {
770
- const n = t(this, N).querySelector(".ng-container-top");
771
- if (!n) {
767
+ const n = s.closest("tbody"), i = Array.from(n.querySelectorAll("tr:not(.nodata)")).filter((l) => parseInt(l.dataset.row, 10) === e), r = i.indexOf(s), a = i.length > 0 ? i.length : 1, c = e * a + (r >= 0 ? r : s.sectionRowIndex % a);
768
+ return { dataRow: e, subRowIndex: r, matrixRow: c };
769
+ }, "#getMatrixRow"), xs = /* @__PURE__ */ h(function() {
770
+ const s = t(this, N).querySelector(".ng-container-top");
771
+ if (!s) {
772
772
  S.log("❌ [CellSelection] .ng-container-top not found!");
773
773
  return;
774
774
  }
775
- n.addEventListener("mousedown", (e) => {
775
+ s.addEventListener("mousedown", (e) => {
776
776
  if (e.button !== 0) return;
777
- const s = e.target.closest("td, th");
778
- if (!s || s.dataset.row === void 0 || s.dataset.col === void 0 || s.closest("tr").classList.contains("nodata")) return;
777
+ const n = e.target.closest("td, th");
778
+ if (!n || n.dataset.row === void 0 || n.dataset.col === void 0 || n.closest("tr").classList.contains("nodata")) return;
779
779
  t(this, N).style.userSelect = "none", t(this, N).style.webkitUserSelect = "none";
780
- const r = s.closest("tr"), { matrixRow: o } = Z(this, V, At).call(this, r), i = parseInt(s.dataset.col, 10);
781
- if (o < 0) {
780
+ const o = n.closest("tr"), { matrixRow: i } = Q(this, X, Et).call(this, o), r = parseInt(n.dataset.col, 10);
781
+ if (i < 0) {
782
782
  t(this, N).style.userSelect = "", t(this, N).style.webkitUserSelect = "";
783
783
  return;
784
784
  }
785
- S.log(`🖱️ [MouseDown Success] startRow: ${o}, startCol: ${i}`), t(this, N).navigation.currentCell = s;
786
- let a = o, c = i;
787
- const l = /* @__PURE__ */ h((u) => {
788
- const b = document.elementFromPoint(u.clientX, u.clientY);
789
- let g = b == null ? void 0 : b.closest("td, th");
790
- if (!g || !t(this, N).contains(g)) {
785
+ S.log(`🖱️ [MouseDown Success] startRow: ${i}, startCol: ${r}`), t(this, N).navigation.currentCell = n;
786
+ let a = i, c = r;
787
+ const l = /* @__PURE__ */ h((f) => {
788
+ const b = document.elementFromPoint(f.clientX, f.clientY);
789
+ let u = b == null ? void 0 : b.closest("td, th");
790
+ if (!u || !t(this, N).contains(u)) {
791
791
  const m = t(this, N).querySelectorAll(".ng-part-body tbody tr:not(.nodata) td, .ng-part-body tbody tr:not(.nodata) th");
792
- for (const C of m) {
793
- const A = C.getBoundingClientRect();
794
- if (u.clientX >= A.left && u.clientX <= A.right && u.clientY >= A.top && u.clientY <= A.bottom) {
795
- g = C;
792
+ for (const T of m) {
793
+ const A = T.getBoundingClientRect();
794
+ if (f.clientX >= A.left && f.clientX <= A.right && f.clientY >= A.top && f.clientY <= A.bottom) {
795
+ u = T;
796
796
  break;
797
797
  }
798
798
  }
799
799
  }
800
- if (!g || g.dataset.row === void 0 || g.dataset.col === void 0 || g.closest("tr").classList.contains("nodata")) return;
801
- const y = g.closest("tr"), { matrixRow: w } = Z(this, V, At).call(this, y), v = parseInt(g.dataset.col, 10);
802
- w < 0 || a === w && c === v || (a = w, c = v, this.setRange(o, i, w, v));
803
- }, "onMouseMove"), d = /* @__PURE__ */ h(() => {
804
- S.log("🖱️ [MouseUp] Drag ended."), t(this, N).style.userSelect = "", t(this, N).style.webkitUserSelect = "", document.removeEventListener("mousemove", l), document.removeEventListener("mouseup", d);
800
+ if (!u || u.dataset.row === void 0 || u.dataset.col === void 0 || u.closest("tr").classList.contains("nodata")) return;
801
+ const p = u.closest("tr"), { matrixRow: x } = Q(this, X, Et).call(this, p), w = parseInt(u.dataset.col, 10);
802
+ x < 0 || a === x && c === w || (a = x, c = w, this.setRange(i, r, x, w));
803
+ }, "onMouseMove"), g = /* @__PURE__ */ h(() => {
804
+ S.log("🖱️ [MouseUp] Drag ended."), t(this, N).style.userSelect = "", t(this, N).style.webkitUserSelect = "", document.removeEventListener("mousemove", l), document.removeEventListener("mouseup", g);
805
805
  }, "onMouseUp");
806
- document.addEventListener("mousemove", l), document.addEventListener("mouseup", d);
806
+ document.addEventListener("mousemove", l), document.addEventListener("mouseup", g);
807
807
  });
808
- }, "#initEvents"), h(ts, "CellSelection");
809
- let Ce = ts;
810
- var F, it, ne, re, $t, Nt, _t, Dt, oe, xs;
811
- const es = class es {
812
- constructor(n) {
813
- f(this, oe);
814
- f(this, F);
815
- f(this, it, null);
816
- f(this, ne, -1);
817
- f(this, re, -1);
818
- // 🎯 병합된 셀(colSpan) 범위를 완벽하게 고려한 다음 컬럼 탐색
819
- f(this, $t, /* @__PURE__ */ h((n, e, s) => {
820
- const r = t(this, _t).call(this, n, e);
821
- if (!r) return s + 1;
822
- let o = s + 1;
823
- const i = Array.from(r.querySelectorAll("td"));
824
- for (const a of i) {
825
- const c = parseInt(a.dataset.col, 10), l = parseInt(a.colSpan || 1, 10);
826
- if (s >= c && s < c + l) {
827
- o = c + l;
808
+ }, "#initEvents"), h(ns, "CellSelection");
809
+ let Le = ns;
810
+ var Y, lt, ie, ae, _t, Ot, Dt, ct, Wt, le, ws;
811
+ const rs = class rs {
812
+ constructor(s) {
813
+ d(this, le);
814
+ d(this, Y);
815
+ d(this, lt, null);
816
+ d(this, ie, -1);
817
+ d(this, ae, -1);
818
+ d(this, _t, /* @__PURE__ */ h((s) => {
819
+ const e = [];
820
+ return s.forEach((n) => e.push(...Array.from(n.querySelectorAll("td")))), e.length === 0 ? null : (e.sort((n, o) => parseInt(n.dataset.col, 10) - parseInt(o.dataset.col, 10)), e[e.length - 1]);
821
+ }, "#getMaxColCell"));
822
+ d(this, Ot, /* @__PURE__ */ h((s, e) => {
823
+ const n = t(this, ct).call(this, s);
824
+ if (n.length === 0) return e + 1;
825
+ let o = e + 1;
826
+ const i = [];
827
+ n.forEach((r) => i.push(...Array.from(r.querySelectorAll("td")))), i.sort((r, a) => parseInt(r.dataset.col, 10) - parseInt(a.dataset.col, 10));
828
+ for (const r of i) {
829
+ const a = parseInt(r.dataset.col, 10), c = parseInt(r.colSpan || 1, 10);
830
+ if (e >= a && e < a + c) {
831
+ o = a + c;
828
832
  break;
829
833
  }
830
834
  }
831
835
  return o;
832
836
  }, "#getNextCol"));
833
- // 🎯 병합된 셀(colSpan) 범위를 고려한 이전 컬럼 탐색
834
- f(this, Nt, /* @__PURE__ */ h((n, e, s) => {
835
- const r = t(this, _t).call(this, n, e);
836
- if (!r) return Math.max(0, s - 1);
837
- let o = Math.max(0, s - 1);
838
- const i = Array.from(r.querySelectorAll("td"));
839
- for (const a of i) {
840
- const c = parseInt(a.dataset.col, 10);
841
- if (c < s)
842
- o = c;
837
+ d(this, Dt, /* @__PURE__ */ h((s, e) => {
838
+ const n = t(this, ct).call(this, s);
839
+ if (n.length === 0) return Math.max(0, e - 1);
840
+ let o = -1;
841
+ const i = [];
842
+ n.forEach((r) => i.push(...Array.from(r.querySelectorAll("td")))), i.sort((r, a) => parseInt(r.dataset.col, 10) - parseInt(a.dataset.col, 10));
843
+ for (const r of i) {
844
+ const a = parseInt(r.dataset.col, 10);
845
+ if (a < e)
846
+ o = a;
843
847
  else
844
848
  break;
845
849
  }
846
850
  return o;
847
851
  }, "#getPreviousCol"));
848
- f(this, _t, /* @__PURE__ */ h((n, e) => {
849
- const s = t(this, F).querySelectorAll(
852
+ // 🎯 레거시의 병합 셀(rowSpan) 블록 포용 탐색 로직 이식
853
+ d(this, ct, /* @__PURE__ */ h((s) => {
854
+ const e = t(this, Y).querySelectorAll(
850
855
  ".ng-container-left .ng-part-body, .ng-container-body .ng-part-body, .ng-container-right .ng-part-body"
851
- );
852
- for (const r of s) {
853
- const i = Array.from(r.querySelectorAll("tbody tr:not(.nodata)")).filter((a) => parseInt(a.dataset.row, 10) === n);
854
- if (i[e])
855
- return i[e];
856
- }
857
- return null;
858
- }, "#findTargetTr"));
859
- f(this, Dt, /* @__PURE__ */ h((n, e, s) => {
860
- const r = t(this, F).querySelectorAll(
856
+ ), n = [];
857
+ return e.forEach((o) => {
858
+ const i = Array.from(o.querySelectorAll("tbody tr:not(.nodata)"));
859
+ for (const r of i) {
860
+ const a = parseInt(r.dataset.row, 10), c = i.filter((p) => parseInt(p.dataset.row, 10) === a), l = c.length > 0 ? c.length : 1, g = c.indexOf(r), f = a * l + (g >= 0 ? g : 0);
861
+ if (f === s) {
862
+ n.push(r);
863
+ break;
864
+ }
865
+ const b = Array.from(r.querySelectorAll("td"));
866
+ let u = !1;
867
+ for (const p of b) {
868
+ const x = parseInt(p.rowSpan || 1, 10);
869
+ if (x > 1 && s >= f && s < f + x) {
870
+ n.push(r), u = !0;
871
+ break;
872
+ }
873
+ }
874
+ if (u) break;
875
+ }
876
+ }), n;
877
+ }, "#findTargetTrsByMatrix"));
878
+ // 🎯 rowSpan 및 colSpan 경계를 모두 충족하는 셀을 3분할 전체 영역에서 탐색
879
+ d(this, Wt, /* @__PURE__ */ h((s, e, n, o) => {
880
+ const i = t(this, Y).querySelectorAll(
861
881
  ".ng-container-left .ng-part-body, .ng-container-body .ng-part-body, .ng-container-right .ng-part-body"
862
- );
863
- for (const o of r) {
864
- const c = Array.from(o.querySelectorAll("tbody tr:not(.nodata)")).filter((l) => parseInt(l.dataset.row, 10) === n)[e];
865
- if (c) {
866
- const l = Array.from(c.querySelectorAll("td"));
867
- for (const d of l) {
868
- const u = parseInt(d.dataset.col, 10), b = parseInt(d.colSpan || 1, 10);
869
- if (!isNaN(u) && s >= u && s < u + b && window.getComputedStyle(d).display !== "none")
870
- return d;
882
+ ), r = o !== void 0 ? o : s * 1 + e;
883
+ for (const a of i) {
884
+ const c = Array.from(a.querySelectorAll("tbody tr:not(.nodata)"));
885
+ for (const l of c) {
886
+ const g = parseInt(l.dataset.row, 10), f = c.filter((w) => parseInt(w.dataset.row, 10) === g), b = f.length > 0 ? f.length : 1, u = f.indexOf(l), p = g * b + (u >= 0 ? u : 0), x = Array.from(l.querySelectorAll("td"));
887
+ for (const w of x) {
888
+ const m = parseInt(w.dataset.col, 10), T = parseInt(w.colSpan || 1, 10), A = parseInt(w.rowSpan || 1, 10);
889
+ if (!isNaN(m) && n >= m && n < m + T && r >= p && r < p + A && window.getComputedStyle(w).display !== "none")
890
+ return w;
871
891
  }
872
892
  }
873
893
  }
874
894
  return null;
875
895
  }, "#getNearElement"));
876
- p(this, F, n), Z(this, oe, xs).call(this), S.log("🎯 [CellNavigation] Initialized");
896
+ y(this, Y, s), Q(this, le, ws).call(this), S.log("🎯 [CellNavigation] Initialized");
877
897
  }
878
898
  get currentCell() {
879
- return t(this, it);
880
- }
881
- set currentCell(n) {
882
- if (!n) return;
883
- p(this, it, n), n.focus({ preventScroll: !0 });
884
- const e = parseInt(n.dataset.row, 10), s = parseInt(n.dataset.col, 10);
885
- if (!isNaN(e) && !isNaN(s)) {
886
- p(this, ne, e), p(this, re, s);
887
- const r = n.closest("tr"), o = r == null ? void 0 : r.closest("tbody");
888
- if (o) {
889
- const a = Array.from(o.querySelectorAll("tr:not(.nodata)")).filter((u) => parseInt(u.dataset.row, 10) === e), c = a.length > 0 ? a.length : 1, l = a.indexOf(r), d = e * c + (l >= 0 ? l : 0);
890
- t(this, F).selection.setRange(d, s, d, s);
899
+ return t(this, lt);
900
+ }
901
+ set currentCell(s) {
902
+ if (!s) return;
903
+ y(this, lt, s), s.focus({ preventScroll: !0 });
904
+ const e = parseInt(s.dataset.row, 10), n = parseInt(s.dataset.col, 10);
905
+ if (!isNaN(e) && !isNaN(n)) {
906
+ y(this, ie, e), y(this, ae, n);
907
+ const o = s.closest("tr"), i = o == null ? void 0 : o.closest("tbody");
908
+ if (i) {
909
+ const a = Array.from(i.querySelectorAll("tr:not(.nodata)")).filter((f) => parseInt(f.dataset.row, 10) === e), c = a.length > 0 ? a.length : 1, l = a.indexOf(o), g = e * c + (l >= 0 ? l : 0);
910
+ t(this, Y).selection.setRange(g, n, g, n);
891
911
  }
892
912
  }
893
913
  }
894
- moveCell(n) {
895
- var w, v, m, C;
896
- if (!t(this, it)) return;
897
- const e = t(this, it), s = e.closest("tr"), r = parseInt(e.dataset.row, 10), o = parseInt(e.dataset.col, 10), i = s == null ? void 0 : s.closest("tbody");
898
- if (!i) return;
899
- const c = Array.from(i.querySelectorAll("tr:not(.nodata)")).filter((A) => parseInt(A.dataset.row, 10) === r), l = c.length > 0 ? c.length : 1, d = c.indexOf(s);
900
- let u = r, b = d, g = o;
901
- switch (n.code) {
914
+ moveCell(s) {
915
+ var m, T, A, M;
916
+ if (!t(this, lt)) return;
917
+ const e = t(this, lt), n = e.closest("tr"), o = parseInt(e.dataset.row, 10), i = parseInt(e.dataset.col, 10), r = n == null ? void 0 : n.closest("tbody");
918
+ if (!r) return;
919
+ const c = Array.from(r.querySelectorAll("tr:not(.nodata)")).filter((W) => parseInt(W.dataset.row, 10) === o), l = c.length > 0 ? c.length : 1, g = c.indexOf(n), f = o * l + (g >= 0 ? g : 0);
920
+ let b = f, u = i;
921
+ switch (s.code) {
902
922
  case "Tab":
903
- n.preventDefault(), g = n.shiftKey ? t(this, Nt).call(this, r, d, o) : t(this, $t).call(this, r, d, o);
923
+ if (s.preventDefault(), s.shiftKey) {
924
+ if (u = t(this, Dt).call(this, f, i), u < 0 && f > 0) {
925
+ b = f - 1;
926
+ const W = t(this, ct).call(this, b), B = t(this, _t).call(this, W);
927
+ u = B ? parseInt(B.dataset.col, 10) : 0;
928
+ }
929
+ } else {
930
+ u = t(this, Ot).call(this, f, i);
931
+ const W = t(this, ct).call(this, f), B = t(this, _t).call(this, W), Kt = B ? parseInt(B.dataset.col, 10) + parseInt(B.colSpan || 1, 10) : 0;
932
+ u >= Kt && (b = f + 1, u = 0);
933
+ }
904
934
  break;
905
935
  case "ArrowRight":
906
- g = t(this, $t).call(this, r, d, o);
936
+ u = t(this, Ot).call(this, f, i);
907
937
  break;
908
938
  case "ArrowLeft":
909
- g = t(this, Nt).call(this, r, d, o);
939
+ u = t(this, Dt).call(this, f, i);
910
940
  break;
911
941
  case "ArrowDown":
912
- n.preventDefault(), d < l - 1 ? b = d + 1 : (u = r + 1, b = 0);
942
+ s.preventDefault(), b = f + (e.rowSpan || 1);
913
943
  break;
914
944
  case "ArrowUp":
915
- n.preventDefault(), d > 0 ? b = d - 1 : (u = r - 1, b = l - 1);
945
+ s.preventDefault(), b = Math.max(0, f - (e.rowSpan || 1));
916
946
  break;
917
947
  }
918
- let y = t(this, Dt).call(this, u, b, g);
919
- if (y)
920
- this.currentCell = y;
921
- else if (u !== r && u >= 0) {
922
- const A = ((v = (w = t(this, F)).getRowHeight) == null ? void 0 : v.call(w)) || 40;
923
- (C = (m = t(this, F)).scrollToY) == null || C.call(m, u * A), setTimeout(() => {
924
- const H = t(this, Dt).call(this, u, b, g);
925
- H && (this.currentCell = H);
948
+ const p = Math.floor(b / l), x = b % l;
949
+ let w = t(this, Wt).call(this, p, x, u, b);
950
+ if (w)
951
+ this.currentCell = w;
952
+ else if (p !== o && p >= 0) {
953
+ const W = ((T = (m = t(this, Y)).getRowHeight) == null ? void 0 : T.call(m)) || 40;
954
+ (M = (A = t(this, Y)).scrollToY) == null || M.call(A, p * W), setTimeout(() => {
955
+ const B = t(this, Wt).call(this, p, x, u, b);
956
+ B && (this.currentCell = B);
926
957
  }, 0);
927
958
  }
928
959
  }
929
960
  };
930
- F = new WeakMap(), it = new WeakMap(), ne = new WeakMap(), re = new WeakMap(), $t = new WeakMap(), Nt = new WeakMap(), _t = new WeakMap(), Dt = new WeakMap(), oe = new WeakSet(), xs = /* @__PURE__ */ h(function() {
931
- t(this, F).addEventListener("keydown", (n) => {
932
- ["Tab", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(n.code) && this.moveCell(n);
961
+ Y = new WeakMap(), lt = new WeakMap(), ie = new WeakMap(), ae = new WeakMap(), _t = new WeakMap(), Ot = new WeakMap(), Dt = new WeakMap(), ct = new WeakMap(), Wt = new WeakMap(), le = new WeakSet(), ws = /* @__PURE__ */ h(function() {
962
+ t(this, Y).addEventListener("keydown", (s) => {
963
+ ["Tab", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(s.code) && this.moveCell(s);
933
964
  });
934
- }, "#initEvents"), h(es, "CellNavigation");
935
- let ke = es;
936
- var ie, at, lt, Ot, Wt, ae, le, pt, ce, he;
937
- const Rt = class Rt extends HTMLElement {
965
+ }, "#initEvents"), h(rs, "CellNavigation");
966
+ let Me = rs;
967
+ var ce, ht, dt, zt, Bt, he, de, mt, fe, ue;
968
+ const qt = class qt extends HTMLElement {
938
969
  constructor() {
939
970
  super();
940
- f(this, ie);
941
- f(this, at, null);
942
- f(this, lt);
943
- f(this, Ot);
944
- f(this, Wt);
971
+ d(this, ce);
972
+ d(this, ht, null);
973
+ d(this, dt);
974
+ d(this, zt);
975
+ d(this, Bt);
945
976
  q(this, "invalidate", /* @__PURE__ */ h(() => {
946
- S.log("sheet.invalidate()"), t(this, lt).refresh();
977
+ S.log("sheet.invalidate()"), t(this, dt).refresh();
947
978
  }, "invalidate"));
948
979
  q(this, "generate", /* @__PURE__ */ h((e) => {
949
980
  if (S.log("sheet.generate()"), !e) return;
950
- p(this, at, Te.compile(e)), t(this, ae).call(this), t(this, le).call(this);
951
- const s = this.querySelector(".ng-container-body .ng-part-header"), r = this.querySelector(".ng-container-body .ng-part-footer"), o = this.querySelector(".ng-nodata-overlay");
952
- s && o && (o.style.top = `${s.offsetHeight}px`), r && o && (o.style.bottom = `${r.offsetHeight}px`), t(this, lt).initialize(), setTimeout(() => {
953
- var i;
954
- (i = this.querySelector("nine-table-hscrollbar")) == null || i.refresh();
981
+ y(this, ht, Ie.compile(e)), t(this, he).call(this), t(this, de).call(this);
982
+ const n = this.querySelector(".ng-container-body .ng-part-header"), o = this.querySelector(".ng-container-body .ng-part-footer"), i = this.querySelector(".ng-nodata-overlay");
983
+ n && i && (i.style.top = `${n.offsetHeight}px`), o && i && (i.style.bottom = `${o.offsetHeight}px`), t(this, dt).initialize(), setTimeout(() => {
984
+ var r;
985
+ (r = this.querySelector("nine-table-hscrollbar")) == null || r.refresh();
955
986
  }, 0);
956
987
  }, "generate"));
957
- f(this, ae, /* @__PURE__ */ h(() => {
988
+ d(this, he, /* @__PURE__ */ h(() => {
958
989
  [
959
990
  { selector: ".ng-container-body", type: null },
960
991
  { selector: ".ng-container-left", type: "left" },
961
992
  { selector: ".ng-container-right", type: "right" }
962
- ].forEach(({ selector: s, type: r }) => {
963
- var o, i, a;
964
- (o = this.querySelector(`${s} .ng-part-header`)) == null || o.appendChild(t(this, pt).call(this, t(this, at), r, "header")), (i = this.querySelector(`${s} .ng-virtual-spacer`)) == null || i.before(t(this, pt).call(this, t(this, at), r, "body")), (a = this.querySelector(`${s} .ng-part-footer`)) == null || a.appendChild(t(this, pt).call(this, t(this, at), r, "footer"));
993
+ ].forEach(({ selector: n, type: o }) => {
994
+ var i, r, a;
995
+ (i = this.querySelector(`${n} .ng-part-header`)) == null || i.appendChild(t(this, mt).call(this, t(this, ht), o, "header")), (r = this.querySelector(`${n} .ng-virtual-spacer`)) == null || r.before(t(this, mt).call(this, t(this, ht), o, "body")), (a = this.querySelector(`${n} .ng-part-footer`)) == null || a.appendChild(t(this, mt).call(this, t(this, ht), o, "footer"));
965
996
  });
966
997
  }, "#renderSplitContainers"));
967
- f(this, le, /* @__PURE__ */ h(() => {
998
+ d(this, de, /* @__PURE__ */ h(() => {
968
999
  ["left", "right", "body"].forEach((e) => {
969
- const s = this.querySelector(`.ng-container-${e}`), r = s == null ? void 0 : s.querySelectorAll("table");
970
- if (!s || !r || r.length === 0) return;
971
- let o = 0;
972
- r[0].querySelectorAll("col").forEach((i) => {
973
- const a = parseInt(i.getAttribute("width"), 10);
974
- isNaN(a) || (o += a);
975
- }), e === "body" ? (s.style.flex = "1", r.forEach((i) => {
976
- i.style.width = `${o}px`, i.style.minWidth = `${o}px`;
977
- })) : (s.style.flex = `0 0 ${o}px`, s.style.width = `${o}px`, r.forEach((i) => {
978
- i.style.width = `${o}px`, i.style.minWidth = `${o}px`;
1000
+ const n = this.querySelector(`.ng-container-${e}`), o = n == null ? void 0 : n.querySelectorAll("table");
1001
+ if (!n || !o || o.length === 0) return;
1002
+ let i = 0;
1003
+ o[0].querySelectorAll("col").forEach((r) => {
1004
+ const a = parseInt(r.getAttribute("width"), 10);
1005
+ isNaN(a) || (i += a);
1006
+ }), e === "body" ? (n.style.flex = "1", o.forEach((r) => {
1007
+ r.style.width = `${i}px`, r.style.minWidth = `${i}px`;
1008
+ })) : (n.style.flex = `0 0 ${i}px`, n.style.width = `${i}px`, o.forEach((r) => {
1009
+ r.style.width = `${i}px`, r.style.minWidth = `${i}px`;
979
1010
  }));
980
1011
  });
981
1012
  }, "#updateContainerWidths"));
982
- f(this, pt, /* @__PURE__ */ h((e, s, r) => {
983
- const o = e.cloneNode(!0), i = o.querySelector("thead"), a = o.querySelector("tbody"), c = o.querySelector("tfoot");
984
- if (r === "header") {
1013
+ d(this, mt, /* @__PURE__ */ h((e, n, o) => {
1014
+ const i = e.cloneNode(!0), r = i.querySelector("thead"), a = i.querySelector("tbody"), c = i.querySelector("tfoot");
1015
+ if (o === "header") {
985
1016
  if (a && a.remove(), c && c.remove(), e.querySelector("tbody")) {
986
- const d = document.createElement("tbody");
987
- d.className = "fixed-tbody", o.appendChild(d);
1017
+ const g = document.createElement("tbody");
1018
+ g.className = "fixed-tbody", i.appendChild(g);
988
1019
  }
989
- } else r === "body" ? (i && i.remove(), c && c.remove(), a && (a.className = "bindable-tbody")) : r === "footer" && (i && i.remove(), a && a.remove());
990
- return s === "left" ? o.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
1020
+ } else o === "body" ? (r && r.remove(), c && c.remove(), a && (a.className = "bindable-tbody")) : o === "footer" && (r && r.remove(), a && a.remove());
1021
+ return n === "left" ? i.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
991
1022
  l.getAttribute("fixed") !== "left" && l.remove();
992
- }) : s === "right" ? o.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
1023
+ }) : n === "right" ? i.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
993
1024
  l.getAttribute("fixed") !== "right" && l.remove();
994
- }) : o.querySelectorAll("[fixed=left], [fixed=right]").forEach((l) => {
1025
+ }) : i.querySelectorAll("[fixed=left], [fixed=right]").forEach((l) => {
995
1026
  l.remove();
996
- }), o;
1027
+ }), i;
997
1028
  }, "#createSplitTable"));
998
- q(this, "getRowHeight", /* @__PURE__ */ h(() => t(this, lt).getRowHeight(), "getRowHeight"));
1029
+ q(this, "getRowHeight", /* @__PURE__ */ h(() => t(this, dt).getRowHeight(), "getRowHeight"));
999
1030
  q(this, "scrollToX", /* @__PURE__ */ h((e) => {
1000
- const s = this.querySelector(".ng-container-body .ng-part-body");
1001
- s && (s.scrollLeft = e);
1031
+ const n = this.querySelector(".ng-container-body .ng-part-body");
1032
+ n && (n.scrollLeft = e);
1002
1033
  }, "scrollToX"));
1003
1034
  q(this, "scrollToY", /* @__PURE__ */ h((e) => {
1004
- const s = this.querySelector(".ng-container-body .ng-part-body");
1005
- s && (s.scrollTop = e);
1035
+ const n = this.querySelector(".ng-container-body .ng-part-body");
1036
+ n && (n.scrollTop = e);
1006
1037
  }, "scrollToY"));
1007
- f(this, ce, /* @__PURE__ */ h(() => {
1008
- t(this, he).call(this), p(this, Ot, new Ce(this)), p(this, Wt, new ke(this));
1038
+ d(this, fe, /* @__PURE__ */ h(() => {
1039
+ t(this, ue).call(this), y(this, zt, new Le(this)), y(this, Bt, new Me(this));
1009
1040
  }, "#init"));
1010
- f(this, he, /* @__PURE__ */ h(() => {
1011
- const e = Rt.SCROLLBAR_SIZE;
1041
+ d(this, ue, /* @__PURE__ */ h(() => {
1042
+ const e = qt.SCROLLBAR_SIZE;
1012
1043
  this.innerHTML = `
1013
1044
  <style>
1014
1045
  nine-table-sheet {
@@ -1209,97 +1240,97 @@ const Rt = class Rt extends HTMLElement {
1209
1240
  </div>
1210
1241
  `;
1211
1242
  }, "#render"));
1212
- p(this, lt, new qe(this)), p(this, ie, this.getRootNode().host);
1243
+ y(this, dt, new ke(this)), y(this, ce, this.getRootNode().host);
1213
1244
  }
1214
1245
  connectedCallback() {
1215
- t(this, ce).call(this);
1246
+ t(this, fe).call(this);
1216
1247
  }
1217
1248
  get selection() {
1218
- return t(this, Ot);
1249
+ return t(this, zt);
1219
1250
  }
1220
1251
  get navigation() {
1221
- return t(this, Wt);
1252
+ return t(this, Bt);
1222
1253
  }
1223
1254
  disconnectedCallback() {
1224
1255
  this.innerHTML = "", S.log("NineTableSheet destroyed.");
1225
1256
  }
1226
1257
  };
1227
- ie = new WeakMap(), at = new WeakMap(), lt = new WeakMap(), Ot = new WeakMap(), Wt = new WeakMap(), ae = new WeakMap(), le = new WeakMap(), pt = new WeakMap(), ce = new WeakMap(), he = new WeakMap(), h(Rt, "NineTableSheet"), q(Rt, "SCROLLBAR_SIZE", 16);
1228
- let Ut = Rt;
1229
- customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", Ut);
1230
- var de, zt;
1231
- const ss = class ss extends HTMLElement {
1258
+ ce = new WeakMap(), ht = new WeakMap(), dt = new WeakMap(), zt = new WeakMap(), Bt = new WeakMap(), he = new WeakMap(), de = new WeakMap(), mt = new WeakMap(), fe = new WeakMap(), ue = new WeakMap(), h(qt, "NineTableSheet"), q(qt, "SCROLLBAR_SIZE", 16);
1259
+ let Gt = qt;
1260
+ customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", Gt);
1261
+ var ge, Pt;
1262
+ const os = class os extends HTMLElement {
1232
1263
  constructor() {
1233
1264
  super();
1234
- f(this, de, /* @__PURE__ */ h(() => {
1265
+ d(this, ge, /* @__PURE__ */ h(() => {
1235
1266
  var e;
1236
- (e = this.querySelector(".nine-tab-bar")) == null || e.addEventListener("click", (s) => {
1237
- var i;
1238
- const r = s.ctrlKey || s.metaKey || s.shiftKey, o = parseInt((i = s.target.closest(".nine-tab-item")) == null ? void 0 : i.dataset.index, 10);
1239
- t(this, zt).call(this, o, r);
1240
- }), t(this, zt).call(this, 0, !1);
1267
+ (e = this.querySelector(".nine-tab-bar")) == null || e.addEventListener("click", (n) => {
1268
+ var r;
1269
+ const o = n.ctrlKey || n.metaKey || n.shiftKey, i = parseInt((r = n.target.closest(".nine-tab-item")) == null ? void 0 : r.dataset.index, 10);
1270
+ t(this, Pt).call(this, i, o);
1271
+ }), t(this, Pt).call(this, 0, !1);
1241
1272
  }, "#init"));
1242
- f(this, zt, /* @__PURE__ */ h((e, s = !1) => {
1243
- const r = /* @__PURE__ */ h(() => {
1244
- const d = Array.from(this.querySelectorAll("nine-table-sheet"));
1245
- Array.from(this.querySelectorAll("nine-splitter")).forEach((g) => g.style.setProperty("display", "none"));
1246
- const b = d.filter((g) => g.classList.contains("active"));
1247
- b.length < 2 || b.forEach((g) => {
1248
- const y = parseInt(g.getAttribute("data-index"), 10), w = this.querySelector(`nine-splitter[data-split-index="${y}"]`), v = d[y + 1];
1249
- w && v && v.classList.contains("active") && w.style.setProperty("display", "flex");
1273
+ d(this, Pt, /* @__PURE__ */ h((e, n = !1) => {
1274
+ const o = /* @__PURE__ */ h(() => {
1275
+ const g = Array.from(this.querySelectorAll("nine-table-sheet"));
1276
+ Array.from(this.querySelectorAll("nine-splitter")).forEach((u) => u.style.setProperty("display", "none"));
1277
+ const b = g.filter((u) => u.classList.contains("active"));
1278
+ b.length < 2 || b.forEach((u) => {
1279
+ const p = parseInt(u.getAttribute("data-index"), 10), x = this.querySelector(`nine-splitter[data-split-index="${p}"]`), w = g[p + 1];
1280
+ x && w && w.classList.contains("active") && x.style.setProperty("display", "flex");
1250
1281
  });
1251
- }, "updateSplitters"), o = this.querySelector(".nine-tab-bar"), i = this.querySelector("nine-table-sheets-body"), a = o.querySelectorAll(".nine-tab-item"), c = i.querySelectorAll("nine-table-sheet");
1282
+ }, "updateSplitters"), i = this.querySelector(".nine-tab-bar"), r = this.querySelector("nine-table-sheets-body"), a = i.querySelectorAll(".nine-tab-item"), c = r.querySelectorAll("nine-table-sheet");
1252
1283
  if (!a[e]) return;
1253
- if (!s)
1254
- a.forEach((d, u) => {
1255
- d.classList.toggle("active", u === e);
1256
- }), c.forEach((d, u) => {
1257
- const b = u === e;
1258
- d.classList.toggle("active", b), d.style.flex = b ? "1 1 100%" : "";
1284
+ if (!n)
1285
+ a.forEach((g, f) => {
1286
+ g.classList.toggle("active", f === e);
1287
+ }), c.forEach((g, f) => {
1288
+ const b = f === e;
1289
+ g.classList.toggle("active", b), g.style.flex = b ? "1 1 100%" : "";
1259
1290
  });
1260
1291
  else {
1261
- const d = a[e], u = o.querySelectorAll(".nine-tab-item.active");
1262
- if (d.classList.contains("active") && u.length <= 1)
1292
+ const g = a[e], f = i.querySelectorAll(".nine-tab-item.active");
1293
+ if (g.classList.contains("active") && f.length <= 1)
1263
1294
  return;
1264
- d.classList.toggle("active");
1265
- const b = i.querySelector(`nine-table-sheet[data-index="${e}"]`);
1295
+ g.classList.toggle("active");
1296
+ const b = r.querySelector(`nine-table-sheet[data-index="${e}"]`);
1266
1297
  b && (b.classList.toggle("active"), b.classList.contains("active") || (b.style.flex = ""));
1267
1298
  }
1268
- const l = i.querySelectorAll("nine-table-sheet.active");
1269
- l == null || l.forEach((d) => {
1270
- d.style.flex = l.length > 1 ? "1 1 0%" : "1 1 100%";
1271
- }), r();
1299
+ const l = r.querySelectorAll("nine-table-sheet.active");
1300
+ l == null || l.forEach((g) => {
1301
+ g.style.flex = l.length > 1 ? "1 1 0%" : "1 1 100%";
1302
+ }), o();
1272
1303
  }, "#switchSheet"));
1273
1304
  }
1274
1305
  connectedCallback() {
1275
- t(this, de).call(this);
1306
+ t(this, ge).call(this);
1276
1307
  }
1277
1308
  };
1278
- de = new WeakMap(), zt = new WeakMap(), h(ss, "NineTableSheets");
1279
- let Le = ss;
1280
- customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", Le);
1281
- var _, fe, Bt, ue;
1282
- const ns = class ns {
1283
- constructor(n) {
1284
- f(this, _);
1285
- f(this, fe, /* @__PURE__ */ h(() => {
1286
- t(this, ue).call(this), new ResizeObserver((n) => {
1287
- for (let e of n)
1288
- t(this, _).getAttribute("auto-height") === "true" && t(this, Bt).call(this);
1309
+ ge = new WeakMap(), Pt = new WeakMap(), h(os, "NineTableSheets");
1310
+ let He = os;
1311
+ customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", He);
1312
+ var _, be, Ft, pe;
1313
+ const is = class is {
1314
+ constructor(s) {
1315
+ d(this, _);
1316
+ d(this, be, /* @__PURE__ */ h(() => {
1317
+ t(this, pe).call(this), new ResizeObserver((s) => {
1318
+ for (let e of s)
1319
+ t(this, _).getAttribute("auto-height") === "true" && t(this, Ft).call(this);
1289
1320
  }).observe(t(this, _));
1290
1321
  }, "#init"));
1291
- f(this, Bt, /* @__PURE__ */ h(() => {
1322
+ d(this, Ft, /* @__PURE__ */ h(() => {
1292
1323
  var c, l;
1293
- const n = Array.from(t(this, _).shadowRoot.querySelectorAll("nine-table-sheet.active"));
1294
- if (n.length === 0) return;
1295
- const e = parseInt(t(this, _).getAttribute("max-display-row"), 10) || 10, s = Math.max(...n.map((d) => d.getRowHeight())), r = (c = t(this, _).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : c.getBoundingClientRect().height, o = (l = t(this, _).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : l.getBoundingClientRect().height, i = Ut.SCROLLBAR_SIZE, a = e * s + r + o + i;
1324
+ const s = Array.from(t(this, _).shadowRoot.querySelectorAll("nine-table-sheet.active"));
1325
+ if (s.length === 0) return;
1326
+ const e = parseInt(t(this, _).getAttribute("max-display-row"), 10) || 10, n = Math.max(...s.map((g) => g.getRowHeight())), o = (c = t(this, _).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : c.getBoundingClientRect().height, i = (l = t(this, _).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : l.getBoundingClientRect().height, r = Gt.SCROLLBAR_SIZE, a = e * n + o + i + r;
1296
1327
  t(this, _).style.height = `${a}px`;
1297
1328
  }, "#applyAutoHeight"));
1298
- f(this, ue, /* @__PURE__ */ h(() => {
1299
- const e = Array.from(t(this, _).children).filter((c) => c.tagName === "TABLE"), s = t(this, _).getAttribute("auto-height") === "true", r = e.length, o = e.map((c, l) => {
1300
- const u = `<nine-table-sheet class="${l === 0 ? "active" : ""}" data-index="${l}"></nine-table-sheet>`, b = l < r - 1 ? `<nine-splitter class="h" data-split-index="${l}"></nine-splitter>` : "";
1301
- return u + b;
1302
- }).join(""), i = e.map((c, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
1329
+ d(this, pe, /* @__PURE__ */ h(() => {
1330
+ const e = Array.from(t(this, _).children).filter((c) => c.tagName === "TABLE"), n = t(this, _).getAttribute("auto-height") === "true", o = e.length, i = e.map((c, l) => {
1331
+ const f = `<nine-table-sheet class="${l === 0 ? "active" : ""}" data-index="${l}"></nine-table-sheet>`, b = l < o - 1 ? `<nine-splitter class="h" data-split-index="${l}"></nine-splitter>` : "";
1332
+ return f + b;
1333
+ }).join(""), r = e.map((c, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
1303
1334
  t(this, _).shadowRoot.innerHTML = `
1304
1335
  <style>
1305
1336
  :host {
@@ -1307,7 +1338,7 @@ const ns = class ns {
1307
1338
  flex-direction: column;
1308
1339
  position: relative;
1309
1340
  overflow: hidden;
1310
- height: ${s ? "auto" : "100%"};
1341
+ height: ${n ? "auto" : "100%"};
1311
1342
  background: #fff;
1312
1343
  }
1313
1344
 
@@ -1411,9 +1442,9 @@ const ns = class ns {
1411
1442
  <nine-table-body>
1412
1443
  <nine-table-summary></nine-table-summary>
1413
1444
  <nine-table-sheets>
1414
- <nine-table-sheets-body>${o}</nine-table-sheets-body>
1445
+ <nine-table-sheets-body>${i}</nine-table-sheets-body>
1415
1446
  <nine-table-sheets-footer>
1416
- <div class="nine-tab-bar">${i}</div>
1447
+ <div class="nine-tab-bar">${r}</div>
1417
1448
  <div class="sheets-counter">Total : <span id="row-count">0</span></div>
1418
1449
  </nine-table-sheets-footer>
1419
1450
  </nine-table-sheets>
@@ -1424,316 +1455,316 @@ const ns = class ns {
1424
1455
  const a = t(this, _).shadowRoot.querySelectorAll("nine-table-sheet");
1425
1456
  a == null || a.forEach((c, l) => {
1426
1457
  e[l] && setTimeout(() => {
1427
- c.generate(e[l]), s && t(this, Bt).call(this);
1458
+ c.generate(e[l]), n && t(this, Ft).call(this);
1428
1459
  });
1429
1460
  });
1430
1461
  }, "#render"));
1431
- p(this, _, n), t(this, fe).call(this);
1462
+ y(this, _, s), t(this, be).call(this);
1432
1463
  }
1433
1464
  };
1434
- _ = new WeakMap(), fe = new WeakMap(), Bt = new WeakMap(), ue = new WeakMap(), h(ns, "LayoutManager");
1435
- let Ie = ns;
1436
- var Pt, yt;
1437
- const rs = class rs {
1438
- constructor(n) {
1439
- f(this, Pt);
1440
- f(this, yt, -1);
1441
- q(this, "count", /* @__PURE__ */ h(() => t(this, Pt).rawRecords.length, "count"));
1442
- p(this, Pt, n);
1465
+ _ = new WeakMap(), be = new WeakMap(), Ft = new WeakMap(), pe = new WeakMap(), h(is, "LayoutManager");
1466
+ let $e = is;
1467
+ var jt, xt;
1468
+ const as = class as {
1469
+ constructor(s) {
1470
+ d(this, jt);
1471
+ d(this, xt, -1);
1472
+ q(this, "count", /* @__PURE__ */ h(() => t(this, jt).rawRecords.length, "count"));
1473
+ y(this, jt, s);
1443
1474
  }
1444
1475
  get at() {
1445
- return t(this, yt);
1476
+ return t(this, xt);
1446
1477
  }
1447
- set at(n) {
1448
- p(this, yt, parseInt(n, 10)), body && !body.querySelector(`tbody.bindable tr[data-row="${t(this, yt)}"]`) && setTimeout(() => {
1478
+ set at(s) {
1479
+ y(this, xt, parseInt(s, 10)), body && !body.querySelector(`tbody.bindable tr[data-row="${t(this, xt)}"]`) && setTimeout(() => {
1449
1480
  });
1450
1481
  }
1451
1482
  };
1452
- Pt = new WeakMap(), yt = new WeakMap(), h(rs, "ngRow");
1453
- let He = rs;
1454
- var O, L, W, mt, ge, G, be, ct, Ft, pe, ye, xt;
1455
- const z = class z {
1456
- constructor(n, e) {
1457
- f(this, O);
1458
- f(this, L);
1459
- f(this, W, []);
1460
- f(this, mt, []);
1461
- f(this, ge, 0);
1462
- f(this, G, []);
1463
- f(this, be, /* @__PURE__ */ h(() => {
1464
- p(this, G, []);
1465
- const n = t(this, O).template || [];
1466
- Array.from(n).forEach((e) => {
1467
- var s;
1468
- t(this, G).push(((s = e.getBoundingClientRect) == null ? void 0 : s.call(e).height) || 24);
1469
- }), (t(this, L).rawRecords || []).forEach((e) => {
1470
- e.__ng || (e.__ng = t(this, Ft).call(this)), e.__ng.height = t(this, G).slice();
1483
+ jt = new WeakMap(), xt = new WeakMap(), h(as, "ngRow");
1484
+ let Ne = as;
1485
+ var D, I, z, wt, ye, Z, me, ft, Yt, xe, we, vt;
1486
+ const P = class P {
1487
+ constructor(s, e) {
1488
+ d(this, D);
1489
+ d(this, I);
1490
+ d(this, z, []);
1491
+ d(this, wt, []);
1492
+ d(this, ye, 0);
1493
+ d(this, Z, []);
1494
+ d(this, me, /* @__PURE__ */ h(() => {
1495
+ y(this, Z, []);
1496
+ const s = t(this, D).template || [];
1497
+ Array.from(s).forEach((e) => {
1498
+ var n;
1499
+ t(this, Z).push(((n = e.getBoundingClientRect) == null ? void 0 : n.call(e).height) || 24);
1500
+ }), (t(this, I).rawRecords || []).forEach((e) => {
1501
+ e.__ng || (e.__ng = t(this, Yt).call(this)), e.__ng.height = t(this, Z).slice();
1471
1502
  });
1472
1503
  }, "#initialize"));
1473
- f(this, ct, /* @__PURE__ */ h(() => {
1474
- const n = t(this, O).shadowRoot.querySelector("nine-table-sheets");
1475
- n == null || n.classList.toggle("nodata", this.length === 0), t(this, O).shadowRoot.querySelectorAll("nine-table-sheet").forEach((e) => {
1504
+ d(this, ft, /* @__PURE__ */ h(() => {
1505
+ const s = t(this, D).shadowRoot.querySelector("nine-table-sheets");
1506
+ s == null || s.classList.toggle("nodata", this.length === 0), t(this, D).shadowRoot.querySelectorAll("nine-table-sheet").forEach((e) => {
1476
1507
  e.invalidate();
1477
1508
  });
1478
1509
  }, "#invalidate"));
1479
- q(this, "get", /* @__PURE__ */ h((n, e) => {
1480
- var o;
1481
- const s = this.getValidData();
1482
- if (!s || s.length <= 0) return;
1483
- if (n == null) return t(this, xt).call(this, s);
1484
- if (n < 0 || n >= s.length) return null;
1485
- const r = typeof ((o = t(this, O).fields) == null ? void 0 : o.get) == "function" ? t(this, O).fields.get() : [];
1510
+ q(this, "get", /* @__PURE__ */ h((s, e) => {
1511
+ var i;
1512
+ const n = this.getValidData();
1513
+ if (!n || n.length <= 0) return;
1514
+ if (s == null) return t(this, vt).call(this, n);
1515
+ if (s < 0 || s >= n.length) return null;
1516
+ const o = typeof ((i = t(this, D).fields) == null ? void 0 : i.get) == "function" ? t(this, D).fields.get() : [];
1486
1517
  if (e != null) {
1487
- const i = r.indexOf(e);
1488
- return i >= 0 ? s[n].v[i] : null;
1518
+ const r = o.indexOf(e);
1519
+ return r >= 0 ? n[s].v[r] : null;
1489
1520
  }
1490
- return t(this, xt).call(this, s[n]);
1521
+ return t(this, vt).call(this, n[s]);
1491
1522
  }, "get"));
1492
- q(this, "set", /* @__PURE__ */ h((n) => {
1493
- this.clear(), this.add(n, !1), t(this, ct).call(this);
1523
+ q(this, "set", /* @__PURE__ */ h((s) => {
1524
+ this.clear(), this.add(s, !1), t(this, ft).call(this);
1494
1525
  }, "set"));
1495
- f(this, Ft, /* @__PURE__ */ h(() => ({
1496
- rowState: z.ROW_STATE.EMPTY,
1526
+ d(this, Yt, /* @__PURE__ */ h(() => ({
1527
+ rowState: P.ROW_STATE.EMPTY,
1497
1528
  deleted: !1,
1498
1529
  filtered: !1,
1499
- height: t(this, G).slice(),
1530
+ height: t(this, Z).slice(),
1500
1531
  o: {},
1501
1532
  c: {},
1502
- _: [0, 0, 0, 0, z.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, G).slice(), -1, {}, {}]
1533
+ _: [0, 0, 0, 0, P.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, Z).slice(), -1, {}, {}]
1503
1534
  }), "#getDefaultMeta"));
1504
1535
  q(this, "reset", /* @__PURE__ */ h(() => {
1505
- p(this, W, []), p(this, mt, []), t(this, ct).call(this);
1536
+ y(this, z, []), y(this, wt, []), t(this, ft).call(this);
1506
1537
  }, "reset"));
1507
1538
  q(this, "clear", /* @__PURE__ */ h(() => {
1508
- var n;
1509
- t(this, L).rawRecords = [], p(this, W, []), p(this, mt, []), (n = t(this, L).viewRecords) != null && n.reset && t(this, L).viewRecords.reset();
1539
+ var s;
1540
+ t(this, I).rawRecords = [], y(this, z, []), y(this, wt, []), (s = t(this, I).viewRecords) != null && s.reset && t(this, I).viewRecords.reset();
1510
1541
  }, "clear"));
1511
- f(this, pe, /* @__PURE__ */ h((n) => {
1512
- var r;
1513
- Array.isArray(n) || (n = [n]);
1514
- const e = typeof ((r = t(this, O).fields) == null ? void 0 : r.get) == "function" ? t(this, O).fields.get() : Object.keys(n[0] || {}), s = [];
1515
- return n.forEach((o) => {
1516
- const i = { v: [] };
1542
+ d(this, xe, /* @__PURE__ */ h((s) => {
1543
+ var o;
1544
+ Array.isArray(s) || (s = [s]);
1545
+ const e = typeof ((o = t(this, D).fields) == null ? void 0 : o.get) == "function" ? t(this, D).fields.get() : Object.keys(s[0] || {}), n = [];
1546
+ return s.forEach((i) => {
1547
+ const r = { v: [] };
1517
1548
  e.forEach((a) => {
1518
- i.v.push(o[a] !== void 0 && o[a] !== null ? o[a] : "");
1519
- }), s.push(i);
1520
- }), s;
1549
+ r.v.push(i[a] !== void 0 && i[a] !== null ? i[a] : "");
1550
+ }), n.push(r);
1551
+ }), n;
1521
1552
  }, "#json2Array"));
1522
- f(this, ye, /* @__PURE__ */ h((n) => (Array.isArray(n) || (n = [n]), n.forEach((e) => {
1523
- e.__ng = t(this, Ft).call(this), e.__ng.rowid = this.nextId, e.__ng.rowState = z.ROW_STATE.INSERT, e.__ng._[0] = e.__ng.rowid;
1524
- }), n), "#defaultInsert"));
1525
- q(this, "add", /* @__PURE__ */ h((n, e = !0) => {
1526
- n === void 0 && (n = {});
1527
- const s = t(this, pe).call(this, n);
1528
- t(this, L).rawRecords = t(this, L).rawRecords.concat(t(this, ye).call(this, s)), this.resetRecords();
1529
- const r = this.count() - 1;
1530
- return e || s.forEach((o, i) => {
1531
- const a = t(this, L).rawRecords[r - i];
1532
- a && (a.__ng.rowState = z.ROW_STATE.EMPTY);
1533
- }), t(this, ct).call(this), r;
1553
+ d(this, we, /* @__PURE__ */ h((s) => (Array.isArray(s) || (s = [s]), s.forEach((e) => {
1554
+ e.__ng = t(this, Yt).call(this), e.__ng.rowid = this.nextId, e.__ng.rowState = P.ROW_STATE.INSERT, e.__ng._[0] = e.__ng.rowid;
1555
+ }), s), "#defaultInsert"));
1556
+ q(this, "add", /* @__PURE__ */ h((s, e = !0) => {
1557
+ s === void 0 && (s = {});
1558
+ const n = t(this, xe).call(this, s);
1559
+ t(this, I).rawRecords = t(this, I).rawRecords.concat(t(this, we).call(this, n)), this.resetRecords();
1560
+ const o = this.count() - 1;
1561
+ return e || n.forEach((i, r) => {
1562
+ const a = t(this, I).rawRecords[o - r];
1563
+ a && (a.__ng.rowState = P.ROW_STATE.EMPTY);
1564
+ }), t(this, ft).call(this), o;
1534
1565
  }, "add"));
1535
- q(this, "delete", /* @__PURE__ */ h((n) => {
1566
+ q(this, "delete", /* @__PURE__ */ h((s) => {
1536
1567
  let e = [];
1537
- Array.isArray(n) ? e = n : typeof n > "u" ? e = [t(this, L).host.row.at] : e = [parseInt(n, 10)], e.sort((s, r) => r - s).forEach((s) => {
1538
- if (t(this, W)[s]) {
1539
- const r = t(this, W)[s].__ng.rowid;
1540
- t(this, W)[s].__ng.rowState === z.ROW_STATE.INSERT ? t(this, L).rawRecords = t(this, L).rawRecords.filter((o) => o.__ng.rowid !== r) : t(this, L).rawRecords.forEach((o) => {
1541
- o.__ng.rowid === r && (o.__ng.deleted = !0, o.__ng.rowState = z.ROW_STATE.DELETE);
1568
+ Array.isArray(s) ? e = s : typeof s > "u" ? e = [t(this, I).host.row.at] : e = [parseInt(s, 10)], e.sort((n, o) => o - n).forEach((n) => {
1569
+ if (t(this, z)[n]) {
1570
+ const o = t(this, z)[n].__ng.rowid;
1571
+ t(this, z)[n].__ng.rowState === P.ROW_STATE.INSERT ? t(this, I).rawRecords = t(this, I).rawRecords.filter((i) => i.__ng.rowid !== o) : t(this, I).rawRecords.forEach((i) => {
1572
+ i.__ng.rowid === o && (i.__ng.deleted = !0, i.__ng.rowState = P.ROW_STATE.DELETE);
1542
1573
  });
1543
1574
  }
1544
- }), this.resetRecords(), t(this, ct).call(this);
1575
+ }), this.resetRecords(), t(this, ft).call(this);
1545
1576
  }, "delete"));
1546
- q(this, "setValue", /* @__PURE__ */ h((n, e, s) => {
1577
+ q(this, "setValue", /* @__PURE__ */ h((s, e, n) => {
1547
1578
  var c;
1548
- n = parseInt(n, 10);
1549
- const o = (typeof ((c = t(this, O).fields) == null ? void 0 : c.get) == "function" ? t(this, O).fields.get() : []).indexOf(e);
1550
- if (o < 0) return;
1551
- const i = this.getValidData()[n];
1552
- if (!i) return;
1553
- const a = i.v[o];
1554
- a !== s && i.__ng.rowState !== z.ROW_STATE.INSERT && (i.__ng.o.hasOwnProperty(e) || (i.__ng.o[e] = a), i.__ng.rowState = z.ROW_STATE.UPDATE), i.v[o] = s;
1579
+ s = parseInt(s, 10);
1580
+ const i = (typeof ((c = t(this, D).fields) == null ? void 0 : c.get) == "function" ? t(this, D).fields.get() : []).indexOf(e);
1581
+ if (i < 0) return;
1582
+ const r = this.getValidData()[s];
1583
+ if (!r) return;
1584
+ const a = r.v[i];
1585
+ a !== n && r.__ng.rowState !== P.ROW_STATE.INSERT && (r.__ng.o.hasOwnProperty(e) || (r.__ng.o[e] = a), r.__ng.rowState = P.ROW_STATE.UPDATE), r.v[i] = n;
1555
1586
  }, "setValue"));
1556
1587
  q(this, "resetRecords", /* @__PURE__ */ h(() => {
1557
- p(this, mt, t(this, L).rawRecords.filter((n) => !n.__ng.deleted)), p(this, W, t(this, L).rawRecords.filter((n) => !n.__ng.deleted && !n.__ng.filtered)), t(this, L).rawRecords.forEach((n, e) => {
1558
- n.__ng.rowidx = e;
1559
- }), t(this, W).forEach((n, e) => {
1560
- n.__ng.i = e;
1588
+ y(this, wt, t(this, I).rawRecords.filter((s) => !s.__ng.deleted)), y(this, z, t(this, I).rawRecords.filter((s) => !s.__ng.deleted && !s.__ng.filtered)), t(this, I).rawRecords.forEach((s, e) => {
1589
+ s.__ng.rowidx = e;
1590
+ }), t(this, z).forEach((s, e) => {
1591
+ s.__ng.i = e;
1561
1592
  });
1562
1593
  }, "resetRecords"));
1563
- q(this, "getValidData", /* @__PURE__ */ h(() => (t(this, W).length === 0 && t(this, L).rawRecords.length > 0 && this.resetRecords(), t(this, W)), "getValidData"));
1564
- f(this, xt, /* @__PURE__ */ h((n) => {
1565
- var i;
1566
- if (!n) return n;
1567
- const e = !Array.isArray(n), s = e ? [n] : n, r = typeof ((i = t(this, O).fields) == null ? void 0 : i.get) == "function" ? t(this, O).fields.get() : [], o = s.filter((a) => !a.__ng.deleted).map((a) => {
1594
+ q(this, "getValidData", /* @__PURE__ */ h(() => (t(this, z).length === 0 && t(this, I).rawRecords.length > 0 && this.resetRecords(), t(this, z)), "getValidData"));
1595
+ d(this, vt, /* @__PURE__ */ h((s) => {
1596
+ var r;
1597
+ if (!s) return s;
1598
+ const e = !Array.isArray(s), n = e ? [s] : s, o = typeof ((r = t(this, D).fields) == null ? void 0 : r.get) == "function" ? t(this, D).fields.get() : [], i = n.filter((a) => !a.__ng.deleted).map((a) => {
1568
1599
  const c = {};
1569
- return r.forEach((l, d) => {
1570
- c[l] = a.v ? a.v[d] : a[l];
1600
+ return o.forEach((l, g) => {
1601
+ c[l] = a.v ? a.v[g] : a[l];
1571
1602
  }), c.__ng = a.__ng, c;
1572
1603
  });
1573
- return e ? o[0] : o;
1604
+ return e ? i[0] : i;
1574
1605
  }, "#conv"));
1575
1606
  q(this, "count", /* @__PURE__ */ h(() => this.getValidData().length, "count"));
1576
- p(this, O, n), p(this, L, e), t(this, be).call(this);
1607
+ y(this, D, s), y(this, I, e), t(this, me).call(this);
1577
1608
  }
1578
1609
  get source() {
1579
- return t(this, xt).call(this, t(this, L).rawRecords);
1610
+ return t(this, vt).call(this, t(this, I).rawRecords);
1580
1611
  }
1581
- set source(n) {
1582
- this.clear(), this.add(n, !1);
1612
+ set source(s) {
1613
+ this.clear(), this.add(s, !1);
1583
1614
  }
1584
1615
  get nextId() {
1585
- return ++ys(this, ge)._;
1616
+ return ++ms(this, ye)._;
1586
1617
  }
1587
1618
  get count() {
1588
- return t(this, W).length;
1619
+ return t(this, z).length;
1589
1620
  }
1590
1621
  get length() {
1591
- return t(this, W).length;
1622
+ return t(this, z).length;
1592
1623
  }
1593
1624
  getRowCount() {
1594
1625
  return this.length;
1595
1626
  }
1596
1627
  };
1597
- O = new WeakMap(), L = new WeakMap(), W = new WeakMap(), mt = new WeakMap(), ge = new WeakMap(), G = new WeakMap(), be = new WeakMap(), ct = new WeakMap(), Ft = new WeakMap(), pe = new WeakMap(), ye = new WeakMap(), xt = new WeakMap(), h(z, "ngData"), // 🎯 행 상태 정의 상수를 클래스 내부로 내재화
1598
- q(z, "ROW_STATE", {
1628
+ D = new WeakMap(), I = new WeakMap(), z = new WeakMap(), wt = new WeakMap(), ye = new WeakMap(), Z = new WeakMap(), me = new WeakMap(), ft = new WeakMap(), Yt = new WeakMap(), xe = new WeakMap(), we = new WeakMap(), vt = new WeakMap(), h(P, "ngData"), // 🎯 행 상태 정의 상수를 클래스 내부로 내재화
1629
+ q(P, "ROW_STATE", {
1599
1630
  EMPTY: "EMPTY",
1600
1631
  NORMAL: "NORMAL",
1601
1632
  INSERT: "INSERT",
1602
1633
  UPDATE: "UPDATE",
1603
1634
  DELETE: "DELETE"
1604
1635
  });
1605
- let Me = z;
1606
- var ht;
1607
- const os = class os {
1608
- constructor(n) {
1609
- f(this, ht);
1610
- p(this, ht, n), this.row = new He(this), this.data = new Me(t(this, ht), this), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.pageCnt = 25, this.viewRecords.reset = () => {
1636
+ let _e = P;
1637
+ var ut;
1638
+ const ls = class ls {
1639
+ constructor(s) {
1640
+ d(this, ut);
1641
+ y(this, ut, s), this.row = new Ne(this), this.data = new _e(t(this, ut), this), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.pageCnt = 25, this.viewRecords.reset = () => {
1611
1642
  var e;
1612
- (e = t(this, ht).view) != null && e.redraw && t(this, ht).view.redraw();
1643
+ (e = t(this, ut).view) != null && e.redraw && t(this, ut).view.redraw();
1613
1644
  }, this.setDataSource = (e) => {
1614
1645
  this.data && this.data.reset(), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.data.set(e || []);
1615
1646
  }, this.getRowState = (e) => {
1616
- var r, o;
1617
- const s = parseInt(e, 10);
1618
- if (!(s >= this.data.count()))
1619
- return (o = (r = this.data.getValidData()[s]) == null ? void 0 : r.__ng) == null ? void 0 : o.rowState;
1647
+ var o, i;
1648
+ const n = parseInt(e, 10);
1649
+ if (!(n >= this.data.count()))
1650
+ return (i = (o = this.data.getValidData()[n]) == null ? void 0 : o.__ng) == null ? void 0 : i.rowState;
1620
1651
  }, this.getRowPosition = () => this.row.at, this.setRowPosition = (e) => {
1621
1652
  this.row.at = e;
1622
- }, this.scrollTo_V1 = (e) => (e < 0 && (e = 0), e >= this.rawRecords.length && (e = this.rawRecords.length - 1), this.viewRecords.rawIndex = e, this.viewRecords.reset && this.viewRecords.reset(), !(e <= 0 || e >= this.rawRecords.length - 1)), this.getColumn = (e, s) => this.data.get(e, s), this.setColumn = (e, s, r) => {
1623
- e = parseInt(e, 10), this.data.setValue(e, s, r);
1653
+ }, this.scrollTo_V1 = (e) => (e < 0 && (e = 0), e >= this.rawRecords.length && (e = this.rawRecords.length - 1), this.viewRecords.rawIndex = e, this.viewRecords.reset && this.viewRecords.reset(), !(e <= 0 || e >= this.rawRecords.length - 1)), this.getColumn = (e, n) => this.data.get(e, n), this.setColumn = (e, n, o) => {
1654
+ e = parseInt(e, 10), this.data.setValue(e, n, o);
1624
1655
  }, this.setDataSource([]);
1625
1656
  }
1626
1657
  };
1627
- ht = new WeakMap(), h(os, "ngDataManager");
1628
- let $e = os;
1629
- var wt, M, jt, me;
1630
- const is = class is {
1658
+ ut = new WeakMap(), h(ls, "ngDataManager");
1659
+ let Oe = ls;
1660
+ var St, H, Vt, ve;
1661
+ const cs = class cs {
1631
1662
  // 🎯 이제 { name: string, type: string } 객체들의 배열로 관리합니다.
1632
- constructor(n) {
1633
- f(this, wt);
1634
- f(this, M, []);
1635
- q(this, "add", /* @__PURE__ */ h((n, e = "string") => {
1636
- n.forEach((s) => {
1637
- t(this, M).some((r) => r.name === s) || t(this, M).push({ name: s, type: e });
1638
- }), t(this, jt).call(this);
1663
+ constructor(s) {
1664
+ d(this, St);
1665
+ d(this, H, []);
1666
+ q(this, "add", /* @__PURE__ */ h((s, e = "string") => {
1667
+ s.forEach((n) => {
1668
+ t(this, H).some((o) => o.name === n) || t(this, H).push({ name: n, type: e });
1669
+ }), t(this, Vt).call(this);
1639
1670
  }, "add"));
1640
- f(this, jt, /* @__PURE__ */ h(() => {
1641
- const n = /* @__PURE__ */ new Map();
1642
- t(this, M).forEach((e) => {
1643
- n.set(e.name, e.type);
1644
- }), p(this, M, Array.from(n, ([e, s]) => ({ name: e, type: s }))), p(this, M, t(this, M).filter((e) => e.name !== "" && e.name !== "__ng")), t(this, M).sort((e, s) => e.name.length < s.name.length ? 1 : -1);
1671
+ d(this, Vt, /* @__PURE__ */ h(() => {
1672
+ const s = /* @__PURE__ */ new Map();
1673
+ t(this, H).forEach((e) => {
1674
+ s.set(e.name, e.type);
1675
+ }), y(this, H, Array.from(s, ([e, n]) => ({ name: e, type: n }))), y(this, H, t(this, H).filter((e) => e.name !== "" && e.name !== "__ng")), t(this, H).sort((e, n) => e.name.length < n.name.length ? 1 : -1);
1645
1676
  }, "#adjust"));
1646
- f(this, me, /* @__PURE__ */ h(() => {
1647
- p(this, M, []), S.log(t(this, wt).querySelectorAll("table"));
1648
- const n = Array.from(t(this, wt).querySelectorAll("table"));
1649
- if (!(!n || n.length === 0)) {
1650
- for (const e of n)
1651
- S.log(e), $("[data-bind]", e).each((s, r) => {
1652
- const o = r.dataset.bind, i = r.getAttribute("data-type") || "string";
1653
- o && t(this, M).push({ name: o, type: i });
1654
- }), ["data-expr", "background-color", "color", "tooltip", "visible", "readonly", "enable-button", "enable-check", "class-expr", "icon-color", "icon-src"].forEach((s) => {
1655
- $(`[${s}]`, e).each((r, o) => {
1656
- var i = o.getAttribute(s);
1657
- if (i.indexOf("data.") < 0) {
1658
- const a = i.search(/[(]/g);
1677
+ d(this, ve, /* @__PURE__ */ h(() => {
1678
+ y(this, H, []), S.log(t(this, St).querySelectorAll("table"));
1679
+ const s = Array.from(t(this, St).querySelectorAll("table"));
1680
+ if (!(!s || s.length === 0)) {
1681
+ for (const e of s)
1682
+ S.log(e), $("[data-bind]", e).each((n, o) => {
1683
+ const i = o.dataset.bind, r = o.getAttribute("data-type") || "string";
1684
+ i && t(this, H).push({ name: i, type: r });
1685
+ }), ["data-expr", "background-color", "color", "tooltip", "visible", "readonly", "enable-button", "enable-check", "class-expr", "icon-color", "icon-src"].forEach((n) => {
1686
+ $(`[${n}]`, e).each((o, i) => {
1687
+ var r = i.getAttribute(n);
1688
+ if (r.indexOf("data.") < 0) {
1689
+ const a = r.search(/[(]/g);
1659
1690
  if (a > 0)
1660
1691
  try {
1661
- i = String(window[i.substring(0, a).trim()]);
1692
+ r = String(window[r.substring(0, a).trim()]);
1662
1693
  } catch {
1663
- i = "";
1694
+ r = "";
1664
1695
  }
1665
1696
  }
1666
- i.split("data.").forEach((a) => {
1697
+ r.split("data.").forEach((a) => {
1667
1698
  if (a.trim() != "") {
1668
1699
  const c = a.search(/[^_A-Za-z0-9]/g);
1669
1700
  let l = "";
1670
- c >= 0 ? l = a.substring(0, c) : i.startsWith("data.") && (l = a.replace("data.", "")), l && t(this, M).push({ name: l, type: "string" });
1701
+ c >= 0 ? l = a.substring(0, c) : r.startsWith("data.") && (l = a.replace("data.", "")), l && t(this, H).push({ name: l, type: "string" });
1671
1702
  }
1672
1703
  });
1673
1704
  });
1674
1705
  });
1675
- t(this, jt).call(this);
1706
+ t(this, Vt).call(this);
1676
1707
  }
1677
1708
  }, "#init"));
1678
- p(this, wt, n), t(this, me).call(this);
1709
+ y(this, St, s), t(this, ve).call(this);
1679
1710
  }
1680
1711
  // 🎯 기존에 필드 이름만 쓰던 곳들과의 호환을 위해 이름 배열만 리턴하는 메서드 유지
1681
1712
  get() {
1682
- return t(this, M).map((n) => n.name);
1713
+ return t(this, H).map((s) => s.name);
1683
1714
  }
1684
1715
  // 🎯 내부 객체 통째로 얻기
1685
1716
  getFields() {
1686
- return t(this, M);
1717
+ return t(this, H);
1687
1718
  }
1688
1719
  // 🎯 특정 필드의 데이터 타입 조회
1689
- getType(n) {
1690
- const e = t(this, M).find((s) => s.name === n);
1720
+ getType(s) {
1721
+ const e = t(this, H).find((n) => n.name === s);
1691
1722
  return e ? e.type : "string";
1692
1723
  }
1693
- indexOf(n) {
1694
- return t(this, M).findIndex((e) => e.name === n);
1724
+ indexOf(s) {
1725
+ return t(this, H).findIndex((e) => e.name === s);
1695
1726
  }
1696
- includes(n) {
1697
- return t(this, M).some((e) => e.name === n);
1727
+ includes(s) {
1728
+ return t(this, H).some((e) => e.name === s);
1698
1729
  }
1699
1730
  };
1700
- wt = new WeakMap(), M = new WeakMap(), jt = new WeakMap(), me = new WeakMap(), h(is, "ngFields");
1701
- let Ne = is;
1702
- var dt, xe, we;
1703
- const as = class as extends HTMLElement {
1731
+ St = new WeakMap(), H = new WeakMap(), Vt = new WeakMap(), ve = new WeakMap(), h(cs, "ngFields");
1732
+ let De = cs;
1733
+ var gt, Se, Ae;
1734
+ const hs = class hs extends HTMLElement {
1704
1735
  constructor() {
1705
1736
  super();
1706
1737
  //#created = false;
1707
- f(this, dt);
1708
- f(this, xe);
1709
- f(this, we, /* @__PURE__ */ h(() => {
1710
- this.fields = new Ne(this), p(this, xe, new Ie(this)), S.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
1738
+ d(this, gt);
1739
+ d(this, Se);
1740
+ d(this, Ae, /* @__PURE__ */ h(() => {
1741
+ this.fields = new De(this), y(this, Se, new $e(this)), S.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
1711
1742
  }, "#init"));
1712
- this.attachShadow({ mode: "open" }), p(this, dt, new $e(this));
1743
+ this.attachShadow({ mode: "open" }), y(this, gt, new Oe(this));
1713
1744
  }
1714
1745
  connectedCallback() {
1715
- t(this, we).call(this);
1746
+ t(this, Ae).call(this);
1716
1747
  }
1717
1748
  disconnectedCallback() {
1718
1749
  S.log("NineTable disconnected.");
1719
1750
  }
1720
1751
  // 🎯 외부에서 grid.data.set(...) 형태로 접근할 수 있도록 데이터 매니저 오픈
1721
1752
  get data() {
1722
- return t(this, dt).data;
1753
+ return t(this, gt).data;
1723
1754
  }
1724
1755
  // 🎯 행(row) 관련 제어 접근자 오픈
1725
1756
  get row() {
1726
- return t(this, dt).row;
1757
+ return t(this, gt).row;
1727
1758
  }
1728
1759
  // 🎯 전체 데이터 매니저 접근 필요할 경우
1729
1760
  get dataManager() {
1730
- return t(this, dt);
1761
+ return t(this, gt);
1731
1762
  }
1732
1763
  };
1733
- dt = new WeakMap(), xe = new WeakMap(), we = new WeakMap(), h(as, "NineTable");
1734
- let _e = as;
1735
- customElements.get("nine-table") || customElements.define("nine-table", _e);
1736
- const Et = class Et extends HTMLElement {
1764
+ gt = new WeakMap(), Se = new WeakMap(), Ae = new WeakMap(), h(hs, "NineTable");
1765
+ let We = hs;
1766
+ customElements.get("nine-table") || customElements.define("nine-table", We);
1767
+ const Ct = class Ct extends HTMLElement {
1737
1768
  // 👈 커스텀 스타일용 캐시 추가
1738
1769
  constructor() {
1739
1770
  super();
@@ -1744,74 +1775,74 @@ const Et = class Et extends HTMLElement {
1744
1775
  connectedCallback() {
1745
1776
  }
1746
1777
  };
1747
- h(Et, "BasicCellElement"), q(Et, "_styleCache", /* @__PURE__ */ new Map()), q(Et, "_customStyleCache", /* @__PURE__ */ new Map());
1748
- let De = Et;
1749
- var I, Yt, x, je, Ye, Ve, Ue, Xe;
1750
- const ls = class ls extends De {
1778
+ h(Ct, "BasicCellElement"), q(Ct, "_styleCache", /* @__PURE__ */ new Map()), q(Ct, "_customStyleCache", /* @__PURE__ */ new Map());
1779
+ let ze = Ct;
1780
+ var L, Ut, v, Ue, Xe, Ke, Ge, Ze;
1781
+ const ds = class ds extends ze {
1751
1782
  constructor() {
1752
1783
  super();
1753
- f(this, I);
1754
- f(this, Yt);
1755
- f(this, x);
1756
- f(this, je);
1757
- f(this, Ye);
1758
- f(this, Ve);
1759
- f(this, Ue);
1784
+ d(this, L);
1785
+ d(this, Ut);
1786
+ d(this, v);
1787
+ d(this, Ue);
1788
+ d(this, Xe);
1789
+ d(this, Ke);
1790
+ d(this, Ge);
1760
1791
  q(this, "getDisplayText", /* @__PURE__ */ h((e) => {
1761
- if (t(this, x))
1762
- if (t(this, x).closest("tbody")) {
1763
- const s = t(this, x).closest("tr").data, r = parseInt(t(this, x).dataset.row);
1764
- if (!s) return "";
1765
- if (ninegrid.isNull(t(this, x).dataset.expr)) {
1766
- if (!ninegrid.isNull(t(this, x).dataset.bind))
1767
- return s[t(this, x).dataset.bind] || ninegrid.nvl(e, "");
1792
+ if (t(this, v))
1793
+ if (t(this, v).closest("tbody")) {
1794
+ const n = t(this, v).closest("tr").data, o = parseInt(t(this, v).dataset.row);
1795
+ if (!n) return "";
1796
+ if (ninegrid.isNull(t(this, v).dataset.expr)) {
1797
+ if (!ninegrid.isNull(t(this, v).dataset.bind))
1798
+ return n[t(this, v).dataset.bind] || ninegrid.nvl(e, "");
1768
1799
  } else try {
1769
- return this.getExprValue(t(this, x).dataset.expr, s, r, t(this, x));
1800
+ return this.getExprValue(t(this, v).dataset.expr, n, o, t(this, v));
1770
1801
  } catch {
1771
- console.error(t(this, x).dataset.expr, s, t(this, x).dataset.row);
1802
+ console.error(t(this, v).dataset.expr, n, t(this, v).dataset.row);
1772
1803
  }
1773
1804
  return ninegrid.nvl(e, "");
1774
1805
  } else
1775
1806
  try {
1776
- return t(this, I).exprFunction(t(this, x).dataset.expr).call(this, null, -1, t(this, I).data);
1807
+ return t(this, L).exprFunction(t(this, v).dataset.expr).call(this, null, -1, t(this, L).data);
1777
1808
  } catch {
1778
1809
  }
1779
1810
  }, "getDisplayText"));
1780
- f(this, Xe, /* @__PURE__ */ h(() => {
1781
- if (!(!t(this, I) || !t(this, I).template || !t(this, x).closest("tbody.bindable"))) {
1782
- var e = ninegrid.j.querySelectorAll(t(this, x)).attr("suppress");
1811
+ d(this, Ze, /* @__PURE__ */ h(() => {
1812
+ if (!(!t(this, L) || !t(this, L).template || !t(this, v).closest("tbody.bindable"))) {
1813
+ var e = ninegrid.j.querySelectorAll(t(this, v)).attr("suppress");
1783
1814
  if (e && (e = parseInt(e)), e && !isNaN(e)) {
1784
- var s = t(this, x).closest("tr"), r = [];
1785
- $("th,td", s).each((m, C) => {
1786
- var A = ninegrid.j.querySelectorAll(C).attr("suppress");
1787
- A && C.dataset.row && (A = parseInt(A), !isNaN(A) && A <= e && r.push(A));
1788
- }), r.sort();
1789
- var o = !1;
1790
- if (parseInt(s.sectionRowIndex / t(this, I).template.length) > 0)
1791
- for (var i of r) {
1792
- if (i > e) break;
1793
- var a = parseInt(t(this, x).dataset.row), c = a - 1, l = t(this, x).closest("tr").data, d = t(this, I).data.get(c);
1794
- t(this, x).dataset.matrixRow;
1795
- var u = t(this, I).body.querySelector(`tbody.bindable [suppress="${i}"][data-matrix-row="${t(this, x).dataset.matrixRow}"]`), b = u.dataset.expr ? this.getExprValue(u.dataset.expr, l, a) : l[u.dataset.bind], g = u.dataset.expr ? this.getExprValue(u.dataset.expr, d, c) : d[u.dataset.bind];
1796
- if (b != g) {
1797
- o = !0;
1815
+ var n = t(this, v).closest("tr"), o = [];
1816
+ $("th,td", n).each((m, T) => {
1817
+ var A = ninegrid.j.querySelectorAll(T).attr("suppress");
1818
+ A && T.dataset.row && (A = parseInt(A), !isNaN(A) && A <= e && o.push(A));
1819
+ }), o.sort();
1820
+ var i = !1;
1821
+ if (parseInt(n.sectionRowIndex / t(this, L).template.length) > 0)
1822
+ for (var r of o) {
1823
+ if (r > e) break;
1824
+ var a = parseInt(t(this, v).dataset.row), c = a - 1, l = t(this, v).closest("tr").data, g = t(this, L).data.get(c);
1825
+ t(this, v).dataset.matrixRow;
1826
+ var f = t(this, L).body.querySelector(`tbody.bindable [suppress="${r}"][data-matrix-row="${t(this, v).dataset.matrixRow}"]`), b = f.dataset.expr ? this.getExprValue(f.dataset.expr, l, a) : l[f.dataset.bind], u = f.dataset.expr ? this.getExprValue(f.dataset.expr, g, c) : g[f.dataset.bind];
1827
+ if (b != u) {
1828
+ i = !0;
1798
1829
  break;
1799
1830
  }
1800
1831
  }
1801
1832
  else
1802
- o = !0;
1803
- o ? ninegrid.j.querySelectorAll(t(this, x)).removeClass("suppress") : ninegrid.j.querySelectorAll(t(this, x)).addClass("suppress"), ninegrid.j.querySelectorAll(t(this, x)).hasClass("hidden") || (o ? ninegrid.j.querySelectorAll(t(this, x)).removeClass("hidden") : ninegrid.j.querySelectorAll(t(this, x)).addClass("hidden"));
1804
- var y = parseInt(t(this, x).dataset.matrixRow), w = y - 1, v = t(this, I).body.querySelector(`tbody.bindable [data-col="${t(this, x).dataset.col}"][data-matrix-row="${w}"]`);
1805
- $(v).hasClass("suppress") && !ninegrid.j.querySelectorAll(t(this, x)).hasClass("suppress") ? ninegrid.j.querySelectorAll(v).removeClass("last-none-suppress").addClass("last-suppress") : !$(v).hasClass("suppress") && ninegrid.j.querySelectorAll(t(this, x)).hasClass("suppress") ? ninegrid.j.querySelectorAll(v).removeClass("last-suppress").addClass("last-none-suppress") : ninegrid.j.querySelectorAll(v).removeClass("last-none-suppress").removeClass("last-suppress");
1833
+ i = !0;
1834
+ i ? ninegrid.j.querySelectorAll(t(this, v)).removeClass("suppress") : ninegrid.j.querySelectorAll(t(this, v)).addClass("suppress"), ninegrid.j.querySelectorAll(t(this, v)).hasClass("hidden") || (i ? ninegrid.j.querySelectorAll(t(this, v)).removeClass("hidden") : ninegrid.j.querySelectorAll(t(this, v)).addClass("hidden"));
1835
+ var p = parseInt(t(this, v).dataset.matrixRow), x = p - 1, w = t(this, L).body.querySelector(`tbody.bindable [data-col="${t(this, v).dataset.col}"][data-matrix-row="${x}"]`);
1836
+ $(w).hasClass("suppress") && !ninegrid.j.querySelectorAll(t(this, v)).hasClass("suppress") ? ninegrid.j.querySelectorAll(w).removeClass("last-none-suppress").addClass("last-suppress") : !$(w).hasClass("suppress") && ninegrid.j.querySelectorAll(t(this, v)).hasClass("suppress") ? ninegrid.j.querySelectorAll(w).removeClass("last-suppress").addClass("last-none-suppress") : ninegrid.j.querySelectorAll(w).removeClass("last-none-suppress").removeClass("last-suppress");
1806
1837
  }
1807
1838
  }
1808
1839
  }, "#resetSuppress"));
1809
- q(this, "getExprValue", /* @__PURE__ */ h((e, s, r, o) => {
1840
+ q(this, "getExprValue", /* @__PURE__ */ h((e, n, o, i) => {
1810
1841
  if (typeof e < "u")
1811
1842
  try {
1812
- r = parseInt(r);
1813
- const i = e.replace("()", "");
1814
- return t(this, I)[i] ? t(this, I)[i].call(this, s, r, t(this, x)) : t(this, I).exprFunction(e).call(this, s, r, t(this, I).data);
1843
+ o = parseInt(o);
1844
+ const r = e.replace("()", "");
1845
+ return t(this, L)[r] ? t(this, L)[r].call(this, n, o, t(this, v)) : t(this, L).exprFunction(e).call(this, n, o, t(this, L).data);
1815
1846
  } catch {
1816
1847
  return ["NG-COMBO"].includes(this.tagName) ? "" : e;
1817
1848
  }
@@ -1820,31 +1851,31 @@ const ls = class ls extends De {
1820
1851
  }, "getExprValue"));
1821
1852
  }
1822
1853
  connectedCallback() {
1823
- super.connectedCallback(), p(this, I, this.getRootNode().host), p(this, x, this.closest("th,td")), p(this, Yt, t(this, x).closest("tr"));
1854
+ super.connectedCallback(), y(this, L, this.getRootNode().host), y(this, v, this.closest("th,td")), y(this, Ut, t(this, v).closest("tr"));
1824
1855
  }
1825
1856
  get value() {
1826
- var e = !t(this, I) || !t(this, I).dataManager || !t(this, x) || !t(this, x).dataset || !t(this, x).dataset.row || !t(this, x).dataset.bind ? "" : t(this, x).closest("tr").data[t(this, x).dataset.bind];
1857
+ var e = !t(this, L) || !t(this, L).dataManager || !t(this, v) || !t(this, v).dataset || !t(this, v).dataset.row || !t(this, v).dataset.bind ? "" : t(this, v).closest("tr").data[t(this, v).dataset.bind];
1827
1858
  return e ?? "";
1828
1859
  }
1829
1860
  set value(e) {
1830
- var s = parseInt(t(this, x).dataset.row);
1831
- const r = this.getAttribute("update-row-state") != "false";
1832
- s < 0 ? t(this, I).data.setValueNF(parseInt(t(this, x).dataset.index), t(this, x).dataset.bind, e, r) : t(this, I).data.setValue(s, t(this, x).dataset.bind, e, r);
1861
+ var n = parseInt(t(this, v).dataset.row);
1862
+ const o = this.getAttribute("update-row-state") != "false";
1863
+ n < 0 ? t(this, L).data.setValueNF(parseInt(t(this, v).dataset.index), t(this, v).dataset.bind, e, o) : t(this, L).data.setValue(n, t(this, v).dataset.bind, e, o);
1833
1864
  }
1834
1865
  get row() {
1835
- return parseInt(t(this, x).dataset.row);
1866
+ return parseInt(t(this, v).dataset.row);
1836
1867
  }
1837
1868
  get data() {
1838
- return t(this, x).closest("tr").data;
1869
+ return t(this, v).closest("tr").data;
1839
1870
  }
1840
1871
  refresh() {
1841
- const e = t(this, x).dataset.bind;
1842
- return parseInt(t(this, x).dataset.row), t(this, Yt).data[e];
1872
+ const e = t(this, v).dataset.bind;
1873
+ return parseInt(t(this, v).dataset.row), t(this, Ut).data[e];
1843
1874
  }
1844
1875
  };
1845
- I = new WeakMap(), Yt = new WeakMap(), x = new WeakMap(), je = new WeakMap(), Ye = new WeakMap(), Ve = new WeakMap(), Ue = new WeakMap(), Xe = new WeakMap(), h(ls, "CellElement");
1846
- let Oe = ls;
1847
- const cs = class cs extends Oe {
1876
+ L = new WeakMap(), Ut = new WeakMap(), v = new WeakMap(), Ue = new WeakMap(), Xe = new WeakMap(), Ke = new WeakMap(), Ge = new WeakMap(), Ze = new WeakMap(), h(ds, "CellElement");
1877
+ let Be = ds;
1878
+ const fs = class fs extends Be {
1848
1879
  constructor() {
1849
1880
  super();
1850
1881
  }
@@ -1855,21 +1886,21 @@ const cs = class cs extends Oe {
1855
1886
  return super.refresh();
1856
1887
  }
1857
1888
  };
1858
- h(cs, "EditableCellElement");
1859
- let We = cs;
1860
- var Vt, ft, vt, St, ve, K, Ge;
1861
- const hs = class hs extends We {
1889
+ h(fs, "EditableCellElement");
1890
+ let Pe = fs;
1891
+ var Xt, bt, At, Rt, Re, J, Je;
1892
+ const us = class us extends Pe {
1862
1893
  constructor() {
1863
1894
  super();
1864
- f(this, Vt);
1865
- f(this, ft);
1866
- f(this, vt);
1867
- f(this, St);
1868
- f(this, ve);
1869
- f(this, K);
1895
+ d(this, Xt);
1896
+ d(this, bt);
1897
+ d(this, At);
1898
+ d(this, Rt);
1899
+ d(this, Re);
1900
+ d(this, J);
1870
1901
  q(this, "refresh", /* @__PURE__ */ h(() => {
1871
1902
  const e = super.refresh();
1872
- t(this, Vt).value = e;
1903
+ t(this, Xt).value = e;
1873
1904
  }, "refresh"));
1874
1905
  /**
1875
1906
  dataRefresh = (v) => {
@@ -1901,36 +1932,36 @@ const hs = class hs extends We {
1901
1932
  if (!v) this.reset();
1902
1933
  };
1903
1934
  */
1904
- f(this, Ge, /* @__PURE__ */ h((e) => {
1935
+ d(this, Je, /* @__PURE__ */ h((e) => {
1905
1936
  if (!["Escape", "Enter", "Tab", "Home", "End", "ArrowLeft", "ArrowRight", "PageUp", "PageDown", "Backspace", "Delete"].includes(e.code)) {
1906
- if (t(this, ft) == "number") {
1907
- let o = [];
1908
- if (t(this, K) && Number(t(this, K)) > 0 && o.push("."), t(this, St) && Number(t(this, St)) >= 0 && o.push("-"), !(e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105) && !o.includes(e.key) && e.preventDefault(), t(this, K) && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105) && e.target.selectionStart == e.target.selectionEnd) {
1909
- var s = e.target.value, r = s.indexOf(".");
1910
- if (r >= 0) {
1911
- var s = s.substr(r + 1, s.length);
1912
- s.length >= Number(t(this, K)) && e.preventDefault();
1937
+ if (t(this, bt) == "number") {
1938
+ let i = [];
1939
+ if (t(this, J) && Number(t(this, J)) > 0 && i.push("."), t(this, Rt) && Number(t(this, Rt)) >= 0 && i.push("-"), !(e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105) && !i.includes(e.key) && e.preventDefault(), t(this, J) && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105) && e.target.selectionStart == e.target.selectionEnd) {
1940
+ var n = e.target.value, o = n.indexOf(".");
1941
+ if (o >= 0) {
1942
+ var n = n.substr(o + 1, n.length);
1943
+ n.length >= Number(t(this, J)) && e.preventDefault();
1913
1944
  }
1914
1945
  }
1915
1946
  }
1916
- t(this, vt) && ninegrid.getByteLength(e.target.value) >= Number(t(this, vt)) && e.target.selectionStart == e.target.selectionEnd && e.preventDefault();
1947
+ t(this, At) && ninegrid.getByteLength(e.target.value) >= Number(t(this, At)) && e.target.selectionStart == e.target.selectionEnd && e.preventDefault();
1917
1948
  }
1918
1949
  }, "#onKeyDown"));
1919
- if (this.applyBaseStyle(), p(this, ft, this.getAttribute("type") || "text"), p(this, vt, this.getAttribute("maxbyte")), p(this, St, this.getAttribute("min")), p(this, ve, this.getAttribute("max")), p(this, K, this.getAttribute("scale")), !["text", "number"].includes(t(this, ft))) throw `invalid type : ${t(this, ft)}`;
1950
+ if (this.applyBaseStyle(), y(this, bt, this.getAttribute("type") || "text"), y(this, At, this.getAttribute("maxbyte")), y(this, Rt, this.getAttribute("min")), y(this, Re, this.getAttribute("max")), y(this, J, this.getAttribute("scale")), !["text", "number"].includes(t(this, bt))) throw `invalid type : ${t(this, bt)}`;
1920
1951
  }
1921
1952
  connectedCallback() {
1922
- for (var e = [], s = 0; s < this.attributes.length; s++)
1923
- ["type", "maxlength", "maxbyte", "min", "max", "step", "scale", "text-align"].includes(this.attributes[s].name) && e.push(`${this.attributes[s].name}="${this.attributes[s].value}"`);
1953
+ for (var e = [], n = 0; n < this.attributes.length; n++)
1954
+ ["type", "maxlength", "maxbyte", "min", "max", "step", "scale", "text-align"].includes(this.attributes[n].name) && e.push(`${this.attributes[n].name}="${this.attributes[n].value}"`);
1924
1955
  this.innerHTML = `
1925
1956
  <input type="text"
1926
1957
  ${e.join(" ")}
1927
1958
  ondragstart="return false;"
1928
1959
  >
1929
- `, super.connectedCallback(), p(this, Vt, this.querySelector("input"));
1960
+ `, super.connectedCallback(), y(this, Xt, this.querySelector("input"));
1930
1961
  }
1931
1962
  };
1932
- Vt = new WeakMap(), ft = new WeakMap(), vt = new WeakMap(), St = new WeakMap(), ve = new WeakMap(), K = new WeakMap(), Ge = new WeakMap(), h(hs, "CellInputText");
1933
- let ze = hs;
1963
+ Xt = new WeakMap(), bt = new WeakMap(), At = new WeakMap(), Rt = new WeakMap(), Re = new WeakMap(), J = new WeakMap(), Je = new WeakMap(), h(us, "CellInputText");
1964
+ let Fe = us;
1934
1965
  customElements.get("cell-input-text");
1935
- customElements.get("cell-input") || customElements.define("cell-input", ze);
1966
+ customElements.get("cell-input") || customElements.define("cell-input", Fe);
1936
1967
  //# sourceMappingURL=nine-table.js.map