@ninebone/table 0.0.74 → 0.0.76

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,378 +1,101 @@
1
- var yt = Object.defineProperty;
2
- var vt = (v) => {
3
- throw TypeError(v);
1
+ var P = Object.defineProperty;
2
+ var Z = (r) => {
3
+ throw TypeError(r);
4
4
  };
5
- var wt = (v, a, e) => a in v ? yt(v, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : v[a] = e;
6
- var h = (v, a) => yt(v, "name", { value: a, configurable: !0 });
7
- var T = (v, a, e) => wt(v, typeof a != "symbol" ? a + "" : a, e), xt = (v, a, e) => a.has(v) || vt("Cannot " + e);
8
- var t = (v, a, e) => (xt(v, a, "read from private field"), e ? e.call(v) : a.get(v)), f = (v, a, e) => a.has(v) ? vt("Cannot add the same private member more than once") : a instanceof WeakSet ? a.add(v) : a.set(v, e), y = (v, a, e, o) => (xt(v, a, "write to private field"), o ? o.call(v, e) : a.set(v, e), e);
9
- import { trace as St } from "@ninebone/util";
10
- const ut = class ut extends St.constructor {
5
+ var D = (r, t, e) => t in r ? P(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
6
+ var h = (r, t) => P(r, "name", { value: t, configurable: !0 });
7
+ var q = (r, t, e) => D(r, typeof t != "symbol" ? t + "" : t, e), X = (r, t, e) => t.has(r) || Z("Cannot " + e);
8
+ var a = (r, t, e) => (X(r, t, "read from private field"), e ? e.call(r) : t.get(r)), w = (r, t, e) => t.has(r) ? Z("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(r) : t.set(r, e), E = (r, t, e, l) => (X(r, t, "write to private field"), l ? l.call(r, e) : t.set(r, e), e);
9
+ import { trace as G } from "@ninebone/util";
10
+ const j = class j extends G.constructor {
11
11
  constructor() {
12
12
  super(), this.init("nine-table", "green");
13
13
  }
14
14
  };
15
- h(ut, "Trace");
16
- let st = ut;
17
- const Z = new st();
18
- var w, H, b, S, C, _, G, J, Q, X, U, K, N, Y, D;
19
- const bt = class bt extends HTMLElement {
15
+ h(j, "Trace");
16
+ let I = j;
17
+ const $ = new I();
18
+ var S, R;
19
+ const k = class k extends HTMLElement {
20
20
  constructor() {
21
21
  super();
22
- f(this, w);
23
- f(this, H);
24
- f(this, b);
25
- f(this, S);
26
- f(this, C);
27
- f(this, _);
28
- f(this, G, 0);
29
- T(this, "refresh", /* @__PURE__ */ h(() => {
30
- if (!t(this, w)) return;
31
- const e = t(this, w).querySelector(".ng-container-body");
22
+ w(this, S, null);
23
+ q(this, "init", /* @__PURE__ */ h((e) => {
32
24
  if (!e) return;
33
- const o = $(t(this, b).thumb, this.shadowRoot), i = e.querySelector("table > thead");
34
- t(this, w).getRowCount;
35
- const n = $(t(this, b).track).height(), c = $(t(this, b).thumb).height(), s = t(this, w).getRowCount ? t(this, w).getRowCount() : 0;
36
- if (s <= 10) {
37
- $(this).hide();
38
- return;
39
- } else
40
- $(this).show();
41
- const p = i ? i.getBoundingClientRect().height : 0, l = Math.max(Math.min(n * (e.clientHeight - p) / (32 * s), n), 16);
42
- o[0].dataset.height = l, o.css({ height: l });
43
- const m = n - t(this, D).call(this);
44
- if (m <= 0) return;
45
- let r = 0;
46
- const u = e.scrollHeight - e.clientHeight;
47
- u > 0 && (r = parseInt(e.scrollTop / u * m, 10), r > n - c && (r = n - c), r < 0 && (r = 0)), t(this, b).thumb.style.top = r + "px", t(this, b).top.disabled = e.scrollTop <= 0, t(this, b).bottom.disabled = e.scrollTop >= u;
48
- }, "refresh"));
49
- T(this, "delayScroll", /* @__PURE__ */ h((e, o, i, n) => {
50
- clearInterval(t(this, S)), clearInterval(t(this, C));
51
- const c = t(this, w).querySelector(".ng-container-body");
52
- c && (c.scrollTop += e * 32), y(this, S, setInterval(() => {
53
- clearInterval(t(this, S)), y(this, C, setInterval(() => {
54
- c && (c.scrollTop += e * 32, n && n.call());
55
- }, i));
56
- }, o));
57
- }, "delayScroll"));
58
- T(this, "stopScroll", /* @__PURE__ */ h(() => {
59
- clearInterval(t(this, S)), clearInterval(t(this, C));
60
- }, "stopScroll"));
61
- f(this, J, /* @__PURE__ */ h(() => {
62
- const e = /* @__PURE__ */ h((i) => {
63
- clearInterval(t(this, S)), clearInterval(t(this, C));
64
- const n = t(this, w).querySelector(".ng-container-body");
65
- n && (n.scrollTop += i * 32), y(this, S, setInterval(() => {
66
- clearInterval(t(this, S)), y(this, C, setInterval(() => {
67
- n && (n.scrollTop += i * 32);
68
- }, 10));
69
- }, 500));
70
- }, "delayScrollAction");
71
- $(t(this, b).top).on("mousedown", (i) => {
72
- i.buttons != 1 || i.altKey || i.ctrlKey || i.shiftKey || e(-1);
73
- }), $(t(this, b).bottom).on("mousedown", (i) => {
74
- i.buttons != 1 || i.altKey || i.ctrlKey || i.shiftKey || e(1);
75
- }), $(t(this, b).top).on("touchstart", (i) => {
76
- e(-1);
77
- }), $(t(this, b).bottom).on("touchstart", (i) => {
78
- e(1);
79
- });
80
- const o = /* @__PURE__ */ h(() => {
81
- clearInterval(t(this, S)), clearInterval(t(this, C));
82
- }, "clearTimer");
83
- t(this, b).top.ontouchend = t(this, b).bottom.ontouchend = t(this, b).track.ontouchend = t(this, b).top.onmouseup = t(this, b).top.onmouseleave = t(this, b).bottom.onmouseup = t(this, b).bottom.onmouseleave = t(this, b).track.onmouseup = t(this, b).track.onmouseleave = o, $(t(this, b).track).on("mousedown", t(this, X)), $(t(this, b).track).on("touchstart", t(this, Q)), $(t(this, b).thumb).on("mousedown", t(this, N)), $(t(this, b).thumb).on("touchstart", t(this, U)), document.addEventListener("mouseup", (i) => {
84
- t(this, H) && y(this, H, !1), document.removeEventListener("mousemove", t(this, Y));
85
- }), document.addEventListener("touchend", (i) => {
86
- y(this, H, !1), document.removeEventListener("touchmove", t(this, K));
87
- });
88
- }, "#init"));
89
- f(this, Q, /* @__PURE__ */ h((e) => {
90
- e.target.getBoundingClientRect(), e.clientX = e.targetTouches[0].clientX, e.clientY = e.targetTouches[0].clientY, e.buttons = 1, t(this, X).call(this, e);
91
- }, "#track_onTouchStart"));
92
- f(this, X, /* @__PURE__ */ h((e) => {
93
- if (t(this, H) || e.buttons != 1 || e.altKey || e.ctrlKey || e.shiftKey) return;
94
- e.preventDefault();
95
- var o = t(this, b).thumb.getBoundingClientRect();
96
- const i = t(this, w).querySelector(".ng-container-body");
97
- if (!i) return;
98
- const n = i.clientHeight, c = e.clientY > o.y ? n : -n;
99
- i.scrollTop += c, clearInterval(t(this, S)), clearInterval(t(this, C)), y(this, S, setInterval(() => {
100
- clearInterval(t(this, S)), y(this, C, setInterval(() => {
101
- var s = t(this, b).thumb.getBoundingClientRect();
102
- e.clientY > s.y && e.clientY < s.y + s.height ? clearInterval(t(this, C)) : i.scrollTop += e.clientY > s.y ? n : -n;
103
- }, 10));
104
- }, 500));
105
- }, "#track_onMouseDown"));
106
- f(this, U, /* @__PURE__ */ h((e) => {
107
- e.clientX = e.targetTouches[0].clientX, e.clientY = e.targetTouches[0].clientY, e.buttons = 1, t(this, N).call(this, e), document.addEventListener("touchmove", t(this, K));
108
- }, "#thumb_onTouchStart"));
109
- f(this, K, /* @__PURE__ */ h((e) => {
110
- e.clientX = e.targetTouches[0].clientX, e.clientY = e.targetTouches[0].clientY, e.buttons = 1, t(this, Y).call(this, e);
111
- }, "#thumb_onTouchMove"));
112
- f(this, N, /* @__PURE__ */ h((e) => {
113
- y(this, G, e.clientY), y(this, H, !0), this.shiftY = e.offsetY + t(this, b).track.getBoundingClientRect().y, this.trackHeight = $(t(this, b).track).height(), this.thumbHeight = $(t(this, b).thumb).height(), y(this, _, !0), document.addEventListener("mousemove", t(this, Y));
114
- }, "#thumb_onMouseDown"));
115
- f(this, Y, /* @__PURE__ */ h((e) => {
116
- if (!t(this, H)) return;
117
- e.preventDefault();
118
- const o = this.trackHeight, i = t(this, D).call(this);
119
- var n = e.clientY - this.shiftY;
120
- n < 0 && (n = 0), n + i > o && (n = parseInt(o - i)), t(this, b).thumb.style.top = n + "px";
121
- const c = t(this, w).querySelector(".ng-container-body");
122
- if (!c) return;
123
- const s = c.scrollHeight - c.clientHeight, p = o - i;
124
- p > 0 && s > 0 && (c.scrollTop = n / p * s);
125
- }, "#thumb_onMouseMove"));
126
- f(this, D, /* @__PURE__ */ h(() => parseInt(t(this, b).thumb.dataset.height || 30, 10), "#getThumbHeight"));
127
- }
128
- connectedCallback() {
129
- y(this, w, this.getRootNode().host), t(this, w) && (this.shadowRoot.innerHTML = `
130
- <button class='ng-scroll-top' disabled><div class='ng-scroll-icon'></div></button>
131
- <div class='ng-scroll-track'> <div class='ng-scroll-thumb'></div> </div>
132
- <button class='ng-scroll-bottom'><div class='ng-scroll-icon'></div></button>
133
- `, super.connectedCallback(), y(this, b, {
134
- track: this.shadowRoot.querySelector(".ng-scroll-track"),
135
- thumb: this.shadowRoot.querySelector(".ng-scroll-thumb"),
136
- top: this.shadowRoot.querySelector(".ng-scroll-top"),
137
- bottom: this.shadowRoot.querySelector(".ng-scroll-bottom")
138
- }), t(this, J).call(this));
139
- }
140
- };
141
- w = new WeakMap(), H = new WeakMap(), b = new WeakMap(), S = new WeakMap(), C = new WeakMap(), _ = new WeakMap(), G = new WeakMap(), J = new WeakMap(), Q = new WeakMap(), X = new WeakMap(), U = new WeakMap(), K = new WeakMap(), N = new WeakMap(), Y = new WeakMap(), D = new WeakMap(), h(bt, "NineTableVScrollBar");
142
- let lt = bt;
143
- customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar", lt);
144
- var R, W, d, A, M, B, V, j;
145
- const ft = class ft extends HTMLElement {
146
- constructor() {
147
- super();
148
- f(this, R);
149
- f(this, W);
150
- f(this, d);
151
- f(this, A);
152
- f(this, M);
153
- T(this, "refresh", /* @__PURE__ */ h(() => {
154
- if (!t(this, R)) return;
155
- const e = t(this, R).querySelector(".ng-container-body");
156
- if (!e) return;
157
- const o = e.querySelector("table");
158
- if (!o) return;
159
- const i = $(t(this, d).track, this), n = $(t(this, d).thumb, this), c = t(this, R).querySelector(".ng-container-bottom");
160
- if (e.clientWidth !== 0 && o.scrollWidth > e.clientWidth)
161
- $(c).show();
162
- else {
163
- $(c).hide();
164
- return;
165
- }
166
- const s = i.width();
167
- if (s <= 0) return;
168
- const p = Math.max(Math.min(s * (e.clientWidth / o.scrollWidth), s), 20);
169
- n.width(p);
170
- const l = o.scrollWidth - e.clientWidth, m = s - p;
171
- let r = 0;
172
- l > 0 && (r = parseInt(e.scrollLeft / l * m, 10)), r < 0 && (r = 0), r > m && (r = m), n.css({ left: r }), t(this, d).left.disabled = e.scrollLeft <= 0, t(this, d).right.disabled = e.scrollLeft >= l;
173
- }, "refresh"));
174
- f(this, B, /* @__PURE__ */ h((e) => {
175
- if (!t(this, d)) return;
176
- const o = t(this, R).querySelector(".ng-container-body"), i = o.querySelector("table");
177
- if (!i) return;
178
- const n = t(this, d).track.getBoundingClientRect(), c = t(this, d).thumb.getBoundingClientRect();
179
- let s = e;
180
- s < 0 && (s = 0), s + c.width > n.width && (s = n.width - c.width), s = parseInt(s, 10), t(this, d).thumb.style.left = s + "px";
181
- const p = i.scrollWidth - o.clientWidth, l = n.width - c.width;
182
- return l > 0 && p > 0 && (o.scrollLeft = s / l * p), t(this, d).left.disabled = s <= 0, t(this, d).right.disabled = s >= l, s > 0 && s < l;
183
- }, "#thumbMoveTo"));
184
- f(this, V, /* @__PURE__ */ h(() => {
185
- const e = t(this, R).querySelector(".ng-container-body");
186
- e && e.addEventListener("scroll", () => {
187
- this.refresh();
188
- });
189
- const o = /* @__PURE__ */ h((n) => {
190
- clearInterval(t(this, A)), clearInterval(t(this, M));
191
- const c = t(this, d).track.getBoundingClientRect(), s = t(this, d).thumb.getBoundingClientRect();
192
- t(this, B).call(this, s.x - c.x + n), y(this, A, setInterval(() => {
193
- clearInterval(t(this, A)), y(this, M, setInterval(() => {
194
- const p = t(this, d).track.getBoundingClientRect(), l = t(this, d).thumb.getBoundingClientRect();
195
- t(this, B).call(this, l.x - p.x + n) || clearInterval(t(this, M));
196
- }, 10));
197
- }, 500));
198
- }, "delayScroll"), i = /* @__PURE__ */ h(() => {
199
- clearInterval(t(this, A)), clearInterval(t(this, M));
200
- }, "clearTimer");
201
- t(this, d).left.ontouchend = t(this, d).right.ontouchend = t(this, d).track.ontouchend = t(this, d).left.onmouseup = t(this, d).left.onmouseleave = t(this, d).right.onmouseup = t(this, d).right.onmouseleave = t(this, d).track.onmouseup = t(this, d).track.onmouseleave = i, $(t(this, d).left).on("mousedown", (n) => {
202
- n.buttons == 1 && o(-10);
203
- }), $(t(this, d).right).on("mousedown", (n) => {
204
- n.buttons == 1 && o(10);
205
- }), $(t(this, d).left).on("touchstart", (n) => {
206
- o(-10);
207
- }), $(t(this, d).right).on("touchstart", (n) => {
208
- o(10);
209
- }), $(t(this, d).track).on("mousedown", (n) => {
210
- if (n.buttons != 1) return;
211
- n.preventDefault();
212
- const c = t(this, d).track.getBoundingClientRect(), s = t(this, d).thumb.getBoundingClientRect().width;
213
- t(this, B).call(this, n.clientX - c.left - s / 2);
214
- }), $(t(this, d).thumb).on("mousedown", (n) => {
215
- y(this, W, !0), this.shiftX = n.clientX - t(this, d).thumb.getBoundingClientRect().left, document.addEventListener("mousemove", t(this, j));
216
- }), document.addEventListener("mouseup", () => {
217
- y(this, W, !1), i(), document.removeEventListener("mousemove", t(this, j));
218
- });
219
- }, "#init"));
220
- f(this, j, /* @__PURE__ */ h((e) => {
221
- if (!t(this, W)) return;
222
- const o = t(this, d).track.getBoundingClientRect();
223
- t(this, B).call(this, e.clientX - o.left - this.shiftX);
224
- }, "#thumb_onMouseMove"));
225
- }
226
- connectedCallback() {
227
- y(this, R, this.getRootNode().host), t(this, R) && (this.innerHTML = `
228
- <style>
229
- nine-table-hscrollbar {
230
- display: flex;
231
- flex-direction: row;
232
- width: 100%;
233
- height: 100%;
234
- background: #f9fafb;
235
- box-sizing: border-box;
236
- user-select: none;
237
- }
238
- nine-table-hscrollbar button {
239
- width: 16px;
240
- height: 100%;
241
- background: #f3f4f6;
242
- border: none;
243
- cursor: pointer;
244
- display: flex;
245
- align-items: center;
246
- justify-content: center;
247
- padding: 0;
248
- }
249
- nine-table-hscrollbar button:disabled {
250
- opacity: 0.4;
251
- cursor: default;
252
- }
253
- nine-table-hscrollbar .ng-scroll-icon {
254
- width: 6px;
255
- height: 6px;
256
- border-top: 2px solid #6b7280;
257
- border-right: 2px solid #6b7280;
258
- }
259
- nine-table-hscrollbar .ng-scroll-left .ng-scroll-icon { transform: rotate(-135deg); }
260
- nine-table-hscrollbar .ng-scroll-right .ng-scroll-icon { transform: rotate(45deg); }
261
- nine-table-hscrollbar .ng-scroll-track {
262
- flex: 1;
263
- height: 100%;
264
- position: relative;
265
- background: #f3f4f6;
266
- overflow: hidden;
267
- }
268
- nine-table-hscrollbar .ng-scroll-thumb {
269
- position: absolute;
270
- top: 2px;
271
- bottom: 2px;
272
- background: #d1d5db;
273
- border-radius: 4px;
274
- cursor: pointer;
275
- }
276
- nine-table-hscrollbar .ng-scroll-thumb:hover {
277
- background: #9ca3af;
278
- }
279
- </style>
280
- <button class='ng-scroll-left' disabled><div class='ng-scroll-icon'></div></button>
281
- <div class='ng-scroll-track'><div class='ng-scroll-thumb'></div></div>
282
- <button class='ng-scroll-right'><div class='ng-scroll-icon'></div></button>
283
- `, y(this, d, {
284
- container: t(this, R).querySelector(".ng-container-body"),
285
- track: this.querySelector(".ng-scroll-track"),
286
- thumb: this.querySelector(".ng-scroll-thumb"),
287
- left: this.querySelector(".ng-scroll-left"),
288
- right: this.querySelector(".ng-scroll-right")
289
- }), t(this, V).call(this), setTimeout(() => this.refresh(), 0));
290
- }
291
- };
292
- R = new WeakMap(), W = new WeakMap(), d = new WeakMap(), A = new WeakMap(), M = new WeakMap(), B = new WeakMap(), V = new WeakMap(), j = new WeakMap(), h(ft, "NineTableHScrollBar");
293
- let rt = ft;
294
- customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", rt);
295
- var I, tt;
296
- const z = class z extends HTMLElement {
297
- constructor() {
298
- super();
299
- f(this, I, null);
300
- T(this, "init", /* @__PURE__ */ h((e) => {
301
- if (!e) return;
302
- const o = /* @__PURE__ */ h((l) => {
303
- const m = /* @__PURE__ */ h((u) => {
304
- if (u.querySelector("colgroup")) return;
305
- const g = u.querySelector("tbody tr") || u.querySelector("tr"), k = g ? g.querySelectorAll("th, td").length : 1, x = document.createElement("colgroup"), L = Math.max(Math.floor((u.clientWidth || 600) / k), 100);
306
- for (let q = 0; q < k; q++) {
307
- const it = document.createElement("col");
308
- it.setAttribute("width", L), x.appendChild(it);
25
+ const l = /* @__PURE__ */ h((n) => {
26
+ const c = /* @__PURE__ */ h((i) => {
27
+ if (i.querySelector("colgroup")) return;
28
+ const s = i.querySelector("tbody tr") || i.querySelector("tr"), y = s ? s.querySelectorAll("th, td").length : 1, b = document.createElement("colgroup"), m = Math.max(Math.floor((i.clientWidth || 600) / y), 100);
29
+ for (let x = 0; x < y; x++) {
30
+ const z = document.createElement("col");
31
+ z.setAttribute("width", m), b.appendChild(z);
309
32
  }
310
- u.prepend(x);
311
- }, "ensureColgroup"), r = /* @__PURE__ */ h((u) => {
312
- if (u.querySelector("thead")) return;
313
- const g = document.createElement("thead"), k = u.querySelector("colgroup");
314
- k ? k.after(g) : u.prepend(g);
33
+ i.prepend(b);
34
+ }, "ensureColgroup"), o = /* @__PURE__ */ h((i) => {
35
+ if (i.querySelector("thead")) return;
36
+ const s = document.createElement("thead"), y = i.querySelector("colgroup");
37
+ y ? y.after(s) : i.prepend(s);
315
38
  }, "ensureThead");
316
- return m(l), r(l), l.classList.add("nine-table-element"), l;
317
- }, "initializeTable"), i = e.cloneNode(!0);
318
- y(this, I, o(i)), t(this, I).style.display = "table";
319
- const n = this.querySelector(".ng-container-left"), c = this.querySelector(".ng-container-body"), s = this.querySelector(".ng-container-right"), p = /* @__PURE__ */ h((l, m, r = !1) => {
320
- const u = l.cloneNode(!0), g = Array.from(u.querySelectorAll("colgroup col")), k = [];
321
- return g.forEach((x, L) => {
322
- const q = x.getAttribute("fixed");
323
- (r ? !q || q === "" : q === m) || k.push(L);
324
- }), k.reverse().forEach((x) => {
325
- g[x] && g[x].remove(), u.querySelectorAll("tr").forEach((L) => {
326
- const q = L.querySelectorAll("th, td");
327
- q[x] && q[x].remove();
39
+ return c(n), o(n), n.classList.add("nine-table-element"), n;
40
+ }, "initializeTable"), u = e.cloneNode(!0);
41
+ E(this, S, l(u)), a(this, S).style.display = "table";
42
+ const g = this.querySelector(".ng-container-left"), d = this.querySelector(".ng-container-body"), f = this.querySelector(".ng-container-right"), p = /* @__PURE__ */ h((n, c, o = !1) => {
43
+ const i = n.cloneNode(!0), s = Array.from(i.querySelectorAll("colgroup col")), y = [];
44
+ return s.forEach((b, m) => {
45
+ const x = b.getAttribute("fixed");
46
+ (o ? !x || x === "" : x === c) || y.push(m);
47
+ }), y.reverse().forEach((b) => {
48
+ s[b] && s[b].remove(), i.querySelectorAll("tr").forEach((m) => {
49
+ const x = m.querySelectorAll("th, td");
50
+ x[b] && x[b].remove();
328
51
  });
329
- }), u;
52
+ }), i;
330
53
  }, "filterTableByFixed");
331
- if (c) {
332
- const l = p(t(this, I), null, !0);
333
- c.innerHTML = "", c.appendChild(l);
54
+ if (d) {
55
+ const n = p(a(this, S), null, !0);
56
+ d.innerHTML = "", d.appendChild(n);
334
57
  }
335
- if (n) {
336
- const l = p(t(this, I), "left", !1);
337
- let m = 0;
338
- l.querySelectorAll("col").forEach((u) => {
339
- const g = parseInt(u.getAttribute("width"), 10);
340
- isNaN(g) || (m += g);
341
- }), n.innerHTML = "", n.appendChild(l);
342
- const r = m > 0 ? m : 0;
343
- n.style.flex = `0 0 ${r}px`, n.style.width = `${r}px`;
58
+ if (g) {
59
+ const n = p(a(this, S), "left", !1);
60
+ let c = 0;
61
+ n.querySelectorAll("col").forEach((i) => {
62
+ const s = parseInt(i.getAttribute("width"), 10);
63
+ isNaN(s) || (c += s);
64
+ }), g.innerHTML = "", g.appendChild(n);
65
+ const o = c > 0 ? c : 0;
66
+ g.style.flex = `0 0 ${o}px`, g.style.width = `${o}px`;
344
67
  }
345
- if (s) {
346
- const l = p(t(this, I), "right", !1);
347
- let m = 0;
348
- l.querySelectorAll("col").forEach((u) => {
349
- const g = parseInt(u.getAttribute("width"), 10);
350
- isNaN(g) || (m += g);
351
- }), s.innerHTML = "", s.appendChild(l);
352
- const r = m > 0 ? m : 0;
353
- s.style.flex = `0 0 ${r}px`, s.style.width = `${r}px`;
68
+ if (f) {
69
+ const n = p(a(this, S), "right", !1);
70
+ let c = 0;
71
+ n.querySelectorAll("col").forEach((i) => {
72
+ const s = parseInt(i.getAttribute("width"), 10);
73
+ isNaN(s) || (c += s);
74
+ }), f.innerHTML = "", f.appendChild(n);
75
+ const o = c > 0 ? c : 0;
76
+ f.style.flex = `0 0 ${o}px`, f.style.width = `${o}px`;
354
77
  }
355
- if (c) {
356
- const l = this.getRowCount();
357
- c.style.overflowY = l > 10 ? "auto" : "hidden", c.addEventListener("scroll", () => {
358
- const m = c.scrollLeft, r = this.querySelector("nine-table-hscrollbar");
359
- r && typeof r.syncThumb == "function" && r.syncThumb(m);
78
+ if (d) {
79
+ const n = this.getRowCount();
80
+ d.style.overflowY = n > 10 ? "auto" : "hidden", d.addEventListener("scroll", () => {
81
+ const c = d.scrollLeft, o = this.querySelector("nine-table-hscrollbar");
82
+ o && typeof o.syncThumb == "function" && o.syncThumb(c);
360
83
  });
361
84
  }
362
- Z.log(`NineTableSheet 3-split initialized with rows: ${this.getRowCount()}`);
85
+ $.log(`NineTableSheet 3-split initialized with rows: ${this.getRowCount()}`);
363
86
  }, "init"));
364
- T(this, "getRowCount", /* @__PURE__ */ h(() => t(this, I) ? t(this, I).querySelectorAll("tbody tr").length : 0, "getRowCount"));
87
+ q(this, "getRowCount", /* @__PURE__ */ h(() => a(this, S) ? a(this, S).querySelectorAll("tbody tr").length : 0, "getRowCount"));
365
88
  // 🎯 외부 스크롤바 및 컨트롤러 연동용 메서드
366
- T(this, "scrollToX", /* @__PURE__ */ h((e) => {
367
- const o = this.querySelector(".ng-container-body");
368
- o && (o.scrollLeft = e);
89
+ q(this, "scrollToX", /* @__PURE__ */ h((e) => {
90
+ const l = this.querySelector(".ng-container-body");
91
+ l && (l.scrollLeft = e);
369
92
  }, "scrollToX"));
370
- T(this, "scrollToY", /* @__PURE__ */ h((e) => {
371
- const o = this.querySelector(".ng-container-body");
372
- o && (o.scrollTop = e);
93
+ q(this, "scrollToY", /* @__PURE__ */ h((e) => {
94
+ const l = this.querySelector(".ng-container-body");
95
+ l && (l.scrollTop = e);
373
96
  }, "scrollToY"));
374
- f(this, tt, /* @__PURE__ */ h(() => {
375
- const e = z.SCROLLBAR_SIZE;
97
+ w(this, R, /* @__PURE__ */ h(() => {
98
+ const e = k.SCROLLBAR_SIZE;
376
99
  this.innerHTML = `
377
100
  <style>
378
101
  nine-table-sheet {
@@ -487,109 +210,109 @@ const z = class z extends HTMLElement {
487
210
  }, "#render"));
488
211
  }
489
212
  connectedCallback() {
490
- t(this, tt).call(this);
213
+ a(this, R).call(this);
491
214
  }
492
215
  disconnectedCallback() {
493
- this.innerHTML = "", Z.log("NineTableSheet destroyed.");
216
+ this.innerHTML = "", $.log("NineTableSheet destroyed.");
494
217
  }
495
218
  };
496
- I = new WeakMap(), tt = new WeakMap(), h(z, "NineTableSheet"), T(z, "SCROLLBAR_SIZE", 16);
497
- let ct = z;
498
- customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", ct);
499
- var et;
500
- const gt = class gt extends HTMLElement {
219
+ S = new WeakMap(), R = new WeakMap(), h(k, "NineTableSheet"), q(k, "SCROLLBAR_SIZE", 16);
220
+ let B = k;
221
+ customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", B);
222
+ var T;
223
+ const K = class K extends HTMLElement {
501
224
  constructor() {
502
225
  super();
503
- f(this, et, /* @__PURE__ */ h(() => {
226
+ w(this, T, /* @__PURE__ */ h(() => {
504
227
  const e = this.querySelector(".nine-tab-bar");
505
- e && (e.addEventListener("click", (o) => {
506
- const i = o.target.closest(".nine-tab-item");
507
- if (!i) return;
508
- const n = o.ctrlKey || o.metaKey || o.shiftKey, c = parseInt(i.dataset.index, 10);
509
- this.switchSheet(c, n);
228
+ e && (e.addEventListener("click", (l) => {
229
+ const u = l.target.closest(".nine-tab-item");
230
+ if (!u) return;
231
+ const g = l.ctrlKey || l.metaKey || l.shiftKey, d = parseInt(u.dataset.index, 10);
232
+ this.switchSheet(d, g);
510
233
  }), this.switchSheet(0, !1));
511
234
  }, "#init"));
512
- T(this, "switchSheet", /* @__PURE__ */ h((e, o = !1) => {
513
- const i = /* @__PURE__ */ h(() => {
514
- const r = this.querySelector("nine-table-sheets-body");
515
- r.querySelectorAll("nine-splitter").forEach((g) => {
516
- const k = parseInt(g.dataset.splitIndex, 10), x = r.querySelector(`nine-table-sheet[data-index="${k - 1}"]`), L = r.querySelector(`nine-table-sheet[data-index="${k}"]`);
517
- x && L && x.classList.contains("active") && L.classList.contains("active") ? g.classList.add("active") : g.classList.remove("active");
235
+ q(this, "switchSheet", /* @__PURE__ */ h((e, l = !1) => {
236
+ const u = /* @__PURE__ */ h(() => {
237
+ const o = this.querySelector("nine-table-sheets-body");
238
+ o.querySelectorAll("nine-splitter").forEach((s) => {
239
+ const y = parseInt(s.dataset.splitIndex, 10), b = o.querySelector(`nine-table-sheet[data-index="${y - 1}"]`), m = o.querySelector(`nine-table-sheet[data-index="${y}"]`);
240
+ b && m && b.classList.contains("active") && m.classList.contains("active") ? s.classList.add("active") : s.classList.remove("active");
518
241
  });
519
- }, "updateSplitters"), n = this.querySelector(".nine-tab-bar"), c = this.querySelector("nine-table-sheets-body"), s = n.querySelectorAll(".nine-tab-item"), p = c.querySelectorAll("nine-table-sheet");
520
- if (!s[e]) return;
521
- if (!o)
522
- s.forEach((r, u) => {
523
- r.classList.toggle("active", u === e);
524
- const g = c.querySelector(`nine-table-sheet[data-index="${u}"]`);
525
- g && (g.style.flex = "");
526
- }), p.forEach((r, u) => {
527
- r.classList.toggle("active", u === e);
242
+ }, "updateSplitters"), g = this.querySelector(".nine-tab-bar"), d = this.querySelector("nine-table-sheets-body"), f = g.querySelectorAll(".nine-tab-item"), p = d.querySelectorAll("nine-table-sheet");
243
+ if (!f[e]) return;
244
+ if (!l)
245
+ f.forEach((o, i) => {
246
+ o.classList.toggle("active", i === e);
247
+ const s = d.querySelector(`nine-table-sheet[data-index="${i}"]`);
248
+ s && (s.style.flex = "");
249
+ }), p.forEach((o, i) => {
250
+ o.classList.toggle("active", i === e);
528
251
  });
529
252
  else {
530
- const r = s[e], u = n.querySelectorAll(".nine-tab-item.active");
531
- if (r.classList.contains("active") && u.length <= 1)
253
+ const o = f[e], i = g.querySelectorAll(".nine-tab-item.active");
254
+ if (o.classList.contains("active") && i.length <= 1)
532
255
  return;
533
- r.classList.toggle("active");
534
- const g = c.querySelector(`nine-table-sheet[data-index="${e}"]`);
535
- g && (g.classList.toggle("active"), g.classList.contains("active") || (g.style.flex = ""));
256
+ o.classList.toggle("active");
257
+ const s = d.querySelector(`nine-table-sheet[data-index="${e}"]`);
258
+ s && (s.classList.toggle("active"), s.classList.contains("active") || (s.style.flex = ""));
536
259
  }
537
- const l = Array.from(c.querySelectorAll("nine-table-sheet.active"));
538
- if (l.length > 1) {
539
- const r = 1 / l.length;
540
- l.forEach((u) => {
541
- (!u.style.flex || u.style.flex === "1 1 100%") && (u.style.flex = `${r} ${r} 0px`);
260
+ const n = Array.from(d.querySelectorAll("nine-table-sheet.active"));
261
+ if (n.length > 1) {
262
+ const o = 1 / n.length;
263
+ n.forEach((i) => {
264
+ (!i.style.flex || i.style.flex === "1 1 100%") && (i.style.flex = `${o} ${o} 0px`);
542
265
  });
543
266
  } else
544
- l.forEach((r) => {
545
- r.style.flex = "1 1 100%";
267
+ n.forEach((o) => {
268
+ o.style.flex = "1 1 100%";
546
269
  });
547
- i();
548
- const m = c.querySelector("nine-table-sheet.active");
549
- if (m && typeof m.getRowCount == "function") {
550
- const r = this.querySelector("#row-count");
551
- r && (r.textContent = m.getRowCount().toLocaleString());
270
+ u();
271
+ const c = d.querySelector("nine-table-sheet.active");
272
+ if (c && typeof c.getRowCount == "function") {
273
+ const o = this.querySelector("#row-count");
274
+ o && (o.textContent = c.getRowCount().toLocaleString());
552
275
  }
553
276
  }, "switchSheet"));
554
277
  }
555
278
  connectedCallback() {
556
- t(this, et).call(this);
279
+ a(this, T).call(this);
557
280
  }
558
281
  };
559
- et = new WeakMap(), h(gt, "NineTableSheets");
560
- let at = gt;
561
- customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", at);
562
- var E, O, nt, F, ot;
563
- const mt = class mt {
564
- constructor(a) {
565
- f(this, E);
566
- f(this, O, null);
567
- f(this, nt, /* @__PURE__ */ h(() => {
568
- const a = t(this, E).host;
569
- a && (y(this, O, new ResizeObserver((e) => {
570
- for (let o of e)
571
- a.getAttribute("auto-height") === "true" && t(this, F).call(this, a);
572
- })), t(this, O).observe(a));
282
+ T = new WeakMap(), h(K, "NineTableSheets");
283
+ let N = K;
284
+ customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", N);
285
+ var v, C, H, A, M;
286
+ const Y = class Y {
287
+ constructor(t) {
288
+ w(this, v);
289
+ w(this, C, null);
290
+ w(this, H, /* @__PURE__ */ h(() => {
291
+ const t = a(this, v).host;
292
+ t && (E(this, C, new ResizeObserver((e) => {
293
+ for (let l of e)
294
+ t.getAttribute("auto-height") === "true" && a(this, A).call(this, t);
295
+ })), a(this, C).observe(t));
573
296
  }, "#observeResize"));
574
- f(this, F, /* @__PURE__ */ h((a) => {
575
- var L, q;
576
- const e = (L = a.shadowRoot) == null ? void 0 : L.querySelector("nine-table-sheet.active");
297
+ w(this, A, /* @__PURE__ */ h((t) => {
298
+ var m, x;
299
+ const e = (m = t.shadowRoot) == null ? void 0 : m.querySelector("nine-table-sheet.active");
577
300
  if (!e) return;
578
- const o = ((q = e.getRowCount) == null ? void 0 : q.call(e)) || 0, i = parseInt(a.getAttribute("max-display-row"), 10) || 10, n = Math.min(o, i), c = e.querySelector("tbody tr") || e.querySelector("tr"), s = c ? c.getBoundingClientRect().height : 32, p = t(this, E).querySelector("nine-table-header"), l = t(this, E).querySelector("nine-table-sheets-footer"), m = p ? p.getBoundingClientRect().height : 40, r = l ? l.getBoundingClientRect().height : 32, g = m + r + 16, k = n * s + g;
579
- a.style.height = `${k}px`, a.style.maxHeight = `${i * s + g}px`;
580
- const x = t(this, E).querySelector("nine-table-sheets-body");
581
- x && (x.style.overflowY = o > i ? "auto" : "hidden");
301
+ const l = ((x = e.getRowCount) == null ? void 0 : x.call(e)) || 0, u = parseInt(t.getAttribute("max-display-row"), 10) || 10, g = Math.min(l, u), d = e.querySelector("tbody tr") || e.querySelector("tr"), f = d ? d.getBoundingClientRect().height : 32, p = a(this, v).querySelector("nine-table-header"), n = a(this, v).querySelector("nine-table-sheets-footer"), c = p ? p.getBoundingClientRect().height : 40, o = n ? n.getBoundingClientRect().height : 32, s = c + o + 16, y = g * f + s;
302
+ t.style.height = `${y}px`, t.style.maxHeight = `${u * f + s}px`;
303
+ const b = a(this, v).querySelector("nine-table-sheets-body");
304
+ b && (b.style.overflowY = l > u ? "auto" : "hidden");
582
305
  }, "#applyAutoHeight"));
583
- f(this, ot, /* @__PURE__ */ h(() => {
584
- const a = t(this, E).host, o = Array.from(a.children).filter((p) => p.tagName === "TABLE"), i = a.getAttribute("auto-height") === "true", n = o.map((p, l) => `<nine-table-sheet class="${l === 0 ? "active" : ""}" data-index="${l}"></nine-table-sheet>`).join(""), c = o.map((p, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
585
- t(this, E).innerHTML = `
306
+ w(this, M, /* @__PURE__ */ h(() => {
307
+ const t = a(this, v).host, l = Array.from(t.children).filter((p) => p.tagName === "TABLE"), u = t.getAttribute("auto-height") === "true", g = l.map((p, n) => `<nine-table-sheet class="${n === 0 ? "active" : ""}" data-index="${n}"></nine-table-sheet>`).join(""), d = l.map((p, n) => `<div class="nine-tab-item ${n === 0 ? "active" : ""}" data-index="${n}">Sheet ${n + 1}</div>`).join("");
308
+ a(this, v).innerHTML = `
586
309
  <style>
587
310
  :host {
588
311
  display: flex;
589
312
  flex-direction: column;
590
313
  position: relative;
591
314
  overflow: hidden;
592
- height: ${i ? "auto" : "100%"};
315
+ height: ${u ? "auto" : "100%"};
593
316
  background: #fff;
594
317
  }
595
318
  nine-table-header { height: 40px; display: block; flex-shrink: 0; border-bottom: 1px solid #e5e7eb; background: #fff; }
@@ -670,9 +393,9 @@ const mt = class mt {
670
393
  <nine-table-body>
671
394
  <nine-table-summary></nine-table-summary>
672
395
  <nine-table-sheets>
673
- <nine-table-sheets-body>${n}</nine-table-sheets-body>
396
+ <nine-table-sheets-body>${g}</nine-table-sheets-body>
674
397
  <nine-table-sheets-footer>
675
- <div class="nine-tab-bar">${c}</div>
398
+ <div class="nine-tab-bar">${d}</div>
676
399
  <div class="sheets-counter">Total : <span id="row-count">0</span></div>
677
400
  </nine-table-sheets-footer>
678
401
  </nine-table-sheets>
@@ -680,33 +403,33 @@ const mt = class mt {
680
403
  </nine-table-body>
681
404
  <nine-table-footer></nine-table-footer>
682
405
  `;
683
- const s = t(this, E).querySelectorAll("nine-table-sheet");
684
- s == null || s.forEach((p, l) => {
685
- o[l] && setTimeout(() => {
686
- p.init(o[l]), i && t(this, F).call(this, a);
406
+ const f = a(this, v).querySelectorAll("nine-table-sheet");
407
+ f == null || f.forEach((p, n) => {
408
+ l[n] && setTimeout(() => {
409
+ p.init(l[n]), u && a(this, A).call(this, t);
687
410
  });
688
411
  });
689
412
  }, "#render"));
690
- y(this, E, a), t(this, ot).call(this), t(this, nt).call(this);
413
+ E(this, v, t), a(this, M).call(this), a(this, H).call(this);
691
414
  }
692
415
  };
693
- E = new WeakMap(), O = new WeakMap(), nt = new WeakMap(), F = new WeakMap(), ot = new WeakMap(), h(mt, "LayoutManager");
694
- let ht = mt;
695
- var P;
696
- const pt = class pt extends HTMLElement {
416
+ v = new WeakMap(), C = new WeakMap(), H = new WeakMap(), A = new WeakMap(), M = new WeakMap(), h(Y, "LayoutManager");
417
+ let W = Y;
418
+ var L;
419
+ const F = class F extends HTMLElement {
697
420
  constructor() {
698
421
  super();
699
- f(this, P, !1);
422
+ w(this, L, !1);
700
423
  this.attachShadow({ mode: "open" });
701
424
  }
702
425
  connectedCallback() {
703
- t(this, P) || (this.layoutManager = new ht(this.shadowRoot), y(this, P, !0), Z.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } })));
426
+ a(this, L) || (this.layoutManager = new W(this.shadowRoot), E(this, L, !0), $.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } })));
704
427
  }
705
428
  disconnectedCallback() {
706
- Z.log("NineTable disconnected.");
429
+ $.log("NineTable disconnected.");
707
430
  }
708
431
  };
709
- P = new WeakMap(), h(pt, "NineTable");
710
- let dt = pt;
711
- customElements.get("nine-table") || customElements.define("nine-table", dt);
432
+ L = new WeakMap(), h(F, "NineTable");
433
+ let O = F;
434
+ customElements.get("nine-table") || customElements.define("nine-table", O);
712
435
  //# sourceMappingURL=nine-table.js.map