@ninebone/table 0.0.276 β†’ 0.0.278

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,119 +1,119 @@
1
- var Ne = Object.defineProperty;
2
- var Be = (p) => {
1
+ var Be = Object.defineProperty;
2
+ var Pe = (p) => {
3
3
  throw TypeError(p);
4
4
  };
5
- var Xe = (p, i, t) => i in p ? Ne(p, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : p[i] = t;
6
- var a = (p, i) => Ne(p, "name", { value: i, configurable: !0 });
7
- var x = (p, i, t) => Xe(p, typeof i != "symbol" ? i + "" : i, t), Pe = (p, i, t) => i.has(p) || Be("Cannot " + t);
8
- var e = (p, i, t) => (Pe(p, i, "read from private field"), t ? t.call(p) : i.get(p)), h = (p, i, t) => i.has(p) ? Be("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(p) : i.set(p, t), g = (p, i, t, s) => (Pe(p, i, "write to private field"), s ? s.call(p, t) : i.set(p, t), t);
9
- var Ve = (p, i, t, s) => ({
5
+ var Ye = (p, i, t) => i in p ? Be(p, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : p[i] = t;
6
+ var a = (p, i) => Be(p, "name", { value: i, configurable: !0 });
7
+ var x = (p, i, t) => Ye(p, typeof i != "symbol" ? i + "" : i, t), Ve = (p, i, t) => i.has(p) || Pe("Cannot " + t);
8
+ var e = (p, i, t) => (Ve(p, i, "read from private field"), t ? t.call(p) : i.get(p)), d = (p, i, t) => i.has(p) ? Pe("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(p) : i.set(p, t), b = (p, i, t, s) => (Ve(p, i, "write to private field"), s ? s.call(p, t) : i.set(p, t), t);
9
+ var Xe = (p, i, t, s) => ({
10
10
  set _(n) {
11
- g(p, i, n, t);
11
+ b(p, i, n, t);
12
12
  },
13
13
  get _() {
14
14
  return e(p, i, s);
15
15
  }
16
16
  });
17
- import { trace as Ye } from "@ninebone/util";
18
- const _e = class _e extends Ye.constructor {
17
+ import { trace as Ue } from "@ninebone/util";
18
+ const Ie = class Ie extends Ue.constructor {
19
19
  constructor() {
20
20
  super(), this.init("nine-table", "green");
21
21
  }
22
22
  };
23
- a(_e, "Trace");
24
- let ve = _e;
25
- const j = new ve();
26
- var T, W, b, O, z, D, re, N, oe;
27
- const Ie = class Ie extends HTMLElement {
23
+ a(Ie, "Trace");
24
+ let Se = Ie;
25
+ const j = new Se();
26
+ var k, W, y, O, z, N, re, D, oe;
27
+ const He = class He extends HTMLElement {
28
28
  constructor() {
29
29
  super();
30
- h(this, T);
31
- h(this, W, !1);
32
- h(this, b);
33
- h(this, O);
34
- h(this, z);
35
- h(this, D);
36
- h(this, re, /* @__PURE__ */ a(() => {
37
- if (!e(this, T)) return;
38
- const t = e(this, T).querySelector(".ng-container-body");
39
- t && (g(this, D, new ResizeObserver(() => {
30
+ d(this, k);
31
+ d(this, W, !1);
32
+ d(this, y);
33
+ d(this, O);
34
+ d(this, z);
35
+ d(this, N);
36
+ d(this, re, /* @__PURE__ */ a(() => {
37
+ if (!e(this, k)) return;
38
+ const t = e(this, k).querySelector(".ng-container-body");
39
+ t && (b(this, N, new ResizeObserver(() => {
40
40
  this.refresh();
41
- })), e(this, D).observe(t));
41
+ })), e(this, N).observe(t));
42
42
  }, "#observeResize"));
43
43
  x(this, "refresh", /* @__PURE__ */ a(() => {
44
- if (!e(this, T) || !e(this, b) || e(this, W)) return;
45
- const t = e(this, b).container, s = t.querySelector("table");
44
+ if (!e(this, k) || !e(this, y) || e(this, W)) return;
45
+ const t = e(this, y).container, s = t.querySelector("table");
46
46
  if (!s) return;
47
- const n = e(this, b).track, r = e(this, b).thumb, o = e(this, T).querySelector(".ng-container-bottom"), l = t.clientWidth, d = s.scrollWidth;
48
- if (l !== 0 && d > l)
49
- o && (o.style.display = "flex");
47
+ const n = e(this, y).track, o = e(this, y).thumb, r = e(this, k).querySelector(".ng-container-bottom"), l = t.clientWidth, c = s.scrollWidth;
48
+ if (l !== 0 && c > l)
49
+ r && (r.style.display = "flex");
50
50
  else {
51
- o && (o.style.display = "none");
51
+ r && (r.style.display = "none");
52
52
  return;
53
53
  }
54
- const c = n.clientWidth;
55
- if (c <= 0) return;
56
- const f = Math.max(Math.min(c * (l / d), c), 20);
57
- r.style.width = `${f}px`;
58
- const u = t.scrollLeft, y = d - l;
54
+ const h = n.clientWidth;
55
+ if (h <= 0) return;
56
+ const f = Math.max(Math.min(h * (l / c), h), 20);
57
+ o.style.width = `${f}px`;
58
+ const g = t.scrollLeft, u = c - l;
59
59
  let v = 0;
60
- y > 0 && (v = parseInt(u / y * (c - f), 10)), v < 0 && (v = 0);
61
- const w = c - f;
62
- v > w && (v = w), r.style.left = `${v}px`, j.log(v), e(this, b).left.disabled = v === 0, e(this, b).right.disabled = v >= w - 1;
60
+ u > 0 && (v = parseInt(g / u * (h - f), 10)), v < 0 && (v = 0);
61
+ const w = h - f;
62
+ v > w && (v = w), o.style.left = `${v}px`, j.log(v), e(this, y).left.disabled = v === 0, e(this, y).right.disabled = v >= w - 1;
63
63
  }, "refresh"));
64
- h(this, N, /* @__PURE__ */ a((t) => {
65
- if (!e(this, b)) return !1;
66
- const s = e(this, b).container, n = s.querySelector("table");
64
+ d(this, D, /* @__PURE__ */ a((t) => {
65
+ if (!e(this, y)) return !1;
66
+ const s = e(this, y).container, n = s.querySelector("table");
67
67
  if (!n) return !1;
68
- const r = e(this, b).track.getBoundingClientRect(), o = e(this, b).thumb.clientWidth;
68
+ const o = e(this, y).track.getBoundingClientRect(), r = e(this, y).thumb.clientWidth;
69
69
  let l = t;
70
70
  l < 0 && (l = 0);
71
- const d = r.width - o;
72
- l > d && (l = d), l = parseInt(l, 10), e(this, b).thumb.style.left = `${l}px`, e(this, b).left.disabled = l === 0, e(this, b).right.disabled = l >= d - 1;
73
- const c = s.clientWidth, f = n.scrollWidth;
74
- let u = d > 0 ? -l * (f - c) / d : 0;
75
- return -u > f - c && (u = -(f - c)), -u + 5 > f - c && (u = -(f - c)), c >= f && (u = 0), n.style.transform = `translateX(${u}px)`, l > 0 && l < d - 1;
71
+ const c = o.width - r;
72
+ l > c && (l = c), l = parseInt(l, 10), e(this, y).thumb.style.left = `${l}px`, e(this, y).left.disabled = l === 0, e(this, y).right.disabled = l >= c - 1;
73
+ const h = s.clientWidth, f = n.scrollWidth;
74
+ let g = c > 0 ? -l * (f - h) / c : 0;
75
+ return -g > f - h && (g = -(f - h)), -g + 5 > f - h && (g = -(f - h)), h >= f && (g = 0), n.style.transform = `translateX(${g}px)`, l > 0 && l < c - 1;
76
76
  }, "#thumbMoveTo"));
77
- h(this, oe, /* @__PURE__ */ a(() => {
77
+ d(this, oe, /* @__PURE__ */ a(() => {
78
78
  const t = /* @__PURE__ */ a((n) => {
79
79
  clearInterval(e(this, O)), clearInterval(e(this, z));
80
- const r = parseInt(e(this, b).thumb.style.left || 0, 10);
81
- e(this, N).call(this, r + n), g(this, O, setInterval(() => {
82
- clearInterval(e(this, O)), g(this, z, setInterval(() => {
83
- const o = parseInt(e(this, b).thumb.style.left || 0, 10);
84
- e(this, N).call(this, o + n) || clearInterval(e(this, z));
80
+ const o = parseInt(e(this, y).thumb.style.left || 0, 10);
81
+ e(this, D).call(this, o + n), b(this, O, setInterval(() => {
82
+ clearInterval(e(this, O)), b(this, z, setInterval(() => {
83
+ const r = parseInt(e(this, y).thumb.style.left || 0, 10);
84
+ e(this, D).call(this, r + n) || clearInterval(e(this, z));
85
85
  }, 50));
86
86
  }, 500));
87
87
  }, "delayScroll"), s = /* @__PURE__ */ a(() => {
88
88
  clearInterval(e(this, O)), clearInterval(e(this, z));
89
89
  }, "clearTimer");
90
90
  ["mouseup", "mouseleave", "touchend"].forEach((n) => {
91
- e(this, b).left.addEventListener(n, s), e(this, b).right.addEventListener(n, s), e(this, b).track.addEventListener(n, s);
92
- }), e(this, b).left.addEventListener("mousedown", (n) => {
91
+ e(this, y).left.addEventListener(n, s), e(this, y).right.addEventListener(n, s), e(this, y).track.addEventListener(n, s);
92
+ }), e(this, y).left.addEventListener("mousedown", (n) => {
93
93
  n.button === 0 && t(-20);
94
- }), e(this, b).right.addEventListener("mousedown", (n) => {
94
+ }), e(this, y).right.addEventListener("mousedown", (n) => {
95
95
  n.button === 0 && t(20);
96
- }), e(this, b).left.addEventListener("touchstart", () => t(-20)), e(this, b).right.addEventListener("touchstart", () => t(20)), e(this, b).track.addEventListener("mousedown", (n) => {
96
+ }), e(this, y).left.addEventListener("touchstart", () => t(-20)), e(this, y).right.addEventListener("touchstart", () => t(20)), e(this, y).track.addEventListener("mousedown", (n) => {
97
97
  if (n.button !== 0) return;
98
98
  n.preventDefault();
99
- const r = e(this, b).track.getBoundingClientRect(), o = e(this, b).thumb.clientWidth;
100
- e(this, N).call(this, n.clientX - r.left - o / 2);
101
- }), e(this, b).thumb.addEventListener("mousedown", (n) => {
99
+ const o = e(this, y).track.getBoundingClientRect(), r = e(this, y).thumb.clientWidth;
100
+ e(this, D).call(this, n.clientX - o.left - r / 2);
101
+ }), e(this, y).thumb.addEventListener("mousedown", (n) => {
102
102
  if (n.button !== 0) return;
103
- n.stopPropagation(), n.preventDefault(), g(this, W, !0), this.shiftX = n.clientX - e(this, b).thumb.getBoundingClientRect().left;
104
- const r = /* @__PURE__ */ a((l) => {
103
+ n.stopPropagation(), n.preventDefault(), b(this, W, !0), this.shiftX = n.clientX - e(this, y).thumb.getBoundingClientRect().left;
104
+ const o = /* @__PURE__ */ a((l) => {
105
105
  if (!e(this, W)) return;
106
- const d = e(this, b).track.getBoundingClientRect();
107
- e(this, N).call(this, l.clientX - d.left - this.shiftX);
108
- }, "onMouseMove"), o = /* @__PURE__ */ a(() => {
109
- g(this, W, !1), s(), document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", o), this.refresh();
106
+ const c = e(this, y).track.getBoundingClientRect();
107
+ e(this, D).call(this, l.clientX - c.left - this.shiftX);
108
+ }, "onMouseMove"), r = /* @__PURE__ */ a(() => {
109
+ b(this, W, !1), s(), document.removeEventListener("mousemove", o), document.removeEventListener("mouseup", r), this.refresh();
110
110
  }, "onMouseUp");
111
- document.addEventListener("mousemove", r), document.addEventListener("mouseup", o);
111
+ document.addEventListener("mousemove", o), document.addEventListener("mouseup", r);
112
112
  });
113
113
  }, "#init"));
114
114
  }
115
115
  connectedCallback() {
116
- if (g(this, T, this.closest("nine-table-sheet") || this.getRootNode().host), !e(this, T)) return;
116
+ if (b(this, k, this.closest("nine-table-sheet") || this.getRootNode().host), !e(this, k)) return;
117
117
  this.innerHTML = `
118
118
  <style>
119
119
  nine-table-hscrollbar {
@@ -178,12 +178,12 @@ const Ie = class Ie extends HTMLElement {
178
178
  <button class='ng-scroll-right' disabled><div class='ng-scroll-icon'></div></button>
179
179
  `;
180
180
  const t = /* @__PURE__ */ a(() => {
181
- const s = e(this, T).querySelector(".ng-container-body");
181
+ const s = e(this, k).querySelector(".ng-container-body");
182
182
  if (!s) {
183
183
  setTimeout(t, 10);
184
184
  return;
185
185
  }
186
- g(this, b, {
186
+ b(this, y, {
187
187
  container: s,
188
188
  track: this.querySelector(".ng-scroll-track"),
189
189
  thumb: this.querySelector(".ng-scroll-thumb"),
@@ -194,240 +194,266 @@ const Ie = class Ie extends HTMLElement {
194
194
  t();
195
195
  }
196
196
  disconnectedCallback() {
197
- e(this, D) && e(this, D).disconnect();
197
+ e(this, N) && e(this, N).disconnect();
198
198
  }
199
199
  };
200
- T = new WeakMap(), W = new WeakMap(), b = new WeakMap(), O = new WeakMap(), z = new WeakMap(), D = new WeakMap(), re = new WeakMap(), N = new WeakMap(), oe = new WeakMap(), a(Ie, "NineTableHScrollBar");
201
- let Se = Ie;
202
- customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", Se);
203
- var k, C, E, H, B, P, le, G, ae, J, ce;
204
- const He = class He {
200
+ k = new WeakMap(), W = new WeakMap(), y = new WeakMap(), O = new WeakMap(), z = new WeakMap(), N = new WeakMap(), re = new WeakMap(), D = new WeakMap(), oe = new WeakMap(), a(He, "NineTableHScrollBar");
201
+ let Ee = He;
202
+ customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", Ee);
203
+ var le, G;
204
+ const L = class L {
205
+ /**
206
+ * 🎯 λ ˆμ΄μ•„μ›ƒ λ‚΄μ˜ μ—¬λŸ¬ rawTables 배열을 μΌκ΄„λ‘œ λ°›μ•„ 단일 λ§ˆμŠ€ν„° ν…œν”Œλ¦ΏμœΌλ‘œ 사전 μ»΄νŒŒμΌν•©λ‹ˆλ‹€.
207
+ */
208
+ static compileAll(i) {
209
+ return Array.isArray(i) ? i.map((t) => L.compile(t)) : [];
210
+ }
211
+ /**
212
+ * 🎯 단일 원본 ν…Œμ΄λΈ”μ„ λ°›μ•„ κΈ°λ³Έ ꡬ쑰 보정 및 2차원 격자 인덱슀 사전 λΆ€μ—¬ μ™„λ£Œλœ λ§ˆμŠ€ν„° ν…Œμ΄λΈ” λ°˜ν™˜
213
+ */
214
+ static compile(i) {
215
+ var n, o, r;
216
+ if (!i) return null;
217
+ const t = i.cloneNode(!0);
218
+ return e(n = L, le).call(n, t), e(o = L, G).call(o, t, "thead"), e(r = L, G).call(r, t, "tbody"), Array.from(t.querySelectorAll("colgroup col")).forEach((l, c) => {
219
+ const h = l.getAttribute("fixed");
220
+ h && t.querySelectorAll(`[data-col="${c}"]`).forEach((f) => {
221
+ f.setAttribute("fixed", h);
222
+ });
223
+ }), t;
224
+ }
225
+ };
226
+ le = new WeakMap(), G = new WeakMap(), a(L, "TableCompiler"), d(L, le, /* @__PURE__ */ a((i) => {
227
+ if (!i.querySelector("colgroup")) {
228
+ const t = i.querySelector("tbody tr") || i.querySelector("tr"), s = t ? t.querySelectorAll("th, td").length : 1, n = document.createElement("colgroup"), o = Math.max(Math.floor(i.clientWidth / s), 100);
229
+ for (let r = 0; r < s; r++) {
230
+ const l = document.createElement("col");
231
+ l.setAttribute("width", o), n.appendChild(l);
232
+ }
233
+ i.prepend(n);
234
+ }
235
+ if (!i.querySelector("thead")) {
236
+ const t = document.createElement("thead"), s = i.querySelector("colgroup");
237
+ s ? s.after(t) : i.prepend(t);
238
+ }
239
+ i.classList.add("nine-table-element"), i.style.display = "table";
240
+ }, "#ensureTableStructure")), d(L, G, /* @__PURE__ */ a((i, t) => {
241
+ const s = Array.from(i.querySelectorAll(t + " tr")), n = Array.from(i.querySelectorAll(t + " th," + t + " td")), o = s.length;
242
+ if (o === 0 || n.length === 0) return;
243
+ let r = 0;
244
+ n.forEach((c) => {
245
+ r += c.colSpan || 1;
246
+ });
247
+ const l = Array.from(Array(o), () => Array(r).fill(null));
248
+ s.forEach((c) => {
249
+ const h = c.sectionRowIndex;
250
+ let f = 0;
251
+ Array.from(c.querySelectorAll("th,td")).forEach((g) => {
252
+ for (let w = 0; w < l[h].length; w++)
253
+ if (l[h][w] === null) {
254
+ f = w;
255
+ break;
256
+ }
257
+ const u = g.rowSpan || 1, v = g.colSpan || 1;
258
+ for (let w = 0; w < u; w++)
259
+ for (let _ = 0; _ < v; _++)
260
+ h + w < o && f + _ < r && (l[h + w][f + _] = w === 0 && _ === 0 ? "1" : "0");
261
+ });
262
+ }), s.forEach((c) => {
263
+ const h = c.sectionRowIndex;
264
+ Array.from(c.querySelectorAll("th,td")).forEach((f) => {
265
+ for (let g = 0; g < l[h].length; g++)
266
+ if (l[h][g] === "1") {
267
+ f.dataset.col = g, l[h][g] = "0";
268
+ break;
269
+ }
270
+ });
271
+ });
272
+ }, "#resetColIndex"));
273
+ let Re = L;
274
+ var T, I, E, H, B, P, ae, ce, J, he, Q, de;
275
+ const Me = class Me {
205
276
  constructor(i) {
206
- h(this, k);
207
- h(this, C, []);
208
- h(this, E, null);
209
- h(this, H, null);
210
- h(this, B, 0);
211
- h(this, P, 40);
277
+ d(this, T);
278
+ d(this, I, /* @__PURE__ */ new Map());
279
+ // 각 μ»¨ν…Œμ΄λ„ˆλ³„ λ…λ¦½λœ ν…œν”Œλ¦Ώ TR 관리
280
+ d(this, E, null);
281
+ d(this, H, null);
282
+ d(this, B, 0);
283
+ d(this, P, 40);
212
284
  /**
213
- * 🎯 μ™ΈλΆ€(NineTableSheet)μ—μ„œ 졜초 데이터가 듀어왔을 λ•Œ 호좜
285
+ * 🎯 NineTableSheetμ—μ„œ λ§ˆμŠ€ν„° ν…Œμ΄λΈ”μ„ 전달받아 각 μ˜μ—­λ³„ ν…Œμ΄λΈ” 생성 및 ν…œν”Œλ¦Ώ μΆ”μΆœ 일원화
214
286
  */
215
287
  x(this, "initialize", /* @__PURE__ */ a((i) => {
216
288
  if (!i) return;
217
- const t = i.querySelector("tbody");
218
- if (!t) return;
219
- const s = Array.from(t.querySelectorAll("tr"));
220
- g(this, C, s.map((r) => r.cloneNode(!0))), g(this, E, null);
221
- const n = e(this, k).querySelector(".ng-container-body");
222
- n && (e(this, le).call(this, n), e(this, J).call(this));
289
+ b(this, E, null), e(this, I).clear(), [
290
+ { selector: ".ng-container-body", type: null },
291
+ { selector: ".ng-container-left", type: "left" },
292
+ { selector: ".ng-container-right", type: "right" }
293
+ ].forEach(({ selector: n, type: o }) => {
294
+ const r = e(this, T).querySelector(n);
295
+ if (!r) return;
296
+ const l = e(this, ae).call(this, i, o);
297
+ r.innerHTML = "", r.appendChild(l);
298
+ const c = l.querySelector("tbody");
299
+ if (c) {
300
+ const f = Array.from(c.querySelectorAll("tr")).map((g) => g.cloneNode(!0));
301
+ e(this, I).set(n, f);
302
+ }
303
+ });
304
+ const s = e(this, T).querySelector(".ng-container-body");
305
+ s && (e(this, ce).call(this, s), e(this, Q).call(this));
223
306
  }, "initialize"));
307
+ /**
308
+ * 🎯 λ§ˆμŠ€ν„° ν…Œμ΄λΈ”μ„ 기반으둜 νŠΉμ • fixed νƒ€μž… μ˜μ—­λ§Œ λ‚¨κΈ°κ±°λ‚˜ μ œκ±°ν•˜λŠ” λΆ„ν•  헬퍼
309
+ */
310
+ d(this, ae, /* @__PURE__ */ a((i, t) => {
311
+ const s = i.cloneNode(!0);
312
+ return t === "left" ? s.querySelectorAll("col, th, td").forEach((n) => {
313
+ n.getAttribute("fixed") !== "left" && n.remove();
314
+ }) : t === "right" ? s.querySelectorAll("col, th, td").forEach((n) => {
315
+ n.getAttribute("fixed") !== "right" && n.remove();
316
+ }) : s.querySelectorAll("[fixed='left'], [fixed='right']").forEach((n) => n.remove()), s;
317
+ }, "#createSplitTable"));
224
318
  /**
225
319
  * 🎯 ν…œν”Œλ¦Ώ TRλ“€μ˜ 총 높이λ₯Ό μΈ‘μ •ν•˜κ³  캐싱
226
320
  */
227
- h(this, le, /* @__PURE__ */ a((i) => {
321
+ d(this, ce, /* @__PURE__ */ a((i) => {
228
322
  if (e(this, E) !== null && e(this, E) > 0)
229
323
  return e(this, E);
230
- if (e(this, C).length === 0) return 24;
231
- const t = i.querySelector("tbody");
232
- if (!t) return 24;
233
- t.querySelectorAll("tr:not(.nodata)").forEach((u) => u.remove());
234
- const s = t.querySelector("tr.nodata"), n = document.createDocumentFragment();
235
- e(this, C).forEach((u) => {
236
- n.appendChild(u.cloneNode(!0));
237
- }), s ? s.before(n) : t.appendChild(n);
238
- const r = e(this, k), o = r.style.display, l = r.style.visibility, d = r.style.position;
239
- (o === "none" || window.getComputedStyle(r).display === "none") && (r.style.display = "block", r.style.visibility = "hidden", r.style.position = "absolute");
240
- let c = 0;
241
- const f = t.querySelectorAll("tr:not(.nodata)");
242
- return f.forEach((u) => {
243
- c += u.offsetHeight || u.getBoundingClientRect().height;
244
- }), f.forEach((u) => u.remove()), r.style.display = o, r.style.visibility = l, r.style.position = d, g(this, E, c > 0 ? c : 24), e(this, G).call(this), j.log(`[RowManager] Height Cached: ${e(this, E)}px | RowCount: ${e(this, P)}`), e(this, E);
324
+ const t = e(this, I).get(".ng-container-body");
325
+ if (!t || t.length === 0) return 24;
326
+ const s = i.querySelector("tbody");
327
+ if (!s) return 24;
328
+ s.querySelectorAll("tr:not(.nodata)").forEach((u) => u.remove());
329
+ const n = s.querySelector("tr.nodata"), o = document.createDocumentFragment();
330
+ t.forEach((u) => {
331
+ o.appendChild(u.cloneNode(!0));
332
+ }), n ? n.before(o) : s.appendChild(o);
333
+ const r = e(this, T), l = r.style.display, c = r.style.visibility, h = r.style.position;
334
+ (l === "none" || window.getComputedStyle(r).display === "none") && (r.style.display = "block", r.style.visibility = "hidden", r.style.position = "absolute");
335
+ let f = 0;
336
+ const g = s.querySelectorAll("tr:not(.nodata)");
337
+ return g.forEach((u) => {
338
+ f += u.offsetHeight || u.getBoundingClientRect().height;
339
+ }), g.forEach((u) => u.remove()), r.style.display = l, r.style.visibility = c, r.style.position = h, b(this, E, f > 0 ? f : 24), e(this, J).call(this), j.log(`[RowManager] Height Cached: ${e(this, E)}px | RowCount: ${e(this, P)}`), e(this, E);
245
340
  }, "#measureAndCacheHeight"));
246
- h(this, G, /* @__PURE__ */ a(() => {
341
+ d(this, J, /* @__PURE__ */ a(() => {
247
342
  if (e(this, B) > 0 && e(this, E) > 0) {
248
343
  const i = Math.ceil(e(this, B) / e(this, E));
249
- g(this, P, i + 20);
344
+ b(this, P, i + 20);
250
345
  } else
251
- g(this, P, 40);
346
+ b(this, P, 40);
252
347
  }, "#updateRowCount"));
253
348
  /**
254
349
  * 🎯 ResizeObserver μ„€μ •: μ‹œνŠΈ 크기 λ³€κ²½ μ‹œ ν–‰ 개수 μž¬μ‚°μ • 및 μž¬λ Œλ”λ§
255
350
  */
256
- h(this, ae, /* @__PURE__ */ a(() => {
257
- !e(this, k) || !(e(this, k) instanceof HTMLElement) || (g(this, H, new ResizeObserver((i) => {
351
+ d(this, he, /* @__PURE__ */ a(() => {
352
+ !e(this, T) || !(e(this, T) instanceof HTMLElement) || (b(this, H, new ResizeObserver((i) => {
258
353
  for (const t of i) {
259
354
  const s = t.target;
260
355
  if (!s.classList.contains("active")) continue;
261
356
  const n = t.contentRect.height;
262
357
  if (n > 0) {
263
- let r = 0;
264
- const o = s.querySelector("thead");
265
- o && (r += o.offsetHeight || o.getBoundingClientRect().height);
266
- const l = Math.max(n - r, 100);
267
- e(this, B) !== l && (g(this, B, l), e(this, G).call(this), e(this, E) !== null && e(this, J).call(this));
358
+ let o = 0;
359
+ const r = s.querySelector("thead");
360
+ r && (o += r.offsetHeight || r.getBoundingClientRect().height);
361
+ const l = Math.max(n - o, 100);
362
+ e(this, B) !== l && (b(this, B, l), e(this, J).call(this), e(this, E) !== null && e(this, Q).call(this));
268
363
  }
269
364
  }
270
- })), e(this, H).observe(e(this, k)));
365
+ })), e(this, H).observe(e(this, T)));
271
366
  }, "#initResizeObserver"));
272
367
  /**
273
- * 🎯 λ°”λ”” 및 쒌우 κ³ μ • μ»¨ν…Œμ΄λ„ˆ 전체에 ν–‰ λΌˆλŒ€ μ£Όμž…
368
+ * 🎯 λ°”λ”” 및 쒌우 κ³ μ • μ»¨ν…Œμ΄λ„ˆ 전체에 각각에 λ§žλŠ” ν…œν”Œλ¦Ώ ν–‰ λΌˆλŒ€ μ£Όμž…
274
369
  */
275
- h(this, J, /* @__PURE__ */ a(() => {
370
+ d(this, Q, /* @__PURE__ */ a(() => {
276
371
  [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((i) => {
277
- const t = e(this, k).querySelector(i);
278
- t && t.querySelector("tbody") && e(this, ce).call(this, t);
372
+ const t = e(this, T).querySelector(i);
373
+ t && t.querySelector("tbody") && e(this, de).call(this, t, i);
279
374
  });
280
375
  }, "#renderAllContainers"));
281
- h(this, ce, /* @__PURE__ */ a((i) => {
282
- if (e(this, C).length === 0) return;
283
- const t = i.querySelector("tbody");
284
- if (!t) return;
285
- t.querySelectorAll("tr:not(.nodata)").forEach((r) => r.remove());
286
- const s = t.querySelector("tr.nodata"), n = (document.getDocumentFragment, document.createDocumentFragment());
287
- for (let r = 0; r < e(this, P); r++)
288
- e(this, C).forEach((o) => {
289
- n.appendChild(o.cloneNode(!0));
376
+ d(this, de, /* @__PURE__ */ a((i, t) => {
377
+ const s = e(this, I).get(t);
378
+ if (!s || s.length === 0) return;
379
+ const n = i.querySelector("tbody");
380
+ if (!n) return;
381
+ n.querySelectorAll("tr:not(.nodata)").forEach((l) => l.remove());
382
+ const o = n.querySelector("tr.nodata"), r = document.createDocumentFragment();
383
+ for (let l = 0; l < e(this, P); l++)
384
+ s.forEach((c) => {
385
+ r.appendChild(c.cloneNode(!0));
290
386
  });
291
- s ? s.before(n) : t.appendChild(n);
387
+ o ? o.before(r) : n.appendChild(r);
292
388
  }, "#renderRows"));
293
389
  x(this, "destroy", /* @__PURE__ */ a(() => {
294
- e(this, H) && (e(this, H).disconnect(), g(this, H, null));
390
+ e(this, H) && (e(this, H).disconnect(), b(this, H, null));
295
391
  }, "destroy"));
296
- g(this, k, i), e(this, ae).call(this);
392
+ b(this, T, i), e(this, he).call(this);
297
393
  }
298
394
  getRowHeight() {
299
395
  return e(this, E);
300
396
  }
301
- templateLength() {
302
- return e(this, C).length || 1;
397
+ templateLength(i = ".ng-container-body") {
398
+ var t;
399
+ return ((t = e(this, I).get(i)) == null ? void 0 : t.length) || 1;
303
400
  }
304
401
  };
305
- k = new WeakMap(), C = new WeakMap(), E = new WeakMap(), H = new WeakMap(), B = new WeakMap(), P = new WeakMap(), le = new WeakMap(), G = new WeakMap(), ae = new WeakMap(), J = new WeakMap(), ce = new WeakMap(), a(He, "RowManager");
306
- let Ee = He;
307
- var he, Q;
308
- const L = class L {
309
- /**
310
- * 🎯 λ ˆμ΄μ•„μ›ƒ λ‚΄μ˜ μ—¬λŸ¬ rawTables 배열을 μΌκ΄„λ‘œ λ°›μ•„ 단일 λ§ˆμŠ€ν„° ν…œν”Œλ¦ΏμœΌλ‘œ 사전 μ»΄νŒŒμΌν•©λ‹ˆλ‹€.
311
- */
312
- static compileAll(i) {
313
- return Array.isArray(i) ? i.map((t) => L.compile(t)) : [];
314
- }
315
- /**
316
- * 🎯 단일 원본 ν…Œμ΄λΈ”μ„ λ°›μ•„ κΈ°λ³Έ ꡬ쑰 보정 및 2차원 격자 인덱슀 사전 λΆ€μ—¬ μ™„λ£Œλœ λ§ˆμŠ€ν„° ν…Œμ΄λΈ” λ°˜ν™˜
317
- */
318
- static compile(i) {
319
- var n, r, o;
320
- if (!i) return null;
321
- const t = i.cloneNode(!0);
322
- return e(n = L, he).call(n, t), e(r = L, Q).call(r, t, "thead"), e(o = L, Q).call(o, t, "tbody"), Array.from(t.querySelectorAll("colgroup col")).forEach((l, d) => {
323
- const c = l.getAttribute("fixed");
324
- c && t.querySelectorAll(`[data-col="${d}"]`).forEach((f) => {
325
- f.setAttribute("fixed", c);
326
- });
327
- }), t;
328
- }
329
- };
330
- he = new WeakMap(), Q = new WeakMap(), a(L, "TableCompiler"), h(L, he, /* @__PURE__ */ a((i) => {
331
- if (!i.querySelector("colgroup")) {
332
- const t = i.querySelector("tbody tr") || i.querySelector("tr"), s = t ? t.querySelectorAll("th, td").length : 1, n = document.createElement("colgroup"), r = Math.max(Math.floor(i.clientWidth / s), 100);
333
- for (let o = 0; o < s; o++) {
334
- const l = document.createElement("col");
335
- l.setAttribute("width", r), n.appendChild(l);
336
- }
337
- i.prepend(n);
338
- }
339
- if (!i.querySelector("thead")) {
340
- const t = document.createElement("thead"), s = i.querySelector("colgroup");
341
- s ? s.after(t) : i.prepend(t);
342
- }
343
- i.classList.add("nine-table-element"), i.style.display = "table";
344
- }, "#ensureTableStructure")), h(L, Q, /* @__PURE__ */ a((i, t) => {
345
- const s = Array.from(i.querySelectorAll(t + " tr")), n = Array.from(i.querySelectorAll(t + " th," + t + " td")), r = s.length;
346
- if (r === 0 || n.length === 0) return;
347
- let o = 0;
348
- n.forEach((d) => {
349
- o += d.colSpan || 1;
350
- });
351
- const l = Array.from(Array(r), () => Array(o).fill(null));
352
- s.forEach((d) => {
353
- const c = d.sectionRowIndex;
354
- let f = 0;
355
- Array.from(d.querySelectorAll("th,td")).forEach((u) => {
356
- for (let w = 0; w < l[c].length; w++)
357
- if (l[c][w] === null) {
358
- f = w;
359
- break;
360
- }
361
- const y = u.rowSpan || 1, v = u.colSpan || 1;
362
- for (let w = 0; w < y; w++)
363
- for (let I = 0; I < v; I++)
364
- c + w < r && f + I < o && (l[c + w][f + I] = w === 0 && I === 0 ? "1" : "0");
365
- });
366
- }), s.forEach((d) => {
367
- const c = d.sectionRowIndex;
368
- Array.from(d.querySelectorAll("th,td")).forEach((f) => {
369
- for (let u = 0; u < l[c].length; u++)
370
- if (l[c][u] === "1") {
371
- f.dataset.col = u, l[c][u] = "0";
372
- break;
373
- }
374
- });
375
- });
376
- }, "#resetColIndex"));
377
- let Re = L;
378
- var _, Y, F, ee, de, fe;
379
- const Z = class Z extends HTMLElement {
402
+ T = new WeakMap(), I = new WeakMap(), E = new WeakMap(), H = new WeakMap(), B = new WeakMap(), P = new WeakMap(), ae = new WeakMap(), ce = new WeakMap(), J = new WeakMap(), he = new WeakMap(), Q = new WeakMap(), de = new WeakMap(), a(Me, "RowManager");
403
+ let Ae = Me;
404
+ var C, Y, U, ee, fe, ue;
405
+ const F = class F extends HTMLElement {
380
406
  constructor() {
381
407
  super();
382
- h(this, _, null);
383
- h(this, Y);
408
+ d(this, C, null);
409
+ d(this, Y);
384
410
  x(this, "generate", /* @__PURE__ */ a((t) => {
385
411
  if (!t) return;
386
- g(this, _, Re.compile(t)), e(this, _).style.display = "table";
387
- const s = this.querySelector(".ng-container-left"), n = this.querySelector(".ng-container-body"), r = this.querySelector(".ng-container-right");
412
+ b(this, C, Re.compile(t)), e(this, C).style.display = "table";
413
+ const s = this.querySelector(".ng-container-left"), n = this.querySelector(".ng-container-body"), o = this.querySelector(".ng-container-right");
388
414
  if (n) {
389
- const o = e(this, F).call(this, e(this, _), null);
390
- n.innerHTML = "", n.appendChild(o), e(this, Y).initialize(e(this, _));
415
+ const r = e(this, U).call(this, e(this, C), null);
416
+ n.innerHTML = "", n.appendChild(r), e(this, Y).initialize(e(this, C));
391
417
  }
392
418
  if (s) {
393
- const o = e(this, F).call(this, e(this, _), "left");
419
+ const r = e(this, U).call(this, e(this, C), "left");
394
420
  let l = 0;
395
- o.querySelectorAll("col").forEach((c) => {
396
- const f = parseInt(c.getAttribute("width"), 10);
421
+ r.querySelectorAll("col").forEach((h) => {
422
+ const f = parseInt(h.getAttribute("width"), 10);
397
423
  isNaN(f) || (l += f);
398
- }), s.innerHTML = "", s.appendChild(o);
399
- const d = l > 0 ? l : 0;
400
- s.style.flex = `0 0 ${d}px`, s.style.width = `${d}px`;
424
+ }), s.innerHTML = "", s.appendChild(r);
425
+ const c = l > 0 ? l : 0;
426
+ s.style.flex = `0 0 ${c}px`, s.style.width = `${c}px`;
401
427
  }
402
- if (r) {
403
- const o = e(this, F).call(this, e(this, _), "right");
428
+ if (o) {
429
+ const r = e(this, U).call(this, e(this, C), "right");
404
430
  let l = 0;
405
- o.querySelectorAll("col").forEach((c) => {
406
- const f = parseInt(c.getAttribute("width"), 10);
431
+ r.querySelectorAll("col").forEach((h) => {
432
+ const f = parseInt(h.getAttribute("width"), 10);
407
433
  isNaN(f) || (l += f);
408
- }), r.innerHTML = "", r.appendChild(o);
409
- const d = l > 0 ? l : 0;
410
- r.style.flex = `0 0 ${d}px`, r.style.width = `${d}px`;
434
+ }), o.innerHTML = "", o.appendChild(r);
435
+ const c = l > 0 ? l : 0;
436
+ o.style.flex = `0 0 ${c}px`, o.style.width = `${c}px`;
411
437
  }
412
438
  n && n.addEventListener("scroll", () => {
413
- var o;
414
- (o = this.querySelector("nine-table-hscrollbar")) == null || o.refresh();
439
+ var r;
440
+ (r = this.querySelector("nine-table-hscrollbar")) == null || r.refresh();
415
441
  }), setTimeout(() => {
416
- var o;
417
- e(this, ee).call(this), (o = this.querySelector("nine-table-hscrollbar")) == null || o.refresh();
442
+ var r;
443
+ e(this, ee).call(this), (r = this.querySelector("nine-table-hscrollbar")) == null || r.refresh();
418
444
  }, 0);
419
445
  }, "generate"));
420
446
  /**
421
447
  * 🎯 λ§ˆμŠ€ν„° ν…Œμ΄λΈ”μ„ 기반으둜 νŠΉμ • fixed νƒ€μž… μ˜μ—­λ§Œ λ‚¨κΈ°λŠ” λΆ„ν•  헬퍼
422
448
  */
423
- h(this, F, /* @__PURE__ */ a((t, s) => {
449
+ d(this, U, /* @__PURE__ */ a((t, s) => {
424
450
  const n = t.cloneNode(!0);
425
- return s === "left" ? n.querySelectorAll("col, th, td").forEach((r) => {
426
- r.getAttribute("fixed") !== "left" && r.remove();
427
- }) : s === "right" ? n.querySelectorAll("col, th, td").forEach((r) => {
428
- r.getAttribute("fixed") !== "right" && r.remove();
429
- }) : n.querySelectorAll("[fixed=left], [fixed=right]").forEach((r) => {
430
- r.remove();
451
+ return s === "left" ? n.querySelectorAll("col, th, td").forEach((o) => {
452
+ o.getAttribute("fixed") !== "left" && o.remove();
453
+ }) : s === "right" ? n.querySelectorAll("col, th, td").forEach((o) => {
454
+ o.getAttribute("fixed") !== "right" && o.remove();
455
+ }) : n.querySelectorAll("[fixed=left], [fixed=right]").forEach((o) => {
456
+ o.remove();
431
457
  }), n;
432
458
  }, "#createSplitTable"));
433
459
  x(this, "getRowHeight", /* @__PURE__ */ a(() => e(this, Y).getRowHeight(), "getRowHeight"));
@@ -439,28 +465,28 @@ const Z = class Z extends HTMLElement {
439
465
  const s = this.querySelector(".ng-container-body");
440
466
  s && (s.scrollTop = t);
441
467
  }, "scrollToY"));
442
- h(this, ee, /* @__PURE__ */ a(() => {
443
- var c, f, u;
468
+ d(this, ee, /* @__PURE__ */ a(() => {
469
+ var h, f, g;
444
470
  const t = this.querySelector(".ng-container-left table"), s = this.querySelector(".ng-container-body table"), n = this.querySelector(".ng-container-right table");
445
471
  if (!s) return;
446
- const r = t ? Array.from(t.querySelectorAll("tr")) : [], o = Array.from(s.querySelectorAll("tr")), l = n ? Array.from(n.querySelectorAll("tr")) : [], d = Math.max(r.length, o.length, l.length);
447
- for (let y = 0; y < d; y++) {
472
+ const o = t ? Array.from(t.querySelectorAll("tr")) : [], r = Array.from(s.querySelectorAll("tr")), l = n ? Array.from(n.querySelectorAll("tr")) : [], c = Math.max(o.length, r.length, l.length);
473
+ for (let u = 0; u < c; u++) {
448
474
  const v = [
449
- ((c = r[y]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
450
- ((f = o[y]) == null ? void 0 : f.getBoundingClientRect().height) || 0,
451
- ((u = l[y]) == null ? void 0 : u.getBoundingClientRect().height) || 0
475
+ ((h = o[u]) == null ? void 0 : h.getBoundingClientRect().height) || 0,
476
+ ((f = r[u]) == null ? void 0 : f.getBoundingClientRect().height) || 0,
477
+ ((g = l[u]) == null ? void 0 : g.getBoundingClientRect().height) || 0
452
478
  ], w = Math.max(...v);
453
- w > 0 && (r[y] && (r[y].style.height = `${w}px`), o[y] && (o[y].style.height = `${w}px`), l[y] && (l[y].style.height = `${w}px`));
479
+ w > 0 && (o[u] && (o[u].style.height = `${w}px`), r[u] && (r[u].style.height = `${w}px`), l[u] && (l[u].style.height = `${w}px`));
454
480
  }
455
481
  }, "#syncRowHeights"));
456
- h(this, de, /* @__PURE__ */ a(() => {
457
- e(this, fe).call(this), new MutationObserver((t) => {
482
+ d(this, fe, /* @__PURE__ */ a(() => {
483
+ e(this, ue).call(this), new MutationObserver((t) => {
458
484
  for (const s of t)
459
485
  s.attributeName === "class" && this.classList.contains("active") && e(this, ee).call(this);
460
486
  }).observe(this, { attributes: !0 });
461
487
  }, "#init"));
462
- h(this, fe, /* @__PURE__ */ a(() => {
463
- const t = Z.SCROLLBAR_SIZE;
488
+ d(this, ue, /* @__PURE__ */ a(() => {
489
+ const t = F.SCROLLBAR_SIZE;
464
490
  this.innerHTML = `
465
491
  <style>
466
492
  nine-table-sheet {
@@ -583,91 +609,91 @@ const Z = class Z extends HTMLElement {
583
609
  </div>
584
610
  `;
585
611
  }, "#render"));
586
- g(this, Y, new Ee(this));
612
+ b(this, Y, new Ae(this));
587
613
  }
588
614
  connectedCallback() {
589
- e(this, de).call(this);
615
+ e(this, fe).call(this);
590
616
  }
591
617
  disconnectedCallback() {
592
618
  this.innerHTML = "", j.log("NineTableSheet destroyed.");
593
619
  }
594
620
  };
595
- _ = new WeakMap(), Y = new WeakMap(), F = new WeakMap(), ee = new WeakMap(), de = new WeakMap(), fe = new WeakMap(), a(Z, "NineTableSheet"), x(Z, "SCROLLBAR_SIZE", 16);
596
- let ne = Z;
621
+ C = new WeakMap(), Y = new WeakMap(), U = new WeakMap(), ee = new WeakMap(), fe = new WeakMap(), ue = new WeakMap(), a(F, "NineTableSheet"), x(F, "SCROLLBAR_SIZE", 16);
622
+ let ne = F;
597
623
  customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", ne);
598
- var ue, te;
599
- const Me = class Me extends HTMLElement {
624
+ var ge, te;
625
+ const $e = class $e extends HTMLElement {
600
626
  constructor() {
601
627
  super();
602
- h(this, ue, /* @__PURE__ */ a(() => {
628
+ d(this, ge, /* @__PURE__ */ a(() => {
603
629
  var t;
604
630
  (t = this.querySelector(".nine-tab-bar")) == null || t.addEventListener("click", (s) => {
605
- var o;
606
- const n = s.ctrlKey || s.metaKey || s.shiftKey, r = parseInt((o = s.target.closest(".nine-tab-item")) == null ? void 0 : o.dataset.index, 10);
607
- e(this, te).call(this, r, n);
631
+ var r;
632
+ const n = s.ctrlKey || s.metaKey || s.shiftKey, o = parseInt((r = s.target.closest(".nine-tab-item")) == null ? void 0 : r.dataset.index, 10);
633
+ e(this, te).call(this, o, n);
608
634
  }), e(this, te).call(this, 0, !1);
609
635
  }, "#init"));
610
- h(this, te, /* @__PURE__ */ a((t, s = !1) => {
636
+ d(this, te, /* @__PURE__ */ a((t, s = !1) => {
611
637
  const n = /* @__PURE__ */ a(() => {
612
638
  const f = Array.from(this.querySelectorAll("nine-table-sheet"));
613
639
  Array.from(this.querySelectorAll("nine-splitter")).forEach((v) => v.style.setProperty("display", "none"));
614
- const y = f.filter((v) => v.classList.contains("active"));
615
- y.length < 2 || y.forEach((v) => {
616
- const w = parseInt(v.getAttribute("data-index"), 10), I = this.querySelector(`nine-splitter[data-split-index="${w}"]`), De = f[w + 1];
617
- I && De && De.classList.contains("active") && I.style.setProperty("display", "flex");
640
+ const u = f.filter((v) => v.classList.contains("active"));
641
+ u.length < 2 || u.forEach((v) => {
642
+ const w = parseInt(v.getAttribute("data-index"), 10), _ = this.querySelector(`nine-splitter[data-split-index="${w}"]`), De = f[w + 1];
643
+ _ && De && De.classList.contains("active") && _.style.setProperty("display", "flex");
618
644
  });
619
- }, "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");
645
+ }, "updateSplitters"), o = this.querySelector(".nine-tab-bar"), r = this.querySelector("nine-table-sheets-body"), l = o.querySelectorAll(".nine-tab-item"), c = r.querySelectorAll("nine-table-sheet");
620
646
  if (!l[t]) return;
621
647
  if (!s)
622
- l.forEach((f, u) => {
623
- f.classList.toggle("active", u === t);
624
- }), d.forEach((f, u) => {
625
- const y = u === t;
626
- f.classList.toggle("active", y), f.style.flex = y ? "1 1 100%" : "";
648
+ l.forEach((f, g) => {
649
+ f.classList.toggle("active", g === t);
650
+ }), c.forEach((f, g) => {
651
+ const u = g === t;
652
+ f.classList.toggle("active", u), f.style.flex = u ? "1 1 100%" : "";
627
653
  });
628
654
  else {
629
- const f = l[t], u = r.querySelectorAll(".nine-tab-item.active");
630
- if (f.classList.contains("active") && u.length <= 1)
655
+ const f = l[t], g = o.querySelectorAll(".nine-tab-item.active");
656
+ if (f.classList.contains("active") && g.length <= 1)
631
657
  return;
632
658
  f.classList.toggle("active");
633
- const y = o.querySelector(`nine-table-sheet[data-index="${t}"]`);
634
- y && (y.classList.toggle("active"), y.classList.contains("active") || (y.style.flex = ""));
659
+ const u = r.querySelector(`nine-table-sheet[data-index="${t}"]`);
660
+ u && (u.classList.toggle("active"), u.classList.contains("active") || (u.style.flex = ""));
635
661
  }
636
- const c = o.querySelectorAll("nine-table-sheet.active");
637
- c == null || c.forEach((f) => {
638
- f.style.flex = c.length > 1 ? "1 1 0%" : "1 1 100%";
662
+ const h = r.querySelectorAll("nine-table-sheet.active");
663
+ h == null || h.forEach((f) => {
664
+ f.style.flex = h.length > 1 ? "1 1 0%" : "1 1 100%";
639
665
  }), n();
640
666
  }, "#switchSheet"));
641
667
  }
642
668
  connectedCallback() {
643
- e(this, ue).call(this);
669
+ e(this, ge).call(this);
644
670
  }
645
671
  };
646
- ue = new WeakMap(), te = new WeakMap(), a(Me, "NineTableSheets");
647
- let Ae = Me;
648
- customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", Ae);
649
- var S, ge, ie, be;
650
- const $e = class $e {
672
+ ge = new WeakMap(), te = new WeakMap(), a($e, "NineTableSheets");
673
+ let qe = $e;
674
+ customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", qe);
675
+ var S, be, ie, ye;
676
+ const We = class We {
651
677
  constructor(i) {
652
- h(this, S);
653
- h(this, ge, /* @__PURE__ */ a(() => {
654
- e(this, be).call(this), new ResizeObserver((i) => {
678
+ d(this, S);
679
+ d(this, be, /* @__PURE__ */ a(() => {
680
+ e(this, ye).call(this), new ResizeObserver((i) => {
655
681
  for (let t of i)
656
682
  e(this, S).getAttribute("auto-height") === "true" && e(this, ie).call(this);
657
683
  }).observe(e(this, S));
658
684
  }, "#init"));
659
- h(this, ie, /* @__PURE__ */ a(() => {
660
- var d, c;
685
+ d(this, ie, /* @__PURE__ */ a(() => {
686
+ var c, h;
661
687
  const i = Array.from(e(this, S).shadowRoot.querySelectorAll("nine-table-sheet.active"));
662
688
  if (i.length === 0) return;
663
- const t = parseInt(e(this, S).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), n = (d = e(this, S).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : d.getBoundingClientRect().height, r = (c = e(this, S).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : c.getBoundingClientRect().height, o = ne.SCROLLBAR_SIZE, l = t * s + n + r + o;
689
+ const t = parseInt(e(this, S).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), n = (c = e(this, S).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : c.getBoundingClientRect().height, o = (h = e(this, S).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : h.getBoundingClientRect().height, r = ne.SCROLLBAR_SIZE, l = t * s + n + o + r;
664
690
  e(this, S).style.height = `${l}px`;
665
691
  }, "#applyAutoHeight"));
666
- h(this, be, /* @__PURE__ */ a(() => {
667
- const t = Array.from(e(this, S).children).filter((d) => d.tagName === "TABLE"), s = e(this, S).getAttribute("auto-height") === "true", n = t.length, r = t.map((d, c) => {
668
- const u = `<nine-table-sheet class="${c === 0 ? "active" : ""}" data-index="${c}"></nine-table-sheet>`, y = c < n - 1 ? `<nine-splitter class="h" data-split-index="${c}"></nine-splitter>` : "";
669
- return u + y;
670
- }).join(""), o = t.map((d, c) => `<div class="nine-tab-item ${c === 0 ? "active" : ""}" data-index="${c}">Sheet ${c + 1}</div>`).join("");
692
+ d(this, ye, /* @__PURE__ */ a(() => {
693
+ const t = Array.from(e(this, S).children).filter((c) => c.tagName === "TABLE"), s = e(this, S).getAttribute("auto-height") === "true", n = t.length, o = t.map((c, h) => {
694
+ const g = `<nine-table-sheet class="${h === 0 ? "active" : ""}" data-index="${h}"></nine-table-sheet>`, u = h < n - 1 ? `<nine-splitter class="h" data-split-index="${h}"></nine-splitter>` : "";
695
+ return g + u;
696
+ }).join(""), r = t.map((c, h) => `<div class="nine-tab-item ${h === 0 ? "active" : ""}" data-index="${h}">Sheet ${h + 1}</div>`).join("");
671
697
  e(this, S).shadowRoot.innerHTML = `
672
698
  <style>
673
699
  :host {
@@ -757,9 +783,9 @@ const $e = class $e {
757
783
  <nine-table-body>
758
784
  <nine-table-summary></nine-table-summary>
759
785
  <nine-table-sheets>
760
- <nine-table-sheets-body>${r}</nine-table-sheets-body>
786
+ <nine-table-sheets-body>${o}</nine-table-sheets-body>
761
787
  <nine-table-sheets-footer>
762
- <div class="nine-tab-bar">${o}</div>
788
+ <div class="nine-tab-bar">${r}</div>
763
789
  <div class="sheets-counter">Total : <span id="row-count">0</span></div>
764
790
  </nine-table-sheets-footer>
765
791
  </nine-table-sheets>
@@ -768,51 +794,51 @@ const $e = class $e {
768
794
  <nine-table-footer></nine-table-footer>
769
795
  `;
770
796
  const l = e(this, S).shadowRoot.querySelectorAll("nine-table-sheet");
771
- l == null || l.forEach((d, c) => {
772
- t[c] && setTimeout(() => {
773
- d.generate(t[c]), s && e(this, ie).call(this);
797
+ l == null || l.forEach((c, h) => {
798
+ t[h] && setTimeout(() => {
799
+ c.generate(t[h]), s && e(this, ie).call(this);
774
800
  });
775
801
  });
776
802
  }, "#render"));
777
- g(this, S, i), e(this, ge).call(this);
803
+ b(this, S, i), e(this, be).call(this);
778
804
  }
779
805
  };
780
- S = new WeakMap(), ge = new WeakMap(), ie = new WeakMap(), be = new WeakMap(), a($e, "LayoutManager");
781
- let qe = $e;
806
+ S = new WeakMap(), be = new WeakMap(), ie = new WeakMap(), ye = new WeakMap(), a(We, "LayoutManager");
807
+ let Te = We;
782
808
  var M, V;
783
- const We = class We {
809
+ const Oe = class Oe {
784
810
  constructor(i) {
785
- h(this, M);
786
- h(this, V, -1);
811
+ d(this, M);
812
+ d(this, V, -1);
787
813
  x(this, "count", /* @__PURE__ */ a(() => e(this, M).rawRecords.length, "count"));
788
- g(this, M, i);
814
+ b(this, M, i);
789
815
  }
790
816
  get at() {
791
817
  return e(this, V);
792
818
  }
793
819
  set at(i) {
794
820
  var s, n;
795
- g(this, V, parseInt(i, 10));
821
+ b(this, V, parseInt(i, 10));
796
822
  const t = ((n = (s = e(this, M).owner).querySelector) == null ? void 0 : n.call(s, ".ng-container-body")) || e(this, M).owner.body;
797
823
  t && !t.querySelector(`tbody.bindable tr[data-row="${e(this, V)}"]`) && setTimeout(() => {
798
- var r, o;
799
- (o = (r = e(this, M).owner).scrollTo_V1) == null || o.call(r, e(this, V));
824
+ var o, r;
825
+ (r = (o = e(this, M).owner).scrollTo_V1) == null || r.call(o, e(this, V));
800
826
  });
801
827
  }
802
828
  };
803
- M = new WeakMap(), V = new WeakMap(), a(We, "ngRow");
804
- let Te = We;
805
- var R, m, A, U, ye, $, pe, se, me, we, K;
829
+ M = new WeakMap(), V = new WeakMap(), a(Oe, "ngRow");
830
+ let ke = Oe;
831
+ var R, m, A, K, pe, $, me, se, we, xe, Z;
806
832
  const q = class q {
807
833
  constructor(i, t) {
808
- h(this, R);
809
- h(this, m);
810
- h(this, A, []);
811
- h(this, U, []);
812
- h(this, ye, 0);
813
- h(this, $, []);
814
- h(this, pe, /* @__PURE__ */ a(() => {
815
- g(this, $, []);
834
+ d(this, R);
835
+ d(this, m);
836
+ d(this, A, []);
837
+ d(this, K, []);
838
+ d(this, pe, 0);
839
+ d(this, $, []);
840
+ d(this, me, /* @__PURE__ */ a(() => {
841
+ b(this, $, []);
816
842
  const i = e(this, R).template || [];
817
843
  Array.from(i).forEach((t) => {
818
844
  var s;
@@ -824,7 +850,7 @@ const q = class q {
824
850
  x(this, "set", /* @__PURE__ */ a((i) => {
825
851
  this.clear(), this.add(i, !1);
826
852
  }, "set"));
827
- h(this, se, /* @__PURE__ */ a(() => ({
853
+ d(this, se, /* @__PURE__ */ a(() => ({
828
854
  rowState: q.ROW_STATE.EMPTY,
829
855
  deleted: !1,
830
856
  filtered: !1,
@@ -834,102 +860,102 @@ const q = class q {
834
860
  _: [0, 0, 0, 0, q.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, e(this, $).slice(), -1, {}, {}]
835
861
  }), "#getDefaultMeta"));
836
862
  x(this, "reset", /* @__PURE__ */ a(() => {
837
- g(this, A, []), g(this, U, []);
863
+ b(this, A, []), b(this, K, []);
838
864
  }, "reset"));
839
865
  x(this, "clear", /* @__PURE__ */ a(() => {
840
866
  var i;
841
- e(this, m).rawRecords = [], g(this, A, []), g(this, U, []), (i = e(this, m).viewRecords) != null && i.reset && e(this, m).viewRecords.reset();
867
+ e(this, m).rawRecords = [], b(this, A, []), b(this, K, []), (i = e(this, m).viewRecords) != null && i.reset && e(this, m).viewRecords.reset();
842
868
  }, "clear"));
843
- h(this, me, /* @__PURE__ */ a((i) => {
869
+ d(this, we, /* @__PURE__ */ a((i) => {
844
870
  var n;
845
871
  Array.isArray(i) || (i = [i]);
846
872
  const t = typeof ((n = e(this, R).fields) == null ? void 0 : n.get) == "function" ? e(this, R).fields.get() : Object.keys(i[0] || {}), s = [];
847
- return i.forEach((r) => {
848
- const o = { v: [] };
873
+ return i.forEach((o) => {
874
+ const r = { v: [] };
849
875
  t.forEach((l) => {
850
- o.v.push(r[l] !== void 0 && r[l] !== null ? r[l] : "");
851
- }), s.push(o);
876
+ r.v.push(o[l] !== void 0 && o[l] !== null ? o[l] : "");
877
+ }), s.push(r);
852
878
  }), s;
853
879
  }, "#json2Array"));
854
- h(this, we, /* @__PURE__ */ a((i) => (Array.isArray(i) || (i = [i]), i.forEach((t) => {
880
+ d(this, xe, /* @__PURE__ */ a((i) => (Array.isArray(i) || (i = [i]), i.forEach((t) => {
855
881
  t.__ng = e(this, se).call(this), t.__ng.rowid = this.nextId, t.__ng.rowState = q.ROW_STATE.INSERT, t.__ng._[0] = t.__ng.rowid;
856
882
  }), i), "#defaultInsert"));
857
883
  x(this, "add", /* @__PURE__ */ a((i, t = !0) => {
858
- var r;
884
+ var o;
859
885
  i === void 0 && (i = {});
860
- const s = e(this, me).call(this, i);
861
- e(this, m).rawRecords = e(this, m).rawRecords.concat(e(this, we).call(this, s)), this.resetRecords();
886
+ const s = e(this, we).call(this, i);
887
+ e(this, m).rawRecords = e(this, m).rawRecords.concat(e(this, xe).call(this, s)), this.resetRecords();
862
888
  const n = this.count() - 1;
863
- return t || s.forEach((o, l) => {
864
- const d = e(this, m).rawRecords[n - l];
865
- d && (d.__ng.rowState = q.ROW_STATE.EMPTY);
866
- }), (r = e(this, m).viewRecords) != null && r.reset && e(this, m).viewRecords.reset(), n;
889
+ return t || s.forEach((r, l) => {
890
+ const c = e(this, m).rawRecords[n - l];
891
+ c && (c.__ng.rowState = q.ROW_STATE.EMPTY);
892
+ }), (o = e(this, m).viewRecords) != null && o.reset && e(this, m).viewRecords.reset(), n;
867
893
  }, "add"));
868
894
  x(this, "delete", /* @__PURE__ */ a((i) => {
869
895
  var s;
870
896
  let t = [];
871
- Array.isArray(i) ? t = i : typeof i > "u" ? t = [e(this, m).owner.row.at] : t = [parseInt(i, 10)], t.sort((n, r) => r - n).forEach((n) => {
897
+ Array.isArray(i) ? t = i : typeof i > "u" ? t = [e(this, m).owner.row.at] : t = [parseInt(i, 10)], t.sort((n, o) => o - n).forEach((n) => {
872
898
  if (e(this, A)[n]) {
873
- const r = e(this, A)[n].__ng.rowid;
874
- e(this, A)[n].__ng.rowState === q.ROW_STATE.INSERT ? e(this, m).rawRecords = e(this, m).rawRecords.filter((o) => o.__ng.rowid !== r) : e(this, m).rawRecords.forEach((o) => {
875
- o.__ng.rowid === r && (o.__ng.deleted = !0, o.__ng.rowState = q.ROW_STATE.DELETE);
899
+ const o = e(this, A)[n].__ng.rowid;
900
+ e(this, A)[n].__ng.rowState === q.ROW_STATE.INSERT ? e(this, m).rawRecords = e(this, m).rawRecords.filter((r) => r.__ng.rowid !== o) : e(this, m).rawRecords.forEach((r) => {
901
+ r.__ng.rowid === o && (r.__ng.deleted = !0, r.__ng.rowState = q.ROW_STATE.DELETE);
876
902
  });
877
903
  }
878
904
  }), this.resetRecords(), (s = e(this, m).viewRecords) != null && s.reset && e(this, m).viewRecords.reset();
879
905
  }, "delete"));
880
906
  x(this, "setValue", /* @__PURE__ */ a((i, t, s) => {
881
- var d;
907
+ var c;
882
908
  i = parseInt(i, 10);
883
- const r = (typeof ((d = e(this, R).fields) == null ? void 0 : d.get) == "function" ? e(this, R).fields.get() : []).indexOf(t);
884
- if (r < 0) return;
885
- const o = this.getValidData()[i];
886
- if (!o) return;
887
- const l = o.v[r];
888
- l !== s && o.__ng.rowState !== q.ROW_STATE.INSERT && (o.__ng.o.hasOwnProperty(t) || (o.__ng.o[t] = l), o.__ng.rowState = q.ROW_STATE.UPDATE), o.v[r] = s, e(this, m).owner.refreshData && e(this, m).owner.refreshData(i);
909
+ const o = (typeof ((c = e(this, R).fields) == null ? void 0 : c.get) == "function" ? e(this, R).fields.get() : []).indexOf(t);
910
+ if (o < 0) return;
911
+ const r = this.getValidData()[i];
912
+ if (!r) return;
913
+ const l = r.v[o];
914
+ l !== s && r.__ng.rowState !== q.ROW_STATE.INSERT && (r.__ng.o.hasOwnProperty(t) || (r.__ng.o[t] = l), r.__ng.rowState = q.ROW_STATE.UPDATE), r.v[o] = s, e(this, m).owner.refreshData && e(this, m).owner.refreshData(i);
889
915
  }, "setValue"));
890
916
  x(this, "resetRecords", /* @__PURE__ */ a(() => {
891
- g(this, U, e(this, m).rawRecords.filter((i) => !i.__ng.deleted)), g(this, A, e(this, m).rawRecords.filter((i) => !i.__ng.deleted && !i.__ng.filtered)), e(this, m).rawRecords.forEach((i, t) => {
917
+ b(this, K, e(this, m).rawRecords.filter((i) => !i.__ng.deleted)), b(this, A, e(this, m).rawRecords.filter((i) => !i.__ng.deleted && !i.__ng.filtered)), e(this, m).rawRecords.forEach((i, t) => {
892
918
  i.__ng.rowidx = t;
893
919
  }), e(this, A).forEach((i, t) => {
894
920
  i.__ng.i = t;
895
921
  });
896
922
  }, "resetRecords"));
897
923
  x(this, "getValidData", /* @__PURE__ */ a(() => (e(this, A).length === 0 && e(this, m).rawRecords.length > 0 && this.resetRecords(), e(this, A)), "getValidData"));
898
- h(this, K, /* @__PURE__ */ a((i) => {
924
+ d(this, Z, /* @__PURE__ */ a((i) => {
899
925
  var s;
900
926
  if (!i) return i;
901
927
  const t = typeof ((s = e(this, R).fields) == null ? void 0 : s.get) == "function" ? e(this, R).fields.get() : [];
902
928
  return Array.isArray(i) ? i.filter((n) => !n.__ng.deleted).map((n) => {
903
- const r = {};
904
- return t.forEach((o, l) => {
905
- r[o] = n.v ? n.v[l] : n[o];
906
- }), r.__ng = n.__ng, r;
929
+ const o = {};
930
+ return t.forEach((r, l) => {
931
+ o[r] = n.v ? n.v[l] : n[r];
932
+ }), o.__ng = n.__ng, o;
907
933
  }) : i;
908
934
  }, "#conv2"));
909
935
  x(this, "count", /* @__PURE__ */ a(() => this.getValidData().length, "count"));
910
936
  x(this, "get", /* @__PURE__ */ a((i, t) => {
911
- var r;
937
+ var o;
912
938
  const s = this.getValidData();
913
939
  if (!s || s.length <= 0) return;
914
- if (i == null) return e(this, K).call(this, s);
940
+ if (i == null) return e(this, Z).call(this, s);
915
941
  if (i < 0 || i >= s.length) return null;
916
- const n = typeof ((r = e(this, R).fields) == null ? void 0 : r.get) == "function" ? e(this, R).fields.get() : [];
942
+ const n = typeof ((o = e(this, R).fields) == null ? void 0 : o.get) == "function" ? e(this, R).fields.get() : [];
917
943
  if (t != null) {
918
- const o = n.indexOf(t);
919
- return o >= 0 ? s[i].v[o] : null;
944
+ const r = n.indexOf(t);
945
+ return r >= 0 ? s[i].v[r] : null;
920
946
  }
921
- return e(this, K).call(this, s[i]);
947
+ return e(this, Z).call(this, s[i]);
922
948
  }, "get"));
923
- g(this, R, i), g(this, m, t), e(this, pe).call(this);
949
+ b(this, R, i), b(this, m, t), e(this, me).call(this);
924
950
  }
925
951
  get source() {
926
- return e(this, K).call(this, e(this, m).rawRecords);
952
+ return e(this, Z).call(this, e(this, m).rawRecords);
927
953
  }
928
954
  set source(i) {
929
955
  this.clear(), this.add(i, !1);
930
956
  }
931
957
  get nextId() {
932
- return ++Ve(this, ye)._;
958
+ return ++Xe(this, pe)._;
933
959
  }
934
960
  get length() {
935
961
  return e(this, A).length;
@@ -938,7 +964,7 @@ const q = class q {
938
964
  return this.length;
939
965
  }
940
966
  };
941
- R = new WeakMap(), m = new WeakMap(), A = new WeakMap(), U = new WeakMap(), ye = new WeakMap(), $ = new WeakMap(), pe = new WeakMap(), se = new WeakMap(), me = new WeakMap(), we = new WeakMap(), K = new WeakMap(), a(q, "ngData"), // 🎯 ν–‰ μƒνƒœ μ •μ˜ μƒμˆ˜λ₯Ό 클래슀 λ‚΄λΆ€λ‘œ λ‚΄μž¬ν™”
967
+ R = new WeakMap(), m = new WeakMap(), A = new WeakMap(), K = new WeakMap(), pe = new WeakMap(), $ = new WeakMap(), me = new WeakMap(), se = new WeakMap(), we = new WeakMap(), xe = new WeakMap(), Z = new WeakMap(), a(q, "ngData"), // 🎯 ν–‰ μƒνƒœ μ •μ˜ μƒμˆ˜λ₯Ό 클래슀 λ‚΄λΆ€λ‘œ λ‚΄μž¬ν™”
942
968
  x(q, "ROW_STATE", {
943
969
  EMPTY: "EMPTY",
944
970
  NORMAL: "NORMAL",
@@ -946,19 +972,19 @@ x(q, "ROW_STATE", {
946
972
  UPDATE: "UPDATE",
947
973
  DELETE: "DELETE"
948
974
  });
949
- let ke = q;
950
- const Oe = class Oe {
975
+ let Le = q;
976
+ const ze = class ze {
951
977
  constructor(i) {
952
- this.owner = i, this.row = new Te(this), this.data = new ke(i, this), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.pageCnt = 25, this.viewRecords.reset = () => {
978
+ this.owner = i, this.row = new ke(this), this.data = new Le(i, this), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.pageCnt = 25, this.viewRecords.reset = () => {
953
979
  var t;
954
980
  (t = this.owner.view) != null && t.redraw && this.owner.view.redraw();
955
981
  }, this.setDataSource = (t) => {
956
982
  this.data && this.data.reset(), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.data.set(t || []);
957
983
  }, this.getRowState = (t) => {
958
- var n, r;
984
+ var n, o;
959
985
  const s = parseInt(t, 10);
960
986
  if (!(s >= this.data.count()))
961
- return (r = (n = this.data.getValidData()[s]) == null ? void 0 : n.__ng) == null ? void 0 : r.rowState;
987
+ return (o = (n = this.data.getValidData()[s]) == null ? void 0 : n.__ng) == null ? void 0 : o.rowState;
962
988
  }, this.getRowPosition = () => this.row.at, this.setRowPosition = (t) => {
963
989
  this.row.at = t;
964
990
  }, this.scrollTo_V1 = (t) => (t < 0 && (t = 0), t >= this.rawRecords.length && (t = this.rawRecords.length - 1), this.viewRecords.rawIndex = t, this.viewRecords.reset && this.viewRecords.reset(), !(t <= 0 || t >= this.rawRecords.length - 1)), this.getColumn = (t, s) => this.data.get(t, s), this.setColumn = (t, s, n) => {
@@ -966,19 +992,19 @@ const Oe = class Oe {
966
992
  }, this.setDataSource([]);
967
993
  }
968
994
  };
969
- a(Oe, "ngDataManager");
970
- let Le = Oe;
971
- var X, xe;
972
- const ze = class ze extends HTMLElement {
995
+ a(ze, "ngDataManager");
996
+ let Ce = ze;
997
+ var X, ve;
998
+ const Ne = class Ne extends HTMLElement {
973
999
  constructor() {
974
1000
  super();
975
1001
  //#created = false;
976
- h(this, X);
977
- h(this, xe);
978
- this.attachShadow({ mode: "open" }), g(this, X, new Le(this));
1002
+ d(this, X);
1003
+ d(this, ve);
1004
+ this.attachShadow({ mode: "open" }), b(this, X, new Ce(this));
979
1005
  }
980
1006
  connectedCallback() {
981
- g(this, xe, new qe(this)), j.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
1007
+ b(this, ve, new Te(this)), j.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
982
1008
  }
983
1009
  disconnectedCallback() {
984
1010
  j.log("NineTable disconnected.");
@@ -996,7 +1022,7 @@ const ze = class ze extends HTMLElement {
996
1022
  return e(this, X);
997
1023
  }
998
1024
  };
999
- X = new WeakMap(), xe = new WeakMap(), a(ze, "NineTable");
1000
- let Ce = ze;
1001
- customElements.get("nine-table") || customElements.define("nine-table", Ce);
1025
+ X = new WeakMap(), ve = new WeakMap(), a(Ne, "NineTable");
1026
+ let _e = Ne;
1027
+ customElements.get("nine-table") || customElements.define("nine-table", _e);
1002
1028
  //# sourceMappingURL=nine-table.js.map