@prefabs.tech/vue3-layout 0.32.0 → 0.33.1

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.
Files changed (41) hide show
  1. package/README.md +31 -32
  2. package/dist/PrefabsTechVue3Layout.es.js +1595 -18
  3. package/dist/PrefabsTechVue3Layout.umd.js +1 -1
  4. package/dist/src/Layout.vue.d.ts +8 -5
  5. package/dist/src/Layout.vue.d.ts.map +1 -1
  6. package/dist/src/components/AppFooter.vue.d.ts +9 -6
  7. package/dist/src/components/AppFooter.vue.d.ts.map +1 -1
  8. package/dist/src/components/AppHeader.vue.d.ts +15 -9
  9. package/dist/src/components/AppHeader.vue.d.ts.map +1 -1
  10. package/dist/src/components/Copyright.vue.d.ts +3 -2
  11. package/dist/src/components/Copyright.vue.d.ts.map +1 -1
  12. package/dist/src/components/Logo.vue.d.ts +5 -4
  13. package/dist/src/components/Logo.vue.d.ts.map +1 -1
  14. package/dist/src/components/MainMenu.vue.d.ts +5 -4
  15. package/dist/src/components/MainMenu.vue.d.ts.map +1 -1
  16. package/dist/src/components/NavMenu.vue.d.ts +7 -4
  17. package/dist/src/components/NavMenu.vue.d.ts.map +1 -1
  18. package/dist/src/components/NavMenuItem.vue.d.ts +7 -6
  19. package/dist/src/components/NavMenuItem.vue.d.ts.map +1 -1
  20. package/dist/src/components/Sidebar.vue.d.ts +34 -12
  21. package/dist/src/components/Sidebar.vue.d.ts.map +1 -1
  22. package/dist/src/components/StickyCollapsibleFooter.vue.d.ts +5 -4
  23. package/dist/src/components/StickyCollapsibleFooter.vue.d.ts.map +1 -1
  24. package/dist/src/index.d.ts +3 -3
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/layouts/BasicLayout.vue.d.ts +25 -14
  27. package/dist/src/layouts/BasicLayout.vue.d.ts.map +1 -1
  28. package/dist/src/layouts/NullLayout.vue.d.ts +2 -1
  29. package/dist/src/layouts/NullLayout.vue.d.ts.map +1 -1
  30. package/dist/src/layouts/SidebarHeaderLayout.vue.d.ts +26 -21
  31. package/dist/src/layouts/SidebarHeaderLayout.vue.d.ts.map +1 -1
  32. package/dist/src/layouts/SidebarOnlyLayout.vue.d.ts +22 -12
  33. package/dist/src/layouts/SidebarOnlyLayout.vue.d.ts.map +1 -1
  34. package/dist/src/types/config.d.ts +1 -1
  35. package/dist/src/types/config.d.ts.map +1 -1
  36. package/dist/src/types/menu.d.ts +3 -3
  37. package/dist/src/types/menu.d.ts.map +1 -1
  38. package/dist/vue3-layout.css +2 -1
  39. package/package.json +36 -29
  40. package/dist/NavMenuItem-faWUzlfY.js +0 -4
  41. package/dist/index-DwdGhXMf.js +0 -1941
@@ -1,19 +1,1596 @@
1
- import { a as t, b as r, c as i, d as p, e as u, f as l, g as y, N as d, h as L, i as b, j as n, k as S, p as c, u as f } from "./index-DwdGhXMf.js";
2
- import "@prefabs.tech/vue3-i18n";
3
- import "vue";
4
- export {
5
- t as AppFooter,
6
- r as AppHeader,
7
- i as BasicLayout,
8
- p as Copyright,
9
- u as Layout,
10
- l as Logo,
11
- y as MainMenu,
12
- d as NullLayout,
13
- L as Sidebar,
14
- b as SidebarHeaderLayout,
15
- n as SidebarOnlyLayout,
16
- S as StickyCollapsibleFooter,
17
- c as default,
18
- f as useTranslations
1
+ import { LocaleSwitcher as e, prependMessages as t, useI18n as n } from "@prefabs.tech/vue3-i18n";
2
+ import { Fragment as r, Transition as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createSlots as u, createTextVNode as d, createVNode as f, defineAsyncComponent as p, defineComponent as m, h, inject as g, markRaw as _, nextTick as v, normalizeClass as y, onMounted as b, onUnmounted as x, openBlock as S, ref as C, renderList as w, renderSlot as T, resolveComponent as ee, resolveDynamicComponent as te, shallowRef as ne, toDisplayString as E, unref as D, useSlots as re, vShow as ie, watch as O, withCtx as k, withDirectives as ae } from "vue";
3
+ import { useConfig as A } from "@prefabs.tech/vue3-config";
4
+ import { useWindowSize as j } from "@vueuse/core";
5
+ import { ResponsiveMenu as oe } from "@prefabs.tech/vue3-ui";
6
+ import { useRoute as M, useRouter as se } from "vue-router";
7
+ //#region \0rolldown/runtime.js
8
+ var ce = Object.defineProperty, le = (e, t) => {
9
+ let n = {};
10
+ for (var r in e) ce(n, r, {
11
+ get: e[r],
12
+ enumerable: !0
13
+ });
14
+ return t || ce(n, Symbol.toStringTag, { value: "Module" }), n;
15
+ }, ue = { class: "copyright" }, de = ["href"], fe = /* @__PURE__ */ m({
16
+ name: "Copyright",
17
+ props: {
18
+ holder: {
19
+ required: !0,
20
+ type: String
21
+ },
22
+ showDisclaimer: Boolean,
23
+ url: {
24
+ required: !0,
25
+ type: String
26
+ }
27
+ },
28
+ setup(e) {
29
+ let t = e, { t: r } = n({ messages: Dn() }), i = a(() => t.showDisclaimer ? r("copyright.disclaimer") : null), o = (/* @__PURE__ */ new Date()).getFullYear();
30
+ return (t, n) => (S(), c("div", ue, [
31
+ d(" © " + E(D(o)) + " ", 1),
32
+ l("a", {
33
+ href: e.url,
34
+ target: "_blank"
35
+ }, E(e.holder), 9, de),
36
+ d("\xA0 " + E(i.value), 1)
37
+ ]));
38
+ }
39
+ }), pe = { class: "version" }, N = /* @__PURE__ */ m({
40
+ name: "AppFooter",
41
+ setup(e) {
42
+ let t = A();
43
+ return (e, n) => (S(), c("footer", null, [
44
+ T(e.$slots, "copyright", {}, () => [D(t)?.copyright ? (S(), o(fe, {
45
+ key: 0,
46
+ holder: D(t).copyright.holder,
47
+ url: D(t).copyright.url
48
+ }, null, 8, ["holder", "url"])) : s("", !0)]),
49
+ T(e.$slots, "social"),
50
+ T(e.$slots, "version", {}, () => [l("div", pe, E(D(t).appVersion), 1)])
51
+ ]));
52
+ }
53
+ }), me = /^[a-z0-9]+(-[a-z0-9]+)*$/, P = (e, t, n, r = "") => {
54
+ let i = e.split(":");
55
+ if (e.slice(0, 1) === "@") {
56
+ if (i.length < 2 || i.length > 3) return null;
57
+ r = i.shift().slice(1);
58
+ }
59
+ if (i.length > 3 || !i.length) return null;
60
+ if (i.length > 1) {
61
+ let e = i.pop(), n = i.pop(), a = {
62
+ provider: i.length > 0 ? i[0] : r,
63
+ prefix: n,
64
+ name: e
65
+ };
66
+ return t && !F(a) ? null : a;
67
+ }
68
+ let a = i[0], o = a.split("-");
69
+ if (o.length > 1) {
70
+ let e = {
71
+ provider: r,
72
+ prefix: o.shift(),
73
+ name: o.join("-")
74
+ };
75
+ return t && !F(e) ? null : e;
76
+ }
77
+ if (n && r === "") {
78
+ let e = {
79
+ provider: r,
80
+ prefix: "",
81
+ name: a
82
+ };
83
+ return t && !F(e, n) ? null : e;
84
+ }
85
+ return null;
86
+ }, F = (e, t) => e ? !!((t && e.prefix === "" || e.prefix) && e.name) : !1;
87
+ function he(e, t) {
88
+ let n = e.icons, r = e.aliases || Object.create(null), i = Object.create(null);
89
+ function a(e) {
90
+ if (n[e]) return i[e] = [];
91
+ if (!(e in i)) {
92
+ i[e] = null;
93
+ let t = r[e] && r[e].parent, n = t && a(t);
94
+ n && (i[e] = [t].concat(n));
95
+ }
96
+ return i[e];
97
+ }
98
+ return Object.keys(n).concat(Object.keys(r)).forEach(a), i;
99
+ }
100
+ var ge = Object.freeze({
101
+ left: 0,
102
+ top: 0,
103
+ width: 16,
104
+ height: 16
105
+ }), I = Object.freeze({
106
+ rotate: 0,
107
+ vFlip: !1,
108
+ hFlip: !1
109
+ }), L = Object.freeze({
110
+ ...ge,
111
+ ...I
112
+ }), R = Object.freeze({
113
+ ...L,
114
+ body: "",
115
+ hidden: !1
116
+ });
117
+ function _e(e, t) {
118
+ let n = {};
119
+ !e.hFlip != !t.hFlip && (n.hFlip = !0), !e.vFlip != !t.vFlip && (n.vFlip = !0);
120
+ let r = ((e.rotate || 0) + (t.rotate || 0)) % 4;
121
+ return r && (n.rotate = r), n;
122
+ }
123
+ function ve(e, t) {
124
+ let n = _e(e, t);
125
+ for (let r in R) r in I ? r in e && !(r in n) && (n[r] = I[r]) : r in t ? n[r] = t[r] : r in e && (n[r] = e[r]);
126
+ return n;
127
+ }
128
+ function ye(e, t, n) {
129
+ let r = e.icons, i = e.aliases || Object.create(null), a = {};
130
+ function o(e) {
131
+ a = ve(r[e] || i[e], a);
132
+ }
133
+ return o(t), n.forEach(o), ve(e, a);
134
+ }
135
+ function be(e, t) {
136
+ let n = [];
137
+ if (typeof e != "object" || typeof e.icons != "object") return n;
138
+ e.not_found instanceof Array && e.not_found.forEach((e) => {
139
+ t(e, null), n.push(e);
140
+ });
141
+ let r = he(e);
142
+ for (let i in r) {
143
+ let a = r[i];
144
+ a && (t(i, ye(e, i, a)), n.push(i));
145
+ }
146
+ return n;
147
+ }
148
+ var xe = {
149
+ provider: "",
150
+ aliases: {},
151
+ not_found: {},
152
+ ...ge
19
153
  };
154
+ function z(e, t) {
155
+ for (let n in t) if (n in e && typeof e[n] != typeof t[n]) return !1;
156
+ return !0;
157
+ }
158
+ function Se(e) {
159
+ if (typeof e != "object" || !e) return null;
160
+ let t = e;
161
+ if (typeof t.prefix != "string" || !e.icons || typeof e.icons != "object" || !z(e, xe)) return null;
162
+ let n = t.icons;
163
+ for (let e in n) {
164
+ let t = n[e];
165
+ if (!e || typeof t.body != "string" || !z(t, R)) return null;
166
+ }
167
+ let r = t.aliases || Object.create(null);
168
+ for (let e in r) {
169
+ let t = r[e], i = t.parent;
170
+ if (!e || typeof i != "string" || !n[i] && !r[i] || !z(t, R)) return null;
171
+ }
172
+ return t;
173
+ }
174
+ var Ce = Object.create(null);
175
+ function we(e, t) {
176
+ return {
177
+ provider: e,
178
+ prefix: t,
179
+ icons: Object.create(null),
180
+ missing: /* @__PURE__ */ new Set()
181
+ };
182
+ }
183
+ function B(e, t) {
184
+ let n = Ce[e] || (Ce[e] = Object.create(null));
185
+ return n[t] || (n[t] = we(e, t));
186
+ }
187
+ function Te(e, t) {
188
+ return Se(t) ? be(t, (t, n) => {
189
+ n ? e.icons[t] = n : e.missing.add(t);
190
+ }) : [];
191
+ }
192
+ function Ee(e, t, n) {
193
+ try {
194
+ if (typeof n.body == "string") return e.icons[t] = { ...n }, !0;
195
+ } catch {}
196
+ return !1;
197
+ }
198
+ var V = !1;
199
+ function De(e) {
200
+ return typeof e == "boolean" && (V = e), V;
201
+ }
202
+ function Oe(e) {
203
+ let t = typeof e == "string" ? P(e, !0, V) : e;
204
+ if (t) {
205
+ let e = B(t.provider, t.prefix), n = t.name;
206
+ return e.icons[n] || (e.missing.has(n) ? null : void 0);
207
+ }
208
+ }
209
+ function ke(e, t) {
210
+ let n = P(e, !0, V);
211
+ if (!n) return !1;
212
+ let r = B(n.provider, n.prefix);
213
+ return t ? Ee(r, n.name, t) : (r.missing.add(n.name), !0);
214
+ }
215
+ function Ae(e, t) {
216
+ if (typeof e != "object") return !1;
217
+ if (typeof t != "string" && (t = e.provider || ""), V && !t && !e.prefix) {
218
+ let t = !1;
219
+ return Se(e) && (e.prefix = "", be(e, (e, n) => {
220
+ ke(e, n) && (t = !0);
221
+ })), t;
222
+ }
223
+ let n = e.prefix;
224
+ return F({
225
+ prefix: n,
226
+ name: "a"
227
+ }) ? !!Te(B(t, n), e) : !1;
228
+ }
229
+ var je = Object.freeze({
230
+ width: null,
231
+ height: null
232
+ }), Me = Object.freeze({
233
+ ...je,
234
+ ...I
235
+ }), Ne = /(-?[0-9.]*[0-9]+[0-9.]*)/g, Pe = /^-?[0-9.]*[0-9]+[0-9.]*$/g;
236
+ function Fe(e, t, n) {
237
+ if (t === 1) return e;
238
+ if (n ||= 100, typeof e == "number") return Math.ceil(e * t * n) / n;
239
+ if (typeof e != "string") return e;
240
+ let r = e.split(Ne);
241
+ if (r === null || !r.length) return e;
242
+ let i = [], a = r.shift(), o = Pe.test(a);
243
+ for (;;) {
244
+ if (o) {
245
+ let e = parseFloat(a);
246
+ isNaN(e) ? i.push(a) : i.push(Math.ceil(e * t * n) / n);
247
+ } else i.push(a);
248
+ if (a = r.shift(), a === void 0) return i.join("");
249
+ o = !o;
250
+ }
251
+ }
252
+ function Ie(e, t = "defs") {
253
+ let n = "", r = e.indexOf("<" + t);
254
+ for (; r >= 0;) {
255
+ let i = e.indexOf(">", r), a = e.indexOf("</" + t);
256
+ if (i === -1 || a === -1) break;
257
+ let o = e.indexOf(">", a);
258
+ if (o === -1) break;
259
+ n += e.slice(i + 1, a).trim(), e = e.slice(0, r).trim() + e.slice(o + 1);
260
+ }
261
+ return {
262
+ defs: n,
263
+ content: e
264
+ };
265
+ }
266
+ function Le(e, t) {
267
+ return e ? "<defs>" + e + "</defs>" + t : t;
268
+ }
269
+ function Re(e, t, n) {
270
+ let r = Ie(e);
271
+ return Le(r.defs, t + r.content + n);
272
+ }
273
+ var ze = (e) => e === "unset" || e === "undefined" || e === "none";
274
+ function Be(e, t) {
275
+ let n = {
276
+ ...L,
277
+ ...e
278
+ }, r = {
279
+ ...Me,
280
+ ...t
281
+ }, i = {
282
+ left: n.left,
283
+ top: n.top,
284
+ width: n.width,
285
+ height: n.height
286
+ }, a = n.body;
287
+ [n, r].forEach((e) => {
288
+ let t = [], n = e.hFlip, r = e.vFlip, o = e.rotate;
289
+ n ? r ? o += 2 : (t.push("translate(" + (i.width + i.left).toString() + " " + (0 - i.top).toString() + ")"), t.push("scale(-1 1)"), i.top = i.left = 0) : r && (t.push("translate(" + (0 - i.left).toString() + " " + (i.height + i.top).toString() + ")"), t.push("scale(1 -1)"), i.top = i.left = 0);
290
+ let s;
291
+ switch (o < 0 && (o -= Math.floor(o / 4) * 4), o %= 4, o) {
292
+ case 1:
293
+ s = i.height / 2 + i.top, t.unshift("rotate(90 " + s.toString() + " " + s.toString() + ")");
294
+ break;
295
+ case 2:
296
+ t.unshift("rotate(180 " + (i.width / 2 + i.left).toString() + " " + (i.height / 2 + i.top).toString() + ")");
297
+ break;
298
+ case 3:
299
+ s = i.width / 2 + i.left, t.unshift("rotate(-90 " + s.toString() + " " + s.toString() + ")");
300
+ break;
301
+ }
302
+ o % 2 == 1 && (i.left !== i.top && (s = i.left, i.left = i.top, i.top = s), i.width !== i.height && (s = i.width, i.width = i.height, i.height = s)), t.length && (a = Re(a, "<g transform=\"" + t.join(" ") + "\">", "</g>"));
303
+ });
304
+ let o = r.width, s = r.height, c = i.width, l = i.height, u, d;
305
+ o === null ? (d = s === null ? "1em" : s === "auto" ? l : s, u = Fe(d, c / l)) : (u = o === "auto" ? c : o, d = s === null ? Fe(u, l / c) : s === "auto" ? l : s);
306
+ let f = {}, p = (e, t) => {
307
+ ze(t) || (f[e] = t.toString());
308
+ };
309
+ p("width", u), p("height", d);
310
+ let m = [
311
+ i.left,
312
+ i.top,
313
+ c,
314
+ l
315
+ ];
316
+ return f.viewBox = m.join(" "), {
317
+ attributes: f,
318
+ viewBox: m,
319
+ body: a
320
+ };
321
+ }
322
+ var Ve = /\sid="(\S+)"/g, He = /* @__PURE__ */ new Map();
323
+ function Ue(e) {
324
+ e = e.replace(/[0-9]+$/, "") || "a";
325
+ let t = He.get(e) || 0;
326
+ return He.set(e, t + 1), t ? `${e}${t}` : e;
327
+ }
328
+ function We(e) {
329
+ let t = [], n;
330
+ for (; n = Ve.exec(e);) t.push(n[1]);
331
+ if (!t.length) return e;
332
+ let r = "suffix" + (Math.random() * 16777216 | Date.now()).toString(16);
333
+ return t.forEach((t) => {
334
+ let n = Ue(t), i = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
335
+ e = e.replace(RegExp("([#;\"])(" + i + ")([\")]|\\.[a-z])", "g"), "$1" + n + r + "$3");
336
+ }), e = e.replace(new RegExp(r, "g"), ""), e;
337
+ }
338
+ var H = Object.create(null);
339
+ function Ge(e, t) {
340
+ H[e] = t;
341
+ }
342
+ function U(e) {
343
+ return H[e] || H[""];
344
+ }
345
+ function W(e) {
346
+ let t;
347
+ if (typeof e.resources == "string") t = [e.resources];
348
+ else if (t = e.resources, !(t instanceof Array) || !t.length) return null;
349
+ return {
350
+ resources: t,
351
+ path: e.path || "/",
352
+ maxURL: e.maxURL || 500,
353
+ rotate: e.rotate || 750,
354
+ timeout: e.timeout || 5e3,
355
+ random: e.random === !0,
356
+ index: e.index || 0,
357
+ dataAfterTimeout: e.dataAfterTimeout !== !1
358
+ };
359
+ }
360
+ for (var G = Object.create(null), K = ["https://api.simplesvg.com", "https://api.unisvg.com"], q = []; K.length > 0;) K.length === 1 || Math.random() > .5 ? q.push(K.shift()) : q.push(K.pop());
361
+ G[""] = W({ resources: ["https://api.iconify.design"].concat(q) });
362
+ function Ke(e, t) {
363
+ let n = W(t);
364
+ return n === null ? !1 : (G[e] = n, !0);
365
+ }
366
+ function J(e) {
367
+ return G[e];
368
+ }
369
+ var qe = (() => {
370
+ let e;
371
+ try {
372
+ if (e = fetch, typeof e == "function") return e;
373
+ } catch {}
374
+ })();
375
+ function Je(e, t) {
376
+ let n = J(e);
377
+ if (!n) return 0;
378
+ let r;
379
+ if (!n.maxURL) r = 0;
380
+ else {
381
+ let e = 0;
382
+ n.resources.forEach((t) => {
383
+ e = Math.max(e, t.length);
384
+ });
385
+ let i = t + ".json?icons=";
386
+ r = n.maxURL - e - n.path.length - i.length;
387
+ }
388
+ return r;
389
+ }
390
+ function Ye(e) {
391
+ return e === 404;
392
+ }
393
+ var Xe = (e, t, n) => {
394
+ let r = [], i = Je(e, t), a = "icons", o = {
395
+ type: a,
396
+ provider: e,
397
+ prefix: t,
398
+ icons: []
399
+ }, s = 0;
400
+ return n.forEach((n, c) => {
401
+ s += n.length + 1, s >= i && c > 0 && (r.push(o), o = {
402
+ type: a,
403
+ provider: e,
404
+ prefix: t,
405
+ icons: []
406
+ }, s = n.length), o.icons.push(n);
407
+ }), r.push(o), r;
408
+ };
409
+ function Ze(e) {
410
+ if (typeof e == "string") {
411
+ let t = J(e);
412
+ if (t) return t.path;
413
+ }
414
+ return "/";
415
+ }
416
+ var Qe = {
417
+ prepare: Xe,
418
+ send: (e, t, n) => {
419
+ if (!qe) {
420
+ n("abort", 424);
421
+ return;
422
+ }
423
+ let r = Ze(t.provider);
424
+ switch (t.type) {
425
+ case "icons": {
426
+ let e = t.prefix, n = t.icons.join(","), i = new URLSearchParams({ icons: n });
427
+ r += e + ".json?" + i.toString();
428
+ break;
429
+ }
430
+ case "custom": {
431
+ let e = t.uri;
432
+ r += e.slice(0, 1) === "/" ? e.slice(1) : e;
433
+ break;
434
+ }
435
+ default:
436
+ n("abort", 400);
437
+ return;
438
+ }
439
+ let i = 503;
440
+ qe(e + r).then((e) => {
441
+ let t = e.status;
442
+ if (t !== 200) {
443
+ setTimeout(() => {
444
+ n(Ye(t) ? "abort" : "next", t);
445
+ });
446
+ return;
447
+ }
448
+ return i = 501, e.json();
449
+ }).then((e) => {
450
+ if (typeof e != "object" || !e) {
451
+ setTimeout(() => {
452
+ e === 404 ? n("abort", e) : n("next", i);
453
+ });
454
+ return;
455
+ }
456
+ setTimeout(() => {
457
+ n("success", e);
458
+ });
459
+ }).catch(() => {
460
+ n("next", i);
461
+ });
462
+ }
463
+ };
464
+ function $e(e, t) {
465
+ e.forEach((e) => {
466
+ let n = e.loaderCallbacks;
467
+ n && (e.loaderCallbacks = n.filter((e) => e.id !== t));
468
+ });
469
+ }
470
+ function et(e) {
471
+ e.pendingCallbacksFlag || (e.pendingCallbacksFlag = !0, setTimeout(() => {
472
+ e.pendingCallbacksFlag = !1;
473
+ let t = e.loaderCallbacks ? e.loaderCallbacks.slice(0) : [];
474
+ if (!t.length) return;
475
+ let n = !1, r = e.provider, i = e.prefix;
476
+ t.forEach((t) => {
477
+ let a = t.icons, o = a.pending.length;
478
+ a.pending = a.pending.filter((t) => {
479
+ if (t.prefix !== i) return !0;
480
+ let o = t.name;
481
+ if (e.icons[o]) a.loaded.push({
482
+ provider: r,
483
+ prefix: i,
484
+ name: o
485
+ });
486
+ else if (e.missing.has(o)) a.missing.push({
487
+ provider: r,
488
+ prefix: i,
489
+ name: o
490
+ });
491
+ else return n = !0, !0;
492
+ return !1;
493
+ }), a.pending.length !== o && (n || $e([e], t.id), t.callback(a.loaded.slice(0), a.missing.slice(0), a.pending.slice(0), t.abort));
494
+ });
495
+ }));
496
+ }
497
+ var tt = 0;
498
+ function nt(e, t, n) {
499
+ let r = tt++, i = $e.bind(null, n, r);
500
+ if (!t.pending.length) return i;
501
+ let a = {
502
+ id: r,
503
+ icons: t,
504
+ callback: e,
505
+ abort: i
506
+ };
507
+ return n.forEach((e) => {
508
+ (e.loaderCallbacks ||= []).push(a);
509
+ }), i;
510
+ }
511
+ function rt(e) {
512
+ let t = {
513
+ loaded: [],
514
+ missing: [],
515
+ pending: []
516
+ }, n = Object.create(null);
517
+ e.sort((e, t) => e.provider === t.provider ? e.prefix === t.prefix ? e.name.localeCompare(t.name) : e.prefix.localeCompare(t.prefix) : e.provider.localeCompare(t.provider));
518
+ let r = {
519
+ provider: "",
520
+ prefix: "",
521
+ name: ""
522
+ };
523
+ return e.forEach((e) => {
524
+ if (r.name === e.name && r.prefix === e.prefix && r.provider === e.provider) return;
525
+ r = e;
526
+ let i = e.provider, a = e.prefix, o = e.name, s = n[i] || (n[i] = Object.create(null)), c = s[a] || (s[a] = B(i, a)), l;
527
+ l = o in c.icons ? t.loaded : a === "" || c.missing.has(o) ? t.missing : t.pending;
528
+ let u = {
529
+ provider: i,
530
+ prefix: a,
531
+ name: o
532
+ };
533
+ l.push(u);
534
+ }), t;
535
+ }
536
+ function it(e, t = !0, n = !1) {
537
+ let r = [];
538
+ return e.forEach((e) => {
539
+ let i = typeof e == "string" ? P(e, t, n) : e;
540
+ i && r.push(i);
541
+ }), r;
542
+ }
543
+ var at = {
544
+ resources: [],
545
+ index: 0,
546
+ timeout: 2e3,
547
+ rotate: 750,
548
+ random: !1,
549
+ dataAfterTimeout: !1
550
+ };
551
+ function ot(e, t, n, r) {
552
+ let i = e.resources.length, a = e.random ? Math.floor(Math.random() * i) : e.index, o;
553
+ if (e.random) {
554
+ let t = e.resources.slice(0);
555
+ for (o = []; t.length > 1;) {
556
+ let e = Math.floor(Math.random() * t.length);
557
+ o.push(t[e]), t = t.slice(0, e).concat(t.slice(e + 1));
558
+ }
559
+ o = o.concat(t);
560
+ } else o = e.resources.slice(a).concat(e.resources.slice(0, a));
561
+ let s = Date.now(), c = "pending", l = 0, u, d = null, f = [], p = [];
562
+ typeof r == "function" && p.push(r);
563
+ function m() {
564
+ d &&= (clearTimeout(d), null);
565
+ }
566
+ function h() {
567
+ c === "pending" && (c = "aborted"), m(), f.forEach((e) => {
568
+ e.status === "pending" && (e.status = "aborted");
569
+ }), f = [];
570
+ }
571
+ function g(e, t) {
572
+ t && (p = []), typeof e == "function" && p.push(e);
573
+ }
574
+ function _() {
575
+ return {
576
+ startTime: s,
577
+ payload: t,
578
+ status: c,
579
+ queriesSent: l,
580
+ queriesPending: f.length,
581
+ subscribe: g,
582
+ abort: h
583
+ };
584
+ }
585
+ function v() {
586
+ c = "failed", p.forEach((e) => {
587
+ e(void 0, u);
588
+ });
589
+ }
590
+ function y() {
591
+ f.forEach((e) => {
592
+ e.status === "pending" && (e.status = "aborted");
593
+ }), f = [];
594
+ }
595
+ function b(t, n, r) {
596
+ let i = n !== "success";
597
+ switch (f = f.filter((e) => e !== t), c) {
598
+ case "pending": break;
599
+ case "failed":
600
+ if (i || !e.dataAfterTimeout) return;
601
+ break;
602
+ default: return;
603
+ }
604
+ if (n === "abort") {
605
+ u = r, v();
606
+ return;
607
+ }
608
+ if (i) {
609
+ u = r, f.length || (o.length ? x() : v());
610
+ return;
611
+ }
612
+ if (m(), y(), !e.random) {
613
+ let n = e.resources.indexOf(t.resource);
614
+ n !== -1 && n !== e.index && (e.index = n);
615
+ }
616
+ c = "completed", p.forEach((e) => {
617
+ e(r);
618
+ });
619
+ }
620
+ function x() {
621
+ if (c !== "pending") return;
622
+ m();
623
+ let r = o.shift();
624
+ if (r === void 0) {
625
+ if (f.length) {
626
+ d = setTimeout(() => {
627
+ m(), c === "pending" && (y(), v());
628
+ }, e.timeout);
629
+ return;
630
+ }
631
+ v();
632
+ return;
633
+ }
634
+ let i = {
635
+ status: "pending",
636
+ resource: r,
637
+ callback: (e, t) => {
638
+ b(i, e, t);
639
+ }
640
+ };
641
+ f.push(i), l++, d = setTimeout(x, e.rotate), n(r, t, i.callback);
642
+ }
643
+ return setTimeout(x), _;
644
+ }
645
+ function st(e) {
646
+ let t = {
647
+ ...at,
648
+ ...e
649
+ }, n = [];
650
+ function r() {
651
+ n = n.filter((e) => e().status === "pending");
652
+ }
653
+ function i(e, i, a) {
654
+ let o = ot(t, e, i, (e, t) => {
655
+ r(), a && a(e, t);
656
+ });
657
+ return n.push(o), o;
658
+ }
659
+ function a(e) {
660
+ return n.find((t) => e(t)) || null;
661
+ }
662
+ return {
663
+ query: i,
664
+ find: a,
665
+ setIndex: (e) => {
666
+ t.index = e;
667
+ },
668
+ getIndex: () => t.index,
669
+ cleanup: r
670
+ };
671
+ }
672
+ function ct() {}
673
+ var Y = Object.create(null);
674
+ function lt(e) {
675
+ if (!Y[e]) {
676
+ let t = J(e);
677
+ if (!t) return;
678
+ Y[e] = {
679
+ config: t,
680
+ redundancy: st(t)
681
+ };
682
+ }
683
+ return Y[e];
684
+ }
685
+ function ut(e, t, n) {
686
+ let r, i;
687
+ if (typeof e == "string") {
688
+ let t = U(e);
689
+ if (!t) return n(void 0, 424), ct;
690
+ i = t.send;
691
+ let a = lt(e);
692
+ a && (r = a.redundancy);
693
+ } else {
694
+ let t = W(e);
695
+ if (t) {
696
+ r = st(t);
697
+ let n = U(e.resources ? e.resources[0] : "");
698
+ n && (i = n.send);
699
+ }
700
+ }
701
+ return !r || !i ? (n(void 0, 424), ct) : r.query(t, i, n)().abort;
702
+ }
703
+ function dt() {}
704
+ function ft(e) {
705
+ e.iconsLoaderFlag || (e.iconsLoaderFlag = !0, setTimeout(() => {
706
+ e.iconsLoaderFlag = !1, et(e);
707
+ }));
708
+ }
709
+ function pt(e) {
710
+ let t = [], n = [];
711
+ return e.forEach((e) => {
712
+ (e.match(me) ? t : n).push(e);
713
+ }), {
714
+ valid: t,
715
+ invalid: n
716
+ };
717
+ }
718
+ function X(e, t, n) {
719
+ function r() {
720
+ let n = e.pendingIcons;
721
+ t.forEach((t) => {
722
+ n && n.delete(t), e.icons[t] || e.missing.add(t);
723
+ });
724
+ }
725
+ if (n && typeof n == "object") try {
726
+ if (!Te(e, n).length) {
727
+ r();
728
+ return;
729
+ }
730
+ } catch (e) {
731
+ console.error(e);
732
+ }
733
+ r(), ft(e);
734
+ }
735
+ function mt(e, t) {
736
+ e instanceof Promise ? e.then((e) => {
737
+ t(e);
738
+ }).catch(() => {
739
+ t(null);
740
+ }) : t(e);
741
+ }
742
+ function ht(e, t) {
743
+ e.iconsToLoad ? e.iconsToLoad = e.iconsToLoad.concat(t).sort() : e.iconsToLoad = t, e.iconsQueueFlag || (e.iconsQueueFlag = !0, setTimeout(() => {
744
+ e.iconsQueueFlag = !1;
745
+ let { provider: t, prefix: n } = e, r = e.iconsToLoad;
746
+ if (delete e.iconsToLoad, !r || !r.length) return;
747
+ let i = e.loadIcon;
748
+ if (e.loadIcons && (r.length > 1 || !i)) {
749
+ mt(e.loadIcons(r, n, t), (t) => {
750
+ X(e, r, t);
751
+ });
752
+ return;
753
+ }
754
+ if (i) {
755
+ r.forEach((r) => {
756
+ mt(i(r, n, t), (t) => {
757
+ X(e, [r], t ? {
758
+ prefix: n,
759
+ icons: { [r]: t }
760
+ } : null);
761
+ });
762
+ });
763
+ return;
764
+ }
765
+ let { valid: a, invalid: o } = pt(r);
766
+ if (o.length && X(e, o, null), !a.length) return;
767
+ let s = n.match(me) ? U(t) : null;
768
+ if (!s) {
769
+ X(e, a, null);
770
+ return;
771
+ }
772
+ s.prepare(t, n, a).forEach((n) => {
773
+ ut(t, n, (t) => {
774
+ X(e, n.icons, t);
775
+ });
776
+ });
777
+ }));
778
+ }
779
+ var gt = (e, t) => {
780
+ let n = rt(it(e, !0, De()));
781
+ if (!n.pending.length) {
782
+ let e = !0;
783
+ return t && setTimeout(() => {
784
+ e && t(n.loaded, n.missing, n.pending, dt);
785
+ }), () => {
786
+ e = !1;
787
+ };
788
+ }
789
+ let r = Object.create(null), i = [], a, o;
790
+ return n.pending.forEach((e) => {
791
+ let { provider: t, prefix: n } = e;
792
+ if (n === o && t === a) return;
793
+ a = t, o = n, i.push(B(t, n));
794
+ let s = r[t] || (r[t] = Object.create(null));
795
+ s[n] || (s[n] = []);
796
+ }), n.pending.forEach((e) => {
797
+ let { provider: t, prefix: n, name: i } = e, a = B(t, n), o = a.pendingIcons ||= /* @__PURE__ */ new Set();
798
+ o.has(i) || (o.add(i), r[t][n].push(i));
799
+ }), i.forEach((e) => {
800
+ let t = r[e.provider][e.prefix];
801
+ t.length && ht(e, t);
802
+ }), t ? nt(t, n, i) : dt;
803
+ };
804
+ function _t(e, t) {
805
+ let n = { ...e };
806
+ for (let e in t) {
807
+ let r = t[e], i = typeof r;
808
+ e in je ? (r === null || r && (i === "string" || i === "number")) && (n[e] = r) : i === typeof n[e] && (n[e] = e === "rotate" ? r % 4 : r);
809
+ }
810
+ return n;
811
+ }
812
+ var vt = /[\s,]+/;
813
+ function yt(e, t) {
814
+ t.split(vt).forEach((t) => {
815
+ switch (t.trim()) {
816
+ case "horizontal":
817
+ e.hFlip = !0;
818
+ break;
819
+ case "vertical":
820
+ e.vFlip = !0;
821
+ break;
822
+ }
823
+ });
824
+ }
825
+ function bt(e, t = 0) {
826
+ let n = e.replace(/^-?[0-9.]*/, "");
827
+ function r(e) {
828
+ for (; e < 0;) e += 4;
829
+ return e % 4;
830
+ }
831
+ if (n === "") {
832
+ let t = parseInt(e);
833
+ return isNaN(t) ? 0 : r(t);
834
+ } else if (n !== e) {
835
+ let t = 0;
836
+ switch (n) {
837
+ case "%":
838
+ t = 25;
839
+ break;
840
+ case "deg": t = 90;
841
+ }
842
+ if (t) {
843
+ let i = parseFloat(e.slice(0, e.length - n.length));
844
+ return isNaN(i) ? 0 : (i /= t, i % 1 == 0 ? r(i) : 0);
845
+ }
846
+ }
847
+ return t;
848
+ }
849
+ function xt(e, t) {
850
+ let n = e.indexOf("xlink:") === -1 ? "" : " xmlns:xlink=\"http://www.w3.org/1999/xlink\"";
851
+ for (let e in t) n += " " + e + "=\"" + t[e] + "\"";
852
+ return "<svg xmlns=\"http://www.w3.org/2000/svg\"" + n + ">" + e + "</svg>";
853
+ }
854
+ function St(e) {
855
+ return e.replace(/"/g, "'").replace(/%/g, "%25").replace(/#/g, "%23").replace(/</g, "%3C").replace(/>/g, "%3E").replace(/\s+/g, " ");
856
+ }
857
+ function Ct(e) {
858
+ return "data:image/svg+xml," + St(e);
859
+ }
860
+ function wt(e) {
861
+ return "url(\"" + Ct(e) + "\")";
862
+ }
863
+ var Tt = {
864
+ ...Me,
865
+ inline: !1
866
+ }, Et = {
867
+ xmlns: "http://www.w3.org/2000/svg",
868
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
869
+ "aria-hidden": !0,
870
+ role: "img"
871
+ }, Dt = { display: "inline-block" }, Z = { backgroundColor: "currentColor" }, Ot = { backgroundColor: "transparent" }, kt = {
872
+ Image: "var(--svg)",
873
+ Repeat: "no-repeat",
874
+ Size: "100% 100%"
875
+ }, At = {
876
+ webkitMask: Z,
877
+ mask: Z,
878
+ background: Ot
879
+ };
880
+ for (let e in At) {
881
+ let t = At[e];
882
+ for (let n in kt) t[e + n] = kt[n];
883
+ }
884
+ var Q = {};
885
+ ["horizontal", "vertical"].forEach((e) => {
886
+ let t = e.slice(0, 1) + "Flip";
887
+ Q[e + "-flip"] = t, Q[e.slice(0, 1) + "-flip"] = t, Q[e + "Flip"] = t;
888
+ });
889
+ function jt(e) {
890
+ return e + (e.match(/^[-0-9.]+$/) ? "px" : "");
891
+ }
892
+ var Mt = (e, t) => {
893
+ let n = _t(Tt, t), r = { ...Et }, i = t.mode || "svg", a = {}, o = t.style, s = typeof o == "object" && !(o instanceof Array) ? o : {};
894
+ for (let e in t) {
895
+ let i = t[e];
896
+ if (i !== void 0) switch (e) {
897
+ case "icon":
898
+ case "style":
899
+ case "onLoad":
900
+ case "mode":
901
+ case "ssr":
902
+ case "customise": break;
903
+ case "inline":
904
+ case "hFlip":
905
+ case "vFlip":
906
+ n[e] = i === !0 || i === "true" || i === 1;
907
+ break;
908
+ case "flip":
909
+ typeof i == "string" && yt(n, i);
910
+ break;
911
+ case "color":
912
+ a.color = i;
913
+ break;
914
+ case "rotate":
915
+ typeof i == "string" ? n[e] = bt(i) : typeof i == "number" && (n[e] = i);
916
+ break;
917
+ case "ariaHidden":
918
+ case "aria-hidden":
919
+ i !== !0 && i !== "true" && delete r["aria-hidden"];
920
+ break;
921
+ default: {
922
+ let t = Q[e];
923
+ t ? (i === !0 || i === "true" || i === 1) && (n[t] = !0) : Tt[e] === void 0 && (r[e] = i);
924
+ }
925
+ }
926
+ }
927
+ let c = Be(e, n), l = c.attributes;
928
+ if (n.inline && (a.verticalAlign = "-0.125em"), i === "svg") return r.style = {
929
+ ...a,
930
+ ...s
931
+ }, Object.assign(r, l), r.innerHTML = We(c.body), h("svg", r);
932
+ let { body: u, width: d, height: f } = e, p = i === "mask" || i !== "bg" && u.indexOf("currentColor") !== -1, m = xt(u, {
933
+ ...l,
934
+ width: d + "",
935
+ height: f + ""
936
+ });
937
+ return r.style = {
938
+ ...a,
939
+ "--svg": wt(m),
940
+ width: jt(l.width),
941
+ height: jt(l.height),
942
+ ...Dt,
943
+ ...p ? Z : Ot,
944
+ ...s
945
+ }, h("span", r);
946
+ };
947
+ if (De(!0), Ge("", Qe), typeof document < "u" && typeof window < "u") {
948
+ let e = window;
949
+ if (e.IconifyPreload !== void 0) {
950
+ let t = e.IconifyPreload, n = "Invalid IconifyPreload syntax.";
951
+ typeof t == "object" && t && (t instanceof Array ? t : [t]).forEach((e) => {
952
+ try {
953
+ (typeof e != "object" || !e || e instanceof Array || typeof e.icons != "object" || typeof e.prefix != "string" || !Ae(e)) && console.error(n);
954
+ } catch {
955
+ console.error(n);
956
+ }
957
+ });
958
+ }
959
+ if (e.IconifyProviders !== void 0) {
960
+ let t = e.IconifyProviders;
961
+ if (typeof t == "object" && t) for (let e in t) {
962
+ let n = "IconifyProviders[" + e + "] is invalid.";
963
+ try {
964
+ let r = t[e];
965
+ if (typeof r != "object" || !r || r.resources === void 0) continue;
966
+ Ke(e, r) || console.error(n);
967
+ } catch {
968
+ console.error(n);
969
+ }
970
+ }
971
+ }
972
+ }
973
+ var Nt = {
974
+ ...L,
975
+ body: ""
976
+ }, Pt = m((e, { emit: t }) => {
977
+ let n = C(null);
978
+ function r() {
979
+ n.value &&= (n.value.abort?.(), null);
980
+ }
981
+ let i = C(!!e.ssr), a = C(""), o = ne(null);
982
+ function s() {
983
+ let i = e.icon;
984
+ if (typeof i == "object" && i && typeof i.body == "string") return a.value = "", { data: i };
985
+ let o;
986
+ if (typeof i != "string" || (o = P(i, !1, !0)) === null) return null;
987
+ let s = Oe(o);
988
+ if (!s) {
989
+ let e = n.value;
990
+ return (!e || e.name !== i) && (s === null ? n.value = { name: i } : n.value = {
991
+ name: i,
992
+ abort: gt([o], c)
993
+ }), null;
994
+ }
995
+ r(), a.value !== i && (a.value = i, v(() => {
996
+ t("load", i);
997
+ }));
998
+ let l = e.customise;
999
+ if (l) {
1000
+ s = Object.assign({}, s);
1001
+ let e = l(s.body, o.name, o.prefix, o.provider);
1002
+ typeof e == "string" && (s.body = e);
1003
+ }
1004
+ let u = ["iconify"];
1005
+ return o.prefix !== "" && u.push("iconify--" + o.prefix), o.provider !== "" && u.push("iconify--" + o.provider), {
1006
+ data: s,
1007
+ classes: u
1008
+ };
1009
+ }
1010
+ function c() {
1011
+ let e = s();
1012
+ e ? e.data !== o.value?.data && (o.value = e) : o.value = null;
1013
+ }
1014
+ return i.value ? c() : b(() => {
1015
+ i.value = !0, c();
1016
+ }), O(() => e.icon, c), x(r), () => {
1017
+ let t = o.value;
1018
+ if (!t) return Mt(Nt, e);
1019
+ let n = e;
1020
+ return t.classes && (n = {
1021
+ ...e,
1022
+ class: t.classes.join(" ")
1023
+ }), Mt({
1024
+ ...L,
1025
+ ...t.data
1026
+ }, n);
1027
+ };
1028
+ }, {
1029
+ props: [
1030
+ "icon",
1031
+ "mode",
1032
+ "ssr",
1033
+ "width",
1034
+ "height",
1035
+ "style",
1036
+ "color",
1037
+ "inline",
1038
+ "rotate",
1039
+ "hFlip",
1040
+ "horizontalFlip",
1041
+ "vFlip",
1042
+ "verticalFlip",
1043
+ "flip",
1044
+ "id",
1045
+ "ariaHidden",
1046
+ "customise",
1047
+ "title"
1048
+ ],
1049
+ emits: ["load"]
1050
+ }), Ft = { class: "logo" }, It = ["alt", "src"], Lt = {
1051
+ key: 1,
1052
+ class: "logo-default"
1053
+ }, $ = /* @__PURE__ */ m({
1054
+ name: "AppLogo",
1055
+ props: {
1056
+ alt: {
1057
+ default: void 0,
1058
+ type: String
1059
+ },
1060
+ route: {
1061
+ default: void 0,
1062
+ type: String
1063
+ },
1064
+ src: {
1065
+ default: void 0,
1066
+ type: String
1067
+ }
1068
+ },
1069
+ setup(e) {
1070
+ let t = e, { appName: n, appTitle: r, layout: i } = A(), o = a(() => {
1071
+ if (n) return n.replace("@", "").replace("/", " ");
1072
+ }), s = t.alt || i?.logoAlt || o.value || r, u = t.src || i?.logo, d = t.route || i?.logoRoute || "home";
1073
+ return (e, t) => {
1074
+ let n = ee("router-link");
1075
+ return S(), c("div", Ft, [T(e.$slots, "default", {}, () => [f(n, { to: { name: D(d) } }, {
1076
+ default: k(() => [D(u) ? (S(), c("img", {
1077
+ key: 0,
1078
+ alt: D(s),
1079
+ src: D(u)
1080
+ }, null, 8, It)) : (S(), c("span", Lt, [l("span", null, E(D(s)[0]), 1), l("span", null, E(D(s)), 1)]))]),
1081
+ _: 1
1082
+ }, 8, ["to"])])]);
1083
+ };
1084
+ }
1085
+ }), Rt = /* @__PURE__ */ m({
1086
+ name: "MainMenu",
1087
+ props: { routes: {
1088
+ required: !0,
1089
+ type: Array
1090
+ } },
1091
+ emits: ["close"],
1092
+ setup(e) {
1093
+ let t = e, n = M(), r = se(), i = a(() => {
1094
+ let e = t.routes?.find((e) => e.route === n?.name)?.route;
1095
+ return e ||= s.value, e;
1096
+ }), s = a(() => {
1097
+ let e = n?.matched;
1098
+ if (e?.length > 1) {
1099
+ let t = e.at(-2);
1100
+ return c(String(t?.path));
1101
+ }
1102
+ return "";
1103
+ }), c = (e) => {
1104
+ let t = r.getRoutes().find((t) => t.path === e);
1105
+ return String(t?.name);
1106
+ };
1107
+ return (t, n) => (S(), o(D(oe), {
1108
+ ref: "mainMenu",
1109
+ "active-route": i.value || "home",
1110
+ routes: e.routes,
1111
+ onChangeRoute: n[0] ||= (e) => t.$emit("close")
1112
+ }, null, 8, ["active-route", "routes"]));
1113
+ }
1114
+ }), zt = { ref: "dzangolabVueAppHeader" }, Bt = ["data-expanded"], Vt = /* @__PURE__ */ m({
1115
+ name: "AppHeader",
1116
+ props: {
1117
+ noLocaleSwitcher: Boolean,
1118
+ noLogo: Boolean,
1119
+ noMainMenu: Boolean,
1120
+ noToggle: Boolean
1121
+ },
1122
+ setup(t, { expose: n }) {
1123
+ let { layout: r } = A(), { width: i } = j(), u = C(!0), d = r && r?.homeRoute ? r.homeRoute : void 0, f = r?.localeSwitcher?.showBadges, p = a(() => i.value > 768), m = () => {
1124
+ u.value = !1;
1125
+ }, h = () => {
1126
+ let e = document.querySelector(".layout > header"), t = document.querySelector(".layout > header > nav");
1127
+ if (window.innerWidth >= 768) u.value = !0;
1128
+ else {
1129
+ if (!e || !t || p.value) return;
1130
+ let n = e?.offsetHeight, r = window.innerHeight;
1131
+ u.value = !1, t.style.height = `${r - n}px`;
1132
+ }
1133
+ }, g = () => {
1134
+ u.value = !u.value;
1135
+ };
1136
+ return b(() => {
1137
+ window.addEventListener("resize", h), window.addEventListener("load", h), h();
1138
+ }), x(() => {
1139
+ window.removeEventListener("resize", h), window.removeEventListener("load", h);
1140
+ }), n({ expanded: u }), (n, i) => (S(), c("header", zt, [
1141
+ !t.noToggle || !p.value ? (S(), c("div", {
1142
+ key: 0,
1143
+ class: "toggle",
1144
+ onClick: g
1145
+ }, [T(n.$slots, "toggle", {}, () => [u.value && !p.value ? (S(), o(D(Pt), {
1146
+ key: 0,
1147
+ icon: "prime:times",
1148
+ height: "2rem"
1149
+ })) : (S(), o(D(Pt), {
1150
+ key: 1,
1151
+ icon: "prime:bars",
1152
+ height: "2rem"
1153
+ }))])])) : s("", !0),
1154
+ T(n.$slots, "logo", { class: "logo" }, () => [t.noLogo ? s("", !0) : (S(), o($, {
1155
+ key: 0,
1156
+ route: D(d)
1157
+ }, null, 8, ["route"]))]),
1158
+ l("nav", { "data-expanded": u.value }, [
1159
+ T(n.$slots, "menu", {}, () => [D(r)?.mainMenu && !t.noMainMenu ? (S(), o(Rt, {
1160
+ key: 0,
1161
+ class: "main-menu",
1162
+ routes: D(r)?.mainMenu,
1163
+ onClose: m
1164
+ }, null, 8, ["routes"])) : s("", !0)]),
1165
+ T(n.$slots, "userMenu"),
1166
+ T(n.$slots, "addon"),
1167
+ T(n.$slots, "locales", {}, () => [t.noLocaleSwitcher ? s("", !0) : (S(), o(D(e), {
1168
+ key: 0,
1169
+ "show-badges": D(f),
1170
+ class: "locales"
1171
+ }, null, 8, ["show-badges"]))])
1172
+ ], 8, Bt)
1173
+ ], 512));
1174
+ }
1175
+ }), Ht = { class: "nav-menu-item" }, Ut = {
1176
+ key: 1,
1177
+ class: "item-name"
1178
+ }, Wt = {
1179
+ key: 2,
1180
+ class: "item-name"
1181
+ }, Gt = {
1182
+ key: 3,
1183
+ class: "toggle-menu"
1184
+ }, Kt = {
1185
+ key: 0,
1186
+ class: "sub-menu-item"
1187
+ }, qt = /*@__PURE__*/ m({
1188
+ components: { NavMenuItem: () => Promise.resolve().then(() => Jt) },
1189
+ name: "NavMenuItem",
1190
+ props: {
1191
+ item: {
1192
+ required: !0,
1193
+ type: Object
1194
+ },
1195
+ sidebarActive: {
1196
+ default: !0,
1197
+ type: Boolean
1198
+ }
1199
+ },
1200
+ emits: ["select:menu"],
1201
+ setup(e, { emit: t }) {
1202
+ let n = e, u = t, d = M(), p = se(), m = C(!1), h = a(() => {
1203
+ let e = d?.matched;
1204
+ if (e?.length > 1) {
1205
+ let t = e.at(-2);
1206
+ return v(String(t?.path));
1207
+ }
1208
+ return "";
1209
+ }), g = a(() => {
1210
+ let e = d.name === n.item?.routeName;
1211
+ return e || (n.item?.routeName ? e = !!h.value && h.value === n.item?.routeName : !n.item?.routeName && !n.item?.children?.length && d.name === h.value && (e = !0)), e;
1212
+ }), _ = a(() => !n.sidebarActive && n.item.shortName), v = (e) => {
1213
+ let t = p.getRoutes().find((t) => t.path === e);
1214
+ return String(t?.name);
1215
+ }, b = () => {
1216
+ n.item.routeName ? (p.hasRoute(n.item.routeName) && p.push({ name: n.item.routeName }), u("select:menu")) : !n.item.routeName && !n.item.children?.length ? (p.hasRoute(h.value) && p.push({ name: h.value }), u("select:menu")) : m.value = !m.value;
1217
+ };
1218
+ return n.item.children?.length && (m.value = !!n.item.children.find((e) => d.name === e?.routeName)), (t, n) => {
1219
+ let a = ee("NavMenuItem", !0);
1220
+ return S(), c("div", Ht, [l("a", {
1221
+ class: y([{ active: g.value }, "link"]),
1222
+ "aria-label": "open menu",
1223
+ onClick: b
1224
+ }, [
1225
+ e.item.icon ? (S(), c("i", {
1226
+ key: 0,
1227
+ class: y([
1228
+ "icon",
1229
+ e.item.icon,
1230
+ { "icon-only": !_.value && !e.sidebarActive }
1231
+ ])
1232
+ }, null, 2)) : s("", !0),
1233
+ _.value ? (S(), c("span", Ut, E(e.item.shortName), 1)) : s("", !0),
1234
+ e.sidebarActive ? (S(), c("span", Wt, E(e.item.name), 1)) : s("", !0),
1235
+ e.item.children && e.item.children.length > 0 ? (S(), c("span", Gt, [(S(), c("svg", {
1236
+ class: y({ "up-chevron": m.value }),
1237
+ viewBox: "0 0 24 24",
1238
+ fill: "none",
1239
+ xmlns: "http://www.w3.org/2000/svg"
1240
+ }, [...n[1] ||= [l("path", {
1241
+ "fill-rule": "evenodd",
1242
+ "clip-rule": "evenodd",
1243
+ d: "M4.29289 8.29289C4.68342 7.90237 5.31658 7.90237 5.70711 8.29289L12 14.5858L18.2929 8.29289C18.6834 7.90237 19.3166 7.90237 19.7071 8.29289C20.0976 8.68342 20.0976 9.31658 19.7071 9.70711L12.7071 16.7071C12.3166 17.0976 11.6834 17.0976 11.2929 16.7071L4.29289 9.70711C3.90237 9.31658 3.90237 8.68342 4.29289 8.29289Z",
1244
+ fill: "currentColor"
1245
+ }, null, -1)]], 2))])) : s("", !0)
1246
+ ], 2), f(i, { name: "fade" }, {
1247
+ default: k(() => [e.item.children && e.item.children.length > 0 && m.value ? (S(), c("div", Kt, [(S(!0), c(r, null, w(e.item.children, (r, i) => (S(), o(a, {
1248
+ key: r.name + "-" + i,
1249
+ item: r,
1250
+ "sidebar-active": e.sidebarActive,
1251
+ "onSelect:menu": n[0] ||= (e) => t.$emit("select:menu")
1252
+ }, null, 8, ["item", "sidebar-active"]))), 128))])) : s("", !0)]),
1253
+ _: 1
1254
+ })]);
1255
+ };
1256
+ }
1257
+ }), Jt = /* @__PURE__ */ le({ default: () => Yt }), Yt = qt, Xt = { class: "nav-menu" }, Zt = {
1258
+ key: 0,
1259
+ class: "menu"
1260
+ }, Qt = /* @__PURE__ */ m({
1261
+ name: "NavMenu",
1262
+ props: {
1263
+ menu: {
1264
+ required: !0,
1265
+ type: Array
1266
+ },
1267
+ sidebarActive: {
1268
+ default: !0,
1269
+ type: Boolean
1270
+ }
1271
+ },
1272
+ emits: ["select:menu"],
1273
+ setup(e) {
1274
+ let t = e, n = a(() => t.menu?.map((e) => {
1275
+ if (e.hide) return null;
1276
+ let t = e.children?.filter((e) => !e.hide) || [];
1277
+ return e.children?.length && t.length === 0 ? null : {
1278
+ ...e,
1279
+ children: t.length > 0 ? t : void 0
1280
+ };
1281
+ }).filter(Boolean));
1282
+ return (t, i) => (S(), c("nav", Xt, [n.value?.length > 0 ? (S(), c("div", Zt, [(S(!0), c(r, null, w(n.value, (n, r) => (S(), o(Yt, {
1283
+ key: n.name + "-" + r,
1284
+ item: n,
1285
+ "sidebar-active": e.sidebarActive,
1286
+ "onSelect:menu": i[0] ||= (e) => t.$emit("select:menu")
1287
+ }, null, 8, ["item", "sidebar-active"]))), 128))])) : s("", !0)]));
1288
+ }
1289
+ }), $t = ["aria-label"], en = {
1290
+ key: 0,
1291
+ class: "header"
1292
+ }, tn = { class: "title" }, nn = ["aria-expanded", "aria-label"], rn = {
1293
+ key: 0,
1294
+ "aria-hidden": "true",
1295
+ viewBox: "0 0 24 24",
1296
+ xmlns: "http://www.w3.org/2000/svg"
1297
+ }, an = {
1298
+ key: 1,
1299
+ "aria-hidden": "true",
1300
+ class: "extend",
1301
+ viewBox: "0 0 24 24",
1302
+ xmlns: "http://www.w3.org/2000/svg"
1303
+ }, on = { class: "sidebar-menu-wrapper" }, sn = { class: "nav" }, cn = {
1304
+ key: 1,
1305
+ class: "footer"
1306
+ }, ln = ["aria-expanded"], un = /* @__PURE__ */ m({
1307
+ name: "AppSidebar",
1308
+ props: {
1309
+ ariaLabel: {
1310
+ default: "Navigation",
1311
+ type: String
1312
+ },
1313
+ collapsible: {
1314
+ default: !0,
1315
+ type: Boolean
1316
+ },
1317
+ hideLogo: Boolean,
1318
+ menu: {
1319
+ required: !0,
1320
+ type: Array
1321
+ },
1322
+ noHeader: {
1323
+ default: !1,
1324
+ type: Boolean
1325
+ }
1326
+ },
1327
+ emits: ["select:menu"],
1328
+ setup(e, { expose: t }) {
1329
+ let n = e, r = a(() => u.value || !n.collapsible ? !1 : n.menu.every((e) => !e.shortName)), i = re(), u = C(!0);
1330
+ return t({
1331
+ sidebarActive: u,
1332
+ toggle() {
1333
+ u.value = !u.value;
1334
+ }
1335
+ }), (t, n) => r.value ? (S(), c("button", {
1336
+ key: 1,
1337
+ "aria-expanded": u.value,
1338
+ "aria-label": "Expand navigation menu",
1339
+ class: "collapsed-sidebar",
1340
+ type: "button",
1341
+ onClick: n[2] ||= (e) => u.value = !0
1342
+ }, [...n[5] ||= [l("svg", {
1343
+ "aria-hidden": "true",
1344
+ height: "24",
1345
+ viewBox: "0 0 24 24",
1346
+ width: "24",
1347
+ xmlns: "http://www.w3.org/2000/svg"
1348
+ }, [l("path", {
1349
+ d: "M10 17.75a.74.74 0 0 1-.53-.22a.75.75 0 0 1 0-1.06L13.94 12L9.47 7.53a.75.75 0 0 1 1.06-1.06l5 5a.75.75 0 0 1 0 1.06l-5 5a.74.74 0 0 1-.53.22",
1350
+ fill: "currentColor"
1351
+ })], -1)]], 8, ln)) : (S(), c("div", {
1352
+ key: 0,
1353
+ "aria-label": e.ariaLabel,
1354
+ class: y(["sidebar", { collapsible: e.collapsible }]),
1355
+ role: "navigation"
1356
+ }, [
1357
+ e.noHeader ? s("", !0) : (S(), c("div", en, [
1358
+ e.hideLogo ? s("", !0) : (S(), o($, { key: 0 })),
1359
+ l("div", tn, [T(t.$slots, "title")]),
1360
+ T(t.$slots, "toggleIcons", {}, () => [l("button", {
1361
+ "aria-expanded": u.value,
1362
+ "aria-label": u.value ? "Collapse sidebar" : "Expand sidebar",
1363
+ class: "toggle",
1364
+ type: "button",
1365
+ onClick: n[0] ||= (e) => u.value = !u.value
1366
+ }, [u.value ? (S(), c("svg", rn, [...n[3] ||= [l("path", {
1367
+ d: "m13.06 12l4.42-4.42a.75.75 0 1 0-1.06-1.06L12 10.94L7.58 6.52a.75.75 0 0 0-1.06 1.06L10.94 12l-4.42 4.42a.75.75 0 0 0 0 1.06a.75.75 0 0 0 1.06 0L12 13.06l4.42 4.42a.75.75 0 0 0 1.06 0a.75.75 0 0 0 0-1.06Z",
1368
+ fill: "currentColor"
1369
+ }, null, -1)]])) : (S(), c("svg", an, [...n[4] ||= [l("path", {
1370
+ d: "M19 12.75H5a.75.75 0 0 1 0-1.5h14a.75.75 0 0 1 0 1.5m0-4.5H5a.75.75 0 0 1 0-1.5h14a.75.75 0 0 1 0 1.5m0 9H5a.75.75 0 0 1 0-1.5h14a.75.75 0 0 1 0 1.5",
1371
+ fill: "currentColor"
1372
+ }, null, -1)]]))], 8, nn)])
1373
+ ])),
1374
+ l("div", on, [
1375
+ T(t.$slots, "default"),
1376
+ l("ul", sn, [T(t.$slots, "links", {}, () => [f(Qt, {
1377
+ menu: e.menu,
1378
+ "sidebar-active": u.value,
1379
+ "onSelect:menu": n[1] ||= (e) => t.$emit("select:menu")
1380
+ }, null, 8, ["menu", "sidebar-active"])]), T(t.$slots, "afterNavLinks")]),
1381
+ T(t.$slots, "afterSidebarMenu")
1382
+ ]),
1383
+ D(i).footer ? (S(), c("div", cn, [T(t.$slots, "footer")])) : s("", !0)
1384
+ ], 10, $t));
1385
+ }
1386
+ }), dn = { class: "content" }, fn = /* @__PURE__ */ m({
1387
+ name: "StickyCollapsibleFooter",
1388
+ props: { fixed: {
1389
+ default: !0,
1390
+ type: Boolean
1391
+ } },
1392
+ setup(e) {
1393
+ return (t, n) => (S(), c("footer", { class: y(`sticky-collapsible ${e.fixed ? "fixed" : ""}`) }, [l("div", dn, [T(t.$slots, "default")])], 2));
1394
+ }
1395
+ }), pn = /* @__PURE__ */ m({
1396
+ name: "LayoutComponent",
1397
+ props: { defaultLayout: {
1398
+ default: p({
1399
+ loader: () => Promise.resolve().then(() => vn),
1400
+ timeout: 3e3
1401
+ }),
1402
+ type: Object
1403
+ } },
1404
+ setup(e) {
1405
+ let t = e, n = M(), r = re(), i = Object.keys(r), s = ne(t.defaultLayout), c = a(() => _(s.value));
1406
+ return O(() => n.meta, async (e) => {
1407
+ if (e?.layout) try {
1408
+ s.value = e.layout;
1409
+ } catch {
1410
+ s.value = t.defaultLayout;
1411
+ }
1412
+ else s.value = t.defaultLayout;
1413
+ }), (e, t) => (S(), o(te(c.value), null, u({
1414
+ default: k(() => [T(e.$slots, "default")]),
1415
+ _: 2
1416
+ }, [w(D(i), (t) => ({
1417
+ name: t,
1418
+ fn: k(() => [T(e.$slots, t)])
1419
+ }))]), 1024));
1420
+ }
1421
+ }), mn = ["aria-expanded"], hn = /* @__PURE__ */ m({
1422
+ name: "BasicLayout",
1423
+ props: {
1424
+ noFooter: Boolean,
1425
+ noLocaleSwitcher: Boolean
1426
+ },
1427
+ setup(e) {
1428
+ let t = C();
1429
+ return (n, r) => (S(), c("div", {
1430
+ "aria-expanded": t.value?.expanded,
1431
+ class: "layout basic"
1432
+ }, [
1433
+ T(n.$slots, "header", {}, () => [f(Vt, {
1434
+ ref_key: "appHeader",
1435
+ ref: t,
1436
+ "no-locale-switcher": e.noLocaleSwitcher,
1437
+ "no-toggle": ""
1438
+ }, {
1439
+ logo: k(() => [T(n.$slots, "logo")]),
1440
+ addon: k(() => [T(n.$slots, "addon")]),
1441
+ menu: k(() => [T(n.$slots, "menu")]),
1442
+ userMenu: k(() => [T(n.$slots, "userMenu")]),
1443
+ locales: k(() => [T(n.$slots, "locales")]),
1444
+ _: 3
1445
+ }, 8, ["no-locale-switcher"])]),
1446
+ l("main", null, [T(n.$slots, "default")]),
1447
+ e.noFooter ? s("", !0) : T(n.$slots, "footer", {}, () => [f(N, null, {
1448
+ copyright: k(() => [T(n.$slots, "copyright")]),
1449
+ social: k(() => [T(n.$slots, "social")]),
1450
+ version: k(() => [T(n.$slots, "version")]),
1451
+ _: 3
1452
+ })], void 0, 0)
1453
+ ], 8, mn));
1454
+ }
1455
+ }), gn = { name: "NullLayout" }, _n = (e, t) => {
1456
+ let n = e.__vccOpts || e;
1457
+ for (let [e, r] of t) n[e] = r;
1458
+ return n;
1459
+ }, vn = /* @__PURE__ */ le({ default: () => bn });
1460
+ function yn(e, t, n, r, i, a) {
1461
+ return T(e.$slots, "default");
1462
+ }
1463
+ var bn = /*#__PURE__*/ _n(gn, [["render", yn]]), xn = ["aria-expanded"], Sn = /* @__PURE__ */ m({
1464
+ __name: "SidebarHeaderLayout",
1465
+ props: {
1466
+ collapsible: {
1467
+ default: !0,
1468
+ type: Boolean
1469
+ },
1470
+ menu: {
1471
+ required: !0,
1472
+ type: Array
1473
+ },
1474
+ noFooter: Boolean,
1475
+ noLocaleSwitcher: Boolean,
1476
+ userMenuLocation: {
1477
+ default: "sidebar",
1478
+ type: String,
1479
+ validator: (e) => ["header", "sidebar"].includes(e)
1480
+ }
1481
+ },
1482
+ setup(t, { expose: n }) {
1483
+ let { layout: r } = A(), i = r?.localeSwitcher?.showBadges, { width: d } = j(), p = C(), m = C(), h = t, g = a(() => d.value > 576), _ = a(() => h.userMenuLocation === "sidebar" || !g.value), v = () => {
1484
+ !g.value && m.value && (m.value.sidebarActive = !1);
1485
+ };
1486
+ return O(g, () => {
1487
+ m.value && (m.value.sidebarActive = g.value);
1488
+ }, { immediate: !0 }), n({ onSelectMenu: v }), (n, r) => (S(), c("div", {
1489
+ "aria-expanded": g.value ? p.value?.expanded : m.value?.sidebarActive,
1490
+ class: y(["layout sidebar-header-layout", { collapsible: t.collapsible }])
1491
+ }, [
1492
+ T(n.$slots, "header", {}, () => [ae(f(Vt, {
1493
+ ref_key: "appHeader",
1494
+ ref: p,
1495
+ class: y({ "no-locale-switcher-header": t.noLocaleSwitcher }),
1496
+ "no-locale-switcher": t.noLocaleSwitcher,
1497
+ "no-toggle": !t.collapsible,
1498
+ "no-main-menu": ""
1499
+ }, u({
1500
+ locales: k(() => [T(n.$slots, "locales")]),
1501
+ _: 2
1502
+ }, [t.userMenuLocation === "header" && g.value ? {
1503
+ name: "userMenu",
1504
+ fn: k(() => [T(n.$slots, "userMenu")]),
1505
+ key: "0"
1506
+ } : void 0]), 1032, [
1507
+ "class",
1508
+ "no-locale-switcher",
1509
+ "no-toggle"
1510
+ ]), [[ie, g.value]])]),
1511
+ f(un, {
1512
+ ref_key: "sidebar",
1513
+ ref: m,
1514
+ collapsible: t.collapsible && g.value,
1515
+ menu: t.menu,
1516
+ "no-header": g.value,
1517
+ class: "layout-sidebar",
1518
+ "onSelect:menu": v
1519
+ }, u({
1520
+ afterNavLinks: k(() => [T(n.$slots, "afterNavLinks")]),
1521
+ afterSidebarMenu: k(() => [
1522
+ T(n.$slots, "afterSidebarMenu"),
1523
+ _.value ? T(n.$slots, "userMenu", {}, void 0, void 0, 0) : s("", !0),
1524
+ g.value ? s("", !0) : T(n.$slots, "locales", {}, () => [t.noLocaleSwitcher ? s("", !0) : (S(), o(D(e), {
1525
+ key: 0,
1526
+ "show-badges": D(i),
1527
+ class: "locales"
1528
+ }, null, 8, ["show-badges"]))], void 0, 1)
1529
+ ]),
1530
+ _: 2
1531
+ }, [t.noFooter ? void 0 : {
1532
+ name: "footer",
1533
+ fn: k(() => [T(n.$slots, "footer", {}, () => [f(N)])]),
1534
+ key: "0"
1535
+ }]), 1032, [
1536
+ "collapsible",
1537
+ "menu",
1538
+ "no-header"
1539
+ ]),
1540
+ l("main", null, [T(n.$slots, "default")])
1541
+ ], 10, xn));
1542
+ }
1543
+ }), Cn = { class: "layout sidebar-only" }, wn = /* @__PURE__ */ m({
1544
+ __name: "SidebarOnlyLayout",
1545
+ props: {
1546
+ menu: {
1547
+ required: !0,
1548
+ type: Array
1549
+ },
1550
+ noFooter: Boolean,
1551
+ noHeader: {
1552
+ default: !1,
1553
+ type: Boolean
1554
+ },
1555
+ noLocaleSwitcher: Boolean
1556
+ },
1557
+ setup(t) {
1558
+ let { layout: n } = A(), { width: r } = j(), i = C(), d = a(() => r.value > 576), p = n?.localeSwitcher?.showBadges, m = () => {
1559
+ i.value && (i.value.sidebarActive = !!d.value);
1560
+ };
1561
+ return b(() => m()), x(() => {
1562
+ window.removeEventListener("resize", m);
1563
+ }), window.addEventListener("resize", m), (n, r) => (S(), c("div", Cn, [f(un, {
1564
+ ref_key: "sidebar",
1565
+ ref: i,
1566
+ menu: t.menu,
1567
+ "no-header": t.noHeader,
1568
+ class: "layout-sidebar"
1569
+ }, u({
1570
+ afterNavLinks: k(() => [T(n.$slots, "afterNavLinks")]),
1571
+ afterSidebarMenu: k(() => [
1572
+ T(n.$slots, "afterSidebarMenu"),
1573
+ T(n.$slots, "userMenu"),
1574
+ T(n.$slots, "locales", {}, () => [t.noLocaleSwitcher ? s("", !0) : (S(), o(D(e), {
1575
+ key: 0,
1576
+ "show-badges": D(p),
1577
+ class: "locales"
1578
+ }, null, 8, ["show-badges"]))])
1579
+ ]),
1580
+ _: 2
1581
+ }, [t.noFooter ? void 0 : {
1582
+ name: "footer",
1583
+ fn: k(() => [T(n.$slots, "footer", {}, () => [f(N)])]),
1584
+ key: "0"
1585
+ }]), 1032, ["menu", "no-header"]), l("main", null, [T(n.$slots, "default")])]));
1586
+ }
1587
+ }), Tn = {
1588
+ en: { copyright: { disclaimer: "All rights reserved." } },
1589
+ fr: { copyright: { disclaimer: "Tous droits réservés." } }
1590
+ }, En = Symbol.for("dzangolab.vue-layout.translations"), Dn = () => g(En, Tn), On = { install: (e, n) => {
1591
+ e.component("Layout", pn);
1592
+ let r = n?.translations ? t(Tn, n.translations) : Tn;
1593
+ e.provide(En, r);
1594
+ } };
1595
+ //#endregion
1596
+ export { N as AppFooter, Vt as AppHeader, hn as BasicLayout, fe as Copyright, pn as Layout, $ as Logo, Rt as MainMenu, bn as NullLayout, un as Sidebar, Sn as SidebarHeaderLayout, wn as SidebarOnlyLayout, fn as StickyCollapsibleFooter, On as default, Dn as useTranslations };