appsalutely 0.1.8 → 0.1.12
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/appsalutely.js +194 -196
- package/dist/appsalutely.umd.cjs +1 -1
- package/package.json +10 -8
package/dist/appsalutely.js
CHANGED
|
@@ -1,173 +1,171 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("html{overflow:auto}html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
-
import { ref as b, watch as
|
|
3
|
-
import { useRouter as
|
|
4
|
-
import { VApp as
|
|
5
|
-
import { defineStore as
|
|
6
|
-
const ae =
|
|
7
|
-
const
|
|
8
|
-
function
|
|
9
|
-
|
|
2
|
+
import { ref as b, watch as C, computed as P, defineComponent as V, useModel as B, useSlots as E, onBeforeMount as z, createBlock as c, openBlock as s, unref as l, withCtx as i, createCommentVNode as g, createVNode as d, createElementBlock as $, renderSlot as h, createElementVNode as x, normalizeClass as j, toDisplayString as N, Fragment as M, renderList as O, normalizeStyle as q, mergeModels as T, withModifiers as U } from "vue";
|
|
3
|
+
import { useRouter as R, RouterView as J } from "vue-router";
|
|
4
|
+
import { VApp as G, VProgressLinear as H, VAppBar as D, VMain as K, VFooter as Q, VBtn as y, VNavigationDrawer as X, VList as Y, VSnackbar as Z, VContainer as _, VBreadcrumbs as ee, VCard as W, VForm as I, VCardText as A, VTextField as F, VListItem as te, VIcon as le, VOtpInput as oe } from "vuetify/components";
|
|
5
|
+
import { defineStore as L } from "pinia";
|
|
6
|
+
const ae = L("colorMode", () => {
|
|
7
|
+
const e = b(localStorage.getItem("colorMode") == "dark" ? "dark" : "light");
|
|
8
|
+
function r() {
|
|
9
|
+
e.value = e.value === "dark" ? "light" : "dark";
|
|
10
10
|
}
|
|
11
|
-
function o(
|
|
12
|
-
localStorage.setItem("colorMode",
|
|
11
|
+
function o(a) {
|
|
12
|
+
localStorage.setItem("colorMode", a), document.documentElement.setAttribute("data-theme", a);
|
|
13
13
|
}
|
|
14
|
-
return
|
|
15
|
-
}),
|
|
16
|
-
const
|
|
14
|
+
return C(e, (a) => o(a)), o(e.value), { mode: e, toggle: r };
|
|
15
|
+
}), ne = L("footer", () => {
|
|
16
|
+
const e = b([]), r = P(() => e.value.length > 0 ? e.value[e.value.length - 1] : null);
|
|
17
17
|
function o(n) {
|
|
18
|
-
return n.id || (n.id = (/* @__PURE__ */ new Date()).getTime().toString()), n.timeout === void 0 && (n.timeout = 5e3),
|
|
19
|
-
|
|
18
|
+
return n.id || (n.id = (/* @__PURE__ */ new Date()).getTime().toString()), n.timeout === void 0 && (n.timeout = 5e3), e.value.push(n), n.timeout && setTimeout(() => {
|
|
19
|
+
a(n.id);
|
|
20
20
|
}, n.timeout), n.id;
|
|
21
21
|
}
|
|
22
|
-
function
|
|
23
|
-
|
|
22
|
+
function a(n) {
|
|
23
|
+
e.value = e.value.filter((m) => m.id !== n);
|
|
24
24
|
}
|
|
25
|
-
return { messages:
|
|
26
|
-
}),
|
|
27
|
-
const
|
|
28
|
-
function o(
|
|
29
|
-
return
|
|
30
|
-
|
|
31
|
-
},
|
|
25
|
+
return { messages: e, current: r, addMessage: o, removeMessage: a };
|
|
26
|
+
}), re = L("notify", () => {
|
|
27
|
+
const e = b([]), r = b({});
|
|
28
|
+
function o(t) {
|
|
29
|
+
return t.id ? a(t.id) : t.id = (/* @__PURE__ */ new Date()).getTime().toString(), t.timeout === void 0 && (t.timeout = 5e3), e.value.push(t), t.timeout && (r.value[t.id] = setTimeout(() => {
|
|
30
|
+
a(t.id);
|
|
31
|
+
}, t.timeout)), t.id;
|
|
32
32
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
33
|
+
function a(t) {
|
|
34
|
+
e.value = e.value.filter((k) => k.id !== t), r.value[t] && (clearTimeout(r.value[t]), delete r.value[t]);
|
|
35
35
|
}
|
|
36
|
-
function n(
|
|
37
|
-
return o({ text:
|
|
36
|
+
function n(t) {
|
|
37
|
+
return o({ text: t, type: "info" });
|
|
38
38
|
}
|
|
39
|
-
function
|
|
40
|
-
return o({ text:
|
|
39
|
+
function m(t) {
|
|
40
|
+
return o({ text: t, type: "success" });
|
|
41
41
|
}
|
|
42
|
-
function
|
|
43
|
-
return o({ text:
|
|
42
|
+
function f(t) {
|
|
43
|
+
return o({ text: t, type: "warning" });
|
|
44
44
|
}
|
|
45
|
-
function
|
|
46
|
-
return o({ text:
|
|
45
|
+
function u(t) {
|
|
46
|
+
return o({ text: t, type: "error" });
|
|
47
47
|
}
|
|
48
|
-
return { messages:
|
|
49
|
-
}), ue = { class: "d-flex flex-column pa-4 h-100" }, ie = ["textContent"],
|
|
48
|
+
return { messages: e, add: o, remove: a, info: n, success: m, warning: f, error: u };
|
|
49
|
+
}), ue = { class: "d-flex flex-column pa-4 h-100" }, ie = ["textContent"], we = /* @__PURE__ */ V({
|
|
50
50
|
__name: "AppBase",
|
|
51
51
|
props: {
|
|
52
52
|
drawerOpen: { type: Boolean, default: !1 },
|
|
53
53
|
drawerOpenModifiers: {}
|
|
54
54
|
},
|
|
55
55
|
emits: ["update:drawerOpen"],
|
|
56
|
-
setup(
|
|
57
|
-
const
|
|
58
|
-
return
|
|
59
|
-
localStorage.setItem("drawerDocked", String(
|
|
60
|
-
}),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
56
|
+
setup(e) {
|
|
57
|
+
const r = ae(), o = B(e, "drawerOpen"), a = b(!1), n = ne(), m = b(!1), f = b(null), u = re(), t = R(), k = E();
|
|
58
|
+
return C(a, (w) => {
|
|
59
|
+
localStorage.setItem("drawerDocked", String(w));
|
|
60
|
+
}), z(() => {
|
|
61
|
+
t.beforeEach(() => {
|
|
62
|
+
f.value = setTimeout(() => {
|
|
63
|
+
m.value = !0;
|
|
64
64
|
}, 300);
|
|
65
|
-
}),
|
|
66
|
-
|
|
67
|
-
}),
|
|
68
|
-
}), (
|
|
69
|
-
theme:
|
|
65
|
+
}), t.afterEach(() => {
|
|
66
|
+
f.value && (clearTimeout(f.value), f.value = null), m.value = !1;
|
|
67
|
+
}), a.value = localStorage.getItem("drawerDocked") === "true", o.value = a.value;
|
|
68
|
+
}), (w, p) => (s(), c(l(G), {
|
|
69
|
+
theme: l(r).mode
|
|
70
70
|
}, {
|
|
71
|
-
default:
|
|
72
|
-
|
|
71
|
+
default: i(() => [
|
|
72
|
+
m.value ? (s(), c(l(H), {
|
|
73
73
|
key: 0,
|
|
74
74
|
indeterminate: "",
|
|
75
75
|
class: "mb-n1",
|
|
76
76
|
style: { "z-index": "100000", opacity: "0.5" },
|
|
77
77
|
height: "1"
|
|
78
78
|
})) : g("", !0),
|
|
79
|
-
d(
|
|
80
|
-
default:
|
|
81
|
-
h(
|
|
79
|
+
d(l(D), { height: "64" }, {
|
|
80
|
+
default: i(() => [
|
|
81
|
+
h(w.$slots, "header")
|
|
82
82
|
]),
|
|
83
83
|
_: 3
|
|
84
84
|
}),
|
|
85
|
-
d(
|
|
86
|
-
default:
|
|
87
|
-
|
|
88
|
-
d(
|
|
85
|
+
d(l(K), { class: "bg-surface-light" }, {
|
|
86
|
+
default: i(() => [
|
|
87
|
+
x("div", ue, [
|
|
88
|
+
d(l(J))
|
|
89
89
|
])
|
|
90
90
|
]),
|
|
91
91
|
_: 1
|
|
92
92
|
}),
|
|
93
|
-
|
|
93
|
+
l(k).footer ? (s(), c(l(D), {
|
|
94
94
|
key: 1,
|
|
95
95
|
height: "40",
|
|
96
96
|
location: "bottom"
|
|
97
97
|
}, {
|
|
98
|
-
default:
|
|
99
|
-
d(
|
|
100
|
-
default:
|
|
101
|
-
|
|
98
|
+
default: i(() => [
|
|
99
|
+
d(l(Q), { class: "py-0 w-100 d-flex align-center" }, {
|
|
100
|
+
default: i(() => [
|
|
101
|
+
l(n).current ? (s(), $("span", {
|
|
102
102
|
key: 0,
|
|
103
|
-
textContent:
|
|
104
|
-
class:
|
|
103
|
+
textContent: N(l(n).current.text),
|
|
104
|
+
class: j([l(n).current.type ? {} : { ["text-" + l(n).current.type]: !0 }, "overflow-hidden text-no-wrap"]),
|
|
105
105
|
style: { "text-overflow": "ellipsis" }
|
|
106
106
|
}, null, 10, ie)) : g("", !0),
|
|
107
|
-
|
|
108
|
-
text:
|
|
109
|
-
onClick:
|
|
110
|
-
key:
|
|
107
|
+
l(n).current && l(n).current.actions ? (s(!0), $(M, { key: 1 }, O(Object.entries(l(n).current.actions), (v, S) => (s(), c(l(y), {
|
|
108
|
+
text: v[0],
|
|
109
|
+
onClick: v[1],
|
|
110
|
+
key: S,
|
|
111
111
|
density: "comfortable",
|
|
112
112
|
variant: "tonal",
|
|
113
113
|
class: "mx-2 px-2 text-none",
|
|
114
|
-
color:
|
|
114
|
+
color: l(n).current.type
|
|
115
115
|
}, null, 8, ["text", "onClick", "color"]))), 128)) : g("", !0),
|
|
116
|
-
|
|
117
|
-
h(
|
|
116
|
+
p[2] || (p[2] = x("div", { class: "me-auto" }, null, -1)),
|
|
117
|
+
h(w.$slots, "footer")
|
|
118
118
|
]),
|
|
119
|
-
_: 3
|
|
120
|
-
__: [2]
|
|
119
|
+
_: 3
|
|
121
120
|
})
|
|
122
121
|
]),
|
|
123
122
|
_: 3
|
|
124
123
|
})) : g("", !0),
|
|
125
|
-
|
|
124
|
+
l(k).drawer ? (s(), c(l(X), {
|
|
126
125
|
key: 2,
|
|
127
126
|
modelValue: o.value,
|
|
128
|
-
"onUpdate:modelValue":
|
|
127
|
+
"onUpdate:modelValue": p[1] || (p[1] = (v) => o.value = v),
|
|
129
128
|
width: "250",
|
|
130
129
|
"rail-width": "58",
|
|
131
|
-
rail:
|
|
132
|
-
mobile:
|
|
130
|
+
rail: a.value,
|
|
131
|
+
mobile: a.value ? !1 : void 0
|
|
133
132
|
}, {
|
|
134
|
-
default:
|
|
135
|
-
d(
|
|
133
|
+
default: i(() => [
|
|
134
|
+
d(l(Y), {
|
|
136
135
|
class: "h-100 d-flex flex-column",
|
|
137
136
|
nav: ""
|
|
138
137
|
}, {
|
|
139
|
-
default:
|
|
140
|
-
h(
|
|
141
|
-
|
|
142
|
-
d(
|
|
143
|
-
onClick:
|
|
138
|
+
default: i(() => [
|
|
139
|
+
h(w.$slots, "drawer"),
|
|
140
|
+
p[3] || (p[3] = x("div", { class: "flex-grow-1" }, null, -1)),
|
|
141
|
+
d(l(y), {
|
|
142
|
+
onClick: p[0] || (p[0] = (v) => a.value = !a.value),
|
|
144
143
|
icon: "mdi-pin-outline",
|
|
145
144
|
rounded: "rounded",
|
|
146
145
|
density: "comfortable",
|
|
147
|
-
title:
|
|
146
|
+
title: a.value ? "Undock sidebar" : "Dock sidebar",
|
|
148
147
|
class: "ma-1 ms-auto",
|
|
149
|
-
variant:
|
|
148
|
+
variant: a.value ? "tonal" : "text"
|
|
150
149
|
}, null, 8, ["title", "variant"])
|
|
151
150
|
]),
|
|
152
|
-
_: 3
|
|
153
|
-
__: [3]
|
|
151
|
+
_: 3
|
|
154
152
|
})
|
|
155
153
|
]),
|
|
156
154
|
_: 3
|
|
157
155
|
}, 8, ["modelValue", "rail", "mobile"])) : g("", !0),
|
|
158
|
-
(
|
|
159
|
-
key:
|
|
156
|
+
(s(!0), $(M, null, O(l(u).messages, (v, S) => (s(), c(l(Z), {
|
|
157
|
+
key: S,
|
|
160
158
|
"model-value": !0,
|
|
161
|
-
text:
|
|
162
|
-
color:
|
|
159
|
+
text: v.text,
|
|
160
|
+
color: v.type,
|
|
163
161
|
location: "bottom end",
|
|
164
|
-
style:
|
|
162
|
+
style: q({ bottom: `${S * 56}px` }),
|
|
165
163
|
timeout: -1
|
|
166
164
|
}, {
|
|
167
|
-
actions:
|
|
168
|
-
d(
|
|
165
|
+
actions: i(() => [
|
|
166
|
+
d(l(y), {
|
|
169
167
|
icon: "mdi-close",
|
|
170
|
-
onClick: (
|
|
168
|
+
onClick: (pe) => l(u).remove(v.id)
|
|
171
169
|
}, null, 8, ["onClick"])
|
|
172
170
|
]),
|
|
173
171
|
_: 2
|
|
@@ -176,49 +174,49 @@ const ae = C("colorMode", () => {
|
|
|
176
174
|
_: 3
|
|
177
175
|
}, 8, ["theme"]));
|
|
178
176
|
}
|
|
179
|
-
}),
|
|
177
|
+
}), ye = /* @__PURE__ */ V({
|
|
180
178
|
__name: "DashboardPage",
|
|
181
179
|
props: {
|
|
182
180
|
breadcrumbs: {},
|
|
183
181
|
fluid: { type: Boolean, default: !0 }
|
|
184
182
|
},
|
|
185
|
-
setup(
|
|
186
|
-
return (
|
|
187
|
-
fluid:
|
|
183
|
+
setup(e) {
|
|
184
|
+
return (r, o) => (s(), c(l(_), {
|
|
185
|
+
fluid: e.fluid,
|
|
188
186
|
class: "h-100 d-flex flex-column py-0 h-100"
|
|
189
187
|
}, {
|
|
190
|
-
default:
|
|
191
|
-
|
|
188
|
+
default: i(() => [
|
|
189
|
+
e.breadcrumbs ? (s(), c(l(ee), {
|
|
192
190
|
key: 0,
|
|
193
|
-
items:
|
|
191
|
+
items: e.breadcrumbs,
|
|
194
192
|
density: "comfortable",
|
|
195
193
|
class: "pa-0 flex-wrap"
|
|
196
194
|
}, null, 8, ["items"])) : g("", !0),
|
|
197
|
-
h(
|
|
195
|
+
h(r.$slots, "default")
|
|
198
196
|
]),
|
|
199
197
|
_: 3
|
|
200
198
|
}, 8, ["fluid"]));
|
|
201
199
|
}
|
|
202
|
-
}),
|
|
203
|
-
const o =
|
|
204
|
-
for (const [
|
|
205
|
-
o[
|
|
200
|
+
}), de = (e, r) => {
|
|
201
|
+
const o = e.__vccOpts || e;
|
|
202
|
+
for (const [a, n] of r)
|
|
203
|
+
o[a] = n;
|
|
206
204
|
return o;
|
|
207
|
-
},
|
|
208
|
-
function
|
|
209
|
-
return
|
|
210
|
-
|
|
205
|
+
}, se = {}, me = { class: "h-100 d-flex align-center" };
|
|
206
|
+
function ce(e, r) {
|
|
207
|
+
return s(), $(M, null, [
|
|
208
|
+
r[0] || (r[0] = x("span", {
|
|
211
209
|
class: "border-s mx-3",
|
|
212
210
|
style: { height: "32px" }
|
|
213
211
|
}, null, -1)),
|
|
214
|
-
|
|
215
|
-
h(
|
|
212
|
+
x("span", me, [
|
|
213
|
+
h(e.$slots, "default")
|
|
216
214
|
])
|
|
217
215
|
], 64);
|
|
218
216
|
}
|
|
219
|
-
const
|
|
217
|
+
const Ve = /* @__PURE__ */ de(se, [["render", ce]]), ke = /* @__PURE__ */ V({
|
|
220
218
|
__name: "LoginForm",
|
|
221
|
-
props: /* @__PURE__ */
|
|
219
|
+
props: /* @__PURE__ */ T({
|
|
222
220
|
title: { default: "Log in" },
|
|
223
221
|
submitButtonText: { default: "Log in" },
|
|
224
222
|
minWidth: {},
|
|
@@ -232,49 +230,49 @@ const xe = /* @__PURE__ */ se(de, [["render", fe]]), ke = /* @__PURE__ */ x({
|
|
|
232
230
|
password: { default: "" },
|
|
233
231
|
passwordModifiers: {}
|
|
234
232
|
}),
|
|
235
|
-
emits: /* @__PURE__ */
|
|
236
|
-
setup(
|
|
237
|
-
const o =
|
|
238
|
-
return (
|
|
239
|
-
title:
|
|
240
|
-
"min-width":
|
|
241
|
-
"max-width":
|
|
233
|
+
emits: /* @__PURE__ */ T(["submit"], ["update:username", "update:password"]),
|
|
234
|
+
setup(e, { emit: r }) {
|
|
235
|
+
const o = B(e, "username"), a = B(e, "password"), n = r, m = b(!1);
|
|
236
|
+
return (f, u) => (s(), c(l(W), {
|
|
237
|
+
title: e.title,
|
|
238
|
+
"min-width": e.minWidth,
|
|
239
|
+
"max-width": e.maxWidth
|
|
242
240
|
}, {
|
|
243
|
-
default:
|
|
244
|
-
d(
|
|
245
|
-
onSubmit:
|
|
246
|
-
modelValue:
|
|
247
|
-
"onUpdate:modelValue":
|
|
241
|
+
default: i(() => [
|
|
242
|
+
d(l(I), {
|
|
243
|
+
onSubmit: u[2] || (u[2] = U((t) => n("submit", o.value, a.value), ["prevent"])),
|
|
244
|
+
modelValue: m.value,
|
|
245
|
+
"onUpdate:modelValue": u[3] || (u[3] = (t) => m.value = t)
|
|
248
246
|
}, {
|
|
249
|
-
default:
|
|
250
|
-
d(
|
|
251
|
-
default:
|
|
252
|
-
d(
|
|
247
|
+
default: i(() => [
|
|
248
|
+
d(l(A), { class: "d-flex flex-column" }, {
|
|
249
|
+
default: i(() => [
|
|
250
|
+
d(l(F), {
|
|
253
251
|
modelValue: o.value,
|
|
254
|
-
"onUpdate:modelValue":
|
|
255
|
-
label:
|
|
256
|
-
rules: [(
|
|
252
|
+
"onUpdate:modelValue": u[0] || (u[0] = (t) => o.value = t),
|
|
253
|
+
label: e.usernameLabel,
|
|
254
|
+
rules: [(t) => !!t || "Username is required"],
|
|
257
255
|
"persistent-placeholder": "",
|
|
258
256
|
autofocus: ""
|
|
259
257
|
}, null, 8, ["modelValue", "label", "rules"]),
|
|
260
|
-
d(
|
|
261
|
-
modelValue:
|
|
262
|
-
"onUpdate:modelValue":
|
|
263
|
-
label:
|
|
258
|
+
d(l(F), {
|
|
259
|
+
modelValue: a.value,
|
|
260
|
+
"onUpdate:modelValue": u[1] || (u[1] = (t) => a.value = t),
|
|
261
|
+
label: e.passwordLabel,
|
|
264
262
|
type: "password",
|
|
265
|
-
rules: [(
|
|
263
|
+
rules: [(t) => !!t || "Password is required"],
|
|
266
264
|
"persistent-placeholder": ""
|
|
267
265
|
}, null, 8, ["modelValue", "label", "rules"]),
|
|
268
|
-
d(
|
|
269
|
-
disabled: !
|
|
266
|
+
d(l(y), {
|
|
267
|
+
disabled: !m.value,
|
|
270
268
|
type: "submit",
|
|
271
269
|
color: "primary",
|
|
272
270
|
variant: "flat",
|
|
273
|
-
text:
|
|
274
|
-
loading:
|
|
271
|
+
text: e.submitButtonText,
|
|
272
|
+
loading: e.loading,
|
|
275
273
|
class: "align-self-center"
|
|
276
274
|
}, null, 8, ["disabled", "text", "loading"]),
|
|
277
|
-
h(
|
|
275
|
+
h(f.$slots, "beneath")
|
|
278
276
|
]),
|
|
279
277
|
_: 3
|
|
280
278
|
})
|
|
@@ -285,7 +283,7 @@ const xe = /* @__PURE__ */ se(de, [["render", fe]]), ke = /* @__PURE__ */ x({
|
|
|
285
283
|
_: 3
|
|
286
284
|
}, 8, ["title", "min-width", "max-width"]));
|
|
287
285
|
}
|
|
288
|
-
}),
|
|
286
|
+
}), fe = { class: "text-no-wrap overflow-hidden" }, Se = /* @__PURE__ */ V({
|
|
289
287
|
__name: "NavDrawerLink",
|
|
290
288
|
props: {
|
|
291
289
|
to: {},
|
|
@@ -294,26 +292,26 @@ const xe = /* @__PURE__ */ se(de, [["render", fe]]), ke = /* @__PURE__ */ x({
|
|
|
294
292
|
icon: {},
|
|
295
293
|
text: {}
|
|
296
294
|
},
|
|
297
|
-
setup(
|
|
298
|
-
return (
|
|
295
|
+
setup(e) {
|
|
296
|
+
return (r, o) => (s(), c(l(te), {
|
|
299
297
|
role: "option",
|
|
300
|
-
to:
|
|
301
|
-
href:
|
|
302
|
-
target:
|
|
298
|
+
to: e.to,
|
|
299
|
+
href: e.href,
|
|
300
|
+
target: e.target,
|
|
303
301
|
slim: ""
|
|
304
302
|
}, {
|
|
305
|
-
prepend:
|
|
306
|
-
d(
|
|
303
|
+
prepend: i(() => [
|
|
304
|
+
d(l(le), { icon: e.icon }, null, 8, ["icon"])
|
|
307
305
|
]),
|
|
308
|
-
default:
|
|
309
|
-
|
|
306
|
+
default: i(() => [
|
|
307
|
+
x("span", fe, N(e.text), 1)
|
|
310
308
|
]),
|
|
311
309
|
_: 1
|
|
312
310
|
}, 8, ["to", "href", "target"]));
|
|
313
311
|
}
|
|
314
|
-
}),
|
|
312
|
+
}), $e = /* @__PURE__ */ V({
|
|
315
313
|
__name: "OTPForm",
|
|
316
|
-
props: /* @__PURE__ */
|
|
314
|
+
props: /* @__PURE__ */ T({
|
|
317
315
|
title: { default: "2FA Verification" },
|
|
318
316
|
subtitle: { default: "Enter the code from your authenticator app" },
|
|
319
317
|
submitButtonText: { default: "Verify" },
|
|
@@ -326,43 +324,43 @@ const xe = /* @__PURE__ */ se(de, [["render", fe]]), ke = /* @__PURE__ */ x({
|
|
|
326
324
|
otp: { default: "" },
|
|
327
325
|
otpModifiers: {}
|
|
328
326
|
}),
|
|
329
|
-
emits: /* @__PURE__ */
|
|
330
|
-
setup(
|
|
331
|
-
const o =
|
|
332
|
-
return
|
|
333
|
-
n.autosubmit && o.value.length === n.length &&
|
|
334
|
-
}), (
|
|
335
|
-
title:
|
|
336
|
-
subtitle:
|
|
337
|
-
"min-width":
|
|
338
|
-
"max-width":
|
|
327
|
+
emits: /* @__PURE__ */ T(["submit"], ["update:otp"]),
|
|
328
|
+
setup(e, { emit: r }) {
|
|
329
|
+
const o = B(e, "otp"), a = r, n = e, m = P(() => o.value.length === n.length);
|
|
330
|
+
return C(o, () => {
|
|
331
|
+
n.autosubmit && o.value.length === n.length && a("submit", o.value);
|
|
332
|
+
}), (f, u) => (s(), c(l(W), {
|
|
333
|
+
title: e.title,
|
|
334
|
+
subtitle: e.subtitle,
|
|
335
|
+
"min-width": e.minWidth,
|
|
336
|
+
"max-width": e.maxWidth
|
|
339
337
|
}, {
|
|
340
|
-
default:
|
|
341
|
-
d(
|
|
342
|
-
onSubmit:
|
|
343
|
-
"model-value":
|
|
338
|
+
default: i(() => [
|
|
339
|
+
d(l(I), {
|
|
340
|
+
onSubmit: u[1] || (u[1] = U((t) => a("submit", o.value), ["prevent"])),
|
|
341
|
+
"model-value": m.value
|
|
344
342
|
}, {
|
|
345
|
-
default:
|
|
346
|
-
d(
|
|
347
|
-
default:
|
|
348
|
-
d(
|
|
343
|
+
default: i(() => [
|
|
344
|
+
d(l(A), { class: "d-flex flex-column" }, {
|
|
345
|
+
default: i(() => [
|
|
346
|
+
d(l(oe), {
|
|
349
347
|
modelValue: o.value,
|
|
350
|
-
"onUpdate:modelValue":
|
|
348
|
+
"onUpdate:modelValue": u[0] || (u[0] = (t) => o.value = t),
|
|
351
349
|
label: "OTP",
|
|
352
350
|
"persistent-placeholder": "",
|
|
353
351
|
autofocus: "",
|
|
354
|
-
length:
|
|
352
|
+
length: e.length
|
|
355
353
|
}, null, 8, ["modelValue", "length"]),
|
|
356
|
-
d(
|
|
357
|
-
disabled: !
|
|
354
|
+
d(l(y), {
|
|
355
|
+
disabled: !m.value,
|
|
358
356
|
type: "submit",
|
|
359
357
|
color: "primary",
|
|
360
358
|
variant: "flat",
|
|
361
|
-
text:
|
|
362
|
-
loading:
|
|
359
|
+
text: e.submitButtonText,
|
|
360
|
+
loading: e.loading,
|
|
363
361
|
class: "align-self-center"
|
|
364
362
|
}, null, 8, ["disabled", "text", "loading"]),
|
|
365
|
-
h(
|
|
363
|
+
h(f.$slots, "beneath")
|
|
366
364
|
]),
|
|
367
365
|
_: 3
|
|
368
366
|
})
|
|
@@ -374,24 +372,24 @@ const xe = /* @__PURE__ */ se(de, [["render", fe]]), ke = /* @__PURE__ */ x({
|
|
|
374
372
|
}, 8, ["title", "subtitle", "min-width", "max-width"]));
|
|
375
373
|
}
|
|
376
374
|
});
|
|
377
|
-
function
|
|
378
|
-
return !
|
|
379
|
-
filter: JSON.stringify(
|
|
375
|
+
function ve(e) {
|
|
376
|
+
return !e || e.length === 0 ? {} : {
|
|
377
|
+
filter: JSON.stringify(e)
|
|
380
378
|
};
|
|
381
379
|
}
|
|
382
|
-
const
|
|
380
|
+
const Be = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
383
381
|
__proto__: null,
|
|
384
|
-
asParams:
|
|
382
|
+
asParams: ve
|
|
385
383
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
386
384
|
export {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
385
|
+
we as AppBase,
|
|
386
|
+
ye as DashboardPage,
|
|
387
|
+
Ve as FooterSection,
|
|
390
388
|
ke as LoginForm,
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
389
|
+
Se as NavDrawerLink,
|
|
390
|
+
$e as OTPForm,
|
|
391
|
+
Be as filters,
|
|
394
392
|
ae as useColorMode,
|
|
395
|
-
|
|
396
|
-
|
|
393
|
+
ne as useFooter,
|
|
394
|
+
re as useNotify
|
|
397
395
|
};
|
package/dist/appsalutely.umd.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("html{overflow:auto}html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
-
(function(s,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("vuetify/components"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","vuetify/components","pinia"],e):(s=typeof globalThis<"u"?globalThis:s||self,e(s.appsalutely={},s.Vue,s.VueRouter,s.VuetifyComponents,s.Pinia))})(this,function(s,e,b,i,w){"use strict";const g=w.defineStore("colorMode",()=>{const r=e.ref(localStorage.getItem("colorMode")=="dark"?"dark":"light");function o(){r.value=r.value==="dark"?"light":"dark"}function l(n){localStorage.setItem("colorMode",n),document.documentElement.setAttribute("data-theme",n)}return e.watch(r,n=>l(n)),l(r.value),{mode:r,toggle:o}}),y=w.defineStore("footer",()=>{const r=e.ref([]),o=e.computed(()=>r.value.length>0?r.value[r.value.length-1]:null);function l(a){return a.id||(a.id=new Date().getTime().toString()),a.timeout===void 0&&(a.timeout=5e3),r.value.push(a),a.timeout&&setTimeout(()=>{n(a.id)},a.timeout),a.id}function n(a){r.value=r.value.filter(u=>u.id!==a)}return{messages:r,current:o,addMessage:l,removeMessage:n}}),k=w.defineStore("notify",()=>{const r=e.ref([]),o=e.ref({});function l(t){return t.id?n(t.id):t.id=new Date().getTime().toString(),t.timeout===void 0&&(t.timeout=5e3),r.value.push(t),t.timeout&&(o.value[t.id]=setTimeout(()=>{n(t.id)},t.timeout)),t.id}function n(t){r.value=r.value.filter(h=>h.id!==t),o.value[t]&&(clearTimeout(o.value[t]),delete o.value[t])}function a(t){return l({text:t,type:"info"})}function u(t){return l({text:t,type:"success"})}function d(t){return l({text:t,type:"warning"})}function f(t){return l({text:t,type:"error"})}return{messages:r,add:l,remove:n,info:a,success:u,warning:d,error:f}}),B={class:"d-flex flex-column pa-4 h-100"},C=["textContent"],x=e.defineComponent({__name:"AppBase",props:{drawerOpen:{type:Boolean,default:!1},drawerOpenModifiers:{}},emits:["update:drawerOpen"],setup(r){const o=g(),l=e.useModel(r,"drawerOpen"),n=e.ref(!1),a=y(),u=e.ref(!1),d=e.ref(null),f=k(),t=b.useRouter(),h=e.useSlots();return e.watch(n,p=>{localStorage.setItem("drawerDocked",String(p))}),e.onBeforeMount(()=>{t.beforeEach(()=>{d.value=setTimeout(()=>{u.value=!0},300)}),t.afterEach(()=>{d.value&&(clearTimeout(d.value),d.value=null),u.value=!1}),n.value=localStorage.getItem("drawerDocked")==="true",l.value=n.value}),(p,m)=>(e.openBlock(),e.createBlock(e.unref(i.VApp),{theme:e.unref(o).mode},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createBlock(e.unref(i.VProgressLinear),{key:0,indeterminate:"",class:"mb-n1",style:{"z-index":"100000",opacity:"0.5"},height:"1"})):e.createCommentVNode("",!0),e.createVNode(e.unref(i.VAppBar),{height:"64"},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"header")]),_:3}),e.createVNode(e.unref(i.VMain),{class:"bg-surface-light"},{default:e.withCtx(()=>[e.createElementVNode("div",B,[e.createVNode(e.unref(b.RouterView))])]),_:1}),e.unref(h).footer?(e.openBlock(),e.createBlock(e.unref(i.VAppBar),{key:1,height:"40",location:"bottom"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VFooter),{class:"py-0 w-100 d-flex align-center"},{default:e.withCtx(()=>[e.unref(a).current?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(e.unref(a).current.text),class:e.normalizeClass([e.unref(a).current.type?{}:{["text-"+e.unref(a).current.type]:!0},"overflow-hidden text-no-wrap"]),style:{"text-overflow":"ellipsis"}},null,10,C)):e.createCommentVNode("",!0),e.unref(a).current&&e.unref(a).current.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(e.unref(a).current.actions),(c,V)=>(e.openBlock(),e.createBlock(e.unref(i.VBtn),{text:c[0],onClick:c[1],key:V,density:"comfortable",variant:"tonal",class:"mx-2 px-2 text-none",color:e.unref(a).current.type},null,8,["text","onClick","color"]))),128)):e.createCommentVNode("",!0),m[2]||(m[2]=e.createElementVNode("div",{class:"me-auto"},null,-1)),e.renderSlot(p.$slots,"footer")]),_:3,__:[2]})]),_:3})):e.createCommentVNode("",!0),e.unref(h).drawer?(e.openBlock(),e.createBlock(e.unref(i.VNavigationDrawer),{key:2,modelValue:l.value,"onUpdate:modelValue":m[1]||(m[1]=c=>l.value=c),width:"250","rail-width":"58",rail:n.value,mobile:n.value?!1:void 0},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VList),{class:"h-100 d-flex flex-column",nav:""},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"drawer"),m[3]||(m[3]=e.createElementVNode("div",{class:"flex-grow-1"},null,-1)),e.createVNode(e.unref(i.VBtn),{onClick:m[0]||(m[0]=c=>n.value=!n.value),icon:"mdi-pin-outline",rounded:"rounded",density:"comfortable",title:n.value?"Undock sidebar":"Dock sidebar",class:"ma-1 ms-auto",variant:n.value?"tonal":"text"},null,8,["title","variant"])]),_:3,__:[3]})]),_:3},8,["modelValue","rail","mobile"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f).messages,(c,V)=>(e.openBlock(),e.createBlock(e.unref(i.VSnackbar),{key:V,"model-value":!0,text:c.text,color:c.type,location:"bottom end",style:e.normalizeStyle({bottom:`${V*56}px`}),timeout:-1},{actions:e.withCtx(()=>[e.createVNode(e.unref(i.VBtn),{icon:"mdi-close",onClick:U=>e.unref(f).remove(c.id)},null,8,["onClick"])]),_:2},1032,["text","color","style"]))),128))]),_:3},8,["theme"]))}}),N=e.defineComponent({__name:"DashboardPage",props:{breadcrumbs:{},fluid:{type:Boolean,default:!0}},setup(r){return(o,l)=>(e.openBlock(),e.createBlock(e.unref(i.VContainer),{fluid:o.fluid,class:"h-100 d-flex flex-column py-0 h-100"},{default:e.withCtx(()=>[o.breadcrumbs?(e.openBlock(),e.createBlock(e.unref(i.VBreadcrumbs),{key:0,items:o.breadcrumbs,density:"comfortable",class:"pa-0 flex-wrap"},null,8,["items"])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")]),_:3},8,["fluid"]))}}),S=(r,o)=>{const l=r.__vccOpts||r;for(const[n,a]of o)l[n]=a;return l},M={},T={class:"h-100 d-flex align-center"};function _(r,o){return e.openBlock(),e.createElementBlock(e.Fragment,null,[o[0]||(o[0]=e.createElementVNode("span",{class:"border-s mx-3",style:{height:"32px"}},null,-1)),e.createElementVNode("span",T,[e.renderSlot(r.$slots,"default")])],64)}const $=S(M,[["render",_]]),F=e.defineComponent({__name:"LoginForm",props:e.mergeModels({title:{default:"Log in"},submitButtonText:{default:"Log in"},minWidth:{},maxWidth:{},loading:{type:Boolean},usernameLabel:{default:"Username"},passwordLabel:{default:"Password"}},{username:{default:""},usernameModifiers:{},password:{default:""},passwordModifiers:{}}),emits:e.mergeModels(["submit"],["update:username","update:password"]),setup(r,{emit:o}){const l=e.useModel(r,"username"),n=e.useModel(r,"password"),a=o,u=e.ref(!1);return(d,f)=>(e.openBlock(),e.createBlock(e.unref(i.VCard),{title:d.title,"min-width":d.minWidth,"max-width":d.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VForm),{onSubmit:f[2]||(f[2]=e.withModifiers(t=>a("submit",l.value,n.value),["prevent"])),modelValue:u.value,"onUpdate:modelValue":f[3]||(f[3]=t=>u.value=t)},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VTextField),{modelValue:l.value,"onUpdate:modelValue":f[0]||(f[0]=t=>l.value=t),label:d.usernameLabel,rules:[t=>!!t||"Username is required"],"persistent-placeholder":"",autofocus:""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(i.VTextField),{modelValue:n.value,"onUpdate:modelValue":f[1]||(f[1]=t=>n.value=t),label:d.passwordLabel,type:"password",rules:[t=>!!t||"Password is required"],"persistent-placeholder":""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(i.VBtn),{disabled:!u.value,type:"submit",color:"primary",variant:"flat",text:d.submitButtonText,loading:d.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(d.$slots,"beneath")]),_:3})]),_:3},8,["modelValue"])]),_:3},8,["title","min-width","max-width"]))}}),L={class:"text-no-wrap overflow-hidden"},O=e.defineComponent({__name:"NavDrawerLink",props:{to:{},href:{},target:{},icon:{},text:{}},setup(r){return(o,l)=>(e.openBlock(),e.createBlock(e.unref(i.VListItem),{role:"option",to:o.to,href:o.href,target:o.target,slim:""},{prepend:e.withCtx(()=>[e.createVNode(e.unref(i.VIcon),{icon:o.icon},null,8,["icon"])]),default:e.withCtx(()=>[e.createElementVNode("span",L,e.toDisplayString(o.text),1)]),_:1},8,["to","href","target"]))}}),E=e.defineComponent({__name:"OTPForm",props:e.mergeModels({title:{default:"2FA Verification"},subtitle:{default:"Enter the code from your authenticator app"},submitButtonText:{default:"Verify"},minWidth:{},maxWidth:{},loading:{type:Boolean},length:{default:6},autosubmit:{type:Boolean,default:!0}},{otp:{default:""},otpModifiers:{}}),emits:e.mergeModels(["submit"],["update:otp"]),setup(r,{emit:o}){const l=e.useModel(r,"otp"),n=o,a=r,u=e.computed(()=>l.value.length===a.length);return e.watch(l,()=>{a.autosubmit&&l.value.length===a.length&&n("submit",l.value)}),(d,f)=>(e.openBlock(),e.createBlock(e.unref(i.VCard),{title:d.title,subtitle:d.subtitle,"min-width":d.minWidth,"max-width":d.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VForm),{onSubmit:f[1]||(f[1]=e.withModifiers(t=>n("submit",l.value),["prevent"])),"model-value":u.value},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(i.VOtpInput),{modelValue:l.value,"onUpdate:modelValue":f[0]||(f[0]=t=>l.value=t),label:"OTP","persistent-placeholder":"",autofocus:"",length:d.length},null,8,["modelValue","length"]),e.createVNode(e.unref(i.VBtn),{disabled:!u.value,type:"submit",color:"primary",variant:"flat",text:d.submitButtonText,loading:d.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(d.$slots,"beneath")]),_:3})]),_:3},8,["model-value"])]),_:3},8,["title","subtitle","min-width","max-width"]))}});function D(r){return!r||r.length===0?{}:{filter:JSON.stringify(r)}}const P=Object.freeze(Object.defineProperty({__proto__:null,asParams:D},Symbol.toStringTag,{value:"Module"}));s.AppBase=x,s.DashboardPage=N,s.FooterSection=$,s.LoginForm=F,s.NavDrawerLink=O,s.OTPForm=E,s.filters=P,s.useColorMode=g,s.useFooter=y,s.useNotify=k,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
|
|
2
|
+
(function(d,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vue-router"),require("vuetify/components"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","vue-router","vuetify/components","pinia"],e):(d=typeof globalThis<"u"?globalThis:d||self,e(d.appsalutely={},d.Vue,d.VueRouter,d.VuetifyComponents,d.Pinia))})(this,(function(d,e,x,a,w){"use strict";const b=w.defineStore("colorMode",()=>{const t=e.ref(localStorage.getItem("colorMode")=="dark"?"dark":"light");function i(){t.value=t.value==="dark"?"light":"dark"}function r(o){localStorage.setItem("colorMode",o),document.documentElement.setAttribute("data-theme",o)}return e.watch(t,o=>r(o)),r(t.value),{mode:t,toggle:i}}),g=w.defineStore("footer",()=>{const t=e.ref([]),i=e.computed(()=>t.value.length>0?t.value[t.value.length-1]:null);function r(n){return n.id||(n.id=new Date().getTime().toString()),n.timeout===void 0&&(n.timeout=5e3),t.value.push(n),n.timeout&&setTimeout(()=>{o(n.id)},n.timeout),n.id}function o(n){t.value=t.value.filter(f=>f.id!==n)}return{messages:t,current:i,addMessage:r,removeMessage:o}}),y=w.defineStore("notify",()=>{const t=e.ref([]),i=e.ref({});function r(l){return l.id?o(l.id):l.id=new Date().getTime().toString(),l.timeout===void 0&&(l.timeout=5e3),t.value.push(l),l.timeout&&(i.value[l.id]=setTimeout(()=>{o(l.id)},l.timeout)),l.id}function o(l){t.value=t.value.filter(V=>V.id!==l),i.value[l]&&(clearTimeout(i.value[l]),delete i.value[l])}function n(l){return r({text:l,type:"info"})}function f(l){return r({text:l,type:"success"})}function u(l){return r({text:l,type:"warning"})}function s(l){return r({text:l,type:"error"})}return{messages:t,add:r,remove:o,info:n,success:f,warning:u,error:s}}),k={class:"d-flex flex-column pa-4 h-100"},B=["textContent"],C=e.defineComponent({__name:"AppBase",props:{drawerOpen:{type:Boolean,default:!1},drawerOpenModifiers:{}},emits:["update:drawerOpen"],setup(t){const i=b(),r=e.useModel(t,"drawerOpen"),o=e.ref(!1),n=g(),f=e.ref(!1),u=e.ref(null),s=y(),l=x.useRouter(),V=e.useSlots();return e.watch(o,h=>{localStorage.setItem("drawerDocked",String(h))}),e.onBeforeMount(()=>{l.beforeEach(()=>{u.value=setTimeout(()=>{f.value=!0},300)}),l.afterEach(()=>{u.value&&(clearTimeout(u.value),u.value=null),f.value=!1}),o.value=localStorage.getItem("drawerDocked")==="true",r.value=o.value}),(h,m)=>(e.openBlock(),e.createBlock(e.unref(a.VApp),{theme:e.unref(i).mode},{default:e.withCtx(()=>[f.value?(e.openBlock(),e.createBlock(e.unref(a.VProgressLinear),{key:0,indeterminate:"",class:"mb-n1",style:{"z-index":"100000",opacity:"0.5"},height:"1"})):e.createCommentVNode("",!0),e.createVNode(e.unref(a.VAppBar),{height:"64"},{default:e.withCtx(()=>[e.renderSlot(h.$slots,"header")]),_:3}),e.createVNode(e.unref(a.VMain),{class:"bg-surface-light"},{default:e.withCtx(()=>[e.createElementVNode("div",k,[e.createVNode(e.unref(x.RouterView))])]),_:1}),e.unref(V).footer?(e.openBlock(),e.createBlock(e.unref(a.VAppBar),{key:1,height:"40",location:"bottom"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VFooter),{class:"py-0 w-100 d-flex align-center"},{default:e.withCtx(()=>[e.unref(n).current?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(e.unref(n).current.text),class:e.normalizeClass([e.unref(n).current.type?{}:{["text-"+e.unref(n).current.type]:!0},"overflow-hidden text-no-wrap"]),style:{"text-overflow":"ellipsis"}},null,10,B)):e.createCommentVNode("",!0),e.unref(n).current&&e.unref(n).current.actions?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(Object.entries(e.unref(n).current.actions),(c,p)=>(e.openBlock(),e.createBlock(e.unref(a.VBtn),{text:c[0],onClick:c[1],key:p,density:"comfortable",variant:"tonal",class:"mx-2 px-2 text-none",color:e.unref(n).current.type},null,8,["text","onClick","color"]))),128)):e.createCommentVNode("",!0),m[2]||(m[2]=e.createElementVNode("div",{class:"me-auto"},null,-1)),e.renderSlot(h.$slots,"footer")]),_:3})]),_:3})):e.createCommentVNode("",!0),e.unref(V).drawer?(e.openBlock(),e.createBlock(e.unref(a.VNavigationDrawer),{key:2,modelValue:r.value,"onUpdate:modelValue":m[1]||(m[1]=c=>r.value=c),width:"250","rail-width":"58",rail:o.value,mobile:o.value?!1:void 0},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VList),{class:"h-100 d-flex flex-column",nav:""},{default:e.withCtx(()=>[e.renderSlot(h.$slots,"drawer"),m[3]||(m[3]=e.createElementVNode("div",{class:"flex-grow-1"},null,-1)),e.createVNode(e.unref(a.VBtn),{onClick:m[0]||(m[0]=c=>o.value=!o.value),icon:"mdi-pin-outline",rounded:"rounded",density:"comfortable",title:o.value?"Undock sidebar":"Dock sidebar",class:"ma-1 ms-auto",variant:o.value?"tonal":"text"},null,8,["title","variant"])]),_:3})]),_:3},8,["modelValue","rail","mobile"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s).messages,(c,p)=>(e.openBlock(),e.createBlock(e.unref(a.VSnackbar),{key:p,"model-value":!0,text:c.text,color:c.type,location:"bottom end",style:e.normalizeStyle({bottom:`${p*56}px`}),timeout:-1},{actions:e.withCtx(()=>[e.createVNode(e.unref(a.VBtn),{icon:"mdi-close",onClick:W=>e.unref(s).remove(c.id)},null,8,["onClick"])]),_:2},1032,["text","color","style"]))),128))]),_:3},8,["theme"]))}}),N=e.defineComponent({__name:"DashboardPage",props:{breadcrumbs:{},fluid:{type:Boolean,default:!0}},setup(t){return(i,r)=>(e.openBlock(),e.createBlock(e.unref(a.VContainer),{fluid:t.fluid,class:"h-100 d-flex flex-column py-0 h-100"},{default:e.withCtx(()=>[t.breadcrumbs?(e.openBlock(),e.createBlock(e.unref(a.VBreadcrumbs),{key:0,items:t.breadcrumbs,density:"comfortable",class:"pa-0 flex-wrap"},null,8,["items"])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default")]),_:3},8,["fluid"]))}}),S=(t,i)=>{const r=t.__vccOpts||t;for(const[o,n]of i)r[o]=n;return r},M={},T={class:"h-100 d-flex align-center"};function $(t,i){return e.openBlock(),e.createElementBlock(e.Fragment,null,[i[0]||(i[0]=e.createElementVNode("span",{class:"border-s mx-3",style:{height:"32px"}},null,-1)),e.createElementVNode("span",T,[e.renderSlot(t.$slots,"default")])],64)}const F=S(M,[["render",$]]),L=e.defineComponent({__name:"LoginForm",props:e.mergeModels({title:{default:"Log in"},submitButtonText:{default:"Log in"},minWidth:{},maxWidth:{},loading:{type:Boolean},usernameLabel:{default:"Username"},passwordLabel:{default:"Password"}},{username:{default:""},usernameModifiers:{},password:{default:""},passwordModifiers:{}}),emits:e.mergeModels(["submit"],["update:username","update:password"]),setup(t,{emit:i}){const r=e.useModel(t,"username"),o=e.useModel(t,"password"),n=i,f=e.ref(!1);return(u,s)=>(e.openBlock(),e.createBlock(e.unref(a.VCard),{title:t.title,"min-width":t.minWidth,"max-width":t.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VForm),{onSubmit:s[2]||(s[2]=e.withModifiers(l=>n("submit",r.value,o.value),["prevent"])),modelValue:f.value,"onUpdate:modelValue":s[3]||(s[3]=l=>f.value=l)},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VTextField),{modelValue:r.value,"onUpdate:modelValue":s[0]||(s[0]=l=>r.value=l),label:t.usernameLabel,rules:[l=>!!l||"Username is required"],"persistent-placeholder":"",autofocus:""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(a.VTextField),{modelValue:o.value,"onUpdate:modelValue":s[1]||(s[1]=l=>o.value=l),label:t.passwordLabel,type:"password",rules:[l=>!!l||"Password is required"],"persistent-placeholder":""},null,8,["modelValue","label","rules"]),e.createVNode(e.unref(a.VBtn),{disabled:!f.value,type:"submit",color:"primary",variant:"flat",text:t.submitButtonText,loading:t.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(u.$slots,"beneath")]),_:3})]),_:3},8,["modelValue"])]),_:3},8,["title","min-width","max-width"]))}}),O={class:"text-no-wrap overflow-hidden"},E=e.defineComponent({__name:"NavDrawerLink",props:{to:{},href:{},target:{},icon:{},text:{}},setup(t){return(i,r)=>(e.openBlock(),e.createBlock(e.unref(a.VListItem),{role:"option",to:t.to,href:t.href,target:t.target,slim:""},{prepend:e.withCtx(()=>[e.createVNode(e.unref(a.VIcon),{icon:t.icon},null,8,["icon"])]),default:e.withCtx(()=>[e.createElementVNode("span",O,e.toDisplayString(t.text),1)]),_:1},8,["to","href","target"]))}}),D=e.defineComponent({__name:"OTPForm",props:e.mergeModels({title:{default:"2FA Verification"},subtitle:{default:"Enter the code from your authenticator app"},submitButtonText:{default:"Verify"},minWidth:{},maxWidth:{},loading:{type:Boolean},length:{default:6},autosubmit:{type:Boolean,default:!0}},{otp:{default:""},otpModifiers:{}}),emits:e.mergeModels(["submit"],["update:otp"]),setup(t,{emit:i}){const r=e.useModel(t,"otp"),o=i,n=t,f=e.computed(()=>r.value.length===n.length);return e.watch(r,()=>{n.autosubmit&&r.value.length===n.length&&o("submit",r.value)}),(u,s)=>(e.openBlock(),e.createBlock(e.unref(a.VCard),{title:t.title,subtitle:t.subtitle,"min-width":t.minWidth,"max-width":t.maxWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VForm),{onSubmit:s[1]||(s[1]=e.withModifiers(l=>o("submit",r.value),["prevent"])),"model-value":f.value},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VCardText),{class:"d-flex flex-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.VOtpInput),{modelValue:r.value,"onUpdate:modelValue":s[0]||(s[0]=l=>r.value=l),label:"OTP","persistent-placeholder":"",autofocus:"",length:t.length},null,8,["modelValue","length"]),e.createVNode(e.unref(a.VBtn),{disabled:!f.value,type:"submit",color:"primary",variant:"flat",text:t.submitButtonText,loading:t.loading,class:"align-self-center"},null,8,["disabled","text","loading"]),e.renderSlot(u.$slots,"beneath")]),_:3})]),_:3},8,["model-value"])]),_:3},8,["title","subtitle","min-width","max-width"]))}});function P(t){return!t||t.length===0?{}:{filter:JSON.stringify(t)}}const U=Object.freeze(Object.defineProperty({__proto__:null,asParams:P},Symbol.toStringTag,{value:"Module"}));d.AppBase=C,d.DashboardPage=N,d.FooterSection=F,d.LoginForm=L,d.NavDrawerLink=E,d.OTPForm=D,d.filters=U,d.useColorMode=b,d.useFooter=g,d.useNotify=y,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appsalutely",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
|
+
"repository": {
|
|
5
|
+
"url": "https://github.com/merlinz01/appsalutely"
|
|
6
|
+
},
|
|
4
7
|
"type": "module",
|
|
5
8
|
"files": [
|
|
6
9
|
"dist"
|
|
@@ -22,13 +25,13 @@
|
|
|
22
25
|
"ci-tasks": "npm run lint && npm run format && npm run type-check"
|
|
23
26
|
},
|
|
24
27
|
"peerDependencies": {
|
|
25
|
-
"pinia": "^3.0.
|
|
26
|
-
"vue": "^3.5.
|
|
27
|
-
"vue-router": "^
|
|
28
|
-
"vuetify": "^3.
|
|
28
|
+
"pinia": "^3.0.3",
|
|
29
|
+
"vue": "^3.5.22",
|
|
30
|
+
"vue-router": "^5.0.3",
|
|
31
|
+
"vuetify": "^3.10.5"
|
|
29
32
|
},
|
|
30
33
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^
|
|
34
|
+
"@types/node": "^24.10.13",
|
|
32
35
|
"@vitejs/plugin-vue": "^5.2.3",
|
|
33
36
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
34
37
|
"@vue/eslint-config-typescript": "^14.5.0",
|
|
@@ -40,6 +43,5 @@
|
|
|
40
43
|
"vite": "^6.3.5",
|
|
41
44
|
"vite-plugin-css-injected-by-js": "^3.5.2",
|
|
42
45
|
"vue-tsc": "^2.2.8"
|
|
43
|
-
}
|
|
44
|
-
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
46
|
+
}
|
|
45
47
|
}
|