@vc-shell/framework 2.3.0 → 2.4.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 (65) hide show
  1. package/dist/chunks/{VcScheduler.vue_vue_type_script_setup_true_lang-BHufGxno.js → VcScheduler.vue_vue_type_script_setup_true_lang-B-xA79lJ.js} +6713 -6612
  2. package/dist/chunks/VcScheduler.vue_vue_type_script_setup_true_lang-B-xA79lJ.js.map +1 -0
  3. package/dist/chunks/{VcScheduler.vue_vue_type_style_index_0_lang-Iu3FiU-0.js → VcScheduler.vue_vue_type_style_index_0_lang-BSvjI-39.js} +116 -114
  4. package/dist/chunks/VcScheduler.vue_vue_type_style_index_0_lang-BSvjI-39.js.map +1 -0
  5. package/dist/chunks/dashboard-feed-row.vue_vue_type_script_setup_true_lang-BXDneKBz.js +679 -0
  6. package/dist/chunks/dashboard-feed-row.vue_vue_type_script_setup_true_lang-BXDneKBz.js.map +1 -0
  7. package/dist/core/interceptors/index.d.ts.map +1 -1
  8. package/dist/core/services/language-service.d.ts.map +1 -1
  9. package/dist/dashboard/index.js +1 -1
  10. package/dist/framework.js +662 -648
  11. package/dist/framework.js.map +1 -1
  12. package/dist/index.css +1 -1
  13. package/dist/locales/de.js +23 -16
  14. package/dist/locales/en.js +8 -1
  15. package/dist/locales/en.json +8 -1
  16. package/dist/locales/types.d.ts +7 -0
  17. package/dist/shell/auth/LoginPage/components/login/Login.vue.d.ts.map +1 -1
  18. package/dist/shell/auth/_test-utils/shared-dependency-mocks.d.ts +3 -3
  19. package/dist/shell/auth/_test-utils/shared-dependency-mocks.d.ts.map +1 -1
  20. package/dist/shell/components/settings-menu-item/settings-menu-item.vue.d.ts +1 -1
  21. package/dist/shell/components/settings-menu-item/settings-menu-item.vue.d.ts.map +1 -1
  22. package/dist/shell/dashboard/draggable-dashboard/GridstackDashboard.vue.d.ts.map +1 -1
  23. package/dist/shell/dashboard/draggable-dashboard/composables/useGridstack.d.ts +4 -0
  24. package/dist/shell/dashboard/draggable-dashboard/composables/useGridstack.d.ts.map +1 -1
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
  27. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts +6 -4
  28. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
  29. package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts.map +1 -1
  30. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +1 -1
  31. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
  32. package/dist/ui/components/molecules/vc-color-input/vc-color-input.vue.d.ts.map +1 -1
  33. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +11 -0
  34. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  35. package/dist/ui/components/molecules/vc-menu/vc-menu-group.vue.d.ts.map +1 -1
  36. package/dist/ui/components/molecules/vc-menu/vc-menu-item.vue.d.ts.map +1 -1
  37. package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
  38. package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts.map +1 -1
  39. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +1 -1
  40. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
  41. package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts.map +1 -1
  42. package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts.map +1 -1
  43. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  44. package/dist/ui/components/organisms/vc-data-table/VcDataTable.vue.d.ts.map +1 -1
  45. package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileCard.vue.d.ts +13 -2
  46. package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileCard.vue.d.ts.map +1 -1
  47. package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileView.vue.d.ts +15 -1
  48. package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileView.vue.d.ts.map +1 -1
  49. package/dist/ui/components/organisms/vc-data-table/components/mobile/PullToRefresh.vue.d.ts.map +1 -1
  50. package/dist/ui/components/organisms/vc-data-table/composables/useDataTableOrchestrator.d.ts.map +1 -1
  51. package/dist/ui/components/organisms/vc-data-table/composables/useDataTableState.d.ts +6 -0
  52. package/dist/ui/components/organisms/vc-data-table/composables/useDataTableState.d.ts.map +1 -1
  53. package/dist/ui/components/organisms/vc-data-table/composables/useTableColumns.d.ts +7 -1
  54. package/dist/ui/components/organisms/vc-data-table/composables/useTableColumns.d.ts.map +1 -1
  55. package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts +2 -0
  56. package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts.map +1 -1
  57. package/dist/ui/components/organisms/vc-data-table/types.d.ts +7 -0
  58. package/dist/ui/components/organisms/vc-data-table/types.d.ts.map +1 -1
  59. package/dist/ui/components/organisms/vc-scheduler/_internal/views/SchedulerMonthView.vue.d.ts.map +1 -1
  60. package/dist/ui/index.js +2 -2
  61. package/package.json +5 -5
  62. package/dist/chunks/VcScheduler.vue_vue_type_script_setup_true_lang-BHufGxno.js.map +0 -1
  63. package/dist/chunks/VcScheduler.vue_vue_type_style_index_0_lang-Iu3FiU-0.js.map +0 -1
  64. package/dist/chunks/dashboard-feed-row.vue_vue_type_script_setup_true_lang-DlE4KIvq.js +0 -641
  65. package/dist/chunks/dashboard-feed-row.vue_vue_type_script_setup_true_lang-DlE4KIvq.js.map +0 -1
@@ -1,641 +0,0 @@
1
- import { shallowRef as Q, ref as $, watch as V, nextTick as Y, onUnmounted as X, openBlock as u, createElementBlock as v, createStaticVNode as Z, defineComponent as L, inject as ee, computed as q, onMounted as te, createBlock as A, withCtx as ae, unref as R, Fragment as j, renderList as K, normalizeStyle as oe, createElementVNode as h, createCommentVNode as x, resolveDynamicComponent as se, mergeProps as re, toDisplayString as T, renderSlot as k, createVNode as ie, withDirectives as ne, normalizeClass as de } from "vue";
2
- import { q as le, r as ce, s as ue, l as me } from "./VcScheduler.vue_vue_type_style_index_0_lang-Iu3FiU-0.js";
3
- import { G as pe } from "./vendor-gridstack-Beau2jQ7.js";
4
- import { M as ve, _ as fe } from "./VcAiAgentPanel.vue_vue_type_style_index_0_lang-DrGobYkj.js";
5
- import "vee-validate";
6
- import "./vendor-tiptap-starter-kit-ny-AoaO_.js";
7
- import "./vendor-tiptap-extension-underline-Bo1pXXDN.js";
8
- import "./vendor-tiptap-extension-table-QVjcLO_H.js";
9
- import "./vendor-tiptap-extension-link-CETrc0Mo.js";
10
- import "./vendor-tiptap-extension-image-BpqLcXdw.js";
11
- import "./vendor-tiptap-extensions-D7eaegpB.js";
12
- import "./vendor-tiptap-extension-text-style-Bc6nvmn0.js";
13
- import "./vendor-js-beautify-D-6mWVv0.js";
14
- import "./vendor-dompurify-DpIUMBYC.js";
15
- import "./vendor-vuepic-vue-datepicker-D0bvbIbh.js";
16
- import "./vendor-swiper-BgqGfw3Y.js";
17
- import "vue-router";
18
- import "../assets/d5f9664ebbfb104b.svg";
19
- import "../assets/4e43c74354534fb3.svg";
20
- import "../assets/e98196a9f8dcb2f0.svg";
21
- import "../assets/74ed5f8a78e71106.svg";
22
- import "../assets/1ea01de36eb5491b.svg";
23
- import "../assets/d5a5b8630120073d.svg";
24
- import "../assets/6798e4dd4add9b48.svg";
25
- import "../assets/2d4e6190eec72737.svg";
26
- import "../assets/9392bf1d591e1abb.svg";
27
- import "../assets/204eaf512fde2023.svg";
28
- import "../assets/0ba156439a339f2a.svg";
29
- import "../assets/2857c513073467da.svg";
30
- import "../assets/b645a4a2181b9dc1.svg";
31
- import "../assets/b94421fadd23b0f2.svg";
32
- import "../assets/6a3e73faf406cf33.svg";
33
- import "../assets/e38acaa1757232e0.svg";
34
- import "../assets/ca791c5ca5848a03.svg";
35
- import "../assets/10768e2cc79fc60b.svg";
36
- import "../assets/67230f05dc94a265.svg";
37
- import "../assets/4d7a77b0e5373992.svg";
38
- import "../assets/f7fc8bf46089d8b2.svg";
39
- import "../assets/92508f8707159b51.svg";
40
- import "../assets/b6499ddce0a4ef7d.svg";
41
- import "../assets/fed13b0d59903483.svg";
42
- import "../assets/34ff7dd0c2285956.svg";
43
- import "../assets/bb28fb0f27f1c11b.svg";
44
- import "../assets/21220a9d10e6c558.svg";
45
- import "../assets/b372390551ca2fa1.svg";
46
- import "../assets/262f46a0b6d94bb6.svg";
47
- import "../assets/042c75b764bc78a7.svg";
48
- import "../assets/b1a596e31ad1185a.svg";
49
- import "../assets/15e91cdd649cde9a.svg";
50
- import "../assets/e72bb11356af94c7.svg";
51
- import "../assets/4fe75f5117100705.svg";
52
- import "../assets/dd05d43ff0df2fc7.svg";
53
- import "../assets/b325adcae33bbe7a.svg";
54
- import "../assets/f09d89268e4c0317.svg";
55
- import "../assets/9cb83236f6bb7ab1.svg";
56
- import "../assets/d084bda16abe8a56.svg";
57
- import "../assets/7eda727273fd98d3.svg";
58
- import "../assets/572bb1bb4156a9c1.svg";
59
- import "../assets/41275bcb979cb650.svg";
60
- import "../assets/1de63eb118636cce.svg";
61
- import "../assets/e5adb5ae3a3698f6.svg";
62
- import "../assets/b5bb1e8fc975decd.svg";
63
- import "../assets/157b8721e0600ea8.svg";
64
- import "../assets/a18404194e3f9047.svg";
65
- import "../assets/a2017fe7f0a26510.svg";
66
- import "../assets/0f590f8a94577092.svg";
67
- import "../assets/259e6ad461a52ad7.svg";
68
- import "../assets/7d55399c2a7bc985.svg";
69
- import "../assets/910b0d99b9e26568.svg";
70
- import "../assets/e4a8550f1c7ffe36.svg";
71
- import "../assets/2088983edf42e153.svg";
72
- import "../assets/225da11d23968333.svg";
73
- import "../assets/d32b129cae2fffd6.svg";
74
- import "../assets/abf88f301a0730f4.svg";
75
- import "../assets/0fc5820f8be53a1b.svg";
76
- import "../assets/d3f792f54ae4c307.svg";
77
- import "../assets/208f810a9321a327.svg";
78
- import "../assets/72de3a63bc0b70dd.svg";
79
- import "./vendor-iso-639-1-BEjYyfKo.js";
80
- import "./vendor-cypress-signalr-mock-itnm2wpA.js";
81
- import "./ExtensionPoint.vue_vue_type_style_index_0_lang-B1R06zHa.js";
82
- import "./vendor-truncate-html-ChA1T5zy.js";
83
- import "./vendor-sortablejs-Bsvu-FKn.js";
84
- const D = "vc-dashboard-layout";
85
- function N(e, r) {
86
- const o = r ?? e.position;
87
- return {
88
- id: e.id,
89
- x: o?.x ?? 0,
90
- y: o?.y ?? 0,
91
- w: e.size.width,
92
- h: e.size.height,
93
- minW: 2,
94
- minH: 2
95
- };
96
- }
97
- function C(e) {
98
- return {
99
- id: e.id ?? "",
100
- position: {
101
- x: e.x ?? 0,
102
- y: e.y ?? 0
103
- },
104
- size: {
105
- width: e.w ?? 1,
106
- height: e.h ?? 1
107
- }
108
- };
109
- }
110
- function he(e) {
111
- const r = /* @__PURE__ */ new Map();
112
- for (const o of e)
113
- o.id && r.set(o.id, {
114
- x: o.x ?? 0,
115
- y: o.y ?? 0
116
- });
117
- return r;
118
- }
119
- function F() {
120
- try {
121
- const e = localStorage.getItem(D);
122
- if (!e) return null;
123
- const r = JSON.parse(e);
124
- if (Array.isArray(r))
125
- return he(r);
126
- if (typeof r == "object" && r !== null) {
127
- const o = /* @__PURE__ */ new Map();
128
- for (const [l, c] of Object.entries(r))
129
- c && typeof c.x == "number" && typeof c.y == "number" && o.set(l, { x: c.x, y: c.y });
130
- return o;
131
- }
132
- return null;
133
- } catch (e) {
134
- return console.warn("[GridstackAdapter] Failed to load layout from storage:", e), null;
135
- }
136
- }
137
- function J(e, r) {
138
- try {
139
- const o = e.map((l) => {
140
- const c = r.get(l.id);
141
- return {
142
- id: l.id,
143
- x: c?.x ?? l.position?.x ?? 0,
144
- y: c?.y ?? l.position?.y ?? 0,
145
- w: l.size.width,
146
- h: l.size.height
147
- };
148
- });
149
- localStorage.setItem(D, JSON.stringify(o));
150
- } catch (o) {
151
- console.warn("[GridstackAdapter] Failed to save layout to storage:", o);
152
- }
153
- }
154
- function ge() {
155
- try {
156
- localStorage.removeItem(D);
157
- } catch (e) {
158
- console.warn("[GridstackAdapter] Failed to clear layout storage:", e);
159
- }
160
- }
161
- function _e(e, r = 12) {
162
- const o = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), c = (a, m, p, _) => {
163
- for (let g = m; g < m + _; g++) {
164
- const w = l.get(g) || [];
165
- for (let y = a; y < a + p; y++)
166
- if (w.includes(y)) return !1;
167
- }
168
- return !0;
169
- }, b = (a, m, p, _) => {
170
- for (let g = m; g < m + _; g++) {
171
- const w = l.get(g) || [];
172
- for (let y = a; y < a + p; y++)
173
- w.push(y);
174
- l.set(g, w);
175
- }
176
- }, i = (a, m) => {
177
- let p = 0;
178
- for (; ; ) {
179
- for (let _ = 0; _ <= r - a; _++)
180
- if (c(_, p, a, m))
181
- return { x: _, y: p };
182
- if (p++, p > 100) break;
183
- }
184
- return { x: 0, y: p };
185
- };
186
- for (const a of e) {
187
- const m = i(a.size.width, a.size.height);
188
- o.set(a.id, m), b(m.x, m.y, a.size.width, a.size.height);
189
- }
190
- return o;
191
- }
192
- function U(e, r) {
193
- if (r && r.size > 0) {
194
- const l = /* @__PURE__ */ new Map();
195
- for (const c of e) {
196
- const b = r.get(c.id), i = c.position, a = b ?? i ?? { x: 0, y: 0 };
197
- l.set(c.id, a);
198
- }
199
- return l;
200
- }
201
- if (e.every((l) => l.position !== void 0)) {
202
- const l = /* @__PURE__ */ new Map();
203
- for (const c of e)
204
- l.set(c.id, c.position);
205
- return l;
206
- }
207
- return _e(e);
208
- }
209
- const ye = {
210
- column: 12,
211
- cellHeight: 80,
212
- margin: "10px",
213
- float: !1,
214
- animate: !0,
215
- // Disable responsive column changes - always use 12 columns
216
- columnOpts: {
217
- breakpoints: [{ w: 0, c: 12 }]
218
- // Always 12 columns regardless of width
219
- },
220
- draggable: {
221
- handle: ".grid-stack-item-content"
222
- },
223
- resizable: {
224
- handles: "se"
225
- // Only bottom-right corner
226
- }
227
- };
228
- function be(e, r = {}) {
229
- const { gridOptions: o = {}, resizable: l = !1, autoSave: c = !0, onLayoutChange: b } = r, i = Q(null), a = $(/* @__PURE__ */ new Map()), m = $(!1), p = $(!1), _ = {
230
- ...ye,
231
- ...o,
232
- disableResize: !l
233
- }, g = (t) => {
234
- if (i.value) {
235
- console.warn("[useGridstack] Grid already initialized");
236
- return;
237
- }
238
- const n = F();
239
- a.value = U(e.value, n), i.value = pe.init(_, t), i.value.on("change", w), i.value.on("added", y), i.value.on("removed", I);
240
- const s = e.value.map((d) => {
241
- const f = a.value.get(d.id);
242
- return N(d, f);
243
- });
244
- i.value.load(s), m.value = !0;
245
- }, w = (t, n) => {
246
- if (!p.value) {
247
- for (const s of n) {
248
- const { id: d, position: f } = C(s);
249
- d && a.value.set(d, f);
250
- }
251
- a.value = new Map(a.value), b?.(a.value), c && W();
252
- }
253
- }, y = (t, n) => {
254
- for (const s of n) {
255
- const { id: d, position: f } = C(s);
256
- d && !a.value.has(d) && a.value.set(d, f);
257
- }
258
- a.value = new Map(a.value);
259
- }, I = (t, n) => {
260
- for (const s of n)
261
- s.id && a.value.delete(s.id);
262
- a.value = new Map(a.value);
263
- }, G = () => {
264
- i.value && (i.value.off("change"), i.value.off("added"), i.value.off("removed"), i.value.destroy(!1), i.value = null, m.value = !1);
265
- }, S = (t) => {
266
- if (!i.value) return;
267
- const n = a.value.get(t.id) ?? t.position, s = N(t, n), d = document.querySelector(`[gs-id="${t.id}"]`);
268
- d && i.value.makeWidget(d, s);
269
- }, z = (t) => {
270
- if (!i.value) return;
271
- const n = document.querySelector(`[gs-id="${t}"]`);
272
- n && i.value.removeWidget(n, !1), a.value.delete(t);
273
- }, M = (t, n) => {
274
- if (!i.value) return;
275
- const s = document.querySelector(`[gs-id="${t}"]`);
276
- s && (p.value = !0, i.value.update(s, { x: n.x, y: n.y }), a.value.set(t, n), a.value = new Map(a.value), p.value = !1);
277
- }, W = () => {
278
- J(e.value, a.value);
279
- }, P = () => {
280
- const t = F();
281
- t && (a.value = U(e.value, t), O());
282
- }, E = () => {
283
- a.value = /* @__PURE__ */ new Map();
284
- for (const t of e.value)
285
- t.position && a.value.set(t.id, { ...t.position });
286
- O(), W();
287
- }, O = () => {
288
- if (i.value) {
289
- p.value = !0, i.value.batchUpdate();
290
- for (const t of e.value) {
291
- const n = a.value.get(t.id);
292
- if (n) {
293
- const s = document.querySelector(`[gs-id="${t.id}"]`);
294
- s && i.value.update(s, {
295
- x: n.x,
296
- y: n.y
297
- });
298
- }
299
- }
300
- i.value.batchUpdate(!1), p.value = !1;
301
- }
302
- }, H = (t) => {
303
- if (!i.value) {
304
- t();
305
- return;
306
- }
307
- p.value = !0, i.value.batchUpdate(), t(), i.value.batchUpdate(!1), p.value = !1;
308
- };
309
- return V(
310
- e,
311
- async (t, n) => {
312
- if (!i.value || !m.value) return;
313
- await Y();
314
- const s = t.filter((f) => !n?.some((B) => B.id === f.id)), d = n?.filter((f) => !t.some((B) => B.id === f.id)).map((f) => f.id) ?? [];
315
- for (const f of d)
316
- z(f);
317
- for (const f of s)
318
- S(f);
319
- },
320
- { deep: !1 }
321
- ), X(() => {
322
- G();
323
- }), {
324
- grid: i,
325
- layout: a,
326
- isInitialized: m,
327
- initGrid: g,
328
- destroyGrid: G,
329
- addWidget: S,
330
- removeWidget: z,
331
- updateWidgetPosition: M,
332
- saveLayout: W,
333
- loadLayout: P,
334
- resetToDefaults: E,
335
- batchUpdate: H
336
- };
337
- }
338
- const we = {}, ke = {
339
- class: "dashboard-widget-skeleton",
340
- "aria-hidden": "true"
341
- };
342
- function $e(e, r) {
343
- return u(), v("div", ke, [...r[0] || (r[0] = [
344
- Z('<div class="dashboard-widget-skeleton__header"><div class="dashboard-widget-skeleton__icon"></div><div class="dashboard-widget-skeleton__title"></div></div><div class="dashboard-widget-skeleton__stats"><div class="dashboard-widget-skeleton__stat"></div><div class="dashboard-widget-skeleton__stat"></div><div class="dashboard-widget-skeleton__stat"></div></div><div class="dashboard-widget-skeleton__body"><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w80"></div><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w60"></div><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w90"></div><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w70"></div></div>', 3)
345
- ])]);
346
- }
347
- const xe = /* @__PURE__ */ le(we, [["render", $e]]), Le = ["aria-label"], Se = ["aria-label"], ze = ["gs-id", "gs-x", "gs-y", "gs-w", "gs-h", "aria-label"], We = { class: "grid-stack-item-content" }, De = {
348
- key: 0,
349
- class: "vc-gridstack-dashboard__drag-handle",
350
- "aria-hidden": "true"
351
- }, Ge = {
352
- class: "vc-gridstack-dashboard__live-region",
353
- role: "status",
354
- "aria-live": "polite",
355
- "aria-atomic": "true"
356
- }, Pe = /* @__PURE__ */ L({
357
- __name: "GridstackDashboard",
358
- props: {
359
- showDragHandles: { type: Boolean, default: !1 },
360
- resizable: { type: Boolean, default: !1 },
361
- ariaLabel: { default: "Dashboard widgets. Drag widgets to rearrange." }
362
- },
363
- setup(e, { expose: r }) {
364
- const o = [
365
- { x: 0, y: 0, w: 6, h: 6 },
366
- { x: 6, y: 0, w: 6, h: 6 },
367
- { x: 0, y: 6, w: 6, h: 6 },
368
- { x: 6, y: 6, w: 6, h: 6 }
369
- ];
370
- function l() {
371
- if (typeof window > "u") return null;
372
- try {
373
- const t = window.localStorage.getItem(D);
374
- if (!t) return null;
375
- const n = JSON.parse(t);
376
- if (!Array.isArray(n)) return null;
377
- const s = n.filter(
378
- (d) => !!d && typeof d == "object" && typeof d.w == "number" && typeof d.h == "number" && typeof d.x == "number" && typeof d.y == "number"
379
- ).map((d) => ({ x: d.x, y: d.y, w: d.w, h: d.h }));
380
- return s.length > 0 ? s : null;
381
- } catch {
382
- return null;
383
- }
384
- }
385
- const c = e, b = $(null), i = $(""), a = ee(ve, $(!0)), m = q(() => a.value ? [] : l() ?? o), p = (t) => ({
386
- gridColumn: `${t.x + 1} / span ${t.w}`,
387
- gridRow: `${t.y + 1} / span ${t.h}`
388
- }), _ = ce(), g = q(() => _.getWidgets()), { layout: w, isInitialized: y, initGrid: I, saveLayout: G, resetToDefaults: S } = be(g, {
389
- resizable: c.resizable,
390
- autoSave: !0,
391
- gridOptions: {
392
- draggable: {
393
- handle: c.showDragHandles ? ".vc-gridstack-dashboard__drag-handle" : ".grid-stack-item-content"
394
- }
395
- },
396
- onLayoutChange: (t) => {
397
- for (const [n, s] of t)
398
- _.updateWidgetPosition(n, s);
399
- W("Widget positions updated");
400
- }
401
- }), z = (t) => w.value.get(t), M = (t, n) => `${t.name || t.id}, widget ${n + 1} of ${g.value.length}. Drag to reorder.`, W = (t) => {
402
- i.value = t, setTimeout(() => {
403
- i.value = "";
404
- }, 1e3);
405
- }, P = async () => {
406
- await Y(), b.value && !y.value && I(b.value);
407
- };
408
- return te(P), V(a, (t) => {
409
- t && P();
410
- }), r({
411
- rearrangeWidgets: () => {
412
- S();
413
- },
414
- recalculateLayout: () => {
415
- },
416
- saveLayout: G,
417
- useBuiltInPositions: () => (S(), !0)
418
- }), (t, n) => (u(), A(ue, {
419
- "no-padding": "",
420
- class: "vc-gridstack-dashboard"
421
- }, {
422
- default: ae(() => [
423
- R(a) ? (u(), v("div", {
424
- key: 1,
425
- ref_key: "gridRef",
426
- ref: b,
427
- class: "grid-stack vc-gridstack-dashboard__grid",
428
- role: "list",
429
- "aria-label": e.ariaLabel
430
- }, [
431
- (u(!0), v(j, null, K(g.value, (s, d) => (u(), v("div", {
432
- key: s.id,
433
- class: "grid-stack-item",
434
- "gs-id": s.id,
435
- "gs-x": z(s.id)?.x ?? s.position?.x ?? 0,
436
- "gs-y": z(s.id)?.y ?? s.position?.y ?? 0,
437
- "gs-w": s.size.width,
438
- "gs-h": s.size.height,
439
- "gs-min-w": 2,
440
- "gs-min-h": 2,
441
- role: "listitem",
442
- "aria-label": M(s, d)
443
- }, [
444
- h("div", We, [
445
- e.showDragHandles ? (u(), v("div", De, [...n[0] || (n[0] = [
446
- h("svg", {
447
- width: "16",
448
- height: "16",
449
- viewBox: "0 0 16 16",
450
- fill: "currentColor"
451
- }, [
452
- h("circle", {
453
- cx: "5",
454
- cy: "3",
455
- r: "1.5"
456
- }),
457
- h("circle", {
458
- cx: "11",
459
- cy: "3",
460
- r: "1.5"
461
- }),
462
- h("circle", {
463
- cx: "5",
464
- cy: "8",
465
- r: "1.5"
466
- }),
467
- h("circle", {
468
- cx: "11",
469
- cy: "8",
470
- r: "1.5"
471
- }),
472
- h("circle", {
473
- cx: "5",
474
- cy: "13",
475
- r: "1.5"
476
- }),
477
- h("circle", {
478
- cx: "11",
479
- cy: "13",
480
- r: "1.5"
481
- })
482
- ], -1)
483
- ])])) : x("", !0),
484
- (u(), A(se(s.component), re({ ref_for: !0 }, s.props || {}, { class: "vc-gridstack-dashboard__widget-content" }), null, 16))
485
- ])
486
- ], 8, ze))), 128))
487
- ], 8, Se)) : (u(), v("div", {
488
- key: 0,
489
- class: "vc-gridstack-dashboard__skeleton-grid",
490
- role: "status",
491
- "aria-busy": "true",
492
- "aria-label": e.ariaLabel
493
- }, [
494
- (u(!0), v(j, null, K(m.value, (s, d) => (u(), A(xe, {
495
- key: `skeleton-${d}`,
496
- class: "vc-gridstack-dashboard__skeleton-item",
497
- style: oe(p(s))
498
- }, null, 8, ["style"]))), 128))
499
- ], 8, Le)),
500
- h("div", Ge, T(i.value), 1)
501
- ]),
502
- _: 1
503
- }));
504
- }
505
- }), wa = /* @__PURE__ */ L({
506
- __name: "DraggableDashboard",
507
- props: {
508
- showDragHandles: { type: Boolean, default: !1 },
509
- resizable: { type: Boolean, default: !1 },
510
- ariaLabel: { default: "Dashboard widgets. Drag widgets to rearrange." }
511
- },
512
- setup(e, { expose: r }) {
513
- const o = $(null);
514
- return r({
515
- rearrangeWidgets: () => {
516
- o.value?.rearrangeWidgets?.();
517
- },
518
- recalculateLayout: () => {
519
- o.value?.recalculateLayout?.();
520
- },
521
- saveLayout: () => {
522
- o.value?.saveLayout?.();
523
- },
524
- useBuiltInPositions: () => o.value?.useBuiltInPositions?.() ?? !1
525
- }), (a, m) => (u(), A(Pe, {
526
- ref_key: "dashboardRef",
527
- ref: o,
528
- "show-drag-handles": e.showDragHandles,
529
- resizable: e.resizable,
530
- "aria-label": e.ariaLabel
531
- }, null, 8, ["show-drag-handles", "resizable", "aria-label"]));
532
- }
533
- }), ka = N, $a = C, xa = F, La = J, Sa = U, za = ge, Wa = D, Ae = { class: "dashboard-widget-card" }, Te = { class: "dashboard-widget-card__header" }, Ie = { class: "dashboard-widget-card__header-content" }, Me = {
534
- key: 0,
535
- class: "dashboard-widget-card__icon-wrapper"
536
- }, Oe = { class: "dashboard-widget-card__title" }, Be = {
537
- key: 0,
538
- class: "dashboard-widget-card__actions"
539
- }, Re = {
540
- key: 0,
541
- class: "dashboard-widget-card__stats"
542
- }, Ne = { class: "dashboard-widget-card__body" }, Ce = {
543
- key: 1,
544
- class: "dashboard-widget-card__footer"
545
- }, Da = /* @__PURE__ */ L({
546
- __name: "dashboard-widget-card",
547
- props: {
548
- header: {},
549
- icon: {},
550
- loading: { type: Boolean }
551
- },
552
- setup(e) {
553
- const r = e;
554
- return (o, l) => (u(), v("div", Ae, [
555
- h("div", Te, [
556
- k(o.$slots, "header", {}, () => [
557
- h("div", Ie, [
558
- e.icon ? (u(), v("div", Me, [
559
- ie(R(fe), {
560
- class: "dashboard-widget-card__icon",
561
- icon: e.icon,
562
- size: "l"
563
- }, null, 8, ["icon"])
564
- ])) : x("", !0),
565
- h("div", Oe, T(r.header), 1)
566
- ])
567
- ]),
568
- o.$slots.actions ? (u(), v("div", Be, [
569
- k(o.$slots, "actions")
570
- ])) : x("", !0)
571
- ]),
572
- o.$slots.stats ? (u(), v("div", Re, [
573
- k(o.$slots, "stats")
574
- ])) : x("", !0),
575
- ne((u(), v("div", Ne, [
576
- k(o.$slots, "content")
577
- ])), [
578
- [R(me), e.loading]
579
- ]),
580
- o.$slots.footer ? (u(), v("div", Ce, [
581
- k(o.$slots, "footer")
582
- ])) : x("", !0)
583
- ]));
584
- }
585
- }), Fe = { class: "dashboard-stat-item" }, Ue = { class: "dashboard-stat-item__label" }, Ga = /* @__PURE__ */ L({
586
- __name: "dashboard-stat-item",
587
- props: {
588
- value: {},
589
- label: {},
590
- variant: {}
591
- },
592
- setup(e) {
593
- return (r, o) => (u(), v("div", Fe, [
594
- h("div", {
595
- class: de(["dashboard-stat-item__value", e.variant ? `dashboard-stat-item__value--${e.variant}` : ""])
596
- }, T(e.value), 3),
597
- h("div", Ue, T(e.label), 1)
598
- ]));
599
- }
600
- }), Ee = { class: "tw-divide-y tw-divide-[var(--neutrals-200)]" }, Pa = /* @__PURE__ */ L({
601
- __name: "dashboard-feed-list",
602
- setup(e) {
603
- return (r, o) => (u(), v("div", Ee, [
604
- k(r.$slots, "default")
605
- ]));
606
- }
607
- }), He = { class: "tw-flex tw-items-center tw-gap-2.5 tw-min-w-0" }, qe = {
608
- key: 0,
609
- class: "tw-flex tw-items-center tw-gap-3 tw-flex-shrink-0 tw-ml-3"
610
- }, Aa = /* @__PURE__ */ L({
611
- __name: "dashboard-feed-row",
612
- emits: ["click"],
613
- setup(e) {
614
- return (r, o) => (u(), v("div", {
615
- class: "dashboard-feed-row",
616
- onClick: o[0] || (o[0] = (l) => r.$emit("click"))
617
- }, [
618
- h("div", He, [
619
- k(r.$slots, "default")
620
- ]),
621
- r.$slots.trailing ? (u(), v("div", qe, [
622
- k(r.$slots, "trailing")
623
- ])) : x("", !0)
624
- ]));
625
- }
626
- });
627
- export {
628
- Wa as L,
629
- Pa as _,
630
- Aa as a,
631
- Ga as b,
632
- Da as c,
633
- wa as d,
634
- za as e,
635
- $a as f,
636
- xa as l,
637
- Sa as m,
638
- La as s,
639
- ka as t,
640
- be as u
641
- };