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

View File

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

View File

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

View File

@@ -1,25 +1,25 @@
import { _ as b } from "./UserAvatar-yrWInUTi.js";
import { s as w, B, U as _ } from "./index-Vx7mSx23.js";
import { _ as b } from "./UserAvatar-A3tEMZXD.js";
import { s as w, B as _, U as B } from "./index-6k1S_EjG.js";
import {
x as t,
y as o,
C as r,
H as r,
Q as h,
R as f,
A as g,
B as n,
F as g,
G as n,
U as v,
I as s,
H as c,
L as s,
K as c,
a8 as x,
J as a,
F as y,
M as a,
I as y,
V as k,
G as l,
J as l,
T as d,
} from "./frappe-ui-20hnMCM8.js";
import { S as C } from "./star-ypmGZNF0.js";
const S = {
} from "./frappe-ui-LT4YqXtx.js";
import { S } from "./star--IkSKstT.js";
const C = {
key: 0,
class: "flex flex-col h-full rounded-md shadow-md text-base overflow-auto",
style: { "min-height": "320px" },
@@ -30,13 +30,13 @@ const S = {
N = { class: "flex items-center justify-between mb-2" },
R = { key: 0 },
j = { key: 1 },
A = { key: 2 },
I = { key: 3 },
T = { class: "text-xl font-semibold" },
E = { class: "short-introduction" },
F = { key: 0, class: "w-full bg-gray-200 rounded-full h-1 mb-2" },
L = { key: 1, class: "text-sm mb-4" },
M = { class: "flex items-center justify-between mt-auto" },
I = { key: 2 },
L = { key: 3 },
M = { class: "text-xl font-semibold" },
T = { class: "short-introduction" },
A = { key: 0, class: "w-full bg-gray-200 rounded-full h-1 mb-2" },
E = { key: 1, class: "text-sm mb-4" },
F = { class: "flex items-center justify-between mt-auto" },
O = { class: "flex avatar-group overlap" },
$ = { key: 0 },
D = { key: 1 },
@@ -50,7 +50,7 @@ const S = {
return (u, J) =>
e.course.title
? (t(),
o("div", S, [
o("div", C, [
r(
"div",
{
@@ -115,7 +115,7 @@ const S = {
},
{
default: n(() => [
l(c(B), {
l(c(_), {
class: "h-4 w-4 stroke-1.5 text-gray-700",
}),
r(
@@ -148,7 +148,7 @@ const S = {
},
{
default: n(() => [
l(c(_), {
l(c(B), {
class: "h-4 w-4 stroke-1.5 text-gray-700",
}),
r(
@@ -170,7 +170,7 @@ const S = {
: a("", !0),
e.course.avg_rating
? (t(),
o("div", A, [
o("div", I, [
l(
c(d),
{
@@ -181,7 +181,7 @@ const S = {
},
{
default: n(() => [
l(c(C), {
l(c(S), {
class: "h-4 w-4 stroke-1.5 text-gray-700",
}),
r(
@@ -203,7 +203,7 @@ const S = {
: a("", !0),
e.course.status != "Approved"
? (t(),
o("div", I, [
o("div", L, [
l(
c(x),
{
@@ -233,11 +233,11 @@ const S = {
]))
: a("", !0),
]),
r("div", T, s(e.course.title), 1),
r("div", E, s(e.course.short_introduction), 1),
r("div", M, s(e.course.title), 1),
r("div", T, s(e.course.short_introduction), 1),
c(m) && e.course.membership
? (t(),
o("div", F, [
o("div", A, [
r(
"div",
{
@@ -260,7 +260,7 @@ const S = {
? (t(),
o(
"div",
L,
E,
s(
Math.ceil(
e.course.membership.progress
@@ -269,7 +269,7 @@ const S = {
1
))
: a("", !0),
r("div", M, [
r("div", F, [
r("div", O, [
r(
"div",
@@ -363,4 +363,4 @@ const S = {
},
};
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 P = Object.prototype.hasOwnProperty,
var A = Object.prototype.hasOwnProperty,
F = Object.prototype.propertyIsEnumerable;
var z = (a, i, e) =>
i in a
? A(a, i, {
var z = (a, n, e) =>
n in a
? P(a, n, {
enumerable: !0,
configurable: !0,
writable: !0,
value: e,
})
: (a[i] = e),
B = (a, i) => {
for (var e in i || (i = {})) P.call(i, e) && z(a, e, i[e]);
if (L) for (var e of L(i)) F.call(i, e) && z(a, e, i[e]);
: (a[n] = e),
T = (a, n) => {
for (var e in n || (n = {})) A.call(n, e) && z(a, e, n[e]);
if (L) for (var e of L(n)) F.call(n, e) && z(a, e, n[e]);
return a;
};
import {
L as W,
C as W,
d as j,
j as E,
x as l,
y as u,
J as v,
C as s,
I as r,
A as y,
B as w,
G as m,
H as t,
x as o,
y as d,
M as v,
H as s,
L as r,
F as b,
G as w,
J as m,
K as t,
a7 as k,
k as $,
X as G,
r as q,
Q as x,
R,
F as M,
I as M,
aa as I,
ab as C,
a as J,
ac as Q,
D as X,
ac as K,
D as Q,
U as V,
b as T,
a6 as K,
T as U,
b as U,
a6 as X,
T as B,
a8 as Y,
} from "./frappe-ui-20hnMCM8.js";
import { B as Z, U as D, c as S } from "./index-Vx7mSx23.js";
import { S as N } from "./star-ypmGZNF0.js";
import { _ as ee } from "./CourseOutline-M5G5Rx7O.js";
import { _ as O } from "./UserAvatar-yrWInUTi.js";
} from "./frappe-ui-LT4YqXtx.js";
import { B as Z, U as D, c as S } from "./index-6k1S_EjG.js";
import { S as N } from "./star--IkSKstT.js";
import { _ as ee } from "./CourseOutline-AirCiy-C.js";
import { _ as O } from "./UserAvatar-A3tEMZXD.js";
import "./file-text-w2g11TfY.js";
const te = { class: "shadow rounded-md min-w-80" },
se = ["src"],
ae = { class: "p-5" },
re = { key: 0, class: "text-2xl font-semibold mb-3" },
le = { class: "mt-8 mb-4 font-medium" },
oe = { class: "flex items-center mb-3" },
oe = { class: "mt-8 mb-4 font-medium" },
le = { class: "flex items-center mb-3" },
ne = { class: "ml-2" },
ie = { class: "flex items-center mb-3" },
ue = { class: "ml-2" },
@@ -66,16 +67,16 @@ const te = { class: "shadow rounded-md min-w-80" },
__name: "CourseCardOverlay",
props: { course: { type: Object, default: null } },
setup(a) {
const i = W(),
const n = W(),
e = j("$user"),
_ = a,
o = E(() =>
l = E(() =>
_.course.data.video_link
? "https://www.youtube.com/embed/" +
_.course.data.video_link
: null
);
function f() {
function p() {
if (!e.data)
S({
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}`;
}, 3e3);
else {
const n = $({
const i = $({
url: "lms.lms.doctype.lms_enrollment.lms_enrollment.create_membership",
});
console.log(_.course),
n.submit({ course: _.course.data.name }).then(() => {
i.submit({ course: _.course.data.name }).then(() => {
S({
title: "Enrolled Successfully",
icon: "check",
iconClasses: "text-green-600 bg-green-100",
}),
setTimeout(() => {
i.push({
n.push({
name: "Lesson",
params: {
courseName: _.course.data.name,
@@ -109,19 +110,20 @@ const te = { class: "shadow rounded-md min-w-80" },
});
}
}
return (n, h) => {
var d, c;
const g = G("router-link");
const g = () => {};
return (i, f) => {
var c, y;
const u = G("router-link");
return (
l(),
u("div", te, [
o(),
d("div", te, [
a.course.data.video_link
? (l(),
u(
? (o(),
d(
"iframe",
{
key: 0,
src: o.value,
src: l.value,
class: "rounded-t-md min-h-56 min-w-80",
},
null,
@@ -131,12 +133,12 @@ const te = { class: "shadow rounded-md min-w-80" },
: v("", !0),
s("div", ae, [
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),
a.course.data.membership
? (l(),
y(
g,
? (o(),
b(
u,
{
key: 1,
to: {
@@ -173,7 +175,7 @@ const te = { class: "shadow rounded-md min-w-80" },
"span",
null,
r(
n.__(
i.__(
"Continue Learning"
)
),
@@ -190,9 +192,9 @@ const te = { class: "shadow rounded-md min-w-80" },
["to"]
))
: a.course.data.paid_course
? (l(),
y(
g,
? (o(),
b(
u,
{
key: 2,
to: {
@@ -218,7 +220,7 @@ const te = { class: "shadow rounded-md min-w-80" },
"span",
null,
r(
n.__(
i.__(
"Buy this course"
)
),
@@ -234,13 +236,13 @@ const te = { class: "shadow rounded-md min-w-80" },
8,
["to"]
))
: (l(),
y(
: (o(),
b(
t(k),
{
key: 3,
onClick:
h[0] || (h[0] = (b) => f()),
f[0] || (f[0] = (h) => p()),
variant: "solid",
class: "w-full",
size: "md",
@@ -250,39 +252,60 @@ const te = { class: "shadow rounded-md min-w-80" },
s(
"span",
null,
r(n.__("Start Learning")),
r(i.__("Start Learning")),
1
),
]),
_: 1,
}
)),
(c = (d = t(e)) == null ? void 0 : d.data) !=
null && c.is_moderator
? (l(),
y(
t(k),
((y = (c = t(e)) == null ? void 0 : c.data) !=
null &&
y.is_moderator) ||
g()
? (o(),
b(
u,
{
key: 4,
variant: "subtle",
class: "w-full",
size: "md",
to: {
name: "CreateCourse",
params: {
courseName:
a.course.data.name,
},
},
},
{
default: w(() => [
s(
"span",
null,
r(n.__("Edit")),
1
m(
t(k),
{
variant: "subtle",
class: "w-full mt-2",
size: "md",
},
{
default: w(() => [
s(
"span",
null,
r(i.__("Edit")),
1
),
]),
_: 1,
}
),
]),
_: 1,
}
},
8,
["to"]
))
: v("", !0),
s("div", le, r(n.__("This course has:")), 1),
s("div", oe, [
s("div", oe, r(i.__("This course has:")), 1),
s("div", le, [
m(t(Z), {
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,
r(a.course.data.lesson_count) +
" " +
r(n.__("Lessons")),
r(i.__("Lessons")),
1
),
]),
@@ -306,7 +329,7 @@ const te = { class: "shadow rounded-md min-w-80" },
a.course.data.enrollment_count_formatted
) +
" " +
r(n.__("Enrolled Students")),
r(i.__("Enrolled Students")),
1
),
]),
@@ -319,7 +342,7 @@ const te = { class: "shadow rounded-md min-w-80" },
ce,
r(a.course.data.avg_rating) +
" " +
r(n.__("Rating")),
r(i.__("Rating")),
1
),
]),
@@ -337,33 +360,33 @@ const te = { class: "shadow rounded-md min-w-80" },
modelValue: { type: Number, default: 0 },
},
emits: ["update:modelValue"],
setup(a, { emit: i }) {
setup(a, { emit: n }) {
const e = a,
_ = i;
let o = q(e.modelValue),
f = (h) => {
_("update:modelValue", h);
_ = n;
let l = q(e.modelValue),
p = (i) => {
_("update:modelValue", i);
};
function n(h) {
f(h), (o.value = h);
function g(i) {
p(i), (l.value = i);
}
return (h, g) => (
l(),
u("div", _e, [
(l(),
u(
return (i, f) => (
o(),
d("div", _e, [
(o(),
d(
x,
null,
R(5, (d) =>
R(5, (u) =>
s("div", null, [
m(
t(N),
{
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",
]),
onClick: (c) => n(d),
onClick: (c) => g(u),
},
null,
8,
@@ -399,64 +422,64 @@ const te = { class: "shadow rounded-md min-w-80" },
"update:hasReviewed",
],
setup(a) {
const i = C(a, "modelValue"),
const n = C(a, "modelValue"),
e = C(a, "reloadReviews"),
_ = C(a, "hasReviewed");
let o = J({ review: "", rating: 0 });
const f = a,
n = $({
let l = J({ review: "", rating: 0 });
const p = a,
g = $({
url: "frappe.client.insert",
makeParams(g) {
makeParams(f) {
return {
doc: B(
doc: T(
{
doctype: "LMS Course Review",
course: f.courseName,
course: p.courseName,
},
g
f
),
};
},
});
function h(g) {
(o.rating = o.rating / 5),
n.submit(o, {
function i(f) {
(l.rating = l.rating / 5),
g.submit(l, {
validate() {
if (!o.rating) return "Please enter a rating.";
if (!l.rating) return "Please enter a rating.";
},
onSuccess() {
e.value.reload(), _.value.reload();
},
onError(d) {
onError(u) {
var c;
S({
text:
((c = d.messages) == null
((c = u.messages) == null
? void 0
: c[0]) || d,
: c[0]) || u,
icon: "x",
iconClasses: "text-red-600 bg-red-300",
});
},
}),
g();
f();
}
return (g, d) => (
l(),
y(
t(X),
return (f, u) => (
o(),
b(
t(Q),
{
modelValue: i.value,
modelValue: n.value,
"onUpdate:modelValue":
d[2] || (d[2] = (c) => (i.value = c)),
u[2] || (u[2] = (c) => (n.value = c)),
options: {
title: g.__("Write a Review"),
title: f.__("Write a Review"),
size: "xl",
actions: [
{
label: "Submit",
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(() => [
s("div", ge, [
s("div", null, [
s("div", fe, r(g.__("Rating")), 1),
s("div", fe, r(f.__("Rating")), 1),
m(
ve,
{
modelValue: t(o).rating,
modelValue: t(l).rating,
"onUpdate:modelValue":
d[0] ||
(d[0] = (c) =>
(t(o).rating = c)),
u[0] ||
(u[0] = (c) =>
(t(l).rating = c)),
},
null,
8,
@@ -481,18 +504,18 @@ const te = { class: "shadow rounded-md min-w-80" },
),
]),
s("div", null, [
s("div", he, r(g.__("Review")), 1),
s("div", he, r(f.__("Review")), 1),
m(
t(Q),
t(K),
{
type: "text",
size: "md",
rows: "5",
modelValue: t(o).review,
modelValue: t(l).review,
"onUpdate:modelValue":
d[1] ||
(d[1] = (c) =>
(t(o).review = c)),
u[1] ||
(u[1] = (c) =>
(t(l).review = c)),
},
null,
8,
@@ -525,54 +548,54 @@ const te = { class: "shadow rounded-md min-w-80" },
membership: { type: Object, required: !1 },
},
setup(a) {
var h, g, d;
const i = j("$user"),
var i, f, u;
const n = j("$user"),
e = a,
_ = $({
url: "frappe.client.get_count",
cache: [
"eligible_to_review",
e.courseName,
(h = e.membership) == null ? void 0 : h.member,
(i = e.membership) == null ? void 0 : i.member,
],
params: {
doctype: "LMS Course Review",
filters: {
course: e.courseName,
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",
cache: ["course_reviews", e.courseName],
params: { course: e.courseName },
auto: !0,
}),
f = q(!1);
function n() {
f.value = !0;
p = q(!1);
function g() {
p.value = !0;
}
return (c, b) => (
l(),
u(
return (c, y) => (
o(),
d(
x,
null,
[
t(o).data
? (l(),
u("div", we, [
t(l).data
? (o(),
d("div", we, [
a.membership && !t(_).data
? (l(),
y(
? (o(),
b(
t(k),
{
key: 0,
onClick:
b[0] ||
(b[0] = (p) => n()),
y[0] ||
(y[0] = (h) => g()),
class: "float-right",
},
{
@@ -600,27 +623,27 @@ const te = { class: "shadow rounded-md min-w-80" },
" " +
r(c.__("ratings and ")) +
" " +
r(t(o).data.length) +
r(t(l).data.length) +
" " +
r(c.__("reviews")),
1
),
]),
s("div", be, [
(l(!0),
u(
(o(!0),
d(
x,
null,
R(
t(o).data,
(p, Je) => (
l(),
u("div", null, [
t(l).data,
(h, Je) => (
o(),
d("div", null, [
s("div", xe, [
m(
O,
{
user: p.owner_details,
user: h.owner_details,
size: "2xl",
},
null,
@@ -632,7 +655,7 @@ const te = { class: "shadow rounded-md min-w-80" },
"span",
$e,
r(
p
h
.owner_details
.full_name
),
@@ -642,13 +665,13 @@ const te = { class: "shadow rounded-md min-w-80" },
"span",
null,
r(
p.creation
h.creation
),
1
),
s("div", Re, [
(l(),
u(
(o(),
d(
x,
null,
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 <=
Math.ceil(
p.rating
h.rating
)
? "fill-orange-500"
: "fill-gray-600",
@@ -685,12 +708,12 @@ const te = { class: "shadow rounded-md min-w-80" },
]),
]),
]),
p.review
? (l(),
u(
h.review
? (o(),
d(
"div",
Ne,
r(p.review),
r(h.review),
1
))
: v("", !0),
@@ -705,19 +728,19 @@ const te = { class: "shadow rounded-md min-w-80" },
m(
pe,
{
modelValue: f.value,
modelValue: p.value,
"onUpdate:modelValue":
b[1] || (b[1] = (p) => (f.value = p)),
reloadReviews: t(o),
y[1] || (y[1] = (h) => (p.value = h)),
reloadReviews: t(l),
"onUpdate:reloadReviews":
b[2] ||
(b[2] = (p) =>
T(o) ? (o.value = p) : null),
y[2] ||
(y[2] = (h) =>
U(l) ? (l.value = h) : null),
hasReviewed: t(_),
"onUpdate:hasReviewed":
b[3] ||
(b[3] = (p) =>
T(_) ? (_.value = p) : null),
y[3] ||
(y[3] = (h) =>
U(_) ? (_.value = h) : null),
courseName: a.courseName,
},
null,
@@ -742,64 +765,64 @@ const te = { class: "shadow rounded-md min-w-80" },
Me = { class: "m-5" },
Le = { class: "flex justify-between w-full" },
ze = { class: "w-2/3" },
Be = { class: "text-3xl font-semibold" },
Te = { class: "my-3 leading-6" },
Ue = { class: "flex items-center" },
Te = { class: "text-3xl font-semibold" },
Ue = { class: "my-3 leading-6" },
Be = { class: "flex items-center" },
je = { class: "ml-1" },
Ee = { key: 1, class: "mx-3" },
qe = { class: "ml-1" },
De = { key: 3, class: "mx-3" },
Oe = { class: "flex items-center" },
He = { key: 0 },
Ae = { key: 1 },
Pe = { key: 2 },
Pe = { key: 1 },
Ae = { key: 2 },
Fe = { class: "flex mt-3 mb-4 w-fit" },
We = ["innerHTML"],
Ge = { class: "mt-10" },
Ie = { class: "" },
tt = {
st = {
__name: "CourseDetail",
props: { courseName: { type: String, required: !0 } },
setup(a) {
const i = a,
const n = a,
e = $({
url: "lms.lms.utils.get_course_details",
cache: ["course", i.courseName],
params: { course: i.courseName },
cache: ["course", n.courseName],
params: { course: n.courseName },
auto: !0,
}),
_ = E(() => {
var f, n;
let o = [
var p, g;
let l = [
{ label: "All Courses", route: { name: "Courses" } },
];
return (
o.push({
l.push({
label:
(f = e == null ? void 0 : e.data) == null
(p = e == null ? void 0 : e.data) == null
? void 0
: f.title,
: p.title,
route: {
name: "CourseDetail",
params: {
course:
(n = e == null ? void 0 : e.data) ==
(g = e == null ? void 0 : e.data) ==
null
? void 0
: n.name,
: g.name,
},
},
}),
o
l
);
});
return (o, f) =>
return (l, p) =>
t(e).data
? (l(),
u("div", Ve, [
? (o(),
d("div", Ve, [
s("header", Se, [
m(
t(K),
t(X),
{ class: "h-7", items: _.value },
null,
8,
@@ -809,21 +832,21 @@ const te = { class: "shadow rounded-md min-w-80" },
s("div", Me, [
s("div", Le, [
s("div", ze, [
s("div", Be, r(t(e).data.title), 1),
s("div", Te, r(t(e).data.title), 1),
s(
"div",
Te,
Ue,
r(t(e).data.short_introduction),
1
),
s("div", Ue, [
s("div", Be, [
t(e).data.avg_rating
? (l(),
y(
t(U),
? (o(),
b(
t(B),
{
key: 0,
text: o.__(
text: l.__(
"Average Rating"
),
class: "flex items-center",
@@ -851,15 +874,15 @@ const te = { class: "shadow rounded-md min-w-80" },
))
: v("", !0),
t(e).data.avg_rating
? (l(), u("span", Ee, "·"))
? (o(), d("span", Ee, "·"))
: v("", !0),
t(e).data.enrollment_count
? (l(),
y(
t(U),
? (o(),
b(
t(B),
{
key: 2,
text: o.__(
text: l.__(
"Enrolled Students"
),
class: "flex items-center",
@@ -887,7 +910,7 @@ const te = { class: "shadow rounded-md min-w-80" },
))
: v("", !0),
t(e).data.enrollment_count
? (l(), u("span", De, "·"))
? (o(), d("span", De, "·"))
: v("", !0),
s("div", Oe, [
s(
@@ -905,19 +928,19 @@ const te = { class: "shadow rounded-md min-w-80" },
]),
},
[
(l(!0),
u(
(o(!0),
d(
x,
null,
R(
t(e).data
.instructors,
(n) => (
l(),
y(
(g) => (
o(),
b(
O,
{
user: n,
user: g,
},
null,
8,
@@ -932,8 +955,8 @@ const te = { class: "shadow rounded-md min-w-80" },
),
t(e).data.instructors.length ==
1
? (l(),
u(
? (o(),
d(
"span",
He,
r(
@@ -946,10 +969,10 @@ const te = { class: "shadow rounded-md min-w-80" },
: v("", !0),
t(e).data.instructors.length ==
2
? (l(),
u(
? (o(),
d(
"span",
Ae,
Pe,
r(
t(e).data
.instructors[0]
@@ -965,10 +988,10 @@ const te = { class: "shadow rounded-md min-w-80" },
))
: v("", !0),
t(e).data.instructors.length > 2
? (l(),
u(
? (o(),
d(
"span",
Pe,
Ae,
r(
t(e).data
.instructors[0]
@@ -988,15 +1011,15 @@ const te = { class: "shadow rounded-md min-w-80" },
]),
]),
s("div", Fe, [
(l(!0),
u(
(o(!0),
d(
x,
null,
R(
t(e).data.tags,
(n) => (
l(),
y(
(g) => (
o(),
b(
t(Y),
{
theme: "gray",
@@ -1008,7 +1031,7 @@ const te = { class: "shadow rounded-md min-w-80" },
() => [
V(
r(
n
g
),
1
),
@@ -1048,8 +1071,8 @@ const te = { class: "shadow rounded-md min-w-80" },
),
]),
t(e).data.avg_rating
? (l(),
y(
? (o(),
b(
Ce,
{
key: 0,
@@ -1083,5 +1106,5 @@ const te = { class: "shadow rounded-md min-w-80" },
: v("", !0);
},
};
export { tt as default };
//# sourceMappingURL=CourseDetail-MceVHLH3.js.map
export { st as default };
//# 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 {
af as N,
r as b,
k as B,
x as e,
af as M,
r as B,
k as H,
x as t,
y as n,
C as r,
I as l,
J as p,
Q as k,
R as f,
A as i,
B as u,
G as m,
H as t,
F as x,
ah as M,
U as H,
ai as I,
aj as V,
X as j,
} from "./frappe-ui-20hnMCM8.js";
import { a as d } from "./index-Vx7mSx23.js";
K as e,
H as r,
L as l,
M as k,
Q as x,
R as g,
F as u,
G as i,
J as d,
I as v,
ag as I,
U as O,
ah as R,
ai as V,
X as F,
} from "./frappe-ui-LT4YqXtx.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
*
* This source code is licensed under the ISC license.
* 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" }],
]);
/**
@@ -34,25 +35,7 @@ import { a as d } from "./index-Vx7mSx23.js";
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/ const R = d("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" }],
]);
/**
* @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", [
*/ const j = h("HelpCircleIcon", [
["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: "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.
* 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" }],
[
"rect",
@@ -78,14 +61,14 @@ import { a as d } from "./index-Vx7mSx23.js";
["path", { d: "M12 17v4", key: "1riwvh" }],
["path", { d: "M8 21h8", key: "1ev6f3" }],
]),
L = { class: "text-base" },
q = { key: 0, class: "flex justify-between mb-4" },
T = { class: "text-2xl font-semibold" },
P = { class: "text-base text-left font-medium" },
Q = { class: "ml-auto text-sm" },
S = { class: "outline-lesson py-2 pl-8" },
A = { class: "flex items-center text-sm" },
J = {
P = { class: "text-base" },
Q = { key: 0, class: "flex justify-between mb-4" },
S = { class: "text-2xl font-semibold" },
T = { class: "text-base text-left font-medium" },
D = { class: "ml-auto text-sm" },
E = { class: "outline-lesson py-2 pl-8" },
G = { class: "flex items-center text-sm" },
Z = {
__name: "CourseOutline",
props: {
courseName: { type: String, required: !0 },
@@ -93,77 +76,81 @@ import { a as d } from "./index-Vx7mSx23.js";
showHeader: { type: Boolean, default: !1 },
},
setup(c) {
const _ = N();
b(!0);
const y = c,
v = B({
const w = M();
B(!0);
const p = c,
m = H({
url: "lms.lms.utils.get_course_outline",
cache: ["course_outline", y.courseName],
params: { course: y.courseName },
cache: ["course_outline", p.courseName],
params: { course: p.courseName },
auto: !0,
}),
w = (a) => a == _.params.chapterNumber || a == 1;
return (a, D) => {
const g = j("router-link");
C = (a) => a == w.params.chapterNumber || a == 1;
return (a, J) => {
var y, f;
const N = F("router-link");
return (
e(),
n("div", L, [
c.showHeader
? (e(),
n("div", q, [
r("div", T, l(a.__("Course Content")), 1),
t(),
n("div", P, [
c.showHeader && (y = e(m).data) != null && y.length
? (t(),
n("div", Q, [
r("div", S, l(a.__("Course Content")), 1),
]))
: p("", !0),
: k("", !0),
r(
"div",
{
class: x({
class: v({
"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(
k,
x,
null,
f(
t(v).data,
(o, C) => (
e(),
i(
t(V),
g(
e(m).data,
(o, b) => (
t(),
u(
e(V),
{
key: o.name,
defaultOpen: w(o.idx),
defaultOpen: C(o.idx),
},
{
default: u(
({ open: h }) => [
m(
t(M),
default: i(
({ open: _ }) => [
d(
e(I),
{
ref_for: !0,
ref: "",
class: "flex w-full px-2 py-4",
},
{
default: u(
default: i(
() => [
m(
t(
O
d(
e(
q
),
{
class: x(
class: v(
[
{
"rotate-90 transform duration-200":
h,
_,
"duration-200":
!h,
!_,
open:
C ==
b ==
1,
},
"h-4 w-4 text-gray-900 stroke-1 mr-2",
@@ -178,7 +165,7 @@ import { a as d } from "./index-Vx7mSx23.js";
),
r(
"div",
P,
T,
l(
o.title
),
@@ -186,7 +173,7 @@ import { a as d } from "./index-Vx7mSx23.js";
),
r(
"div",
Q,
D,
l(
o
.lessons
@@ -213,26 +200,26 @@ import { a as d } from "./index-Vx7mSx23.js";
},
1536
),
m(
t(I),
d(
e(R),
{
class: "pb-2",
},
{
default: u(
default: i(
() => [
(e(
(t(
!0
),
n(
k,
x,
null,
f(
g(
o.lessons,
(
s
) => (
e(),
t(),
n(
"div",
{
@@ -241,10 +228,10 @@ import { a as d } from "./index-Vx7mSx23.js";
[
r(
"div",
S,
E,
[
m(
g,
d(
N,
{
to: {
name: "Lesson",
@@ -264,18 +251,18 @@ import { a as d } from "./index-Vx7mSx23.js";
},
{
default:
u(
i(
() => [
r(
"div",
A,
G,
[
s.icon ===
"icon-youtube"
? (e(),
i(
t(
F
? (t(),
u(
e(
z
),
{
key: 0,
@@ -284,10 +271,10 @@ import { a as d } from "./index-Vx7mSx23.js";
))
: s.icon ===
"icon-quiz"
? (e(),
i(
t(
z
? (t(),
u(
e(
j
),
{
key: 1,
@@ -296,21 +283,21 @@ import { a as d } from "./index-Vx7mSx23.js";
))
: s.icon ===
"icon-list"
? (e(),
i(
t(
R
? (t(),
u(
e(
L
),
{
key: 2,
class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
}
))
: p(
: k(
"",
!0
),
H(
O(
" " +
l(
s.title
@@ -361,5 +348,5 @@ import { a as d } from "./index-Vx7mSx23.js";
};
},
};
export { O as C, J as _ };
//# sourceMappingURL=CourseOutline-M5G5Rx7O.js.map
export { q as C, Z as _ };
//# 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 {
d as k,
a5 as w,
r as L,
d as N,
a5 as k,
r as w,
j as r,
y as c,
H as n,
C as d,
G as _,
A as p,
B as u,
J as f,
y as u,
K as n,
H as d,
J as m,
G as c,
F as p,
M as f,
X as L,
x as l,
a6 as V,
U as g,
I as h,
L as h,
a7 as $,
F as B,
N as j,
I as j,
P as B,
a8 as U,
Q as D,
R,
a9 as z,
X as A,
} from "./frappe-ui-20hnMCM8.js";
import { _ as E } from "./CourseCard--twQpeIf.js";
import { P as F } from "./plus-pxSjkL_w.js";
import "./UserAvatar-yrWInUTi.js";
import "./index-Vx7mSx23.js";
import "./star-ypmGZNF0.js";
const I = { class: "h-screen" },
P = { key: 0 },
S = {
R as P,
a9 as R,
} from "./frappe-ui-LT4YqXtx.js";
import { _ as z } from "./CourseCard-RMpjQ-rq.js";
import { P as E } from "./plus-0JOmes86.js";
import "./UserAvatar-A3tEMZXD.js";
import "./index-6k1S_EjG.js";
import "./star--IkSKstT.js";
const F = { class: "h-screen" },
I = { key: 0 },
M = {
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" },
H = { class: "" },
J = { key: 0, class: "p-5 text-base text-gray-700" },
M = {
S = { class: "flex" },
A = { class: "" },
G = { key: 0, class: "p-5 text-base text-gray-700" },
H = {
key: 0,
class: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-5 my-5 mx-5",
},
Q = {
J = {
key: 1,
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" },
ee = {
K = { class: "flex flex-col items-center justify-center mt-4" },
Z = {
__name: "Courses",
setup(X) {
setup(Q) {
var b, y, x;
const i = k("$user"),
a = w({
const i = N("$user"),
a = k({
type: "list",
doctype: "LMS Course",
cache: [
@@ -62,8 +62,8 @@ const I = { class: "h-screen" },
url: "lms.lms.utils.get_courses",
auto: !0,
}),
v = L(0),
m = [
v = w(0),
_ = [
{
label: "Live",
courses: r(() => {
@@ -98,7 +98,7 @@ const I = { class: "h-screen" },
];
return (
i.data &&
(m.push({
(_.push({
label: "Enrolled",
courses: r(() => {
var e;
@@ -118,7 +118,7 @@ const I = { class: "h-screen" },
((x = (y = a.data) == null ? void 0 : y.created) !=
null &&
x.length)) &&
m.push({
_.push({
label: "Created",
courses: r(() => {
var e;
@@ -137,7 +137,7 @@ const I = { class: "h-screen" },
}),
}),
i.data.is_moderator &&
m.push({
_.push({
label: "Under Review",
courses: r(() => {
var e;
@@ -156,16 +156,15 @@ const I = { class: "h-screen" },
}),
})),
(e, s) => {
var C;
const N = A("router-link");
const C = L("router-link");
return (
l(),
c("div", I, [
u("div", F, [
n(a).data
? (l(),
c("div", P, [
d("header", S, [
_(
u("div", I, [
d("header", M, [
m(
n(V),
{
class: "h-7",
@@ -184,61 +183,88 @@ const I = { class: "h-screen" },
8,
["items"]
),
d("div", G, [
(C = n(i).data) != null &&
C.is_moderator
? (l(),
p(
n($),
{
key: 0,
variant:
"solid",
d("div", S, [
m(
C,
{
to: {
name: "CreateCourse",
params: {
courseName:
"new",
},
{
prefix: u(
() => [
_(
},
},
{
default: c(() => {
var t;
return [
(t =
n(
i
).data) !=
null &&
t.is_moderator
? (l(),
p(
n(
F
$
),
{
class: "h-4 w-4",
}
),
]
),
default: u(
() => [
g(
" " +
h(
e.__(
"New Course"
)
key: 0,
variant:
"solid",
},
{
prefix: c(
() => [
m(
n(
E
),
{
class: "h-4 w-4",
}
),
]
),
1
),
]
),
_: 1,
}
))
: f("", !0),
default:
c(
() => [
g(
" " +
h(
e.__(
"New Course"
)
),
1
),
]
),
_: 1,
}
))
: f("", !0),
];
}),
_: 1,
}
),
]),
]),
d("div", H, [
d("div", A, [
n(a).data.length == 0 &&
n(a).list.loading
? (l(),
c(
u(
"div",
J,
G,
" Loading Courses... "
))
: (l(),
p(
n(z),
n(R),
{
key: 1,
modelValue: v.value,
@@ -247,12 +273,12 @@ const I = { class: "h-screen" },
(s[0] = (t) =>
(v.value =
t)),
tabs: m,
tabs: _,
tablistClass:
"overflow-x-visible",
},
{
tab: u(
tab: c(
({
tab: t,
selected: o,
@@ -264,7 +290,7 @@ const I = { class: "h-screen" },
d(
"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",
{
@@ -278,7 +304,7 @@ const I = { class: "h-screen" },
t.icon
? (l(),
p(
j(
B(
t.icon
),
{
@@ -300,7 +326,7 @@ const I = { class: "h-screen" },
" ",
1
),
_(
m(
n(
U
),
@@ -309,7 +335,7 @@ const I = { class: "h-screen" },
},
{
default:
u(
c(
() => [
g(
h(
@@ -330,7 +356,7 @@ const I = { class: "h-screen" },
),
]
),
default: u(
default: c(
({
tab: t,
}) => [
@@ -339,17 +365,17 @@ const I = { class: "h-screen" },
.value
.length
? (l(),
c(
u(
"div",
M,
H,
[
(l(
!0
),
c(
u(
D,
null,
R(
P(
t
.courses
.value,
@@ -358,7 +384,7 @@ const I = { class: "h-screen" },
) => (
l(),
p(
N,
C,
{
to:
o.membership &&
@@ -398,10 +424,10 @@ const I = { class: "h-screen" },
},
{
default:
u(
c(
() => [
_(
E,
m(
z,
{
course: o,
},
@@ -427,13 +453,13 @@ const I = { class: "h-screen" },
]
))
: (l(),
c(
u(
"div",
Q,
J,
[
d(
"div",
T,
K,
[
d(
"div",
@@ -469,5 +495,5 @@ const I = { class: "h-screen" },
);
},
};
export { ee as default };
//# sourceMappingURL=Courses-twOd7MxD.js.map
export { Z as default };
//# 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 {
aa as B,
ab as N,
aa as N,
ab as B,
r as $,
d as S,
s as j,
k,
x as i,
y,
G as n,
B as x,
H as t,
J as n,
G as x,
K as t,
a7 as T,
C as s,
I as d,
J as R,
H as s,
L as d,
M as R,
Q as M,
R as E,
A as V,
K as A,
F as V,
N as F,
U as D,
au as P,
F as I,
a as F,
am as G,
at as P,
I,
a as A,
al as G,
D as J,
b as K,
} from "./frappe-ui-20hnMCM8.js";
import { _ as U } from "./UserAvatar-yrWInUTi.js";
import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
} from "./frappe-ui-LT4YqXtx.js";
import { _ as L } from "./UserAvatar-A3tEMZXD.js";
import { a as q, t as U, c as O } from "./index-6k1S_EjG.js";
/**
* @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),
z = {
__name: "DiscussionReplies",
props: B(
props: N(
{
topic: { type: Object, required: !0 },
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"],
setup(l) {
const g = N(l, "showTopics"),
const g = B(l, "showTopics"),
m = $(""),
c = S("$socket"),
_ = S("$user"),
@@ -216,7 +216,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
null,
E(
t(o).data,
(a, L) => (
(a, H) => (
i(),
y("div", null, [
s(
@@ -226,7 +226,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
"py-3",
{
"border-b":
L + 1 !=
H + 1 !=
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", se, [
n(
U,
L,
{
user: a.user,
class: "mr-2",
@@ -253,7 +253,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
s(
"span",
oe,
d(t(H)(a.creation)),
d(t(U)(a.creation)),
1
),
]),
@@ -261,7 +261,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
!a.editable
? (i(),
V(
t(A),
t(F),
{
key: 0,
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" },
ce = {
__name: "DiscussionModal",
props: B(
props: N(
{
title: { 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"],
setup(l) {
const g = N(l, "reloadTopics"),
const g = B(l, "reloadTopics"),
m = l,
c = F({ title: "", reply: "" }),
c = A({ title: "", reply: "" }),
_ = k({
url: "frappe.client.insert",
makeParams(f) {
@@ -686,7 +686,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
},
[
n(
U,
L,
{
user: u.user,
size: "2xl",
@@ -729,7 +729,7 @@ import { a as q, t as H, c as O } from "./index-Vx7mSx23.js";
he,
d(
t(
H
U
)(
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 _ };
//# sourceMappingURL=Discussions-C9dFHLpJ.js.map
//# sourceMappingURL=Discussions-3EqlwpPS.js.map

View File

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

View File

@@ -2,14 +2,14 @@ import {
v as d,
D as g,
y as m,
G as s,
B as t,
C as r,
I as p,
J as s,
G as t,
H as r,
L as p,
X as u,
x as f,
U as l,
} from "./frappe-ui-20hnMCM8.js";
} from "./frappe-ui-LT4YqXtx.js";
const D = {
name: "Home",
data() {
@@ -19,7 +19,7 @@ const D = {
components: { Dialog: g },
},
_ = { 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"),
c = u("Dialog");
return (
@@ -61,6 +61,6 @@ function C(e, o, k, w, n, B) {
])
);
}
const $ = d(D, [["render", C]]);
export { $ as default };
//# sourceMappingURL=Home-iNWB3jqR.js.map
const v = d(D, [["render", k]]);
export { v as default };
//# 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 {
v as I,
a7 as f,
v as f,
a7 as I,
D,
aK as h,
aQ as h,
X as d,
x as m,
y as c,
M as _,
az as y,
aA as C,
G as n,
B as s,
C as i,
I as v,
J as w,
O as _,
aG as y,
aH as v,
J as n,
G as s,
H as i,
L as C,
M as w,
U as u,
Q as x,
} from "./frappe-ui-20hnMCM8.js";
const B = {
} from "./frappe-ui-LT4YqXtx.js";
const b = {
name: "InsertImage",
props: ["editor"],
expose: ["openDialog"],
data() {
return { addImageDialog: { url: "", file: null, show: !1 } };
},
components: { Button: f, Dialog: D },
components: { Button: I, Dialog: D },
methods: {
openDialog() {
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",
},
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"];
function V(t, e, r, A, a, o) {
function V(t, e, r, N, a, o) {
const g = d("Button"),
p = d("Dialog");
return (
@@ -60,7 +60,7 @@ function V(t, e, r, A, a, o) {
x,
null,
[
_(t.$slots, "default", y(C({ onClick: o.openDialog }))),
_(t.$slots, "default", y(v({ onClick: o.openDialog }))),
n(
p,
{
@@ -72,7 +72,7 @@ function V(t, e, r, A, a, o) {
},
{
"body-content": s(() => [
i("label", b, [
i("label", k, [
i(
"input",
{
@@ -90,8 +90,8 @@ function V(t, e, r, A, a, o) {
),
i(
"span",
k,
v(
B,
C(
a.addImageDialog.file
? "Select another image"
: "Select an image"
@@ -147,6 +147,6 @@ function V(t, e, r, A, a, o) {
)
);
}
const z = I(B, [["render", V]]);
export { z as default };
//# sourceMappingURL=InsertImage-MQQczXkr.js.map
const L = f(b, [["render", V]]);
export { L as default };
//# 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 {
v as d,
a7 as g,
am as L,
al as L,
D as m,
X as i,
x as p,
y as f,
M as D,
az as c,
aA as h,
G as a,
B as l,
aJ as v,
O as D,
aG as c,
aH as h,
J as a,
G as l,
aB as v,
U as x,
Q as _,
} from "./frappe-ui-20hnMCM8.js";
} from "./frappe-ui-LT4YqXtx.js";
const w = {
name: "InsertLink",
props: ["editor"],
@@ -118,4 +118,4 @@ function V(t, e, B, C, n, s) {
}
const R = d(w, [["render", V]]);
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 {
v as _,
a7 as C,
D as v,
aL as k,
a7 as v,
D as C,
aA as k,
X as r,
x as u,
y as c,
M as h,
az as x,
aA as B,
G as a,
B as l,
C as y,
O as h,
aG as x,
aH as y,
J as a,
G as l,
H as B,
U as n,
I as U,
A as w,
J as p,
Q as A,
} from "./frappe-ui-20hnMCM8.js";
const I = {
L as U,
F as w,
M as p,
Q as F,
} from "./frappe-ui-LT4YqXtx.js";
const A = {
name: "InsertImage",
props: ["editor"],
expose: ["openDialog"],
data() {
return { addVideoDialog: { url: "", file: null, show: !1 } };
},
components: { Button: C, Dialog: v, FileUploader: k },
components: { Button: v, Dialog: C, FileUploader: k },
methods: {
openDialog() {
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"];
function S(i, o, L, z, e, t) {
function S(i, o, L, G, e, t) {
const s = r("Button"),
V = r("FileUploader"),
g = r("Dialog");
return (
u(),
c(
A,
F,
null,
[
h(i.$slots, "default", x(B({ onClick: t.openDialog }))),
h(i.$slots, "default", x(y({ onClick: t.openDialog }))),
a(
g,
{
@@ -89,7 +89,7 @@ function S(i, o, L, z, e, t) {
uploading: m,
openFileSelector: D,
}) => [
y("div", F, [
B("div", I, [
a(
s,
{ onClick: D },
@@ -196,6 +196,6 @@ function S(i, o, L, z, e, t) {
)
);
}
const R = _(I, [["render", S]]);
export { R as default };
//# sourceMappingURL=InsertVideo-nOXySFw5.js.map
const P = _(A, [["render", S]]);
export { P as default };
//# 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 {
d as p,
x as n,
d as f,
x as a,
y as c,
C as e,
I as l,
U as _,
G as a,
H as s,
H as e,
L as n,
U as u,
J as l,
K as s,
a8 as h,
B as r,
G as r,
k as y,
A as j,
J as m,
F as p,
M as _,
Q as g,
R as x,
a6 as k,
a7 as v,
R as v,
a6 as x,
a7 as k,
X as $,
} from "./frappe-ui-20hnMCM8.js";
import { a as w } from "./index-Vx7mSx23.js";
import { P as J } from "./plus-pxSjkL_w.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 M = w("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" }],
]),
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" },
} from "./frappe-ui-LT4YqXtx.js";
import { M as w } from "./map-pin-yIki2ElO.js";
import { P as J } from "./plus-0JOmes86.js";
import "./index-6k1S_EjG.js";
const M = { class: "flex shadow rounded-md p-4 h-full" },
N = ["src"],
B = { class: "text-xl font-semibold mb-2" },
C = { class: "font-medium" },
D = { class: "flex items-center my-4" },
V = { class: "font-medium" },
Y = {
__name: "JobCard",
props: { job: { type: Object, default: null } },
setup(t) {
const i = p("$dayjs");
const i = f("$dayjs");
return (o, d) => (
n(),
c("div", B, [
a(),
c("div", M, [
e(
"img",
{
@@ -57,16 +43,16 @@ import { P as J } from "./plus-pxSjkL_w.js";
},
null,
8,
C
N
),
e("div", null, [
e("div", N, l(t.job.job_title), 1),
e("div", B, n(t.job.job_title), 1),
e("div", null, [
_(l(o.__("posted by")) + " ", 1),
e("span", D, l(t.job.company_name), 1),
u(n(o.__("posted by")) + " ", 1),
e("span", C, n(t.job.company_name), 1),
]),
e("div", P, [
a(
e("div", D, [
l(
s(h),
{
label: t.job.type,
@@ -78,7 +64,7 @@ import { P as J } from "./plus-pxSjkL_w.js";
8,
["label"]
),
a(
l(
s(h),
{
label: t.job.location,
@@ -87,7 +73,7 @@ import { P as J } from "./plus-pxSjkL_w.js";
},
{
prefix: r(() => [
a(s(M), {
l(s(w), {
class: "h-4 w-4 stroke-1.5",
}),
]),
@@ -98,11 +84,11 @@ import { P as J } from "./plus-pxSjkL_w.js";
),
]),
e("div", null, [
_(l(o.__("posted on")) + " ", 1),
u(n(o.__("posted on")) + " ", 1),
e(
"span",
V,
l(s(i)(t.job.creation).format("DD MMM YYYY")),
n(s(i)(t.job.creation).format("DD MMM YYYY")),
1
),
]),
@@ -112,30 +98,30 @@ import { P as J } from "./plus-pxSjkL_w.js";
},
},
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",
},
L = { class: "flex" },
R = { key: 0 },
q = { class: "grid grid-cols-2 gap-5 p-5" },
H = {
F = { class: "flex" },
L = { key: 0 },
R = { class: "grid grid-cols-2 gap-5 p-5" },
Q = {
__name: "Jobs",
setup(t) {
const i = p("$user"),
const i = f("$user"),
o = y({
url: "lms.lms.api.get_job_opportunities",
cache: ["jobs"],
auto: !0,
});
return (d, A) => {
var u;
const f = $("router-link");
return (d, E) => {
var b;
const j = $("router-link");
return (
n(),
a(),
c("div", z, [
e("header", I, [
a(
s(k),
e("header", P, [
l(
s(x),
{
class: "h-7",
items: [
@@ -149,63 +135,65 @@ import { P as J } from "./plus-pxSjkL_w.js";
8,
["items"]
),
e("div", L, [
(u = s(i).data) != null && u.name
? (n(),
j(
s(v),
e("div", F, [
(b = s(i).data) != null && b.name
? (a(),
p(
s(k),
{ key: 0, variant: "solid" },
{
prefix: r(() => [
a(s(J), {
l(s(J), {
class: "h-4 w-4",
}),
]),
default: r(() => [
_(
u(
" " +
l(d.__("New Job")),
n(d.__("New Job")),
1
),
]),
_: 1,
}
))
: m("", !0),
: _("", !0),
]),
]),
s(o).data
? (n(),
c("div", R, [
e("div", q, [
? (a(),
c("div", L, [
e("div", R, [
s(o).data.length
? (n(!0),
? (a(!0),
c(
g,
{ key: 0 },
x(
v(
s(o).data,
(b) => (
n(),
(m) => (
a(),
c("div", null, [
a(
f,
(a(),
p(
j,
{
to: {
name: "JobDetail",
params: {
job: b.name,
job: m.name,
},
},
key: m.name,
},
{
default:
r(
() => [
a(
l(
Y,
{
job: b,
job: m,
},
null,
8,
@@ -219,20 +207,20 @@ import { P as J } from "./plus-pxSjkL_w.js";
},
1032,
["to"]
),
)),
])
)
),
256
))
: m("", !0),
: _("", !0),
]),
]))
: m("", !0),
: _("", !0),
])
);
};
},
};
export { H as default };
//# sourceMappingURL=Jobs-PZPyKz-0.js.map
export { Q as default };
//# 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 {
r as O,
aw as X,
ax as Q,
r as B,
aD as J,
aE as X,
j as x,
w as U,
n as Z,
n as Q,
x as n,
A as F,
B as c,
G as w,
H as a,
ay as K,
M as g,
az as C,
aA as V,
C as v,
F as T,
F as A,
G as c,
J as w,
K as a,
aF as Z,
O as g,
aG as C,
aH as V,
H as v,
I,
y as p,
I as N,
aB as M,
aC as W,
aD as Y,
L as N,
aI as F,
aJ as W,
aK as Y,
Q as R,
R as E,
J as q,
aE as ee,
M as q,
aL as ee,
U as te,
aF as G,
aG as ae,
aH as H,
aM as G,
aN as ae,
aO as H,
k as se,
aI as le,
aP as le,
a7 as re,
} from "./frappe-ui-20hnMCM8.js";
import { a as oe, C as ue } from "./index-Vx7mSx23.js";
import { P as ne } from "./plus-pxSjkL_w.js";
} from "./frappe-ui-LT4YqXtx.js";
import { a as oe, C as ue } from "./index-6k1S_EjG.js";
import { P as ne } from "./plus-0JOmes86.js";
/**
* @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 },
},
emits: ["update:modelValue", "update:query", "change"],
setup(j, { expose: A, emit: f }) {
setup(j, { expose: D, emit: f }) {
const r = j,
u = f,
i = O(""),
h = O(!1),
S = O(null),
k = X(),
z = Q(),
P = x(() => "value" in k),
i = B(""),
h = B(!1),
S = B(null),
k = J(),
z = X(),
L = x(() => "value" in k),
_ = x({
get() {
return P.value ? k.value : r.modelValue;
return L.value ? k.value : r.modelValue;
},
set(t) {
(i.value = ""),
t && (h.value = !1),
u(P.value ? "change" : "update:modelValue", t);
u(L.value ? "change" : "update:modelValue", t);
},
});
function e() {
@@ -136,12 +136,12 @@ import { P as ne } from "./plus-pxSjkL_w.js";
}),
U(h, (t) => {
t &&
Z(() => {
Q(() => {
S.value.el.focus();
});
});
const $ = x(() => (r.disabled ? "text-gray-600" : "text-gray-800")),
J = x(() => {
K = x(() => {
let t = {
sm: "text-base rounded h-7",
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 (
A({ query: i }),
D({ query: i }),
(t, s) => (
n(),
F(
A(
a(ae),
{
modelValue: _.value,
@@ -183,7 +183,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
{
default: c(({ open: l }) => [
w(
a(K),
a(Z),
{
class: "w-full",
show: h.value,
@@ -193,14 +193,14 @@ import { P as ne } from "./plus-pxSjkL_w.js";
},
{
target: c(
({ open: o, togglePopover: B }) => [
({ open: o, togglePopover: P }) => [
g(
t.$slots,
"target",
C(
V({
open: o,
togglePopover: B,
togglePopover: P,
})
),
() => [
@@ -208,13 +208,13 @@ import { P as ne } from "./plus-pxSjkL_w.js";
v(
"button",
{
class: T([
class: I([
"flex w-full items-center justify-between focus:outline-none",
J.value,
K.value,
]),
onClick:
() =>
B(),
P(),
},
[
v(
@@ -262,9 +262,9 @@ import { P as ne } from "./plus-pxSjkL_w.js";
]
),
body: c(({ isOpen: o }) => {
var B;
var P;
return [
M(
F(
v(
"div",
null,
@@ -346,7 +346,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
(
b
) =>
M(
F(
(n(),
p(
"div",
@@ -379,35 +379,35 @@ import { P as ne } from "./plus-pxSjkL_w.js";
E(
b.items,
(
L
O
) => (
n(),
F(
A(
a(
ee
),
{
as: "template",
key: L.value,
value: L,
key: O.value,
value: O,
},
{
default:
c(
({
active: D,
active: T,
selected:
I,
M,
}) => [
v(
"li",
{
class: T(
class: I(
[
"flex items-center rounded px-2.5 py-1.5 text-base",
{
"bg-gray-100":
D,
T,
},
]
),
@@ -419,10 +419,10 @@ import { P as ne } from "./plus-pxSjkL_w.js";
C(
V(
{
active: D,
active: T,
selected:
I,
option: L,
M,
option: O,
}
)
)
@@ -433,17 +433,17 @@ import { P as ne } from "./plus-pxSjkL_w.js";
C(
V(
{
active: D,
active: T,
selected:
I,
option: L,
M,
option: O,
}
)
),
() => [
te(
N(
L.label
O.label
),
1
),
@@ -512,11 +512,11 @@ import { P as ne } from "./plus-pxSjkL_w.js";
V(
{
value:
(B =
(P =
S.value) ==
null
? void 0
: B
: P
.el
._value,
close: e,
@@ -559,10 +559,10 @@ import { P as ne } from "./plus-pxSjkL_w.js";
modelValue: { type: String, default: "" },
},
emits: ["update:modelValue", "change"],
setup(j, { emit: A }) {
setup(j, { emit: D }) {
const f = j,
r = A,
u = X(),
r = D,
u = J(),
i = x(() => "value" in u),
h = x({
get: () => (i.value ? u.value : f.modelValue),
@@ -575,21 +575,21 @@ import { P as ne } from "./plus-pxSjkL_w.js";
)
),
}),
S = O(null),
k = O("");
S = B(null),
k = B("");
H(
() => {
var e;
return (e = S.value) == null ? void 0 : e.query;
},
(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 }
),
H(
() => f.doctype,
() => P(""),
() => L(""),
{ debounce: 300, immediate: !0 }
);
const z = se({
@@ -604,7 +604,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
transform: (e) =>
e.map((m) => ({ label: m.value, value: m.value })),
});
function P(e) {
function L(e) {
z.update({
params: { txt: e, doctype: f.doctype, filters: f.filters },
}),
@@ -621,7 +621,7 @@ import { P as ne } from "./plus-pxSjkL_w.js";
? (n(),
p(
"label",
{ key: 0, class: T(["block", _.value]) },
{ key: 0, class: I(["block", _.value]) },
N(a(u).label),
3
))
@@ -731,5 +731,5 @@ import { P as ne } from "./plus-pxSjkL_w.js";
);
},
};
export { Ve as _ };
//# sourceMappingURL=Link-Z_9V94MR.js.map
export { ie as X, Ve as _ };
//# 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 {
x as r,
A as s,
av as t,
H as l,
as as u,
J as n,
} from "./frappe-ui-20hnMCM8.js";
F as s,
au as t,
K as u,
ar as l,
M as n,
} from "./frappe-ui-LT4YqXtx.js";
const i = {
__name: "UserAvatar",
props: { user: { type: Object, default: null }, size: { type: String } },
@@ -14,7 +14,7 @@ const i = {
e.user
? (r(),
s(
l(u),
u(l),
t(
{
key: 0,
@@ -33,4 +33,4 @@ const i = {
},
};
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
*
@@ -19,4 +19,4 @@ import { a as c } from "./index-Vx7mSx23.js";
],
]);
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
*
@@ -31,4 +31,4 @@ import { a as e } from "./index-Vx7mSx23.js";
["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }],
]);
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
*
@@ -9,4 +9,4 @@ import { a } from "./index-Vx7mSx23.js";
["path", { d: "M12 5v14", key: "s699le" }],
]);
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
*
@@ -14,4 +14,4 @@ import { a as o } from "./index-Vx7mSx23.js";
],
]);
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" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Frappe UI App</title>
<script type="module" crossorigin src="/assets/index-Vx7mSx23.js"></script>
<link rel="modulepreload" crossorigin href="/assets/frappe-ui-20hnMCM8.js">
<script type="module" crossorigin src="/assets/index-6k1S_EjG.js"></script>
<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/index-VOpIbXPv.css">
<link rel="stylesheet" crossorigin href="/assets/index-KTmXOKI7.css">
</head>
<body>
<div id="app"></div>