@ninebone/table 0.0.423 β 0.0.425
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.
- package/dist/nine-table.js +129 -126
- package/dist/nine-table.js.map +1 -1
- package/dist/nine-table.umd.js +38 -25
- package/dist/nine-table.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/nine-table.js
CHANGED
|
@@ -23,12 +23,12 @@ const re = class re extends Se.constructor {
|
|
|
23
23
|
a(re, "Trace");
|
|
24
24
|
let jt = re;
|
|
25
25
|
const P = new jt();
|
|
26
|
-
var M,
|
|
26
|
+
var M, z, p, Y, V, X, St, U, Et;
|
|
27
27
|
const le = class le extends HTMLElement {
|
|
28
28
|
constructor() {
|
|
29
29
|
super();
|
|
30
30
|
c(this, M);
|
|
31
|
-
c(this,
|
|
31
|
+
c(this, z, !1);
|
|
32
32
|
c(this, p);
|
|
33
33
|
c(this, Y);
|
|
34
34
|
c(this, V);
|
|
@@ -41,7 +41,7 @@ const le = class le extends HTMLElement {
|
|
|
41
41
|
})), t(this, X).observe(e));
|
|
42
42
|
}, "#observeResize"));
|
|
43
43
|
v(this, "refresh", /* @__PURE__ */ a(() => {
|
|
44
|
-
if (!t(this, M) || !t(this, p) || t(this,
|
|
44
|
+
if (!t(this, M) || !t(this, p) || t(this, z)) return;
|
|
45
45
|
const e = t(this, p).container, s = e.querySelector("table");
|
|
46
46
|
if (!s) return;
|
|
47
47
|
const n = t(this, p).track, r = t(this, p).thumb, o = t(this, M).querySelector(".ng-container-bottom"), l = e.clientWidth, d = s.scrollWidth;
|
|
@@ -99,13 +99,13 @@ const le = class le extends HTMLElement {
|
|
|
99
99
|
t(this, U).call(this, n.clientX - r.left - o / 2);
|
|
100
100
|
}), t(this, p).thumb.addEventListener("mousedown", (n) => {
|
|
101
101
|
if (n.button !== 0) return;
|
|
102
|
-
n.stopPropagation(), n.preventDefault(), b(this,
|
|
102
|
+
n.stopPropagation(), n.preventDefault(), b(this, z, !0), this.shiftX = n.clientX - t(this, p).thumb.getBoundingClientRect().left;
|
|
103
103
|
const r = /* @__PURE__ */ a((l) => {
|
|
104
|
-
if (!t(this,
|
|
104
|
+
if (!t(this, z)) return;
|
|
105
105
|
const d = t(this, p).track.getBoundingClientRect();
|
|
106
106
|
t(this, U).call(this, l.clientX - d.left - this.shiftX);
|
|
107
107
|
}, "onMouseMove"), o = /* @__PURE__ */ a(() => {
|
|
108
|
-
b(this,
|
|
108
|
+
b(this, z, !1), s(), document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", o), this.refresh();
|
|
109
109
|
}, "onMouseUp");
|
|
110
110
|
document.addEventListener("mousemove", r), document.addEventListener("mouseup", o);
|
|
111
111
|
});
|
|
@@ -189,7 +189,7 @@ const le = class le extends HTMLElement {
|
|
|
189
189
|
left: this.querySelector(".ng-scroll-left"),
|
|
190
190
|
right: this.querySelector(".ng-scroll-right")
|
|
191
191
|
}), s.addEventListener("scroll", () => {
|
|
192
|
-
t(this,
|
|
192
|
+
t(this, z) || this.refresh();
|
|
193
193
|
}), t(this, Et).call(this), t(this, St).call(this), this.refresh();
|
|
194
194
|
}, "initWhenReady");
|
|
195
195
|
e();
|
|
@@ -198,14 +198,14 @@ const le = class le extends HTMLElement {
|
|
|
198
198
|
t(this, X) && t(this, X).disconnect();
|
|
199
199
|
}
|
|
200
200
|
};
|
|
201
|
-
M = new WeakMap(),
|
|
201
|
+
M = new WeakMap(), z = new WeakMap(), p = new WeakMap(), Y = new WeakMap(), V = new WeakMap(), X = new WeakMap(), St = new WeakMap(), U = new WeakMap(), Et = new WeakMap(), a(le, "NineTableHScrollBar");
|
|
202
202
|
let Kt = le;
|
|
203
203
|
customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", Kt);
|
|
204
|
-
var
|
|
204
|
+
var _, tt, F, E, ht, dt, Rt;
|
|
205
205
|
const ae = class ae extends HTMLElement {
|
|
206
206
|
constructor() {
|
|
207
207
|
super();
|
|
208
|
-
c(this,
|
|
208
|
+
c(this, _);
|
|
209
209
|
c(this, tt);
|
|
210
210
|
c(this, F, !1);
|
|
211
211
|
c(this, E);
|
|
@@ -215,9 +215,9 @@ const ae = class ae extends HTMLElement {
|
|
|
215
215
|
* π― μ€ν¬λ‘€λ° μμΉ λ° μΈλΈ ν¬κΈ° κ°±μ
|
|
216
216
|
*/
|
|
217
217
|
v(this, "refresh", /* @__PURE__ */ a(() => {
|
|
218
|
-
var
|
|
219
|
-
if (!t(this,
|
|
220
|
-
const e = t(this, E).container, s = t(this, E).track, n = t(this, E).thumb, r = e.clientHeight, l = (t(this,
|
|
218
|
+
var O;
|
|
219
|
+
if (!t(this, _) || !t(this, E)) return;
|
|
220
|
+
const e = t(this, E).container, s = t(this, E).track, n = t(this, E).thumb, r = e.clientHeight, l = (t(this, _).data.get() || []).length, d = ((O = t(this, tt)) == null ? void 0 : O.getRowHeight()) || 24, h = l * d;
|
|
221
221
|
if (h <= r) {
|
|
222
222
|
n.style.display = "none", t(this, E).top.disabled = !0, t(this, E).bottom.disabled = !0;
|
|
223
223
|
return;
|
|
@@ -234,7 +234,7 @@ const ae = class ae extends HTMLElement {
|
|
|
234
234
|
c(this, Rt, /* @__PURE__ */ a(() => {
|
|
235
235
|
const e = t(this, E).container, s = /* @__PURE__ */ a(() => {
|
|
236
236
|
var l;
|
|
237
|
-
const r = (t(this,
|
|
237
|
+
const r = (t(this, _).data.get() || []).length, o = ((l = t(this, tt)) == null ? void 0 : l.getRowHeight()) || 24;
|
|
238
238
|
return r * o;
|
|
239
239
|
}, "getContentHeight");
|
|
240
240
|
e.addEventListener("scroll", () => {
|
|
@@ -246,8 +246,8 @@ const ae = class ae extends HTMLElement {
|
|
|
246
246
|
if (!t(this, F)) return;
|
|
247
247
|
const d = t(this, E).track.getBoundingClientRect(), h = t(this, E).thumb.clientHeight, u = d.height - h, g = l.clientY - t(this, ht), y = e.clientHeight, m = s(), S = Math.max(m - y, 1);
|
|
248
248
|
if (u > 0 && S > 0) {
|
|
249
|
-
const
|
|
250
|
-
let Q = t(this, dt) +
|
|
249
|
+
const O = g / u * S;
|
|
250
|
+
let Q = t(this, dt) + O;
|
|
251
251
|
const ye = Math.max(0, m - y);
|
|
252
252
|
Q < 0 && (Q = 0), Q > ye && (Q = ye), e.scrollTop = Q;
|
|
253
253
|
}
|
|
@@ -272,7 +272,7 @@ const ae = class ae extends HTMLElement {
|
|
|
272
272
|
}, "#init"));
|
|
273
273
|
}
|
|
274
274
|
connectedCallback() {
|
|
275
|
-
b(this,
|
|
275
|
+
b(this, _, this.getRootNode().host), b(this, tt, this.closest("nine-table-sheet")), this.innerHTML = `
|
|
276
276
|
<style>
|
|
277
277
|
nine-table-vscrollbar {
|
|
278
278
|
display: flex;
|
|
@@ -338,13 +338,15 @@ const ae = class ae extends HTMLElement {
|
|
|
338
338
|
<button class='ng-scroll-bottom' disabled><div class='ng-scroll-icon'></div></button>
|
|
339
339
|
`;
|
|
340
340
|
const e = /* @__PURE__ */ a(() => {
|
|
341
|
-
const s = t(this,
|
|
341
|
+
const s = t(this, _).shadowRoot.querySelector(".ng-container-body");
|
|
342
342
|
if (!s) {
|
|
343
343
|
setTimeout(e, 10);
|
|
344
344
|
return;
|
|
345
345
|
}
|
|
346
346
|
b(this, E, {
|
|
347
347
|
container: s,
|
|
348
|
+
leftContainer: t(this, _).shadowRoot.querySelector(".ng-container-left"),
|
|
349
|
+
rightContainer: t(this, _).shadowRoot.querySelector(".ng-container-right"),
|
|
348
350
|
track: this.querySelector(".ng-scroll-track"),
|
|
349
351
|
thumb: this.querySelector(".ng-scroll-thumb"),
|
|
350
352
|
top: this.querySelector(".ng-scroll-top"),
|
|
@@ -354,7 +356,7 @@ const ae = class ae extends HTMLElement {
|
|
|
354
356
|
e();
|
|
355
357
|
}
|
|
356
358
|
};
|
|
357
|
-
|
|
359
|
+
_ = new WeakMap(), tt = new WeakMap(), F = new WeakMap(), E = new WeakMap(), ht = new WeakMap(), dt = new WeakMap(), Rt = new WeakMap(), a(ae, "NineTableVScrollBar");
|
|
358
360
|
let Zt = ae;
|
|
359
361
|
customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar", Zt);
|
|
360
362
|
var At, et;
|
|
@@ -428,25 +430,25 @@ At = new WeakMap(), et = new WeakMap(), a(H, "TableCompiler"), c(H, At, /* @__PU
|
|
|
428
430
|
});
|
|
429
431
|
}, "#resetColIndex"));
|
|
430
432
|
let Gt = H;
|
|
431
|
-
var
|
|
433
|
+
var I, w, W, q, D, j, N, it, qt, Tt, kt, ft, ut, Lt, Ct, bt, Ht, st, gt;
|
|
432
434
|
const ce = class ce {
|
|
433
435
|
constructor(i) {
|
|
434
|
-
c(this,
|
|
436
|
+
c(this, I);
|
|
435
437
|
c(this, w);
|
|
436
|
-
c(this,
|
|
437
|
-
c(this,
|
|
438
|
+
c(this, W, /* @__PURE__ */ new Map());
|
|
439
|
+
c(this, q, null);
|
|
438
440
|
c(this, D, null);
|
|
439
441
|
c(this, j, 0);
|
|
440
|
-
c(this,
|
|
442
|
+
c(this, N, 40);
|
|
441
443
|
c(this, it, !1);
|
|
442
|
-
c(this,
|
|
444
|
+
c(this, qt, 3);
|
|
443
445
|
v(this, "refresh", /* @__PURE__ */ a(() => {
|
|
444
446
|
var e;
|
|
445
447
|
const i = t(this, w).querySelector(".ng-container-body");
|
|
446
448
|
i && (t(this, ft).call(this), t(this, st).call(this, i.scrollTop), (e = t(this, w).querySelector("nine-table-vscrollbar")) == null || e.refresh());
|
|
447
449
|
}, "refresh"));
|
|
448
450
|
v(this, "initialize", /* @__PURE__ */ a(() => {
|
|
449
|
-
b(this,
|
|
451
|
+
b(this, q, null), t(this, W).clear(), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((n) => {
|
|
450
452
|
const r = t(this, w).querySelector(n);
|
|
451
453
|
if (!r) return;
|
|
452
454
|
const o = r.querySelector("table");
|
|
@@ -454,7 +456,7 @@ const ce = class ce {
|
|
|
454
456
|
const l = o.querySelector("tbody.bindable-tbody");
|
|
455
457
|
if (!l) return;
|
|
456
458
|
const h = Array.from(l.querySelectorAll("tr")).map((f) => f.cloneNode(!0));
|
|
457
|
-
t(this,
|
|
459
|
+
t(this, W).set(n, h);
|
|
458
460
|
});
|
|
459
461
|
const i = t(this, w).querySelector(".ng-container-body"), e = t(this, w).querySelector(".ng-container-left"), s = t(this, w).querySelector(".ng-container-right");
|
|
460
462
|
if (i) {
|
|
@@ -470,23 +472,23 @@ const ce = class ce {
|
|
|
470
472
|
});
|
|
471
473
|
}
|
|
472
474
|
}, "initialize"));
|
|
473
|
-
c(this,
|
|
474
|
-
const s = t(this,
|
|
475
|
+
c(this, Tt, /* @__PURE__ */ a((i, e) => {
|
|
476
|
+
const s = t(this, W).get(e);
|
|
475
477
|
if (!s || s.length === 0) return;
|
|
476
478
|
const n = i.querySelector("tbody.bindable-tbody");
|
|
477
479
|
if (!n) return;
|
|
478
480
|
n.querySelectorAll("tr:not(.nodata)").forEach((l) => l.remove());
|
|
479
481
|
const r = n.querySelector("tr.nodata"), o = document.createDocumentFragment();
|
|
480
|
-
for (let l = 0; l < t(this,
|
|
482
|
+
for (let l = 0; l < t(this, N); l++)
|
|
481
483
|
s.forEach((d) => {
|
|
482
484
|
o.appendChild(d.cloneNode(!0));
|
|
483
485
|
});
|
|
484
486
|
r ? r.before(o) : n.appendChild(o);
|
|
485
487
|
}, "#renderRows"));
|
|
486
488
|
c(this, kt, /* @__PURE__ */ a((i) => {
|
|
487
|
-
if (t(this,
|
|
488
|
-
return t(this,
|
|
489
|
-
const e = t(this,
|
|
489
|
+
if (t(this, q) !== null && t(this, q) > 0)
|
|
490
|
+
return t(this, q);
|
|
491
|
+
const e = t(this, W).get(".ng-container-body");
|
|
490
492
|
if (!e || e.length === 0) return 24;
|
|
491
493
|
const s = i.querySelector("tbody.bindable-tbody") || i.querySelector("tbody.bindable-tbody:last-of-type");
|
|
492
494
|
if (!s) return 24;
|
|
@@ -501,40 +503,24 @@ const ce = class ce {
|
|
|
501
503
|
const u = s.querySelectorAll("tr:not(.nodata)");
|
|
502
504
|
return u.forEach((g) => {
|
|
503
505
|
f += g.offsetHeight || g.getBoundingClientRect().height;
|
|
504
|
-
}), u.forEach((g) => g.remove()), o.style.display = l, o.style.visibility = d, o.style.position = h, b(this,
|
|
506
|
+
}), u.forEach((g) => g.remove()), o.style.display = l, o.style.visibility = d, o.style.position = h, b(this, q, f > 0 ? f : 24), t(this, ut).call(this), t(this, q);
|
|
505
507
|
}, "#measureAndCacheHeight"));
|
|
506
|
-
/**
|
|
507
|
-
#updateVirtualScrollHeight = () => {
|
|
508
|
-
const bodyContainer = this.#sheet.querySelector('.ng-container-body');
|
|
509
|
-
if (!bodyContainer) return;
|
|
510
|
-
|
|
511
|
-
const dataList = this.#host.data.get() || [];
|
|
512
|
-
const totalCount = dataList.length;
|
|
513
|
-
const rowHeight = this.#cachedTemplateHeight || 24;
|
|
514
|
-
const totalVirtualHeight = totalCount * rowHeight;
|
|
515
|
-
|
|
516
|
-
// π― λλ²κΉ
λ‘κ·Έ: μ 체 λ°μ΄ν°κ° λͺ 건μ΄κ³ ν
μ΄λΈ λμ΄κ° μΌλ§λ‘ μ‘νλμ§ νμΈ
|
|
517
|
-
trace.log(`[VirtualHeight] totalCount: ${totalCount}, rowHeight: ${rowHeight}, totalVirtualHeight: ${totalVirtualHeight}`);
|
|
518
|
-
|
|
519
|
-
['.ng-container-body', '.ng-container-left', '.ng-container-right'].forEach(selector => {
|
|
520
|
-
const container = this.#sheet.querySelector(selector);
|
|
521
|
-
const table = container?.querySelector('table');
|
|
522
|
-
if (table) {
|
|
523
|
-
table.style.height = `${totalVirtualHeight}px`;
|
|
524
|
-
}
|
|
525
|
-
});
|
|
526
|
-
}; */
|
|
527
508
|
c(this, ft, /* @__PURE__ */ a(() => {
|
|
528
509
|
if (!t(this, w).querySelector(".ng-container-body")) return;
|
|
529
|
-
(t(this,
|
|
530
|
-
|
|
531
|
-
|
|
510
|
+
const s = (t(this, I).data.get() || []).length, n = t(this, q) || 24, r = s * n;
|
|
511
|
+
[".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((o) => {
|
|
512
|
+
const l = t(this, w).querySelector(o);
|
|
513
|
+
if (!l) return;
|
|
514
|
+
const d = l.querySelector("table");
|
|
515
|
+
d && (d.style.height = "auto", d.style.minHeight = "auto");
|
|
516
|
+
const h = l.querySelector(".ng-virtual-spacer");
|
|
517
|
+
h && (h.style.height = `${r}px`);
|
|
532
518
|
});
|
|
533
519
|
}, "#updateVirtualScrollHeight"));
|
|
534
520
|
c(this, ut, /* @__PURE__ */ a(() => {
|
|
535
|
-
if ((t(this,
|
|
536
|
-
const e = Math.ceil(t(this, j) / t(this,
|
|
537
|
-
b(this,
|
|
521
|
+
if ((t(this, I).data.get() || []).length, t(this, j) > 0 && t(this, q) > 0) {
|
|
522
|
+
const e = Math.ceil(t(this, j) / t(this, q));
|
|
523
|
+
b(this, N, e + t(this, qt)), P.log("visibleRows:", e, "cachedRowCount:", t(this, N));
|
|
538
524
|
}
|
|
539
525
|
}, "#updateRowCount"));
|
|
540
526
|
c(this, Lt, /* @__PURE__ */ a(() => {
|
|
@@ -562,7 +548,7 @@ const ce = class ce {
|
|
|
562
548
|
const o = s.querySelector("thead");
|
|
563
549
|
o && (r += o.offsetHeight || o.getBoundingClientRect().height);
|
|
564
550
|
const l = Math.max(n - r, 100);
|
|
565
|
-
t(this, j) !== l && (b(this, j, l), t(this, ut).call(this), t(this,
|
|
551
|
+
t(this, j) !== l && (b(this, j, l), t(this, ut).call(this), t(this, q) !== null && t(this, bt).call(this));
|
|
566
552
|
}
|
|
567
553
|
}
|
|
568
554
|
})), t(this, D).observe(t(this, w)));
|
|
@@ -570,7 +556,7 @@ const ce = class ce {
|
|
|
570
556
|
c(this, bt, /* @__PURE__ */ a(() => {
|
|
571
557
|
[".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((i) => {
|
|
572
558
|
const e = t(this, w).querySelector(i);
|
|
573
|
-
e && e.querySelector("tbody.bindable-tbody") && t(this,
|
|
559
|
+
e && e.querySelector("tbody.bindable-tbody") && t(this, Tt).call(this, e, i);
|
|
574
560
|
}), t(this, Lt).call(this);
|
|
575
561
|
}, "#renderAllContainers"));
|
|
576
562
|
c(this, Ht, /* @__PURE__ */ a((i) => {
|
|
@@ -580,24 +566,24 @@ const ce = class ce {
|
|
|
580
566
|
if (!s) return;
|
|
581
567
|
const n = s.querySelector("tbody.bindable-tbody");
|
|
582
568
|
if (!n) return;
|
|
583
|
-
const r = Array.from(n.querySelectorAll("tr:not(.nodata)")), o = ((h = t(this,
|
|
569
|
+
const r = Array.from(n.querySelectorAll("tr:not(.nodata)")), o = ((h = t(this, W).get(e)) == null ? void 0 : h.length) || 1, d = (t(this, I).data.get() || []).length;
|
|
584
570
|
r.forEach((f, u) => {
|
|
585
571
|
const g = i + Math.floor(u / o);
|
|
586
572
|
if (g >= d) {
|
|
587
573
|
f.style.display = "none";
|
|
588
574
|
return;
|
|
589
575
|
}
|
|
590
|
-
const y = t(this,
|
|
576
|
+
const y = t(this, I).data.get(g);
|
|
591
577
|
f.style.display = "", t(this, gt).call(this, f, y, g);
|
|
592
578
|
});
|
|
593
579
|
});
|
|
594
580
|
}, "#adjustBufferRows"));
|
|
595
581
|
c(this, st, /* @__PURE__ */ a((i) => {
|
|
596
582
|
var d;
|
|
597
|
-
const e = t(this,
|
|
583
|
+
const e = t(this, q);
|
|
598
584
|
if (!e || e <= 0) return;
|
|
599
|
-
const n = (t(this,
|
|
600
|
-
P.log(`[Scroll] scrollTop: ${i}, startIndex: ${r}, cachedRowCount: ${t(this,
|
|
585
|
+
const n = (t(this, I).data.get() || []).length, r = Math.max(0, Math.floor(i / e)), o = ((d = t(this, W).get(".ng-container-body")) == null ? void 0 : d.length) || 1, l = r + t(this, N);
|
|
586
|
+
P.log(`[Scroll] scrollTop: ${i}, startIndex: ${r}, cachedRowCount: ${t(this, N)}, targetDataIndex range: ${r} ~ ${l} (Total: ${n})`), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((h) => {
|
|
601
587
|
const f = t(this, w).querySelector(h);
|
|
602
588
|
if (!f) return;
|
|
603
589
|
const u = f.querySelector("tbody.bindable-tbody");
|
|
@@ -608,8 +594,8 @@ const ce = class ce {
|
|
|
608
594
|
y.style.display = "none";
|
|
609
595
|
return;
|
|
610
596
|
}
|
|
611
|
-
const
|
|
612
|
-
y.style.display = "", t(this, gt).call(this, y,
|
|
597
|
+
const O = t(this, I).data.get(S);
|
|
598
|
+
y.style.display = "", t(this, gt).call(this, y, O, S);
|
|
613
599
|
});
|
|
614
600
|
}), t(this, it) || (b(this, it, !0), setTimeout(() => {
|
|
615
601
|
t(this, Ht).call(this, r), b(this, it, !1);
|
|
@@ -624,19 +610,19 @@ const ce = class ce {
|
|
|
624
610
|
v(this, "destroy", /* @__PURE__ */ a(() => {
|
|
625
611
|
t(this, D) && (t(this, D).disconnect(), b(this, D, null));
|
|
626
612
|
}, "destroy"));
|
|
627
|
-
b(this,
|
|
613
|
+
b(this, I, i.getRootNode().host), b(this, w, i), t(this, Ct).call(this);
|
|
628
614
|
}
|
|
629
615
|
getRowHeight() {
|
|
630
|
-
return t(this,
|
|
616
|
+
return t(this, q);
|
|
631
617
|
}
|
|
632
618
|
templateLength(i = ".ng-container-body") {
|
|
633
619
|
var e;
|
|
634
|
-
return ((e = t(this,
|
|
620
|
+
return ((e = t(this, W).get(i)) == null ? void 0 : e.length) || 1;
|
|
635
621
|
}
|
|
636
622
|
};
|
|
637
|
-
|
|
623
|
+
I = new WeakMap(), w = new WeakMap(), W = new WeakMap(), q = new WeakMap(), D = new WeakMap(), j = new WeakMap(), N = new WeakMap(), it = new WeakMap(), qt = new WeakMap(), Tt = new WeakMap(), kt = new WeakMap(), ft = new WeakMap(), ut = new WeakMap(), Lt = new WeakMap(), Ct = new WeakMap(), bt = new WeakMap(), Ht = new WeakMap(), st = new WeakMap(), gt = new WeakMap(), a(ce, "RowManager");
|
|
638
624
|
let Jt = ce;
|
|
639
|
-
var Mt, nt, K, _t,
|
|
625
|
+
var Mt, nt, K, _t, $t, It, Wt, Ot;
|
|
640
626
|
const ct = class ct extends HTMLElement {
|
|
641
627
|
constructor() {
|
|
642
628
|
super();
|
|
@@ -659,11 +645,15 @@ const ct = class ct extends HTMLElement {
|
|
|
659
645
|
].forEach(({ selector: s, type: n }) => {
|
|
660
646
|
const r = this.querySelector(s);
|
|
661
647
|
if (!r) return;
|
|
662
|
-
const o = t(this,
|
|
663
|
-
r.innerHTML = ""
|
|
648
|
+
const o = t(this, It).call(this, t(this, nt), n);
|
|
649
|
+
r.innerHTML = "";
|
|
650
|
+
const l = document.createElement("div");
|
|
651
|
+
l.className = "ng-scroll-content", l.appendChild(o);
|
|
652
|
+
const d = document.createElement("div");
|
|
653
|
+
d.className = "ng-virtual-spacer", l.appendChild(d), r.appendChild(l);
|
|
664
654
|
});
|
|
665
655
|
}, "#renderSplitContainers"));
|
|
666
|
-
c(this,
|
|
656
|
+
c(this, $t, /* @__PURE__ */ a(() => {
|
|
667
657
|
["left", "right"].forEach((e) => {
|
|
668
658
|
const s = this.querySelector(`.ng-container-${e}`), n = s == null ? void 0 : s.querySelector("table");
|
|
669
659
|
if (!s || !n) return;
|
|
@@ -675,7 +665,7 @@ const ct = class ct extends HTMLElement {
|
|
|
675
665
|
});
|
|
676
666
|
}, "#updateContainerWidths"));
|
|
677
667
|
v(this, "generate", /* @__PURE__ */ a((e) => {
|
|
678
|
-
e && (b(this, nt, Gt.compile(e)), t(this, nt).style.display = "table", t(this, _t).call(this), t(this,
|
|
668
|
+
e && (b(this, nt, Gt.compile(e)), t(this, nt).style.display = "table", t(this, _t).call(this), t(this, $t).call(this), requestAnimationFrame(() => {
|
|
679
669
|
var n;
|
|
680
670
|
const s = (n = this.querySelector("thead")) == null ? void 0 : n.getBoundingClientRect().height;
|
|
681
671
|
this.querySelectorAll("tbody.fixed-tbody").forEach((r) => {
|
|
@@ -689,7 +679,7 @@ const ct = class ct extends HTMLElement {
|
|
|
689
679
|
/**
|
|
690
680
|
* π― λ§μ€ν° ν
μ΄λΈμ κΈ°λ°μΌλ‘ νΉμ fixed νμ
μμλ§ λ¨κΈ°λ λΆν ν¬νΌ
|
|
691
681
|
*/
|
|
692
|
-
c(this,
|
|
682
|
+
c(this, It, /* @__PURE__ */ a((e, s) => {
|
|
693
683
|
const n = e.cloneNode(!0), r = n.querySelector("tbody");
|
|
694
684
|
if (r) {
|
|
695
685
|
const o = document.createElement("tbody");
|
|
@@ -747,21 +737,14 @@ const ct = class ct extends HTMLElement {
|
|
|
747
737
|
nine-table-sheet .ng-container-left {
|
|
748
738
|
display: flex;
|
|
749
739
|
flex-direction: column;
|
|
750
|
-
overflow:
|
|
740
|
+
overflow-y: auto;
|
|
741
|
+
overflow-x: hidden;
|
|
751
742
|
background: #ffffff;
|
|
752
743
|
border-right: 1px solid #e5e7eb;
|
|
753
744
|
flex-shrink: 0;
|
|
745
|
+
scrollbar-width: none;
|
|
746
|
+
&::-webkit-scrollbar { display: none; }
|
|
754
747
|
}
|
|
755
|
-
|
|
756
|
-
nine-table-sheet thead {
|
|
757
|
-
position: sticky;
|
|
758
|
-
top: 0;
|
|
759
|
-
}
|
|
760
|
-
nine-table-sheet tbody.fixed-tbody {
|
|
761
|
-
position: sticky;
|
|
762
|
-
z-index: 4;
|
|
763
|
-
}
|
|
764
|
-
|
|
765
748
|
|
|
766
749
|
nine-table-sheet .ng-container-body {
|
|
767
750
|
display: flex;
|
|
@@ -771,23 +754,32 @@ const ct = class ct extends HTMLElement {
|
|
|
771
754
|
overflow-x: auto;
|
|
772
755
|
background: #ffffff;
|
|
773
756
|
position: relative;
|
|
774
|
-
|
|
775
|
-
&::-webkit-scrollbar {
|
|
776
|
-
display: none;
|
|
777
|
-
height: 0px;
|
|
778
|
-
}
|
|
779
|
-
|
|
780
757
|
scrollbar-width: none;
|
|
758
|
+
&::-webkit-scrollbar { display: none; height: 0px; }
|
|
781
759
|
}
|
|
782
760
|
|
|
783
761
|
nine-table-sheet .ng-container-right {
|
|
784
762
|
display: flex;
|
|
785
|
-
flex-init: 0;
|
|
786
763
|
flex-direction: column;
|
|
787
|
-
overflow:
|
|
764
|
+
overflow-y: auto;
|
|
765
|
+
overflow-x: hidden;
|
|
788
766
|
background: #ffffff;
|
|
789
767
|
border-left: 1px solid #e5e7eb;
|
|
790
768
|
flex-shrink: 0;
|
|
769
|
+
scrollbar-width: none;
|
|
770
|
+
&::-webkit-scrollbar { display: none; }
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
nine-table-sheet .ng-scroll-content {
|
|
774
|
+
position: relative;
|
|
775
|
+
width: 100%;
|
|
776
|
+
height: auto;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
nine-table-sheet .ng-virtual-spacer {
|
|
780
|
+
width: 100%;
|
|
781
|
+
visibility: hidden;
|
|
782
|
+
pointer-events: none;
|
|
791
783
|
}
|
|
792
784
|
|
|
793
785
|
nine-table-sheet .ng-container-bottom {
|
|
@@ -815,6 +807,17 @@ const ct = class ct extends HTMLElement {
|
|
|
815
807
|
position: relative;
|
|
816
808
|
}
|
|
817
809
|
|
|
810
|
+
nine-table-sheet thead {
|
|
811
|
+
position: sticky;
|
|
812
|
+
top: 0;
|
|
813
|
+
z-index: 3;
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
nine-table-sheet tbody.fixed-tbody {
|
|
817
|
+
position: sticky;
|
|
818
|
+
z-index: 4;
|
|
819
|
+
}
|
|
820
|
+
|
|
818
821
|
nine-table-sheet th, nine-table-sheet td {
|
|
819
822
|
box-sizing: border-box;
|
|
820
823
|
overflow: hidden;
|
|
@@ -871,7 +874,7 @@ const ct = class ct extends HTMLElement {
|
|
|
871
874
|
this.innerHTML = "", P.log("NineTableSheet destroyed.");
|
|
872
875
|
}
|
|
873
876
|
};
|
|
874
|
-
Mt = new WeakMap(), nt = new WeakMap(), K = new WeakMap(), _t = new WeakMap(),
|
|
877
|
+
Mt = new WeakMap(), nt = new WeakMap(), K = new WeakMap(), _t = new WeakMap(), $t = new WeakMap(), It = new WeakMap(), Wt = new WeakMap(), Ot = new WeakMap(), a(ct, "NineTableSheet"), v(ct, "SCROLLBAR_SIZE", 16);
|
|
875
878
|
let wt = ct;
|
|
876
879
|
customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", wt);
|
|
877
880
|
var zt, yt;
|
|
@@ -892,8 +895,8 @@ const he = class he extends HTMLElement {
|
|
|
892
895
|
Array.from(this.querySelectorAll("nine-splitter")).forEach((y) => y.style.setProperty("display", "none"));
|
|
893
896
|
const g = f.filter((y) => y.classList.contains("active"));
|
|
894
897
|
g.length < 2 || g.forEach((y) => {
|
|
895
|
-
const m = parseInt(y.getAttribute("data-index"), 10), S = this.querySelector(`nine-splitter[data-split-index="${m}"]`),
|
|
896
|
-
S &&
|
|
898
|
+
const m = parseInt(y.getAttribute("data-index"), 10), S = this.querySelector(`nine-splitter[data-split-index="${m}"]`), O = f[m + 1];
|
|
899
|
+
S && O && O.classList.contains("active") && S.style.setProperty("display", "flex");
|
|
897
900
|
});
|
|
898
901
|
}, "updateSplitters"), r = this.querySelector(".nine-tab-bar"), o = this.querySelector("nine-table-sheets-body"), l = r.querySelectorAll(".nine-tab-item"), d = o.querySelectorAll("nine-table-sheet");
|
|
899
902
|
if (!l[e]) return;
|
|
@@ -925,29 +928,29 @@ const he = class he extends HTMLElement {
|
|
|
925
928
|
zt = new WeakMap(), yt = new WeakMap(), a(he, "NineTableSheets");
|
|
926
929
|
let Qt = he;
|
|
927
930
|
customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", Qt);
|
|
928
|
-
var
|
|
931
|
+
var T, Dt, pt, Nt;
|
|
929
932
|
const de = class de {
|
|
930
933
|
constructor(i) {
|
|
931
|
-
c(this,
|
|
934
|
+
c(this, T);
|
|
932
935
|
c(this, Dt, /* @__PURE__ */ a(() => {
|
|
933
|
-
t(this,
|
|
936
|
+
t(this, Nt).call(this), new ResizeObserver((i) => {
|
|
934
937
|
for (let e of i)
|
|
935
|
-
t(this,
|
|
936
|
-
}).observe(t(this,
|
|
938
|
+
t(this, T).getAttribute("auto-height") === "true" && t(this, pt).call(this);
|
|
939
|
+
}).observe(t(this, T));
|
|
937
940
|
}, "#init"));
|
|
938
941
|
c(this, pt, /* @__PURE__ */ a(() => {
|
|
939
942
|
var d, h;
|
|
940
|
-
const i = Array.from(t(this,
|
|
943
|
+
const i = Array.from(t(this, T).shadowRoot.querySelectorAll("nine-table-sheet.active"));
|
|
941
944
|
if (i.length === 0) return;
|
|
942
|
-
const e = parseInt(t(this,
|
|
943
|
-
t(this,
|
|
945
|
+
const e = parseInt(t(this, T).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), n = (d = t(this, T).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : d.getBoundingClientRect().height, r = (h = t(this, T).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : h.getBoundingClientRect().height, o = wt.SCROLLBAR_SIZE, l = e * s + n + r + o;
|
|
946
|
+
t(this, T).style.height = `${l}px`;
|
|
944
947
|
}, "#applyAutoHeight"));
|
|
945
|
-
c(this,
|
|
946
|
-
const e = Array.from(t(this,
|
|
948
|
+
c(this, Nt, /* @__PURE__ */ a(() => {
|
|
949
|
+
const e = Array.from(t(this, T).children).filter((d) => d.tagName === "TABLE"), s = t(this, T).getAttribute("auto-height") === "true", n = e.length, r = e.map((d, h) => {
|
|
947
950
|
const u = `<nine-table-sheet class="${h === 0 ? "active" : ""}" data-index="${h}"></nine-table-sheet>`, g = h < n - 1 ? `<nine-splitter class="h" data-split-index="${h}"></nine-splitter>` : "";
|
|
948
951
|
return u + g;
|
|
949
952
|
}).join(""), o = e.map((d, h) => `<div class="nine-tab-item ${h === 0 ? "active" : ""}" data-index="${h}">Sheet ${h + 1}</div>`).join("");
|
|
950
|
-
t(this,
|
|
953
|
+
t(this, T).shadowRoot.innerHTML = `
|
|
951
954
|
<style>
|
|
952
955
|
:host {
|
|
953
956
|
display: flex;
|
|
@@ -1038,17 +1041,17 @@ const de = class de {
|
|
|
1038
1041
|
</nine-table-body>
|
|
1039
1042
|
<nine-table-footer></nine-table-footer>
|
|
1040
1043
|
`;
|
|
1041
|
-
const l = t(this,
|
|
1044
|
+
const l = t(this, T).shadowRoot.querySelectorAll("nine-table-sheet");
|
|
1042
1045
|
l == null || l.forEach((d, h) => {
|
|
1043
1046
|
e[h] && setTimeout(() => {
|
|
1044
1047
|
d.generate(e[h]), s && t(this, pt).call(this);
|
|
1045
1048
|
});
|
|
1046
1049
|
});
|
|
1047
1050
|
}, "#render"));
|
|
1048
|
-
b(this,
|
|
1051
|
+
b(this, T, i), t(this, Dt).call(this);
|
|
1049
1052
|
}
|
|
1050
1053
|
};
|
|
1051
|
-
|
|
1054
|
+
T = new WeakMap(), Dt = new WeakMap(), pt = new WeakMap(), Nt = new WeakMap(), a(de, "LayoutManager");
|
|
1052
1055
|
let te = de;
|
|
1053
1056
|
var mt, ot;
|
|
1054
1057
|
const fe = class fe {
|
|
@@ -1068,23 +1071,23 @@ const fe = class fe {
|
|
|
1068
1071
|
};
|
|
1069
1072
|
mt = new WeakMap(), ot = new WeakMap(), a(fe, "ngRow");
|
|
1070
1073
|
let ee = fe;
|
|
1071
|
-
var k, R, L, rt,
|
|
1074
|
+
var k, R, L, rt, Bt, B, Pt, Z, xt, Yt, Vt, lt;
|
|
1072
1075
|
const C = class C {
|
|
1073
1076
|
constructor(i, e) {
|
|
1074
1077
|
c(this, k);
|
|
1075
1078
|
c(this, R);
|
|
1076
1079
|
c(this, L, []);
|
|
1077
1080
|
c(this, rt, []);
|
|
1078
|
-
c(this,
|
|
1079
|
-
c(this,
|
|
1081
|
+
c(this, Bt, 0);
|
|
1082
|
+
c(this, B, []);
|
|
1080
1083
|
c(this, Pt, /* @__PURE__ */ a(() => {
|
|
1081
|
-
b(this,
|
|
1084
|
+
b(this, B, []);
|
|
1082
1085
|
const i = t(this, k).template || [];
|
|
1083
1086
|
Array.from(i).forEach((e) => {
|
|
1084
1087
|
var s;
|
|
1085
|
-
t(this,
|
|
1088
|
+
t(this, B).push(((s = e.getBoundingClientRect) == null ? void 0 : s.call(e).height) || 24);
|
|
1086
1089
|
}), (t(this, R).rawRecords || []).forEach((e) => {
|
|
1087
|
-
e.__ng || (e.__ng = t(this, xt).call(this)), e.__ng.height = t(this,
|
|
1090
|
+
e.__ng || (e.__ng = t(this, xt).call(this)), e.__ng.height = t(this, B).slice();
|
|
1088
1091
|
});
|
|
1089
1092
|
}, "#initialize"));
|
|
1090
1093
|
c(this, Z, /* @__PURE__ */ a(() => {
|
|
@@ -1112,10 +1115,10 @@ const C = class C {
|
|
|
1112
1115
|
rowState: C.ROW_STATE.EMPTY,
|
|
1113
1116
|
deleted: !1,
|
|
1114
1117
|
filtered: !1,
|
|
1115
|
-
height: t(this,
|
|
1118
|
+
height: t(this, B).slice(),
|
|
1116
1119
|
o: {},
|
|
1117
1120
|
c: {},
|
|
1118
|
-
_: [0, 0, 0, 0, C.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this,
|
|
1121
|
+
_: [0, 0, 0, 0, C.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, B).slice(), -1, {}, {}]
|
|
1119
1122
|
}), "#getDefaultMeta"));
|
|
1120
1123
|
v(this, "reset", /* @__PURE__ */ a(() => {
|
|
1121
1124
|
b(this, L, []), b(this, rt, []), t(this, Z).call(this);
|
|
@@ -1198,7 +1201,7 @@ const C = class C {
|
|
|
1198
1201
|
this.clear(), this.add(i, !1);
|
|
1199
1202
|
}
|
|
1200
1203
|
get nextId() {
|
|
1201
|
-
return ++ve(this,
|
|
1204
|
+
return ++ve(this, Bt)._;
|
|
1202
1205
|
}
|
|
1203
1206
|
get length() {
|
|
1204
1207
|
return t(this, L).length;
|
|
@@ -1207,7 +1210,7 @@ const C = class C {
|
|
|
1207
1210
|
return this.length;
|
|
1208
1211
|
}
|
|
1209
1212
|
};
|
|
1210
|
-
k = new WeakMap(), R = new WeakMap(), L = new WeakMap(), rt = new WeakMap(),
|
|
1213
|
+
k = new WeakMap(), R = new WeakMap(), L = new WeakMap(), rt = new WeakMap(), Bt = new WeakMap(), B = new WeakMap(), Pt = new WeakMap(), Z = new WeakMap(), xt = new WeakMap(), Yt = new WeakMap(), Vt = new WeakMap(), lt = new WeakMap(), a(C, "ngData"), // π― ν μν μ μ μμλ₯Ό ν΄λμ€ λ΄λΆλ‘ λ΄μ¬ν
|
|
1211
1214
|
v(C, "ROW_STATE", {
|
|
1212
1215
|
EMPTY: "EMPTY",
|
|
1213
1216
|
NORMAL: "NORMAL",
|