fix: structure of ourline creation

This commit is contained in:
Jannat Patel
2024-03-01 13:50:00 +05:30
parent 80e9984db0
commit e863abe37c
77 changed files with 25699 additions and 12489 deletions

View File

@@ -0,0 +1 @@
<template></template>

File diff suppressed because one or more lines are too long

View File

@@ -44,44 +44,44 @@ import {
k as S, k as S,
w as se, w as se,
x as i, x as i,
A as $, F as $,
B as f, G as f,
C as t, H as t,
I as u, L as u,
G as d, J as d,
H as e, K as e,
ak as H, aj as H,
al as le, ak as le,
y as h, y as h,
Q as w, Q as w,
R as A, R as A,
F as O, I as O,
J as V, M as V,
D as I, D as I,
r as B, r as B,
U as L, U as L,
a7 as D, a7 as D,
b as Z, b as Z,
ae as ne, ae as ne,
am as P, al as P,
T as ae, T as ae,
ac as he, ac as he,
a5 as ie, a5 as ie,
an as be, am as be,
ao as ye, an as ye,
N as de, P as de,
ap as ve, ao as ve,
aq as fe, ap as fe,
ar as ge, aq as ge,
as as re, ar as re,
at as ke, as as ke,
au as xe, at as xe,
j as R, j as R,
X as $e, X as $e,
a6 as Ve, a6 as Ve,
a8 as Ce, a8 as Ce,
a9 as Se, a9 as Se,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { import {
a as M, a as M,
f as E, f as E,
@@ -89,15 +89,15 @@ import {
g as Me, g as Me,
t as we, t as we,
B as Le, B as Le,
} from "./index-Vx7mSx23.js"; } from "./index-6k1S_EjG.js";
import { _ as De } from "./CourseCard--twQpeIf.js"; import { _ as De } from "./CourseCard-RMpjQ-rq.js";
import { C as J, a as G } from "./clock-blcPmEdF.js"; import { C as J, a as G } from "./clock-q4vfplv-.js";
import { P as ue } from "./plus-pxSjkL_w.js"; import { P as ue } from "./plus-0JOmes86.js";
import { _ as je } from "./Link-Z_9V94MR.js"; import { _ as je } from "./Link-rwTAUhIL.js";
import { _ as Ae } from "./Discussions-C9dFHLpJ.js"; import { _ as Ae } from "./Discussions-3EqlwpPS.js";
import { B as Ue } from "./book-open-check-j9IEQjWh.js"; import { B as Ue } from "./book-open-check-_W-8v7wc.js";
import "./UserAvatar-yrWInUTi.js"; import "./UserAvatar-A3tEMZXD.js";
import "./star-ypmGZNF0.js"; import "./star--IkSKstT.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
@@ -258,8 +258,8 @@ import "./star-ypmGZNF0.js";
Ze = { key: 0 }, Ze = { key: 0 },
Je = { class: "mb-1.5 text-sm text-gray-600" }, Je = { class: "mb-1.5 text-sm text-gray-600" },
Ge = { class: "grid grid-cols-2 gap-2" }, Ge = { class: "grid grid-cols-2 gap-2" },
Qe = ["onClick"], Ke = ["onClick"],
Xe = { Qe = {
__name: "EvaluationModal", __name: "EvaluationModal",
props: z( props: z(
{ {
@@ -480,7 +480,7 @@ import "./star-ypmGZNF0.js";
) )
), ),
11, 11,
Qe Ke
), ),
]) ])
) )
@@ -500,12 +500,12 @@ import "./star-ypmGZNF0.js";
); );
}, },
}, },
Ke = { class: "mb-10" }, Xe = { class: "mb-10" },
We = { class: "text-lg font-semibold mb-4" }, We = { class: "text-lg font-semibold mb-4" },
et = { key: 1 }, et = { key: 1 },
tt = { class: "grid grid-cols-2 gap-4" }, tt = { class: "grid grid-cols-2 gap-4" },
st = { class: "border rounded-md p-3" }, st = { class: "border rounded-md p-3" },
at = { class: "font-medium mb-3" }, at = { class: "font-semibold mb-3" },
ot = { class: "flex items-center mb-2" }, ot = { class: "flex items-center mb-2" },
lt = { class: "ml-2" }, lt = { class: "ml-2" },
nt = { class: "flex items-center mb-2" }, nt = { class: "flex items-center mb-2" },
@@ -546,7 +546,7 @@ import "./star-ypmGZNF0.js";
w, w,
null, null,
[ [
t("div", Ke, [ t("div", Xe, [
m.isStudent m.isStudent
? (i(), ? (i(),
$( $(
@@ -692,7 +692,7 @@ import "./star-ypmGZNF0.js";
)), )),
]), ]),
d( d(
Xe, Qe,
{ {
batch: m.batch, batch: m.batch,
endDate: m.endDate, endDate: m.endDate,
@@ -1469,7 +1469,7 @@ import "./star-ypmGZNF0.js";
Zt = { key: 0 }, Zt = { key: 0 },
Jt = { key: 0 }, Jt = { key: 0 },
Gt = { class: "flex gap-2" }, Gt = { class: "flex gap-2" },
Qt = { Kt = {
__name: "BatchStudents", __name: "BatchStudents",
props: { batch: { type: String, default: null } }, props: { batch: { type: String, default: null } },
setup(m) { setup(m) {
@@ -1817,8 +1817,8 @@ import "./star-ypmGZNF0.js";
}; };
}, },
}, },
Xt = { key: 0 }, Qt = { key: 0 },
Kt = { class: "mb-8" }, Xt = { class: "mb-8" },
Wt = { class: "flex items-center justify-between mb-2" }, Wt = { class: "flex items-center justify-between mb-2" },
es = { class: "flex items-center" }, es = { class: "flex items-center" },
ts = { class: "ml-2" }, ts = { class: "ml-2" },
@@ -1853,7 +1853,7 @@ import "./star-ypmGZNF0.js";
var l; var l;
return (l = e(o).data) != null && l.length return (l = e(o).data) != null && l.length
? (i(), ? (i(),
h("div", Xt, [ h("div", Qt, [
(i(!0), (i(!0),
h( h(
w, w,
@@ -1863,7 +1863,7 @@ import "./star-ypmGZNF0.js";
(s) => ( (s) => (
i(), i(),
h("div", null, [ h("div", null, [
t("div", Kt, [ t("div", Xt, [
t("div", Wt, [ t("div", Wt, [
t("div", es, [ t("div", es, [
d( d(
@@ -2101,7 +2101,7 @@ import "./star-ypmGZNF0.js";
Ns = { class: "px-5 py-3" }, Ns = { class: "px-5 py-3" },
Ps = { key: 0, class: "mb-4 leading-6" }, Ps = { key: 0, class: "mb-4 leading-6" },
Ys = { key: 1, class: "mb-4 leading-6" }, Ys = { key: 1, class: "mb-4 leading-6" },
Xs = { Qs = {
__name: "Batch", __name: "Batch",
props: { batchName: { type: String, required: !0 } }, props: { batchName: { type: String, required: !0 } },
setup(m) { setup(m) {
@@ -2187,7 +2187,7 @@ import "./star-ypmGZNF0.js";
p.value = !0; p.value = !0;
}; };
return (a, r) => { return (a, r) => {
var N, Q, X, K; var N, K, Q, X;
const U = $e("router-link"); const U = $e("router-link");
return ((N = e(o).data) != null && N.is_moderator) || _.value return ((N = e(o).data) != null && N.is_moderator) || _.value
? (i(), ? (i(),
@@ -2200,7 +2200,7 @@ import "./star-ypmGZNF0.js";
8, 8,
["items"] ["items"]
), ),
(Q = e(o).data) != null && Q.is_moderator (K = e(o).data) != null && K.is_moderator
? (i(), ? (i(),
$( $(
e(D), e(D),
@@ -2471,7 +2471,7 @@ import "./star-ypmGZNF0.js";
? (i(), ? (i(),
h("div", Vs, [ h("div", Vs, [
d( d(
Qt, Kt,
{ {
batch: e( batch: e(
l l
@@ -2644,7 +2644,7 @@ import "./star-ypmGZNF0.js";
])) ]))
: V("", !0), : V("", !0),
])) ]))
: (X = e(o).data) != null && X.name : (Q = e(o).data) != null && Q.name
? V("", !0) ? V("", !0)
: (i(), : (i(),
h("div", Us, [ h("div", Us, [
@@ -2687,13 +2687,13 @@ import "./star-ypmGZNF0.js";
name: "Batches", name: "Batches",
params: { params: {
batchName: batchName:
(K = (X =
e( e(
l l
).data) == ).data) ==
null null
? void 0 ? void 0
: K.name, : X.name,
}, },
}, },
}, },
@@ -2752,5 +2752,5 @@ import "./star-ypmGZNF0.js";
}; };
}, },
}; };
export { Xs as default }; export { Qs as default };
//# sourceMappingURL=Batch-58vnulBX.js.map //# sourceMappingURL=Batch-VUgAxRGV.js.map

File diff suppressed because one or more lines are too long

View File

@@ -3,34 +3,34 @@ import {
j as C, j as C,
x as n, x as n,
y as h, y as h,
A as b, F as b,
B as u, G as u,
U as N, U as N,
I as s, L as s,
H as t, K as t,
a8 as Y, a8 as B,
J as d, M as d,
C as e, H as e,
G as r, J as r,
a7 as w, a7 as w,
X as D, X as D,
L as H, C as H,
k as $, k as $,
Q as S, Q as S,
R as O, R as O,
a6 as R, a6 as R,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { b as V, B as j, f as M } from "./index-Vx7mSx23.js"; import { b as V, B as j, f as M } from "./index-6k1S_EjG.js";
import { C as L, a as T } from "./clock-blcPmEdF.js"; import { C as L, a as T } from "./clock-q4vfplv-.js";
import { _ as E } from "./CourseCard--twQpeIf.js"; import { _ as E } from "./CourseCard-RMpjQ-rq.js";
import "./UserAvatar-yrWInUTi.js"; import "./UserAvatar-A3tEMZXD.js";
import "./star-ypmGZNF0.js"; import "./star--IkSKstT.js";
const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } }, const F = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
I = { key: 2, class: "text-lg font-semibold mb-3" }, q = { key: 2, class: "text-lg font-semibold mb-3" },
q = { class: "flex items-center mb-3" },
z = { class: "flex items-center mb-3" }, z = { class: "flex items-center mb-3" },
F = { class: "flex items-center" }, A = { class: "flex items-center mb-3" },
G = { G = { class: "flex items-center" },
I = {
__name: "BatchOverlay", __name: "BatchOverlay",
props: { batch: { type: Object, default: null } }, props: { batch: { type: Object, default: null } },
setup(c) { setup(c) {
@@ -54,11 +54,11 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
const _ = D("router-link"); const _ = D("router-link");
return c.batch.data return c.batch.data
? (n(), ? (n(),
h("div", A, [ h("div", F, [
c.batch.data.seat_count && i.value > 0 c.batch.data.seat_count && i.value > 0
? (n(), ? (n(),
b( b(
t(Y), t(B),
{ {
key: 0, key: 0,
theme: "green", theme: "green",
@@ -79,7 +79,7 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
: c.batch.data.seat_count && i.value <= 0 : c.batch.data.seat_count && i.value <= 0
? (n(), ? (n(),
b( b(
t(Y), t(B),
{ {
key: 1, key: 1,
theme: "red", theme: "red",
@@ -97,7 +97,7 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
? (n(), ? (n(),
h( h(
"div", "div",
I, q,
s( s(
t(V)( t(V)(
c.batch.data.amount, c.batch.data.amount,
@@ -107,7 +107,7 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
1 1
)) ))
: d("", !0), : d("", !0),
e("div", q, [ e("div", z, [
r(t(j), { r(t(j), {
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700", class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
}), }),
@@ -120,7 +120,7 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
1 1
), ),
]), ]),
e("div", z, [ e("div", A, [
r(t(L), { r(t(L), {
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700", class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
}), }),
@@ -141,7 +141,7 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
1 1
), ),
]), ]),
e("div", F, [ e("div", G, [
r(t(T), { r(t(T), {
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700", class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
}), }),
@@ -285,10 +285,10 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
}, },
}, },
J = { key: 0, class: "h-screen text-base" }, J = { key: 0, class: "h-screen text-base" },
Q = { class: "sticky top-0 z-10 border-b bg-white px-3 py-2.5 sm:px-5" }, K = { class: "sticky top-0 z-10 border-b bg-white px-3 py-2.5 sm:px-5" },
U = { class: "m-5 pb-10" }, Q = { class: "m-5 pb-10" },
X = { class: "text-3xl font-semibold" }, U = { class: "text-3xl font-semibold" },
K = { class: "my-3" }, X = { class: "my-3" },
P = { class: "flex items-center justify-between w-1/2" }, P = { class: "flex items-center justify-between w-1/2" },
W = { class: "flex items-center" }, W = { class: "flex items-center" },
Z = { key: 0 }, Z = { key: 0 },
@@ -359,18 +359,18 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
); );
}); });
return (l, m) => { return (l, m) => {
var g, B; var g, Y;
const o = D("router-link"); const o = D("router-link");
return t(a).data return t(a).data
? (n(), ? (n(),
h("div", J, [ h("div", J, [
e("header", Q, [ e("header", K, [
r(t(R), { items: _.value }, null, 8, ["items"]), r(t(R), { items: _.value }, null, 8, ["items"]),
]), ]),
e("div", U, [ e("div", Q, [
e("div", null, [ e("div", null, [
e("div", X, s(t(a).data.title), 1), e("div", U, s(t(a).data.title), 1),
e("div", K, s(t(a).data.description), 1), e("div", X, s(t(a).data.description), 1),
e("div", P, [ e("div", P, [
e("div", W, [ e("div", W, [
r(t(j), { r(t(j), {
@@ -380,12 +380,12 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
"span", "span",
null, null,
s( s(
(B = (Y =
(g = t(a).data) == null (g = t(a).data) == null
? void 0 ? void 0
: g.courses) == null : g.courses) == null
? void 0 ? void 0
: B.length : Y.length
) + ) +
" " + " " +
s(l.__("Courses")), s(l.__("Courses")),
@@ -449,7 +449,7 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
), ),
]), ]),
e("div", null, [ e("div", null, [
r(G, { batch: t(a) }, null, 8, [ r(I, { batch: t(a) }, null, 8, [
"batch", "batch",
]), ]),
]), ]),
@@ -540,4 +540,4 @@ const A = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
}, },
}; };
export { ft as default }; export { ft as default };
//# sourceMappingURL=BatchDetail-Y5ojGFjm.js.map //# sourceMappingURL=BatchDetail-gQdB1fdL.js.map

View File

@@ -2,30 +2,30 @@ import {
d as C, d as C,
x as n, x as n,
y as u, y as u,
A as g, F as g,
B as h, G as h,
U as f, U as f,
I as t, L as t,
H as o, K as o,
a8 as x, a8 as x,
J as y, M as y,
C as a, H as a,
G as i, J as i,
k as N, k as Y,
r as Y, r as j,
j as m, j as m,
a6 as j, a6 as D,
a7 as D, a7 as M,
F as $, I as $,
N as V, P as N,
Q as M, Q as V,
R as z, R as L,
a9 as A, a9 as P,
X as L, X as z,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { B as O, f as B } from "./index-Vx7mSx23.js"; import { B as O, f as B } from "./index-6k1S_EjG.js";
import { C as P, a as S } from "./clock-blcPmEdF.js"; import { C as S, a as U } from "./clock-q4vfplv-.js";
import { P as U } from "./plus-pxSjkL_w.js"; import { P as A } from "./plus-0JOmes86.js";
const E = { const E = {
class: "flex flex-col border border-gray-200 rounded-md p-4 h-full", class: "flex flex-col border border-gray-200 rounded-md p-4 h-full",
style: { "min-height": "150px" }, style: { "min-height": "150px" },
@@ -37,7 +37,7 @@ const E = {
G = { class: "flex items-center mb-3" }, G = { class: "flex items-center mb-3" },
H = { class: "flex items-center mb-3" }, H = { class: "flex items-center mb-3" },
J = { class: "flex items-center" }, J = { class: "flex items-center" },
Q = { K = {
__name: "BatchCard", __name: "BatchCard",
props: { batch: { type: Object, default: null } }, props: { batch: { type: Object, default: null } },
setup(s) { setup(s) {
@@ -103,7 +103,7 @@ const E = {
), ),
]), ]),
a("div", H, [ a("div", H, [
i(o(P), { i(o(S), {
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700", class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
}), }),
a( a(
@@ -124,7 +124,7 @@ const E = {
), ),
]), ]),
a("div", J, [ a("div", J, [
i(o(S), { i(o(U), {
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700", class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
}), }),
a( a(
@@ -141,11 +141,11 @@ const E = {
); );
}, },
}, },
X = { class: "h-screen text-base" }, Q = { class: "h-screen text-base" },
q = { X = {
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5", class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
}, },
K = { class: "flex" }, q = { class: "flex" },
W = { class: "pb-5" }, W = { class: "pb-5" },
Z = { Z = {
key: 0, key: 0,
@@ -161,7 +161,7 @@ const E = {
setup(s) { setup(s) {
var p, k; var p, k;
const d = C("$user"), const d = C("$user"),
c = N({ c = Y({
url: "lms.lms.utils.get_batches", url: "lms.lms.utils.get_batches",
cache: [ cache: [
"batches", "batches",
@@ -171,7 +171,7 @@ const E = {
], ],
auto: !0, auto: !0,
}), }),
v = Y(0), v = j(0),
_ = [ _ = [
{ {
label: "Upcoming", label: "Upcoming",
@@ -242,13 +242,13 @@ const E = {
}), }),
}), }),
(e, l) => { (e, l) => {
const w = L("router-link"); const w = z("router-link");
return ( return (
n(), n(),
u("div", X, [ u("div", Q, [
a("header", q, [ a("header", X, [
i( i(
o(j), o(D),
{ {
class: "h-7", class: "h-7",
items: [ items: [
@@ -262,13 +262,13 @@ const E = {
8, 8,
["items"] ["items"]
), ),
a("div", K, [ a("div", q, [
i( i(
o(D), o(M),
{ variant: "solid" }, { variant: "solid" },
{ {
prefix: h(() => [ prefix: h(() => [
i(o(U), { class: "h-4 w-4" }), i(o(A), { class: "h-4 w-4" }),
]), ]),
default: h(() => [ default: h(() => [
f( f(
@@ -283,7 +283,7 @@ const E = {
]), ]),
a("div", W, [ a("div", W, [
i( i(
o(A), o(P),
{ {
modelValue: v.value, modelValue: v.value,
"onUpdate:modelValue": "onUpdate:modelValue":
@@ -309,7 +309,7 @@ const E = {
[ [
r.icon r.icon
? (n(), ? (n(),
g(V(r.icon), { g(N(r.icon), {
key: 0, key: 0,
class: "h-5", class: "h-5",
})) }))
@@ -364,9 +364,9 @@ const E = {
u("div", Z, [ u("div", Z, [
(n(!0), (n(!0),
u( u(
M, V,
null, null,
z( L(
r.batches.value, r.batches.value,
(b) => ( (b) => (
n(), n(),
@@ -386,7 +386,7 @@ const E = {
h( h(
() => [ () => [
i( i(
Q, K,
{ {
batch: b, batch: b,
}, },
@@ -441,4 +441,4 @@ const E = {
}, },
}; };
export { ce as default }; export { ce as default };
//# sourceMappingURL=Batches-P9EN0hZ-.js.map //# sourceMappingURL=Batches-irCWn_Pc.js.map

View File

@@ -1,24 +1,24 @@
import { import {
x as c, x as c,
y as _, y as _,
C as s, H as s,
U as x, U as x,
I as o, L as o,
G as d, J as d,
B as L, G as L,
H as n, K as n,
a7 as P, a7 as P,
d as T, d as T,
s as j, s as j,
k as f, k as f,
a as z, a as z,
F as I, I,
J as b, M as b,
am as u, al as u,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { _ as S } from "./Link-Z_9V94MR.js"; import { _ as S } from "./Link-rwTAUhIL.js";
import { c as V } from "./index-Vx7mSx23.js"; import { c as V } from "./index-6k1S_EjG.js";
import "./plus-pxSjkL_w.js"; import "./plus-0JOmes86.js";
const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" }, const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
G = { class: "border-b px-5 py-3 font-medium" }, G = { class: "border-b px-5 py-3 font-medium" },
R = s( R = s(
@@ -72,11 +72,11 @@ const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
); );
}, },
}, },
q = { class: "text-base h-screen" }, K = { class: "text-base h-screen" },
F = { key: 0, class: "mt-10 w-1/2 mx-auto" }, q = { key: 0, class: "mt-10 w-1/2 mx-auto" },
J = { class: "text-3xl font-bold" }, J = { class: "text-3xl font-bold" },
K = { class: "text-gray-600 mt-1" }, O = { class: "text-gray-600 mt-1" },
O = { class: "border rounded-md p-5 mt-5" }, F = { class: "border rounded-md p-5 mt-5" },
W = { class: "text-xl font-semibold" }, W = { class: "text-xl font-semibold" },
Y = { class: "text-gray-600 mt-1" }, Y = { class: "text-gray-600 mt-1" },
Q = { class: "mt-5" }, Q = { class: "mt-5" },
@@ -162,7 +162,7 @@ const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
(t.gstin = e.gstin || ""), (t.gstin = e.gstin || ""),
(t.pan = e.pan || ""); (t.pan = e.pan || "");
}, },
B = f({ M = f({
url: "lms.lms.utils.get_payment_options", url: "lms.lms.utils.get_payment_options",
makeParams(e) { makeParams(e) {
return { return {
@@ -174,8 +174,8 @@ const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
}; };
}, },
}), }),
M = () => { B = () => {
B.submit( M.submit(
{}, {},
{ {
validate(e) { validate(e) {
@@ -304,14 +304,14 @@ const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
var y, h, g; var y, h, g;
return ( return (
c(), c(),
_("div", q, [ _("div", K, [
(y = n(p).data) != null && y.access && n(i).data (y = n(p).data) != null && y.access && n(i).data
? (c(), ? (c(),
_("div", F, [ _("div", q, [
s("div", J, o(e.__("Billing Details")), 1), s("div", J, o(e.__("Billing Details")), 1),
s( s(
"div", "div",
K, O,
o( o(
e.__( e.__(
"Enter the billing information to complete the payment." "Enter the billing information to complete the payment."
@@ -319,7 +319,7 @@ const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
), ),
1 1
), ),
s("div", O, [ s("div", F, [
s("div", W, o(e.__("Summary")), 1), s("div", W, o(e.__("Summary")), 1),
s( s(
"div", "div",
@@ -718,7 +718,7 @@ const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
class: "mt-8", class: "mt-8",
onClick: onClick:
a[11] || a[11] ||
(a[11] = (l) => M()), (a[11] = (l) => B()),
}, },
{ {
default: L(() => [ default: L(() => [
@@ -778,4 +778,4 @@ const E = { class: "text-base border rounded-md w-1/3 mx-auto my-32" },
}, },
}; };
export { Ne as default }; export { Ne as default };
//# sourceMappingURL=Billing-bj16mAfD.js.map //# sourceMappingURL=Billing-tJdywChZ.js.map

View File

@@ -1,25 +1,25 @@
import { _ as b } from "./UserAvatar-yrWInUTi.js"; import { _ as b } from "./UserAvatar-A3tEMZXD.js";
import { s as w, B, U as _ } from "./index-Vx7mSx23.js"; import { s as w, B as _, U as B } from "./index-6k1S_EjG.js";
import { import {
x as t, x as t,
y as o, y as o,
C as r, H as r,
Q as h, Q as h,
R as f, R as f,
A as g, F as g,
B as n, G as n,
U as v, U as v,
I as s, L as s,
H as c, K as c,
a8 as x, a8 as x,
J as a, M as a,
F as y, I as y,
V as k, V as k,
G as l, J as l,
T as d, T as d,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { S as C } from "./star-ypmGZNF0.js"; import { S } from "./star--IkSKstT.js";
const S = { const C = {
key: 0, key: 0,
class: "flex flex-col h-full rounded-md shadow-md text-base overflow-auto", class: "flex flex-col h-full rounded-md shadow-md text-base overflow-auto",
style: { "min-height": "320px" }, style: { "min-height": "320px" },
@@ -30,13 +30,13 @@ const S = {
N = { class: "flex items-center justify-between mb-2" }, N = { class: "flex items-center justify-between mb-2" },
R = { key: 0 }, R = { key: 0 },
j = { key: 1 }, j = { key: 1 },
A = { key: 2 }, I = { key: 2 },
I = { key: 3 }, L = { key: 3 },
T = { class: "text-xl font-semibold" }, M = { class: "text-xl font-semibold" },
E = { class: "short-introduction" }, T = { class: "short-introduction" },
F = { key: 0, class: "w-full bg-gray-200 rounded-full h-1 mb-2" }, A = { key: 0, class: "w-full bg-gray-200 rounded-full h-1 mb-2" },
L = { key: 1, class: "text-sm mb-4" }, E = { key: 1, class: "text-sm mb-4" },
M = { class: "flex items-center justify-between mt-auto" }, F = { class: "flex items-center justify-between mt-auto" },
O = { class: "flex avatar-group overlap" }, O = { class: "flex avatar-group overlap" },
$ = { key: 0 }, $ = { key: 0 },
D = { key: 1 }, D = { key: 1 },
@@ -50,7 +50,7 @@ const S = {
return (u, J) => return (u, J) =>
e.course.title e.course.title
? (t(), ? (t(),
o("div", S, [ o("div", C, [
r( r(
"div", "div",
{ {
@@ -115,7 +115,7 @@ const S = {
}, },
{ {
default: n(() => [ default: n(() => [
l(c(B), { l(c(_), {
class: "h-4 w-4 stroke-1.5 text-gray-700", class: "h-4 w-4 stroke-1.5 text-gray-700",
}), }),
r( r(
@@ -148,7 +148,7 @@ const S = {
}, },
{ {
default: n(() => [ default: n(() => [
l(c(_), { l(c(B), {
class: "h-4 w-4 stroke-1.5 text-gray-700", class: "h-4 w-4 stroke-1.5 text-gray-700",
}), }),
r( r(
@@ -170,7 +170,7 @@ const S = {
: a("", !0), : a("", !0),
e.course.avg_rating e.course.avg_rating
? (t(), ? (t(),
o("div", A, [ o("div", I, [
l( l(
c(d), c(d),
{ {
@@ -181,7 +181,7 @@ const S = {
}, },
{ {
default: n(() => [ default: n(() => [
l(c(C), { l(c(S), {
class: "h-4 w-4 stroke-1.5 text-gray-700", class: "h-4 w-4 stroke-1.5 text-gray-700",
}), }),
r( r(
@@ -203,7 +203,7 @@ const S = {
: a("", !0), : a("", !0),
e.course.status != "Approved" e.course.status != "Approved"
? (t(), ? (t(),
o("div", I, [ o("div", L, [
l( l(
c(x), c(x),
{ {
@@ -233,11 +233,11 @@ const S = {
])) ]))
: a("", !0), : a("", !0),
]), ]),
r("div", T, s(e.course.title), 1), r("div", M, s(e.course.title), 1),
r("div", E, s(e.course.short_introduction), 1), r("div", T, s(e.course.short_introduction), 1),
c(m) && e.course.membership c(m) && e.course.membership
? (t(), ? (t(),
o("div", F, [ o("div", A, [
r( r(
"div", "div",
{ {
@@ -260,7 +260,7 @@ const S = {
? (t(), ? (t(),
o( o(
"div", "div",
L, E,
s( s(
Math.ceil( Math.ceil(
e.course.membership.progress e.course.membership.progress
@@ -269,7 +269,7 @@ const S = {
1 1
)) ))
: a("", !0), : a("", !0),
r("div", M, [ r("div", F, [
r("div", O, [ r("div", O, [
r( r(
"div", "div",
@@ -363,4 +363,4 @@ const S = {
}, },
}; };
export { W as _ }; export { W as _ };
//# sourceMappingURL=CourseCard--twQpeIf.js.map //# sourceMappingURL=CourseCard-RMpjQ-rq.js.map

View File

@@ -1,62 +1,63 @@
var A = Object.defineProperty; var P = Object.defineProperty;
var L = Object.getOwnPropertySymbols; var L = Object.getOwnPropertySymbols;
var P = Object.prototype.hasOwnProperty, var A = Object.prototype.hasOwnProperty,
F = Object.prototype.propertyIsEnumerable; F = Object.prototype.propertyIsEnumerable;
var z = (a, i, e) => var z = (a, n, e) =>
i in a n in a
? A(a, i, { ? P(a, n, {
enumerable: !0, enumerable: !0,
configurable: !0, configurable: !0,
writable: !0, writable: !0,
value: e, value: e,
}) })
: (a[i] = e), : (a[n] = e),
B = (a, i) => { T = (a, n) => {
for (var e in i || (i = {})) P.call(i, e) && z(a, e, i[e]); for (var e in n || (n = {})) A.call(n, e) && z(a, e, n[e]);
if (L) for (var e of L(i)) F.call(i, e) && z(a, e, i[e]); if (L) for (var e of L(n)) F.call(n, e) && z(a, e, n[e]);
return a; return a;
}; };
import { import {
L as W, C as W,
d as j, d as j,
j as E, j as E,
x as l, x as o,
y as u, y as d,
J as v, M as v,
C as s, H as s,
I as r, L as r,
A as y, F as b,
B as w, G as w,
G as m, J as m,
H as t, K as t,
a7 as k, a7 as k,
k as $, k as $,
X as G, X as G,
r as q, r as q,
Q as x, Q as x,
R, R,
F as M, I as M,
aa as I, aa as I,
ab as C, ab as C,
a as J, a as J,
ac as Q, ac as K,
D as X, D as Q,
U as V, U as V,
b as T, b as U,
a6 as K, a6 as X,
T as U, T as B,
a8 as Y, a8 as Y,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { B as Z, U as D, c as S } from "./index-Vx7mSx23.js"; import { B as Z, U as D, c as S } from "./index-6k1S_EjG.js";
import { S as N } from "./star-ypmGZNF0.js"; import { S as N } from "./star--IkSKstT.js";
import { _ as ee } from "./CourseOutline-M5G5Rx7O.js"; import { _ as ee } from "./CourseOutline-AirCiy-C.js";
import { _ as O } from "./UserAvatar-yrWInUTi.js"; import { _ as O } from "./UserAvatar-A3tEMZXD.js";
import "./file-text-w2g11TfY.js";
const te = { class: "shadow rounded-md min-w-80" }, const te = { class: "shadow rounded-md min-w-80" },
se = ["src"], se = ["src"],
ae = { class: "p-5" }, ae = { class: "p-5" },
re = { key: 0, class: "text-2xl font-semibold mb-3" }, re = { key: 0, class: "text-2xl font-semibold mb-3" },
le = { class: "mt-8 mb-4 font-medium" }, oe = { class: "mt-8 mb-4 font-medium" },
oe = { class: "flex items-center mb-3" }, le = { class: "flex items-center mb-3" },
ne = { class: "ml-2" }, ne = { class: "ml-2" },
ie = { class: "flex items-center mb-3" }, ie = { class: "flex items-center mb-3" },
ue = { class: "ml-2" }, ue = { class: "ml-2" },
@@ -66,16 +67,16 @@ const te = { class: "shadow rounded-md min-w-80" },
__name: "CourseCardOverlay", __name: "CourseCardOverlay",
props: { course: { type: Object, default: null } }, props: { course: { type: Object, default: null } },
setup(a) { setup(a) {
const i = W(), const n = W(),
e = j("$user"), e = j("$user"),
_ = a, _ = a,
o = E(() => l = E(() =>
_.course.data.video_link _.course.data.video_link
? "https://www.youtube.com/embed/" + ? "https://www.youtube.com/embed/" +
_.course.data.video_link _.course.data.video_link
: null : null
); );
function f() { function p() {
if (!e.data) if (!e.data)
S({ S({
title: "Please Login", title: "Please Login",
@@ -86,18 +87,18 @@ const te = { class: "shadow rounded-md min-w-80" },
window.location.href = `/login?redirect-to=${window.location.pathname}`; window.location.href = `/login?redirect-to=${window.location.pathname}`;
}, 3e3); }, 3e3);
else { else {
const n = $({ const i = $({
url: "lms.lms.doctype.lms_enrollment.lms_enrollment.create_membership", url: "lms.lms.doctype.lms_enrollment.lms_enrollment.create_membership",
}); });
console.log(_.course), console.log(_.course),
n.submit({ course: _.course.data.name }).then(() => { i.submit({ course: _.course.data.name }).then(() => {
S({ S({
title: "Enrolled Successfully", title: "Enrolled Successfully",
icon: "check", icon: "check",
iconClasses: "text-green-600 bg-green-100", iconClasses: "text-green-600 bg-green-100",
}), }),
setTimeout(() => { setTimeout(() => {
i.push({ n.push({
name: "Lesson", name: "Lesson",
params: { params: {
courseName: _.course.data.name, courseName: _.course.data.name,
@@ -109,19 +110,20 @@ const te = { class: "shadow rounded-md min-w-80" },
}); });
} }
} }
return (n, h) => { const g = () => {};
var d, c; return (i, f) => {
const g = G("router-link"); var c, y;
const u = G("router-link");
return ( return (
l(), o(),
u("div", te, [ d("div", te, [
a.course.data.video_link a.course.data.video_link
? (l(), ? (o(),
u( d(
"iframe", "iframe",
{ {
key: 0, key: 0,
src: o.value, src: l.value,
class: "rounded-t-md min-h-56 min-w-80", class: "rounded-t-md min-h-56 min-w-80",
}, },
null, null,
@@ -131,12 +133,12 @@ const te = { class: "shadow rounded-md min-w-80" },
: v("", !0), : v("", !0),
s("div", ae, [ s("div", ae, [
a.course.data.price a.course.data.price
? (l(), u("div", re, r(a.course.data.price), 1)) ? (o(), d("div", re, r(a.course.data.price), 1))
: v("", !0), : v("", !0),
a.course.data.membership a.course.data.membership
? (l(), ? (o(),
y( b(
g, u,
{ {
key: 1, key: 1,
to: { to: {
@@ -173,7 +175,7 @@ const te = { class: "shadow rounded-md min-w-80" },
"span", "span",
null, null,
r( r(
n.__( i.__(
"Continue Learning" "Continue Learning"
) )
), ),
@@ -190,9 +192,9 @@ const te = { class: "shadow rounded-md min-w-80" },
["to"] ["to"]
)) ))
: a.course.data.paid_course : a.course.data.paid_course
? (l(), ? (o(),
y( b(
g, u,
{ {
key: 2, key: 2,
to: { to: {
@@ -218,7 +220,7 @@ const te = { class: "shadow rounded-md min-w-80" },
"span", "span",
null, null,
r( r(
n.__( i.__(
"Buy this course" "Buy this course"
) )
), ),
@@ -234,13 +236,13 @@ const te = { class: "shadow rounded-md min-w-80" },
8, 8,
["to"] ["to"]
)) ))
: (l(), : (o(),
y( b(
t(k), t(k),
{ {
key: 3, key: 3,
onClick: onClick:
h[0] || (h[0] = (b) => f()), f[0] || (f[0] = (h) => p()),
variant: "solid", variant: "solid",
class: "w-full", class: "w-full",
size: "md", size: "md",
@@ -250,39 +252,60 @@ const te = { class: "shadow rounded-md min-w-80" },
s( s(
"span", "span",
null, null,
r(n.__("Start Learning")), r(i.__("Start Learning")),
1 1
), ),
]), ]),
_: 1, _: 1,
} }
)), )),
(c = (d = t(e)) == null ? void 0 : d.data) != ((y = (c = t(e)) == null ? void 0 : c.data) !=
null && c.is_moderator null &&
? (l(), y.is_moderator) ||
y( g()
t(k), ? (o(),
b(
u,
{ {
key: 4, key: 4,
variant: "subtle", to: {
class: "w-full", name: "CreateCourse",
size: "md", params: {
courseName:
a.course.data.name,
},
},
}, },
{ {
default: w(() => [ default: w(() => [
s( m(
"span", t(k),
null, {
r(n.__("Edit")), variant: "subtle",
1 class: "w-full mt-2",
size: "md",
},
{
default: w(() => [
s(
"span",
null,
r(i.__("Edit")),
1
),
]),
_: 1,
}
), ),
]), ]),
_: 1, _: 1,
} },
8,
["to"]
)) ))
: v("", !0), : v("", !0),
s("div", le, r(n.__("This course has:")), 1), s("div", oe, r(i.__("This course has:")), 1),
s("div", oe, [ s("div", le, [
m(t(Z), { m(t(Z), {
class: "h-5 w-5 stroke-1.5 text-gray-600", class: "h-5 w-5 stroke-1.5 text-gray-600",
}), }),
@@ -291,7 +314,7 @@ const te = { class: "shadow rounded-md min-w-80" },
ne, ne,
r(a.course.data.lesson_count) + r(a.course.data.lesson_count) +
" " + " " +
r(n.__("Lessons")), r(i.__("Lessons")),
1 1
), ),
]), ]),
@@ -306,7 +329,7 @@ const te = { class: "shadow rounded-md min-w-80" },
a.course.data.enrollment_count_formatted a.course.data.enrollment_count_formatted
) + ) +
" " + " " +
r(n.__("Enrolled Students")), r(i.__("Enrolled Students")),
1 1
), ),
]), ]),
@@ -319,7 +342,7 @@ const te = { class: "shadow rounded-md min-w-80" },
ce, ce,
r(a.course.data.avg_rating) + r(a.course.data.avg_rating) +
" " + " " +
r(n.__("Rating")), r(i.__("Rating")),
1 1
), ),
]), ]),
@@ -337,33 +360,33 @@ const te = { class: "shadow rounded-md min-w-80" },
modelValue: { type: Number, default: 0 }, modelValue: { type: Number, default: 0 },
}, },
emits: ["update:modelValue"], emits: ["update:modelValue"],
setup(a, { emit: i }) { setup(a, { emit: n }) {
const e = a, const e = a,
_ = i; _ = n;
let o = q(e.modelValue), let l = q(e.modelValue),
f = (h) => { p = (i) => {
_("update:modelValue", h); _("update:modelValue", i);
}; };
function n(h) { function g(i) {
f(h), (o.value = h); p(i), (l.value = i);
} }
return (h, g) => ( return (i, f) => (
l(), o(),
u("div", _e, [ d("div", _e, [
(l(), (o(),
u( d(
x, x,
null, null,
R(5, (d) => R(5, (u) =>
s("div", null, [ s("div", null, [
m( m(
t(N), t(N),
{ {
class: M([ class: M([
d <= t(o) ? "fill-orange-500" : "", u <= t(l) ? "fill-orange-500" : "",
"h-6 w-6 fill-gray-400 text-gray-50 mr-1 cursor-pointer", "h-6 w-6 fill-gray-400 text-gray-50 mr-1 cursor-pointer",
]), ]),
onClick: (c) => n(d), onClick: (c) => g(u),
}, },
null, null,
8, 8,
@@ -399,64 +422,64 @@ const te = { class: "shadow rounded-md min-w-80" },
"update:hasReviewed", "update:hasReviewed",
], ],
setup(a) { setup(a) {
const i = C(a, "modelValue"), const n = C(a, "modelValue"),
e = C(a, "reloadReviews"), e = C(a, "reloadReviews"),
_ = C(a, "hasReviewed"); _ = C(a, "hasReviewed");
let o = J({ review: "", rating: 0 }); let l = J({ review: "", rating: 0 });
const f = a, const p = a,
n = $({ g = $({
url: "frappe.client.insert", url: "frappe.client.insert",
makeParams(g) { makeParams(f) {
return { return {
doc: B( doc: T(
{ {
doctype: "LMS Course Review", doctype: "LMS Course Review",
course: f.courseName, course: p.courseName,
}, },
g f
), ),
}; };
}, },
}); });
function h(g) { function i(f) {
(o.rating = o.rating / 5), (l.rating = l.rating / 5),
n.submit(o, { g.submit(l, {
validate() { validate() {
if (!o.rating) return "Please enter a rating."; if (!l.rating) return "Please enter a rating.";
}, },
onSuccess() { onSuccess() {
e.value.reload(), _.value.reload(); e.value.reload(), _.value.reload();
}, },
onError(d) { onError(u) {
var c; var c;
S({ S({
text: text:
((c = d.messages) == null ((c = u.messages) == null
? void 0 ? void 0
: c[0]) || d, : c[0]) || u,
icon: "x", icon: "x",
iconClasses: "text-red-600 bg-red-300", iconClasses: "text-red-600 bg-red-300",
}); });
}, },
}), }),
g(); f();
} }
return (g, d) => ( return (f, u) => (
l(), o(),
y( b(
t(X), t(Q),
{ {
modelValue: i.value, modelValue: n.value,
"onUpdate:modelValue": "onUpdate:modelValue":
d[2] || (d[2] = (c) => (i.value = c)), u[2] || (u[2] = (c) => (n.value = c)),
options: { options: {
title: g.__("Write a Review"), title: f.__("Write a Review"),
size: "xl", size: "xl",
actions: [ actions: [
{ {
label: "Submit", label: "Submit",
variant: "solid", variant: "solid",
onClick: (c) => h(c), onClick: (c) => i(c),
}, },
], ],
}, },
@@ -465,15 +488,15 @@ const te = { class: "shadow rounded-md min-w-80" },
"body-content": w(() => [ "body-content": w(() => [
s("div", ge, [ s("div", ge, [
s("div", null, [ s("div", null, [
s("div", fe, r(g.__("Rating")), 1), s("div", fe, r(f.__("Rating")), 1),
m( m(
ve, ve,
{ {
modelValue: t(o).rating, modelValue: t(l).rating,
"onUpdate:modelValue": "onUpdate:modelValue":
d[0] || u[0] ||
(d[0] = (c) => (u[0] = (c) =>
(t(o).rating = c)), (t(l).rating = c)),
}, },
null, null,
8, 8,
@@ -481,18 +504,18 @@ const te = { class: "shadow rounded-md min-w-80" },
), ),
]), ]),
s("div", null, [ s("div", null, [
s("div", he, r(g.__("Review")), 1), s("div", he, r(f.__("Review")), 1),
m( m(
t(Q), t(K),
{ {
type: "text", type: "text",
size: "md", size: "md",
rows: "5", rows: "5",
modelValue: t(o).review, modelValue: t(l).review,
"onUpdate:modelValue": "onUpdate:modelValue":
d[1] || u[1] ||
(d[1] = (c) => (u[1] = (c) =>
(t(o).review = c)), (t(l).review = c)),
}, },
null, null,
8, 8,
@@ -525,54 +548,54 @@ const te = { class: "shadow rounded-md min-w-80" },
membership: { type: Object, required: !1 }, membership: { type: Object, required: !1 },
}, },
setup(a) { setup(a) {
var h, g, d; var i, f, u;
const i = j("$user"), const n = j("$user"),
e = a, e = a,
_ = $({ _ = $({
url: "frappe.client.get_count", url: "frappe.client.get_count",
cache: [ cache: [
"eligible_to_review", "eligible_to_review",
e.courseName, e.courseName,
(h = e.membership) == null ? void 0 : h.member, (i = e.membership) == null ? void 0 : i.member,
], ],
params: { params: {
doctype: "LMS Course Review", doctype: "LMS Course Review",
filters: { filters: {
course: e.courseName, course: e.courseName,
owner: owner:
(g = e.membership) == null ? void 0 : g.member, (f = e.membership) == null ? void 0 : f.member,
}, },
}, },
auto: !!((d = i.data) != null && d.name), auto: !!((u = n.data) != null && u.name),
}), }),
o = $({ l = $({
url: "lms.lms.utils.get_reviews", url: "lms.lms.utils.get_reviews",
cache: ["course_reviews", e.courseName], cache: ["course_reviews", e.courseName],
params: { course: e.courseName }, params: { course: e.courseName },
auto: !0, auto: !0,
}), }),
f = q(!1); p = q(!1);
function n() { function g() {
f.value = !0; p.value = !0;
} }
return (c, b) => ( return (c, y) => (
l(), o(),
u( d(
x, x,
null, null,
[ [
t(o).data t(l).data
? (l(), ? (o(),
u("div", we, [ d("div", we, [
a.membership && !t(_).data a.membership && !t(_).data
? (l(), ? (o(),
y( b(
t(k), t(k),
{ {
key: 0, key: 0,
onClick: onClick:
b[0] || y[0] ||
(b[0] = (p) => n()), (y[0] = (h) => g()),
class: "float-right", class: "float-right",
}, },
{ {
@@ -600,27 +623,27 @@ const te = { class: "shadow rounded-md min-w-80" },
" " + " " +
r(c.__("ratings and ")) + r(c.__("ratings and ")) +
" " + " " +
r(t(o).data.length) + r(t(l).data.length) +
" " + " " +
r(c.__("reviews")), r(c.__("reviews")),
1 1
), ),
]), ]),
s("div", be, [ s("div", be, [
(l(!0), (o(!0),
u( d(
x, x,
null, null,
R( R(
t(o).data, t(l).data,
(p, Je) => ( (h, Je) => (
l(), o(),
u("div", null, [ d("div", null, [
s("div", xe, [ s("div", xe, [
m( m(
O, O,
{ {
user: p.owner_details, user: h.owner_details,
size: "2xl", size: "2xl",
}, },
null, null,
@@ -632,7 +655,7 @@ const te = { class: "shadow rounded-md min-w-80" },
"span", "span",
$e, $e,
r( r(
p h
.owner_details .owner_details
.full_name .full_name
), ),
@@ -642,13 +665,13 @@ const te = { class: "shadow rounded-md min-w-80" },
"span", "span",
null, null,
r( r(
p.creation h.creation
), ),
1 1
), ),
s("div", Re, [ s("div", Re, [
(l(), (o(),
u( d(
x, x,
null, null,
R( R(
@@ -666,7 +689,7 @@ const te = { class: "shadow rounded-md min-w-80" },
"h-5 w-5 text-gray-100 bg-gray-200 rounded-sm mr-2", "h-5 w-5 text-gray-100 bg-gray-200 rounded-sm mr-2",
H <= H <=
Math.ceil( Math.ceil(
p.rating h.rating
) )
? "fill-orange-500" ? "fill-orange-500"
: "fill-gray-600", : "fill-gray-600",
@@ -685,12 +708,12 @@ const te = { class: "shadow rounded-md min-w-80" },
]), ]),
]), ]),
]), ]),
p.review h.review
? (l(), ? (o(),
u( d(
"div", "div",
Ne, Ne,
r(p.review), r(h.review),
1 1
)) ))
: v("", !0), : v("", !0),
@@ -705,19 +728,19 @@ const te = { class: "shadow rounded-md min-w-80" },
m( m(
pe, pe,
{ {
modelValue: f.value, modelValue: p.value,
"onUpdate:modelValue": "onUpdate:modelValue":
b[1] || (b[1] = (p) => (f.value = p)), y[1] || (y[1] = (h) => (p.value = h)),
reloadReviews: t(o), reloadReviews: t(l),
"onUpdate:reloadReviews": "onUpdate:reloadReviews":
b[2] || y[2] ||
(b[2] = (p) => (y[2] = (h) =>
T(o) ? (o.value = p) : null), U(l) ? (l.value = h) : null),
hasReviewed: t(_), hasReviewed: t(_),
"onUpdate:hasReviewed": "onUpdate:hasReviewed":
b[3] || y[3] ||
(b[3] = (p) => (y[3] = (h) =>
T(_) ? (_.value = p) : null), U(_) ? (_.value = h) : null),
courseName: a.courseName, courseName: a.courseName,
}, },
null, null,
@@ -742,64 +765,64 @@ const te = { class: "shadow rounded-md min-w-80" },
Me = { class: "m-5" }, Me = { class: "m-5" },
Le = { class: "flex justify-between w-full" }, Le = { class: "flex justify-between w-full" },
ze = { class: "w-2/3" }, ze = { class: "w-2/3" },
Be = { class: "text-3xl font-semibold" }, Te = { class: "text-3xl font-semibold" },
Te = { class: "my-3 leading-6" }, Ue = { class: "my-3 leading-6" },
Ue = { class: "flex items-center" }, Be = { class: "flex items-center" },
je = { class: "ml-1" }, je = { class: "ml-1" },
Ee = { key: 1, class: "mx-3" }, Ee = { key: 1, class: "mx-3" },
qe = { class: "ml-1" }, qe = { class: "ml-1" },
De = { key: 3, class: "mx-3" }, De = { key: 3, class: "mx-3" },
Oe = { class: "flex items-center" }, Oe = { class: "flex items-center" },
He = { key: 0 }, He = { key: 0 },
Ae = { key: 1 }, Pe = { key: 1 },
Pe = { key: 2 }, Ae = { key: 2 },
Fe = { class: "flex mt-3 mb-4 w-fit" }, Fe = { class: "flex mt-3 mb-4 w-fit" },
We = ["innerHTML"], We = ["innerHTML"],
Ge = { class: "mt-10" }, Ge = { class: "mt-10" },
Ie = { class: "" }, Ie = { class: "" },
tt = { st = {
__name: "CourseDetail", __name: "CourseDetail",
props: { courseName: { type: String, required: !0 } }, props: { courseName: { type: String, required: !0 } },
setup(a) { setup(a) {
const i = a, const n = a,
e = $({ e = $({
url: "lms.lms.utils.get_course_details", url: "lms.lms.utils.get_course_details",
cache: ["course", i.courseName], cache: ["course", n.courseName],
params: { course: i.courseName }, params: { course: n.courseName },
auto: !0, auto: !0,
}), }),
_ = E(() => { _ = E(() => {
var f, n; var p, g;
let o = [ let l = [
{ label: "All Courses", route: { name: "Courses" } }, { label: "All Courses", route: { name: "Courses" } },
]; ];
return ( return (
o.push({ l.push({
label: label:
(f = e == null ? void 0 : e.data) == null (p = e == null ? void 0 : e.data) == null
? void 0 ? void 0
: f.title, : p.title,
route: { route: {
name: "CourseDetail", name: "CourseDetail",
params: { params: {
course: course:
(n = e == null ? void 0 : e.data) == (g = e == null ? void 0 : e.data) ==
null null
? void 0 ? void 0
: n.name, : g.name,
}, },
}, },
}), }),
o l
); );
}); });
return (o, f) => return (l, p) =>
t(e).data t(e).data
? (l(), ? (o(),
u("div", Ve, [ d("div", Ve, [
s("header", Se, [ s("header", Se, [
m( m(
t(K), t(X),
{ class: "h-7", items: _.value }, { class: "h-7", items: _.value },
null, null,
8, 8,
@@ -809,21 +832,21 @@ const te = { class: "shadow rounded-md min-w-80" },
s("div", Me, [ s("div", Me, [
s("div", Le, [ s("div", Le, [
s("div", ze, [ s("div", ze, [
s("div", Be, r(t(e).data.title), 1), s("div", Te, r(t(e).data.title), 1),
s( s(
"div", "div",
Te, Ue,
r(t(e).data.short_introduction), r(t(e).data.short_introduction),
1 1
), ),
s("div", Ue, [ s("div", Be, [
t(e).data.avg_rating t(e).data.avg_rating
? (l(), ? (o(),
y( b(
t(U), t(B),
{ {
key: 0, key: 0,
text: o.__( text: l.__(
"Average Rating" "Average Rating"
), ),
class: "flex items-center", class: "flex items-center",
@@ -851,15 +874,15 @@ const te = { class: "shadow rounded-md min-w-80" },
)) ))
: v("", !0), : v("", !0),
t(e).data.avg_rating t(e).data.avg_rating
? (l(), u("span", Ee, "·")) ? (o(), d("span", Ee, "·"))
: v("", !0), : v("", !0),
t(e).data.enrollment_count t(e).data.enrollment_count
? (l(), ? (o(),
y( b(
t(U), t(B),
{ {
key: 2, key: 2,
text: o.__( text: l.__(
"Enrolled Students" "Enrolled Students"
), ),
class: "flex items-center", class: "flex items-center",
@@ -887,7 +910,7 @@ const te = { class: "shadow rounded-md min-w-80" },
)) ))
: v("", !0), : v("", !0),
t(e).data.enrollment_count t(e).data.enrollment_count
? (l(), u("span", De, "·")) ? (o(), d("span", De, "·"))
: v("", !0), : v("", !0),
s("div", Oe, [ s("div", Oe, [
s( s(
@@ -905,19 +928,19 @@ const te = { class: "shadow rounded-md min-w-80" },
]), ]),
}, },
[ [
(l(!0), (o(!0),
u( d(
x, x,
null, null,
R( R(
t(e).data t(e).data
.instructors, .instructors,
(n) => ( (g) => (
l(), o(),
y( b(
O, O,
{ {
user: n, user: g,
}, },
null, null,
8, 8,
@@ -932,8 +955,8 @@ const te = { class: "shadow rounded-md min-w-80" },
), ),
t(e).data.instructors.length == t(e).data.instructors.length ==
1 1
? (l(), ? (o(),
u( d(
"span", "span",
He, He,
r( r(
@@ -946,10 +969,10 @@ const te = { class: "shadow rounded-md min-w-80" },
: v("", !0), : v("", !0),
t(e).data.instructors.length == t(e).data.instructors.length ==
2 2
? (l(), ? (o(),
u( d(
"span", "span",
Ae, Pe,
r( r(
t(e).data t(e).data
.instructors[0] .instructors[0]
@@ -965,10 +988,10 @@ const te = { class: "shadow rounded-md min-w-80" },
)) ))
: v("", !0), : v("", !0),
t(e).data.instructors.length > 2 t(e).data.instructors.length > 2
? (l(), ? (o(),
u( d(
"span", "span",
Pe, Ae,
r( r(
t(e).data t(e).data
.instructors[0] .instructors[0]
@@ -988,15 +1011,15 @@ const te = { class: "shadow rounded-md min-w-80" },
]), ]),
]), ]),
s("div", Fe, [ s("div", Fe, [
(l(!0), (o(!0),
u( d(
x, x,
null, null,
R( R(
t(e).data.tags, t(e).data.tags,
(n) => ( (g) => (
l(), o(),
y( b(
t(Y), t(Y),
{ {
theme: "gray", theme: "gray",
@@ -1008,7 +1031,7 @@ const te = { class: "shadow rounded-md min-w-80" },
() => [ () => [
V( V(
r( r(
n g
), ),
1 1
), ),
@@ -1048,8 +1071,8 @@ const te = { class: "shadow rounded-md min-w-80" },
), ),
]), ]),
t(e).data.avg_rating t(e).data.avg_rating
? (l(), ? (o(),
y( b(
Ce, Ce,
{ {
key: 0, key: 0,
@@ -1083,5 +1106,5 @@ const te = { class: "shadow rounded-md min-w-80" },
: v("", !0); : v("", !0);
}, },
}; };
export { tt as default }; export { st as default };
//# sourceMappingURL=CourseDetail-MceVHLH3.js.map //# sourceMappingURL=CourseDetail-01NBXo60.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,32 +1,33 @@
import { import {
af as N, af as M,
r as b, r as B,
k as B, k as H,
x as e, x as t,
y as n, y as n,
C as r, K as e,
I as l, H as r,
J as p, L as l,
Q as k, M as k,
R as f, Q as x,
A as i, R as g,
B as u, F as u,
G as m, G as i,
H as t, J as d,
F as x, I as v,
ah as M, ag as I,
U as H, U as O,
ai as I, ah as R,
aj as V, ai as V,
X as j, X as F,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { a as d } from "./index-Vx7mSx23.js"; import { a as h } from "./index-6k1S_EjG.js";
import { F as L } from "./file-text-w2g11TfY.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
* This source code is licensed under the ISC license. * This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree. * See the LICENSE file in the root directory of this source tree.
*/ const O = d("ChevronRightIcon", [ */ const q = h("ChevronRightIcon", [
["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }], ["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }],
]); ]);
/** /**
@@ -34,25 +35,7 @@ import { a as d } from "./index-Vx7mSx23.js";
* *
* This source code is licensed under the ISC license. * This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree. * See the LICENSE file in the root directory of this source tree.
*/ const R = d("FileTextIcon", [ */ const j = h("HelpCircleIcon", [
[
"path",
{
d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",
key: "1nnpy2",
},
],
["polyline", { points: "14 2 14 8 20 8", key: "1ew0cm" }],
["line", { x1: "16", x2: "8", y1: "13", y2: "13", key: "14keom" }],
["line", { x1: "16", x2: "8", y1: "17", y2: "17", key: "17nazh" }],
["line", { x1: "10", x2: "8", y1: "9", y2: "9", key: "1a5vjj" }],
]);
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const z = d("HelpCircleIcon", [
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }], ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }], ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
["path", { d: "M12 17h.01", key: "p32p05" }], ["path", { d: "M12 17h.01", key: "p32p05" }],
@@ -62,7 +45,7 @@ import { a as d } from "./index-Vx7mSx23.js";
* *
* This source code is licensed under the ISC license. * This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree. * See the LICENSE file in the root directory of this source tree.
*/ const F = d("MonitorPlayIcon", [ */ const z = h("MonitorPlayIcon", [
["path", { d: "m10 7 5 3-5 3Z", key: "29ljg6" }], ["path", { d: "m10 7 5 3-5 3Z", key: "29ljg6" }],
[ [
"rect", "rect",
@@ -78,14 +61,14 @@ import { a as d } from "./index-Vx7mSx23.js";
["path", { d: "M12 17v4", key: "1riwvh" }], ["path", { d: "M12 17v4", key: "1riwvh" }],
["path", { d: "M8 21h8", key: "1ev6f3" }], ["path", { d: "M8 21h8", key: "1ev6f3" }],
]), ]),
L = { class: "text-base" }, P = { class: "text-base" },
q = { key: 0, class: "flex justify-between mb-4" }, Q = { key: 0, class: "flex justify-between mb-4" },
T = { class: "text-2xl font-semibold" }, S = { class: "text-2xl font-semibold" },
P = { class: "text-base text-left font-medium" }, T = { class: "text-base text-left font-medium" },
Q = { class: "ml-auto text-sm" }, D = { class: "ml-auto text-sm" },
S = { class: "outline-lesson py-2 pl-8" }, E = { class: "outline-lesson py-2 pl-8" },
A = { class: "flex items-center text-sm" }, G = { class: "flex items-center text-sm" },
J = { Z = {
__name: "CourseOutline", __name: "CourseOutline",
props: { props: {
courseName: { type: String, required: !0 }, courseName: { type: String, required: !0 },
@@ -93,77 +76,81 @@ import { a as d } from "./index-Vx7mSx23.js";
showHeader: { type: Boolean, default: !1 }, showHeader: { type: Boolean, default: !1 },
}, },
setup(c) { setup(c) {
const _ = N(); const w = M();
b(!0); B(!0);
const y = c, const p = c,
v = B({ m = H({
url: "lms.lms.utils.get_course_outline", url: "lms.lms.utils.get_course_outline",
cache: ["course_outline", y.courseName], cache: ["course_outline", p.courseName],
params: { course: y.courseName }, params: { course: p.courseName },
auto: !0, auto: !0,
}), }),
w = (a) => a == _.params.chapterNumber || a == 1; C = (a) => a == w.params.chapterNumber || a == 1;
return (a, D) => { return (a, J) => {
const g = j("router-link"); var y, f;
const N = F("router-link");
return ( return (
e(), t(),
n("div", L, [ n("div", P, [
c.showHeader c.showHeader && (y = e(m).data) != null && y.length
? (e(), ? (t(),
n("div", q, [ n("div", Q, [
r("div", T, l(a.__("Course Content")), 1), r("div", S, l(a.__("Course Content")), 1),
])) ]))
: p("", !0), : k("", !0),
r( r(
"div", "div",
{ {
class: x({ class: v({
"shadow rounded-md pt-2 px-2": "shadow rounded-md pt-2 px-2":
c.showOutline, c.showOutline &&
((f = e(m).data) == null
? void 0
: f.length),
}), }),
}, },
[ [
(e(!0), (t(!0),
n( n(
k, x,
null, null,
f( g(
t(v).data, e(m).data,
(o, C) => ( (o, b) => (
e(), t(),
i( u(
t(V), e(V),
{ {
key: o.name, key: o.name,
defaultOpen: w(o.idx), defaultOpen: C(o.idx),
}, },
{ {
default: u( default: i(
({ open: h }) => [ ({ open: _ }) => [
m( d(
t(M), e(I),
{ {
ref_for: !0, ref_for: !0,
ref: "", ref: "",
class: "flex w-full px-2 py-4", class: "flex w-full px-2 py-4",
}, },
{ {
default: u( default: i(
() => [ () => [
m( d(
t( e(
O q
), ),
{ {
class: x( class: v(
[ [
{ {
"rotate-90 transform duration-200": "rotate-90 transform duration-200":
h, _,
"duration-200": "duration-200":
!h, !_,
open: open:
C == b ==
1, 1,
}, },
"h-4 w-4 text-gray-900 stroke-1 mr-2", "h-4 w-4 text-gray-900 stroke-1 mr-2",
@@ -178,7 +165,7 @@ import { a as d } from "./index-Vx7mSx23.js";
), ),
r( r(
"div", "div",
P, T,
l( l(
o.title o.title
), ),
@@ -186,7 +173,7 @@ import { a as d } from "./index-Vx7mSx23.js";
), ),
r( r(
"div", "div",
Q, D,
l( l(
o o
.lessons .lessons
@@ -213,26 +200,26 @@ import { a as d } from "./index-Vx7mSx23.js";
}, },
1536 1536
), ),
m( d(
t(I), e(R),
{ {
class: "pb-2", class: "pb-2",
}, },
{ {
default: u( default: i(
() => [ () => [
(e( (t(
!0 !0
), ),
n( n(
k, x,
null, null,
f( g(
o.lessons, o.lessons,
( (
s s
) => ( ) => (
e(), t(),
n( n(
"div", "div",
{ {
@@ -241,10 +228,10 @@ import { a as d } from "./index-Vx7mSx23.js";
[ [
r( r(
"div", "div",
S, E,
[ [
m( d(
g, N,
{ {
to: { to: {
name: "Lesson", name: "Lesson",
@@ -264,18 +251,18 @@ import { a as d } from "./index-Vx7mSx23.js";
}, },
{ {
default: default:
u( i(
() => [ () => [
r( r(
"div", "div",
A, G,
[ [
s.icon === s.icon ===
"icon-youtube" "icon-youtube"
? (e(), ? (t(),
i( u(
t( e(
F z
), ),
{ {
key: 0, key: 0,
@@ -284,10 +271,10 @@ import { a as d } from "./index-Vx7mSx23.js";
)) ))
: s.icon === : s.icon ===
"icon-quiz" "icon-quiz"
? (e(), ? (t(),
i( u(
t( e(
z j
), ),
{ {
key: 1, key: 1,
@@ -296,21 +283,21 @@ import { a as d } from "./index-Vx7mSx23.js";
)) ))
: s.icon === : s.icon ===
"icon-list" "icon-list"
? (e(), ? (t(),
i( u(
t( e(
R L
), ),
{ {
key: 2, key: 2,
class: "h-4 w-4 text-gray-900 stroke-1 mr-2", class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
} }
)) ))
: p( : k(
"", "",
!0 !0
), ),
H( O(
" " + " " +
l( l(
s.title s.title
@@ -361,5 +348,5 @@ import { a as d } from "./index-Vx7mSx23.js";
}; };
}, },
}; };
export { O as C, J as _ }; export { q as C, Z as _ };
//# sourceMappingURL=CourseOutline-M5G5Rx7O.js.map //# sourceMappingURL=CourseOutline-AirCiy-C.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,56 +1,56 @@
import { import {
d as k, d as N,
a5 as w, a5 as k,
r as L, r as w,
j as r, j as r,
y as c, y as u,
H as n, K as n,
C as d, H as d,
G as _, J as m,
A as p, G as c,
B as u, F as p,
J as f, M as f,
X as L,
x as l, x as l,
a6 as V, a6 as V,
U as g, U as g,
I as h, L as h,
a7 as $, a7 as $,
F as B, I as j,
N as j, P as B,
a8 as U, a8 as U,
Q as D, Q as D,
R, R as P,
a9 as z, a9 as R,
X as A, } from "./frappe-ui-LT4YqXtx.js";
} from "./frappe-ui-20hnMCM8.js"; import { _ as z } from "./CourseCard-RMpjQ-rq.js";
import { _ as E } from "./CourseCard--twQpeIf.js"; import { P as E } from "./plus-0JOmes86.js";
import { P as F } from "./plus-pxSjkL_w.js"; import "./UserAvatar-A3tEMZXD.js";
import "./UserAvatar-yrWInUTi.js"; import "./index-6k1S_EjG.js";
import "./index-Vx7mSx23.js"; import "./star--IkSKstT.js";
import "./star-ypmGZNF0.js"; const F = { class: "h-screen" },
const I = { class: "h-screen" }, I = { key: 0 },
P = { key: 0 }, M = {
S = {
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5", class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
}, },
G = { class: "flex" }, S = { class: "flex" },
H = { class: "" }, A = { class: "" },
J = { key: 0, class: "p-5 text-base text-gray-700" }, G = { key: 0, class: "p-5 text-base text-gray-700" },
M = { H = {
key: 0, key: 0,
class: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-5 my-5 mx-5", class: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-5 my-5 mx-5",
}, },
Q = { J = {
key: 1, key: 1,
class: "grid flex-1 place-items-center text-xl font-medium text-gray-500", class: "grid flex-1 place-items-center text-xl font-medium text-gray-500",
}, },
T = { class: "flex flex-col items-center justify-center mt-4" }, K = { class: "flex flex-col items-center justify-center mt-4" },
ee = { Z = {
__name: "Courses", __name: "Courses",
setup(X) { setup(Q) {
var b, y, x; var b, y, x;
const i = k("$user"), const i = N("$user"),
a = w({ a = k({
type: "list", type: "list",
doctype: "LMS Course", doctype: "LMS Course",
cache: [ cache: [
@@ -62,8 +62,8 @@ const I = { class: "h-screen" },
url: "lms.lms.utils.get_courses", url: "lms.lms.utils.get_courses",
auto: !0, auto: !0,
}), }),
v = L(0), v = w(0),
m = [ _ = [
{ {
label: "Live", label: "Live",
courses: r(() => { courses: r(() => {
@@ -98,7 +98,7 @@ const I = { class: "h-screen" },
]; ];
return ( return (
i.data && i.data &&
(m.push({ (_.push({
label: "Enrolled", label: "Enrolled",
courses: r(() => { courses: r(() => {
var e; var e;
@@ -118,7 +118,7 @@ const I = { class: "h-screen" },
((x = (y = a.data) == null ? void 0 : y.created) != ((x = (y = a.data) == null ? void 0 : y.created) !=
null && null &&
x.length)) && x.length)) &&
m.push({ _.push({
label: "Created", label: "Created",
courses: r(() => { courses: r(() => {
var e; var e;
@@ -137,7 +137,7 @@ const I = { class: "h-screen" },
}), }),
}), }),
i.data.is_moderator && i.data.is_moderator &&
m.push({ _.push({
label: "Under Review", label: "Under Review",
courses: r(() => { courses: r(() => {
var e; var e;
@@ -156,16 +156,15 @@ const I = { class: "h-screen" },
}), }),
})), })),
(e, s) => { (e, s) => {
var C; const C = L("router-link");
const N = A("router-link");
return ( return (
l(), l(),
c("div", I, [ u("div", F, [
n(a).data n(a).data
? (l(), ? (l(),
c("div", P, [ u("div", I, [
d("header", S, [ d("header", M, [
_( m(
n(V), n(V),
{ {
class: "h-7", class: "h-7",
@@ -184,61 +183,88 @@ const I = { class: "h-screen" },
8, 8,
["items"] ["items"]
), ),
d("div", G, [ d("div", S, [
(C = n(i).data) != null && m(
C.is_moderator C,
? (l(), {
p( to: {
n($), name: "CreateCourse",
{ params: {
key: 0, courseName:
variant: "new",
"solid",
}, },
{ },
prefix: u( },
() => [ {
_( default: c(() => {
var t;
return [
(t =
n(
i
).data) !=
null &&
t.is_moderator
? (l(),
p(
n( n(
F $
), ),
{ {
class: "h-4 w-4", key: 0,
} variant:
), "solid",
] },
), {
default: u( prefix: c(
() => [ () => [
g( m(
" " + n(
h( E
e.__( ),
"New Course" {
) class: "h-4 w-4",
}
),
]
), ),
1 default:
), c(
] () => [
), g(
_: 1, " " +
} h(
)) e.__(
: f("", !0), "New Course"
)
),
1
),
]
),
_: 1,
}
))
: f("", !0),
];
}),
_: 1,
}
),
]), ]),
]), ]),
d("div", H, [ d("div", A, [
n(a).data.length == 0 && n(a).data.length == 0 &&
n(a).list.loading n(a).list.loading
? (l(), ? (l(),
c( u(
"div", "div",
J, G,
" Loading Courses... " " Loading Courses... "
)) ))
: (l(), : (l(),
p( p(
n(z), n(R),
{ {
key: 1, key: 1,
modelValue: v.value, modelValue: v.value,
@@ -247,12 +273,12 @@ const I = { class: "h-screen" },
(s[0] = (t) => (s[0] = (t) =>
(v.value = (v.value =
t)), t)),
tabs: m, tabs: _,
tablistClass: tablistClass:
"overflow-x-visible", "overflow-x-visible",
}, },
{ {
tab: u( tab: c(
({ ({
tab: t, tab: t,
selected: o, selected: o,
@@ -264,7 +290,7 @@ const I = { class: "h-screen" },
d( d(
"button", "button",
{ {
class: B( class: j(
[ [
"group -mb-px flex items-center gap-2 overflow-hidden border-b border-transparent py-2.5 text-base text-gray-600 duration-300 ease-in-out hover:border-gray-400 hover:text-gray-900", "group -mb-px flex items-center gap-2 overflow-hidden border-b border-transparent py-2.5 text-base text-gray-600 duration-300 ease-in-out hover:border-gray-400 hover:text-gray-900",
{ {
@@ -278,7 +304,7 @@ const I = { class: "h-screen" },
t.icon t.icon
? (l(), ? (l(),
p( p(
j( B(
t.icon t.icon
), ),
{ {
@@ -300,7 +326,7 @@ const I = { class: "h-screen" },
" ", " ",
1 1
), ),
_( m(
n( n(
U U
), ),
@@ -309,7 +335,7 @@ const I = { class: "h-screen" },
}, },
{ {
default: default:
u( c(
() => [ () => [
g( g(
h( h(
@@ -330,7 +356,7 @@ const I = { class: "h-screen" },
), ),
] ]
), ),
default: u( default: c(
({ ({
tab: t, tab: t,
}) => [ }) => [
@@ -339,17 +365,17 @@ const I = { class: "h-screen" },
.value .value
.length .length
? (l(), ? (l(),
c( u(
"div", "div",
M, H,
[ [
(l( (l(
!0 !0
), ),
c( u(
D, D,
null, null,
R( P(
t t
.courses .courses
.value, .value,
@@ -358,7 +384,7 @@ const I = { class: "h-screen" },
) => ( ) => (
l(), l(),
p( p(
N, C,
{ {
to: to:
o.membership && o.membership &&
@@ -398,10 +424,10 @@ const I = { class: "h-screen" },
}, },
{ {
default: default:
u( c(
() => [ () => [
_( m(
E, z,
{ {
course: o, course: o,
}, },
@@ -427,13 +453,13 @@ const I = { class: "h-screen" },
] ]
)) ))
: (l(), : (l(),
c( u(
"div", "div",
Q, J,
[ [
d( d(
"div", "div",
T, K,
[ [
d( d(
"div", "div",
@@ -469,5 +495,5 @@ const I = { class: "h-screen" },
); );
}, },
}; };
export { ee as default }; export { Z as default };
//# sourceMappingURL=Courses-twOd7MxD.js.map //# sourceMappingURL=Courses-lYNeP5iT.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,798 @@
var O = Object.defineProperty;
var E = Object.getOwnPropertySymbols;
var Q = Object.prototype.hasOwnProperty,
q = Object.prototype.propertyIsEnumerable;
var L = (c, d, i) =>
d in c
? O(c, d, {
enumerable: !0,
configurable: !0,
writable: !0,
value: i,
})
: (c[d] = i),
w = (c, d) => {
for (var i in d || (d = {})) Q.call(d, i) && L(c, i, d[i]);
if (E) for (var i of E(d)) q.call(d, i) && L(c, i, d[i]);
return c;
};
import {
d as W,
r as U,
j as P,
ad as Y,
k as M,
s as Z,
y as f,
H as o,
J as n,
K as a,
F as R,
G as g,
M as N,
L as u,
Q as ee,
R as le,
aB as se,
X as oe,
x as _,
a6 as te,
a7 as x,
aC as p,
at as ae,
U as T,
aA as re,
} from "./frappe-ui-LT4YqXtx.js";
import { e as ie, c as ne, d as ue } from "./index-6k1S_EjG.js";
import { _ as de, X as B } from "./Link-rwTAUhIL.js";
import { F as ce } from "./file-text-w2g11TfY.js";
import "./plus-0JOmes86.js";
const me = { class: "h-screen text-base" },
_e = { class: "grid grid-cols-[70%,30%] h-full" },
pe = {
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
},
ve = { class: "flex items-center" },
be = { class: "mt-5 mb-10" },
fe = { class: "container mb-5" },
ge = { class: "text-lg font-semibold mb-4" },
ye = { class: "mb-4" },
he = { class: "mb-1.5 text-sm text-gray-700" },
Ce = { class: "mb-4" },
Ve = { key: 1, class: "mb-4" },
ke = { class: "text-xs text-gray-600 mb-1" },
xe = { class: "flex items-center" },
we = { class: "border rounded-md p-2 mr-2" },
Ue = { class: "flex flex-col" },
Ne = { class: "text-sm text-gray-500 mt-1" },
Te = { class: "mb-1.5 text-sm text-gray-700" },
$e = { class: "flex items-center" },
Se = { class: "flex items-center bg-gray-100 p-2 rounded-md mr-2" },
Fe = { class: "container border-t" },
je = { class: "text-lg font-semibold mt-5 mb-4" },
De = { class: "flex items-center justify-between mb-5" },
Ee = { class: "container border-t" },
Le = { class: "text-lg font-semibold mt-5 mb-4" },
Pe = { class: "mb-4" },
Me = { class: "bg-gray-50 px-5 pt-5" },
Re = { key: 0 },
Be = { class: "text-xl font-semibold" },
ze = { key: 0 },
Ie = { key: 1, class: "border bg-white rounded-md p-5 text-center mt-4" },
Oe = {
__name: "CreateCourse",
props: { courseName: { type: String } },
setup(c) {
const d = W("$user"),
i = U(""),
v = U(""),
m = U(null),
y = c,
z = P(() => {
var e;
let l = [{ label: "Courses", route: { name: "Courses" } }];
return (
r.doc &&
l.push({
label: (e = r.doc) == null ? void 0 : e.title,
route: {
name: "CourseDetail",
params: { courseName: y.courseName },
},
}),
l.push({
label:
y.courseName == "new"
? "New Course"
: "Edit Course",
route: {
name: "CreateCourse",
params: { courseName: y.courseName },
},
}),
l
);
}),
r = Y({
doctype: "LMS Course",
name: y.courseName,
auto: !1,
onSuccess(l) {
I.reload({ image: l.image }), (i.value = l.tags);
},
}),
I = M({
url: "lms.lms.api.get_file_info",
makeParams(l) {
return { file_url: l.image };
},
auto: !1,
onSuccess(l) {
m.value = l;
},
});
Z(() => {
var l, e;
(!((l = d.data) != null && l.is_moderator) ||
!((e = d.data) != null && e.is_instructor)) &&
(window.location.href = "/login"),
y.courseName !== "new" && r.reload();
});
const t = P(() => {
var l, e, b, h, s, C, V, k, F, j, D;
return {
title: ((l = r.doc) == null ? void 0 : l.title) || "",
short_introduction:
((e = r.doc) == null
? void 0
: e.short_introduction) || "",
description:
((b = r.doc) == null ? void 0 : b.description) ||
"",
video_link:
((h = r.doc) == null ? void 0 : h.video_link) || "",
course_image:
((s = r.doc) == null ? void 0 : s.image) || null,
tags: i.value,
published: !!((C = r.doc) != null && C.published),
upcoming: !!((V = r.doc) != null && V.upcoming),
disable_self_learning: !!(
(k = r.doc) != null && k.disable_self_learning
),
course_image: m.value,
paid_course: !!((F = r.doc) != null && F.paid_course),
course_price:
((j = r.doc) == null ? void 0 : j.course_price) ||
"",
currency:
((D = r.doc) == null ? void 0 : D.currency) || "",
};
}),
K = M({
url: "frappe.client.insert",
makeParams(l) {
return {
doc: w(
{
doctype: "LMS Course",
image: m.value.file_url,
},
l
),
};
},
}),
A = () => {
var l;
r.doc
? r.setValue.submit(
w(
{
image:
((l = m.value) == null
? void 0
: l.file_url) || null,
},
t.value
),
{
validate() {
return $();
},
onError(e) {
S(e);
},
}
)
: K.submit(t.value, {
validate() {
return $();
},
onError(e) {
S(e);
},
});
},
$ = () => {
const l = [
"title",
"short_introduction",
"description",
"video_link",
"course_image",
];
for (const e of l)
if (!t.value[e])
return `${ie(e.split("_").join(" "))} is mandatory`;
if (
t.value.paid_course &&
(!t.value.course_price || !t.value.currency)
)
return "Course price and currency are mandatory for paid courses";
},
X = (l) => {
let e = l.name.split(".").pop().toLowerCase();
if (!["jpg", "jpeg", "png"].includes(e))
return "Only image file is allowed.";
},
G = () => {
v.value &&
((i.value = i.value
? `${i.value}, ${v.value}`
: v.value),
(v.value = ""));
},
H = (l) => {
var e;
(i.value =
(e = i.value) == null
? void 0
: e
.split(", ")
.filter((b) => b !== l)
.join(", ")),
(v.value = "");
},
S = (l) => {
var e;
ne({
title: "Error",
text: ((e = l.messages) == null ? void 0 : e[0]) || l,
icon: "x",
iconClasses: "bg-red-600 text-white rounded-md p-px",
position: "top-center",
timeout: 10,
});
},
J = () => {
(m.value = null), (t.value.course_image = null);
};
return (l, e) => {
var h;
const b = oe("router-link");
return (
_(),
f("div", me, [
o("div", _e, [
o("div", null, [
o("header", pe, [
n(
a(te),
{ class: "h-7", items: z.value },
null,
8,
["items"]
),
o("div", ve, [
a(r).doc
? (_(),
R(
b,
{
key: 0,
to: {
name: "CourseDetail",
params: {
courseName:
a(r).doc
.name,
},
},
},
{
default: g(() => [
n(a(x), null, {
default: g(
() => [
o(
"span",
null,
u(
l.__(
"View Course"
)
),
1
),
]
),
_: 1,
}),
]),
_: 1,
},
8,
["to"]
))
: N("", !0),
n(
a(x),
{
variant: "solid",
onClick:
e[0] || (e[0] = (s) => A()),
class: "ml-2",
},
{
default: g(() => [
o(
"span",
null,
u(l.__("Save")),
1
),
]),
_: 1,
}
),
]),
]),
o("div", be, [
o("div", fe, [
o(
"div",
ge,
u(l.__("Course Details")),
1
),
n(
a(p),
{
modelValue: t.value.title,
"onUpdate:modelValue":
e[1] ||
(e[1] = (s) =>
(t.value.title = s)),
label: l.__("Title"),
class: "mb-4",
},
null,
8,
["modelValue", "label"]
),
n(
a(p),
{
modelValue:
t.value.short_introduction,
"onUpdate:modelValue":
e[2] ||
(e[2] = (s) =>
(t.value.short_introduction =
s)),
label: l.__(
"Short Introduction"
),
class: "mb-4",
},
null,
8,
["modelValue", "label"]
),
o("div", ye, [
o(
"div",
he,
u(l.__("Course Description")),
1
),
n(
a(ae),
{
content:
t.value.description,
onChange:
e[3] ||
(e[3] = (s) =>
(t.value.description =
s)),
editable: !0,
fixedMenu: !0,
editorClass:
"prose-sm max-w-none border-b border-x bg-gray-100 rounded-b-md py-1 px-2 min-h-[7rem]",
},
null,
8,
["content"]
),
]),
m.value
? (_(),
f("div", Ve, [
o(
"div",
ke,
u(l.__("Course Image")),
1
),
o("div", xe, [
o("div", we, [
n(a(ce), {
class: "h-5 w-5 stroke-1.5 text-gray-700",
}),
]),
o("div", Ue, [
o(
"span",
null,
u(
m.value
.file_name
),
1
),
o(
"span",
Ne,
u(
a(ue)(
m.value
.file_size
)
),
1
),
]),
n(a(B), {
onClick:
e[5] ||
(e[5] = (s) =>
J()),
class: "bg-gray-200 rounded-md cursor-pointer stroke-1.5 w-5 h-5 p-1 ml-4",
}),
]),
]))
: (_(),
R(
a(re),
{
key: 0,
fileTypes: ["image/*"],
validateFile: X,
onSuccess:
e[4] ||
(e[4] = (s) => {
m.value = s;
}),
},
{
default: g(
({
file: s,
progress: C,
uploading: V,
openFileSelector:
k,
}) => [
o("div", Ce, [
n(
a(x),
{
onClick:
k,
loading:
V,
},
{
default:
g(
() => [
T(
u(
V
? `Uploading ${C}%`
: "Upload an image"
),
1
),
]
),
_: 2,
},
1032,
[
"onClick",
"loading",
]
),
]),
]
),
_: 1,
}
)),
n(
a(p),
{
modelValue: t.value.video_link,
"onUpdate:modelValue":
e[6] ||
(e[6] = (s) =>
(t.value.video_link =
s)),
label: l.__("Preview Video"),
class: "mb-4",
},
null,
8,
["modelValue", "label"]
),
o("div", null, [
o("div", Te, u(l.__("Tags")), 1),
o("div", $e, [
i.value
? (_(!0),
f(
ee,
{ key: 0 },
le(
(h = i.value) ==
null
? void 0
: h.split(
", "
),
(s) => (
_(),
f(
"div",
Se,
[
T(
u(
s
) +
" ",
1
),
n(
a(
B
),
{
class: "stroke-1.5 w-3 h-3 ml-2 cursor-pointer",
onClick:
(
C
) =>
H(
s
),
},
null,
8,
[
"onClick",
]
),
]
)
)
),
256
))
: N("", !0),
n(
a(p),
{
modelValue: v.value,
"onUpdate:modelValue":
e[7] ||
(e[7] = (s) =>
(v.value = s)),
onKeyup:
e[8] ||
(e[8] = se(
(s) => G(),
["enter"]
)),
},
null,
8,
["modelValue"]
),
]),
]),
]),
o("div", Fe, [
o(
"div",
je,
u(l.__("Course Settings")),
1
),
o("div", De, [
n(
a(p),
{
type: "checkbox",
modelValue:
t.value.published,
"onUpdate:modelValue":
e[9] ||
(e[9] = (s) =>
(t.value.published =
s)),
label: l.__("Published"),
},
null,
8,
["modelValue", "label"]
),
n(
a(p),
{
type: "checkbox",
modelValue:
t.value.upcoming,
"onUpdate:modelValue":
e[10] ||
(e[10] = (s) =>
(t.value.upcoming =
s)),
label: l.__("Upcoming"),
},
null,
8,
["modelValue", "label"]
),
n(
a(p),
{
type: "checkbox",
modelValue:
t.value
.disable_self_learning,
"onUpdate:modelValue":
e[11] ||
(e[11] = (s) =>
(t.value.disable_self_learning =
s)),
label: l.__(
"Disable Self Enrollment"
),
},
null,
8,
["modelValue", "label"]
),
]),
]),
o("div", Ee, [
o(
"div",
Le,
u(l.__("Course Pricing")),
1
),
o("div", Pe, [
n(
a(p),
{
type: "checkbox",
modelValue:
t.value.paid_course,
"onUpdate:modelValue":
e[12] ||
(e[12] = (s) =>
(t.value.paid_course =
s)),
label: l.__("Paid Course"),
},
null,
8,
["modelValue", "label"]
),
]),
n(
a(p),
{
modelValue:
t.value.course_price,
"onUpdate:modelValue":
e[13] ||
(e[13] = (s) =>
(t.value.course_price =
s)),
label: l.__("Course Price"),
class: "mb-4",
},
null,
8,
["modelValue", "label"]
),
n(
de,
{
doctype: "Currency",
modelValue: t.value.currency,
"onUpdate:modelValue":
e[14] ||
(e[14] = (s) =>
(t.value.currency = s)),
filters: { enabled: 1 },
label: l.__("Currency"),
},
null,
8,
["modelValue", "label"]
),
]),
]),
]),
o("div", Me, [
a(r).doc
? (_(),
f("div", Re, [
o("div", Be, u(t.value.title), 1),
a(r).doc.chapters.length
? (_(),
f(
"div",
ze,
u(a(r).chapters),
1
))
: (_(),
f("div", Ie, [
o(
"div",
null,
u(
l.__(
"There are no chapters in this course. Create and manage chapters from here."
)
),
1
),
n(
a(x),
{ class: "mt-4" },
{
default: g(
() => [
T(
u(
l.__(
"Add Chapter"
)
),
1
),
]
),
_: 1,
}
),
])),
]))
: N("", !0),
]),
]),
])
);
};
},
};
export { Oe as default };
//# sourceMappingURL=CreateCourse-0E2-P7Ge.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
import { v as e } from "./frappe-ui-LT4YqXtx.js";
const r = {};
function t(n, c) {
return null;
}
const o = e(r, [["render", t]]);
export { o as default };
//# sourceMappingURL=CreateOutline-3tnu6Qkz.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"CreateOutline-3tnu6Qkz.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -1,33 +1,33 @@
import { import {
aa as B, aa as N,
ab as N, ab as B,
r as $, r as $,
d as S, d as S,
s as j, s as j,
k, k,
x as i, x as i,
y, y,
G as n, J as n,
B as x, G as x,
H as t, K as t,
a7 as T, a7 as T,
C as s, H as s,
I as d, L as d,
J as R, M as R,
Q as M, Q as M,
R as E, R as E,
A as V, F as V,
K as A, N as F,
U as D, U as D,
au as P, at as P,
F as I, I,
a as F, a as A,
am as G, al as G,
D as J, D as J,
b as K, b as K,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { _ as U } from "./UserAvatar-yrWInUTi.js"; import { _ as L } from "./UserAvatar-A3tEMZXD.js";
import { a as q, t as H, c as O } from "./index-Vx7mSx23.js"; import { a as q, t as U, c as O } from "./index-6k1S_EjG.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
@@ -71,7 +71,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
re = s("span", null, null, -1), re = s("span", null, null, -1),
z = { z = {
__name: "DiscussionReplies", __name: "DiscussionReplies",
props: B( props: N(
{ {
topic: { type: Object, required: !0 }, topic: { type: Object, required: !0 },
singleThread: { type: Boolean, default: !1 }, singleThread: { type: Boolean, default: !1 },
@@ -80,7 +80,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
), ),
emits: ["update:showTopics"], emits: ["update:showTopics"],
setup(l) { setup(l) {
const g = N(l, "showTopics"), const g = B(l, "showTopics"),
m = $(""), m = $(""),
c = S("$socket"), c = S("$socket"),
_ = S("$user"), _ = S("$user"),
@@ -216,7 +216,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
null, null,
E( E(
t(o).data, t(o).data,
(a, L) => ( (a, H) => (
i(), i(),
y("div", null, [ y("div", null, [
s( s(
@@ -226,7 +226,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
"py-3", "py-3",
{ {
"border-b": "border-b":
L + 1 != H + 1 !=
t(o).data.length, t(o).data.length,
}, },
]), ]),
@@ -235,7 +235,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
s("div", te, [ s("div", te, [
s("div", se, [ s("div", se, [
n( n(
U, L,
{ {
user: a.user, user: a.user,
class: "mr-2", class: "mr-2",
@@ -253,7 +253,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
s( s(
"span", "span",
oe, oe,
d(t(H)(a.creation)), d(t(U)(a.creation)),
1 1
), ),
]), ]),
@@ -261,7 +261,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
!a.editable !a.editable
? (i(), ? (i(),
V( V(
t(A), t(F),
{ {
key: 0, key: 0,
options: [ options: [
@@ -432,7 +432,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
de = { class: "mb-1.5 text-sm text-gray-600" }, de = { class: "mb-1.5 text-sm text-gray-600" },
ce = { ce = {
__name: "DiscussionModal", __name: "DiscussionModal",
props: B( props: N(
{ {
title: { type: String, required: !0 }, title: { type: String, required: !0 },
doctype: { type: String, required: !0 }, doctype: { type: String, required: !0 },
@@ -442,9 +442,9 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
), ),
emits: ["update:reloadTopics"], emits: ["update:reloadTopics"],
setup(l) { setup(l) {
const g = N(l, "reloadTopics"), const g = B(l, "reloadTopics"),
m = l, m = l,
c = F({ title: "", reply: "" }), c = A({ title: "", reply: "" }),
_ = k({ _ = k({
url: "frappe.client.insert", url: "frappe.client.insert",
makeParams(f) { makeParams(f) {
@@ -686,7 +686,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
}, },
[ [
n( n(
U, L,
{ {
user: u.user, user: u.user,
size: "2xl", size: "2xl",
@@ -729,7 +729,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
he, he,
d( d(
t( t(
H U
)( )(
u.creation u.creation
) )
@@ -835,4 +835,4 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
}, },
}; };
export { Q as C, we as _ }; export { Q as C, we as _ };
//# sourceMappingURL=Discussions-C9dFHLpJ.js.map //# sourceMappingURL=Discussions-3EqlwpPS.js.map

View File

@@ -1,21 +1,21 @@
import { import {
v as f, v as f,
ay as g, aF as g,
T as _, T as _,
X as c, X as c,
x as o, x as o,
A as l, F as l,
B as r, G as r,
M as p, O as p,
az as C, aG as C,
aA as k, aH as k,
C as a, H as a,
y as d, y as d,
Q as u, Q as u,
R as m, R as m,
V as h, V as h,
F as b, I as b,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
const v = { const v = {
name: "FontColor", name: "FontColor",
props: ["editor"], props: ["editor"],
@@ -65,8 +65,8 @@ const v = {
}, },
y = { class: "p-2" }, y = { class: "p-2" },
B = a("div", { class: "text-sm text-gray-700" }, "Text Color", -1), B = a("div", { class: "text-sm text-gray-700" }, "Text Color", -1),
P = { class: "mt-1 grid grid-cols-8 gap-1" }, F = { class: "mt-1 grid grid-cols-8 gap-1" },
F = ["aria-label", "onClick"], P = ["aria-label", "onClick"],
D = a( D = a(
"div", "div",
{ class: "mt-2 text-sm text-gray-700" }, { class: "mt-2 text-sm text-gray-700" },
@@ -74,8 +74,8 @@ const v = {
-1 -1
), ),
w = { class: "mt-1 grid grid-cols-8 gap-1" }, w = { class: "mt-1 grid grid-cols-8 gap-1" },
A = ["aria-label", "onClick"]; T = ["aria-label", "onClick"];
function T(t, z, R, E, $, n) { function G(t, H, R, z, A, n) {
const i = c("Tooltip"), const i = c("Tooltip"),
x = c("Popover"); x = c("Popover");
return ( return (
@@ -94,7 +94,7 @@ function T(t, z, R, E, $, n) {
"body-main": r(() => [ "body-main": r(() => [
a("div", y, [ a("div", y, [
B, B,
a("div", P, [ a("div", F, [
(o(!0), (o(!0),
d( d(
u, u,
@@ -128,7 +128,7 @@ function T(t, z, R, E, $, n) {
}, },
" A ", " A ",
12, 12,
F P
), ),
]), ]),
_: 2, _: 2,
@@ -182,7 +182,7 @@ function T(t, z, R, E, $, n) {
}, },
" A ", " A ",
14, 14,
A T
), ),
]), ]),
_: 2, _: 2,
@@ -202,6 +202,6 @@ function T(t, z, R, E, $, n) {
) )
); );
} }
const G = f(v, [["render", T]]); const O = f(v, [["render", G]]);
export { G as default }; export { O as default };
//# sourceMappingURL=FontColor-buIvkL_m.js.map //# sourceMappingURL=FontColor-VDDMEf4D.js.map

View File

@@ -2,14 +2,14 @@ import {
v as d, v as d,
D as g, D as g,
y as m, y as m,
G as s, J as s,
B as t, G as t,
C as r, H as r,
I as p, L as p,
X as u, X as u,
x as f, x as f,
U as l, U as l,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
const D = { const D = {
name: "Home", name: "Home",
data() { data() {
@@ -19,7 +19,7 @@ const D = {
components: { Dialog: g }, components: { Dialog: g },
}, },
_ = { class: "max-w-3xl py-12 mx-auto" }; _ = { class: "max-w-3xl py-12 mx-auto" };
function C(e, o, k, w, n, B) { function k(e, o, w, C, n, V) {
const a = u("Button"), const a = u("Button"),
c = u("Dialog"); c = u("Dialog");
return ( return (
@@ -61,6 +61,6 @@ function C(e, o, k, w, n, B) {
]) ])
); );
} }
const $ = d(D, [["render", C]]); const v = d(D, [["render", k]]);
export { $ as default }; export { v as default };
//# sourceMappingURL=Home-iNWB3jqR.js.map //# sourceMappingURL=Home-gvvenAgK.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"Home-iNWB3jqR.js","sources":["../../../../frontend/src/pages/Home.vue"],"sourcesContent":["<template>\n <div class=\"max-w-3xl py-12 mx-auto\">\n <Button\n icon-left=\"code\"\n @click=\"$resources.ping.fetch\"\n :loading=\"$resources.ping.loading\"\n >\n Click to send 'ping' request\n </Button>\n <div>\n {{ $resources.ping.data }}\n </div>\n <pre>{{ $resources.ping }}</pre>\n\n <Button @click=\"showDialog = true\">Open Dialog</Button>\n <Dialog title=\"Title\" v-model=\"showDialog\"> Dialog content </Dialog>\n </div>\n</template>\n\n<script>\nimport { Dialog } from 'frappe-ui'\n\nexport default {\n name: 'Home',\n data() {\n return {\n showDialog: false,\n }\n },\n resources: {\n ping: {\n url: 'ping',\n },\n },\n components: {\n Dialog,\n },\n}\n</script>\n"],"names":["_sfc_main","Dialog","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_Button","_ctx","_withCtx","_createTextVNode","_createElementVNode","_toDisplayString","$data","_component_Dialog","_cache","$event"],"mappings":"2GAsBA,MAAKA,EAAU,CACb,KAAM,OACN,MAAO,CACL,MAAO,CACL,WAAY,EACd,CACD,EACD,UAAW,CACT,KAAM,CACJ,IAAK,MACN,CACF,EACD,WAAY,CACV,OAAAC,CACD,CACH,EApCOC,EAAA,CAAA,MAAM,yBAAyB,4DAApC,OAAAC,EAAA,EAAAC,EAeM,MAfNF,EAeM,CAdJG,EAMSC,EAAA,CALP,YAAU,OACT,QAAOC,EAAA,WAAW,KAAK,MACvB,QAASA,EAAA,WAAW,KAAK,UALhC,QAAAC,EAMK,IAED,CARJC,EAMK,gCAED,IARJ,EAAA,4BASIC,EAEM,MADD,KAAAC,EAAAJ,EAAA,WAAW,KAAK,IAAI,EAAA,CAAA,EAEzBG,EAAgC,MAAA,KAAAC,EAAxBJ,EAAU,WAAC,IAAI,EAAA,CAAA,EAEvBF,EAAuDC,EAAA,CAA9C,uBAAOM,EAAU,WAAA,MAd9B,QAAAJ,EAcuC,IAAW,CAdlDC,EAcuC,aAAW,IAdlD,EAAA,IAeIJ,EAAoEQ,EAAA,CAA5D,MAAM,QAflB,WAemCD,EAAU,WAf7C,sBAAAE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAemCH,EAAU,WAAAG,KAf7C,QAAAP,EAe+C,IAAgB,CAf/DC,EAe+C,kBAAgB,IAf/D,EAAA"} {"version":3,"file":"Home-gvvenAgK.js","sources":["../../../../frontend/src/pages/Home.vue"],"sourcesContent":["<template>\n <div class=\"max-w-3xl py-12 mx-auto\">\n <Button\n icon-left=\"code\"\n @click=\"$resources.ping.fetch\"\n :loading=\"$resources.ping.loading\"\n >\n Click to send 'ping' request\n </Button>\n <div>\n {{ $resources.ping.data }}\n </div>\n <pre>{{ $resources.ping }}</pre>\n\n <Button @click=\"showDialog = true\">Open Dialog</Button>\n <Dialog title=\"Title\" v-model=\"showDialog\"> Dialog content </Dialog>\n </div>\n</template>\n\n<script>\nimport { Dialog } from 'frappe-ui'\n\nexport default {\n name: 'Home',\n data() {\n return {\n showDialog: false,\n }\n },\n resources: {\n ping: {\n url: 'ping',\n },\n },\n components: {\n Dialog,\n },\n}\n</script>\n"],"names":["_sfc_main","Dialog","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_Button","_ctx","_withCtx","_createTextVNode","_createElementVNode","_toDisplayString","$data","_component_Dialog","_cache","$event"],"mappings":"2GAsBA,MAAKA,EAAU,CACb,KAAM,OACN,MAAO,CACL,MAAO,CACL,WAAY,EACd,CACD,EACD,UAAW,CACT,KAAM,CACJ,IAAK,MACN,CACF,EACD,WAAY,CACV,OAAAC,CACD,CACH,EApCOC,EAAA,CAAA,MAAM,yBAAyB,4DAApC,OAAAC,EAAA,EAAAC,EAeM,MAfNF,EAeM,CAdJG,EAMSC,EAAA,CALP,YAAU,OACT,QAAOC,EAAA,WAAW,KAAK,MACvB,QAASA,EAAA,WAAW,KAAK,UALhC,QAAAC,EAMK,IAED,CARJC,EAMK,gCAED,IARJ,EAAA,4BASIC,EAEM,MADD,KAAAC,EAAAJ,EAAA,WAAW,KAAK,IAAI,EAAA,CAAA,EAEzBG,EAAgC,MAAA,KAAAC,EAAxBJ,EAAU,WAAC,IAAI,EAAA,CAAA,EAEvBF,EAAuDC,EAAA,CAA9C,uBAAOM,EAAU,WAAA,MAd9B,QAAAJ,EAcuC,IAAW,CAdlDC,EAcuC,aAAW,IAdlD,EAAA,IAeIJ,EAAoEQ,EAAA,CAA5D,MAAM,QAflB,WAemCD,EAAU,WAf7C,sBAAAE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAemCH,EAAU,WAAAG,KAf7C,QAAAP,EAe+C,IAAgB,CAf/DC,EAe+C,kBAAgB,IAf/D,EAAA"}

View File

@@ -1,30 +1,30 @@
import { import {
v as I, v as f,
a7 as f, a7 as I,
D, D,
aK as h, aQ as h,
X as d, X as d,
x as m, x as m,
y as c, y as c,
M as _, O as _,
az as y, aG as y,
aA as C, aH as v,
G as n, J as n,
B as s, G as s,
C as i, H as i,
I as v, L as C,
J as w, M as w,
U as u, U as u,
Q as x, Q as x,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
const B = { const b = {
name: "InsertImage", name: "InsertImage",
props: ["editor"], props: ["editor"],
expose: ["openDialog"], expose: ["openDialog"],
data() { data() {
return { addImageDialog: { url: "", file: null, show: !1 } }; return { addImageDialog: { url: "", file: null, show: !1 } };
}, },
components: { Button: f, Dialog: D }, components: { Button: I, Dialog: D },
methods: { methods: {
openDialog() { openDialog() {
this.addImageDialog.show = !0; this.addImageDialog.show = !0;
@@ -46,12 +46,12 @@ const B = {
}, },
}, },
}, },
b = { k = {
class: "relative cursor-pointer rounded-lg bg-gray-100 py-1 focus-within:bg-gray-200 hover:bg-gray-200", class: "relative cursor-pointer rounded-lg bg-gray-100 py-1 focus-within:bg-gray-200 hover:bg-gray-200",
}, },
k = { class: "absolute inset-0 select-none px-2 py-1 text-base" }, B = { class: "absolute inset-0 select-none px-2 py-1 text-base" },
S = ["src"]; S = ["src"];
function V(t, e, r, A, a, o) { function V(t, e, r, N, a, o) {
const g = d("Button"), const g = d("Button"),
p = d("Dialog"); p = d("Dialog");
return ( return (
@@ -60,7 +60,7 @@ function V(t, e, r, A, a, o) {
x, x,
null, null,
[ [
_(t.$slots, "default", y(C({ onClick: o.openDialog }))), _(t.$slots, "default", y(v({ onClick: o.openDialog }))),
n( n(
p, p,
{ {
@@ -72,7 +72,7 @@ function V(t, e, r, A, a, o) {
}, },
{ {
"body-content": s(() => [ "body-content": s(() => [
i("label", b, [ i("label", k, [
i( i(
"input", "input",
{ {
@@ -90,8 +90,8 @@ function V(t, e, r, A, a, o) {
), ),
i( i(
"span", "span",
k, B,
v( C(
a.addImageDialog.file a.addImageDialog.file
? "Select another image" ? "Select another image"
: "Select an image" : "Select an image"
@@ -147,6 +147,6 @@ function V(t, e, r, A, a, o) {
) )
); );
} }
const z = I(B, [["render", V]]); const L = f(b, [["render", V]]);
export { z as default }; export { L as default };
//# sourceMappingURL=InsertImage-MQQczXkr.js.map //# sourceMappingURL=InsertImage-XkfiXG_Q.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"InsertImage-MQQczXkr.js","sources":["../../../../frappe-ui/src/components/TextEditor/InsertImage.vue"],"sourcesContent":["<template>\n <slot v-bind=\"{ onClick: openDialog }\"></slot>\n <Dialog\n :options=\"{ title: 'Add Image' }\"\n v-model=\"addImageDialog.show\"\n @after-leave=\"reset\"\n >\n <template #body-content>\n <label\n class=\"relative cursor-pointer rounded-lg bg-gray-100 py-1 focus-within:bg-gray-200 hover:bg-gray-200\"\n >\n <input\n type=\"file\"\n class=\"w-full opacity-0\"\n @change=\"onImageSelect\"\n accept=\"image/*\"\n />\n <span class=\"absolute inset-0 select-none px-2 py-1 text-base\">\n {{ addImageDialog.file ? 'Select another image' : 'Select an image' }}\n </span>\n </label>\n <img\n v-if=\"addImageDialog.url\"\n :src=\"addImageDialog.url\"\n class=\"mt-2 w-full rounded-lg\"\n />\n </template>\n <template #actions>\n <Button variant=\"solid\" @click=\"addImage(addImageDialog.url)\">\n Insert Image\n </Button>\n <Button @click=\"reset\"> Cancel </Button>\n </template>\n </Dialog>\n</template>\n<script>\nimport fileToBase64 from '../../utils/file-to-base64'\nimport Dialog from '../Dialog.vue'\nimport Button from '../Button.vue'\n\nexport default {\n name: 'InsertImage',\n props: ['editor'],\n expose: ['openDialog'],\n data() {\n return {\n addImageDialog: { url: '', file: null, show: false },\n }\n },\n components: { Button, Dialog },\n methods: {\n openDialog() {\n this.addImageDialog.show = true\n },\n onImageSelect(e) {\n let file = e.target.files[0]\n if (!file) {\n return\n }\n this.addImageDialog.file = file\n fileToBase64(file).then((base64) => {\n this.addImageDialog.url = base64\n })\n },\n addImage(src) {\n this.editor.chain().focus().setImage({ src }).run()\n this.reset()\n },\n reset() {\n this.addImageDialog = this.$options.data().addImageDialog\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Button","Dialog","e","file","fileToBase64","base64","src","_hoisted_1","_hoisted_2","_hoisted_3","_openBlock","_createElementBlock","_Fragment","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","$options","_createVNode","_component_Dialog","$data","_cache","$event","_createElementVNode","args","_toDisplayString","_createCommentVNode","_component_Button","_withCtx","_createTextVNode"],"mappings":"2JAwCA,MAAKA,EAAU,CACb,KAAM,cACN,MAAO,CAAC,QAAQ,EAChB,OAAQ,CAAC,YAAY,EACrB,MAAO,CACL,MAAO,CACL,eAAgB,CAAE,IAAK,GAAI,KAAM,KAAM,KAAM,EAAO,CACtD,CACD,EACD,WAAY,CAAA,OAAEC,EAAQ,OAAAC,CAAQ,EAC9B,QAAS,CACP,YAAa,CACX,KAAK,eAAe,KAAO,EAC5B,EACD,cAAcC,EAAG,CACf,IAAIC,EAAOD,EAAE,OAAO,MAAM,CAAC,EACtBC,IAGL,KAAK,eAAe,KAAOA,EAC3BC,EAAaD,CAAI,EAAE,KAAME,GAAW,CAClC,KAAK,eAAe,IAAMA,EAC3B,EACF,EACD,SAASC,EAAK,CACZ,KAAK,OAAO,MAAK,EAAG,MAAK,EAAG,SAAS,CAAE,IAAAA,EAAK,EAAE,IAAI,EAClD,KAAK,MAAM,CACZ,EACD,OAAQ,CACN,KAAK,eAAiB,KAAK,SAAS,KAAM,EAAC,cAC5C,CACF,CACH,EA/DQC,EAAA,CAAA,MAAM,gGAAgG,EAQhGC,EAAA,CAAA,MAAM,kDAAkD,EAjBtEC,EAAA,CAAA,KAAA,4DAAA,OAAAC,EAAA,EAAAC,EAAAC,EAAA,KAAA,CACEC,EAA8CC,EAAA,OAAA,UADhDC,EAAAC,EAAA,CAAA,QAC2BC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EA+BSC,EAAA,CA9BN,QAAS,CAAsB,MAAA,WAAA,EAHpC,WAIaC,EAAA,eAAe,KAJ5B,sBAIaC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,eAAe,KAAIE,GAC3B,aAAaL,EAAK,QAER,iBACT,IAYQ,CAZRM,EAYQ,QAZRhB,EAYQ,CATNgB,EAKE,QAAA,CAJA,KAAK,OACL,MAAM,mBACL,6BAAQN,EAAa,eAAAA,EAAA,cAAA,GAAAO,CAAA,GACtB,OAAO,oBAETD,EAEO,OAFPf,EACKiB,EAAAL,EAAA,eAAe,KAAI,uBAAA,iBAAA,EAAA,CAAA,IAIlBA,EAAA,eAAe,SADvBT,EAIE,MAAA,CAzBR,IAAA,EAuBS,IAAKS,EAAc,eAAC,IACrB,MAAM,wBAxBd,EAAA,KAAA,EAAAX,CAAA,GAAAiB,EAAA,GAAA,EAAA,IA2Be,UACT,IAES,CAFTR,EAESS,EAAA,CAFD,QAAQ,QAAS,QAAON,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,SAASG,EAAA,eAAe,GAAG,KA5BjE,QAAAQ,EA4BoE,IAE9D,CA9BNC,EA4BoE,gBAE9D,IA9BN,EAAA,IA+BMX,EAAwCS,EAAA,CAA/B,QAAOV,EAAK,KAAA,EAAA,CA/B3B,QAAAW,EA+B6B,IAAQ,CA/BrCC,EA+B6B,UAAQ,IA/BrC,EAAA,oBAAA,EAAA"} {"version":3,"file":"InsertImage-XkfiXG_Q.js","sources":["../../../../frappe-ui/src/components/TextEditor/InsertImage.vue"],"sourcesContent":["<template>\n <slot v-bind=\"{ onClick: openDialog }\"></slot>\n <Dialog\n :options=\"{ title: 'Add Image' }\"\n v-model=\"addImageDialog.show\"\n @after-leave=\"reset\"\n >\n <template #body-content>\n <label\n class=\"relative cursor-pointer rounded-lg bg-gray-100 py-1 focus-within:bg-gray-200 hover:bg-gray-200\"\n >\n <input\n type=\"file\"\n class=\"w-full opacity-0\"\n @change=\"onImageSelect\"\n accept=\"image/*\"\n />\n <span class=\"absolute inset-0 select-none px-2 py-1 text-base\">\n {{ addImageDialog.file ? 'Select another image' : 'Select an image' }}\n </span>\n </label>\n <img\n v-if=\"addImageDialog.url\"\n :src=\"addImageDialog.url\"\n class=\"mt-2 w-full rounded-lg\"\n />\n </template>\n <template #actions>\n <Button variant=\"solid\" @click=\"addImage(addImageDialog.url)\">\n Insert Image\n </Button>\n <Button @click=\"reset\"> Cancel </Button>\n </template>\n </Dialog>\n</template>\n<script>\nimport fileToBase64 from '../../utils/file-to-base64'\nimport Dialog from '../Dialog.vue'\nimport Button from '../Button.vue'\n\nexport default {\n name: 'InsertImage',\n props: ['editor'],\n expose: ['openDialog'],\n data() {\n return {\n addImageDialog: { url: '', file: null, show: false },\n }\n },\n components: { Button, Dialog },\n methods: {\n openDialog() {\n this.addImageDialog.show = true\n },\n onImageSelect(e) {\n let file = e.target.files[0]\n if (!file) {\n return\n }\n this.addImageDialog.file = file\n fileToBase64(file).then((base64) => {\n this.addImageDialog.url = base64\n })\n },\n addImage(src) {\n this.editor.chain().focus().setImage({ src }).run()\n this.reset()\n },\n reset() {\n this.addImageDialog = this.$options.data().addImageDialog\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Button","Dialog","e","file","fileToBase64","base64","src","_hoisted_1","_hoisted_2","_hoisted_3","_openBlock","_createElementBlock","_Fragment","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","$options","_createVNode","_component_Dialog","$data","_cache","$event","_createElementVNode","args","_toDisplayString","_createCommentVNode","_component_Button","_withCtx","_createTextVNode"],"mappings":"2JAwCA,MAAKA,EAAU,CACb,KAAM,cACN,MAAO,CAAC,QAAQ,EAChB,OAAQ,CAAC,YAAY,EACrB,MAAO,CACL,MAAO,CACL,eAAgB,CAAE,IAAK,GAAI,KAAM,KAAM,KAAM,EAAO,CACtD,CACD,EACD,WAAY,CAAA,OAAEC,EAAQ,OAAAC,CAAQ,EAC9B,QAAS,CACP,YAAa,CACX,KAAK,eAAe,KAAO,EAC5B,EACD,cAAcC,EAAG,CACf,IAAIC,EAAOD,EAAE,OAAO,MAAM,CAAC,EACtBC,IAGL,KAAK,eAAe,KAAOA,EAC3BC,EAAaD,CAAI,EAAE,KAAME,GAAW,CAClC,KAAK,eAAe,IAAMA,EAC3B,EACF,EACD,SAASC,EAAK,CACZ,KAAK,OAAO,MAAK,EAAG,MAAK,EAAG,SAAS,CAAE,IAAAA,EAAK,EAAE,IAAI,EAClD,KAAK,MAAM,CACZ,EACD,OAAQ,CACN,KAAK,eAAiB,KAAK,SAAS,KAAM,EAAC,cAC5C,CACF,CACH,EA/DQC,EAAA,CAAA,MAAM,gGAAgG,EAQhGC,EAAA,CAAA,MAAM,kDAAkD,EAjBtEC,EAAA,CAAA,KAAA,4DAAA,OAAAC,EAAA,EAAAC,EAAAC,EAAA,KAAA,CACEC,EAA8CC,EAAA,OAAA,UADhDC,EAAAC,EAAA,CAAA,QAC2BC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EA+BSC,EAAA,CA9BN,QAAS,CAAsB,MAAA,WAAA,EAHpC,WAIaC,EAAA,eAAe,KAJ5B,sBAIaC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,eAAe,KAAIE,GAC3B,aAAaL,EAAK,QAER,iBACT,IAYQ,CAZRM,EAYQ,QAZRhB,EAYQ,CATNgB,EAKE,QAAA,CAJA,KAAK,OACL,MAAM,mBACL,6BAAQN,EAAa,eAAAA,EAAA,cAAA,GAAAO,CAAA,GACtB,OAAO,oBAETD,EAEO,OAFPf,EACKiB,EAAAL,EAAA,eAAe,KAAI,uBAAA,iBAAA,EAAA,CAAA,IAIlBA,EAAA,eAAe,SADvBT,EAIE,MAAA,CAzBR,IAAA,EAuBS,IAAKS,EAAc,eAAC,IACrB,MAAM,wBAxBd,EAAA,KAAA,EAAAX,CAAA,GAAAiB,EAAA,GAAA,EAAA,IA2Be,UACT,IAES,CAFTR,EAESS,EAAA,CAFD,QAAQ,QAAS,QAAON,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,SAASG,EAAA,eAAe,GAAG,KA5BjE,QAAAQ,EA4BoE,IAE9D,CA9BNC,EA4BoE,gBAE9D,IA9BN,EAAA,IA+BMX,EAAwCS,EAAA,CAA/B,QAAOV,EAAK,KAAA,EAAA,CA/B3B,QAAAW,EA+B6B,IAAQ,CA/BrCC,EA+B6B,UAAQ,IA/BrC,EAAA,oBAAA,EAAA"}

View File

@@ -1,20 +1,20 @@
import { import {
v as d, v as d,
a7 as g, a7 as g,
am as L, al as L,
D as m, D as m,
X as i, X as i,
x as p, x as p,
y as f, y as f,
M as D, O as D,
az as c, aG as c,
aA as h, aH as h,
G as a, J as a,
B as l, G as l,
aJ as v, aB as v,
U as x, U as x,
Q as _, Q as _,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
const w = { const w = {
name: "InsertLink", name: "InsertLink",
props: ["editor"], props: ["editor"],
@@ -118,4 +118,4 @@ function V(t, e, B, C, n, s) {
} }
const R = d(w, [["render", V]]); const R = d(w, [["render", V]]);
export { R as default }; export { R as default };
//# sourceMappingURL=InsertLink-9nQ40Mze.js.map //# sourceMappingURL=InsertLink-b9-oqqq0.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"InsertLink-9nQ40Mze.js","sources":["../../../../frappe-ui/src/components/TextEditor/InsertLink.vue"],"sourcesContent":["<template>\n <slot v-bind=\"{ onClick: openDialog }\"></slot>\n <Dialog\n :options=\"{ title: 'Set Link' }\"\n v-model=\"setLinkDialog.show\"\n @after-leave=\"reset\"\n >\n <template #body-content>\n <FormControl\n type=\"text\"\n label=\"URL\"\n v-model=\"setLinkDialog.url\"\n @keydown.enter=\"(e) => setLink(e.target.value)\"\n />\n </template>\n <template #actions>\n <Button variant=\"solid\" @click=\"setLink(setLinkDialog.url)\">\n Save\n </Button>\n </template>\n </Dialog>\n</template>\n<script>\nimport Dialog from '../Dialog.vue'\nimport Button from '../Button.vue'\nimport Input from '../Input.vue'\n\nexport default {\n name: 'InsertLink',\n props: ['editor'],\n components: { Button, Input, Dialog },\n data() {\n return {\n setLinkDialog: { url: '', show: false },\n }\n },\n methods: {\n openDialog() {\n let existingURL = this.editor.getAttributes('link').href\n if (existingURL) {\n this.setLinkDialog.url = existingURL\n }\n this.setLinkDialog.show = true\n },\n setLink(url) {\n // empty\n if (url === '') {\n this.editor.chain().focus().extendMarkRange('link').unsetLink().run()\n } else {\n // update link\n this.editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: url })\n .run()\n }\n\n this.setLinkDialog.show = false\n this.setLinkDialog.url = ''\n },\n reset() {\n this.setLinkDialog = this.$options.data().setLinkDialog\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Button","Input","Dialog","existingURL","url","_openBlock","_createElementBlock","_Fragment","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","$options","_createVNode","_component_Dialog","$data","_cache","$event","_component_FormControl","_withKeys","e","_component_Button","_withCtx","_createTextVNode"],"mappings":"mJA2BA,MAAKA,EAAU,CACb,KAAM,aACN,MAAO,CAAC,QAAQ,EAChB,WAAY,CAAEC,OAAAA,EAAQ,MAAAC,EAAO,OAAAC,CAAQ,EACrC,MAAO,CACL,MAAO,CACL,cAAe,CAAE,IAAK,GAAI,KAAM,EAAO,CACzC,CACD,EACD,QAAS,CACP,YAAa,CACX,IAAIC,EAAc,KAAK,OAAO,cAAc,MAAM,EAAE,KAChDA,IACF,KAAK,cAAc,IAAMA,GAE3B,KAAK,cAAc,KAAO,EAC3B,EACD,QAAQC,EAAK,CAEPA,IAAQ,GACV,KAAK,OAAO,MAAK,EAAG,MAAK,EAAG,gBAAgB,MAAM,EAAE,UAAW,EAAC,IAAI,EAGpE,KAAK,OACF,MAAM,EACN,MAAM,EACN,gBAAgB,MAAM,EACtB,QAAQ,CAAE,KAAMA,EAAK,EACrB,IAAI,EAGT,KAAK,cAAc,KAAO,GAC1B,KAAK,cAAc,IAAM,EAC1B,EACD,OAAQ,CACN,KAAK,cAAgB,KAAK,SAAS,KAAM,EAAC,aAC3C,CACF,CACH,+EAjEA,OAAAC,EAAA,EAAAC,EAAAC,EAAA,KAAA,CACEC,EAA8CC,EAAA,OAAA,UADhDC,EAAAC,EAAA,CAAA,QAC2BC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EAkBSC,EAAA,CAjBN,QAAS,CAAqB,MAAA,UAAA,EAHnC,WAIaC,EAAA,cAAc,KAJ3B,sBAIaC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,cAAc,KAAIE,GAC1B,aAAaL,EAAK,QAER,iBACT,IAKE,CALFC,EAKEK,EAAA,CAJA,KAAK,OACL,MAAM,MAVd,WAWiBH,EAAA,cAAc,IAX/B,sBAWiBC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,cAAc,IAAGE,GACzB,UAAOD,EAAA,CAAA,IAAAA,EAAA,CAAA,EAZhBG,EAYyBC,GAAMR,EAAA,QAAQQ,EAAE,OAAO,KAAK,EAAA,CAAA,OAAA,CAAA,6BAGtC,UACT,IAES,CAFTP,EAESQ,EAAA,CAFD,QAAQ,QAAS,QAAOL,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,QAAQG,EAAA,cAAc,GAAG,KAhB/D,QAAAO,EAgBkE,IAE5D,CAlBNC,EAgBkE,QAE5D,IAlBN,EAAA,MAAA,EAAA"} {"version":3,"file":"InsertLink-b9-oqqq0.js","sources":["../../../../frappe-ui/src/components/TextEditor/InsertLink.vue"],"sourcesContent":["<template>\n <slot v-bind=\"{ onClick: openDialog }\"></slot>\n <Dialog\n :options=\"{ title: 'Set Link' }\"\n v-model=\"setLinkDialog.show\"\n @after-leave=\"reset\"\n >\n <template #body-content>\n <FormControl\n type=\"text\"\n label=\"URL\"\n v-model=\"setLinkDialog.url\"\n @keydown.enter=\"(e) => setLink(e.target.value)\"\n />\n </template>\n <template #actions>\n <Button variant=\"solid\" @click=\"setLink(setLinkDialog.url)\">\n Save\n </Button>\n </template>\n </Dialog>\n</template>\n<script>\nimport Dialog from '../Dialog.vue'\nimport Button from '../Button.vue'\nimport Input from '../Input.vue'\n\nexport default {\n name: 'InsertLink',\n props: ['editor'],\n components: { Button, Input, Dialog },\n data() {\n return {\n setLinkDialog: { url: '', show: false },\n }\n },\n methods: {\n openDialog() {\n let existingURL = this.editor.getAttributes('link').href\n if (existingURL) {\n this.setLinkDialog.url = existingURL\n }\n this.setLinkDialog.show = true\n },\n setLink(url) {\n // empty\n if (url === '') {\n this.editor.chain().focus().extendMarkRange('link').unsetLink().run()\n } else {\n // update link\n this.editor\n .chain()\n .focus()\n .extendMarkRange('link')\n .setLink({ href: url })\n .run()\n }\n\n this.setLinkDialog.show = false\n this.setLinkDialog.url = ''\n },\n reset() {\n this.setLinkDialog = this.$options.data().setLinkDialog\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Button","Input","Dialog","existingURL","url","_openBlock","_createElementBlock","_Fragment","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","$options","_createVNode","_component_Dialog","$data","_cache","$event","_component_FormControl","_withKeys","e","_component_Button","_withCtx","_createTextVNode"],"mappings":"mJA2BA,MAAKA,EAAU,CACb,KAAM,aACN,MAAO,CAAC,QAAQ,EAChB,WAAY,CAAEC,OAAAA,EAAQ,MAAAC,EAAO,OAAAC,CAAQ,EACrC,MAAO,CACL,MAAO,CACL,cAAe,CAAE,IAAK,GAAI,KAAM,EAAO,CACzC,CACD,EACD,QAAS,CACP,YAAa,CACX,IAAIC,EAAc,KAAK,OAAO,cAAc,MAAM,EAAE,KAChDA,IACF,KAAK,cAAc,IAAMA,GAE3B,KAAK,cAAc,KAAO,EAC3B,EACD,QAAQC,EAAK,CAEPA,IAAQ,GACV,KAAK,OAAO,MAAK,EAAG,MAAK,EAAG,gBAAgB,MAAM,EAAE,UAAW,EAAC,IAAI,EAGpE,KAAK,OACF,MAAM,EACN,MAAM,EACN,gBAAgB,MAAM,EACtB,QAAQ,CAAE,KAAMA,EAAK,EACrB,IAAI,EAGT,KAAK,cAAc,KAAO,GAC1B,KAAK,cAAc,IAAM,EAC1B,EACD,OAAQ,CACN,KAAK,cAAgB,KAAK,SAAS,KAAM,EAAC,aAC3C,CACF,CACH,+EAjEA,OAAAC,EAAA,EAAAC,EAAAC,EAAA,KAAA,CACEC,EAA8CC,EAAA,OAAA,UADhDC,EAAAC,EAAA,CAAA,QAC2BC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EAkBSC,EAAA,CAjBN,QAAS,CAAqB,MAAA,UAAA,EAHnC,WAIaC,EAAA,cAAc,KAJ3B,sBAIaC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,cAAc,KAAIE,GAC1B,aAAaL,EAAK,QAER,iBACT,IAKE,CALFC,EAKEK,EAAA,CAJA,KAAK,OACL,MAAM,MAVd,WAWiBH,EAAA,cAAc,IAX/B,sBAWiBC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,cAAc,IAAGE,GACzB,UAAOD,EAAA,CAAA,IAAAA,EAAA,CAAA,EAZhBG,EAYyBC,GAAMR,EAAA,QAAQQ,EAAE,OAAO,KAAK,EAAA,CAAA,OAAA,CAAA,6BAGtC,UACT,IAES,CAFTP,EAESQ,EAAA,CAFD,QAAQ,QAAS,QAAOL,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,QAAQG,EAAA,cAAc,GAAG,KAhB/D,QAAAO,EAgBkE,IAE5D,CAlBNC,EAgBkE,QAE5D,IAlBN,EAAA,MAAA,EAAA"}

View File

@@ -1,31 +1,31 @@
import { import {
v as _, v as _,
a7 as C, a7 as v,
D as v, D as C,
aL as k, aA as k,
X as r, X as r,
x as u, x as u,
y as c, y as c,
M as h, O as h,
az as x, aG as x,
aA as B, aH as y,
G as a, J as a,
B as l, G as l,
C as y, H as B,
U as n, U as n,
I as U, L as U,
A as w, F as w,
J as p, M as p,
Q as A, Q as F,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
const I = { const A = {
name: "InsertImage", name: "InsertImage",
props: ["editor"], props: ["editor"],
expose: ["openDialog"], expose: ["openDialog"],
data() { data() {
return { addVideoDialog: { url: "", file: null, show: !1 } }; return { addVideoDialog: { url: "", file: null, show: !1 } };
}, },
components: { Button: C, Dialog: v, FileUploader: k }, components: { Button: v, Dialog: C, FileUploader: k },
methods: { methods: {
openDialog() { openDialog() {
this.addVideoDialog.show = !0; this.addVideoDialog.show = !0;
@@ -47,19 +47,19 @@ const I = {
}, },
}, },
}, },
F = { class: "flex items-center space-x-2" }, I = { class: "flex items-center space-x-2" },
N = ["src"]; N = ["src"];
function S(i, o, L, z, e, t) { function S(i, o, L, G, e, t) {
const s = r("Button"), const s = r("Button"),
V = r("FileUploader"), V = r("FileUploader"),
g = r("Dialog"); g = r("Dialog");
return ( return (
u(), u(),
c( c(
A, F,
null, null,
[ [
h(i.$slots, "default", x(B({ onClick: t.openDialog }))), h(i.$slots, "default", x(y({ onClick: t.openDialog }))),
a( a(
g, g,
{ {
@@ -89,7 +89,7 @@ function S(i, o, L, z, e, t) {
uploading: m, uploading: m,
openFileSelector: D, openFileSelector: D,
}) => [ }) => [
y("div", F, [ B("div", I, [
a( a(
s, s,
{ onClick: D }, { onClick: D },
@@ -196,6 +196,6 @@ function S(i, o, L, z, e, t) {
) )
); );
} }
const R = _(I, [["render", S]]); const P = _(A, [["render", S]]);
export { R as default }; export { P as default };
//# sourceMappingURL=InsertVideo-nOXySFw5.js.map //# sourceMappingURL=InsertVideo-rrce2h6I.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"InsertVideo-nOXySFw5.js","sources":["../../../../frappe-ui/src/components/TextEditor/InsertVideo.vue"],"sourcesContent":["<template>\n <slot v-bind=\"{ onClick: openDialog }\"></slot>\n <Dialog\n :options=\"{ title: 'Add Video' }\"\n v-model=\"addVideoDialog.show\"\n @after-leave=\"reset\"\n >\n <template #body-content>\n <FileUploader\n file-types=\"video/*\"\n @success=\"(file) => (addVideoDialog.url = file.file_url)\"\n >\n <template v-slot=\"{ file, progress, uploading, openFileSelector }\">\n <div class=\"flex items-center space-x-2\">\n <Button @click=\"openFileSelector\">\n {{\n uploading\n ? `Uploading ${progress}%`\n : addVideoDialog.url\n ? 'Change Video'\n : 'Upload Video'\n }}\n </Button>\n <Button\n v-if=\"addVideoDialog.url\"\n @click=\"\n () => {\n addVideoDialog.url = null\n addVideoDialog.file = null\n }\n \"\n >\n Remove\n </Button>\n </div>\n </template>\n </FileUploader>\n <video\n v-if=\"addVideoDialog.url\"\n :src=\"addVideoDialog.url\"\n class=\"mt-2 w-full rounded-lg\"\n type=\"video/mp4\"\n controls\n />\n </template>\n <template #actions>\n <Button variant=\"solid\" @click=\"addVideo(addVideoDialog.url)\">\n Insert Video\n </Button>\n <Button @click=\"reset\">Cancel</Button>\n </template>\n </Dialog>\n</template>\n<script>\nimport Button from '../Button.vue'\nimport Dialog from '../Dialog.vue'\nimport FileUploader from '../FileUploader.vue'\n\nexport default {\n name: 'InsertImage',\n props: ['editor'],\n expose: ['openDialog'],\n data() {\n return {\n addVideoDialog: { url: '', file: null, show: false },\n }\n },\n components: { Button, Dialog, FileUploader },\n methods: {\n openDialog() {\n this.addVideoDialog.show = true\n },\n onVideoSelect(e) {\n let file = e.target.files[0]\n if (!file) {\n return\n }\n this.addVideoDialog.file = file\n },\n\n addVideo(src) {\n this.editor\n .chain()\n .focus()\n .insertContent(`<video src=\"${src}\"></video>`)\n .run()\n this.reset()\n },\n reset() {\n this.addVideoDialog = this.$options.data().addVideoDialog\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Button","Dialog","FileUploader","e","file","src","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_Fragment","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","$options","_createVNode","_component_Dialog","$data","_cache","$event","_component_FileUploader","_withCtx","progress","uploading","openFileSelector","_createElementVNode","_component_Button","_createTextVNode","_toDisplayString","_createBlock","_createCommentVNode"],"mappings":"uKA0DA,MAAKA,EAAU,CACb,KAAM,cACN,MAAO,CAAC,QAAQ,EAChB,OAAQ,CAAC,YAAY,EACrB,MAAO,CACL,MAAO,CACL,eAAgB,CAAE,IAAK,GAAI,KAAM,KAAM,KAAM,EAAO,CACtD,CACD,EACD,WAAY,CAAEC,OAAAA,EAAQ,OAAAC,EAAQ,aAAAC,CAAc,EAC5C,QAAS,CACP,YAAa,CACX,KAAK,eAAe,KAAO,EAC5B,EACD,cAAcC,EAAG,CACf,IAAIC,EAAOD,EAAE,OAAO,MAAM,CAAC,EACtBC,IAGL,KAAK,eAAe,KAAOA,EAC5B,EAED,SAASC,EAAK,CACZ,KAAK,OACF,MAAM,EACN,MAAM,EACN,cAAc,eAAeA,CAAG,YAAY,EAC5C,IAAI,EACP,KAAK,MAAM,CACZ,EACD,OAAQ,CACN,KAAK,eAAiB,KAAK,SAAS,KAAM,EAAC,cAC5C,CACF,CACH,EA/EeC,EAAA,CAAA,MAAM,6BAA6B,EAblDC,EAAA,CAAA,KAAA,gFAAA,OAAAC,EAAA,EAAAC,EAAAC,EAAA,KAAA,CACEC,EAA8CC,EAAA,OAAA,UADhDC,EAAAC,EAAA,CAAA,QAC2BC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EAiDSC,EAAA,CAhDN,QAAS,CAAsB,MAAA,WAAA,EAHpC,WAIaC,EAAA,eAAe,KAJ5B,sBAIaC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,eAAe,KAAIE,GAC3B,aAAaL,EAAK,QAER,iBACT,IA4Be,CA5BfC,EA4BeK,EAAA,CA3Bb,aAAW,UACV,UAAOF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAGf,GAAUc,EAAA,eAAe,IAAMd,EAAK,YAVvD,QAaUkB,EAAA,CAqBM,CAtBY,KAAAlB,EAAM,SAAAmB,EAAU,UAAAC,EAAW,iBAAAC,KAAgB,CAC7DC,EAqBM,MArBNpB,EAqBM,CApBJU,EAQSW,EAAA,CARA,QAAOF,CAAgB,EAAA,CAd5C,QAAAH,EAec,IAME,CArBhBM,EAAAC,EAgBgBL,eAA2CD,CAAQ,IAAwBL,EAAA,eAAe,wCAhB1G,EAAA,qBAwBoBA,EAAA,eAAe,SADvBY,EAUSH,EAAA,CAjCrB,IAAA,EAyBe,aAAkDT,EAAA,eAAe,IAAG,KAA0BA,EAAA,eAAe,KAAI,QAzBhI,QAAAI,EA+Ba,IAED,CAjCZM,EA+Ba,UAED,IAjCZ,EAAA,sBAAAG,EAAA,GAAA,EAAA,MAAA,EAAA,IAsCcb,EAAA,eAAe,SADvBT,EAME,QAAA,CA3CR,IAAA,EAuCS,IAAKS,EAAc,eAAC,IACrB,MAAM,yBACN,KAAK,YACL,SAAA,EA1CR,EAAA,KAAA,EAAAX,CAAA,GAAAwB,EAAA,GAAA,EAAA,IA6Ce,UACT,IAES,CAFTf,EAESW,EAAA,CAFD,QAAQ,QAAS,QAAOR,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,SAASG,EAAA,eAAe,GAAG,KA9CjE,QAAAI,EA8CoE,IAE9D,CAhDNM,EA8CoE,gBAE9D,IAhDN,EAAA,IAiDMZ,EAAsCW,EAAA,CAA7B,QAAOZ,EAAK,KAAA,EAAA,CAjD3B,QAAAO,EAiD6B,IAAM,CAjDnCM,EAiD6B,QAAM,IAjDnC,EAAA,oBAAA,EAAA"} {"version":3,"file":"InsertVideo-rrce2h6I.js","sources":["../../../../frappe-ui/src/components/TextEditor/InsertVideo.vue"],"sourcesContent":["<template>\n <slot v-bind=\"{ onClick: openDialog }\"></slot>\n <Dialog\n :options=\"{ title: 'Add Video' }\"\n v-model=\"addVideoDialog.show\"\n @after-leave=\"reset\"\n >\n <template #body-content>\n <FileUploader\n file-types=\"video/*\"\n @success=\"(file) => (addVideoDialog.url = file.file_url)\"\n >\n <template v-slot=\"{ file, progress, uploading, openFileSelector }\">\n <div class=\"flex items-center space-x-2\">\n <Button @click=\"openFileSelector\">\n {{\n uploading\n ? `Uploading ${progress}%`\n : addVideoDialog.url\n ? 'Change Video'\n : 'Upload Video'\n }}\n </Button>\n <Button\n v-if=\"addVideoDialog.url\"\n @click=\"\n () => {\n addVideoDialog.url = null\n addVideoDialog.file = null\n }\n \"\n >\n Remove\n </Button>\n </div>\n </template>\n </FileUploader>\n <video\n v-if=\"addVideoDialog.url\"\n :src=\"addVideoDialog.url\"\n class=\"mt-2 w-full rounded-lg\"\n type=\"video/mp4\"\n controls\n />\n </template>\n <template #actions>\n <Button variant=\"solid\" @click=\"addVideo(addVideoDialog.url)\">\n Insert Video\n </Button>\n <Button @click=\"reset\">Cancel</Button>\n </template>\n </Dialog>\n</template>\n<script>\nimport Button from '../Button.vue'\nimport Dialog from '../Dialog.vue'\nimport FileUploader from '../FileUploader.vue'\n\nexport default {\n name: 'InsertImage',\n props: ['editor'],\n expose: ['openDialog'],\n data() {\n return {\n addVideoDialog: { url: '', file: null, show: false },\n }\n },\n components: { Button, Dialog, FileUploader },\n methods: {\n openDialog() {\n this.addVideoDialog.show = true\n },\n onVideoSelect(e) {\n let file = e.target.files[0]\n if (!file) {\n return\n }\n this.addVideoDialog.file = file\n },\n\n addVideo(src) {\n this.editor\n .chain()\n .focus()\n .insertContent(`<video src=\"${src}\"></video>`)\n .run()\n this.reset()\n },\n reset() {\n this.addVideoDialog = this.$options.data().addVideoDialog\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Button","Dialog","FileUploader","e","file","src","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_Fragment","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","$options","_createVNode","_component_Dialog","$data","_cache","$event","_component_FileUploader","_withCtx","progress","uploading","openFileSelector","_createElementVNode","_component_Button","_createTextVNode","_toDisplayString","_createBlock","_createCommentVNode"],"mappings":"uKA0DA,MAAKA,EAAU,CACb,KAAM,cACN,MAAO,CAAC,QAAQ,EAChB,OAAQ,CAAC,YAAY,EACrB,MAAO,CACL,MAAO,CACL,eAAgB,CAAE,IAAK,GAAI,KAAM,KAAM,KAAM,EAAO,CACtD,CACD,EACD,WAAY,CAAEC,OAAAA,EAAQ,OAAAC,EAAQ,aAAAC,CAAc,EAC5C,QAAS,CACP,YAAa,CACX,KAAK,eAAe,KAAO,EAC5B,EACD,cAAcC,EAAG,CACf,IAAIC,EAAOD,EAAE,OAAO,MAAM,CAAC,EACtBC,IAGL,KAAK,eAAe,KAAOA,EAC5B,EAED,SAASC,EAAK,CACZ,KAAK,OACF,MAAM,EACN,MAAM,EACN,cAAc,eAAeA,CAAG,YAAY,EAC5C,IAAI,EACP,KAAK,MAAM,CACZ,EACD,OAAQ,CACN,KAAK,eAAiB,KAAK,SAAS,KAAM,EAAC,cAC5C,CACF,CACH,EA/EeC,EAAA,CAAA,MAAM,6BAA6B,EAblDC,EAAA,CAAA,KAAA,gFAAA,OAAAC,EAAA,EAAAC,EAAAC,EAAA,KAAA,CACEC,EAA8CC,EAAA,OAAA,UADhDC,EAAAC,EAAA,CAAA,QAC2BC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EAiDSC,EAAA,CAhDN,QAAS,CAAsB,MAAA,WAAA,EAHpC,WAIaC,EAAA,eAAe,KAJ5B,sBAIaC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,eAAe,KAAIE,GAC3B,aAAaL,EAAK,QAER,iBACT,IA4Be,CA5BfC,EA4BeK,EAAA,CA3Bb,aAAW,UACV,UAAOF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAGf,GAAUc,EAAA,eAAe,IAAMd,EAAK,YAVvD,QAaUkB,EAAA,CAqBM,CAtBY,KAAAlB,EAAM,SAAAmB,EAAU,UAAAC,EAAW,iBAAAC,KAAgB,CAC7DC,EAqBM,MArBNpB,EAqBM,CApBJU,EAQSW,EAAA,CARA,QAAOF,CAAgB,EAAA,CAd5C,QAAAH,EAec,IAME,CArBhBM,EAAAC,EAgBgBL,eAA2CD,CAAQ,IAAwBL,EAAA,eAAe,wCAhB1G,EAAA,qBAwBoBA,EAAA,eAAe,SADvBY,EAUSH,EAAA,CAjCrB,IAAA,EAyBe,aAAkDT,EAAA,eAAe,IAAG,KAA0BA,EAAA,eAAe,KAAI,QAzBhI,QAAAI,EA+Ba,IAED,CAjCZM,EA+Ba,UAED,IAjCZ,EAAA,sBAAAG,EAAA,GAAA,EAAA,MAAA,EAAA,IAsCcb,EAAA,eAAe,SADvBT,EAME,QAAA,CA3CR,IAAA,EAuCS,IAAKS,EAAc,eAAC,IACrB,MAAM,yBACN,KAAK,YACL,SAAA,EA1CR,EAAA,KAAA,EAAAX,CAAA,GAAAwB,EAAA,GAAA,EAAA,IA6Ce,UACT,IAES,CAFTf,EAESW,EAAA,CAFD,QAAQ,QAAS,QAAOR,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,SAASG,EAAA,eAAe,GAAG,KA9CjE,QAAAI,EA8CoE,IAE9D,CAhDNM,EA8CoE,gBAE9D,IAhDN,EAAA,IAiDMZ,EAAsCW,EAAA,CAA7B,QAAOZ,EAAK,KAAA,EAAA,CAjD3B,QAAAO,EAiD6B,IAAM,CAjDnCM,EAiD6B,QAAM,IAjDnC,EAAA,oBAAA,EAAA"}

View File

@@ -1,95 +0,0 @@
import {
d as n,
k as _,
y as m,
C as s,
G as o,
H as e,
A as p,
B as r,
J as u,
x as c,
a6 as d,
U as b,
I as f,
a7 as h,
} from "./frappe-ui-20hnMCM8.js";
import { P as x } from "./plus-pxSjkL_w.js";
import "./index-Vx7mSx23.js";
const j = { class: "text-base h-screen" },
y = {
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
},
k = { class: "flex" },
w = s("div", null, null, -1),
V = {
__name: "JobDetail",
props: { job: { type: String, required: !0 } },
setup(i) {
const l = n("$user");
return (
_({
url: "lms.lms.api.get_job_details",
params: { job: i.job },
cache: ["job"],
auto: !0,
}),
(t, J) => {
var a;
return (
c(),
m("div", j, [
s("header", y, [
o(
e(d),
{
class: "h-7",
items: [
{
label: t.__("Jobs"),
route: { name: "Jobs" },
},
],
},
null,
8,
["items"]
),
s("div", k, [
(a = e(l).data) != null && a.name
? (c(),
p(
e(h),
{ key: 0, variant: "solid" },
{
prefix: r(() => [
o(e(x), {
class: "h-4 w-4",
}),
]),
default: r(() => [
b(
" " +
f(
t.__(
"New Job"
)
),
1
),
]),
_: 1,
}
))
: u("", !0),
]),
]),
w,
])
);
}
);
},
};
export { V as default };
//# sourceMappingURL=JobDetail-NAXvVry4.js.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"JobDetail-NAXvVry4.js","sources":["../../../../frontend/src/pages/JobDetail.vue"],"sourcesContent":["<template>\n\t<div class=\"text-base h-screen\">\n\t\t<header\n\t\t\tclass=\"sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5\"\n\t\t>\n\t\t\t<Breadcrumbs\n\t\t\t\tclass=\"h-7\"\n\t\t\t\t:items=\"[{ label: __('Jobs'), route: { name: 'Jobs' } }]\"\n\t\t\t/>\n\t\t\t<div class=\"flex\">\n\t\t\t\t<Button v-if=\"user.data?.name\" variant=\"solid\">\n\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t<Plus class=\"h-4 w-4\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ __('New Job') }}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</header>\n\t\t<div>\n\t\t\t\n\t\t</div>\n\t</div>\n</template>\n<script setup>\nimport { createDocumentResource, Button, Breadcrumbs, createResource } from 'frappe-ui';\nimport { inject } from 'vue';\nimport { Plus } from 'lucide-vue-next';\n\nconst user = inject('$user')\n\nconst props = defineProps({\n\tjob: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n})\nconst job = createResource({\n\turl: \"lms.lms.api.get_job_details\",\n\tparams: {\n\t\tjob: props.job,\n\t},\n\tcache: [\"job\"],\n\tauto: true,\n})\n</script>\n"],"names":["user","inject","createResource","__props"],"mappings":"qcA4BA,MAAMA,EAAOC,EAAO,OAAO,EAQf,OAAAC,EAAe,CAC1B,IAAK,8BACL,OAAQ,CACP,IATYC,EASD,GACX,EACD,MAAO,CAAC,KAAK,EACb,KAAM,EACP,CAAC"}

View File

@@ -0,0 +1,557 @@
import {
aa as T,
r as L,
ab as U,
d as w,
k as M,
x as u,
F as D,
G as c,
H as s,
L as n,
y as m,
J as i,
K as e,
a7 as x,
U as b,
aA as H,
D as P,
s as Y,
M as C,
a6 as B,
a8 as F,
} from "./frappe-ui-LT4YqXtx.js";
import { a as J, d as N, c as z } from "./index-6k1S_EjG.js";
import { F as q } from "./file-text-w2g11TfY.js";
import { M as E } from "./map-pin-yIki2ElO.js";
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const I = J("FlagIcon", [
[
"path",
{
d: "M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",
key: "i9b6wo",
},
],
["line", { x1: "4", x2: "4", y1: "22", y2: "15", key: "1cm3nv" }],
]);
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const R = J("SendHorizontalIcon", [
["path", { d: "m3 3 3 9-3 9 19-9Z", key: "1aobqy" }],
["path", { d: "M6 12h16", key: "s4cdu5" }],
]),
G = { class: "flex flex-col gap-4" },
K = { key: 0 },
O = { class: "" },
Z = { key: 1, class: "flex items-center" },
Q = { class: "border rounded-md p-2 mr-2" },
W = { class: "flex flex-col" },
X = { class: "text-sm text-gray-500 mt-1" },
ee = {
__name: "JobApplicationModal",
props: T(
{ job: { type: String, required: !0 } },
{ modelValue: {}, modelModifiers: {} }
),
emits: ["update:modelValue"],
setup(f) {
const r = L(null),
h = U(f, "modelValue"),
_ = w("$user"),
y = f,
t = (p) => {
if (p.name.split(".").pop().toLowerCase() != "pdf")
return "Only PDF file is allowed";
},
v = M({
url: "frappe.client.insert",
makeParams(p) {
var o, a;
return {
doc: {
doctype: "LMS Job Application",
user: (o = _.data) == null ? void 0 : o.name,
resume:
(a = r.value) == null
? void 0
: a.file_name,
job: y.job,
},
};
},
}),
j = (p) => {
v.submit(
{},
{
validate() {
if (!r.value)
return "Please upload your resume";
},
onSuccess() {
z({
title: "Success",
text: "Your application has been submitted",
icon: "check",
iconClasses:
"bg-green-600 text-white rounded-md p-px",
});
},
onError(o) {
var a;
z({
title: "Error",
text:
((a = o.messages) == null
? void 0
: a[0]) || o,
icon: "x",
iconClasses:
"bg-red-600 text-white rounded-md p-px",
position: "top-center",
timeout: 10,
});
},
}
);
};
return (p, o) => (
u(),
D(
e(P),
{
modelValue: h.value,
"onUpdate:modelValue":
o[1] || (o[1] = (a) => (h.value = a)),
class: "text-base",
options: {
title: p.__("Apply for this job"),
size: "lg",
actions: [
{
label: "Submit",
variant: "solid",
onClick: (a) => {
j();
},
},
],
},
},
{
"body-content": c(() => [
s("div", G, [
s(
"p",
null,
n(
p.__(
"Submit your resume to proceed with your application for this position. Upon submission, it will be shared with the job poster."
)
),
1
),
r.value
? (u(),
m("div", Z, [
s("div", Q, [
i(e(q), {
class: "h-5 w-5 stroke-1.5 text-gray-700",
}),
]),
s("div", W, [
s(
"span",
null,
n(r.value.file_name),
1
),
s(
"span",
X,
n(e(N)(r.value.file_size)),
1
),
]),
]))
: (u(),
m("div", K, [
i(
e(H),
{
fileTypes: [".pdf"],
validateFile: t,
onSuccess:
o[0] ||
(o[0] = (a) => {
r.value = a;
}),
},
{
default: c(
({
file: a,
progress: l,
uploading: d,
openFileSelector: g,
}) => [
s("div", O, [
i(
e(x),
{
onClick:
g,
loading:
d,
},
{
default:
c(
() => [
b(
n(
d
? `Uploading ${l}%`
: "Upload your resume"
),
1
),
]
),
_: 2,
},
1032,
[
"onClick",
"loading",
]
),
]),
]
),
_: 1,
},
8,
["fileTypes"]
),
])),
]),
]),
_: 1,
},
8,
["modelValue", "options"]
)
);
},
},
se = { class: "text-base h-screen" },
te = {
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
},
oe = { key: 0, class: "flex" },
ae = { key: 1 },
le = { key: 0 },
ie = { class: "p-5 sm:p-5" },
ne = { class: "flex mb-4" },
re = ["src"],
de = { class: "text-2xl font-semibold mb-2" },
ce = { class: "font-medium" },
pe = { class: "font-medium" },
ue = { class: "flex items-center mt-2" },
me = ["innerHTML"],
ye = {
__name: "JobDetail",
props: { job: { type: String, required: !0 } },
setup(f) {
var o, a;
const r = w("$user"),
h = w("$dayjs"),
_ = L(!1),
y = f,
t = M({
url: "lms.lms.api.get_job_details",
params: { job: y.job },
cache: ["job", y.job],
auto: !0,
}),
v = M({
url: "frappe.client.get_list",
params: {
doctype: "LMS Job Application",
filters: {
job: (o = t.data) == null ? void 0 : o.name,
user: (a = r.data) == null ? void 0 : a.name,
},
},
});
Y(() => {
var l;
(l = r.data) != null && l.name && v.submit();
});
const j = () => {
_.value = !0;
},
p = (l) => {
window.location.href = `/login?redirect-to=/job-openings/${l}`;
};
return (l, d) => {
var g, $, V, S;
return (
u(),
m("div", se, [
s("header", te, [
i(
e(B),
{
class: "h-7",
items: [
{
label: l.__("Jobs"),
route: { name: "Jobs" },
},
{
label:
(g = e(t).data) == null
? void 0
: g.job_title,
route: {
name: "JobDetail",
params: {
job:
($ = e(t).data) == null
? void 0
: $.name,
},
},
},
],
},
null,
8,
["items"]
),
(V = e(r).data) != null && V.name
? (u(),
m("div", oe, [
i(
e(x),
{ class: "mr-2" },
{
prefix: c(() => [
i(e(I), {
class: "h-4 w-4",
}),
]),
default: c(() => [
b(
" " + n(l.__("Report")),
1
),
]),
_: 1,
}
),
(S = e(v).data) != null && S.length
? C("", !0)
: (u(),
D(
e(x),
{
key: 0,
variant: "solid",
onClick:
d[0] ||
(d[0] = (k) => j()),
},
{
prefix: c(() => [
i(e(R), {
class: "h-4 w-4",
}),
]),
default: c(() => [
b(
" " +
n(
l.__(
"Apply"
)
),
1
),
]),
_: 1,
}
)),
]))
: (u(),
m("div", ae, [
i(
e(x),
{
onClick:
d[1] ||
(d[1] = (k) => {
var A;
return p(
(A = e(t).data) ==
null
? void 0
: A.name
);
}),
},
{
default: c(() => [
s(
"span",
null,
n(
l.__(
"Login to apply"
)
),
1
),
]),
_: 1,
}
),
])),
]),
e(t).data
? (u(),
m("div", le, [
s("div", ie, [
s("div", ne, [
s(
"img",
{
src: e(t).data.company_logo,
class: "w-16 h-16 rounded-lg object-contain mr-4",
},
null,
8,
re
),
s("div", null, [
s(
"div",
de,
n(e(t).data.job_title),
1
),
s("div", null, [
b(
n(l.__("posted by")) +
" ",
1
),
s(
"span",
ce,
n(
e(t).data
.company_name
),
1
),
b(
" " +
n(l.__("on")) +
" ",
1
),
s(
"span",
pe,
n(
e(h)(
e(t).data
.creation
).format(
"DD MMM YYYY"
)
),
1
),
]),
s("div", ue, [
i(
e(F),
{
label: e(t).data
.type,
theme: "green",
size: "lg",
},
null,
8,
["label"]
),
i(
e(F),
{
label: e(t).data
.location,
theme: "gray",
size: "lg",
class: "ml-4",
},
{
prefix: c(() => [
i(e(E), {
class: "h-4 w-4 stroke-1.5",
}),
]),
_: 1,
},
8,
["label"]
),
]),
]),
]),
s(
"p",
{
innerHTML:
e(t).data.description,
class: "ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-gray-300 prose-th:border-gray-300 prose-td:relative prose-th:relative prose-th:bg-gray-100 prose-sm max-w-none !whitespace-normal mt-6",
},
null,
8,
me
),
]),
i(
ee,
{
modelValue: _.value,
"onUpdate:modelValue":
d[2] ||
(d[2] = (k) => (_.value = k)),
job: e(t).data.name,
},
null,
8,
["modelValue", "job"]
),
]))
: C("", !0),
])
);
};
},
};
export { ye as default };
//# sourceMappingURL=JobDetail-c-bT6KGV.js.map

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"version":3,"file":"Jobs-PZPyKz-0.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/map-pin.js","../../../../frontend/src/components/JobCard.vue","../../../../frontend/src/pages/Jobs.vue"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MapPin = createLucideIcon(\"MapPinIcon\", [\n [\"path\", { d: \"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z\", key: \"2oe9fu\" }],\n [\"circle\", { cx: \"12\", cy: \"10\", r: \"3\", key: \"ilqhr7\" }]\n]);\n\nexport { MapPin as default };\n//# sourceMappingURL=map-pin.js.map\n","<template>\n\t<div class=\"flex shadow rounded-md p-4 h-full\">\n\t\t<img\n\t\t\t:src=\"job.company_logo\"\n\t\t\tclass=\"w-12 h-12 rounded-lg object-contain mr-4\"\n\t\t/>\n\t\t<div>\n\t\t\t<div class=\"text-xl font-semibold mb-2\">\n\t\t\t\t{{ job.job_title }}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t{{ __(\"posted by\") }}\n\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t{{ job.company_name }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"flex items-center my-4\">\n\t\t\t\t<Badge :label=\"job.type\" theme=\"green\" size=\"lg\" class=\"mr-4\"/>\n\t\t\t\t<Badge :label=\"job.location\" theme=\"gray\" size=\"lg\">\n\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t<MapPin class=\"h-4 w-4 stroke-1.5\" />\n\t\t\t\t\t</template>\n\t\t\t\t</Badge>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t{{ __(\"posted on\") }}\n\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t{{ dayjs(job.creation).format('DD MMM YYYY') }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<!-- <div class=\"flex flex-col shadow rounded-md p-4 h-full\">\n\t\t<div class=\"flex justify-between\">\n\t\t\t<div>\n\t\t\t\t<div class=\"text-xl font-semibold mb-2\">\n\t\t\t\t\t{{ job.job_title }}\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t{{ __(\"posted by\") }}\n\t\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t\t{{ job.company_name }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<img\n\t\t\t\t:src=\"job.company_logo\"\n\t\t\t\tclass=\"w-12 h-12 rounded-lg object-contain\"\n\t\t\t/>\n\t\t</div>\n\t\t<div class=\"flex justify-between mt-8\">\n\t\t\t<div class=\"flex items-center\">\n\t\t\t\t<Badge :label=\"job.type\" theme=\"green\" size=\"lg\" class=\"mr-4\"/>\n\t\t\t\t<Badge :label=\"job.location\" theme=\"gray\" size=\"lg\">\n\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t<MapPin class=\"h-4 w-4 stroke-1.5\" />\n\t\t\t\t\t</template>\n\t\t\t\t</Badge>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t{{ dayjs(job.creation).format('DD MMM YYYY') }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t</div> -->\n</template>\n<script setup>\nimport { MapPin } from 'lucide-vue-next'\nimport { Badge } from 'frappe-ui'\nimport { inject } from 'vue'\n\nconst dayjs = inject('$dayjs')\nconst props = defineProps({\n\tjob: {\n\t\ttype: Object,\n\t\tdefault: null,\n\t},\n})\n</script>\n","<template>\n\t<div class=\"h-screen text-base\">\n\t\t<header\n\t\t\tclass=\"sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5\"\n\t\t>\n\t\t\t<Breadcrumbs\n\t\t\t\tclass=\"h-7\"\n\t\t\t\t:items=\"[{ label: __('Jobs'), route: { name: 'Jobs' } }]\"\n\t\t\t/>\n\t\t\t<div class=\"flex\">\n\t\t\t\t<Button v-if=\"user.data?.name\" variant=\"solid\">\n\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t<Plus class=\"h-4 w-4\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ __('New Job') }}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</header>\n\t\t<div v-if=\"jobs.data\">\n\t\t\t<div class=\"grid grid-cols-2 gap-5 p-5\">\n\t\t\t\t<div v-if=\"jobs.data.length\" v-for=\"job in jobs.data\">\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: 'JobDetail',\n\t\t\t\t\t\t\tparams: { job: job.name },\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<JobCard :job=\"job\" />\n\t\t\t\t\t</router-link>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script setup>\nimport { Button, Breadcrumbs, createResource } from 'frappe-ui'\nimport { Plus } from 'lucide-vue-next'\nimport { inject } from 'vue'\nimport JobCard from '@/components/JobCard.vue'\n\nconst user = inject('$user')\n\nconst jobs = createResource({\n\turl: 'lms.lms.api.get_job_opportunities',\n\tcache: ['jobs'],\n\tauto: true,\n})\n</script>\n"],"names":["MapPin","createLucideIcon","dayjs","inject","user","jobs","createResource"],"mappings":"qPAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMA,EAASC,EAAiB,aAAc,CAC5C,CAAC,OAAQ,CAAE,EAAG,iDAAkD,IAAK,QAAQ,CAAE,EAC/E,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,SAAU,CAC1D,CAAC,wPC4DD,MAAMC,EAAQC,EAAO,QAAQ,wyBChC7B,MAAMC,EAAOD,EAAO,OAAO,EAErBE,EAAOC,EAAe,CAC3B,IAAK,oCACL,MAAO,CAAC,MAAM,EACd,KAAM,EACP,CAAC","x_google_ignoreList":[0]}

View File

@@ -1,54 +1,40 @@
import { import {
d as p, d as f,
x as n, x as a,
y as c, y as c,
C as e, H as e,
I as l, L as n,
U as _, U as u,
G as a, J as l,
H as s, K as s,
a8 as h, a8 as h,
B as r, G as r,
k as y, k as y,
A as j, F as p,
J as m, M as _,
Q as g, Q as g,
R as x, R as v,
a6 as k, a6 as x,
a7 as v, a7 as k,
X as $, X as $,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { a as w } from "./index-Vx7mSx23.js"; import { M as w } from "./map-pin-yIki2ElO.js";
import { P as J } from "./plus-pxSjkL_w.js"; import { P as J } from "./plus-0JOmes86.js";
/** import "./index-6k1S_EjG.js";
* @license lucide-vue-next v0.309.0 - ISC const M = { class: "flex shadow rounded-md p-4 h-full" },
* N = ["src"],
* This source code is licensed under the ISC license. B = { class: "text-xl font-semibold mb-2" },
* See the LICENSE file in the root directory of this source tree. C = { class: "font-medium" },
*/ const M = w("MapPinIcon", [ D = { class: "flex items-center my-4" },
[
"path",
{
d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z",
key: "2oe9fu",
},
],
["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
]),
B = { class: "flex shadow rounded-md p-4 h-full" },
C = ["src"],
N = { class: "text-xl font-semibold mb-2" },
D = { class: "font-medium" },
P = { class: "flex items-center my-4" },
V = { class: "font-medium" }, V = { class: "font-medium" },
Y = { Y = {
__name: "JobCard", __name: "JobCard",
props: { job: { type: Object, default: null } }, props: { job: { type: Object, default: null } },
setup(t) { setup(t) {
const i = p("$dayjs"); const i = f("$dayjs");
return (o, d) => ( return (o, d) => (
n(), a(),
c("div", B, [ c("div", M, [
e( e(
"img", "img",
{ {
@@ -57,16 +43,16 @@ import { P as J } from "./plus-pxSjkL_w.js";
}, },
null, null,
8, 8,
C N
), ),
e("div", null, [ e("div", null, [
e("div", N, l(t.job.job_title), 1), e("div", B, n(t.job.job_title), 1),
e("div", null, [ e("div", null, [
_(l(o.__("posted by")) + " ", 1), u(n(o.__("posted by")) + " ", 1),
e("span", D, l(t.job.company_name), 1), e("span", C, n(t.job.company_name), 1),
]), ]),
e("div", P, [ e("div", D, [
a( l(
s(h), s(h),
{ {
label: t.job.type, label: t.job.type,
@@ -78,7 +64,7 @@ import { P as J } from "./plus-pxSjkL_w.js";
8, 8,
["label"] ["label"]
), ),
a( l(
s(h), s(h),
{ {
label: t.job.location, label: t.job.location,
@@ -87,7 +73,7 @@ import { P as J } from "./plus-pxSjkL_w.js";
}, },
{ {
prefix: r(() => [ prefix: r(() => [
a(s(M), { l(s(w), {
class: "h-4 w-4 stroke-1.5", class: "h-4 w-4 stroke-1.5",
}), }),
]), ]),
@@ -98,11 +84,11 @@ import { P as J } from "./plus-pxSjkL_w.js";
), ),
]), ]),
e("div", null, [ e("div", null, [
_(l(o.__("posted on")) + " ", 1), u(n(o.__("posted on")) + " ", 1),
e( e(
"span", "span",
V, V,
l(s(i)(t.job.creation).format("DD MMM YYYY")), n(s(i)(t.job.creation).format("DD MMM YYYY")),
1 1
), ),
]), ]),
@@ -112,30 +98,30 @@ import { P as J } from "./plus-pxSjkL_w.js";
}, },
}, },
z = { class: "h-screen text-base" }, z = { class: "h-screen text-base" },
I = { P = {
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5", class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
}, },
L = { class: "flex" }, F = { class: "flex" },
R = { key: 0 }, L = { key: 0 },
q = { class: "grid grid-cols-2 gap-5 p-5" }, R = { class: "grid grid-cols-2 gap-5 p-5" },
H = { Q = {
__name: "Jobs", __name: "Jobs",
setup(t) { setup(t) {
const i = p("$user"), const i = f("$user"),
o = y({ o = y({
url: "lms.lms.api.get_job_opportunities", url: "lms.lms.api.get_job_opportunities",
cache: ["jobs"], cache: ["jobs"],
auto: !0, auto: !0,
}); });
return (d, A) => { return (d, E) => {
var u; var b;
const f = $("router-link"); const j = $("router-link");
return ( return (
n(), a(),
c("div", z, [ c("div", z, [
e("header", I, [ e("header", P, [
a( l(
s(k), s(x),
{ {
class: "h-7", class: "h-7",
items: [ items: [
@@ -149,63 +135,65 @@ import { P as J } from "./plus-pxSjkL_w.js";
8, 8,
["items"] ["items"]
), ),
e("div", L, [ e("div", F, [
(u = s(i).data) != null && u.name (b = s(i).data) != null && b.name
? (n(), ? (a(),
j( p(
s(v), s(k),
{ key: 0, variant: "solid" }, { key: 0, variant: "solid" },
{ {
prefix: r(() => [ prefix: r(() => [
a(s(J), { l(s(J), {
class: "h-4 w-4", class: "h-4 w-4",
}), }),
]), ]),
default: r(() => [ default: r(() => [
_( u(
" " + " " +
l(d.__("New Job")), n(d.__("New Job")),
1 1
), ),
]), ]),
_: 1, _: 1,
} }
)) ))
: m("", !0), : _("", !0),
]), ]),
]), ]),
s(o).data s(o).data
? (n(), ? (a(),
c("div", R, [ c("div", L, [
e("div", q, [ e("div", R, [
s(o).data.length s(o).data.length
? (n(!0), ? (a(!0),
c( c(
g, g,
{ key: 0 }, { key: 0 },
x( v(
s(o).data, s(o).data,
(b) => ( (m) => (
n(), a(),
c("div", null, [ c("div", null, [
a( (a(),
f, p(
j,
{ {
to: { to: {
name: "JobDetail", name: "JobDetail",
params: { params: {
job: b.name, job: m.name,
}, },
}, },
key: m.name,
}, },
{ {
default: default:
r( r(
() => [ () => [
a( l(
Y, Y,
{ {
job: b, job: m,
}, },
null, null,
8, 8,
@@ -219,20 +207,20 @@ import { P as J } from "./plus-pxSjkL_w.js";
}, },
1032, 1032,
["to"] ["to"]
), )),
]) ])
) )
), ),
256 256
)) ))
: m("", !0), : _("", !0),
]), ]),
])) ]))
: m("", !0), : _("", !0),
]) ])
); );
}; };
}, },
}; };
export { H as default }; export { Q as default };
//# sourceMappingURL=Jobs-PZPyKz-0.js.map //# sourceMappingURL=Jobs-SThJmQa_.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Jobs-SThJmQa_.js","sources":["../../../../frontend/src/components/JobCard.vue","../../../../frontend/src/pages/Jobs.vue"],"sourcesContent":["<template>\n\t<div class=\"flex shadow rounded-md p-4 h-full\">\n\t\t<img\n\t\t\t:src=\"job.company_logo\"\n\t\t\tclass=\"w-12 h-12 rounded-lg object-contain mr-4\"\n\t\t/>\n\t\t<div>\n\t\t\t<div class=\"text-xl font-semibold mb-2\">\n\t\t\t\t{{ job.job_title }}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t{{ __('posted by') }}\n\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t{{ job.company_name }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"flex items-center my-4\">\n\t\t\t\t<Badge :label=\"job.type\" theme=\"green\" size=\"lg\" class=\"mr-4\" />\n\t\t\t\t<Badge :label=\"job.location\" theme=\"gray\" size=\"lg\">\n\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t<MapPin class=\"h-4 w-4 stroke-1.5\" />\n\t\t\t\t\t</template>\n\t\t\t\t</Badge>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t{{ __('posted on') }}\n\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t{{ dayjs(job.creation).format('DD MMM YYYY') }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<!-- <div class=\"flex flex-col shadow rounded-md p-4 h-full\">\n\t\t<div class=\"flex justify-between\">\n\t\t\t<div>\n\t\t\t\t<div class=\"text-xl font-semibold mb-2\">\n\t\t\t\t\t{{ job.job_title }}\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t{{ __(\"posted by\") }}\n\t\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t\t{{ job.company_name }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<img\n\t\t\t\t:src=\"job.company_logo\"\n\t\t\t\tclass=\"w-12 h-12 rounded-lg object-contain\"\n\t\t\t/>\n\t\t</div>\n\t\t<div class=\"flex justify-between mt-8\">\n\t\t\t<div class=\"flex items-center\">\n\t\t\t\t<Badge :label=\"job.type\" theme=\"green\" size=\"lg\" class=\"mr-4\"/>\n\t\t\t\t<Badge :label=\"job.location\" theme=\"gray\" size=\"lg\">\n\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t<MapPin class=\"h-4 w-4 stroke-1.5\" />\n\t\t\t\t\t</template>\n\t\t\t\t</Badge>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<span class=\"font-medium\">\n\t\t\t\t\t{{ dayjs(job.creation).format('DD MMM YYYY') }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t</div> -->\n</template>\n<script setup>\nimport { MapPin } from 'lucide-vue-next'\nimport { Badge } from 'frappe-ui'\nimport { inject } from 'vue'\n\nconst dayjs = inject('$dayjs')\nconst props = defineProps({\n\tjob: {\n\t\ttype: Object,\n\t\tdefault: null,\n\t},\n})\n</script>\n","<template>\n\t<div class=\"h-screen text-base\">\n\t\t<header\n\t\t\tclass=\"sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5\"\n\t\t>\n\t\t\t<Breadcrumbs\n\t\t\t\tclass=\"h-7\"\n\t\t\t\t:items=\"[{ label: __('Jobs'), route: { name: 'Jobs' } }]\"\n\t\t\t/>\n\t\t\t<div class=\"flex\">\n\t\t\t\t<Button v-if=\"user.data?.name\" variant=\"solid\">\n\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t<Plus class=\"h-4 w-4\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ __('New Job') }}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</header>\n\t\t<div v-if=\"jobs.data\">\n\t\t\t<div class=\"grid grid-cols-2 gap-5 p-5\">\n\t\t\t\t<div v-if=\"jobs.data.length\" v-for=\"job in jobs.data\">\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: 'JobDetail',\n\t\t\t\t\t\t\tparams: { job: job.name },\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:key=\"job.name\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<JobCard :job=\"job\" />\n\t\t\t\t\t</router-link>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script setup>\nimport { Button, Breadcrumbs, createResource } from 'frappe-ui'\nimport { Plus } from 'lucide-vue-next'\nimport { inject } from 'vue'\nimport JobCard from '@/components/JobCard.vue'\n\nconst user = inject('$user')\n\nconst jobs = createResource({\n\turl: 'lms.lms.api.get_job_opportunities',\n\tcache: ['jobs'],\n\tauto: true,\n})\n</script>\n"],"names":["dayjs","inject","user","jobs","createResource"],"mappings":"+gBAwEA,MAAMA,EAAQC,EAAO,QAAQ,wyBC/B7B,MAAMC,EAAOD,EAAO,OAAO,EAErBE,EAAOC,EAAe,CAC3B,IAAK,oCACL,MAAO,CAAC,MAAM,EACd,KAAM,EACP,CAAC"}

View File

@@ -1,40 +1,40 @@
import { import {
r as O, r as B,
aw as X, aD as J,
ax as Q, aE as X,
j as x, j as x,
w as U, w as U,
n as Z, n as Q,
x as n, x as n,
A as F, F as A,
B as c, G as c,
G as w, J as w,
H as a, K as a,
ay as K, aF as Z,
M as g, O as g,
az as C, aG as C,
aA as V, aH as V,
C as v, H as v,
F as T, I,
y as p, y as p,
I as N, L as N,
aB as M, aI as F,
aC as W, aJ as W,
aD as Y, aK as Y,
Q as R, Q as R,
R as E, R as E,
J as q, M as q,
aE as ee, aL as ee,
U as te, U as te,
aF as G, aM as G,
aG as ae, aN as ae,
aH as H, aO as H,
k as se, k as se,
aI as le, aP as le,
a7 as re, a7 as re,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
import { a as oe, C as ue } from "./index-Vx7mSx23.js"; import { a as oe, C as ue } from "./index-6k1S_EjG.js";
import { P as ne } from "./plus-pxSjkL_w.js"; import { P as ne } from "./plus-0JOmes86.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
@@ -72,23 +72,23 @@ import { P as ne } from "./plus-pxSjkL_w.js";
filterable: { type: Boolean, default: !0 }, filterable: { type: Boolean, default: !0 },
}, },
emits: ["update:modelValue", "update:query", "change"], emits: ["update:modelValue", "update:query", "change"],
setup(j, { expose: A, emit: f }) { setup(j, { expose: D, emit: f }) {
const r = j, const r = j,
u = f, u = f,
i = O(""), i = B(""),
h = O(!1), h = B(!1),
S = O(null), S = B(null),
k = X(), k = J(),
z = Q(), z = X(),
P = x(() => "value" in k), L = x(() => "value" in k),
_ = x({ _ = x({
get() { get() {
return P.value ? k.value : r.modelValue; return L.value ? k.value : r.modelValue;
}, },
set(t) { set(t) {
(i.value = ""), (i.value = ""),
t && (h.value = !1), t && (h.value = !1),
u(P.value ? "change" : "update:modelValue", t); u(L.value ? "change" : "update:modelValue", t);
}, },
}); });
function e() { function e() {
@@ -136,12 +136,12 @@ import { P as ne } from "./plus-pxSjkL_w.js";
}), }),
U(h, (t) => { U(h, (t) => {
t && t &&
Z(() => { Q(() => {
S.value.el.focus(); S.value.el.focus();
}); });
}); });
const $ = x(() => (r.disabled ? "text-gray-600" : "text-gray-800")), const $ = x(() => (r.disabled ? "text-gray-600" : "text-gray-800")),
J = x(() => { K = x(() => {
let t = { let t = {
sm: "text-base rounded h-7", sm: "text-base rounded h-7",
md: "text-base rounded h-8", md: "text-base rounded h-8",
@@ -169,10 +169,10 @@ import { P as ne } from "./plus-pxSjkL_w.js";
return [t, s, o, $.value, "transition-colors w-full"]; return [t, s, o, $.value, "transition-colors w-full"];
}); });
return ( return (
A({ query: i }), D({ query: i }),
(t, s) => ( (t, s) => (
n(), n(),
F( A(
a(ae), a(ae),
{ {
modelValue: _.value, modelValue: _.value,
@@ -183,7 +183,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
{ {
default: c(({ open: l }) => [ default: c(({ open: l }) => [
w( w(
a(K), a(Z),
{ {
class: "w-full", class: "w-full",
show: h.value, show: h.value,
@@ -193,14 +193,14 @@ import { P as ne } from "./plus-pxSjkL_w.js";
}, },
{ {
target: c( target: c(
({ open: o, togglePopover: B }) => [ ({ open: o, togglePopover: P }) => [
g( g(
t.$slots, t.$slots,
"target", "target",
C( C(
V({ V({
open: o, open: o,
togglePopover: B, togglePopover: P,
}) })
), ),
() => [ () => [
@@ -208,13 +208,13 @@ import { P as ne } from "./plus-pxSjkL_w.js";
v( v(
"button", "button",
{ {
class: T([ class: I([
"flex w-full items-center justify-between focus:outline-none", "flex w-full items-center justify-between focus:outline-none",
J.value, K.value,
]), ]),
onClick: onClick:
() => () =>
B(), P(),
}, },
[ [
v( v(
@@ -262,9 +262,9 @@ import { P as ne } from "./plus-pxSjkL_w.js";
] ]
), ),
body: c(({ isOpen: o }) => { body: c(({ isOpen: o }) => {
var B; var P;
return [ return [
M( F(
v( v(
"div", "div",
null, null,
@@ -346,7 +346,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
( (
b b
) => ) =>
M( F(
(n(), (n(),
p( p(
"div", "div",
@@ -379,35 +379,35 @@ import { P as ne } from "./plus-pxSjkL_w.js";
E( E(
b.items, b.items,
( (
L O
) => ( ) => (
n(), n(),
F( A(
a( a(
ee ee
), ),
{ {
as: "template", as: "template",
key: L.value, key: O.value,
value: L, value: O,
}, },
{ {
default: default:
c( c(
({ ({
active: D, active: T,
selected: selected:
I, M,
}) => [ }) => [
v( v(
"li", "li",
{ {
class: T( class: I(
[ [
"flex items-center rounded px-2.5 py-1.5 text-base", "flex items-center rounded px-2.5 py-1.5 text-base",
{ {
"bg-gray-100": "bg-gray-100":
D, T,
}, },
] ]
), ),
@@ -419,10 +419,10 @@ import { P as ne } from "./plus-pxSjkL_w.js";
C( C(
V( V(
{ {
active: D, active: T,
selected: selected:
I, M,
option: L, option: O,
} }
) )
) )
@@ -433,17 +433,17 @@ import { P as ne } from "./plus-pxSjkL_w.js";
C( C(
V( V(
{ {
active: D, active: T,
selected: selected:
I, M,
option: L, option: O,
} }
) )
), ),
() => [ () => [
te( te(
N( N(
L.label O.label
), ),
1 1
), ),
@@ -512,11 +512,11 @@ import { P as ne } from "./plus-pxSjkL_w.js";
V( V(
{ {
value: value:
(B = (P =
S.value) == S.value) ==
null null
? void 0 ? void 0
: B : P
.el .el
._value, ._value,
close: e, close: e,
@@ -559,10 +559,10 @@ import { P as ne } from "./plus-pxSjkL_w.js";
modelValue: { type: String, default: "" }, modelValue: { type: String, default: "" },
}, },
emits: ["update:modelValue", "change"], emits: ["update:modelValue", "change"],
setup(j, { emit: A }) { setup(j, { emit: D }) {
const f = j, const f = j,
r = A, r = D,
u = X(), u = J(),
i = x(() => "value" in u), i = x(() => "value" in u),
h = x({ h = x({
get: () => (i.value ? u.value : f.modelValue), get: () => (i.value ? u.value : f.modelValue),
@@ -575,21 +575,21 @@ import { P as ne } from "./plus-pxSjkL_w.js";
) )
), ),
}), }),
S = O(null), S = B(null),
k = O(""); k = B("");
H( H(
() => { () => {
var e; var e;
return (e = S.value) == null ? void 0 : e.query; return (e = S.value) == null ? void 0 : e.query;
}, },
(e) => { (e) => {
(e = e || ""), k.value !== e && ((k.value = e), P(e)); (e = e || ""), k.value !== e && ((k.value = e), L(e));
}, },
{ debounce: 300, immediate: !0 } { debounce: 300, immediate: !0 }
), ),
H( H(
() => f.doctype, () => f.doctype,
() => P(""), () => L(""),
{ debounce: 300, immediate: !0 } { debounce: 300, immediate: !0 }
); );
const z = se({ const z = se({
@@ -604,7 +604,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
transform: (e) => transform: (e) =>
e.map((m) => ({ label: m.value, value: m.value })), e.map((m) => ({ label: m.value, value: m.value })),
}); });
function P(e) { function L(e) {
z.update({ z.update({
params: { txt: e, doctype: f.doctype, filters: f.filters }, params: { txt: e, doctype: f.doctype, filters: f.filters },
}), }),
@@ -621,7 +621,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
? (n(), ? (n(),
p( p(
"label", "label",
{ key: 0, class: T(["block", _.value]) }, { key: 0, class: I(["block", _.value]) },
N(a(u).label), N(a(u).label),
3 3
)) ))
@@ -731,5 +731,5 @@ import { P as ne } from "./plus-pxSjkL_w.js";
); );
}, },
}; };
export { Ve as _ }; export { ie as X, Ve as _ };
//# sourceMappingURL=Link-Z_9V94MR.js.map //# sourceMappingURL=Link-rwTAUhIL.js.map

View File

@@ -0,0 +1,8 @@
import { v as r } from "./frappe-ui-LT4YqXtx.js";
const e = {};
function c(n, t) {
return null;
}
const _ = r(e, [["render", c]]);
export { _ as default };
//# sourceMappingURL=Profile-CyaIIe8W.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Profile-CyaIIe8W.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,274 +0,0 @@
import {
d as x,
j as v,
k as c,
y as b,
C as e,
G as o,
H as t,
I as s,
x as k,
a6 as f,
} from "./frappe-ui-20hnMCM8.js";
import { a as r, B as C } from "./index-Vx7mSx23.js";
import { B as L } from "./book-open-check-j9IEQjWh.js";
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const S = r("FileCheck2Icon", [
[
"path",
{
d: "M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4",
key: "702lig",
},
],
["polyline", { points: "14 2 14 8 20 8", key: "1ew0cm" }],
["path", { d: "m3 15 2 2 4-4", key: "1lhrkk" }],
]);
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const w = r("FileCheckIcon", [
[
"path",
{
d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",
key: "1nnpy2",
},
],
["polyline", { points: "14 2 14 8 20 8", key: "1ew0cm" }],
["path", { d: "m9 15 2 2 4-4", key: "1grp1n" }],
]);
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const B = r("LogInIcon", [
[
"path",
{ d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4", key: "u53s6r" },
],
["polyline", { points: "10 17 15 12 10 7", key: "1ail0h" }],
["line", { x1: "15", x2: "3", y1: "12", y2: "12", key: "v6grx8" }],
]),
I = { class: "h-screen text-base" },
M = {
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
},
j = { class: "p-5" },
E = { class: "grid grid-cols-5 gap-5" },
F = { class: "flex items-center border py-2 px-3 rounded-md" },
V = { class: "p-2 rounded-md bg-gray-100 mr-3" },
H = { class: "text-xl font-semibold mb-1" },
z = { class: "text-gray-700" },
N = { class: "flex items-center border py-2 px-3 rounded-md" },
O = { class: "p-2 rounded-md bg-gray-100 mr-3" },
P = { class: "text-xl font-semibold mb-1" },
U = { class: "text-gray-700" },
D = { class: "flex items-center border py-2 px-3 rounded-md" },
G = { class: "p-2 rounded-md bg-gray-100 mr-3" },
R = { class: "text-xl font-semibold mb-1" },
T = { class: "text-gray-700" },
$ = { class: "flex items-center border py-2 px-3 rounded-md" },
q = { class: "p-2 rounded-md bg-gray-100 mr-3" },
A = { class: "text-xl font-semibold mb-1" },
J = { class: "text-gray-700" },
K = { class: "flex items-center border py-2 px-3 rounded-md" },
Q = { class: "p-2 rounded-md bg-gray-100 mr-3" },
W = { class: "text-xl font-semibold mb-1" },
X = { class: "text-gray-700" },
oe = {
__name: "Statistics",
setup(Y) {
x("dayjs");
const _ = v(() => [
{ label: "Statistics", route: { name: "Statistics" } },
]),
u = c({
url: "frappe.client.get_count",
params: { doctype: "LMS Enrollment" },
auto: !0,
cache: ["enrollment_count"],
}),
m = c({
url: "frappe.client.get_count",
params: {
doctype: "LMS Course",
filters: { published: 1, upcoming: 0 },
},
auto: !0,
cache: ["course_count"],
}),
h = c({
url: "frappe.client.get_count",
params: { doctype: "User", filters: { enabled: 1 } },
auto: !0,
cache: ["user_count"],
}),
y = c({
url: "frappe.client.get_count",
params: {
doctype: "LMS Enrollment",
filters: { progress: ["like", "%100%"] },
},
auto: !0,
cache: ["courses_completed"],
}),
g = c({
url: "frappe.client.get_count",
params: { doctype: "LMS Course Progress" },
auto: !0,
cache: ["lessons_completed"],
});
return (a, Z) => {
var d, n, l, i, p;
return (
k(),
b("div", I, [
e("header", M, [
o(t(f), { class: "h-7", items: _.value }, null, 8, [
"items",
]),
]),
e("div", j, [
e("div", E, [
e("div", F, [
e("div", V, [
o(t(C), {
class: "w-18 h-18 stroke-1.5 text-gray-700",
}),
]),
e("div", null, [
e(
"div",
H,
s(
(d = t(m).data) == null
? void 0
: d.toLocaleString()
),
1
),
e(
"div",
z,
s(a.__("Published Courses")),
1
),
]),
]),
e("div", N, [
e("div", O, [
o(t(B), {
class: "w-18 h-18 stroke-1.5 text-gray-700",
}),
]),
e("div", null, [
e(
"div",
P,
s(
(n = t(h).data) == null
? void 0
: n.toLocaleString()
),
1
),
e(
"div",
U,
s(a.__("Total Signups")),
1
),
]),
]),
e("div", D, [
e("div", G, [
o(t(L), {
class: "w-18 h-18 stroke-1.5 text-gray-700",
}),
]),
e("div", null, [
e(
"div",
R,
s(
(l = t(u).data) == null
? void 0
: l.toLocaleString()
),
1
),
e(
"div",
T,
s(a.__("Enrolled Users")),
1
),
]),
]),
e("div", $, [
e("div", q, [
o(t(w), {
class: "w-18 h-18 stroke-1.5 text-gray-700",
}),
]),
e("div", null, [
e(
"div",
A,
s(
(i = t(y).data) == null
? void 0
: i.toLocaleString()
),
1
),
e(
"div",
J,
s(a.__("Courses Completed")),
1
),
]),
]),
e("div", K, [
e("div", Q, [
o(t(S), {
class: "w-18 h-18 stroke-1.5 text-gray-700",
}),
]),
e("div", null, [
e(
"div",
W,
s(
(p = t(g).data) == null
? void 0
: p.toLocaleString()
),
1
),
e(
"div",
X,
s(a.__("Lessons Completed")),
1
),
]),
]),
]),
]),
])
);
};
},
};
export { oe as default };
//# sourceMappingURL=Statistics-BSeqj912.js.map

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +1,11 @@
import { import {
x as r, x as r,
A as s, F as s,
av as t, au as t,
H as l, K as u,
as as u, ar as l,
J as n, M as n,
} from "./frappe-ui-20hnMCM8.js"; } from "./frappe-ui-LT4YqXtx.js";
const i = { const i = {
__name: "UserAvatar", __name: "UserAvatar",
props: { user: { type: Object, default: null }, size: { type: String } }, props: { user: { type: Object, default: null }, size: { type: String } },
@@ -14,7 +14,7 @@ const i = {
e.user e.user
? (r(), ? (r(),
s( s(
l(u), u(l),
t( t(
{ {
key: 0, key: 0,
@@ -33,4 +33,4 @@ const i = {
}, },
}; };
export { i as _ }; export { i as _ };
//# sourceMappingURL=UserAvatar-yrWInUTi.js.map //# sourceMappingURL=UserAvatar-A3tEMZXD.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"UserAvatar-A3tEMZXD.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -1 +0,0 @@
{"version":3,"file":"UserAvatar-yrWInUTi.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -1,4 +1,4 @@
import { a as c } from "./index-Vx7mSx23.js"; import { a as c } from "./index-6k1S_EjG.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
@@ -19,4 +19,4 @@ import { a as c } from "./index-Vx7mSx23.js";
], ],
]); ]);
export { o as B }; export { o as B };
//# sourceMappingURL=book-open-check-j9IEQjWh.js.map //# sourceMappingURL=book-open-check-_W-8v7wc.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"book-open-check-j9IEQjWh.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/book-open-check.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst BookOpenCheck = createLucideIcon(\"BookOpenCheckIcon\", [\n [\"path\", { d: \"M8 3H2v15h7c1.7 0 3 1.3 3 3V7c0-2.2-1.8-4-4-4Z\", key: \"1i8u0n\" }],\n [\"path\", { d: \"m16 12 2 2 4-4\", key: \"mdajum\" }],\n [\"path\", { d: \"M22 6V3h-6c-2.2 0-4 1.8-4 4v14c0-1.7 1.3-3 3-3h7v-2.3\", key: \"jb5l51\" }]\n]);\n\nexport { BookOpenCheck as default };\n//# sourceMappingURL=book-open-check.js.map\n"],"names":["BookOpenCheck","createLucideIcon"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAgBC,EAAiB,oBAAqB,CAC1D,CAAC,OAAQ,CAAE,EAAG,iDAAkD,IAAK,QAAQ,CAAE,EAC/E,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAQ,CAAE,EAC/C,CAAC,OAAQ,CAAE,EAAG,wDAAyD,IAAK,QAAQ,CAAE,CACxF,CAAC","x_google_ignoreList":[0]} {"version":3,"file":"book-open-check-_W-8v7wc.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/book-open-check.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst BookOpenCheck = createLucideIcon(\"BookOpenCheckIcon\", [\n [\"path\", { d: \"M8 3H2v15h7c1.7 0 3 1.3 3 3V7c0-2.2-1.8-4-4-4Z\", key: \"1i8u0n\" }],\n [\"path\", { d: \"m16 12 2 2 4-4\", key: \"mdajum\" }],\n [\"path\", { d: \"M22 6V3h-6c-2.2 0-4 1.8-4 4v14c0-1.7 1.3-3 3-3h7v-2.3\", key: \"jb5l51\" }]\n]);\n\nexport { BookOpenCheck as default };\n//# sourceMappingURL=book-open-check.js.map\n"],"names":["BookOpenCheck","createLucideIcon"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAgBC,EAAiB,oBAAqB,CAC1D,CAAC,OAAQ,CAAE,EAAG,iDAAkD,IAAK,QAAQ,CAAE,EAC/E,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAQ,CAAE,EAC/C,CAAC,OAAQ,CAAE,EAAG,wDAAyD,IAAK,QAAQ,CAAE,CACxF,CAAC","x_google_ignoreList":[0]}

View File

@@ -1,4 +1,4 @@
import { a as e } from "./index-Vx7mSx23.js"; import { a as e } from "./index-6k1S_EjG.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
@@ -31,4 +31,4 @@ import { a as e } from "./index-Vx7mSx23.js";
["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }], ["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }],
]); ]);
export { c as C, a }; export { c as C, a };
//# sourceMappingURL=clock-blcPmEdF.js.map //# sourceMappingURL=clock-q4vfplv-.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"clock-blcPmEdF.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/calendar.js","../../../../node_modules/lucide-vue-next/dist/esm/icons/clock.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Calendar = createLucideIcon(\"CalendarIcon\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"4\", rx: \"2\", ry: \"2\", key: \"eu3xkr\" }],\n [\"line\", { x1: \"16\", x2: \"16\", y1: \"2\", y2: \"6\", key: \"m3sa8f\" }],\n [\"line\", { x1: \"8\", x2: \"8\", y1: \"2\", y2: \"6\", key: \"18kwsl\" }],\n [\"line\", { x1: \"3\", x2: \"21\", y1: \"10\", y2: \"10\", key: \"xt86sb\" }]\n]);\n\nexport { Calendar as default };\n//# sourceMappingURL=calendar.js.map\n","/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Clock = createLucideIcon(\"ClockIcon\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"polyline\", { points: \"12 6 12 12 16 14\", key: \"68esgv\" }]\n]);\n\nexport { Clock as default };\n//# sourceMappingURL=clock.js.map\n"],"names":["Calendar","createLucideIcon","Clock"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAWC,EAAiB,eAAgB,CAChD,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,SAAU,EACvF,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAChE,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC9D,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,CACnE,CAAC,ECdD;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACC,EAAQD,EAAiB,YAAa,CAC1C,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,SAAU,EACzD,CAAC,WAAY,CAAE,OAAQ,mBAAoB,IAAK,QAAQ,CAAE,CAC5D,CAAC","x_google_ignoreList":[0,1]} {"version":3,"file":"clock-q4vfplv-.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/calendar.js","../../../../node_modules/lucide-vue-next/dist/esm/icons/clock.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Calendar = createLucideIcon(\"CalendarIcon\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"4\", rx: \"2\", ry: \"2\", key: \"eu3xkr\" }],\n [\"line\", { x1: \"16\", x2: \"16\", y1: \"2\", y2: \"6\", key: \"m3sa8f\" }],\n [\"line\", { x1: \"8\", x2: \"8\", y1: \"2\", y2: \"6\", key: \"18kwsl\" }],\n [\"line\", { x1: \"3\", x2: \"21\", y1: \"10\", y2: \"10\", key: \"xt86sb\" }]\n]);\n\nexport { Calendar as default };\n//# sourceMappingURL=calendar.js.map\n","/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Clock = createLucideIcon(\"ClockIcon\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"polyline\", { points: \"12 6 12 12 16 14\", key: \"68esgv\" }]\n]);\n\nexport { Clock as default };\n//# sourceMappingURL=clock.js.map\n"],"names":["Calendar","createLucideIcon","Clock"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAWC,EAAiB,eAAgB,CAChD,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,SAAU,EACvF,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAChE,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC9D,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,CACnE,CAAC,ECdD;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACC,EAAQD,EAAiB,YAAa,CAC1C,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,SAAU,EACzD,CAAC,WAAY,CAAE,OAAQ,mBAAoB,IAAK,QAAQ,CAAE,CAC5D,CAAC","x_google_ignoreList":[0,1]}

View File

@@ -0,0 +1,21 @@
import { a as e } from "./index-6k1S_EjG.js";
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const n = e("FileTextIcon", [
[
"path",
{
d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",
key: "1nnpy2",
},
],
["polyline", { points: "14 2 14 8 20 8", key: "1ew0cm" }],
["line", { x1: "16", x2: "8", y1: "13", y2: "13", key: "14keom" }],
["line", { x1: "16", x2: "8", y1: "17", y2: "17", key: "17nazh" }],
["line", { x1: "10", x2: "8", y1: "9", y2: "9", key: "1a5vjj" }],
]);
export { n as F };
//# sourceMappingURL=file-text-w2g11TfY.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"file-text-w2g11TfY.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/file-text.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileText = createLucideIcon(\"FileTextIcon\", [\n [\n \"path\",\n { d: \"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z\", key: \"1nnpy2\" }\n ],\n [\"polyline\", { points: \"14 2 14 8 20 8\", key: \"1ew0cm\" }],\n [\"line\", { x1: \"16\", x2: \"8\", y1: \"13\", y2: \"13\", key: \"14keom\" }],\n [\"line\", { x1: \"16\", x2: \"8\", y1: \"17\", y2: \"17\", key: \"17nazh\" }],\n [\"line\", { x1: \"10\", x2: \"8\", y1: \"9\", y2: \"9\", key: \"1a5vjj\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.js.map\n"],"names":["FileText","createLucideIcon"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAWC,EAAiB,eAAgB,CAChD,CACE,OACA,CAAE,EAAG,wEAAyE,IAAK,QAAU,CAC9F,EACD,CAAC,WAAY,CAAE,OAAQ,iBAAkB,IAAK,QAAQ,CAAE,EACxD,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EACjE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EACjE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,CACjE,CAAC","x_google_ignoreList":[0]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,15 @@
import { a as c } from "./index-6k1S_EjG.js";
/**
* @license lucide-vue-next v0.309.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const e = c("MapPinIcon", [
[
"path",
{ d: "M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z", key: "2oe9fu" },
],
["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }],
]);
export { e as M };
//# sourceMappingURL=map-pin-yIki2ElO.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"map-pin-yIki2ElO.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/map-pin.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MapPin = createLucideIcon(\"MapPinIcon\", [\n [\"path\", { d: \"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z\", key: \"2oe9fu\" }],\n [\"circle\", { cx: \"12\", cy: \"10\", r: \"3\", key: \"ilqhr7\" }]\n]);\n\nexport { MapPin as default };\n//# sourceMappingURL=map-pin.js.map\n"],"names":["MapPin","createLucideIcon"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAASC,EAAiB,aAAc,CAC5C,CAAC,OAAQ,CAAE,EAAG,iDAAkD,IAAK,QAAQ,CAAE,EAC/E,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,SAAU,CAC1D,CAAC","x_google_ignoreList":[0]}

View File

@@ -1,4 +1,4 @@
import { a } from "./index-Vx7mSx23.js"; import { a } from "./index-6k1S_EjG.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
@@ -9,4 +9,4 @@ import { a } from "./index-Vx7mSx23.js";
["path", { d: "M12 5v14", key: "s699le" }], ["path", { d: "M12 5v14", key: "s699le" }],
]); ]);
export { s as P }; export { s as P };
//# sourceMappingURL=plus-pxSjkL_w.js.map //# sourceMappingURL=plus-0JOmes86.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"plus-pxSjkL_w.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/plus.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Plus = createLucideIcon(\"PlusIcon\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n]);\n\nexport { Plus as default };\n//# sourceMappingURL=plus.js.map\n"],"names":["Plus","createLucideIcon"],"mappings":"mCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,WAAY,CACxC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC","x_google_ignoreList":[0]} {"version":3,"file":"plus-0JOmes86.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/plus.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Plus = createLucideIcon(\"PlusIcon\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n]);\n\nexport { Plus as default };\n//# sourceMappingURL=plus.js.map\n"],"names":["Plus","createLucideIcon"],"mappings":"mCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,WAAY,CACxC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC","x_google_ignoreList":[0]}

View File

@@ -1,4 +1,4 @@
import { a as o } from "./index-Vx7mSx23.js"; import { a as o } from "./index-6k1S_EjG.js";
/** /**
* @license lucide-vue-next v0.309.0 - ISC * @license lucide-vue-next v0.309.0 - ISC
* *
@@ -14,4 +14,4 @@ import { a as o } from "./index-Vx7mSx23.js";
], ],
]); ]);
export { a as S }; export { a as S };
//# sourceMappingURL=star-ypmGZNF0.js.map //# sourceMappingURL=star--IkSKstT.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"star-ypmGZNF0.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/star.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Star = createLucideIcon(\"StarIcon\", [\n [\n \"polygon\",\n {\n points: \"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\",\n key: \"8f66p6\"\n }\n ]\n]);\n\nexport { Star as default };\n//# sourceMappingURL=star.js.map\n"],"names":["Star","createLucideIcon"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,WAAY,CACxC,CACE,UACA,CACE,OAAQ,iGACR,IAAK,QACN,CACF,CACH,CAAC","x_google_ignoreList":[0]} {"version":3,"file":"star--IkSKstT.js","sources":["../../../../node_modules/lucide-vue-next/dist/esm/icons/star.js"],"sourcesContent":["/**\n * @license lucide-vue-next v0.309.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Star = createLucideIcon(\"StarIcon\", [\n [\n \"polygon\",\n {\n points: \"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\",\n key: \"8f66p6\"\n }\n ]\n]);\n\nexport { Star as default };\n//# sourceMappingURL=star.js.map\n"],"names":["Star","createLucideIcon"],"mappings":"wCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,WAAY,CACxC,CACE,UACA,CACE,OAAQ,iGACR,IAAK,QACN,CACF,CACH,CAAC","x_google_ignoreList":[0]}

View File

@@ -5,10 +5,10 @@
<link rel="icon" href="/favicon.png" /> <link rel="icon" href="/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Frappe UI App</title> <title>Frappe UI App</title>
<script type="module" crossorigin src="/assets/index-Vx7mSx23.js"></script> <script type="module" crossorigin src="/assets/index-6k1S_EjG.js"></script>
<link rel="modulepreload" crossorigin href="/assets/frappe-ui-20hnMCM8.js"> <link rel="modulepreload" crossorigin href="/assets/frappe-ui-LT4YqXtx.js">
<link rel="stylesheet" crossorigin href="/assets/frappe-ui-dYBF8eAq.css"> <link rel="stylesheet" crossorigin href="/assets/frappe-ui-dYBF8eAq.css">
<link rel="stylesheet" crossorigin href="/assets/index-VOpIbXPv.css"> <link rel="stylesheet" crossorigin href="/assets/index-KTmXOKI7.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>