@ninebone/table 0.0.597 → 0.0.599

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 h = (R, i) => Fe(R, "name", { value: i, configurable: !0 });
6
+ var c = (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
- h(He, "Trace");
23
+ c(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__ */ h(() => {
36
+ d(this, It, /* @__PURE__ */ c(() => {
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__ */ h(() => {
43
+ E(this, "refresh", /* @__PURE__ */ c(() => {
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, c = s.scrollWidth;
48
- if (a !== 0 && c > a)
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)
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 / c), l), 20);
56
+ const f = Math.max(Math.min(l * (a / h), l), 20);
57
57
  n.style.width = `${f}px`;
58
- const u = e.scrollLeft, g = c - a;
58
+ const u = e.scrollLeft, g = h - 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__ */ h((e) => {
64
+ d(this, G, /* @__PURE__ */ c((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 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;
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;
73
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;
74
+ return h > 0 && u > 0 && (s.scrollLeft = a / h * u), a > 0 && a < h - 1;
75
75
  }, "#thumbMoveTo"));
76
- d(this, _t, /* @__PURE__ */ h(() => {
77
- const e = /* @__PURE__ */ h((r) => {
76
+ d(this, _t, /* @__PURE__ */ c(() => {
77
+ const e = /* @__PURE__ */ c((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__ */ h(() => {
86
+ }, "delayScroll"), s = /* @__PURE__ */ c(() => {
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__ */ h((a) => {
103
+ const n = /* @__PURE__ */ c((a) => {
104
104
  if (!t(this, j)) return;
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(() => {
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(() => {
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__ */ h(() => {
179
+ const e = /* @__PURE__ */ c(() => {
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(), h(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(), c(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__ */ h(() => {
214
+ E(this, "refresh", /* @__PURE__ */ c(() => {
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, c = t(this, at).getRowHeight(), l = a * c;
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;
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__ */ h(() => {
232
+ d(this, Nt, /* @__PURE__ */ c(() => {
233
233
  W.log("nine-table-vscrollbar.#init");
234
- const e = t(this, q).container, s = /* @__PURE__ */ h(() => {
234
+ const e = t(this, q).container, s = /* @__PURE__ */ c(() => {
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__ */ h((a) => {
243
+ const n = /* @__PURE__ */ c((a) => {
244
244
  if (!t(this, J)) return;
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);
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);
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__ */ h(() => {
253
+ }, "onMouseMove"), o = /* @__PURE__ */ c(() => {
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__ */ h(() => {
337
+ const e = /* @__PURE__ */ c(() => {
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(), h($e, "NineTableVScrollBar");
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");
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__ */ h(() => {
372
+ E(this, "refresh", /* @__PURE__ */ c(() => {
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__ */ h(() => {
378
+ E(this, "initialize", /* @__PURE__ */ c(() => {
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 c = a.querySelector(".ng-part-body table");
386
- if (!c) return;
387
- const l = c.querySelector("tbody.bindable-tbody");
385
+ const h = a.querySelector(".ng-part-body table");
386
+ if (!h) return;
387
+ const l = h.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__ */ h((c) => {
396
+ const a = /* @__PURE__ */ c((h) => {
397
397
  if (o) return;
398
398
  o = !0;
399
- const l = c.scrollTop, f = c.scrollLeft;
399
+ const l = h.scrollTop, f = h.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((c) => {
403
- c && c.addEventListener("scroll", () => {
404
- a(c);
402
+ [i, e, s].forEach((h) => {
403
+ h && h.addEventListener("scroll", () => {
404
+ a(h);
405
405
  }, { passive: !0 });
406
406
  });
407
407
  }
408
408
  }, "initialize"));
409
- d(this, Ot, /* @__PURE__ */ h((i, e) => {
409
+ d(this, Ot, /* @__PURE__ */ c((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((c) => {
419
- o.appendChild(c.cloneNode(!0));
418
+ s.forEach((h) => {
419
+ o.appendChild(h.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__ */ h((i) => {
423
+ d(this, Bt, /* @__PURE__ */ c((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, c = o.style.visibility, l = o.style.position;
436
+ const o = t(this, S), a = o.style.display, h = 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 = c, 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 = h, 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__ */ h(() => {
444
+ d(this, St, /* @__PURE__ */ c(() => {
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__ */ h(() => {
454
+ d(this, At, /* @__PURE__ */ c(() => {
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__ */ h(() => {
461
- var a, c, l, f, u, g;
460
+ d(this, zt, /* @__PURE__ */ c(() => {
461
+ var a, h, 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
- ((c = m[v]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
468
+ ((h = m[v]) == null ? void 0 : h.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__ */ h(() => {
487
+ d(this, Dt, /* @__PURE__ */ c(() => {
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 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()));
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()));
499
499
  }
500
500
  }
501
501
  })), t(this, V).observe(t(this, S)));
502
502
  }, "#initResizeObserver"));
503
- d(this, Et, /* @__PURE__ */ h(() => {
503
+ d(this, Et, /* @__PURE__ */ c(() => {
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__ */ h((i) => {
509
+ d(this, Ee, /* @__PURE__ */ c((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, c = (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, h = (t(this, P).data.get() || []).length;
517
517
  n.forEach((f, u) => {
518
518
  const g = i + Math.floor(u / o);
519
- if (g >= c) {
519
+ if (g >= h) {
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__ */ h((i) => {
528
+ d(this, lt, /* @__PURE__ */ c((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), c = t(this, Q).firstTr, l = c && c.dataset.row !== void 0 ? parseInt(c.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), h = t(this, Q).firstTr, l = h && h.dataset.row !== void 0 ? parseInt(h.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__ */ h((i, e, s) => {
567
+ d(this, Rt, /* @__PURE__ */ c((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__ */ h(() => {
575
- var c, l, f;
574
+ d(this, Pt, /* @__PURE__ */ c(() => {
575
+ var h, 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
- ((c = r[u]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
582
+ ((h = r[u]) == null ? void 0 : h.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__ */ h(() => {
589
+ E(this, "destroy", /* @__PURE__ */ c(() => {
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(), h(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(), c(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__ */ h((a) => {
616
+ const e = /* @__PURE__ */ c((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__ */ h((a) => {
625
+ }, "processCellTypes"), s = /* @__PURE__ */ c((a) => {
626
626
  if (!a.querySelector("colgroup")) {
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);
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);
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 c = document.createElement("thead"), l = a.querySelector("colgroup");
636
- l ? l.after(c) : a.prepend(c);
635
+ const h = document.createElement("thead"), l = a.querySelector("colgroup");
636
+ l ? l.after(h) : a.prepend(h);
637
637
  }
638
638
  a.classList.add("nine-table-element"), a.style.display = "table";
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;
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;
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, c) => {
672
+ return s(n), e(n), r(n, "thead"), r(n, "tbody"), r(n, "tfoot"), Array.from(n.querySelectorAll("colgroup col")).forEach((a, h) => {
673
673
  const l = a.getAttribute("fixed");
674
- l && n.querySelectorAll(`thead [data-col="${c}"], tbody [data-col="${c}"], tfoot [data-col="${c}"]`).forEach((f) => {
674
+ l && n.querySelectorAll(`thead [data-col="${h}"], tbody [data-col="${h}"], tfoot [data-col="${h}"]`).forEach((f) => {
675
675
  f.setAttribute("fixed", l);
676
676
  });
677
677
  }), n;
678
678
  }
679
679
  // 🎯 [추가] td/th에 선언된 cell-type 속성을 읽어 커스텀 태그로 자동 감싸기
680
680
  };
681
- h(jt, "TableCompiler");
681
+ c(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,21 +687,20 @@ 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__ */ h(() => {
690
+ E(this, "invalidate", /* @__PURE__ */ c(() => {
691
691
  t(this, st).refresh();
692
692
  }, "invalidate"));
693
- d(this, Vt, /* @__PURE__ */ h(() => {
693
+ d(this, Vt, /* @__PURE__ */ c(() => {
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 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"));
699
+ var n, o, a;
700
+ (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-virtual-spacer`)) == null || o.before(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"));
702
701
  });
703
702
  }, "#renderSplitContainers"));
704
- d(this, Yt, /* @__PURE__ */ h(() => {
703
+ d(this, Yt, /* @__PURE__ */ c(() => {
705
704
  ["left", "right", "body"].forEach((e) => {
706
705
  const s = this.querySelector(`.ng-container-${e}`), r = s == null ? void 0 : s.querySelectorAll("table");
707
706
  if (!s || !r || r.length === 0) return;
@@ -712,20 +711,20 @@ const yt = class yt extends HTMLElement {
712
711
  }), e === "body" ? s.style.flex = "1" : (s.style.flex = `0 0 ${n}px`, s.style.width = `${n}px`);
713
712
  });
714
713
  }, "#updateContainerWidths"));
715
- E(this, "generate", /* @__PURE__ */ h((e) => {
714
+ E(this, "generate", /* @__PURE__ */ c((e) => {
716
715
  e && (p(this, et, he.compile(e)), t(this, Vt).call(this), t(this, Yt).call(this), t(this, st).initialize(), setTimeout(() => {
717
716
  var s;
718
717
  (s = this.querySelector("nine-table-hscrollbar")) == null || s.refresh();
719
718
  }, 0));
720
719
  }, "generate"));
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");
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");
723
722
  if (r === "header") {
724
- if (a && a.remove(), c && c.remove(), e.querySelector("tbody")) {
723
+ if (a && a.remove(), h && h.remove(), e.querySelector("tbody")) {
725
724
  const f = document.createElement("tbody");
726
725
  f.className = "fixed-tbody", n.appendChild(f);
727
726
  }
728
- } else r === "body" ? (o && o.remove(), c && c.remove(), a && (a.className = "bindable-tbody")) : r === "footer" && (o && o.remove(), a && a.remove());
727
+ } else r === "body" ? (o && o.remove(), h && h.remove(), a && (a.className = "bindable-tbody")) : r === "footer" && (o && o.remove(), a && a.remove());
729
728
  return s === "left" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
730
729
  l.getAttribute("fixed") !== "left" && l.remove();
731
730
  }) : s === "right" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
@@ -734,19 +733,19 @@ const yt = class yt extends HTMLElement {
734
733
  l.remove();
735
734
  }), n;
736
735
  }, "#createSplitTable"));
737
- E(this, "getRowHeight", /* @__PURE__ */ h(() => t(this, st).getRowHeight(), "getRowHeight"));
738
- E(this, "scrollToX", /* @__PURE__ */ h((e) => {
736
+ E(this, "getRowHeight", /* @__PURE__ */ c(() => t(this, st).getRowHeight(), "getRowHeight"));
737
+ E(this, "scrollToX", /* @__PURE__ */ c((e) => {
739
738
  const s = this.querySelector(".ng-container-body .ng-part-body");
740
739
  s && (s.scrollLeft = e);
741
740
  }, "scrollToX"));
742
- E(this, "scrollToY", /* @__PURE__ */ h((e) => {
741
+ E(this, "scrollToY", /* @__PURE__ */ c((e) => {
743
742
  const s = this.querySelector(".ng-container-body .ng-part-body");
744
743
  s && (s.scrollTop = e);
745
744
  }, "scrollToY"));
746
- d(this, Ut, /* @__PURE__ */ h(() => {
745
+ d(this, Ut, /* @__PURE__ */ c(() => {
747
746
  t(this, Xt).call(this);
748
747
  }, "#init"));
749
- d(this, Xt, /* @__PURE__ */ h(() => {
748
+ d(this, Xt, /* @__PURE__ */ c(() => {
750
749
  const e = yt.SCROLLBAR_SIZE;
751
750
  this.innerHTML = `
752
751
  <style>
@@ -907,6 +906,7 @@ const yt = class yt extends HTMLElement {
907
906
  <div class='ng-container-body'>
908
907
  <div class="ng-part-header"></div>
909
908
  <div class="ng-part-body">
909
+ <div class="ng-nodata"></div>
910
910
  <div class="ng-scroll-content">
911
911
  <div class="ng-virtual-spacer"></div>
912
912
  </div>
@@ -939,14 +939,14 @@ const yt = class yt extends HTMLElement {
939
939
  this.innerHTML = "", W.log("NineTableSheet destroyed.");
940
940
  }
941
941
  };
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
+ 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);
943
943
  let $t = yt;
944
944
  customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", $t);
945
945
  var Kt, qt;
946
946
  const _e = class _e extends HTMLElement {
947
947
  constructor() {
948
948
  super();
949
- d(this, Kt, /* @__PURE__ */ h(() => {
949
+ d(this, Kt, /* @__PURE__ */ c(() => {
950
950
  var e;
951
951
  (e = this.querySelector(".nine-tab-bar")) == null || e.addEventListener("click", (s) => {
952
952
  var o;
@@ -954,8 +954,8 @@ const _e = class _e extends HTMLElement {
954
954
  t(this, qt).call(this, n, r);
955
955
  }), t(this, qt).call(this, 0, !1);
956
956
  }, "#init"));
957
- d(this, qt, /* @__PURE__ */ h((e, s = !1) => {
958
- const r = /* @__PURE__ */ h(() => {
957
+ d(this, qt, /* @__PURE__ */ c((e, s = !1) => {
958
+ const r = /* @__PURE__ */ c(() => {
959
959
  const f = Array.from(this.querySelectorAll("nine-table-sheet"));
960
960
  Array.from(this.querySelectorAll("nine-splitter")).forEach((b) => b.style.setProperty("display", "none"));
961
961
  const g = f.filter((b) => b.classList.contains("active"));
@@ -963,12 +963,12 @@ const _e = class _e extends HTMLElement {
963
963
  const m = parseInt(b.getAttribute("data-index"), 10), x = this.querySelector(`nine-splitter[data-split-index="${m}"]`), A = f[m + 1];
964
964
  x && A && A.classList.contains("active") && x.style.setProperty("display", "flex");
965
965
  });
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
+ }, "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");
967
967
  if (!a[e]) return;
968
968
  if (!s)
969
969
  a.forEach((f, u) => {
970
970
  f.classList.toggle("active", u === e);
971
- }), c.forEach((f, u) => {
971
+ }), h.forEach((f, u) => {
972
972
  const g = u === e;
973
973
  f.classList.toggle("active", g), f.style.flex = g ? "1 1 100%" : "";
974
974
  });
@@ -990,31 +990,31 @@ const _e = class _e extends HTMLElement {
990
990
  t(this, Kt).call(this);
991
991
  }
992
992
  };
993
- Kt = new WeakMap(), qt = new WeakMap(), h(_e, "NineTableSheets");
993
+ Kt = new WeakMap(), qt = new WeakMap(), c(_e, "NineTableSheets");
994
994
  let de = _e;
995
995
  customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", de);
996
996
  var H, Zt, Tt, Gt;
997
997
  const Ne = class Ne {
998
998
  constructor(i) {
999
999
  d(this, H);
1000
- d(this, Zt, /* @__PURE__ */ h(() => {
1000
+ d(this, Zt, /* @__PURE__ */ c(() => {
1001
1001
  t(this, Gt).call(this), new ResizeObserver((i) => {
1002
1002
  for (let e of i)
1003
1003
  t(this, H).getAttribute("auto-height") === "true" && t(this, Tt).call(this);
1004
1004
  }).observe(t(this, H));
1005
1005
  }, "#init"));
1006
- d(this, Tt, /* @__PURE__ */ h(() => {
1007
- var c, l;
1006
+ d(this, Tt, /* @__PURE__ */ c(() => {
1007
+ var h, l;
1008
1008
  const i = Array.from(t(this, H).shadowRoot.querySelectorAll("nine-table-sheet.active"));
1009
1009
  if (i.length === 0) return;
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
+ 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;
1011
1011
  t(this, H).style.height = `${a}px`;
1012
1012
  }, "#applyAutoHeight"));
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) => {
1013
+ d(this, Gt, /* @__PURE__ */ c(() => {
1014
+ 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) => {
1015
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>` : "";
1016
1016
  return u + g;
1017
- }).join(""), o = e.map((c, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
1017
+ }).join(""), o = e.map((h, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
1018
1018
  t(this, H).shadowRoot.innerHTML = `
1019
1019
  <style>
1020
1020
  :host {
@@ -1091,19 +1091,16 @@ const Ne = class Ne {
1091
1091
  flex-shrink: 0;
1092
1092
  }
1093
1093
 
1094
- nine-table-sheets .ng-container-nodata {
1095
- --display: none;
1096
- .ng-part-body {
1097
-
1098
- }
1094
+ nine-table-sheets .ng-nodata {
1095
+ display: none;
1099
1096
  }
1100
1097
 
1101
1098
  nine-table-sheets.nodata {
1102
- .ng-container-nodata {
1103
- --display: block;
1099
+ .ng-nodata {
1100
+ display: block;
1104
1101
  }
1105
- .ng-part-body {
1106
- --display: none;
1102
+ .ng-scroll-content {
1103
+ display: none;
1107
1104
  }
1108
1105
  }
1109
1106
 
@@ -1124,23 +1121,23 @@ const Ne = class Ne {
1124
1121
  <nine-table-footer></nine-table-footer>
1125
1122
  `, t(this, H).shadowRoot.querySelector("nine-table-sheets").classList.add("nodata");
1126
1123
  const a = t(this, H).shadowRoot.querySelectorAll("nine-table-sheet");
1127
- a == null || a.forEach((c, l) => {
1124
+ a == null || a.forEach((h, l) => {
1128
1125
  e[l] && setTimeout(() => {
1129
- c.generate(e[l]), s && t(this, Tt).call(this);
1126
+ h.generate(e[l]), s && t(this, Tt).call(this);
1130
1127
  });
1131
1128
  });
1132
1129
  }, "#render"));
1133
1130
  p(this, H, i), t(this, Zt).call(this);
1134
1131
  }
1135
1132
  };
1136
- H = new WeakMap(), Zt = new WeakMap(), Tt = new WeakMap(), Gt = new WeakMap(), h(Ne, "LayoutManager");
1133
+ H = new WeakMap(), Zt = new WeakMap(), Tt = new WeakMap(), Gt = new WeakMap(), c(Ne, "LayoutManager");
1137
1134
  let fe = Ne;
1138
1135
  var kt, ht;
1139
1136
  const We = class We {
1140
1137
  constructor(i) {
1141
1138
  d(this, kt);
1142
1139
  d(this, ht, -1);
1143
- E(this, "count", /* @__PURE__ */ h(() => t(this, kt).rawRecords.length, "count"));
1140
+ E(this, "count", /* @__PURE__ */ c(() => t(this, kt).rawRecords.length, "count"));
1144
1141
  p(this, kt, i);
1145
1142
  }
1146
1143
  get at() {
@@ -1151,7 +1148,7 @@ const We = class We {
1151
1148
  });
1152
1149
  }
1153
1150
  };
1154
- kt = new WeakMap(), ht = new WeakMap(), h(We, "ngRow");
1151
+ kt = new WeakMap(), ht = new WeakMap(), c(We, "ngRow");
1155
1152
  let ue = We;
1156
1153
  var _, k, N, dt, Jt, Y, Qt, it, Ct, te, ee, ft;
1157
1154
  const O = class O {
@@ -1162,7 +1159,7 @@ const O = class O {
1162
1159
  d(this, dt, []);
1163
1160
  d(this, Jt, 0);
1164
1161
  d(this, Y, []);
1165
- d(this, Qt, /* @__PURE__ */ h(() => {
1162
+ d(this, Qt, /* @__PURE__ */ c(() => {
1166
1163
  p(this, Y, []);
1167
1164
  const i = t(this, _).template || [];
1168
1165
  Array.from(i).forEach((e) => {
@@ -1172,12 +1169,13 @@ const O = class O {
1172
1169
  e.__ng || (e.__ng = t(this, Ct).call(this)), e.__ng.height = t(this, Y).slice();
1173
1170
  });
1174
1171
  }, "#initialize"));
1175
- d(this, it, /* @__PURE__ */ h(() => {
1176
- t(this, _).shadowRoot.querySelectorAll("nine-table-sheet").forEach((i) => {
1177
- i.invalidate();
1172
+ d(this, it, /* @__PURE__ */ c(() => {
1173
+ const i = t(this, _).shadowRoot.querySelector("nine-table-sheets");
1174
+ i == null || i.classList.toggle("nodata", this.length === 0), t(this, _).shadowRoot.querySelectorAll("nine-table-sheet").forEach((e) => {
1175
+ e.invalidate();
1178
1176
  });
1179
1177
  }, "#invalidate"));
1180
- E(this, "get", /* @__PURE__ */ h((i, e) => {
1178
+ E(this, "get", /* @__PURE__ */ c((i, e) => {
1181
1179
  var n;
1182
1180
  const s = this.getValidData();
1183
1181
  if (!s || s.length <= 0) return;
@@ -1190,10 +1188,10 @@ const O = class O {
1190
1188
  }
1191
1189
  return t(this, ft).call(this, s[i]);
1192
1190
  }, "get"));
1193
- E(this, "set", /* @__PURE__ */ h((i) => {
1191
+ E(this, "set", /* @__PURE__ */ c((i) => {
1194
1192
  this.clear(), this.add(i, !1), t(this, it).call(this);
1195
1193
  }, "set"));
1196
- d(this, Ct, /* @__PURE__ */ h(() => ({
1194
+ d(this, Ct, /* @__PURE__ */ c(() => ({
1197
1195
  rowState: O.ROW_STATE.EMPTY,
1198
1196
  deleted: !1,
1199
1197
  filtered: !1,
@@ -1202,14 +1200,14 @@ const O = class O {
1202
1200
  c: {},
1203
1201
  _: [0, 0, 0, 0, O.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, Y).slice(), -1, {}, {}]
1204
1202
  }), "#getDefaultMeta"));
1205
- E(this, "reset", /* @__PURE__ */ h(() => {
1203
+ E(this, "reset", /* @__PURE__ */ c(() => {
1206
1204
  p(this, N, []), p(this, dt, []), t(this, it).call(this);
1207
1205
  }, "reset"));
1208
- E(this, "clear", /* @__PURE__ */ h(() => {
1206
+ E(this, "clear", /* @__PURE__ */ c(() => {
1209
1207
  var i;
1210
1208
  t(this, k).rawRecords = [], p(this, N, []), p(this, dt, []), (i = t(this, k).viewRecords) != null && i.reset && t(this, k).viewRecords.reset();
1211
1209
  }, "clear"));
1212
- d(this, te, /* @__PURE__ */ h((i) => {
1210
+ d(this, te, /* @__PURE__ */ c((i) => {
1213
1211
  var r;
1214
1212
  Array.isArray(i) || (i = [i]);
1215
1213
  const e = typeof ((r = t(this, _).fields) == null ? void 0 : r.get) == "function" ? t(this, _).fields.get() : Object.keys(i[0] || {}), s = [];
@@ -1220,10 +1218,10 @@ const O = class O {
1220
1218
  }), s.push(o);
1221
1219
  }), s;
1222
1220
  }, "#json2Array"));
1223
- d(this, ee, /* @__PURE__ */ h((i) => (Array.isArray(i) || (i = [i]), i.forEach((e) => {
1221
+ d(this, ee, /* @__PURE__ */ c((i) => (Array.isArray(i) || (i = [i]), i.forEach((e) => {
1224
1222
  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;
1225
1223
  }), i), "#defaultInsert"));
1226
- E(this, "add", /* @__PURE__ */ h((i, e = !0) => {
1224
+ E(this, "add", /* @__PURE__ */ c((i, e = !0) => {
1227
1225
  i === void 0 && (i = {});
1228
1226
  const s = t(this, te).call(this, i);
1229
1227
  t(this, k).rawRecords = t(this, k).rawRecords.concat(t(this, ee).call(this, s)), this.resetRecords();
@@ -1233,7 +1231,7 @@ const O = class O {
1233
1231
  a && (a.__ng.rowState = O.ROW_STATE.EMPTY);
1234
1232
  }), t(this, it).call(this), r;
1235
1233
  }, "add"));
1236
- E(this, "delete", /* @__PURE__ */ h((i) => {
1234
+ E(this, "delete", /* @__PURE__ */ c((i) => {
1237
1235
  let e = [];
1238
1236
  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) => {
1239
1237
  if (t(this, N)[s]) {
@@ -1244,36 +1242,36 @@ const O = class O {
1244
1242
  }
1245
1243
  }), this.resetRecords(), t(this, it).call(this);
1246
1244
  }, "delete"));
1247
- E(this, "setValue", /* @__PURE__ */ h((i, e, s) => {
1248
- var c;
1245
+ E(this, "setValue", /* @__PURE__ */ c((i, e, s) => {
1246
+ var h;
1249
1247
  i = parseInt(i, 10);
1250
- const n = (typeof ((c = t(this, _).fields) == null ? void 0 : c.get) == "function" ? t(this, _).fields.get() : []).indexOf(e);
1248
+ const n = (typeof ((h = t(this, _).fields) == null ? void 0 : h.get) == "function" ? t(this, _).fields.get() : []).indexOf(e);
1251
1249
  if (n < 0) return;
1252
1250
  const o = this.getValidData()[i];
1253
1251
  if (!o) return;
1254
1252
  const a = o.v[n];
1255
1253
  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;
1256
1254
  }, "setValue"));
1257
- E(this, "resetRecords", /* @__PURE__ */ h(() => {
1255
+ E(this, "resetRecords", /* @__PURE__ */ c(() => {
1258
1256
  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) => {
1259
1257
  i.__ng.rowidx = e;
1260
1258
  }), t(this, N).forEach((i, e) => {
1261
1259
  i.__ng.i = e;
1262
1260
  });
1263
1261
  }, "resetRecords"));
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) => {
1262
+ E(this, "getValidData", /* @__PURE__ */ c(() => (t(this, N).length === 0 && t(this, k).rawRecords.length > 0 && this.resetRecords(), t(this, N)), "getValidData"));
1263
+ d(this, ft, /* @__PURE__ */ c((i) => {
1266
1264
  var o;
1267
1265
  if (!i) return i;
1268
1266
  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) => {
1269
- const c = {};
1267
+ const h = {};
1270
1268
  return r.forEach((l, f) => {
1271
- c[l] = a.v ? a.v[f] : a[l];
1272
- }), c.__ng = a.__ng, c;
1269
+ h[l] = a.v ? a.v[f] : a[l];
1270
+ }), h.__ng = a.__ng, h;
1273
1271
  });
1274
1272
  return e ? n[0] : n;
1275
1273
  }, "#conv"));
1276
- E(this, "count", /* @__PURE__ */ h(() => this.getValidData().length, "count"));
1274
+ E(this, "count", /* @__PURE__ */ c(() => this.getValidData().length, "count"));
1277
1275
  p(this, _, i), p(this, k, e), t(this, Qt).call(this);
1278
1276
  }
1279
1277
  get source() {
@@ -1295,7 +1293,7 @@ const O = class O {
1295
1293
  return this.length;
1296
1294
  }
1297
1295
  };
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"), // 🎯 행 상태 정의 상수를 클래스 내부로 내재화
1296
+ _ = 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"), // 🎯 행 상태 정의 상수를 클래스 내부로 내재화
1299
1297
  E(O, "ROW_STATE", {
1300
1298
  EMPTY: "EMPTY",
1301
1299
  NORMAL: "NORMAL",
@@ -1325,7 +1323,7 @@ const Oe = class Oe {
1325
1323
  }, this.setDataSource([]);
1326
1324
  }
1327
1325
  };
1328
- rt = new WeakMap(), h(Oe, "ngDataManager");
1326
+ rt = new WeakMap(), c(Oe, "ngDataManager");
1329
1327
  let be = Oe;
1330
1328
  var ut, L, Lt, se;
1331
1329
  const Be = class Be {
@@ -1333,18 +1331,18 @@ const Be = class Be {
1333
1331
  constructor(i) {
1334
1332
  d(this, ut);
1335
1333
  d(this, L, []);
1336
- E(this, "add", /* @__PURE__ */ h((i, e = "string") => {
1334
+ E(this, "add", /* @__PURE__ */ c((i, e = "string") => {
1337
1335
  i.forEach((s) => {
1338
1336
  t(this, L).some((r) => r.name === s) || t(this, L).push({ name: s, type: e });
1339
1337
  }), t(this, Lt).call(this);
1340
1338
  }, "add"));
1341
- d(this, Lt, /* @__PURE__ */ h(() => {
1339
+ d(this, Lt, /* @__PURE__ */ c(() => {
1342
1340
  const i = /* @__PURE__ */ new Map();
1343
1341
  t(this, L).forEach((e) => {
1344
1342
  i.set(e.name, e.type);
1345
1343
  }), 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);
1346
1344
  }, "#adjust"));
1347
- d(this, se, /* @__PURE__ */ h(() => {
1345
+ d(this, se, /* @__PURE__ */ c(() => {
1348
1346
  p(this, L, []), W.log(t(this, ut).querySelectorAll("table"));
1349
1347
  const i = Array.from(t(this, ut).querySelectorAll("table"));
1350
1348
  if (!(!i || i.length === 0)) {
@@ -1366,9 +1364,9 @@ const Be = class Be {
1366
1364
  }
1367
1365
  o.split("data.").forEach((a) => {
1368
1366
  if (a.trim() != "") {
1369
- const c = a.search(/[^_A-Za-z0-9]/g);
1367
+ const h = a.search(/[^_A-Za-z0-9]/g);
1370
1368
  let l = "";
1371
- c >= 0 ? l = a.substring(0, c) : o.startsWith("data.") && (l = a.replace("data.", "")), l && t(this, L).push({ name: l, type: "string" });
1369
+ h >= 0 ? l = a.substring(0, h) : o.startsWith("data.") && (l = a.replace("data.", "")), l && t(this, L).push({ name: l, type: "string" });
1372
1370
  }
1373
1371
  });
1374
1372
  });
@@ -1398,7 +1396,7 @@ const Be = class Be {
1398
1396
  return t(this, L).some((e) => e.name === i);
1399
1397
  }
1400
1398
  };
1401
- ut = new WeakMap(), L = new WeakMap(), Lt = new WeakMap(), se = new WeakMap(), h(Be, "ngFields");
1399
+ ut = new WeakMap(), L = new WeakMap(), Lt = new WeakMap(), se = new WeakMap(), c(Be, "ngFields");
1402
1400
  let pe = Be;
1403
1401
  var nt, ie, re;
1404
1402
  const ze = class ze extends HTMLElement {
@@ -1407,7 +1405,7 @@ const ze = class ze extends HTMLElement {
1407
1405
  //#created = false;
1408
1406
  d(this, nt);
1409
1407
  d(this, ie);
1410
- d(this, re, /* @__PURE__ */ h(() => {
1408
+ d(this, re, /* @__PURE__ */ c(() => {
1411
1409
  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 } }));
1412
1410
  }, "#init"));
1413
1411
  this.attachShadow({ mode: "open" }), p(this, nt, new be(this));
@@ -1431,7 +1429,7 @@ const ze = class ze extends HTMLElement {
1431
1429
  return t(this, nt);
1432
1430
  }
1433
1431
  };
1434
- nt = new WeakMap(), ie = new WeakMap(), re = new WeakMap(), h(ze, "NineTable");
1432
+ nt = new WeakMap(), ie = new WeakMap(), re = new WeakMap(), c(ze, "NineTable");
1435
1433
  let ye = ze;
1436
1434
  customElements.get("nine-table") || customElements.define("nine-table", ye);
1437
1435
  const mt = class mt extends HTMLElement {
@@ -1445,7 +1443,7 @@ const mt = class mt extends HTMLElement {
1445
1443
  connectedCallback() {
1446
1444
  }
1447
1445
  };
1448
- h(mt, "BasicCellElement"), E(mt, "_styleCache", /* @__PURE__ */ new Map()), E(mt, "_customStyleCache", /* @__PURE__ */ new Map());
1446
+ c(mt, "BasicCellElement"), E(mt, "_styleCache", /* @__PURE__ */ new Map()), E(mt, "_customStyleCache", /* @__PURE__ */ new Map());
1449
1447
  let me = mt;
1450
1448
  var C, Ht, y, Re, qe, Te, ke, Ce;
1451
1449
  const De = class De extends me {
@@ -1458,7 +1456,7 @@ const De = class De extends me {
1458
1456
  d(this, qe);
1459
1457
  d(this, Te);
1460
1458
  d(this, ke);
1461
- E(this, "getDisplayText", /* @__PURE__ */ h((e) => {
1459
+ E(this, "getDisplayText", /* @__PURE__ */ c((e) => {
1462
1460
  if (t(this, y))
1463
1461
  if (t(this, y).closest("tbody")) {
1464
1462
  const s = t(this, y).closest("tr").data, r = parseInt(t(this, y).dataset.row);
@@ -1478,7 +1476,7 @@ const De = class De extends me {
1478
1476
  } catch {
1479
1477
  }
1480
1478
  }, "getDisplayText"));
1481
- d(this, Ce, /* @__PURE__ */ h(() => {
1479
+ d(this, Ce, /* @__PURE__ */ c(() => {
1482
1480
  if (!(!t(this, C) || !t(this, C).template || !t(this, y).closest("tbody.bindable"))) {
1483
1481
  var e = ninegrid.j.querySelectorAll(t(this, y)).attr("suppress");
1484
1482
  if (e && (e = parseInt(e)), e && !isNaN(e)) {
@@ -1491,9 +1489,9 @@ const De = class De extends me {
1491
1489
  if (parseInt(s.sectionRowIndex / t(this, C).template.length) > 0)
1492
1490
  for (var o of r) {
1493
1491
  if (o > e) break;
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);
1492
+ 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);
1495
1493
  t(this, y).dataset.matrixRow;
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];
1494
+ 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];
1497
1495
  if (g != b) {
1498
1496
  n = !0;
1499
1497
  break;
@@ -1507,7 +1505,7 @@ const De = class De extends me {
1507
1505
  }
1508
1506
  }
1509
1507
  }, "#resetSuppress"));
1510
- E(this, "getExprValue", /* @__PURE__ */ h((e, s, r, n) => {
1508
+ E(this, "getExprValue", /* @__PURE__ */ c((e, s, r, n) => {
1511
1509
  if (typeof e < "u")
1512
1510
  try {
1513
1511
  r = parseInt(r);
@@ -1543,7 +1541,7 @@ const De = class De extends me {
1543
1541
  return parseInt(t(this, y).dataset.row), t(this, Ht).data[e];
1544
1542
  }
1545
1543
  };
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");
1544
+ 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");
1547
1545
  let ve = De;
1548
1546
  const Pe = class Pe extends ve {
1549
1547
  constructor() {
@@ -1556,7 +1554,7 @@ const Pe = class Pe extends ve {
1556
1554
  return super.refresh();
1557
1555
  }
1558
1556
  };
1559
- h(Pe, "EditableCellElement");
1557
+ c(Pe, "EditableCellElement");
1560
1558
  let xe = Pe;
1561
1559
  var Mt, ot, gt, bt, ne, U, Le;
1562
1560
  const je = class je extends xe {
@@ -1568,7 +1566,7 @@ const je = class je extends xe {
1568
1566
  d(this, bt);
1569
1567
  d(this, ne);
1570
1568
  d(this, U);
1571
- E(this, "refresh", /* @__PURE__ */ h(() => {
1569
+ E(this, "refresh", /* @__PURE__ */ c(() => {
1572
1570
  const e = super.refresh();
1573
1571
  t(this, Mt).value = e;
1574
1572
  }, "refresh"));
@@ -1602,7 +1600,7 @@ const je = class je extends xe {
1602
1600
  if (!v) this.reset();
1603
1601
  };
1604
1602
  */
1605
- d(this, Le, /* @__PURE__ */ h((e) => {
1603
+ d(this, Le, /* @__PURE__ */ c((e) => {
1606
1604
  if (!["Escape", "Enter", "Tab", "Home", "End", "ArrowLeft", "ArrowRight", "PageUp", "PageDown", "Backspace", "Delete"].includes(e.code)) {
1607
1605
  if (t(this, ot) == "number") {
1608
1606
  let n = [];
@@ -1630,7 +1628,7 @@ const je = class je extends xe {
1630
1628
  `, super.connectedCallback(), p(this, Mt, this.querySelector("input"));
1631
1629
  }
1632
1630
  };
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");
1631
+ Mt = new WeakMap(), ot = new WeakMap(), gt = new WeakMap(), bt = new WeakMap(), ne = new WeakMap(), U = new WeakMap(), Le = new WeakMap(), c(je, "CellInputText");
1634
1632
  let we = je;
1635
1633
  customElements.get("cell-input-text");
1636
1634
  customElements.get("cell-input") || customElements.define("cell-input", we);