@kiva/kv-components 6.22.0 → 6.22.2
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/vue/KvSideSheet.js +134 -170
- package/package.json +2 -2
package/dist/vue/KvSideSheet.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { toRefs as
|
|
2
|
-
import { mdiArrowLeft as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
const
|
|
1
|
+
import { toRefs as q, ref as w, reactive as J, computed as L, onMounted as P, onUnmounted as B, watch as y, resolveComponent as Q, openBlock as g, createElementBlock as p, normalizeClass as k, withModifiers as X, createElementVNode as c, normalizeStyle as j, createVNode as O, createCommentVNode as b, toDisplayString as Y, renderSlot as F, nextTick as Z } from "vue";
|
|
2
|
+
import { mdiArrowLeft as $, mdiClose as ee, mdiExportVariant as te } from "@mdi/js";
|
|
3
|
+
import oe from "./KvMaterialIcon.js";
|
|
4
|
+
import ne from "../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
const ie = {
|
|
6
6
|
name: "KvSideSheet",
|
|
7
7
|
components: {
|
|
8
|
-
KvMaterialIcon:
|
|
8
|
+
KvMaterialIcon: oe
|
|
9
9
|
},
|
|
10
10
|
props: {
|
|
11
11
|
/**
|
|
@@ -50,13 +50,6 @@ const se = {
|
|
|
50
50
|
type: String,
|
|
51
51
|
default: ""
|
|
52
52
|
},
|
|
53
|
-
/**
|
|
54
|
-
* Source element position for expand animation
|
|
55
|
-
* */
|
|
56
|
-
animationSourceElement: {
|
|
57
|
-
type: Object,
|
|
58
|
-
default: () => ({})
|
|
59
|
-
},
|
|
60
53
|
/**
|
|
61
54
|
* The headline of the side sheet
|
|
62
55
|
* */
|
|
@@ -72,277 +65,248 @@ const se = {
|
|
|
72
65
|
widthDimensions: {
|
|
73
66
|
type: [String, Object],
|
|
74
67
|
default: () => ({ default: "100%", md: "50%" }),
|
|
75
|
-
validator: (
|
|
68
|
+
validator: (i) => typeof i == "string" ? /^(\d+px|[\d.]+%|auto|inherit|initial)$/.test(i) : typeof i == "object" ? Object.keys(i).every((l) => ["default", "sm", "md", "lg", "xl", "2xl"].includes(l) && /^(\d+px|[\d.]+%|auto|inherit|initial)$/.test(i[l])) : !1
|
|
76
69
|
}
|
|
77
70
|
},
|
|
78
71
|
emits: ["side-sheet-closed", "go-to-link"],
|
|
79
|
-
setup(
|
|
72
|
+
setup(i, { emit: l, slots: s }) {
|
|
80
73
|
const {
|
|
81
74
|
visible: t,
|
|
82
|
-
kvTrackFunction:
|
|
83
|
-
trackEventCategory:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
} = P(l), w = u(!1), B = u({}), s = u({}), L = u(null), m = u(null), y = u(null), A = u(null), M = u(window.innerHeight), D = u(window.innerWidth), v = Q({
|
|
75
|
+
kvTrackFunction: H,
|
|
76
|
+
trackEventCategory: z,
|
|
77
|
+
widthDimensions: a
|
|
78
|
+
} = q(i), o = w(!1), r = w({}), C = w(null), v = w(null), m = w(null), W = w(window.innerHeight), _ = w(window.innerWidth), f = J({
|
|
87
79
|
headline: 0,
|
|
88
80
|
controls: 0
|
|
89
|
-
}),
|
|
90
|
-
const e =
|
|
81
|
+
}), I = L(() => {
|
|
82
|
+
const e = W.value - f.headline - f.controls;
|
|
91
83
|
return Math.max(e, 0);
|
|
92
|
-
}),
|
|
93
|
-
if (typeof
|
|
94
|
-
return
|
|
84
|
+
}), V = L(() => {
|
|
85
|
+
if (typeof a.value == "string")
|
|
86
|
+
return a.value;
|
|
95
87
|
const e = {
|
|
96
88
|
sm: 640,
|
|
97
89
|
md: 768,
|
|
98
90
|
lg: 1024,
|
|
99
91
|
xl: 1280,
|
|
100
92
|
"2xl": 1536
|
|
101
|
-
}, n =
|
|
102
|
-
return
|
|
103
|
-
}),
|
|
104
|
-
let
|
|
93
|
+
}, n = _.value || window.innerWidth, u = Object.keys(a.value).filter((d) => d !== "default").sort((d, R) => e[R] - e[d]).find((d) => n >= e[d]);
|
|
94
|
+
return u ? a.value[u] : a.value.default || "100%";
|
|
95
|
+
}), N = (e, n) => {
|
|
96
|
+
let u;
|
|
105
97
|
return (...d) => {
|
|
106
|
-
clearTimeout(
|
|
98
|
+
clearTimeout(u), u = setTimeout(() => e(...d), n);
|
|
107
99
|
};
|
|
108
|
-
},
|
|
109
|
-
|
|
110
|
-
|
|
100
|
+
}, x = () => {
|
|
101
|
+
W.value = window.innerHeight, _.value = window.innerWidth, setTimeout(() => {
|
|
102
|
+
Z(() => {
|
|
111
103
|
var e;
|
|
112
|
-
if (
|
|
113
|
-
const n = y.value.getBoundingClientRect();
|
|
114
|
-
v.headline = n.height;
|
|
115
|
-
} else
|
|
116
|
-
v.headline = 0;
|
|
117
|
-
if ((e = r.controls) != null && e.call(r) && m.value) {
|
|
104
|
+
if (m.value) {
|
|
118
105
|
const n = m.value.getBoundingClientRect();
|
|
119
|
-
|
|
106
|
+
f.headline = n.height;
|
|
107
|
+
} else
|
|
108
|
+
f.headline = 0;
|
|
109
|
+
if ((e = s.controls) != null && e.call(s) && v.value) {
|
|
110
|
+
const n = v.value.getBoundingClientRect();
|
|
111
|
+
f.controls = n.height;
|
|
120
112
|
} else
|
|
121
|
-
|
|
113
|
+
f.controls = 0;
|
|
122
114
|
});
|
|
123
115
|
}, 300);
|
|
124
|
-
},
|
|
116
|
+
}, S = N(x, 100), E = () => {
|
|
125
117
|
const e = "tw-overflow-hidden";
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}, 300), document.removeEventListener("keyup",
|
|
131
|
-
},
|
|
132
|
-
|
|
133
|
-
},
|
|
134
|
-
(e == null ? void 0 : e.key) === "Escape" &&
|
|
118
|
+
o.value ? document.body.classList.add(e) : document.body.classList.remove(e);
|
|
119
|
+
}, K = () => {
|
|
120
|
+
o.value = !1, E(), H.value(z.value, "click", "side-sheet-closed"), setTimeout(() => {
|
|
121
|
+
l("side-sheet-closed");
|
|
122
|
+
}, 300), document.removeEventListener("keyup", T);
|
|
123
|
+
}, U = () => {
|
|
124
|
+
l("go-to-link");
|
|
125
|
+
}, T = (e) => {
|
|
126
|
+
(e == null ? void 0 : e.key) === "Escape" && K();
|
|
135
127
|
};
|
|
136
|
-
|
|
128
|
+
P(() => {
|
|
137
129
|
if (setTimeout(() => {
|
|
138
|
-
|
|
139
|
-
}, 100),
|
|
140
|
-
const e = new ResizeObserver(
|
|
141
|
-
e.observe(
|
|
130
|
+
x();
|
|
131
|
+
}, 100), v.value) {
|
|
132
|
+
const e = new ResizeObserver(S);
|
|
133
|
+
e.observe(v.value), B(() => e.disconnect());
|
|
142
134
|
}
|
|
143
|
-
if (
|
|
144
|
-
const e = new ResizeObserver(
|
|
145
|
-
e.observe(
|
|
135
|
+
if (m.value) {
|
|
136
|
+
const e = new ResizeObserver(S);
|
|
137
|
+
e.observe(m.value), B(() => e.disconnect());
|
|
146
138
|
}
|
|
147
|
-
window.addEventListener("resize",
|
|
148
|
-
}),
|
|
139
|
+
window.addEventListener("resize", S), B(() => window.removeEventListener("resize", S));
|
|
140
|
+
}), y(() => {
|
|
149
141
|
var e;
|
|
150
|
-
return (e =
|
|
142
|
+
return (e = s.controls) == null ? void 0 : e.call(s);
|
|
151
143
|
}, () => {
|
|
152
144
|
setTimeout(() => {
|
|
153
|
-
|
|
145
|
+
x();
|
|
154
146
|
}, 100);
|
|
155
147
|
}, { deep: !0, immediate: !0 });
|
|
156
|
-
const
|
|
157
|
-
width:
|
|
148
|
+
const A = L(() => ({
|
|
149
|
+
width: V.value
|
|
158
150
|
}));
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
o && (d || g || c || T) && (B.value = {
|
|
167
|
-
position: "fixed",
|
|
168
|
-
top: `${d}px`,
|
|
169
|
-
width: `${c}px`,
|
|
170
|
-
height: `${T}px`,
|
|
171
|
-
transform: `translateX(${C.value})`
|
|
172
|
-
}, s.value = {
|
|
173
|
-
...B.value,
|
|
174
|
-
transition: "none"
|
|
175
|
-
}, setTimeout(() => {
|
|
176
|
-
s.value = {
|
|
177
|
-
top: "0",
|
|
178
|
-
width: C.value,
|
|
179
|
-
height: "100%",
|
|
180
|
-
transform: "translateX(0)",
|
|
181
|
-
transition: "all 0.3s ease-in-out"
|
|
182
|
-
};
|
|
183
|
-
}, 10));
|
|
184
|
-
} else
|
|
185
|
-
w.value = !1, O(), document.removeEventListener("keyup", H), h.value && Object.keys(B.value).length > 0 ? s.value = {
|
|
186
|
-
...B.value,
|
|
187
|
-
transition: "all 0.3s ease-in-out"
|
|
188
|
-
} : s.value = {};
|
|
189
|
-
}, { immediate: !0 }), p(C, (e) => {
|
|
190
|
-
w.value && t.value && s.value && Object.keys(s.value).length > 0 && (s.value = {
|
|
191
|
-
...s.value,
|
|
151
|
+
y(t, (e) => {
|
|
152
|
+
e ? (document.addEventListener("keyup", T), r.value = {}, setTimeout(() => {
|
|
153
|
+
o.value = !0, E(), x();
|
|
154
|
+
}, 10)) : (o.value = !1, E(), document.removeEventListener("keyup", T), r.value = {});
|
|
155
|
+
}, { immediate: !0 }), y(V, (e) => {
|
|
156
|
+
o.value && t.value && r.value && Object.keys(r.value).length > 0 && (r.value = {
|
|
157
|
+
...r.value,
|
|
192
158
|
width: e,
|
|
193
159
|
transition: "none"
|
|
194
160
|
// No animation for resize
|
|
195
161
|
}, setTimeout(() => {
|
|
196
|
-
|
|
197
|
-
...
|
|
162
|
+
r.value && Object.keys(r.value).length > 0 && (r.value = {
|
|
163
|
+
...r.value,
|
|
198
164
|
transition: "all 0.3s ease-in-out"
|
|
199
165
|
});
|
|
200
166
|
}, 50));
|
|
201
167
|
});
|
|
202
|
-
const
|
|
203
|
-
if (typeof
|
|
168
|
+
const M = () => {
|
|
169
|
+
if (typeof a.value == "object" && C.value) {
|
|
204
170
|
const e = "side-sheet-styles";
|
|
205
171
|
let n = document.getElementById(e);
|
|
206
172
|
n || (n = document.createElement("style"), n.id = e, document.head.appendChild(n));
|
|
207
|
-
const
|
|
173
|
+
const u = {
|
|
208
174
|
sm: "640px",
|
|
209
175
|
md: "768px",
|
|
210
176
|
lg: "1024px",
|
|
211
177
|
xl: "1280px",
|
|
212
178
|
"2xl": "1536px"
|
|
213
|
-
},
|
|
214
|
-
const
|
|
215
|
-
return
|
|
216
|
-
}).map((
|
|
217
|
-
@media (min-width: ${
|
|
218
|
-
#side-sheet-${
|
|
219
|
-
width: ${
|
|
179
|
+
}, R = Object.keys(a.value).filter((h) => h !== "default").sort((h, G) => {
|
|
180
|
+
const D = ["sm", "md", "lg", "xl", "2xl"];
|
|
181
|
+
return D.indexOf(h) - D.indexOf(G);
|
|
182
|
+
}).map((h) => `
|
|
183
|
+
@media (min-width: ${u[h]}) {
|
|
184
|
+
#side-sheet-${i.trackEventCategory || "default"} {
|
|
185
|
+
width: ${a.value[h]} !important;
|
|
220
186
|
}
|
|
221
187
|
}
|
|
222
188
|
`).join("");
|
|
223
|
-
n.textContent =
|
|
189
|
+
n.textContent = R, C.value.id = `side-sheet-${i.trackEventCategory || "default"}`, B(() => {
|
|
224
190
|
n && n.remove();
|
|
225
191
|
});
|
|
226
192
|
}
|
|
227
193
|
};
|
|
228
|
-
return
|
|
229
|
-
|
|
230
|
-
}, { immediate: !0 }),
|
|
231
|
-
e &&
|
|
194
|
+
return y(a, () => {
|
|
195
|
+
o.value && M();
|
|
196
|
+
}, { immediate: !0 }), y(o, (e) => {
|
|
197
|
+
e && M();
|
|
232
198
|
}), {
|
|
233
|
-
closeSideSheet:
|
|
234
|
-
contentHeight:
|
|
235
|
-
controlsRef:
|
|
236
|
-
headlineRef:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
open: w
|
|
199
|
+
closeSideSheet: K,
|
|
200
|
+
contentHeight: I,
|
|
201
|
+
controlsRef: v,
|
|
202
|
+
headlineRef: m,
|
|
203
|
+
sideSheetRef: C,
|
|
204
|
+
sideSheetStyles: A,
|
|
205
|
+
goToLink: U,
|
|
206
|
+
mdiArrowLeft: $,
|
|
207
|
+
mdiClose: ee,
|
|
208
|
+
mdiExportVariant: te,
|
|
209
|
+
modalStyles: r,
|
|
210
|
+
open: o
|
|
246
211
|
};
|
|
247
212
|
}
|
|
248
|
-
},
|
|
249
|
-
function
|
|
250
|
-
const
|
|
251
|
-
return
|
|
213
|
+
}, le = { class: "tw-flex tw-gap-1.5" }, se = { key: 1 }, ae = { class: "tw-flex tw-gap-1.5" };
|
|
214
|
+
function re(i, l, s, t, H, z) {
|
|
215
|
+
const a = Q("kv-material-icon");
|
|
216
|
+
return s.visible ? (g(), p("div", {
|
|
252
217
|
key: 0,
|
|
253
|
-
class:
|
|
218
|
+
class: k(["tw-block lg:tw-mt-0 tw-fixed tw-inset-0 tw-bg-black tw-transition-all md:tw-duration-150 tw-z-modal", {
|
|
254
219
|
"tw-bg-opacity-0 tw-delay-300": !t.open,
|
|
255
220
|
"tw-bg-opacity-low": t.open
|
|
256
221
|
}]),
|
|
257
|
-
onClick:
|
|
222
|
+
onClick: l[3] || (l[3] = X((...o) => t.closeSideSheet && t.closeSideSheet(...o), ["self"]))
|
|
258
223
|
}, [
|
|
259
|
-
|
|
224
|
+
c("div", {
|
|
260
225
|
ref: "sideSheetRef",
|
|
261
|
-
class:
|
|
226
|
+
class: k(["tw-fixed tw-right-0 tw-transition-all tw-duration-300 tw-bg-white tw-overflow-y-auto", {
|
|
262
227
|
"tw-translate-x-full": !t.open,
|
|
263
228
|
"tw-translate-x-0": t.open,
|
|
264
|
-
"tw-h-full":
|
|
229
|
+
"tw-h-full": i.$slots.controls
|
|
265
230
|
}]),
|
|
266
|
-
style:
|
|
231
|
+
style: j(t.sideSheetStyles)
|
|
267
232
|
}, [
|
|
268
|
-
|
|
233
|
+
c("div", {
|
|
269
234
|
class: "tw-flex tw-flex-col tw-h-full",
|
|
270
|
-
style:
|
|
235
|
+
style: j(t.modalStyles)
|
|
271
236
|
}, [
|
|
272
|
-
|
|
237
|
+
c("div", {
|
|
273
238
|
ref: "headlineRef",
|
|
274
|
-
class:
|
|
239
|
+
class: k(["tw-flex tw-justify-between tw-transition-opacity tw-duration-200 tw-px-3 tw-py-2 tw-border-tertiary", {
|
|
275
240
|
"tw-opacity-0": !t.open,
|
|
276
241
|
"tw-opacity-full": t.open,
|
|
277
|
-
"tw-border-b":
|
|
242
|
+
"tw-border-b": s.showHeadlineBorder
|
|
278
243
|
}])
|
|
279
244
|
}, [
|
|
280
|
-
|
|
281
|
-
|
|
245
|
+
c("div", le, [
|
|
246
|
+
s.showBackButton ? (g(), p("button", {
|
|
282
247
|
key: 0,
|
|
283
248
|
class: "hover:tw-text-action-highlight tw-flex tw-items-center tw-justify-center",
|
|
284
|
-
onClick:
|
|
249
|
+
onClick: l[0] || (l[0] = (...o) => t.closeSideSheet && t.closeSideSheet(...o))
|
|
285
250
|
}, [
|
|
286
|
-
|
|
251
|
+
O(a, {
|
|
287
252
|
class: "tw-w-3 tw-h-3",
|
|
288
253
|
icon: t.mdiArrowLeft
|
|
289
254
|
}, null, 8, ["icon"])
|
|
290
|
-
])) :
|
|
291
|
-
|
|
255
|
+
])) : b("", !0),
|
|
256
|
+
s.headline ? (g(), p("h2", se, Y(s.headline), 1)) : b("", !0)
|
|
292
257
|
]),
|
|
293
|
-
|
|
294
|
-
|
|
258
|
+
c("div", ae, [
|
|
259
|
+
s.showGoToLink ? (g(), p("button", {
|
|
295
260
|
key: 0,
|
|
296
261
|
class: "hover:tw-text-action-highlight tw-flex tw-items-center tw-justify-center",
|
|
297
|
-
onClick:
|
|
262
|
+
onClick: l[1] || (l[1] = (...o) => t.goToLink && t.goToLink(...o))
|
|
298
263
|
}, [
|
|
299
|
-
|
|
264
|
+
O(a, {
|
|
300
265
|
class: "tw-w-3 tw-h-3",
|
|
301
266
|
icon: t.mdiExportVariant
|
|
302
267
|
}, null, 8, ["icon"])
|
|
303
|
-
])) :
|
|
304
|
-
|
|
268
|
+
])) : b("", !0),
|
|
269
|
+
c("button", {
|
|
305
270
|
class: "hover:tw-text-action-highlight tw-flex tw-items-center tw-justify-center",
|
|
306
|
-
onClick:
|
|
271
|
+
onClick: l[2] || (l[2] = (...o) => t.closeSideSheet && t.closeSideSheet(...o))
|
|
307
272
|
}, [
|
|
308
|
-
|
|
273
|
+
O(a, {
|
|
309
274
|
class: "tw-w-3 tw-h-3",
|
|
310
275
|
icon: t.mdiClose
|
|
311
276
|
}, null, 8, ["icon"])
|
|
312
277
|
])
|
|
313
278
|
])
|
|
314
279
|
], 2),
|
|
315
|
-
|
|
280
|
+
c("div", {
|
|
316
281
|
id: "sidesheet-content",
|
|
317
|
-
ref: "contentRef",
|
|
318
282
|
class: "tw-overflow-y-auto tw-overscroll-y-contain",
|
|
319
|
-
style:
|
|
283
|
+
style: j({ height: t.contentHeight + "px" })
|
|
320
284
|
}, [
|
|
321
|
-
|
|
322
|
-
class:
|
|
285
|
+
c("div", {
|
|
286
|
+
class: k(["tw-p-2 tw-transition-opacity tw-duration-200", {
|
|
323
287
|
"tw-opacity-0": !t.open,
|
|
324
288
|
"tw-opacity-full": t.open
|
|
325
289
|
}])
|
|
326
290
|
}, [
|
|
327
|
-
|
|
291
|
+
F(i.$slots, "default")
|
|
328
292
|
], 2)
|
|
329
293
|
], 4),
|
|
330
|
-
|
|
294
|
+
i.$slots.controls ? (g(), p("div", {
|
|
331
295
|
key: 0,
|
|
332
296
|
ref: "controlsRef",
|
|
333
|
-
class:
|
|
297
|
+
class: k(["tw-absolute tw-bottom-0 tw-w-full tw-border-t tw-border-tertiary tw-bg-white tw-transition-opacity tw-duration-200", {
|
|
334
298
|
"tw-opacity-0": !t.open,
|
|
335
299
|
"tw-opacity-full": t.open
|
|
336
300
|
}]),
|
|
337
301
|
style: { "z-index": "999" }
|
|
338
302
|
}, [
|
|
339
|
-
|
|
340
|
-
], 2)) :
|
|
303
|
+
F(i.$slots, "controls")
|
|
304
|
+
], 2)) : b("", !0)
|
|
341
305
|
], 4)
|
|
342
306
|
], 6)
|
|
343
|
-
], 2)) :
|
|
307
|
+
], 2)) : b("", !0);
|
|
344
308
|
}
|
|
345
|
-
const
|
|
309
|
+
const fe = /* @__PURE__ */ ne(ie, [["render", re]]);
|
|
346
310
|
export {
|
|
347
|
-
|
|
311
|
+
fe as default
|
|
348
312
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kiva/kv-components",
|
|
3
|
-
"version": "6.22.
|
|
3
|
+
"version": "6.22.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -111,5 +111,5 @@
|
|
|
111
111
|
"embla-carousel-fade",
|
|
112
112
|
"popper.js"
|
|
113
113
|
],
|
|
114
|
-
"gitHead": "
|
|
114
|
+
"gitHead": "079961c26fef494054039c190cfc249fa8109f74"
|
|
115
115
|
}
|