@vuetify/one 0.6.0 → 0.6.1
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 +278 -237
- package/package.json +1 -1
- package/dist/index.d.ts +0 -786
package/dist/index.js
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { reactive as Y, toRefs as Z, ref as
|
|
2
|
-
import { defineStore as
|
|
3
|
-
import { merge as
|
|
4
|
-
import { mdiDiscord as M, mdiGithub as G, mdiViewDashboard as re, mdiLogoutVariant as ae, mdiLogin as le, mdiShieldStarOutline as
|
|
5
|
-
import { VListItem as z, VList as J, VListSubheader as
|
|
6
|
-
import { VAvatar as
|
|
1
|
+
import { reactive as Y, toRefs as Z, ref as B, shallowRef as D, computed as g, watch as N, defineComponent as $, openBlock as h, createBlock as b, unref as l, withCtx as v, createVNode as p, createTextVNode as j, toDisplayString as U, createCommentVNode as K, mergeProps as Q, createElementVNode as C, createElementBlock as ee, Fragment as te, renderList as ne, pushScopeId as oe, popScopeId as se, onBeforeMount as ie } from "vue";
|
|
2
|
+
import { defineStore as S } from "pinia";
|
|
3
|
+
import { merge as T } from "lodash-es";
|
|
4
|
+
import { mdiDiscord as M, mdiGithub as G, mdiViewDashboard as re, mdiLogoutVariant as ae, mdiLogin as le, mdiShieldStarOutline as ue, mdiReddit as ce } from "@mdi/js";
|
|
5
|
+
import { VListItem as z, VList as J, VListSubheader as fe } from "vuetify/lib/components/VList/index.mjs";
|
|
6
|
+
import { VAvatar as de } from "vuetify/lib/components/VAvatar/index.mjs";
|
|
7
7
|
import { VBtn as W } from "vuetify/lib/components/VBtn/index.mjs";
|
|
8
8
|
import { VMenu as pe } from "vuetify/lib/components/VMenu/index.mjs";
|
|
9
|
-
import { VSkeletonLoader as
|
|
10
|
-
import { useDisplay as
|
|
9
|
+
import { VSkeletonLoader as ve } from "vuetify/lib/components/VSkeletonLoader/index.mjs";
|
|
10
|
+
import { useDisplay as me, useTheme as he } from "vuetify";
|
|
11
11
|
import { VCard as ye, VCardTitle as ge, VCardSubtitle as be } from "vuetify/lib/components/VCard/index.mjs";
|
|
12
12
|
import { VDialog as _e } from "vuetify/lib/components/VDialog/index.mjs";
|
|
13
13
|
import { VImg as we } from "vuetify/lib/components/VImg/index.mjs";
|
|
14
14
|
import { VFooter as Le } from "vuetify/lib/components/VFooter/index.mjs";
|
|
15
15
|
import { VIcon as xe } from "vuetify/lib/components/VIcon/index.mjs";
|
|
16
|
-
const
|
|
16
|
+
const R = S("http", {
|
|
17
17
|
state: () => ({
|
|
18
18
|
url: ""
|
|
19
19
|
}),
|
|
20
20
|
actions: {
|
|
21
|
-
async fetch(
|
|
22
|
-
const
|
|
21
|
+
async fetch(n, t = {}) {
|
|
22
|
+
const o = await fetch(`${this.url}${n}`, {
|
|
23
23
|
credentials: "include",
|
|
24
24
|
...t
|
|
25
25
|
});
|
|
26
|
-
return
|
|
26
|
+
return o.status === 204 ? o : o.json();
|
|
27
27
|
},
|
|
28
|
-
async post(
|
|
29
|
-
return this.fetch(
|
|
28
|
+
async post(n, t, o = {}) {
|
|
29
|
+
return this.fetch(n, {
|
|
30
30
|
method: "POST",
|
|
31
31
|
headers: {
|
|
32
32
|
"Content-Type": "application/json"
|
|
33
33
|
},
|
|
34
34
|
body: JSON.stringify(t),
|
|
35
|
-
...
|
|
35
|
+
...o
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
|
-
async get(
|
|
39
|
-
return this.fetch(
|
|
38
|
+
async get(n, t = {}) {
|
|
39
|
+
return this.fetch(n, t);
|
|
40
40
|
},
|
|
41
|
-
async delete(
|
|
42
|
-
return this.fetch(
|
|
41
|
+
async delete(n, t = {}) {
|
|
42
|
+
return this.fetch(n, {
|
|
43
43
|
method: "DELETE",
|
|
44
44
|
...t
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
}),
|
|
48
|
+
}), H = typeof window < "u", P = {
|
|
49
49
|
v: 4,
|
|
50
50
|
api: "link-only",
|
|
51
51
|
avatar: "",
|
|
@@ -74,152 +74,152 @@ const U = k("http", {
|
|
|
74
74
|
jobs: null
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
}, q =
|
|
78
|
-
const
|
|
77
|
+
}, q = S("user", () => {
|
|
78
|
+
const n = Y(T({}, P));
|
|
79
79
|
function t() {
|
|
80
|
-
if (!
|
|
80
|
+
if (!H)
|
|
81
81
|
return;
|
|
82
|
-
const
|
|
83
|
-
e.v || (e.pwaRefresh = !0, typeof e.api == "boolean" && (e.api = e.api ? "inline" : "link-only"), typeof e.rtl == "boolean" && (e.direction = e.rtl ? "rtl" : "ltr", delete e.rtl), typeof e.theme == "object" && (e.mixedTheme = e.theme.mixed, e.theme = e.theme.system ? "system" : e.theme.dark ? "dark" : "light"), Array.isArray(e.notifications) && (e.notifications = { read: e.notifications }), typeof e.last == "object" && (e.notifications.last = e.last, delete e.last)), e.v === 1 && (Array.isArray(e.composition) && (e.composition = "composition"), Array.isArray(e.notifications.last.banner) || (e.notifications = e.notifications || {}, e.notifications.last = e.notifications.last || {}, e.notifications.last.banner = [])), e.v === 2 && (e.syncSettings = !0, e.disableAds = !1, e.v = 3), e.v === 3 && (e.quickbar = !1), e.v =
|
|
82
|
+
const s = localStorage.getItem("vuetify@user"), e = s ? JSON.parse(s) : {}, m = e.v === n.v;
|
|
83
|
+
e.v || (e.pwaRefresh = !0, typeof e.api == "boolean" && (e.api = e.api ? "inline" : "link-only"), typeof e.rtl == "boolean" && (e.direction = e.rtl ? "rtl" : "ltr", delete e.rtl), typeof e.theme == "object" && (e.mixedTheme = e.theme.mixed, e.theme = e.theme.system ? "system" : e.theme.dark ? "dark" : "light"), Array.isArray(e.notifications) && (e.notifications = { read: e.notifications }), typeof e.last == "object" && (e.notifications.last = e.last, delete e.last)), e.v === 1 && (Array.isArray(e.composition) && (e.composition = "composition"), Array.isArray(e.notifications.last.banner) || (e.notifications = e.notifications || {}, e.notifications.last = e.notifications.last || {}, e.notifications.last.banner = [])), e.v === 2 && (e.syncSettings = !0, e.disableAds = !1, e.v = 3), e.v === 3 && (e.quickbar = !1), e.v = n.v, Object.assign(n, T(n, e)), m && o();
|
|
84
84
|
}
|
|
85
|
-
function
|
|
86
|
-
|
|
85
|
+
function o() {
|
|
86
|
+
H && localStorage.setItem("vuetify@user", JSON.stringify(n, null, 2));
|
|
87
87
|
}
|
|
88
|
-
function
|
|
89
|
-
|
|
88
|
+
function i() {
|
|
89
|
+
H && (Object.assign(n, T({}, P)), o());
|
|
90
90
|
}
|
|
91
91
|
return t(), {
|
|
92
|
-
...Z(
|
|
92
|
+
...Z(n),
|
|
93
93
|
load: t,
|
|
94
|
-
save:
|
|
95
|
-
reset:
|
|
94
|
+
save: o,
|
|
95
|
+
reset: i
|
|
96
96
|
};
|
|
97
|
-
}),
|
|
98
|
-
const
|
|
99
|
-
var
|
|
100
|
-
return !t.url || ((
|
|
97
|
+
}), w = S("auth", () => {
|
|
98
|
+
const n = B(null), t = R(), o = q(), i = D(!1), s = g(() => {
|
|
99
|
+
var r, a;
|
|
100
|
+
return !t.url || ((r = n.value) == null ? void 0 : r.isAdmin) || ((a = n.value) == null ? void 0 : a.sponsorships.some((_) => _.isActive));
|
|
101
101
|
});
|
|
102
102
|
let e = !1;
|
|
103
|
-
|
|
104
|
-
if (!(
|
|
103
|
+
N(n, (r) => {
|
|
104
|
+
if (!(r != null && r.settings))
|
|
105
105
|
return;
|
|
106
|
-
const
|
|
107
|
-
JSON.stringify(
|
|
108
|
-
}),
|
|
106
|
+
const a = localStorage.getItem("vuetify@user") || "{}";
|
|
107
|
+
JSON.stringify(r.settings, null, 2) !== a && (e = !0, Object.assign(o, r.settings));
|
|
108
|
+
}), o.$subscribe(() => {
|
|
109
109
|
e || m(), e = !1;
|
|
110
110
|
});
|
|
111
111
|
async function m() {
|
|
112
112
|
try {
|
|
113
|
-
await t.post("/user/settings", { settings:
|
|
114
|
-
} catch (
|
|
115
|
-
console.error(
|
|
113
|
+
await t.post("/user/settings", { settings: o.$state });
|
|
114
|
+
} catch (r) {
|
|
115
|
+
console.error(r);
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
-
async function
|
|
119
|
-
if (
|
|
120
|
-
return
|
|
121
|
-
|
|
118
|
+
async function f(r = !1) {
|
|
119
|
+
if (f.promise)
|
|
120
|
+
return f.promise;
|
|
121
|
+
i.value = !0, f.promise = fetch(`${t.url}/auth/verify`, {
|
|
122
122
|
credentials: "include",
|
|
123
|
-
headers:
|
|
123
|
+
headers: r ? {
|
|
124
124
|
"Cache-Control": "no-cache"
|
|
125
125
|
} : void 0
|
|
126
126
|
}).then(
|
|
127
|
-
async (
|
|
128
|
-
|
|
127
|
+
async (a) => {
|
|
128
|
+
a.ok ? n.value = (await a.json()).user : a.status === 401 ? n.value = null : console.error(a.statusText);
|
|
129
129
|
},
|
|
130
130
|
() => {
|
|
131
131
|
}
|
|
132
132
|
).finally(() => {
|
|
133
|
-
|
|
133
|
+
i.value = !1, f.promise = null;
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
-
|
|
137
|
-
async function
|
|
138
|
-
|
|
139
|
-
const
|
|
136
|
+
f.promise = null;
|
|
137
|
+
async function L(r = "github") {
|
|
138
|
+
i.value = !0;
|
|
139
|
+
const a = `${t.url}/auth/${r}/redirect`, _ = 400, k = 600, u = window.screenX + (window.innerWidth - _) / 2, c = window.screenY + (window.innerHeight - k) / 2, d = window.open(
|
|
140
140
|
"",
|
|
141
141
|
"vuetify:authorize:popup",
|
|
142
|
-
`popup,left=${
|
|
142
|
+
`popup,left=${u},top=${c},width=${_},height=${k},resizable`
|
|
143
143
|
);
|
|
144
|
-
if (!
|
|
144
|
+
if (!d) {
|
|
145
145
|
console.error("Failed to open popup");
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
|
-
|
|
149
|
-
let I = -1,
|
|
150
|
-
function E(
|
|
148
|
+
d.location.href = a;
|
|
149
|
+
let I = -1, A = -1;
|
|
150
|
+
function E(V) {
|
|
151
151
|
var F;
|
|
152
|
-
|
|
152
|
+
V.origin === t.url && ((F = V.data) == null ? void 0 : F.type) === "auth-response" && (V.data.status === "success" ? (n.value || localStorage.setItem("vuetify@lastLoginProvider", r), n.value = V.data.body.user) : console.error(V.data.message), O());
|
|
153
153
|
}
|
|
154
|
-
function
|
|
155
|
-
window.removeEventListener("message", E), window.clearInterval(I), window.clearTimeout(
|
|
154
|
+
function O() {
|
|
155
|
+
window.removeEventListener("message", E), window.clearInterval(I), window.clearTimeout(A), d == null || d.close(), i.value = !1;
|
|
156
156
|
}
|
|
157
157
|
window.addEventListener("message", E), I = window.setInterval(() => {
|
|
158
|
-
!
|
|
159
|
-
}, 1e3),
|
|
160
|
-
|
|
158
|
+
!d || d.closed ? (console.error("Auth popup closed"), O()) : d.postMessage({ type: "auth-request" }, "*");
|
|
159
|
+
}, 1e3), A = window.setTimeout(() => {
|
|
160
|
+
O(), console.error("Auth timed out");
|
|
161
161
|
}, 120 * 1e3);
|
|
162
162
|
}
|
|
163
|
-
async function
|
|
164
|
-
|
|
163
|
+
async function x() {
|
|
164
|
+
i.value = !0;
|
|
165
165
|
try {
|
|
166
|
-
await t.post("/auth/logout"), await
|
|
167
|
-
} catch (
|
|
168
|
-
console.error(
|
|
166
|
+
await t.post("/auth/logout"), await f(!0), n.value = null;
|
|
167
|
+
} catch (r) {
|
|
168
|
+
console.error(r);
|
|
169
169
|
} finally {
|
|
170
|
-
|
|
170
|
+
i.value = !1;
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
function y() {
|
|
174
174
|
return localStorage.getItem("vuetify@lastLoginProvider");
|
|
175
175
|
}
|
|
176
|
-
return y() &&
|
|
177
|
-
user:
|
|
176
|
+
return y() && f(), {
|
|
177
|
+
user: n,
|
|
178
178
|
url: t.url,
|
|
179
|
-
isLoading:
|
|
180
|
-
verify:
|
|
181
|
-
login:
|
|
182
|
-
logout:
|
|
183
|
-
isSubscriber:
|
|
179
|
+
isLoading: i,
|
|
180
|
+
verify: f,
|
|
181
|
+
login: L,
|
|
182
|
+
logout: x,
|
|
183
|
+
isSubscriber: s,
|
|
184
184
|
lastLoginProvider: y
|
|
185
185
|
};
|
|
186
|
-
}), Ve = /* @__PURE__ */
|
|
186
|
+
}), Ve = /* @__PURE__ */ $({
|
|
187
187
|
__name: "VoDiscordLogin",
|
|
188
|
-
setup(
|
|
189
|
-
const t =
|
|
190
|
-
return (
|
|
191
|
-
"prepend-icon": `svg:${
|
|
192
|
-
title:
|
|
193
|
-
subtitle: !
|
|
188
|
+
setup(n) {
|
|
189
|
+
const t = w();
|
|
190
|
+
return (o, i) => (h(), b(z, {
|
|
191
|
+
"prepend-icon": `svg:${l(M)}`,
|
|
192
|
+
title: l(t).user ? "Connect Discord" : "Log in with Discord",
|
|
193
|
+
subtitle: !l(t).user && l(t).lastLoginProvider() === "discord" ? "Last Used" : "",
|
|
194
194
|
nav: "",
|
|
195
195
|
"base-color": "#5865F2",
|
|
196
196
|
slim: "",
|
|
197
197
|
variant: "flat",
|
|
198
|
-
onClick:
|
|
198
|
+
onClick: i[0] || (i[0] = (s) => l(t).login("discord"))
|
|
199
199
|
}, null, 8, ["prepend-icon", "title", "subtitle"]));
|
|
200
200
|
}
|
|
201
|
-
}), $e = /* @__PURE__ */
|
|
201
|
+
}), $e = /* @__PURE__ */ $({
|
|
202
202
|
__name: "VoGithubLogin",
|
|
203
|
-
setup(
|
|
204
|
-
const t =
|
|
205
|
-
return (
|
|
206
|
-
"prepend-icon": `svg:${
|
|
207
|
-
title:
|
|
208
|
-
subtitle: !
|
|
203
|
+
setup(n) {
|
|
204
|
+
const t = w();
|
|
205
|
+
return (o, i) => (h(), b(z, {
|
|
206
|
+
"prepend-icon": `svg:${l(G)}`,
|
|
207
|
+
title: l(t).user ? "Connect GitHub" : "Log in with GitHub",
|
|
208
|
+
subtitle: !l(t).user && l(t).lastLoginProvider() === "github" ? "Last Used" : "",
|
|
209
209
|
"base-color": "#2a2a2a",
|
|
210
210
|
nav: "",
|
|
211
211
|
slim: "",
|
|
212
212
|
variant: "flat",
|
|
213
|
-
onClick:
|
|
213
|
+
onClick: i[0] || (i[0] = (s) => l(t).login("github"))
|
|
214
214
|
}, null, 8, ["prepend-icon", "title", "subtitle"]));
|
|
215
215
|
}
|
|
216
|
-
}), Se = /* @__PURE__ */
|
|
216
|
+
}), Se = /* @__PURE__ */ $({
|
|
217
217
|
__name: "VoUserBtn",
|
|
218
218
|
props: {
|
|
219
219
|
external: Boolean
|
|
220
220
|
},
|
|
221
|
-
setup(
|
|
222
|
-
const t =
|
|
221
|
+
setup(n) {
|
|
222
|
+
const t = n, o = w(), i = q(), s = g(() => [
|
|
223
223
|
{ title: "Options", type: "subheader" },
|
|
224
224
|
{
|
|
225
225
|
title: "My Dashboard",
|
|
@@ -238,36 +238,36 @@ const U = k("http", {
|
|
|
238
238
|
title: "Logout",
|
|
239
239
|
appendIcon: `svg:${ae}`,
|
|
240
240
|
onClick: () => {
|
|
241
|
-
|
|
241
|
+
o.logout();
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
]);
|
|
245
|
-
return (e, m) => (
|
|
245
|
+
return (e, m) => (h(), b(W, {
|
|
246
246
|
class: "vo-user-btn",
|
|
247
|
-
loading:
|
|
247
|
+
loading: l(o).isLoading,
|
|
248
248
|
icon: ""
|
|
249
249
|
}, {
|
|
250
|
-
loader:
|
|
251
|
-
|
|
250
|
+
loader: v(() => [
|
|
251
|
+
p(ve, { type: "avatar" })
|
|
252
252
|
]),
|
|
253
|
-
default:
|
|
254
|
-
|
|
255
|
-
disabled: !
|
|
253
|
+
default: v(() => [
|
|
254
|
+
p(pe, {
|
|
255
|
+
disabled: !l(o).user || l(o).isLoading,
|
|
256
256
|
activator: "parent",
|
|
257
257
|
location: "bottom end"
|
|
258
258
|
}, {
|
|
259
|
-
default:
|
|
260
|
-
|
|
261
|
-
items:
|
|
259
|
+
default: v(() => [
|
|
260
|
+
p(J, {
|
|
261
|
+
items: s.value,
|
|
262
262
|
lines: !1,
|
|
263
263
|
density: "compact",
|
|
264
264
|
"item-props": "",
|
|
265
265
|
nav: ""
|
|
266
266
|
}, {
|
|
267
|
-
subheader:
|
|
268
|
-
|
|
269
|
-
default:
|
|
270
|
-
|
|
267
|
+
subheader: v(({ props: f }) => [
|
|
268
|
+
p(fe, { class: "text-high-emphasis text-uppercase font-weight-black" }, {
|
|
269
|
+
default: v(() => [
|
|
270
|
+
j(U(f.title), 1)
|
|
271
271
|
]),
|
|
272
272
|
_: 2
|
|
273
273
|
}, 1024)
|
|
@@ -277,70 +277,70 @@ const U = k("http", {
|
|
|
277
277
|
]),
|
|
278
278
|
_: 1
|
|
279
279
|
}, 8, ["disabled"]),
|
|
280
|
-
|
|
280
|
+
l(o).user ? (h(), b(de, {
|
|
281
281
|
key: 0,
|
|
282
|
-
image:
|
|
282
|
+
image: l(i).avatar || l(o).user.picture || ""
|
|
283
283
|
}, null, 8, ["image"])) : K("", !0)
|
|
284
284
|
]),
|
|
285
285
|
_: 1
|
|
286
286
|
}, 8, ["loading"]));
|
|
287
287
|
}
|
|
288
288
|
});
|
|
289
|
-
const X = (
|
|
290
|
-
const
|
|
291
|
-
for (const [
|
|
292
|
-
|
|
293
|
-
return
|
|
294
|
-
}, ke = /* @__PURE__ */ X(Se, [["__scopeId", "data-v-aeb16535"]]), Ie = { class: "text-center mb-6" }, Ae = /* @__PURE__ */
|
|
289
|
+
const X = (n, t) => {
|
|
290
|
+
const o = n.__vccOpts || n;
|
|
291
|
+
for (const [i, s] of t)
|
|
292
|
+
o[i] = s;
|
|
293
|
+
return o;
|
|
294
|
+
}, ke = /* @__PURE__ */ X(Se, [["__scopeId", "data-v-aeb16535"]]), Ie = { class: "text-center mb-6" }, Ae = /* @__PURE__ */ $({
|
|
295
295
|
__name: "VoAuthDialog",
|
|
296
|
-
setup(
|
|
297
|
-
const t =
|
|
298
|
-
return (e, m) => !
|
|
296
|
+
setup(n) {
|
|
297
|
+
const t = w(), { mdAndDown: o, lgAndUp: i } = me(), s = he();
|
|
298
|
+
return (e, m) => !l(t).user && !l(t).isLoading ? (h(), b(_e, {
|
|
299
299
|
key: 0,
|
|
300
300
|
"max-width": "480"
|
|
301
301
|
}, {
|
|
302
|
-
activator:
|
|
303
|
-
|
|
304
|
-
...
|
|
305
|
-
[`${
|
|
306
|
-
text:
|
|
302
|
+
activator: v(({ props: f }) => [
|
|
303
|
+
p(W, Q({
|
|
304
|
+
...f,
|
|
305
|
+
[`${l(i) ? "append-" : ""}icon`]: `svg:${l(le)}`,
|
|
306
|
+
text: l(i) ? "Login" : void 0
|
|
307
307
|
}, {
|
|
308
|
-
rounded:
|
|
308
|
+
rounded: l(o),
|
|
309
309
|
class: "text-none",
|
|
310
310
|
color: "primary",
|
|
311
311
|
variant: "outlined"
|
|
312
312
|
}), null, 16, ["rounded"])
|
|
313
313
|
]),
|
|
314
|
-
default:
|
|
315
|
-
|
|
316
|
-
default:
|
|
317
|
-
|
|
318
|
-
src: `https://cdn.vuetifyjs.com/docs/images/logos/vuetify-logo-v3-slim-text-${
|
|
314
|
+
default: v(() => [
|
|
315
|
+
p(ye, { class: "pt-6 pb-1 pb-sm-4 px-4 px-sm-8" }, {
|
|
316
|
+
default: v(() => [
|
|
317
|
+
p(we, {
|
|
318
|
+
src: `https://cdn.vuetifyjs.com/docs/images/logos/vuetify-logo-v3-slim-text-${l(s).name.value}.svg`,
|
|
319
319
|
class: "mb-4",
|
|
320
320
|
height: "30"
|
|
321
321
|
}, null, 8, ["src"]),
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
default:
|
|
325
|
-
|
|
322
|
+
C("div", Ie, [
|
|
323
|
+
p(ge, { class: "text-h5 mb-1 text-md-h4 font-weight-bold" }, {
|
|
324
|
+
default: v(() => [
|
|
325
|
+
j(U(l(t).lastLoginProvider() ? "Welcome Back" : "Log in to Vuetify"), 1)
|
|
326
326
|
]),
|
|
327
327
|
_: 1
|
|
328
328
|
}),
|
|
329
|
-
|
|
330
|
-
default:
|
|
331
|
-
|
|
329
|
+
p(be, { class: "text-wrap" }, {
|
|
330
|
+
default: v(() => [
|
|
331
|
+
j(" Sign in with GitHub or Discord to save your settings and unlock exclusive subscriber perks. ")
|
|
332
332
|
]),
|
|
333
333
|
_: 1
|
|
334
334
|
})
|
|
335
335
|
]),
|
|
336
|
-
|
|
336
|
+
p(J, {
|
|
337
337
|
class: "mx-auto",
|
|
338
338
|
"max-width": "300",
|
|
339
339
|
width: "100%"
|
|
340
340
|
}, {
|
|
341
|
-
default:
|
|
342
|
-
|
|
343
|
-
|
|
341
|
+
default: v(() => [
|
|
342
|
+
p($e, { class: "mb-3" }),
|
|
343
|
+
p(Ve)
|
|
344
344
|
]),
|
|
345
345
|
_: 1
|
|
346
346
|
})
|
|
@@ -349,14 +349,14 @@ const X = (o, t) => {
|
|
|
349
349
|
})
|
|
350
350
|
]),
|
|
351
351
|
_: 1
|
|
352
|
-
})) : (
|
|
352
|
+
})) : (h(), b(ke, { key: 1 }));
|
|
353
353
|
}
|
|
354
|
-
}),
|
|
354
|
+
}), De = (n) => (oe("data-v-b66944c0"), n = n(), se(), n), je = ["href", "title"], Ce = {
|
|
355
355
|
class: "text-caption text-disabled",
|
|
356
356
|
style: { position: "absolute", right: "16px" }
|
|
357
|
-
}, Oe = /* @__PURE__ */
|
|
357
|
+
}, Oe = /* @__PURE__ */ De(() => /* @__PURE__ */ C("span", { class: "d-none d-sm-inline-block" }, "Vuetify, LLC", -1)), Te = /* @__PURE__ */ $({
|
|
358
358
|
__name: "VoFooter",
|
|
359
|
-
setup(
|
|
359
|
+
setup(n) {
|
|
360
360
|
const t = [
|
|
361
361
|
{
|
|
362
362
|
title: "Vuetify Documentation",
|
|
@@ -365,7 +365,7 @@ const X = (o, t) => {
|
|
|
365
365
|
},
|
|
366
366
|
{
|
|
367
367
|
title: "Vuetify Support",
|
|
368
|
-
icon: `svg:${
|
|
368
|
+
icon: `svg:${ue}`,
|
|
369
369
|
href: "https://support.vuetifyjs.com/"
|
|
370
370
|
},
|
|
371
371
|
{
|
|
@@ -385,31 +385,31 @@ const X = (o, t) => {
|
|
|
385
385
|
},
|
|
386
386
|
{
|
|
387
387
|
title: "Vuetify Reddit",
|
|
388
|
-
icon: `svg:${
|
|
388
|
+
icon: `svg:${ce}`,
|
|
389
389
|
href: "https://reddit.com/r/vuetifyjs"
|
|
390
390
|
}
|
|
391
391
|
];
|
|
392
|
-
return (
|
|
392
|
+
return (o, i) => (h(), b(Le, {
|
|
393
393
|
class: "vo-footer",
|
|
394
394
|
theme: "dark",
|
|
395
395
|
height: "40"
|
|
396
396
|
}, {
|
|
397
|
-
default:
|
|
398
|
-
(
|
|
399
|
-
key:
|
|
400
|
-
href:
|
|
401
|
-
title:
|
|
397
|
+
default: v(() => [
|
|
398
|
+
(h(), ee(te, null, ne(t, (s) => C("a", {
|
|
399
|
+
key: s.title,
|
|
400
|
+
href: s.href,
|
|
401
|
+
title: s.title,
|
|
402
402
|
class: "d-inline-block mx-2 social-link",
|
|
403
403
|
target: "_blank",
|
|
404
404
|
rel: "noopener noreferrer"
|
|
405
405
|
}, [
|
|
406
|
-
|
|
407
|
-
icon:
|
|
408
|
-
size:
|
|
406
|
+
p(xe, {
|
|
407
|
+
icon: s.icon,
|
|
408
|
+
size: s.icon === "$vuetify" ? 24 : 16
|
|
409
409
|
}, null, 8, ["icon", "size"])
|
|
410
|
-
], 8,
|
|
411
|
-
|
|
412
|
-
|
|
410
|
+
], 8, je)), 64)),
|
|
411
|
+
C("div", Ce, [
|
|
412
|
+
j(" © 2016-" + U((/* @__PURE__ */ new Date()).getFullYear()) + " ", 1),
|
|
413
413
|
Oe
|
|
414
414
|
])
|
|
415
415
|
]),
|
|
@@ -417,129 +417,170 @@ const X = (o, t) => {
|
|
|
417
417
|
}));
|
|
418
418
|
}
|
|
419
419
|
});
|
|
420
|
-
const He = /* @__PURE__ */ X(Te, [["__scopeId", "data-v-b66944c0"]]), Ze =
|
|
421
|
-
const
|
|
422
|
-
|
|
423
|
-
window.clearTimeout(
|
|
424
|
-
!
|
|
420
|
+
const He = /* @__PURE__ */ X(Te, [["__scopeId", "data-v-b66944c0"]]), Ze = S("bins", () => {
|
|
421
|
+
const n = w(), t = R(), o = B([]), i = B(), s = D(!1), e = D(-1), m = g(() => !n.user || !i.value ? !1 : n.user.id === i.value.owner.id), f = g(() => o.value.filter((u) => u.favorite)), L = g(() => o.value.filter((u) => u.pinned));
|
|
422
|
+
N(i, () => {
|
|
423
|
+
window.clearTimeout(e.value), e.value = window.setTimeout(() => {
|
|
424
|
+
!i.value || !m.value || a(i.value, i.value.id);
|
|
425
425
|
}, 100);
|
|
426
426
|
}, { deep: !0 });
|
|
427
427
|
async function x() {
|
|
428
|
-
|
|
429
|
-
|
|
428
|
+
try {
|
|
429
|
+
s.value = !0;
|
|
430
|
+
const u = await t.get("/one/bins");
|
|
431
|
+
o.value = u.bins;
|
|
432
|
+
} catch {
|
|
433
|
+
} finally {
|
|
434
|
+
s.value = !1;
|
|
435
|
+
}
|
|
436
|
+
return o.value;
|
|
430
437
|
}
|
|
431
|
-
async function
|
|
432
|
-
|
|
433
|
-
|
|
438
|
+
async function y(u) {
|
|
439
|
+
try {
|
|
440
|
+
s.value = !0, await t.delete(`/one/bins/${u}`), o.value = o.value.filter((c) => c.id !== u);
|
|
441
|
+
} catch {
|
|
442
|
+
} finally {
|
|
443
|
+
s.value = !1;
|
|
444
|
+
}
|
|
445
|
+
return !0;
|
|
434
446
|
}
|
|
435
|
-
async function
|
|
436
|
-
|
|
437
|
-
|
|
447
|
+
async function r(u) {
|
|
448
|
+
try {
|
|
449
|
+
s.value = !0;
|
|
450
|
+
const c = await t.post("/one/bins", { bin: u });
|
|
451
|
+
return o.value.push(c.bin), i.value = c.bin, c;
|
|
452
|
+
} catch {
|
|
453
|
+
} finally {
|
|
454
|
+
s.value = !1;
|
|
455
|
+
}
|
|
456
|
+
return { bin: u };
|
|
438
457
|
}
|
|
439
|
-
async function
|
|
440
|
-
|
|
441
|
-
|
|
458
|
+
async function a(u, c) {
|
|
459
|
+
try {
|
|
460
|
+
s.value = !0;
|
|
461
|
+
const d = await t.post(`/one/bins/${c}`, { bin: u }), I = o.value.findIndex((A) => A.id === c);
|
|
462
|
+
o.value.splice(I, 1, d.bin);
|
|
463
|
+
} catch {
|
|
464
|
+
} finally {
|
|
465
|
+
s.value = !1;
|
|
466
|
+
}
|
|
467
|
+
return { bin: u };
|
|
442
468
|
}
|
|
443
|
-
async function
|
|
444
|
-
|
|
445
|
-
|
|
469
|
+
async function _(u, c) {
|
|
470
|
+
try {
|
|
471
|
+
s.value = !0;
|
|
472
|
+
const d = c ? await a(u, c) : await r(u);
|
|
473
|
+
i.value = d.bin;
|
|
474
|
+
} catch {
|
|
475
|
+
} finally {
|
|
476
|
+
s.value = !1;
|
|
477
|
+
}
|
|
478
|
+
return { bin: u };
|
|
446
479
|
}
|
|
447
|
-
async function
|
|
448
|
-
|
|
449
|
-
|
|
480
|
+
async function k(u) {
|
|
481
|
+
try {
|
|
482
|
+
s.value = !0;
|
|
483
|
+
const c = await t.get(`/one/bins/${u}`);
|
|
484
|
+
i.value = c.bin;
|
|
485
|
+
} catch {
|
|
486
|
+
} finally {
|
|
487
|
+
s.value = !1;
|
|
488
|
+
}
|
|
489
|
+
return { bin: i.value };
|
|
450
490
|
}
|
|
451
491
|
return {
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
492
|
+
isLoading: s,
|
|
493
|
+
isOwner: m,
|
|
494
|
+
pinned: L,
|
|
495
|
+
favorites: f,
|
|
496
|
+
all: o,
|
|
497
|
+
create: r,
|
|
498
|
+
delete: y,
|
|
499
|
+
current: i,
|
|
500
|
+
find: k,
|
|
460
501
|
get: x,
|
|
461
|
-
update:
|
|
462
|
-
updateOrCreate:
|
|
502
|
+
update: a,
|
|
503
|
+
updateOrCreate: _
|
|
463
504
|
};
|
|
464
|
-
}), Ke =
|
|
465
|
-
const t = new URLSearchParams(window.location.search).get("session_id"),
|
|
466
|
-
var
|
|
467
|
-
return (
|
|
468
|
-
}), m =
|
|
469
|
-
var
|
|
470
|
-
return (
|
|
505
|
+
}), Ke = S("one", () => {
|
|
506
|
+
const t = new URLSearchParams(window.location.search).get("session_id"), o = w(), i = R(), s = D(!1), e = g(() => {
|
|
507
|
+
var r;
|
|
508
|
+
return (r = o.user) == null ? void 0 : r.sponsorships.find((a) => a.platform === "stripe" && a.tierName.startsWith("sub_"));
|
|
509
|
+
}), m = g(() => {
|
|
510
|
+
var r;
|
|
511
|
+
return (r = e.value) == null ? void 0 : r.isActive;
|
|
471
512
|
});
|
|
472
513
|
ie(async () => {
|
|
473
|
-
t && await
|
|
474
|
-
}),
|
|
475
|
-
|
|
514
|
+
t && await f();
|
|
515
|
+
}), N(m, (r) => {
|
|
516
|
+
r && y();
|
|
476
517
|
});
|
|
477
|
-
async function
|
|
518
|
+
async function f() {
|
|
478
519
|
try {
|
|
479
|
-
|
|
480
|
-
const
|
|
481
|
-
|
|
520
|
+
s.value = !0;
|
|
521
|
+
const r = await i.post("/one/activate", { sessionId: t });
|
|
522
|
+
o.user = r.user;
|
|
482
523
|
} catch {
|
|
483
524
|
} finally {
|
|
484
|
-
|
|
525
|
+
s.value = !1;
|
|
485
526
|
}
|
|
486
527
|
}
|
|
487
|
-
async function
|
|
488
|
-
|
|
528
|
+
async function L() {
|
|
529
|
+
s.value = !0, window.location.href = `${i.url}/one/subscribe`;
|
|
489
530
|
}
|
|
490
|
-
async function
|
|
491
|
-
var
|
|
531
|
+
async function x() {
|
|
532
|
+
var r;
|
|
492
533
|
if (e.value)
|
|
493
534
|
try {
|
|
494
|
-
|
|
495
|
-
const
|
|
496
|
-
`/one/cancel?subscriptionId=${(
|
|
535
|
+
s.value = !0;
|
|
536
|
+
const a = await i.post(
|
|
537
|
+
`/one/cancel?subscriptionId=${(r = e.value) == null ? void 0 : r.tierName}`
|
|
497
538
|
);
|
|
498
|
-
|
|
539
|
+
o.user = a.user;
|
|
499
540
|
} catch {
|
|
500
541
|
} finally {
|
|
501
|
-
|
|
542
|
+
s.value = !1;
|
|
502
543
|
}
|
|
503
544
|
}
|
|
504
545
|
async function y() {
|
|
505
|
-
var
|
|
546
|
+
var r;
|
|
506
547
|
if (e.value)
|
|
507
548
|
try {
|
|
508
|
-
|
|
509
|
-
const
|
|
510
|
-
`/one/verify?subscriptionId=${(
|
|
549
|
+
s.value = !0;
|
|
550
|
+
const a = await i.post(
|
|
551
|
+
`/one/verify?subscriptionId=${(r = e.value) == null ? void 0 : r.tierName}`
|
|
511
552
|
);
|
|
512
|
-
|
|
553
|
+
o.user = a.user;
|
|
513
554
|
} catch {
|
|
514
555
|
} finally {
|
|
515
|
-
|
|
556
|
+
s.value = !1;
|
|
516
557
|
}
|
|
517
558
|
}
|
|
518
559
|
return {
|
|
519
|
-
activate:
|
|
520
|
-
cancel:
|
|
521
|
-
subscribe:
|
|
560
|
+
activate: f,
|
|
561
|
+
cancel: x,
|
|
562
|
+
subscribe: L,
|
|
522
563
|
verify: y,
|
|
523
564
|
subscription: e,
|
|
524
|
-
isLoading:
|
|
565
|
+
isLoading: s,
|
|
525
566
|
isSubscriber: m
|
|
526
567
|
};
|
|
527
568
|
});
|
|
528
569
|
function Qe() {
|
|
529
|
-
function
|
|
570
|
+
function n(t) {
|
|
530
571
|
t.component("VoAuthDialog", Ae), t.component("VoFooter", He);
|
|
531
572
|
}
|
|
532
|
-
return { install:
|
|
573
|
+
return { install: n };
|
|
533
574
|
}
|
|
534
|
-
function et(
|
|
535
|
-
|
|
575
|
+
function et(n) {
|
|
576
|
+
n.store.url = "http://localhost:8096";
|
|
536
577
|
}
|
|
537
578
|
export {
|
|
538
579
|
Qe as createOne,
|
|
539
580
|
et as one,
|
|
540
|
-
|
|
581
|
+
w as useAuthStore,
|
|
541
582
|
Ze as useBinsStore,
|
|
542
|
-
|
|
583
|
+
R as useHttpStore,
|
|
543
584
|
Ke as useOneStore,
|
|
544
585
|
q as useUserStore
|
|
545
586
|
};
|