@ninebone/table 0.0.771 → 0.0.772

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