@wishbone-media/spark 0.20.0 → 0.21.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.
- package/dist/index.js +1634 -1095
- package/package.json +1 -1
- package/src/components/SparkAlert.vue +5 -1
- package/src/components/SparkButton.vue +2 -0
- package/src/components/SparkNotificationOutlet.vue +68 -0
- package/src/components/SparkOverlay.vue +15 -2
- package/src/components/SparkToastContainer.vue +184 -0
- package/src/components/index.js +2 -0
- package/src/composables/index.js +1 -0
- package/src/composables/sparkNotificationService.js +459 -0
- package/src/composables/sparkOverlayService.js +4 -4
- package/src/composables/useSparkOverlay.js +6 -3
package/dist/index.js
CHANGED
|
@@ -1,149 +1,156 @@
|
|
|
1
|
-
import { computed as
|
|
2
|
-
import { library as
|
|
3
|
-
import { FontAwesomeIcon as
|
|
4
|
-
import { faCloudDownload as
|
|
5
|
-
import { defineStore as
|
|
6
|
-
import { TransitionRoot as
|
|
7
|
-
import
|
|
8
|
-
import { range as
|
|
9
|
-
import { HotTable as
|
|
1
|
+
import { computed as S, resolveComponent as A, createElementBlock as g, openBlock as m, normalizeClass as P, createElementVNode as d, createCommentVNode as $, createVNode as v, unref as x, renderSlot as O, reactive as q, Fragment as R, renderList as z, toDisplayString as L, createBlock as M, resolveDynamicComponent as I, markRaw as de, ref as E, watch as j, Transition as De, withCtx as C, normalizeProps as Ne, mergeProps as D, createTextVNode as B, Teleport as qe, TransitionGroup as ne, inject as Le, provide as Ze, toHandlers as Pe, onMounted as ge, withModifiers as X, useSlots as He, onUnmounted as Ke, h as ve } from "vue";
|
|
2
|
+
import { library as Ve, icon as le } from "@fortawesome/fontawesome-svg-core";
|
|
3
|
+
import { FontAwesomeIcon as Ue } from "@fortawesome/vue-fontawesome";
|
|
4
|
+
import { faCloudDownload as Ge, faBolt as We, faUndo as Ye, faEye as Xe, faSignOut as Je, faXmark as Qe, faTrash as et, faTimes as tt, faStreetView as st, faSortUp as at, faSortDown as ot, faSort as rt, faScaleBalanced as nt, faSatelliteDish as lt, faLayerPlus as it, faLaptopMobile as ct, faInfoCircle as ut, faGripDotsVertical as dt, faGearComplex as pt, faFlag as ft, faFaceSmileWink as mt, faFaceSmileRelaxed as ht, faExclamationTriangle as gt, faEllipsisVertical as yt, faEllipsis as vt, faEdit as bt, faComments as xt, faCircleXmark as kt, faCircleUser as _t, faChevronUp as wt, faChevronRight as St, faChevronLeft as Ct, faChevronDown as $t, faCheckCircle as Tt, faCheck as Lt, faBullhorn as Pt, faBellRing as Ht, faBarsSort as Vt, faArrowRightToLine as Mt, faArrowLeftToLine as Rt } from "@fortawesome/pro-regular-svg-icons";
|
|
5
|
+
import { defineStore as ie } from "pinia";
|
|
6
|
+
import { TransitionRoot as Me, Dialog as Re, TransitionChild as ue, DialogPanel as Be } from "@headlessui/vue";
|
|
7
|
+
import pe from "nprogress";
|
|
8
|
+
import { range as Bt, get as U, find as Et, has as At } from "lodash";
|
|
9
|
+
import { HotTable as Ft } from "@handsontable/vue3";
|
|
10
10
|
import "handsontable/styles/handsontable.css";
|
|
11
11
|
import "handsontable/styles/ht-theme-classic.css";
|
|
12
|
-
import { registerPlugin as
|
|
13
|
-
import { registerAllCellTypes as
|
|
14
|
-
import { useDebounceFn as
|
|
15
|
-
import { registerRenderer as
|
|
16
|
-
import { useRouter as
|
|
17
|
-
import
|
|
18
|
-
var
|
|
12
|
+
import { registerPlugin as ce, AutoColumnSize as Ot, CopyPaste as zt, StretchColumns as jt, NestedHeaders as It } from "handsontable/plugins";
|
|
13
|
+
import { registerAllCellTypes as Dt } from "handsontable/cellTypes";
|
|
14
|
+
import { useDebounceFn as Ee, watchDebounced as be } from "@vueuse/core";
|
|
15
|
+
import { registerRenderer as Nt, baseRenderer as qt } from "handsontable/renderers";
|
|
16
|
+
import { useRouter as W, useRoute as re } from "vue-router";
|
|
17
|
+
import oe from "axios";
|
|
18
|
+
var Zt = {
|
|
19
19
|
prefix: "fad",
|
|
20
20
|
iconName: "sort-up",
|
|
21
21
|
icon: [384, 512, ["sort-asc"], "f0de", ["", "M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z"]]
|
|
22
|
-
},
|
|
22
|
+
}, Kt = {
|
|
23
23
|
prefix: "fad",
|
|
24
24
|
iconName: "sort",
|
|
25
25
|
icon: [384, 512, ["unsorted"], "f0dc", ["M2.4 307.8c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z", "M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z"]]
|
|
26
|
-
},
|
|
26
|
+
}, Ut = {
|
|
27
27
|
prefix: "fad",
|
|
28
28
|
iconName: "sort-down",
|
|
29
29
|
icon: [384, 512, ["sort-desc"], "f0dd", ["", "M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z"]]
|
|
30
30
|
};
|
|
31
|
-
const
|
|
32
|
-
farArrowLeftToLine:
|
|
33
|
-
farArrowRightToLine:
|
|
34
|
-
farBarsSort:
|
|
35
|
-
farBellRing:
|
|
36
|
-
farBullhorn:
|
|
37
|
-
farCheck:
|
|
38
|
-
farCheckCircle:
|
|
39
|
-
farChevronDown:
|
|
40
|
-
farChevronLeft:
|
|
41
|
-
farChevronRight:
|
|
42
|
-
farChevronUp:
|
|
43
|
-
farCircleUser:
|
|
44
|
-
farCircleXmark:
|
|
45
|
-
farComments:
|
|
46
|
-
farEdit:
|
|
47
|
-
farEllipsis:
|
|
48
|
-
farEllipsisVertical:
|
|
49
|
-
farExclamationTriangle:
|
|
50
|
-
farFaceSmileRelaxed:
|
|
51
|
-
farFaceSmileWink:
|
|
52
|
-
farFlag:
|
|
53
|
-
farGearComplex:
|
|
54
|
-
farGripDotsVertical:
|
|
55
|
-
farInfoCircle:
|
|
56
|
-
farLaptopMobile:
|
|
57
|
-
farLayerPlus:
|
|
58
|
-
farSatelliteDish:
|
|
59
|
-
farScaleBalanced:
|
|
60
|
-
farSort:
|
|
61
|
-
farSortDown:
|
|
62
|
-
farSortUp:
|
|
63
|
-
farStreetView:
|
|
64
|
-
farTimes:
|
|
65
|
-
farTrash:
|
|
66
|
-
farXmark:
|
|
67
|
-
farSignOut:
|
|
68
|
-
farEye:
|
|
69
|
-
farUndo:
|
|
70
|
-
farBolt:
|
|
71
|
-
farCloudDownload:
|
|
72
|
-
fadSort:
|
|
73
|
-
fadSortDown:
|
|
74
|
-
fadSortUp:
|
|
31
|
+
const F = {
|
|
32
|
+
farArrowLeftToLine: Rt,
|
|
33
|
+
farArrowRightToLine: Mt,
|
|
34
|
+
farBarsSort: Vt,
|
|
35
|
+
farBellRing: Ht,
|
|
36
|
+
farBullhorn: Pt,
|
|
37
|
+
farCheck: Lt,
|
|
38
|
+
farCheckCircle: Tt,
|
|
39
|
+
farChevronDown: $t,
|
|
40
|
+
farChevronLeft: Ct,
|
|
41
|
+
farChevronRight: St,
|
|
42
|
+
farChevronUp: wt,
|
|
43
|
+
farCircleUser: _t,
|
|
44
|
+
farCircleXmark: kt,
|
|
45
|
+
farComments: xt,
|
|
46
|
+
farEdit: bt,
|
|
47
|
+
farEllipsis: vt,
|
|
48
|
+
farEllipsisVertical: yt,
|
|
49
|
+
farExclamationTriangle: gt,
|
|
50
|
+
farFaceSmileRelaxed: ht,
|
|
51
|
+
farFaceSmileWink: mt,
|
|
52
|
+
farFlag: ft,
|
|
53
|
+
farGearComplex: pt,
|
|
54
|
+
farGripDotsVertical: dt,
|
|
55
|
+
farInfoCircle: ut,
|
|
56
|
+
farLaptopMobile: ct,
|
|
57
|
+
farLayerPlus: it,
|
|
58
|
+
farSatelliteDish: lt,
|
|
59
|
+
farScaleBalanced: nt,
|
|
60
|
+
farSort: rt,
|
|
61
|
+
farSortDown: ot,
|
|
62
|
+
farSortUp: at,
|
|
63
|
+
farStreetView: st,
|
|
64
|
+
farTimes: tt,
|
|
65
|
+
farTrash: et,
|
|
66
|
+
farXmark: Qe,
|
|
67
|
+
farSignOut: Je,
|
|
68
|
+
farEye: Xe,
|
|
69
|
+
farUndo: Ye,
|
|
70
|
+
farBolt: We,
|
|
71
|
+
farCloudDownload: Ge,
|
|
72
|
+
fadSort: Kt,
|
|
73
|
+
fadSortDown: Ut,
|
|
74
|
+
fadSortUp: Zt
|
|
75
75
|
};
|
|
76
|
-
function
|
|
77
|
-
Object.assign(
|
|
76
|
+
function Kr(e) {
|
|
77
|
+
Object.assign(F, e), Ve.add(...Object.values(e));
|
|
78
78
|
}
|
|
79
|
-
function
|
|
80
|
-
|
|
79
|
+
function Ur(e) {
|
|
80
|
+
Ve.add(...Object.values(F)), e.component("FontAwesomeIcon", Ue);
|
|
81
81
|
}
|
|
82
|
-
const
|
|
82
|
+
const Gt = { class: "flex items-center" }, Wt = { class: "shrink-0 self-start" }, Yt = { class: "ml-3" }, Xt = {
|
|
83
|
+
key: 0,
|
|
84
|
+
class: "ml-auto pl-3 pt-1 self-start"
|
|
85
|
+
}, Jt = { class: "-mx-1.5 -my-1.5" }, te = {
|
|
83
86
|
__name: "SparkAlert",
|
|
84
87
|
props: {
|
|
85
88
|
type: {
|
|
86
89
|
type: String,
|
|
87
90
|
default: "info",
|
|
88
91
|
validator: (e) => ["success", "warning", "danger", "info"].includes(e)
|
|
92
|
+
},
|
|
93
|
+
closeable: {
|
|
94
|
+
type: Boolean,
|
|
95
|
+
default: !0
|
|
89
96
|
}
|
|
90
97
|
},
|
|
91
98
|
emits: ["close"],
|
|
92
99
|
setup(e) {
|
|
93
|
-
const s = e, t =
|
|
100
|
+
const s = e, t = S(() => ({
|
|
94
101
|
success: "bg-green-50 border-green-200 text-green-700",
|
|
95
102
|
warning: "bg-yellow-50 border-yellow-200 text-yellow-700",
|
|
96
103
|
danger: "bg-red-50 border-red-200 text-red-700",
|
|
97
104
|
info: "bg-blue-50 border-blue-200 text-blue-700"
|
|
98
|
-
})[s.type]), a =
|
|
105
|
+
})[s.type]), a = S(() => ({
|
|
99
106
|
success: "text-green-400",
|
|
100
107
|
warning: "text-yellow-400",
|
|
101
108
|
danger: "text-red-400",
|
|
102
109
|
info: "text-blue-400"
|
|
103
|
-
})[s.type]), l =
|
|
110
|
+
})[s.type]), l = S(() => ({
|
|
104
111
|
success: "farCheckCircle",
|
|
105
112
|
warning: "farExclamationTriangle",
|
|
106
113
|
danger: "farCircleXmark",
|
|
107
114
|
info: "farInfoCircle"
|
|
108
|
-
})[s.type]), n =
|
|
115
|
+
})[s.type]), n = S(() => ({
|
|
109
116
|
success: "text-green-400 hover:bg-green-100",
|
|
110
117
|
warning: "text-yellow-400 hover:bg-yellow-100",
|
|
111
118
|
danger: "text-red-400 hover:bg-red-100",
|
|
112
119
|
info: "text-blue-400 hover:bg-blue-100"
|
|
113
120
|
})[s.type]);
|
|
114
|
-
return (o,
|
|
115
|
-
const r =
|
|
116
|
-
return
|
|
117
|
-
class:
|
|
121
|
+
return (o, c) => {
|
|
122
|
+
const r = A("font-awesome-icon");
|
|
123
|
+
return m(), g("div", {
|
|
124
|
+
class: P(["rounded-md border p-4", t.value])
|
|
118
125
|
}, [
|
|
119
|
-
d("div",
|
|
120
|
-
d("div",
|
|
126
|
+
d("div", Gt, [
|
|
127
|
+
d("div", Wt, [
|
|
121
128
|
v(r, {
|
|
122
|
-
icon:
|
|
123
|
-
class:
|
|
129
|
+
icon: x(F)[l.value],
|
|
130
|
+
class: P(a.value)
|
|
124
131
|
}, null, 8, ["icon", "class"])
|
|
125
132
|
]),
|
|
126
|
-
d("div",
|
|
127
|
-
|
|
133
|
+
d("div", Yt, [
|
|
134
|
+
O(o.$slots, "default")
|
|
128
135
|
]),
|
|
129
|
-
|
|
130
|
-
d("div",
|
|
136
|
+
e.closeable ? (m(), g("div", Xt, [
|
|
137
|
+
d("div", Jt, [
|
|
131
138
|
d("button", {
|
|
132
139
|
type: "button",
|
|
133
|
-
class:
|
|
134
|
-
onClick:
|
|
140
|
+
class: P(["inline-flex rounded-md px-2 py-1.5", n.value]),
|
|
141
|
+
onClick: c[0] || (c[0] = (i) => o.$emit("close"))
|
|
135
142
|
}, [
|
|
136
143
|
v(r, {
|
|
137
|
-
icon:
|
|
144
|
+
icon: x(F).farXmark
|
|
138
145
|
}, null, 8, ["icon"])
|
|
139
146
|
], 2)
|
|
140
147
|
])
|
|
141
|
-
])
|
|
148
|
+
])) : $("", !0)
|
|
142
149
|
])
|
|
143
150
|
], 2);
|
|
144
151
|
};
|
|
145
152
|
}
|
|
146
|
-
},
|
|
153
|
+
}, fe = [
|
|
147
154
|
{
|
|
148
155
|
name: "Bolt",
|
|
149
156
|
description: "Job management",
|
|
@@ -192,41 +199,41 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
192
199
|
href: "https://tabula.letsbolt.io",
|
|
193
200
|
icon: "farCompass"
|
|
194
201
|
}
|
|
195
|
-
],
|
|
196
|
-
const e =
|
|
197
|
-
apps: [...
|
|
202
|
+
], Ae = ie("sparkAppSelector", () => {
|
|
203
|
+
const e = q({
|
|
204
|
+
apps: [...fe]
|
|
198
205
|
}), s = (n = {}) => {
|
|
199
206
|
if (n.apps && Array.isArray(n.apps)) {
|
|
200
|
-
const o = n.apps.filter((
|
|
201
|
-
const r =
|
|
202
|
-
return r || console.warn("useSparkAppSelectorStore: Invalid app object",
|
|
207
|
+
const o = n.apps.filter((c) => {
|
|
208
|
+
const r = c.name && c.description && c.icon && c.href;
|
|
209
|
+
return r || console.warn("useSparkAppSelectorStore: Invalid app object", c), r;
|
|
203
210
|
});
|
|
204
|
-
e.apps = o.map((
|
|
205
|
-
name:
|
|
206
|
-
description:
|
|
207
|
-
icon:
|
|
208
|
-
href:
|
|
211
|
+
e.apps = o.map((c) => ({
|
|
212
|
+
name: c.name,
|
|
213
|
+
description: c.description,
|
|
214
|
+
icon: c.icon,
|
|
215
|
+
href: c.href
|
|
209
216
|
}));
|
|
210
217
|
return;
|
|
211
218
|
}
|
|
212
219
|
if (n.appHrefs && typeof n.appHrefs == "object") {
|
|
213
220
|
const o = /* @__PURE__ */ new Map();
|
|
214
|
-
Object.keys(n.appHrefs).forEach((
|
|
215
|
-
o.set(
|
|
216
|
-
}), e.apps =
|
|
217
|
-
const r = o.get(
|
|
221
|
+
Object.keys(n.appHrefs).forEach((c) => {
|
|
222
|
+
o.set(c.toLowerCase(), n.appHrefs[c]);
|
|
223
|
+
}), e.apps = fe.map((c) => {
|
|
224
|
+
const r = o.get(c.name.toLowerCase());
|
|
218
225
|
return {
|
|
219
|
-
...
|
|
220
|
-
href: r ||
|
|
226
|
+
...c,
|
|
227
|
+
href: r || c.href
|
|
221
228
|
};
|
|
222
229
|
});
|
|
223
230
|
return;
|
|
224
231
|
}
|
|
225
|
-
e.apps = [...
|
|
226
|
-
}, t =
|
|
232
|
+
e.apps = [...fe];
|
|
233
|
+
}, t = S(() => e.apps), a = (n) => {
|
|
227
234
|
if (!n) return null;
|
|
228
235
|
const o = n.toLowerCase();
|
|
229
|
-
return e.apps.find((
|
|
236
|
+
return e.apps.find((c) => c.name.toLowerCase() === o) || null;
|
|
230
237
|
};
|
|
231
238
|
return {
|
|
232
239
|
state: e,
|
|
@@ -238,8 +245,8 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
238
245
|
return o ? o.icon : "";
|
|
239
246
|
}
|
|
240
247
|
};
|
|
241
|
-
}),
|
|
242
|
-
const e =
|
|
248
|
+
}), Fe = ie("sparkApp", () => {
|
|
249
|
+
const e = q({
|
|
243
250
|
app: "",
|
|
244
251
|
homeRoute: "dashboard",
|
|
245
252
|
showBrandSelector: !0,
|
|
@@ -251,16 +258,16 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
251
258
|
e.app = t.app || "", e.homeRoute = t.homeRoute ?? "dashboard", e.showBrandSelector = t.showBrandSelector ?? !0, e.showAppSelector = t.showAppSelector ?? !0;
|
|
252
259
|
}
|
|
253
260
|
};
|
|
254
|
-
}),
|
|
261
|
+
}), Qt = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, es = { class: "flex flex-1 flex-col" }, ts = { class: "divide-y divide-gray-200" }, ss = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, as = { class: "ml-auto flex items-center" }, os = ["href", "onClick"], rs = { class: "gap-y-1" }, ns = { class: "text-base text-gray-800 flex items-center" }, ls = { class: "font-medium" }, is = {
|
|
255
262
|
key: 0,
|
|
256
263
|
class: "inline-flex items-center rounded-full bg-green-100 px-1.5 py-0.5 text-xs font-medium text-green-700 ml-1"
|
|
257
|
-
},
|
|
264
|
+
}, cs = { class: "text-sm text-gray-500" }, us = { class: "ml-auto flex items-center" }, ds = { class: "mt-auto" }, ps = {
|
|
258
265
|
key: 0,
|
|
259
266
|
class: "p-6"
|
|
260
|
-
},
|
|
267
|
+
}, fs = {
|
|
261
268
|
key: 1,
|
|
262
269
|
class: "bg-gray-50 p-6"
|
|
263
|
-
},
|
|
270
|
+
}, ms = {
|
|
264
271
|
__name: "SparkAppSelector",
|
|
265
272
|
props: {
|
|
266
273
|
bottomSlot: {
|
|
@@ -274,62 +281,62 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
274
281
|
},
|
|
275
282
|
emits: ["close", "select"],
|
|
276
283
|
setup(e, { emit: s }) {
|
|
277
|
-
const t = s, a =
|
|
278
|
-
const
|
|
284
|
+
const t = s, a = Ae(), l = Fe(), n = S(() => {
|
|
285
|
+
const c = l.state.app;
|
|
279
286
|
return a.state.apps.map((r) => ({
|
|
280
287
|
...r,
|
|
281
|
-
current:
|
|
288
|
+
current: c && r.name.toLowerCase() === c.toLowerCase()
|
|
282
289
|
}));
|
|
283
|
-
}), o = (
|
|
284
|
-
t("select",
|
|
290
|
+
}), o = (c, r) => {
|
|
291
|
+
t("select", c);
|
|
285
292
|
};
|
|
286
|
-
return (
|
|
287
|
-
const
|
|
288
|
-
return
|
|
289
|
-
d("div",
|
|
290
|
-
d("div",
|
|
291
|
-
d("div",
|
|
293
|
+
return (c, r) => {
|
|
294
|
+
const i = A("font-awesome-icon");
|
|
295
|
+
return m(), g("div", Qt, [
|
|
296
|
+
d("div", es, [
|
|
297
|
+
d("div", ts, [
|
|
298
|
+
d("div", ss, [
|
|
292
299
|
r[1] || (r[1] = d("div", null, "Mr Group Network", -1)),
|
|
293
|
-
d("div",
|
|
294
|
-
v(
|
|
295
|
-
icon:
|
|
300
|
+
d("div", as, [
|
|
301
|
+
v(i, {
|
|
302
|
+
icon: x(F).farTimes,
|
|
296
303
|
class: "h-[15px] w-[15px] shrink-0 text-gray-400 cursor-pointer",
|
|
297
|
-
onClick: r[0] || (r[0] = (
|
|
304
|
+
onClick: r[0] || (r[0] = (u) => t("close"))
|
|
298
305
|
}, null, 8, ["icon"])
|
|
299
306
|
])
|
|
300
307
|
]),
|
|
301
|
-
(
|
|
302
|
-
key:
|
|
303
|
-
href:
|
|
308
|
+
(m(!0), g(R, null, z(n.value, (u) => (m(), g("a", {
|
|
309
|
+
key: u.name,
|
|
310
|
+
href: u.href,
|
|
304
311
|
target: "_blank",
|
|
305
|
-
class:
|
|
306
|
-
onClick: (
|
|
312
|
+
class: P([u.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
|
|
313
|
+
onClick: (p) => u.current ? p.preventDefault() : o(u)
|
|
307
314
|
}, [
|
|
308
|
-
d("div",
|
|
309
|
-
d("div",
|
|
310
|
-
d("div",
|
|
311
|
-
|
|
315
|
+
d("div", rs, [
|
|
316
|
+
d("div", ns, [
|
|
317
|
+
d("div", ls, L(u.name), 1),
|
|
318
|
+
u.current ? (m(), g("span", is, " Active ")) : $("", !0)
|
|
312
319
|
]),
|
|
313
|
-
d("div",
|
|
320
|
+
d("div", cs, L(u.description), 1)
|
|
314
321
|
]),
|
|
315
|
-
d("div",
|
|
316
|
-
v(
|
|
317
|
-
class:
|
|
318
|
-
icon:
|
|
322
|
+
d("div", us, [
|
|
323
|
+
v(i, {
|
|
324
|
+
class: P([u.current ? "text-gray-700" : "text-gray-400", "h-5 w-5 shrink-0"]),
|
|
325
|
+
icon: x(F)[u.icon]
|
|
319
326
|
}, null, 8, ["class", "icon"])
|
|
320
327
|
])
|
|
321
|
-
], 10,
|
|
328
|
+
], 10, os))), 128)),
|
|
322
329
|
r[2] || (r[2] = d("div", null, null, -1))
|
|
323
330
|
]),
|
|
324
|
-
d("div",
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
e.bottomSlot ? (
|
|
331
|
+
d("div", ds, [
|
|
332
|
+
c.$slots.bottom || e.bottomSlot ? (m(), g("div", ps, [
|
|
333
|
+
O(c.$slots, "bottom", {}, () => [
|
|
334
|
+
e.bottomSlot ? (m(), M(I(e.bottomSlot), { key: 0 })) : $("", !0)
|
|
328
335
|
])
|
|
329
336
|
])) : $("", !0),
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
e.footerSlot ? (
|
|
337
|
+
c.$slots.footer || e.footerSlot ? (m(), g("div", fs, [
|
|
338
|
+
O(c.$slots, "footer", {}, () => [
|
|
339
|
+
e.footerSlot ? (m(), M(I(e.footerSlot), { key: 0 })) : $("", !0)
|
|
333
340
|
])
|
|
334
341
|
])) : $("", !0)
|
|
335
342
|
])
|
|
@@ -337,10 +344,530 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
337
344
|
]);
|
|
338
345
|
};
|
|
339
346
|
}
|
|
340
|
-
},
|
|
347
|
+
}, Oe = {
|
|
348
|
+
success: 5e3,
|
|
349
|
+
info: 5e3,
|
|
350
|
+
warning: 5e3,
|
|
351
|
+
danger: 0
|
|
352
|
+
// sticky by default
|
|
353
|
+
}, xe = ["top-left", "top-right", "center", "bottom-left", "bottom-right"];
|
|
354
|
+
function hs() {
|
|
355
|
+
const e = q({
|
|
356
|
+
isVisible: !1,
|
|
357
|
+
type: "info",
|
|
358
|
+
message: null,
|
|
359
|
+
component: null,
|
|
360
|
+
props: {},
|
|
361
|
+
closeable: !0,
|
|
362
|
+
duration: null
|
|
363
|
+
});
|
|
364
|
+
let s = null, t = 0, a = !1, l = null;
|
|
365
|
+
const n = () => {
|
|
366
|
+
s && (clearTimeout(s), s = null), t = 0, a = !1, l = null;
|
|
367
|
+
}, o = () => {
|
|
368
|
+
n(), e.isVisible = !1;
|
|
369
|
+
}, c = (f) => {
|
|
370
|
+
f <= 0 || (t = f, l = Date.now(), s = setTimeout(() => {
|
|
371
|
+
o();
|
|
372
|
+
}, f));
|
|
373
|
+
};
|
|
374
|
+
return {
|
|
375
|
+
state: e,
|
|
376
|
+
show: (f = {}) => {
|
|
377
|
+
n();
|
|
378
|
+
const {
|
|
379
|
+
type: y = "info",
|
|
380
|
+
message: k = null,
|
|
381
|
+
component: h = null,
|
|
382
|
+
props: _ = {},
|
|
383
|
+
closeable: H = !0,
|
|
384
|
+
duration: w = null
|
|
385
|
+
} = f;
|
|
386
|
+
e.type = y, e.message = k, e.component = h ? de(h) : null, e.props = _, e.closeable = H, e.isVisible = !0;
|
|
387
|
+
const b = w !== null ? w : Oe[y];
|
|
388
|
+
e.duration = b, b > 0 && c(b);
|
|
389
|
+
},
|
|
390
|
+
hide: o,
|
|
391
|
+
reset: () => {
|
|
392
|
+
o(), e.type = "info", e.message = null, e.component = null, e.props = {}, e.closeable = !0, e.duration = null;
|
|
393
|
+
},
|
|
394
|
+
pause: () => {
|
|
395
|
+
if (!s || a) return;
|
|
396
|
+
clearTimeout(s), s = null;
|
|
397
|
+
const f = Date.now() - l;
|
|
398
|
+
t = Math.max(0, t - f), a = !0;
|
|
399
|
+
},
|
|
400
|
+
resume: () => {
|
|
401
|
+
!a || t <= 0 || (a = !1, l = Date.now(), s = setTimeout(() => {
|
|
402
|
+
o();
|
|
403
|
+
}, t));
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
class gs {
|
|
408
|
+
constructor() {
|
|
409
|
+
this.outlets = /* @__PURE__ */ new Map(), this.toastState = q({
|
|
410
|
+
toasts: [],
|
|
411
|
+
maxToasts: 3,
|
|
412
|
+
defaultPosition: "bottom-right",
|
|
413
|
+
newestOnTop: !0
|
|
414
|
+
}), this._toastTimers = /* @__PURE__ */ new Map(), this._toastIdCounter = 0;
|
|
415
|
+
}
|
|
416
|
+
// ============================================
|
|
417
|
+
// Banner Notification Methods
|
|
418
|
+
// ============================================
|
|
419
|
+
/**
|
|
420
|
+
* Get or create a notification outlet by name
|
|
421
|
+
* @param {string} name - Outlet name (default: 'default')
|
|
422
|
+
* @returns {Object} Notification outlet instance
|
|
423
|
+
*/
|
|
424
|
+
getOutlet(s = "default") {
|
|
425
|
+
return this.outlets.has(s) || this.outlets.set(s, hs()), this.outlets.get(s);
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Show a banner notification in the specified outlet
|
|
429
|
+
* @param {Object} options - Notification options
|
|
430
|
+
* @param {string} options.type - Alert type: 'success' | 'warning' | 'danger' | 'info'
|
|
431
|
+
* @param {string} options.message - Simple text message (mutually exclusive with component)
|
|
432
|
+
* @param {Component} options.component - Vue component to render (mutually exclusive with message)
|
|
433
|
+
* @param {Object} options.props - Props to pass to the component
|
|
434
|
+
* @param {boolean} options.closeable - Whether to show close button (default: true)
|
|
435
|
+
* @param {number} options.duration - Auto-dismiss duration in ms (0 = sticky, null = use default)
|
|
436
|
+
* @param {string} outletName - Target outlet name (default: 'default')
|
|
437
|
+
*/
|
|
438
|
+
show(s = {}, t = "default") {
|
|
439
|
+
this.getOutlet(t).show(s);
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Hide banner notification in the specified outlet
|
|
443
|
+
* @param {string} outletName - Target outlet name (default: 'default')
|
|
444
|
+
*/
|
|
445
|
+
hide(s = "default") {
|
|
446
|
+
this.getOutlet(s).hide();
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Hide all banner notifications in all outlets
|
|
450
|
+
*/
|
|
451
|
+
hideAll() {
|
|
452
|
+
for (const s of this.outlets.values())
|
|
453
|
+
s.hide();
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Pause auto-dismiss timer for the specified banner outlet
|
|
457
|
+
* @param {string} outletName - Target outlet name (default: 'default')
|
|
458
|
+
*/
|
|
459
|
+
pause(s = "default") {
|
|
460
|
+
this.getOutlet(s).pause();
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Resume auto-dismiss timer for the specified banner outlet
|
|
464
|
+
* @param {string} outletName - Target outlet name (default: 'default')
|
|
465
|
+
*/
|
|
466
|
+
resume(s = "default") {
|
|
467
|
+
this.getOutlet(s).resume();
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Reset and remove a banner outlet
|
|
471
|
+
* @param {string} outletName - Target outlet name (default: 'default')
|
|
472
|
+
*/
|
|
473
|
+
reset(s = "default") {
|
|
474
|
+
const t = this.outlets.get(s);
|
|
475
|
+
t && (t.reset(), this.outlets.delete(s));
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Reset all banner outlets
|
|
479
|
+
*/
|
|
480
|
+
resetAll() {
|
|
481
|
+
for (const s of this.outlets.values())
|
|
482
|
+
s.reset();
|
|
483
|
+
this.outlets.clear();
|
|
484
|
+
}
|
|
485
|
+
// ============================================
|
|
486
|
+
// Toast Notification Methods
|
|
487
|
+
// ============================================
|
|
488
|
+
/**
|
|
489
|
+
* Configure toast defaults
|
|
490
|
+
* @param {Object} options - Configuration options
|
|
491
|
+
* @param {number} options.maxToasts - Maximum visible toasts (default: 3)
|
|
492
|
+
* @param {string} options.defaultPosition - Default position (default: 'bottom-right')
|
|
493
|
+
* @param {boolean} options.newestOnTop - Whether newest toasts appear on top (default: true)
|
|
494
|
+
*/
|
|
495
|
+
configureToasts(s = {}) {
|
|
496
|
+
s.maxToasts !== void 0 && (this.toastState.maxToasts = s.maxToasts), s.defaultPosition !== void 0 && xe.includes(s.defaultPosition) && (this.toastState.defaultPosition = s.defaultPosition), s.newestOnTop !== void 0 && (this.toastState.newestOnTop = s.newestOnTop);
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Show a toast notification
|
|
500
|
+
* @param {Object} options - Toast options
|
|
501
|
+
* @param {string} options.type - Alert type: 'success' | 'warning' | 'danger' | 'info'
|
|
502
|
+
* @param {string} options.message - Simple text message (mutually exclusive with component)
|
|
503
|
+
* @param {Component} options.component - Vue component to render (mutually exclusive with message)
|
|
504
|
+
* @param {Object} options.props - Props to pass to the component
|
|
505
|
+
* @param {boolean} options.closeable - Whether to show close button (default: true)
|
|
506
|
+
* @param {number} options.duration - Auto-dismiss duration in ms (0 = sticky, null = use default)
|
|
507
|
+
* @param {string} options.position - Position: 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center'
|
|
508
|
+
* @returns {number} Toast ID for programmatic dismissal
|
|
509
|
+
*/
|
|
510
|
+
toast(s = {}) {
|
|
511
|
+
const {
|
|
512
|
+
type: t = "info",
|
|
513
|
+
message: a = null,
|
|
514
|
+
component: l = null,
|
|
515
|
+
props: n = {},
|
|
516
|
+
closeable: o = !0,
|
|
517
|
+
duration: c = null,
|
|
518
|
+
position: r = null
|
|
519
|
+
} = s, i = ++this._toastIdCounter, u = r && xe.includes(r) ? r : this.toastState.defaultPosition, p = c !== null ? c : Oe[t], f = {
|
|
520
|
+
id: i,
|
|
521
|
+
type: t,
|
|
522
|
+
message: a,
|
|
523
|
+
component: l ? de(l) : null,
|
|
524
|
+
props: n,
|
|
525
|
+
closeable: o,
|
|
526
|
+
duration: p,
|
|
527
|
+
position: u,
|
|
528
|
+
createdAt: Date.now()
|
|
529
|
+
}, y = this.toastState.toasts.filter((k) => k.position === u);
|
|
530
|
+
if (y.length >= this.toastState.maxToasts) {
|
|
531
|
+
const k = this.toastState.newestOnTop ? y[y.length - 1] : y[0];
|
|
532
|
+
this.hideToast(k.id);
|
|
533
|
+
}
|
|
534
|
+
if (this.toastState.newestOnTop) {
|
|
535
|
+
const k = this.toastState.toasts.findIndex((h) => h.position === u);
|
|
536
|
+
k === -1 ? this.toastState.toasts.push(f) : this.toastState.toasts.splice(k, 0, f);
|
|
537
|
+
} else
|
|
538
|
+
this.toastState.toasts.push(f);
|
|
539
|
+
return p > 0 && this._startToastTimer(i, p), i;
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Hide a specific toast by ID
|
|
543
|
+
* @param {number} toastId - Toast ID to hide
|
|
544
|
+
*/
|
|
545
|
+
hideToast(s) {
|
|
546
|
+
this._clearToastTimer(s);
|
|
547
|
+
const t = this.toastState.toasts.findIndex((a) => a.id === s);
|
|
548
|
+
t !== -1 && this.toastState.toasts.splice(t, 1);
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Hide all toasts
|
|
552
|
+
*/
|
|
553
|
+
hideAllToasts() {
|
|
554
|
+
for (const s of this._toastTimers.keys())
|
|
555
|
+
this._clearToastTimer(s);
|
|
556
|
+
this.toastState.toasts.splice(0, this.toastState.toasts.length);
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Pause auto-dismiss timer for a specific toast
|
|
560
|
+
* @param {number} toastId - Toast ID
|
|
561
|
+
*/
|
|
562
|
+
pauseToast(s) {
|
|
563
|
+
const t = this._toastTimers.get(s);
|
|
564
|
+
if (!t || t.isPaused) return;
|
|
565
|
+
clearTimeout(t.timeout), t.timeout = null;
|
|
566
|
+
const a = Date.now() - t.startedAt;
|
|
567
|
+
t.remainingTime = Math.max(0, t.remainingTime - a), t.isPaused = !0;
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Resume auto-dismiss timer for a specific toast
|
|
571
|
+
* @param {number} toastId - Toast ID
|
|
572
|
+
*/
|
|
573
|
+
resumeToast(s) {
|
|
574
|
+
const t = this._toastTimers.get(s);
|
|
575
|
+
!t || !t.isPaused || t.remainingTime <= 0 || (t.isPaused = !1, t.startedAt = Date.now(), t.timeout = setTimeout(() => {
|
|
576
|
+
this.hideToast(s);
|
|
577
|
+
}, t.remainingTime));
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* Get toasts for a specific position
|
|
581
|
+
* @param {string} position - Position to filter by
|
|
582
|
+
* @returns {Array} Toasts at that position
|
|
583
|
+
*/
|
|
584
|
+
getToastsByPosition(s) {
|
|
585
|
+
return this.toastState.toasts.filter((t) => t.position === s);
|
|
586
|
+
}
|
|
587
|
+
// ============================================
|
|
588
|
+
// Private Toast Timer Methods
|
|
589
|
+
// ============================================
|
|
590
|
+
/**
|
|
591
|
+
* @private
|
|
592
|
+
*/
|
|
593
|
+
_startToastTimer(s, t) {
|
|
594
|
+
const a = {
|
|
595
|
+
timeout: null,
|
|
596
|
+
remainingTime: t,
|
|
597
|
+
startedAt: Date.now(),
|
|
598
|
+
isPaused: !1
|
|
599
|
+
};
|
|
600
|
+
a.timeout = setTimeout(() => {
|
|
601
|
+
this.hideToast(s);
|
|
602
|
+
}, t), this._toastTimers.set(s, a);
|
|
603
|
+
}
|
|
604
|
+
/**
|
|
605
|
+
* @private
|
|
606
|
+
*/
|
|
607
|
+
_clearToastTimer(s) {
|
|
608
|
+
const t = this._toastTimers.get(s);
|
|
609
|
+
t && (t.timeout && clearTimeout(t.timeout), this._toastTimers.delete(s));
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
const G = new gs(), Gr = {
|
|
613
|
+
__name: "SparkNotificationOutlet",
|
|
614
|
+
props: {
|
|
615
|
+
name: {
|
|
616
|
+
type: String,
|
|
617
|
+
default: "default"
|
|
618
|
+
}
|
|
619
|
+
},
|
|
620
|
+
setup(e) {
|
|
621
|
+
const s = e, t = S(() => G.getOutlet(s.name)), a = E(0);
|
|
622
|
+
j(
|
|
623
|
+
() => [t.value.state.message, t.value.state.component, t.value.state.type],
|
|
624
|
+
() => {
|
|
625
|
+
t.value.state.isVisible && a.value++;
|
|
626
|
+
}
|
|
627
|
+
);
|
|
628
|
+
const l = () => {
|
|
629
|
+
G.hide(s.name);
|
|
630
|
+
}, n = () => {
|
|
631
|
+
G.pause(s.name);
|
|
632
|
+
}, o = () => {
|
|
633
|
+
G.resume(s.name);
|
|
634
|
+
};
|
|
635
|
+
return (c, r) => (m(), M(De, {
|
|
636
|
+
"enter-active-class": "transition-all duration-300 ease-out",
|
|
637
|
+
"enter-from-class": "opacity-0 -translate-y-2",
|
|
638
|
+
"enter-to-class": "opacity-100 translate-y-0",
|
|
639
|
+
"leave-active-class": "transition-all duration-200 ease-in",
|
|
640
|
+
"leave-from-class": "opacity-100 translate-y-0",
|
|
641
|
+
"leave-to-class": "opacity-0 -translate-y-2",
|
|
642
|
+
mode: "out-in"
|
|
643
|
+
}, {
|
|
644
|
+
default: C(() => [
|
|
645
|
+
t.value.state.isVisible ? (m(), M(te, {
|
|
646
|
+
key: a.value,
|
|
647
|
+
type: t.value.state.type,
|
|
648
|
+
closeable: t.value.state.closeable,
|
|
649
|
+
onClose: l,
|
|
650
|
+
onMouseenter: n,
|
|
651
|
+
onMouseleave: o
|
|
652
|
+
}, {
|
|
653
|
+
default: C(() => [
|
|
654
|
+
t.value.state.component ? (m(), M(I(t.value.state.component), Ne(D({ key: 0 }, t.value.state.props)), null, 16)) : (m(), g(R, { key: 1 }, [
|
|
655
|
+
B(L(t.value.state.message), 1)
|
|
656
|
+
], 64))
|
|
657
|
+
]),
|
|
658
|
+
_: 1
|
|
659
|
+
}, 8, ["type", "closeable"])) : $("", !0)
|
|
660
|
+
]),
|
|
661
|
+
_: 1
|
|
662
|
+
}));
|
|
663
|
+
}
|
|
664
|
+
}, ys = { class: "fixed top-4 left-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, vs = { class: "fixed top-4 right-4 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, bs = { class: "fixed top-[40%] left-1/2 -translate-x-1/2 -translate-y-1/2 z-[2000] flex flex-col gap-3 max-w-sm w-full pointer-events-none" }, xs = { class: "fixed bottom-4 left-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, ks = { class: "fixed bottom-4 right-4 z-[2000] flex flex-col-reverse gap-3 max-w-sm w-full pointer-events-none" }, Wr = {
|
|
665
|
+
__name: "SparkToastContainer",
|
|
666
|
+
setup(e) {
|
|
667
|
+
const s = G.toastState, t = S(
|
|
668
|
+
() => s.toasts.filter((u) => u.position === "top-left")
|
|
669
|
+
), a = S(
|
|
670
|
+
() => s.toasts.filter((u) => u.position === "top-right")
|
|
671
|
+
), l = S(
|
|
672
|
+
() => s.toasts.filter((u) => u.position === "center")
|
|
673
|
+
), n = S(
|
|
674
|
+
() => s.toasts.filter((u) => u.position === "bottom-left")
|
|
675
|
+
), o = S(
|
|
676
|
+
() => s.toasts.filter((u) => u.position === "bottom-right")
|
|
677
|
+
), c = (u) => {
|
|
678
|
+
G.hideToast(u);
|
|
679
|
+
}, r = (u) => {
|
|
680
|
+
G.pauseToast(u);
|
|
681
|
+
}, i = (u) => {
|
|
682
|
+
G.resumeToast(u);
|
|
683
|
+
};
|
|
684
|
+
return (u, p) => (m(), M(qe, { to: "body" }, [
|
|
685
|
+
d("div", ys, [
|
|
686
|
+
v(ne, {
|
|
687
|
+
"enter-active-class": "transition-all duration-300 ease-out",
|
|
688
|
+
"enter-from-class": "opacity-0 -translate-x-4",
|
|
689
|
+
"enter-to-class": "opacity-100 translate-x-0",
|
|
690
|
+
"leave-active-class": "transition-all duration-200 ease-in",
|
|
691
|
+
"leave-from-class": "opacity-100 translate-x-0",
|
|
692
|
+
"leave-to-class": "opacity-0 -translate-x-4"
|
|
693
|
+
}, {
|
|
694
|
+
default: C(() => [
|
|
695
|
+
(m(!0), g(R, null, z(t.value, (f) => (m(), g("div", {
|
|
696
|
+
key: f.id,
|
|
697
|
+
class: "pointer-events-auto"
|
|
698
|
+
}, [
|
|
699
|
+
v(te, {
|
|
700
|
+
type: f.type,
|
|
701
|
+
closeable: f.closeable,
|
|
702
|
+
onClose: (y) => c(f.id),
|
|
703
|
+
onMouseenter: (y) => r(f.id),
|
|
704
|
+
onMouseleave: (y) => i(f.id)
|
|
705
|
+
}, {
|
|
706
|
+
default: C(() => [
|
|
707
|
+
f.component ? (m(), M(I(f.component), D({
|
|
708
|
+
key: 0,
|
|
709
|
+
ref_for: !0
|
|
710
|
+
}, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
|
|
711
|
+
B(L(f.message), 1)
|
|
712
|
+
], 64))
|
|
713
|
+
]),
|
|
714
|
+
_: 2
|
|
715
|
+
}, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
|
|
716
|
+
]))), 128))
|
|
717
|
+
]),
|
|
718
|
+
_: 1
|
|
719
|
+
})
|
|
720
|
+
]),
|
|
721
|
+
d("div", vs, [
|
|
722
|
+
v(ne, {
|
|
723
|
+
"enter-active-class": "transition-all duration-300 ease-out",
|
|
724
|
+
"enter-from-class": "opacity-0 translate-x-4",
|
|
725
|
+
"enter-to-class": "opacity-100 translate-x-0",
|
|
726
|
+
"leave-active-class": "transition-all duration-200 ease-in",
|
|
727
|
+
"leave-from-class": "opacity-100 translate-x-0",
|
|
728
|
+
"leave-to-class": "opacity-0 translate-x-4"
|
|
729
|
+
}, {
|
|
730
|
+
default: C(() => [
|
|
731
|
+
(m(!0), g(R, null, z(a.value, (f) => (m(), g("div", {
|
|
732
|
+
key: f.id,
|
|
733
|
+
class: "pointer-events-auto"
|
|
734
|
+
}, [
|
|
735
|
+
v(te, {
|
|
736
|
+
type: f.type,
|
|
737
|
+
closeable: f.closeable,
|
|
738
|
+
onClose: (y) => c(f.id),
|
|
739
|
+
onMouseenter: (y) => r(f.id),
|
|
740
|
+
onMouseleave: (y) => i(f.id)
|
|
741
|
+
}, {
|
|
742
|
+
default: C(() => [
|
|
743
|
+
f.component ? (m(), M(I(f.component), D({
|
|
744
|
+
key: 0,
|
|
745
|
+
ref_for: !0
|
|
746
|
+
}, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
|
|
747
|
+
B(L(f.message), 1)
|
|
748
|
+
], 64))
|
|
749
|
+
]),
|
|
750
|
+
_: 2
|
|
751
|
+
}, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
|
|
752
|
+
]))), 128))
|
|
753
|
+
]),
|
|
754
|
+
_: 1
|
|
755
|
+
})
|
|
756
|
+
]),
|
|
757
|
+
d("div", bs, [
|
|
758
|
+
v(ne, {
|
|
759
|
+
"enter-active-class": "transition-all duration-300 ease-out",
|
|
760
|
+
"enter-from-class": "opacity-0 scale-95",
|
|
761
|
+
"enter-to-class": "opacity-100 scale-100",
|
|
762
|
+
"leave-active-class": "transition-all duration-200 ease-in",
|
|
763
|
+
"leave-from-class": "opacity-100 scale-100",
|
|
764
|
+
"leave-to-class": "opacity-0 scale-95"
|
|
765
|
+
}, {
|
|
766
|
+
default: C(() => [
|
|
767
|
+
(m(!0), g(R, null, z(l.value, (f) => (m(), g("div", {
|
|
768
|
+
key: f.id,
|
|
769
|
+
class: "pointer-events-auto"
|
|
770
|
+
}, [
|
|
771
|
+
v(te, {
|
|
772
|
+
type: f.type,
|
|
773
|
+
closeable: f.closeable,
|
|
774
|
+
onClose: (y) => c(f.id),
|
|
775
|
+
onMouseenter: (y) => r(f.id),
|
|
776
|
+
onMouseleave: (y) => i(f.id)
|
|
777
|
+
}, {
|
|
778
|
+
default: C(() => [
|
|
779
|
+
f.component ? (m(), M(I(f.component), D({
|
|
780
|
+
key: 0,
|
|
781
|
+
ref_for: !0
|
|
782
|
+
}, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
|
|
783
|
+
B(L(f.message), 1)
|
|
784
|
+
], 64))
|
|
785
|
+
]),
|
|
786
|
+
_: 2
|
|
787
|
+
}, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
|
|
788
|
+
]))), 128))
|
|
789
|
+
]),
|
|
790
|
+
_: 1
|
|
791
|
+
})
|
|
792
|
+
]),
|
|
793
|
+
d("div", xs, [
|
|
794
|
+
v(ne, {
|
|
795
|
+
"enter-active-class": "transition-all duration-300 ease-out",
|
|
796
|
+
"enter-from-class": "opacity-0 -translate-x-4",
|
|
797
|
+
"enter-to-class": "opacity-100 translate-x-0",
|
|
798
|
+
"leave-active-class": "transition-all duration-200 ease-in",
|
|
799
|
+
"leave-from-class": "opacity-100 translate-x-0",
|
|
800
|
+
"leave-to-class": "opacity-0 -translate-x-4"
|
|
801
|
+
}, {
|
|
802
|
+
default: C(() => [
|
|
803
|
+
(m(!0), g(R, null, z(n.value, (f) => (m(), g("div", {
|
|
804
|
+
key: f.id,
|
|
805
|
+
class: "pointer-events-auto"
|
|
806
|
+
}, [
|
|
807
|
+
v(te, {
|
|
808
|
+
type: f.type,
|
|
809
|
+
closeable: f.closeable,
|
|
810
|
+
onClose: (y) => c(f.id),
|
|
811
|
+
onMouseenter: (y) => r(f.id),
|
|
812
|
+
onMouseleave: (y) => i(f.id)
|
|
813
|
+
}, {
|
|
814
|
+
default: C(() => [
|
|
815
|
+
f.component ? (m(), M(I(f.component), D({
|
|
816
|
+
key: 0,
|
|
817
|
+
ref_for: !0
|
|
818
|
+
}, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
|
|
819
|
+
B(L(f.message), 1)
|
|
820
|
+
], 64))
|
|
821
|
+
]),
|
|
822
|
+
_: 2
|
|
823
|
+
}, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
|
|
824
|
+
]))), 128))
|
|
825
|
+
]),
|
|
826
|
+
_: 1
|
|
827
|
+
})
|
|
828
|
+
]),
|
|
829
|
+
d("div", ks, [
|
|
830
|
+
v(ne, {
|
|
831
|
+
"enter-active-class": "transition-all duration-300 ease-out",
|
|
832
|
+
"enter-from-class": "opacity-0 translate-x-4",
|
|
833
|
+
"enter-to-class": "opacity-100 translate-x-0",
|
|
834
|
+
"leave-active-class": "transition-all duration-200 ease-in",
|
|
835
|
+
"leave-from-class": "opacity-100 translate-x-0",
|
|
836
|
+
"leave-to-class": "opacity-0 translate-x-4"
|
|
837
|
+
}, {
|
|
838
|
+
default: C(() => [
|
|
839
|
+
(m(!0), g(R, null, z(o.value, (f) => (m(), g("div", {
|
|
840
|
+
key: f.id,
|
|
841
|
+
class: "pointer-events-auto"
|
|
842
|
+
}, [
|
|
843
|
+
v(te, {
|
|
844
|
+
type: f.type,
|
|
845
|
+
closeable: f.closeable,
|
|
846
|
+
onClose: (y) => c(f.id),
|
|
847
|
+
onMouseenter: (y) => r(f.id),
|
|
848
|
+
onMouseleave: (y) => i(f.id)
|
|
849
|
+
}, {
|
|
850
|
+
default: C(() => [
|
|
851
|
+
f.component ? (m(), M(I(f.component), D({
|
|
852
|
+
key: 0,
|
|
853
|
+
ref_for: !0
|
|
854
|
+
}, f.props), null, 16)) : (m(), g(R, { key: 1 }, [
|
|
855
|
+
B(L(f.message), 1)
|
|
856
|
+
], 64))
|
|
857
|
+
]),
|
|
858
|
+
_: 2
|
|
859
|
+
}, 1032, ["type", "closeable", "onClose", "onMouseenter", "onMouseleave"])
|
|
860
|
+
]))), 128))
|
|
861
|
+
]),
|
|
862
|
+
_: 1
|
|
863
|
+
})
|
|
864
|
+
])
|
|
865
|
+
]));
|
|
866
|
+
}
|
|
867
|
+
}, ze = ie(
|
|
341
868
|
"brandFilter",
|
|
342
869
|
() => {
|
|
343
|
-
const e =
|
|
870
|
+
const e = q({
|
|
344
871
|
brands: []
|
|
345
872
|
}), s = (n = {}) => {
|
|
346
873
|
if (!n.brands || !Array.isArray(n.brands)) {
|
|
@@ -348,18 +875,18 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
348
875
|
return;
|
|
349
876
|
}
|
|
350
877
|
const o = n.brands.filter((r) => {
|
|
351
|
-
const
|
|
352
|
-
return
|
|
353
|
-
}),
|
|
354
|
-
|
|
355
|
-
r.current = r ===
|
|
878
|
+
const i = r.name && r.logo;
|
|
879
|
+
return i || console.warn("useSparkBrandFilterStore: Invalid brand object", r), i;
|
|
880
|
+
}), c = o.filter((r) => r.current);
|
|
881
|
+
c.length === 0 && o.length > 0 ? o[0].current = !0 : c.length > 1 && o.forEach((r) => {
|
|
882
|
+
r.current = r === c[0];
|
|
356
883
|
}), e.brands = o.map((r) => ({
|
|
357
884
|
id: r.id,
|
|
358
885
|
name: r.name,
|
|
359
886
|
logo: r.logo,
|
|
360
887
|
current: r.current || !1
|
|
361
888
|
}));
|
|
362
|
-
}, t =
|
|
889
|
+
}, t = S(() => e.brands.find((n) => n.current) || null), a = S(() => e.brands);
|
|
363
890
|
return {
|
|
364
891
|
state: e,
|
|
365
892
|
initialize: s,
|
|
@@ -381,57 +908,57 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
381
908
|
paths: ["state.brands"]
|
|
382
909
|
}
|
|
383
910
|
}
|
|
384
|
-
),
|
|
911
|
+
), _s = { class: "flex grow flex-col gap-y-5 overflow-y-auto bg-white rounded-lg" }, ws = { class: "flex flex-1 flex-col" }, Ss = { class: "divide-y divide-gray-200" }, Cs = { class: "flex px-[22px] py-2.5 text-[12px] items-center" }, $s = { class: "ml-auto flex items-center" }, Ts = {
|
|
385
912
|
key: 0,
|
|
386
913
|
class: "flex px-[22px] py-[15px] text-gray-500 text-sm"
|
|
387
|
-
},
|
|
914
|
+
}, Ls = ["onClick"], Ps = { class: "w-full gap-y-1 flex justify-between" }, Hs = { class: "flex flex-col" }, Vs = { class: "flex items-center" }, Ms = { class: "font-medium text-base text-gray-900" }, Rs = {
|
|
388
915
|
key: 0,
|
|
389
916
|
class: "inline-flex items-center rounded-full bg-green-100 px-1.5 py-0.5 text-xs font-medium text-green-800 ml-1"
|
|
390
|
-
},
|
|
917
|
+
}, Bs = { class: "text-sm text-gray-500 font-normal" }, Es = { class: "flex items-center" }, As = ["src", "alt"], Fs = {
|
|
391
918
|
__name: "SparkBrandSelector",
|
|
392
919
|
emits: ["close", "select"],
|
|
393
920
|
setup(e, { emit: s }) {
|
|
394
|
-
const t = s, a =
|
|
921
|
+
const t = s, a = ze(), l = (n) => {
|
|
395
922
|
t("select", n);
|
|
396
923
|
};
|
|
397
924
|
return (n, o) => {
|
|
398
|
-
const
|
|
399
|
-
return
|
|
400
|
-
d("div",
|
|
401
|
-
d("div",
|
|
402
|
-
d("div",
|
|
925
|
+
const c = A("font-awesome-icon");
|
|
926
|
+
return m(), g("div", _s, [
|
|
927
|
+
d("div", ws, [
|
|
928
|
+
d("div", Ss, [
|
|
929
|
+
d("div", Cs, [
|
|
403
930
|
o[1] || (o[1] = d("div", null, "Filter by Brand", -1)),
|
|
404
|
-
d("div",
|
|
405
|
-
v(
|
|
406
|
-
icon:
|
|
931
|
+
d("div", $s, [
|
|
932
|
+
v(c, {
|
|
933
|
+
icon: x(F).farTimes,
|
|
407
934
|
class: "size-4 text-gray-400 cursor-pointer",
|
|
408
935
|
onClick: o[0] || (o[0] = (r) => t("close"))
|
|
409
936
|
}, null, 8, ["icon"])
|
|
410
937
|
])
|
|
411
938
|
]),
|
|
412
|
-
|
|
413
|
-
(
|
|
939
|
+
x(a).allBrands.length === 0 ? (m(), g("div", Ts, " No brands configured ")) : $("", !0),
|
|
940
|
+
(m(!0), g(R, null, z(x(a).allBrands, (r) => (m(), g("div", {
|
|
414
941
|
key: r.id,
|
|
415
|
-
class:
|
|
416
|
-
onClick: (
|
|
942
|
+
class: P([r.current ? "bg-gray-50" : "hover:bg-gray-50", "flex px-[22px] py-[15px] cursor-pointer"]),
|
|
943
|
+
onClick: (i) => l(r)
|
|
417
944
|
}, [
|
|
418
|
-
d("div",
|
|
419
|
-
d("div",
|
|
420
|
-
d("div",
|
|
421
|
-
d("div",
|
|
422
|
-
r.current ? (
|
|
945
|
+
d("div", Ps, [
|
|
946
|
+
d("div", Hs, [
|
|
947
|
+
d("div", Vs, [
|
|
948
|
+
d("div", Ms, L(r.name), 1),
|
|
949
|
+
r.current ? (m(), g("span", Rs, " Current ")) : $("", !0)
|
|
423
950
|
]),
|
|
424
|
-
d("div",
|
|
951
|
+
d("div", Bs, L(r.current ? "Current Brand" : "Change to"), 1)
|
|
425
952
|
]),
|
|
426
|
-
d("div",
|
|
953
|
+
d("div", Es, [
|
|
427
954
|
d("img", {
|
|
428
955
|
src: r.logo,
|
|
429
956
|
alt: `${r.name} logo`,
|
|
430
957
|
class: "h-8 w-auto"
|
|
431
|
-
}, null, 8,
|
|
958
|
+
}, null, 8, As)
|
|
432
959
|
])
|
|
433
960
|
])
|
|
434
|
-
], 10,
|
|
961
|
+
], 10, Ls))), 128)),
|
|
435
962
|
o[2] || (o[2] = d("div", null, null, -1))
|
|
436
963
|
]),
|
|
437
964
|
o[3] || (o[3] = d("div", { class: "mt-auto" }, null, -1))
|
|
@@ -439,7 +966,7 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
439
966
|
]);
|
|
440
967
|
};
|
|
441
968
|
}
|
|
442
|
-
},
|
|
969
|
+
}, Os = ["disabled"], K = {
|
|
443
970
|
__name: "SparkButton",
|
|
444
971
|
props: {
|
|
445
972
|
size: {
|
|
@@ -460,15 +987,16 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
460
987
|
default: !1
|
|
461
988
|
}
|
|
462
989
|
},
|
|
990
|
+
emits: ["click"],
|
|
463
991
|
setup(e) {
|
|
464
|
-
const s = e, t =
|
|
992
|
+
const s = e, t = E(null), a = Le("buttonGroup", null), l = S(() => {
|
|
465
993
|
if (!a?.isInGroup || !t.value) return null;
|
|
466
|
-
const r = a.getButtonIndex(t.value),
|
|
994
|
+
const r = a.getButtonIndex(t.value), i = a.getButtonCount();
|
|
467
995
|
return {
|
|
468
996
|
isFirst: r === 0,
|
|
469
|
-
isLast: r ===
|
|
997
|
+
isLast: r === i - 1,
|
|
470
998
|
index: r,
|
|
471
|
-
total:
|
|
999
|
+
total: i
|
|
472
1000
|
};
|
|
473
1001
|
}), n = {
|
|
474
1002
|
paddingX: /^px-/,
|
|
@@ -480,41 +1008,41 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
480
1008
|
borderRadius: /^rounded-/,
|
|
481
1009
|
background: /^bg-/,
|
|
482
1010
|
text: /^text-(?!white|black)/
|
|
483
|
-
}, o = (r,
|
|
484
|
-
if (!
|
|
485
|
-
const
|
|
486
|
-
return [...
|
|
487
|
-
const
|
|
488
|
-
([
|
|
489
|
-
)?.[0],
|
|
490
|
-
([
|
|
1011
|
+
}, o = (r, i) => {
|
|
1012
|
+
if (!i) return r;
|
|
1013
|
+
const u = r.split(" ").filter(Boolean), p = i.split(" ").filter(Boolean);
|
|
1014
|
+
return [...u.filter((y) => !p.some((k) => {
|
|
1015
|
+
const h = Object.entries(n).find(
|
|
1016
|
+
([H, w]) => w.test(y)
|
|
1017
|
+
)?.[0], _ = Object.entries(n).find(
|
|
1018
|
+
([H, w]) => w.test(k)
|
|
491
1019
|
)?.[0];
|
|
492
|
-
return
|
|
493
|
-
})), ...
|
|
494
|
-
},
|
|
495
|
-
let r = "",
|
|
1020
|
+
return h && h === _;
|
|
1021
|
+
})), ...p].join(" ");
|
|
1022
|
+
}, c = S(() => {
|
|
1023
|
+
let r = "", i = "";
|
|
496
1024
|
switch (s.size) {
|
|
497
1025
|
case "xs":
|
|
498
|
-
r += " px-2 py-1 text-xs",
|
|
1026
|
+
r += " px-2 py-1 text-xs", i = "sm";
|
|
499
1027
|
break;
|
|
500
1028
|
case "sm":
|
|
501
|
-
r += " px-2 py-1 text-sm",
|
|
1029
|
+
r += " px-2 py-1 text-sm", i = "sm";
|
|
502
1030
|
break;
|
|
503
1031
|
case "md":
|
|
504
|
-
r += " px-2.5 py-1.5 text-sm",
|
|
1032
|
+
r += " px-2.5 py-1.5 text-sm", i = "md";
|
|
505
1033
|
break;
|
|
506
1034
|
case "lg":
|
|
507
|
-
r += " px-3 py-2 text-sm",
|
|
1035
|
+
r += " px-3 py-2 text-sm", i = "md";
|
|
508
1036
|
break;
|
|
509
1037
|
case "xl":
|
|
510
|
-
r += " px-3.5 py-2.5 min-h-[42px] text-sm",
|
|
1038
|
+
r += " px-3.5 py-2.5 min-h-[42px] text-sm", i = "md";
|
|
511
1039
|
break;
|
|
512
1040
|
}
|
|
513
1041
|
if (a?.isInGroup && l.value) {
|
|
514
|
-
const { isFirst:
|
|
515
|
-
r += " relative inline-flex items-center focus:z-10",
|
|
1042
|
+
const { isFirst: u, isLast: p } = l.value;
|
|
1043
|
+
r += " relative inline-flex items-center focus:z-10", u && p ? r += ` rounded-${i}` : u ? r += ` rounded-l-${i} rounded-r-none` : p ? r += ` rounded-r-${i} rounded-l-none -ml-px` : r += " rounded-none -ml-px";
|
|
516
1044
|
} else
|
|
517
|
-
r += ` shadow-xs rounded-${
|
|
1045
|
+
r += ` shadow-xs rounded-${i}`;
|
|
518
1046
|
switch (s.variant) {
|
|
519
1047
|
case "primary":
|
|
520
1048
|
r += " bg-primary-600 hover:bg-primary-500 text-white";
|
|
@@ -539,40 +1067,40 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
539
1067
|
}
|
|
540
1068
|
return r = o(r, s.buttonClass), r;
|
|
541
1069
|
});
|
|
542
|
-
return (r,
|
|
1070
|
+
return (r, i) => (m(), g("button", {
|
|
543
1071
|
type: "button",
|
|
544
1072
|
ref_key: "buttonRef",
|
|
545
1073
|
ref: t,
|
|
546
|
-
class:
|
|
1074
|
+
class: P(c.value),
|
|
547
1075
|
disabled: e.disabled,
|
|
548
|
-
onClick:
|
|
1076
|
+
onClick: i[0] || (i[0] = (u) => r.$emit("click"))
|
|
549
1077
|
}, [
|
|
550
|
-
|
|
551
|
-
], 10,
|
|
1078
|
+
O(r.$slots, "default")
|
|
1079
|
+
], 10, Os));
|
|
552
1080
|
}
|
|
553
|
-
},
|
|
1081
|
+
}, zs = {
|
|
554
1082
|
__name: "SparkButtonGroup",
|
|
555
1083
|
setup(e) {
|
|
556
|
-
const s =
|
|
557
|
-
return
|
|
1084
|
+
const s = E(null);
|
|
1085
|
+
return Ze("buttonGroup", {
|
|
558
1086
|
isInGroup: !0,
|
|
559
1087
|
getButtonIndex: (l) => s.value ? Array.from(s.value.children).indexOf(l) : -1,
|
|
560
1088
|
getButtonCount: () => s.value?.children.length || 0
|
|
561
|
-
}), (l, n) => (
|
|
1089
|
+
}), (l, n) => (m(), g("div", {
|
|
562
1090
|
class: "inline-flex rounded-md shadow-xs",
|
|
563
1091
|
ref_key: "groupRef",
|
|
564
1092
|
ref: s
|
|
565
1093
|
}, [
|
|
566
|
-
|
|
1094
|
+
O(l.$slots, "default")
|
|
567
1095
|
], 512));
|
|
568
1096
|
}
|
|
569
|
-
},
|
|
1097
|
+
}, js = { class: "divide-y divide-gray-300 rounded-lg border border-gray-300 text-gray-700 bg-gray-100" }, Is = {
|
|
570
1098
|
key: 0,
|
|
571
1099
|
class: "p-5"
|
|
572
|
-
},
|
|
1100
|
+
}, Ds = {
|
|
573
1101
|
key: 1,
|
|
574
1102
|
class: "p-5"
|
|
575
|
-
},
|
|
1103
|
+
}, Yr = {
|
|
576
1104
|
__name: "SparkCard",
|
|
577
1105
|
props: {
|
|
578
1106
|
padded: {
|
|
@@ -586,24 +1114,24 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
586
1114
|
},
|
|
587
1115
|
setup(e) {
|
|
588
1116
|
const s = e;
|
|
589
|
-
return (t, a) => (
|
|
590
|
-
t.$slots.header ? (
|
|
591
|
-
|
|
1117
|
+
return (t, a) => (m(), g("div", js, [
|
|
1118
|
+
t.$slots.header ? (m(), g("div", Is, [
|
|
1119
|
+
O(t.$slots, "header")
|
|
592
1120
|
])) : $("", !0),
|
|
593
1121
|
d("div", {
|
|
594
|
-
class:
|
|
1122
|
+
class: P([s.padded ? s.paddedClass : ""])
|
|
595
1123
|
}, [
|
|
596
|
-
|
|
1124
|
+
O(t.$slots, "default")
|
|
597
1125
|
], 2),
|
|
598
|
-
t.$slots.footer ? (
|
|
599
|
-
|
|
1126
|
+
t.$slots.footer ? (m(), g("div", Ds, [
|
|
1127
|
+
O(t.$slots, "footer")
|
|
600
1128
|
])) : $("", !0)
|
|
601
1129
|
]));
|
|
602
1130
|
}
|
|
603
|
-
},
|
|
1131
|
+
}, Ns = { class: "px-4 pt-5 pb-4 sm:p-6" }, qs = {
|
|
604
1132
|
key: 0,
|
|
605
1133
|
class: "text-lg font-medium text-gray-900"
|
|
606
|
-
},
|
|
1134
|
+
}, Zs = {
|
|
607
1135
|
__name: "SparkModalDialog",
|
|
608
1136
|
props: {
|
|
609
1137
|
title: {
|
|
@@ -653,7 +1181,7 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
653
1181
|
"input"
|
|
654
1182
|
],
|
|
655
1183
|
setup(e) {
|
|
656
|
-
const s = e, t =
|
|
1184
|
+
const s = e, t = S(() => !s.buttons || s.buttons.length === 0 ? [{ text: "OK", variant: "primary", event: "ok" }] : s.buttons), a = S(() => {
|
|
657
1185
|
switch (t.value.length) {
|
|
658
1186
|
case 1:
|
|
659
1187
|
return "sm:grid sm:grid-flow-row-dense";
|
|
@@ -669,48 +1197,48 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
669
1197
|
success: "farCheckCircle",
|
|
670
1198
|
warning: "farExclamationTriangle",
|
|
671
1199
|
danger: "farCircleXmark"
|
|
672
|
-
}, n =
|
|
1200
|
+
}, n = S(() => s.icon || l[s.type]), o = S(() => ({
|
|
673
1201
|
info: "bg-blue-100",
|
|
674
1202
|
success: "bg-green-100",
|
|
675
1203
|
warning: "bg-yellow-100",
|
|
676
1204
|
danger: "bg-red-100"
|
|
677
|
-
})[s.type]),
|
|
1205
|
+
})[s.type]), c = S(() => ({
|
|
678
1206
|
info: "text-blue-400",
|
|
679
1207
|
success: "text-green-400",
|
|
680
1208
|
warning: "text-yellow-400",
|
|
681
1209
|
danger: "text-red-400"
|
|
682
1210
|
})[s.type]);
|
|
683
|
-
return (r,
|
|
684
|
-
const
|
|
685
|
-
return
|
|
686
|
-
n.value ? (
|
|
1211
|
+
return (r, i) => {
|
|
1212
|
+
const u = A("font-awesome-icon");
|
|
1213
|
+
return m(), g("div", Ns, [
|
|
1214
|
+
n.value ? (m(), g("div", {
|
|
687
1215
|
key: 0,
|
|
688
|
-
class:
|
|
1216
|
+
class: P(["mx-auto flex size-12 items-center justify-center rounded-full", o.value])
|
|
689
1217
|
}, [
|
|
690
|
-
v(
|
|
691
|
-
icon:
|
|
692
|
-
class:
|
|
1218
|
+
v(u, {
|
|
1219
|
+
icon: x(F)[n.value],
|
|
1220
|
+
class: P(["h-5 w-5", c.value])
|
|
693
1221
|
}, null, 8, ["icon", "class"])
|
|
694
1222
|
], 2)) : $("", !0),
|
|
695
1223
|
d("div", {
|
|
696
|
-
class:
|
|
1224
|
+
class: P(["text-center", { "mt-3 sm:mt-5": n.value }])
|
|
697
1225
|
}, [
|
|
698
|
-
e.title ? (
|
|
699
|
-
e.message ? (
|
|
1226
|
+
e.title ? (m(), g("h3", qs, L(e.title), 1)) : $("", !0),
|
|
1227
|
+
e.message ? (m(), g("div", {
|
|
700
1228
|
key: 1,
|
|
701
|
-
class:
|
|
702
|
-
},
|
|
1229
|
+
class: P([{ "mt-2": e.title }, "text-sm text-gray-500"])
|
|
1230
|
+
}, L(e.message), 3)) : $("", !0)
|
|
703
1231
|
], 2),
|
|
704
1232
|
d("div", {
|
|
705
|
-
class:
|
|
1233
|
+
class: P(["mt-5 sm:mt-6", a.value])
|
|
706
1234
|
}, [
|
|
707
|
-
(
|
|
708
|
-
key:
|
|
709
|
-
variant:
|
|
710
|
-
onClick: (
|
|
1235
|
+
(m(!0), g(R, null, z(t.value, (p, f) => (m(), M(x(K), {
|
|
1236
|
+
key: f,
|
|
1237
|
+
variant: p.variant,
|
|
1238
|
+
onClick: (y) => r.$emit(p.event, p)
|
|
711
1239
|
}, {
|
|
712
|
-
default:
|
|
713
|
-
|
|
1240
|
+
default: C(() => [
|
|
1241
|
+
B(L(p.text), 1)
|
|
714
1242
|
]),
|
|
715
1243
|
_: 2
|
|
716
1244
|
}, 1032, ["variant", "onClick"]))), 128))
|
|
@@ -719,9 +1247,9 @@ const zt = { class: "flex items-center" }, It = { class: "shrink-0 self-start" }
|
|
|
719
1247
|
};
|
|
720
1248
|
}
|
|
721
1249
|
};
|
|
722
|
-
class
|
|
1250
|
+
class Ks {
|
|
723
1251
|
constructor() {
|
|
724
|
-
this.state =
|
|
1252
|
+
this.state = q({
|
|
725
1253
|
isVisible: !1,
|
|
726
1254
|
content: null,
|
|
727
1255
|
props: {},
|
|
@@ -729,7 +1257,7 @@ class Vs {
|
|
|
729
1257
|
});
|
|
730
1258
|
}
|
|
731
1259
|
show = (s, t = {}, a = {}) => {
|
|
732
|
-
this.state.content =
|
|
1260
|
+
this.state.content = de(s), this.state.props = t, this.state.eventHandlers = a, this.state.isVisible = !0;
|
|
733
1261
|
};
|
|
734
1262
|
hide = () => {
|
|
735
1263
|
this.state.isVisible = !1, this.state.eventHandlers = {};
|
|
@@ -752,18 +1280,18 @@ class Vs {
|
|
|
752
1280
|
message: l = "Are you sure?",
|
|
753
1281
|
type: n = "warning",
|
|
754
1282
|
confirmText: o = "Confirm",
|
|
755
|
-
cancelText:
|
|
1283
|
+
cancelText: c = "Cancel",
|
|
756
1284
|
confirmVariant: r = "primary"
|
|
757
1285
|
} = s;
|
|
758
1286
|
this.show(
|
|
759
|
-
|
|
1287
|
+
Zs,
|
|
760
1288
|
{
|
|
761
1289
|
title: a,
|
|
762
1290
|
message: l,
|
|
763
1291
|
type: n,
|
|
764
1292
|
buttons: [
|
|
765
1293
|
{ text: o, variant: r, event: "confirm" },
|
|
766
|
-
{ text:
|
|
1294
|
+
{ text: c, variant: "secondary", event: "cancel" }
|
|
767
1295
|
]
|
|
768
1296
|
},
|
|
769
1297
|
{
|
|
@@ -777,20 +1305,20 @@ class Vs {
|
|
|
777
1305
|
);
|
|
778
1306
|
});
|
|
779
1307
|
}
|
|
780
|
-
const
|
|
1308
|
+
const se = new Ks(), Us = { class: "fixed inset-0 z-10 w-screen overflow-y-auto" }, Gs = { class: "flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0" }, Ws = {
|
|
781
1309
|
__name: "SparkModalContainer",
|
|
782
1310
|
setup(e) {
|
|
783
|
-
return (s, t) => (
|
|
1311
|
+
return (s, t) => (m(), M(x(Me), {
|
|
784
1312
|
as: "template",
|
|
785
|
-
show:
|
|
1313
|
+
show: x(se).state.isVisible
|
|
786
1314
|
}, {
|
|
787
|
-
default:
|
|
788
|
-
v(
|
|
1315
|
+
default: C(() => [
|
|
1316
|
+
v(x(Re), {
|
|
789
1317
|
class: "relative z-1000",
|
|
790
|
-
onClose:
|
|
1318
|
+
onClose: x(se).hide
|
|
791
1319
|
}, {
|
|
792
|
-
default:
|
|
793
|
-
v(
|
|
1320
|
+
default: C(() => [
|
|
1321
|
+
v(x(ue), {
|
|
794
1322
|
as: "template",
|
|
795
1323
|
enter: "ease-out duration-300",
|
|
796
1324
|
"enter-from": "opacity-0",
|
|
@@ -799,14 +1327,14 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
799
1327
|
"leave-from": "opacity-100",
|
|
800
1328
|
"leave-to": "opacity-0"
|
|
801
1329
|
}, {
|
|
802
|
-
default:
|
|
1330
|
+
default: C(() => [...t[0] || (t[0] = [
|
|
803
1331
|
d("div", { class: "fixed inset-0 bg-gray-500/75 transition-opacity" }, null, -1)
|
|
804
1332
|
])]),
|
|
805
1333
|
_: 1
|
|
806
1334
|
}),
|
|
807
|
-
d("div",
|
|
808
|
-
d("div",
|
|
809
|
-
v(
|
|
1335
|
+
d("div", Us, [
|
|
1336
|
+
d("div", Gs, [
|
|
1337
|
+
v(x(ue), {
|
|
810
1338
|
as: "template",
|
|
811
1339
|
enter: "ease-out duration-300",
|
|
812
1340
|
"enter-from": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
|
|
@@ -815,10 +1343,10 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
815
1343
|
"leave-from": "opacity-100 translate-y-0 sm:scale-100",
|
|
816
1344
|
"leave-to": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
|
|
817
1345
|
}, {
|
|
818
|
-
default:
|
|
819
|
-
v(
|
|
820
|
-
default:
|
|
821
|
-
(
|
|
1346
|
+
default: C(() => [
|
|
1347
|
+
v(x(Be), { class: "relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full sm:min-w-lg sm:max-w-max" }, {
|
|
1348
|
+
default: C(() => [
|
|
1349
|
+
(m(), M(I(x(se).state.content), D(x(se).state.props, Pe(x(se).state.eventHandlers)), null, 16))
|
|
822
1350
|
]),
|
|
823
1351
|
_: 1
|
|
824
1352
|
})
|
|
@@ -834,7 +1362,7 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
834
1362
|
_: 1
|
|
835
1363
|
}, 8, ["show"]));
|
|
836
1364
|
}
|
|
837
|
-
},
|
|
1365
|
+
}, Ys = { class: "fixed inset-0 flex" }, ke = {
|
|
838
1366
|
__name: "SparkOverlay",
|
|
839
1367
|
props: {
|
|
840
1368
|
position: {
|
|
@@ -849,21 +1377,27 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
849
1377
|
},
|
|
850
1378
|
emits: ["close"],
|
|
851
1379
|
setup(e, { emit: s }) {
|
|
852
|
-
const t =
|
|
853
|
-
|
|
1380
|
+
const t = E(null), a = {
|
|
1381
|
+
xs: "w-[250px]",
|
|
1382
|
+
sm: "w-[300px]",
|
|
1383
|
+
md: "w-[450px]",
|
|
1384
|
+
lg: "w-[810px]",
|
|
1385
|
+
xl: "w-[1000px]"
|
|
1386
|
+
}, l = e, n = s, o = S(() => a[l.overlayInstance.state.size] || a.md), c = () => {
|
|
1387
|
+
l.overlayInstance.close(), n("close");
|
|
854
1388
|
};
|
|
855
|
-
return (
|
|
1389
|
+
return (r, i) => (m(), M(x(Me), {
|
|
856
1390
|
show: e.overlayInstance.state.isVisible,
|
|
857
1391
|
as: "template"
|
|
858
1392
|
}, {
|
|
859
|
-
default:
|
|
860
|
-
v(
|
|
1393
|
+
default: C(() => [
|
|
1394
|
+
v(x(Re), {
|
|
861
1395
|
initialFocus: t.value,
|
|
862
1396
|
class: "relative z-1000",
|
|
863
|
-
onClose:
|
|
1397
|
+
onClose: c
|
|
864
1398
|
}, {
|
|
865
|
-
default:
|
|
866
|
-
v(
|
|
1399
|
+
default: C(() => [
|
|
1400
|
+
v(x(ue), {
|
|
867
1401
|
as: "template",
|
|
868
1402
|
enter: "transition-opacity ease-linear duration-150",
|
|
869
1403
|
"enter-from": "opacity-0",
|
|
@@ -872,13 +1406,13 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
872
1406
|
"leave-from": "opacity-100",
|
|
873
1407
|
"leave-to": "opacity-0"
|
|
874
1408
|
}, {
|
|
875
|
-
default:
|
|
1409
|
+
default: C(() => [...i[0] || (i[0] = [
|
|
876
1410
|
d("div", { class: "fixed inset-0 bg-gray-600/30" }, null, -1)
|
|
877
1411
|
])]),
|
|
878
1412
|
_: 1
|
|
879
1413
|
}),
|
|
880
|
-
d("div",
|
|
881
|
-
v(
|
|
1414
|
+
d("div", Ys, [
|
|
1415
|
+
v(x(ue), {
|
|
882
1416
|
as: "template",
|
|
883
1417
|
enter: "transition ease-in-out duration-150 transform",
|
|
884
1418
|
"enter-from": e.position === "left" ? "-translate-x-full opacity-0" : "translate-x-full opacity-0",
|
|
@@ -887,17 +1421,18 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
887
1421
|
"leave-from": "translate-x-0 opacity-100",
|
|
888
1422
|
"leave-to": e.position === "left" ? "-translate-x-full opacity-0" : "translate-x-full opacity-0"
|
|
889
1423
|
}, {
|
|
890
|
-
default:
|
|
891
|
-
v(
|
|
1424
|
+
default: C(() => [
|
|
1425
|
+
v(x(Be), {
|
|
892
1426
|
ref_key: "panelRef",
|
|
893
1427
|
ref: t,
|
|
894
|
-
class:
|
|
895
|
-
"flex
|
|
1428
|
+
class: P([
|
|
1429
|
+
"flex py-2.5",
|
|
1430
|
+
o.value,
|
|
896
1431
|
e.position === "left" ? "relative left-[10px]" : "absolute right-[10px] h-full"
|
|
897
1432
|
])
|
|
898
1433
|
}, {
|
|
899
|
-
default:
|
|
900
|
-
(
|
|
1434
|
+
default: C(() => [
|
|
1435
|
+
(m(), M(I(e.overlayInstance.state.content), D(e.overlayInstance.state.props, Pe(e.overlayInstance.state.eventHandlers)), null, 16))
|
|
901
1436
|
]),
|
|
902
1437
|
_: 1
|
|
903
1438
|
}, 8, ["class"])
|
|
@@ -912,18 +1447,18 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
912
1447
|
_: 1
|
|
913
1448
|
}, 8, ["show"]));
|
|
914
1449
|
}
|
|
915
|
-
},
|
|
1450
|
+
}, Xs = (e) => {
|
|
916
1451
|
if (e.includes(".")) {
|
|
917
1452
|
const s = e.split(".");
|
|
918
1453
|
e = s[s.length - 1];
|
|
919
1454
|
}
|
|
920
1455
|
return e.replace(/_/g, " ");
|
|
921
|
-
},
|
|
1456
|
+
}, Js = (e, s, t) => {
|
|
922
1457
|
const a = s.querySelector(".relative");
|
|
923
1458
|
if (!a || a.querySelector(".spark-table-head-sorting"))
|
|
924
1459
|
return;
|
|
925
1460
|
const l = document.createElement("span");
|
|
926
|
-
l.classList.add("spark-table-head-sorting"), l.innerHTML =
|
|
1461
|
+
l.classList.add("spark-table-head-sorting"), l.innerHTML = le({ prefix: "fad", iconName: "sort" }).html + le({ prefix: "fad", iconName: "sort-up" }).html + le({ prefix: "fad", iconName: "sort-down" }).html, a.appendChild(l), a.addEventListener("click", async () => {
|
|
927
1462
|
const n = t.params.orderBy, o = t.params.sortedBy;
|
|
928
1463
|
return n === e && o === "asc" ? (a.classList.remove("asc"), a.classList.add("desc"), t.methods.applyParams({
|
|
929
1464
|
orderBy: e,
|
|
@@ -933,34 +1468,34 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
933
1468
|
sortedBy: "asc"
|
|
934
1469
|
}));
|
|
935
1470
|
});
|
|
936
|
-
},
|
|
1471
|
+
}, Qs = (e, s, t) => {
|
|
937
1472
|
if (s.querySelector(".spark-table-head-filter"))
|
|
938
1473
|
return;
|
|
939
1474
|
const a = document.createElement("div"), l = document.createElement("input");
|
|
940
1475
|
l.type = "text", l.placeholder = "Filter...", a.className = "spark-table-head-filter", a.appendChild(l);
|
|
941
|
-
const n =
|
|
942
|
-
const r =
|
|
1476
|
+
const n = Ee(async (o, c) => {
|
|
1477
|
+
const r = c.target.value, i = `filter[${o}]`;
|
|
943
1478
|
if (r)
|
|
944
|
-
return t.params[
|
|
1479
|
+
return t.params[i] && t.params[i] === r ? void 0 : t.methods.applyParams({
|
|
945
1480
|
page: 1,
|
|
946
|
-
[
|
|
1481
|
+
[i]: r
|
|
947
1482
|
});
|
|
948
|
-
await t.methods.removeParam(
|
|
1483
|
+
await t.methods.removeParam(i);
|
|
949
1484
|
}, 200);
|
|
950
1485
|
l.addEventListener("keyup", (o) => n(e, o)), s.appendChild(a);
|
|
951
|
-
},
|
|
1486
|
+
}, ea = (e, s, t) => {
|
|
952
1487
|
e.classList.add("spark-table-head"), t && t.columnSort && e.classList.add("can-sort"), t && t.columnFilter && e.classList.add("can-filter"), e.querySelector(".relative").classList.add("spark-table-head-title-wrapper");
|
|
953
1488
|
const l = e.querySelector(".colHeader");
|
|
954
|
-
l.classList.add("spark-table-head-title"), l.innerHTML =
|
|
955
|
-
},
|
|
1489
|
+
l.classList.add("spark-table-head-title"), l.innerHTML = Xs(s);
|
|
1490
|
+
}, ta = (e, s, t) => {
|
|
956
1491
|
if (typeof e != "number")
|
|
957
1492
|
return e;
|
|
958
1493
|
if (e < 0)
|
|
959
1494
|
return;
|
|
960
1495
|
let a = 2;
|
|
961
1496
|
const l = t.methods.colToProp(e), n = t.methods.getSettingsForProp(l);
|
|
962
|
-
s.childElementCount === 1 && ((!n || !n.columnSort) && a--, (!n || !n.columnFilter) && a--, n && n.columnSort &&
|
|
963
|
-
},
|
|
1497
|
+
s.childElementCount === 1 && ((!n || !n.columnSort) && a--, (!n || !n.columnFilter) && a--, n && n.columnSort && Js(l, s, t), n && n.columnFilter && Qs(l, s, t)), (s.childElementCount === a || a === 0) && ea(s, l, n);
|
|
1498
|
+
}, sa = (e) => {
|
|
964
1499
|
if (!e.hotInstance || !e.hotInstance.rootElement)
|
|
965
1500
|
return;
|
|
966
1501
|
const s = e.params.orderBy, t = e.params.sortedBy, a = e.hotInstance.rootElement.querySelectorAll("thead th.can-sort .relative");
|
|
@@ -970,41 +1505,41 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
970
1505
|
const n = l.closest("th"), o = Array.from(n.parentElement.children).indexOf(n);
|
|
971
1506
|
e.methods.colToProp(o) === s && l.classList.add(t);
|
|
972
1507
|
});
|
|
973
|
-
},
|
|
1508
|
+
}, aa = (e) => (s, t, a, l, n, o, c) => {
|
|
974
1509
|
t.innerHTML = "", t.classList.add("spark-table-cell-actions");
|
|
975
|
-
const
|
|
976
|
-
if (
|
|
1510
|
+
const i = (c.rendererConfig || {}).actions || [];
|
|
1511
|
+
if (i.length === 0)
|
|
977
1512
|
return;
|
|
978
|
-
const
|
|
979
|
-
|
|
980
|
-
if (
|
|
1513
|
+
const u = s.getSourceDataAtRow(s.toPhysicalRow(a)), p = document.createElement("div");
|
|
1514
|
+
p.classList.add("flex", "items-center", "gap-2"), i.forEach((f) => {
|
|
1515
|
+
if (f.condition && typeof f.condition == "function" && !f.condition(u))
|
|
981
1516
|
return;
|
|
982
|
-
const
|
|
983
|
-
if (
|
|
984
|
-
const
|
|
985
|
-
|
|
1517
|
+
const y = document.createElement("button");
|
|
1518
|
+
if (y.type = "button", y.classList.add("spark-table-action-button"), f.icon) {
|
|
1519
|
+
const k = document.createElement("span");
|
|
1520
|
+
k.innerHTML = le({ prefix: "far", iconName: f.icon }).html, k.classList.add("size-4"), y.appendChild(k);
|
|
986
1521
|
}
|
|
987
|
-
if (
|
|
988
|
-
const
|
|
989
|
-
|
|
1522
|
+
if (f.label) {
|
|
1523
|
+
const k = document.createElement("span");
|
|
1524
|
+
k.textContent = f.label, y.appendChild(k);
|
|
990
1525
|
}
|
|
991
|
-
|
|
992
|
-
if (
|
|
993
|
-
const
|
|
994
|
-
if (!await
|
|
995
|
-
title:
|
|
996
|
-
message:
|
|
997
|
-
type:
|
|
998
|
-
confirmText:
|
|
999
|
-
cancelText:
|
|
1000
|
-
confirmVariant:
|
|
1526
|
+
y.addEventListener("click", async (k) => {
|
|
1527
|
+
if (k.preventDefault(), k.stopPropagation(), f.confirm) {
|
|
1528
|
+
const h = typeof f.confirm == "string" ? f.confirm : `Are you sure you want to ${f.label?.toLowerCase() || "perform this action"}?`;
|
|
1529
|
+
if (!await se.confirm({
|
|
1530
|
+
title: f.confirmTitle,
|
|
1531
|
+
message: h,
|
|
1532
|
+
type: f.confirmType,
|
|
1533
|
+
confirmText: f.confirmText,
|
|
1534
|
+
cancelText: f.cancelText,
|
|
1535
|
+
confirmVariant: f.confirmVariant
|
|
1001
1536
|
}))
|
|
1002
1537
|
return;
|
|
1003
1538
|
}
|
|
1004
|
-
|
|
1005
|
-
}),
|
|
1006
|
-
}), t.appendChild(
|
|
1007
|
-
},
|
|
1539
|
+
f.event && e.methods.fireEvent(f.event, u), f.handler && typeof f.handler == "function" && f.handler(u);
|
|
1540
|
+
}), p.appendChild(y);
|
|
1541
|
+
}), t.appendChild(p);
|
|
1542
|
+
}, _e = {
|
|
1008
1543
|
green: "bg-green-100 text-green-800",
|
|
1009
1544
|
red: "bg-red-100 text-red-800",
|
|
1010
1545
|
yellow: "bg-yellow-100 text-yellow-800",
|
|
@@ -1013,11 +1548,11 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
1013
1548
|
purple: "bg-purple-100 text-purple-800",
|
|
1014
1549
|
pink: "bg-pink-100 text-pink-800",
|
|
1015
1550
|
indigo: "bg-indigo-100 text-indigo-800"
|
|
1016
|
-
},
|
|
1551
|
+
}, oa = (e) => (s, t, a, l, n, o, c) => {
|
|
1017
1552
|
if (t.innerHTML = "", t.classList.add("spark-table-cell-badge"), !o)
|
|
1018
1553
|
return;
|
|
1019
|
-
const
|
|
1020
|
-
|
|
1554
|
+
const i = (c.rendererConfig || {}).colorMap || {}, u = i[o] || i[o?.toLowerCase()] || "gray", p = _e[u] || _e.gray, f = document.createElement("span");
|
|
1555
|
+
f.classList.add(
|
|
1021
1556
|
"inline-flex",
|
|
1022
1557
|
"items-center",
|
|
1023
1558
|
"px-2.5",
|
|
@@ -1026,16 +1561,16 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
1026
1561
|
"text-xs",
|
|
1027
1562
|
"font-medium",
|
|
1028
1563
|
"capitalize",
|
|
1029
|
-
...
|
|
1030
|
-
),
|
|
1031
|
-
},
|
|
1564
|
+
...p.split(" ")
|
|
1565
|
+
), f.textContent = o, t.appendChild(f);
|
|
1566
|
+
}, we = {
|
|
1032
1567
|
green: { bg: "bg-green-100", text: "text-green-500" },
|
|
1033
1568
|
red: { bg: "bg-red-100", text: "text-red-500" },
|
|
1034
1569
|
yellow: { bg: "bg-yellow-100", text: "text-yellow-500" },
|
|
1035
1570
|
blue: { bg: "bg-blue-100", text: "text-blue-500" },
|
|
1036
1571
|
gray: { bg: "bg-gray-100", text: "text-gray-500" },
|
|
1037
1572
|
purple: { bg: "bg-purple-100", text: "text-purple-500" }
|
|
1038
|
-
},
|
|
1573
|
+
}, ra = (e) => {
|
|
1039
1574
|
if (e == null || e === "")
|
|
1040
1575
|
return !1;
|
|
1041
1576
|
if (typeof e == "boolean")
|
|
@@ -1047,152 +1582,152 @@ const J = new Vs(), Rs = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
|
|
|
1047
1582
|
return s === "1" || s === "yes" || s === "true";
|
|
1048
1583
|
}
|
|
1049
1584
|
return !1;
|
|
1050
|
-
},
|
|
1585
|
+
}, na = (e) => (s, t, a, l, n, o, c) => {
|
|
1051
1586
|
t.innerHTML = "", t.classList.add("spark-table-cell-boolean");
|
|
1052
|
-
const r =
|
|
1053
|
-
|
|
1587
|
+
const r = c.rendererConfig || {}, i = ra(o), u = i ? r.trueIcon || "check" : r.falseIcon || "xmark", p = i ? r.trueColor || "green" : r.falseColor || "red", f = r.size || 32, y = r.iconPrefix || "far", k = we[p] || we.gray, h = document.createElement("div");
|
|
1588
|
+
h.classList.add(
|
|
1054
1589
|
"inline-flex",
|
|
1055
1590
|
"items-center",
|
|
1056
1591
|
"justify-center",
|
|
1057
1592
|
"rounded-full",
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
),
|
|
1061
|
-
const
|
|
1062
|
-
|
|
1063
|
-
const
|
|
1064
|
-
|
|
1065
|
-
},
|
|
1593
|
+
k.bg,
|
|
1594
|
+
k.text
|
|
1595
|
+
), h.style.width = `${f}px`, h.style.height = `${f}px`;
|
|
1596
|
+
const _ = document.createElement("span");
|
|
1597
|
+
_.innerHTML = le({ prefix: y, iconName: u }).html, _.classList.add("flex", "items-center", "justify-center");
|
|
1598
|
+
const H = Math.round(f * 0.5);
|
|
1599
|
+
_.style.fontSize = `${H}px`, h.appendChild(_), t.appendChild(h);
|
|
1600
|
+
}, la = (e) => (s, t, a, l, n, o, c) => {
|
|
1066
1601
|
if (t.innerHTML = "", t.classList.add("spark-table-cell-link"), !o)
|
|
1067
1602
|
return;
|
|
1068
|
-
const r =
|
|
1069
|
-
let
|
|
1070
|
-
r.href && (typeof r.href == "function" ?
|
|
1071
|
-
const
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
}), t.appendChild(
|
|
1075
|
-
},
|
|
1603
|
+
const r = c.rendererConfig || {}, i = s.getSourceDataAtRow(s.toPhysicalRow(a));
|
|
1604
|
+
let u = o;
|
|
1605
|
+
r.href && (typeof r.href == "function" ? u = r.href(i) : r.href === "email" ? u = `mailto:${o}` : r.href === "tel" ? u = `tel:${o}` : typeof r.href == "string" && (u = i[r.href] || o));
|
|
1606
|
+
const p = document.createElement("a");
|
|
1607
|
+
p.href = u, p.textContent = o, p.classList.add("text-primary-600", "hover:text-primary-900", "hover:underline"), r.target && (p.target = r.target), r.rel && (p.rel = r.rel), p.addEventListener("click", (f) => {
|
|
1608
|
+
f.stopPropagation();
|
|
1609
|
+
}), t.appendChild(p);
|
|
1610
|
+
}, Se = {
|
|
1076
1611
|
sm: "h-6 w-6",
|
|
1077
1612
|
md: "h-8 w-8",
|
|
1078
1613
|
lg: "h-12 w-12"
|
|
1079
|
-
},
|
|
1614
|
+
}, ia = (e) => (s, t, a, l, n, o, c) => {
|
|
1080
1615
|
if (t.innerHTML = "", t.classList.add("spark-table-cell-image"), !o)
|
|
1081
1616
|
return;
|
|
1082
|
-
const r =
|
|
1083
|
-
let
|
|
1084
|
-
typeof r.alt == "string" &&
|
|
1085
|
-
const
|
|
1086
|
-
|
|
1087
|
-
},
|
|
1617
|
+
const r = c.rendererConfig || {}, i = s.getSourceDataAtRow(s.toPhysicalRow(a)), u = r.size || "md", p = Se[u] || Se.md, f = r.rounded !== !1;
|
|
1618
|
+
let y = r.alt || "";
|
|
1619
|
+
typeof r.alt == "string" && i[r.alt] && (y = i[r.alt]);
|
|
1620
|
+
const k = document.createElement("img");
|
|
1621
|
+
k.src = o, k.alt = y, k.classList.add(...p.split(" "), "object-cover"), f ? k.classList.add("rounded-full") : k.classList.add("rounded"), t.appendChild(k);
|
|
1622
|
+
}, ca = (e) => (s, t, a, l, n, o, c) => {
|
|
1088
1623
|
if (t.innerHTML = "", t.classList.add("spark-table-cell-date"), !o)
|
|
1089
1624
|
return;
|
|
1090
|
-
const r =
|
|
1091
|
-
let
|
|
1625
|
+
const r = c.rendererConfig || {}, i = r.format || "short", u = r.locale || "en-US";
|
|
1626
|
+
let p = o;
|
|
1092
1627
|
try {
|
|
1093
|
-
const
|
|
1094
|
-
isNaN(
|
|
1628
|
+
const y = new Date(o);
|
|
1629
|
+
isNaN(y.getTime()) ? p = o : typeof i == "function" ? p = i(y) : i === "short" ? p = y.toLocaleDateString(u) : i === "long" ? p = y.toLocaleDateString(u, {
|
|
1095
1630
|
year: "numeric",
|
|
1096
1631
|
month: "long",
|
|
1097
1632
|
day: "numeric"
|
|
1098
|
-
}) :
|
|
1099
|
-
} catch (
|
|
1100
|
-
console.error("Error formatting date:",
|
|
1633
|
+
}) : i === "relative" ? p = ua(y) : i === "datetime" ? p = y.toLocaleString(u) : p = y.toLocaleDateString(u);
|
|
1634
|
+
} catch (y) {
|
|
1635
|
+
console.error("Error formatting date:", y), p = o;
|
|
1101
1636
|
}
|
|
1102
|
-
const
|
|
1103
|
-
|
|
1637
|
+
const f = document.createElement("span");
|
|
1638
|
+
f.textContent = p, t.appendChild(f);
|
|
1104
1639
|
};
|
|
1105
|
-
function
|
|
1106
|
-
const t = /* @__PURE__ */ new Date() - e, a = Math.floor(Math.abs(t) / 1e3), l = Math.floor(a / 60), n = Math.floor(l / 60), o = Math.floor(n / 24),
|
|
1107
|
-
return a < 60 ?
|
|
1640
|
+
function ua(e) {
|
|
1641
|
+
const t = /* @__PURE__ */ new Date() - e, a = Math.floor(Math.abs(t) / 1e3), l = Math.floor(a / 60), n = Math.floor(l / 60), o = Math.floor(n / 24), c = Math.floor(o / 30), r = Math.floor(o / 365), i = t > 0;
|
|
1642
|
+
return a < 60 ? i ? "just now" : "in a moment" : l < 60 ? i ? `${l} minute${l > 1 ? "s" : ""} ago` : `in ${l} minute${l > 1 ? "s" : ""}` : n < 24 ? i ? `${n} hour${n > 1 ? "s" : ""} ago` : `in ${n} hour${n > 1 ? "s" : ""}` : o < 30 ? i ? `${o} day${o > 1 ? "s" : ""} ago` : `in ${o} day${o > 1 ? "s" : ""}` : c < 12 ? i ? `${c} month${c > 1 ? "s" : ""} ago` : `in ${c} month${c > 1 ? "s" : ""}` : i ? `${r} year${r > 1 ? "s" : ""} ago` : `in ${r} year${r > 1 ? "s" : ""}`;
|
|
1108
1643
|
}
|
|
1109
|
-
const
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
}),
|
|
1113
|
-
},
|
|
1114
|
-
|
|
1644
|
+
const da = /* @__PURE__ */ new Map(), Y = (e, s) => {
|
|
1645
|
+
Nt(e, (t, a, l, n, o, c, r) => {
|
|
1646
|
+
qt.apply(null, [t, a, l, n, o, c, r]), s(t, a, l, n, o, c, r);
|
|
1647
|
+
}), da.set(e, s);
|
|
1648
|
+
}, pa = (e) => {
|
|
1649
|
+
Y("spark.actions", aa(e)), Y("spark.badge", oa()), Y("spark.boolean", na()), Y("spark.link", la()), Y("spark.image", ia()), Y("spark.date", ca()), Y("style.capitalize", (s, t, a, l, n, o) => {
|
|
1115
1650
|
if (!o || o.length === 0) {
|
|
1116
1651
|
t.innerText = "";
|
|
1117
1652
|
return;
|
|
1118
1653
|
}
|
|
1119
|
-
const
|
|
1120
|
-
|
|
1654
|
+
const c = document.createElement("span");
|
|
1655
|
+
c.innerHTML = o, c.classList.add("capitalize"), t.replaceChildren(c);
|
|
1121
1656
|
});
|
|
1122
|
-
},
|
|
1123
|
-
},
|
|
1124
|
-
const t =
|
|
1657
|
+
}, fa = () => {
|
|
1658
|
+
}, ma = (e, s = {}) => {
|
|
1659
|
+
const t = W(), a = re(), l = s.namespace, n = l === null, o = s.syncToRoute !== !1, c = s.persistToStorage === !0, r = s.restoreOnMount !== !1, i = s.storageTTL || 7, u = n ? `spark-table:${a.path}` : `spark-table:${l}`, p = (b, T = "") => {
|
|
1125
1660
|
const V = {};
|
|
1126
|
-
return Object.keys(b).forEach((
|
|
1127
|
-
const
|
|
1128
|
-
|
|
1661
|
+
return Object.keys(b).forEach((N) => {
|
|
1662
|
+
const Q = b[N], ye = T ? `${T}[${N}]` : N;
|
|
1663
|
+
Q != null && (typeof Q == "object" && !Array.isArray(Q) ? Object.assign(V, p(Q, ye)) : V[ye] = String(Q));
|
|
1129
1664
|
}), V;
|
|
1130
|
-
},
|
|
1131
|
-
if (
|
|
1665
|
+
}, f = () => {
|
|
1666
|
+
if (c)
|
|
1132
1667
|
try {
|
|
1133
1668
|
const b = {
|
|
1134
1669
|
params: e.params,
|
|
1135
1670
|
timestamp: Date.now()
|
|
1136
1671
|
};
|
|
1137
|
-
localStorage.setItem(
|
|
1672
|
+
localStorage.setItem(u, JSON.stringify(b));
|
|
1138
1673
|
} catch (b) {
|
|
1139
1674
|
console.warn("Failed to save table state to localStorage:", b);
|
|
1140
1675
|
}
|
|
1141
|
-
},
|
|
1142
|
-
if (!
|
|
1676
|
+
}, y = () => {
|
|
1677
|
+
if (!c) return null;
|
|
1143
1678
|
try {
|
|
1144
|
-
const b = localStorage.getItem(
|
|
1679
|
+
const b = localStorage.getItem(u);
|
|
1145
1680
|
if (!b) return null;
|
|
1146
|
-
const
|
|
1147
|
-
if (
|
|
1148
|
-
const V = Date.now() -
|
|
1149
|
-
if (V >
|
|
1150
|
-
return localStorage.removeItem(
|
|
1681
|
+
const T = JSON.parse(b);
|
|
1682
|
+
if (i > 0) {
|
|
1683
|
+
const V = Date.now() - T.timestamp, N = i * 24 * 60 * 60 * 1e3;
|
|
1684
|
+
if (V > N)
|
|
1685
|
+
return localStorage.removeItem(u), null;
|
|
1151
1686
|
}
|
|
1152
|
-
return
|
|
1687
|
+
return T.params;
|
|
1153
1688
|
} catch (b) {
|
|
1154
1689
|
return console.warn("Failed to load table state from localStorage:", b), null;
|
|
1155
1690
|
}
|
|
1156
|
-
},
|
|
1691
|
+
}, k = () => {
|
|
1157
1692
|
try {
|
|
1158
|
-
localStorage.removeItem(
|
|
1693
|
+
localStorage.removeItem(u);
|
|
1159
1694
|
} catch (b) {
|
|
1160
1695
|
console.warn("Failed to clear table state from localStorage:", b);
|
|
1161
1696
|
}
|
|
1162
|
-
},
|
|
1697
|
+
}, h = () => {
|
|
1163
1698
|
if (!o) return;
|
|
1164
1699
|
const b = { ...a.query };
|
|
1165
1700
|
if (n) {
|
|
1166
1701
|
Object.keys(b).forEach((V) => {
|
|
1167
|
-
|
|
1702
|
+
_(V) && delete b[V];
|
|
1168
1703
|
});
|
|
1169
|
-
const
|
|
1170
|
-
Object.assign(b,
|
|
1704
|
+
const T = p(e.params);
|
|
1705
|
+
Object.assign(b, T);
|
|
1171
1706
|
} else {
|
|
1172
1707
|
Object.keys(b).forEach((V) => {
|
|
1173
1708
|
(V.startsWith(`${l}[`) || V === l) && delete b[V];
|
|
1174
1709
|
});
|
|
1175
|
-
const
|
|
1176
|
-
Object.assign(b,
|
|
1710
|
+
const T = p(e.params, l);
|
|
1711
|
+
Object.assign(b, T);
|
|
1177
1712
|
}
|
|
1178
1713
|
t.replace({ query: b });
|
|
1179
|
-
},
|
|
1180
|
-
if (["page", "limit"].includes(b) &&
|
|
1181
|
-
const
|
|
1182
|
-
return isNaN(
|
|
1714
|
+
}, _ = (b) => !!(["page", "limit", "search", "orderBy", "sortedBy"].includes(b) || b.includes("[")), H = (b, T) => {
|
|
1715
|
+
if (["page", "limit"].includes(b) && T !== null && T !== void 0) {
|
|
1716
|
+
const N = parseInt(T, 10);
|
|
1717
|
+
return isNaN(N) ? T : N;
|
|
1183
1718
|
}
|
|
1184
|
-
return
|
|
1185
|
-
},
|
|
1719
|
+
return T;
|
|
1720
|
+
}, w = () => {
|
|
1186
1721
|
if (n)
|
|
1187
1722
|
Object.keys(a.query).forEach((b) => {
|
|
1188
|
-
|
|
1723
|
+
_(b) && (e.params[b] = H(b, a.query[b]));
|
|
1189
1724
|
});
|
|
1190
1725
|
else {
|
|
1191
1726
|
const b = `${l}[`;
|
|
1192
|
-
Object.keys(a.query).forEach((
|
|
1193
|
-
if (
|
|
1194
|
-
const V =
|
|
1195
|
-
e.params[V] =
|
|
1727
|
+
Object.keys(a.query).forEach((T) => {
|
|
1728
|
+
if (T.startsWith(b)) {
|
|
1729
|
+
const V = T.slice(b.length, -1);
|
|
1730
|
+
e.params[V] = H(V, a.query[T]);
|
|
1196
1731
|
}
|
|
1197
1732
|
});
|
|
1198
1733
|
}
|
|
@@ -1200,37 +1735,37 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1200
1735
|
return j(
|
|
1201
1736
|
() => e.params,
|
|
1202
1737
|
() => {
|
|
1203
|
-
o &&
|
|
1738
|
+
o && h(), c && f();
|
|
1204
1739
|
},
|
|
1205
1740
|
{ deep: !0 }
|
|
1206
|
-
), r &&
|
|
1741
|
+
), r && ge(() => {
|
|
1207
1742
|
let b = !1;
|
|
1208
1743
|
if (o) {
|
|
1209
|
-
let
|
|
1744
|
+
let T = !1;
|
|
1210
1745
|
if (n)
|
|
1211
|
-
|
|
1746
|
+
T = Object.keys(a.query).some((V) => _(V));
|
|
1212
1747
|
else {
|
|
1213
1748
|
const V = `${l}[`;
|
|
1214
|
-
|
|
1215
|
-
(
|
|
1749
|
+
T = Object.keys(a.query).some(
|
|
1750
|
+
(N) => N.startsWith(V)
|
|
1216
1751
|
);
|
|
1217
1752
|
}
|
|
1218
|
-
|
|
1753
|
+
T && (b = !0, w());
|
|
1219
1754
|
}
|
|
1220
|
-
if (!b &&
|
|
1221
|
-
const
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
}), Object.assign(e.params,
|
|
1755
|
+
if (!b && c) {
|
|
1756
|
+
const T = y();
|
|
1757
|
+
T && Object.keys(T).length > 0 && (Object.keys(T).forEach((V) => {
|
|
1758
|
+
T[V] = H(V, T[V]);
|
|
1759
|
+
}), Object.assign(e.params, T));
|
|
1225
1760
|
}
|
|
1226
1761
|
}), {
|
|
1227
|
-
syncToRoute:
|
|
1228
|
-
restoreFromRoute:
|
|
1229
|
-
saveToStorage:
|
|
1230
|
-
loadFromStorage:
|
|
1231
|
-
clearStorage:
|
|
1762
|
+
syncToRoute: h,
|
|
1763
|
+
restoreFromRoute: w,
|
|
1764
|
+
saveToStorage: f,
|
|
1765
|
+
loadFromStorage: y,
|
|
1766
|
+
clearStorage: k
|
|
1232
1767
|
};
|
|
1233
|
-
},
|
|
1768
|
+
}, ha = { class: "flex items-center gap-4 py-3" }, ga = { class: "shrink-0" }, ya = { class: "text-sm text-gray-700" }, va = { class: "font-medium" }, ba = { class: "font-medium" }, xa = { class: "font-medium" }, ka = {
|
|
1234
1769
|
__name: "SparkTablePaginationDetails",
|
|
1235
1770
|
props: {
|
|
1236
1771
|
sparkTable: {
|
|
@@ -1240,29 +1775,29 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1240
1775
|
},
|
|
1241
1776
|
setup(e) {
|
|
1242
1777
|
const s = e;
|
|
1243
|
-
return (t, a) => (
|
|
1244
|
-
d("div",
|
|
1245
|
-
d("div",
|
|
1246
|
-
d("div",
|
|
1247
|
-
a[0] || (a[0] =
|
|
1248
|
-
d("span",
|
|
1249
|
-
a[1] || (a[1] =
|
|
1250
|
-
d("span",
|
|
1251
|
-
a[2] || (a[2] =
|
|
1252
|
-
d("span",
|
|
1253
|
-
a[3] || (a[3] =
|
|
1778
|
+
return (t, a) => (m(), g("div", null, [
|
|
1779
|
+
d("div", ha, [
|
|
1780
|
+
d("div", ga, [
|
|
1781
|
+
d("div", ya, [
|
|
1782
|
+
a[0] || (a[0] = B(" Showing ", -1)),
|
|
1783
|
+
d("span", va, L(s.sparkTable.response.meta.from), 1),
|
|
1784
|
+
a[1] || (a[1] = B(" to ", -1)),
|
|
1785
|
+
d("span", ba, L(s.sparkTable.response.meta.to), 1),
|
|
1786
|
+
a[2] || (a[2] = B(" of ", -1)),
|
|
1787
|
+
d("span", xa, L(s.sparkTable.response.meta.total), 1),
|
|
1788
|
+
a[3] || (a[3] = B(" results ", -1))
|
|
1254
1789
|
])
|
|
1255
1790
|
])
|
|
1256
1791
|
])
|
|
1257
1792
|
]));
|
|
1258
1793
|
}
|
|
1259
|
-
},
|
|
1794
|
+
}, _a = { class: "flex items-center gap-4 px-4 py-3" }, wa = {
|
|
1260
1795
|
key: 0,
|
|
1261
1796
|
class: "shrink-0 ml-auto"
|
|
1262
|
-
},
|
|
1797
|
+
}, Sa = {
|
|
1263
1798
|
class: "isolate inline-flex -space-x-px rounded-md shadow-xs bg-white",
|
|
1264
1799
|
"aria-label": "Pagination"
|
|
1265
|
-
},
|
|
1800
|
+
}, Ca = ["onClick"], $a = {
|
|
1266
1801
|
__name: "SparkTablePaginationPaging",
|
|
1267
1802
|
props: {
|
|
1268
1803
|
sparkTable: {
|
|
@@ -1272,51 +1807,51 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1272
1807
|
},
|
|
1273
1808
|
emits: ["paginate"],
|
|
1274
1809
|
setup(e, { emit: s }) {
|
|
1275
|
-
const t = e, a = s, l = (
|
|
1276
|
-
n(t.sparkTable.params.page +
|
|
1277
|
-
}, n = (
|
|
1278
|
-
|
|
1279
|
-
page:
|
|
1810
|
+
const t = e, a = s, l = (u) => {
|
|
1811
|
+
n(t.sparkTable.params.page + u);
|
|
1812
|
+
}, n = (u) => {
|
|
1813
|
+
u < 1 || u > t.sparkTable.response.meta.last_page || a("paginate", {
|
|
1814
|
+
page: u
|
|
1280
1815
|
});
|
|
1281
|
-
}, o =
|
|
1816
|
+
}, o = S(() => t.sparkTable.params.page ? Math.ceil(t.sparkTable.params.page / 10) * 10 : 1), c = S(() => t.sparkTable.computed.ready ? Bt(
|
|
1282
1817
|
Math.floor((o.value - 1) / 10) * 10 + 1,
|
|
1283
1818
|
o.value > t.sparkTable.response.meta.last_page ? t.sparkTable.response.meta.last_page + 1 : o.value + 1
|
|
1284
|
-
) : []), r =
|
|
1285
|
-
() => t.sparkTable.params.page <
|
|
1286
|
-
),
|
|
1287
|
-
return (
|
|
1288
|
-
const
|
|
1289
|
-
return
|
|
1290
|
-
d("div",
|
|
1291
|
-
|
|
1819
|
+
) : []), r = S(
|
|
1820
|
+
() => t.sparkTable.params.page < U(t.sparkTable.response.meta, "last_page", 1)
|
|
1821
|
+
), i = S(() => t.sparkTable.params.page > 1);
|
|
1822
|
+
return (u, p) => {
|
|
1823
|
+
const f = A("font-awesome-icon");
|
|
1824
|
+
return m(), g("div", null, [
|
|
1825
|
+
d("div", _a, [
|
|
1826
|
+
c.value.length > 1 ? (m(), g("div", wa, [
|
|
1292
1827
|
d("div", null, [
|
|
1293
|
-
d("nav",
|
|
1828
|
+
d("nav", Sa, [
|
|
1294
1829
|
d("a", {
|
|
1295
|
-
class:
|
|
1830
|
+
class: P([i.value ? "" : "disabled", "relative inline-flex items-center rounded-l-md px-2 py-[9px] text-gray-400 ring-1 ring-gray-300 ring-inset hover:bg-gray-50 focus:z-20 focus:outline-offset-0"]),
|
|
1296
1831
|
href: "#",
|
|
1297
|
-
onClick:
|
|
1832
|
+
onClick: p[0] || (p[0] = X((y) => l(-1), ["prevent"]))
|
|
1298
1833
|
}, [
|
|
1299
|
-
v(
|
|
1300
|
-
icon:
|
|
1834
|
+
v(f, {
|
|
1835
|
+
icon: x(F).farChevronLeft,
|
|
1301
1836
|
class: "size-5"
|
|
1302
1837
|
}, null, 8, ["icon"])
|
|
1303
1838
|
], 2),
|
|
1304
|
-
(
|
|
1305
|
-
key: `page-${
|
|
1839
|
+
(m(!0), g(R, null, z(c.value, (y) => (m(), g("a", {
|
|
1840
|
+
key: `page-${y}`,
|
|
1306
1841
|
href: "#",
|
|
1307
|
-
class:
|
|
1842
|
+
class: P([
|
|
1308
1843
|
"relative inline-flex items-center px-4 py-[9px] text-sm font-semibold ring-1 ring-inset",
|
|
1309
|
-
e.sparkTable.params.page ===
|
|
1844
|
+
e.sparkTable.params.page === y ? "z-10 text-white bg-primary-600 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 hover:bg-primary-600" : "text-gray-900 hover:bg-gray-50 ring-gray-300 focus:z-20 focus:outline-offset-0"
|
|
1310
1845
|
]),
|
|
1311
|
-
onClick: (
|
|
1312
|
-
},
|
|
1846
|
+
onClick: (k) => n(y)
|
|
1847
|
+
}, L(y), 11, Ca))), 128)),
|
|
1313
1848
|
d("a", {
|
|
1314
|
-
class:
|
|
1315
|
-
onClick:
|
|
1849
|
+
class: P([r.value ? "" : "disabled", "relative inline-flex items-center rounded-r-md px-2 py-[9px] text-gray-400 ring-1 ring-gray-300 ring-inset hover:bg-gray-50 focus:z-20 focus:outline-offset-0"]),
|
|
1850
|
+
onClick: p[1] || (p[1] = X((y) => l(1), ["prevent"])),
|
|
1316
1851
|
href: "#"
|
|
1317
1852
|
}, [
|
|
1318
|
-
v(
|
|
1319
|
-
icon:
|
|
1853
|
+
v(f, {
|
|
1854
|
+
icon: x(F).farChevronRight,
|
|
1320
1855
|
class: "size-5"
|
|
1321
1856
|
}, null, 8, ["icon"])
|
|
1322
1857
|
], 2)
|
|
@@ -1327,12 +1862,12 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1327
1862
|
]);
|
|
1328
1863
|
};
|
|
1329
1864
|
}
|
|
1330
|
-
},
|
|
1865
|
+
}, J = (e, s) => {
|
|
1331
1866
|
const t = e.__vccOpts || e;
|
|
1332
1867
|
for (const [a, l] of s)
|
|
1333
1868
|
t[a] = l;
|
|
1334
1869
|
return t;
|
|
1335
|
-
},
|
|
1870
|
+
}, Ta = { class: "spark-table-pagination-per-page" }, La = {
|
|
1336
1871
|
__name: "SparkTablePaginationPerPage",
|
|
1337
1872
|
props: {
|
|
1338
1873
|
sparkTable: {
|
|
@@ -1342,7 +1877,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1342
1877
|
},
|
|
1343
1878
|
emits: ["paginate"],
|
|
1344
1879
|
setup(e, { emit: s }) {
|
|
1345
|
-
const t = e, a = s, l =
|
|
1880
|
+
const t = e, a = s, l = S(() => t.sparkTable.options.perPages.map((o) => ({
|
|
1346
1881
|
label: String(o),
|
|
1347
1882
|
value: o
|
|
1348
1883
|
}))), n = (o) => {
|
|
@@ -1351,9 +1886,9 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1351
1886
|
limit: parseInt(o)
|
|
1352
1887
|
});
|
|
1353
1888
|
};
|
|
1354
|
-
return (o,
|
|
1355
|
-
const r =
|
|
1356
|
-
return
|
|
1889
|
+
return (o, c) => {
|
|
1890
|
+
const r = A("FormKit");
|
|
1891
|
+
return m(), g("div", Ta, [
|
|
1357
1892
|
v(r, {
|
|
1358
1893
|
"model-value": e.sparkTable.params.limit,
|
|
1359
1894
|
type: "select",
|
|
@@ -1366,7 +1901,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1366
1901
|
]);
|
|
1367
1902
|
};
|
|
1368
1903
|
}
|
|
1369
|
-
},
|
|
1904
|
+
}, Pa = /* @__PURE__ */ J(La, [["__scopeId", "data-v-9ef8544b"]]), Ce = {
|
|
1370
1905
|
__name: "SparkTableToolbar",
|
|
1371
1906
|
props: {
|
|
1372
1907
|
position: {
|
|
@@ -1376,18 +1911,18 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1376
1911
|
}
|
|
1377
1912
|
},
|
|
1378
1913
|
setup(e) {
|
|
1379
|
-
const s = e, t =
|
|
1914
|
+
const s = e, t = He(), a = S(() => !!t.default), l = S(() => {
|
|
1380
1915
|
const n = "spark-table-toolbar flex flex-wrap items-center gap-x-5 w-full";
|
|
1381
1916
|
return s.position === "footer" ? `${n} spark-table-toolbar-footer justify-between` : `${n} spark-table-toolbar-header gap-y-5 py-5`;
|
|
1382
1917
|
});
|
|
1383
|
-
return (n, o) => a.value ? (
|
|
1918
|
+
return (n, o) => a.value ? (m(), g("div", {
|
|
1384
1919
|
key: 0,
|
|
1385
|
-
class:
|
|
1920
|
+
class: P(l.value)
|
|
1386
1921
|
}, [
|
|
1387
|
-
|
|
1922
|
+
O(n.$slots, "default")
|
|
1388
1923
|
], 2)) : $("", !0);
|
|
1389
1924
|
}
|
|
1390
|
-
},
|
|
1925
|
+
}, Ha = { class: "spark-table-search" }, Va = {
|
|
1391
1926
|
__name: "SparkTableSearch",
|
|
1392
1927
|
props: {
|
|
1393
1928
|
/** SparkTable instance object */
|
|
@@ -1406,11 +1941,11 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1406
1941
|
}
|
|
1407
1942
|
},
|
|
1408
1943
|
setup(e) {
|
|
1409
|
-
const s = e, t =
|
|
1944
|
+
const s = e, t = E(""), a = s.config.param || "search";
|
|
1410
1945
|
s.sparkTable.params[a] ? t.value = s.sparkTable.params[a] : s.config.initialValue && (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
|
|
1411
1946
|
[a]: s.config.initialValue
|
|
1412
1947
|
}));
|
|
1413
|
-
const l =
|
|
1948
|
+
const l = Ee((o) => {
|
|
1414
1949
|
o ? s.sparkTable.methods.applyParams({
|
|
1415
1950
|
page: 1,
|
|
1416
1951
|
[a]: o
|
|
@@ -1425,14 +1960,14 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1425
1960
|
(o) => {
|
|
1426
1961
|
o && o !== t.value ? t.value = o : !o && t.value && (t.value = "");
|
|
1427
1962
|
}
|
|
1428
|
-
), (o,
|
|
1429
|
-
const r =
|
|
1430
|
-
return
|
|
1431
|
-
v(r,
|
|
1963
|
+
), (o, c) => {
|
|
1964
|
+
const r = A("FormKit");
|
|
1965
|
+
return m(), g("div", Ha, [
|
|
1966
|
+
v(r, D({
|
|
1432
1967
|
modelValue: t.value,
|
|
1433
|
-
"onUpdate:modelValue":
|
|
1968
|
+
"onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
|
|
1434
1969
|
type: "text",
|
|
1435
|
-
placeholder:
|
|
1970
|
+
placeholder: x(n),
|
|
1436
1971
|
suffixIcon: "search",
|
|
1437
1972
|
"outer-class": "!mb-0",
|
|
1438
1973
|
"wrapper-class": "!mb-0",
|
|
@@ -1441,7 +1976,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1441
1976
|
]);
|
|
1442
1977
|
};
|
|
1443
1978
|
}
|
|
1444
|
-
},
|
|
1979
|
+
}, Ma = /* @__PURE__ */ J(Va, [["__scopeId", "data-v-976170dc"]]), Ra = { class: "spark-table-filter-select" }, Ba = {
|
|
1445
1980
|
__name: "SparkTableFilterSelect",
|
|
1446
1981
|
props: {
|
|
1447
1982
|
/** SparkTable instance object */
|
|
@@ -1457,11 +1992,11 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1457
1992
|
}
|
|
1458
1993
|
},
|
|
1459
1994
|
setup(e) {
|
|
1460
|
-
const s = e, t =
|
|
1995
|
+
const s = e, t = E(""), a = s.config.param || `filter[${s.config.key}]`;
|
|
1461
1996
|
s.sparkTable.params[a] ? t.value = s.sparkTable.params[a] : s.config.initialValue !== void 0 && s.config.initialValue !== null && (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
|
|
1462
1997
|
[a]: s.config.initialValue
|
|
1463
1998
|
}));
|
|
1464
|
-
const l = s.config.label || null, n =
|
|
1999
|
+
const l = s.config.label || null, n = S(() => [
|
|
1465
2000
|
{ label: s.config.placeholder || "All", value: "" },
|
|
1466
2001
|
...s.config.options
|
|
1467
2002
|
]);
|
|
@@ -1475,14 +2010,14 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1475
2010
|
(o) => {
|
|
1476
2011
|
o != null && o !== "" ? t.value !== o && (t.value = o) : t.value && (t.value = "");
|
|
1477
2012
|
}
|
|
1478
|
-
), (o,
|
|
1479
|
-
const r =
|
|
1480
|
-
return
|
|
1481
|
-
v(r,
|
|
2013
|
+
), (o, c) => {
|
|
2014
|
+
const r = A("FormKit");
|
|
2015
|
+
return m(), g("div", Ra, [
|
|
2016
|
+
v(r, D({
|
|
1482
2017
|
modelValue: t.value,
|
|
1483
|
-
"onUpdate:modelValue":
|
|
2018
|
+
"onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
|
|
1484
2019
|
type: "select",
|
|
1485
|
-
label:
|
|
2020
|
+
label: x(l),
|
|
1486
2021
|
options: n.value,
|
|
1487
2022
|
placeholder: e.config.placeholder || "All",
|
|
1488
2023
|
"outer-class": "!mb-0",
|
|
@@ -1491,10 +2026,10 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1491
2026
|
]);
|
|
1492
2027
|
};
|
|
1493
2028
|
}
|
|
1494
|
-
},
|
|
2029
|
+
}, Ea = /* @__PURE__ */ J(Ba, [["__scopeId", "data-v-642dbc69"]]), Aa = { class: "spark-table-filter-buttons" }, Fa = {
|
|
1495
2030
|
key: 0,
|
|
1496
2031
|
class: "spark-table-filter-buttons-label"
|
|
1497
|
-
},
|
|
2032
|
+
}, Oa = {
|
|
1498
2033
|
__name: "SparkTableFilterButtons",
|
|
1499
2034
|
props: {
|
|
1500
2035
|
/** SparkTable instance object */
|
|
@@ -1510,33 +2045,33 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1510
2045
|
}
|
|
1511
2046
|
},
|
|
1512
2047
|
setup(e) {
|
|
1513
|
-
const s = e, t =
|
|
2048
|
+
const s = e, t = E(null), a = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`;
|
|
1514
2049
|
s.sparkTable.params[l] !== void 0 ? t.value = s.sparkTable.params[l] : s.config.initialValue !== void 0 && (t.value = s.config.initialValue, s.config.initialValue !== null && s.sparkTable.methods.applyParams({
|
|
1515
2050
|
[l]: s.config.initialValue
|
|
1516
2051
|
}));
|
|
1517
|
-
const n = (
|
|
1518
|
-
t.value =
|
|
2052
|
+
const n = (c) => c == null ? t.value === null || t.value === void 0 || t.value === "" : t.value === c, o = (c) => {
|
|
2053
|
+
t.value = c, c == null || c === "" ? s.sparkTable.methods.removeParam(l) : s.sparkTable.methods.applyParams({
|
|
1519
2054
|
page: 1,
|
|
1520
|
-
[l]:
|
|
2055
|
+
[l]: c
|
|
1521
2056
|
});
|
|
1522
2057
|
};
|
|
1523
2058
|
return j(
|
|
1524
2059
|
() => s.sparkTable.params[l],
|
|
1525
|
-
(
|
|
1526
|
-
(
|
|
2060
|
+
(c) => {
|
|
2061
|
+
(c == null || c === "") && t.value ? t.value = null : c !== t.value && (t.value = c);
|
|
1527
2062
|
}
|
|
1528
|
-
), (
|
|
1529
|
-
|
|
1530
|
-
v(
|
|
1531
|
-
default:
|
|
1532
|
-
(
|
|
1533
|
-
key:
|
|
2063
|
+
), (c, r) => (m(), g("div", Aa, [
|
|
2064
|
+
x(a) ? (m(), g("span", Fa, L(x(a)), 1)) : $("", !0),
|
|
2065
|
+
v(zs, { class: "isolate" }, {
|
|
2066
|
+
default: C(() => [
|
|
2067
|
+
(m(!0), g(R, null, z(e.config.options, (i) => (m(), M(K, {
|
|
2068
|
+
key: i.value,
|
|
1534
2069
|
size: "xl",
|
|
1535
|
-
variant: n(
|
|
1536
|
-
onClick: (
|
|
2070
|
+
variant: n(i.value) ? "primary" : "secondary",
|
|
2071
|
+
onClick: (u) => o(i.value)
|
|
1537
2072
|
}, {
|
|
1538
|
-
default:
|
|
1539
|
-
|
|
2073
|
+
default: C(() => [
|
|
2074
|
+
B(L(i.label), 1)
|
|
1540
2075
|
]),
|
|
1541
2076
|
_: 2
|
|
1542
2077
|
}, 1032, ["variant", "onClick"]))), 128))
|
|
@@ -1545,7 +2080,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1545
2080
|
})
|
|
1546
2081
|
]));
|
|
1547
2082
|
}
|
|
1548
|
-
},
|
|
2083
|
+
}, za = /* @__PURE__ */ J(Oa, [["__scopeId", "data-v-0fcd0cce"]]), ja = { class: "spark-table-date-picker" }, Ia = {
|
|
1549
2084
|
__name: "SparkTableDatePicker",
|
|
1550
2085
|
props: {
|
|
1551
2086
|
/** SparkTable instance object */
|
|
@@ -1561,7 +2096,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1561
2096
|
}
|
|
1562
2097
|
},
|
|
1563
2098
|
setup(e) {
|
|
1564
|
-
const s = e, t =
|
|
2099
|
+
const s = e, t = E(null), a = s.config.label || null, l = s.config.param || `filter[${s.config.key}]`, n = E(`${l}-0`);
|
|
1565
2100
|
return s.sparkTable.params[l] ? t.value = s.sparkTable.params[l] : s.config.initialValue ? (t.value = s.config.initialValue, s.sparkTable.methods.applyParams({
|
|
1566
2101
|
[l]: s.config.initialValue
|
|
1567
2102
|
})) : t.value = null, j(t, (o) => {
|
|
@@ -1574,20 +2109,20 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1574
2109
|
(o) => {
|
|
1575
2110
|
if ((o == null || o === "") && t.value) {
|
|
1576
2111
|
t.value = null;
|
|
1577
|
-
const
|
|
1578
|
-
n.value = `${l}-${
|
|
2112
|
+
const c = parseInt(n.value.split("-").pop()) || 0;
|
|
2113
|
+
n.value = `${l}-${c + 1}`;
|
|
1579
2114
|
} else o && o !== t.value && (t.value = o);
|
|
1580
2115
|
}
|
|
1581
|
-
), (o,
|
|
1582
|
-
const r =
|
|
1583
|
-
return
|
|
1584
|
-
(
|
|
2116
|
+
), (o, c) => {
|
|
2117
|
+
const r = A("FormKit");
|
|
2118
|
+
return m(), g("div", ja, [
|
|
2119
|
+
(m(), M(r, D({
|
|
1585
2120
|
key: n.value,
|
|
1586
2121
|
modelValue: t.value,
|
|
1587
|
-
"onUpdate:modelValue":
|
|
2122
|
+
"onUpdate:modelValue": c[0] || (c[0] = (i) => t.value = i),
|
|
1588
2123
|
type: "datepicker",
|
|
1589
2124
|
"picker-only": "",
|
|
1590
|
-
label:
|
|
2125
|
+
label: x(a),
|
|
1591
2126
|
placeholder: e.config.placeholder || "Select date",
|
|
1592
2127
|
overlay: !0,
|
|
1593
2128
|
"value-format": "YYYY-MM-DD",
|
|
@@ -1598,7 +2133,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1598
2133
|
]);
|
|
1599
2134
|
};
|
|
1600
2135
|
}
|
|
1601
|
-
},
|
|
2136
|
+
}, Da = /* @__PURE__ */ J(Ia, [["__scopeId", "data-v-44ef9cb8"]]), Na = { class: "spark-table-reset" }, qa = { key: 1 }, Za = {
|
|
1602
2137
|
__name: "SparkTableReset",
|
|
1603
2138
|
props: {
|
|
1604
2139
|
/** SparkTable instance object */
|
|
@@ -1615,56 +2150,56 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1615
2150
|
setup(e) {
|
|
1616
2151
|
const s = e, t = () => {
|
|
1617
2152
|
const a = s.sparkTable.plugins || {}, l = [], n = {};
|
|
1618
|
-
Object.entries(a).forEach(([
|
|
1619
|
-
if (!
|
|
2153
|
+
Object.entries(a).forEach(([i, u]) => {
|
|
2154
|
+
if (!u || u.type === "reset" || !(typeof u.enabled == "function" ? u.enabled(s.sparkTable.params) : u.enabled))
|
|
1620
2155
|
return;
|
|
1621
|
-
let
|
|
1622
|
-
|
|
2156
|
+
let f = null;
|
|
2157
|
+
u.type === "search" ? f = u.param || "search" : u.type === "filterSelect" || u.type === "filterButtons" ? f = u.param || `filter[${u.key}]` : u.type === "datePicker" && (f = u.param || `filter[${u.key}]`), f && (u.initialValue !== void 0 && u.initialValue !== null ? n[f] = u.initialValue : l.push(f));
|
|
1623
2158
|
});
|
|
1624
2159
|
const o = l.filter(
|
|
1625
|
-
(
|
|
1626
|
-
),
|
|
1627
|
-
([
|
|
2160
|
+
(i) => s.sparkTable.params[i] !== void 0 && s.sparkTable.params[i] !== null && s.sparkTable.params[i] !== ""
|
|
2161
|
+
), c = Object.entries(n).filter(
|
|
2162
|
+
([i, u]) => s.sparkTable.params[i] !== u
|
|
1628
2163
|
);
|
|
1629
|
-
if (o.length === 0 &&
|
|
2164
|
+
if (o.length === 0 && c.length === 0)
|
|
1630
2165
|
return;
|
|
1631
|
-
o.forEach((
|
|
1632
|
-
delete s.sparkTable.params[
|
|
2166
|
+
o.forEach((i) => {
|
|
2167
|
+
delete s.sparkTable.params[i];
|
|
1633
2168
|
});
|
|
1634
|
-
const r = Object.fromEntries(
|
|
2169
|
+
const r = Object.fromEntries(c);
|
|
1635
2170
|
s.sparkTable.methods.applyParams({ ...r, page: 1 });
|
|
1636
2171
|
};
|
|
1637
2172
|
return (a, l) => {
|
|
1638
|
-
const n =
|
|
1639
|
-
return
|
|
1640
|
-
v(
|
|
2173
|
+
const n = A("font-awesome-icon");
|
|
2174
|
+
return m(), g("div", Na, [
|
|
2175
|
+
v(K, {
|
|
1641
2176
|
onClick: t,
|
|
1642
2177
|
variant: "secondary",
|
|
1643
2178
|
size: "xl"
|
|
1644
2179
|
}, {
|
|
1645
|
-
default:
|
|
1646
|
-
e.config.icon ? (
|
|
2180
|
+
default: C(() => [
|
|
2181
|
+
e.config.icon ? (m(), M(n, {
|
|
1647
2182
|
key: 0,
|
|
1648
2183
|
icon: ["far", e.config.icon],
|
|
1649
|
-
class:
|
|
2184
|
+
class: P({ "mr-1.5": e.config.label })
|
|
1650
2185
|
}, null, 8, ["icon", "class"])) : $("", !0),
|
|
1651
|
-
e.config.label ? (
|
|
2186
|
+
e.config.label ? (m(), g("span", qa, L(e.config.label), 1)) : $("", !0)
|
|
1652
2187
|
]),
|
|
1653
2188
|
_: 1
|
|
1654
2189
|
})
|
|
1655
2190
|
]);
|
|
1656
2191
|
};
|
|
1657
2192
|
}
|
|
1658
|
-
},
|
|
2193
|
+
}, Ka = /* @__PURE__ */ J(Za, [["__scopeId", "data-v-45343158"]]), Ua = { class: "spark-table" }, Ga = {
|
|
1659
2194
|
key: 1,
|
|
1660
2195
|
class: "pt-5"
|
|
1661
|
-
},
|
|
2196
|
+
}, Wa = { class: "flex items-center gap-x-3" }, he = {
|
|
1662
2197
|
perPages: [15, 30, 50, 100, 200, 500],
|
|
1663
2198
|
limit: 15
|
|
1664
|
-
},
|
|
2199
|
+
}, Ya = {
|
|
1665
2200
|
page: 1,
|
|
1666
|
-
limit:
|
|
1667
|
-
},
|
|
2201
|
+
limit: he.limit
|
|
2202
|
+
}, $e = {
|
|
1668
2203
|
colHeaders: !0,
|
|
1669
2204
|
filters: !1,
|
|
1670
2205
|
stretchH: "all",
|
|
@@ -1674,7 +2209,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1674
2209
|
tableClassName: "spark-table-table",
|
|
1675
2210
|
readOnlyCellClassName: "read-only",
|
|
1676
2211
|
licenseKey: "non-commercial-and-evaluation"
|
|
1677
|
-
},
|
|
2212
|
+
}, Xr = {
|
|
1678
2213
|
__name: "SparkTable",
|
|
1679
2214
|
props: {
|
|
1680
2215
|
url: {
|
|
@@ -1686,7 +2221,7 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1686
2221
|
dataTransformer: {
|
|
1687
2222
|
type: Function,
|
|
1688
2223
|
default: (e, s) => ({
|
|
1689
|
-
data:
|
|
2224
|
+
data: U(s.settings, "nestedHeaders") ? e.data.data.map((a) => (s.settings.columnKeys || []).map((n) => a[n])) : e.data.data,
|
|
1690
2225
|
meta: {
|
|
1691
2226
|
last_page: e.data.last_page,
|
|
1692
2227
|
from: e.data.from,
|
|
@@ -1698,19 +2233,19 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1698
2233
|
params: {
|
|
1699
2234
|
type: Object,
|
|
1700
2235
|
default() {
|
|
1701
|
-
return
|
|
2236
|
+
return Ya;
|
|
1702
2237
|
}
|
|
1703
2238
|
},
|
|
1704
2239
|
options: {
|
|
1705
2240
|
type: Object,
|
|
1706
2241
|
default() {
|
|
1707
|
-
return
|
|
2242
|
+
return he;
|
|
1708
2243
|
}
|
|
1709
2244
|
},
|
|
1710
2245
|
settings: {
|
|
1711
2246
|
type: Object,
|
|
1712
2247
|
default() {
|
|
1713
|
-
return
|
|
2248
|
+
return $e;
|
|
1714
2249
|
}
|
|
1715
2250
|
},
|
|
1716
2251
|
plugins: {
|
|
@@ -1739,18 +2274,18 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1739
2274
|
],
|
|
1740
2275
|
setup(e, { expose: s, emit: t }) {
|
|
1741
2276
|
const a = e;
|
|
1742
|
-
|
|
1743
|
-
const l = t, n =
|
|
1744
|
-
let
|
|
1745
|
-
const
|
|
1746
|
-
search:
|
|
1747
|
-
filterSelect:
|
|
1748
|
-
filterButtons:
|
|
1749
|
-
datePicker:
|
|
1750
|
-
reset:
|
|
1751
|
-
},
|
|
2277
|
+
Dt(), ce(Ot), ce(zt), ce(jt), U(a, "settings.nestedHeaders") && ce(It);
|
|
2278
|
+
const l = t, n = Le("axios"), o = E(null), c = E(!1), r = E(null);
|
|
2279
|
+
let i = !1;
|
|
2280
|
+
const u = {
|
|
2281
|
+
search: Ma,
|
|
2282
|
+
filterSelect: Ea,
|
|
2283
|
+
filterButtons: za,
|
|
2284
|
+
datePicker: Da,
|
|
2285
|
+
reset: Ka
|
|
2286
|
+
}, p = q({
|
|
1752
2287
|
hotInstance: null,
|
|
1753
|
-
url:
|
|
2288
|
+
url: S(() => a.url),
|
|
1754
2289
|
plugins: a.plugins,
|
|
1755
2290
|
response: {},
|
|
1756
2291
|
params: {
|
|
@@ -1758,208 +2293,208 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1758
2293
|
limit: a.options.limit
|
|
1759
2294
|
},
|
|
1760
2295
|
methods: {
|
|
1761
|
-
applyParams: (
|
|
1762
|
-
|
|
1763
|
-
...
|
|
1764
|
-
...
|
|
1765
|
-
}, l("page-change",
|
|
2296
|
+
applyParams: (h) => {
|
|
2297
|
+
h && (p.params = {
|
|
2298
|
+
...p.params,
|
|
2299
|
+
...h
|
|
2300
|
+
}, l("page-change", p.params));
|
|
1766
2301
|
},
|
|
1767
|
-
removeParam: async (
|
|
1768
|
-
|
|
2302
|
+
removeParam: async (h) => {
|
|
2303
|
+
p.params[h] && (delete p.params[h], await p.methods.loadTable());
|
|
1769
2304
|
},
|
|
1770
|
-
loadTable: async (
|
|
2305
|
+
loadTable: async (h) => {
|
|
1771
2306
|
if (!(!o.value || !o.value.hotInstance)) {
|
|
1772
|
-
|
|
2307
|
+
c.value = !0, r.value = null, l("loading", !0), pe.start(), p.hotInstance = o.value.hotInstance;
|
|
1773
2308
|
try {
|
|
1774
2309
|
if (a.dataProvider) {
|
|
1775
|
-
const
|
|
1776
|
-
|
|
2310
|
+
const w = await a.dataProvider(p.computed.params);
|
|
2311
|
+
p.response = a.dataTransformer(w, a);
|
|
1777
2312
|
} else if (a.url) {
|
|
1778
|
-
const
|
|
1779
|
-
params:
|
|
2313
|
+
const w = await n.get(a.url, {
|
|
2314
|
+
params: p.computed.params
|
|
1780
2315
|
});
|
|
1781
|
-
|
|
2316
|
+
p.response = a.dataTransformer(w, a);
|
|
1782
2317
|
} else {
|
|
1783
|
-
console.error("No data provider or URL provided"),
|
|
2318
|
+
console.error("No data provider or URL provided"), c.value = !1, l("loading", !1), pe.done();
|
|
1784
2319
|
return;
|
|
1785
2320
|
}
|
|
1786
|
-
if (
|
|
1787
|
-
|
|
1788
|
-
const
|
|
1789
|
-
|
|
1790
|
-
|
|
2321
|
+
if (i) return;
|
|
2322
|
+
p.hotInstance.updateData(p.response.data), p.options.callback && typeof p.options.callback == "function" && await p.options.callback();
|
|
2323
|
+
const _ = p.hotInstance.getPlugin("autoColumnSize");
|
|
2324
|
+
U(a.settings, "columns", []).forEach((w, b) => {
|
|
2325
|
+
w.width || _.calculateColumnsWidth(b, b, !0);
|
|
1791
2326
|
}), l("load", {
|
|
1792
|
-
data:
|
|
1793
|
-
meta:
|
|
1794
|
-
}),
|
|
1795
|
-
} catch (
|
|
1796
|
-
r.value =
|
|
2327
|
+
data: p.response.data,
|
|
2328
|
+
meta: p.response.meta
|
|
2329
|
+
}), h && typeof h == "function" && h();
|
|
2330
|
+
} catch (_) {
|
|
2331
|
+
r.value = _, l("error", _), console.error("Error loading table data:", _);
|
|
1797
2332
|
} finally {
|
|
1798
|
-
|
|
2333
|
+
c.value = !1, l("loading", !1), pe.done();
|
|
1799
2334
|
}
|
|
1800
2335
|
}
|
|
1801
2336
|
},
|
|
1802
2337
|
// can't use sparkTable.hotInstance here because the ref isn't ready
|
|
1803
|
-
colToProp: (
|
|
1804
|
-
fireEvent: (
|
|
1805
|
-
l(
|
|
2338
|
+
colToProp: (h) => o.value.hotInstance.colToProp(h),
|
|
2339
|
+
fireEvent: (h, _) => {
|
|
2340
|
+
l(h, _);
|
|
1806
2341
|
},
|
|
1807
|
-
getSettingsForProp: (
|
|
2342
|
+
getSettingsForProp: (h) => Et(U(p.tableSettings, "columns"), { data: h }),
|
|
1808
2343
|
// Helper methods for easier param access
|
|
1809
|
-
getParams: () =>
|
|
1810
|
-
getParam: (
|
|
1811
|
-
setParam: (
|
|
1812
|
-
|
|
2344
|
+
getParams: () => p.computed.params,
|
|
2345
|
+
getParam: (h) => p.computed.params[h],
|
|
2346
|
+
setParam: (h, _) => {
|
|
2347
|
+
p.methods.applyParams({ [h]: _ });
|
|
1813
2348
|
},
|
|
1814
|
-
clearParam: (
|
|
1815
|
-
clearParams: (
|
|
1816
|
-
(Array.isArray(
|
|
1817
|
-
|
|
1818
|
-
}),
|
|
2349
|
+
clearParam: (h) => p.methods.removeParam(h),
|
|
2350
|
+
clearParams: (h) => {
|
|
2351
|
+
(Array.isArray(h) ? h : [h]).forEach((H) => {
|
|
2352
|
+
p.params[H] !== void 0 && delete p.params[H];
|
|
2353
|
+
}), p.methods.applyParams({ page: 1 });
|
|
1819
2354
|
}
|
|
1820
2355
|
},
|
|
1821
2356
|
computed: {
|
|
1822
|
-
params:
|
|
2357
|
+
params: S(() => ({
|
|
1823
2358
|
...a.params,
|
|
1824
|
-
...
|
|
2359
|
+
...p.params
|
|
1825
2360
|
})),
|
|
1826
|
-
ready:
|
|
2361
|
+
ready: S(() => At(p, "response.meta.last_page"))
|
|
1827
2362
|
},
|
|
1828
|
-
options:
|
|
1829
|
-
...
|
|
2363
|
+
options: S(() => ({
|
|
2364
|
+
...he,
|
|
1830
2365
|
...a.options
|
|
1831
2366
|
})),
|
|
1832
|
-
tableSettings:
|
|
1833
|
-
|
|
1834
|
-
nestedHeaders:
|
|
1835
|
-
...!
|
|
1836
|
-
afterGetColHeader: (
|
|
2367
|
+
tableSettings: S(() => ({
|
|
2368
|
+
...$e,
|
|
2369
|
+
nestedHeaders: U(a.settings, "nestedHeaders", []),
|
|
2370
|
+
...!U(a.settings, "nestedHeaders") && {
|
|
2371
|
+
afterGetColHeader: (h, _) => ta(h, _, p)
|
|
1837
2372
|
},
|
|
1838
|
-
afterChange: (
|
|
1839
|
-
afterRender: () =>
|
|
2373
|
+
afterChange: (h, _) => fa(),
|
|
2374
|
+
afterRender: () => sa(p),
|
|
1840
2375
|
/**
|
|
1841
2376
|
* Prevent columns with explicit width from being stretched
|
|
1842
2377
|
* This hook fires BEFORE stretchH is applied, allowing us to cap specific columns
|
|
1843
2378
|
* while letting others stretch normally
|
|
1844
2379
|
*/
|
|
1845
|
-
beforeStretchingColumnWidth: (
|
|
1846
|
-
const
|
|
1847
|
-
return
|
|
2380
|
+
beforeStretchingColumnWidth: (h, _) => {
|
|
2381
|
+
const w = U(a.settings, "columns", [])[_];
|
|
2382
|
+
return w && w.width !== void 0 ? w.width : h;
|
|
1848
2383
|
},
|
|
1849
2384
|
...a.settings
|
|
1850
2385
|
}))
|
|
1851
|
-
}),
|
|
1852
|
-
if (!
|
|
1853
|
-
switch (
|
|
2386
|
+
}), f = (h) => {
|
|
2387
|
+
if (!h) return null;
|
|
2388
|
+
switch (h.type) {
|
|
1854
2389
|
case "search":
|
|
1855
|
-
return
|
|
2390
|
+
return h.param || "search";
|
|
1856
2391
|
case "filterSelect":
|
|
1857
2392
|
case "filterButtons":
|
|
1858
2393
|
case "datePicker":
|
|
1859
|
-
return
|
|
2394
|
+
return h.param || `filter[${h.key}]`;
|
|
1860
2395
|
default:
|
|
1861
2396
|
return null;
|
|
1862
2397
|
}
|
|
1863
|
-
},
|
|
2398
|
+
}, y = (h) => h ? typeof h.enabled == "function" ? h.enabled(p.params) : h.enabled : !1, k = S(() => Object.entries(a.plugins).filter(([h, _]) => y(_)).map(([h, _]) => ({ name: h, config: _ })));
|
|
1864
2399
|
if (j(
|
|
1865
|
-
() => ({ ...
|
|
2400
|
+
() => ({ ...p.params }),
|
|
1866
2401
|
() => {
|
|
1867
|
-
const
|
|
1868
|
-
Object.values(a.plugins).forEach((
|
|
1869
|
-
const
|
|
1870
|
-
if (!
|
|
1871
|
-
const
|
|
1872
|
-
!
|
|
1873
|
-
}),
|
|
1874
|
-
delete
|
|
2402
|
+
const h = [];
|
|
2403
|
+
Object.values(a.plugins).forEach((_) => {
|
|
2404
|
+
const H = f(_);
|
|
2405
|
+
if (!H) return;
|
|
2406
|
+
const w = y(_), b = p.params[H] !== void 0;
|
|
2407
|
+
!w && b && h.push(H);
|
|
2408
|
+
}), h.length > 0 && h.forEach((_) => {
|
|
2409
|
+
delete p.params[_];
|
|
1875
2410
|
});
|
|
1876
2411
|
},
|
|
1877
2412
|
{ deep: !0, flush: "sync" }
|
|
1878
2413
|
), a.syncToRoute || a.persistToStorage) {
|
|
1879
|
-
const
|
|
1880
|
-
|
|
1881
|
-
namespace:
|
|
2414
|
+
const h = typeof a.syncToRoute == "string";
|
|
2415
|
+
ma(p, {
|
|
2416
|
+
namespace: h ? a.syncToRoute : null,
|
|
1882
2417
|
syncToRoute: !!a.syncToRoute,
|
|
1883
2418
|
persistToStorage: a.persistToStorage
|
|
1884
2419
|
});
|
|
1885
2420
|
}
|
|
1886
|
-
return
|
|
2421
|
+
return be(
|
|
1887
2422
|
() => a.params,
|
|
1888
2423
|
async () => {
|
|
1889
|
-
|
|
2424
|
+
p.params.page = 1, await p.methods.loadTable();
|
|
1890
2425
|
},
|
|
1891
2426
|
{ debounce: 50, maxWait: 1e3 }
|
|
1892
|
-
),
|
|
1893
|
-
() =>
|
|
2427
|
+
), be(
|
|
2428
|
+
() => p.params,
|
|
1894
2429
|
async () => {
|
|
1895
|
-
await
|
|
2430
|
+
await p.methods.loadTable();
|
|
1896
2431
|
},
|
|
1897
2432
|
{ debounce: 50, maxWait: 1e3 }
|
|
1898
2433
|
), j(
|
|
1899
2434
|
() => a.url,
|
|
1900
|
-
async (
|
|
1901
|
-
|
|
2435
|
+
async (h, _) => {
|
|
2436
|
+
h !== _ && (p.params.page = 1, await p.methods.loadTable());
|
|
1902
2437
|
}
|
|
1903
|
-
),
|
|
1904
|
-
await
|
|
1905
|
-
}),
|
|
1906
|
-
|
|
1907
|
-
}),
|
|
1908
|
-
refresh: () =>
|
|
1909
|
-
getParams: () =>
|
|
1910
|
-
getParam: (
|
|
1911
|
-
setParam: (
|
|
1912
|
-
clearParam: (
|
|
1913
|
-
clearParams: (
|
|
1914
|
-
applyParams: (
|
|
1915
|
-
loading:
|
|
2438
|
+
), ge(async () => {
|
|
2439
|
+
await p.methods.loadTable(), l("ready");
|
|
2440
|
+
}), Ke(() => {
|
|
2441
|
+
i = !0;
|
|
2442
|
+
}), pa(p), s({
|
|
2443
|
+
refresh: () => p.methods.loadTable(),
|
|
2444
|
+
getParams: () => p.methods.getParams(),
|
|
2445
|
+
getParam: (h) => p.methods.getParam(h),
|
|
2446
|
+
setParam: (h, _) => p.methods.setParam(h, _),
|
|
2447
|
+
clearParam: (h) => p.methods.clearParam(h),
|
|
2448
|
+
clearParams: (h) => p.methods.clearParams(h),
|
|
2449
|
+
applyParams: (h) => p.methods.applyParams(h),
|
|
2450
|
+
loading: c,
|
|
1916
2451
|
error: r,
|
|
1917
|
-
sparkTable:
|
|
2452
|
+
sparkTable: p,
|
|
1918
2453
|
table: o
|
|
1919
|
-
}), (
|
|
1920
|
-
|
|
2454
|
+
}), (h, _) => (m(), g("div", Ua, [
|
|
2455
|
+
p.computed.ready && k.value && k.value.length ? (m(), M(Ce, {
|
|
1921
2456
|
key: 0,
|
|
1922
2457
|
position: "header"
|
|
1923
2458
|
}, {
|
|
1924
|
-
default:
|
|
1925
|
-
(
|
|
1926
|
-
key:
|
|
1927
|
-
class:
|
|
1928
|
-
"spark-table":
|
|
1929
|
-
config:
|
|
2459
|
+
default: C(() => [
|
|
2460
|
+
(m(!0), g(R, null, z(k.value, (H) => (m(), M(I(u[H.config.type]), {
|
|
2461
|
+
key: H.name,
|
|
2462
|
+
class: P(H.config.align ? `self-${H.config.align}` : ""),
|
|
2463
|
+
"spark-table": p,
|
|
2464
|
+
config: H.config
|
|
1930
2465
|
}, null, 8, ["class", "spark-table", "config"]))), 128)),
|
|
1931
|
-
|
|
1932
|
-
sparkTable:
|
|
1933
|
-
loading:
|
|
2466
|
+
O(h.$slots, "header", {
|
|
2467
|
+
sparkTable: p,
|
|
2468
|
+
loading: c.value,
|
|
1934
2469
|
error: r.value
|
|
1935
2470
|
})
|
|
1936
2471
|
]),
|
|
1937
2472
|
_: 3
|
|
1938
|
-
})) : (
|
|
1939
|
-
v(
|
|
2473
|
+
})) : (m(), g("div", Ga)),
|
|
2474
|
+
v(x(Ft), {
|
|
1940
2475
|
"theme-name": "ht-theme-classic",
|
|
1941
2476
|
ref_key: "table",
|
|
1942
2477
|
ref: o,
|
|
1943
|
-
settings:
|
|
2478
|
+
settings: p.tableSettings
|
|
1944
2479
|
}, null, 8, ["settings"]),
|
|
1945
|
-
|
|
2480
|
+
p.computed.ready ? (m(), M(Ce, {
|
|
1946
2481
|
key: 2,
|
|
1947
2482
|
position: "footer"
|
|
1948
2483
|
}, {
|
|
1949
|
-
default:
|
|
1950
|
-
v(
|
|
1951
|
-
d("div",
|
|
1952
|
-
v(
|
|
1953
|
-
"spark-table":
|
|
1954
|
-
onPaginate:
|
|
2484
|
+
default: C(() => [
|
|
2485
|
+
v(ka, { "spark-table": p }, null, 8, ["spark-table"]),
|
|
2486
|
+
d("div", Wa, [
|
|
2487
|
+
v($a, {
|
|
2488
|
+
"spark-table": p,
|
|
2489
|
+
onPaginate: p.methods.applyParams
|
|
1955
2490
|
}, null, 8, ["spark-table", "onPaginate"]),
|
|
1956
|
-
v(
|
|
1957
|
-
"spark-table":
|
|
1958
|
-
onPaginate:
|
|
2491
|
+
v(Pa, {
|
|
2492
|
+
"spark-table": p,
|
|
2493
|
+
onPaginate: p.methods.applyParams
|
|
1959
2494
|
}, null, 8, ["spark-table", "onPaginate"]),
|
|
1960
|
-
|
|
1961
|
-
sparkTable:
|
|
1962
|
-
loading:
|
|
2495
|
+
O(h.$slots, "footer", {
|
|
2496
|
+
sparkTable: p,
|
|
2497
|
+
loading: c.value,
|
|
1963
2498
|
error: r.value
|
|
1964
2499
|
})
|
|
1965
2500
|
])
|
|
@@ -1969,20 +2504,21 @@ const Ys = /* @__PURE__ */ new Map(), U = (e, s) => {
|
|
|
1969
2504
|
]));
|
|
1970
2505
|
}
|
|
1971
2506
|
};
|
|
1972
|
-
function
|
|
1973
|
-
const e =
|
|
2507
|
+
function Te() {
|
|
2508
|
+
const e = q({
|
|
1974
2509
|
isVisible: !1,
|
|
1975
2510
|
content: null,
|
|
1976
2511
|
props: {},
|
|
1977
|
-
eventHandlers: {}
|
|
2512
|
+
eventHandlers: {},
|
|
2513
|
+
size: "md"
|
|
1978
2514
|
}), s = () => {
|
|
1979
2515
|
e.isVisible = !e.isVisible;
|
|
1980
2516
|
}, t = () => {
|
|
1981
|
-
e.isVisible = !1, e.content = null, e.props = {}, e.eventHandlers = {};
|
|
2517
|
+
e.isVisible = !1, e.content = null, e.props = {}, e.eventHandlers = {}, e.size = "md";
|
|
1982
2518
|
}, a = () => {
|
|
1983
2519
|
e.isVisible = !0;
|
|
1984
|
-
}, l = (o,
|
|
1985
|
-
e.content =
|
|
2520
|
+
}, l = (o, c = {}, r = {}, i = {}) => {
|
|
2521
|
+
e.content = de(o), e.props = c, e.eventHandlers = r, e.size = i.size || "md";
|
|
1986
2522
|
};
|
|
1987
2523
|
return {
|
|
1988
2524
|
state: e,
|
|
@@ -1990,32 +2526,32 @@ function we() {
|
|
|
1990
2526
|
close: t,
|
|
1991
2527
|
open: a,
|
|
1992
2528
|
setContent: l,
|
|
1993
|
-
show: (o,
|
|
1994
|
-
o && l(o,
|
|
2529
|
+
show: (o, c = {}, r = {}, i = {}) => {
|
|
2530
|
+
o && l(o, c, r, i), a();
|
|
1995
2531
|
}
|
|
1996
2532
|
};
|
|
1997
2533
|
}
|
|
1998
|
-
class
|
|
2534
|
+
class Xa {
|
|
1999
2535
|
constructor() {
|
|
2000
|
-
this.left =
|
|
2536
|
+
this.left = Te(), this.right = Te();
|
|
2001
2537
|
}
|
|
2002
|
-
showLeft = (s, t = {}, a = {}) => {
|
|
2003
|
-
const
|
|
2538
|
+
showLeft = (s, t = {}, a = {}, l = {}) => {
|
|
2539
|
+
const n = {
|
|
2004
2540
|
close: () => {
|
|
2005
2541
|
a.close?.(), this.closeLeft();
|
|
2006
2542
|
},
|
|
2007
2543
|
...a
|
|
2008
2544
|
};
|
|
2009
|
-
this.left.show(s, t, l);
|
|
2545
|
+
this.left.show(s, t, n, l);
|
|
2010
2546
|
};
|
|
2011
|
-
showRight = (s, t = {}, a = {}) => {
|
|
2012
|
-
const
|
|
2547
|
+
showRight = (s, t = {}, a = {}, l = {}) => {
|
|
2548
|
+
const n = {
|
|
2013
2549
|
close: () => {
|
|
2014
2550
|
a.close?.(), this.closeRight();
|
|
2015
2551
|
},
|
|
2016
2552
|
...a
|
|
2017
2553
|
};
|
|
2018
|
-
this.right.show(s, t, l);
|
|
2554
|
+
this.right.show(s, t, n, l);
|
|
2019
2555
|
};
|
|
2020
2556
|
closeLeft = () => {
|
|
2021
2557
|
this.left.close();
|
|
@@ -2027,22 +2563,22 @@ class Fa {
|
|
|
2027
2563
|
this.left.close(), this.right.close();
|
|
2028
2564
|
};
|
|
2029
2565
|
}
|
|
2030
|
-
const
|
|
2566
|
+
const ee = new Xa(), Ja = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, Qa = { class: "flex flex-1 flex-col" }, eo = {
|
|
2031
2567
|
class: "flex flex-1 flex-col gap-y-7",
|
|
2032
2568
|
role: "list"
|
|
2033
|
-
},
|
|
2569
|
+
}, to = { class: "flex flex-1 flex-col" }, so = {
|
|
2034
2570
|
role: "list",
|
|
2035
2571
|
class: "flex flex-1 flex-col"
|
|
2036
|
-
},
|
|
2572
|
+
}, ao = { class: "flex items-center pb-8" }, oo = ["href", "onClick"], ro = {
|
|
2037
2573
|
key: 2,
|
|
2038
2574
|
class: "w-full flex justify-center"
|
|
2039
|
-
},
|
|
2575
|
+
}, no = {
|
|
2040
2576
|
key: 0,
|
|
2041
2577
|
class: "mt-[5px] flex flex-col gap-[5px]"
|
|
2042
|
-
},
|
|
2578
|
+
}, lo = ["href", "onClick"], io = {
|
|
2043
2579
|
key: 1,
|
|
2044
2580
|
class: "text-[13px]"
|
|
2045
|
-
},
|
|
2581
|
+
}, co = { class: "mt-auto" }, uo = { class: "p-[10px] flex-shrink-0" }, po = { class: "flex flex-1 items-center gap-x-6" }, fo = { class: "relative flex flex-1 items-center gap-4" }, mo = { class: "cursor-pointer" }, ho = ["src"], go = { class: "ml-auto" }, yo = { class: "mr-[10px] pb-[10px] flex-1 flex flex-col" }, Jr = {
|
|
2046
2582
|
__name: "SparkDefaultContainer",
|
|
2047
2583
|
props: {
|
|
2048
2584
|
appStore: {
|
|
@@ -2060,113 +2596,113 @@ const X = new Fa(), Aa = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja =
|
|
|
2060
2596
|
},
|
|
2061
2597
|
emits: ["overlayClose"],
|
|
2062
2598
|
setup(e, { emit: s }) {
|
|
2063
|
-
const t = e, a = s, l =
|
|
2064
|
-
const
|
|
2065
|
-
l["app-selector-bottom"] ?
|
|
2066
|
-
select: (
|
|
2067
|
-
|
|
2599
|
+
const t = e, a = s, l = He(), n = re(), o = ze(), c = Ae(), r = S(() => c.getAppIcon(t.appStore.state.app)), i = S(() => n.meta.hideBrandSelector === !0 ? !1 : t.appStore.state.showBrandSelector), u = () => {
|
|
2600
|
+
const k = {};
|
|
2601
|
+
l["app-selector-bottom"] ? k.bottomSlot = () => ve("div", {}, l["app-selector-bottom"]()) : t.appSelectorSlots.bottomSlot && (k.bottomSlot = t.appSelectorSlots.bottomSlot), l["app-selector-footer"] ? k.footerSlot = () => ve("div", {}, l["app-selector-footer"]()) : t.appSelectorSlots.footerSlot && (k.footerSlot = t.appSelectorSlots.footerSlot), ee.showRight(ms, k, {
|
|
2602
|
+
select: (h) => {
|
|
2603
|
+
ee.closeRight();
|
|
2068
2604
|
}
|
|
2069
2605
|
});
|
|
2070
|
-
},
|
|
2071
|
-
|
|
2072
|
-
|
|
2606
|
+
}, p = () => {
|
|
2607
|
+
ee.showLeft(
|
|
2608
|
+
Fs,
|
|
2073
2609
|
{},
|
|
2074
2610
|
{
|
|
2075
|
-
select: (
|
|
2076
|
-
o.toggleBrand(
|
|
2611
|
+
select: (k) => {
|
|
2612
|
+
o.toggleBrand(k), ee.closeLeft();
|
|
2077
2613
|
}
|
|
2078
2614
|
}
|
|
2079
2615
|
);
|
|
2080
|
-
},
|
|
2081
|
-
return (
|
|
2082
|
-
const
|
|
2083
|
-
return
|
|
2616
|
+
}, f = S(() => t.mainNavStore.state.hidden ? ["w-0 overflow-hidden"] : [t.mainNavStore.state.collapsed ? "w-[80px]" : "w-[240px]"]), y = S(() => t.mainNavStore.state.hidden ? ["pl-2.5"] : [t.mainNavStore.state.collapsed ? "pl-[80px]" : "pl-[240px]"]);
|
|
2617
|
+
return (k, h) => {
|
|
2618
|
+
const _ = A("font-awesome-icon"), H = A("router-view");
|
|
2619
|
+
return m(), g(R, null, [
|
|
2084
2620
|
d("div", {
|
|
2085
|
-
class:
|
|
2621
|
+
class: P([f.value, "fixed inset-y-0 flex transition-all z-100"])
|
|
2086
2622
|
}, [
|
|
2087
|
-
d("div",
|
|
2088
|
-
d("nav",
|
|
2089
|
-
d("ul",
|
|
2090
|
-
d("li",
|
|
2091
|
-
d("ul",
|
|
2092
|
-
d("li",
|
|
2623
|
+
d("div", Ja, [
|
|
2624
|
+
d("nav", Qa, [
|
|
2625
|
+
d("ul", eo, [
|
|
2626
|
+
d("li", to, [
|
|
2627
|
+
d("ul", so, [
|
|
2628
|
+
d("li", ao, [
|
|
2093
2629
|
d("a", {
|
|
2094
2630
|
class: "grid w-[40px] h-[40px] place-items-center rounded-md bg-primary-600 text-white text-[13px] cursor-pointer",
|
|
2095
|
-
onClick:
|
|
2631
|
+
onClick: h[0] || (h[0] = X((w) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"]))
|
|
2096
2632
|
}, [
|
|
2097
|
-
v(
|
|
2098
|
-
icon:
|
|
2633
|
+
v(_, {
|
|
2634
|
+
icon: x(F)[r.value],
|
|
2099
2635
|
class: "size-5"
|
|
2100
2636
|
}, null, 8, ["icon"])
|
|
2101
2637
|
]),
|
|
2102
|
-
e.mainNavStore.state.collapsed ? $("", !0) : (
|
|
2638
|
+
e.mainNavStore.state.collapsed ? $("", !0) : (m(), g("a", {
|
|
2103
2639
|
key: 0,
|
|
2104
|
-
onClick:
|
|
2640
|
+
onClick: h[1] || (h[1] = X((w) => e.mainNavStore.goto(e.appStore.state.homeRoute), ["prevent"])),
|
|
2105
2641
|
class: "font-medium text-gray-800 ml-[10px] cursor-pointer"
|
|
2106
|
-
},
|
|
2642
|
+
}, L(e.appStore.state.app), 1))
|
|
2107
2643
|
]),
|
|
2108
|
-
(
|
|
2109
|
-
key:
|
|
2110
|
-
class:
|
|
2111
|
-
"mt-[10px]":
|
|
2112
|
-
"mt-auto":
|
|
2644
|
+
(m(!0), g(R, null, z(e.mainNavStore.state.menu, (w) => (m(), g("li", {
|
|
2645
|
+
key: w.name,
|
|
2646
|
+
class: P({
|
|
2647
|
+
"mt-[10px]": w.children,
|
|
2648
|
+
"mt-auto": w.footerSection
|
|
2113
2649
|
})
|
|
2114
2650
|
}, [
|
|
2115
2651
|
d("a", {
|
|
2116
|
-
class:
|
|
2117
|
-
"bg-gray-100":
|
|
2118
|
-
"hover:bg-gray-100":
|
|
2652
|
+
class: P([{
|
|
2653
|
+
"bg-gray-100": w.current,
|
|
2654
|
+
"hover:bg-gray-100": w?.href
|
|
2119
2655
|
}, "h-[37px] sgroup flex items-center gap-x-2 rounded-md p-3 text-gray-800 leading-5 transition-all duration-300 ease-in-out"]),
|
|
2120
|
-
href:
|
|
2121
|
-
onClick:
|
|
2656
|
+
href: w?.href,
|
|
2657
|
+
onClick: X((b) => e.mainNavStore.goto(w.href), ["prevent"])
|
|
2122
2658
|
}, [
|
|
2123
|
-
|
|
2659
|
+
w.icon ? (m(), M(_, {
|
|
2124
2660
|
key: 0,
|
|
2125
|
-
icon:
|
|
2126
|
-
class:
|
|
2661
|
+
icon: x(F)[w.icon],
|
|
2662
|
+
class: P([[(w.current, "text-gray-400")], "size-4"])
|
|
2127
2663
|
}, null, 8, ["icon", "class"])) : $("", !0),
|
|
2128
|
-
e.mainNavStore.state.collapsed ?
|
|
2664
|
+
e.mainNavStore.state.collapsed ? w?.children ? (m(), g("div", ro, [...h[6] || (h[6] = [
|
|
2129
2665
|
d("div", { class: "w-[10px] h-px bg-gray-400" }, null, -1)
|
|
2130
|
-
])])) : $("", !0) : (
|
|
2666
|
+
])])) : $("", !0) : (m(), g("span", {
|
|
2131
2667
|
key: 1,
|
|
2132
|
-
class:
|
|
2133
|
-
"text-[11px]":
|
|
2134
|
-
"text-[13px]": !
|
|
2135
|
-
"font-semibold":
|
|
2136
|
-
"text-gray-500":
|
|
2668
|
+
class: P({
|
|
2669
|
+
"text-[11px]": w?.children,
|
|
2670
|
+
"text-[13px]": !w?.children,
|
|
2671
|
+
"font-semibold": w?.children,
|
|
2672
|
+
"text-gray-500": w?.children
|
|
2137
2673
|
})
|
|
2138
|
-
},
|
|
2139
|
-
], 10,
|
|
2140
|
-
|
|
2141
|
-
(
|
|
2674
|
+
}, L(w.name), 3))
|
|
2675
|
+
], 10, oo),
|
|
2676
|
+
w.children ? (m(), g("ul", no, [
|
|
2677
|
+
(m(!0), g(R, null, z(w.children, (b) => (m(), g("li", {
|
|
2142
2678
|
key: b.name
|
|
2143
2679
|
}, [
|
|
2144
2680
|
d("a", {
|
|
2145
|
-
class:
|
|
2681
|
+
class: P([[b.current ? "bg-gray-100" : "", "hover:bg-gray-100"], "h-[37px] sgroup flex items-center gap-x-2 rounded-md p-3 text-gray-800 leading-5 transition-all duration-300 ease-in-out"]),
|
|
2146
2682
|
href: b.href,
|
|
2147
|
-
onClick:
|
|
2683
|
+
onClick: X((T) => e.mainNavStore.goto(b.href), ["prevent"])
|
|
2148
2684
|
}, [
|
|
2149
|
-
b.icon ? (
|
|
2685
|
+
b.icon ? (m(), M(_, {
|
|
2150
2686
|
key: 0,
|
|
2151
|
-
icon:
|
|
2152
|
-
class:
|
|
2687
|
+
icon: x(F)[b.icon],
|
|
2688
|
+
class: P([[(b.current, "text-gray-400")], "size-4"])
|
|
2153
2689
|
}, null, 8, ["icon", "class"])) : $("", !0),
|
|
2154
|
-
e.mainNavStore.state.collapsed ? $("", !0) : (
|
|
2155
|
-
], 10,
|
|
2690
|
+
e.mainNavStore.state.collapsed ? $("", !0) : (m(), g("span", io, L(b.name), 1))
|
|
2691
|
+
], 10, lo)
|
|
2156
2692
|
]))), 128))
|
|
2157
2693
|
])) : $("", !0)
|
|
2158
2694
|
], 2))), 128))
|
|
2159
2695
|
])
|
|
2160
2696
|
]),
|
|
2161
|
-
d("li",
|
|
2162
|
-
|
|
2697
|
+
d("li", co, [
|
|
2698
|
+
O(k.$slots, "sidebar-footer"),
|
|
2163
2699
|
d("a", {
|
|
2164
2700
|
class: "font-medium grid place-content-center gap-x-3 rounded-md h-10 p-2.5 text-gray-800 text-[13px] hover:bg-gray-100 transition-all duration-300 ease-in-out",
|
|
2165
2701
|
href: "#",
|
|
2166
|
-
onClick:
|
|
2702
|
+
onClick: h[2] || (h[2] = X((w) => e.mainNavStore.toggleCollapsed(), ["prevent"]))
|
|
2167
2703
|
}, [
|
|
2168
|
-
v(
|
|
2169
|
-
icon:
|
|
2704
|
+
v(_, {
|
|
2705
|
+
icon: x(F)[e.mainNavStore.state.collapsed ? "farArrowRightToLine" : "farArrowLeftToLine"],
|
|
2170
2706
|
class: "class-5"
|
|
2171
2707
|
}, null, 8, ["icon"])
|
|
2172
2708
|
])
|
|
@@ -2176,44 +2712,44 @@ const X = new Fa(), Aa = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja =
|
|
|
2176
2712
|
])
|
|
2177
2713
|
], 2),
|
|
2178
2714
|
d("div", {
|
|
2179
|
-
class:
|
|
2715
|
+
class: P([y.value, "h-full transition-all flex flex-col"])
|
|
2180
2716
|
}, [
|
|
2181
|
-
d("div",
|
|
2182
|
-
d("div",
|
|
2183
|
-
d("div",
|
|
2184
|
-
|
|
2185
|
-
d("div",
|
|
2186
|
-
v(
|
|
2187
|
-
icon:
|
|
2717
|
+
d("div", uo, [
|
|
2718
|
+
d("div", po, [
|
|
2719
|
+
d("div", fo, [
|
|
2720
|
+
O(k.$slots, "header-left", {}, () => [
|
|
2721
|
+
d("div", mo, [
|
|
2722
|
+
v(_, {
|
|
2723
|
+
icon: x(F).farBarsSort,
|
|
2188
2724
|
class: "size-5",
|
|
2189
|
-
onClick:
|
|
2725
|
+
onClick: h[3] || (h[3] = (w) => e.mainNavStore.toggleHidden())
|
|
2190
2726
|
}, null, 8, ["icon"])
|
|
2191
2727
|
])
|
|
2192
2728
|
]),
|
|
2193
|
-
|
|
2194
|
-
|
|
2729
|
+
O(k.$slots, "header-center", {}, () => [
|
|
2730
|
+
i.value ? (m(), g("div", {
|
|
2195
2731
|
key: 0,
|
|
2196
2732
|
class: "absolute left-1/2 -translate-x-1/2 cursor-pointer h-9 flex items-center",
|
|
2197
|
-
onClick:
|
|
2733
|
+
onClick: p
|
|
2198
2734
|
}, [
|
|
2199
|
-
|
|
2735
|
+
x(o).currentBrand ? (m(), g("img", {
|
|
2200
2736
|
key: 0,
|
|
2201
|
-
src:
|
|
2737
|
+
src: x(o).currentBrand.logo,
|
|
2202
2738
|
alt: "",
|
|
2203
2739
|
class: "h-[30px] w-auto"
|
|
2204
|
-
}, null, 8,
|
|
2740
|
+
}, null, 8, ho)) : $("", !0)
|
|
2205
2741
|
])) : $("", !0)
|
|
2206
2742
|
]),
|
|
2207
|
-
d("div",
|
|
2208
|
-
|
|
2209
|
-
e.appStore.state.showAppSelector ? (
|
|
2743
|
+
d("div", go, [
|
|
2744
|
+
O(k.$slots, "header-right", {}, () => [
|
|
2745
|
+
e.appStore.state.showAppSelector ? (m(), g("button", {
|
|
2210
2746
|
key: 0,
|
|
2211
2747
|
class: "rounded-sm bg-white w-[42px] h-[42px] ring-1 ring-inset ring-gray-300",
|
|
2212
2748
|
type: "button",
|
|
2213
|
-
onClick:
|
|
2749
|
+
onClick: u
|
|
2214
2750
|
}, [
|
|
2215
|
-
v(
|
|
2216
|
-
icon:
|
|
2751
|
+
v(_, {
|
|
2752
|
+
icon: x(F).farGripDotsVertical,
|
|
2217
2753
|
class: "size-4 text-gray-400"
|
|
2218
2754
|
}, null, 8, ["icon"])
|
|
2219
2755
|
])) : $("", !0)
|
|
@@ -2222,62 +2758,62 @@ const X = new Fa(), Aa = { class: "flex grow m-2.5 p-[10px] rounded-lg" }, ja =
|
|
|
2222
2758
|
])
|
|
2223
2759
|
])
|
|
2224
2760
|
]),
|
|
2225
|
-
d("main",
|
|
2226
|
-
v(
|
|
2761
|
+
d("main", yo, [
|
|
2762
|
+
v(H)
|
|
2227
2763
|
])
|
|
2228
2764
|
], 2),
|
|
2229
|
-
v(
|
|
2765
|
+
v(x(ke), {
|
|
2230
2766
|
position: "left",
|
|
2231
|
-
"overlay-instance":
|
|
2232
|
-
onClose:
|
|
2767
|
+
"overlay-instance": x(ee).left,
|
|
2768
|
+
onClose: h[4] || (h[4] = (w) => a("overlayClose", "left"))
|
|
2233
2769
|
}, null, 8, ["overlay-instance"]),
|
|
2234
|
-
v(
|
|
2770
|
+
v(x(ke), {
|
|
2235
2771
|
position: "right",
|
|
2236
|
-
"overlay-instance":
|
|
2237
|
-
onClose:
|
|
2772
|
+
"overlay-instance": x(ee).right,
|
|
2773
|
+
onClose: h[5] || (h[5] = (w) => a("overlayClose", "right"))
|
|
2238
2774
|
}, null, 8, ["overlay-instance"]),
|
|
2239
|
-
v(
|
|
2775
|
+
v(x(Ws))
|
|
2240
2776
|
], 64);
|
|
2241
2777
|
};
|
|
2242
2778
|
}
|
|
2243
|
-
},
|
|
2244
|
-
function
|
|
2245
|
-
const t =
|
|
2246
|
-
return
|
|
2779
|
+
}, vo = {}, bo = { class: "h-full" };
|
|
2780
|
+
function xo(e, s) {
|
|
2781
|
+
const t = A("router-view");
|
|
2782
|
+
return m(), g("main", bo, [
|
|
2247
2783
|
v(t)
|
|
2248
2784
|
]);
|
|
2249
2785
|
}
|
|
2250
|
-
const
|
|
2786
|
+
const Qr = /* @__PURE__ */ J(vo, [["render", xo]]), ko = (e) => {
|
|
2251
2787
|
const s = document.cookie.match(new RegExp(`(^| )${e}=([^;]+)`));
|
|
2252
2788
|
return s ? s[2] : null;
|
|
2253
|
-
},
|
|
2789
|
+
}, _o = (e, s, t = {}) => {
|
|
2254
2790
|
const {
|
|
2255
2791
|
maxAge: a = 31536e3,
|
|
2256
2792
|
// 365 days in seconds
|
|
2257
|
-
domain: l =
|
|
2793
|
+
domain: l = je(),
|
|
2258
2794
|
secure: n = !0,
|
|
2259
2795
|
sameSite: o = "Lax",
|
|
2260
|
-
path:
|
|
2796
|
+
path: c = "/"
|
|
2261
2797
|
} = t;
|
|
2262
|
-
let r = `${e}=${s}; max-age=${a}; path=${
|
|
2798
|
+
let r = `${e}=${s}; max-age=${a}; path=${c}; samesite=${o}`;
|
|
2263
2799
|
l && (r += `; domain=${l}`), n && (r += "; secure"), document.cookie = r;
|
|
2264
|
-
},
|
|
2265
|
-
const { domain: t =
|
|
2800
|
+
}, wo = (e, s = {}) => {
|
|
2801
|
+
const { domain: t = je(), path: a = "/" } = s;
|
|
2266
2802
|
let l = `${e}=; max-age=0; path=${a}`;
|
|
2267
2803
|
t && (l += `; domain=${t}`), document.cookie = l;
|
|
2268
|
-
},
|
|
2804
|
+
}, je = () => {
|
|
2269
2805
|
const e = window.location.hostname;
|
|
2270
2806
|
return e === "localhost" ? "localhost" : e.endsWith(".test") || e.endsWith(".io") ? "." + e.split(".").slice(-2).join(".") : e.endsWith(".com.au") ? "." + e.split(".").slice(-3).join(".") : e;
|
|
2271
|
-
},
|
|
2272
|
-
function
|
|
2273
|
-
|
|
2807
|
+
}, Ie = [];
|
|
2808
|
+
function So(e) {
|
|
2809
|
+
Ie.push(e);
|
|
2274
2810
|
}
|
|
2275
|
-
function
|
|
2276
|
-
|
|
2811
|
+
function Co() {
|
|
2812
|
+
Ie.forEach((e) => e());
|
|
2277
2813
|
}
|
|
2278
|
-
function
|
|
2814
|
+
function en(e) {
|
|
2279
2815
|
let s = !1;
|
|
2280
|
-
return
|
|
2816
|
+
return So(() => {
|
|
2281
2817
|
s = !1;
|
|
2282
2818
|
}), {
|
|
2283
2819
|
bootstrapApp: async () => {
|
|
@@ -2290,8 +2826,8 @@ function jr(e) {
|
|
|
2290
2826
|
}
|
|
2291
2827
|
};
|
|
2292
2828
|
}
|
|
2293
|
-
const
|
|
2294
|
-
const e =
|
|
2829
|
+
const me = "bolt-next-token", Z = ie("auth", () => {
|
|
2830
|
+
const e = q({
|
|
2295
2831
|
user: null,
|
|
2296
2832
|
token: null,
|
|
2297
2833
|
ready: !1,
|
|
@@ -2323,18 +2859,18 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2323
2859
|
onLogoutSuccess: null,
|
|
2324
2860
|
onLogoutError: null
|
|
2325
2861
|
}
|
|
2326
|
-
}), s = (
|
|
2327
|
-
|
|
2328
|
-
}, t = (
|
|
2329
|
-
|
|
2862
|
+
}), s = (i = {}) => {
|
|
2863
|
+
i.endpoints && Object.assign(e.endpoints, i.endpoints), i.routes && Object.assign(e.routes, i.routes), i.devCredentials && Object.assign(e.devCredentials, i.devCredentials), i.callbacks && Object.assign(e.callbacks, i.callbacks), i.overrideToken && (e.overrideToken = i.overrideToken);
|
|
2864
|
+
}, t = (i) => {
|
|
2865
|
+
_o(me, i), e.token = i;
|
|
2330
2866
|
}, a = () => {
|
|
2331
|
-
|
|
2332
|
-
}, l = () =>
|
|
2333
|
-
const
|
|
2334
|
-
return t(
|
|
2867
|
+
wo(me), e.token = null;
|
|
2868
|
+
}, l = () => ko(me), n = async (i) => {
|
|
2869
|
+
const u = await oe.post(e.endpoints.login, i), p = u.headers.authorization;
|
|
2870
|
+
return t(p), e.user = u.data, e.callbacks.onLoginSuccess && await e.callbacks.onLoginSuccess(u.data), u.data;
|
|
2335
2871
|
}, o = async () => {
|
|
2336
2872
|
try {
|
|
2337
|
-
await
|
|
2873
|
+
await oe.post(
|
|
2338
2874
|
e.endpoints.logout,
|
|
2339
2875
|
{},
|
|
2340
2876
|
{
|
|
@@ -2343,50 +2879,50 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2343
2879
|
}
|
|
2344
2880
|
}
|
|
2345
2881
|
), e.callbacks.onLogoutSuccess && await e.callbacks.onLogoutSuccess();
|
|
2346
|
-
} catch (
|
|
2347
|
-
throw e.callbacks.onLogoutError && await e.callbacks.onLogoutError(
|
|
2882
|
+
} catch (i) {
|
|
2883
|
+
throw e.callbacks.onLogoutError && await e.callbacks.onLogoutError(i), i;
|
|
2348
2884
|
} finally {
|
|
2349
|
-
a(), e.user = null,
|
|
2885
|
+
a(), e.user = null, Co();
|
|
2350
2886
|
}
|
|
2351
|
-
},
|
|
2352
|
-
const
|
|
2353
|
-
if (!
|
|
2887
|
+
}, c = async () => {
|
|
2888
|
+
const i = e.overrideToken || l();
|
|
2889
|
+
if (!i)
|
|
2354
2890
|
return e.ready = !0, null;
|
|
2355
2891
|
try {
|
|
2356
|
-
const { data:
|
|
2892
|
+
const { data: u } = await oe.get(e.endpoints.fetch, {
|
|
2357
2893
|
headers: {
|
|
2358
|
-
Authorization: `Bearer ${
|
|
2894
|
+
Authorization: `Bearer ${i}`
|
|
2359
2895
|
}
|
|
2360
2896
|
});
|
|
2361
|
-
e.user =
|
|
2897
|
+
e.user = u, e.overrideToken || (e.token = i);
|
|
2362
2898
|
} catch {
|
|
2363
2899
|
e.overrideToken || a();
|
|
2364
2900
|
} finally {
|
|
2365
2901
|
e.ready = !0;
|
|
2366
2902
|
}
|
|
2367
|
-
}, r =
|
|
2903
|
+
}, r = S(() => e.overrideToken ? !0 : !!e.token && !!e.user);
|
|
2368
2904
|
return {
|
|
2369
2905
|
state: e,
|
|
2370
2906
|
initialize: s,
|
|
2371
2907
|
login: n,
|
|
2372
2908
|
logout: o,
|
|
2373
|
-
fetchUser:
|
|
2909
|
+
fetchUser: c,
|
|
2374
2910
|
check: r,
|
|
2375
2911
|
setTokenCookie: t,
|
|
2376
2912
|
clearTokenCookie: a,
|
|
2377
2913
|
getTokenCookie: l
|
|
2378
2914
|
};
|
|
2379
|
-
}),
|
|
2915
|
+
}), $o = { class: "h-full grid place-content-center relative" }, To = { class: "absolute top-8 left-8" }, Lo = ["src"], Po = {
|
|
2380
2916
|
key: 1,
|
|
2381
2917
|
width: "59",
|
|
2382
2918
|
height: "23",
|
|
2383
2919
|
viewBox: "0 0 59 23",
|
|
2384
2920
|
fill: "none",
|
|
2385
2921
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2386
|
-
},
|
|
2922
|
+
}, Ho = { class: "max-w-sm grid gap-y-1 -mt-8" }, Vo = { class: "mb-7" }, Mo = { class: "text-gray-600" }, Ro = { class: "grid grid-flow-col justify-between mt-1 mb-4" }, Bo = {
|
|
2387
2923
|
key: 0,
|
|
2388
2924
|
class: "text-red-600 text-sm mb-2"
|
|
2389
|
-
},
|
|
2925
|
+
}, Eo = { key: 0 }, Ao = { key: 1 }, Fo = {
|
|
2390
2926
|
__name: "SparkLoginView",
|
|
2391
2927
|
props: {
|
|
2392
2928
|
logo: {
|
|
@@ -2403,35 +2939,35 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2403
2939
|
}
|
|
2404
2940
|
},
|
|
2405
2941
|
setup(e) {
|
|
2406
|
-
const s =
|
|
2407
|
-
o.value = !0,
|
|
2942
|
+
const s = W(), t = re(), a = Fe(), l = Z(), n = e, o = E(!1), c = E(""), r = async (i) => {
|
|
2943
|
+
o.value = !0, c.value = "";
|
|
2408
2944
|
try {
|
|
2409
|
-
await l.login(
|
|
2410
|
-
const
|
|
2411
|
-
if (
|
|
2412
|
-
if (
|
|
2413
|
-
window.location.href =
|
|
2945
|
+
await l.login(i);
|
|
2946
|
+
const u = t.query.redirect;
|
|
2947
|
+
if (u) {
|
|
2948
|
+
if (u.startsWith("http")) {
|
|
2949
|
+
window.location.href = u;
|
|
2414
2950
|
return;
|
|
2415
2951
|
}
|
|
2416
|
-
await s.push(
|
|
2952
|
+
await s.push(u);
|
|
2417
2953
|
} else
|
|
2418
2954
|
await s.push(n.defaultRedirect);
|
|
2419
|
-
} catch (
|
|
2420
|
-
|
|
2955
|
+
} catch (u) {
|
|
2956
|
+
c.value = u.response?.data?.message || u.message || "Login failed. Please try again.";
|
|
2421
2957
|
} finally {
|
|
2422
2958
|
o.value = !1;
|
|
2423
2959
|
}
|
|
2424
2960
|
};
|
|
2425
|
-
return (
|
|
2426
|
-
const
|
|
2427
|
-
return
|
|
2428
|
-
d("div",
|
|
2429
|
-
n.logo ? (
|
|
2961
|
+
return (i, u) => {
|
|
2962
|
+
const p = A("FormKit"), f = A("router-link");
|
|
2963
|
+
return m(), g("div", $o, [
|
|
2964
|
+
d("div", To, [
|
|
2965
|
+
n.logo ? (m(), g("img", {
|
|
2430
2966
|
key: 0,
|
|
2431
2967
|
src: n.logo,
|
|
2432
2968
|
alt: "Logo",
|
|
2433
2969
|
class: "h-[23px] w-auto"
|
|
2434
|
-
}, null, 8,
|
|
2970
|
+
}, null, 8, Lo)) : (m(), g("svg", Po, [...u[0] || (u[0] = [
|
|
2435
2971
|
d("path", {
|
|
2436
2972
|
d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
|
|
2437
2973
|
fill: "#1C64F2"
|
|
@@ -2450,56 +2986,56 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2450
2986
|
}, null, -1)
|
|
2451
2987
|
])]))
|
|
2452
2988
|
]),
|
|
2453
|
-
d("div",
|
|
2454
|
-
d("div",
|
|
2455
|
-
|
|
2456
|
-
d("p",
|
|
2989
|
+
d("div", Ho, [
|
|
2990
|
+
d("div", Vo, [
|
|
2991
|
+
u[1] || (u[1] = d("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Log in", -1)),
|
|
2992
|
+
d("p", Mo, " Welcome back" + L(x(a).state.app ? ` to ${x(a).state.app}` : "") + "! Please enter your details. ", 1)
|
|
2457
2993
|
]),
|
|
2458
|
-
v(
|
|
2994
|
+
v(p, {
|
|
2459
2995
|
type: "form",
|
|
2460
2996
|
onSubmit: r,
|
|
2461
2997
|
actions: !1
|
|
2462
2998
|
}, {
|
|
2463
|
-
default:
|
|
2464
|
-
v(
|
|
2999
|
+
default: C(() => [
|
|
3000
|
+
v(p, {
|
|
2465
3001
|
label: "Email",
|
|
2466
3002
|
name: "email",
|
|
2467
3003
|
placeholder: "Enter your email",
|
|
2468
3004
|
type: "email",
|
|
2469
3005
|
validation: "required|email",
|
|
2470
3006
|
"outer-class": "max-w-full",
|
|
2471
|
-
value:
|
|
3007
|
+
value: x(l).state.devCredentials.username
|
|
2472
3008
|
}, null, 8, ["value"]),
|
|
2473
|
-
v(
|
|
3009
|
+
v(p, {
|
|
2474
3010
|
label: "Password",
|
|
2475
3011
|
name: "password",
|
|
2476
3012
|
placeholder: "••••••••",
|
|
2477
3013
|
type: "password",
|
|
2478
3014
|
validation: "required",
|
|
2479
3015
|
"outer-class": "max-w-full",
|
|
2480
|
-
value:
|
|
3016
|
+
value: x(l).state.devCredentials.password
|
|
2481
3017
|
}, null, 8, ["value"]),
|
|
2482
|
-
d("div",
|
|
2483
|
-
|
|
2484
|
-
v(
|
|
3018
|
+
d("div", Ro, [
|
|
3019
|
+
u[3] || (u[3] = d("span", null, null, -1)),
|
|
3020
|
+
v(f, {
|
|
2485
3021
|
to: n.forgotPasswordRoute,
|
|
2486
3022
|
class: "text-sm text-primary-600 font-semibold"
|
|
2487
3023
|
}, {
|
|
2488
|
-
default:
|
|
2489
|
-
|
|
3024
|
+
default: C(() => [...u[2] || (u[2] = [
|
|
3025
|
+
B(" Forgot password ", -1)
|
|
2490
3026
|
])]),
|
|
2491
3027
|
_: 1
|
|
2492
3028
|
}, 8, ["to"])
|
|
2493
3029
|
]),
|
|
2494
|
-
|
|
2495
|
-
v(
|
|
3030
|
+
c.value ? (m(), g("div", Bo, L(c.value), 1)) : $("", !0),
|
|
3031
|
+
v(x(K), {
|
|
2496
3032
|
type: "submit",
|
|
2497
3033
|
size: "xl",
|
|
2498
3034
|
disabled: o.value,
|
|
2499
3035
|
"button-class": "w-full mb-2"
|
|
2500
3036
|
}, {
|
|
2501
|
-
default:
|
|
2502
|
-
o.value ? (
|
|
3037
|
+
default: C(() => [
|
|
3038
|
+
o.value ? (m(), g("span", Ao, "Signing in...")) : (m(), g("span", Eo, "Sign in"))
|
|
2503
3039
|
]),
|
|
2504
3040
|
_: 1
|
|
2505
3041
|
}, 8, ["disabled"])
|
|
@@ -2510,7 +3046,7 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2510
3046
|
]);
|
|
2511
3047
|
};
|
|
2512
3048
|
}
|
|
2513
|
-
},
|
|
3049
|
+
}, Oo = {
|
|
2514
3050
|
__name: "SparkLogoutView",
|
|
2515
3051
|
props: {
|
|
2516
3052
|
defaultRedirect: {
|
|
@@ -2519,27 +3055,27 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2519
3055
|
}
|
|
2520
3056
|
},
|
|
2521
3057
|
setup(e) {
|
|
2522
|
-
const s =
|
|
2523
|
-
return
|
|
3058
|
+
const s = W(), t = re(), a = Z(), l = e;
|
|
3059
|
+
return ge(async () => {
|
|
2524
3060
|
await a.logout();
|
|
2525
3061
|
const n = t.query.redirect;
|
|
2526
3062
|
n && n.startsWith("http") ? window.location.href = n : await s.push(n || l.defaultRedirect);
|
|
2527
3063
|
}), (n, o) => null;
|
|
2528
3064
|
}
|
|
2529
|
-
},
|
|
3065
|
+
}, zo = { class: "h-full grid place-content-center relative" }, jo = { class: "absolute top-8 left-8" }, Io = ["src"], Do = {
|
|
2530
3066
|
key: 1,
|
|
2531
3067
|
width: "59",
|
|
2532
3068
|
height: "23",
|
|
2533
3069
|
viewBox: "0 0 59 23",
|
|
2534
3070
|
fill: "none",
|
|
2535
3071
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2536
|
-
},
|
|
3072
|
+
}, No = { class: "max-w-sm grid gap-y-1 -mt-8" }, qo = {
|
|
2537
3073
|
key: 0,
|
|
2538
3074
|
class: "text-red-600 text-sm mb-2"
|
|
2539
|
-
},
|
|
3075
|
+
}, Zo = {
|
|
2540
3076
|
key: 1,
|
|
2541
3077
|
class: "text-green-600 text-sm mb-2"
|
|
2542
|
-
},
|
|
3078
|
+
}, Ko = { key: 0 }, Uo = { key: 1 }, Go = {
|
|
2543
3079
|
__name: "SparkForgotPasswordView",
|
|
2544
3080
|
props: {
|
|
2545
3081
|
logo: {
|
|
@@ -2552,26 +3088,26 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2552
3088
|
}
|
|
2553
3089
|
},
|
|
2554
3090
|
setup(e) {
|
|
2555
|
-
const s =
|
|
3091
|
+
const s = Z(), t = e, a = E(!1), l = E(""), n = E(""), o = async ({ email: c }) => {
|
|
2556
3092
|
a.value = !0, l.value = "", n.value = "";
|
|
2557
3093
|
try {
|
|
2558
|
-
await
|
|
3094
|
+
await oe.post(s.state.endpoints.passwordEmail, { email: c }), n.value = "Password reset link sent! Check your email.";
|
|
2559
3095
|
} catch (r) {
|
|
2560
3096
|
l.value = r.response?.data?.message || "Failed to send reset link.";
|
|
2561
3097
|
} finally {
|
|
2562
3098
|
a.value = !1;
|
|
2563
3099
|
}
|
|
2564
3100
|
};
|
|
2565
|
-
return (
|
|
2566
|
-
const
|
|
2567
|
-
return
|
|
2568
|
-
d("div",
|
|
2569
|
-
t.logo ? (
|
|
3101
|
+
return (c, r) => {
|
|
3102
|
+
const i = A("FormKit"), u = A("router-link");
|
|
3103
|
+
return m(), g("div", zo, [
|
|
3104
|
+
d("div", jo, [
|
|
3105
|
+
t.logo ? (m(), g("img", {
|
|
2570
3106
|
key: 0,
|
|
2571
3107
|
src: t.logo,
|
|
2572
3108
|
alt: "Logo",
|
|
2573
3109
|
class: "h-[23px] w-auto"
|
|
2574
|
-
}, null, 8,
|
|
3110
|
+
}, null, 8, Io)) : (m(), g("svg", Do, [...r[0] || (r[0] = [
|
|
2575
3111
|
d("path", {
|
|
2576
3112
|
d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
|
|
2577
3113
|
fill: "#1C64F2"
|
|
@@ -2590,18 +3126,18 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2590
3126
|
}, null, -1)
|
|
2591
3127
|
])]))
|
|
2592
3128
|
]),
|
|
2593
|
-
d("div",
|
|
3129
|
+
d("div", No, [
|
|
2594
3130
|
r[2] || (r[2] = d("div", { class: "mb-7" }, [
|
|
2595
3131
|
d("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Reset password"),
|
|
2596
3132
|
d("p", { class: "text-gray-600" }, " Enter your email and we'll send you a link to reset your password. ")
|
|
2597
3133
|
], -1)),
|
|
2598
|
-
v(
|
|
3134
|
+
v(i, {
|
|
2599
3135
|
type: "form",
|
|
2600
3136
|
onSubmit: o,
|
|
2601
3137
|
actions: !1
|
|
2602
3138
|
}, {
|
|
2603
|
-
default:
|
|
2604
|
-
v(
|
|
3139
|
+
default: C(() => [
|
|
3140
|
+
v(i, {
|
|
2605
3141
|
label: "Email",
|
|
2606
3142
|
name: "email",
|
|
2607
3143
|
placeholder: "Enter your email",
|
|
@@ -2609,25 +3145,25 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2609
3145
|
validation: "required|email",
|
|
2610
3146
|
"outer-class": "max-w-full"
|
|
2611
3147
|
}),
|
|
2612
|
-
l.value ? (
|
|
2613
|
-
n.value ? (
|
|
2614
|
-
v(
|
|
3148
|
+
l.value ? (m(), g("div", qo, L(l.value), 1)) : $("", !0),
|
|
3149
|
+
n.value ? (m(), g("div", Zo, L(n.value), 1)) : $("", !0),
|
|
3150
|
+
v(x(K), {
|
|
2615
3151
|
type: "submit",
|
|
2616
3152
|
size: "xl",
|
|
2617
3153
|
disabled: a.value,
|
|
2618
3154
|
"button-class": "w-full mb-2"
|
|
2619
3155
|
}, {
|
|
2620
|
-
default:
|
|
2621
|
-
a.value ? (
|
|
3156
|
+
default: C(() => [
|
|
3157
|
+
a.value ? (m(), g("span", Uo, "Sending...")) : (m(), g("span", Ko, "Send reset link"))
|
|
2622
3158
|
]),
|
|
2623
3159
|
_: 1
|
|
2624
3160
|
}, 8, ["disabled"]),
|
|
2625
|
-
v(
|
|
3161
|
+
v(u, {
|
|
2626
3162
|
to: t.loginRoute,
|
|
2627
3163
|
class: "text-sm text-center text-primary-600 font-semibold block"
|
|
2628
3164
|
}, {
|
|
2629
|
-
default:
|
|
2630
|
-
|
|
3165
|
+
default: C(() => [...r[1] || (r[1] = [
|
|
3166
|
+
B(" Back to login ", -1)
|
|
2631
3167
|
])]),
|
|
2632
3168
|
_: 1
|
|
2633
3169
|
}, 8, ["to"])
|
|
@@ -2638,17 +3174,17 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2638
3174
|
]);
|
|
2639
3175
|
};
|
|
2640
3176
|
}
|
|
2641
|
-
},
|
|
3177
|
+
}, Wo = { class: "h-full grid place-content-center relative" }, Yo = { class: "absolute top-8 left-8" }, Xo = ["src"], Jo = {
|
|
2642
3178
|
key: 1,
|
|
2643
3179
|
width: "59",
|
|
2644
3180
|
height: "23",
|
|
2645
3181
|
viewBox: "0 0 59 23",
|
|
2646
3182
|
fill: "none",
|
|
2647
3183
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2648
|
-
},
|
|
3184
|
+
}, Qo = { class: "max-w-sm grid gap-y-1 -mt-8" }, er = {
|
|
2649
3185
|
key: 0,
|
|
2650
3186
|
class: "text-red-600 text-sm mb-2"
|
|
2651
|
-
},
|
|
3187
|
+
}, tr = { key: 0 }, sr = { key: 1 }, ar = {
|
|
2652
3188
|
__name: "SparkResetPasswordView",
|
|
2653
3189
|
props: {
|
|
2654
3190
|
logo: {
|
|
@@ -2661,31 +3197,31 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2661
3197
|
}
|
|
2662
3198
|
},
|
|
2663
3199
|
setup(e) {
|
|
2664
|
-
const s =
|
|
3200
|
+
const s = W(), t = re(), a = Z(), l = e, n = E(!1), o = E(""), c = async ({ password: r, password_confirmation: i }) => {
|
|
2665
3201
|
n.value = !0, o.value = "";
|
|
2666
3202
|
try {
|
|
2667
|
-
await
|
|
3203
|
+
await oe.post(a.state.endpoints.passwordReset, {
|
|
2668
3204
|
email: t.query.email,
|
|
2669
3205
|
token: t.query.token,
|
|
2670
3206
|
password: r,
|
|
2671
|
-
password_confirmation:
|
|
3207
|
+
password_confirmation: i
|
|
2672
3208
|
}), await s.push(l.loginRoute);
|
|
2673
|
-
} catch (
|
|
2674
|
-
o.value =
|
|
3209
|
+
} catch (u) {
|
|
3210
|
+
o.value = u.response?.data?.message || "Failed to reset password.";
|
|
2675
3211
|
} finally {
|
|
2676
3212
|
n.value = !1;
|
|
2677
3213
|
}
|
|
2678
3214
|
};
|
|
2679
|
-
return (r,
|
|
2680
|
-
const
|
|
2681
|
-
return
|
|
2682
|
-
d("div",
|
|
2683
|
-
l.logo ? (
|
|
3215
|
+
return (r, i) => {
|
|
3216
|
+
const u = A("FormKit");
|
|
3217
|
+
return m(), g("div", Wo, [
|
|
3218
|
+
d("div", Yo, [
|
|
3219
|
+
l.logo ? (m(), g("img", {
|
|
2684
3220
|
key: 0,
|
|
2685
3221
|
src: l.logo,
|
|
2686
3222
|
alt: "Logo",
|
|
2687
3223
|
class: "h-[23px] w-auto"
|
|
2688
|
-
}, null, 8,
|
|
3224
|
+
}, null, 8, Xo)) : (m(), g("svg", Jo, [...i[0] || (i[0] = [
|
|
2689
3225
|
d("path", {
|
|
2690
3226
|
d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
|
|
2691
3227
|
fill: "#1C64F2"
|
|
@@ -2704,18 +3240,18 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2704
3240
|
}, null, -1)
|
|
2705
3241
|
])]))
|
|
2706
3242
|
]),
|
|
2707
|
-
d("div",
|
|
2708
|
-
|
|
3243
|
+
d("div", Qo, [
|
|
3244
|
+
i[1] || (i[1] = d("div", { class: "mb-7" }, [
|
|
2709
3245
|
d("h1", { class: "text-4xl text-gray-900 semibold tracking-tight mb-3" }, "Set new password"),
|
|
2710
3246
|
d("p", { class: "text-gray-600" }, " Enter your new password below. ")
|
|
2711
3247
|
], -1)),
|
|
2712
|
-
v(
|
|
3248
|
+
v(u, {
|
|
2713
3249
|
type: "form",
|
|
2714
|
-
onSubmit:
|
|
3250
|
+
onSubmit: c,
|
|
2715
3251
|
actions: !1
|
|
2716
3252
|
}, {
|
|
2717
|
-
default:
|
|
2718
|
-
v(
|
|
3253
|
+
default: C(() => [
|
|
3254
|
+
v(u, {
|
|
2719
3255
|
label: "New Password",
|
|
2720
3256
|
name: "password",
|
|
2721
3257
|
placeholder: "••••••••",
|
|
@@ -2723,7 +3259,7 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2723
3259
|
validation: "required|length:8",
|
|
2724
3260
|
"outer-class": "max-w-full"
|
|
2725
3261
|
}),
|
|
2726
|
-
v(
|
|
3262
|
+
v(u, {
|
|
2727
3263
|
label: "Confirm Password",
|
|
2728
3264
|
name: "password_confirmation",
|
|
2729
3265
|
placeholder: "••••••••",
|
|
@@ -2731,15 +3267,15 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2731
3267
|
validation: "required|confirm:password",
|
|
2732
3268
|
"outer-class": "max-w-full"
|
|
2733
3269
|
}),
|
|
2734
|
-
o.value ? (
|
|
2735
|
-
v(
|
|
3270
|
+
o.value ? (m(), g("div", er, L(o.value), 1)) : $("", !0),
|
|
3271
|
+
v(x(K), {
|
|
2736
3272
|
type: "submit",
|
|
2737
3273
|
size: "xl",
|
|
2738
3274
|
disabled: n.value,
|
|
2739
3275
|
"button-class": "w-full mb-2"
|
|
2740
3276
|
}, {
|
|
2741
|
-
default:
|
|
2742
|
-
n.value ? (
|
|
3277
|
+
default: C(() => [
|
|
3278
|
+
n.value ? (m(), g("span", sr, "Resetting...")) : (m(), g("span", tr, "Reset password"))
|
|
2743
3279
|
]),
|
|
2744
3280
|
_: 1
|
|
2745
3281
|
}, 8, ["disabled"])
|
|
@@ -2750,14 +3286,14 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2750
3286
|
]);
|
|
2751
3287
|
};
|
|
2752
3288
|
}
|
|
2753
|
-
},
|
|
3289
|
+
}, or = { class: "h-full grid place-content-center relative" }, rr = { class: "absolute top-8 left-8" }, nr = ["src"], lr = {
|
|
2754
3290
|
key: 1,
|
|
2755
3291
|
width: "59",
|
|
2756
3292
|
height: "23",
|
|
2757
3293
|
viewBox: "0 0 59 23",
|
|
2758
3294
|
fill: "none",
|
|
2759
3295
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2760
|
-
},
|
|
3296
|
+
}, ir = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, cr = { class: "flex gap-4 justify-center" }, ur = {
|
|
2761
3297
|
__name: "SparkError403View",
|
|
2762
3298
|
props: {
|
|
2763
3299
|
logo: {
|
|
@@ -2770,17 +3306,17 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2770
3306
|
}
|
|
2771
3307
|
},
|
|
2772
3308
|
setup(e) {
|
|
2773
|
-
const s =
|
|
3309
|
+
const s = W(), t = e, a = () => {
|
|
2774
3310
|
s.push(t.homeRoute);
|
|
2775
3311
|
};
|
|
2776
|
-
return (l, n) => (
|
|
2777
|
-
d("div",
|
|
2778
|
-
t.logo ? (
|
|
3312
|
+
return (l, n) => (m(), g("div", or, [
|
|
3313
|
+
d("div", rr, [
|
|
3314
|
+
t.logo ? (m(), g("img", {
|
|
2779
3315
|
key: 0,
|
|
2780
3316
|
src: t.logo,
|
|
2781
3317
|
alt: "Logo",
|
|
2782
3318
|
class: "h-[23px] w-auto"
|
|
2783
|
-
}, null, 8,
|
|
3319
|
+
}, null, 8, nr)) : (m(), g("svg", lr, [...n[0] || (n[0] = [
|
|
2784
3320
|
d("path", {
|
|
2785
3321
|
d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
|
|
2786
3322
|
fill: "#1C64F2"
|
|
@@ -2799,23 +3335,23 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2799
3335
|
}, null, -1)
|
|
2800
3336
|
])]))
|
|
2801
3337
|
]),
|
|
2802
|
-
d("div",
|
|
3338
|
+
d("div", ir, [
|
|
2803
3339
|
n[2] || (n[2] = d("div", null, [
|
|
2804
3340
|
d("div", { class: "text-primary-600 text-7xl font-bold mb-4" }, "403"),
|
|
2805
3341
|
d("h1", { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, " Access Forbidden "),
|
|
2806
3342
|
d("p", { class: "text-gray-600" }, [
|
|
2807
|
-
|
|
3343
|
+
B(" You don't have permission to access this resource."),
|
|
2808
3344
|
d("br"),
|
|
2809
|
-
|
|
3345
|
+
B(" If you believe this is an error, please contact your administrator. ")
|
|
2810
3346
|
])
|
|
2811
3347
|
], -1)),
|
|
2812
|
-
d("div",
|
|
2813
|
-
v(
|
|
3348
|
+
d("div", cr, [
|
|
3349
|
+
v(x(K), {
|
|
2814
3350
|
onClick: a,
|
|
2815
3351
|
size: "lg"
|
|
2816
3352
|
}, {
|
|
2817
|
-
default:
|
|
2818
|
-
|
|
3353
|
+
default: C(() => [...n[1] || (n[1] = [
|
|
3354
|
+
B(" Go to Home ", -1)
|
|
2819
3355
|
])]),
|
|
2820
3356
|
_: 1
|
|
2821
3357
|
})
|
|
@@ -2823,14 +3359,14 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2823
3359
|
])
|
|
2824
3360
|
]));
|
|
2825
3361
|
}
|
|
2826
|
-
},
|
|
3362
|
+
}, dr = { class: "h-full grid place-content-center relative" }, pr = { class: "absolute top-8 left-8" }, fr = ["src"], mr = {
|
|
2827
3363
|
key: 1,
|
|
2828
3364
|
width: "59",
|
|
2829
3365
|
height: "23",
|
|
2830
3366
|
viewBox: "0 0 59 23",
|
|
2831
3367
|
fill: "none",
|
|
2832
3368
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2833
|
-
},
|
|
3369
|
+
}, hr = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, gr = { class: "flex gap-4 justify-center" }, yr = {
|
|
2834
3370
|
__name: "SparkError404View",
|
|
2835
3371
|
props: {
|
|
2836
3372
|
logo: {
|
|
@@ -2843,17 +3379,17 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2843
3379
|
}
|
|
2844
3380
|
},
|
|
2845
3381
|
setup(e) {
|
|
2846
|
-
const s =
|
|
3382
|
+
const s = W(), t = e, a = () => {
|
|
2847
3383
|
s.push(t.homeRoute);
|
|
2848
3384
|
};
|
|
2849
|
-
return (l, n) => (
|
|
2850
|
-
d("div",
|
|
2851
|
-
t.logo ? (
|
|
3385
|
+
return (l, n) => (m(), g("div", dr, [
|
|
3386
|
+
d("div", pr, [
|
|
3387
|
+
t.logo ? (m(), g("img", {
|
|
2852
3388
|
key: 0,
|
|
2853
3389
|
src: t.logo,
|
|
2854
3390
|
alt: "Logo",
|
|
2855
3391
|
class: "h-[23px] w-auto"
|
|
2856
|
-
}, null, 8,
|
|
3392
|
+
}, null, 8, fr)) : (m(), g("svg", mr, [...n[0] || (n[0] = [
|
|
2857
3393
|
d("path", {
|
|
2858
3394
|
d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
|
|
2859
3395
|
fill: "#1C64F2"
|
|
@@ -2872,19 +3408,19 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2872
3408
|
}, null, -1)
|
|
2873
3409
|
])]))
|
|
2874
3410
|
]),
|
|
2875
|
-
d("div",
|
|
3411
|
+
d("div", hr, [
|
|
2876
3412
|
n[2] || (n[2] = d("div", null, [
|
|
2877
3413
|
d("div", { class: "text-primary-600 text-7xl font-bold mb-4" }, "404"),
|
|
2878
3414
|
d("h1", { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, " Page Not Found "),
|
|
2879
3415
|
d("p", { class: "text-gray-600" }, " The page you're looking for doesn't exist or has been moved. ")
|
|
2880
3416
|
], -1)),
|
|
2881
|
-
d("div",
|
|
2882
|
-
v(
|
|
3417
|
+
d("div", gr, [
|
|
3418
|
+
v(x(K), {
|
|
2883
3419
|
onClick: a,
|
|
2884
3420
|
size: "lg"
|
|
2885
3421
|
}, {
|
|
2886
|
-
default:
|
|
2887
|
-
|
|
3422
|
+
default: C(() => [...n[1] || (n[1] = [
|
|
3423
|
+
B(" Go to Home ", -1)
|
|
2888
3424
|
])]),
|
|
2889
3425
|
_: 1
|
|
2890
3426
|
})
|
|
@@ -2892,14 +3428,14 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2892
3428
|
])
|
|
2893
3429
|
]));
|
|
2894
3430
|
}
|
|
2895
|
-
},
|
|
3431
|
+
}, vr = { class: "h-full grid place-content-center relative" }, br = { class: "absolute top-8 left-8" }, xr = ["src"], kr = {
|
|
2896
3432
|
key: 1,
|
|
2897
3433
|
width: "59",
|
|
2898
3434
|
height: "23",
|
|
2899
3435
|
viewBox: "0 0 59 23",
|
|
2900
3436
|
fill: "none",
|
|
2901
3437
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2902
|
-
},
|
|
3438
|
+
}, _r = { class: "max-w-lg grid gap-y-6 text-center -mt-8" }, wr = { class: "text-primary-600 text-7xl font-bold mb-4" }, Sr = { class: "text-3xl text-gray-900 font-semibold tracking-tight mb-3" }, Cr = { class: "text-gray-600" }, $r = { class: "flex gap-4 justify-center" }, tn = {
|
|
2903
3439
|
__name: "SparkErrorGeneralView",
|
|
2904
3440
|
props: {
|
|
2905
3441
|
logo: {
|
|
@@ -2924,17 +3460,17 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2924
3460
|
}
|
|
2925
3461
|
},
|
|
2926
3462
|
setup(e) {
|
|
2927
|
-
const s =
|
|
3463
|
+
const s = W(), t = e, a = () => {
|
|
2928
3464
|
s.push(t.homeRoute);
|
|
2929
3465
|
};
|
|
2930
|
-
return (l, n) => (
|
|
2931
|
-
d("div",
|
|
2932
|
-
t.logo ? (
|
|
3466
|
+
return (l, n) => (m(), g("div", vr, [
|
|
3467
|
+
d("div", br, [
|
|
3468
|
+
t.logo ? (m(), g("img", {
|
|
2933
3469
|
key: 0,
|
|
2934
3470
|
src: t.logo,
|
|
2935
3471
|
alt: "Logo",
|
|
2936
3472
|
class: "h-[23px] w-auto"
|
|
2937
|
-
}, null, 8,
|
|
3473
|
+
}, null, 8, xr)) : (m(), g("svg", kr, [...n[0] || (n[0] = [
|
|
2938
3474
|
d("path", {
|
|
2939
3475
|
d: "M49.2029 17.1264V8.03835H44.0829V5.22235H58.0989V8.03835H52.9629V17.1264H49.2029Z",
|
|
2940
3476
|
fill: "#1C64F2"
|
|
@@ -2953,19 +3489,19 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2953
3489
|
}, null, -1)
|
|
2954
3490
|
])]))
|
|
2955
3491
|
]),
|
|
2956
|
-
d("div",
|
|
3492
|
+
d("div", _r, [
|
|
2957
3493
|
d("div", null, [
|
|
2958
|
-
d("div",
|
|
2959
|
-
d("h1",
|
|
2960
|
-
d("p",
|
|
3494
|
+
d("div", wr, L(t.errorCode || "Error"), 1),
|
|
3495
|
+
d("h1", Sr, L(t.title || "Something went wrong"), 1),
|
|
3496
|
+
d("p", Cr, L(t.message || "An unexpected error occurred. Please try again later."), 1)
|
|
2961
3497
|
]),
|
|
2962
|
-
d("div",
|
|
2963
|
-
v(
|
|
3498
|
+
d("div", $r, [
|
|
3499
|
+
v(x(K), {
|
|
2964
3500
|
onClick: a,
|
|
2965
3501
|
size: "lg"
|
|
2966
3502
|
}, {
|
|
2967
|
-
default:
|
|
2968
|
-
|
|
3503
|
+
default: C(() => [...n[1] || (n[1] = [
|
|
3504
|
+
B(" Go to Home ", -1)
|
|
2969
3505
|
])]),
|
|
2970
3506
|
_: 1
|
|
2971
3507
|
})
|
|
@@ -2974,7 +3510,7 @@ const de = "bolt-next-token", I = re("auth", () => {
|
|
|
2974
3510
|
]));
|
|
2975
3511
|
}
|
|
2976
3512
|
};
|
|
2977
|
-
function
|
|
3513
|
+
function sn(e = {}) {
|
|
2978
3514
|
const {
|
|
2979
3515
|
loginPath: s = "/login",
|
|
2980
3516
|
logoutPath: t = "/logout",
|
|
@@ -2987,41 +3523,41 @@ function zr(e = {}) {
|
|
|
2987
3523
|
{
|
|
2988
3524
|
path: s,
|
|
2989
3525
|
name: "login",
|
|
2990
|
-
component:
|
|
3526
|
+
component: Fo,
|
|
2991
3527
|
props: { logo: n, defaultRedirect: o },
|
|
2992
3528
|
meta: { auth: !1 }
|
|
2993
3529
|
},
|
|
2994
3530
|
{
|
|
2995
3531
|
path: t,
|
|
2996
3532
|
name: "logout",
|
|
2997
|
-
component:
|
|
3533
|
+
component: Oo,
|
|
2998
3534
|
props: { defaultRedirect: s },
|
|
2999
3535
|
meta: { auth: !1 }
|
|
3000
3536
|
},
|
|
3001
3537
|
{
|
|
3002
3538
|
path: a,
|
|
3003
3539
|
name: "forgot-password",
|
|
3004
|
-
component:
|
|
3540
|
+
component: Go,
|
|
3005
3541
|
props: { logo: n, loginRoute: s },
|
|
3006
3542
|
meta: { auth: !1 }
|
|
3007
3543
|
},
|
|
3008
3544
|
{
|
|
3009
3545
|
path: l,
|
|
3010
3546
|
name: "password-reset",
|
|
3011
|
-
component:
|
|
3547
|
+
component: ar,
|
|
3012
3548
|
props: { logo: n, loginRoute: s },
|
|
3013
3549
|
meta: { auth: !1 }
|
|
3014
3550
|
}
|
|
3015
3551
|
];
|
|
3016
3552
|
}
|
|
3017
|
-
function
|
|
3553
|
+
function an(e, s = {}) {
|
|
3018
3554
|
const { defaultAuthenticatedRoute: t = "/dashboard" } = s;
|
|
3019
3555
|
e.beforeEach(async (a, l, n) => {
|
|
3020
|
-
const o =
|
|
3021
|
-
o.state.ready || await o.fetchUser(),
|
|
3556
|
+
const o = Z();
|
|
3557
|
+
o.state.ready || await o.fetchUser(), Tr(a, n, o, t);
|
|
3022
3558
|
});
|
|
3023
3559
|
}
|
|
3024
|
-
function
|
|
3560
|
+
function Tr(e, s, t, a) {
|
|
3025
3561
|
const l = e.meta.auth !== !1, n = t.check;
|
|
3026
3562
|
if (t.state.overrideToken && e.path === "/logout") {
|
|
3027
3563
|
s({ path: a });
|
|
@@ -3059,7 +3595,7 @@ function pr(e, s, t, a) {
|
|
|
3059
3595
|
s();
|
|
3060
3596
|
}
|
|
3061
3597
|
}
|
|
3062
|
-
function
|
|
3598
|
+
function on(e = {}) {
|
|
3063
3599
|
const {
|
|
3064
3600
|
forbiddenPath: s = "/error/403",
|
|
3065
3601
|
logo: t = "",
|
|
@@ -3068,12 +3604,12 @@ function Nr(e = {}) {
|
|
|
3068
3604
|
return {
|
|
3069
3605
|
path: s,
|
|
3070
3606
|
name: "error-403",
|
|
3071
|
-
component:
|
|
3607
|
+
component: ur,
|
|
3072
3608
|
props: { logo: t, homeRoute: a },
|
|
3073
3609
|
meta: { auth: !1 }
|
|
3074
3610
|
};
|
|
3075
3611
|
}
|
|
3076
|
-
function
|
|
3612
|
+
function rn(e = {}) {
|
|
3077
3613
|
const {
|
|
3078
3614
|
logo: s = "",
|
|
3079
3615
|
homeRoute: t = "/dashboard"
|
|
@@ -3081,21 +3617,21 @@ function Dr(e = {}) {
|
|
|
3081
3617
|
return {
|
|
3082
3618
|
path: "/:pathMatch(.*)*",
|
|
3083
3619
|
name: "error-404",
|
|
3084
|
-
component:
|
|
3620
|
+
component: yr,
|
|
3085
3621
|
props: { logo: s, homeRoute: t },
|
|
3086
3622
|
meta: { auth: !1 }
|
|
3087
3623
|
};
|
|
3088
3624
|
}
|
|
3089
|
-
function
|
|
3625
|
+
function nn(e, s) {
|
|
3090
3626
|
e.beforeResolve(async (t) => {
|
|
3091
3627
|
if (t.meta.auth !== !1) {
|
|
3092
|
-
const a =
|
|
3628
|
+
const a = Z();
|
|
3093
3629
|
a.state.ready && a.check && await s();
|
|
3094
3630
|
}
|
|
3095
3631
|
});
|
|
3096
3632
|
}
|
|
3097
|
-
function
|
|
3098
|
-
const s =
|
|
3633
|
+
function Lr(e = {}) {
|
|
3634
|
+
const s = oe.create({
|
|
3099
3635
|
baseURL: e.baseURL || "",
|
|
3100
3636
|
timeout: e.timeout || 3e4,
|
|
3101
3637
|
headers: {
|
|
@@ -3106,7 +3642,7 @@ function fr(e = {}) {
|
|
|
3106
3642
|
return s.interceptors.request.use(
|
|
3107
3643
|
(t) => {
|
|
3108
3644
|
try {
|
|
3109
|
-
const a =
|
|
3645
|
+
const a = Z();
|
|
3110
3646
|
a.state.overrideToken ? t.headers.Authorization = `Bearer ${a.state.overrideToken}` : a.state.token && (t.headers.Authorization = `Bearer ${a.state.token}`);
|
|
3111
3647
|
} catch {
|
|
3112
3648
|
}
|
|
@@ -3118,14 +3654,14 @@ function fr(e = {}) {
|
|
|
3118
3654
|
async (t) => {
|
|
3119
3655
|
if (t.response?.status === 401)
|
|
3120
3656
|
try {
|
|
3121
|
-
const a =
|
|
3657
|
+
const a = Z();
|
|
3122
3658
|
await a.logout(), window.location.href = a.state.routes.auth;
|
|
3123
3659
|
} catch (a) {
|
|
3124
3660
|
console.error("Error during auto-logout:", a), window.location.href = "/login";
|
|
3125
3661
|
}
|
|
3126
3662
|
if (t.response?.status === 403)
|
|
3127
3663
|
try {
|
|
3128
|
-
const a =
|
|
3664
|
+
const a = Z();
|
|
3129
3665
|
window.location.href = a.state.routes.forbidden;
|
|
3130
3666
|
} catch (a) {
|
|
3131
3667
|
console.error("Error during 403 redirect:", a), window.location.href = "/error/403";
|
|
@@ -3134,53 +3670,53 @@ function fr(e = {}) {
|
|
|
3134
3670
|
}
|
|
3135
3671
|
), s;
|
|
3136
3672
|
}
|
|
3137
|
-
let
|
|
3138
|
-
function
|
|
3139
|
-
return
|
|
3673
|
+
let ae = null;
|
|
3674
|
+
function ln(e, s = {}) {
|
|
3675
|
+
return ae = Lr(s), e.provide("axios", ae), e.config.globalProperties.$axios = ae, ae;
|
|
3140
3676
|
}
|
|
3141
|
-
function
|
|
3142
|
-
if (!
|
|
3677
|
+
function cn() {
|
|
3678
|
+
if (!ae)
|
|
3143
3679
|
throw new Error("Axios instance not initialized. Call setupAxios() first.");
|
|
3144
|
-
return
|
|
3680
|
+
return ae;
|
|
3145
3681
|
}
|
|
3146
|
-
const
|
|
3147
|
-
const e =
|
|
3682
|
+
const un = ie("sparkNav", () => {
|
|
3683
|
+
const e = q({
|
|
3148
3684
|
menu: [],
|
|
3149
3685
|
collapsed: !1,
|
|
3150
3686
|
hidden: !1
|
|
3151
|
-
}), s =
|
|
3152
|
-
e.menu =
|
|
3153
|
-
}, l = (
|
|
3154
|
-
for (const
|
|
3155
|
-
if (
|
|
3156
|
-
if (
|
|
3157
|
-
const
|
|
3158
|
-
if (
|
|
3687
|
+
}), s = W(), t = re(), a = (i = []) => {
|
|
3688
|
+
e.menu = i, r();
|
|
3689
|
+
}, l = (i, u) => {
|
|
3690
|
+
for (const p of i) {
|
|
3691
|
+
if (p.href === u) return p;
|
|
3692
|
+
if (p.children) {
|
|
3693
|
+
const f = l(p.children, u);
|
|
3694
|
+
if (f) return f;
|
|
3159
3695
|
}
|
|
3160
3696
|
}
|
|
3161
3697
|
return null;
|
|
3162
|
-
}, n = async (
|
|
3163
|
-
if (
|
|
3164
|
-
const
|
|
3165
|
-
if (
|
|
3166
|
-
|
|
3698
|
+
}, n = async (i) => {
|
|
3699
|
+
if (i) {
|
|
3700
|
+
const u = l(e.menu, i);
|
|
3701
|
+
if (u && typeof u.action == "function") {
|
|
3702
|
+
u.action();
|
|
3167
3703
|
return;
|
|
3168
3704
|
}
|
|
3169
|
-
await s.push(
|
|
3705
|
+
await s.push(i);
|
|
3170
3706
|
}
|
|
3171
3707
|
}, o = () => {
|
|
3172
3708
|
e.collapsed = !e.collapsed;
|
|
3173
|
-
},
|
|
3709
|
+
}, c = () => {
|
|
3174
3710
|
e.hidden = !e.hidden;
|
|
3175
3711
|
}, r = () => {
|
|
3176
|
-
const
|
|
3177
|
-
if (
|
|
3178
|
-
const
|
|
3179
|
-
|
|
3180
|
-
|
|
3712
|
+
const i = t.name || t.path.replace("/", "");
|
|
3713
|
+
if (i) {
|
|
3714
|
+
const u = (p) => {
|
|
3715
|
+
p.forEach((f) => {
|
|
3716
|
+
f.current = f.href === i, f.children && u(f.children);
|
|
3181
3717
|
});
|
|
3182
3718
|
};
|
|
3183
|
-
|
|
3719
|
+
u(e.menu);
|
|
3184
3720
|
}
|
|
3185
3721
|
};
|
|
3186
3722
|
return j(
|
|
@@ -3194,64 +3730,67 @@ const Ur = re("sparkNav", () => {
|
|
|
3194
3730
|
initialize: a,
|
|
3195
3731
|
goto: n,
|
|
3196
3732
|
toggleCollapsed: o,
|
|
3197
|
-
toggleHidden:
|
|
3733
|
+
toggleHidden: c,
|
|
3198
3734
|
syncWithRoute: r
|
|
3199
3735
|
};
|
|
3200
3736
|
});
|
|
3201
3737
|
export {
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3738
|
+
F as Icons,
|
|
3739
|
+
te as SparkAlert,
|
|
3740
|
+
ms as SparkAppSelector,
|
|
3741
|
+
Fs as SparkBrandSelector,
|
|
3742
|
+
K as SparkButton,
|
|
3743
|
+
zs as SparkButtonGroup,
|
|
3744
|
+
Yr as SparkCard,
|
|
3745
|
+
Jr as SparkDefaultContainer,
|
|
3746
|
+
ur as SparkError403View,
|
|
3747
|
+
yr as SparkError404View,
|
|
3748
|
+
tn as SparkErrorGeneralView,
|
|
3749
|
+
Go as SparkForgotPasswordView,
|
|
3750
|
+
Fo as SparkLoginView,
|
|
3751
|
+
Oo as SparkLogoutView,
|
|
3752
|
+
Ws as SparkModalContainer,
|
|
3753
|
+
Zs as SparkModalDialog,
|
|
3754
|
+
Gr as SparkNotificationOutlet,
|
|
3755
|
+
ke as SparkOverlay,
|
|
3756
|
+
Qr as SparkPublicContainer,
|
|
3757
|
+
ar as SparkResetPasswordView,
|
|
3758
|
+
Xr as SparkTable,
|
|
3759
|
+
Da as SparkTableDatePicker,
|
|
3760
|
+
za as SparkTableFilterButtons,
|
|
3761
|
+
Ea as SparkTableFilterSelect,
|
|
3762
|
+
$a as SparkTablePaginationPaging,
|
|
3763
|
+
Pa as SparkTablePaginationPerPage,
|
|
3764
|
+
Ka as SparkTableReset,
|
|
3765
|
+
Ma as SparkTableSearch,
|
|
3766
|
+
Ce as SparkTableToolbar,
|
|
3767
|
+
Wr as SparkToastContainer,
|
|
3768
|
+
Kr as addIcons,
|
|
3769
|
+
on as create403Route,
|
|
3770
|
+
rn as create404Route,
|
|
3771
|
+
sn as createAuthRoutes,
|
|
3772
|
+
Lr as createAxiosInstance,
|
|
3773
|
+
en as createBootstrapService,
|
|
3774
|
+
ta as customiseHeader,
|
|
3775
|
+
wo as deleteCookie,
|
|
3776
|
+
cn as getAxiosInstance,
|
|
3777
|
+
ko as getCookie,
|
|
3778
|
+
je as getDomain,
|
|
3779
|
+
Xs as renderHeaderTitle,
|
|
3780
|
+
_o as setCookie,
|
|
3781
|
+
an as setupAuthGuards,
|
|
3782
|
+
ln as setupAxios,
|
|
3783
|
+
nn as setupBootstrapGuard,
|
|
3784
|
+
Ur as setupFontAwesome,
|
|
3785
|
+
se as sparkModalService,
|
|
3786
|
+
G as sparkNotificationService,
|
|
3787
|
+
ee as sparkOverlayService,
|
|
3788
|
+
fa as updateRow,
|
|
3789
|
+
Ae as useSparkAppSelectorStore,
|
|
3790
|
+
Fe as useSparkAppStore,
|
|
3791
|
+
Z as useSparkAuthStore,
|
|
3792
|
+
ze as useSparkBrandFilterStore,
|
|
3793
|
+
un as useSparkNavStore,
|
|
3794
|
+
Te as useSparkOverlay,
|
|
3795
|
+
ma as useSparkTableRouteSync
|
|
3257
3796
|
};
|