@ninebone/table 0.0.594 → 0.0.596

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.
@@ -3,7 +3,7 @@ var Ve = (R) => {
3
3
  throw TypeError(R);
4
4
  };
5
5
  var Xe = (R, i, e) => i in R ? Fe(R, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : R[i] = e;
6
- var c = (R, i) => Fe(R, "name", { value: i, configurable: !0 });
6
+ var h = (R, i) => Fe(R, "name", { value: i, configurable: !0 });
7
7
  var E = (R, i, e) => Xe(R, typeof i != "symbol" ? i + "" : i, e), Ye = (R, i, e) => i.has(R) || Ve("Cannot " + e);
8
8
  var t = (R, i, e) => (Ye(R, i, "read from private field"), e ? e.call(R) : i.get(R)), d = (R, i, e) => i.has(R) ? Ve("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(R) : i.set(R, e), p = (R, i, e, s) => (Ye(R, i, "write to private field"), s ? s.call(R, e) : i.set(R, e), e);
9
9
  var Ue = (R, i, e, s) => ({
@@ -20,7 +20,7 @@ const He = class He extends Ke.constructor {
20
20
  super(), this.init("nine-table", "green");
21
21
  }
22
22
  };
23
- c(He, "Trace");
23
+ h(He, "Trace");
24
24
  let oe = He;
25
25
  const W = new oe();
26
26
  var z, j, w, X, K, Z, It, G, _t;
@@ -33,19 +33,19 @@ const Me = class Me extends HTMLElement {
33
33
  d(this, X);
34
34
  d(this, K);
35
35
  d(this, Z);
36
- d(this, It, /* @__PURE__ */ c(() => {
36
+ d(this, It, /* @__PURE__ */ h(() => {
37
37
  if (!t(this, z)) return;
38
38
  const e = t(this, z).querySelector(".ng-container-body .ng-part-body");
39
39
  e && (p(this, Z, new ResizeObserver(() => {
40
40
  this.refresh();
41
41
  })), t(this, Z).observe(e));
42
42
  }, "#observeResize"));
43
- E(this, "refresh", /* @__PURE__ */ c(() => {
43
+ E(this, "refresh", /* @__PURE__ */ h(() => {
44
44
  if (!t(this, z) || !t(this, w) || t(this, j)) return;
45
45
  const e = t(this, w).container, s = e.querySelector("table");
46
46
  if (!s) return;
47
- const r = t(this, w).track, n = t(this, w).thumb, o = t(this, z).querySelector(".ng-container-bottom"), a = e.clientWidth, h = s.scrollWidth;
48
- if (a !== 0 && h > a)
47
+ const r = t(this, w).track, n = t(this, w).thumb, o = t(this, z).querySelector(".ng-container-bottom"), a = e.clientWidth, c = s.scrollWidth;
48
+ if (a !== 0 && c > a)
49
49
  o && (o.style.display = "flex");
50
50
  else {
51
51
  o && (o.style.display = "none");
@@ -53,28 +53,28 @@ const Me = class Me extends HTMLElement {
53
53
  }
54
54
  const l = r.clientWidth;
55
55
  if (l <= 0) return;
56
- const f = Math.max(Math.min(l * (a / h), l), 20);
56
+ const f = Math.max(Math.min(l * (a / c), l), 20);
57
57
  n.style.width = `${f}px`;
58
- const u = e.scrollLeft, g = h - a;
58
+ const u = e.scrollLeft, g = c - a;
59
59
  let b = 0;
60
60
  g > 0 && (b = parseInt(u / g * (l - f), 10)), b < 0 && (b = 0);
61
61
  const m = l - f;
62
62
  b > m && (b = m), n.style.left = `${b}px`, t(this, w).left.disabled = b === 0, t(this, w).right.disabled = b >= m - 1;
63
63
  }, "refresh"));
64
- d(this, G, /* @__PURE__ */ c((e) => {
64
+ d(this, G, /* @__PURE__ */ h((e) => {
65
65
  if (!t(this, w)) return !1;
66
66
  const s = t(this, w).container, r = s.querySelector("table");
67
67
  if (!r) return !1;
68
68
  const n = t(this, w).track.getBoundingClientRect(), o = t(this, w).thumb.clientWidth;
69
69
  let a = e;
70
70
  a < 0 && (a = 0);
71
- const h = n.width - o;
72
- a > h && (a = h), a = parseInt(a, 10), t(this, w).thumb.style.left = `${a}px`, t(this, w).left.disabled = a === 0, t(this, w).right.disabled = a >= h - 1;
71
+ const c = n.width - o;
72
+ a > c && (a = c), a = parseInt(a, 10), t(this, w).thumb.style.left = `${a}px`, t(this, w).left.disabled = a === 0, t(this, w).right.disabled = a >= c - 1;
73
73
  const l = s.clientWidth, u = r.scrollWidth - l;
74
- return h > 0 && u > 0 && (s.scrollLeft = a / h * u), a > 0 && a < h - 1;
74
+ return c > 0 && u > 0 && (s.scrollLeft = a / c * u), a > 0 && a < c - 1;
75
75
  }, "#thumbMoveTo"));
76
- d(this, _t, /* @__PURE__ */ c(() => {
77
- const e = /* @__PURE__ */ c((r) => {
76
+ d(this, _t, /* @__PURE__ */ h(() => {
77
+ const e = /* @__PURE__ */ h((r) => {
78
78
  clearInterval(t(this, X)), clearInterval(t(this, K));
79
79
  const n = parseInt(t(this, w).thumb.style.left || 0, 10);
80
80
  t(this, G).call(this, n + r), p(this, X, setInterval(() => {
@@ -83,7 +83,7 @@ const Me = class Me extends HTMLElement {
83
83
  t(this, G).call(this, o + r) || clearInterval(t(this, K));
84
84
  }, 50));
85
85
  }, 500));
86
- }, "delayScroll"), s = /* @__PURE__ */ c(() => {
86
+ }, "delayScroll"), s = /* @__PURE__ */ h(() => {
87
87
  clearInterval(t(this, X)), clearInterval(t(this, K));
88
88
  }, "clearTimer");
89
89
  ["mouseup", "mouseleave", "touchend"].forEach((r) => {
@@ -100,11 +100,11 @@ const Me = class Me extends HTMLElement {
100
100
  }), t(this, w).thumb.addEventListener("mousedown", (r) => {
101
101
  if (r.button !== 0) return;
102
102
  r.stopPropagation(), r.preventDefault(), p(this, j, !0), this.shiftX = r.clientX - t(this, w).thumb.getBoundingClientRect().left;
103
- const n = /* @__PURE__ */ c((a) => {
103
+ const n = /* @__PURE__ */ h((a) => {
104
104
  if (!t(this, j)) return;
105
- const h = t(this, w).track.getBoundingClientRect();
106
- t(this, G).call(this, a.clientX - h.left - this.shiftX);
107
- }, "onMouseMove"), o = /* @__PURE__ */ c(() => {
105
+ const c = t(this, w).track.getBoundingClientRect();
106
+ t(this, G).call(this, a.clientX - c.left - this.shiftX);
107
+ }, "onMouseMove"), o = /* @__PURE__ */ h(() => {
108
108
  p(this, j, !1), s(), document.removeEventListener("mousemove", n), document.removeEventListener("mouseup", o), this.refresh();
109
109
  }, "onMouseUp");
110
110
  document.addEventListener("mousemove", n), document.addEventListener("mouseup", o);
@@ -176,7 +176,7 @@ const Me = class Me extends HTMLElement {
176
176
  <div class='ng-scroll-track'><div class='ng-scroll-thumb'></div></div>
177
177
  <button class='ng-scroll-right' disabled><div class='ng-scroll-icon'></div></button>
178
178
  `;
179
- const e = /* @__PURE__ */ c(() => {
179
+ const e = /* @__PURE__ */ h(() => {
180
180
  const s = t(this, z).querySelector(".ng-container-body .ng-part-body");
181
181
  if (!s) {
182
182
  setTimeout(e, 10);
@@ -198,7 +198,7 @@ const Me = class Me extends HTMLElement {
198
198
  t(this, Z) && t(this, Z).disconnect();
199
199
  }
200
200
  };
201
- z = new WeakMap(), j = new WeakMap(), w = new WeakMap(), X = new WeakMap(), K = new WeakMap(), Z = new WeakMap(), It = new WeakMap(), G = new WeakMap(), _t = new WeakMap(), c(Me, "NineTableHScrollBar");
201
+ z = new WeakMap(), j = new WeakMap(), w = new WeakMap(), X = new WeakMap(), K = new WeakMap(), Z = new WeakMap(), It = new WeakMap(), G = new WeakMap(), _t = new WeakMap(), h(Me, "NineTableHScrollBar");
202
202
  let ae = Me;
203
203
  customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", ae);
204
204
  var F, at, J, q, vt, xt, Nt;
@@ -211,9 +211,9 @@ const $e = class $e extends HTMLElement {
211
211
  d(this, q);
212
212
  d(this, vt, 0);
213
213
  d(this, xt, 0);
214
- E(this, "refresh", /* @__PURE__ */ c(() => {
214
+ E(this, "refresh", /* @__PURE__ */ h(() => {
215
215
  if (!t(this, F) || !t(this, q)) return;
216
- const e = t(this, q).container, s = t(this, q).track, r = t(this, q).thumb, n = e.clientHeight, a = (t(this, F).data.get() || []).length, h = t(this, at).getRowHeight(), l = a * h;
216
+ const e = t(this, q).container, s = t(this, q).track, r = t(this, q).thumb, n = e.clientHeight, a = (t(this, F).data.get() || []).length, c = t(this, at).getRowHeight(), l = a * c;
217
217
  if (l <= n) {
218
218
  r.style.display = "none", t(this, q).top.disabled = !0, t(this, q).bottom.disabled = !0;
219
219
  return;
@@ -229,9 +229,9 @@ const $e = class $e extends HTMLElement {
229
229
  const x = f - u;
230
230
  m < 0 && (m = 0), m > x && (m = x), r.style.top = `${m}px`, t(this, q).top.disabled = g <= 0, t(this, q).bottom.disabled = g >= b - 1;
231
231
  }, "refresh"));
232
- d(this, Nt, /* @__PURE__ */ c(() => {
232
+ d(this, Nt, /* @__PURE__ */ h(() => {
233
233
  W.log("nine-table-vscrollbar.#init");
234
- const e = t(this, q).container, s = /* @__PURE__ */ c(() => {
234
+ const e = t(this, q).container, s = /* @__PURE__ */ h(() => {
235
235
  const n = (t(this, F).data.get() || []).length, o = t(this, at).getRowHeight();
236
236
  return n * o;
237
237
  }, "getContentHeight");
@@ -240,9 +240,9 @@ const $e = class $e extends HTMLElement {
240
240
  }), t(this, q).thumb.addEventListener("mousedown", (r) => {
241
241
  if (r.button !== 0) return;
242
242
  r.stopPropagation(), r.preventDefault(), p(this, J, !0), p(this, vt, r.clientY), p(this, xt, e.scrollTop);
243
- const n = /* @__PURE__ */ c((a) => {
243
+ const n = /* @__PURE__ */ h((a) => {
244
244
  if (!t(this, J)) return;
245
- const h = t(this, q).track.getBoundingClientRect(), l = t(this, q).thumb.clientHeight, u = h.height - l, g = a.clientY - t(this, vt), b = e.clientHeight, m = s(), x = Math.max(m - b, 1);
245
+ const c = t(this, q).track.getBoundingClientRect(), l = t(this, q).thumb.clientHeight, u = c.height - l, g = a.clientY - t(this, vt), b = e.clientHeight, m = s(), x = Math.max(m - b, 1);
246
246
  if (u > 0 && x > 0) {
247
247
  const A = g / u * x;
248
248
  let v = t(this, xt) + A;
@@ -250,7 +250,7 @@ const $e = class $e extends HTMLElement {
250
250
  v < 0 && (v = 0), v > M && (v = M), e.scrollTop = v;
251
251
  }
252
252
  this.refresh();
253
- }, "onMouseMove"), o = /* @__PURE__ */ c(() => {
253
+ }, "onMouseMove"), o = /* @__PURE__ */ h(() => {
254
254
  p(this, J, !1), document.removeEventListener("mousemove", n), document.removeEventListener("mouseup", o), this.refresh();
255
255
  }, "onMouseUp");
256
256
  document.addEventListener("mousemove", n), document.addEventListener("mouseup", o);
@@ -334,7 +334,7 @@ const $e = class $e extends HTMLElement {
334
334
  <div class='ng-scroll-track'><div class='ng-scroll-thumb'></div></div>
335
335
  <button class='ng-scroll-bottom' disabled><div class='ng-scroll-icon'></div></button>
336
336
  `;
337
- const e = /* @__PURE__ */ c(() => {
337
+ const e = /* @__PURE__ */ h(() => {
338
338
  const s = t(this, F).shadowRoot.querySelector(".ng-container-body .ng-part-body");
339
339
  if (!s) {
340
340
  setTimeout(e, 10);
@@ -351,7 +351,7 @@ const $e = class $e extends HTMLElement {
351
351
  e();
352
352
  }
353
353
  };
354
- F = new WeakMap(), at = new WeakMap(), J = new WeakMap(), q = new WeakMap(), vt = new WeakMap(), xt = new WeakMap(), Nt = new WeakMap(), c($e, "NineTableVScrollBar");
354
+ F = new WeakMap(), at = new WeakMap(), J = new WeakMap(), q = new WeakMap(), vt = new WeakMap(), xt = new WeakMap(), Nt = new WeakMap(), h($e, "NineTableVScrollBar");
355
355
  let le = $e;
356
356
  customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar", le);
357
357
  var P, S, Q, D, I, V, tt, wt, Se, Ae, Wt, Ot, Bt, St, At, zt, Dt, Et, Ee, lt, Rt, Pt;
@@ -369,22 +369,22 @@ const Ie = class Ie {
369
369
  d(this, Ae, !1);
370
370
  //#ticking = false; // 🎯 고속 스크롤 스로틀링용 플래그
371
371
  d(this, Wt, 3);
372
- E(this, "refresh", /* @__PURE__ */ c(() => {
372
+ E(this, "refresh", /* @__PURE__ */ h(() => {
373
373
  var e;
374
374
  W.log("rowManager.refresh");
375
375
  const i = t(this, S).querySelector(".ng-container-body .ng-part-body");
376
376
  i && (t(this, St).call(this), t(this, lt).call(this, i.scrollTop), (e = t(this, S).querySelector("nine-table-vscrollbar")) == null || e.refresh());
377
377
  }, "refresh"));
378
- E(this, "initialize", /* @__PURE__ */ c(() => {
378
+ E(this, "initialize", /* @__PURE__ */ h(() => {
379
379
  W.log("rowManager.initialize"), p(this, Q, {
380
380
  scrollTables: t(this, S).querySelectorAll(".ng-part-body table"),
381
381
  firstTr: t(this, S).querySelector(".ng-container-body .ng-part-body tbody.bindable-tbody tr:not(.nodata)")
382
382
  }), p(this, I, null), t(this, D).clear(), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((o) => {
383
383
  const a = t(this, S).querySelector(o);
384
384
  if (!a) return;
385
- const h = a.querySelector(".ng-part-body table");
386
- if (!h) return;
387
- const l = h.querySelector("tbody.bindable-tbody");
385
+ const c = a.querySelector(".ng-part-body table");
386
+ if (!c) return;
387
+ const l = c.querySelector("tbody.bindable-tbody");
388
388
  if (!l) return;
389
389
  const u = Array.from(l.querySelectorAll("tr")).map((g) => g.cloneNode(!0));
390
390
  t(this, D).set(o, u);
@@ -393,20 +393,20 @@ const Ie = class Ie {
393
393
  if (i) {
394
394
  t(this, Bt).call(this, i), t(this, Et).call(this), t(this, St).call(this), t(this, lt).call(this, i.scrollTop);
395
395
  let o = !1;
396
- const a = /* @__PURE__ */ c((h) => {
396
+ const a = /* @__PURE__ */ h((c) => {
397
397
  if (o) return;
398
398
  o = !0;
399
- const l = h.scrollTop, f = h.scrollLeft;
399
+ const l = c.scrollTop, f = c.scrollLeft;
400
400
  i && i.scrollTop !== l && (i.scrollTop = l), e && e.scrollTop !== l && (e.scrollTop = l), s && s.scrollTop !== l && (s.scrollTop = l), r && r.scrollLeft !== f && (r.scrollLeft = f), n && n.scrollLeft !== f && (n.scrollLeft = f), t(this, lt).call(this, l), o = !1;
401
401
  }, "handleContainerScroll");
402
- [i, e, s].forEach((h) => {
403
- h && h.addEventListener("scroll", () => {
404
- a(h);
402
+ [i, e, s].forEach((c) => {
403
+ c && c.addEventListener("scroll", () => {
404
+ a(c);
405
405
  }, { passive: !0 });
406
406
  });
407
407
  }
408
408
  }, "initialize"));
409
- d(this, Ot, /* @__PURE__ */ c((i, e) => {
409
+ d(this, Ot, /* @__PURE__ */ h((i, e) => {
410
410
  W.log("rowManager.#renderRows");
411
411
  const s = t(this, D).get(e);
412
412
  if (!s || s.length === 0) return;
@@ -415,12 +415,12 @@ const Ie = class Ie {
415
415
  r.querySelectorAll("tr:not(.nodata)").forEach((a) => a.remove());
416
416
  const n = r.querySelector("tr.nodata"), o = document.createDocumentFragment();
417
417
  for (let a = 0; a < t(this, wt); a++)
418
- s.forEach((h) => {
419
- o.appendChild(h.cloneNode(!0));
418
+ s.forEach((c) => {
419
+ o.appendChild(c.cloneNode(!0));
420
420
  });
421
421
  n ? n.before(o) : r.appendChild(o), e === ".ng-container-body" && (t(this, Q).firstTr = r.querySelector("tr:not(.nodata)"));
422
422
  }, "#renderRows"));
423
- d(this, Bt, /* @__PURE__ */ c((i) => {
423
+ d(this, Bt, /* @__PURE__ */ h((i) => {
424
424
  if (W.log("rowManager.#measureAndCacheHeight"), t(this, I) !== null && t(this, I) > 0)
425
425
  return t(this, I);
426
426
  W.log("#measureAndCacheHeight");
@@ -433,15 +433,15 @@ const Ie = class Ie {
433
433
  e.forEach((g) => {
434
434
  n.appendChild(g.cloneNode(!0));
435
435
  }), r ? r.before(n) : s.appendChild(n);
436
- const o = t(this, S), a = o.style.display, h = o.style.visibility, l = o.style.position;
436
+ const o = t(this, S), a = o.style.display, c = o.style.visibility, l = o.style.position;
437
437
  (a === "none" || window.getComputedStyle(o).display === "none") && (o.style.display = "block", o.style.visibility = "hidden", o.style.position = "absolute");
438
438
  let f = 0;
439
439
  const u = s.querySelectorAll("tr:not(.nodata)");
440
440
  return u.forEach((g) => {
441
441
  f += g.offsetHeight || g.getBoundingClientRect().height;
442
- }), u.forEach((g) => g.remove()), o.style.display = a, o.style.visibility = h, o.style.position = l, p(this, I, f > 0 ? f : 24), t(this, At).call(this), t(this, I);
442
+ }), u.forEach((g) => g.remove()), o.style.display = a, o.style.visibility = c, o.style.position = l, p(this, I, f > 0 ? f : 24), t(this, At).call(this), t(this, I);
443
443
  }, "#measureAndCacheHeight"));
444
- d(this, St, /* @__PURE__ */ c(() => {
444
+ d(this, St, /* @__PURE__ */ h(() => {
445
445
  W.log("rowManager.#updateVirtualScrollHeight");
446
446
  const e = (t(this, P).data.get() || []).length, s = t(this, I), r = e * s;
447
447
  [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((n) => {
@@ -451,21 +451,21 @@ const Ie = class Ie {
451
451
  a && (a.style.height = `${r}px`);
452
452
  });
453
453
  }, "#updateVirtualScrollHeight"));
454
- d(this, At, /* @__PURE__ */ c(() => {
454
+ d(this, At, /* @__PURE__ */ h(() => {
455
455
  if (t(this, tt) > 0 && t(this, I) > 0) {
456
456
  const i = Math.ceil(t(this, tt) / t(this, I));
457
457
  p(this, wt, i + t(this, Wt));
458
458
  }
459
459
  }, "#updateRowCount"));
460
- d(this, zt, /* @__PURE__ */ c(() => {
461
- var a, h, l, f, u, g;
460
+ d(this, zt, /* @__PURE__ */ h(() => {
461
+ var a, c, l, f, u, g;
462
462
  const i = t(this, S).querySelector(".ng-container-left .ng-part-body table"), e = t(this, S).querySelector(".ng-container-body .ng-part-body table"), s = t(this, S).querySelector(".ng-container-right .ng-part-body table");
463
463
  if (e) {
464
464
  const b = i ? Array.from(i.querySelectorAll("tbody tr")) : [], m = Array.from(e.querySelectorAll("tbody tr")), x = s ? Array.from(s.querySelectorAll("tbody tr")) : [], A = Math.max(b.length, m.length, x.length);
465
465
  for (let v = 0; v < A; v++) {
466
466
  const M = [
467
467
  ((a = b[v]) == null ? void 0 : a.getBoundingClientRect().height) || 0,
468
- ((h = m[v]) == null ? void 0 : h.getBoundingClientRect().height) || 0,
468
+ ((c = m[v]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
469
469
  ((l = x[v]) == null ? void 0 : l.getBoundingClientRect().height) || 0
470
470
  ], T = Math.max(...M);
471
471
  T > 0 && (b[v] && (b[v].style.height = `${T}px`), m[v] && (m[v].style.height = `${T}px`), x[v] && (x[v].style.height = `${T}px`));
@@ -484,7 +484,7 @@ const Ie = class Ie {
484
484
  }
485
485
  }
486
486
  }, "#syncRowHeights"));
487
- d(this, Dt, /* @__PURE__ */ c(() => {
487
+ d(this, Dt, /* @__PURE__ */ h(() => {
488
488
  !t(this, S) || !(t(this, S) instanceof HTMLElement) || (p(this, V, new ResizeObserver((i) => {
489
489
  for (const e of i) {
490
490
  const s = e.target;
@@ -494,29 +494,29 @@ const Ie = class Ie {
494
494
  let n = 0;
495
495
  const o = s.querySelector(".ng-part-header"), a = s.querySelector(".ng-part-footer");
496
496
  o && (n += o.offsetHeight), a && (n += a.offsetHeight);
497
- const h = Math.max(r - n, 100);
498
- t(this, tt) !== h && (p(this, tt, h), t(this, At).call(this), t(this, I) !== null && (t(this, Et).call(this), this.refresh()));
497
+ const c = Math.max(r - n, 100);
498
+ t(this, tt) !== c && (p(this, tt, c), t(this, At).call(this), t(this, I) !== null && (t(this, Et).call(this), this.refresh()));
499
499
  }
500
500
  }
501
501
  })), t(this, V).observe(t(this, S)));
502
502
  }, "#initResizeObserver"));
503
- d(this, Et, /* @__PURE__ */ c(() => {
503
+ d(this, Et, /* @__PURE__ */ h(() => {
504
504
  W.log("rowManager.#renderAllContainers"), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((i) => {
505
505
  const e = t(this, S).querySelector(i);
506
506
  e && e.querySelector(".ng-part-body tbody.bindable-tbody") && t(this, Ot).call(this, e, i);
507
507
  }), t(this, Pt).call(this), t(this, zt).call(this);
508
508
  }, "#renderAllContainers"));
509
- d(this, Ee, /* @__PURE__ */ c((i) => {
509
+ d(this, Ee, /* @__PURE__ */ h((i) => {
510
510
  [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((e) => {
511
511
  var l;
512
512
  const s = t(this, S).querySelector(e);
513
513
  if (!s) return;
514
514
  const r = s.querySelector(".ng-part-body tbody.bindable-tbody");
515
515
  if (!r) return;
516
- const n = Array.from(r.querySelectorAll("tr:not(.nodata)")), o = ((l = t(this, D).get(e)) == null ? void 0 : l.length) || 1, h = (t(this, P).data.get() || []).length;
516
+ const n = Array.from(r.querySelectorAll("tr:not(.nodata)")), o = ((l = t(this, D).get(e)) == null ? void 0 : l.length) || 1, c = (t(this, P).data.get() || []).length;
517
517
  n.forEach((f, u) => {
518
518
  const g = i + Math.floor(u / o);
519
- if (g >= h) {
519
+ if (g >= c) {
520
520
  f.style.display = "none";
521
521
  return;
522
522
  }
@@ -525,13 +525,13 @@ const Ie = class Ie {
525
525
  });
526
526
  });
527
527
  }, "#adjustBufferRows"));
528
- d(this, lt, /* @__PURE__ */ c((i) => {
528
+ d(this, lt, /* @__PURE__ */ h((i) => {
529
529
  var f, u;
530
530
  const e = t(this, I);
531
531
  if (!e || e <= 0) return;
532
532
  const s = t(this, P).data.length;
533
533
  if (s === 0) return;
534
- const r = ((f = t(this, D).get(".ng-container-body")) == null ? void 0 : f.length) || 1, n = Math.max(0, s - 1), o = Math.min(n, Math.max(0, Math.floor(i / e))), a = Math.floor(o * e), h = t(this, Q).firstTr, l = h && h.dataset.row !== void 0 ? parseInt(h.dataset.row, 10) : -1;
534
+ const r = ((f = t(this, D).get(".ng-container-body")) == null ? void 0 : f.length) || 1, n = Math.max(0, s - 1), o = Math.min(n, Math.max(0, Math.floor(i / e))), a = Math.floor(o * e), c = t(this, Q).firstTr, l = c && c.dataset.row !== void 0 ? parseInt(c.dataset.row, 10) : -1;
535
535
  (u = t(this, Q)) == null || u.scrollTables.forEach((g) => {
536
536
  g.style.transform = `translate3d(0, ${a}px, 0)`;
537
537
  }), l !== o && [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((g) => {
@@ -564,29 +564,29 @@ const Ie = class Ie {
564
564
  cell.dataset.row = dataIndex;
565
565
  });
566
566
  }; */
567
- d(this, Rt, /* @__PURE__ */ c((i, e, s) => {
567
+ d(this, Rt, /* @__PURE__ */ h((i, e, s) => {
568
568
  i.dataset.row = s, i.data = e, Array.from(i.cells).forEach((r, n) => {
569
569
  r.dataset.row = s;
570
570
  const o = Array.from(r.children).find((a) => a.tagName.toLowerCase().startsWith("cell-") || typeof a.refresh == "function");
571
571
  o && typeof o.refresh == "function" && o.refresh();
572
572
  });
573
573
  }, "#bindRowData"));
574
- d(this, Pt, /* @__PURE__ */ c(() => {
575
- var h, l, f;
574
+ d(this, Pt, /* @__PURE__ */ h(() => {
575
+ var c, l, f;
576
576
  W.log("rowManager.#syncHeaderHeights");
577
577
  const i = t(this, S).querySelector(".ng-container-left .ng-part-header table"), e = t(this, S).querySelector(".ng-container-body .ng-part-header table"), s = t(this, S).querySelector(".ng-container-right .ng-part-header table");
578
578
  if (!e) return;
579
579
  const r = i ? Array.from(i.querySelectorAll("tr")) : [], n = Array.from(e.querySelectorAll("tr")), o = s ? Array.from(s.querySelectorAll("tr")) : [], a = Math.max(r.length, n.length, o.length);
580
580
  for (let u = 0; u < a; u++) {
581
581
  const g = [
582
- ((h = r[u]) == null ? void 0 : h.getBoundingClientRect().height) || 0,
582
+ ((c = r[u]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
583
583
  ((l = n[u]) == null ? void 0 : l.getBoundingClientRect().height) || 0,
584
584
  ((f = o[u]) == null ? void 0 : f.getBoundingClientRect().height) || 0
585
585
  ], b = Math.max(...g);
586
586
  b > 0 && (r[u] && (r[u].style.height = `${b}px`), n[u] && (n[u].style.height = `${b}px`), o[u] && (o[u].style.height = `${b}px`));
587
587
  }
588
588
  }, "#syncHeaderHeights"));
589
- E(this, "destroy", /* @__PURE__ */ c(() => {
589
+ E(this, "destroy", /* @__PURE__ */ h(() => {
590
590
  t(this, V) && (t(this, V).disconnect(), p(this, V, null));
591
591
  }, "destroy"));
592
592
  p(this, P, i.getRootNode().host), p(this, S, i), t(this, Dt).call(this);
@@ -599,7 +599,7 @@ const Ie = class Ie {
599
599
  return ((e = t(this, D).get(i)) == null ? void 0 : e.length) || 1;
600
600
  }
601
601
  };
602
- P = new WeakMap(), S = new WeakMap(), Q = new WeakMap(), D = new WeakMap(), I = new WeakMap(), V = new WeakMap(), tt = new WeakMap(), wt = new WeakMap(), Se = new WeakMap(), Ae = new WeakMap(), Wt = new WeakMap(), Ot = new WeakMap(), Bt = new WeakMap(), St = new WeakMap(), At = new WeakMap(), zt = new WeakMap(), Dt = new WeakMap(), Et = new WeakMap(), Ee = new WeakMap(), lt = new WeakMap(), Rt = new WeakMap(), Pt = new WeakMap(), c(Ie, "RowManager");
602
+ P = new WeakMap(), S = new WeakMap(), Q = new WeakMap(), D = new WeakMap(), I = new WeakMap(), V = new WeakMap(), tt = new WeakMap(), wt = new WeakMap(), Se = new WeakMap(), Ae = new WeakMap(), Wt = new WeakMap(), Ot = new WeakMap(), Bt = new WeakMap(), St = new WeakMap(), At = new WeakMap(), zt = new WeakMap(), Dt = new WeakMap(), Et = new WeakMap(), Ee = new WeakMap(), lt = new WeakMap(), Rt = new WeakMap(), Pt = new WeakMap(), h(Ie, "RowManager");
603
603
  let ce = Ie;
604
604
  const jt = class jt {
605
605
  /**
@@ -613,7 +613,7 @@ const jt = class jt {
613
613
  */
614
614
  static compile(i) {
615
615
  if (!i) return null;
616
- const e = /* @__PURE__ */ c((a) => {
616
+ const e = /* @__PURE__ */ h((a) => {
617
617
  a.querySelectorAll("tbody td, tbody th, tfoot td, tfoot th").forEach((l) => {
618
618
  const f = l.getAttribute("cell-type") || "renderer";
619
619
  if (l.children.length > 0 && l.firstElementChild.tagName.includes("-")) return;
@@ -622,9 +622,9 @@ const jt = class jt {
622
622
  let A = [];
623
623
  g && A.push(`data-bind="${g}"`), b && A.push(`data-expr="${b}"`), m && A.push(`maxbyte="${m}"`), x && A.push(`type="${x}"`), l.innerHTML = `<${u} ${A.join(" ")}></${u}>`;
624
624
  });
625
- }, "processCellTypes"), s = /* @__PURE__ */ c((a) => {
625
+ }, "processCellTypes"), s = /* @__PURE__ */ h((a) => {
626
626
  if (!a.querySelector("colgroup")) {
627
- const h = a.querySelector("tbody tr") || a.querySelector("tr"), l = h ? h.querySelectorAll("th, td").length : 1, f = document.createElement("colgroup"), u = Math.max(Math.floor(a.clientWidth / l), 100);
627
+ 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);
628
628
  for (let g = 0; g < l; g++) {
629
629
  const b = document.createElement("col");
630
630
  b.setAttribute("width", u), f.appendChild(b);
@@ -632,12 +632,12 @@ const jt = class jt {
632
632
  a.prepend(f);
633
633
  }
634
634
  if (!a.querySelector("thead")) {
635
- const h = document.createElement("thead"), l = a.querySelector("colgroup");
636
- l ? l.after(h) : a.prepend(h);
635
+ const c = document.createElement("thead"), l = a.querySelector("colgroup");
636
+ l ? l.after(c) : a.prepend(c);
637
637
  }
638
638
  a.classList.add("nine-table-element"), a.style.display = "table";
639
- }, "ensureTableStructure"), r = /* @__PURE__ */ c((a, h) => {
640
- const l = Array.from(a.querySelectorAll(h + " tr")), f = Array.from(a.querySelectorAll(h + " th," + h + " td")), u = l.length;
639
+ }, "ensureTableStructure"), r = /* @__PURE__ */ h((a, c) => {
640
+ const l = Array.from(a.querySelectorAll(c + " tr")), f = Array.from(a.querySelectorAll(c + " th," + c + " td")), u = l.length;
641
641
  if (u === 0 || f.length === 0) return;
642
642
  let g = 0;
643
643
  f.forEach((m) => {
@@ -669,16 +669,16 @@ const jt = class jt {
669
669
  });
670
670
  });
671
671
  }, "resetColIndex"), n = i.cloneNode(!0);
672
- return s(n), e(n), r(n, "thead"), r(n, "tbody"), r(n, "tfoot"), Array.from(n.querySelectorAll("colgroup col")).forEach((a, h) => {
672
+ return s(n), e(n), r(n, "thead"), r(n, "tbody"), r(n, "tfoot"), Array.from(n.querySelectorAll("colgroup col")).forEach((a, c) => {
673
673
  const l = a.getAttribute("fixed");
674
- l && n.querySelectorAll(`thead [data-col="${h}"], tbody [data-col="${h}"], tfoot [data-col="${h}"]`).forEach((f) => {
674
+ l && n.querySelectorAll(`thead [data-col="${c}"], tbody [data-col="${c}"], tfoot [data-col="${c}"]`).forEach((f) => {
675
675
  f.setAttribute("fixed", l);
676
676
  });
677
677
  }), n;
678
678
  }
679
679
  // 🎯 [추가] td/th에 선언된 cell-type 속성을 읽어 커스텀 태그로 자동 감싸기
680
680
  };
681
- c(jt, "TableCompiler");
681
+ h(jt, "TableCompiler");
682
682
  let he = jt;
683
683
  var Ft, et, st, Vt, Yt, ct, Ut, Xt;
684
684
  const yt = class yt extends HTMLElement {
@@ -687,20 +687,21 @@ const yt = class yt extends HTMLElement {
687
687
  d(this, Ft);
688
688
  d(this, et, null);
689
689
  d(this, st);
690
- E(this, "invalidate", /* @__PURE__ */ c(() => {
690
+ E(this, "invalidate", /* @__PURE__ */ h(() => {
691
691
  t(this, st).refresh();
692
692
  }, "invalidate"));
693
- d(this, Vt, /* @__PURE__ */ c(() => {
693
+ d(this, Vt, /* @__PURE__ */ h(() => {
694
694
  [
695
695
  { selector: ".ng-container-body", type: null },
696
696
  { selector: ".ng-container-left", type: "left" },
697
697
  { selector: ".ng-container-right", type: "right" }
698
698
  ].forEach(({ selector: s, type: r }) => {
699
- var n, o, a;
700
- this.querySelector(`${s} .ng-part-header`), (n = this.querySelector(`${s} .ng-part-header`)) == null || n.appendChild(t(this, ct).call(this, t(this, et), r, "header")), (o = this.querySelector(`${s} .ng-scroll-content`)) == null || o.insertBefore(t(this, ct).call(this, t(this, et), r, "body")), (a = this.querySelector(`${s} .ng-part-footer`)) == null || a.appendChild(t(this, ct).call(this, t(this, et), r, "footer"));
699
+ var o, a, c;
700
+ const n = this.querySelector(`${s} .ng-virtual-spacer`);
701
+ (o = this.querySelector(`${s} .ng-part-header`)) == null || o.appendChild(t(this, ct).call(this, t(this, et), r, "header")), (a = this.querySelector(`${s} .ng-scroll-content`)) == null || a.insertBefore(t(this, ct).call(this, t(this, et), r, "body"), n), (c = this.querySelector(`${s} .ng-part-footer`)) == null || c.appendChild(t(this, ct).call(this, t(this, et), r, "footer"));
701
702
  });
702
703
  }, "#renderSplitContainers"));
703
- d(this, Yt, /* @__PURE__ */ c(() => {
704
+ d(this, Yt, /* @__PURE__ */ h(() => {
704
705
  ["left", "right", "body"].forEach((e) => {
705
706
  const s = this.querySelector(`.ng-container-${e}`), r = s == null ? void 0 : s.querySelectorAll("table");
706
707
  if (!s || !r || r.length === 0) return;
@@ -711,20 +712,20 @@ const yt = class yt extends HTMLElement {
711
712
  }), e === "body" ? s.style.flex = "1" : (s.style.flex = `0 0 ${n}px`, s.style.width = `${n}px`);
712
713
  });
713
714
  }, "#updateContainerWidths"));
714
- E(this, "generate", /* @__PURE__ */ c((e) => {
715
+ E(this, "generate", /* @__PURE__ */ h((e) => {
715
716
  e && (p(this, et, he.compile(e)), t(this, Vt).call(this), t(this, Yt).call(this), t(this, st).initialize(), setTimeout(() => {
716
717
  var s;
717
718
  (s = this.querySelector("nine-table-hscrollbar")) == null || s.refresh();
718
719
  }, 0));
719
720
  }, "generate"));
720
- d(this, ct, /* @__PURE__ */ c((e, s, r) => {
721
- const n = e.cloneNode(!0), o = n.querySelector("thead"), a = n.querySelector("tbody"), h = n.querySelector("tfoot");
721
+ d(this, ct, /* @__PURE__ */ h((e, s, r) => {
722
+ const n = e.cloneNode(!0), o = n.querySelector("thead"), a = n.querySelector("tbody"), c = n.querySelector("tfoot");
722
723
  if (r === "header") {
723
- if (a && a.remove(), h && h.remove(), e.querySelector("tbody")) {
724
+ if (a && a.remove(), c && c.remove(), e.querySelector("tbody")) {
724
725
  const f = document.createElement("tbody");
725
726
  f.className = "fixed-tbody", n.appendChild(f);
726
727
  }
727
- } else r === "body" ? (o && o.remove(), h && h.remove(), a && (a.className = "bindable-tbody")) : r === "footer" && (o && o.remove(), a && a.remove());
728
+ } else r === "body" ? (o && o.remove(), c && c.remove(), a && (a.className = "bindable-tbody")) : r === "footer" && (o && o.remove(), a && a.remove());
728
729
  return s === "left" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
729
730
  l.getAttribute("fixed") !== "left" && l.remove();
730
731
  }) : s === "right" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
@@ -733,19 +734,19 @@ const yt = class yt extends HTMLElement {
733
734
  l.remove();
734
735
  }), n;
735
736
  }, "#createSplitTable"));
736
- E(this, "getRowHeight", /* @__PURE__ */ c(() => t(this, st).getRowHeight(), "getRowHeight"));
737
- E(this, "scrollToX", /* @__PURE__ */ c((e) => {
737
+ E(this, "getRowHeight", /* @__PURE__ */ h(() => t(this, st).getRowHeight(), "getRowHeight"));
738
+ E(this, "scrollToX", /* @__PURE__ */ h((e) => {
738
739
  const s = this.querySelector(".ng-container-body .ng-part-body");
739
740
  s && (s.scrollLeft = e);
740
741
  }, "scrollToX"));
741
- E(this, "scrollToY", /* @__PURE__ */ c((e) => {
742
+ E(this, "scrollToY", /* @__PURE__ */ h((e) => {
742
743
  const s = this.querySelector(".ng-container-body .ng-part-body");
743
744
  s && (s.scrollTop = e);
744
745
  }, "scrollToY"));
745
- d(this, Ut, /* @__PURE__ */ c(() => {
746
+ d(this, Ut, /* @__PURE__ */ h(() => {
746
747
  t(this, Xt).call(this);
747
748
  }, "#init"));
748
- d(this, Xt, /* @__PURE__ */ c(() => {
749
+ d(this, Xt, /* @__PURE__ */ h(() => {
749
750
  const e = yt.SCROLLBAR_SIZE;
750
751
  this.innerHTML = `
751
752
  <style>
@@ -938,14 +939,14 @@ const yt = class yt extends HTMLElement {
938
939
  this.innerHTML = "", W.log("NineTableSheet destroyed.");
939
940
  }
940
941
  };
941
- Ft = new WeakMap(), et = new WeakMap(), st = new WeakMap(), Vt = new WeakMap(), Yt = new WeakMap(), ct = new WeakMap(), Ut = new WeakMap(), Xt = new WeakMap(), c(yt, "NineTableSheet"), E(yt, "SCROLLBAR_SIZE", 16);
942
+ Ft = new WeakMap(), et = new WeakMap(), st = new WeakMap(), Vt = new WeakMap(), Yt = new WeakMap(), ct = new WeakMap(), Ut = new WeakMap(), Xt = new WeakMap(), h(yt, "NineTableSheet"), E(yt, "SCROLLBAR_SIZE", 16);
942
943
  let $t = yt;
943
944
  customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", $t);
944
945
  var Kt, qt;
945
946
  const _e = class _e extends HTMLElement {
946
947
  constructor() {
947
948
  super();
948
- d(this, Kt, /* @__PURE__ */ c(() => {
949
+ d(this, Kt, /* @__PURE__ */ h(() => {
949
950
  var e;
950
951
  (e = this.querySelector(".nine-tab-bar")) == null || e.addEventListener("click", (s) => {
951
952
  var o;
@@ -953,8 +954,8 @@ const _e = class _e extends HTMLElement {
953
954
  t(this, qt).call(this, n, r);
954
955
  }), t(this, qt).call(this, 0, !1);
955
956
  }, "#init"));
956
- d(this, qt, /* @__PURE__ */ c((e, s = !1) => {
957
- const r = /* @__PURE__ */ c(() => {
957
+ d(this, qt, /* @__PURE__ */ h((e, s = !1) => {
958
+ const r = /* @__PURE__ */ h(() => {
958
959
  const f = Array.from(this.querySelectorAll("nine-table-sheet"));
959
960
  Array.from(this.querySelectorAll("nine-splitter")).forEach((b) => b.style.setProperty("display", "none"));
960
961
  const g = f.filter((b) => b.classList.contains("active"));
@@ -962,12 +963,12 @@ const _e = class _e extends HTMLElement {
962
963
  const m = parseInt(b.getAttribute("data-index"), 10), x = this.querySelector(`nine-splitter[data-split-index="${m}"]`), A = f[m + 1];
963
964
  x && A && A.classList.contains("active") && x.style.setProperty("display", "flex");
964
965
  });
965
- }, "updateSplitters"), n = this.querySelector(".nine-tab-bar"), o = this.querySelector("nine-table-sheets-body"), a = n.querySelectorAll(".nine-tab-item"), h = o.querySelectorAll("nine-table-sheet");
966
+ }, "updateSplitters"), n = this.querySelector(".nine-tab-bar"), o = this.querySelector("nine-table-sheets-body"), a = n.querySelectorAll(".nine-tab-item"), c = o.querySelectorAll("nine-table-sheet");
966
967
  if (!a[e]) return;
967
968
  if (!s)
968
969
  a.forEach((f, u) => {
969
970
  f.classList.toggle("active", u === e);
970
- }), h.forEach((f, u) => {
971
+ }), c.forEach((f, u) => {
971
972
  const g = u === e;
972
973
  f.classList.toggle("active", g), f.style.flex = g ? "1 1 100%" : "";
973
974
  });
@@ -989,31 +990,31 @@ const _e = class _e extends HTMLElement {
989
990
  t(this, Kt).call(this);
990
991
  }
991
992
  };
992
- Kt = new WeakMap(), qt = new WeakMap(), c(_e, "NineTableSheets");
993
+ Kt = new WeakMap(), qt = new WeakMap(), h(_e, "NineTableSheets");
993
994
  let de = _e;
994
995
  customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", de);
995
996
  var H, Zt, Tt, Gt;
996
997
  const Ne = class Ne {
997
998
  constructor(i) {
998
999
  d(this, H);
999
- d(this, Zt, /* @__PURE__ */ c(() => {
1000
+ d(this, Zt, /* @__PURE__ */ h(() => {
1000
1001
  t(this, Gt).call(this), new ResizeObserver((i) => {
1001
1002
  for (let e of i)
1002
1003
  t(this, H).getAttribute("auto-height") === "true" && t(this, Tt).call(this);
1003
1004
  }).observe(t(this, H));
1004
1005
  }, "#init"));
1005
- d(this, Tt, /* @__PURE__ */ c(() => {
1006
- var h, l;
1006
+ d(this, Tt, /* @__PURE__ */ h(() => {
1007
+ var c, l;
1007
1008
  const i = Array.from(t(this, H).shadowRoot.querySelectorAll("nine-table-sheet.active"));
1008
1009
  if (i.length === 0) return;
1009
- const e = parseInt(t(this, H).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), r = (h = t(this, H).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : h.getBoundingClientRect().height, n = (l = t(this, H).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : l.getBoundingClientRect().height, o = $t.SCROLLBAR_SIZE, a = e * s + r + n + o;
1010
+ const e = parseInt(t(this, H).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), r = (c = t(this, H).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : c.getBoundingClientRect().height, n = (l = t(this, H).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : l.getBoundingClientRect().height, o = $t.SCROLLBAR_SIZE, a = e * s + r + n + o;
1010
1011
  t(this, H).style.height = `${a}px`;
1011
1012
  }, "#applyAutoHeight"));
1012
- d(this, Gt, /* @__PURE__ */ c(() => {
1013
- const e = Array.from(t(this, H).children).filter((h) => h.tagName === "TABLE"), s = t(this, H).getAttribute("auto-height") === "true", r = e.length, n = e.map((h, l) => {
1013
+ d(this, Gt, /* @__PURE__ */ h(() => {
1014
+ const e = Array.from(t(this, H).children).filter((c) => c.tagName === "TABLE"), s = t(this, H).getAttribute("auto-height") === "true", r = e.length, n = e.map((c, l) => {
1014
1015
  const u = `<nine-table-sheet class="${l === 0 ? "active" : ""}" data-index="${l}"></nine-table-sheet>`, g = l < r - 1 ? `<nine-splitter class="h" data-split-index="${l}"></nine-splitter>` : "";
1015
1016
  return u + g;
1016
- }).join(""), o = e.map((h, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
1017
+ }).join(""), o = e.map((c, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
1017
1018
  t(this, H).shadowRoot.innerHTML = `
1018
1019
  <style>
1019
1020
  :host {
@@ -1123,23 +1124,23 @@ const Ne = class Ne {
1123
1124
  <nine-table-footer></nine-table-footer>
1124
1125
  `, t(this, H).shadowRoot.querySelector("nine-table-sheets").classList.add("nodata");
1125
1126
  const a = t(this, H).shadowRoot.querySelectorAll("nine-table-sheet");
1126
- a == null || a.forEach((h, l) => {
1127
+ a == null || a.forEach((c, l) => {
1127
1128
  e[l] && setTimeout(() => {
1128
- h.generate(e[l]), s && t(this, Tt).call(this);
1129
+ c.generate(e[l]), s && t(this, Tt).call(this);
1129
1130
  });
1130
1131
  });
1131
1132
  }, "#render"));
1132
1133
  p(this, H, i), t(this, Zt).call(this);
1133
1134
  }
1134
1135
  };
1135
- H = new WeakMap(), Zt = new WeakMap(), Tt = new WeakMap(), Gt = new WeakMap(), c(Ne, "LayoutManager");
1136
+ H = new WeakMap(), Zt = new WeakMap(), Tt = new WeakMap(), Gt = new WeakMap(), h(Ne, "LayoutManager");
1136
1137
  let fe = Ne;
1137
1138
  var kt, ht;
1138
1139
  const We = class We {
1139
1140
  constructor(i) {
1140
1141
  d(this, kt);
1141
1142
  d(this, ht, -1);
1142
- E(this, "count", /* @__PURE__ */ c(() => t(this, kt).rawRecords.length, "count"));
1143
+ E(this, "count", /* @__PURE__ */ h(() => t(this, kt).rawRecords.length, "count"));
1143
1144
  p(this, kt, i);
1144
1145
  }
1145
1146
  get at() {
@@ -1150,7 +1151,7 @@ const We = class We {
1150
1151
  });
1151
1152
  }
1152
1153
  };
1153
- kt = new WeakMap(), ht = new WeakMap(), c(We, "ngRow");
1154
+ kt = new WeakMap(), ht = new WeakMap(), h(We, "ngRow");
1154
1155
  let ue = We;
1155
1156
  var _, k, N, dt, Jt, Y, Qt, it, Ct, te, ee, ft;
1156
1157
  const O = class O {
@@ -1161,7 +1162,7 @@ const O = class O {
1161
1162
  d(this, dt, []);
1162
1163
  d(this, Jt, 0);
1163
1164
  d(this, Y, []);
1164
- d(this, Qt, /* @__PURE__ */ c(() => {
1165
+ d(this, Qt, /* @__PURE__ */ h(() => {
1165
1166
  p(this, Y, []);
1166
1167
  const i = t(this, _).template || [];
1167
1168
  Array.from(i).forEach((e) => {
@@ -1171,12 +1172,12 @@ const O = class O {
1171
1172
  e.__ng || (e.__ng = t(this, Ct).call(this)), e.__ng.height = t(this, Y).slice();
1172
1173
  });
1173
1174
  }, "#initialize"));
1174
- d(this, it, /* @__PURE__ */ c(() => {
1175
+ d(this, it, /* @__PURE__ */ h(() => {
1175
1176
  t(this, _).shadowRoot.querySelectorAll("nine-table-sheet").forEach((i) => {
1176
1177
  i.invalidate();
1177
1178
  });
1178
1179
  }, "#invalidate"));
1179
- E(this, "get", /* @__PURE__ */ c((i, e) => {
1180
+ E(this, "get", /* @__PURE__ */ h((i, e) => {
1180
1181
  var n;
1181
1182
  const s = this.getValidData();
1182
1183
  if (!s || s.length <= 0) return;
@@ -1189,10 +1190,10 @@ const O = class O {
1189
1190
  }
1190
1191
  return t(this, ft).call(this, s[i]);
1191
1192
  }, "get"));
1192
- E(this, "set", /* @__PURE__ */ c((i) => {
1193
+ E(this, "set", /* @__PURE__ */ h((i) => {
1193
1194
  this.clear(), this.add(i, !1), t(this, it).call(this);
1194
1195
  }, "set"));
1195
- d(this, Ct, /* @__PURE__ */ c(() => ({
1196
+ d(this, Ct, /* @__PURE__ */ h(() => ({
1196
1197
  rowState: O.ROW_STATE.EMPTY,
1197
1198
  deleted: !1,
1198
1199
  filtered: !1,
@@ -1201,14 +1202,14 @@ const O = class O {
1201
1202
  c: {},
1202
1203
  _: [0, 0, 0, 0, O.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, Y).slice(), -1, {}, {}]
1203
1204
  }), "#getDefaultMeta"));
1204
- E(this, "reset", /* @__PURE__ */ c(() => {
1205
+ E(this, "reset", /* @__PURE__ */ h(() => {
1205
1206
  p(this, N, []), p(this, dt, []), t(this, it).call(this);
1206
1207
  }, "reset"));
1207
- E(this, "clear", /* @__PURE__ */ c(() => {
1208
+ E(this, "clear", /* @__PURE__ */ h(() => {
1208
1209
  var i;
1209
1210
  t(this, k).rawRecords = [], p(this, N, []), p(this, dt, []), (i = t(this, k).viewRecords) != null && i.reset && t(this, k).viewRecords.reset();
1210
1211
  }, "clear"));
1211
- d(this, te, /* @__PURE__ */ c((i) => {
1212
+ d(this, te, /* @__PURE__ */ h((i) => {
1212
1213
  var r;
1213
1214
  Array.isArray(i) || (i = [i]);
1214
1215
  const e = typeof ((r = t(this, _).fields) == null ? void 0 : r.get) == "function" ? t(this, _).fields.get() : Object.keys(i[0] || {}), s = [];
@@ -1219,10 +1220,10 @@ const O = class O {
1219
1220
  }), s.push(o);
1220
1221
  }), s;
1221
1222
  }, "#json2Array"));
1222
- d(this, ee, /* @__PURE__ */ c((i) => (Array.isArray(i) || (i = [i]), i.forEach((e) => {
1223
+ d(this, ee, /* @__PURE__ */ h((i) => (Array.isArray(i) || (i = [i]), i.forEach((e) => {
1223
1224
  e.__ng = t(this, Ct).call(this), e.__ng.rowid = this.nextId, e.__ng.rowState = O.ROW_STATE.INSERT, e.__ng._[0] = e.__ng.rowid;
1224
1225
  }), i), "#defaultInsert"));
1225
- E(this, "add", /* @__PURE__ */ c((i, e = !0) => {
1226
+ E(this, "add", /* @__PURE__ */ h((i, e = !0) => {
1226
1227
  i === void 0 && (i = {});
1227
1228
  const s = t(this, te).call(this, i);
1228
1229
  t(this, k).rawRecords = t(this, k).rawRecords.concat(t(this, ee).call(this, s)), this.resetRecords();
@@ -1232,7 +1233,7 @@ const O = class O {
1232
1233
  a && (a.__ng.rowState = O.ROW_STATE.EMPTY);
1233
1234
  }), t(this, it).call(this), r;
1234
1235
  }, "add"));
1235
- E(this, "delete", /* @__PURE__ */ c((i) => {
1236
+ E(this, "delete", /* @__PURE__ */ h((i) => {
1236
1237
  let e = [];
1237
1238
  Array.isArray(i) ? e = i : typeof i > "u" ? e = [t(this, k).host.row.at] : e = [parseInt(i, 10)], e.sort((s, r) => r - s).forEach((s) => {
1238
1239
  if (t(this, N)[s]) {
@@ -1243,36 +1244,36 @@ const O = class O {
1243
1244
  }
1244
1245
  }), this.resetRecords(), t(this, it).call(this);
1245
1246
  }, "delete"));
1246
- E(this, "setValue", /* @__PURE__ */ c((i, e, s) => {
1247
- var h;
1247
+ E(this, "setValue", /* @__PURE__ */ h((i, e, s) => {
1248
+ var c;
1248
1249
  i = parseInt(i, 10);
1249
- const n = (typeof ((h = t(this, _).fields) == null ? void 0 : h.get) == "function" ? t(this, _).fields.get() : []).indexOf(e);
1250
+ const n = (typeof ((c = t(this, _).fields) == null ? void 0 : c.get) == "function" ? t(this, _).fields.get() : []).indexOf(e);
1250
1251
  if (n < 0) return;
1251
1252
  const o = this.getValidData()[i];
1252
1253
  if (!o) return;
1253
1254
  const a = o.v[n];
1254
1255
  a !== s && o.__ng.rowState !== O.ROW_STATE.INSERT && (o.__ng.o.hasOwnProperty(e) || (o.__ng.o[e] = a), o.__ng.rowState = O.ROW_STATE.UPDATE), o.v[n] = s;
1255
1256
  }, "setValue"));
1256
- E(this, "resetRecords", /* @__PURE__ */ c(() => {
1257
+ E(this, "resetRecords", /* @__PURE__ */ h(() => {
1257
1258
  p(this, dt, t(this, k).rawRecords.filter((i) => !i.__ng.deleted)), p(this, N, t(this, k).rawRecords.filter((i) => !i.__ng.deleted && !i.__ng.filtered)), t(this, k).rawRecords.forEach((i, e) => {
1258
1259
  i.__ng.rowidx = e;
1259
1260
  }), t(this, N).forEach((i, e) => {
1260
1261
  i.__ng.i = e;
1261
1262
  });
1262
1263
  }, "resetRecords"));
1263
- E(this, "getValidData", /* @__PURE__ */ c(() => (t(this, N).length === 0 && t(this, k).rawRecords.length > 0 && this.resetRecords(), t(this, N)), "getValidData"));
1264
- d(this, ft, /* @__PURE__ */ c((i) => {
1264
+ E(this, "getValidData", /* @__PURE__ */ h(() => (t(this, N).length === 0 && t(this, k).rawRecords.length > 0 && this.resetRecords(), t(this, N)), "getValidData"));
1265
+ d(this, ft, /* @__PURE__ */ h((i) => {
1265
1266
  var o;
1266
1267
  if (!i) return i;
1267
1268
  const e = !Array.isArray(i), s = e ? [i] : i, r = typeof ((o = t(this, _).fields) == null ? void 0 : o.get) == "function" ? t(this, _).fields.get() : [], n = s.filter((a) => !a.__ng.deleted).map((a) => {
1268
- const h = {};
1269
+ const c = {};
1269
1270
  return r.forEach((l, f) => {
1270
- h[l] = a.v ? a.v[f] : a[l];
1271
- }), h.__ng = a.__ng, h;
1271
+ c[l] = a.v ? a.v[f] : a[l];
1272
+ }), c.__ng = a.__ng, c;
1272
1273
  });
1273
1274
  return e ? n[0] : n;
1274
1275
  }, "#conv"));
1275
- E(this, "count", /* @__PURE__ */ c(() => this.getValidData().length, "count"));
1276
+ E(this, "count", /* @__PURE__ */ h(() => this.getValidData().length, "count"));
1276
1277
  p(this, _, i), p(this, k, e), t(this, Qt).call(this);
1277
1278
  }
1278
1279
  get source() {
@@ -1294,7 +1295,7 @@ const O = class O {
1294
1295
  return this.length;
1295
1296
  }
1296
1297
  };
1297
- _ = new WeakMap(), k = new WeakMap(), N = new WeakMap(), dt = new WeakMap(), Jt = new WeakMap(), Y = new WeakMap(), Qt = new WeakMap(), it = new WeakMap(), Ct = new WeakMap(), te = new WeakMap(), ee = new WeakMap(), ft = new WeakMap(), c(O, "ngData"), // 🎯 행 상태 정의 상수를 클래스 내부로 내재화
1298
+ _ = new WeakMap(), k = new WeakMap(), N = new WeakMap(), dt = new WeakMap(), Jt = new WeakMap(), Y = new WeakMap(), Qt = new WeakMap(), it = new WeakMap(), Ct = new WeakMap(), te = new WeakMap(), ee = new WeakMap(), ft = new WeakMap(), h(O, "ngData"), // 🎯 행 상태 정의 상수를 클래스 내부로 내재화
1298
1299
  E(O, "ROW_STATE", {
1299
1300
  EMPTY: "EMPTY",
1300
1301
  NORMAL: "NORMAL",
@@ -1324,7 +1325,7 @@ const Oe = class Oe {
1324
1325
  }, this.setDataSource([]);
1325
1326
  }
1326
1327
  };
1327
- rt = new WeakMap(), c(Oe, "ngDataManager");
1328
+ rt = new WeakMap(), h(Oe, "ngDataManager");
1328
1329
  let be = Oe;
1329
1330
  var ut, L, Lt, se;
1330
1331
  const Be = class Be {
@@ -1332,18 +1333,18 @@ const Be = class Be {
1332
1333
  constructor(i) {
1333
1334
  d(this, ut);
1334
1335
  d(this, L, []);
1335
- E(this, "add", /* @__PURE__ */ c((i, e = "string") => {
1336
+ E(this, "add", /* @__PURE__ */ h((i, e = "string") => {
1336
1337
  i.forEach((s) => {
1337
1338
  t(this, L).some((r) => r.name === s) || t(this, L).push({ name: s, type: e });
1338
1339
  }), t(this, Lt).call(this);
1339
1340
  }, "add"));
1340
- d(this, Lt, /* @__PURE__ */ c(() => {
1341
+ d(this, Lt, /* @__PURE__ */ h(() => {
1341
1342
  const i = /* @__PURE__ */ new Map();
1342
1343
  t(this, L).forEach((e) => {
1343
1344
  i.set(e.name, e.type);
1344
1345
  }), p(this, L, Array.from(i, ([e, s]) => ({ name: e, type: s }))), p(this, L, t(this, L).filter((e) => e.name !== "" && e.name !== "__ng")), t(this, L).sort((e, s) => e.name.length < s.name.length ? 1 : -1);
1345
1346
  }, "#adjust"));
1346
- d(this, se, /* @__PURE__ */ c(() => {
1347
+ d(this, se, /* @__PURE__ */ h(() => {
1347
1348
  p(this, L, []), W.log(t(this, ut).querySelectorAll("table"));
1348
1349
  const i = Array.from(t(this, ut).querySelectorAll("table"));
1349
1350
  if (!(!i || i.length === 0)) {
@@ -1365,9 +1366,9 @@ const Be = class Be {
1365
1366
  }
1366
1367
  o.split("data.").forEach((a) => {
1367
1368
  if (a.trim() != "") {
1368
- const h = a.search(/[^_A-Za-z0-9]/g);
1369
+ const c = a.search(/[^_A-Za-z0-9]/g);
1369
1370
  let l = "";
1370
- h >= 0 ? l = a.substring(0, h) : o.startsWith("data.") && (l = a.replace("data.", "")), l && t(this, L).push({ name: l, type: "string" });
1371
+ c >= 0 ? l = a.substring(0, c) : o.startsWith("data.") && (l = a.replace("data.", "")), l && t(this, L).push({ name: l, type: "string" });
1371
1372
  }
1372
1373
  });
1373
1374
  });
@@ -1397,7 +1398,7 @@ const Be = class Be {
1397
1398
  return t(this, L).some((e) => e.name === i);
1398
1399
  }
1399
1400
  };
1400
- ut = new WeakMap(), L = new WeakMap(), Lt = new WeakMap(), se = new WeakMap(), c(Be, "ngFields");
1401
+ ut = new WeakMap(), L = new WeakMap(), Lt = new WeakMap(), se = new WeakMap(), h(Be, "ngFields");
1401
1402
  let pe = Be;
1402
1403
  var nt, ie, re;
1403
1404
  const ze = class ze extends HTMLElement {
@@ -1406,7 +1407,7 @@ const ze = class ze extends HTMLElement {
1406
1407
  //#created = false;
1407
1408
  d(this, nt);
1408
1409
  d(this, ie);
1409
- d(this, re, /* @__PURE__ */ c(() => {
1410
+ d(this, re, /* @__PURE__ */ h(() => {
1410
1411
  this.fields = new pe(this), p(this, ie, new fe(this)), W.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
1411
1412
  }, "#init"));
1412
1413
  this.attachShadow({ mode: "open" }), p(this, nt, new be(this));
@@ -1430,7 +1431,7 @@ const ze = class ze extends HTMLElement {
1430
1431
  return t(this, nt);
1431
1432
  }
1432
1433
  };
1433
- nt = new WeakMap(), ie = new WeakMap(), re = new WeakMap(), c(ze, "NineTable");
1434
+ nt = new WeakMap(), ie = new WeakMap(), re = new WeakMap(), h(ze, "NineTable");
1434
1435
  let ye = ze;
1435
1436
  customElements.get("nine-table") || customElements.define("nine-table", ye);
1436
1437
  const mt = class mt extends HTMLElement {
@@ -1444,7 +1445,7 @@ const mt = class mt extends HTMLElement {
1444
1445
  connectedCallback() {
1445
1446
  }
1446
1447
  };
1447
- c(mt, "BasicCellElement"), E(mt, "_styleCache", /* @__PURE__ */ new Map()), E(mt, "_customStyleCache", /* @__PURE__ */ new Map());
1448
+ h(mt, "BasicCellElement"), E(mt, "_styleCache", /* @__PURE__ */ new Map()), E(mt, "_customStyleCache", /* @__PURE__ */ new Map());
1448
1449
  let me = mt;
1449
1450
  var C, Ht, y, Re, qe, Te, ke, Ce;
1450
1451
  const De = class De extends me {
@@ -1457,7 +1458,7 @@ const De = class De extends me {
1457
1458
  d(this, qe);
1458
1459
  d(this, Te);
1459
1460
  d(this, ke);
1460
- E(this, "getDisplayText", /* @__PURE__ */ c((e) => {
1461
+ E(this, "getDisplayText", /* @__PURE__ */ h((e) => {
1461
1462
  if (t(this, y))
1462
1463
  if (t(this, y).closest("tbody")) {
1463
1464
  const s = t(this, y).closest("tr").data, r = parseInt(t(this, y).dataset.row);
@@ -1477,7 +1478,7 @@ const De = class De extends me {
1477
1478
  } catch {
1478
1479
  }
1479
1480
  }, "getDisplayText"));
1480
- d(this, Ce, /* @__PURE__ */ c(() => {
1481
+ d(this, Ce, /* @__PURE__ */ h(() => {
1481
1482
  if (!(!t(this, C) || !t(this, C).template || !t(this, y).closest("tbody.bindable"))) {
1482
1483
  var e = ninegrid.j.querySelectorAll(t(this, y)).attr("suppress");
1483
1484
  if (e && (e = parseInt(e)), e && !isNaN(e)) {
@@ -1490,9 +1491,9 @@ const De = class De extends me {
1490
1491
  if (parseInt(s.sectionRowIndex / t(this, C).template.length) > 0)
1491
1492
  for (var o of r) {
1492
1493
  if (o > e) break;
1493
- var a = parseInt(t(this, y).dataset.row), h = a - 1, l = t(this, y).closest("tr").data, f = t(this, C).data.get(h);
1494
+ var a = parseInt(t(this, y).dataset.row), c = a - 1, l = t(this, y).closest("tr").data, f = t(this, C).data.get(c);
1494
1495
  t(this, y).dataset.matrixRow;
1495
- var u = t(this, C).body.querySelector(`tbody.bindable [suppress="${o}"][data-matrix-row="${t(this, y).dataset.matrixRow}"]`), g = u.dataset.expr ? this.getExprValue(u.dataset.expr, l, a) : l[u.dataset.bind], b = u.dataset.expr ? this.getExprValue(u.dataset.expr, f, h) : f[u.dataset.bind];
1496
+ var u = t(this, C).body.querySelector(`tbody.bindable [suppress="${o}"][data-matrix-row="${t(this, y).dataset.matrixRow}"]`), g = u.dataset.expr ? this.getExprValue(u.dataset.expr, l, a) : l[u.dataset.bind], b = u.dataset.expr ? this.getExprValue(u.dataset.expr, f, c) : f[u.dataset.bind];
1496
1497
  if (g != b) {
1497
1498
  n = !0;
1498
1499
  break;
@@ -1506,7 +1507,7 @@ const De = class De extends me {
1506
1507
  }
1507
1508
  }
1508
1509
  }, "#resetSuppress"));
1509
- E(this, "getExprValue", /* @__PURE__ */ c((e, s, r, n) => {
1510
+ E(this, "getExprValue", /* @__PURE__ */ h((e, s, r, n) => {
1510
1511
  if (typeof e < "u")
1511
1512
  try {
1512
1513
  r = parseInt(r);
@@ -1542,7 +1543,7 @@ const De = class De extends me {
1542
1543
  return parseInt(t(this, y).dataset.row), t(this, Ht).data[e];
1543
1544
  }
1544
1545
  };
1545
- C = new WeakMap(), Ht = new WeakMap(), y = new WeakMap(), Re = new WeakMap(), qe = new WeakMap(), Te = new WeakMap(), ke = new WeakMap(), Ce = new WeakMap(), c(De, "CellElement");
1546
+ C = new WeakMap(), Ht = new WeakMap(), y = new WeakMap(), Re = new WeakMap(), qe = new WeakMap(), Te = new WeakMap(), ke = new WeakMap(), Ce = new WeakMap(), h(De, "CellElement");
1546
1547
  let ve = De;
1547
1548
  const Pe = class Pe extends ve {
1548
1549
  constructor() {
@@ -1555,7 +1556,7 @@ const Pe = class Pe extends ve {
1555
1556
  return super.refresh();
1556
1557
  }
1557
1558
  };
1558
- c(Pe, "EditableCellElement");
1559
+ h(Pe, "EditableCellElement");
1559
1560
  let xe = Pe;
1560
1561
  var Mt, ot, gt, bt, ne, U, Le;
1561
1562
  const je = class je extends xe {
@@ -1567,7 +1568,7 @@ const je = class je extends xe {
1567
1568
  d(this, bt);
1568
1569
  d(this, ne);
1569
1570
  d(this, U);
1570
- E(this, "refresh", /* @__PURE__ */ c(() => {
1571
+ E(this, "refresh", /* @__PURE__ */ h(() => {
1571
1572
  const e = super.refresh();
1572
1573
  t(this, Mt).value = e;
1573
1574
  }, "refresh"));
@@ -1601,7 +1602,7 @@ const je = class je extends xe {
1601
1602
  if (!v) this.reset();
1602
1603
  };
1603
1604
  */
1604
- d(this, Le, /* @__PURE__ */ c((e) => {
1605
+ d(this, Le, /* @__PURE__ */ h((e) => {
1605
1606
  if (!["Escape", "Enter", "Tab", "Home", "End", "ArrowLeft", "ArrowRight", "PageUp", "PageDown", "Backspace", "Delete"].includes(e.code)) {
1606
1607
  if (t(this, ot) == "number") {
1607
1608
  let n = [];
@@ -1629,7 +1630,7 @@ const je = class je extends xe {
1629
1630
  `, super.connectedCallback(), p(this, Mt, this.querySelector("input"));
1630
1631
  }
1631
1632
  };
1632
- Mt = new WeakMap(), ot = new WeakMap(), gt = new WeakMap(), bt = new WeakMap(), ne = new WeakMap(), U = new WeakMap(), Le = new WeakMap(), c(je, "CellInputText");
1633
+ Mt = new WeakMap(), ot = new WeakMap(), gt = new WeakMap(), bt = new WeakMap(), ne = new WeakMap(), U = new WeakMap(), Le = new WeakMap(), h(je, "CellInputText");
1633
1634
  let we = je;
1634
1635
  customElements.get("cell-input-text");
1635
1636
  customElements.get("cell-input") || customElements.define("cell-input", we);