@ninebone/table 0.0.425 β†’ 0.0.427

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.
@@ -7,8 +7,8 @@ var a = (x, i) => pe(x, "name", { value: i, configurable: !0 });
7
7
  var v = (x, i, e) => we(x, typeof i != "symbol" ? i + "" : i, e), xe = (x, i, e) => i.has(x) || me("Cannot " + e);
8
8
  var t = (x, i, e) => (xe(x, i, "read from private field"), e ? e.call(x) : i.get(x)), c = (x, i, e) => i.has(x) ? me("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(x) : i.set(x, e), b = (x, i, e, s) => (xe(x, i, "write to private field"), s ? s.call(x, e) : i.set(x, e), e);
9
9
  var ve = (x, i, e, s) => ({
10
- set _(n) {
11
- b(x, i, n, e);
10
+ set _(o) {
11
+ b(x, i, o, e);
12
12
  },
13
13
  get _() {
14
14
  return t(x, i, s);
@@ -22,36 +22,36 @@ const re = class re extends Se.constructor {
22
22
  };
23
23
  a(re, "Trace");
24
24
  let jt = re;
25
- const P = new jt();
26
- var M, z, p, Y, V, X, St, U, Et;
25
+ const H = new jt();
26
+ var _, N, p, V, X, U, St, F, Et;
27
27
  const le = class le extends HTMLElement {
28
28
  constructor() {
29
29
  super();
30
- c(this, M);
31
- c(this, z, !1);
30
+ c(this, _);
31
+ c(this, N, !1);
32
32
  c(this, p);
33
- c(this, Y);
34
33
  c(this, V);
35
34
  c(this, X);
35
+ c(this, U);
36
36
  c(this, St, /* @__PURE__ */ a(() => {
37
- if (!t(this, M)) return;
38
- const e = t(this, M).querySelector(".ng-container-body");
39
- e && (b(this, X, new ResizeObserver(() => {
37
+ if (!t(this, _)) return;
38
+ const e = t(this, _).querySelector(".ng-container-body");
39
+ e && (b(this, U, new ResizeObserver(() => {
40
40
  this.refresh();
41
- })), t(this, X).observe(e));
41
+ })), t(this, U).observe(e));
42
42
  }, "#observeResize"));
43
43
  v(this, "refresh", /* @__PURE__ */ a(() => {
44
- if (!t(this, M) || !t(this, p) || t(this, z)) return;
44
+ if (!t(this, _) || !t(this, p) || t(this, N)) return;
45
45
  const e = t(this, p).container, s = e.querySelector("table");
46
46
  if (!s) return;
47
- const n = t(this, p).track, r = t(this, p).thumb, o = t(this, M).querySelector(".ng-container-bottom"), l = e.clientWidth, d = s.scrollWidth;
47
+ const o = t(this, p).track, r = t(this, p).thumb, n = t(this, _).querySelector(".ng-container-bottom"), l = e.clientWidth, d = s.scrollWidth;
48
48
  if (l !== 0 && d > l)
49
- o && (o.style.display = "flex");
49
+ n && (n.style.display = "flex");
50
50
  else {
51
- o && (o.style.display = "none");
51
+ n && (n.style.display = "none");
52
52
  return;
53
53
  }
54
- const h = n.clientWidth;
54
+ const h = o.clientWidth;
55
55
  if (h <= 0) return;
56
56
  const f = Math.max(Math.min(h * (l / d), h), 20);
57
57
  r.style.width = `${f}px`;
@@ -59,60 +59,60 @@ const le = class le extends HTMLElement {
59
59
  let y = 0;
60
60
  g > 0 && (y = parseInt(u / g * (h - f), 10)), y < 0 && (y = 0);
61
61
  const m = h - f;
62
- y > m && (y = m), r.style.left = `${y}px`, P.log(y), t(this, p).left.disabled = y === 0, t(this, p).right.disabled = y >= m - 1;
62
+ y > m && (y = m), r.style.left = `${y}px`, H.log(y), t(this, p).left.disabled = y === 0, t(this, p).right.disabled = y >= m - 1;
63
63
  }, "refresh"));
64
- c(this, U, /* @__PURE__ */ a((e) => {
64
+ c(this, F, /* @__PURE__ */ a((e) => {
65
65
  if (!t(this, p)) return !1;
66
- const s = t(this, p).container, n = s.querySelector("table");
67
- if (!n) return !1;
68
- const r = t(this, p).track.getBoundingClientRect(), o = t(this, p).thumb.clientWidth;
66
+ const s = t(this, p).container, o = s.querySelector("table");
67
+ if (!o) return !1;
68
+ const r = t(this, p).track.getBoundingClientRect(), n = t(this, p).thumb.clientWidth;
69
69
  let l = e;
70
70
  l < 0 && (l = 0);
71
- const d = r.width - o;
71
+ const d = r.width - n;
72
72
  l > d && (l = d), l = parseInt(l, 10), t(this, p).thumb.style.left = `${l}px`, t(this, p).left.disabled = l === 0, t(this, p).right.disabled = l >= d - 1;
73
- const h = s.clientWidth, u = n.scrollWidth - h;
73
+ const h = s.clientWidth, u = o.scrollWidth - h;
74
74
  return d > 0 && u > 0 && (s.scrollLeft = l / d * u), l > 0 && l < d - 1;
75
75
  }, "#thumbMoveTo"));
76
76
  c(this, Et, /* @__PURE__ */ a(() => {
77
- const e = /* @__PURE__ */ a((n) => {
78
- clearInterval(t(this, Y)), clearInterval(t(this, V));
77
+ const e = /* @__PURE__ */ a((o) => {
78
+ clearInterval(t(this, V)), clearInterval(t(this, X));
79
79
  const r = parseInt(t(this, p).thumb.style.left || 0, 10);
80
- t(this, U).call(this, r + n), b(this, Y, setInterval(() => {
81
- clearInterval(t(this, Y)), b(this, V, setInterval(() => {
82
- const o = parseInt(t(this, p).thumb.style.left || 0, 10);
83
- t(this, U).call(this, o + n) || clearInterval(t(this, V));
80
+ t(this, F).call(this, r + o), b(this, V, setInterval(() => {
81
+ clearInterval(t(this, V)), b(this, X, setInterval(() => {
82
+ const n = parseInt(t(this, p).thumb.style.left || 0, 10);
83
+ t(this, F).call(this, n + o) || clearInterval(t(this, X));
84
84
  }, 50));
85
85
  }, 500));
86
86
  }, "delayScroll"), s = /* @__PURE__ */ a(() => {
87
- clearInterval(t(this, Y)), clearInterval(t(this, V));
87
+ clearInterval(t(this, V)), clearInterval(t(this, X));
88
88
  }, "clearTimer");
89
- ["mouseup", "mouseleave", "touchend"].forEach((n) => {
90
- t(this, p).left.addEventListener(n, s), t(this, p).right.addEventListener(n, s), t(this, p).track.addEventListener(n, s);
91
- }), t(this, p).left.addEventListener("mousedown", (n) => {
92
- n.button === 0 && e(-20);
93
- }), t(this, p).right.addEventListener("mousedown", (n) => {
94
- n.button === 0 && e(20);
95
- }), t(this, p).left.addEventListener("touchstart", () => e(-20)), t(this, p).right.addEventListener("touchstart", () => e(20)), t(this, p).track.addEventListener("mousedown", (n) => {
96
- if (n.button !== 0) return;
97
- n.preventDefault();
98
- const r = t(this, p).track.getBoundingClientRect(), o = t(this, p).thumb.clientWidth;
99
- t(this, U).call(this, n.clientX - r.left - o / 2);
100
- }), t(this, p).thumb.addEventListener("mousedown", (n) => {
101
- if (n.button !== 0) return;
102
- n.stopPropagation(), n.preventDefault(), b(this, z, !0), this.shiftX = n.clientX - t(this, p).thumb.getBoundingClientRect().left;
89
+ ["mouseup", "mouseleave", "touchend"].forEach((o) => {
90
+ t(this, p).left.addEventListener(o, s), t(this, p).right.addEventListener(o, s), t(this, p).track.addEventListener(o, s);
91
+ }), t(this, p).left.addEventListener("mousedown", (o) => {
92
+ o.button === 0 && e(-20);
93
+ }), t(this, p).right.addEventListener("mousedown", (o) => {
94
+ o.button === 0 && e(20);
95
+ }), t(this, p).left.addEventListener("touchstart", () => e(-20)), t(this, p).right.addEventListener("touchstart", () => e(20)), t(this, p).track.addEventListener("mousedown", (o) => {
96
+ if (o.button !== 0) return;
97
+ o.preventDefault();
98
+ const r = t(this, p).track.getBoundingClientRect(), n = t(this, p).thumb.clientWidth;
99
+ t(this, F).call(this, o.clientX - r.left - n / 2);
100
+ }), t(this, p).thumb.addEventListener("mousedown", (o) => {
101
+ if (o.button !== 0) return;
102
+ o.stopPropagation(), o.preventDefault(), b(this, N, !0), this.shiftX = o.clientX - t(this, p).thumb.getBoundingClientRect().left;
103
103
  const r = /* @__PURE__ */ a((l) => {
104
- if (!t(this, z)) return;
104
+ if (!t(this, N)) return;
105
105
  const d = t(this, p).track.getBoundingClientRect();
106
- t(this, U).call(this, l.clientX - d.left - this.shiftX);
107
- }, "onMouseMove"), o = /* @__PURE__ */ a(() => {
108
- b(this, z, !1), s(), document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", o), this.refresh();
106
+ t(this, F).call(this, l.clientX - d.left - this.shiftX);
107
+ }, "onMouseMove"), n = /* @__PURE__ */ a(() => {
108
+ b(this, N, !1), s(), document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", n), this.refresh();
109
109
  }, "onMouseUp");
110
- document.addEventListener("mousemove", r), document.addEventListener("mouseup", o);
110
+ document.addEventListener("mousemove", r), document.addEventListener("mouseup", n);
111
111
  });
112
112
  }, "#init"));
113
113
  }
114
114
  connectedCallback() {
115
- if (b(this, M, this.closest("nine-table-sheet") || this.getRootNode().host), !t(this, M)) return;
115
+ if (b(this, _, this.closest("nine-table-sheet") || this.getRootNode().host), !t(this, _)) return;
116
116
  this.innerHTML = `
117
117
  <style>
118
118
  nine-table-hscrollbar {
@@ -177,7 +177,7 @@ const le = class le extends HTMLElement {
177
177
  <button class='ng-scroll-right' disabled><div class='ng-scroll-icon'></div></button>
178
178
  `;
179
179
  const e = /* @__PURE__ */ a(() => {
180
- const s = t(this, M).querySelector(".ng-container-body");
180
+ const s = t(this, _).querySelector(".ng-container-body");
181
181
  if (!s) {
182
182
  setTimeout(e, 10);
183
183
  return;
@@ -189,90 +189,90 @@ const le = class le extends HTMLElement {
189
189
  left: this.querySelector(".ng-scroll-left"),
190
190
  right: this.querySelector(".ng-scroll-right")
191
191
  }), s.addEventListener("scroll", () => {
192
- t(this, z) || this.refresh();
192
+ t(this, N) || this.refresh();
193
193
  }), t(this, Et).call(this), t(this, St).call(this), this.refresh();
194
194
  }, "initWhenReady");
195
195
  e();
196
196
  }
197
197
  disconnectedCallback() {
198
- t(this, X) && t(this, X).disconnect();
198
+ t(this, U) && t(this, U).disconnect();
199
199
  }
200
200
  };
201
- M = new WeakMap(), z = new WeakMap(), p = new WeakMap(), Y = new WeakMap(), V = new WeakMap(), X = new WeakMap(), St = new WeakMap(), U = new WeakMap(), Et = new WeakMap(), a(le, "NineTableHScrollBar");
201
+ _ = new WeakMap(), N = new WeakMap(), p = new WeakMap(), V = new WeakMap(), X = new WeakMap(), U = new WeakMap(), St = new WeakMap(), F = new WeakMap(), Et = new WeakMap(), a(le, "NineTableHScrollBar");
202
202
  let Kt = le;
203
203
  customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", Kt);
204
- var _, tt, F, E, ht, dt, Rt;
204
+ var j, tt, B, S, ct, ht, Rt;
205
205
  const ae = class ae extends HTMLElement {
206
206
  constructor() {
207
207
  super();
208
- c(this, _);
208
+ c(this, j);
209
209
  c(this, tt);
210
- c(this, F, !1);
211
- c(this, E);
210
+ c(this, B, !1);
211
+ c(this, S);
212
+ c(this, ct, 0);
212
213
  c(this, ht, 0);
213
- c(this, dt, 0);
214
214
  /**
215
215
  * 🎯 μŠ€ν¬λ‘€λ°” μœ„μΉ˜ 및 썸브 크기 κ°±μ‹ 
216
216
  */
217
217
  v(this, "refresh", /* @__PURE__ */ a(() => {
218
- var O;
219
- if (!t(this, _) || !t(this, E)) return;
220
- const e = t(this, E).container, s = t(this, E).track, n = t(this, E).thumb, r = e.clientHeight, l = (t(this, _).data.get() || []).length, d = ((O = t(this, tt)) == null ? void 0 : O.getRowHeight()) || 24, h = l * d;
218
+ H.log("refresh", t(this, B)), H.log("refresh2");
219
+ const e = t(this, S).container, s = t(this, S).track, o = t(this, S).thumb, r = e.clientHeight, l = (t(this, j).data.get() || []).length, d = t(this, tt).getRowHeight(), h = l * d;
221
220
  if (h <= r) {
222
- n.style.display = "none", t(this, E).top.disabled = !0, t(this, E).bottom.disabled = !0;
221
+ o.style.display = "none", t(this, S).top.disabled = !0, t(this, S).bottom.disabled = !0;
223
222
  return;
224
223
  } else
225
- n.style.display = "block";
224
+ o.style.display = "block";
226
225
  const f = s.clientHeight;
227
226
  if (f <= 0) return;
228
227
  const u = Math.max(Math.min(f * (r / h), f), 20);
229
- n.style.height = `${u}px`;
230
- const g = e.scrollTop, y = Math.max(h - r, 1), m = f - u;
231
- let S = 0;
232
- y > 0 && m > 0 && (S = g / y * m), S < 0 && (S = 0), S > m && (S = m), n.style.top = `${S}px`, t(this, E).top.disabled = g <= 0, t(this, E).bottom.disabled = g >= y - 1;
228
+ o.style.height = `${u}px`;
229
+ const g = e.scrollTop, y = Math.max(h - r, 1);
230
+ let m = 0;
231
+ y > 0 && (m = g / y * (f - u));
232
+ const A = f - u;
233
+ m < 0 && (m = 0), m > A && (m = A), o.style.top = `${m}px`, H.log("currentScrollTop", g), H.log("maxScrollTop", y), H.log("trackHeight", f), H.log("thumbHeight", u), t(this, S).top.disabled = g <= 0, t(this, S).bottom.disabled = g >= y - 1;
233
234
  }, "refresh"));
234
235
  c(this, Rt, /* @__PURE__ */ a(() => {
235
- const e = t(this, E).container, s = /* @__PURE__ */ a(() => {
236
- var l;
237
- const r = (t(this, _).data.get() || []).length, o = ((l = t(this, tt)) == null ? void 0 : l.getRowHeight()) || 24;
238
- return r * o;
236
+ const e = t(this, S).container, s = /* @__PURE__ */ a(() => {
237
+ const r = (t(this, j).data.get() || []).length, n = t(this, tt).getRowHeight();
238
+ return r * n;
239
239
  }, "getContentHeight");
240
240
  e.addEventListener("scroll", () => {
241
- t(this, F) || this.refresh();
242
- }), t(this, E).thumb.addEventListener("mousedown", (n) => {
243
- if (n.button !== 0) return;
244
- n.stopPropagation(), n.preventDefault(), b(this, F, !0), b(this, ht, n.clientY), b(this, dt, e.scrollTop);
241
+ t(this, B) || this.refresh();
242
+ }), t(this, S).thumb.addEventListener("mousedown", (o) => {
243
+ if (o.button !== 0) return;
244
+ o.stopPropagation(), o.preventDefault(), b(this, B, !0), b(this, ct, o.clientY), b(this, ht, e.scrollTop);
245
245
  const r = /* @__PURE__ */ a((l) => {
246
- if (!t(this, F)) return;
247
- const d = t(this, E).track.getBoundingClientRect(), h = t(this, E).thumb.clientHeight, u = d.height - h, g = l.clientY - t(this, ht), y = e.clientHeight, m = s(), S = Math.max(m - y, 1);
248
- if (u > 0 && S > 0) {
249
- const O = g / u * S;
250
- let Q = t(this, dt) + O;
246
+ if (!t(this, B)) return;
247
+ const d = t(this, S).track.getBoundingClientRect(), h = t(this, S).thumb.clientHeight, u = d.height - h, g = l.clientY - t(this, ct), y = e.clientHeight, m = s(), A = Math.max(m - y, 1);
248
+ if (u > 0 && A > 0) {
249
+ const z = g / u * A;
250
+ let Y = t(this, ht) + z;
251
251
  const ye = Math.max(0, m - y);
252
- Q < 0 && (Q = 0), Q > ye && (Q = ye), e.scrollTop = Q;
252
+ Y < 0 && (Y = 0), Y > ye && (Y = ye), e.scrollTop = Y;
253
253
  }
254
254
  this.refresh();
255
- }, "onMouseMove"), o = /* @__PURE__ */ a(() => {
256
- b(this, F, !1), document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", o), this.refresh();
255
+ }, "onMouseMove"), n = /* @__PURE__ */ a(() => {
256
+ b(this, B, !1), document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", n), this.refresh();
257
257
  }, "onMouseUp");
258
- document.addEventListener("mousemove", r), document.addEventListener("mouseup", o);
259
- }), t(this, E).track.addEventListener("mousedown", (n) => {
260
- if (n.button !== 0 || n.target === t(this, E).thumb) return;
261
- const r = t(this, E).track.getBoundingClientRect(), o = t(this, E).thumb.clientHeight, l = n.clientY - r.top - o / 2, h = r.height - o, f = e.clientHeight, u = s(), g = Math.max(u - f, 1);
258
+ document.addEventListener("mousemove", r), document.addEventListener("mouseup", n);
259
+ }), t(this, S).track.addEventListener("mousedown", (o) => {
260
+ if (o.button !== 0 || o.target === t(this, S).thumb) return;
261
+ const r = t(this, S).track.getBoundingClientRect(), n = t(this, S).thumb.clientHeight, l = o.clientY - r.top - n / 2, h = r.height - n, f = e.clientHeight, u = s(), g = Math.max(u - f, 1);
262
262
  if (h > 0 && g > 0) {
263
263
  const y = Math.max(0, Math.min(1, l / h));
264
264
  e.scrollTop = y * g;
265
265
  }
266
266
  this.refresh();
267
- }), t(this, E).top.addEventListener("click", () => {
267
+ }), t(this, S).top.addEventListener("click", () => {
268
268
  e.scrollTop -= 40;
269
- }), t(this, E).bottom.addEventListener("click", () => {
269
+ }), t(this, S).bottom.addEventListener("click", () => {
270
270
  e.scrollTop += 40;
271
271
  });
272
272
  }, "#init"));
273
273
  }
274
274
  connectedCallback() {
275
- b(this, _, this.getRootNode().host), b(this, tt, this.closest("nine-table-sheet")), this.innerHTML = `
275
+ b(this, j, this.getRootNode().host), b(this, tt, this.closest("nine-table-sheet")), this.innerHTML = `
276
276
  <style>
277
277
  nine-table-vscrollbar {
278
278
  display: flex;
@@ -338,15 +338,13 @@ const ae = class ae extends HTMLElement {
338
338
  <button class='ng-scroll-bottom' disabled><div class='ng-scroll-icon'></div></button>
339
339
  `;
340
340
  const e = /* @__PURE__ */ a(() => {
341
- const s = t(this, _).shadowRoot.querySelector(".ng-container-body");
341
+ const s = t(this, j).shadowRoot.querySelector(".ng-container-body");
342
342
  if (!s) {
343
343
  setTimeout(e, 10);
344
344
  return;
345
345
  }
346
- b(this, E, {
346
+ b(this, S, {
347
347
  container: s,
348
- leftContainer: t(this, _).shadowRoot.querySelector(".ng-container-left"),
349
- rightContainer: t(this, _).shadowRoot.querySelector(".ng-container-right"),
350
348
  track: this.querySelector(".ng-scroll-track"),
351
349
  thumb: this.querySelector(".ng-scroll-thumb"),
352
350
  top: this.querySelector(".ng-scroll-top"),
@@ -356,25 +354,25 @@ const ae = class ae extends HTMLElement {
356
354
  e();
357
355
  }
358
356
  };
359
- _ = new WeakMap(), tt = new WeakMap(), F = new WeakMap(), E = new WeakMap(), ht = new WeakMap(), dt = new WeakMap(), Rt = new WeakMap(), a(ae, "NineTableVScrollBar");
357
+ j = new WeakMap(), tt = new WeakMap(), B = new WeakMap(), S = new WeakMap(), ct = new WeakMap(), ht = new WeakMap(), Rt = new WeakMap(), a(ae, "NineTableVScrollBar");
360
358
  let Zt = ae;
361
359
  customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar", Zt);
362
360
  var At, et;
363
- const H = class H {
361
+ const M = class M {
364
362
  /**
365
363
  * 🎯 λ ˆμ΄μ•„μ›ƒ λ‚΄μ˜ μ—¬λŸ¬ rawTables 배열을 μΌκ΄„λ‘œ λ°›μ•„ 단일 λ§ˆμŠ€ν„° ν…œν”Œλ¦ΏμœΌλ‘œ 사전 μ»΄νŒŒμΌν•©λ‹ˆλ‹€.
366
364
  */
367
365
  static compileAll(i) {
368
- return Array.isArray(i) ? i.map((e) => H.compile(e)) : [];
366
+ return Array.isArray(i) ? i.map((e) => M.compile(e)) : [];
369
367
  }
370
368
  /**
371
369
  * 🎯 단일 원본 ν…Œμ΄λΈ”μ„ λ°›μ•„ κΈ°λ³Έ ꡬ쑰 보정 및 2차원 격자 인덱슀 사전 λΆ€μ—¬ μ™„λ£Œλœ λ§ˆμŠ€ν„° ν…Œμ΄λΈ” λ°˜ν™˜
372
370
  */
373
371
  static compile(i) {
374
- var n, r, o, l;
372
+ var o, r, n, l;
375
373
  if (!i) return null;
376
374
  const e = i.cloneNode(!0);
377
- return t(n = H, At).call(n, e), t(r = H, et).call(r, e, "thead"), t(o = H, et).call(o, e, "tbody"), t(l = H, et).call(l, e, "tfoot"), Array.from(e.querySelectorAll("colgroup col")).forEach((d, h) => {
375
+ return t(o = M, At).call(o, e), t(r = M, et).call(r, e, "thead"), t(n = M, et).call(n, e, "tbody"), t(l = M, et).call(l, e, "tfoot"), Array.from(e.querySelectorAll("colgroup col")).forEach((d, h) => {
378
376
  const f = d.getAttribute("fixed");
379
377
  f && e.querySelectorAll(`thead [data-col="${h}"], tbody [data-col="${h}"], tfoot [data-col="${h}"]`).forEach((u) => {
380
378
  u.setAttribute("fixed", f);
@@ -382,28 +380,28 @@ const H = class H {
382
380
  }), e;
383
381
  }
384
382
  };
385
- At = new WeakMap(), et = new WeakMap(), a(H, "TableCompiler"), c(H, At, /* @__PURE__ */ a((i) => {
383
+ At = new WeakMap(), et = new WeakMap(), a(M, "TableCompiler"), c(M, At, /* @__PURE__ */ a((i) => {
386
384
  if (!i.querySelector("colgroup")) {
387
- const e = i.querySelector("tbody tr") || i.querySelector("tr"), s = e ? e.querySelectorAll("th, td").length : 1, n = document.createElement("colgroup"), r = Math.max(Math.floor(i.clientWidth / s), 100);
388
- for (let o = 0; o < s; o++) {
385
+ const e = i.querySelector("tbody tr") || i.querySelector("tr"), s = e ? e.querySelectorAll("th, td").length : 1, o = document.createElement("colgroup"), r = Math.max(Math.floor(i.clientWidth / s), 100);
386
+ for (let n = 0; n < s; n++) {
389
387
  const l = document.createElement("col");
390
- l.setAttribute("width", r), n.appendChild(l);
388
+ l.setAttribute("width", r), o.appendChild(l);
391
389
  }
392
- i.prepend(n);
390
+ i.prepend(o);
393
391
  }
394
392
  if (!i.querySelector("thead")) {
395
393
  const e = document.createElement("thead"), s = i.querySelector("colgroup");
396
394
  s ? s.after(e) : i.prepend(e);
397
395
  }
398
396
  i.classList.add("nine-table-element"), i.style.display = "table";
399
- }, "#ensureTableStructure")), c(H, et, /* @__PURE__ */ a((i, e) => {
400
- const s = Array.from(i.querySelectorAll(e + " tr")), n = Array.from(i.querySelectorAll(e + " th," + e + " td")), r = s.length;
401
- if (r === 0 || n.length === 0) return;
402
- let o = 0;
403
- n.forEach((d) => {
404
- o += d.colSpan || 1;
397
+ }, "#ensureTableStructure")), c(M, et, /* @__PURE__ */ a((i, e) => {
398
+ const s = Array.from(i.querySelectorAll(e + " tr")), o = Array.from(i.querySelectorAll(e + " th," + e + " td")), r = s.length;
399
+ if (r === 0 || o.length === 0) return;
400
+ let n = 0;
401
+ o.forEach((d) => {
402
+ n += d.colSpan || 1;
405
403
  });
406
- const l = Array.from(Array(r), () => Array(o).fill(null));
404
+ const l = Array.from(Array(r), () => Array(n).fill(null));
407
405
  s.forEach((d) => {
408
406
  const h = d.sectionRowIndex;
409
407
  let f = 0;
@@ -415,8 +413,8 @@ At = new WeakMap(), et = new WeakMap(), a(H, "TableCompiler"), c(H, At, /* @__PU
415
413
  }
416
414
  const g = u.rowSpan || 1, y = u.colSpan || 1;
417
415
  for (let m = 0; m < g; m++)
418
- for (let S = 0; S < y; S++)
419
- h + m < r && f + S < o && (l[h + m][f + S] = m === 0 && S === 0 ? "1" : "0");
416
+ for (let A = 0; A < y; A++)
417
+ h + m < r && f + A < n && (l[h + m][f + A] = m === 0 && A === 0 ? "1" : "0");
420
418
  });
421
419
  }), s.forEach((d) => {
422
420
  const h = d.sectionRowIndex;
@@ -429,112 +427,113 @@ At = new WeakMap(), et = new WeakMap(), a(H, "TableCompiler"), c(H, At, /* @__PU
429
427
  });
430
428
  });
431
429
  }, "#resetColIndex"));
432
- let Gt = H;
433
- var I, w, W, q, D, j, N, it, qt, Tt, kt, ft, ut, Lt, Ct, bt, Ht, st, gt;
430
+ let Gt = M;
431
+ var I, w, W, T, D, K, dt, it, Tt, qt, kt, ft, ut, Lt, Ct, bt, Ht, st, gt;
434
432
  const ce = class ce {
435
433
  constructor(i) {
436
434
  c(this, I);
437
435
  c(this, w);
438
436
  c(this, W, /* @__PURE__ */ new Map());
439
- c(this, q, null);
437
+ c(this, T, null);
440
438
  c(this, D, null);
441
- c(this, j, 0);
442
- c(this, N, 40);
439
+ c(this, K, 0);
440
+ c(this, dt, 40);
443
441
  c(this, it, !1);
444
- c(this, qt, 3);
442
+ c(this, Tt, 3);
445
443
  v(this, "refresh", /* @__PURE__ */ a(() => {
446
444
  var e;
447
445
  const i = t(this, w).querySelector(".ng-container-body");
448
446
  i && (t(this, ft).call(this), t(this, st).call(this, i.scrollTop), (e = t(this, w).querySelector("nine-table-vscrollbar")) == null || e.refresh());
449
447
  }, "refresh"));
450
448
  v(this, "initialize", /* @__PURE__ */ a(() => {
451
- b(this, q, null), t(this, W).clear(), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((n) => {
452
- const r = t(this, w).querySelector(n);
449
+ b(this, T, null), t(this, W).clear(), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((o) => {
450
+ const r = t(this, w).querySelector(o);
453
451
  if (!r) return;
454
- const o = r.querySelector("table");
455
- if (!o) return;
456
- const l = o.querySelector("tbody.bindable-tbody");
452
+ const n = r.querySelector("table");
453
+ if (!n) return;
454
+ const l = n.querySelector("tbody.bindable-tbody");
457
455
  if (!l) return;
458
456
  const h = Array.from(l.querySelectorAll("tr")).map((f) => f.cloneNode(!0));
459
- t(this, W).set(n, h);
457
+ t(this, W).set(o, h);
460
458
  });
461
459
  const i = t(this, w).querySelector(".ng-container-body"), e = t(this, w).querySelector(".ng-container-left"), s = t(this, w).querySelector(".ng-container-right");
462
460
  if (i) {
463
461
  t(this, kt).call(this, i), t(this, bt).call(this), t(this, ft).call(this), t(this, st).call(this, i.scrollTop);
464
- let n = i.scrollTop;
465
- const r = /* @__PURE__ */ a((o) => {
462
+ let o = i.scrollTop;
463
+ const r = /* @__PURE__ */ a((n) => {
466
464
  var l;
467
- e && e.scrollTop !== o && (e.scrollTop = o), s && s.scrollTop !== o && (s.scrollTop = o), t(this, st).call(this, o), (l = t(this, w).querySelector("nine-table-vscrollbar")) == null || l.refresh();
465
+ e && e.scrollTop !== n && (e.scrollTop = n), s && s.scrollTop !== n && (s.scrollTop = n), t(this, st).call(this, n), (l = t(this, w).querySelector("nine-table-vscrollbar")) == null || l.refresh();
468
466
  }, "syncScroll");
469
467
  i.addEventListener("scroll", () => {
470
- const o = i.scrollTop;
471
- n !== o && (n = o, r(o));
468
+ const n = i.scrollTop;
469
+ o !== n && (o = n, r(n));
472
470
  });
473
471
  }
474
472
  }, "initialize"));
475
- c(this, Tt, /* @__PURE__ */ a((i, e) => {
473
+ c(this, qt, /* @__PURE__ */ a((i, e) => {
476
474
  const s = t(this, W).get(e);
477
475
  if (!s || s.length === 0) return;
478
- const n = i.querySelector("tbody.bindable-tbody");
479
- if (!n) return;
480
- n.querySelectorAll("tr:not(.nodata)").forEach((l) => l.remove());
481
- const r = n.querySelector("tr.nodata"), o = document.createDocumentFragment();
482
- for (let l = 0; l < t(this, N); l++)
476
+ const o = i.querySelector("tbody.bindable-tbody");
477
+ if (!o) return;
478
+ o.querySelectorAll("tr:not(.nodata)").forEach((l) => l.remove());
479
+ const r = o.querySelector("tr.nodata"), n = document.createDocumentFragment();
480
+ for (let l = 0; l < t(this, dt); l++)
483
481
  s.forEach((d) => {
484
- o.appendChild(d.cloneNode(!0));
482
+ n.appendChild(d.cloneNode(!0));
485
483
  });
486
- r ? r.before(o) : n.appendChild(o);
484
+ r ? r.before(n) : o.appendChild(n);
487
485
  }, "#renderRows"));
488
486
  c(this, kt, /* @__PURE__ */ a((i) => {
489
- if (t(this, q) !== null && t(this, q) > 0)
490
- return t(this, q);
487
+ if (t(this, T) !== null && t(this, T) > 0)
488
+ return t(this, T);
491
489
  const e = t(this, W).get(".ng-container-body");
492
490
  if (!e || e.length === 0) return 24;
493
491
  const s = i.querySelector("tbody.bindable-tbody") || i.querySelector("tbody.bindable-tbody:last-of-type");
494
492
  if (!s) return 24;
495
493
  s.querySelectorAll("tr:not(.nodata)").forEach((g) => g.remove());
496
- const n = s.querySelector("tr.nodata"), r = document.createDocumentFragment();
494
+ const o = s.querySelector("tr.nodata"), r = document.createDocumentFragment();
497
495
  e.forEach((g) => {
498
496
  r.appendChild(g.cloneNode(!0));
499
- }), n ? n.before(r) : s.appendChild(r);
500
- const o = t(this, w), l = o.style.display, d = o.style.visibility, h = o.style.position;
501
- (l === "none" || window.getComputedStyle(o).display === "none") && (o.style.display = "block", o.style.visibility = "hidden", o.style.position = "absolute");
497
+ }), o ? o.before(r) : s.appendChild(r);
498
+ const n = t(this, w), l = n.style.display, d = n.style.visibility, h = n.style.position;
499
+ (l === "none" || window.getComputedStyle(n).display === "none") && (n.style.display = "block", n.style.visibility = "hidden", n.style.position = "absolute");
502
500
  let f = 0;
503
501
  const u = s.querySelectorAll("tr:not(.nodata)");
504
502
  return u.forEach((g) => {
505
503
  f += g.offsetHeight || g.getBoundingClientRect().height;
506
- }), u.forEach((g) => g.remove()), o.style.display = l, o.style.visibility = d, o.style.position = h, b(this, q, f > 0 ? f : 24), t(this, ut).call(this), t(this, q);
504
+ }), u.forEach((g) => g.remove()), n.style.display = l, n.style.visibility = d, n.style.position = h, b(this, T, f > 0 ? f : 24), t(this, ut).call(this), t(this, T);
507
505
  }, "#measureAndCacheHeight"));
506
+ // 🎯 ν…Œμ΄λΈ” 높이λ₯Ό 직접 ν‚€μš°λŠ” λŒ€μ‹ , 투λͺ… μŠ€νŽ˜μ΄μ„œ 높이와 translateY둜 슀크둀/μœ„μΉ˜ 정립
508
507
  c(this, ft, /* @__PURE__ */ a(() => {
509
508
  if (!t(this, w).querySelector(".ng-container-body")) return;
510
- const s = (t(this, I).data.get() || []).length, n = t(this, q) || 24, r = s * n;
511
- [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((o) => {
512
- const l = t(this, w).querySelector(o);
509
+ const s = (t(this, I).data.get() || []).length, o = t(this, T) || 24, r = s * o;
510
+ [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((n) => {
511
+ const l = t(this, w).querySelector(n);
513
512
  if (!l) return;
514
513
  const d = l.querySelector("table");
515
- d && (d.style.height = "auto", d.style.minHeight = "auto");
514
+ d && (d.style.height = "auto");
516
515
  const h = l.querySelector(".ng-virtual-spacer");
517
516
  h && (h.style.height = `${r}px`);
518
517
  });
519
518
  }, "#updateVirtualScrollHeight"));
520
519
  c(this, ut, /* @__PURE__ */ a(() => {
521
- if ((t(this, I).data.get() || []).length, t(this, j) > 0 && t(this, q) > 0) {
522
- const e = Math.ceil(t(this, j) / t(this, q));
523
- b(this, N, e + t(this, qt)), P.log("visibleRows:", e, "cachedRowCount:", t(this, N));
520
+ if ((t(this, I).data.get() || []).length, t(this, K) > 0 && t(this, T) > 0) {
521
+ const e = Math.ceil(t(this, K) / t(this, T));
522
+ b(this, dt, e + t(this, Tt));
524
523
  }
525
524
  }, "#updateRowCount"));
526
525
  c(this, Lt, /* @__PURE__ */ a(() => {
527
526
  var d, h, f;
528
527
  const i = t(this, w).querySelector(".ng-container-left table"), e = t(this, w).querySelector(".ng-container-body table"), s = t(this, w).querySelector(".ng-container-right table");
529
528
  if (!e) return;
530
- const n = i ? Array.from(i.querySelectorAll("tr")) : [], r = Array.from(e.querySelectorAll("tr")), o = s ? Array.from(s.querySelectorAll("tr")) : [], l = Math.max(n.length, r.length, o.length);
529
+ const o = i ? Array.from(i.querySelectorAll("tr")) : [], r = Array.from(e.querySelectorAll("tr")), n = s ? Array.from(s.querySelectorAll("tr")) : [], l = Math.max(o.length, r.length, n.length);
531
530
  for (let u = 0; u < l; u++) {
532
531
  const g = [
533
- ((d = n[u]) == null ? void 0 : d.getBoundingClientRect().height) || 0,
532
+ ((d = o[u]) == null ? void 0 : d.getBoundingClientRect().height) || 0,
534
533
  ((h = r[u]) == null ? void 0 : h.getBoundingClientRect().height) || 0,
535
- ((f = o[u]) == null ? void 0 : f.getBoundingClientRect().height) || 0
534
+ ((f = n[u]) == null ? void 0 : f.getBoundingClientRect().height) || 0
536
535
  ], y = Math.max(...g);
537
- y > 0 && (n[u] && (n[u].style.height = `${y}px`), r[u] && (r[u].style.height = `${y}px`), o[u] && (o[u].style.height = `${y}px`));
536
+ y > 0 && (o[u] && (o[u].style.height = `${y}px`), r[u] && (r[u].style.height = `${y}px`), n[u] && (n[u].style.height = `${y}px`));
538
537
  }
539
538
  }, "#syncRowHeights"));
540
539
  c(this, Ct, /* @__PURE__ */ a(() => {
@@ -542,13 +541,13 @@ const ce = class ce {
542
541
  for (const e of i) {
543
542
  const s = e.target;
544
543
  if (!s.classList.contains("active")) continue;
545
- const n = e.contentRect.height;
546
- if (n > 0) {
544
+ const o = e.contentRect.height;
545
+ if (o > 0) {
547
546
  let r = 0;
548
- const o = s.querySelector("thead");
549
- o && (r += o.offsetHeight || o.getBoundingClientRect().height);
550
- const l = Math.max(n - r, 100);
551
- t(this, j) !== l && (b(this, j, l), t(this, ut).call(this), t(this, q) !== null && t(this, bt).call(this));
547
+ const n = s.querySelector("thead");
548
+ n && (r += n.offsetHeight || n.getBoundingClientRect().height);
549
+ const l = Math.max(o - r, 100);
550
+ t(this, K) !== l && (b(this, K, l), t(this, ut).call(this), t(this, T) !== null && t(this, bt).call(this));
552
551
  }
553
552
  }
554
553
  })), t(this, D).observe(t(this, w)));
@@ -556,7 +555,7 @@ const ce = class ce {
556
555
  c(this, bt, /* @__PURE__ */ a(() => {
557
556
  [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((i) => {
558
557
  const e = t(this, w).querySelector(i);
559
- e && e.querySelector("tbody.bindable-tbody") && t(this, Tt).call(this, e, i);
558
+ e && e.querySelector("tbody.bindable-tbody") && t(this, qt).call(this, e, i);
560
559
  }), t(this, Lt).call(this);
561
560
  }, "#renderAllContainers"));
562
561
  c(this, Ht, /* @__PURE__ */ a((i) => {
@@ -564,11 +563,11 @@ const ce = class ce {
564
563
  var h;
565
564
  const s = t(this, w).querySelector(e);
566
565
  if (!s) return;
567
- const n = s.querySelector("tbody.bindable-tbody");
568
- if (!n) return;
569
- const r = Array.from(n.querySelectorAll("tr:not(.nodata)")), o = ((h = t(this, W).get(e)) == null ? void 0 : h.length) || 1, d = (t(this, I).data.get() || []).length;
566
+ const o = s.querySelector("tbody.bindable-tbody");
567
+ if (!o) return;
568
+ const r = Array.from(o.querySelectorAll("tr:not(.nodata)")), n = ((h = t(this, W).get(e)) == null ? void 0 : h.length) || 1, d = (t(this, I).data.get() || []).length;
570
569
  r.forEach((f, u) => {
571
- const g = i + Math.floor(u / o);
570
+ const g = i + Math.floor(u / n);
572
571
  if (g >= d) {
573
572
  f.style.display = "none";
574
573
  return;
@@ -578,33 +577,36 @@ const ce = class ce {
578
577
  });
579
578
  });
580
579
  }, "#adjustBufferRows"));
580
+ // 🎯 scrollTop을 ν™œμš©ν•˜λ˜, ν…Œμ΄λΈ”μ΄ μŠ€ν¬λ‘€μ„ 따라가지 μ•Šκ³  translateY둜 μ •ν™•ν•œ μœ„μΉ˜μ— κ³ μ •λ˜λ„λ‘ 연동
581
581
  c(this, st, /* @__PURE__ */ a((i) => {
582
582
  var d;
583
- const e = t(this, q);
583
+ const e = t(this, T);
584
584
  if (!e || e <= 0) return;
585
- const n = (t(this, I).data.get() || []).length, r = Math.max(0, Math.floor(i / e)), o = ((d = t(this, W).get(".ng-container-body")) == null ? void 0 : d.length) || 1, l = r + t(this, N);
586
- P.log(`[Scroll] scrollTop: ${i}, startIndex: ${r}, cachedRowCount: ${t(this, N)}, targetDataIndex range: ${r} ~ ${l} (Total: ${n})`), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((h) => {
585
+ const o = (t(this, I).data.get() || []).length, r = Math.max(0, Math.floor(i / e)), n = r * e, l = ((d = t(this, W).get(".ng-container-body")) == null ? void 0 : d.length) || 1;
586
+ [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((h) => {
587
587
  const f = t(this, w).querySelector(h);
588
588
  if (!f) return;
589
- const u = f.querySelector("tbody.bindable-tbody");
590
- if (!u) return;
591
- Array.from(u.querySelectorAll("tr:not(.nodata)")).forEach((y, m) => {
592
- const S = r + Math.floor(m / o);
593
- if (S >= n) {
594
- y.style.display = "none";
589
+ const u = f.querySelector("table");
590
+ u && (u.style.transform = `translateY(${n}px)`);
591
+ const g = f.querySelector("tbody.bindable-tbody");
592
+ if (!g) return;
593
+ Array.from(g.querySelectorAll("tr:not(.nodata)")).forEach((m, A) => {
594
+ const z = r + Math.floor(A / l);
595
+ if (z >= o) {
596
+ m.style.display = "none";
595
597
  return;
596
598
  }
597
- const O = t(this, I).data.get(S);
598
- y.style.display = "", t(this, gt).call(this, y, O, S);
599
+ const Y = t(this, I).data.get(z);
600
+ m.style.display = "", t(this, gt).call(this, m, Y, z);
599
601
  });
600
602
  }), t(this, it) || (b(this, it, !0), setTimeout(() => {
601
603
  t(this, Ht).call(this, r), b(this, it, !1);
602
604
  }, 0));
603
605
  }, "#handleScroll"));
604
606
  c(this, gt, /* @__PURE__ */ a((i, e, s) => {
605
- i.dataset.row = s, Array.from(i.cells).forEach((n, r) => {
606
- const o = n.dataset.bind;
607
- o && e && e[o] !== void 0 ? n.textContent = e[o] : n.textContent = e ? e[Object.keys(e)[r]] ?? `R${s}C${r}` : `ν–‰ ${s + 1}`, n.dataset.row = s;
607
+ i.dataset.row = s, Array.from(i.cells).forEach((o, r) => {
608
+ const n = o.dataset.bind;
609
+ n && e && e[n] !== void 0 ? o.textContent = e[n] : o.textContent = e ? e[Object.keys(e)[r]] ?? `R${s}C${r}` : `ν–‰ ${s + 1}`, o.dataset.row = s;
608
610
  });
609
611
  }, "#bindRowData"));
610
612
  v(this, "destroy", /* @__PURE__ */ a(() => {
@@ -613,87 +615,80 @@ const ce = class ce {
613
615
  b(this, I, i.getRootNode().host), b(this, w, i), t(this, Ct).call(this);
614
616
  }
615
617
  getRowHeight() {
616
- return t(this, q);
618
+ return t(this, T);
617
619
  }
618
620
  templateLength(i = ".ng-container-body") {
619
621
  var e;
620
622
  return ((e = t(this, W).get(i)) == null ? void 0 : e.length) || 1;
621
623
  }
622
624
  };
623
- I = new WeakMap(), w = new WeakMap(), W = new WeakMap(), q = new WeakMap(), D = new WeakMap(), j = new WeakMap(), N = new WeakMap(), it = new WeakMap(), qt = new WeakMap(), Tt = new WeakMap(), kt = new WeakMap(), ft = new WeakMap(), ut = new WeakMap(), Lt = new WeakMap(), Ct = new WeakMap(), bt = new WeakMap(), Ht = new WeakMap(), st = new WeakMap(), gt = new WeakMap(), a(ce, "RowManager");
625
+ I = new WeakMap(), w = new WeakMap(), W = new WeakMap(), T = new WeakMap(), D = new WeakMap(), K = new WeakMap(), dt = new WeakMap(), it = new WeakMap(), Tt = new WeakMap(), qt = new WeakMap(), kt = new WeakMap(), ft = new WeakMap(), ut = new WeakMap(), Lt = new WeakMap(), Ct = new WeakMap(), bt = new WeakMap(), Ht = new WeakMap(), st = new WeakMap(), gt = new WeakMap(), a(ce, "RowManager");
624
626
  let Jt = ce;
625
- var Mt, nt, K, _t, $t, It, Wt, Ot;
626
- const ct = class ct extends HTMLElement {
627
+ var Mt, O, Z, _t, It, $t, Wt, Ot;
628
+ const at = class at extends HTMLElement {
627
629
  constructor() {
628
630
  super();
629
631
  c(this, Mt);
630
- c(this, nt, null);
631
- c(this, K);
632
- /**
633
- * data.set, add, delete
634
- * filter, sorting : κ³ λ €λŒ€μƒ
635
- */
632
+ c(this, O, null);
633
+ c(this, Z);
636
634
  v(this, "invalidate", /* @__PURE__ */ a(() => {
637
635
  var e, s;
638
- t(this, K).refresh(), (e = this.querySelector("nine-table-hscrollbar")) == null || e.refresh(), (s = this.querySelector("nine-table-vscrollbar")) == null || s.refresh();
636
+ t(this, Z).refresh(), (e = this.querySelector("nine-table-hscrollbar")) == null || e.refresh(), (s = this.querySelector("nine-table-vscrollbar")) == null || s.refresh();
639
637
  }, "invalidate"));
640
638
  c(this, _t, /* @__PURE__ */ a(() => {
641
639
  [
642
640
  { selector: ".ng-container-body", type: null },
643
641
  { selector: ".ng-container-left", type: "left" },
644
642
  { selector: ".ng-container-right", type: "right" }
645
- ].forEach(({ selector: s, type: n }) => {
643
+ ].forEach(({ selector: s, type: o }) => {
646
644
  const r = this.querySelector(s);
647
645
  if (!r) return;
648
- const o = t(this, It).call(this, t(this, nt), n);
646
+ const n = t(this, $t).call(this, t(this, O), o);
649
647
  r.innerHTML = "";
650
648
  const l = document.createElement("div");
651
- l.className = "ng-scroll-content", l.appendChild(o);
649
+ l.className = "ng-scroll-content", l.style.position = "relative", l.style.width = "100%", l.appendChild(n);
652
650
  const d = document.createElement("div");
653
- d.className = "ng-virtual-spacer", l.appendChild(d), r.appendChild(l);
651
+ d.className = "ng-virtual-spacer", d.style.width = "100%", d.style.pointerEvents = "none", l.appendChild(d), r.appendChild(l);
654
652
  });
655
653
  }, "#renderSplitContainers"));
656
- c(this, $t, /* @__PURE__ */ a(() => {
654
+ c(this, It, /* @__PURE__ */ a(() => {
657
655
  ["left", "right"].forEach((e) => {
658
- const s = this.querySelector(`.ng-container-${e}`), n = s == null ? void 0 : s.querySelector("table");
659
- if (!s || !n) return;
656
+ const s = this.querySelector(`.ng-container-${e}`), o = s == null ? void 0 : s.querySelector("table");
657
+ if (!s || !o) return;
660
658
  let r = 0;
661
- n.querySelectorAll("col").forEach((o) => {
662
- const l = parseInt(o.getAttribute("width"), 10);
659
+ o.querySelectorAll("col").forEach((n) => {
660
+ const l = parseInt(n.getAttribute("width"), 10);
663
661
  isNaN(r) || (r += l);
664
662
  }), s.style.flex = `0 0 ${r}px`, s.style.width = `${r}px`;
665
663
  });
666
664
  }, "#updateContainerWidths"));
667
665
  v(this, "generate", /* @__PURE__ */ a((e) => {
668
- e && (b(this, nt, Gt.compile(e)), t(this, nt).style.display = "table", t(this, _t).call(this), t(this, $t).call(this), requestAnimationFrame(() => {
669
- var n;
670
- const s = (n = this.querySelector("thead")) == null ? void 0 : n.getBoundingClientRect().height;
666
+ e && (b(this, O, Gt.compile(e)), t(this, O).style.display = "table", t(this, O).style.position = "absolute", t(this, O).style.left = "0", t(this, O).style.top = "0", t(this, _t).call(this), t(this, It).call(this), requestAnimationFrame(() => {
667
+ var o;
668
+ const s = (o = this.querySelector("thead")) == null ? void 0 : o.getBoundingClientRect().height;
671
669
  this.querySelectorAll("tbody.fixed-tbody").forEach((r) => {
672
670
  r.style.top = `${s}px`;
673
671
  });
674
- }), t(this, K).initialize(), setTimeout(() => {
672
+ }), t(this, Z).initialize(), setTimeout(() => {
675
673
  var s;
676
674
  (s = this.querySelector("nine-table-hscrollbar")) == null || s.refresh();
677
675
  }, 0));
678
676
  }, "generate"));
679
- /**
680
- * 🎯 λ§ˆμŠ€ν„° ν…Œμ΄λΈ”μ„ 기반으둜 νŠΉμ • fixed νƒ€μž… μ˜μ—­λ§Œ λ‚¨κΈ°λŠ” λΆ„ν•  헬퍼
681
- */
682
- c(this, It, /* @__PURE__ */ a((e, s) => {
683
- const n = e.cloneNode(!0), r = n.querySelector("tbody");
677
+ c(this, $t, /* @__PURE__ */ a((e, s) => {
678
+ const o = e.cloneNode(!0), r = o.querySelector("tbody");
684
679
  if (r) {
685
- const o = document.createElement("tbody");
686
- o.className = "fixed-tbody", r.className = "bindable-tbody", r.before(o);
680
+ const n = document.createElement("tbody");
681
+ n.className = "fixed-tbody", r.className = "bindable-tbody", r.before(n);
687
682
  }
688
- return s === "left" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((o) => {
689
- o.getAttribute("fixed") !== "left" && o.remove();
690
- }) : s === "right" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((o) => {
691
- o.getAttribute("fixed") !== "right" && o.remove();
692
- }) : n.querySelectorAll("[fixed=left], [fixed=right]").forEach((o) => {
693
- o.remove();
694
- }), n;
683
+ return s === "left" ? o.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((n) => {
684
+ n.getAttribute("fixed") !== "left" && n.remove();
685
+ }) : s === "right" ? o.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((n) => {
686
+ n.getAttribute("fixed") !== "right" && n.remove();
687
+ }) : o.querySelectorAll("[fixed=left], [fixed=right]").forEach((n) => {
688
+ n.remove();
689
+ }), o;
695
690
  }, "#createSplitTable"));
696
- v(this, "getRowHeight", /* @__PURE__ */ a(() => t(this, K).getRowHeight(), "getRowHeight"));
691
+ v(this, "getRowHeight", /* @__PURE__ */ a(() => t(this, Z).getRowHeight(), "getRowHeight"));
697
692
  v(this, "scrollToX", /* @__PURE__ */ a((e) => {
698
693
  const s = this.querySelector(".ng-container-body");
699
694
  s && (s.scrollLeft = e);
@@ -706,7 +701,7 @@ const ct = class ct extends HTMLElement {
706
701
  t(this, Ot).call(this);
707
702
  }, "#init"));
708
703
  c(this, Ot, /* @__PURE__ */ a(() => {
709
- const e = ct.SCROLLBAR_SIZE;
704
+ const e = at.SCROLLBAR_SIZE;
710
705
  this.innerHTML = `
711
706
  <style>
712
707
  nine-table-sheet {
@@ -745,6 +740,16 @@ const ct = class ct extends HTMLElement {
745
740
  scrollbar-width: none;
746
741
  &::-webkit-scrollbar { display: none; }
747
742
  }
743
+
744
+ nine-table-sheet thead {
745
+ position: sticky;
746
+ top: 0;
747
+ z-index: 3;
748
+ }
749
+ nine-table-sheet tbody.fixed-tbody {
750
+ position: sticky;
751
+ z-index: 4;
752
+ }
748
753
 
749
754
  nine-table-sheet .ng-container-body {
750
755
  display: flex;
@@ -769,18 +774,6 @@ const ct = class ct extends HTMLElement {
769
774
  scrollbar-width: none;
770
775
  &::-webkit-scrollbar { display: none; }
771
776
  }
772
-
773
- nine-table-sheet .ng-scroll-content {
774
- position: relative;
775
- width: 100%;
776
- height: auto;
777
- }
778
-
779
- nine-table-sheet .ng-virtual-spacer {
780
- width: 100%;
781
- visibility: hidden;
782
- pointer-events: none;
783
- }
784
777
 
785
778
  nine-table-sheet .ng-container-bottom {
786
779
  display: flex;
@@ -804,20 +797,8 @@ const ct = class ct extends HTMLElement {
804
797
  border-collapse: collapse;
805
798
  width: 100%;
806
799
  table-layout: fixed;
807
- position: relative;
808
800
  }
809
801
 
810
- nine-table-sheet thead {
811
- position: sticky;
812
- top: 0;
813
- z-index: 3;
814
- }
815
-
816
- nine-table-sheet tbody.fixed-tbody {
817
- position: sticky;
818
- z-index: 4;
819
- }
820
-
821
802
  nine-table-sheet th, nine-table-sheet td {
822
803
  box-sizing: border-box;
823
804
  overflow: hidden;
@@ -865,17 +846,17 @@ const ct = class ct extends HTMLElement {
865
846
  </div>
866
847
  `;
867
848
  }, "#render"));
868
- b(this, K, new Jt(this)), b(this, Mt, this.getRootNode().host);
849
+ b(this, Z, new Jt(this)), b(this, Mt, this.getRootNode().host);
869
850
  }
870
851
  connectedCallback() {
871
852
  t(this, Wt).call(this);
872
853
  }
873
854
  disconnectedCallback() {
874
- this.innerHTML = "", P.log("NineTableSheet destroyed.");
855
+ this.innerHTML = "", H.log("NineTableSheet destroyed.");
875
856
  }
876
857
  };
877
- Mt = new WeakMap(), nt = new WeakMap(), K = new WeakMap(), _t = new WeakMap(), $t = new WeakMap(), It = new WeakMap(), Wt = new WeakMap(), Ot = new WeakMap(), a(ct, "NineTableSheet"), v(ct, "SCROLLBAR_SIZE", 16);
878
- let wt = ct;
858
+ Mt = new WeakMap(), O = new WeakMap(), Z = new WeakMap(), _t = new WeakMap(), It = new WeakMap(), $t = new WeakMap(), Wt = new WeakMap(), Ot = new WeakMap(), a(at, "NineTableSheet"), v(at, "SCROLLBAR_SIZE", 16);
859
+ let wt = at;
879
860
  customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", wt);
880
861
  var zt, yt;
881
862
  const he = class he extends HTMLElement {
@@ -884,21 +865,21 @@ const he = class he extends HTMLElement {
884
865
  c(this, zt, /* @__PURE__ */ a(() => {
885
866
  var e;
886
867
  (e = this.querySelector(".nine-tab-bar")) == null || e.addEventListener("click", (s) => {
887
- var o;
888
- const n = s.ctrlKey || s.metaKey || s.shiftKey, r = parseInt((o = s.target.closest(".nine-tab-item")) == null ? void 0 : o.dataset.index, 10);
889
- t(this, yt).call(this, r, n);
868
+ var n;
869
+ const o = s.ctrlKey || s.metaKey || s.shiftKey, r = parseInt((n = s.target.closest(".nine-tab-item")) == null ? void 0 : n.dataset.index, 10);
870
+ t(this, yt).call(this, r, o);
890
871
  }), t(this, yt).call(this, 0, !1);
891
872
  }, "#init"));
892
873
  c(this, yt, /* @__PURE__ */ a((e, s = !1) => {
893
- const n = /* @__PURE__ */ a(() => {
874
+ const o = /* @__PURE__ */ a(() => {
894
875
  const f = Array.from(this.querySelectorAll("nine-table-sheet"));
895
876
  Array.from(this.querySelectorAll("nine-splitter")).forEach((y) => y.style.setProperty("display", "none"));
896
877
  const g = f.filter((y) => y.classList.contains("active"));
897
878
  g.length < 2 || g.forEach((y) => {
898
- const m = parseInt(y.getAttribute("data-index"), 10), S = this.querySelector(`nine-splitter[data-split-index="${m}"]`), O = f[m + 1];
899
- S && O && O.classList.contains("active") && S.style.setProperty("display", "flex");
879
+ const m = parseInt(y.getAttribute("data-index"), 10), A = this.querySelector(`nine-splitter[data-split-index="${m}"]`), z = f[m + 1];
880
+ A && z && z.classList.contains("active") && A.style.setProperty("display", "flex");
900
881
  });
901
- }, "updateSplitters"), r = this.querySelector(".nine-tab-bar"), o = this.querySelector("nine-table-sheets-body"), l = r.querySelectorAll(".nine-tab-item"), d = o.querySelectorAll("nine-table-sheet");
882
+ }, "updateSplitters"), r = this.querySelector(".nine-tab-bar"), n = this.querySelector("nine-table-sheets-body"), l = r.querySelectorAll(".nine-tab-item"), d = n.querySelectorAll("nine-table-sheet");
902
883
  if (!l[e]) return;
903
884
  if (!s)
904
885
  l.forEach((f, u) => {
@@ -912,13 +893,13 @@ const he = class he extends HTMLElement {
912
893
  if (f.classList.contains("active") && u.length <= 1)
913
894
  return;
914
895
  f.classList.toggle("active");
915
- const g = o.querySelector(`nine-table-sheet[data-index="${e}"]`);
896
+ const g = n.querySelector(`nine-table-sheet[data-index="${e}"]`);
916
897
  g && (g.classList.toggle("active"), g.classList.contains("active") || (g.style.flex = ""));
917
898
  }
918
- const h = o.querySelectorAll("nine-table-sheet.active");
899
+ const h = n.querySelectorAll("nine-table-sheet.active");
919
900
  h == null || h.forEach((f) => {
920
901
  f.style.flex = h.length > 1 ? "1 1 0%" : "1 1 100%";
921
- }), n();
902
+ }), o();
922
903
  }, "#switchSheet"));
923
904
  }
924
905
  connectedCallback() {
@@ -928,29 +909,29 @@ const he = class he extends HTMLElement {
928
909
  zt = new WeakMap(), yt = new WeakMap(), a(he, "NineTableSheets");
929
910
  let Qt = he;
930
911
  customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", Qt);
931
- var T, Dt, pt, Nt;
912
+ var q, Nt, pt, Bt;
932
913
  const de = class de {
933
914
  constructor(i) {
934
- c(this, T);
935
- c(this, Dt, /* @__PURE__ */ a(() => {
936
- t(this, Nt).call(this), new ResizeObserver((i) => {
915
+ c(this, q);
916
+ c(this, Nt, /* @__PURE__ */ a(() => {
917
+ t(this, Bt).call(this), new ResizeObserver((i) => {
937
918
  for (let e of i)
938
- t(this, T).getAttribute("auto-height") === "true" && t(this, pt).call(this);
939
- }).observe(t(this, T));
919
+ t(this, q).getAttribute("auto-height") === "true" && t(this, pt).call(this);
920
+ }).observe(t(this, q));
940
921
  }, "#init"));
941
922
  c(this, pt, /* @__PURE__ */ a(() => {
942
923
  var d, h;
943
- const i = Array.from(t(this, T).shadowRoot.querySelectorAll("nine-table-sheet.active"));
924
+ const i = Array.from(t(this, q).shadowRoot.querySelectorAll("nine-table-sheet.active"));
944
925
  if (i.length === 0) return;
945
- const e = parseInt(t(this, T).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), n = (d = t(this, T).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : d.getBoundingClientRect().height, r = (h = t(this, T).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : h.getBoundingClientRect().height, o = wt.SCROLLBAR_SIZE, l = e * s + n + r + o;
946
- t(this, T).style.height = `${l}px`;
926
+ const e = parseInt(t(this, q).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), o = (d = t(this, q).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : d.getBoundingClientRect().height, r = (h = t(this, q).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : h.getBoundingClientRect().height, n = wt.SCROLLBAR_SIZE, l = e * s + o + r + n;
927
+ t(this, q).style.height = `${l}px`;
947
928
  }, "#applyAutoHeight"));
948
- c(this, Nt, /* @__PURE__ */ a(() => {
949
- const e = Array.from(t(this, T).children).filter((d) => d.tagName === "TABLE"), s = t(this, T).getAttribute("auto-height") === "true", n = e.length, r = e.map((d, h) => {
950
- const u = `<nine-table-sheet class="${h === 0 ? "active" : ""}" data-index="${h}"></nine-table-sheet>`, g = h < n - 1 ? `<nine-splitter class="h" data-split-index="${h}"></nine-splitter>` : "";
929
+ c(this, Bt, /* @__PURE__ */ a(() => {
930
+ const e = Array.from(t(this, q).children).filter((d) => d.tagName === "TABLE"), s = t(this, q).getAttribute("auto-height") === "true", o = e.length, r = e.map((d, h) => {
931
+ const u = `<nine-table-sheet class="${h === 0 ? "active" : ""}" data-index="${h}"></nine-table-sheet>`, g = h < o - 1 ? `<nine-splitter class="h" data-split-index="${h}"></nine-splitter>` : "";
951
932
  return u + g;
952
- }).join(""), o = e.map((d, h) => `<div class="nine-tab-item ${h === 0 ? "active" : ""}" data-index="${h}">Sheet ${h + 1}</div>`).join("");
953
- t(this, T).shadowRoot.innerHTML = `
933
+ }).join(""), n = e.map((d, h) => `<div class="nine-tab-item ${h === 0 ? "active" : ""}" data-index="${h}">Sheet ${h + 1}</div>`).join("");
934
+ t(this, q).shadowRoot.innerHTML = `
954
935
  <style>
955
936
  :host {
956
937
  display: flex;
@@ -1033,7 +1014,7 @@ const de = class de {
1033
1014
  <nine-table-sheets>
1034
1015
  <nine-table-sheets-body>${r}</nine-table-sheets-body>
1035
1016
  <nine-table-sheets-footer>
1036
- <div class="nine-tab-bar">${o}</div>
1017
+ <div class="nine-tab-bar">${n}</div>
1037
1018
  <div class="sheets-counter">Total : <span id="row-count">0</span></div>
1038
1019
  </nine-table-sheets-footer>
1039
1020
  </nine-table-sheets>
@@ -1041,56 +1022,56 @@ const de = class de {
1041
1022
  </nine-table-body>
1042
1023
  <nine-table-footer></nine-table-footer>
1043
1024
  `;
1044
- const l = t(this, T).shadowRoot.querySelectorAll("nine-table-sheet");
1025
+ const l = t(this, q).shadowRoot.querySelectorAll("nine-table-sheet");
1045
1026
  l == null || l.forEach((d, h) => {
1046
1027
  e[h] && setTimeout(() => {
1047
1028
  d.generate(e[h]), s && t(this, pt).call(this);
1048
1029
  });
1049
1030
  });
1050
1031
  }, "#render"));
1051
- b(this, T, i), t(this, Dt).call(this);
1032
+ b(this, q, i), t(this, Nt).call(this);
1052
1033
  }
1053
1034
  };
1054
- T = new WeakMap(), Dt = new WeakMap(), pt = new WeakMap(), Nt = new WeakMap(), a(de, "LayoutManager");
1035
+ q = new WeakMap(), Nt = new WeakMap(), pt = new WeakMap(), Bt = new WeakMap(), a(de, "LayoutManager");
1055
1036
  let te = de;
1056
- var mt, ot;
1037
+ var mt, nt;
1057
1038
  const fe = class fe {
1058
1039
  constructor(i) {
1059
1040
  c(this, mt);
1060
- c(this, ot, -1);
1041
+ c(this, nt, -1);
1061
1042
  v(this, "count", /* @__PURE__ */ a(() => t(this, mt).rawRecords.length, "count"));
1062
1043
  b(this, mt, i);
1063
1044
  }
1064
1045
  get at() {
1065
- return t(this, ot);
1046
+ return t(this, nt);
1066
1047
  }
1067
1048
  set at(i) {
1068
- b(this, ot, parseInt(i, 10)), body && !body.querySelector(`tbody.bindable tr[data-row="${t(this, ot)}"]`) && setTimeout(() => {
1049
+ b(this, nt, parseInt(i, 10)), body && !body.querySelector(`tbody.bindable tr[data-row="${t(this, nt)}"]`) && setTimeout(() => {
1069
1050
  });
1070
1051
  }
1071
1052
  };
1072
- mt = new WeakMap(), ot = new WeakMap(), a(fe, "ngRow");
1053
+ mt = new WeakMap(), nt = new WeakMap(), a(fe, "ngRow");
1073
1054
  let ee = fe;
1074
- var k, R, L, rt, Bt, B, Pt, Z, xt, Yt, Vt, lt;
1055
+ var k, E, L, ot, Dt, P, Pt, G, xt, Yt, Vt, rt;
1075
1056
  const C = class C {
1076
1057
  constructor(i, e) {
1077
1058
  c(this, k);
1078
- c(this, R);
1059
+ c(this, E);
1079
1060
  c(this, L, []);
1080
- c(this, rt, []);
1081
- c(this, Bt, 0);
1082
- c(this, B, []);
1061
+ c(this, ot, []);
1062
+ c(this, Dt, 0);
1063
+ c(this, P, []);
1083
1064
  c(this, Pt, /* @__PURE__ */ a(() => {
1084
- b(this, B, []);
1065
+ b(this, P, []);
1085
1066
  const i = t(this, k).template || [];
1086
1067
  Array.from(i).forEach((e) => {
1087
1068
  var s;
1088
- t(this, B).push(((s = e.getBoundingClientRect) == null ? void 0 : s.call(e).height) || 24);
1089
- }), (t(this, R).rawRecords || []).forEach((e) => {
1090
- e.__ng || (e.__ng = t(this, xt).call(this)), e.__ng.height = t(this, B).slice();
1069
+ t(this, P).push(((s = e.getBoundingClientRect) == null ? void 0 : s.call(e).height) || 24);
1070
+ }), (t(this, E).rawRecords || []).forEach((e) => {
1071
+ e.__ng || (e.__ng = t(this, xt).call(this)), e.__ng.height = t(this, P).slice();
1091
1072
  });
1092
1073
  }, "#initialize"));
1093
- c(this, Z, /* @__PURE__ */ a(() => {
1074
+ c(this, G, /* @__PURE__ */ a(() => {
1094
1075
  t(this, k).shadowRoot.querySelectorAll("nine-table-sheet").forEach((i) => {
1095
1076
  i.invalidate();
1096
1077
  });
@@ -1099,43 +1080,43 @@ const C = class C {
1099
1080
  var r;
1100
1081
  const s = this.getValidData();
1101
1082
  if (!s || s.length <= 0) return;
1102
- if (i == null) return t(this, lt).call(this, s);
1083
+ if (i == null) return t(this, rt).call(this, s);
1103
1084
  if (i < 0 || i >= s.length) return null;
1104
- const n = typeof ((r = t(this, k).fields) == null ? void 0 : r.get) == "function" ? t(this, k).fields.get() : [];
1085
+ const o = typeof ((r = t(this, k).fields) == null ? void 0 : r.get) == "function" ? t(this, k).fields.get() : [];
1105
1086
  if (e != null) {
1106
- const o = n.indexOf(e);
1107
- return o >= 0 ? s[i].v[o] : null;
1087
+ const n = o.indexOf(e);
1088
+ return n >= 0 ? s[i].v[n] : null;
1108
1089
  }
1109
- return t(this, lt).call(this, s[i]);
1090
+ return t(this, rt).call(this, s[i]);
1110
1091
  }, "get"));
1111
1092
  v(this, "set", /* @__PURE__ */ a((i) => {
1112
- this.clear(), this.add(i, !1), t(this, Z).call(this);
1093
+ this.clear(), this.add(i, !1), t(this, G).call(this);
1113
1094
  }, "set"));
1114
1095
  c(this, xt, /* @__PURE__ */ a(() => ({
1115
1096
  rowState: C.ROW_STATE.EMPTY,
1116
1097
  deleted: !1,
1117
1098
  filtered: !1,
1118
- height: t(this, B).slice(),
1099
+ height: t(this, P).slice(),
1119
1100
  o: {},
1120
1101
  c: {},
1121
- _: [0, 0, 0, 0, C.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, B).slice(), -1, {}, {}]
1102
+ _: [0, 0, 0, 0, C.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, P).slice(), -1, {}, {}]
1122
1103
  }), "#getDefaultMeta"));
1123
1104
  v(this, "reset", /* @__PURE__ */ a(() => {
1124
- b(this, L, []), b(this, rt, []), t(this, Z).call(this);
1105
+ b(this, L, []), b(this, ot, []), t(this, G).call(this);
1125
1106
  }, "reset"));
1126
1107
  v(this, "clear", /* @__PURE__ */ a(() => {
1127
1108
  var i;
1128
- t(this, R).rawRecords = [], b(this, L, []), b(this, rt, []), (i = t(this, R).viewRecords) != null && i.reset && t(this, R).viewRecords.reset();
1109
+ t(this, E).rawRecords = [], b(this, L, []), b(this, ot, []), (i = t(this, E).viewRecords) != null && i.reset && t(this, E).viewRecords.reset();
1129
1110
  }, "clear"));
1130
1111
  c(this, Yt, /* @__PURE__ */ a((i) => {
1131
- var n;
1112
+ var o;
1132
1113
  Array.isArray(i) || (i = [i]);
1133
- const e = typeof ((n = t(this, k).fields) == null ? void 0 : n.get) == "function" ? t(this, k).fields.get() : Object.keys(i[0] || {}), s = [];
1114
+ const e = typeof ((o = t(this, k).fields) == null ? void 0 : o.get) == "function" ? t(this, k).fields.get() : Object.keys(i[0] || {}), s = [];
1134
1115
  return i.forEach((r) => {
1135
- const o = { v: [] };
1116
+ const n = { v: [] };
1136
1117
  e.forEach((l) => {
1137
- o.v.push(r[l] !== void 0 && r[l] !== null ? r[l] : "");
1138
- }), s.push(o);
1118
+ n.v.push(r[l] !== void 0 && r[l] !== null ? r[l] : "");
1119
+ }), s.push(n);
1139
1120
  }), s;
1140
1121
  }, "#json2Array"));
1141
1122
  c(this, Vt, /* @__PURE__ */ a((i) => (Array.isArray(i) || (i = [i]), i.forEach((e) => {
@@ -1144,64 +1125,64 @@ const C = class C {
1144
1125
  v(this, "add", /* @__PURE__ */ a((i, e = !0) => {
1145
1126
  i === void 0 && (i = {});
1146
1127
  const s = t(this, Yt).call(this, i);
1147
- t(this, R).rawRecords = t(this, R).rawRecords.concat(t(this, Vt).call(this, s)), this.resetRecords();
1148
- const n = this.count() - 1;
1149
- return e || s.forEach((r, o) => {
1150
- const l = t(this, R).rawRecords[n - o];
1128
+ t(this, E).rawRecords = t(this, E).rawRecords.concat(t(this, Vt).call(this, s)), this.resetRecords();
1129
+ const o = this.count() - 1;
1130
+ return e || s.forEach((r, n) => {
1131
+ const l = t(this, E).rawRecords[o - n];
1151
1132
  l && (l.__ng.rowState = C.ROW_STATE.EMPTY);
1152
- }), t(this, Z).call(this), n;
1133
+ }), t(this, G).call(this), o;
1153
1134
  }, "add"));
1154
1135
  v(this, "delete", /* @__PURE__ */ a((i) => {
1155
1136
  let e = [];
1156
- Array.isArray(i) ? e = i : typeof i > "u" ? e = [t(this, R).host.row.at] : e = [parseInt(i, 10)], e.sort((s, n) => n - s).forEach((s) => {
1137
+ Array.isArray(i) ? e = i : typeof i > "u" ? e = [t(this, E).host.row.at] : e = [parseInt(i, 10)], e.sort((s, o) => o - s).forEach((s) => {
1157
1138
  if (t(this, L)[s]) {
1158
- const n = t(this, L)[s].__ng.rowid;
1159
- t(this, L)[s].__ng.rowState === C.ROW_STATE.INSERT ? t(this, R).rawRecords = t(this, R).rawRecords.filter((r) => r.__ng.rowid !== n) : t(this, R).rawRecords.forEach((r) => {
1160
- r.__ng.rowid === n && (r.__ng.deleted = !0, r.__ng.rowState = C.ROW_STATE.DELETE);
1139
+ const o = t(this, L)[s].__ng.rowid;
1140
+ t(this, L)[s].__ng.rowState === C.ROW_STATE.INSERT ? t(this, E).rawRecords = t(this, E).rawRecords.filter((r) => r.__ng.rowid !== o) : t(this, E).rawRecords.forEach((r) => {
1141
+ r.__ng.rowid === o && (r.__ng.deleted = !0, r.__ng.rowState = C.ROW_STATE.DELETE);
1161
1142
  });
1162
1143
  }
1163
- }), this.resetRecords(), t(this, Z).call(this);
1144
+ }), this.resetRecords(), t(this, G).call(this);
1164
1145
  }, "delete"));
1165
1146
  v(this, "setValue", /* @__PURE__ */ a((i, e, s) => {
1166
1147
  var d;
1167
1148
  i = parseInt(i, 10);
1168
1149
  const r = (typeof ((d = t(this, k).fields) == null ? void 0 : d.get) == "function" ? t(this, k).fields.get() : []).indexOf(e);
1169
1150
  if (r < 0) return;
1170
- const o = this.getValidData()[i];
1171
- if (!o) return;
1172
- const l = o.v[r];
1173
- l !== s && o.__ng.rowState !== C.ROW_STATE.INSERT && (o.__ng.o.hasOwnProperty(e) || (o.__ng.o[e] = l), o.__ng.rowState = C.ROW_STATE.UPDATE), o.v[r] = s;
1151
+ const n = this.getValidData()[i];
1152
+ if (!n) return;
1153
+ const l = n.v[r];
1154
+ l !== s && n.__ng.rowState !== C.ROW_STATE.INSERT && (n.__ng.o.hasOwnProperty(e) || (n.__ng.o[e] = l), n.__ng.rowState = C.ROW_STATE.UPDATE), n.v[r] = s;
1174
1155
  }, "setValue"));
1175
1156
  v(this, "resetRecords", /* @__PURE__ */ a(() => {
1176
- b(this, rt, t(this, R).rawRecords.filter((i) => !i.__ng.deleted)), b(this, L, t(this, R).rawRecords.filter((i) => !i.__ng.deleted && !i.__ng.filtered)), t(this, R).rawRecords.forEach((i, e) => {
1157
+ b(this, ot, t(this, E).rawRecords.filter((i) => !i.__ng.deleted)), b(this, L, t(this, E).rawRecords.filter((i) => !i.__ng.deleted && !i.__ng.filtered)), t(this, E).rawRecords.forEach((i, e) => {
1177
1158
  i.__ng.rowidx = e;
1178
1159
  }), t(this, L).forEach((i, e) => {
1179
1160
  i.__ng.i = e;
1180
1161
  });
1181
1162
  }, "resetRecords"));
1182
- v(this, "getValidData", /* @__PURE__ */ a(() => (t(this, L).length === 0 && t(this, R).rawRecords.length > 0 && this.resetRecords(), t(this, L)), "getValidData"));
1183
- c(this, lt, /* @__PURE__ */ a((i) => {
1184
- var o;
1163
+ v(this, "getValidData", /* @__PURE__ */ a(() => (t(this, L).length === 0 && t(this, E).rawRecords.length > 0 && this.resetRecords(), t(this, L)), "getValidData"));
1164
+ c(this, rt, /* @__PURE__ */ a((i) => {
1165
+ var n;
1185
1166
  if (!i) return i;
1186
- const e = !Array.isArray(i), s = e ? [i] : i, n = typeof ((o = t(this, k).fields) == null ? void 0 : o.get) == "function" ? t(this, k).fields.get() : [], r = s.filter((l) => !l.__ng.deleted).map((l) => {
1167
+ const e = !Array.isArray(i), s = e ? [i] : i, o = typeof ((n = t(this, k).fields) == null ? void 0 : n.get) == "function" ? t(this, k).fields.get() : [], r = s.filter((l) => !l.__ng.deleted).map((l) => {
1187
1168
  const d = {};
1188
- return n.forEach((h, f) => {
1169
+ return o.forEach((h, f) => {
1189
1170
  d[h] = l.v ? l.v[f] : l[h];
1190
1171
  }), d.__ng = l.__ng, d;
1191
1172
  });
1192
1173
  return e ? r[0] : r;
1193
1174
  }, "#conv"));
1194
1175
  v(this, "count", /* @__PURE__ */ a(() => this.getValidData().length, "count"));
1195
- b(this, k, i), b(this, R, e), t(this, Pt).call(this);
1176
+ b(this, k, i), b(this, E, e), t(this, Pt).call(this);
1196
1177
  }
1197
1178
  get source() {
1198
- return t(this, lt).call(this, t(this, R).rawRecords);
1179
+ return t(this, rt).call(this, t(this, E).rawRecords);
1199
1180
  }
1200
1181
  set source(i) {
1201
1182
  this.clear(), this.add(i, !1);
1202
1183
  }
1203
1184
  get nextId() {
1204
- return ++ve(this, Bt)._;
1185
+ return ++ve(this, Dt)._;
1205
1186
  }
1206
1187
  get length() {
1207
1188
  return t(this, L).length;
@@ -1210,7 +1191,7 @@ const C = class C {
1210
1191
  return this.length;
1211
1192
  }
1212
1193
  };
1213
- k = new WeakMap(), R = new WeakMap(), L = new WeakMap(), rt = new WeakMap(), Bt = new WeakMap(), B = new WeakMap(), Pt = new WeakMap(), Z = new WeakMap(), xt = new WeakMap(), Yt = new WeakMap(), Vt = new WeakMap(), lt = new WeakMap(), a(C, "ngData"), // 🎯 ν–‰ μƒνƒœ μ •μ˜ μƒμˆ˜λ₯Ό 클래슀 λ‚΄λΆ€λ‘œ λ‚΄μž¬ν™”
1194
+ k = new WeakMap(), E = new WeakMap(), L = new WeakMap(), ot = new WeakMap(), Dt = new WeakMap(), P = new WeakMap(), Pt = new WeakMap(), G = new WeakMap(), xt = new WeakMap(), Yt = new WeakMap(), Vt = new WeakMap(), rt = new WeakMap(), a(C, "ngData"), // 🎯 ν–‰ μƒνƒœ μ •μ˜ μƒμˆ˜λ₯Ό 클래슀 λ‚΄λΆ€λ‘œ λ‚΄μž¬ν™”
1214
1195
  v(C, "ROW_STATE", {
1215
1196
  EMPTY: "EMPTY",
1216
1197
  NORMAL: "NORMAL",
@@ -1219,71 +1200,71 @@ v(C, "ROW_STATE", {
1219
1200
  DELETE: "DELETE"
1220
1201
  });
1221
1202
  let ie = C;
1222
- var G;
1203
+ var J;
1223
1204
  const ue = class ue {
1224
1205
  constructor(i) {
1225
- c(this, G);
1226
- b(this, G, i), this.row = new ee(this), this.data = new ie(t(this, G), this), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.pageCnt = 25, this.viewRecords.reset = () => {
1206
+ c(this, J);
1207
+ b(this, J, i), this.row = new ee(this), this.data = new ie(t(this, J), this), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.pageCnt = 25, this.viewRecords.reset = () => {
1227
1208
  var e;
1228
- (e = t(this, G).view) != null && e.redraw && t(this, G).view.redraw();
1209
+ (e = t(this, J).view) != null && e.redraw && t(this, J).view.redraw();
1229
1210
  }, this.setDataSource = (e) => {
1230
1211
  this.data && this.data.reset(), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.data.set(e || []);
1231
1212
  }, this.getRowState = (e) => {
1232
- var n, r;
1213
+ var o, r;
1233
1214
  const s = parseInt(e, 10);
1234
1215
  if (!(s >= this.data.count()))
1235
- return (r = (n = this.data.getValidData()[s]) == null ? void 0 : n.__ng) == null ? void 0 : r.rowState;
1216
+ return (r = (o = this.data.getValidData()[s]) == null ? void 0 : o.__ng) == null ? void 0 : r.rowState;
1236
1217
  }, this.getRowPosition = () => this.row.at, this.setRowPosition = (e) => {
1237
1218
  this.row.at = e;
1238
- }, this.scrollTo_V1 = (e) => (e < 0 && (e = 0), e >= this.rawRecords.length && (e = this.rawRecords.length - 1), this.viewRecords.rawIndex = e, this.viewRecords.reset && this.viewRecords.reset(), !(e <= 0 || e >= this.rawRecords.length - 1)), this.getColumn = (e, s) => this.data.get(e, s), this.setColumn = (e, s, n) => {
1239
- e = parseInt(e, 10), this.data.setValue(e, s, n);
1219
+ }, this.scrollTo_V1 = (e) => (e < 0 && (e = 0), e >= this.rawRecords.length && (e = this.rawRecords.length - 1), this.viewRecords.rawIndex = e, this.viewRecords.reset && this.viewRecords.reset(), !(e <= 0 || e >= this.rawRecords.length - 1)), this.getColumn = (e, s) => this.data.get(e, s), this.setColumn = (e, s, o) => {
1220
+ e = parseInt(e, 10), this.data.setValue(e, s, o);
1240
1221
  }, this.setDataSource([]);
1241
1222
  }
1242
1223
  };
1243
- G = new WeakMap(), a(ue, "ngDataManager");
1224
+ J = new WeakMap(), a(ue, "ngDataManager");
1244
1225
  let se = ue;
1245
- var at, A, vt, Xt;
1226
+ var lt, R, vt, Xt;
1246
1227
  const be = class be {
1247
1228
  // 🎯 이제 { name: string, type: string } κ°μ²΄λ“€μ˜ λ°°μ—΄λ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€.
1248
1229
  constructor(i) {
1249
- c(this, at);
1250
- c(this, A, []);
1230
+ c(this, lt);
1231
+ c(this, R, []);
1251
1232
  v(this, "add", /* @__PURE__ */ a((i, e = "string") => {
1252
1233
  i.forEach((s) => {
1253
- t(this, A).some((n) => n.name === s) || t(this, A).push({ name: s, type: e });
1234
+ t(this, R).some((o) => o.name === s) || t(this, R).push({ name: s, type: e });
1254
1235
  }), t(this, vt).call(this);
1255
1236
  }, "add"));
1256
1237
  c(this, vt, /* @__PURE__ */ a(() => {
1257
1238
  const i = /* @__PURE__ */ new Map();
1258
- t(this, A).forEach((e) => {
1239
+ t(this, R).forEach((e) => {
1259
1240
  i.set(e.name, e.type);
1260
- }), b(this, A, Array.from(i, ([e, s]) => ({ name: e, type: s }))), b(this, A, t(this, A).filter((e) => e.name !== "" && e.name !== "__ng")), t(this, A).sort((e, s) => e.name.length < s.name.length ? 1 : -1);
1241
+ }), b(this, R, Array.from(i, ([e, s]) => ({ name: e, type: s }))), b(this, R, t(this, R).filter((e) => e.name !== "" && e.name !== "__ng")), t(this, R).sort((e, s) => e.name.length < s.name.length ? 1 : -1);
1261
1242
  }, "#adjust"));
1262
1243
  c(this, Xt, /* @__PURE__ */ a(() => {
1263
- b(this, A, []), P.log(t(this, at).querySelectorAll("table"));
1264
- const i = Array.from(t(this, at).querySelectorAll("table"));
1244
+ b(this, R, []), H.log(t(this, lt).querySelectorAll("table"));
1245
+ const i = Array.from(t(this, lt).querySelectorAll("table"));
1265
1246
  if (!(!i || i.length === 0)) {
1266
1247
  for (const e of i)
1267
- P.log(e), $("[data-bind]", e).each((s, n) => {
1268
- const r = n.dataset.bind, o = n.getAttribute("data-type") || "string";
1269
- r && t(this, A).push({ name: r, type: o });
1248
+ H.log(e), $("[data-bind]", e).each((s, o) => {
1249
+ const r = o.dataset.bind, n = o.getAttribute("data-type") || "string";
1250
+ r && t(this, R).push({ name: r, type: n });
1270
1251
  }), ["data-expr", "background-color", "color", "tooltip", "visible", "readonly", "enable-button", "enable-check", "class-expr", "icon-color", "icon-src"].forEach((s) => {
1271
- $(`[${s}]`, e).each((n, r) => {
1272
- var o = r.getAttribute(s);
1273
- if (o.indexOf("data.") < 0) {
1274
- const l = o.search(/[(]/g);
1252
+ $(`[${s}]`, e).each((o, r) => {
1253
+ var n = r.getAttribute(s);
1254
+ if (n.indexOf("data.") < 0) {
1255
+ const l = n.search(/[(]/g);
1275
1256
  if (l > 0)
1276
1257
  try {
1277
- o = String(window[o.substring(0, l).trim()]);
1258
+ n = String(window[n.substring(0, l).trim()]);
1278
1259
  } catch {
1279
- o = "";
1260
+ n = "";
1280
1261
  }
1281
1262
  }
1282
- o.split("data.").forEach((l) => {
1263
+ n.split("data.").forEach((l) => {
1283
1264
  if (l.trim() != "") {
1284
1265
  const d = l.search(/[^_A-Za-z0-9]/g);
1285
1266
  let h = "";
1286
- d >= 0 ? h = l.substring(0, d) : o.startsWith("data.") && (h = l.replace("data.", "")), h && t(this, A).push({ name: h, type: "string" });
1267
+ d >= 0 ? h = l.substring(0, d) : n.startsWith("data.") && (h = l.replace("data.", "")), h && t(this, R).push({ name: h, type: "string" });
1287
1268
  }
1288
1269
  });
1289
1270
  });
@@ -1291,62 +1272,62 @@ const be = class be {
1291
1272
  t(this, vt).call(this);
1292
1273
  }
1293
1274
  }, "#init"));
1294
- b(this, at, i), t(this, Xt).call(this);
1275
+ b(this, lt, i), t(this, Xt).call(this);
1295
1276
  }
1296
1277
  // 🎯 기쑴에 ν•„λ“œ μ΄λ¦„λ§Œ μ“°λ˜ κ³³λ“€κ³Όμ˜ ν˜Έν™˜μ„ μœ„ν•΄ 이름 λ°°μ—΄λ§Œ λ¦¬ν„΄ν•˜λŠ” λ©”μ„œλ“œ μœ μ§€
1297
1278
  get() {
1298
- return t(this, A).map((i) => i.name);
1279
+ return t(this, R).map((i) => i.name);
1299
1280
  }
1300
1281
  // 🎯 λ‚΄λΆ€ 객체 ν†΅μ§Έλ‘œ μ–»κΈ°
1301
1282
  getFields() {
1302
- return t(this, A);
1283
+ return t(this, R);
1303
1284
  }
1304
1285
  // 🎯 νŠΉμ • ν•„λ“œμ˜ 데이터 νƒ€μž… 쑰회
1305
1286
  getType(i) {
1306
- const e = t(this, A).find((s) => s.name === i);
1287
+ const e = t(this, R).find((s) => s.name === i);
1307
1288
  return e ? e.type : "string";
1308
1289
  }
1309
1290
  indexOf(i) {
1310
- return t(this, A).findIndex((e) => e.name === i);
1291
+ return t(this, R).findIndex((e) => e.name === i);
1311
1292
  }
1312
1293
  includes(i) {
1313
- return t(this, A).some((e) => e.name === i);
1294
+ return t(this, R).some((e) => e.name === i);
1314
1295
  }
1315
1296
  };
1316
- at = new WeakMap(), A = new WeakMap(), vt = new WeakMap(), Xt = new WeakMap(), a(be, "ngFields");
1297
+ lt = new WeakMap(), R = new WeakMap(), vt = new WeakMap(), Xt = new WeakMap(), a(be, "ngFields");
1317
1298
  let ne = be;
1318
- var J, Ut, Ft;
1299
+ var Q, Ut, Ft;
1319
1300
  const ge = class ge extends HTMLElement {
1320
1301
  constructor() {
1321
1302
  super();
1322
1303
  //#created = false;
1323
- c(this, J);
1304
+ c(this, Q);
1324
1305
  c(this, Ut);
1325
1306
  c(this, Ft, /* @__PURE__ */ a(() => {
1326
- this.fields = new ne(this), b(this, Ut, new te(this)), P.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
1307
+ this.fields = new ne(this), b(this, Ut, new te(this)), H.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
1327
1308
  }, "#init"));
1328
- this.attachShadow({ mode: "open" }), b(this, J, new se(this));
1309
+ this.attachShadow({ mode: "open" }), b(this, Q, new se(this));
1329
1310
  }
1330
1311
  connectedCallback() {
1331
1312
  t(this, Ft).call(this);
1332
1313
  }
1333
1314
  disconnectedCallback() {
1334
- P.log("NineTable disconnected.");
1315
+ H.log("NineTable disconnected.");
1335
1316
  }
1336
1317
  // 🎯 μ™ΈλΆ€μ—μ„œ grid.data.set(...) ν˜•νƒœλ‘œ μ ‘κ·Όν•  수 μžˆλ„λ‘ 데이터 λ§€λ‹ˆμ € μ˜€ν”ˆ
1337
1318
  get data() {
1338
- return t(this, J).data;
1319
+ return t(this, Q).data;
1339
1320
  }
1340
1321
  // 🎯 ν–‰(row) κ΄€λ ¨ μ œμ–΄ μ ‘κ·Όμž μ˜€ν”ˆ
1341
1322
  get row() {
1342
- return t(this, J).row;
1323
+ return t(this, Q).row;
1343
1324
  }
1344
1325
  // 🎯 전체 데이터 λ§€λ‹ˆμ € μ ‘κ·Ό ν•„μš”ν•  경우
1345
1326
  get dataManager() {
1346
- return t(this, J);
1327
+ return t(this, Q);
1347
1328
  }
1348
1329
  };
1349
- J = new WeakMap(), Ut = new WeakMap(), Ft = new WeakMap(), a(ge, "NineTable");
1330
+ Q = new WeakMap(), Ut = new WeakMap(), Ft = new WeakMap(), a(ge, "NineTable");
1350
1331
  let oe = ge;
1351
1332
  customElements.get("nine-table") || customElements.define("nine-table", oe);
1352
1333
  //# sourceMappingURL=nine-table.js.map