@kong-ui-public/split-pane 0.3.10-pr.3045.d28bba50d.0 → 0.3.10
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/split-pane.es.js +549 -0
- package/dist/split-pane.umd.js +1 -0
- package/dist/style.css +1 -0
- package/dist/types/components/SplitPane.vue.d.ts +17 -0
- package/dist/types/components/SplitPane.vue.d.ts.map +1 -0
- package/dist/types/components/SplitToolbar.vue.d.ts +18 -0
- package/dist/types/components/SplitToolbar.vue.d.ts.map +1 -0
- package/dist/types/components/VerticalNavigation.vue.d.ts +10 -0
- package/dist/types/components/VerticalNavigation.vue.d.ts.map +1 -0
- package/dist/types/composable/useI18n.d.ts +9 -0
- package/dist/types/composable/useI18n.d.ts.map +1 -0
- package/dist/types/composable/useSplitPane.d.ts +17 -0
- package/dist/types/composable/useSplitPane.d.ts.map +1 -0
- package/dist/types/constants/split-pane.d.ts +9 -0
- package/dist/types/constants/split-pane.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +74 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
import { watch as q, onMounted as ee, nextTick as G, getCurrentScope as Re, onScopeDispose as xe, getCurrentInstance as he, computed as P, toValue as A, shallowRef as Y, watchEffect as Ce, unref as r, ref as b, readonly as te, defineComponent as ge, useCssVars as be, resolveComponent as se, openBlock as R, createElementBlock as k, createElementVNode as C, Fragment as ye, renderList as Le, createBlock as K, withCtx as J, createVNode as le, withModifiers as ne, normalizeClass as T, resolveDynamicComponent as re, createCommentVNode as N, useSlots as We, useTemplateRef as I, renderSlot as M, withDirectives as ue, vShow as de } from "vue";
|
|
2
|
+
import { ChevronDoubleLeftIcon as _e, ChevronDoubleRightIcon as ke } from "@kong/icons";
|
|
3
|
+
import { useRouter as $e } from "vue-router";
|
|
4
|
+
import { createI18n as ze, i18nTComponent as De } from "@kong-ui-public/i18n";
|
|
5
|
+
const Ie = "260px", ie = "500px", ce = "50%", fe = "50%";
|
|
6
|
+
function ae(e, n) {
|
|
7
|
+
return Re() ? (xe(e, n), !0) : !1;
|
|
8
|
+
}
|
|
9
|
+
const Ee = typeof window < "u" && typeof document < "u";
|
|
10
|
+
typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
|
|
11
|
+
const Te = (e) => e != null, Ne = Object.prototype.toString, Me = (e) => Ne.call(e) === "[object Object]", Se = () => {
|
|
12
|
+
};
|
|
13
|
+
function U(e) {
|
|
14
|
+
return Array.isArray(e) ? e : [e];
|
|
15
|
+
}
|
|
16
|
+
function Oe(e) {
|
|
17
|
+
return he();
|
|
18
|
+
}
|
|
19
|
+
function Ae(e, n = !0, l) {
|
|
20
|
+
Oe() ? ee(e, l) : n ? e() : G(e);
|
|
21
|
+
}
|
|
22
|
+
function Be(e, n, l) {
|
|
23
|
+
return q(e, n, {
|
|
24
|
+
...l,
|
|
25
|
+
immediate: !0
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const B = Ee ? window : void 0;
|
|
29
|
+
function $(e) {
|
|
30
|
+
var n;
|
|
31
|
+
const l = A(e);
|
|
32
|
+
return (n = l == null ? void 0 : l.$el) !== null && n !== void 0 ? n : l;
|
|
33
|
+
}
|
|
34
|
+
function j(...e) {
|
|
35
|
+
const n = (t, i, s, a) => (t.addEventListener(i, s, a), () => t.removeEventListener(i, s, a)), l = P(() => {
|
|
36
|
+
const t = U(A(e[0])).filter((i) => i != null);
|
|
37
|
+
return t.every((i) => typeof i != "string") ? t : void 0;
|
|
38
|
+
});
|
|
39
|
+
return Be(() => {
|
|
40
|
+
var t, i;
|
|
41
|
+
return [
|
|
42
|
+
(t = (i = l.value) === null || i === void 0 ? void 0 : i.map((s) => $(s))) !== null && t !== void 0 ? t : [B].filter((s) => s != null),
|
|
43
|
+
U(A(l.value ? e[1] : e[0])),
|
|
44
|
+
U(r(l.value ? e[2] : e[1])),
|
|
45
|
+
A(l.value ? e[3] : e[2])
|
|
46
|
+
];
|
|
47
|
+
}, ([t, i, s, a], u, v) => {
|
|
48
|
+
if (!(t != null && t.length) || !(i != null && i.length) || !(s != null && s.length)) return;
|
|
49
|
+
const p = Me(a) ? { ...a } : a, d = t.flatMap((o) => i.flatMap((f) => s.map((h) => n(o, f, h, p))));
|
|
50
|
+
v(() => {
|
|
51
|
+
d.forEach((o) => o());
|
|
52
|
+
});
|
|
53
|
+
}, { flush: "post" });
|
|
54
|
+
}
|
|
55
|
+
// @__NO_SIDE_EFFECTS__
|
|
56
|
+
function He() {
|
|
57
|
+
const e = Y(!1), n = he();
|
|
58
|
+
return n && ee(() => {
|
|
59
|
+
e.value = !0;
|
|
60
|
+
}, n), e;
|
|
61
|
+
}
|
|
62
|
+
// @__NO_SIDE_EFFECTS__
|
|
63
|
+
function me(e) {
|
|
64
|
+
const n = /* @__PURE__ */ He();
|
|
65
|
+
return P(() => (n.value, !!e()));
|
|
66
|
+
}
|
|
67
|
+
function Xe(e, n, l = {}) {
|
|
68
|
+
const { window: t = B, ...i } = l;
|
|
69
|
+
let s;
|
|
70
|
+
const a = /* @__PURE__ */ me(() => t && "MutationObserver" in t), u = () => {
|
|
71
|
+
s && (s.disconnect(), s = void 0);
|
|
72
|
+
}, v = q(P(() => {
|
|
73
|
+
const o = U(A(e)).map($).filter(Te);
|
|
74
|
+
return new Set(o);
|
|
75
|
+
}), (o) => {
|
|
76
|
+
u(), a.value && o.size && (s = new MutationObserver(n), o.forEach((f) => s.observe(f, i)));
|
|
77
|
+
}, {
|
|
78
|
+
immediate: !0,
|
|
79
|
+
flush: "post"
|
|
80
|
+
}), p = () => s == null ? void 0 : s.takeRecords(), d = () => {
|
|
81
|
+
v(), u();
|
|
82
|
+
};
|
|
83
|
+
return ae(d), {
|
|
84
|
+
isSupported: a,
|
|
85
|
+
stop: d,
|
|
86
|
+
takeRecords: p
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function Ve(e, n, l = {}) {
|
|
90
|
+
const { window: t = B, document: i = t == null ? void 0 : t.document, flush: s = "sync" } = l;
|
|
91
|
+
if (!t || !i) return Se;
|
|
92
|
+
let a;
|
|
93
|
+
const u = (d) => {
|
|
94
|
+
a == null || a(), a = d;
|
|
95
|
+
}, v = Ce(() => {
|
|
96
|
+
const d = $(e);
|
|
97
|
+
if (d) {
|
|
98
|
+
const { stop: o } = Xe(i, (f) => {
|
|
99
|
+
f.map((h) => [...h.removedNodes]).flat().some((h) => h === d || h.contains(d)) && n(f);
|
|
100
|
+
}, {
|
|
101
|
+
window: t,
|
|
102
|
+
childList: !0,
|
|
103
|
+
subtree: !0
|
|
104
|
+
});
|
|
105
|
+
u(o);
|
|
106
|
+
}
|
|
107
|
+
}, { flush: s }), p = () => {
|
|
108
|
+
v(), u();
|
|
109
|
+
};
|
|
110
|
+
return ae(p), p;
|
|
111
|
+
}
|
|
112
|
+
function Fe(e, n, l = {}) {
|
|
113
|
+
const { window: t = B, ...i } = l;
|
|
114
|
+
let s;
|
|
115
|
+
const a = /* @__PURE__ */ me(() => t && "ResizeObserver" in t), u = () => {
|
|
116
|
+
s && (s.disconnect(), s = void 0);
|
|
117
|
+
}, v = q(P(() => {
|
|
118
|
+
const d = A(e);
|
|
119
|
+
return Array.isArray(d) ? d.map((o) => $(o)) : [$(d)];
|
|
120
|
+
}), (d) => {
|
|
121
|
+
if (u(), a.value && t) {
|
|
122
|
+
s = new ResizeObserver(n);
|
|
123
|
+
for (const o of d) o && s.observe(o, i);
|
|
124
|
+
}
|
|
125
|
+
}, {
|
|
126
|
+
immediate: !0,
|
|
127
|
+
flush: "post"
|
|
128
|
+
}), p = () => {
|
|
129
|
+
u(), v();
|
|
130
|
+
};
|
|
131
|
+
return ae(p), {
|
|
132
|
+
isSupported: a,
|
|
133
|
+
stop: p
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function ve(e, n = {}) {
|
|
137
|
+
const { delayEnter: l = 0, delayLeave: t = 0, triggerOnRemoval: i = !1, window: s = B } = n, a = Y(!1);
|
|
138
|
+
let u;
|
|
139
|
+
const v = (p) => {
|
|
140
|
+
const d = p ? l : t;
|
|
141
|
+
u && (clearTimeout(u), u = void 0), d ? u = setTimeout(() => a.value = p, d) : a.value = p;
|
|
142
|
+
};
|
|
143
|
+
return s && (j(e, "mouseenter", () => v(!0), { passive: !0 }), j(e, "mouseleave", () => v(!1), { passive: !0 }), i && Ve(P(() => $(e)), () => v(!1))), a;
|
|
144
|
+
}
|
|
145
|
+
function Ke(e, n = {
|
|
146
|
+
width: 0,
|
|
147
|
+
height: 0
|
|
148
|
+
}, l = {}) {
|
|
149
|
+
const { window: t = B, box: i = "content-box" } = l, s = P(() => {
|
|
150
|
+
var o;
|
|
151
|
+
return (o = $(e)) === null || o === void 0 || (o = o.namespaceURI) === null || o === void 0 ? void 0 : o.includes("svg");
|
|
152
|
+
}), a = Y(n.width), u = Y(n.height), { stop: v } = Fe(e, ([o]) => {
|
|
153
|
+
const f = i === "border-box" ? o.borderBoxSize : i === "content-box" ? o.contentBoxSize : o.devicePixelContentBoxSize;
|
|
154
|
+
if (t && s.value) {
|
|
155
|
+
const h = $(e);
|
|
156
|
+
if (h) {
|
|
157
|
+
const m = h.getBoundingClientRect();
|
|
158
|
+
a.value = m.width, u.value = m.height;
|
|
159
|
+
}
|
|
160
|
+
} else if (f) {
|
|
161
|
+
const h = U(f);
|
|
162
|
+
a.value = h.reduce((m, { inlineSize: _ }) => m + _, 0), u.value = h.reduce((m, { blockSize: _ }) => m + _, 0);
|
|
163
|
+
} else
|
|
164
|
+
a.value = o.contentRect.width, u.value = o.contentRect.height;
|
|
165
|
+
}, l);
|
|
166
|
+
Ae(() => {
|
|
167
|
+
const o = $(e);
|
|
168
|
+
o && (a.value = "offsetWidth" in o ? o.offsetWidth : n.width, u.value = "offsetHeight" in o ? o.offsetHeight : n.height);
|
|
169
|
+
});
|
|
170
|
+
const p = q(() => $(e), (o) => {
|
|
171
|
+
a.value = o ? n.width : 0, u.value = o ? n.height : 0;
|
|
172
|
+
});
|
|
173
|
+
function d() {
|
|
174
|
+
v(), p();
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
width: a,
|
|
178
|
+
height: u,
|
|
179
|
+
stop: d
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
const pe = "20px", O = b(!1), E = b(!1), Q = b(!0), F = b(0);
|
|
183
|
+
function we(e) {
|
|
184
|
+
const n = (e == null ? void 0 : e.verticalNavRef) || b(null), l = (e == null ? void 0 : e.innerPanesContainerRef) || b(null), t = (e == null ? void 0 : e.paneLeftRef) || b(null), i = (e == null ? void 0 : e.paneCenterRef) || b(null), s = (e == null ? void 0 : e.paneRightRef) || b(null), a = (c) => {
|
|
185
|
+
var g, L, W, x, y;
|
|
186
|
+
switch (c) {
|
|
187
|
+
case "verticalNav":
|
|
188
|
+
return ((g = n.value) == null ? void 0 : g.offsetWidth) || 0;
|
|
189
|
+
case "innerPanesContainer":
|
|
190
|
+
return ((L = l.value) == null ? void 0 : L.offsetWidth) || 0;
|
|
191
|
+
case "paneLeft":
|
|
192
|
+
return ((W = t.value) == null ? void 0 : W.offsetWidth) || 0;
|
|
193
|
+
case "paneCenter":
|
|
194
|
+
return ((x = i.value) == null ? void 0 : x.offsetWidth) || 0;
|
|
195
|
+
case "paneRight":
|
|
196
|
+
return ((y = s.value) == null ? void 0 : y.offsetWidth) || 0;
|
|
197
|
+
default:
|
|
198
|
+
return 0;
|
|
199
|
+
}
|
|
200
|
+
}, u = b(50), v = b(0), p = b(0), d = b(0), o = b(0), f = (c) => {
|
|
201
|
+
if (i.value) {
|
|
202
|
+
if (c) {
|
|
203
|
+
i.value.style.width = `${c}%`, F.value = a("paneCenter");
|
|
204
|
+
return;
|
|
205
|
+
} else (typeof u.value != "number" || !isFinite(u.value)) && (u.value = 38);
|
|
206
|
+
i.value.style.width = `${u.value}%`, F.value = a("paneCenter");
|
|
207
|
+
}
|
|
208
|
+
}, h = () => {
|
|
209
|
+
var c;
|
|
210
|
+
i.value && ((c = s.value) == null ? void 0 : c.style.display) === "none" ? (i.value.style.flex = "1", f(100)) : (i.value && (i.value.style.flex = ""), f());
|
|
211
|
+
}, m = () => {
|
|
212
|
+
var W;
|
|
213
|
+
if (!l.value || !i.value) return;
|
|
214
|
+
const c = 100, g = a("innerPanesContainer") - a("verticalNav") - a("paneLeft") - c, L = u.value / 100 * a("innerPanesContainer");
|
|
215
|
+
if (L < c ? u.value = c / a("innerPanesContainer") * 100 : L > g && (u.value = g / a("innerPanesContainer") * 100), i.value && s.value && ((W = s.value) == null ? void 0 : W.style.display) === "none") {
|
|
216
|
+
f(100);
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
f();
|
|
220
|
+
}, _ = (c) => {
|
|
221
|
+
!i.value || c.button !== 0 || (E.value = !0, v.value = c.clientX, p.value = i.value.offsetWidth || 0);
|
|
222
|
+
}, w = (c) => {
|
|
223
|
+
if (!E.value || !l.value || !i.value) return;
|
|
224
|
+
const g = l.value.offsetWidth, L = c.clientX - v.value, x = (p.value + L) / g * 100, y = 100 / g * 100, V = (g - 100) / g * 100;
|
|
225
|
+
u.value = Math.min(Math.max(y, x), V), f();
|
|
226
|
+
}, z = () => {
|
|
227
|
+
E.value = !1;
|
|
228
|
+
}, S = (c) => {
|
|
229
|
+
!t.value || !Q.value || c.button !== 0 || (O.value = !0, d.value = c.clientX, o.value = t.value.offsetWidth || 0);
|
|
230
|
+
}, Z = (c) => {
|
|
231
|
+
if (!O.value || !t.value) return;
|
|
232
|
+
let g = o.value + (c.clientX - d.value);
|
|
233
|
+
const L = Number(Ie.replace(/px$/i, "")), W = Number(ie.replace(/px$/i, ""));
|
|
234
|
+
g < L && (g = L), g > W && (g = W), t.value.style.width = `${g}px`, d.value = c.clientX, o.value = g, F.value = a("paneCenter");
|
|
235
|
+
}, D = () => {
|
|
236
|
+
O.value = !1;
|
|
237
|
+
}, H = () => {
|
|
238
|
+
E.value || m();
|
|
239
|
+
}, X = async () => {
|
|
240
|
+
Q.value = !Q.value;
|
|
241
|
+
};
|
|
242
|
+
return j(window, "resize", H), ee(async () => {
|
|
243
|
+
await G(), i.value && (m(), await G(), f(), requestAnimationFrame(() => {
|
|
244
|
+
F.value = a("paneCenter");
|
|
245
|
+
}));
|
|
246
|
+
}), j(document, "mousemove", (c) => {
|
|
247
|
+
E.value && w(c), O.value && Z(c);
|
|
248
|
+
}), j(document, "mouseup", () => {
|
|
249
|
+
E.value && z(), O.value && D();
|
|
250
|
+
}), {
|
|
251
|
+
isDraggingPaneLeft: te(O),
|
|
252
|
+
isDraggingInnerPanes: te(E),
|
|
253
|
+
startDraggingInnerPanes: _,
|
|
254
|
+
refreshInnerPaneSizes: h,
|
|
255
|
+
// Toggle the left pane
|
|
256
|
+
paneLeftExpanded: te(Q),
|
|
257
|
+
togglePaneLeft: X,
|
|
258
|
+
startDraggingPaneLeft: S,
|
|
259
|
+
centerPaneWidth: F
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
const Ue = {
|
|
263
|
+
return: "Return",
|
|
264
|
+
collapse_panel: "Collapse panel",
|
|
265
|
+
expand_panel: "Expand panel",
|
|
266
|
+
drag_to_resize: "Click and drag to resize"
|
|
267
|
+
}, je = {
|
|
268
|
+
actions: Ue
|
|
269
|
+
};
|
|
270
|
+
function Pe() {
|
|
271
|
+
const e = ze("en-us", je);
|
|
272
|
+
return {
|
|
273
|
+
i18n: e,
|
|
274
|
+
i18nT: De(e)
|
|
275
|
+
// Translation component <i18n-t>
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
const Ge = { class: "kong-ui-public-split-pane-vertical-navigation" }, qe = { class: "split-pane-nav" }, Ze = { class: "top" }, Je = { class: "bottom" }, Qe = /* @__PURE__ */ ge({
|
|
279
|
+
__name: "VerticalNavigation",
|
|
280
|
+
props: {
|
|
281
|
+
paneLeftWidth: { default: 0 },
|
|
282
|
+
paneLeftVisible: { type: Boolean, default: !0 },
|
|
283
|
+
items: { default: () => [] }
|
|
284
|
+
},
|
|
285
|
+
setup(e) {
|
|
286
|
+
be((f) => ({
|
|
287
|
+
c4231b96: d.value
|
|
288
|
+
}));
|
|
289
|
+
const { i18n: n } = Pe(), l = $e(), { paneLeftExpanded: t, togglePaneLeft: i, isDraggingPaneLeft: s, isDraggingInnerPanes: a } = we(), u = b(!1), v = b(!1), p = P(() => u.value || s.value || a.value), d = P(() => `${e.paneLeftWidth - 8}px`), o = (f) => {
|
|
290
|
+
t.value || i(), !f.active && f.to && l.push(f.to);
|
|
291
|
+
};
|
|
292
|
+
return ee(async () => {
|
|
293
|
+
await G(), await new Promise((f) => setTimeout(f, 500)), v.value = !0;
|
|
294
|
+
}), (f, h) => {
|
|
295
|
+
const m = se("KButton"), _ = se("KTooltip");
|
|
296
|
+
return R(), k("div", Ge, [
|
|
297
|
+
C("nav", qe, [
|
|
298
|
+
C("div", Ze, [
|
|
299
|
+
(R(!0), k(ye, null, Le(e.items, (w) => (R(), K(_, {
|
|
300
|
+
key: w.tooltip,
|
|
301
|
+
"kpop-attributes": { offset: "10px" },
|
|
302
|
+
label: w.tooltip,
|
|
303
|
+
placement: "right"
|
|
304
|
+
}, {
|
|
305
|
+
default: J(() => [
|
|
306
|
+
le(m, {
|
|
307
|
+
appearance: "none",
|
|
308
|
+
"aria-label": w.tooltip,
|
|
309
|
+
class: T(["split-pane-nav-item", { active: w.active }]),
|
|
310
|
+
"data-testid": `kong-ui-public-split-pane-vertical-navigation-nav-item-${w.testid}`,
|
|
311
|
+
icon: "",
|
|
312
|
+
size: "large",
|
|
313
|
+
style: { cursor: "pointer" },
|
|
314
|
+
to: w.to,
|
|
315
|
+
onClickCapture: ne((z) => o(w), ["prevent"])
|
|
316
|
+
}, {
|
|
317
|
+
default: J(() => [
|
|
318
|
+
(R(), K(re(w.icon), {
|
|
319
|
+
decorative: "",
|
|
320
|
+
size: r(pe)
|
|
321
|
+
}, null, 8, ["size"]))
|
|
322
|
+
]),
|
|
323
|
+
_: 2
|
|
324
|
+
}, 1032, ["aria-label", "class", "data-testid", "to", "onClickCapture"])
|
|
325
|
+
]),
|
|
326
|
+
_: 2
|
|
327
|
+
}, 1032, ["label"]))), 128))
|
|
328
|
+
]),
|
|
329
|
+
C("div", Je, [
|
|
330
|
+
e.paneLeftVisible ? (R(), k("div", {
|
|
331
|
+
key: 0,
|
|
332
|
+
class: T(["toggle-left-panel-control", {
|
|
333
|
+
expanded: r(t),
|
|
334
|
+
"disable-animation": !v.value || r(s) || r(a)
|
|
335
|
+
}]),
|
|
336
|
+
onTransitionend: h[0] || (h[0] = ne((w) => u.value = !1, ["self"])),
|
|
337
|
+
onTransitionstart: h[1] || (h[1] = ne((w) => u.value = !0, ["self"]))
|
|
338
|
+
}, [
|
|
339
|
+
(R(), K(_, {
|
|
340
|
+
key: String(r(t)),
|
|
341
|
+
"kpop-attributes": r(t) ? void 0 : { offset: "10px" },
|
|
342
|
+
label: p.value ? void 0 : r(t) ? r(n).t("actions.collapse_panel") : r(n).t("actions.expand_panel"),
|
|
343
|
+
placement: r(t) ? "left" : "right"
|
|
344
|
+
}, {
|
|
345
|
+
default: J(() => [
|
|
346
|
+
le(m, {
|
|
347
|
+
appearance: "none",
|
|
348
|
+
"aria-controls": "left-pane",
|
|
349
|
+
"aria-expanded": r(t),
|
|
350
|
+
"aria-label": r(t) ? r(n).t("actions.collapse_panel") : r(n).t("actions.expand_panel"),
|
|
351
|
+
class: "split-pane-nav-item toggle-left-panel",
|
|
352
|
+
"data-testid": "kong-ui-public-split-pane-toggle-left-panel-button",
|
|
353
|
+
icon: "",
|
|
354
|
+
size: "large",
|
|
355
|
+
onClick: r(i)
|
|
356
|
+
}, {
|
|
357
|
+
default: J(() => [
|
|
358
|
+
(R(), K(re(r(t) ? r(_e) : r(ke)), {
|
|
359
|
+
decorative: "",
|
|
360
|
+
size: r(pe)
|
|
361
|
+
}, null, 8, ["size"]))
|
|
362
|
+
]),
|
|
363
|
+
_: 1
|
|
364
|
+
}, 8, ["aria-expanded", "aria-label", "onClick"])
|
|
365
|
+
]),
|
|
366
|
+
_: 1
|
|
367
|
+
}, 8, ["kpop-attributes", "label", "placement"]))
|
|
368
|
+
], 34)) : N("", !0)
|
|
369
|
+
])
|
|
370
|
+
])
|
|
371
|
+
]);
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
}), oe = (e, n) => {
|
|
375
|
+
const l = e.__vccOpts || e;
|
|
376
|
+
for (const [t, i] of n)
|
|
377
|
+
l[t] = i;
|
|
378
|
+
return l;
|
|
379
|
+
}, Ye = /* @__PURE__ */ oe(Qe, [["__scopeId", "data-v-2261cf1d"]]), et = { class: "split-pane-container" }, tt = { class: "split-pane-container-inner" }, nt = { class: "panes" }, it = ["aria-hidden", "tabindex"], at = ["title"], ot = { class: "split-pane-container-inner-content" }, st = ["aria-hidden", "tabindex"], lt = ["title"], rt = ["aria-hidden", "tabindex"], ut = /* @__PURE__ */ ge({
|
|
380
|
+
__name: "SplitPane",
|
|
381
|
+
props: {
|
|
382
|
+
resizable: { type: Boolean, default: !0 },
|
|
383
|
+
showResizeHandle: { type: Boolean, default: !0 },
|
|
384
|
+
showNavigation: { type: Boolean, default: !0 },
|
|
385
|
+
navigationItems: { default: () => [] },
|
|
386
|
+
paneLeft: { default: () => ({
|
|
387
|
+
/** Pass false to hide the panel even if it contains slot content */
|
|
388
|
+
visible: !0,
|
|
389
|
+
maxWidth: ie
|
|
390
|
+
}) },
|
|
391
|
+
paneCenter: { default: () => ({
|
|
392
|
+
/** Pass false to hide the panel even if it contains slot content */
|
|
393
|
+
visible: !0,
|
|
394
|
+
maxWidth: ce
|
|
395
|
+
}) },
|
|
396
|
+
paneRight: { default: () => ({
|
|
397
|
+
/** Pass false to hide the panel even if it contains slot content */
|
|
398
|
+
visible: !0,
|
|
399
|
+
maxWidth: fe
|
|
400
|
+
}) }
|
|
401
|
+
},
|
|
402
|
+
setup(e) {
|
|
403
|
+
be((x) => ({
|
|
404
|
+
v49e30752: t.value,
|
|
405
|
+
v2075cf60: i.value,
|
|
406
|
+
v8d772a96: s.value
|
|
407
|
+
}));
|
|
408
|
+
const n = We(), l = (x) => x === "left" ? e.paneLeft.maxWidth !== void 0 ? e.paneLeft.maxWidth : ie : x === "center" ? e.resizable ? "none" : e.paneCenter.maxWidth !== void 0 ? e.paneCenter.maxWidth : ce : x === "right" ? e.resizable ? "none" : e.paneRight.maxWidth !== void 0 ? e.paneRight.maxWidth : fe : "none", t = P(() => l("left")), i = P(() => l("center")), s = P(() => l("right")), a = I("verticalNavRef"), u = I("innerPanesContainerRef"), v = I("paneLeftRef"), p = I("paneCenterRef"), d = I("paneRightRef"), o = I("paneLeftDivider"), f = I("innerPanesDivider"), { startDraggingInnerPanes: h, startDraggingPaneLeft: m, refreshInnerPaneSizes: _, paneLeftExpanded: w, isDraggingPaneLeft: z, isDraggingInnerPanes: S } = we({
|
|
409
|
+
verticalNavRef: a,
|
|
410
|
+
innerPanesContainerRef: u,
|
|
411
|
+
paneLeftRef: v,
|
|
412
|
+
paneCenterRef: p,
|
|
413
|
+
paneRightRef: d
|
|
414
|
+
}), { i18n: Z } = Pe(), D = P(() => !!n["pane-left"] && e.paneLeft.visible !== !1 && w.value), H = P(() => !!n["pane-center"] && e.paneCenter.visible !== !1), X = P(() => !!n["pane-right"] && e.paneRight.visible !== !1), c = P(() => e.resizable && e.showResizeHandle && !!n["pane-center"] && e.paneCenter.visible !== !1 && !!n["pane-right"] && e.paneRight.visible !== !1), g = ve(o), L = ve(f), { width: W } = Ke(v);
|
|
415
|
+
return q(() => e.paneRight.visible, async () => {
|
|
416
|
+
e.resizable && (await G(), _());
|
|
417
|
+
}, { flush: "post" }), (x, y) => (R(), k("div", {
|
|
418
|
+
class: T(["kong-ui-public-split-pane", { "has-navigation": e.showNavigation }]),
|
|
419
|
+
"data-testid": "split-pane"
|
|
420
|
+
}, [
|
|
421
|
+
C("div", et, [
|
|
422
|
+
e.showNavigation ? (R(), K(Ye, {
|
|
423
|
+
key: 0,
|
|
424
|
+
ref_key: "verticalNavRef",
|
|
425
|
+
ref: a,
|
|
426
|
+
items: e.navigationItems,
|
|
427
|
+
"pane-left-visible": e.paneLeft.visible !== !1,
|
|
428
|
+
"pane-left-width": r(W)
|
|
429
|
+
}, null, 8, ["items", "pane-left-visible", "pane-left-width"])) : N("", !0),
|
|
430
|
+
C("div", tt, [
|
|
431
|
+
C("div", nt, [
|
|
432
|
+
C("div", {
|
|
433
|
+
ref_key: "paneLeftRef",
|
|
434
|
+
ref: v,
|
|
435
|
+
"aria-hidden": D.value ? void 0 : "true",
|
|
436
|
+
class: T(["split-pane-left", [{ expanded: r(w), "show-resize-border": r(g) }, { "is-dragging-pane-left": r(z) }, { "is-dragging-pane": r(z) || r(S) }]]),
|
|
437
|
+
"data-testid": "split-pane-left",
|
|
438
|
+
tabindex: D.value ? 0 : -1
|
|
439
|
+
}, [
|
|
440
|
+
M(x.$slots, "pane-left", {}, void 0, !0)
|
|
441
|
+
], 10, it),
|
|
442
|
+
D.value ? (R(), k("div", {
|
|
443
|
+
key: 0,
|
|
444
|
+
ref_key: "paneLeftDivider",
|
|
445
|
+
ref: o,
|
|
446
|
+
class: "split-pane-resize-divider left",
|
|
447
|
+
"data-testid": "split-pane-resize-divider-left",
|
|
448
|
+
tabindex: "0",
|
|
449
|
+
title: r(Z).t("actions.drag_to_resize"),
|
|
450
|
+
onMousedown: y[0] || (y[0] = //@ts-ignore
|
|
451
|
+
(...V) => r(m) && r(m)(...V))
|
|
452
|
+
}, [...y[2] || (y[2] = [
|
|
453
|
+
C("div", { class: "split-pane-drag-handle" }, null, -1)
|
|
454
|
+
])], 40, at)) : N("", !0),
|
|
455
|
+
C("div", ot, [
|
|
456
|
+
n.toolbar ? (R(), k("div", {
|
|
457
|
+
key: 0,
|
|
458
|
+
class: T(["split-pane-toolbar-container", { "has-resize-divider-left": D.value }]),
|
|
459
|
+
"data-testid": "split-pane-toolbar"
|
|
460
|
+
}, [
|
|
461
|
+
M(x.$slots, "toolbar", {}, void 0, !0)
|
|
462
|
+
], 2)) : N("", !0),
|
|
463
|
+
C("div", {
|
|
464
|
+
ref_key: "innerPanesContainerRef",
|
|
465
|
+
ref: u,
|
|
466
|
+
class: "split-pane-inner-panes"
|
|
467
|
+
}, [
|
|
468
|
+
ue(C("div", {
|
|
469
|
+
ref_key: "paneCenterRef",
|
|
470
|
+
ref: p,
|
|
471
|
+
"aria-hidden": H.value ? void 0 : "true",
|
|
472
|
+
class: T(["split-pane-center", [{ "has-resize-divider-left": D.value }, { "has-resize-divider-right": c.value }, { "is-dragging-pane": r(z) || r(S) }]]),
|
|
473
|
+
"data-testid": "split-pane-center",
|
|
474
|
+
tabindex: H.value ? 0 : -1
|
|
475
|
+
}, [
|
|
476
|
+
M(x.$slots, "pane-center", {}, void 0, !0)
|
|
477
|
+
], 10, st), [
|
|
478
|
+
[de, H.value]
|
|
479
|
+
]),
|
|
480
|
+
c.value ? (R(), k("div", {
|
|
481
|
+
key: 0,
|
|
482
|
+
ref_key: "innerPanesDivider",
|
|
483
|
+
ref: f,
|
|
484
|
+
class: "split-pane-resize-divider right",
|
|
485
|
+
"data-testid": "split-pane-resize-divider-right",
|
|
486
|
+
tabindex: "0",
|
|
487
|
+
title: r(Z).t("actions.drag_to_resize"),
|
|
488
|
+
onMousedown: y[1] || (y[1] = //@ts-ignore
|
|
489
|
+
(...V) => r(h) && r(h)(...V))
|
|
490
|
+
}, [...y[3] || (y[3] = [
|
|
491
|
+
C("div", { class: "split-pane-drag-handle" }, null, -1)
|
|
492
|
+
])], 40, lt)) : N("", !0),
|
|
493
|
+
ue(C("div", {
|
|
494
|
+
ref_key: "paneRightRef",
|
|
495
|
+
ref: d,
|
|
496
|
+
"aria-hidden": X.value ? void 0 : "true",
|
|
497
|
+
class: T(["split-pane-right", [
|
|
498
|
+
{ "has-toolbar": !!n.toolbar },
|
|
499
|
+
{ "show-resize-border": r(L) },
|
|
500
|
+
{ "is-dragging-inner-panes": r(S) },
|
|
501
|
+
{ "is-dragging-pane": r(z) || r(S) }
|
|
502
|
+
]]),
|
|
503
|
+
"data-testid": "split-pane-right",
|
|
504
|
+
tabindex: X.value ? 0 : -1
|
|
505
|
+
}, [
|
|
506
|
+
M(x.$slots, "pane-right", {}, void 0, !0)
|
|
507
|
+
], 10, rt), [
|
|
508
|
+
[de, X.value]
|
|
509
|
+
])
|
|
510
|
+
], 512)
|
|
511
|
+
])
|
|
512
|
+
])
|
|
513
|
+
])
|
|
514
|
+
])
|
|
515
|
+
], 2));
|
|
516
|
+
}
|
|
517
|
+
}), Pt = /* @__PURE__ */ oe(ut, [["__scopeId", "data-v-e368f52f"]]), dt = {}, ct = {
|
|
518
|
+
class: "kong-ui-public-split-pane-toolbar",
|
|
519
|
+
"data-testid": "kong-ui-public-split-pane-toolbar"
|
|
520
|
+
}, ft = {
|
|
521
|
+
class: "left",
|
|
522
|
+
"data-testid": "split-toolbar-left"
|
|
523
|
+
}, vt = {
|
|
524
|
+
key: 0,
|
|
525
|
+
class: "center",
|
|
526
|
+
"data-testid": "split-toolbar-center"
|
|
527
|
+
}, pt = {
|
|
528
|
+
key: 1,
|
|
529
|
+
class: "right",
|
|
530
|
+
"data-testid": "split-toolbar-right"
|
|
531
|
+
};
|
|
532
|
+
function ht(e, n) {
|
|
533
|
+
return R(), k("div", ct, [
|
|
534
|
+
C("div", ft, [
|
|
535
|
+
M(e.$slots, "left", {}, void 0, !0)
|
|
536
|
+
]),
|
|
537
|
+
e.$slots.center ? (R(), k("div", vt, [
|
|
538
|
+
M(e.$slots, "center", {}, void 0, !0)
|
|
539
|
+
])) : N("", !0),
|
|
540
|
+
e.$slots.right ? (R(), k("div", pt, [
|
|
541
|
+
M(e.$slots, "right", {}, void 0, !0)
|
|
542
|
+
])) : N("", !0)
|
|
543
|
+
]);
|
|
544
|
+
}
|
|
545
|
+
const Rt = /* @__PURE__ */ oe(dt, [["render", ht], ["__scopeId", "data-v-44b95676"]]);
|
|
546
|
+
export {
|
|
547
|
+
Pt as SplitPane,
|
|
548
|
+
Rt as SplitToolbar
|
|
549
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(R,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@kong/icons"),require("vue-router"),require("@kong-ui-public/i18n")):typeof define=="function"&&define.amd?define(["exports","vue","@kong/icons","vue-router","@kong-ui-public/i18n"],e):(R=typeof globalThis<"u"?globalThis:R||self,e(R["kong-ui-public-split-pane"]={},R.Vue,R.KongIcons,R.VueRouter,R["kong-ui-public-i18n"]))})(this,function(R,e,X,Q,F){"use strict";const Y="260px",O="500px",j="50%",K="50%";function A(t,i){return e.getCurrentScope()?(e.onScopeDispose(t,i),!0):!1}const ee=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const te=t=>t!=null,ne=Object.prototype.toString,ie=t=>ne.call(t)==="[object Object]",ae=()=>{};function T(t){return Array.isArray(t)?t:[t]}function oe(t){return e.getCurrentInstance()}function le(t,i=!0,r){oe()?e.onMounted(t,r):i?t():e.nextTick(t)}function se(t,i,r){return e.watch(t,i,{...r,immediate:!0})}const N=ee?window:void 0;function P(t){var i;const r=e.toValue(t);return(i=r==null?void 0:r.$el)!==null&&i!==void 0?i:r}function B(...t){const i=(n,a,s,o)=>(n.addEventListener(a,s,o),()=>n.removeEventListener(a,s,o)),r=e.computed(()=>{const n=T(e.toValue(t[0])).filter(a=>a!=null);return n.every(a=>typeof a!="string")?n:void 0});return se(()=>{var n,a;return[(n=(a=r.value)===null||a===void 0?void 0:a.map(s=>P(s)))!==null&&n!==void 0?n:[N].filter(s=>s!=null),T(e.toValue(r.value?t[1]:t[0])),T(e.unref(r.value?t[2]:t[1])),e.toValue(r.value?t[3]:t[2])]},([n,a,s,o],c,p)=>{if(!(n!=null&&n.length)||!(a!=null&&a.length)||!(s!=null&&s.length))return;const h=ie(o)?{...o}:o,d=n.flatMap(l=>a.flatMap(u=>s.map(g=>i(l,u,g,h))));p(()=>{d.forEach(l=>l())})},{flush:"post"})}function re(){const t=e.shallowRef(!1),i=e.getCurrentInstance();return i&&e.onMounted(()=>{t.value=!0},i),t}function q(t){const i=re();return e.computed(()=>(i.value,!!t()))}function ce(t,i,r={}){const{window:n=N,...a}=r;let s;const o=q(()=>n&&"MutationObserver"in n),c=()=>{s&&(s.disconnect(),s=void 0)},p=e.watch(e.computed(()=>{const l=T(e.toValue(t)).map(P).filter(te);return new Set(l)}),l=>{c(),o.value&&l.size&&(s=new MutationObserver(i),l.forEach(u=>s.observe(u,a)))},{immediate:!0,flush:"post"}),h=()=>s==null?void 0:s.takeRecords(),d=()=>{p(),c()};return A(d),{isSupported:o,stop:d,takeRecords:h}}function de(t,i,r={}){const{window:n=N,document:a=n==null?void 0:n.document,flush:s="sync"}=r;if(!n||!a)return ae;let o;const c=d=>{o==null||o(),o=d},p=e.watchEffect(()=>{const d=P(t);if(d){const{stop:l}=ce(a,u=>{u.map(g=>[...g.removedNodes]).flat().some(g=>g===d||g.contains(d))&&i(u)},{window:n,childList:!0,subtree:!0});c(l)}},{flush:s}),h=()=>{p(),c()};return A(h),h}function fe(t,i,r={}){const{window:n=N,...a}=r;let s;const o=q(()=>n&&"ResizeObserver"in n),c=()=>{s&&(s.disconnect(),s=void 0)},p=e.watch(e.computed(()=>{const d=e.toValue(t);return Array.isArray(d)?d.map(l=>P(l)):[P(d)]}),d=>{if(c(),o.value&&n){s=new ResizeObserver(i);for(const l of d)l&&s.observe(l,a)}},{immediate:!0,flush:"post"}),h=()=>{c(),p()};return A(h),{isSupported:o,stop:h}}function U(t,i={}){const{delayEnter:r=0,delayLeave:n=0,triggerOnRemoval:a=!1,window:s=N}=i,o=e.shallowRef(!1);let c;const p=h=>{const d=h?r:n;c&&(clearTimeout(c),c=void 0),d?c=setTimeout(()=>o.value=h,d):o.value=h};return s&&(B(t,"mouseenter",()=>p(!0),{passive:!0}),B(t,"mouseleave",()=>p(!1),{passive:!0}),a&&de(e.computed(()=>P(t)),()=>p(!1))),o}function ue(t,i={width:0,height:0},r={}){const{window:n=N,box:a="content-box"}=r,s=e.computed(()=>{var l;return(l=P(t))===null||l===void 0||(l=l.namespaceURI)===null||l===void 0?void 0:l.includes("svg")}),o=e.shallowRef(i.width),c=e.shallowRef(i.height),{stop:p}=fe(t,([l])=>{const u=a==="border-box"?l.borderBoxSize:a==="content-box"?l.contentBoxSize:l.devicePixelContentBoxSize;if(n&&s.value){const g=P(t);if(g){const b=g.getBoundingClientRect();o.value=b.width,c.value=b.height}}else if(u){const g=T(u);o.value=g.reduce((b,{inlineSize:y})=>b+y,0),c.value=g.reduce((b,{blockSize:y})=>b+y,0)}else o.value=l.contentRect.width,c.value=l.contentRect.height},r);le(()=>{const l=P(t);l&&(o.value="offsetWidth"in l?l.offsetWidth:i.width,c.value="offsetHeight"in l?l.offsetHeight:i.height)});const h=e.watch(()=>P(t),l=>{o.value=l?i.width:0,c.value=l?i.height:0});function d(){p(),h()}return{width:o,height:c,stop:d}}const G="20px",_=e.ref(!1),E=e.ref(!1),S=e.ref(!0),$=e.ref(0);function Z(t){const i=(t==null?void 0:t.verticalNavRef)||e.ref(null),r=(t==null?void 0:t.innerPanesContainerRef)||e.ref(null),n=(t==null?void 0:t.paneLeftRef)||e.ref(null),a=(t==null?void 0:t.paneCenterRef)||e.ref(null),s=(t==null?void 0:t.paneRightRef)||e.ref(null),o=f=>{var m,C,x,w,k;switch(f){case"verticalNav":return((m=i.value)==null?void 0:m.offsetWidth)||0;case"innerPanesContainer":return((C=r.value)==null?void 0:C.offsetWidth)||0;case"paneLeft":return((x=n.value)==null?void 0:x.offsetWidth)||0;case"paneCenter":return((w=a.value)==null?void 0:w.offsetWidth)||0;case"paneRight":return((k=s.value)==null?void 0:k.offsetWidth)||0;default:return 0}},c=e.ref(50),p=e.ref(0),h=e.ref(0),d=e.ref(0),l=e.ref(0),u=f=>{if(a.value){if(f){a.value.style.width=`${f}%`,$.value=o("paneCenter");return}else(typeof c.value!="number"||!isFinite(c.value))&&(c.value=38);a.value.style.width=`${c.value}%`,$.value=o("paneCenter")}},g=()=>{var f;a.value&&((f=s.value)==null?void 0:f.style.display)==="none"?(a.value.style.flex="1",u(100)):(a.value&&(a.value.style.flex=""),u())},b=()=>{var x;if(!r.value||!a.value)return;const f=100,m=o("innerPanesContainer")-o("verticalNav")-o("paneLeft")-f,C=c.value/100*o("innerPanesContainer");if(C<f?c.value=f/o("innerPanesContainer")*100:C>m&&(c.value=m/o("innerPanesContainer")*100),a.value&&s.value&&((x=s.value)==null?void 0:x.style.display)==="none"){u(100);return}u()},y=f=>{!a.value||f.button!==0||(E.value=!0,p.value=f.clientX,h.value=a.value.offsetWidth||0)},v=f=>{if(!E.value||!r.value||!a.value)return;const m=r.value.offsetWidth,C=f.clientX-p.value,w=(h.value+C)/m*100,k=100/m*100,I=(m-100)/m*100;c.value=Math.min(Math.max(k,w),I),u()},L=()=>{E.value=!1},z=f=>{!n.value||!S.value||f.button!==0||(_.value=!0,d.value=f.clientX,l.value=n.value.offsetWidth||0)},M=f=>{if(!_.value||!n.value)return;let m=l.value+(f.clientX-d.value);const C=Number(Y.replace(/px$/i,"")),x=Number(O.replace(/px$/i,""));m<C&&(m=C),m>x&&(m=x),n.value.style.width=`${m}px`,d.value=f.clientX,l.value=m,$.value=o("paneCenter")},W=()=>{_.value=!1},D=()=>{E.value||b()},V=async()=>{S.value=!S.value};return B(window,"resize",D),e.onMounted(async()=>{await e.nextTick(),a.value&&(b(),await e.nextTick(),u(),requestAnimationFrame(()=>{$.value=o("paneCenter")}))}),B(document,"mousemove",f=>{E.value&&v(f),_.value&&M(f)}),B(document,"mouseup",()=>{E.value&&L(),_.value&&W()}),{isDraggingPaneLeft:e.readonly(_),isDraggingInnerPanes:e.readonly(E),startDraggingInnerPanes:y,refreshInnerPaneSizes:g,paneLeftExpanded:e.readonly(S),togglePaneLeft:V,startDraggingPaneLeft:z,centerPaneWidth:$}}const pe={actions:{return:"Return",collapse_panel:"Collapse panel",expand_panel:"Expand panel",drag_to_resize:"Click and drag to resize"}};function J(){const t=F.createI18n("en-us",pe);return{i18n:t,i18nT:F.i18nTComponent(t)}}const he={class:"kong-ui-public-split-pane-vertical-navigation"},ge={class:"split-pane-nav"},me={class:"top"},be={class:"bottom"},ve=e.defineComponent({__name:"VerticalNavigation",props:{paneLeftWidth:{default:0},paneLeftVisible:{type:Boolean,default:!0},items:{default:()=>[]}},setup(t){e.useCssVars(u=>({c4231b96:d.value}));const{i18n:i}=J(),r=Q.useRouter(),{paneLeftExpanded:n,togglePaneLeft:a,isDraggingPaneLeft:s,isDraggingInnerPanes:o}=Z(),c=e.ref(!1),p=e.ref(!1),h=e.computed(()=>c.value||s.value||o.value),d=e.computed(()=>`${t.paneLeftWidth-8}px`),l=u=>{n.value||a(),!u.active&&u.to&&r.push(u.to)};return e.onMounted(async()=>{await e.nextTick(),await new Promise(u=>setTimeout(u,500)),p.value=!0}),(u,g)=>{const b=e.resolveComponent("KButton"),y=e.resolveComponent("KTooltip");return e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("nav",ge,[e.createElementVNode("div",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,v=>(e.openBlock(),e.createBlock(y,{key:v.tooltip,"kpop-attributes":{offset:"10px"},label:v.tooltip,placement:"right"},{default:e.withCtx(()=>[e.createVNode(b,{appearance:"none","aria-label":v.tooltip,class:e.normalizeClass(["split-pane-nav-item",{active:v.active}]),"data-testid":`kong-ui-public-split-pane-vertical-navigation-nav-item-${v.testid}`,icon:"",size:"large",style:{cursor:"pointer"},to:v.to,onClickCapture:e.withModifiers(L=>l(v),["prevent"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(v.icon),{decorative:"",size:e.unref(G)},null,8,["size"]))]),_:2},1032,["aria-label","class","data-testid","to","onClickCapture"])]),_:2},1032,["label"]))),128))]),e.createElementVNode("div",be,[t.paneLeftVisible?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["toggle-left-panel-control",{expanded:e.unref(n),"disable-animation":!p.value||e.unref(s)||e.unref(o)}]),onTransitionend:g[0]||(g[0]=e.withModifiers(v=>c.value=!1,["self"])),onTransitionstart:g[1]||(g[1]=e.withModifiers(v=>c.value=!0,["self"]))},[(e.openBlock(),e.createBlock(y,{key:String(e.unref(n)),"kpop-attributes":e.unref(n)?void 0:{offset:"10px"},label:h.value?void 0:e.unref(n)?e.unref(i).t("actions.collapse_panel"):e.unref(i).t("actions.expand_panel"),placement:e.unref(n)?"left":"right"},{default:e.withCtx(()=>[e.createVNode(b,{appearance:"none","aria-controls":"left-pane","aria-expanded":e.unref(n),"aria-label":e.unref(n)?e.unref(i).t("actions.collapse_panel"):e.unref(i).t("actions.expand_panel"),class:"split-pane-nav-item toggle-left-panel","data-testid":"kong-ui-public-split-pane-toggle-left-panel-button",icon:"",size:"large",onClick:e.unref(a)},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(n)?e.unref(X.ChevronDoubleLeftIcon):e.unref(X.ChevronDoubleRightIcon)),{decorative:"",size:e.unref(G)},null,8,["size"]))]),_:1},8,["aria-expanded","aria-label","onClick"])]),_:1},8,["kpop-attributes","label","placement"]))],34)):e.createCommentVNode("",!0)])])])}}}),H=(t,i)=>{const r=t.__vccOpts||t;for(const[n,a]of i)r[n]=a;return r},we=H(ve,[["__scopeId","data-v-2261cf1d"]]),ke={class:"split-pane-container"},Ce={class:"split-pane-container-inner"},Re={class:"panes"},xe=["aria-hidden","tabindex"],Pe=["title"],ye={class:"split-pane-container-inner-content"},Ee=["aria-hidden","tabindex"],Le=["title"],We=["aria-hidden","tabindex"],Ne=H(e.defineComponent({__name:"SplitPane",props:{resizable:{type:Boolean,default:!0},showResizeHandle:{type:Boolean,default:!0},showNavigation:{type:Boolean,default:!0},navigationItems:{default:()=>[]},paneLeft:{default:()=>({visible:!0,maxWidth:O})},paneCenter:{default:()=>({visible:!0,maxWidth:j})},paneRight:{default:()=>({visible:!0,maxWidth:K})}},setup(t){e.useCssVars(w=>({v49e30752:n.value,v2075cf60:a.value,v8d772a96:s.value}));const i=e.useSlots(),r=w=>w==="left"?t.paneLeft.maxWidth!==void 0?t.paneLeft.maxWidth:O:w==="center"?t.resizable?"none":t.paneCenter.maxWidth!==void 0?t.paneCenter.maxWidth:j:w==="right"?t.resizable?"none":t.paneRight.maxWidth!==void 0?t.paneRight.maxWidth:K:"none",n=e.computed(()=>r("left")),a=e.computed(()=>r("center")),s=e.computed(()=>r("right")),o=e.useTemplateRef("verticalNavRef"),c=e.useTemplateRef("innerPanesContainerRef"),p=e.useTemplateRef("paneLeftRef"),h=e.useTemplateRef("paneCenterRef"),d=e.useTemplateRef("paneRightRef"),l=e.useTemplateRef("paneLeftDivider"),u=e.useTemplateRef("innerPanesDivider"),{startDraggingInnerPanes:g,startDraggingPaneLeft:b,refreshInnerPaneSizes:y,paneLeftExpanded:v,isDraggingPaneLeft:L,isDraggingInnerPanes:z}=Z({verticalNavRef:o,innerPanesContainerRef:c,paneLeftRef:p,paneCenterRef:h,paneRightRef:d}),{i18n:M}=J(),W=e.computed(()=>!!i["pane-left"]&&t.paneLeft.visible!==!1&&v.value),D=e.computed(()=>!!i["pane-center"]&&t.paneCenter.visible!==!1),V=e.computed(()=>!!i["pane-right"]&&t.paneRight.visible!==!1),f=e.computed(()=>t.resizable&&t.showResizeHandle&&!!i["pane-center"]&&t.paneCenter.visible!==!1&&!!i["pane-right"]&&t.paneRight.visible!==!1),m=U(l),C=U(u),{width:x}=ue(p);return e.watch(()=>t.paneRight.visible,async()=>{t.resizable&&(await e.nextTick(),y())},{flush:"post"}),(w,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["kong-ui-public-split-pane",{"has-navigation":t.showNavigation}]),"data-testid":"split-pane"},[e.createElementVNode("div",ke,[t.showNavigation?(e.openBlock(),e.createBlock(we,{key:0,ref_key:"verticalNavRef",ref:o,items:t.navigationItems,"pane-left-visible":t.paneLeft.visible!==!1,"pane-left-width":e.unref(x)},null,8,["items","pane-left-visible","pane-left-width"])):e.createCommentVNode("",!0),e.createElementVNode("div",Ce,[e.createElementVNode("div",Re,[e.createElementVNode("div",{ref_key:"paneLeftRef",ref:p,"aria-hidden":W.value?void 0:"true",class:e.normalizeClass(["split-pane-left",[{expanded:e.unref(v),"show-resize-border":e.unref(m)},{"is-dragging-pane-left":e.unref(L)},{"is-dragging-pane":e.unref(L)||e.unref(z)}]]),"data-testid":"split-pane-left",tabindex:W.value?0:-1},[e.renderSlot(w.$slots,"pane-left",{},void 0,!0)],10,xe),W.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"paneLeftDivider",ref:l,class:"split-pane-resize-divider left","data-testid":"split-pane-resize-divider-left",tabindex:"0",title:e.unref(M).t("actions.drag_to_resize"),onMousedown:k[0]||(k[0]=(...I)=>e.unref(b)&&e.unref(b)(...I))},[...k[2]||(k[2]=[e.createElementVNode("div",{class:"split-pane-drag-handle"},null,-1)])],40,Pe)):e.createCommentVNode("",!0),e.createElementVNode("div",ye,[i.toolbar?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["split-pane-toolbar-container",{"has-resize-divider-left":W.value}]),"data-testid":"split-pane-toolbar"},[e.renderSlot(w.$slots,"toolbar",{},void 0,!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"innerPanesContainerRef",ref:c,class:"split-pane-inner-panes"},[e.withDirectives(e.createElementVNode("div",{ref_key:"paneCenterRef",ref:h,"aria-hidden":D.value?void 0:"true",class:e.normalizeClass(["split-pane-center",[{"has-resize-divider-left":W.value},{"has-resize-divider-right":f.value},{"is-dragging-pane":e.unref(L)||e.unref(z)}]]),"data-testid":"split-pane-center",tabindex:D.value?0:-1},[e.renderSlot(w.$slots,"pane-center",{},void 0,!0)],10,Ee),[[e.vShow,D.value]]),f.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"innerPanesDivider",ref:u,class:"split-pane-resize-divider right","data-testid":"split-pane-resize-divider-right",tabindex:"0",title:e.unref(M).t("actions.drag_to_resize"),onMousedown:k[1]||(k[1]=(...I)=>e.unref(g)&&e.unref(g)(...I))},[...k[3]||(k[3]=[e.createElementVNode("div",{class:"split-pane-drag-handle"},null,-1)])],40,Le)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{ref_key:"paneRightRef",ref:d,"aria-hidden":V.value?void 0:"true",class:e.normalizeClass(["split-pane-right",[{"has-toolbar":!!i.toolbar},{"show-resize-border":e.unref(C)},{"is-dragging-inner-panes":e.unref(z)},{"is-dragging-pane":e.unref(L)||e.unref(z)}]]),"data-testid":"split-pane-right",tabindex:V.value?0:-1},[e.renderSlot(w.$slots,"pane-right",{},void 0,!0)],10,We),[[e.vShow,V.value]])],512)])])])])],2))}}),[["__scopeId","data-v-e368f52f"]]),_e={},ze={class:"kong-ui-public-split-pane-toolbar","data-testid":"kong-ui-public-split-pane-toolbar"},Te={class:"left","data-testid":"split-toolbar-left"},Be={key:0,class:"center","data-testid":"split-toolbar-center"},$e={key:1,class:"right","data-testid":"split-toolbar-right"};function De(t,i){return e.openBlock(),e.createElementBlock("div",ze,[e.createElementVNode("div",Te,[e.renderSlot(t.$slots,"left",{},void 0,!0)]),t.$slots.center?(e.openBlock(),e.createElementBlock("div",Be,[e.renderSlot(t.$slots,"center",{},void 0,!0)])):e.createCommentVNode("",!0),t.$slots.right?(e.openBlock(),e.createElementBlock("div",$e,[e.renderSlot(t.$slots,"right",{},void 0,!0)])):e.createCommentVNode("",!0)])}const Ve=H(_e,[["render",De],["__scopeId","data-v-44b95676"]]);R.SplitPane=Ne,R.SplitToolbar=Ve,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})});
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.kong-ui-public-split-pane-vertical-navigation[data-v-2261cf1d]{color:#bee2ff;color:var(--kui-navigation-color-text, #bee2ff);display:flex;height:100%;justify-content:center;padding:8px;padding:var(--kui-space-40, 8px);position:relative;width:52px;z-index:1}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav[data-v-2261cf1d]{align-items:center;display:flex;flex-direction:column;gap:12px;gap:var(--kui-space-50, 12px);justify-content:space-between;width:100%}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav .top[data-v-2261cf1d],.kong-ui-public-split-pane-vertical-navigation .split-pane-nav .bottom[data-v-2261cf1d]{display:flex;flex-direction:column;flex-grow:1;gap:12px;gap:var(--kui-space-50, 12px);position:relative;width:100%}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav .top[data-v-2261cf1d]{align-items:center;justify-content:flex-start}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav .bottom[data-v-2261cf1d]{align-items:center;justify-content:flex-end}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav[data-v-2261cf1d] .k-popover .popover{pointer-events:none}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item[data-v-2261cf1d]{align-items:center;background-color:#000933;background-color:var(--kui-navigation-color-background, #000933);border:1px solid transparent;border:var(--kui-border-width-10, 1px) solid var(--kui-color-border-transparent, transparent);border-radius:6px;border-radius:var(--kui-border-radius-30, 6px);color:#bee2ff;color:var(--kui-navigation-color-text, #bee2ff);cursor:pointer;display:flex;justify-content:center;justify-content:space-between;text-decoration:none;transition:color .2s ease;white-space:nowrap}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item[data-v-2261cf1d]:hover,.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item[data-v-2261cf1d]:focus-visible{color:#eefaff;color:var(--kui-navigation-color-text-hover, #eefaff)}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item[data-v-2261cf1d]:hover svg,.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item[data-v-2261cf1d]:focus-visible svg{color:#eefaff;color:var(--kui-navigation-color-text-hover, #eefaff)}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item[data-v-2261cf1d]:focus-visible{box-shadow:0 0 0 1px #fff9 inset;box-shadow:var(--kui-navigation-shadow-focus, 0 0 0 1px rgba(255, 255, 255, .6) inset);outline:none}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item[data-v-2261cf1d] svg path{color:currentColor;fill:currentColor;transition:all .2s ease-out}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item.active[data-v-2261cf1d]{background-color:#ffffff1f;background-color:var(--kui-navigation-color-background-selected, rgba(255, 255, 255, .12));border-color:#ffffff1f;border-color:var(--kui-navigation-color-border, rgba(255, 255, 255, .12));color:#00fabe;color:var(--kui-navigation-color-text-selected, #00fabe)}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item.active[data-v-2261cf1d]:hover,.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item.active[data-v-2261cf1d]:focus-visible{color:#00fabe!important;color:var(--kui-navigation-color-text-selected, #00fabe)!important}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item.active[data-v-2261cf1d]:hover svg,.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item.active[data-v-2261cf1d]:focus-visible svg{color:#00fabe;color:var(--kui-navigation-color-text-selected, #00fabe)}.kong-ui-public-split-pane-vertical-navigation .split-pane-nav-item.toggle-left-panel[data-v-2261cf1d]{border-color:#ffffff1f;border-color:var(--kui-navigation-color-border, rgba(255, 255, 255, .12))}.toggle-left-panel-control[data-v-2261cf1d]{left:0;position:absolute;z-index:1}.toggle-left-panel-control[data-v-2261cf1d]:not(.disable-animation){transition:left .2s ease-out}.toggle-left-panel-control.expanded[data-v-2261cf1d]{left:var(--c4231b96)}[data-v-e368f52f],[data-v-e368f52f] *{box-sizing:border-box}.kong-ui-public-split-pane[data-v-e368f52f]{height:100%}.kong-ui-public-split-pane.has-navigation[data-v-e368f52f]{background-color:#000933;background-color:var(--kui-navigation-color-background, #000933);bottom:0;left:0;position:fixed;right:0;top:0;z-index:2000}.kong-ui-public-split-pane.has-navigation .split-pane-container-inner[data-v-e368f52f]{padding-top:6px;padding-top:var(--kui-space-30, 6px)}.kong-ui-public-split-pane .split-pane-container[data-v-e368f52f]{display:flex;flex-direction:row;height:100%;width:100%}.kong-ui-public-split-pane .split-pane-container-inner[data-v-e368f52f]{display:flex;flex-direction:column;width:100%}.kong-ui-public-split-pane .split-pane-container-inner-content[data-v-e368f52f]{display:flex;flex:1 1 auto;flex-direction:column;height:100%;max-height:calc(100vh - 6px);min-width:0;position:relative;width:100%}.kong-ui-public-split-pane .split-pane-inner-panes[data-v-e368f52f]{display:flex;height:100%;width:100%}.kong-ui-public-split-pane .panes[data-v-e368f52f]{align-items:stretch;background-color:#fff;background-color:var(--kui-color-background, #ffffff);border-top-left-radius:6px;border-top-left-radius:var(--kui-border-radius-30, 6px);display:flex;flex:1 1 auto;flex-direction:row;overflow:hidden;z-index:0}.kong-ui-public-split-pane .split-pane-left[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-center[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-right[data-v-e368f52f]{overflow-x:hidden;overflow-y:auto;position:relative;scrollbar-width:thin}.kong-ui-public-split-pane .split-pane-left.has-toolbar[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-center.has-toolbar[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-right.has-toolbar[data-v-e368f52f]{max-height:calc(100vh - 44px)}.kong-ui-public-split-pane .split-pane-left.is-dragging-pane[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-center.is-dragging-pane[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-right.is-dragging-pane[data-v-e368f52f]{pointer-events:none;transition:none;-webkit-user-select:none;user-select:none}.kong-ui-public-split-pane .split-pane-left[data-v-e368f52f]{border-right:1px solid transparent;border-right:var(--kui-border-width-10, 1px) solid var(--kui-color-border-transparent, transparent);border-top-left-radius:6px;border-top-left-radius:var(--kui-border-radius-30, 6px);flex:0 0 auto;max-height:none!important;max-width:0;overflow:hidden;pointer-events:none;position:relative;transition:border-color .1s ease-in-out,max-width .1s ease-in-out;width:260px;will-change:border-color,max-width,min-width;z-index:5}.kong-ui-public-split-pane .split-pane-left.expanded[data-v-e368f52f]{border-right-color:#e0e4ea;border-right-color:var(--kui-color-border, #e0e4ea);max-width:var(--v49e30752);pointer-events:auto}.kong-ui-public-split-pane .split-pane-left.is-dragging-pane-left[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-left.expanded.show-resize-border[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-left.show-resize-border[data-v-e368f52f]{border-right-color:#0044f4;border-right-color:var(--kui-color-border-primary, #0044f4)}.kong-ui-public-split-pane .split-pane-center[data-v-e368f52f]{max-width:var(--v2075cf60);min-width:300px;width:300px}.kong-ui-public-split-pane .split-pane-center.has-resize-divider-left[data-v-e368f52f]{margin-left:-3px}.kong-ui-public-split-pane .split-pane-center.has-resize-divider-right[data-v-e368f52f]{margin-right:-3px}.kong-ui-public-split-pane .split-pane-right[data-v-e368f52f]{border-left:1px solid #e0e4ea;border-left:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea);flex:1;max-width:var(--v8d772a96);min-width:300px;transition:border-color .1s ease-in-out}.kong-ui-public-split-pane .split-pane-right.is-dragging-inner-panes[data-v-e368f52f],.kong-ui-public-split-pane .split-pane-right.show-resize-border[data-v-e368f52f]{border-left-color:#0044f4;border-left-color:var(--kui-color-border-primary, #0044f4)}.kong-ui-public-split-pane .split-pane-toolbar-container.has-resize-divider-left[data-v-e368f52f]{margin-left:-3px}.kong-ui-public-split-pane .split-pane-resize-divider[data-v-e368f52f]{align-self:flex-end;background-color:transparent;background-color:var(--kui-color-background-transparent, transparent);cursor:col-resize;height:calc(100% - 43px);position:relative;transition:all .1s ease-in-out;width:3px;z-index:4}.kong-ui-public-split-pane .split-pane-resize-divider.left[data-v-e368f52f]{margin-left:0}.kong-ui-public-split-pane .split-pane-resize-divider.right[data-v-e368f52f]{right:-3px}.kong-ui-public-split-pane-toolbar[data-v-44b95676]{align-items:center;background:#fff;background:var(--kui-color-background, #ffffff);border-bottom:1px solid #e0e4ea;border-bottom:var(--kui-border-width-10, 1px) solid var(--kui-color-border, #e0e4ea);display:flex;flex:0 0 44px;justify-content:space-between;min-height:44px;overflow-x:auto;overflow-y:hidden;padding-left:8px;padding-left:var(--kui-space-40, 8px);padding-right:8px;padding-right:var(--kui-space-40, 8px);position:sticky;scrollbar-width:thin;top:0;z-index:3}.left[data-v-44b95676],.right[data-v-44b95676],.center[data-v-44b95676]{align-items:center;display:flex;gap:8px;gap:var(--kui-space-40, 8px);height:100%}.left[data-v-44b95676],.right[data-v-44b95676]{flex:1 1 0%}.right[data-v-44b95676]{justify-content:flex-end}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SplitPaneProps } from '../types';
|
|
2
|
+
type __VLS_Slots = {
|
|
3
|
+
toolbar?: () => any;
|
|
4
|
+
'pane-left'?: () => any;
|
|
5
|
+
'pane-center'?: () => any;
|
|
6
|
+
'pane-right'?: () => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<SplitPaneProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SplitPaneProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=SplitPane.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitPane.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SplitPane.vue"],"names":[],"mappings":"AAoZA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AA0B9C,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAA;CACzB,CAAC;AAuSF,QAAA,MAAM,UAAU,wSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
left?: (props: typeof __VLS_1) => any;
|
|
4
|
+
} & {
|
|
5
|
+
center?: (props: typeof __VLS_3) => any;
|
|
6
|
+
} & {
|
|
7
|
+
right?: (props: typeof __VLS_5) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=SplitToolbar.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitToolbar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SplitToolbar.vue"],"names":[],"mappings":"AAqHA,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,OAAO,IAAW,CAAE;AAC9D,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACzC;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK7C,QAAA,MAAM,UAAU,+QACd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { VerticalNavigationItem } from '../types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
paneLeftWidth?: number;
|
|
4
|
+
paneLeftVisible?: boolean;
|
|
5
|
+
items?: VerticalNavigationItem[];
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=VerticalNavigation.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VerticalNavigation.vue.d.ts","sourceRoot":"","sources":["../../../src/components/VerticalNavigation.vue"],"names":[],"mappings":"AAgQA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAEtD,KAAK,WAAW,GAAG;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAA;CACjC,CAAC;AAsRF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createI18n, i18nTComponent } from '@kong-ui-public/i18n';
|
|
2
|
+
import english from '../locales/en.json';
|
|
3
|
+
interface UseI18nReturn {
|
|
4
|
+
i18n: ReturnType<typeof createI18n<typeof english>>;
|
|
5
|
+
i18nT: ReturnType<typeof i18nTComponent<typeof english>>;
|
|
6
|
+
}
|
|
7
|
+
export default function useI18n(): UseI18nReturn;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=useI18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../../src/composable/useI18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,OAAO,MAAM,oBAAoB,CAAA;AAExC,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,CAAA;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,IAAI,aAAa,CAO/C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { useSplitPaneParams } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Composable for managing split pane layout with resizable panels
|
|
4
|
+
* @param {useSplitPaneParams} [params]
|
|
5
|
+
* @returns {Object} Object containing pane state and control functions
|
|
6
|
+
*/
|
|
7
|
+
export default function useSplitPane(params?: useSplitPaneParams): {
|
|
8
|
+
isDraggingPaneLeft: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
9
|
+
isDraggingInnerPanes: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
10
|
+
startDraggingInnerPanes: (e: MouseEvent) => void;
|
|
11
|
+
refreshInnerPaneSizes: () => void;
|
|
12
|
+
paneLeftExpanded: Readonly<import("vue").Ref<boolean, boolean>>;
|
|
13
|
+
togglePaneLeft: () => Promise<void>;
|
|
14
|
+
startDraggingPaneLeft: (e: MouseEvent) => void;
|
|
15
|
+
centerPaneWidth: import("vue").Ref<number, number>;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useSplitPane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSplitPane.d.ts","sourceRoot":"","sources":["../../../src/composable/useSplitPane.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAgBlD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB;;;iCAqH1B,UAAU,KAAG,IAAI;iCAjDnB,IAAI;;0BAyJL,OAAO,CAAC,IAAI,CAAC;+BA1DZ,UAAU,KAAG,IAAI;;EA2GpD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Default minimum width for the left pane */
|
|
2
|
+
export declare const PANE_LEFT_MIN_WIDTH = "260px";
|
|
3
|
+
/** Default maximum width for the left pane */
|
|
4
|
+
export declare const PANE_LEFT_MAX_WIDTH = "500px";
|
|
5
|
+
/** Default maximum width for the center pane */
|
|
6
|
+
export declare const PANE_CENTER_DEFAULT_MAX_WIDTH: string;
|
|
7
|
+
/** Default maximum width for the right pane */
|
|
8
|
+
export declare const PANE_RIGHT_DEFAULT_MAX_WIDTH: string;
|
|
9
|
+
//# sourceMappingURL=split-pane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-pane.d.ts","sourceRoot":"","sources":["../../../src/constants/split-pane.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,UAAU,CAAA;AAC1C,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,UAAU,CAAA;AAC1C,gDAAgD;AAChD,eAAO,MAAM,6BAA6B,EAAE,MAAc,CAAA;AAC1D,+CAA+C;AAC/C,eAAO,MAAM,4BAA4B,EAAE,MAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,YAAY,MAAM,+BAA+B,CAAA;AAExD,OAAO,EACL,SAAS,EACT,YAAY,GACb,CAAA;AAED,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Component, ShallowRef } from 'vue';
|
|
2
|
+
import type { RouteLocationRaw } from 'vue-router';
|
|
3
|
+
export interface SplitPaneProps {
|
|
4
|
+
/**
|
|
5
|
+
* Should the center and right panels allow for resizing
|
|
6
|
+
* @default true
|
|
7
|
+
*/
|
|
8
|
+
resizable?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Should the resize handle be hidden
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
showResizeHandle?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Show the navigation pane
|
|
16
|
+
* @default true
|
|
17
|
+
*/
|
|
18
|
+
showNavigation?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The items to show in the vertical navigation
|
|
21
|
+
* @default []
|
|
22
|
+
*/
|
|
23
|
+
navigationItems?: VerticalNavigationItem[];
|
|
24
|
+
paneLeft?: {
|
|
25
|
+
/** Pass false to hide the pane even if it contains slot content */
|
|
26
|
+
visible?: boolean;
|
|
27
|
+
maxWidth?: string;
|
|
28
|
+
};
|
|
29
|
+
paneCenter?: {
|
|
30
|
+
/** Pass false to hide the pane even if it contains slot content */
|
|
31
|
+
visible?: boolean;
|
|
32
|
+
maxWidth?: string;
|
|
33
|
+
};
|
|
34
|
+
paneRight?: {
|
|
35
|
+
/** Pass false to hide the pane even if it contains slot content */
|
|
36
|
+
visible?: boolean;
|
|
37
|
+
maxWidth?: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface VerticalNavigationItem {
|
|
41
|
+
/**
|
|
42
|
+
* The route location to navigate to
|
|
43
|
+
*/
|
|
44
|
+
to?: RouteLocationRaw;
|
|
45
|
+
/**
|
|
46
|
+
* The tooltip text to show on hover
|
|
47
|
+
*/
|
|
48
|
+
tooltip: string;
|
|
49
|
+
/**
|
|
50
|
+
* Is the item currently active
|
|
51
|
+
*/
|
|
52
|
+
active: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* The icon to show for the navigation item
|
|
55
|
+
*/
|
|
56
|
+
icon: Component;
|
|
57
|
+
/**
|
|
58
|
+
* The test ID for the navigation item
|
|
59
|
+
*/
|
|
60
|
+
testid: string;
|
|
61
|
+
}
|
|
62
|
+
export interface useSplitPaneParams {
|
|
63
|
+
/** The `useTemplateRef()` of the vertical navigation component */
|
|
64
|
+
verticalNavRef?: Readonly<ShallowRef<any | null>>;
|
|
65
|
+
/** The `useTemplateRef()` of the resizable pane's parent element */
|
|
66
|
+
innerPanesContainerRef?: Readonly<ShallowRef<HTMLDivElement | null>>;
|
|
67
|
+
/** The `useTemplateRef()` of the left pane */
|
|
68
|
+
paneLeftRef?: Readonly<ShallowRef<HTMLDivElement | null>>;
|
|
69
|
+
/** The `useTemplateRef()` of the center pane */
|
|
70
|
+
paneCenterRef?: Readonly<ShallowRef<HTMLDivElement | null>>;
|
|
71
|
+
/** The `useTemplateRef()` of the right pane */
|
|
72
|
+
paneRightRef?: Readonly<ShallowRef<HTMLDivElement | null>>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAC1C,QAAQ,CAAC,EAAE;QACT,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAA;QAEjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAA;QAEjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,SAAS,CAAC,EAAE;QACV,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAA;QAEjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAGD,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,EAAE,CAAC,EAAE,gBAAgB,CAAA;IACrB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,SAAS,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAGD,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,cAAc,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAA;IACpE,8CAA8C;IAC9C,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAA;IACzD,gDAAgD;IAChD,aAAa,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAA;IAC3D,+CAA+C;IAC/C,YAAY,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAA;CAC3D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kong-ui-public/split-pane",
|
|
3
|
-
"version": "0.3.10
|
|
3
|
+
"version": "0.3.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A shared SplitPane layout component for Vue 3 applications.",
|
|
6
6
|
"main": "./dist/split-pane.umd.js",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"errorLimit": "200KB"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@kong/icons": "^1.
|
|
48
|
+
"@kong/icons": "^1.48.0",
|
|
49
49
|
"@kong/kongponents": ">=9.42.0 <10.0.0",
|
|
50
50
|
"vue": "^3.5.27",
|
|
51
51
|
"@kong-ui-public/i18n": "^2.4.6"
|