@wgalleti/primevue-components 1.3.0 → 1.5.0

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 (67) hide show
  1. package/README.md +1 -0
  2. package/dist/components/charts/WChart.vue.d.ts +12 -2
  3. package/dist/components/form/WDateRange.vue.d.ts +2 -0
  4. package/dist/components/index.d.ts +2 -0
  5. package/dist/components/ui/WAttentionList.vue.d.ts +34 -0
  6. package/dist/components/ui/WEmptyState.vue.d.ts +21 -3
  7. package/dist/components/ui/WKanbanBoard.vue.d.ts +2 -2
  8. package/dist/components/ui/WKpiCard.vue.d.ts +29 -7
  9. package/dist/components/ui/WKpiGrid.vue.d.ts +15 -2
  10. package/dist/components/ui/WMeter.vue.d.ts +49 -0
  11. package/dist/components/ui/WTabPane.d.ts +4 -0
  12. package/dist/components-B9N5YvzN.cjs +25 -0
  13. package/dist/components-B9N5YvzN.cjs.map +1 -0
  14. package/dist/{components-BHHLGp-P.js → components-C5a424TI.js} +1785 -1460
  15. package/dist/components-C5a424TI.js.map +1 -0
  16. package/dist/components.cjs +1 -1
  17. package/dist/components.js +2 -2
  18. package/dist/composables/index.d.ts +3 -0
  19. package/dist/composables/useAppConfirm.d.ts +1 -0
  20. package/dist/composables/useFormatters.d.ts +2 -0
  21. package/dist/composables/usePendingForms.d.ts +15 -0
  22. package/dist/composables/usePublishedVersion.d.ts +69 -0
  23. package/dist/composables-BZTlY1QU.cjs +2 -0
  24. package/dist/composables-BZTlY1QU.cjs.map +1 -0
  25. package/dist/composables-Bu1oxAgP.js +763 -0
  26. package/dist/composables-Bu1oxAgP.js.map +1 -0
  27. package/dist/composables.cjs +1 -1
  28. package/dist/composables.js +3 -3
  29. package/dist/index.cjs +1 -1
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.ts +8 -5
  32. package/dist/index.js +30 -29
  33. package/dist/index.js.map +1 -1
  34. package/dist/primevue-components.css +1 -1
  35. package/dist/routeTabs-BnVpnSeJ.cjs.map +1 -1
  36. package/dist/routeTabs-D6m8PuP6.js.map +1 -1
  37. package/dist/types/attentionList.d.ts +22 -0
  38. package/dist/types/index.d.ts +2 -1
  39. package/dist/types/kpi.d.ts +22 -1
  40. package/dist/types/manager.d.ts +2 -0
  41. package/dist/types/plugin.d.ts +6 -0
  42. package/dist/{useFormKeyboardNav-DuxPdAeK.js → useFormKeyboardNav-DNaAWyrr.js} +74 -31
  43. package/dist/useFormKeyboardNav-DNaAWyrr.js.map +1 -0
  44. package/dist/{useFormKeyboardNav-CzKY9ZV2.cjs → useFormKeyboardNav-DkUCe_b7.cjs} +3 -3
  45. package/dist/useFormKeyboardNav-DkUCe_b7.cjs.map +1 -0
  46. package/dist/utils/chart.d.ts +26 -0
  47. package/dist/utils/interactiveCard.d.ts +24 -0
  48. package/dist/utils/meter.d.ts +15 -0
  49. package/dist/utils/sparkline.d.ts +15 -0
  50. package/dist/vite/buildIdentity.d.ts +39 -0
  51. package/dist/vite/index.d.ts +2 -0
  52. package/dist/vite.cjs +2 -0
  53. package/dist/vite.cjs.map +1 -0
  54. package/dist/vite.d.ts +2 -0
  55. package/dist/vite.js +26 -0
  56. package/dist/vite.js.map +1 -0
  57. package/package.json +8 -3
  58. package/skill/references/components.md +1 -1
  59. package/dist/components-BHHLGp-P.js.map +0 -1
  60. package/dist/components-Ml8IKELa.cjs +0 -25
  61. package/dist/components-Ml8IKELa.cjs.map +0 -1
  62. package/dist/composables-COb8tdOP.cjs +0 -2
  63. package/dist/composables-COb8tdOP.cjs.map +0 -1
  64. package/dist/composables-DEPrDTmn.js +0 -642
  65. package/dist/composables-DEPrDTmn.js.map +0 -1
  66. package/dist/useFormKeyboardNav-CzKY9ZV2.cjs.map +0 -1
  67. package/dist/useFormKeyboardNav-DuxPdAeK.js.map +0 -1
@@ -1,642 +0,0 @@
1
- import { a as e, c as t, d as n, h as r, m as i, o as a, p as o, r as s, s as c, u as l } from "./useFormKeyboardNav-DuxPdAeK.js";
2
- import { a as u, i as d } from "./routeTabs-D6m8PuP6.js";
3
- import { t as f } from "./labels-CXBhCk2N.js";
4
- import { computed as p, inject as m, reactive as h, ref as g, shallowReactive as _ } from "vue";
5
- //#region src/composables/useCrudManager.ts
6
- function v(e, t) {
7
- let n = {};
8
- for (let r of Object.keys(t)) JSON.stringify(e[r]) !== JSON.stringify(t[r]) && (n[r] = t[r]);
9
- return n;
10
- }
11
- function y(_) {
12
- let { endpoint: y, form: b, pk: x = "id", searchDebounce: S = 300, partialUpdate: C = !0, refetchOnSave: w = !0, fetchDetailOnEdit: T = !1, filterParams: E = void 0, createDefaults: D = void 0, transformItems: O = void 0, transformPayload: k = void 0, onAfterSave: A = void 0, onAfterDelete: j = void 0 } = _, M = m(u);
13
- if (!M) throw Error("[wPrimeVueComponents] dataProvider não encontrado. Registre o WPrimeVuePlugin antes de usar useCrudManager.");
14
- let N = M, P = m(d), ee = _.pageSize ?? P?.defaultPageSize ?? 20, F = {
15
- ...f,
16
- ..._.labels
17
- }, I = a(), { confirmDelete: L } = e(), R = g([]), z = g([]), B = g({}), V = g(!1), H = 0, te = g(!1), U = g(""), W = g(!1), G = g(!1), K = g(null), q = h({}), J = null, Y = h({
18
- page: 1,
19
- pageSize: ee,
20
- rows: 0,
21
- totalPages: 0
22
- }), X = h({
23
- field: null,
24
- order: 0
25
- }), Z = h({});
26
- function ne() {
27
- return t(b);
28
- }
29
- let re = ne();
30
- for (let e of Object.keys(re)) q[e] = re[e];
31
- let Q = p(() => K.value !== null && !G.value), ie = p(() => G.value), ae = p(() => G.value ? F.viewTitle ?? "Visualizar Registro" : Q.value ? F.editTitle : F.createTitle), oe = p(() => Y.page <= 1), se = p(() => Y.page >= Y.totalPages), ce = null;
32
- async function $(e = {}) {
33
- let t = ++H;
34
- V.value = !0;
35
- try {
36
- let n = {
37
- page: Y.page,
38
- page_size: Y.pageSize,
39
- ...e
40
- };
41
- U.value && (n.search = U.value), X.field && X.order !== 0 && (n.ordering = X.order === -1 ? `-${X.field}` : X.field), E && Object.assign(n, E());
42
- for (let [e, t] of Object.entries(Z)) t != null && t !== "" && (n[e] = t);
43
- let r = await N.list(y, n);
44
- if (t !== H) return;
45
- R.value = O ? O(r.data) : r.data, z.value = [], Y.rows = r.rows, B.value = r.extras ?? {}, r.page && (Y.page = r.page), r.page_size && (Y.pageSize = r.page_size), Y.totalPages = Math.ceil(Y.rows / Y.pageSize) || 0;
46
- } finally {
47
- t === H && (V.value = !1);
48
- }
49
- }
50
- async function le() {
51
- await $();
52
- }
53
- async function ue() {
54
- await $();
55
- }
56
- async function de(e = 200) {
57
- let t = {};
58
- U.value && (t.search = U.value), X.field && X.order !== 0 && (t.ordering = X.order === -1 ? `-${X.field}` : X.field), E && Object.assign(t, E());
59
- for (let [e, n] of Object.entries(Z)) n != null && n !== "" && (t[e] = n);
60
- let n = [], r = 1;
61
- for (; r <= 1e4;) {
62
- let i = await N.list(y, {
63
- ...t,
64
- page: r,
65
- page_size: e
66
- });
67
- n.push(...i.data);
68
- let a = i.rows ?? n.length;
69
- if (i.data.length === 0 || n.length >= a) break;
70
- r++;
71
- }
72
- return n;
73
- }
74
- function fe(e) {
75
- U.value = e, ce && clearTimeout(ce), ce = setTimeout(() => {
76
- Y.page = 1, $();
77
- }, S);
78
- }
79
- function pe(e) {
80
- let t = e.target;
81
- fe(t.value);
82
- }
83
- function me(e) {
84
- Y.page = e, $();
85
- }
86
- function he() {
87
- me(1);
88
- }
89
- function ge() {
90
- me(Y.totalPages);
91
- }
92
- function _e(e) {
93
- Y.page = e.page + 1, Y.pageSize = e.rows, $();
94
- }
95
- function ve(e) {
96
- X.field = e.sortField ?? null, X.order = e.sortOrder ?? 0, Y.page = 1, $();
97
- }
98
- function ye() {
99
- let e = ne();
100
- for (let t of Object.keys(e)) q[t] = e[t];
101
- }
102
- function be(e, t) {
103
- q[e] = t;
104
- }
105
- function xe() {
106
- if (G.value = !1, K.value = null, J = null, ye(), D) {
107
- let e = D();
108
- for (let [t, n] of Object.entries(e)) q[t] = n;
109
- }
110
- W.value = !0;
111
- }
112
- function Se(e) {
113
- J = l(e, b, q);
114
- }
115
- async function Ce(e) {
116
- try {
117
- return (await N.get(y, e[x])).data;
118
- } catch (e) {
119
- return I.error(s(e, "Erro ao carregar registro")), null;
120
- }
121
- }
122
- function we(e, t) {
123
- return T ? Ce(e).then((e) => {
124
- e && t(e);
125
- }) : t(e);
126
- }
127
- function Te(e) {
128
- return we(e, (e) => {
129
- G.value = !1, K.value = e, Se(e), W.value = !0;
130
- });
131
- }
132
- function Ee(e) {
133
- return we(e, (e) => {
134
- G.value = !0, K.value = e, Se(e), W.value = !0;
135
- });
136
- }
137
- function De(e) {
138
- return we(e, (e) => Oe(e));
139
- }
140
- function Oe(e) {
141
- G.value = !1, K.value = null, J = null, ye();
142
- for (let t of b) {
143
- if (t.field === x) continue;
144
- let n = e[t.field] === void 0 ? q[t.field] : e[t.field];
145
- n && (t.type === "date" || t.type === "datetime") && typeof n == "string" && (n = o(n)), q[t.field] = n;
146
- }
147
- if (D) {
148
- let e = D();
149
- for (let [t, n] of Object.entries(e)) q[t] = n;
150
- }
151
- W.value = !0;
152
- }
153
- function ke(e) {
154
- return c(e, b);
155
- }
156
- async function Ae() {
157
- let e = n(b, q, Q.value);
158
- if (e) return I.error(e), null;
159
- te.value = !0;
160
- try {
161
- let e = ke(q);
162
- if (!Q.value && D) {
163
- let t = D();
164
- for (let [n, r] of Object.entries(t)) {
165
- let t = e[n];
166
- (t == null || t === "") && (e[n] = r);
167
- }
168
- }
169
- if (Q.value && C && J && (e = v(ke(J), e), Object.keys(e).length === 0 && !k)) {
170
- W.value = !1;
171
- let e = K.value;
172
- return K.value = null, J = null, e;
173
- }
174
- k && (e = k(e, Q.value));
175
- let t = b.some((t) => t.type === "image" && e[t.field] instanceof File), n = e, r;
176
- if (t) {
177
- let t = new Set(b.filter((e) => e.type === "image").map((e) => e.field)), i = new FormData();
178
- for (let [n, r] of Object.entries(e)) if (r != null) {
179
- if (r instanceof File) i.append(n, r);
180
- else if (t.has(n)) continue;
181
- else i.append(n, String(r));
182
- }
183
- n = i, r = { "Content-Type": "multipart/form-data" };
184
- }
185
- let i = r ? { headers: r } : void 0, a;
186
- if (Q.value && K.value) {
187
- let e = K.value[x];
188
- if (a = await N.update(y, e, n, i), !w) {
189
- let t = R.value.findIndex((t) => t[x] === e);
190
- t !== -1 && (R.value[t] = a.data);
191
- }
192
- I.success(F.successUpdate);
193
- } else a = await N.create(y, n, i), w || (R.value.unshift(a.data), Y.rows++), I.success(F.successCreate);
194
- return W.value = !1, K.value = null, J = null, w && await $(), A && A(a.data, Q.value), a.data;
195
- } catch (e) {
196
- return I.error(s(e, "Erro ao salvar registro")), null;
197
- } finally {
198
- te.value = !1;
199
- }
200
- }
201
- async function je(e, t, n) {
202
- let a = e[x], o = b.find((e) => e.field === t), c = n;
203
- o?.type === "date" && c instanceof Date ? c = i(c) : o?.type === "datetime" && c instanceof Date && (c = r(c));
204
- try {
205
- let e = await N.update(y, a, { [t]: c }), n = R.value.findIndex((e) => e[x] === a);
206
- n !== -1 && (R.value[n] = {
207
- ...R.value[n],
208
- ...e.data
209
- }), I.success(F.successUpdate);
210
- } catch (e) {
211
- I.error(s(e, "Erro ao salvar o campo"));
212
- }
213
- }
214
- async function Me(e) {
215
- try {
216
- let t = e[x];
217
- await N.delete(y, t);
218
- let n = R.value.findIndex((e) => e[x] === t);
219
- n !== -1 && (R.value.splice(n, 1), Y.rows--), I.success(F.successDelete), j && j(e);
220
- } catch (e) {
221
- I.error(s(e, "Erro ao excluir registro"));
222
- }
223
- }
224
- function Ne(e) {
225
- L(() => Me(e), F.deleteConfirmMessage);
226
- }
227
- function Pe() {
228
- z.value = [];
229
- }
230
- function Fe(e, t) {
231
- t == null || t === "" ? delete Z[e] : Z[e] = t, Y.page = 1, $();
232
- }
233
- function Ie() {
234
- for (let e of Object.keys(Z)) delete Z[e];
235
- Y.page = 1, $();
236
- }
237
- return {
238
- items: R,
239
- selectedItems: z,
240
- columnFilters: Z,
241
- extras: B,
242
- loading: V,
243
- saving: te,
244
- search: U,
245
- dialogVisible: W,
246
- editingItem: K,
247
- formData: q,
248
- pagination: Y,
249
- sort: X,
250
- isEditing: Q,
251
- isViewing: ie,
252
- viewMode: G,
253
- dialogTitle: ae,
254
- isFirstPage: oe,
255
- isLastPage: se,
256
- init: le,
257
- fetchItems: $,
258
- fetchAll: de,
259
- refresh: ue,
260
- setSearch: fe,
261
- onSearch: pe,
262
- onPage: _e,
263
- onSort: ve,
264
- openCreateDialog: xe,
265
- openEditDialog: Te,
266
- openViewDialog: Ee,
267
- openDuplicateDialog: De,
268
- save: Ae,
269
- updateField: je,
270
- confirmDelete: Ne,
271
- performDelete: Me,
272
- setFormField: be,
273
- resetForm: ye,
274
- goToPage: me,
275
- firstPage: he,
276
- lastPage: ge,
277
- clearSelection: Pe,
278
- setColumnFilter: Fe,
279
- clearColumnFilters: Ie,
280
- config: _
281
- };
282
- }
283
- //#endregion
284
- //#region src/composables/useSubviewCrud.ts
285
- function b(r) {
286
- let { rows: i, onChange: o, form: s, createDefaults: u = void 0, transformPayload: d = void 0, uniqueBy: m = void 0, uniqueMessage: _ = "Este item já está na lista.", toForm: v = void 0, onAfterSave: y = void 0, onAfterDelete: b = void 0, toast: x = !1 } = r, S = {
287
- ...f,
288
- ...r.labels
289
- }, C = a(), { confirmDelete: w } = e(), T = p(() => i() ?? []), E = g(!1), D = g(!1), O = g(null), k = g(-1), A = h({}), j = t(s);
290
- for (let e of Object.keys(j)) A[e] = j[e];
291
- let M = p(() => k.value >= 0), N = p(() => M.value ? S.editTitle : S.createTitle);
292
- function P() {
293
- let e = t(s);
294
- for (let t of Object.keys(e)) A[t] = e[t];
295
- }
296
- function ee(e, t) {
297
- A[e] = t;
298
- }
299
- function F() {
300
- if (u) for (let [e, t] of Object.entries(u())) A[e] = t;
301
- }
302
- function I() {
303
- O.value = null, k.value = -1, P(), F(), D.value = !0;
304
- }
305
- function L(e) {
306
- if (l(e, s, A), v) for (let [t, n] of Object.entries(v(e))) A[t] = n;
307
- }
308
- function R(e, t) {
309
- O.value = e, k.value = t, L(e), D.value = !0;
310
- }
311
- function z(e) {
312
- O.value = null, k.value = -1, P(), L(e), F(), D.value = !0;
313
- }
314
- function B(e) {
315
- if (!m) return;
316
- let t = typeof m == "function" ? m(e) : e[m];
317
- if (t != null && t !== "") return String(t);
318
- }
319
- function V() {
320
- let e = n(s, A, M.value);
321
- if (e) return C.error(e), null;
322
- let t = c(A, s);
323
- if (!M.value && u) for (let [e, n] of Object.entries(u())) {
324
- let r = t[e];
325
- (r == null || r === "") && (t[e] = n);
326
- }
327
- d && (t = d(t, M.value));
328
- let r = T.value, i = k.value, a = i >= 0, l = a ? {
329
- ...r[i],
330
- ...t
331
- } : { ...t }, f = B(l);
332
- if (f !== void 0 && r.some((e, t) => t !== i && B(e) === f)) return C.error(_), null;
333
- let p = a ? r.map((e, t) => t === i ? l : e) : [...r, l];
334
- return o(p), x && C.success(a ? S.successUpdate : S.successCreate), y?.(l, a), D.value = !1, O.value = null, k.value = -1, l;
335
- }
336
- function H(e) {
337
- let t = T.value, n = t[e];
338
- n !== void 0 && (o(t.filter((t, n) => n !== e)), x && C.success(S.successDelete), b?.(n, e));
339
- }
340
- function te(e, t) {
341
- w(() => H(t), S.deleteConfirmMessage);
342
- }
343
- return {
344
- items: T,
345
- saving: E,
346
- dialogVisible: D,
347
- editingItem: O,
348
- editingIndex: k,
349
- formData: A,
350
- isEditing: M,
351
- dialogTitle: N,
352
- openCreateDialog: I,
353
- openEditDialog: R,
354
- openDuplicateDialog: z,
355
- save: V,
356
- confirmDelete: te,
357
- performDelete: H,
358
- setFormField: ee,
359
- resetForm: P,
360
- labels: S,
361
- config: r
362
- };
363
- }
364
- //#endregion
365
- //#region src/composables/defineCrudConfig.ts
366
- function x(e) {
367
- return e;
368
- }
369
- //#endregion
370
- //#region src/composables/useApi.ts
371
- function S(e) {
372
- let { endpoint: t, searchDebounce: n = 300, immediate: r = !1 } = e, i = m(u);
373
- if (!i) throw Error("[wPrimeVueComponents] dataProvider não encontrado. Registre o WPrimeVuePlugin antes de usar useApi.");
374
- let a = i, o = m(d), s = e.pageSize ?? o?.defaultPageSize ?? 20, c = g([]), l = g(!1), f = g(""), p = g({}), _ = h({}), v = h({
375
- page: 1,
376
- pageSize: s,
377
- rows: 0,
378
- totalPages: 0
379
- }), y = h({
380
- field: null,
381
- order: 0
382
- }), b = null;
383
- async function x(e = {}) {
384
- l.value = !0;
385
- try {
386
- let n = {
387
- page: v.page,
388
- page_size: v.pageSize,
389
- ...e
390
- };
391
- f.value && (n.search = f.value), y.field && y.order !== 0 && (n.ordering = y.order === -1 ? `-${y.field}` : y.field);
392
- for (let [e, t] of Object.entries(_)) t != null && t !== "" && (n[e] = t);
393
- let r = await a.list(t, n);
394
- c.value = r.data, v.rows = r.rows, r.page && (v.page = r.page), r.page_size && (v.pageSize = r.page_size), v.totalPages = Math.ceil(v.rows / v.pageSize) || 0, p.value = r.extras ?? {};
395
- } finally {
396
- l.value = !1;
397
- }
398
- }
399
- async function S() {
400
- await x();
401
- }
402
- function C(e) {
403
- f.value = e, b && clearTimeout(b), b = setTimeout(() => {
404
- v.page = 1, x();
405
- }, n);
406
- }
407
- function w(e, t) {
408
- _[e] = t, v.page = 1, x();
409
- }
410
- function T() {
411
- for (let e of Object.keys(_)) delete _[e];
412
- v.page = 1, x();
413
- }
414
- function E(e) {
415
- v.page = e.page + 1, v.pageSize = e.rows, x();
416
- }
417
- function D(e) {
418
- y.field = e.sortField ?? null, y.order = e.sortOrder ?? 0, v.page = 1, x();
419
- }
420
- return r && x(), {
421
- items: c,
422
- loading: l,
423
- search: f,
424
- pagination: v,
425
- sort: y,
426
- extras: p,
427
- fetchItems: x,
428
- refresh: S,
429
- setSearch: C,
430
- setFilter: w,
431
- clearFilters: T,
432
- onPage: E,
433
- onSort: D
434
- };
435
- }
436
- //#endregion
437
- //#region src/composables/useRouteTabs.ts
438
- function C(e) {
439
- return {
440
- fullPath: e.fullPath,
441
- path: e.path,
442
- name: e.name,
443
- params: e.params,
444
- query: e.query,
445
- hash: e.hash,
446
- meta: e.meta,
447
- matched: e.matched,
448
- redirectedFrom: e.redirectedFrom
449
- };
450
- }
451
- function w(e) {
452
- let t = e.matched[e.matched.length - 1]?.props?.default;
453
- return t === !0 ? { ...e.params } : typeof t == "function" ? t(e) ?? {} : t && typeof t == "object" ? { ...t } : {};
454
- }
455
- function T(e) {
456
- let t = e.matched[e.matched.length - 1]?.components?.default;
457
- return t && typeof t != "function" ? t : null;
458
- }
459
- function E(e) {
460
- let { router: t, mode: n = "screen", moduleRoot: r, shouldRemount: i, resolveTabMeta: a = () => ({}), isTabRoute: o = () => !0, storage: s = typeof localStorage > "u" ? null : localStorage, storageKey: c = "w-route-tabs", homePath: l = "/", maxTabs: u } = e;
461
- if (n === "module" && !r) throw Error("[useRouteTabs] mode \"module\" exige a opção moduleRoot(route).");
462
- let d = (e) => n === "module" && r?.(e) || e.path, f = g([]), p = g(null), m = /* @__PURE__ */ new Map(), h = !1, v = null;
463
- function y() {
464
- return typeof c == "function" ? c() : c;
465
- }
466
- function b() {
467
- if (!s) return;
468
- let e = {
469
- v: 1,
470
- activeKey: p.value,
471
- tabs: f.value.map(({ key: e, fullPath: t, title: n, icon: r, closable: i, group: a, color: o }) => ({
472
- key: e,
473
- fullPath: t,
474
- title: n,
475
- icon: r,
476
- closable: i,
477
- group: a,
478
- color: o
479
- }))
480
- };
481
- try {
482
- s.setItem(y(), JSON.stringify(e));
483
- } catch {}
484
- }
485
- function x() {
486
- if (h = !0, v = y(), f.value = [], p.value = null, m.clear(), s) try {
487
- let e = s.getItem(y());
488
- if (!e) return;
489
- let t = JSON.parse(e);
490
- if (t?.v !== 1 || !Array.isArray(t.tabs)) return;
491
- f.value = t.tabs.filter((e) => e && typeof e.key == "string" && typeof e.fullPath == "string").map((e) => ({
492
- ...e,
493
- hydrated: !1,
494
- remount: 0
495
- }));
496
- } catch {}
497
- }
498
- function S(e) {
499
- return f.value.find((t) => t.key === e);
500
- }
501
- function E(e) {
502
- if (e.group) {
503
- for (let t = f.value.length - 1; t >= 0; --t) if (f.value[t].group === e.group) {
504
- f.value.splice(t + 1, 0, e);
505
- return;
506
- }
507
- }
508
- f.value.push(e);
509
- }
510
- function D(e) {
511
- let t = a(e);
512
- return t.title ? t.title : typeof e.name == "string" ? e.name : e.path;
513
- }
514
- function O(e, t) {
515
- let r = m.get(e.key);
516
- if (r && n === "module" && r.route.path !== t.path && (i?.(r.route, t) ?? !0)) {
517
- m.delete(e.key), r = void 0, e.remount += 1;
518
- let n = a(t);
519
- e.title = n.title ?? D(t), n.icon && (e.icon = n.icon);
520
- }
521
- if (r) r.component = T(t), r.props = w(t), Object.assign(r.route, C(t));
522
- else {
523
- if (e.fullPath.split(/[?#]/)[0] !== t.path) {
524
- let n = a(t);
525
- e.title = n.title ?? D(t), n.icon && (e.icon = n.icon);
526
- }
527
- r = {
528
- component: T(t),
529
- props: w(t),
530
- route: _(C(t)),
531
- closeGuards: [],
532
- activatedHooks: [],
533
- deactivatedHooks: [],
534
- defaultTitle: D(t)
535
- }, m.set(e.key, r);
536
- }
537
- e.fullPath = t.fullPath, e.hydrated = !0;
538
- }
539
- function k() {
540
- if (!u || f.value.length <= u) return;
541
- let e = f.value.find((e) => e.key !== p.value && e.closable);
542
- e && N(e.key);
543
- }
544
- n === "module" && t.beforeEach(async (e, t) => {
545
- if (!h || !o(e) || !o(t)) return !0;
546
- let n = d(e);
547
- return n !== p.value || n !== d(t) || t.path === e.path || await j(n);
548
- }), t.afterEach((e, t, n) => {
549
- if (n) return;
550
- if ((!h || s && y() !== v) && x(), !o(e)) {
551
- p.value = null;
552
- return;
553
- }
554
- let r = d(e), i = S(r);
555
- if (!i) {
556
- let t = a(e);
557
- i = {
558
- key: r,
559
- fullPath: e.fullPath,
560
- title: t.title ?? D(e),
561
- icon: t.icon,
562
- closable: t.closable ?? !0,
563
- group: t.group,
564
- color: t.color,
565
- hydrated: !1,
566
- remount: 0
567
- }, E(i);
568
- }
569
- O(i, e), p.value = r, k(), b();
570
- });
571
- async function A(e) {
572
- let n = S(e);
573
- !n || e === p.value || await t.push(n.fullPath);
574
- }
575
- async function j(e) {
576
- let t = m.get(e);
577
- if (!t) return !0;
578
- for (let e of [...t.closeGuards]) if (!await e()) return !1;
579
- return !0;
580
- }
581
- function M(e) {
582
- f.value = f.value.filter((t) => t.key !== e), m.delete(e);
583
- }
584
- async function N(e) {
585
- let n = S(e);
586
- if (!n) return !0;
587
- if (!n.closable || !await j(e)) return !1;
588
- let r = f.value.findIndex((t) => t.key === e), i = e === p.value;
589
- if (M(e), i) {
590
- let e = f.value[r - 1] ?? f.value[r] ?? null;
591
- e ? (p.value = null, await t.push(e.fullPath)) : (p.value = null, await t.push(l));
592
- }
593
- return b(), !0;
594
- }
595
- async function P(e) {
596
- for (let t of f.value.filter((t) => t.key !== e && t.closable)) await j(t.key).then((e) => e && M(t.key));
597
- b(), await A(e);
598
- }
599
- async function ee() {
600
- let e = !1;
601
- for (let t of [...f.value]) {
602
- if (!t.closable || !await j(t.key)) {
603
- e ||= t.key === p.value;
604
- continue;
605
- }
606
- M(t.key);
607
- }
608
- if (b(), !e && p.value) {
609
- let e = f.value[0];
610
- p.value = null, await t.push(e ? e.fullPath : l);
611
- }
612
- }
613
- function F(e) {
614
- let t = S(e);
615
- if (!t?.hydrated) return;
616
- let n = m.get(e);
617
- n && (n.closeGuards = [], n.activatedHooks = [], n.deactivatedHooks = []), t.remount += 1;
618
- }
619
- function I(e, t) {
620
- let n = S(e);
621
- n && (n.title = t ?? m.get(e)?.defaultTitle ?? n.title, b());
622
- }
623
- function L(e) {
624
- return S(typeof e == "string" ? e : d(e))?.hydrated ?? !1;
625
- }
626
- return {
627
- tabs: f,
628
- activeKey: p,
629
- activate: A,
630
- close: N,
631
- closeOthers: P,
632
- closeAll: ee,
633
- reload: F,
634
- setTitle: I,
635
- isLive: L,
636
- runtime: (e) => m.get(e)
637
- };
638
- }
639
- //#endregion
640
- export { y as a, b as i, S as n, x as r, E as t };
641
-
642
- //# sourceMappingURL=composables-DEPrDTmn.js.map