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