@ninebone/table 0.0.538 → 0.0.539
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 +576 -579
- package/dist/nine-table.js.map +1 -1
- package/dist/nine-table.umd.js +7 -7
- package/dist/nine-table.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/nine-table.js
CHANGED
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
throw TypeError(
|
|
1
|
+
var Fe = Object.defineProperty;
|
|
2
|
+
var Ve = (R) => {
|
|
3
|
+
throw TypeError(R);
|
|
4
4
|
};
|
|
5
|
-
var
|
|
6
|
-
var h = (
|
|
7
|
-
var
|
|
8
|
-
var t = (
|
|
9
|
-
var
|
|
10
|
-
set _(
|
|
11
|
-
|
|
5
|
+
var Xe = (R, i, e) => i in R ? Fe(R, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : R[i] = e;
|
|
6
|
+
var h = (R, i) => Fe(R, "name", { value: i, configurable: !0 });
|
|
7
|
+
var E = (R, i, e) => Xe(R, typeof i != "symbol" ? i + "" : i, e), Ye = (R, i, e) => i.has(R) || Ve("Cannot " + e);
|
|
8
|
+
var t = (R, i, e) => (Ye(R, i, "read from private field"), e ? e.call(R) : i.get(R)), d = (R, i, e) => i.has(R) ? Ve("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(R) : i.set(R, e), y = (R, i, e, s) => (Ye(R, i, "write to private field"), s ? s.call(R, e) : i.set(R, e), e);
|
|
9
|
+
var Ue = (R, i, e, s) => ({
|
|
10
|
+
set _(r) {
|
|
11
|
+
y(R, i, r, e);
|
|
12
12
|
},
|
|
13
13
|
get _() {
|
|
14
|
-
return t(
|
|
14
|
+
return t(R, i, s);
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
-
import { trace as
|
|
18
|
-
const
|
|
17
|
+
import { trace as Ke } from "@ninebone/util";
|
|
18
|
+
const He = class He extends Ke.constructor {
|
|
19
19
|
constructor() {
|
|
20
20
|
super(), this.init("nine-table", "green");
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
h(
|
|
24
|
-
let
|
|
25
|
-
const H = new
|
|
26
|
-
var z, j, w, K, Z, G, Nt
|
|
27
|
-
const
|
|
23
|
+
h(He, "Trace");
|
|
24
|
+
let ae = He;
|
|
25
|
+
const H = new ae();
|
|
26
|
+
var z, j, w, X, K, Z, _t, G, Nt;
|
|
27
|
+
const Me = class Me extends HTMLElement {
|
|
28
28
|
constructor() {
|
|
29
29
|
super();
|
|
30
30
|
d(this, z);
|
|
31
31
|
d(this, j, !1);
|
|
32
32
|
d(this, w);
|
|
33
|
+
d(this, X);
|
|
33
34
|
d(this, K);
|
|
34
35
|
d(this, Z);
|
|
35
|
-
d(this,
|
|
36
|
-
d(this, Nt, /* @__PURE__ */ h(() => {
|
|
36
|
+
d(this, _t, /* @__PURE__ */ h(() => {
|
|
37
37
|
if (!t(this, z)) return;
|
|
38
38
|
const e = t(this, z).querySelector(".ng-container-body .ng-part-body");
|
|
39
|
-
e && (
|
|
39
|
+
e && (y(this, Z, new ResizeObserver(() => {
|
|
40
40
|
this.refresh();
|
|
41
|
-
})), t(this,
|
|
41
|
+
})), t(this, Z).observe(e));
|
|
42
42
|
}, "#observeResize"));
|
|
43
|
-
|
|
43
|
+
E(this, "refresh", /* @__PURE__ */ h(() => {
|
|
44
44
|
if (!t(this, z) || !t(this, w) || t(this, j)) return;
|
|
45
45
|
const e = t(this, w).container, s = e.querySelector("table");
|
|
46
46
|
if (!s) return;
|
|
47
|
-
const
|
|
48
|
-
if (o !== 0 &&
|
|
47
|
+
const r = t(this, w).track, n = t(this, w).thumb, a = t(this, z).querySelector(".ng-container-bottom"), o = e.clientWidth, c = s.scrollWidth;
|
|
48
|
+
if (o !== 0 && c > o)
|
|
49
49
|
a && (a.style.display = "flex");
|
|
50
50
|
else {
|
|
51
51
|
a && (a.style.display = "none");
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
const f = Math.max(Math.min(
|
|
54
|
+
const l = r.clientWidth;
|
|
55
|
+
if (l <= 0) return;
|
|
56
|
+
const f = Math.max(Math.min(l * (o / c), l), 20);
|
|
57
57
|
n.style.width = `${f}px`;
|
|
58
|
-
const u = e.scrollLeft, g =
|
|
59
|
-
let
|
|
60
|
-
g > 0 && (
|
|
61
|
-
const
|
|
62
|
-
|
|
58
|
+
const u = e.scrollLeft, g = c - o;
|
|
59
|
+
let b = 0;
|
|
60
|
+
g > 0 && (b = parseInt(u / g * (l - f), 10)), b < 0 && (b = 0);
|
|
61
|
+
const x = l - f;
|
|
62
|
+
b > x && (b = x), n.style.left = `${b}px`, t(this, w).left.disabled = b === 0, t(this, w).right.disabled = b >= x - 1;
|
|
63
63
|
}, "refresh"));
|
|
64
|
-
d(this,
|
|
64
|
+
d(this, G, /* @__PURE__ */ h((e) => {
|
|
65
65
|
if (!t(this, w)) return !1;
|
|
66
|
-
const s = t(this, w).container,
|
|
67
|
-
if (!
|
|
66
|
+
const s = t(this, w).container, r = s.querySelector("table");
|
|
67
|
+
if (!r) return !1;
|
|
68
68
|
const n = t(this, w).track.getBoundingClientRect(), a = t(this, w).thumb.clientWidth;
|
|
69
69
|
let o = e;
|
|
70
70
|
o < 0 && (o = 0);
|
|
71
|
-
const
|
|
72
|
-
o >
|
|
73
|
-
const
|
|
74
|
-
return
|
|
71
|
+
const c = n.width - a;
|
|
72
|
+
o > c && (o = c), o = parseInt(o, 10), t(this, w).thumb.style.left = `${o}px`, t(this, w).left.disabled = o === 0, t(this, w).right.disabled = o >= c - 1;
|
|
73
|
+
const l = s.clientWidth, u = r.scrollWidth - l;
|
|
74
|
+
return c > 0 && u > 0 && (s.scrollLeft = o / c * u), o > 0 && o < c - 1;
|
|
75
75
|
}, "#thumbMoveTo"));
|
|
76
|
-
d(this,
|
|
77
|
-
const e = /* @__PURE__ */ h((
|
|
78
|
-
clearInterval(t(this,
|
|
76
|
+
d(this, Nt, /* @__PURE__ */ h(() => {
|
|
77
|
+
const e = /* @__PURE__ */ h((r) => {
|
|
78
|
+
clearInterval(t(this, X)), clearInterval(t(this, K));
|
|
79
79
|
const n = parseInt(t(this, w).thumb.style.left || 0, 10);
|
|
80
|
-
t(this,
|
|
81
|
-
clearInterval(t(this,
|
|
80
|
+
t(this, G).call(this, n + r), y(this, X, setInterval(() => {
|
|
81
|
+
clearInterval(t(this, X)), y(this, K, setInterval(() => {
|
|
82
82
|
const a = parseInt(t(this, w).thumb.style.left || 0, 10);
|
|
83
|
-
t(this,
|
|
83
|
+
t(this, G).call(this, a + r) || clearInterval(t(this, K));
|
|
84
84
|
}, 50));
|
|
85
85
|
}, 500));
|
|
86
86
|
}, "delayScroll"), s = /* @__PURE__ */ h(() => {
|
|
87
|
-
clearInterval(t(this,
|
|
87
|
+
clearInterval(t(this, X)), clearInterval(t(this, K));
|
|
88
88
|
}, "clearTimer");
|
|
89
|
-
["mouseup", "mouseleave", "touchend"].forEach((
|
|
90
|
-
t(this, w).left.addEventListener(
|
|
91
|
-
}), t(this, w).left.addEventListener("mousedown", (
|
|
92
|
-
|
|
93
|
-
}), t(this, w).right.addEventListener("mousedown", (
|
|
94
|
-
|
|
95
|
-
}), t(this, w).left.addEventListener("touchstart", () => e(-20)), t(this, w).right.addEventListener("touchstart", () => e(20)), t(this, w).track.addEventListener("mousedown", (
|
|
96
|
-
if (
|
|
97
|
-
|
|
89
|
+
["mouseup", "mouseleave", "touchend"].forEach((r) => {
|
|
90
|
+
t(this, w).left.addEventListener(r, s), t(this, w).right.addEventListener(r, s), t(this, w).track.addEventListener(r, s);
|
|
91
|
+
}), t(this, w).left.addEventListener("mousedown", (r) => {
|
|
92
|
+
r.button === 0 && e(-20);
|
|
93
|
+
}), t(this, w).right.addEventListener("mousedown", (r) => {
|
|
94
|
+
r.button === 0 && e(20);
|
|
95
|
+
}), t(this, w).left.addEventListener("touchstart", () => e(-20)), t(this, w).right.addEventListener("touchstart", () => e(20)), t(this, w).track.addEventListener("mousedown", (r) => {
|
|
96
|
+
if (r.button !== 0) return;
|
|
97
|
+
r.preventDefault();
|
|
98
98
|
const n = t(this, w).track.getBoundingClientRect(), a = t(this, w).thumb.clientWidth;
|
|
99
|
-
t(this,
|
|
100
|
-
}), t(this, w).thumb.addEventListener("mousedown", (
|
|
101
|
-
if (
|
|
102
|
-
|
|
99
|
+
t(this, G).call(this, r.clientX - n.left - a / 2);
|
|
100
|
+
}), t(this, w).thumb.addEventListener("mousedown", (r) => {
|
|
101
|
+
if (r.button !== 0) return;
|
|
102
|
+
r.stopPropagation(), r.preventDefault(), y(this, j, !0), this.shiftX = r.clientX - t(this, w).thumb.getBoundingClientRect().left;
|
|
103
103
|
const n = /* @__PURE__ */ h((o) => {
|
|
104
104
|
if (!t(this, j)) return;
|
|
105
|
-
const
|
|
106
|
-
t(this,
|
|
105
|
+
const c = t(this, w).track.getBoundingClientRect();
|
|
106
|
+
t(this, G).call(this, o.clientX - c.left - this.shiftX);
|
|
107
107
|
}, "onMouseMove"), a = /* @__PURE__ */ h(() => {
|
|
108
|
-
|
|
108
|
+
y(this, j, !1), s(), document.removeEventListener("mousemove", n), document.removeEventListener("mouseup", a), this.refresh();
|
|
109
109
|
}, "onMouseUp");
|
|
110
110
|
document.addEventListener("mousemove", n), document.addEventListener("mouseup", a);
|
|
111
111
|
});
|
|
112
112
|
}, "#init"));
|
|
113
113
|
}
|
|
114
114
|
connectedCallback() {
|
|
115
|
-
if (
|
|
115
|
+
if (y(this, z, this.closest("nine-table-sheet") || this.getRootNode().host), !t(this, z)) return;
|
|
116
116
|
this.innerHTML = `
|
|
117
117
|
<style>
|
|
118
118
|
nine-table-hscrollbar {
|
|
@@ -182,7 +182,7 @@ const $e = class $e extends HTMLElement {
|
|
|
182
182
|
setTimeout(e, 10);
|
|
183
183
|
return;
|
|
184
184
|
}
|
|
185
|
-
|
|
185
|
+
y(this, w, {
|
|
186
186
|
container: s,
|
|
187
187
|
track: this.querySelector(".ng-scroll-track"),
|
|
188
188
|
thumb: this.querySelector(".ng-scroll-thumb"),
|
|
@@ -190,88 +190,88 @@ const $e = class $e extends HTMLElement {
|
|
|
190
190
|
right: this.querySelector(".ng-scroll-right")
|
|
191
191
|
}), s.addEventListener("scroll", () => {
|
|
192
192
|
t(this, j) || this.refresh();
|
|
193
|
-
}), t(this,
|
|
193
|
+
}), t(this, Nt).call(this), t(this, _t).call(this), this.refresh();
|
|
194
194
|
}, "initWhenReady");
|
|
195
195
|
e();
|
|
196
196
|
}
|
|
197
197
|
disconnectedCallback() {
|
|
198
|
-
t(this,
|
|
198
|
+
t(this, Z) && t(this, Z).disconnect();
|
|
199
199
|
}
|
|
200
200
|
};
|
|
201
|
-
z = new WeakMap(), j = new WeakMap(), w = new WeakMap(),
|
|
202
|
-
let
|
|
203
|
-
customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar",
|
|
204
|
-
var F, at,
|
|
205
|
-
const
|
|
201
|
+
z = new WeakMap(), j = new WeakMap(), w = new WeakMap(), X = new WeakMap(), K = new WeakMap(), Z = new WeakMap(), _t = new WeakMap(), G = new WeakMap(), Nt = new WeakMap(), h(Me, "NineTableHScrollBar");
|
|
202
|
+
let le = Me;
|
|
203
|
+
customElements.get("nine-table-hscrollbar") || customElements.define("nine-table-hscrollbar", le);
|
|
204
|
+
var F, at, J, q, vt, wt, Wt;
|
|
205
|
+
const $e = class $e extends HTMLElement {
|
|
206
206
|
constructor() {
|
|
207
207
|
super();
|
|
208
208
|
d(this, F);
|
|
209
209
|
d(this, at);
|
|
210
|
-
d(this,
|
|
211
|
-
d(this,
|
|
210
|
+
d(this, J, !1);
|
|
211
|
+
d(this, q);
|
|
212
212
|
d(this, vt, 0);
|
|
213
213
|
d(this, wt, 0);
|
|
214
|
-
|
|
215
|
-
if (!t(this, F) || !t(this,
|
|
214
|
+
E(this, "refresh", /* @__PURE__ */ h(() => {
|
|
215
|
+
if (!t(this, F) || !t(this, q)) return;
|
|
216
216
|
H.log("nine-table-vscrollbar.refresh");
|
|
217
|
-
const e = t(this,
|
|
218
|
-
if (
|
|
219
|
-
|
|
217
|
+
const e = t(this, q).container, s = t(this, q).track, r = t(this, q).thumb, n = e.clientHeight, o = (t(this, F).data.get() || []).length, c = t(this, at).getRowHeight(), l = o * c;
|
|
218
|
+
if (l <= n) {
|
|
219
|
+
r.style.display = "none", t(this, q).top.disabled = !0, t(this, q).bottom.disabled = !0;
|
|
220
220
|
return;
|
|
221
221
|
} else
|
|
222
|
-
|
|
222
|
+
r.style.display = "block";
|
|
223
223
|
const f = s.clientHeight;
|
|
224
224
|
if (f <= 0) return;
|
|
225
|
-
const u = Math.max(Math.min(f * (n /
|
|
226
|
-
|
|
227
|
-
const g = e.scrollTop,
|
|
228
|
-
let
|
|
229
|
-
|
|
225
|
+
const u = Math.max(Math.min(f * (n / l), f), 20);
|
|
226
|
+
r.style.height = `${u}px`;
|
|
227
|
+
const g = e.scrollTop, b = Math.max(l - n, 1);
|
|
228
|
+
let x = 0;
|
|
229
|
+
b > 0 && (x = g / b * (f - u));
|
|
230
230
|
const v = f - u;
|
|
231
|
-
|
|
231
|
+
x < 0 && (x = 0), x > v && (x = v), r.style.top = `${x}px`, t(this, q).top.disabled = g <= 0, t(this, q).bottom.disabled = g >= b - 1;
|
|
232
232
|
}, "refresh"));
|
|
233
|
-
d(this,
|
|
233
|
+
d(this, Wt, /* @__PURE__ */ h(() => {
|
|
234
234
|
H.log("nine-table-vscrollbar.#init");
|
|
235
|
-
const e = t(this,
|
|
235
|
+
const e = t(this, q).container, s = /* @__PURE__ */ h(() => {
|
|
236
236
|
const n = (t(this, F).data.get() || []).length, a = t(this, at).getRowHeight();
|
|
237
237
|
return n * a;
|
|
238
238
|
}, "getContentHeight");
|
|
239
239
|
e.addEventListener("scroll", () => {
|
|
240
|
-
t(this,
|
|
241
|
-
}), t(this,
|
|
242
|
-
if (
|
|
243
|
-
|
|
240
|
+
t(this, J) || this.refresh();
|
|
241
|
+
}), t(this, q).thumb.addEventListener("mousedown", (r) => {
|
|
242
|
+
if (r.button !== 0) return;
|
|
243
|
+
r.stopPropagation(), r.preventDefault(), y(this, J, !0), y(this, vt, r.clientY), y(this, wt, e.scrollTop);
|
|
244
244
|
const n = /* @__PURE__ */ h((o) => {
|
|
245
|
-
if (!t(this,
|
|
246
|
-
const
|
|
245
|
+
if (!t(this, J)) return;
|
|
246
|
+
const c = t(this, q).track.getBoundingClientRect(), l = t(this, q).thumb.clientHeight, u = c.height - l, g = o.clientY - t(this, vt), b = e.clientHeight, x = s(), v = Math.max(x - b, 1);
|
|
247
247
|
if (u > 0 && v > 0) {
|
|
248
|
-
const
|
|
249
|
-
let
|
|
250
|
-
const
|
|
251
|
-
|
|
248
|
+
const A = g / u * v;
|
|
249
|
+
let m = t(this, wt) + A;
|
|
250
|
+
const W = Math.max(0, x - b);
|
|
251
|
+
m < 0 && (m = 0), m > W && (m = W), e.scrollTop = m;
|
|
252
252
|
}
|
|
253
253
|
this.refresh();
|
|
254
254
|
}, "onMouseMove"), a = /* @__PURE__ */ h(() => {
|
|
255
|
-
|
|
255
|
+
y(this, J, !1), document.removeEventListener("mousemove", n), document.removeEventListener("mouseup", a), this.refresh();
|
|
256
256
|
}, "onMouseUp");
|
|
257
257
|
document.addEventListener("mousemove", n), document.addEventListener("mouseup", a);
|
|
258
|
-
}), t(this,
|
|
259
|
-
if (
|
|
260
|
-
const n = t(this,
|
|
261
|
-
if (
|
|
262
|
-
const
|
|
263
|
-
e.scrollTop =
|
|
258
|
+
}), t(this, q).track.addEventListener("mousedown", (r) => {
|
|
259
|
+
if (r.button !== 0 || r.target === t(this, q).thumb) return;
|
|
260
|
+
const n = t(this, q).track.getBoundingClientRect(), a = t(this, q).thumb.clientHeight, o = r.clientY - n.top - a / 2, l = n.height - a, f = e.clientHeight, u = s(), g = Math.max(u - f, 1);
|
|
261
|
+
if (l > 0 && g > 0) {
|
|
262
|
+
const b = Math.max(0, Math.min(1, o / l));
|
|
263
|
+
e.scrollTop = b * g;
|
|
264
264
|
}
|
|
265
265
|
this.refresh();
|
|
266
|
-
}), t(this,
|
|
266
|
+
}), t(this, q).top.addEventListener("click", () => {
|
|
267
267
|
e.scrollTop -= 40;
|
|
268
|
-
}), t(this,
|
|
268
|
+
}), t(this, q).bottom.addEventListener("click", () => {
|
|
269
269
|
e.scrollTop += 40;
|
|
270
270
|
});
|
|
271
271
|
}, "#init"));
|
|
272
272
|
}
|
|
273
273
|
connectedCallback() {
|
|
274
|
-
|
|
274
|
+
y(this, F, this.getRootNode().host), y(this, at, this.closest("nine-table-sheet")), this.innerHTML = `
|
|
275
275
|
<style>
|
|
276
276
|
nine-table-vscrollbar {
|
|
277
277
|
display: flex;
|
|
@@ -341,212 +341,209 @@ const Ie = class Ie extends HTMLElement {
|
|
|
341
341
|
setTimeout(e, 10);
|
|
342
342
|
return;
|
|
343
343
|
}
|
|
344
|
-
|
|
344
|
+
y(this, q, {
|
|
345
345
|
container: s,
|
|
346
346
|
track: this.querySelector(".ng-scroll-track"),
|
|
347
347
|
thumb: this.querySelector(".ng-scroll-thumb"),
|
|
348
348
|
top: this.querySelector(".ng-scroll-top"),
|
|
349
349
|
bottom: this.querySelector(".ng-scroll-bottom")
|
|
350
|
-
}), t(this,
|
|
350
|
+
}), t(this, Wt).call(this), this.refresh();
|
|
351
351
|
}, "initWhenReady");
|
|
352
352
|
e();
|
|
353
353
|
}
|
|
354
354
|
};
|
|
355
|
-
F = new WeakMap(), at = new WeakMap(),
|
|
356
|
-
let
|
|
357
|
-
customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar",
|
|
358
|
-
var P, S,
|
|
359
|
-
const
|
|
360
|
-
constructor(
|
|
355
|
+
F = new WeakMap(), at = new WeakMap(), J = new WeakMap(), q = new WeakMap(), vt = new WeakMap(), wt = new WeakMap(), Wt = new WeakMap(), h($e, "NineTableVScrollBar");
|
|
356
|
+
let ce = $e;
|
|
357
|
+
customElements.get("nine-table-vscrollbar") || customElements.define("nine-table-vscrollbar", ce);
|
|
358
|
+
var P, S, Q, D, M, V, tt, St, Ee, lt, Ot, Bt, zt, Et, At, Dt, Pt, Rt, Ae, ct, qt, jt;
|
|
359
|
+
const Ie = class Ie {
|
|
360
|
+
constructor(i) {
|
|
361
361
|
d(this, P);
|
|
362
362
|
d(this, S);
|
|
363
|
-
d(this,
|
|
363
|
+
d(this, Q);
|
|
364
364
|
d(this, D, /* @__PURE__ */ new Map());
|
|
365
|
-
d(this,
|
|
366
|
-
d(this,
|
|
365
|
+
d(this, M, null);
|
|
366
|
+
d(this, V, null);
|
|
367
367
|
d(this, tt, 0);
|
|
368
368
|
d(this, St, 40);
|
|
369
|
-
d(this,
|
|
369
|
+
d(this, Ee, !1);
|
|
370
370
|
d(this, lt, !1);
|
|
371
|
-
d(this,
|
|
372
|
-
|
|
371
|
+
d(this, Ot, 3);
|
|
372
|
+
E(this, "refresh", /* @__PURE__ */ h(() => {
|
|
373
373
|
H.log("rowManager.refresh");
|
|
374
|
-
const
|
|
375
|
-
|
|
374
|
+
const i = t(this, S).querySelector(".ng-container-body .ng-part-body");
|
|
375
|
+
i && (t(this, Et).call(this), t(this, ct).call(this, i.scrollTop));
|
|
376
376
|
}, "refresh"));
|
|
377
|
-
|
|
378
|
-
H.log("rowManager.initialize"),
|
|
377
|
+
E(this, "initialize", /* @__PURE__ */ h(() => {
|
|
378
|
+
H.log("rowManager.initialize"), y(this, Q, {
|
|
379
379
|
scrollTables: t(this, S).querySelectorAll(".ng-part-body table"),
|
|
380
380
|
firstTr: t(this, S).querySelector(".ng-container-body .ng-part-body tbody.bindable-tbody tr:not(.nodata)")
|
|
381
|
-
}),
|
|
381
|
+
}), y(this, M, null), t(this, D).clear(), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((a) => {
|
|
382
382
|
const o = t(this, S).querySelector(a);
|
|
383
383
|
if (!o) return;
|
|
384
|
-
const
|
|
385
|
-
if (!l) return;
|
|
386
|
-
const c = l.querySelector("tbody.bindable-tbody");
|
|
384
|
+
const c = o.querySelector(".ng-part-body table");
|
|
387
385
|
if (!c) return;
|
|
388
|
-
const
|
|
386
|
+
const l = c.querySelector("tbody.bindable-tbody");
|
|
387
|
+
if (!l) return;
|
|
388
|
+
const u = Array.from(l.querySelectorAll("tr")).map((g) => g.cloneNode(!0));
|
|
389
389
|
t(this, D).set(a, u);
|
|
390
390
|
});
|
|
391
|
-
const
|
|
392
|
-
if (
|
|
393
|
-
t(this,
|
|
391
|
+
const i = t(this, S).querySelector(".ng-container-body .ng-part-body"), e = t(this, S).querySelector(".ng-container-left .ng-part-body"), s = t(this, S).querySelector(".ng-container-right .ng-part-body"), r = t(this, S).querySelector(".ng-container-body .ng-part-header"), n = t(this, S).querySelector(".ng-container-body .ng-part-footer");
|
|
392
|
+
if (i) {
|
|
393
|
+
t(this, zt).call(this, i), t(this, Rt).call(this), t(this, Et).call(this), t(this, ct).call(this, i.scrollTop);
|
|
394
394
|
let a = !1;
|
|
395
|
-
const o = /* @__PURE__ */ h((
|
|
395
|
+
const o = /* @__PURE__ */ h((c, l, f) => {
|
|
396
396
|
var u;
|
|
397
|
-
a || (a = !0,
|
|
397
|
+
a || (a = !0, i && i.scrollTop !== c && (i.scrollTop = c), e && e.scrollTop !== c && (e.scrollTop = c), s && s.scrollTop !== c && (s.scrollTop = c), r && r.scrollLeft !== l && (r.scrollLeft = l), n && n.scrollLeft !== l && (n.scrollLeft = l), t(this, ct).call(this, c), (u = t(this, S).querySelector("nine-table-vscrollbar")) == null || u.refresh(), a = !1);
|
|
398
398
|
}, "syncScroll");
|
|
399
|
-
[
|
|
400
|
-
|
|
401
|
-
t(this, lt) || (
|
|
402
|
-
o(
|
|
399
|
+
[i, e, s].forEach((c) => {
|
|
400
|
+
c && c.addEventListener("scroll", () => {
|
|
401
|
+
t(this, lt) || (y(this, lt, !0), requestAnimationFrame(() => {
|
|
402
|
+
o(c.scrollTop, c.scrollLeft), y(this, lt, !1);
|
|
403
403
|
}));
|
|
404
404
|
});
|
|
405
405
|
});
|
|
406
406
|
}
|
|
407
407
|
}, "initialize"));
|
|
408
|
-
d(this,
|
|
409
|
-
d(this, zt, /* @__PURE__ */ h((r, e) => {
|
|
408
|
+
d(this, Bt, /* @__PURE__ */ h((i, e) => {
|
|
410
409
|
H.log("rowManager.#renderRows");
|
|
411
410
|
const s = t(this, D).get(e);
|
|
412
411
|
if (!s || s.length === 0) return;
|
|
413
|
-
const
|
|
414
|
-
if (!
|
|
415
|
-
|
|
416
|
-
const n =
|
|
412
|
+
const r = i.querySelector(".ng-part-body tbody.bindable-tbody");
|
|
413
|
+
if (!r) return;
|
|
414
|
+
r.querySelectorAll("tr:not(.nodata)").forEach((o) => o.remove());
|
|
415
|
+
const n = r.querySelector("tr.nodata"), a = document.createDocumentFragment();
|
|
417
416
|
for (let o = 0; o < t(this, St); o++)
|
|
418
|
-
s.forEach((
|
|
419
|
-
a.appendChild(
|
|
417
|
+
s.forEach((c) => {
|
|
418
|
+
a.appendChild(c.cloneNode(!0));
|
|
420
419
|
});
|
|
421
|
-
n ? n.before(a) :
|
|
420
|
+
n ? n.before(a) : r.appendChild(a), e === ".ng-container-body" && (t(this, Q).firstTr = r.querySelector("tr:not(.nodata)"));
|
|
422
421
|
}, "#renderRows"));
|
|
423
|
-
d(this,
|
|
424
|
-
if (H.log("rowManager.#measureAndCacheHeight"), t(this,
|
|
425
|
-
return t(this,
|
|
422
|
+
d(this, zt, /* @__PURE__ */ h((i) => {
|
|
423
|
+
if (H.log("rowManager.#measureAndCacheHeight"), t(this, M) !== null && t(this, M) > 0)
|
|
424
|
+
return t(this, M);
|
|
426
425
|
H.log("#measureAndCacheHeight");
|
|
427
426
|
const e = t(this, D).get(".ng-container-body");
|
|
428
427
|
if (!e || e.length === 0) return 24;
|
|
429
|
-
const s =
|
|
428
|
+
const s = i.querySelector("tbody.bindable-tbody");
|
|
430
429
|
if (!s) return 24;
|
|
431
430
|
s.querySelectorAll("tr:not(.nodata)").forEach((g) => g.remove());
|
|
432
|
-
const
|
|
431
|
+
const r = s.querySelector("tr.nodata"), n = document.createDocumentFragment();
|
|
433
432
|
e.forEach((g) => {
|
|
434
433
|
n.appendChild(g.cloneNode(!0));
|
|
435
|
-
}),
|
|
436
|
-
const a = t(this, S), o = a.style.display,
|
|
434
|
+
}), r ? r.before(n) : s.appendChild(n);
|
|
435
|
+
const a = t(this, S), o = a.style.display, c = a.style.visibility, l = a.style.position;
|
|
437
436
|
(o === "none" || window.getComputedStyle(a).display === "none") && (a.style.display = "block", a.style.visibility = "hidden", a.style.position = "absolute");
|
|
438
437
|
let f = 0;
|
|
439
438
|
const u = s.querySelectorAll("tr:not(.nodata)");
|
|
440
439
|
return u.forEach((g) => {
|
|
441
440
|
f += g.offsetHeight || g.getBoundingClientRect().height;
|
|
442
|
-
}), u.forEach((g) => g.remove()), a.style.display = o, a.style.visibility =
|
|
441
|
+
}), u.forEach((g) => g.remove()), a.style.display = o, a.style.visibility = c, a.style.position = l, y(this, M, f > 0 ? f : 24), t(this, At).call(this), t(this, M);
|
|
443
442
|
}, "#measureAndCacheHeight"));
|
|
444
|
-
d(this,
|
|
443
|
+
d(this, Et, /* @__PURE__ */ h(() => {
|
|
445
444
|
H.log("rowManager.#updateVirtualScrollHeight");
|
|
446
|
-
const e = (t(this, P).data.get() || []).length, s = t(this,
|
|
445
|
+
const e = (t(this, P).data.get() || []).length, s = t(this, M), r = e * s;
|
|
447
446
|
[".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((n) => {
|
|
448
447
|
const a = t(this, S).querySelector(n);
|
|
449
448
|
if (!a) return;
|
|
450
449
|
const o = a.querySelector(".ng-part-body .ng-virtual-spacer");
|
|
451
|
-
o && (o.style.height = `${
|
|
450
|
+
o && (o.style.height = `${r}px`);
|
|
452
451
|
});
|
|
453
452
|
}, "#updateVirtualScrollHeight"));
|
|
454
|
-
d(this,
|
|
455
|
-
if (t(this, tt) > 0 && t(this,
|
|
456
|
-
const
|
|
457
|
-
|
|
453
|
+
d(this, At, /* @__PURE__ */ h(() => {
|
|
454
|
+
if (t(this, tt) > 0 && t(this, M) > 0) {
|
|
455
|
+
const i = Math.ceil(t(this, tt) / t(this, M));
|
|
456
|
+
y(this, St, i + t(this, Ot));
|
|
458
457
|
}
|
|
459
458
|
}, "#updateRowCount"));
|
|
460
|
-
d(this,
|
|
461
|
-
var o,
|
|
462
|
-
const
|
|
459
|
+
d(this, Dt, /* @__PURE__ */ h(() => {
|
|
460
|
+
var o, c, l, f, u, g;
|
|
461
|
+
const i = t(this, S).querySelector(".ng-container-left .ng-part-body table"), e = t(this, S).querySelector(".ng-container-body .ng-part-body table"), s = t(this, S).querySelector(".ng-container-right .ng-part-body table");
|
|
463
462
|
if (e) {
|
|
464
|
-
const
|
|
465
|
-
for (let
|
|
466
|
-
const
|
|
467
|
-
((o =
|
|
468
|
-
((
|
|
469
|
-
((
|
|
470
|
-
],
|
|
471
|
-
|
|
463
|
+
const b = i ? Array.from(i.querySelectorAll("tbody tr")) : [], x = Array.from(e.querySelectorAll("tbody tr")), v = s ? Array.from(s.querySelectorAll("tbody tr")) : [], A = Math.max(b.length, x.length, v.length);
|
|
464
|
+
for (let m = 0; m < A; m++) {
|
|
465
|
+
const W = [
|
|
466
|
+
((o = b[m]) == null ? void 0 : o.getBoundingClientRect().height) || 0,
|
|
467
|
+
((c = x[m]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
|
|
468
|
+
((l = v[m]) == null ? void 0 : l.getBoundingClientRect().height) || 0
|
|
469
|
+
], C = Math.max(...W);
|
|
470
|
+
C > 0 && (b[m] && (b[m].style.height = `${C}px`), x[m] && (x[m].style.height = `${C}px`), v[m] && (v[m].style.height = `${C}px`));
|
|
472
471
|
}
|
|
473
472
|
}
|
|
474
|
-
const
|
|
473
|
+
const r = t(this, S).querySelector(".ng-container-left .ng-part-footer table"), n = t(this, S).querySelector(".ng-container-body .ng-part-footer table"), a = t(this, S).querySelector(".ng-container-right .ng-part-footer table");
|
|
475
474
|
if (n) {
|
|
476
|
-
const
|
|
477
|
-
for (let
|
|
478
|
-
const
|
|
479
|
-
((f =
|
|
480
|
-
((u = m
|
|
481
|
-
((g = v[
|
|
482
|
-
],
|
|
483
|
-
|
|
475
|
+
const b = r ? Array.from(r.querySelectorAll("tfoot tr")) : [], x = Array.from(n.querySelectorAll("tfoot tr")), v = a ? Array.from(a.querySelectorAll("tfoot tr")) : [], A = Math.max(b.length, x.length, v.length);
|
|
476
|
+
for (let m = 0; m < A; m++) {
|
|
477
|
+
const W = [
|
|
478
|
+
((f = b[m]) == null ? void 0 : f.getBoundingClientRect().height) || 0,
|
|
479
|
+
((u = x[m]) == null ? void 0 : u.getBoundingClientRect().height) || 0,
|
|
480
|
+
((g = v[m]) == null ? void 0 : g.getBoundingClientRect().height) || 0
|
|
481
|
+
], C = Math.max(...W);
|
|
482
|
+
C > 0 && (b[m] && (b[m].style.height = `${C}px`), x[m] && (x[m].style.height = `${C}px`), v[m] && (v[m].style.height = `${C}px`));
|
|
484
483
|
}
|
|
485
484
|
}
|
|
486
485
|
}, "#syncRowHeights"));
|
|
487
|
-
d(this,
|
|
488
|
-
!t(this, S) || !(t(this, S) instanceof HTMLElement) || (
|
|
489
|
-
for (const e of
|
|
486
|
+
d(this, Pt, /* @__PURE__ */ h(() => {
|
|
487
|
+
!t(this, S) || !(t(this, S) instanceof HTMLElement) || (y(this, V, new ResizeObserver((i) => {
|
|
488
|
+
for (const e of i) {
|
|
490
489
|
const s = e.target;
|
|
491
490
|
if (!s.classList.contains("active")) continue;
|
|
492
|
-
const
|
|
493
|
-
if (
|
|
491
|
+
const r = e.contentRect.height;
|
|
492
|
+
if (r > 0) {
|
|
494
493
|
let n = 0;
|
|
495
494
|
const a = s.querySelector(".ng-part-header"), o = s.querySelector(".ng-part-footer");
|
|
496
495
|
a && (n += a.offsetHeight), o && (n += o.offsetHeight);
|
|
497
|
-
const
|
|
498
|
-
t(this, tt) !==
|
|
496
|
+
const c = Math.max(r - n, 100);
|
|
497
|
+
t(this, tt) !== c && (y(this, tt, c), t(this, At).call(this), t(this, M) !== null && (t(this, Rt).call(this), this.refresh()));
|
|
499
498
|
}
|
|
500
499
|
}
|
|
501
|
-
})), t(this,
|
|
500
|
+
})), t(this, V).observe(t(this, S)));
|
|
502
501
|
}, "#initResizeObserver"));
|
|
503
502
|
d(this, Rt, /* @__PURE__ */ h(() => {
|
|
504
|
-
H.log("rowManager.#renderAllContainers"), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((
|
|
505
|
-
const e = t(this, S).querySelector(
|
|
506
|
-
e && e.querySelector(".ng-part-body tbody.bindable-tbody") && t(this,
|
|
507
|
-
}), t(this,
|
|
503
|
+
H.log("rowManager.#renderAllContainers"), [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((i) => {
|
|
504
|
+
const e = t(this, S).querySelector(i);
|
|
505
|
+
e && e.querySelector(".ng-part-body tbody.bindable-tbody") && t(this, Bt).call(this, e, i);
|
|
506
|
+
}), t(this, jt).call(this), t(this, Dt).call(this);
|
|
508
507
|
}, "#renderAllContainers"));
|
|
509
|
-
d(this,
|
|
508
|
+
d(this, Ae, /* @__PURE__ */ h((i) => {
|
|
510
509
|
[".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((e) => {
|
|
511
|
-
var
|
|
510
|
+
var l;
|
|
512
511
|
const s = t(this, S).querySelector(e);
|
|
513
512
|
if (!s) return;
|
|
514
|
-
const
|
|
515
|
-
if (!
|
|
516
|
-
const n = Array.from(
|
|
513
|
+
const r = s.querySelector(".ng-part-body tbody.bindable-tbody");
|
|
514
|
+
if (!r) return;
|
|
515
|
+
const n = Array.from(r.querySelectorAll("tr:not(.nodata)")), a = ((l = t(this, D).get(e)) == null ? void 0 : l.length) || 1, c = (t(this, P).data.get() || []).length;
|
|
517
516
|
n.forEach((f, u) => {
|
|
518
|
-
const g =
|
|
519
|
-
if (g >=
|
|
517
|
+
const g = i + Math.floor(u / a);
|
|
518
|
+
if (g >= c) {
|
|
520
519
|
f.style.display = "none";
|
|
521
520
|
return;
|
|
522
521
|
}
|
|
523
|
-
const
|
|
524
|
-
f.style.display = "", t(this,
|
|
522
|
+
const b = t(this, P).data.get(g);
|
|
523
|
+
f.style.display = "", t(this, qt).call(this, f, b, g);
|
|
525
524
|
});
|
|
526
525
|
});
|
|
527
526
|
}, "#adjustBufferRows"));
|
|
528
|
-
d(this, ct, /* @__PURE__ */ h((
|
|
529
|
-
var
|
|
530
|
-
const e = t(this,
|
|
527
|
+
d(this, ct, /* @__PURE__ */ h((i) => {
|
|
528
|
+
var l, f;
|
|
529
|
+
const e = t(this, M);
|
|
531
530
|
if (!e || e <= 0) return;
|
|
532
|
-
const s = t(this, P).data.length,
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
g
|
|
537
|
-
|
|
538
|
-
const
|
|
539
|
-
if (!
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
if (M >= s) {
|
|
545
|
-
E.style.display = "none";
|
|
531
|
+
const s = t(this, P).data.length, r = Math.max(0, Math.floor(i / e)), n = r * e, a = ((l = t(this, D).get(".ng-container-body")) == null ? void 0 : l.length) || 1, o = t(this, Q).firstTr, c = o && o.dataset.row !== void 0 ? parseInt(o.dataset.row, 10) : -1;
|
|
532
|
+
(f = t(this, Q)) == null || f.scrollTables.forEach((u) => {
|
|
533
|
+
u.style.transform = `translateY(${n}px)`;
|
|
534
|
+
}), c !== r && [".ng-container-body", ".ng-container-left", ".ng-container-right"].forEach((u) => {
|
|
535
|
+
const g = t(this, S).querySelector(u);
|
|
536
|
+
if (!g) return;
|
|
537
|
+
const b = g.querySelector(".ng-part-body tbody.bindable-tbody");
|
|
538
|
+
if (!b) return;
|
|
539
|
+
Array.from(b.querySelectorAll("tr:not(.nodata)")).forEach((v, A) => {
|
|
540
|
+
const m = r + Math.floor(A / a);
|
|
541
|
+
if (m >= s) {
|
|
542
|
+
v.style.display = "none";
|
|
546
543
|
return;
|
|
547
544
|
}
|
|
548
|
-
const
|
|
549
|
-
|
|
545
|
+
const W = t(this, P).data.get(m);
|
|
546
|
+
v.style.display = "", t(this, qt).call(this, v, W, m);
|
|
550
547
|
});
|
|
551
548
|
});
|
|
552
549
|
}, "#handleScroll"));
|
|
@@ -564,199 +561,199 @@ const _e = class _e {
|
|
|
564
561
|
cell.dataset.row = dataIndex;
|
|
565
562
|
});
|
|
566
563
|
}; */
|
|
567
|
-
d(this,
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
const a = Array.from(
|
|
564
|
+
d(this, qt, /* @__PURE__ */ h((i, e, s) => {
|
|
565
|
+
i.dataset.row = s, i.data = e, Array.from(i.cells).forEach((r, n) => {
|
|
566
|
+
r.dataset.row = s;
|
|
567
|
+
const a = Array.from(r.children).find((o) => o.tagName.toLowerCase().startsWith("cell-") || typeof o.refresh == "function");
|
|
571
568
|
a && typeof a.refresh == "function" && a.refresh();
|
|
572
569
|
});
|
|
573
570
|
}, "#bindRowData"));
|
|
574
|
-
d(this,
|
|
575
|
-
var
|
|
571
|
+
d(this, jt, /* @__PURE__ */ h(() => {
|
|
572
|
+
var c, l, f;
|
|
576
573
|
H.log("rowManager.#syncHeaderHeights");
|
|
577
|
-
const
|
|
574
|
+
const i = t(this, S).querySelector(".ng-container-left .ng-part-header table"), e = t(this, S).querySelector(".ng-container-body .ng-part-header table"), s = t(this, S).querySelector(".ng-container-right .ng-part-header table");
|
|
578
575
|
if (!e) return;
|
|
579
|
-
const
|
|
576
|
+
const r = i ? Array.from(i.querySelectorAll("tr")) : [], n = Array.from(e.querySelectorAll("tr")), a = s ? Array.from(s.querySelectorAll("tr")) : [], o = Math.max(r.length, n.length, a.length);
|
|
580
577
|
for (let u = 0; u < o; u++) {
|
|
581
578
|
const g = [
|
|
582
|
-
((
|
|
583
|
-
((
|
|
579
|
+
((c = r[u]) == null ? void 0 : c.getBoundingClientRect().height) || 0,
|
|
580
|
+
((l = n[u]) == null ? void 0 : l.getBoundingClientRect().height) || 0,
|
|
584
581
|
((f = a[u]) == null ? void 0 : f.getBoundingClientRect().height) || 0
|
|
585
|
-
],
|
|
586
|
-
|
|
582
|
+
], b = Math.max(...g);
|
|
583
|
+
b > 0 && (r[u] && (r[u].style.height = `${b}px`), n[u] && (n[u].style.height = `${b}px`), a[u] && (a[u].style.height = `${b}px`));
|
|
587
584
|
}
|
|
588
585
|
}, "#syncHeaderHeights"));
|
|
589
|
-
|
|
590
|
-
t(this,
|
|
586
|
+
E(this, "destroy", /* @__PURE__ */ h(() => {
|
|
587
|
+
t(this, V) && (t(this, V).disconnect(), y(this, V, null));
|
|
591
588
|
}, "destroy"));
|
|
592
|
-
|
|
589
|
+
y(this, P, i.getRootNode().host), y(this, S, i), t(this, Pt).call(this);
|
|
593
590
|
}
|
|
594
591
|
getRowHeight() {
|
|
595
|
-
return t(this,
|
|
592
|
+
return t(this, M);
|
|
596
593
|
}
|
|
597
|
-
templateLength(
|
|
594
|
+
templateLength(i = ".ng-container-body") {
|
|
598
595
|
var e;
|
|
599
|
-
return ((e = t(this, D).get(
|
|
596
|
+
return ((e = t(this, D).get(i)) == null ? void 0 : e.length) || 1;
|
|
600
597
|
}
|
|
601
598
|
};
|
|
602
|
-
P = new WeakMap(), S = new WeakMap(),
|
|
603
|
-
let
|
|
604
|
-
const
|
|
599
|
+
P = new WeakMap(), S = new WeakMap(), Q = new WeakMap(), D = new WeakMap(), M = new WeakMap(), V = new WeakMap(), tt = new WeakMap(), St = new WeakMap(), Ee = new WeakMap(), lt = new WeakMap(), Ot = new WeakMap(), Bt = new WeakMap(), zt = new WeakMap(), Et = new WeakMap(), At = new WeakMap(), Dt = new WeakMap(), Pt = new WeakMap(), Rt = new WeakMap(), Ae = new WeakMap(), ct = new WeakMap(), qt = new WeakMap(), jt = new WeakMap(), h(Ie, "RowManager");
|
|
600
|
+
let he = Ie;
|
|
601
|
+
const Ft = class Ft {
|
|
605
602
|
/**
|
|
606
603
|
* 🎯 레이아웃 내의 여러 rawTables 배열을 일괄로 받아 단일 마스터 템플릿으로 사전 컴파일합니다.
|
|
607
604
|
*/
|
|
608
|
-
static compileAll(
|
|
609
|
-
return Array.isArray(
|
|
605
|
+
static compileAll(i) {
|
|
606
|
+
return Array.isArray(i) ? i.map((e) => Ft.compile(e)) : [];
|
|
610
607
|
}
|
|
611
608
|
/**
|
|
612
609
|
* 🎯 단일 원본 테이블을 받아 기본 구조 보정 및 2차원 격자 인덱스 사전 부여 완료된 마스터 테이블 반환
|
|
613
610
|
*/
|
|
614
|
-
static compile(
|
|
615
|
-
if (!
|
|
611
|
+
static compile(i) {
|
|
612
|
+
if (!i) return null;
|
|
616
613
|
const e = /* @__PURE__ */ h((o) => {
|
|
617
|
-
o.querySelectorAll("tbody td, tbody th, tfoot td, tfoot th").forEach((
|
|
618
|
-
const f =
|
|
619
|
-
if (
|
|
614
|
+
o.querySelectorAll("tbody td, tbody th, tfoot td, tfoot th").forEach((l) => {
|
|
615
|
+
const f = l.getAttribute("cell-type") || "renderer";
|
|
616
|
+
if (l.children.length > 0 && l.firstElementChild.tagName.includes("-")) return;
|
|
620
617
|
let u = `cell-${f}`;
|
|
621
|
-
const g =
|
|
622
|
-
let
|
|
623
|
-
g &&
|
|
618
|
+
const g = l.getAttribute("data-bind"), b = l.getAttribute("data-expr"), x = l.getAttribute("maxbyte"), v = l.getAttribute("type");
|
|
619
|
+
let A = [];
|
|
620
|
+
g && A.push(`data-bind="${g}"`), b && A.push(`data-expr="${b}"`), x && A.push(`maxbyte="${x}"`), v && A.push(`type="${v}"`), l.innerHTML = `<${u} ${A.join(" ")}></${u}>`;
|
|
624
621
|
});
|
|
625
622
|
}, "processCellTypes"), s = /* @__PURE__ */ h((o) => {
|
|
626
623
|
if (!o.querySelector("colgroup")) {
|
|
627
|
-
const
|
|
628
|
-
for (let g = 0; g <
|
|
629
|
-
const
|
|
630
|
-
|
|
624
|
+
const c = o.querySelector("tbody tr") || o.querySelector("tr"), l = c ? c.querySelectorAll("th, td").length : 1, f = document.createElement("colgroup"), u = Math.max(Math.floor(o.clientWidth / l), 100);
|
|
625
|
+
for (let g = 0; g < l; g++) {
|
|
626
|
+
const b = document.createElement("col");
|
|
627
|
+
b.setAttribute("width", u), f.appendChild(b);
|
|
631
628
|
}
|
|
632
629
|
o.prepend(f);
|
|
633
630
|
}
|
|
634
631
|
if (!o.querySelector("thead")) {
|
|
635
|
-
const
|
|
636
|
-
|
|
632
|
+
const c = document.createElement("thead"), l = o.querySelector("colgroup");
|
|
633
|
+
l ? l.after(c) : o.prepend(c);
|
|
637
634
|
}
|
|
638
635
|
o.classList.add("nine-table-element"), o.style.display = "table";
|
|
639
|
-
}, "ensureTableStructure"),
|
|
640
|
-
const
|
|
636
|
+
}, "ensureTableStructure"), r = /* @__PURE__ */ h((o, c) => {
|
|
637
|
+
const l = Array.from(o.querySelectorAll(c + " tr")), f = Array.from(o.querySelectorAll(c + " th," + c + " td")), u = l.length;
|
|
641
638
|
if (u === 0 || f.length === 0) return;
|
|
642
639
|
let g = 0;
|
|
643
|
-
f.forEach((
|
|
644
|
-
g +=
|
|
640
|
+
f.forEach((x) => {
|
|
641
|
+
g += x.colSpan || 1;
|
|
645
642
|
});
|
|
646
|
-
const
|
|
647
|
-
|
|
648
|
-
const v =
|
|
649
|
-
let
|
|
650
|
-
Array.from(
|
|
651
|
-
for (let B = 0; B <
|
|
652
|
-
if (
|
|
653
|
-
|
|
643
|
+
const b = Array.from(Array(u), () => Array(g).fill(null));
|
|
644
|
+
l.forEach((x) => {
|
|
645
|
+
const v = x.sectionRowIndex;
|
|
646
|
+
let A = 0;
|
|
647
|
+
Array.from(x.querySelectorAll("th,td")).forEach((m) => {
|
|
648
|
+
for (let B = 0; B < b[v].length; B++)
|
|
649
|
+
if (b[v][B] === null) {
|
|
650
|
+
A = B;
|
|
654
651
|
break;
|
|
655
652
|
}
|
|
656
|
-
const
|
|
657
|
-
for (let B = 0; B <
|
|
658
|
-
for (let pt = 0; pt <
|
|
659
|
-
v + B < u &&
|
|
653
|
+
const W = m.rowSpan || 1, C = m.colSpan || 1;
|
|
654
|
+
for (let B = 0; B < W; B++)
|
|
655
|
+
for (let pt = 0; pt < C; pt++)
|
|
656
|
+
v + B < u && A + pt < g && (b[v + B][A + pt] = B === 0 && pt === 0 ? "1" : "0");
|
|
660
657
|
});
|
|
661
|
-
}),
|
|
662
|
-
const v =
|
|
663
|
-
Array.from(
|
|
664
|
-
for (let
|
|
665
|
-
if (
|
|
666
|
-
|
|
658
|
+
}), l.forEach((x) => {
|
|
659
|
+
const v = x.sectionRowIndex;
|
|
660
|
+
Array.from(x.querySelectorAll("th,td")).forEach((A) => {
|
|
661
|
+
for (let m = 0; m < b[v].length; m++)
|
|
662
|
+
if (b[v][m] === "1") {
|
|
663
|
+
A.dataset.col = m, b[v][m] = "0";
|
|
667
664
|
break;
|
|
668
665
|
}
|
|
669
666
|
});
|
|
670
667
|
});
|
|
671
|
-
}, "resetColIndex"), n =
|
|
672
|
-
return s(n), e(n),
|
|
673
|
-
const
|
|
674
|
-
|
|
675
|
-
f.setAttribute("fixed",
|
|
668
|
+
}, "resetColIndex"), n = i.cloneNode(!0);
|
|
669
|
+
return s(n), e(n), r(n, "thead"), r(n, "tbody"), r(n, "tfoot"), Array.from(n.querySelectorAll("colgroup col")).forEach((o, c) => {
|
|
670
|
+
const l = o.getAttribute("fixed");
|
|
671
|
+
l && n.querySelectorAll(`thead [data-col="${c}"], tbody [data-col="${c}"], tfoot [data-col="${c}"]`).forEach((f) => {
|
|
672
|
+
f.setAttribute("fixed", l);
|
|
676
673
|
});
|
|
677
674
|
}), n;
|
|
678
675
|
}
|
|
679
676
|
// 🎯 [추가] td/th에 선언된 cell-type 속성을 읽어 커스텀 태그로 자동 감싸기
|
|
680
677
|
};
|
|
681
|
-
h(
|
|
682
|
-
let
|
|
683
|
-
var
|
|
678
|
+
h(Ft, "TableCompiler");
|
|
679
|
+
let de = Ft;
|
|
680
|
+
var Vt, et, st, Yt, Ut, ht, Xt, Kt;
|
|
684
681
|
const mt = class mt extends HTMLElement {
|
|
685
682
|
constructor() {
|
|
686
683
|
super();
|
|
687
|
-
d(this,
|
|
684
|
+
d(this, Vt);
|
|
688
685
|
d(this, et, null);
|
|
689
686
|
d(this, st);
|
|
690
|
-
|
|
687
|
+
E(this, "invalidate", /* @__PURE__ */ h(() => {
|
|
691
688
|
t(this, st).refresh();
|
|
692
689
|
}, "invalidate"));
|
|
693
|
-
d(this,
|
|
690
|
+
d(this, Yt, /* @__PURE__ */ h(() => {
|
|
694
691
|
[
|
|
695
692
|
{ selector: ".ng-container-body", type: null },
|
|
696
693
|
{ selector: ".ng-container-left", type: "left" },
|
|
697
694
|
{ selector: ".ng-container-right", type: "right" }
|
|
698
|
-
].forEach(({ selector: s, type:
|
|
695
|
+
].forEach(({ selector: s, type: r }) => {
|
|
699
696
|
const n = this.querySelector(s);
|
|
700
697
|
if (!n) return;
|
|
701
698
|
n.innerHTML = "";
|
|
702
699
|
const a = document.createElement("div");
|
|
703
|
-
a.className = "ng-part-header", a.appendChild(t(this, ht).call(this, t(this, et),
|
|
700
|
+
a.className = "ng-part-header", a.appendChild(t(this, ht).call(this, t(this, et), r, "header"));
|
|
704
701
|
const o = document.createElement("div");
|
|
705
702
|
o.className = "ng-part-body";
|
|
706
|
-
const l = document.createElement("div");
|
|
707
|
-
l.className = "ng-scroll-content", l.style.position = "relative", l.style.width = "100%", l.appendChild(t(this, ht).call(this, t(this, et), i, "body"));
|
|
708
703
|
const c = document.createElement("div");
|
|
709
|
-
c.className = "ng-
|
|
704
|
+
c.className = "ng-scroll-content", c.style.position = "relative", c.style.width = "100%", c.appendChild(t(this, ht).call(this, t(this, et), r, "body"));
|
|
705
|
+
const l = document.createElement("div");
|
|
706
|
+
l.className = "ng-virtual-spacer", l.style.width = "100%", l.style.pointerEvents = "none", c.appendChild(l), o.appendChild(c);
|
|
710
707
|
const f = document.createElement("div");
|
|
711
|
-
f.className = "ng-part-footer", f.appendChild(t(this, ht).call(this, t(this, et),
|
|
708
|
+
f.className = "ng-part-footer", f.appendChild(t(this, ht).call(this, t(this, et), r, "footer")), n.appendChild(a), n.appendChild(o), n.appendChild(f);
|
|
712
709
|
});
|
|
713
710
|
}, "#renderSplitContainers"));
|
|
714
|
-
d(this,
|
|
711
|
+
d(this, Ut, /* @__PURE__ */ h(() => {
|
|
715
712
|
["left", "right", "body"].forEach((e) => {
|
|
716
|
-
const s = this.querySelector(`.ng-container-${e}`),
|
|
717
|
-
if (!s || !
|
|
713
|
+
const s = this.querySelector(`.ng-container-${e}`), r = s == null ? void 0 : s.querySelectorAll("table");
|
|
714
|
+
if (!s || !r || r.length === 0) return;
|
|
718
715
|
let n = 0;
|
|
719
|
-
|
|
716
|
+
r[0].querySelectorAll("col").forEach((a) => {
|
|
720
717
|
const o = parseInt(a.getAttribute("width"), 10);
|
|
721
718
|
isNaN(n) || (n += o);
|
|
722
719
|
}), e === "body" ? s.style.flex = "1" : (s.style.flex = `0 0 ${n}px`, s.style.width = `${n}px`);
|
|
723
720
|
});
|
|
724
721
|
}, "#updateContainerWidths"));
|
|
725
|
-
|
|
726
|
-
e && (
|
|
722
|
+
E(this, "generate", /* @__PURE__ */ h((e) => {
|
|
723
|
+
e && (y(this, et, de.compile(e)), t(this, Yt).call(this), t(this, Ut).call(this), t(this, st).initialize(), setTimeout(() => {
|
|
727
724
|
var s;
|
|
728
725
|
(s = this.querySelector("nine-table-hscrollbar")) == null || s.refresh();
|
|
729
726
|
}, 0));
|
|
730
727
|
}, "generate"));
|
|
731
|
-
d(this, ht, /* @__PURE__ */ h((e, s,
|
|
732
|
-
const n = e.cloneNode(!0), a = n.querySelector("thead"), o = n.querySelector("tbody"),
|
|
733
|
-
if (
|
|
734
|
-
if (o && o.remove(),
|
|
728
|
+
d(this, ht, /* @__PURE__ */ h((e, s, r) => {
|
|
729
|
+
const n = e.cloneNode(!0), a = n.querySelector("thead"), o = n.querySelector("tbody"), c = n.querySelector("tfoot");
|
|
730
|
+
if (r === "header") {
|
|
731
|
+
if (o && o.remove(), c && c.remove(), e.querySelector("tbody")) {
|
|
735
732
|
const f = document.createElement("tbody");
|
|
736
733
|
f.className = "fixed-tbody", n.appendChild(f);
|
|
737
734
|
}
|
|
738
|
-
} else
|
|
739
|
-
return s === "left" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((
|
|
740
|
-
|
|
741
|
-
}) : s === "right" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((
|
|
742
|
-
|
|
743
|
-
}) : n.querySelectorAll("[fixed=left], [fixed=right]").forEach((
|
|
744
|
-
|
|
735
|
+
} else r === "body" ? (a && a.remove(), c && c.remove(), o && (o.className = "bindable-tbody")) : r === "footer" && (a && a.remove(), o && o.remove());
|
|
736
|
+
return s === "left" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
|
|
737
|
+
l.getAttribute("fixed") !== "left" && l.remove();
|
|
738
|
+
}) : s === "right" ? n.querySelectorAll("col, th, td, tfoot td, tfoot th").forEach((l) => {
|
|
739
|
+
l.getAttribute("fixed") !== "right" && l.remove();
|
|
740
|
+
}) : n.querySelectorAll("[fixed=left], [fixed=right]").forEach((l) => {
|
|
741
|
+
l.remove();
|
|
745
742
|
}), n;
|
|
746
743
|
}, "#createSplitTable"));
|
|
747
|
-
|
|
748
|
-
|
|
744
|
+
E(this, "getRowHeight", /* @__PURE__ */ h(() => t(this, st).getRowHeight(), "getRowHeight"));
|
|
745
|
+
E(this, "scrollToX", /* @__PURE__ */ h((e) => {
|
|
749
746
|
const s = this.querySelector(".ng-container-body .ng-part-body");
|
|
750
747
|
s && (s.scrollLeft = e);
|
|
751
748
|
}, "scrollToX"));
|
|
752
|
-
|
|
749
|
+
E(this, "scrollToY", /* @__PURE__ */ h((e) => {
|
|
753
750
|
const s = this.querySelector(".ng-container-body .ng-part-body");
|
|
754
751
|
s && (s.scrollTop = e);
|
|
755
752
|
}, "scrollToY"));
|
|
756
|
-
d(this,
|
|
757
|
-
t(this,
|
|
753
|
+
d(this, Xt, /* @__PURE__ */ h(() => {
|
|
754
|
+
t(this, Kt).call(this);
|
|
758
755
|
}, "#init"));
|
|
759
|
-
d(this,
|
|
756
|
+
d(this, Kt, /* @__PURE__ */ h(() => {
|
|
760
757
|
const e = mt.SCROLLBAR_SIZE;
|
|
761
758
|
this.innerHTML = `
|
|
762
759
|
<style>
|
|
@@ -899,45 +896,45 @@ const mt = class mt extends HTMLElement {
|
|
|
899
896
|
</div>
|
|
900
897
|
`;
|
|
901
898
|
}, "#render"));
|
|
902
|
-
|
|
899
|
+
y(this, st, new he(this)), y(this, Vt, this.getRootNode().host);
|
|
903
900
|
}
|
|
904
901
|
connectedCallback() {
|
|
905
|
-
t(this,
|
|
902
|
+
t(this, Xt).call(this);
|
|
906
903
|
}
|
|
907
904
|
disconnectedCallback() {
|
|
908
905
|
this.innerHTML = "", H.log("NineTableSheet destroyed.");
|
|
909
906
|
}
|
|
910
907
|
};
|
|
911
|
-
|
|
912
|
-
let
|
|
913
|
-
customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet",
|
|
914
|
-
var
|
|
915
|
-
const
|
|
908
|
+
Vt = new WeakMap(), et = new WeakMap(), st = new WeakMap(), Yt = new WeakMap(), Ut = new WeakMap(), ht = new WeakMap(), Xt = new WeakMap(), Kt = new WeakMap(), h(mt, "NineTableSheet"), E(mt, "SCROLLBAR_SIZE", 16);
|
|
909
|
+
let It = mt;
|
|
910
|
+
customElements.get("nine-table-sheet") || customElements.define("nine-table-sheet", It);
|
|
911
|
+
var Zt, kt;
|
|
912
|
+
const _e = class _e extends HTMLElement {
|
|
916
913
|
constructor() {
|
|
917
914
|
super();
|
|
918
|
-
d(this,
|
|
915
|
+
d(this, Zt, /* @__PURE__ */ h(() => {
|
|
919
916
|
var e;
|
|
920
917
|
(e = this.querySelector(".nine-tab-bar")) == null || e.addEventListener("click", (s) => {
|
|
921
918
|
var a;
|
|
922
|
-
const
|
|
923
|
-
t(this, kt).call(this, n,
|
|
919
|
+
const r = s.ctrlKey || s.metaKey || s.shiftKey, n = parseInt((a = s.target.closest(".nine-tab-item")) == null ? void 0 : a.dataset.index, 10);
|
|
920
|
+
t(this, kt).call(this, n, r);
|
|
924
921
|
}), t(this, kt).call(this, 0, !1);
|
|
925
922
|
}, "#init"));
|
|
926
923
|
d(this, kt, /* @__PURE__ */ h((e, s = !1) => {
|
|
927
|
-
const
|
|
924
|
+
const r = /* @__PURE__ */ h(() => {
|
|
928
925
|
const f = Array.from(this.querySelectorAll("nine-table-sheet"));
|
|
929
|
-
Array.from(this.querySelectorAll("nine-splitter")).forEach((
|
|
930
|
-
const g = f.filter((
|
|
931
|
-
g.length < 2 || g.forEach((
|
|
932
|
-
const
|
|
933
|
-
v &&
|
|
926
|
+
Array.from(this.querySelectorAll("nine-splitter")).forEach((b) => b.style.setProperty("display", "none"));
|
|
927
|
+
const g = f.filter((b) => b.classList.contains("active"));
|
|
928
|
+
g.length < 2 || g.forEach((b) => {
|
|
929
|
+
const x = parseInt(b.getAttribute("data-index"), 10), v = this.querySelector(`nine-splitter[data-split-index="${x}"]`), A = f[x + 1];
|
|
930
|
+
v && A && A.classList.contains("active") && v.style.setProperty("display", "flex");
|
|
934
931
|
});
|
|
935
|
-
}, "updateSplitters"), n = this.querySelector(".nine-tab-bar"), a = this.querySelector("nine-table-sheets-body"), o = n.querySelectorAll(".nine-tab-item"),
|
|
932
|
+
}, "updateSplitters"), n = this.querySelector(".nine-tab-bar"), a = this.querySelector("nine-table-sheets-body"), o = n.querySelectorAll(".nine-tab-item"), c = a.querySelectorAll("nine-table-sheet");
|
|
936
933
|
if (!o[e]) return;
|
|
937
934
|
if (!s)
|
|
938
935
|
o.forEach((f, u) => {
|
|
939
936
|
f.classList.toggle("active", u === e);
|
|
940
|
-
}),
|
|
937
|
+
}), c.forEach((f, u) => {
|
|
941
938
|
const g = u === e;
|
|
942
939
|
f.classList.toggle("active", g), f.style.flex = g ? "1 1 100%" : "";
|
|
943
940
|
});
|
|
@@ -949,42 +946,42 @@ const Ne = class Ne extends HTMLElement {
|
|
|
949
946
|
const g = a.querySelector(`nine-table-sheet[data-index="${e}"]`);
|
|
950
947
|
g && (g.classList.toggle("active"), g.classList.contains("active") || (g.style.flex = ""));
|
|
951
948
|
}
|
|
952
|
-
const
|
|
953
|
-
|
|
954
|
-
f.style.flex =
|
|
955
|
-
}),
|
|
949
|
+
const l = a.querySelectorAll("nine-table-sheet.active");
|
|
950
|
+
l == null || l.forEach((f) => {
|
|
951
|
+
f.style.flex = l.length > 1 ? "1 1 0%" : "1 1 100%";
|
|
952
|
+
}), r();
|
|
956
953
|
}, "#switchSheet"));
|
|
957
954
|
}
|
|
958
955
|
connectedCallback() {
|
|
959
|
-
t(this,
|
|
956
|
+
t(this, Zt).call(this);
|
|
960
957
|
}
|
|
961
958
|
};
|
|
962
|
-
|
|
963
|
-
let
|
|
964
|
-
customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets",
|
|
965
|
-
var
|
|
966
|
-
const
|
|
967
|
-
constructor(
|
|
968
|
-
d(this,
|
|
969
|
-
d(this,
|
|
970
|
-
t(this,
|
|
971
|
-
for (let e of
|
|
972
|
-
t(this,
|
|
973
|
-
}).observe(t(this,
|
|
959
|
+
Zt = new WeakMap(), kt = new WeakMap(), h(_e, "NineTableSheets");
|
|
960
|
+
let fe = _e;
|
|
961
|
+
customElements.get("nine-table-sheets") || customElements.define("nine-table-sheets", fe);
|
|
962
|
+
var I, Gt, Tt, Jt;
|
|
963
|
+
const Ne = class Ne {
|
|
964
|
+
constructor(i) {
|
|
965
|
+
d(this, I);
|
|
966
|
+
d(this, Gt, /* @__PURE__ */ h(() => {
|
|
967
|
+
t(this, Jt).call(this), new ResizeObserver((i) => {
|
|
968
|
+
for (let e of i)
|
|
969
|
+
t(this, I).getAttribute("auto-height") === "true" && t(this, Tt).call(this);
|
|
970
|
+
}).observe(t(this, I));
|
|
974
971
|
}, "#init"));
|
|
975
|
-
d(this,
|
|
976
|
-
var
|
|
977
|
-
const
|
|
978
|
-
if (
|
|
979
|
-
const e = parseInt(t(this,
|
|
980
|
-
t(this,
|
|
972
|
+
d(this, Tt, /* @__PURE__ */ h(() => {
|
|
973
|
+
var c, l;
|
|
974
|
+
const i = Array.from(t(this, I).shadowRoot.querySelectorAll("nine-table-sheet.active"));
|
|
975
|
+
if (i.length === 0) return;
|
|
976
|
+
const e = parseInt(t(this, I).getAttribute("max-display-row"), 10) || 10, s = Math.max(...i.map((f) => f.getRowHeight())), r = (c = t(this, I).shadowRoot.querySelector("nine-table-header")) == null ? void 0 : c.getBoundingClientRect().height, n = (l = t(this, I).shadowRoot.querySelector("nine-table-sheets-footer")) == null ? void 0 : l.getBoundingClientRect().height, a = It.SCROLLBAR_SIZE, o = e * s + r + n + a;
|
|
977
|
+
t(this, I).style.height = `${o}px`;
|
|
981
978
|
}, "#applyAutoHeight"));
|
|
982
|
-
d(this,
|
|
983
|
-
const e = Array.from(t(this,
|
|
984
|
-
const u = `<nine-table-sheet class="${
|
|
979
|
+
d(this, Jt, /* @__PURE__ */ h(() => {
|
|
980
|
+
const e = Array.from(t(this, I).children).filter((c) => c.tagName === "TABLE"), s = t(this, I).getAttribute("auto-height") === "true", r = e.length, n = e.map((c, l) => {
|
|
981
|
+
const u = `<nine-table-sheet class="${l === 0 ? "active" : ""}" data-index="${l}"></nine-table-sheet>`, g = l < r - 1 ? `<nine-splitter class="h" data-split-index="${l}"></nine-splitter>` : "";
|
|
985
982
|
return u + g;
|
|
986
|
-
}).join(""), a = e.map((
|
|
987
|
-
t(this,
|
|
983
|
+
}).join(""), a = e.map((c, l) => `<div class="nine-tab-item ${l === 0 ? "active" : ""}" data-index="${l}">Sheet ${l + 1}</div>`).join("");
|
|
984
|
+
t(this, I).shadowRoot.innerHTML = `
|
|
988
985
|
<style>
|
|
989
986
|
:host {
|
|
990
987
|
display: flex;
|
|
@@ -1075,237 +1072,237 @@ const We = class We {
|
|
|
1075
1072
|
</nine-table-body>
|
|
1076
1073
|
<nine-table-footer></nine-table-footer>
|
|
1077
1074
|
`;
|
|
1078
|
-
const o = t(this,
|
|
1079
|
-
o == null || o.forEach((
|
|
1080
|
-
e[
|
|
1081
|
-
|
|
1075
|
+
const o = t(this, I).shadowRoot.querySelectorAll("nine-table-sheet");
|
|
1076
|
+
o == null || o.forEach((c, l) => {
|
|
1077
|
+
e[l] && setTimeout(() => {
|
|
1078
|
+
c.generate(e[l]), s && t(this, Tt).call(this);
|
|
1082
1079
|
});
|
|
1083
1080
|
});
|
|
1084
1081
|
}, "#render"));
|
|
1085
|
-
|
|
1082
|
+
y(this, I, i), t(this, Gt).call(this);
|
|
1086
1083
|
}
|
|
1087
1084
|
};
|
|
1088
|
-
|
|
1089
|
-
let
|
|
1090
|
-
var
|
|
1091
|
-
const
|
|
1092
|
-
constructor(
|
|
1093
|
-
d(this,
|
|
1085
|
+
I = new WeakMap(), Gt = new WeakMap(), Tt = new WeakMap(), Jt = new WeakMap(), h(Ne, "LayoutManager");
|
|
1086
|
+
let ue = Ne;
|
|
1087
|
+
var Ct, dt;
|
|
1088
|
+
const We = class We {
|
|
1089
|
+
constructor(i) {
|
|
1090
|
+
d(this, Ct);
|
|
1094
1091
|
d(this, dt, -1);
|
|
1095
|
-
|
|
1096
|
-
|
|
1092
|
+
E(this, "count", /* @__PURE__ */ h(() => t(this, Ct).rawRecords.length, "count"));
|
|
1093
|
+
y(this, Ct, i);
|
|
1097
1094
|
}
|
|
1098
1095
|
get at() {
|
|
1099
1096
|
return t(this, dt);
|
|
1100
1097
|
}
|
|
1101
|
-
set at(
|
|
1102
|
-
|
|
1098
|
+
set at(i) {
|
|
1099
|
+
y(this, dt, parseInt(i, 10)), body && !body.querySelector(`tbody.bindable tr[data-row="${t(this, dt)}"]`) && setTimeout(() => {
|
|
1103
1100
|
});
|
|
1104
1101
|
}
|
|
1105
1102
|
};
|
|
1106
|
-
|
|
1107
|
-
let
|
|
1108
|
-
var
|
|
1103
|
+
Ct = new WeakMap(), dt = new WeakMap(), h(We, "ngRow");
|
|
1104
|
+
let ge = We;
|
|
1105
|
+
var _, k, N, ft, Qt, Y, te, it, Lt, ee, se, ut;
|
|
1109
1106
|
const O = class O {
|
|
1110
|
-
constructor(
|
|
1111
|
-
d(this,
|
|
1107
|
+
constructor(i, e) {
|
|
1108
|
+
d(this, _);
|
|
1112
1109
|
d(this, k);
|
|
1113
|
-
d(this,
|
|
1110
|
+
d(this, N, []);
|
|
1114
1111
|
d(this, ft, []);
|
|
1115
|
-
d(this,
|
|
1116
|
-
d(this,
|
|
1117
|
-
d(this,
|
|
1118
|
-
|
|
1119
|
-
const
|
|
1120
|
-
Array.from(
|
|
1112
|
+
d(this, Qt, 0);
|
|
1113
|
+
d(this, Y, []);
|
|
1114
|
+
d(this, te, /* @__PURE__ */ h(() => {
|
|
1115
|
+
y(this, Y, []);
|
|
1116
|
+
const i = t(this, _).template || [];
|
|
1117
|
+
Array.from(i).forEach((e) => {
|
|
1121
1118
|
var s;
|
|
1122
|
-
t(this,
|
|
1119
|
+
t(this, Y).push(((s = e.getBoundingClientRect) == null ? void 0 : s.call(e).height) || 24);
|
|
1123
1120
|
}), (t(this, k).rawRecords || []).forEach((e) => {
|
|
1124
|
-
e.__ng || (e.__ng = t(this,
|
|
1121
|
+
e.__ng || (e.__ng = t(this, Lt).call(this)), e.__ng.height = t(this, Y).slice();
|
|
1125
1122
|
});
|
|
1126
1123
|
}, "#initialize"));
|
|
1127
|
-
d(this,
|
|
1128
|
-
t(this,
|
|
1129
|
-
|
|
1124
|
+
d(this, it, /* @__PURE__ */ h(() => {
|
|
1125
|
+
t(this, _).shadowRoot.querySelectorAll("nine-table-sheet").forEach((i) => {
|
|
1126
|
+
i.invalidate();
|
|
1130
1127
|
});
|
|
1131
1128
|
}, "#invalidate"));
|
|
1132
|
-
|
|
1129
|
+
E(this, "get", /* @__PURE__ */ h((i, e) => {
|
|
1133
1130
|
var n;
|
|
1134
1131
|
const s = this.getValidData();
|
|
1135
1132
|
if (!s || s.length <= 0) return;
|
|
1136
|
-
if (
|
|
1137
|
-
if (
|
|
1138
|
-
const
|
|
1133
|
+
if (i == null) return t(this, ut).call(this, s);
|
|
1134
|
+
if (i < 0 || i >= s.length) return null;
|
|
1135
|
+
const r = typeof ((n = t(this, _).fields) == null ? void 0 : n.get) == "function" ? t(this, _).fields.get() : [];
|
|
1139
1136
|
if (e != null) {
|
|
1140
|
-
const a =
|
|
1141
|
-
return a >= 0 ? s[
|
|
1137
|
+
const a = r.indexOf(e);
|
|
1138
|
+
return a >= 0 ? s[i].v[a] : null;
|
|
1142
1139
|
}
|
|
1143
|
-
return t(this, ut).call(this, s[
|
|
1140
|
+
return t(this, ut).call(this, s[i]);
|
|
1144
1141
|
}, "get"));
|
|
1145
|
-
|
|
1146
|
-
this.clear(), this.add(
|
|
1142
|
+
E(this, "set", /* @__PURE__ */ h((i) => {
|
|
1143
|
+
this.clear(), this.add(i, !1), t(this, it).call(this);
|
|
1147
1144
|
}, "set"));
|
|
1148
|
-
d(this,
|
|
1145
|
+
d(this, Lt, /* @__PURE__ */ h(() => ({
|
|
1149
1146
|
rowState: O.ROW_STATE.EMPTY,
|
|
1150
1147
|
deleted: !1,
|
|
1151
1148
|
filtered: !1,
|
|
1152
|
-
height: t(this,
|
|
1149
|
+
height: t(this, Y).slice(),
|
|
1153
1150
|
o: {},
|
|
1154
1151
|
c: {},
|
|
1155
|
-
_: [0, 0, 0, 0, O.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this,
|
|
1152
|
+
_: [0, 0, 0, 0, O.ROW_STATE.EMPTY, !1, !1, !0, !1, !0, !0, !1, t(this, Y).slice(), -1, {}, {}]
|
|
1156
1153
|
}), "#getDefaultMeta"));
|
|
1157
|
-
|
|
1158
|
-
|
|
1154
|
+
E(this, "reset", /* @__PURE__ */ h(() => {
|
|
1155
|
+
y(this, N, []), y(this, ft, []), t(this, it).call(this);
|
|
1159
1156
|
}, "reset"));
|
|
1160
|
-
|
|
1161
|
-
var r;
|
|
1162
|
-
t(this, k).rawRecords = [], b(this, W, []), b(this, ft, []), (r = t(this, k).viewRecords) != null && r.reset && t(this, k).viewRecords.reset();
|
|
1163
|
-
}, "clear"));
|
|
1164
|
-
d(this, se, /* @__PURE__ */ h((r) => {
|
|
1157
|
+
E(this, "clear", /* @__PURE__ */ h(() => {
|
|
1165
1158
|
var i;
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1159
|
+
t(this, k).rawRecords = [], y(this, N, []), y(this, ft, []), (i = t(this, k).viewRecords) != null && i.reset && t(this, k).viewRecords.reset();
|
|
1160
|
+
}, "clear"));
|
|
1161
|
+
d(this, ee, /* @__PURE__ */ h((i) => {
|
|
1162
|
+
var r;
|
|
1163
|
+
Array.isArray(i) || (i = [i]);
|
|
1164
|
+
const e = typeof ((r = t(this, _).fields) == null ? void 0 : r.get) == "function" ? t(this, _).fields.get() : Object.keys(i[0] || {}), s = [];
|
|
1165
|
+
return i.forEach((n) => {
|
|
1169
1166
|
const a = { v: [] };
|
|
1170
1167
|
e.forEach((o) => {
|
|
1171
1168
|
a.v.push(n[o] !== void 0 && n[o] !== null ? n[o] : "");
|
|
1172
1169
|
}), s.push(a);
|
|
1173
1170
|
}), s;
|
|
1174
1171
|
}, "#json2Array"));
|
|
1175
|
-
d(this,
|
|
1176
|
-
e.__ng = t(this,
|
|
1177
|
-
}),
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
const s = t(this,
|
|
1181
|
-
t(this, k).rawRecords = t(this, k).rawRecords.concat(t(this,
|
|
1182
|
-
const
|
|
1172
|
+
d(this, se, /* @__PURE__ */ h((i) => (Array.isArray(i) || (i = [i]), i.forEach((e) => {
|
|
1173
|
+
e.__ng = t(this, Lt).call(this), e.__ng.rowid = this.nextId, e.__ng.rowState = O.ROW_STATE.INSERT, e.__ng._[0] = e.__ng.rowid;
|
|
1174
|
+
}), i), "#defaultInsert"));
|
|
1175
|
+
E(this, "add", /* @__PURE__ */ h((i, e = !0) => {
|
|
1176
|
+
i === void 0 && (i = {});
|
|
1177
|
+
const s = t(this, ee).call(this, i);
|
|
1178
|
+
t(this, k).rawRecords = t(this, k).rawRecords.concat(t(this, se).call(this, s)), this.resetRecords();
|
|
1179
|
+
const r = this.count() - 1;
|
|
1183
1180
|
return e || s.forEach((n, a) => {
|
|
1184
|
-
const o = t(this, k).rawRecords[
|
|
1181
|
+
const o = t(this, k).rawRecords[r - a];
|
|
1185
1182
|
o && (o.__ng.rowState = O.ROW_STATE.EMPTY);
|
|
1186
|
-
}), t(this,
|
|
1183
|
+
}), t(this, it).call(this), r;
|
|
1187
1184
|
}, "add"));
|
|
1188
|
-
|
|
1185
|
+
E(this, "delete", /* @__PURE__ */ h((i) => {
|
|
1189
1186
|
let e = [];
|
|
1190
|
-
Array.isArray(
|
|
1191
|
-
if (t(this,
|
|
1192
|
-
const
|
|
1193
|
-
t(this,
|
|
1194
|
-
n.__ng.rowid ===
|
|
1187
|
+
Array.isArray(i) ? e = i : typeof i > "u" ? e = [t(this, k).host.row.at] : e = [parseInt(i, 10)], e.sort((s, r) => r - s).forEach((s) => {
|
|
1188
|
+
if (t(this, N)[s]) {
|
|
1189
|
+
const r = t(this, N)[s].__ng.rowid;
|
|
1190
|
+
t(this, N)[s].__ng.rowState === O.ROW_STATE.INSERT ? t(this, k).rawRecords = t(this, k).rawRecords.filter((n) => n.__ng.rowid !== r) : t(this, k).rawRecords.forEach((n) => {
|
|
1191
|
+
n.__ng.rowid === r && (n.__ng.deleted = !0, n.__ng.rowState = O.ROW_STATE.DELETE);
|
|
1195
1192
|
});
|
|
1196
1193
|
}
|
|
1197
|
-
}), this.resetRecords(), t(this,
|
|
1194
|
+
}), this.resetRecords(), t(this, it).call(this);
|
|
1198
1195
|
}, "delete"));
|
|
1199
|
-
|
|
1200
|
-
var
|
|
1201
|
-
|
|
1202
|
-
const n = (typeof ((
|
|
1196
|
+
E(this, "setValue", /* @__PURE__ */ h((i, e, s) => {
|
|
1197
|
+
var c;
|
|
1198
|
+
i = parseInt(i, 10);
|
|
1199
|
+
const n = (typeof ((c = t(this, _).fields) == null ? void 0 : c.get) == "function" ? t(this, _).fields.get() : []).indexOf(e);
|
|
1203
1200
|
if (n < 0) return;
|
|
1204
|
-
const a = this.getValidData()[
|
|
1201
|
+
const a = this.getValidData()[i];
|
|
1205
1202
|
if (!a) return;
|
|
1206
1203
|
const o = a.v[n];
|
|
1207
1204
|
o !== s && a.__ng.rowState !== O.ROW_STATE.INSERT && (a.__ng.o.hasOwnProperty(e) || (a.__ng.o[e] = o), a.__ng.rowState = O.ROW_STATE.UPDATE), a.v[n] = s;
|
|
1208
1205
|
}, "setValue"));
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
}), t(this,
|
|
1213
|
-
|
|
1206
|
+
E(this, "resetRecords", /* @__PURE__ */ h(() => {
|
|
1207
|
+
y(this, ft, t(this, k).rawRecords.filter((i) => !i.__ng.deleted)), y(this, N, t(this, k).rawRecords.filter((i) => !i.__ng.deleted && !i.__ng.filtered)), t(this, k).rawRecords.forEach((i, e) => {
|
|
1208
|
+
i.__ng.rowidx = e;
|
|
1209
|
+
}), t(this, N).forEach((i, e) => {
|
|
1210
|
+
i.__ng.i = e;
|
|
1214
1211
|
});
|
|
1215
1212
|
}, "resetRecords"));
|
|
1216
|
-
|
|
1217
|
-
d(this, ut, /* @__PURE__ */ h((
|
|
1213
|
+
E(this, "getValidData", /* @__PURE__ */ h(() => (t(this, N).length === 0 && t(this, k).rawRecords.length > 0 && this.resetRecords(), t(this, N)), "getValidData"));
|
|
1214
|
+
d(this, ut, /* @__PURE__ */ h((i) => {
|
|
1218
1215
|
var a;
|
|
1219
|
-
if (!
|
|
1220
|
-
const e = !Array.isArray(
|
|
1221
|
-
const
|
|
1222
|
-
return
|
|
1223
|
-
l
|
|
1224
|
-
}),
|
|
1216
|
+
if (!i) return i;
|
|
1217
|
+
const e = !Array.isArray(i), s = e ? [i] : i, r = typeof ((a = t(this, _).fields) == null ? void 0 : a.get) == "function" ? t(this, _).fields.get() : [], n = s.filter((o) => !o.__ng.deleted).map((o) => {
|
|
1218
|
+
const c = {};
|
|
1219
|
+
return r.forEach((l, f) => {
|
|
1220
|
+
c[l] = o.v ? o.v[f] : o[l];
|
|
1221
|
+
}), c.__ng = o.__ng, c;
|
|
1225
1222
|
});
|
|
1226
1223
|
return e ? n[0] : n;
|
|
1227
1224
|
}, "#conv"));
|
|
1228
|
-
|
|
1229
|
-
|
|
1225
|
+
E(this, "count", /* @__PURE__ */ h(() => this.getValidData().length, "count"));
|
|
1226
|
+
y(this, _, i), y(this, k, e), t(this, te).call(this);
|
|
1230
1227
|
}
|
|
1231
1228
|
get source() {
|
|
1232
1229
|
return t(this, ut).call(this, t(this, k).rawRecords);
|
|
1233
1230
|
}
|
|
1234
|
-
set source(
|
|
1235
|
-
this.clear(), this.add(
|
|
1231
|
+
set source(i) {
|
|
1232
|
+
this.clear(), this.add(i, !1);
|
|
1236
1233
|
}
|
|
1237
1234
|
get nextId() {
|
|
1238
|
-
return ++
|
|
1235
|
+
return ++Ue(this, Qt)._;
|
|
1239
1236
|
}
|
|
1240
1237
|
get count() {
|
|
1241
|
-
return t(this,
|
|
1238
|
+
return t(this, N).length;
|
|
1242
1239
|
}
|
|
1243
1240
|
get length() {
|
|
1244
|
-
return t(this,
|
|
1241
|
+
return t(this, N).length;
|
|
1245
1242
|
}
|
|
1246
1243
|
getRowCount() {
|
|
1247
1244
|
return this.length;
|
|
1248
1245
|
}
|
|
1249
1246
|
};
|
|
1250
|
-
|
|
1251
|
-
|
|
1247
|
+
_ = new WeakMap(), k = new WeakMap(), N = new WeakMap(), ft = new WeakMap(), Qt = new WeakMap(), Y = new WeakMap(), te = new WeakMap(), it = new WeakMap(), Lt = new WeakMap(), ee = new WeakMap(), se = new WeakMap(), ut = new WeakMap(), h(O, "ngData"), // 🎯 행 상태 정의 상수를 클래스 내부로 내재화
|
|
1248
|
+
E(O, "ROW_STATE", {
|
|
1252
1249
|
EMPTY: "EMPTY",
|
|
1253
1250
|
NORMAL: "NORMAL",
|
|
1254
1251
|
INSERT: "INSERT",
|
|
1255
1252
|
UPDATE: "UPDATE",
|
|
1256
1253
|
DELETE: "DELETE"
|
|
1257
1254
|
});
|
|
1258
|
-
let
|
|
1259
|
-
var
|
|
1260
|
-
const
|
|
1261
|
-
constructor(
|
|
1262
|
-
d(this,
|
|
1263
|
-
|
|
1255
|
+
let be = O;
|
|
1256
|
+
var rt;
|
|
1257
|
+
const Oe = class Oe {
|
|
1258
|
+
constructor(i) {
|
|
1259
|
+
d(this, rt);
|
|
1260
|
+
y(this, rt, i), this.row = new ge(this), this.data = new be(t(this, rt), this), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.pageCnt = 25, this.viewRecords.reset = () => {
|
|
1264
1261
|
var e;
|
|
1265
|
-
(e = t(this,
|
|
1262
|
+
(e = t(this, rt).view) != null && e.redraw && t(this, rt).view.redraw();
|
|
1266
1263
|
}, this.setDataSource = (e) => {
|
|
1267
1264
|
this.data && this.data.reset(), this.rawRecords = [], this.viewRecords = [], this.delRecords = [], this.data.set(e || []);
|
|
1268
1265
|
}, this.getRowState = (e) => {
|
|
1269
|
-
var
|
|
1266
|
+
var r, n;
|
|
1270
1267
|
const s = parseInt(e, 10);
|
|
1271
1268
|
if (!(s >= this.data.count()))
|
|
1272
|
-
return (n = (
|
|
1269
|
+
return (n = (r = this.data.getValidData()[s]) == null ? void 0 : r.__ng) == null ? void 0 : n.rowState;
|
|
1273
1270
|
}, this.getRowPosition = () => this.row.at, this.setRowPosition = (e) => {
|
|
1274
1271
|
this.row.at = e;
|
|
1275
|
-
}, this.scrollTo_V1 = (e) => (e < 0 && (e = 0), e >= this.rawRecords.length && (e = this.rawRecords.length - 1), this.viewRecords.rawIndex = e, this.viewRecords.reset && this.viewRecords.reset(), !(e <= 0 || e >= this.rawRecords.length - 1)), this.getColumn = (e, s) => this.data.get(e, s), this.setColumn = (e, s,
|
|
1276
|
-
e = parseInt(e, 10), this.data.setValue(e, s,
|
|
1272
|
+
}, this.scrollTo_V1 = (e) => (e < 0 && (e = 0), e >= this.rawRecords.length && (e = this.rawRecords.length - 1), this.viewRecords.rawIndex = e, this.viewRecords.reset && this.viewRecords.reset(), !(e <= 0 || e >= this.rawRecords.length - 1)), this.getColumn = (e, s) => this.data.get(e, s), this.setColumn = (e, s, r) => {
|
|
1273
|
+
e = parseInt(e, 10), this.data.setValue(e, s, r);
|
|
1277
1274
|
}, this.setDataSource([]);
|
|
1278
1275
|
}
|
|
1279
1276
|
};
|
|
1280
|
-
|
|
1281
|
-
let
|
|
1282
|
-
var gt, L,
|
|
1283
|
-
const
|
|
1277
|
+
rt = new WeakMap(), h(Oe, "ngDataManager");
|
|
1278
|
+
let ye = Oe;
|
|
1279
|
+
var gt, L, Ht, ie;
|
|
1280
|
+
const Be = class Be {
|
|
1284
1281
|
// 🎯 이제 { name: string, type: string } 객체들의 배열로 관리합니다.
|
|
1285
|
-
constructor(
|
|
1282
|
+
constructor(i) {
|
|
1286
1283
|
d(this, gt);
|
|
1287
1284
|
d(this, L, []);
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
t(this, L).some((
|
|
1291
|
-
}), t(this,
|
|
1285
|
+
E(this, "add", /* @__PURE__ */ h((i, e = "string") => {
|
|
1286
|
+
i.forEach((s) => {
|
|
1287
|
+
t(this, L).some((r) => r.name === s) || t(this, L).push({ name: s, type: e });
|
|
1288
|
+
}), t(this, Ht).call(this);
|
|
1292
1289
|
}, "add"));
|
|
1293
|
-
d(this,
|
|
1294
|
-
const
|
|
1290
|
+
d(this, Ht, /* @__PURE__ */ h(() => {
|
|
1291
|
+
const i = /* @__PURE__ */ new Map();
|
|
1295
1292
|
t(this, L).forEach((e) => {
|
|
1296
|
-
|
|
1297
|
-
}),
|
|
1293
|
+
i.set(e.name, e.type);
|
|
1294
|
+
}), y(this, L, Array.from(i, ([e, s]) => ({ name: e, type: s }))), y(this, L, t(this, L).filter((e) => e.name !== "" && e.name !== "__ng")), t(this, L).sort((e, s) => e.name.length < s.name.length ? 1 : -1);
|
|
1298
1295
|
}, "#adjust"));
|
|
1299
1296
|
d(this, ie, /* @__PURE__ */ h(() => {
|
|
1300
|
-
|
|
1301
|
-
const
|
|
1302
|
-
if (!(!
|
|
1303
|
-
for (const e of
|
|
1304
|
-
H.log(e), $("[data-bind]", e).each((s,
|
|
1305
|
-
const n =
|
|
1297
|
+
y(this, L, []), H.log(t(this, gt).querySelectorAll("table"));
|
|
1298
|
+
const i = Array.from(t(this, gt).querySelectorAll("table"));
|
|
1299
|
+
if (!(!i || i.length === 0)) {
|
|
1300
|
+
for (const e of i)
|
|
1301
|
+
H.log(e), $("[data-bind]", e).each((s, r) => {
|
|
1302
|
+
const n = r.dataset.bind, a = r.getAttribute("data-type") || "string";
|
|
1306
1303
|
n && t(this, L).push({ name: n, type: a });
|
|
1307
1304
|
}), ["data-expr", "background-color", "color", "tooltip", "visible", "readonly", "enable-button", "enable-check", "class-expr", "icon-color", "icon-src"].forEach((s) => {
|
|
1308
|
-
$(`[${s}]`, e).each((
|
|
1305
|
+
$(`[${s}]`, e).each((r, n) => {
|
|
1309
1306
|
var a = n.getAttribute(s);
|
|
1310
1307
|
if (a.indexOf("data.") < 0) {
|
|
1311
1308
|
const o = a.search(/[(]/g);
|
|
@@ -1318,54 +1315,54 @@ const ze = class ze {
|
|
|
1318
1315
|
}
|
|
1319
1316
|
a.split("data.").forEach((o) => {
|
|
1320
1317
|
if (o.trim() != "") {
|
|
1321
|
-
const
|
|
1322
|
-
let
|
|
1323
|
-
|
|
1318
|
+
const c = o.search(/[^_A-Za-z0-9]/g);
|
|
1319
|
+
let l = "";
|
|
1320
|
+
c >= 0 ? l = o.substring(0, c) : a.startsWith("data.") && (l = o.replace("data.", "")), l && t(this, L).push({ name: l, type: "string" });
|
|
1324
1321
|
}
|
|
1325
1322
|
});
|
|
1326
1323
|
});
|
|
1327
1324
|
});
|
|
1328
|
-
t(this,
|
|
1325
|
+
t(this, Ht).call(this);
|
|
1329
1326
|
}
|
|
1330
1327
|
}, "#init"));
|
|
1331
|
-
|
|
1328
|
+
y(this, gt, i), t(this, ie).call(this);
|
|
1332
1329
|
}
|
|
1333
1330
|
// 🎯 기존에 필드 이름만 쓰던 곳들과의 호환을 위해 이름 배열만 리턴하는 메서드 유지
|
|
1334
1331
|
get() {
|
|
1335
|
-
return t(this, L).map((
|
|
1332
|
+
return t(this, L).map((i) => i.name);
|
|
1336
1333
|
}
|
|
1337
1334
|
// 🎯 내부 객체 통째로 얻기
|
|
1338
1335
|
getFields() {
|
|
1339
1336
|
return t(this, L);
|
|
1340
1337
|
}
|
|
1341
1338
|
// 🎯 특정 필드의 데이터 타입 조회
|
|
1342
|
-
getType(
|
|
1343
|
-
const e = t(this, L).find((s) => s.name ===
|
|
1339
|
+
getType(i) {
|
|
1340
|
+
const e = t(this, L).find((s) => s.name === i);
|
|
1344
1341
|
return e ? e.type : "string";
|
|
1345
1342
|
}
|
|
1346
|
-
indexOf(
|
|
1347
|
-
return t(this, L).findIndex((e) => e.name ===
|
|
1343
|
+
indexOf(i) {
|
|
1344
|
+
return t(this, L).findIndex((e) => e.name === i);
|
|
1348
1345
|
}
|
|
1349
|
-
includes(
|
|
1350
|
-
return t(this, L).some((e) => e.name ===
|
|
1346
|
+
includes(i) {
|
|
1347
|
+
return t(this, L).some((e) => e.name === i);
|
|
1351
1348
|
}
|
|
1352
1349
|
};
|
|
1353
|
-
gt = new WeakMap(), L = new WeakMap(),
|
|
1354
|
-
let
|
|
1355
|
-
var nt,
|
|
1356
|
-
const
|
|
1350
|
+
gt = new WeakMap(), L = new WeakMap(), Ht = new WeakMap(), ie = new WeakMap(), h(Be, "ngFields");
|
|
1351
|
+
let pe = Be;
|
|
1352
|
+
var nt, re, ne;
|
|
1353
|
+
const ze = class ze extends HTMLElement {
|
|
1357
1354
|
constructor() {
|
|
1358
1355
|
super();
|
|
1359
1356
|
//#created = false;
|
|
1360
1357
|
d(this, nt);
|
|
1361
|
-
d(this,
|
|
1362
|
-
d(this,
|
|
1363
|
-
this.fields = new
|
|
1358
|
+
d(this, re);
|
|
1359
|
+
d(this, ne, /* @__PURE__ */ h(() => {
|
|
1360
|
+
this.fields = new pe(this), y(this, re, new ue(this)), H.log("NineTable connected."), this.dispatchEvent(new CustomEvent("load", { bubbles: !0, detail: { target: this } }));
|
|
1364
1361
|
}, "#init"));
|
|
1365
|
-
this.attachShadow({ mode: "open" }),
|
|
1362
|
+
this.attachShadow({ mode: "open" }), y(this, nt, new ye(this));
|
|
1366
1363
|
}
|
|
1367
1364
|
connectedCallback() {
|
|
1368
|
-
t(this,
|
|
1365
|
+
t(this, ne).call(this);
|
|
1369
1366
|
}
|
|
1370
1367
|
disconnectedCallback() {
|
|
1371
1368
|
H.log("NineTable disconnected.");
|
|
@@ -1383,9 +1380,9 @@ const De = class De extends HTMLElement {
|
|
|
1383
1380
|
return t(this, nt);
|
|
1384
1381
|
}
|
|
1385
1382
|
};
|
|
1386
|
-
nt = new WeakMap(),
|
|
1387
|
-
let
|
|
1388
|
-
customElements.get("nine-table") || customElements.define("nine-table",
|
|
1383
|
+
nt = new WeakMap(), re = new WeakMap(), ne = new WeakMap(), h(ze, "NineTable");
|
|
1384
|
+
let me = ze;
|
|
1385
|
+
customElements.get("nine-table") || customElements.define("nine-table", me);
|
|
1389
1386
|
const xt = class xt extends HTMLElement {
|
|
1390
1387
|
// 👈 커스텀 스타일용 캐시 추가
|
|
1391
1388
|
constructor() {
|
|
@@ -1397,56 +1394,56 @@ const xt = class xt extends HTMLElement {
|
|
|
1397
1394
|
connectedCallback() {
|
|
1398
1395
|
}
|
|
1399
1396
|
};
|
|
1400
|
-
h(xt, "BasicCellElement"),
|
|
1401
|
-
let
|
|
1402
|
-
var
|
|
1403
|
-
const
|
|
1397
|
+
h(xt, "BasicCellElement"), E(xt, "_styleCache", /* @__PURE__ */ new Map()), E(xt, "_customStyleCache", /* @__PURE__ */ new Map());
|
|
1398
|
+
let xe = xt;
|
|
1399
|
+
var T, Mt, p, Re, qe, ke, Te, Ce;
|
|
1400
|
+
const De = class De extends xe {
|
|
1404
1401
|
constructor() {
|
|
1405
1402
|
super();
|
|
1406
|
-
d(this,
|
|
1407
|
-
d(this,
|
|
1403
|
+
d(this, T);
|
|
1404
|
+
d(this, Mt);
|
|
1408
1405
|
d(this, p);
|
|
1409
1406
|
d(this, Re);
|
|
1410
|
-
d(this,
|
|
1407
|
+
d(this, qe);
|
|
1411
1408
|
d(this, ke);
|
|
1412
|
-
d(this,
|
|
1413
|
-
|
|
1409
|
+
d(this, Te);
|
|
1410
|
+
E(this, "getDisplayText", /* @__PURE__ */ h((e) => {
|
|
1414
1411
|
if (t(this, p))
|
|
1415
1412
|
if (t(this, p).closest("tbody")) {
|
|
1416
|
-
const s = t(this, p).closest("tr").data,
|
|
1413
|
+
const s = t(this, p).closest("tr").data, r = parseInt(t(this, p).dataset.row);
|
|
1417
1414
|
if (!s) return "";
|
|
1418
1415
|
if (ninegrid.isNull(t(this, p).dataset.expr)) {
|
|
1419
1416
|
if (!ninegrid.isNull(t(this, p).dataset.bind))
|
|
1420
1417
|
return s[t(this, p).dataset.bind] || ninegrid.nvl(e, "");
|
|
1421
1418
|
} else try {
|
|
1422
|
-
return this.getExprValue(t(this, p).dataset.expr, s,
|
|
1419
|
+
return this.getExprValue(t(this, p).dataset.expr, s, r, t(this, p));
|
|
1423
1420
|
} catch {
|
|
1424
1421
|
console.error(t(this, p).dataset.expr, s, t(this, p).dataset.row);
|
|
1425
1422
|
}
|
|
1426
1423
|
return ninegrid.nvl(e, "");
|
|
1427
1424
|
} else
|
|
1428
1425
|
try {
|
|
1429
|
-
return t(this,
|
|
1426
|
+
return t(this, T).exprFunction(t(this, p).dataset.expr).call(this, null, -1, t(this, T).data);
|
|
1430
1427
|
} catch {
|
|
1431
1428
|
}
|
|
1432
1429
|
}, "getDisplayText"));
|
|
1433
|
-
d(this,
|
|
1434
|
-
if (!(!t(this,
|
|
1430
|
+
d(this, Ce, /* @__PURE__ */ h(() => {
|
|
1431
|
+
if (!(!t(this, T) || !t(this, T).template || !t(this, p).closest("tbody.bindable"))) {
|
|
1435
1432
|
var e = ninegrid.j.querySelectorAll(t(this, p)).attr("suppress");
|
|
1436
1433
|
if (e && (e = parseInt(e)), e && !isNaN(e)) {
|
|
1437
|
-
var s = t(this, p).closest("tr"),
|
|
1438
|
-
$("th,td", s).each((
|
|
1439
|
-
var
|
|
1440
|
-
|
|
1441
|
-
}),
|
|
1434
|
+
var s = t(this, p).closest("tr"), r = [];
|
|
1435
|
+
$("th,td", s).each((m, W) => {
|
|
1436
|
+
var C = ninegrid.j.querySelectorAll(W).attr("suppress");
|
|
1437
|
+
C && W.dataset.row && (C = parseInt(C), !isNaN(C) && C <= e && r.push(C));
|
|
1438
|
+
}), r.sort();
|
|
1442
1439
|
var n = !1;
|
|
1443
|
-
if (parseInt(s.sectionRowIndex / t(this,
|
|
1444
|
-
for (var a of
|
|
1440
|
+
if (parseInt(s.sectionRowIndex / t(this, T).template.length) > 0)
|
|
1441
|
+
for (var a of r) {
|
|
1445
1442
|
if (a > e) break;
|
|
1446
|
-
var o = parseInt(t(this, p).dataset.row),
|
|
1443
|
+
var o = parseInt(t(this, p).dataset.row), c = o - 1, l = t(this, p).closest("tr").data, f = t(this, T).data.get(c);
|
|
1447
1444
|
t(this, p).dataset.matrixRow;
|
|
1448
|
-
var u = t(this,
|
|
1449
|
-
if (g !=
|
|
1445
|
+
var u = t(this, T).body.querySelector(`tbody.bindable [suppress="${a}"][data-matrix-row="${t(this, p).dataset.matrixRow}"]`), g = u.dataset.expr ? this.getExprValue(u.dataset.expr, l, o) : l[u.dataset.bind], b = u.dataset.expr ? this.getExprValue(u.dataset.expr, f, c) : f[u.dataset.bind];
|
|
1446
|
+
if (g != b) {
|
|
1450
1447
|
n = !0;
|
|
1451
1448
|
break;
|
|
1452
1449
|
}
|
|
@@ -1454,17 +1451,17 @@ const Pe = class Pe extends ve {
|
|
|
1454
1451
|
else
|
|
1455
1452
|
n = !0;
|
|
1456
1453
|
n ? ninegrid.j.querySelectorAll(t(this, p)).removeClass("suppress") : ninegrid.j.querySelectorAll(t(this, p)).addClass("suppress"), ninegrid.j.querySelectorAll(t(this, p)).hasClass("hidden") || (n ? ninegrid.j.querySelectorAll(t(this, p)).removeClass("hidden") : ninegrid.j.querySelectorAll(t(this, p)).addClass("hidden"));
|
|
1457
|
-
var
|
|
1458
|
-
$(
|
|
1454
|
+
var x = parseInt(t(this, p).dataset.matrixRow), v = x - 1, A = t(this, T).body.querySelector(`tbody.bindable [data-col="${t(this, p).dataset.col}"][data-matrix-row="${v}"]`);
|
|
1455
|
+
$(A).hasClass("suppress") && !ninegrid.j.querySelectorAll(t(this, p)).hasClass("suppress") ? ninegrid.j.querySelectorAll(A).removeClass("last-none-suppress").addClass("last-suppress") : !$(A).hasClass("suppress") && ninegrid.j.querySelectorAll(t(this, p)).hasClass("suppress") ? ninegrid.j.querySelectorAll(A).removeClass("last-suppress").addClass("last-none-suppress") : ninegrid.j.querySelectorAll(A).removeClass("last-none-suppress").removeClass("last-suppress");
|
|
1459
1456
|
}
|
|
1460
1457
|
}
|
|
1461
1458
|
}, "#resetSuppress"));
|
|
1462
|
-
|
|
1459
|
+
E(this, "getExprValue", /* @__PURE__ */ h((e, s, r, n) => {
|
|
1463
1460
|
if (typeof e < "u")
|
|
1464
1461
|
try {
|
|
1465
|
-
|
|
1462
|
+
r = parseInt(r);
|
|
1466
1463
|
const a = e.replace("()", "");
|
|
1467
|
-
return t(this,
|
|
1464
|
+
return t(this, T)[a] ? t(this, T)[a].call(this, s, r, t(this, p)) : t(this, T).exprFunction(e).call(this, s, r, t(this, T).data);
|
|
1468
1465
|
} catch {
|
|
1469
1466
|
return ["NG-COMBO"].includes(this.tagName) ? "" : e;
|
|
1470
1467
|
}
|
|
@@ -1473,16 +1470,16 @@ const Pe = class Pe extends ve {
|
|
|
1473
1470
|
}, "getExprValue"));
|
|
1474
1471
|
}
|
|
1475
1472
|
connectedCallback() {
|
|
1476
|
-
super.connectedCallback(),
|
|
1473
|
+
super.connectedCallback(), y(this, T, this.getRootNode().host), y(this, p, this.closest("th,td")), y(this, Mt, t(this, p).closest("tr"));
|
|
1477
1474
|
}
|
|
1478
1475
|
get value() {
|
|
1479
|
-
var e = !t(this,
|
|
1476
|
+
var e = !t(this, T) || !t(this, T).dataManager || !t(this, p) || !t(this, p).dataset || !t(this, p).dataset.row || !t(this, p).dataset.bind ? "" : t(this, p).closest("tr").data[t(this, p).dataset.bind];
|
|
1480
1477
|
return e ?? "";
|
|
1481
1478
|
}
|
|
1482
1479
|
set value(e) {
|
|
1483
1480
|
var s = parseInt(t(this, p).dataset.row);
|
|
1484
|
-
const
|
|
1485
|
-
s < 0 ? t(this,
|
|
1481
|
+
const r = this.getAttribute("update-row-state") != "false";
|
|
1482
|
+
s < 0 ? t(this, T).data.setValueNF(parseInt(t(this, p).dataset.index), t(this, p).dataset.bind, e, r) : t(this, T).data.setValue(s, t(this, p).dataset.bind, e, r);
|
|
1486
1483
|
}
|
|
1487
1484
|
get row() {
|
|
1488
1485
|
return parseInt(t(this, p).dataset.row);
|
|
@@ -1492,12 +1489,12 @@ const Pe = class Pe extends ve {
|
|
|
1492
1489
|
}
|
|
1493
1490
|
refresh() {
|
|
1494
1491
|
const e = t(this, p).dataset.bind;
|
|
1495
|
-
return parseInt(t(this, p).dataset.row), t(this,
|
|
1492
|
+
return parseInt(t(this, p).dataset.row), t(this, Mt).data[e];
|
|
1496
1493
|
}
|
|
1497
1494
|
};
|
|
1498
|
-
|
|
1499
|
-
let
|
|
1500
|
-
const
|
|
1495
|
+
T = new WeakMap(), Mt = new WeakMap(), p = new WeakMap(), Re = new WeakMap(), qe = new WeakMap(), ke = new WeakMap(), Te = new WeakMap(), Ce = new WeakMap(), h(De, "CellElement");
|
|
1496
|
+
let ve = De;
|
|
1497
|
+
const Pe = class Pe extends ve {
|
|
1501
1498
|
constructor() {
|
|
1502
1499
|
super();
|
|
1503
1500
|
}
|
|
@@ -1508,21 +1505,21 @@ const je = class je extends we {
|
|
|
1508
1505
|
return super.refresh();
|
|
1509
1506
|
}
|
|
1510
1507
|
};
|
|
1511
|
-
h(
|
|
1512
|
-
let
|
|
1513
|
-
var
|
|
1514
|
-
const
|
|
1508
|
+
h(Pe, "EditableCellElement");
|
|
1509
|
+
let we = Pe;
|
|
1510
|
+
var $t, ot, bt, yt, oe, U, Le;
|
|
1511
|
+
const je = class je extends we {
|
|
1515
1512
|
constructor() {
|
|
1516
1513
|
super();
|
|
1517
|
-
d(this,
|
|
1514
|
+
d(this, $t);
|
|
1518
1515
|
d(this, ot);
|
|
1519
1516
|
d(this, bt);
|
|
1520
1517
|
d(this, yt);
|
|
1521
|
-
d(this,
|
|
1522
|
-
d(this,
|
|
1523
|
-
|
|
1518
|
+
d(this, oe);
|
|
1519
|
+
d(this, U);
|
|
1520
|
+
E(this, "refresh", /* @__PURE__ */ h(() => {
|
|
1524
1521
|
const e = super.refresh();
|
|
1525
|
-
H.log("::", e), t(this,
|
|
1522
|
+
H.log("::", e), t(this, $t).value = e;
|
|
1526
1523
|
}, "refresh"));
|
|
1527
1524
|
/**
|
|
1528
1525
|
dataRefresh = (v) => {
|
|
@@ -1554,22 +1551,22 @@ const Fe = class Fe extends Se {
|
|
|
1554
1551
|
if (!v) this.reset();
|
|
1555
1552
|
};
|
|
1556
1553
|
*/
|
|
1557
|
-
d(this,
|
|
1554
|
+
d(this, Le, /* @__PURE__ */ h((e) => {
|
|
1558
1555
|
if (!["Escape", "Enter", "Tab", "Home", "End", "ArrowLeft", "ArrowRight", "PageUp", "PageDown", "Backspace", "Delete"].includes(e.code)) {
|
|
1559
1556
|
if (t(this, ot) == "number") {
|
|
1560
1557
|
let n = [];
|
|
1561
|
-
if (t(this,
|
|
1562
|
-
var s = e.target.value,
|
|
1563
|
-
if (
|
|
1564
|
-
var s = s.substr(
|
|
1565
|
-
s.length >= Number(t(this,
|
|
1558
|
+
if (t(this, U) && Number(t(this, U)) > 0 && n.push("."), t(this, yt) && Number(t(this, yt)) >= 0 && n.push("-"), !(e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105) && !n.includes(e.key) && e.preventDefault(), t(this, U) && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105) && e.target.selectionStart == e.target.selectionEnd) {
|
|
1559
|
+
var s = e.target.value, r = s.indexOf(".");
|
|
1560
|
+
if (r >= 0) {
|
|
1561
|
+
var s = s.substr(r + 1, s.length);
|
|
1562
|
+
s.length >= Number(t(this, U)) && e.preventDefault();
|
|
1566
1563
|
}
|
|
1567
1564
|
}
|
|
1568
1565
|
}
|
|
1569
1566
|
t(this, bt) && ninegrid.getByteLength(e.target.value) >= Number(t(this, bt)) && e.target.selectionStart == e.target.selectionEnd && e.preventDefault();
|
|
1570
1567
|
}
|
|
1571
1568
|
}, "#onKeyDown"));
|
|
1572
|
-
if (this.applyBaseStyle(),
|
|
1569
|
+
if (this.applyBaseStyle(), y(this, ot, this.getAttribute("type") || "text"), y(this, bt, this.getAttribute("maxbyte")), y(this, yt, this.getAttribute("min")), y(this, oe, this.getAttribute("max")), y(this, U, this.getAttribute("scale")), !["text", "number"].includes(t(this, ot))) throw `invalid type : ${t(this, ot)}`;
|
|
1573
1570
|
}
|
|
1574
1571
|
connectedCallback() {
|
|
1575
1572
|
for (var e = [], s = 0; s < this.attributes.length; s++)
|
|
@@ -1579,11 +1576,11 @@ const Fe = class Fe extends Se {
|
|
|
1579
1576
|
${e.join(" ")}
|
|
1580
1577
|
ondragstart="return false;"
|
|
1581
1578
|
>
|
|
1582
|
-
`, super.connectedCallback(),
|
|
1579
|
+
`, super.connectedCallback(), y(this, $t, this.querySelector("input"));
|
|
1583
1580
|
}
|
|
1584
1581
|
};
|
|
1585
|
-
|
|
1586
|
-
let
|
|
1582
|
+
$t = new WeakMap(), ot = new WeakMap(), bt = new WeakMap(), yt = new WeakMap(), oe = new WeakMap(), U = new WeakMap(), Le = new WeakMap(), h(je, "CellInputText");
|
|
1583
|
+
let Se = je;
|
|
1587
1584
|
customElements.get("cell-input-text");
|
|
1588
|
-
customElements.get("cell-input") || customElements.define("cell-input",
|
|
1585
|
+
customElements.get("cell-input") || customElements.define("cell-input", Se);
|
|
1589
1586
|
//# sourceMappingURL=nine-table.js.map
|