fix: cleanup ui
This commit is contained in:
@@ -116,7 +116,7 @@
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"make_attachments_public": 1,
|
||||
"modified": "2023-09-29 17:03:30.825021",
|
||||
"modified": "2024-02-01 23:14:17.444811",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Job",
|
||||
"name": "Job Opportunity",
|
||||
@@ -137,15 +137,23 @@
|
||||
"write": 1
|
||||
},
|
||||
{
|
||||
"create": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"if_owner": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "LMS Student",
|
||||
"select": 1,
|
||||
"share": 1
|
||||
},
|
||||
{
|
||||
"create": 1,
|
||||
"email": 1,
|
||||
"export": 1,
|
||||
"if_owner": 1,
|
||||
"print": 1,
|
||||
"report": 1,
|
||||
"role": "LMS Student",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
|
||||
@@ -218,3 +218,24 @@ def validate_billing_access(type, name):
|
||||
)
|
||||
|
||||
return {"access": access, "message": message, "address": address}
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def get_job_details(job):
|
||||
return frappe.db.get_value(
|
||||
"Job Opportunity",
|
||||
job,
|
||||
["job_title", "location", "type", "company_name", "company_logo", "name", "creation"],
|
||||
as_dict=1,
|
||||
)
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def get_job_opportunities():
|
||||
jobs = frappe.get_all(
|
||||
"Job Opportunity",
|
||||
{"status": "Open", "disabled": False},
|
||||
["job_title", "location", "type", "company_name", "company_logo", "name", "creation"],
|
||||
order_by="creation desc",
|
||||
)
|
||||
return jobs
|
||||
|
||||
@@ -1726,14 +1726,3 @@ def get_order_summary(doctype, docname, country=None):
|
||||
|
||||
details.total_amount_formatted = fmt_money(details.amount, 0, details.currency)
|
||||
return details
|
||||
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def get_job_opportunities():
|
||||
jobs = frappe.get_all(
|
||||
"Job Opportunity",
|
||||
{"status": "Open", "disabled": False},
|
||||
["job_title", "location", "type", "company_name", "company_logo", "name", "creation"],
|
||||
order_by="creation desc",
|
||||
)
|
||||
return jobs
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
1
lms/public/frontend/assets/Batch-58vnulBX.js.map
Normal file
1
lms/public/frontend/assets/Batch-58vnulBX.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,73 +1,73 @@
|
||||
import {
|
||||
a as k,
|
||||
j as B,
|
||||
W as $,
|
||||
d as x,
|
||||
j as C,
|
||||
x as n,
|
||||
y as u,
|
||||
A as f,
|
||||
B as _,
|
||||
H as s,
|
||||
U as M,
|
||||
G as t,
|
||||
a8 as N,
|
||||
I as o,
|
||||
J as e,
|
||||
F as l,
|
||||
y as h,
|
||||
A as b,
|
||||
B as u,
|
||||
U as N,
|
||||
I as s,
|
||||
H as t,
|
||||
a8 as Y,
|
||||
J as d,
|
||||
C as e,
|
||||
G as r,
|
||||
a7 as w,
|
||||
k as Y,
|
||||
Q as L,
|
||||
R as T,
|
||||
X as D,
|
||||
L as H,
|
||||
a6 as S,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { b as O, B as C, f as x } from "./index-qZ7Yta4u.js";
|
||||
import { C as D, a as j } from "./clock-z0R6Od6V.js";
|
||||
import { _ as R } from "./CourseCard-1i2yp1tI.js";
|
||||
import "./UserAvatar-nJqmkBPv.js";
|
||||
import "./star-xishKgdq.js";
|
||||
const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
A = { key: 2, class: "text-lg font-semibold mb-3" },
|
||||
E = { class: "flex items-center mb-3" },
|
||||
F = { class: "flex items-center mb-3" },
|
||||
I = { class: "flex items-center" },
|
||||
q = {
|
||||
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" },
|
||||
z = { class: "flex items-center mb-3" },
|
||||
F = { class: "flex items-center" },
|
||||
G = {
|
||||
__name: "BatchOverlay",
|
||||
props: { batch: { type: Object, default: null } },
|
||||
setup(c) {
|
||||
const y = k("$dayjs"),
|
||||
g = k("$user"),
|
||||
p = c,
|
||||
d = B(() => {
|
||||
var a, v, b, r;
|
||||
return (a = p.batch.data) != null && a.seat_count
|
||||
? ((v = p.batch.data) == null ? void 0 : v.seat_count) -
|
||||
((r =
|
||||
(b = p.batch.data) == null
|
||||
const f = x("$dayjs"),
|
||||
p = x("$user"),
|
||||
y = c,
|
||||
i = C(() => {
|
||||
var a, v, _, l;
|
||||
return (a = y.batch.data) != null && a.seat_count
|
||||
? ((v = y.batch.data) == null ? void 0 : v.seat_count) -
|
||||
((l =
|
||||
(_ = y.batch.data) == null
|
||||
? void 0
|
||||
: b.students) == null
|
||||
: _.students) == null
|
||||
? void 0
|
||||
: r.length)
|
||||
: l.length)
|
||||
: null;
|
||||
});
|
||||
return (a, v) => {
|
||||
var r, i, m, h;
|
||||
const b = $("router-link");
|
||||
var l, m, o, g;
|
||||
const _ = D("router-link");
|
||||
return c.batch.data
|
||||
? (n(),
|
||||
u("div", V, [
|
||||
c.batch.data.seat_count && d.value > 0
|
||||
h("div", A, [
|
||||
c.batch.data.seat_count && i.value > 0
|
||||
? (n(),
|
||||
f(
|
||||
t(N),
|
||||
b(
|
||||
t(Y),
|
||||
{
|
||||
key: 0,
|
||||
theme: "green",
|
||||
class: "self-start mb-2 float-right",
|
||||
},
|
||||
{
|
||||
default: _(() => [
|
||||
M(
|
||||
s(d.value) +
|
||||
default: u(() => [
|
||||
N(
|
||||
s(i.value) +
|
||||
" " +
|
||||
s(a.__("Seat Left")),
|
||||
1
|
||||
@@ -76,39 +76,39 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
_: 1,
|
||||
}
|
||||
))
|
||||
: c.batch.data.seat_count && d.value <= 0
|
||||
: c.batch.data.seat_count && i.value <= 0
|
||||
? (n(),
|
||||
f(
|
||||
t(N),
|
||||
b(
|
||||
t(Y),
|
||||
{
|
||||
key: 1,
|
||||
theme: "red",
|
||||
class: "self-start mb-2 float-right",
|
||||
},
|
||||
{
|
||||
default: _(() => [
|
||||
M(s(a.__("Sold Out")), 1),
|
||||
default: u(() => [
|
||||
N(s(a.__("Sold Out")), 1),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
))
|
||||
: o("", !0),
|
||||
: d("", !0),
|
||||
c.batch.data.amount
|
||||
? (n(),
|
||||
u(
|
||||
h(
|
||||
"div",
|
||||
A,
|
||||
I,
|
||||
s(
|
||||
t(O)(
|
||||
t(V)(
|
||||
c.batch.data.amount,
|
||||
c.batch.data.currency
|
||||
)
|
||||
),
|
||||
1
|
||||
))
|
||||
: o("", !0),
|
||||
e("div", E, [
|
||||
l(t(C), {
|
||||
: d("", !0),
|
||||
e("div", q, [
|
||||
r(t(j), {
|
||||
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
|
||||
}),
|
||||
e(
|
||||
@@ -120,45 +120,45 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
1
|
||||
),
|
||||
]),
|
||||
e("div", F, [
|
||||
l(t(D), {
|
||||
e("div", z, [
|
||||
r(t(L), {
|
||||
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
|
||||
}),
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(
|
||||
t(y)(c.batch.data.start_date).format(
|
||||
t(f)(c.batch.data.start_date).format(
|
||||
"DD MMM YYYY"
|
||||
)
|
||||
) +
|
||||
" - " +
|
||||
s(
|
||||
t(y)(c.batch.data.end_date).format(
|
||||
t(f)(c.batch.data.end_date).format(
|
||||
"DD MMM YYYY"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
e("div", I, [
|
||||
l(t(j), {
|
||||
e("div", F, [
|
||||
r(t(T), {
|
||||
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
|
||||
}),
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(t(x)(c.batch.data.start_time)) +
|
||||
s(t(M)(c.batch.data.start_time)) +
|
||||
" - " +
|
||||
s(t(x)(c.batch.data.end_time)),
|
||||
s(t(M)(c.batch.data.end_time)),
|
||||
1
|
||||
),
|
||||
]),
|
||||
(i = (r = t(g)) == null ? void 0 : r.data) !=
|
||||
null && i.is_moderator
|
||||
(m = (l = t(p)) == null ? void 0 : l.data) !=
|
||||
null && m.is_moderator
|
||||
? (n(),
|
||||
f(
|
||||
b,
|
||||
b(
|
||||
_,
|
||||
{
|
||||
key: 3,
|
||||
to: {
|
||||
@@ -170,15 +170,15 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
},
|
||||
},
|
||||
{
|
||||
default: _(() => [
|
||||
l(
|
||||
default: u(() => [
|
||||
r(
|
||||
t(w),
|
||||
{
|
||||
variant: "solid",
|
||||
class: "w-full mt-4",
|
||||
},
|
||||
{
|
||||
default: _(() => [
|
||||
default: u(() => [
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
@@ -201,34 +201,73 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
))
|
||||
: c.batch.data.paid_batch
|
||||
? (n(),
|
||||
f(
|
||||
t(w),
|
||||
b(
|
||||
_,
|
||||
{
|
||||
key: 4,
|
||||
class: "w-full mt-4",
|
||||
variant: "solid",
|
||||
to: {
|
||||
name: "Billing",
|
||||
params: {
|
||||
type: "batch",
|
||||
name: c.batch.data.name,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default: _(() => [
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(a.__("Register Now")),
|
||||
1
|
||||
default: u(() => [
|
||||
r(
|
||||
t(w),
|
||||
{
|
||||
class: "w-full mt-4",
|
||||
variant: "solid",
|
||||
},
|
||||
{
|
||||
default: u(() => [
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(
|
||||
a.__(
|
||||
"Register Now"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["to"]
|
||||
))
|
||||
: c.batch.data.allow_self_enrollment
|
||||
? (n(),
|
||||
b(
|
||||
t(w),
|
||||
{
|
||||
key: 5,
|
||||
variant: "solid",
|
||||
class: "w-full mt-2",
|
||||
},
|
||||
{
|
||||
default: u(() => [
|
||||
N(s(a.__("Enroll Now")), 1),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
))
|
||||
: o("", !0),
|
||||
(h = (m = t(g)) == null ? void 0 : m.data) !=
|
||||
null && h.is_moderator
|
||||
: d("", !0),
|
||||
(g = (o = t(p)) == null ? void 0 : o.data) !=
|
||||
null && g.is_moderator
|
||||
? (n(),
|
||||
f(
|
||||
b(
|
||||
t(w),
|
||||
{ key: 5, class: "w-full mt-2" },
|
||||
{ key: 6, class: "w-full mt-2" },
|
||||
{
|
||||
default: _(() => [
|
||||
default: u(() => [
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
@@ -239,128 +278,138 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
_: 1,
|
||||
}
|
||||
))
|
||||
: o("", !0),
|
||||
: d("", !0),
|
||||
]))
|
||||
: o("", !0);
|
||||
: d("", !0);
|
||||
};
|
||||
},
|
||||
},
|
||||
z = { key: 0, class: "h-screen text-base" },
|
||||
G = { class: "sticky top-0 z-10 border-b bg-white px-3 py-2.5 sm:px-5" },
|
||||
J = { class: "m-5 pb-10" },
|
||||
Q = { class: "text-3xl font-semibold" },
|
||||
U = { class: "my-3" },
|
||||
W = { class: "flex items-center justify-between w-1/2" },
|
||||
K = { class: "flex items-center" },
|
||||
P = { key: 0 },
|
||||
X = { class: "flex items-center" },
|
||||
Z = { key: 1 },
|
||||
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" },
|
||||
P = { class: "flex items-center justify-between w-1/2" },
|
||||
W = { class: "flex items-center" },
|
||||
Z = { key: 0 },
|
||||
tt = { class: "flex items-center" },
|
||||
at = { class: "grid grid-cols-[60%,20%] gap-20 mt-10" },
|
||||
et = { class: "" },
|
||||
st = ["innerHTML"],
|
||||
ct = { class: "text-2xl font-semibold" },
|
||||
nt = { class: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-8 mt-5" },
|
||||
rt = { key: 0 },
|
||||
lt = ["innerHTML"],
|
||||
_t = {
|
||||
at = { key: 1 },
|
||||
et = { class: "flex items-center" },
|
||||
st = { class: "grid grid-cols-[60%,20%] gap-20 mt-10" },
|
||||
ct = { class: "" },
|
||||
nt = ["innerHTML"],
|
||||
lt = { class: "text-2xl font-semibold" },
|
||||
rt = { class: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-8 mt-5" },
|
||||
ot = { key: 0 },
|
||||
dt = ["innerHTML"],
|
||||
ft = {
|
||||
__name: "BatchDetail",
|
||||
props: { batchName: { type: String, required: !0 } },
|
||||
setup(c) {
|
||||
const y = k("$dayjs"),
|
||||
g = k("$user"),
|
||||
p = H(),
|
||||
d = c,
|
||||
a = Y({
|
||||
const f = x("$dayjs"),
|
||||
p = x("$user"),
|
||||
y = H(),
|
||||
i = c,
|
||||
a = $({
|
||||
url: "lms.lms.utils.get_batch_details",
|
||||
cache: ["batch", d.batchName],
|
||||
params: { batch: d.batchName },
|
||||
cache: ["batch", i.batchName],
|
||||
params: { batch: i.batchName },
|
||||
auto: !0,
|
||||
onSuccess(r) {
|
||||
var i;
|
||||
(i = r.students) != null &&
|
||||
i.includes(g.data.name) &&
|
||||
p.push({
|
||||
onSuccess(l) {
|
||||
var m, o;
|
||||
(o = l.students) != null &&
|
||||
o.includes(
|
||||
(m = p.data) == null ? void 0 : m.name
|
||||
) &&
|
||||
y.push({
|
||||
name: "Batch",
|
||||
params: { batchName: d.batchName },
|
||||
params: { batchName: i.batchName },
|
||||
});
|
||||
},
|
||||
}),
|
||||
v = Y({
|
||||
v = $({
|
||||
url: "lms.lms.utils.get_batch_courses",
|
||||
params: { batch: d.batchName },
|
||||
cache: ["batchCourses", d.batchName],
|
||||
params: { batch: i.batchName },
|
||||
cache: ["batchCourses", i.batchName],
|
||||
auto: !0,
|
||||
}),
|
||||
b = B(() => {
|
||||
var i, m;
|
||||
let r = [
|
||||
_ = C(() => {
|
||||
var m, o;
|
||||
let l = [
|
||||
{ label: "All Batches", route: { name: "Batches" } },
|
||||
];
|
||||
return (
|
||||
r.push({
|
||||
l.push({
|
||||
label:
|
||||
(i = a == null ? void 0 : a.data) == null
|
||||
(m = a == null ? void 0 : a.data) == null
|
||||
? void 0
|
||||
: i.title,
|
||||
: m.title,
|
||||
route: {
|
||||
name: "BatchDetail",
|
||||
params: {
|
||||
batchName:
|
||||
(m = a == null ? void 0 : a.data) ==
|
||||
(o = a == null ? void 0 : a.data) ==
|
||||
null
|
||||
? void 0
|
||||
: m.name,
|
||||
: o.name,
|
||||
},
|
||||
},
|
||||
}),
|
||||
r
|
||||
l
|
||||
);
|
||||
});
|
||||
return (r, i) => {
|
||||
const m = $("router-link");
|
||||
return (l, m) => {
|
||||
var g, B;
|
||||
const o = D("router-link");
|
||||
return t(a).data
|
||||
? (n(),
|
||||
u("div", z, [
|
||||
e("header", G, [
|
||||
l(t(S), { items: b.value }, null, 8, ["items"]),
|
||||
h("div", J, [
|
||||
e("header", Q, [
|
||||
r(t(R), { items: _.value }, null, 8, ["items"]),
|
||||
]),
|
||||
e("div", J, [
|
||||
e("div", U, [
|
||||
e("div", null, [
|
||||
e("div", Q, s(t(a).data.title), 1),
|
||||
e("div", U, s(t(a).data.description), 1),
|
||||
e("div", W, [
|
||||
e("div", K, [
|
||||
l(t(C), {
|
||||
class: "h-4 w-4 text-gray-700 mr-2",
|
||||
}),
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(t(a).data.courses.length) +
|
||||
" " +
|
||||
s(r.__("Courses")),
|
||||
1
|
||||
),
|
||||
]),
|
||||
t(a).data.courses
|
||||
? (n(), u("span", P, "·"))
|
||||
: o("", !0),
|
||||
e("div", X, [
|
||||
l(t(D), {
|
||||
e("div", X, s(t(a).data.title), 1),
|
||||
e("div", K, s(t(a).data.description), 1),
|
||||
e("div", P, [
|
||||
e("div", W, [
|
||||
r(t(j), {
|
||||
class: "h-4 w-4 text-gray-700 mr-2",
|
||||
}),
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(
|
||||
t(y)(
|
||||
(B =
|
||||
(g = t(a).data) == null
|
||||
? void 0
|
||||
: g.courses) == null
|
||||
? void 0
|
||||
: B.length
|
||||
) +
|
||||
" " +
|
||||
s(l.__("Courses")),
|
||||
1
|
||||
),
|
||||
]),
|
||||
t(a).data.courses
|
||||
? (n(), h("span", Z, "·"))
|
||||
: d("", !0),
|
||||
e("div", tt, [
|
||||
r(t(L), {
|
||||
class: "h-4 w-4 text-gray-700 mr-2",
|
||||
}),
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(
|
||||
t(f)(
|
||||
t(a).data.start_date
|
||||
).format("DD MMM YYYY")
|
||||
) +
|
||||
" - " +
|
||||
s(
|
||||
t(y)(
|
||||
t(f)(
|
||||
t(a).data.end_date
|
||||
).format("DD MMM YYYY")
|
||||
),
|
||||
@@ -368,25 +417,25 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
),
|
||||
]),
|
||||
t(a).data.start_date
|
||||
? (n(), u("span", Z, "·"))
|
||||
: o("", !0),
|
||||
e("div", tt, [
|
||||
l(t(j), {
|
||||
? (n(), h("span", at, "·"))
|
||||
: d("", !0),
|
||||
e("div", et, [
|
||||
r(t(T), {
|
||||
class: "h-4 w-4 text-gray-700 mr-2",
|
||||
}),
|
||||
e(
|
||||
"span",
|
||||
null,
|
||||
s(t(x)(t(a).data.start_time)) +
|
||||
s(t(M)(t(a).data.start_time)) +
|
||||
" - " +
|
||||
s(t(x)(t(a).data.end_time)),
|
||||
s(t(M)(t(a).data.end_time)),
|
||||
1
|
||||
),
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
e("div", at, [
|
||||
e("div", et, [
|
||||
e("div", st, [
|
||||
e("div", ct, [
|
||||
e(
|
||||
"div",
|
||||
{
|
||||
@@ -396,54 +445,54 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
},
|
||||
null,
|
||||
8,
|
||||
st
|
||||
nt
|
||||
),
|
||||
]),
|
||||
e("div", null, [
|
||||
l(q, { batch: t(a) }, null, 8, [
|
||||
r(G, { batch: t(a) }, null, 8, [
|
||||
"batch",
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
e("div", null, [
|
||||
e("div", ct, s(r.__("Courses")), 1),
|
||||
e("div", nt, [
|
||||
e("div", lt, s(l.__("Courses")), 1),
|
||||
e("div", rt, [
|
||||
t(a).data.courses
|
||||
? (n(!0),
|
||||
u(
|
||||
L,
|
||||
h(
|
||||
S,
|
||||
{ key: 0 },
|
||||
T(
|
||||
O(
|
||||
t(v).data,
|
||||
(h) => (
|
||||
(k) => (
|
||||
n(),
|
||||
u(
|
||||
h(
|
||||
"div",
|
||||
{
|
||||
key: h.course,
|
||||
key: k.course,
|
||||
},
|
||||
[
|
||||
l(
|
||||
m,
|
||||
r(
|
||||
o,
|
||||
{
|
||||
to: {
|
||||
name: "CourseDetail",
|
||||
params: {
|
||||
courseName:
|
||||
h.name,
|
||||
k.name,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default:
|
||||
_(
|
||||
u(
|
||||
() => [
|
||||
(n(),
|
||||
f(
|
||||
R,
|
||||
b(
|
||||
E,
|
||||
{
|
||||
course: h,
|
||||
key: h.name,
|
||||
course: k,
|
||||
key: k.name,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
@@ -464,11 +513,11 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
),
|
||||
128
|
||||
))
|
||||
: o("", !0),
|
||||
: d("", !0),
|
||||
]),
|
||||
t(a).data.batch_details_raw
|
||||
? (n(),
|
||||
u("div", rt, [
|
||||
h("div", ot, [
|
||||
e(
|
||||
"div",
|
||||
{
|
||||
@@ -479,16 +528,16 @@ const V = { key: 0, class: "shadow rounded-md p-5", style: { width: "300px" } },
|
||||
},
|
||||
null,
|
||||
8,
|
||||
lt
|
||||
dt
|
||||
),
|
||||
]))
|
||||
: o("", !0),
|
||||
: d("", !0),
|
||||
]),
|
||||
]),
|
||||
]))
|
||||
: o("", !0);
|
||||
: d("", !0);
|
||||
};
|
||||
},
|
||||
};
|
||||
export { _t as default };
|
||||
//# sourceMappingURL=BatchDetail-MDvOC8VN.js.map
|
||||
export { ft as default };
|
||||
//# sourceMappingURL=BatchDetail-Y5ojGFjm.js.map
|
||||
1
lms/public/frontend/assets/BatchDetail-Y5ojGFjm.js.map
Normal file
1
lms/public/frontend/assets/BatchDetail-Y5ojGFjm.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -1,31 +1,31 @@
|
||||
import {
|
||||
a as C,
|
||||
d as C,
|
||||
x as n,
|
||||
y as u,
|
||||
A as g,
|
||||
B as h,
|
||||
H as t,
|
||||
U as f,
|
||||
G as c,
|
||||
I as t,
|
||||
H as o,
|
||||
a8 as x,
|
||||
I as y,
|
||||
J as a,
|
||||
F as i,
|
||||
k as Y,
|
||||
r as j,
|
||||
J as y,
|
||||
C as a,
|
||||
G as i,
|
||||
k as N,
|
||||
r as Y,
|
||||
j as m,
|
||||
C as $,
|
||||
M as D,
|
||||
a6 as j,
|
||||
a7 as D,
|
||||
F as $,
|
||||
N as V,
|
||||
Q as M,
|
||||
R as N,
|
||||
W as V,
|
||||
a6 as z,
|
||||
a7 as A,
|
||||
a9 as L,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { B as O, f as B } from "./index-qZ7Yta4u.js";
|
||||
import { C as P, a as S } from "./clock-z0R6Od6V.js";
|
||||
import { P as U } from "./plus-_m-8cMp1.js";
|
||||
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";
|
||||
const E = {
|
||||
class: "flex flex-col border border-gray-200 rounded-md p-4 h-full",
|
||||
style: { "min-height": "150px" },
|
||||
@@ -42,13 +42,13 @@ const E = {
|
||||
props: { batch: { type: Object, default: null } },
|
||||
setup(s) {
|
||||
const d = C("$dayjs");
|
||||
return (o, v) => (
|
||||
return (c, v) => (
|
||||
n(),
|
||||
u("div", E, [
|
||||
s.batch.seat_count && s.batch.seats_left > 0
|
||||
? (n(),
|
||||
g(
|
||||
c(x),
|
||||
o(x),
|
||||
{
|
||||
key: 0,
|
||||
theme: "green",
|
||||
@@ -59,7 +59,7 @@ const E = {
|
||||
f(
|
||||
t(s.batch.seats_left) +
|
||||
" " +
|
||||
t(o.__("Seat Left")),
|
||||
t(c.__("Seat Left")),
|
||||
1
|
||||
),
|
||||
]),
|
||||
@@ -69,7 +69,7 @@ const E = {
|
||||
: s.batch.seat_count && s.batch.seats_left <= 0
|
||||
? (n(),
|
||||
g(
|
||||
c(x),
|
||||
o(x),
|
||||
{
|
||||
key: 1,
|
||||
theme: "red",
|
||||
@@ -77,7 +77,7 @@ const E = {
|
||||
},
|
||||
{
|
||||
default: h(() => [
|
||||
f(t(o.__("Sold Out")), 1),
|
||||
f(t(c.__("Sold Out")), 1),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
@@ -90,7 +90,7 @@ const E = {
|
||||
? (n(), u("div", T, t(s.batch.price), 1))
|
||||
: y("", !0),
|
||||
a("div", G, [
|
||||
i(c(O), {
|
||||
i(o(O), {
|
||||
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
|
||||
}),
|
||||
a(
|
||||
@@ -98,25 +98,25 @@ const E = {
|
||||
null,
|
||||
t(s.batch.courses.length) +
|
||||
" " +
|
||||
t(o.__("Courses")),
|
||||
t(c.__("Courses")),
|
||||
1
|
||||
),
|
||||
]),
|
||||
a("div", H, [
|
||||
i(c(P), {
|
||||
i(o(P), {
|
||||
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
|
||||
}),
|
||||
a(
|
||||
"span",
|
||||
null,
|
||||
t(
|
||||
c(d)(s.batch.start_date).format(
|
||||
o(d)(s.batch.start_date).format(
|
||||
"DD MMM YYYY"
|
||||
)
|
||||
) +
|
||||
" - " +
|
||||
t(
|
||||
c(d)(s.batch.end_date).format(
|
||||
o(d)(s.batch.end_date).format(
|
||||
"DD MMM YYYY"
|
||||
)
|
||||
),
|
||||
@@ -124,15 +124,15 @@ const E = {
|
||||
),
|
||||
]),
|
||||
a("div", J, [
|
||||
i(c(S), {
|
||||
i(o(S), {
|
||||
class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700",
|
||||
}),
|
||||
a(
|
||||
"span",
|
||||
null,
|
||||
t(c(B)(s.batch.start_time)) +
|
||||
t(o(B)(s.batch.start_time)) +
|
||||
" - " +
|
||||
t(c(B)(s.batch.end_time)),
|
||||
t(o(B)(s.batch.end_time)),
|
||||
1
|
||||
),
|
||||
]),
|
||||
@@ -141,27 +141,27 @@ const E = {
|
||||
);
|
||||
},
|
||||
},
|
||||
W = { class: "h-screen text-base" },
|
||||
X = { class: "h-screen text-base" },
|
||||
q = {
|
||||
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" },
|
||||
X = { class: "mx-5 py-5" },
|
||||
W = { class: "pb-5" },
|
||||
Z = {
|
||||
key: 0,
|
||||
class: "grid grid-cols-1 sm:grid-cols-3 md:grid-cols-4 gap-8 mt-5",
|
||||
class: "grid grid-cols-1 sm:grid-cols-3 md:grid-cols-4 gap-5 mt-5 mx-5",
|
||||
},
|
||||
ee = {
|
||||
key: 1,
|
||||
class: "grid flex-1 place-items-center text-xl font-medium text-gray-500",
|
||||
},
|
||||
te = { class: "flex flex-col items-center justify-center mt-4" },
|
||||
oe = {
|
||||
ce = {
|
||||
__name: "Batches",
|
||||
setup(s) {
|
||||
var p, k;
|
||||
const d = C("$user"),
|
||||
o = Y({
|
||||
c = N({
|
||||
url: "lms.lms.utils.get_batches",
|
||||
cache: [
|
||||
"batches",
|
||||
@@ -171,21 +171,21 @@ const E = {
|
||||
],
|
||||
auto: !0,
|
||||
}),
|
||||
v = j(0),
|
||||
v = Y(0),
|
||||
_ = [
|
||||
{
|
||||
label: "Upcoming",
|
||||
batches: m(() => {
|
||||
var e;
|
||||
return (
|
||||
((e = o.data) == null ? void 0 : e.upcoming) ||
|
||||
((e = c.data) == null ? void 0 : e.upcoming) ||
|
||||
[]
|
||||
);
|
||||
}),
|
||||
count: m(() => {
|
||||
var e, l;
|
||||
return (l =
|
||||
(e = o.data) == null ? void 0 : e.upcoming) ==
|
||||
(e = c.data) == null ? void 0 : e.upcoming) ==
|
||||
null
|
||||
? void 0
|
||||
: l.length;
|
||||
@@ -199,12 +199,12 @@ const E = {
|
||||
label: "Archived",
|
||||
batches: m(() => {
|
||||
var e;
|
||||
return (e = o.data) == null ? void 0 : e.archived;
|
||||
return (e = c.data) == null ? void 0 : e.archived;
|
||||
}),
|
||||
count: m(() => {
|
||||
var e, l;
|
||||
return (l =
|
||||
(e = o.data) == null ? void 0 : e.archived) ==
|
||||
(e = c.data) == null ? void 0 : e.archived) ==
|
||||
null
|
||||
? void 0
|
||||
: l.length;
|
||||
@@ -214,12 +214,12 @@ const E = {
|
||||
label: "Private",
|
||||
batches: m(() => {
|
||||
var e;
|
||||
return (e = o.data) == null ? void 0 : e.private;
|
||||
return (e = c.data) == null ? void 0 : e.private;
|
||||
}),
|
||||
count: m(() => {
|
||||
var e, l;
|
||||
return (l =
|
||||
(e = o.data) == null ? void 0 : e.private) ==
|
||||
(e = c.data) == null ? void 0 : e.private) ==
|
||||
null
|
||||
? void 0
|
||||
: l.length;
|
||||
@@ -230,25 +230,25 @@ const E = {
|
||||
label: "Enrolled",
|
||||
batches: m(() => {
|
||||
var e;
|
||||
return (e = o.data) == null ? void 0 : e.enrolled;
|
||||
return (e = c.data) == null ? void 0 : e.enrolled;
|
||||
}),
|
||||
count: m(() => {
|
||||
var e, l;
|
||||
return (l =
|
||||
(e = o.data) == null ? void 0 : e.enrolled) ==
|
||||
(e = c.data) == null ? void 0 : e.enrolled) ==
|
||||
null
|
||||
? void 0
|
||||
: l.length;
|
||||
}),
|
||||
}),
|
||||
(e, l) => {
|
||||
const w = V("router-link");
|
||||
const w = L("router-link");
|
||||
return (
|
||||
n(),
|
||||
u("div", W, [
|
||||
u("div", X, [
|
||||
a("header", q, [
|
||||
i(
|
||||
c(z),
|
||||
o(j),
|
||||
{
|
||||
class: "h-7",
|
||||
items: [
|
||||
@@ -264,11 +264,11 @@ const E = {
|
||||
),
|
||||
a("div", K, [
|
||||
i(
|
||||
c(A),
|
||||
o(D),
|
||||
{ variant: "solid" },
|
||||
{
|
||||
prefix: h(() => [
|
||||
i(c(U), { class: "h-4 w-4" }),
|
||||
i(o(U), { class: "h-4 w-4" }),
|
||||
]),
|
||||
default: h(() => [
|
||||
f(
|
||||
@@ -281,16 +281,16 @@ const E = {
|
||||
),
|
||||
]),
|
||||
]),
|
||||
a("div", X, [
|
||||
a("div", W, [
|
||||
i(
|
||||
c(L),
|
||||
o(A),
|
||||
{
|
||||
class: "overflow-hidden",
|
||||
modelValue: v.value,
|
||||
"onUpdate:modelValue":
|
||||
l[0] ||
|
||||
(l[0] = (r) => (v.value = r)),
|
||||
tabs: _,
|
||||
tablistClass: "overflow-x-visible",
|
||||
},
|
||||
{
|
||||
tab: h(({ tab: r, selected: b }) => [
|
||||
@@ -309,7 +309,7 @@ const E = {
|
||||
[
|
||||
r.icon
|
||||
? (n(),
|
||||
g(D(r.icon), {
|
||||
g(V(r.icon), {
|
||||
key: 0,
|
||||
class: "h-5",
|
||||
}))
|
||||
@@ -325,12 +325,13 @@ const E = {
|
||||
1
|
||||
),
|
||||
i(
|
||||
c(x),
|
||||
o(x),
|
||||
{
|
||||
class: $({
|
||||
"text-gray-900 border border-gray-900":
|
||||
b,
|
||||
}),
|
||||
class: $(
|
||||
b
|
||||
? "text-gray-800 border border-gray-800"
|
||||
: "border border-gray-500"
|
||||
),
|
||||
variant:
|
||||
"subtle",
|
||||
theme: "gray",
|
||||
@@ -365,7 +366,7 @@ const E = {
|
||||
u(
|
||||
M,
|
||||
null,
|
||||
N(
|
||||
z(
|
||||
r.batches.value,
|
||||
(b) => (
|
||||
n(),
|
||||
@@ -439,5 +440,5 @@ const E = {
|
||||
);
|
||||
},
|
||||
};
|
||||
export { oe as default };
|
||||
//# sourceMappingURL=Batches-gDWZzuli.js.map
|
||||
export { ce as default };
|
||||
//# sourceMappingURL=Batches-P9EN0hZ-.js.map
|
||||
1
lms/public/frontend/assets/Batches-P9EN0hZ-.js.map
Normal file
1
lms/public/frontend/assets/Batches-P9EN0hZ-.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
781
lms/public/frontend/assets/Billing-bj16mAfD.js
Normal file
781
lms/public/frontend/assets/Billing-bj16mAfD.js
Normal file
@@ -0,0 +1,781 @@
|
||||
import {
|
||||
x as c,
|
||||
y as _,
|
||||
C as s,
|
||||
U as x,
|
||||
I as o,
|
||||
G as d,
|
||||
B as L,
|
||||
H 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";
|
||||
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(
|
||||
"span",
|
||||
{
|
||||
class: "inline-flex items-center before:bg-red-600 before:w-2 before:h-2 before:rounded-md before:mr-2",
|
||||
},
|
||||
null,
|
||||
-1
|
||||
),
|
||||
D = { class: "px-5 py-3" },
|
||||
H = { class: "mb-4 leading-6" },
|
||||
C = {
|
||||
__name: "NotPermitted",
|
||||
props: {
|
||||
title: { type: String, default: "Not Permitted" },
|
||||
text: {
|
||||
type: String,
|
||||
default: "You are not permitted to access this page.",
|
||||
},
|
||||
buttonLabel: { type: String, default: "Login" },
|
||||
buttonLink: { type: String, default: "/login" },
|
||||
},
|
||||
setup(m) {
|
||||
const v = m,
|
||||
r = () => {
|
||||
window.location.href = v.buttonLink;
|
||||
};
|
||||
return (p, i) => (
|
||||
c(),
|
||||
_("div", E, [
|
||||
s("div", G, [R, x(" " + o(p.__(m.title)), 1)]),
|
||||
s("div", D, [
|
||||
s("div", H, o(p.__(m.text)), 1),
|
||||
d(
|
||||
n(P),
|
||||
{
|
||||
variant: "solid",
|
||||
class: "w-full",
|
||||
onClick: i[0] || (i[0] = (t) => r()),
|
||||
},
|
||||
{
|
||||
default: L(() => [
|
||||
x(o(p.__(m.buttonLabel)), 1),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
),
|
||||
]),
|
||||
])
|
||||
);
|
||||
},
|
||||
},
|
||||
q = { class: "text-base h-screen" },
|
||||
F = { 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" },
|
||||
W = { class: "text-xl font-semibold" },
|
||||
Y = { class: "text-gray-600 mt-1" },
|
||||
Q = { class: "mt-5" },
|
||||
X = { class: "flex items-center justify-between" },
|
||||
Z = { key: 0, class: "flex items-center justify-between mt-2" },
|
||||
ee = { key: 1, class: "flex items-center justify-between mt-2" },
|
||||
te = { class: "font-semibold text-2xl" },
|
||||
se = { class: "text-xl font-semibold mt-10" },
|
||||
ae = { class: "text-gray-600 mt-1" },
|
||||
oe = { class: "grid grid-cols-2 gap-5 mt-4" },
|
||||
ne = { class: "mt-4" },
|
||||
le = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
ie = { class: "mt-4" },
|
||||
de = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
re = { class: "mt-4" },
|
||||
me = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
ue = { class: "mt-4" },
|
||||
ce = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
_e = { class: "mt-4" },
|
||||
pe = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
ye = { class: "mt-4" },
|
||||
he = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
ge = { class: "mt-4" },
|
||||
be = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
ve = { class: "mt-4" },
|
||||
fe = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
xe = { class: "mt-4" },
|
||||
ke = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
Se = { key: 0, class: "mt-4" },
|
||||
Ve = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
Ce = { key: 1, class: "mt-4" },
|
||||
Le = { class: "mb-1.5 text-sm text-gray-700" },
|
||||
Pe = { key: 1 },
|
||||
we = { key: 2 },
|
||||
Ne = {
|
||||
__name: "Billing",
|
||||
props: {
|
||||
type: { type: String, required: !0 },
|
||||
name: { type: String, required: !0 },
|
||||
},
|
||||
setup(m) {
|
||||
const v = T("$user");
|
||||
j(() => {
|
||||
var a;
|
||||
const e = document.createElement("script");
|
||||
(e.src = "https://checkout.razorpay.com/v1/checkout.js"),
|
||||
document.body.appendChild(e),
|
||||
(a = v.data) != null && a.name && p.submit();
|
||||
});
|
||||
const r = m,
|
||||
p = f({
|
||||
url: "lms.lms.api.validate_billing_access",
|
||||
params: { type: r.type, name: r.name },
|
||||
onSuccess(e) {
|
||||
i.submit(), w(e.address);
|
||||
},
|
||||
}),
|
||||
i = f({
|
||||
url: "lms.lms.utils.get_order_summary",
|
||||
makeParams(e) {
|
||||
return {
|
||||
doctype:
|
||||
r.type == "course" ? "LMS Course" : "LMS Batch",
|
||||
docname: r.name,
|
||||
country: t.country,
|
||||
};
|
||||
},
|
||||
onError(e) {
|
||||
k(e);
|
||||
},
|
||||
}),
|
||||
t = z({}),
|
||||
w = (e) => {
|
||||
(t.billing_name = e.billing_name || ""),
|
||||
(t.address_line1 = e.address_line1 || ""),
|
||||
(t.address_line2 = e.address_line2 || ""),
|
||||
(t.city = e.city || ""),
|
||||
(t.state = e.state || ""),
|
||||
(t.country = e.country || ""),
|
||||
(t.pincode = e.pincode || ""),
|
||||
(t.phone = e.phone || ""),
|
||||
(t.source = e.source || ""),
|
||||
(t.gstin = e.gstin || ""),
|
||||
(t.pan = e.pan || "");
|
||||
},
|
||||
B = f({
|
||||
url: "lms.lms.utils.get_payment_options",
|
||||
makeParams(e) {
|
||||
return {
|
||||
doctype:
|
||||
r.type == "course" ? "LMS Course" : "LMS Batch",
|
||||
docname: r.name,
|
||||
phone: t.phone,
|
||||
country: t.country,
|
||||
};
|
||||
},
|
||||
}),
|
||||
M = () => {
|
||||
B.submit(
|
||||
{},
|
||||
{
|
||||
validate(e) {
|
||||
return N();
|
||||
},
|
||||
onSuccess(e) {
|
||||
(e.handler = (y) => {
|
||||
let h =
|
||||
r.type == "course"
|
||||
? "LMS Course"
|
||||
: "LMS Batch",
|
||||
g = r.name;
|
||||
$(y, h, g, e.order_id);
|
||||
}),
|
||||
new Razorpay(e).open();
|
||||
},
|
||||
onError(e) {
|
||||
k(e);
|
||||
},
|
||||
}
|
||||
);
|
||||
},
|
||||
U = f({
|
||||
url: "lms.lms.utils.verify_payment",
|
||||
makeParams(e) {
|
||||
return {
|
||||
response: e.response,
|
||||
doctype:
|
||||
r.type == "course" ? "LMS Course" : "LMS Batch",
|
||||
docname: r.name,
|
||||
address: t,
|
||||
order_id: e.orderId,
|
||||
};
|
||||
},
|
||||
}),
|
||||
$ = (e, a, y, h) => {
|
||||
U.submit(
|
||||
{ response: e, orderId: h },
|
||||
{
|
||||
onSuccess(g) {
|
||||
V({
|
||||
title: "Success",
|
||||
text: "Payment Successful",
|
||||
icon: "check",
|
||||
iconClasses:
|
||||
"bg-green-600 text-white rounded-md p-px",
|
||||
}),
|
||||
setTimeout(() => {
|
||||
window.location.href = g;
|
||||
}, 3e3);
|
||||
},
|
||||
}
|
||||
);
|
||||
},
|
||||
N = () => {
|
||||
let e = [
|
||||
"billing_name",
|
||||
"address_line1",
|
||||
"city",
|
||||
"pincode",
|
||||
"country",
|
||||
"phone",
|
||||
"source",
|
||||
];
|
||||
for (let y of e)
|
||||
if (!t[y])
|
||||
return (
|
||||
"Please enter a valid " +
|
||||
y
|
||||
.replaceAll("_", " ")
|
||||
.toLowerCase()
|
||||
.replace(/\b\w/g, (h) => h.toUpperCase())
|
||||
);
|
||||
if (t.gstin && !t.pan)
|
||||
return "Please enter a valid pan number.";
|
||||
if (t.country == "India" && !t.state)
|
||||
return "Please enter a valid state with correct spelling and the first letter capitalized.";
|
||||
const a = [
|
||||
"Andhra Pradesh",
|
||||
"Arunachal Pradesh",
|
||||
"Assam",
|
||||
"Bihar",
|
||||
"Chhattisgarh",
|
||||
"Goa",
|
||||
"Gujarat",
|
||||
"Haryana",
|
||||
"Himachal Pradesh",
|
||||
"Jharkhand",
|
||||
"Karnataka",
|
||||
"Kerala",
|
||||
"Madhya Pradesh",
|
||||
"Maharashtra",
|
||||
"Manipur",
|
||||
"Meghalaya",
|
||||
"Mizoram",
|
||||
"Nagaland",
|
||||
"Odisha",
|
||||
"Punjab",
|
||||
"Rajasthan",
|
||||
"Sikkim",
|
||||
"Tamil Nadu",
|
||||
"Telangana",
|
||||
"Tripura",
|
||||
"Uttar Pradesh",
|
||||
"Uttarakhand",
|
||||
"West Bengal",
|
||||
];
|
||||
if (t.country == "India" && !a.includes(t.state))
|
||||
return "Please enter a valid state with correct spelling and the first letter capitalized.";
|
||||
},
|
||||
k = (e) => {
|
||||
var a;
|
||||
V({
|
||||
title: "Error",
|
||||
text: ((a = e.messages) == null ? void 0 : a[0]) || e,
|
||||
icon: "x",
|
||||
iconClasses: "bg-red-600 text-white rounded-md p-px",
|
||||
position: "top-center",
|
||||
timeout: 10,
|
||||
});
|
||||
},
|
||||
A = (e) => {
|
||||
(t.country = e), i.reload();
|
||||
};
|
||||
return (e, a) => {
|
||||
var y, h, g;
|
||||
return (
|
||||
c(),
|
||||
_("div", q, [
|
||||
(y = n(p).data) != null && y.access && n(i).data
|
||||
? (c(),
|
||||
_("div", F, [
|
||||
s("div", J, o(e.__("Billing Details")), 1),
|
||||
s(
|
||||
"div",
|
||||
K,
|
||||
o(
|
||||
e.__(
|
||||
"Enter the billing information to complete the payment."
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
s("div", O, [
|
||||
s("div", W, o(e.__("Summary")), 1),
|
||||
s(
|
||||
"div",
|
||||
Y,
|
||||
o(
|
||||
e.__(
|
||||
"Review the details of your purchase."
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
s("div", Q, [
|
||||
s("div", X, [
|
||||
s(
|
||||
"div",
|
||||
null,
|
||||
o(n(i).data.title),
|
||||
1
|
||||
),
|
||||
s(
|
||||
"div",
|
||||
{
|
||||
class: I({
|
||||
"font-semibold text-xl":
|
||||
!n(i).data
|
||||
.gst_applied,
|
||||
}),
|
||||
},
|
||||
o(
|
||||
n(i).data.gst_applied
|
||||
? n(i).data
|
||||
.original_amount_formatted
|
||||
: n(i).data
|
||||
.total_amount_formatted
|
||||
),
|
||||
3
|
||||
),
|
||||
]),
|
||||
n(i).data.gst_applied
|
||||
? (c(),
|
||||
_("div", Z, [
|
||||
s(
|
||||
"div",
|
||||
null,
|
||||
o(
|
||||
e.__(
|
||||
"GST Amount"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
s(
|
||||
"div",
|
||||
null,
|
||||
o(
|
||||
n(i).data
|
||||
.gst_amount_formatted
|
||||
),
|
||||
1
|
||||
),
|
||||
]))
|
||||
: b("", !0),
|
||||
n(i).data.gst_applied
|
||||
? (c(),
|
||||
_("div", ee, [
|
||||
s(
|
||||
"div",
|
||||
null,
|
||||
o(
|
||||
e.__(
|
||||
"Total Amount"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
s(
|
||||
"div",
|
||||
te,
|
||||
o(
|
||||
n(i).data
|
||||
.total_amount_formatted
|
||||
),
|
||||
1
|
||||
),
|
||||
]))
|
||||
: b("", !0),
|
||||
]),
|
||||
s("div", se, o(e.__("Address")), 1),
|
||||
s(
|
||||
"div",
|
||||
ae,
|
||||
o(
|
||||
e.__(
|
||||
"Specify your billing address correctly."
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
s("div", oe, [
|
||||
s("div", null, [
|
||||
s("div", ne, [
|
||||
s(
|
||||
"div",
|
||||
le,
|
||||
o(e.__("Billing Name")),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue:
|
||||
t.billing_name,
|
||||
"onUpdate:modelValue":
|
||||
a[0] ||
|
||||
(a[0] = (l) =>
|
||||
(t.billing_name =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
s("div", ie, [
|
||||
s(
|
||||
"div",
|
||||
de,
|
||||
o(
|
||||
e.__(
|
||||
"Address Line 1"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue:
|
||||
t.address_line1,
|
||||
"onUpdate:modelValue":
|
||||
a[1] ||
|
||||
(a[1] = (l) =>
|
||||
(t.address_line1 =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
s("div", re, [
|
||||
s(
|
||||
"div",
|
||||
me,
|
||||
o(
|
||||
e.__(
|
||||
"Address Line 2"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue:
|
||||
t.address_line2,
|
||||
"onUpdate:modelValue":
|
||||
a[2] ||
|
||||
(a[2] = (l) =>
|
||||
(t.address_line2 =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
s("div", ue, [
|
||||
s(
|
||||
"div",
|
||||
ce,
|
||||
o(e.__("City")),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue: t.city,
|
||||
"onUpdate:modelValue":
|
||||
a[3] ||
|
||||
(a[3] = (l) =>
|
||||
(t.city =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
s("div", _e, [
|
||||
s(
|
||||
"div",
|
||||
pe,
|
||||
o(e.__("State")),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue: t.state,
|
||||
"onUpdate:modelValue":
|
||||
a[4] ||
|
||||
(a[4] = (l) =>
|
||||
(t.state =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
]),
|
||||
s("div", null, [
|
||||
s("div", ye, [
|
||||
s(
|
||||
"div",
|
||||
he,
|
||||
o(e.__("Country")),
|
||||
1
|
||||
),
|
||||
d(
|
||||
S,
|
||||
{
|
||||
doctype: "Country",
|
||||
value: t.country,
|
||||
onChange:
|
||||
a[5] ||
|
||||
(a[5] = (l) =>
|
||||
A(l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["value"]
|
||||
),
|
||||
]),
|
||||
s("div", ge, [
|
||||
s(
|
||||
"div",
|
||||
be,
|
||||
o(e.__("Postal Code")),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue:
|
||||
t.pincode,
|
||||
"onUpdate:modelValue":
|
||||
a[6] ||
|
||||
(a[6] = (l) =>
|
||||
(t.pincode =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
s("div", ve, [
|
||||
s(
|
||||
"div",
|
||||
fe,
|
||||
o(e.__("Phone Number")),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue: t.phone,
|
||||
"onUpdate:modelValue":
|
||||
a[7] ||
|
||||
(a[7] = (l) =>
|
||||
(t.phone =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
s("div", xe, [
|
||||
s(
|
||||
"div",
|
||||
ke,
|
||||
o(e.__("Source")),
|
||||
1
|
||||
),
|
||||
d(
|
||||
S,
|
||||
{
|
||||
doctype:
|
||||
"LMS Source",
|
||||
value: t.source,
|
||||
onChange:
|
||||
a[8] ||
|
||||
(a[8] = (l) =>
|
||||
(t.source =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["value"]
|
||||
),
|
||||
]),
|
||||
t.country == "India"
|
||||
? (c(),
|
||||
_("div", Se, [
|
||||
s(
|
||||
"div",
|
||||
Ve,
|
||||
o(
|
||||
e.__(
|
||||
"GST Number"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue:
|
||||
t.gstin,
|
||||
"onUpdate:modelValue":
|
||||
a[9] ||
|
||||
(a[9] =
|
||||
(
|
||||
l
|
||||
) =>
|
||||
(t.gstin =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]))
|
||||
: b("", !0),
|
||||
t.country == "India"
|
||||
? (c(),
|
||||
_("div", Ce, [
|
||||
s(
|
||||
"div",
|
||||
Le,
|
||||
o(
|
||||
e.__(
|
||||
"Pan Number"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
d(
|
||||
n(u),
|
||||
{
|
||||
type: "text",
|
||||
modelValue:
|
||||
t.pan,
|
||||
"onUpdate:modelValue":
|
||||
a[10] ||
|
||||
(a[10] =
|
||||
(
|
||||
l
|
||||
) =>
|
||||
(t.pan =
|
||||
l)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]))
|
||||
: b("", !0),
|
||||
]),
|
||||
]),
|
||||
d(
|
||||
n(P),
|
||||
{
|
||||
variant: "solid",
|
||||
class: "mt-8",
|
||||
onClick:
|
||||
a[11] ||
|
||||
(a[11] = (l) => M()),
|
||||
},
|
||||
{
|
||||
default: L(() => [
|
||||
x(
|
||||
o(
|
||||
e.__(
|
||||
"Proceed to Payment"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
),
|
||||
]),
|
||||
]))
|
||||
: (h = n(p).data) != null && h.message
|
||||
? (c(),
|
||||
_("div", Pe, [
|
||||
d(
|
||||
C,
|
||||
{
|
||||
text: n(p).data.message,
|
||||
buttonLabel:
|
||||
m.type == "course"
|
||||
? "Checkout Courses"
|
||||
: "Checkout Batches",
|
||||
buttonLink:
|
||||
m.type == "course"
|
||||
? "/courses"
|
||||
: "/batches",
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["text", "buttonLabel", "buttonLink"]
|
||||
),
|
||||
]))
|
||||
: (g = n(v).data) != null && g.name
|
||||
? b("", !0)
|
||||
: (c(),
|
||||
_("div", we, [
|
||||
d(
|
||||
C,
|
||||
{
|
||||
text: "Please login to access this page.",
|
||||
buttonLink: `/login?redirect-to=/billing/${m.type}/${m.name}`,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["buttonLink"]
|
||||
),
|
||||
])),
|
||||
])
|
||||
);
|
||||
};
|
||||
},
|
||||
};
|
||||
export { Ne as default };
|
||||
//# sourceMappingURL=Billing-bj16mAfD.js.map
|
||||
1
lms/public/frontend/assets/Billing-bj16mAfD.js.map
Normal file
1
lms/public/frontend/assets/Billing-bj16mAfD.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
366
lms/public/frontend/assets/CourseCard--twQpeIf.js
Normal file
366
lms/public/frontend/assets/CourseCard--twQpeIf.js
Normal file
@@ -0,0 +1,366 @@
|
||||
import { _ as b } from "./UserAvatar-yrWInUTi.js";
|
||||
import { s as w, B, U as _ } from "./index-Vx7mSx23.js";
|
||||
import {
|
||||
x as t,
|
||||
y as o,
|
||||
C as r,
|
||||
Q as h,
|
||||
R as f,
|
||||
A as g,
|
||||
B as n,
|
||||
U as v,
|
||||
I as s,
|
||||
H as c,
|
||||
a8 as x,
|
||||
J as a,
|
||||
F as y,
|
||||
V as k,
|
||||
G as l,
|
||||
T as d,
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
import { S as C } from "./star-ypmGZNF0.js";
|
||||
const S = {
|
||||
key: 0,
|
||||
class: "flex flex-col h-full rounded-md shadow-md text-base overflow-auto",
|
||||
style: { "min-height": "320px" },
|
||||
},
|
||||
U = { class: "flex relative top-4 left-4 w-fit" },
|
||||
V = { key: 0, class: "image-placeholder" },
|
||||
z = { class: "flex flex-col flex-auto p-4" },
|
||||
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" },
|
||||
O = { class: "flex avatar-group overlap" },
|
||||
$ = { key: 0 },
|
||||
D = { key: 1 },
|
||||
G = { key: 2 },
|
||||
H = { class: "font-semibold" },
|
||||
W = {
|
||||
__name: "CourseCard",
|
||||
props: { course: { type: Object, default: null } },
|
||||
setup(e) {
|
||||
const { user: m } = w();
|
||||
return (u, J) =>
|
||||
e.course.title
|
||||
? (t(),
|
||||
o("div", S, [
|
||||
r(
|
||||
"div",
|
||||
{
|
||||
class: y([
|
||||
"course-image",
|
||||
{ "default-image": !e.course.image },
|
||||
]),
|
||||
style: k({
|
||||
backgroundImage:
|
||||
"url(" +
|
||||
encodeURI(e.course.image) +
|
||||
")",
|
||||
}),
|
||||
},
|
||||
[
|
||||
r("div", U, [
|
||||
(t(!0),
|
||||
o(
|
||||
h,
|
||||
null,
|
||||
f(
|
||||
e.course.tags,
|
||||
(i) => (
|
||||
t(),
|
||||
g(
|
||||
c(x),
|
||||
{
|
||||
theme: "gray",
|
||||
size: "lg",
|
||||
class: "mr-2",
|
||||
},
|
||||
{
|
||||
default: n(() => [
|
||||
v(s(i), 1),
|
||||
]),
|
||||
_: 2,
|
||||
},
|
||||
1024
|
||||
)
|
||||
)
|
||||
),
|
||||
256
|
||||
)),
|
||||
]),
|
||||
e.course.image
|
||||
? a("", !0)
|
||||
: (t(),
|
||||
o("div", V, s(e.course.title[0]), 1)),
|
||||
],
|
||||
6
|
||||
),
|
||||
r("div", z, [
|
||||
r("div", N, [
|
||||
e.course.lesson_count
|
||||
? (t(),
|
||||
o("div", R, [
|
||||
l(
|
||||
c(d),
|
||||
{
|
||||
text: u.__("Lessons"),
|
||||
class: "flex items-center space-x-1 py-1",
|
||||
},
|
||||
{
|
||||
default: n(() => [
|
||||
l(c(B), {
|
||||
class: "h-4 w-4 stroke-1.5 text-gray-700",
|
||||
}),
|
||||
r(
|
||||
"span",
|
||||
null,
|
||||
s(
|
||||
e.course
|
||||
.lesson_count
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["text"]
|
||||
),
|
||||
]))
|
||||
: a("", !0),
|
||||
e.course.enrollment_count
|
||||
? (t(),
|
||||
o("div", j, [
|
||||
l(
|
||||
c(d),
|
||||
{
|
||||
text: u.__(
|
||||
"Enrolled Students"
|
||||
),
|
||||
class: "flex items-center space-x-1 py-1",
|
||||
},
|
||||
{
|
||||
default: n(() => [
|
||||
l(c(_), {
|
||||
class: "h-4 w-4 stroke-1.5 text-gray-700",
|
||||
}),
|
||||
r(
|
||||
"span",
|
||||
null,
|
||||
s(
|
||||
e.course
|
||||
.enrollment_count
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["text"]
|
||||
),
|
||||
]))
|
||||
: a("", !0),
|
||||
e.course.avg_rating
|
||||
? (t(),
|
||||
o("div", A, [
|
||||
l(
|
||||
c(d),
|
||||
{
|
||||
text: u.__(
|
||||
"Average Rating"
|
||||
),
|
||||
class: "flex items-center space-x-1 py-1",
|
||||
},
|
||||
{
|
||||
default: n(() => [
|
||||
l(c(C), {
|
||||
class: "h-4 w-4 stroke-1.5 text-gray-700",
|
||||
}),
|
||||
r(
|
||||
"span",
|
||||
null,
|
||||
s(
|
||||
e.course
|
||||
.avg_rating
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["text"]
|
||||
),
|
||||
]))
|
||||
: a("", !0),
|
||||
e.course.status != "Approved"
|
||||
? (t(),
|
||||
o("div", I, [
|
||||
l(
|
||||
c(x),
|
||||
{
|
||||
variant: "solid",
|
||||
theme:
|
||||
e.course.status ===
|
||||
"Under Review"
|
||||
? "orange"
|
||||
: "blue",
|
||||
size: "sm",
|
||||
},
|
||||
{
|
||||
default: n(() => [
|
||||
v(
|
||||
s(
|
||||
e.course
|
||||
.status
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["theme"]
|
||||
),
|
||||
]))
|
||||
: a("", !0),
|
||||
]),
|
||||
r("div", T, s(e.course.title), 1),
|
||||
r("div", E, s(e.course.short_introduction), 1),
|
||||
c(m) && e.course.membership
|
||||
? (t(),
|
||||
o("div", F, [
|
||||
r(
|
||||
"div",
|
||||
{
|
||||
class: "bg-gray-900 h-1 rounded-full",
|
||||
style: k({
|
||||
width:
|
||||
Math.ceil(
|
||||
e.course
|
||||
.membership
|
||||
.progress
|
||||
) + "%",
|
||||
}),
|
||||
},
|
||||
null,
|
||||
4
|
||||
),
|
||||
]))
|
||||
: a("", !0),
|
||||
c(m) && e.course.membership
|
||||
? (t(),
|
||||
o(
|
||||
"div",
|
||||
L,
|
||||
s(
|
||||
Math.ceil(
|
||||
e.course.membership.progress
|
||||
)
|
||||
) + "% completed ",
|
||||
1
|
||||
))
|
||||
: a("", !0),
|
||||
r("div", M, [
|
||||
r("div", O, [
|
||||
r(
|
||||
"div",
|
||||
{
|
||||
class: y([
|
||||
"mr-1",
|
||||
{
|
||||
"avatar-group overlap":
|
||||
e.course.instructors
|
||||
.length > 1,
|
||||
},
|
||||
]),
|
||||
},
|
||||
[
|
||||
(t(!0),
|
||||
o(
|
||||
h,
|
||||
null,
|
||||
f(
|
||||
e.course.instructors,
|
||||
(i) => (
|
||||
t(),
|
||||
g(
|
||||
b,
|
||||
{ user: i },
|
||||
null,
|
||||
8,
|
||||
["user"]
|
||||
)
|
||||
)
|
||||
),
|
||||
256
|
||||
)),
|
||||
],
|
||||
2
|
||||
),
|
||||
e.course.instructors.length == 1
|
||||
? (t(),
|
||||
o(
|
||||
"span",
|
||||
$,
|
||||
s(
|
||||
e.course.instructors[0]
|
||||
.full_name
|
||||
),
|
||||
1
|
||||
))
|
||||
: a("", !0),
|
||||
e.course.instructors.length == 2
|
||||
? (t(),
|
||||
o(
|
||||
"span",
|
||||
D,
|
||||
s(
|
||||
e.course.instructors[0]
|
||||
.first_name
|
||||
) +
|
||||
" and " +
|
||||
s(
|
||||
e.course
|
||||
.instructors[1]
|
||||
.first_name
|
||||
),
|
||||
1
|
||||
))
|
||||
: a("", !0),
|
||||
e.course.instructors.length > 2
|
||||
? (t(),
|
||||
o(
|
||||
"span",
|
||||
G,
|
||||
s(
|
||||
e.course.instructors[0]
|
||||
.first_name
|
||||
) +
|
||||
" and " +
|
||||
s(
|
||||
e.course.instructors
|
||||
.length - 1
|
||||
) +
|
||||
" others ",
|
||||
1
|
||||
))
|
||||
: a("", !0),
|
||||
]),
|
||||
r("div", H, s(e.course.price), 1),
|
||||
]),
|
||||
]),
|
||||
]))
|
||||
: a("", !0);
|
||||
},
|
||||
};
|
||||
export { W as _ };
|
||||
//# sourceMappingURL=CourseCard--twQpeIf.js.map
|
||||
1
lms/public/frontend/assets/CourseCard--twQpeIf.js.map
Normal file
1
lms/public/frontend/assets/CourseCard--twQpeIf.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -1,299 +0,0 @@
|
||||
import { _ as f } from "./UserAvatar-nJqmkBPv.js";
|
||||
import { s as g, B as v, U as y } from "./index-qZ7Yta4u.js";
|
||||
import {
|
||||
x as s,
|
||||
y as r,
|
||||
J as o,
|
||||
Q as u,
|
||||
R as d,
|
||||
H as t,
|
||||
I as c,
|
||||
C as m,
|
||||
V as h,
|
||||
F as n,
|
||||
G as a,
|
||||
B as x,
|
||||
U as b,
|
||||
a8 as k,
|
||||
A as w,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { S as B } from "./star-xishKgdq.js";
|
||||
const C = {
|
||||
key: 0,
|
||||
class: "flex flex-col border border-gray-200 h-full rounded-md shadow-sm text-base overflow-auto",
|
||||
style: { "min-height": "320px" },
|
||||
},
|
||||
S = { class: "flex relative top-4 left-4 w-fit" },
|
||||
U = { class: "course-card-pills rounded-md border border-gray-200" },
|
||||
V = { key: 0, class: "image-placeholder" },
|
||||
N = { class: "flex flex-col flex-auto p-4" },
|
||||
j = { class: "flex items-center justify-between mb-2" },
|
||||
z = { key: 0, class: "flex items-center space-x-1 py-1" },
|
||||
I = { key: 1, class: "flex items-center space-x-1 py-1" },
|
||||
R = { key: 2, class: "flex items-center space-x-1 py-1" },
|
||||
A = { key: 3 },
|
||||
F = { class: "text-xl font-semibold" },
|
||||
M = { class: "short-introduction" },
|
||||
O = { key: 0, class: "w-full bg-gray-200 rounded-full h-1 mb-2" },
|
||||
_ = { key: 1, class: "text-sm mb-4" },
|
||||
$ = { class: "flex items-center justify-between mt-auto" },
|
||||
D = { class: "flex avatar-group overlap" },
|
||||
E = { key: 0 },
|
||||
G = { key: 1 },
|
||||
H = { key: 2 },
|
||||
J = { class: "font-semibold" },
|
||||
W = {
|
||||
__name: "CourseCard",
|
||||
props: { course: { type: Object, default: null } },
|
||||
setup(e) {
|
||||
const { user: i } = g();
|
||||
return (L, Q) =>
|
||||
e.course.title
|
||||
? (s(),
|
||||
r("div", C, [
|
||||
o(
|
||||
"div",
|
||||
{
|
||||
class: m([
|
||||
"course-image",
|
||||
{ "default-image": !e.course.image },
|
||||
]),
|
||||
style: h({
|
||||
backgroundImage:
|
||||
"url(" +
|
||||
encodeURI(e.course.image) +
|
||||
")",
|
||||
}),
|
||||
},
|
||||
[
|
||||
o("div", S, [
|
||||
(s(!0),
|
||||
r(
|
||||
u,
|
||||
null,
|
||||
d(
|
||||
e.course.tags,
|
||||
(l) => (
|
||||
s(), r("div", U, t(l), 1)
|
||||
)
|
||||
),
|
||||
256
|
||||
)),
|
||||
]),
|
||||
e.course.image
|
||||
? c("", !0)
|
||||
: (s(),
|
||||
r("div", V, t(e.course.title[0]), 1)),
|
||||
],
|
||||
6
|
||||
),
|
||||
o("div", N, [
|
||||
o("div", j, [
|
||||
e.course.lesson_count
|
||||
? (s(),
|
||||
r("div", z, [
|
||||
n(a(v), {
|
||||
class: "h-4 w-4 stroke-1.5 text-gray-700",
|
||||
}),
|
||||
o(
|
||||
"span",
|
||||
null,
|
||||
t(e.course.lesson_count),
|
||||
1
|
||||
),
|
||||
]))
|
||||
: c("", !0),
|
||||
e.course.enrollment_count
|
||||
? (s(),
|
||||
r("div", I, [
|
||||
n(a(y), {
|
||||
class: "h-4 w-4 stroke-1.5 text-gray-700",
|
||||
}),
|
||||
o(
|
||||
"span",
|
||||
null,
|
||||
t(
|
||||
e.course
|
||||
.enrollment_count
|
||||
),
|
||||
1
|
||||
),
|
||||
]))
|
||||
: c("", !0),
|
||||
e.course.avg_rating
|
||||
? (s(),
|
||||
r("div", R, [
|
||||
n(a(B), {
|
||||
class: "h-4 w-4 stroke-1.5 text-gray-700",
|
||||
}),
|
||||
o(
|
||||
"span",
|
||||
null,
|
||||
t(e.course.avg_rating),
|
||||
1
|
||||
),
|
||||
]))
|
||||
: c("", !0),
|
||||
e.course.status != "Approved"
|
||||
? (s(),
|
||||
r("div", A, [
|
||||
n(
|
||||
a(k),
|
||||
{
|
||||
variant: "solid",
|
||||
theme:
|
||||
e.course.status ===
|
||||
"Under Review"
|
||||
? "orange"
|
||||
: "blue",
|
||||
size: "sm",
|
||||
},
|
||||
{
|
||||
default: x(() => [
|
||||
b(
|
||||
t(
|
||||
e.course
|
||||
.status
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["theme"]
|
||||
),
|
||||
]))
|
||||
: c("", !0),
|
||||
]),
|
||||
o("div", F, t(e.course.title), 1),
|
||||
o("div", M, t(e.course.short_introduction), 1),
|
||||
a(i) && e.course.membership
|
||||
? (s(),
|
||||
r("div", O, [
|
||||
o(
|
||||
"div",
|
||||
{
|
||||
class: "bg-gray-900 h-1 rounded-full",
|
||||
style: h({
|
||||
width:
|
||||
Math.ceil(
|
||||
e.course
|
||||
.membership
|
||||
.progress
|
||||
) + "%",
|
||||
}),
|
||||
},
|
||||
null,
|
||||
4
|
||||
),
|
||||
]))
|
||||
: c("", !0),
|
||||
a(i) && e.course.membership
|
||||
? (s(),
|
||||
r(
|
||||
"div",
|
||||
_,
|
||||
t(
|
||||
Math.ceil(
|
||||
e.course.membership.progress
|
||||
)
|
||||
) + "% completed ",
|
||||
1
|
||||
))
|
||||
: c("", !0),
|
||||
o("div", $, [
|
||||
o("div", D, [
|
||||
o(
|
||||
"div",
|
||||
{
|
||||
class: m([
|
||||
"mr-1",
|
||||
{
|
||||
"avatar-group overlap":
|
||||
e.course.instructors
|
||||
.length > 1,
|
||||
},
|
||||
]),
|
||||
},
|
||||
[
|
||||
(s(!0),
|
||||
r(
|
||||
u,
|
||||
null,
|
||||
d(
|
||||
e.course.instructors,
|
||||
(l) => (
|
||||
s(),
|
||||
w(
|
||||
f,
|
||||
{ user: l },
|
||||
null,
|
||||
8,
|
||||
["user"]
|
||||
)
|
||||
)
|
||||
),
|
||||
256
|
||||
)),
|
||||
],
|
||||
2
|
||||
),
|
||||
e.course.instructors.length == 1
|
||||
? (s(),
|
||||
r(
|
||||
"span",
|
||||
E,
|
||||
t(
|
||||
e.course.instructors[0]
|
||||
.full_name
|
||||
),
|
||||
1
|
||||
))
|
||||
: c("", !0),
|
||||
e.course.instructors.length == 2
|
||||
? (s(),
|
||||
r(
|
||||
"span",
|
||||
G,
|
||||
t(
|
||||
e.course.instructors[0]
|
||||
.first_name
|
||||
) +
|
||||
" and " +
|
||||
t(
|
||||
e.course
|
||||
.instructors[1]
|
||||
.first_name
|
||||
),
|
||||
1
|
||||
))
|
||||
: c("", !0),
|
||||
e.course.instructors.length > 2
|
||||
? (s(),
|
||||
r(
|
||||
"span",
|
||||
H,
|
||||
t(
|
||||
e.course.instructors[0]
|
||||
.first_name
|
||||
) +
|
||||
" and " +
|
||||
t(
|
||||
e.course.instructors
|
||||
.length - 1
|
||||
) +
|
||||
" others ",
|
||||
1
|
||||
))
|
||||
: c("", !0),
|
||||
]),
|
||||
o("div", J, t(e.course.price), 1),
|
||||
]),
|
||||
]),
|
||||
]))
|
||||
: c("", !0);
|
||||
},
|
||||
};
|
||||
export { W as _ };
|
||||
//# sourceMappingURL=CourseCard-1i2yp1tI.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
.course-image{height:168px;width:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.course-card-pills{background:#fff;margin-left:0;margin-right:.5rem;padding:3.5px 8px;font-size:11px;text-align:center;letter-spacing:.011em;text-transform:uppercase;font-weight:600;width:-moz-fit-content;width:fit-content}.default-image{display:flex;flex-direction:column;align-items:center;background-color:#ededed;color:#525252}.avatar-group{display:inline-flex;align-items:center}.avatar-group .avatar{transition:margin .1s ease-in-out}.image-placeholder{display:flex;align-items:center;flex:1;font-size:5rem;color:#525252;font-weight:600}.avatar-group.overlap .avatar+.avatar{margin-left:-8px}.short-introduction{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;width:100%;overflow:hidden;margin:.25rem 0 1.25rem;line-height:1.5}
|
||||
.course-image{height:168px;width:100%;background-size:cover;background-position:center;background-repeat:no-repeat}.course-card-pills{background:#fff;margin-left:0;margin-right:.5rem;padding:3.5px 8px;font-size:11px;text-align:center;letter-spacing:.011em;text-transform:uppercase;font-weight:600;width:-moz-fit-content;width:fit-content}.default-image{display:flex;flex-direction:column;align-items:center;background-color:#fff1e7;color:#d45a08}.avatar-group{display:inline-flex;align-items:center}.avatar-group .avatar{transition:margin .1s ease-in-out}.image-placeholder{display:flex;align-items:center;flex:1;font-size:5rem;color:#525252;font-weight:600}.avatar-group.overlap .avatar+.avatar{margin-left:-8px}.short-introduction{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;width:100%;overflow:hidden;margin:.25rem 0 1.25rem;line-height:1.5}
|
||||
1087
lms/public/frontend/assets/CourseDetail-MceVHLH3.js
Normal file
1087
lms/public/frontend/assets/CourseDetail-MceVHLH3.js
Normal file
File diff suppressed because it is too large
Load Diff
1
lms/public/frontend/assets/CourseDetail-MceVHLH3.js.map
Normal file
1
lms/public/frontend/assets/CourseDetail-MceVHLH3.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,298 +0,0 @@
|
||||
import {
|
||||
ag as N,
|
||||
k as C,
|
||||
W as b,
|
||||
x as e,
|
||||
y as o,
|
||||
J as r,
|
||||
Q as d,
|
||||
R as h,
|
||||
A as n,
|
||||
B as c,
|
||||
ah as w,
|
||||
G as t,
|
||||
C as M,
|
||||
F as l,
|
||||
H as k,
|
||||
ai as I,
|
||||
I as V,
|
||||
U as B,
|
||||
aj as R,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { a as i } from "./index-qZ7Yta4u.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 j = i("ChevronRightIcon", [
|
||||
["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }],
|
||||
]);
|
||||
/**
|
||||
* @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 = i("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 F = i("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" }],
|
||||
]);
|
||||
/**
|
||||
* @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 H = i("MonitorPlayIcon", [
|
||||
["path", { d: "m10 7 5 3-5 3Z", key: "29ljg6" }],
|
||||
[
|
||||
"rect",
|
||||
{
|
||||
width: "20",
|
||||
height: "14",
|
||||
x: "2",
|
||||
y: "3",
|
||||
rx: "2",
|
||||
key: "48i651",
|
||||
},
|
||||
],
|
||||
["path", { d: "M12 17v4", key: "1riwvh" }],
|
||||
["path", { d: "M8 21h8", key: "1ev6f3" }],
|
||||
]),
|
||||
L = { class: "course-outline text-base" },
|
||||
q = { class: "mt-4" },
|
||||
O = { class: "text-base" },
|
||||
T = { class: "outline-lesson mb-2 pl-9" },
|
||||
P = { class: "flex items-center text-sm" },
|
||||
D = {
|
||||
__name: "CourseOutline",
|
||||
props: { courseName: { type: String, required: !0 } },
|
||||
setup(m) {
|
||||
const x = N(),
|
||||
y = m,
|
||||
_ = C({
|
||||
url: "lms.lms.utils.get_course_outline",
|
||||
cache: ["course_outline", y.courseName],
|
||||
params: { course: y.courseName },
|
||||
auto: !0,
|
||||
}),
|
||||
f = (u) => u == x.params.chapterNumber || u == 1;
|
||||
return (u, Q) => {
|
||||
const g = b("router-link");
|
||||
return (
|
||||
e(),
|
||||
o("div", L, [
|
||||
r("div", q, [
|
||||
(e(!0),
|
||||
o(
|
||||
d,
|
||||
null,
|
||||
h(
|
||||
t(_).data,
|
||||
(s, v) => (
|
||||
e(),
|
||||
n(
|
||||
t(R),
|
||||
{
|
||||
key: s.name,
|
||||
defaultOpen: f(s.idx),
|
||||
},
|
||||
{
|
||||
default: c(({ open: p }) => [
|
||||
l(
|
||||
t(w),
|
||||
{
|
||||
class: "flex w-full px-2 pt-2 pb-3",
|
||||
},
|
||||
{
|
||||
default: c(() => [
|
||||
l(
|
||||
t(j),
|
||||
{
|
||||
class: M(
|
||||
[
|
||||
{
|
||||
"rotate-90 transform duration-200":
|
||||
p,
|
||||
"duration-200":
|
||||
!p,
|
||||
open:
|
||||
v ==
|
||||
1,
|
||||
},
|
||||
"h-5 w-5 text-gray-900 stroke-1 mr-2",
|
||||
]
|
||||
),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["class"]
|
||||
),
|
||||
r(
|
||||
"div",
|
||||
O,
|
||||
k(s.title),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 2,
|
||||
},
|
||||
1024
|
||||
),
|
||||
l(
|
||||
t(I),
|
||||
{ class: "pb-2" },
|
||||
{
|
||||
default: c(() => [
|
||||
(e(!0),
|
||||
o(
|
||||
d,
|
||||
null,
|
||||
h(
|
||||
s.lessons,
|
||||
(a) => (
|
||||
e(),
|
||||
o(
|
||||
"div",
|
||||
{
|
||||
key: a.name,
|
||||
},
|
||||
[
|
||||
r(
|
||||
"div",
|
||||
T,
|
||||
[
|
||||
l(
|
||||
g,
|
||||
{
|
||||
to: {
|
||||
name: "Lesson",
|
||||
params: {
|
||||
courseName:
|
||||
m.courseName,
|
||||
chapterNumber:
|
||||
a.number.split(
|
||||
"."
|
||||
)[0],
|
||||
lessonNumber:
|
||||
a.number.split(
|
||||
"."
|
||||
)[1],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default:
|
||||
c(
|
||||
() => [
|
||||
r(
|
||||
"div",
|
||||
P,
|
||||
[
|
||||
a.icon ===
|
||||
"icon-youtube"
|
||||
? (e(),
|
||||
n(
|
||||
t(
|
||||
H
|
||||
),
|
||||
{
|
||||
key: 0,
|
||||
class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
|
||||
}
|
||||
))
|
||||
: a.icon ===
|
||||
"icon-quiz"
|
||||
? (e(),
|
||||
n(
|
||||
t(
|
||||
F
|
||||
),
|
||||
{
|
||||
key: 1,
|
||||
class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
|
||||
}
|
||||
))
|
||||
: a.icon ===
|
||||
"icon-list"
|
||||
? (e(),
|
||||
n(
|
||||
t(
|
||||
z
|
||||
),
|
||||
{
|
||||
key: 2,
|
||||
class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
|
||||
}
|
||||
))
|
||||
: V(
|
||||
"",
|
||||
!0
|
||||
),
|
||||
B(
|
||||
" " +
|
||||
k(
|
||||
a.title
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
[
|
||||
"to",
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
),
|
||||
128
|
||||
)),
|
||||
]),
|
||||
_: 2,
|
||||
},
|
||||
1024
|
||||
),
|
||||
]),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
["defaultOpen"]
|
||||
)
|
||||
)
|
||||
),
|
||||
128
|
||||
)),
|
||||
]),
|
||||
])
|
||||
);
|
||||
};
|
||||
},
|
||||
};
|
||||
export { j as C, D as _ };
|
||||
//# sourceMappingURL=CourseOutline-7cUm8E8p.js.map
|
||||
File diff suppressed because one or more lines are too long
365
lms/public/frontend/assets/CourseOutline-M5G5Rx7O.js
Normal file
365
lms/public/frontend/assets/CourseOutline-M5G5Rx7O.js
Normal file
@@ -0,0 +1,365 @@
|
||||
import {
|
||||
af as N,
|
||||
r as b,
|
||||
k as B,
|
||||
x as e,
|
||||
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";
|
||||
/**
|
||||
* @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", [
|
||||
["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }],
|
||||
]);
|
||||
/**
|
||||
* @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 = 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", [
|
||||
["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" }],
|
||||
]);
|
||||
/**
|
||||
* @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 F = d("MonitorPlayIcon", [
|
||||
["path", { d: "m10 7 5 3-5 3Z", key: "29ljg6" }],
|
||||
[
|
||||
"rect",
|
||||
{
|
||||
width: "20",
|
||||
height: "14",
|
||||
x: "2",
|
||||
y: "3",
|
||||
rx: "2",
|
||||
key: "48i651",
|
||||
},
|
||||
],
|
||||
["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 = {
|
||||
__name: "CourseOutline",
|
||||
props: {
|
||||
courseName: { type: String, required: !0 },
|
||||
showOutline: { type: Boolean, default: !1 },
|
||||
showHeader: { type: Boolean, default: !1 },
|
||||
},
|
||||
setup(c) {
|
||||
const _ = N();
|
||||
b(!0);
|
||||
const y = c,
|
||||
v = B({
|
||||
url: "lms.lms.utils.get_course_outline",
|
||||
cache: ["course_outline", y.courseName],
|
||||
params: { course: y.courseName },
|
||||
auto: !0,
|
||||
}),
|
||||
w = (a) => a == _.params.chapterNumber || a == 1;
|
||||
return (a, D) => {
|
||||
const g = j("router-link");
|
||||
return (
|
||||
e(),
|
||||
n("div", L, [
|
||||
c.showHeader
|
||||
? (e(),
|
||||
n("div", q, [
|
||||
r("div", T, l(a.__("Course Content")), 1),
|
||||
]))
|
||||
: p("", !0),
|
||||
r(
|
||||
"div",
|
||||
{
|
||||
class: x({
|
||||
"shadow rounded-md pt-2 px-2":
|
||||
c.showOutline,
|
||||
}),
|
||||
},
|
||||
[
|
||||
(e(!0),
|
||||
n(
|
||||
k,
|
||||
null,
|
||||
f(
|
||||
t(v).data,
|
||||
(o, C) => (
|
||||
e(),
|
||||
i(
|
||||
t(V),
|
||||
{
|
||||
key: o.name,
|
||||
defaultOpen: w(o.idx),
|
||||
},
|
||||
{
|
||||
default: u(
|
||||
({ open: h }) => [
|
||||
m(
|
||||
t(M),
|
||||
{
|
||||
ref_for: !0,
|
||||
ref: "",
|
||||
class: "flex w-full px-2 py-4",
|
||||
},
|
||||
{
|
||||
default: u(
|
||||
() => [
|
||||
m(
|
||||
t(
|
||||
O
|
||||
),
|
||||
{
|
||||
class: x(
|
||||
[
|
||||
{
|
||||
"rotate-90 transform duration-200":
|
||||
h,
|
||||
"duration-200":
|
||||
!h,
|
||||
open:
|
||||
C ==
|
||||
1,
|
||||
},
|
||||
"h-4 w-4 text-gray-900 stroke-1 mr-2",
|
||||
]
|
||||
),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[
|
||||
"class",
|
||||
]
|
||||
),
|
||||
r(
|
||||
"div",
|
||||
P,
|
||||
l(
|
||||
o.title
|
||||
),
|
||||
1
|
||||
),
|
||||
r(
|
||||
"div",
|
||||
Q,
|
||||
l(
|
||||
o
|
||||
.lessons
|
||||
.length
|
||||
) +
|
||||
" " +
|
||||
l(
|
||||
o
|
||||
.lessons
|
||||
.length ==
|
||||
1
|
||||
? a.__(
|
||||
"lesson"
|
||||
)
|
||||
: a.__(
|
||||
"lessons"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1536
|
||||
),
|
||||
m(
|
||||
t(I),
|
||||
{
|
||||
class: "pb-2",
|
||||
},
|
||||
{
|
||||
default: u(
|
||||
() => [
|
||||
(e(
|
||||
!0
|
||||
),
|
||||
n(
|
||||
k,
|
||||
null,
|
||||
f(
|
||||
o.lessons,
|
||||
(
|
||||
s
|
||||
) => (
|
||||
e(),
|
||||
n(
|
||||
"div",
|
||||
{
|
||||
key: s.name,
|
||||
},
|
||||
[
|
||||
r(
|
||||
"div",
|
||||
S,
|
||||
[
|
||||
m(
|
||||
g,
|
||||
{
|
||||
to: {
|
||||
name: "Lesson",
|
||||
params: {
|
||||
courseName:
|
||||
c.courseName,
|
||||
chapterNumber:
|
||||
s.number.split(
|
||||
"."
|
||||
)[0],
|
||||
lessonNumber:
|
||||
s.number.split(
|
||||
"."
|
||||
)[1],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default:
|
||||
u(
|
||||
() => [
|
||||
r(
|
||||
"div",
|
||||
A,
|
||||
[
|
||||
s.icon ===
|
||||
"icon-youtube"
|
||||
? (e(),
|
||||
i(
|
||||
t(
|
||||
F
|
||||
),
|
||||
{
|
||||
key: 0,
|
||||
class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
|
||||
}
|
||||
))
|
||||
: s.icon ===
|
||||
"icon-quiz"
|
||||
? (e(),
|
||||
i(
|
||||
t(
|
||||
z
|
||||
),
|
||||
{
|
||||
key: 1,
|
||||
class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
|
||||
}
|
||||
))
|
||||
: s.icon ===
|
||||
"icon-list"
|
||||
? (e(),
|
||||
i(
|
||||
t(
|
||||
R
|
||||
),
|
||||
{
|
||||
key: 2,
|
||||
class: "h-4 w-4 text-gray-900 stroke-1 mr-2",
|
||||
}
|
||||
))
|
||||
: p(
|
||||
"",
|
||||
!0
|
||||
),
|
||||
H(
|
||||
" " +
|
||||
l(
|
||||
s.title
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
[
|
||||
"to",
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
),
|
||||
128
|
||||
)),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1024
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
["defaultOpen"]
|
||||
)
|
||||
)
|
||||
),
|
||||
128
|
||||
)),
|
||||
],
|
||||
2
|
||||
),
|
||||
])
|
||||
);
|
||||
};
|
||||
},
|
||||
};
|
||||
export { O as C, J as _ };
|
||||
//# sourceMappingURL=CourseOutline-M5G5Rx7O.js.map
|
||||
1
lms/public/frontend/assets/CourseOutline-M5G5Rx7O.js.map
Normal file
1
lms/public/frontend/assets/CourseOutline-M5G5Rx7O.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
.outline-lesson:has(.router-link-active){background-color:#f3f3f3;padding:.5rem 0 .5rem 2rem}
|
||||
.outline-lesson:has(.router-link-active){background-color:#f3f3f3}
|
||||
@@ -1,434 +0,0 @@
|
||||
import {
|
||||
a5 as w,
|
||||
r as k,
|
||||
j as o,
|
||||
x as n,
|
||||
y as m,
|
||||
G as c,
|
||||
J as i,
|
||||
F as d,
|
||||
B as u,
|
||||
U as h,
|
||||
H as p,
|
||||
C as y,
|
||||
A as x,
|
||||
M as L,
|
||||
I as C,
|
||||
Q as V,
|
||||
R as $,
|
||||
a as B,
|
||||
W as j,
|
||||
a6 as U,
|
||||
a7 as z,
|
||||
a8 as D,
|
||||
a9 as R,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { _ as A } from "./CourseCard-1i2yp1tI.js";
|
||||
import { P as E } from "./plus-_m-8cMp1.js";
|
||||
import "./UserAvatar-nJqmkBPv.js";
|
||||
import "./index-qZ7Yta4u.js";
|
||||
import "./star-xishKgdq.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",
|
||||
},
|
||||
P = { class: "flex" },
|
||||
S = { class: "mx-5 py-5" },
|
||||
G = {
|
||||
key: 0,
|
||||
class: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-8 mt-5",
|
||||
},
|
||||
H = {
|
||||
key: 1,
|
||||
class: "grid flex-1 place-items-center text-xl font-medium text-gray-500",
|
||||
},
|
||||
J = { class: "flex flex-col items-center justify-center mt-4" },
|
||||
Y = {
|
||||
__name: "Courses",
|
||||
setup(Q) {
|
||||
var g, v, b;
|
||||
const l = B("$user"),
|
||||
a = w({
|
||||
type: "list",
|
||||
doctype: "LMS Course",
|
||||
cache: [
|
||||
"courses",
|
||||
(g = l == null ? void 0 : l.data) == null
|
||||
? void 0
|
||||
: g.email,
|
||||
],
|
||||
url: "lms.lms.utils.get_courses",
|
||||
auto: !0,
|
||||
}),
|
||||
f = k(0),
|
||||
_ = [
|
||||
{
|
||||
label: "Live",
|
||||
courses: o(() => {
|
||||
var e;
|
||||
return (
|
||||
((e = a.data) == null ? void 0 : e.live) || []
|
||||
);
|
||||
}),
|
||||
count: o(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null ? void 0 : e.live) == null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: "Upcoming",
|
||||
courses: o(() => {
|
||||
var e;
|
||||
return (e = a.data) == null ? void 0 : e.upcoming;
|
||||
}),
|
||||
count: o(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null ? void 0 : e.upcoming) ==
|
||||
null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
},
|
||||
];
|
||||
return (
|
||||
l.data &&
|
||||
(_.push({
|
||||
label: "Enrolled",
|
||||
courses: o(() => {
|
||||
var e;
|
||||
return (e = a.data) == null ? void 0 : e.enrolled;
|
||||
}),
|
||||
count: o(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null ? void 0 : e.enrolled) ==
|
||||
null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
}),
|
||||
(l.data.is_moderator ||
|
||||
l.data.is_instructor ||
|
||||
((b = (v = a.data) == null ? void 0 : v.created) !=
|
||||
null &&
|
||||
b.length)) &&
|
||||
_.push({
|
||||
label: "Created",
|
||||
courses: o(() => {
|
||||
var e;
|
||||
return (e = a.data) == null
|
||||
? void 0
|
||||
: e.created;
|
||||
}),
|
||||
count: o(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null
|
||||
? void 0
|
||||
: e.created) == null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
}),
|
||||
l.data.is_moderator &&
|
||||
_.push({
|
||||
label: "Under Review",
|
||||
courses: o(() => {
|
||||
var e;
|
||||
return (e = a.data) == null
|
||||
? void 0
|
||||
: e.under_review;
|
||||
}),
|
||||
count: o(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null
|
||||
? void 0
|
||||
: e.under_review) == null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
})),
|
||||
(e, s) => {
|
||||
const N = j("router-link");
|
||||
return (
|
||||
n(),
|
||||
m("div", F, [
|
||||
c(a).data
|
||||
? (n(),
|
||||
m("div", I, [
|
||||
i("header", M, [
|
||||
d(
|
||||
c(U),
|
||||
{
|
||||
class: "h-7",
|
||||
items: [
|
||||
{
|
||||
label: e.__(
|
||||
"All Courses"
|
||||
),
|
||||
route: {
|
||||
name: "Courses",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["items"]
|
||||
),
|
||||
i("div", P, [
|
||||
d(
|
||||
c(z),
|
||||
{ variant: "solid" },
|
||||
{
|
||||
prefix: u(() => [
|
||||
d(c(E), {
|
||||
class: "h-4 w-4",
|
||||
}),
|
||||
]),
|
||||
default: u(() => [
|
||||
h(
|
||||
" " +
|
||||
p(
|
||||
e.__(
|
||||
"New Course"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
),
|
||||
]),
|
||||
]),
|
||||
i("div", S, [
|
||||
d(
|
||||
c(R),
|
||||
{
|
||||
class: "overflow-hidden",
|
||||
modelValue: f.value,
|
||||
"onUpdate:modelValue":
|
||||
s[0] ||
|
||||
(s[0] = (r) =>
|
||||
(f.value = r)),
|
||||
tabs: _,
|
||||
},
|
||||
{
|
||||
tab: u(
|
||||
({
|
||||
tab: r,
|
||||
selected: t,
|
||||
}) => [
|
||||
i("div", null, [
|
||||
i(
|
||||
"button",
|
||||
{
|
||||
class: y(
|
||||
[
|
||||
"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",
|
||||
{
|
||||
"text-gray-900":
|
||||
t,
|
||||
},
|
||||
]
|
||||
),
|
||||
},
|
||||
[
|
||||
r.icon
|
||||
? (n(),
|
||||
x(
|
||||
L(
|
||||
r.icon
|
||||
),
|
||||
{
|
||||
key: 0,
|
||||
class: "h-5",
|
||||
}
|
||||
))
|
||||
: C(
|
||||
"",
|
||||
!0
|
||||
),
|
||||
h(
|
||||
" " +
|
||||
p(
|
||||
e.__(
|
||||
r.label
|
||||
)
|
||||
) +
|
||||
" ",
|
||||
1
|
||||
),
|
||||
d(
|
||||
c(
|
||||
D
|
||||
),
|
||||
{
|
||||
class: y(
|
||||
{
|
||||
"text-gray-900 border border-gray-900":
|
||||
t,
|
||||
}
|
||||
),
|
||||
variant:
|
||||
"subtle",
|
||||
theme: "gray",
|
||||
size: "sm",
|
||||
},
|
||||
{
|
||||
default:
|
||||
u(
|
||||
() => [
|
||||
h(
|
||||
p(
|
||||
r.count
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
[
|
||||
"class",
|
||||
]
|
||||
),
|
||||
],
|
||||
2
|
||||
),
|
||||
]),
|
||||
]
|
||||
),
|
||||
default: u(({ tab: r }) => [
|
||||
r.courses &&
|
||||
r.courses.value.length
|
||||
? (n(),
|
||||
m("div", G, [
|
||||
(n(!0),
|
||||
m(
|
||||
V,
|
||||
null,
|
||||
$(
|
||||
r
|
||||
.courses
|
||||
.value,
|
||||
(
|
||||
t
|
||||
) => (
|
||||
n(),
|
||||
x(
|
||||
N,
|
||||
{
|
||||
to:
|
||||
t.membership &&
|
||||
t.current_lesson
|
||||
? {
|
||||
name: "Lesson",
|
||||
params: {
|
||||
courseName:
|
||||
t.name,
|
||||
chapterNumber:
|
||||
t.current_lesson.split(
|
||||
"."
|
||||
)[0],
|
||||
lessonNumber:
|
||||
t.current_lesson.split(
|
||||
"."
|
||||
)[1],
|
||||
},
|
||||
}
|
||||
: t.membership
|
||||
? {
|
||||
name: "Lesson",
|
||||
params: {
|
||||
courseName:
|
||||
t.name,
|
||||
chapterNumber: 1,
|
||||
lessonNumber: 1,
|
||||
},
|
||||
}
|
||||
: {
|
||||
name: "CourseDetail",
|
||||
params: {
|
||||
courseName:
|
||||
t.name,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default:
|
||||
u(
|
||||
() => [
|
||||
d(
|
||||
A,
|
||||
{
|
||||
course: t,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[
|
||||
"course",
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
[
|
||||
"to",
|
||||
]
|
||||
)
|
||||
)
|
||||
),
|
||||
256
|
||||
)),
|
||||
]))
|
||||
: (n(),
|
||||
m("div", H, [
|
||||
i(
|
||||
"div",
|
||||
J,
|
||||
[
|
||||
i(
|
||||
"div",
|
||||
null,
|
||||
p(
|
||||
e
|
||||
.__(
|
||||
"No {0} courses found"
|
||||
)
|
||||
.format(
|
||||
r.label.toLowerCase()
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
])),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["modelValue"]
|
||||
),
|
||||
]),
|
||||
]))
|
||||
: C("", !0),
|
||||
])
|
||||
);
|
||||
}
|
||||
);
|
||||
},
|
||||
};
|
||||
export { Y as default };
|
||||
//# sourceMappingURL=Courses-hTDCCPUa.js.map
|
||||
File diff suppressed because one or more lines are too long
473
lms/public/frontend/assets/Courses-twOd7MxD.js
Normal file
473
lms/public/frontend/assets/Courses-twOd7MxD.js
Normal file
@@ -0,0 +1,473 @@
|
||||
import {
|
||||
d as k,
|
||||
a5 as w,
|
||||
r as L,
|
||||
j as r,
|
||||
y as c,
|
||||
H as n,
|
||||
C as d,
|
||||
G as _,
|
||||
A as p,
|
||||
B as u,
|
||||
J as f,
|
||||
x as l,
|
||||
a6 as V,
|
||||
U as g,
|
||||
I as h,
|
||||
a7 as $,
|
||||
F as B,
|
||||
N as j,
|
||||
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 = {
|
||||
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 = {
|
||||
key: 0,
|
||||
class: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-5 my-5 mx-5",
|
||||
},
|
||||
Q = {
|
||||
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 = {
|
||||
__name: "Courses",
|
||||
setup(X) {
|
||||
var b, y, x;
|
||||
const i = k("$user"),
|
||||
a = w({
|
||||
type: "list",
|
||||
doctype: "LMS Course",
|
||||
cache: [
|
||||
"courses",
|
||||
(b = i == null ? void 0 : i.data) == null
|
||||
? void 0
|
||||
: b.email,
|
||||
],
|
||||
url: "lms.lms.utils.get_courses",
|
||||
auto: !0,
|
||||
}),
|
||||
v = L(0),
|
||||
m = [
|
||||
{
|
||||
label: "Live",
|
||||
courses: r(() => {
|
||||
var e;
|
||||
return (
|
||||
((e = a.data) == null ? void 0 : e.live) || []
|
||||
);
|
||||
}),
|
||||
count: r(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null ? void 0 : e.live) == null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
},
|
||||
{
|
||||
label: "Upcoming",
|
||||
courses: r(() => {
|
||||
var e;
|
||||
return (e = a.data) == null ? void 0 : e.upcoming;
|
||||
}),
|
||||
count: r(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null ? void 0 : e.upcoming) ==
|
||||
null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
},
|
||||
];
|
||||
return (
|
||||
i.data &&
|
||||
(m.push({
|
||||
label: "Enrolled",
|
||||
courses: r(() => {
|
||||
var e;
|
||||
return (e = a.data) == null ? void 0 : e.enrolled;
|
||||
}),
|
||||
count: r(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null ? void 0 : e.enrolled) ==
|
||||
null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
}),
|
||||
(i.data.is_moderator ||
|
||||
i.data.is_instructor ||
|
||||
((x = (y = a.data) == null ? void 0 : y.created) !=
|
||||
null &&
|
||||
x.length)) &&
|
||||
m.push({
|
||||
label: "Created",
|
||||
courses: r(() => {
|
||||
var e;
|
||||
return (e = a.data) == null
|
||||
? void 0
|
||||
: e.created;
|
||||
}),
|
||||
count: r(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null
|
||||
? void 0
|
||||
: e.created) == null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
}),
|
||||
i.data.is_moderator &&
|
||||
m.push({
|
||||
label: "Under Review",
|
||||
courses: r(() => {
|
||||
var e;
|
||||
return (e = a.data) == null
|
||||
? void 0
|
||||
: e.under_review;
|
||||
}),
|
||||
count: r(() => {
|
||||
var e, s;
|
||||
return (s =
|
||||
(e = a.data) == null
|
||||
? void 0
|
||||
: e.under_review) == null
|
||||
? void 0
|
||||
: s.length;
|
||||
}),
|
||||
})),
|
||||
(e, s) => {
|
||||
var C;
|
||||
const N = A("router-link");
|
||||
return (
|
||||
l(),
|
||||
c("div", I, [
|
||||
n(a).data
|
||||
? (l(),
|
||||
c("div", P, [
|
||||
d("header", S, [
|
||||
_(
|
||||
n(V),
|
||||
{
|
||||
class: "h-7",
|
||||
items: [
|
||||
{
|
||||
label: e.__(
|
||||
"All Courses"
|
||||
),
|
||||
route: {
|
||||
name: "Courses",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["items"]
|
||||
),
|
||||
d("div", G, [
|
||||
(C = n(i).data) != null &&
|
||||
C.is_moderator
|
||||
? (l(),
|
||||
p(
|
||||
n($),
|
||||
{
|
||||
key: 0,
|
||||
variant:
|
||||
"solid",
|
||||
},
|
||||
{
|
||||
prefix: u(
|
||||
() => [
|
||||
_(
|
||||
n(
|
||||
F
|
||||
),
|
||||
{
|
||||
class: "h-4 w-4",
|
||||
}
|
||||
),
|
||||
]
|
||||
),
|
||||
default: u(
|
||||
() => [
|
||||
g(
|
||||
" " +
|
||||
h(
|
||||
e.__(
|
||||
"New Course"
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 1,
|
||||
}
|
||||
))
|
||||
: f("", !0),
|
||||
]),
|
||||
]),
|
||||
d("div", H, [
|
||||
n(a).data.length == 0 &&
|
||||
n(a).list.loading
|
||||
? (l(),
|
||||
c(
|
||||
"div",
|
||||
J,
|
||||
" Loading Courses... "
|
||||
))
|
||||
: (l(),
|
||||
p(
|
||||
n(z),
|
||||
{
|
||||
key: 1,
|
||||
modelValue: v.value,
|
||||
"onUpdate:modelValue":
|
||||
s[0] ||
|
||||
(s[0] = (t) =>
|
||||
(v.value =
|
||||
t)),
|
||||
tabs: m,
|
||||
tablistClass:
|
||||
"overflow-x-visible",
|
||||
},
|
||||
{
|
||||
tab: u(
|
||||
({
|
||||
tab: t,
|
||||
selected: o,
|
||||
}) => [
|
||||
d(
|
||||
"div",
|
||||
null,
|
||||
[
|
||||
d(
|
||||
"button",
|
||||
{
|
||||
class: B(
|
||||
[
|
||||
"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",
|
||||
{
|
||||
"text-gray-900":
|
||||
o,
|
||||
},
|
||||
]
|
||||
),
|
||||
},
|
||||
[
|
||||
t.icon
|
||||
? (l(),
|
||||
p(
|
||||
j(
|
||||
t.icon
|
||||
),
|
||||
{
|
||||
key: 0,
|
||||
class: "h-5",
|
||||
}
|
||||
))
|
||||
: f(
|
||||
"",
|
||||
!0
|
||||
),
|
||||
g(
|
||||
" " +
|
||||
h(
|
||||
e.__(
|
||||
t.label
|
||||
)
|
||||
) +
|
||||
" ",
|
||||
1
|
||||
),
|
||||
_(
|
||||
n(
|
||||
U
|
||||
),
|
||||
{
|
||||
theme: "gray",
|
||||
},
|
||||
{
|
||||
default:
|
||||
u(
|
||||
() => [
|
||||
g(
|
||||
h(
|
||||
t.count
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1024
|
||||
),
|
||||
],
|
||||
2
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
default: u(
|
||||
({
|
||||
tab: t,
|
||||
}) => [
|
||||
t.courses &&
|
||||
t.courses
|
||||
.value
|
||||
.length
|
||||
? (l(),
|
||||
c(
|
||||
"div",
|
||||
M,
|
||||
[
|
||||
(l(
|
||||
!0
|
||||
),
|
||||
c(
|
||||
D,
|
||||
null,
|
||||
R(
|
||||
t
|
||||
.courses
|
||||
.value,
|
||||
(
|
||||
o
|
||||
) => (
|
||||
l(),
|
||||
p(
|
||||
N,
|
||||
{
|
||||
to:
|
||||
o.membership &&
|
||||
o.current_lesson
|
||||
? {
|
||||
name: "Lesson",
|
||||
params: {
|
||||
courseName:
|
||||
o.name,
|
||||
chapterNumber:
|
||||
o.current_lesson.split(
|
||||
"."
|
||||
)[0],
|
||||
lessonNumber:
|
||||
o.current_lesson.split(
|
||||
"."
|
||||
)[1],
|
||||
},
|
||||
}
|
||||
: o.membership
|
||||
? {
|
||||
name: "Lesson",
|
||||
params: {
|
||||
courseName:
|
||||
o.name,
|
||||
chapterNumber: 1,
|
||||
lessonNumber: 1,
|
||||
},
|
||||
}
|
||||
: {
|
||||
name: "CourseDetail",
|
||||
params: {
|
||||
courseName:
|
||||
o.name,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default:
|
||||
u(
|
||||
() => [
|
||||
_(
|
||||
E,
|
||||
{
|
||||
course: o,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[
|
||||
"course",
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
[
|
||||
"to",
|
||||
]
|
||||
)
|
||||
)
|
||||
),
|
||||
256
|
||||
)),
|
||||
]
|
||||
))
|
||||
: (l(),
|
||||
c(
|
||||
"div",
|
||||
Q,
|
||||
[
|
||||
d(
|
||||
"div",
|
||||
T,
|
||||
[
|
||||
d(
|
||||
"div",
|
||||
null,
|
||||
h(
|
||||
e
|
||||
.__(
|
||||
"No {0} courses found"
|
||||
)
|
||||
.format(
|
||||
t.label.toLowerCase()
|
||||
)
|
||||
),
|
||||
1
|
||||
),
|
||||
]
|
||||
),
|
||||
]
|
||||
)),
|
||||
]
|
||||
),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["modelValue"]
|
||||
)),
|
||||
]),
|
||||
]))
|
||||
: f("", !0),
|
||||
])
|
||||
);
|
||||
}
|
||||
);
|
||||
},
|
||||
};
|
||||
export { ee as default };
|
||||
//# sourceMappingURL=Courses-twOd7MxD.js.map
|
||||
1
lms/public/frontend/assets/Courses-twOd7MxD.js.map
Normal file
1
lms/public/frontend/assets/Courses-twOd7MxD.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -2,32 +2,32 @@ import {
|
||||
aa as B,
|
||||
ab as N,
|
||||
r as $,
|
||||
a as S,
|
||||
d as S,
|
||||
s as j,
|
||||
k,
|
||||
x as i,
|
||||
y,
|
||||
F as n,
|
||||
G as n,
|
||||
B as x,
|
||||
G as t,
|
||||
H as t,
|
||||
a7 as T,
|
||||
J as s,
|
||||
H as d,
|
||||
I as R,
|
||||
C as s,
|
||||
I as d,
|
||||
J as R,
|
||||
Q as M,
|
||||
R as E,
|
||||
A as V,
|
||||
K as A,
|
||||
U as D,
|
||||
au as P,
|
||||
C as I,
|
||||
b as F,
|
||||
F as I,
|
||||
a as F,
|
||||
am as G,
|
||||
D as J,
|
||||
c as K,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { _ as U } from "./UserAvatar-nJqmkBPv.js";
|
||||
import { a as q, t as H, c as O } from "./index-qZ7Yta4u.js";
|
||||
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";
|
||||
/**
|
||||
* @license lucide-vue-next v0.309.0 - ISC
|
||||
*
|
||||
@@ -835,4 +835,4 @@ import { a as q, t as H, c as O } from "./index-qZ7Yta4u.js";
|
||||
},
|
||||
};
|
||||
export { Q as C, we as _ };
|
||||
//# sourceMappingURL=Discussions-0iopHFAD.js.map
|
||||
//# sourceMappingURL=Discussions-C9dFHLpJ.js.map
|
||||
1
lms/public/frontend/assets/Discussions-C9dFHLpJ.js.map
Normal file
1
lms/public/frontend/assets/Discussions-C9dFHLpJ.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,21 +1,21 @@
|
||||
import {
|
||||
v as f,
|
||||
aB as g,
|
||||
ay as g,
|
||||
T as _,
|
||||
W as c,
|
||||
X as c,
|
||||
x as o,
|
||||
A as l,
|
||||
B as r,
|
||||
aC as C,
|
||||
aD as p,
|
||||
N as k,
|
||||
Q as d,
|
||||
V as u,
|
||||
J as a,
|
||||
M as p,
|
||||
az as C,
|
||||
aA as k,
|
||||
C as a,
|
||||
y as d,
|
||||
Q as u,
|
||||
R as m,
|
||||
y as h,
|
||||
C as b,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
V as h,
|
||||
F as b,
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
const v = {
|
||||
name: "FontColor",
|
||||
props: ["editor"],
|
||||
@@ -66,16 +66,16 @@ 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" },
|
||||
D = ["aria-label", "onClick"],
|
||||
F = a(
|
||||
F = ["aria-label", "onClick"],
|
||||
D = a(
|
||||
"div",
|
||||
{ class: "mt-2 text-sm text-gray-700" },
|
||||
"Background Color",
|
||||
-1
|
||||
),
|
||||
w = { class: "mt-1 grid grid-cols-8 gap-1" },
|
||||
T = ["aria-label", "onClick"];
|
||||
function A(t, R, z, E, $, n) {
|
||||
A = ["aria-label", "onClick"];
|
||||
function T(t, z, R, E, $, n) {
|
||||
const i = c("Tooltip"),
|
||||
x = c("Popover");
|
||||
return (
|
||||
@@ -85,10 +85,10 @@ function A(t, R, z, E, $, n) {
|
||||
{ transition: "default" },
|
||||
{
|
||||
target: r(({ togglePopover: e, isOpen: s }) => [
|
||||
k(
|
||||
p(
|
||||
t.$slots,
|
||||
"default",
|
||||
p(C({ onClick: () => e(), isActive: s }))
|
||||
C(k({ onClick: () => e(), isActive: s }))
|
||||
),
|
||||
]),
|
||||
"body-main": r(() => [
|
||||
@@ -96,8 +96,8 @@ function A(t, R, z, E, $, n) {
|
||||
B,
|
||||
a("div", P, [
|
||||
(o(!0),
|
||||
h(
|
||||
d,
|
||||
d(
|
||||
u,
|
||||
null,
|
||||
m(
|
||||
n.foregroundColors,
|
||||
@@ -118,7 +118,7 @@ function A(t, R, z, E, $, n) {
|
||||
"aria-label":
|
||||
e.name,
|
||||
class: "flex h-5 w-5 items-center justify-center rounded border text-base",
|
||||
style: u({
|
||||
style: h({
|
||||
color: e.hex,
|
||||
}),
|
||||
onClick: (s) =>
|
||||
@@ -128,7 +128,7 @@ function A(t, R, z, E, $, n) {
|
||||
},
|
||||
" A ",
|
||||
12,
|
||||
D
|
||||
F
|
||||
),
|
||||
]),
|
||||
_: 2,
|
||||
@@ -141,11 +141,11 @@ function A(t, R, z, E, $, n) {
|
||||
128
|
||||
)),
|
||||
]),
|
||||
F,
|
||||
D,
|
||||
a("div", w, [
|
||||
(o(!0),
|
||||
h(
|
||||
d,
|
||||
d(
|
||||
u,
|
||||
null,
|
||||
m(
|
||||
n.backgroundColors,
|
||||
@@ -171,7 +171,7 @@ function A(t, R, z, E, $, n) {
|
||||
? "border-transparent"
|
||||
: "border-gray-200",
|
||||
]),
|
||||
style: u({
|
||||
style: h({
|
||||
backgroundColor:
|
||||
e.hex,
|
||||
}),
|
||||
@@ -182,7 +182,7 @@ function A(t, R, z, E, $, n) {
|
||||
},
|
||||
" A ",
|
||||
14,
|
||||
T
|
||||
A
|
||||
),
|
||||
]),
|
||||
_: 2,
|
||||
@@ -202,6 +202,6 @@ function A(t, R, z, E, $, n) {
|
||||
)
|
||||
);
|
||||
}
|
||||
const G = f(v, [["render", A]]);
|
||||
const G = f(v, [["render", T]]);
|
||||
export { G as default };
|
||||
//# sourceMappingURL=FontColor-67MjDpop.js.map
|
||||
//# sourceMappingURL=FontColor-buIvkL_m.js.map
|
||||
1
lms/public/frontend/assets/FontColor-buIvkL_m.js.map
Normal file
1
lms/public/frontend/assets/FontColor-buIvkL_m.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -1,15 +1,15 @@
|
||||
import {
|
||||
v as d,
|
||||
D as g,
|
||||
x as m,
|
||||
y as f,
|
||||
F as s,
|
||||
y as m,
|
||||
G as s,
|
||||
B as t,
|
||||
C as r,
|
||||
I as p,
|
||||
X as u,
|
||||
x as f,
|
||||
U as l,
|
||||
J as r,
|
||||
H as p,
|
||||
W as u,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
const D = {
|
||||
name: "Home",
|
||||
data() {
|
||||
@@ -19,12 +19,12 @@ const D = {
|
||||
components: { Dialog: g },
|
||||
},
|
||||
_ = { class: "max-w-3xl py-12 mx-auto" };
|
||||
function k(e, o, w, B, n, C) {
|
||||
function C(e, o, k, w, n, B) {
|
||||
const a = u("Button"),
|
||||
c = u("Dialog");
|
||||
return (
|
||||
m(),
|
||||
f("div", _, [
|
||||
f(),
|
||||
m("div", _, [
|
||||
s(
|
||||
a,
|
||||
{
|
||||
@@ -61,6 +61,6 @@ function k(e, o, w, B, n, C) {
|
||||
])
|
||||
);
|
||||
}
|
||||
const $ = d(D, [["render", k]]);
|
||||
const $ = d(D, [["render", C]]);
|
||||
export { $ as default };
|
||||
//# sourceMappingURL=Home-x768lxic.js.map
|
||||
//# sourceMappingURL=Home-iNWB3jqR.js.map
|
||||
1
lms/public/frontend/assets/Home-iNWB3jqR.js.map
Normal file
1
lms/public/frontend/assets/Home-iNWB3jqR.js.map
Normal file
@@ -0,0 +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"}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"Home-x768lxic.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","_createElementVNode","_toDisplayString","$data","_component_Dialog","$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,oBAC3B,IAED,GAFC,gCAED,kCACAC,EAEM,MADD,KAAAC,EAAAF,EAAA,WAAW,KAAK,IAAI,EAAA,CAAA,EAEzBC,EAAgC,MAAA,KAAAC,EAAxBF,EAAU,WAAC,IAAI,EAAA,CAAA,EAEvBF,EAAuDC,EAAA,CAA9C,uBAAOI,EAAU,WAAA,gBAAS,IAAW,GAAX,aAAW,UAC9CL,EAAoEM,EAAA,CAA5D,MAAM,mBAAiBD,EAAU,gDAAVA,EAAU,WAAAE,eAAE,IAAgB,GAAhB,kBAAgB"}
|
||||
@@ -2,21 +2,21 @@ import {
|
||||
v as I,
|
||||
a7 as f,
|
||||
D,
|
||||
aN as h,
|
||||
W as d,
|
||||
aK as h,
|
||||
X as d,
|
||||
x as m,
|
||||
y as c,
|
||||
N as _,
|
||||
aD as y,
|
||||
aC as C,
|
||||
F as n,
|
||||
M as _,
|
||||
az as y,
|
||||
aA as C,
|
||||
G as n,
|
||||
B as s,
|
||||
J as i,
|
||||
H as v,
|
||||
I as w,
|
||||
C as i,
|
||||
I as v,
|
||||
J as w,
|
||||
U as u,
|
||||
Q as x,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
const B = {
|
||||
name: "InsertImage",
|
||||
props: ["editor"],
|
||||
@@ -51,7 +51,7 @@ const B = {
|
||||
},
|
||||
k = { class: "absolute inset-0 select-none px-2 py-1 text-base" },
|
||||
S = ["src"];
|
||||
function V(t, e, r, N, a, o) {
|
||||
function V(t, e, r, A, a, o) {
|
||||
const g = d("Button"),
|
||||
p = d("Dialog");
|
||||
return (
|
||||
@@ -147,6 +147,6 @@ function V(t, e, r, N, a, o) {
|
||||
)
|
||||
);
|
||||
}
|
||||
const F = I(B, [["render", V]]);
|
||||
export { F as default };
|
||||
//# sourceMappingURL=InsertImage-pFxauZ_l.js.map
|
||||
const z = I(B, [["render", V]]);
|
||||
export { z as default };
|
||||
//# sourceMappingURL=InsertImage-MQQczXkr.js.map
|
||||
1
lms/public/frontend/assets/InsertImage-MQQczXkr.js.map
Normal file
1
lms/public/frontend/assets/InsertImage-MQQczXkr.js.map
Normal file
@@ -0,0 +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"}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"InsertImage-pFxauZ_l.js","sources":["../../../../frontend/node_modules/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","_renderSlot","_ctx","$options","_createVNode","_component_Dialog","$data","_cache","$event","_createElementVNode","args","_toDisplayString","_createElementBlock","_component_Button"],"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,2FAhBpEC,EAA8CC,gCAArBC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EA+BSC,EAAA,CA9BN,QAAS,CAAsB,MAAA,WAAA,EACvB,WAAAC,EAAA,eAAe,KAAf,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,eAAe,KAAIE,GAC3B,aAAaL,EAAK,QAER,iBACT,IAYQ,CAZRM,EAYQ,QAZRV,EAYQ,CATNU,EAKE,QAAA,CAJA,KAAK,OACL,MAAM,mBACL,6BAAQN,EAAa,eAAAA,EAAA,cAAA,GAAAO,CAAA,GACtB,OAAO,oBAETD,EAEO,OAFPT,EACKW,EAAAL,EAAA,eAAe,KAAI,uBAAA,iBAAA,EAAA,CAAA,IAIlBA,EAAA,eAAe,SADvBM,EAIE,MAAA,OAFC,IAAKN,EAAc,eAAC,IACrB,MAAM,gDAGC,UACT,IAES,CAFTF,EAESS,EAAA,CAFD,QAAQ,QAAS,QAAON,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,SAASG,EAAA,eAAe,GAAG,eAAG,IAE9D,GAF8D,gBAE9D,UACAF,EAAwCS,EAAA,CAA/B,QAAOV,EAAK,KAAA,EAAA,WAAE,IAAQ,GAAR,UAAQ","x_google_ignoreList":[0]}
|
||||
@@ -3,18 +3,18 @@ import {
|
||||
a7 as g,
|
||||
am as L,
|
||||
D as m,
|
||||
W as i,
|
||||
X as i,
|
||||
x as p,
|
||||
y as f,
|
||||
N as D,
|
||||
aD as c,
|
||||
aC as h,
|
||||
F as a,
|
||||
M as D,
|
||||
az as c,
|
||||
aA as h,
|
||||
G as a,
|
||||
B as l,
|
||||
aM as v,
|
||||
aJ as v,
|
||||
U as x,
|
||||
Q as _,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
const w = {
|
||||
name: "InsertLink",
|
||||
props: ["editor"],
|
||||
@@ -49,7 +49,7 @@ const w = {
|
||||
},
|
||||
},
|
||||
};
|
||||
function V(t, e, C, B, n, s) {
|
||||
function V(t, e, B, C, n, s) {
|
||||
const r = i("FormControl"),
|
||||
u = i("Button"),
|
||||
k = i("Dialog");
|
||||
@@ -118,4 +118,4 @@ function V(t, e, C, B, n, s) {
|
||||
}
|
||||
const R = d(w, [["render", V]]);
|
||||
export { R as default };
|
||||
//# sourceMappingURL=InsertLink-PJVOdU-g.js.map
|
||||
//# sourceMappingURL=InsertLink-9nQ40Mze.js.map
|
||||
1
lms/public/frontend/assets/InsertLink-9nQ40Mze.js.map
Normal file
1
lms/public/frontend/assets/InsertLink-9nQ40Mze.js.map
Normal file
@@ -0,0 +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"}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"InsertLink-PJVOdU-g.js","sources":["../../../../frontend/node_modules/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","_renderSlot","_ctx","$options","_createVNode","_component_Dialog","$data","_cache","$event","_component_FormControl","_withKeys","e","_component_Button"],"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,oGAhEEC,EAA8CC,gCAArBC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EAkBSC,EAAA,CAjBN,QAAS,CAAqB,MAAA,UAAA,EACtB,WAAAC,EAAA,cAAc,KAAd,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,cAAc,KAAIE,GAC1B,aAAaL,EAAK,QAER,iBACT,IAKE,CALFC,EAKEK,EAAA,CAJA,KAAK,OACL,MAAM,MACG,WAAAH,EAAA,cAAc,IAAd,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAF,EAAA,cAAc,IAAGE,GACzB,UAAOD,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAG,EAASC,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,eAAG,IAE5D,GAF4D,QAE5D","x_google_ignoreList":[0]}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"InsertVideo-5zm7I1WB.js","sources":["../../../../frontend/node_modules/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","_renderSlot","_ctx","$options","_createVNode","_component_Dialog","$data","_cache","$event","_component_FileUploader","_withCtx","progress","uploading","openFileSelector","_createElementVNode","_component_Button","_createBlock","_createElementBlock"],"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,+GAZhDC,EAA8CC,gCAArBC,EAAU,UAAA,CAAA,CAAA,CAAA,EACnCC,EAiDSC,EAAA,CAhDN,QAAS,CAAsB,MAAA,WAAA,EACvB,WAAAC,EAAA,eAAe,KAAf,sBAAAC,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,EAAGT,GAAUQ,EAAA,eAAe,IAAMR,EAAK,YAG7C,QAAAY,EAAA,CAqBM,CAtBY,KAAAZ,EAAM,SAAAa,EAAU,UAAAC,EAAW,iBAAAC,KAAgB,CAC7DC,EAqBM,MArBNd,EAqBM,CApBJI,EAQSW,EAAA,CARA,QAAOF,CAAgB,EAAA,WAC9B,IAME,KALAD,eAA2CD,CAAQ,IAAwBL,EAAA,eAAe,+DAQtFA,EAAA,eAAe,SADvBU,EAUSD,EAAA,OARN,aAAkDT,EAAA,eAAe,IAAG,KAA0BA,EAAA,eAAe,KAAI,kBAMnH,IAED,GAFC,UAED,+CAKEA,EAAA,eAAe,SADvBW,EAME,QAAA,OAJC,IAAKX,EAAc,eAAC,IACrB,MAAM,yBACN,KAAK,YACL,SAAA,0BAGO,UACT,IAES,CAFTF,EAESW,EAAA,CAFD,QAAQ,QAAS,QAAOR,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAL,EAAA,SAASG,EAAA,eAAe,GAAG,eAAG,IAE9D,GAF8D,gBAE9D,UACAF,EAAsCW,EAAA,CAA7B,QAAOZ,EAAK,KAAA,EAAA,WAAE,IAAM,GAAN,QAAM","x_google_ignoreList":[0]}
|
||||
@@ -2,22 +2,22 @@ import {
|
||||
v as _,
|
||||
a7 as C,
|
||||
D as v,
|
||||
aO as k,
|
||||
W as r,
|
||||
aL as k,
|
||||
X as r,
|
||||
x as u,
|
||||
y as c,
|
||||
N as h,
|
||||
aD as x,
|
||||
aC as B,
|
||||
F as a,
|
||||
M as h,
|
||||
az as x,
|
||||
aA as B,
|
||||
G as a,
|
||||
B as l,
|
||||
H as y,
|
||||
C as y,
|
||||
U as n,
|
||||
A as U,
|
||||
I as p,
|
||||
J as w,
|
||||
Q as F,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
I as U,
|
||||
A as w,
|
||||
J as p,
|
||||
Q as A,
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
const I = {
|
||||
name: "InsertImage",
|
||||
props: ["editor"],
|
||||
@@ -47,16 +47,16 @@ const I = {
|
||||
},
|
||||
},
|
||||
},
|
||||
N = { class: "flex items-center space-x-2" },
|
||||
A = ["src"];
|
||||
function S(i, o, L, P, e, t) {
|
||||
F = { class: "flex items-center space-x-2" },
|
||||
N = ["src"];
|
||||
function S(i, o, L, z, e, t) {
|
||||
const s = r("Button"),
|
||||
V = r("FileUploader"),
|
||||
g = r("Dialog");
|
||||
return (
|
||||
u(),
|
||||
c(
|
||||
F,
|
||||
A,
|
||||
null,
|
||||
[
|
||||
h(i.$slots, "default", x(B({ onClick: t.openDialog }))),
|
||||
@@ -89,14 +89,14 @@ function S(i, o, L, P, e, t) {
|
||||
uploading: m,
|
||||
openFileSelector: D,
|
||||
}) => [
|
||||
w("div", N, [
|
||||
y("div", F, [
|
||||
a(
|
||||
s,
|
||||
{ onClick: D },
|
||||
{
|
||||
default: l(() => [
|
||||
n(
|
||||
y(
|
||||
U(
|
||||
m
|
||||
? `Uploading ${f}%`
|
||||
: e
|
||||
@@ -115,7 +115,7 @@ function S(i, o, L, P, e, t) {
|
||||
),
|
||||
e.addVideoDialog.url
|
||||
? (u(),
|
||||
U(
|
||||
w(
|
||||
s,
|
||||
{
|
||||
key: 0,
|
||||
@@ -159,7 +159,7 @@ function S(i, o, L, P, e, t) {
|
||||
},
|
||||
null,
|
||||
8,
|
||||
A
|
||||
N
|
||||
))
|
||||
: p("", !0),
|
||||
]),
|
||||
@@ -196,6 +196,6 @@ function S(i, o, L, P, e, t) {
|
||||
)
|
||||
);
|
||||
}
|
||||
const b = _(I, [["render", S]]);
|
||||
export { b as default };
|
||||
//# sourceMappingURL=InsertVideo-5zm7I1WB.js.map
|
||||
const R = _(I, [["render", S]]);
|
||||
export { R as default };
|
||||
//# sourceMappingURL=InsertVideo-nOXySFw5.js.map
|
||||
1
lms/public/frontend/assets/InsertVideo-nOXySFw5.js.map
Normal file
1
lms/public/frontend/assets/InsertVideo-nOXySFw5.js.map
Normal file
@@ -0,0 +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"}
|
||||
95
lms/public/frontend/assets/JobDetail-NAXvVry4.js
Normal file
95
lms/public/frontend/assets/JobDetail-NAXvVry4.js
Normal file
@@ -0,0 +1,95 @@
|
||||
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
|
||||
1
lms/public/frontend/assets/JobDetail-NAXvVry4.js.map
Normal file
1
lms/public/frontend/assets/JobDetail-NAXvVry4.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"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"}
|
||||
238
lms/public/frontend/assets/Jobs-PZPyKz-0.js
Normal file
238
lms/public/frontend/assets/Jobs-PZPyKz-0.js
Normal file
@@ -0,0 +1,238 @@
|
||||
import {
|
||||
d as p,
|
||||
x as n,
|
||||
y as c,
|
||||
C as e,
|
||||
I as l,
|
||||
U as _,
|
||||
G as a,
|
||||
H as s,
|
||||
a8 as h,
|
||||
B as r,
|
||||
k as y,
|
||||
A as j,
|
||||
J as m,
|
||||
Q as g,
|
||||
R as x,
|
||||
a6 as k,
|
||||
a7 as v,
|
||||
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" },
|
||||
V = { class: "font-medium" },
|
||||
Y = {
|
||||
__name: "JobCard",
|
||||
props: { job: { type: Object, default: null } },
|
||||
setup(t) {
|
||||
const i = p("$dayjs");
|
||||
return (o, d) => (
|
||||
n(),
|
||||
c("div", B, [
|
||||
e(
|
||||
"img",
|
||||
{
|
||||
src: t.job.company_logo,
|
||||
class: "w-12 h-12 rounded-lg object-contain mr-4",
|
||||
},
|
||||
null,
|
||||
8,
|
||||
C
|
||||
),
|
||||
e("div", null, [
|
||||
e("div", N, l(t.job.job_title), 1),
|
||||
e("div", null, [
|
||||
_(l(o.__("posted by")) + " ", 1),
|
||||
e("span", D, l(t.job.company_name), 1),
|
||||
]),
|
||||
e("div", P, [
|
||||
a(
|
||||
s(h),
|
||||
{
|
||||
label: t.job.type,
|
||||
theme: "green",
|
||||
size: "lg",
|
||||
class: "mr-4",
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["label"]
|
||||
),
|
||||
a(
|
||||
s(h),
|
||||
{
|
||||
label: t.job.location,
|
||||
theme: "gray",
|
||||
size: "lg",
|
||||
},
|
||||
{
|
||||
prefix: r(() => [
|
||||
a(s(M), {
|
||||
class: "h-4 w-4 stroke-1.5",
|
||||
}),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
["label"]
|
||||
),
|
||||
]),
|
||||
e("div", null, [
|
||||
_(l(o.__("posted on")) + " ", 1),
|
||||
e(
|
||||
"span",
|
||||
V,
|
||||
l(s(i)(t.job.creation).format("DD MMM YYYY")),
|
||||
1
|
||||
),
|
||||
]),
|
||||
]),
|
||||
])
|
||||
);
|
||||
},
|
||||
},
|
||||
z = { class: "h-screen text-base" },
|
||||
I = {
|
||||
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 = {
|
||||
__name: "Jobs",
|
||||
setup(t) {
|
||||
const i = p("$user"),
|
||||
o = y({
|
||||
url: "lms.lms.api.get_job_opportunities",
|
||||
cache: ["jobs"],
|
||||
auto: !0,
|
||||
});
|
||||
return (d, A) => {
|
||||
var u;
|
||||
const f = $("router-link");
|
||||
return (
|
||||
n(),
|
||||
c("div", z, [
|
||||
e("header", I, [
|
||||
a(
|
||||
s(k),
|
||||
{
|
||||
class: "h-7",
|
||||
items: [
|
||||
{
|
||||
label: d.__("Jobs"),
|
||||
route: { name: "Jobs" },
|
||||
},
|
||||
],
|
||||
},
|
||||
null,
|
||||
8,
|
||||
["items"]
|
||||
),
|
||||
e("div", L, [
|
||||
(u = s(i).data) != null && u.name
|
||||
? (n(),
|
||||
j(
|
||||
s(v),
|
||||
{ key: 0, variant: "solid" },
|
||||
{
|
||||
prefix: r(() => [
|
||||
a(s(J), {
|
||||
class: "h-4 w-4",
|
||||
}),
|
||||
]),
|
||||
default: r(() => [
|
||||
_(
|
||||
" " +
|
||||
l(d.__("New Job")),
|
||||
1
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
}
|
||||
))
|
||||
: m("", !0),
|
||||
]),
|
||||
]),
|
||||
s(o).data
|
||||
? (n(),
|
||||
c("div", R, [
|
||||
e("div", q, [
|
||||
s(o).data.length
|
||||
? (n(!0),
|
||||
c(
|
||||
g,
|
||||
{ key: 0 },
|
||||
x(
|
||||
s(o).data,
|
||||
(b) => (
|
||||
n(),
|
||||
c("div", null, [
|
||||
a(
|
||||
f,
|
||||
{
|
||||
to: {
|
||||
name: "JobDetail",
|
||||
params: {
|
||||
job: b.name,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default:
|
||||
r(
|
||||
() => [
|
||||
a(
|
||||
Y,
|
||||
{
|
||||
job: b,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[
|
||||
"job",
|
||||
]
|
||||
),
|
||||
]
|
||||
),
|
||||
_: 2,
|
||||
},
|
||||
1032,
|
||||
["to"]
|
||||
),
|
||||
])
|
||||
)
|
||||
),
|
||||
256
|
||||
))
|
||||
: m("", !0),
|
||||
]),
|
||||
]))
|
||||
: m("", !0),
|
||||
])
|
||||
);
|
||||
};
|
||||
},
|
||||
};
|
||||
export { H as default };
|
||||
//# sourceMappingURL=Jobs-PZPyKz-0.js.map
|
||||
1
lms/public/frontend/assets/Jobs-PZPyKz-0.js.map
Normal file
1
lms/public/frontend/assets/Jobs-PZPyKz-0.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"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]}
|
||||
1
lms/public/frontend/assets/Lesson--a_FsKFL.css
Normal file
1
lms/public/frontend/assets/Lesson--a_FsKFL.css
Normal file
@@ -0,0 +1 @@
|
||||
.avatar-group{display:inline-flex;align-items:center}.avatar-group .avatar{transition:margin .1s ease-in-out}.lesson-content p{margin-bottom:1rem;line-height:1.7}.lesson-content li{line-height:1.7}.lesson-content ol{list-style:auto;margin:revert;padding:1rem}.lesson-content ul{list-style:auto;padding:1rem;margin:revert}.lesson-content img{border:1px solid #EDEDED;border-radius:.5rem}.lesson-content code{display:block;overflow-x:auto;padding:1rem 1.25rem;background:#011627;color:#d6deeb;border-radius:.5rem;margin:1rem 0}.lesson-content a{color:#171717;text-decoration:underline;font-weight:500}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
.avatar-group{display:inline-flex;align-items:center}.avatar-group .avatar{transition:margin .1s ease-in-out}iframe{border:1px solid #ddd;border-radius:.5rem;margin-bottom:1rem}.lesson-content p{margin-bottom:1rem;line-height:1.7}.lesson-content li{line-height:1.7}.lesson-content ol{list-style:auto;margin:revert;padding:1rem}.lesson-content ul{list-style:auto;padding:1rem;margin:revert}.lesson-content img{border:1px solid #EDEDED;border-radius:.5rem}.lesson-content code{display:block;overflow-x:auto;padding:1rem 1.25rem;background:#011627;color:#d6deeb;border-radius:.5rem;margin:1rem 0}.lesson-content a{color:#171717;text-decoration:underline;font-weight:500}
|
||||
@@ -1,37 +1,37 @@
|
||||
import {
|
||||
a as pe,
|
||||
d as pe,
|
||||
r as Gu,
|
||||
b as Qu,
|
||||
a as Qu,
|
||||
ad as Oe,
|
||||
k as K,
|
||||
w as _e,
|
||||
G as h,
|
||||
H as h,
|
||||
x as k,
|
||||
y as E,
|
||||
J as C,
|
||||
H as v,
|
||||
I as z,
|
||||
C,
|
||||
I as v,
|
||||
J as z,
|
||||
A as M,
|
||||
B as P,
|
||||
a7 as Z,
|
||||
Q as cu,
|
||||
R as ou,
|
||||
F as U,
|
||||
G as U,
|
||||
ae as je,
|
||||
j as Ue,
|
||||
af as Ze,
|
||||
u as He,
|
||||
U as Ve,
|
||||
C as Ge,
|
||||
af as Ue,
|
||||
j as Ze,
|
||||
ag as He,
|
||||
u as Ve,
|
||||
F as Ge,
|
||||
V as Qe,
|
||||
ag as We,
|
||||
W as Je,
|
||||
a6 as Ye,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { _ as Xe, C as Ke } from "./CourseOutline-7cUm8E8p.js";
|
||||
import { _ as u0 } from "./UserAvatar-nJqmkBPv.js";
|
||||
import { a as Pu, t as e0, c as t0 } from "./index-qZ7Yta4u.js";
|
||||
import { _ as r0, C as n0 } from "./Discussions-0iopHFAD.js";
|
||||
X as We,
|
||||
a6 as Je,
|
||||
U as Ye,
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
import { _ as Xe, C as Ke } from "./CourseOutline-M5G5Rx7O.js";
|
||||
import { _ as u0 } from "./UserAvatar-yrWInUTi.js";
|
||||
import { a as Pu, t as e0, c as t0 } from "./index-Vx7mSx23.js";
|
||||
import { _ as r0, C as n0 } from "./Discussions-C9dFHLpJ.js";
|
||||
/**
|
||||
* @license lucide-vue-next v0.309.0 - ISC
|
||||
*
|
||||
@@ -5080,7 +5080,7 @@ const Hr = { key: 0 },
|
||||
},
|
||||
setup(u) {
|
||||
const e = pe("$user"),
|
||||
t = We(),
|
||||
t = Ue(),
|
||||
n = new $({ html: !0, linkify: !0 }),
|
||||
c = u,
|
||||
r = K({
|
||||
@@ -5124,7 +5124,7 @@ const Hr = { key: 0 },
|
||||
params: { course: c.courseName },
|
||||
auto: !0,
|
||||
}),
|
||||
a = Ue(() => {
|
||||
a = Ze(() => {
|
||||
var g, A;
|
||||
let l = [
|
||||
{ label: "All Courses", route: { name: "Courses" } },
|
||||
@@ -5157,10 +5157,10 @@ const Hr = { key: 0 },
|
||||
l
|
||||
);
|
||||
});
|
||||
Ze(() => {
|
||||
He(() => {
|
||||
localStorage.setItem("sidebar_is_collapsed", !0);
|
||||
}),
|
||||
He(() => {
|
||||
Ve(() => {
|
||||
localStorage.setItem("sidebar_is_collapsed", !1);
|
||||
}),
|
||||
_e(
|
||||
@@ -5187,13 +5187,13 @@ const Hr = { key: 0 },
|
||||
);
|
||||
};
|
||||
return (l, g) => {
|
||||
const A = Je("router-link");
|
||||
const A = We("router-link");
|
||||
return h(r).data && h(o).data
|
||||
? (k(),
|
||||
E("div", kn, [
|
||||
C("header", gn, [
|
||||
U(
|
||||
h(Ye),
|
||||
h(Je),
|
||||
{ class: "h-7", items: a.value },
|
||||
null,
|
||||
8,
|
||||
@@ -5236,7 +5236,7 @@ const Hr = { key: 0 },
|
||||
{
|
||||
default: P(
|
||||
() => [
|
||||
Ve(
|
||||
Ye(
|
||||
v(
|
||||
l.__(
|
||||
"Start Learning"
|
||||
@@ -5518,6 +5518,7 @@ const Hr = { key: 0 },
|
||||
ou(
|
||||
h(r).data.body.split(`
|
||||
|
||||
|
||||
`),
|
||||
(y) => (
|
||||
k(),
|
||||
@@ -5911,4 +5912,4 @@ const Hr = { key: 0 },
|
||||
},
|
||||
};
|
||||
export { ac as default };
|
||||
//# sourceMappingURL=Lesson-DbPY_b_T.js.map
|
||||
//# sourceMappingURL=Lesson-zstaxlED.js.map
|
||||
1
lms/public/frontend/assets/Lesson-zstaxlED.js.map
Normal file
1
lms/public/frontend/assets/Lesson-zstaxlED.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,40 +1,40 @@
|
||||
import {
|
||||
r as O,
|
||||
az as M,
|
||||
aA as K,
|
||||
aw as X,
|
||||
ax as Q,
|
||||
j as x,
|
||||
w as U,
|
||||
n as Q,
|
||||
n as Z,
|
||||
x as n,
|
||||
A as F,
|
||||
B as d,
|
||||
aB as Z,
|
||||
G as a,
|
||||
aC as C,
|
||||
aD as V,
|
||||
C as T,
|
||||
N as g,
|
||||
H as N,
|
||||
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,
|
||||
y as p,
|
||||
J as b,
|
||||
F as w,
|
||||
aE as W,
|
||||
aF as Y,
|
||||
I as N,
|
||||
aB as M,
|
||||
aC as W,
|
||||
aD as Y,
|
||||
Q as R,
|
||||
I as q,
|
||||
aG as ee,
|
||||
U as te,
|
||||
R as E,
|
||||
aH as G,
|
||||
aI as H,
|
||||
aJ as ae,
|
||||
aK as J,
|
||||
J as q,
|
||||
aE as ee,
|
||||
U as te,
|
||||
aF as G,
|
||||
aG as ae,
|
||||
aH as H,
|
||||
k as se,
|
||||
aL as le,
|
||||
aI as le,
|
||||
a7 as re,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { a as oe, C as ue } from "./index-qZ7Yta4u.js";
|
||||
import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
} 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";
|
||||
/**
|
||||
* @license lucide-vue-next v0.309.0 - ISC
|
||||
*
|
||||
@@ -53,8 +53,8 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
},
|
||||
me = { key: 1, class: "text-base leading-5 text-gray-500" },
|
||||
ye = { class: "mt-1 rounded-lg bg-white py-1 text-base shadow-2xl" },
|
||||
ve = { class: "relative px-1.5 pt-0.5" },
|
||||
be = { key: 0, class: "px-2.5 py-1.5 text-sm font-medium text-gray-500" },
|
||||
be = { class: "relative px-1.5 pt-0.5" },
|
||||
ve = { key: 0, class: "px-2.5 py-1.5 text-sm font-medium text-gray-500" },
|
||||
ge = {
|
||||
key: 0,
|
||||
class: "mt-1.5 rounded-md px-2.5 py-1.5 text-base text-gray-600",
|
||||
@@ -75,20 +75,20 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
setup(j, { expose: A, emit: f }) {
|
||||
const r = j,
|
||||
u = f,
|
||||
c = O(""),
|
||||
i = O(""),
|
||||
h = O(!1),
|
||||
S = O(null),
|
||||
k = M(),
|
||||
z = K(),
|
||||
L = x(() => "value" in k),
|
||||
k = X(),
|
||||
z = Q(),
|
||||
P = x(() => "value" in k),
|
||||
_ = x({
|
||||
get() {
|
||||
return L.value ? k.value : r.modelValue;
|
||||
return P.value ? k.value : r.modelValue;
|
||||
},
|
||||
set(t) {
|
||||
(c.value = ""),
|
||||
(i.value = ""),
|
||||
t && (h.value = !1),
|
||||
u(L.value ? "change" : "update:modelValue", t);
|
||||
u(P.value ? "change" : "update:modelValue", t);
|
||||
},
|
||||
});
|
||||
function e() {
|
||||
@@ -106,18 +106,18 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
key: o,
|
||||
group: l.group,
|
||||
hideLabel: l.hideLabel || !1,
|
||||
items: r.filterable ? i(l.items) : l.items,
|
||||
items: r.filterable ? d(l.items) : l.items,
|
||||
}))
|
||||
.filter((l) => l.items.length > 0);
|
||||
});
|
||||
function i(t) {
|
||||
return c.value
|
||||
function d(t) {
|
||||
return i.value
|
||||
? t.filter((s) =>
|
||||
[s.label, s.value].some((o) =>
|
||||
(o || "")
|
||||
.toString()
|
||||
.toLowerCase()
|
||||
.includes(c.value.toLowerCase())
|
||||
.includes(i.value.toLowerCase())
|
||||
)
|
||||
)
|
||||
: t;
|
||||
@@ -131,17 +131,17 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
}
|
||||
return t == null ? void 0 : t.label;
|
||||
}
|
||||
U(c, (t) => {
|
||||
U(i, (t) => {
|
||||
u("update:query", t);
|
||||
}),
|
||||
U(h, (t) => {
|
||||
t &&
|
||||
Q(() => {
|
||||
Z(() => {
|
||||
S.value.el.focus();
|
||||
});
|
||||
});
|
||||
const $ = x(() => (r.disabled ? "text-gray-600" : "text-gray-800")),
|
||||
X = x(() => {
|
||||
J = x(() => {
|
||||
let t = {
|
||||
sm: "text-base rounded h-7",
|
||||
md: "text-base rounded h-8",
|
||||
@@ -169,7 +169,7 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
return [t, s, o, $.value, "transition-colors w-full"];
|
||||
});
|
||||
return (
|
||||
A({ query: c }),
|
||||
A({ query: i }),
|
||||
(t, s) => (
|
||||
n(),
|
||||
F(
|
||||
@@ -181,9 +181,9 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
nullable: "",
|
||||
},
|
||||
{
|
||||
default: d(({ open: l }) => [
|
||||
default: c(({ open: l }) => [
|
||||
w(
|
||||
a(Z),
|
||||
a(K),
|
||||
{
|
||||
class: "w-full",
|
||||
show: h.value,
|
||||
@@ -192,32 +192,32 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
(s[2] = (o) => (h.value = o)),
|
||||
},
|
||||
{
|
||||
target: d(
|
||||
({ open: o, togglePopover: P }) => [
|
||||
target: c(
|
||||
({ open: o, togglePopover: B }) => [
|
||||
g(
|
||||
t.$slots,
|
||||
"target",
|
||||
V(
|
||||
C({
|
||||
C(
|
||||
V({
|
||||
open: o,
|
||||
togglePopover: P,
|
||||
togglePopover: B,
|
||||
})
|
||||
),
|
||||
() => [
|
||||
b("div", de, [
|
||||
b(
|
||||
v("div", de, [
|
||||
v(
|
||||
"button",
|
||||
{
|
||||
class: T([
|
||||
"flex w-full items-center justify-between focus:outline-none",
|
||||
X.value,
|
||||
J.value,
|
||||
]),
|
||||
onClick:
|
||||
() =>
|
||||
P(),
|
||||
B(),
|
||||
},
|
||||
[
|
||||
b(
|
||||
v(
|
||||
"div",
|
||||
pe,
|
||||
[
|
||||
@@ -261,16 +261,16 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
),
|
||||
]
|
||||
),
|
||||
body: d(({ isOpen: o }) => {
|
||||
var P;
|
||||
body: c(({ isOpen: o }) => {
|
||||
var B;
|
||||
return [
|
||||
H(
|
||||
b(
|
||||
M(
|
||||
v(
|
||||
"div",
|
||||
null,
|
||||
[
|
||||
b("div", ye, [
|
||||
b("div", ve, [
|
||||
v("div", ye, [
|
||||
v("div", be, [
|
||||
w(
|
||||
a(W),
|
||||
{
|
||||
@@ -283,12 +283,12 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
s[0] ||
|
||||
(s[0] =
|
||||
(
|
||||
v
|
||||
b
|
||||
) => {
|
||||
c.value =
|
||||
v.target.value;
|
||||
i.value =
|
||||
b.target.value;
|
||||
}),
|
||||
value: c.value,
|
||||
value: i.value,
|
||||
autocomplete:
|
||||
"off",
|
||||
placeholder:
|
||||
@@ -300,7 +300,7 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
"value",
|
||||
]
|
||||
),
|
||||
b(
|
||||
v(
|
||||
"button",
|
||||
{
|
||||
class: "absolute right-1.5 inline-flex h-7 w-7 items-center justify-center",
|
||||
@@ -308,7 +308,7 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
s[1] ||
|
||||
(s[1] =
|
||||
(
|
||||
v
|
||||
b
|
||||
) =>
|
||||
(_.value =
|
||||
null)),
|
||||
@@ -333,7 +333,7 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
},
|
||||
{
|
||||
default:
|
||||
d(
|
||||
c(
|
||||
() => [
|
||||
(n(
|
||||
!0
|
||||
@@ -344,25 +344,25 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
E(
|
||||
m.value,
|
||||
(
|
||||
v
|
||||
b
|
||||
) =>
|
||||
H(
|
||||
M(
|
||||
(n(),
|
||||
p(
|
||||
"div",
|
||||
{
|
||||
class: "mt-1.5",
|
||||
key: v.key,
|
||||
key: b.key,
|
||||
},
|
||||
[
|
||||
v.group &&
|
||||
!v.hideLabel
|
||||
b.group &&
|
||||
!b.hideLabel
|
||||
? (n(),
|
||||
p(
|
||||
"div",
|
||||
be,
|
||||
ve,
|
||||
N(
|
||||
v.group
|
||||
b.group
|
||||
),
|
||||
1
|
||||
))
|
||||
@@ -377,9 +377,9 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
R,
|
||||
null,
|
||||
E(
|
||||
v.items,
|
||||
b.items,
|
||||
(
|
||||
B
|
||||
L
|
||||
) => (
|
||||
n(),
|
||||
F(
|
||||
@@ -388,18 +388,18 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
),
|
||||
{
|
||||
as: "template",
|
||||
key: B.value,
|
||||
value: B,
|
||||
key: L.value,
|
||||
value: L,
|
||||
},
|
||||
{
|
||||
default:
|
||||
d(
|
||||
c(
|
||||
({
|
||||
active: D,
|
||||
selected:
|
||||
I,
|
||||
}) => [
|
||||
b(
|
||||
v(
|
||||
"li",
|
||||
{
|
||||
class: T(
|
||||
@@ -416,13 +416,13 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
g(
|
||||
t.$slots,
|
||||
"item-prefix",
|
||||
V(
|
||||
C(
|
||||
C(
|
||||
V(
|
||||
{
|
||||
active: D,
|
||||
selected:
|
||||
I,
|
||||
option: B,
|
||||
option: L,
|
||||
}
|
||||
)
|
||||
)
|
||||
@@ -430,20 +430,20 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
g(
|
||||
t.$slots,
|
||||
"item-label",
|
||||
V(
|
||||
C(
|
||||
C(
|
||||
V(
|
||||
{
|
||||
active: D,
|
||||
selected:
|
||||
I,
|
||||
option: B,
|
||||
option: L,
|
||||
}
|
||||
)
|
||||
),
|
||||
() => [
|
||||
te(
|
||||
N(
|
||||
B.label
|
||||
L.label
|
||||
),
|
||||
1
|
||||
),
|
||||
@@ -470,7 +470,7 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
[
|
||||
[
|
||||
G,
|
||||
v
|
||||
b
|
||||
.items
|
||||
.length >
|
||||
0,
|
||||
@@ -508,15 +508,15 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
g(
|
||||
t.$slots,
|
||||
"footer",
|
||||
V(
|
||||
C(
|
||||
C(
|
||||
V(
|
||||
{
|
||||
value:
|
||||
(P =
|
||||
(B =
|
||||
S.value) ==
|
||||
null
|
||||
? void 0
|
||||
: P
|
||||
: B
|
||||
.el
|
||||
._value,
|
||||
close: e,
|
||||
@@ -562,32 +562,34 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
setup(j, { emit: A }) {
|
||||
const f = j,
|
||||
r = A,
|
||||
u = M(),
|
||||
c = x(() => "value" in u),
|
||||
u = X(),
|
||||
i = x(() => "value" in u),
|
||||
h = x({
|
||||
get: () => (c.value ? u.value : f.modelValue),
|
||||
set: (e) =>
|
||||
get: () => (i.value ? u.value : f.modelValue),
|
||||
set: (e) => (
|
||||
console.log(e == null ? void 0 : e.value, i.value),
|
||||
(e == null ? void 0 : e.value) &&
|
||||
r(
|
||||
c.value ? "change" : "update:modelValue",
|
||||
e == null ? void 0 : e.value
|
||||
),
|
||||
r(
|
||||
i.value ? "change" : "update:modelValue",
|
||||
e == null ? void 0 : e.value
|
||||
)
|
||||
),
|
||||
}),
|
||||
S = O(null),
|
||||
k = O("");
|
||||
J(
|
||||
H(
|
||||
() => {
|
||||
var e;
|
||||
return (e = S.value) == null ? void 0 : e.query;
|
||||
},
|
||||
(e) => {
|
||||
(e = e || ""), k.value !== e && ((k.value = e), L(e));
|
||||
(e = e || ""), k.value !== e && ((k.value = e), P(e));
|
||||
},
|
||||
{ debounce: 300, immediate: !0 }
|
||||
),
|
||||
J(
|
||||
H(
|
||||
() => f.doctype,
|
||||
() => L(""),
|
||||
() => P(""),
|
||||
{ debounce: 300, immediate: !0 }
|
||||
);
|
||||
const z = se({
|
||||
@@ -602,7 +604,7 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
transform: (e) =>
|
||||
e.map((m) => ({ label: m.value, value: m.value })),
|
||||
});
|
||||
function L(e) {
|
||||
function P(e) {
|
||||
z.update({
|
||||
params: { txt: e, doctype: f.doctype, filters: f.filters },
|
||||
}),
|
||||
@@ -632,7 +634,7 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
options: a(z).data,
|
||||
modelValue: h.value,
|
||||
"onUpdate:modelValue":
|
||||
m[0] || (m[0] = (i) => (h.value = i)),
|
||||
m[0] || (m[0] = (d) => (h.value = d)),
|
||||
size: a(u).size || "sm",
|
||||
variant: a(u).variant,
|
||||
placeholder: a(u).placeholder,
|
||||
@@ -640,22 +642,22 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
},
|
||||
le(
|
||||
{
|
||||
target: d(({ open: i, togglePopover: y }) => [
|
||||
target: c(({ open: d, togglePopover: y }) => [
|
||||
g(
|
||||
e.$slots,
|
||||
"target",
|
||||
V(C({ open: i, togglePopover: y }))
|
||||
C(V({ open: d, togglePopover: y }))
|
||||
),
|
||||
]),
|
||||
prefix: d(() => [g(e.$slots, "prefix")]),
|
||||
"item-prefix": d(
|
||||
({ active: i, selected: y, option: $ }) => [
|
||||
prefix: c(() => [g(e.$slots, "prefix")]),
|
||||
"item-prefix": c(
|
||||
({ active: d, selected: y, option: $ }) => [
|
||||
g(
|
||||
e.$slots,
|
||||
"item-prefix",
|
||||
V(
|
||||
C({
|
||||
active: i,
|
||||
C(
|
||||
V({
|
||||
active: d,
|
||||
selected: y,
|
||||
option: $,
|
||||
})
|
||||
@@ -663,14 +665,14 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
),
|
||||
]
|
||||
),
|
||||
"item-label": d(
|
||||
({ active: i, selected: y, option: $ }) => [
|
||||
"item-label": c(
|
||||
({ active: d, selected: y, option: $ }) => [
|
||||
g(
|
||||
e.$slots,
|
||||
"item-label",
|
||||
V(
|
||||
C({
|
||||
active: i,
|
||||
C(
|
||||
V({
|
||||
active: d,
|
||||
selected: y,
|
||||
option: $,
|
||||
})
|
||||
@@ -684,8 +686,8 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
a(u).onCreate
|
||||
? {
|
||||
name: "footer",
|
||||
fn: d(({ value: i, close: y }) => [
|
||||
b("div", null, [
|
||||
fn: c(({ value: d, close: y }) => [
|
||||
v("div", null, [
|
||||
w(
|
||||
a(re),
|
||||
{
|
||||
@@ -694,12 +696,12 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
label: "Create New",
|
||||
onClick: ($) =>
|
||||
a(u).onCreate(
|
||||
i,
|
||||
d,
|
||||
y
|
||||
),
|
||||
},
|
||||
{
|
||||
prefix: d(() => [
|
||||
prefix: c(() => [
|
||||
w(a(ne), {
|
||||
class: "h-4 w-4 stroke-1.5",
|
||||
}),
|
||||
@@ -730,4 +732,4 @@ import { P as ne } from "./plus-_m-8cMp1.js";
|
||||
},
|
||||
};
|
||||
export { Ve as _ };
|
||||
//# sourceMappingURL=Link-4jJRdvJb.js.map
|
||||
//# sourceMappingURL=Link-Z_9V94MR.js.map
|
||||
1
lms/public/frontend/assets/Link-Z_9V94MR.js.map
Normal file
1
lms/public/frontend/assets/Link-Z_9V94MR.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -1,17 +1,17 @@
|
||||
import {
|
||||
j as x,
|
||||
d as x,
|
||||
j as v,
|
||||
k as c,
|
||||
x as v,
|
||||
y as b,
|
||||
J as e,
|
||||
F as o,
|
||||
G as t,
|
||||
H as s,
|
||||
a as k,
|
||||
C as e,
|
||||
G as o,
|
||||
H as t,
|
||||
I as s,
|
||||
x as k,
|
||||
a6 as f,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
import { a as r, B as C } from "./index-qZ7Yta4u.js";
|
||||
import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
} 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
|
||||
*
|
||||
@@ -57,13 +57,13 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
["polyline", { points: "10 17 15 12 10 7", key: "1ail0h" }],
|
||||
["line", { x1: "15", x2: "3", y1: "12", y2: "12", key: "v6grx8" }],
|
||||
]),
|
||||
M = { class: "h-screen text-base" },
|
||||
I = {
|
||||
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",
|
||||
},
|
||||
F = { class: "p-5" },
|
||||
j = { class: "grid grid-cols-5 gap-5" },
|
||||
E = { class: "flex items-center border py-2 px-3 rounded-md" },
|
||||
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" },
|
||||
@@ -73,12 +73,12 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
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" },
|
||||
J = { class: "text-xl font-semibold mb-1" },
|
||||
R = { class: "text-gray-700" },
|
||||
T = { class: "flex items-center border py-2 px-3 rounded-md" },
|
||||
$ = { class: "p-2 rounded-md bg-gray-100 mr-3" },
|
||||
q = { class: "text-xl font-semibold mb-1" },
|
||||
A = { class: "text-gray-700" },
|
||||
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" },
|
||||
@@ -86,8 +86,8 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
oe = {
|
||||
__name: "Statistics",
|
||||
setup(Y) {
|
||||
k("dayjs");
|
||||
const _ = x(() => [
|
||||
x("dayjs");
|
||||
const _ = v(() => [
|
||||
{ label: "Statistics", route: { name: "Statistics" } },
|
||||
]),
|
||||
u = c({
|
||||
@@ -127,18 +127,18 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
cache: ["lessons_completed"],
|
||||
});
|
||||
return (a, Z) => {
|
||||
var n, d, l, i, p;
|
||||
var d, n, l, i, p;
|
||||
return (
|
||||
v(),
|
||||
b("div", M, [
|
||||
e("header", I, [
|
||||
k(),
|
||||
b("div", I, [
|
||||
e("header", M, [
|
||||
o(t(f), { class: "h-7", items: _.value }, null, 8, [
|
||||
"items",
|
||||
]),
|
||||
]),
|
||||
e("div", F, [
|
||||
e("div", j, [
|
||||
e("div", E, [
|
||||
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",
|
||||
@@ -149,9 +149,9 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
"div",
|
||||
H,
|
||||
s(
|
||||
(n = t(m).data) == null
|
||||
(d = t(m).data) == null
|
||||
? void 0
|
||||
: n.toLocaleString()
|
||||
: d.toLocaleString()
|
||||
),
|
||||
1
|
||||
),
|
||||
@@ -174,9 +174,9 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
"div",
|
||||
P,
|
||||
s(
|
||||
(d = t(h).data) == null
|
||||
(n = t(h).data) == null
|
||||
? void 0
|
||||
: d.toLocaleString()
|
||||
: n.toLocaleString()
|
||||
),
|
||||
1
|
||||
),
|
||||
@@ -197,7 +197,7 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
e("div", null, [
|
||||
e(
|
||||
"div",
|
||||
J,
|
||||
R,
|
||||
s(
|
||||
(l = t(u).data) == null
|
||||
? void 0
|
||||
@@ -207,14 +207,14 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
),
|
||||
e(
|
||||
"div",
|
||||
R,
|
||||
T,
|
||||
s(a.__("Enrolled Users")),
|
||||
1
|
||||
),
|
||||
]),
|
||||
]),
|
||||
e("div", T, [
|
||||
e("div", $, [
|
||||
e("div", $, [
|
||||
e("div", q, [
|
||||
o(t(w), {
|
||||
class: "w-18 h-18 stroke-1.5 text-gray-700",
|
||||
}),
|
||||
@@ -222,7 +222,7 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
e("div", null, [
|
||||
e(
|
||||
"div",
|
||||
q,
|
||||
A,
|
||||
s(
|
||||
(i = t(y).data) == null
|
||||
? void 0
|
||||
@@ -232,7 +232,7 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
),
|
||||
e(
|
||||
"div",
|
||||
A,
|
||||
J,
|
||||
s(a.__("Courses Completed")),
|
||||
1
|
||||
),
|
||||
@@ -271,4 +271,4 @@ import { B as L } from "./book-open-check-5hpjM2tX.js";
|
||||
},
|
||||
};
|
||||
export { oe as default };
|
||||
//# sourceMappingURL=Statistics-Z-8FWaV4.js.map
|
||||
//# sourceMappingURL=Statistics-BSeqj912.js.map
|
||||
1
lms/public/frontend/assets/Statistics-BSeqj912.js.map
Normal file
1
lms/public/frontend/assets/Statistics-BSeqj912.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"UserAvatar-nJqmkBPv.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
@@ -2,10 +2,10 @@ import {
|
||||
x as r,
|
||||
A as s,
|
||||
av as t,
|
||||
G as l,
|
||||
H as l,
|
||||
as as u,
|
||||
I as n,
|
||||
} from "./frappe-ui-iPT8hMkb.js";
|
||||
J as n,
|
||||
} from "./frappe-ui-20hnMCM8.js";
|
||||
const i = {
|
||||
__name: "UserAvatar",
|
||||
props: { user: { type: Object, default: null }, size: { type: String } },
|
||||
@@ -33,4 +33,4 @@ const i = {
|
||||
},
|
||||
};
|
||||
export { i as _ };
|
||||
//# sourceMappingURL=UserAvatar-nJqmkBPv.js.map
|
||||
//# sourceMappingURL=UserAvatar-yrWInUTi.js.map
|
||||
1
lms/public/frontend/assets/UserAvatar-yrWInUTi.js.map
Normal file
1
lms/public/frontend/assets/UserAvatar-yrWInUTi.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"UserAvatar-yrWInUTi.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"book-open-check-5hpjM2tX.js","sources":["../../../../frontend/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]}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { a as c } from "./index-qZ7Yta4u.js";
|
||||
import { a as c } from "./index-Vx7mSx23.js";
|
||||
/**
|
||||
* @license lucide-vue-next v0.309.0 - ISC
|
||||
*
|
||||
@@ -19,4 +19,4 @@ import { a as c } from "./index-qZ7Yta4u.js";
|
||||
],
|
||||
]);
|
||||
export { o as B };
|
||||
//# sourceMappingURL=book-open-check-5hpjM2tX.js.map
|
||||
//# sourceMappingURL=book-open-check-j9IEQjWh.js.map
|
||||
@@ -0,0 +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]}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { a as e } from "./index-qZ7Yta4u.js";
|
||||
import { a as e } from "./index-Vx7mSx23.js";
|
||||
/**
|
||||
* @license lucide-vue-next v0.309.0 - ISC
|
||||
*
|
||||
@@ -31,4 +31,4 @@ import { a as e } from "./index-qZ7Yta4u.js";
|
||||
["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }],
|
||||
]);
|
||||
export { c as C, a };
|
||||
//# sourceMappingURL=clock-z0R6Od6V.js.map
|
||||
//# sourceMappingURL=clock-blcPmEdF.js.map
|
||||
1
lms/public/frontend/assets/clock-blcPmEdF.js.map
Normal file
1
lms/public/frontend/assets/clock-blcPmEdF.js.map
Normal file
@@ -0,0 +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]}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"clock-z0R6Od6V.js","sources":["../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/calendar.js","../../../../frontend/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]}
|
||||
File diff suppressed because it is too large
Load Diff
1
lms/public/frontend/assets/frappe-ui-20hnMCM8.js.map
Normal file
1
lms/public/frontend/assets/frappe-ui-20hnMCM8.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
.form-select{background-image:url("data:image/svg+xml;utf8,<svg fill='none' width='8' xmlns='http://www.w3.org/2000/svg' viewBox='-4 -2 16 16'><path d='M4.5 3.636 6.136 2l1.637 1.636M4.5 8.364 6.136 10l1.637-1.636' stroke='%23333C44' stroke-linecap='round' stroke-linejoin='round'/></svg>")}.spinner[data-v-d1174afc]{animation:rotate-d1174afc 2s linear infinite}.spinner-path[data-v-d1174afc]{stroke-linecap:round;animation:dash-d1174afc 1.5s ease-in-out infinite}@keyframes rotate-d1174afc{to{transform:rotate(360deg)}}@keyframes dash-d1174afc{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:120,150;stroke-dashoffset:-124}}.item{display:block;margin:0;width:100%;text-align:left;background:transparent;border-radius:.4rem;border:1px solid transparent;padding:.2rem .4rem}.item.is-selected{border-color:#000}.ProseMirror{outline:none;caret-color:#171717;word-break:break-word}.ProseMirror-focused:focus-visible{outline:none}.ProseMirror:not(.ProseMirror-focused) p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#999;pointer-events:none;height:0}.ProseMirror-selectednode video,img.ProseMirror-selectednode{outline:2px solid #E2E2E2}.mention{font-weight:600;-webkit-box-decoration-break:clone;box-decoration-break:clone}.prose table p{margin:0}.ProseMirror table .selectedCell:after{z-index:2;position:absolute;content:"";inset:0;pointer-events:none;background:#e3f1fd;opacity:.3}.ProseMirror table .column-resize-handle{position:absolute;right:-1px;top:0;bottom:-2px;width:4px;background-color:#e3f1fd;pointer-events:none}.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror mark{border-radius:3px;padding:0 2px}
|
||||
.form-select{background-image:url("data:image/svg+xml;utf8,<svg fill='none' width='8' xmlns='http://www.w3.org/2000/svg' viewBox='-4 -2 16 16'><path d='M4.5 3.636 6.136 2l1.637 1.636M4.5 8.364 6.136 10l1.637-1.636' stroke='%23333C44' stroke-linecap='round' stroke-linejoin='round'/></svg>")}.spinner[data-v-a61a1368]{animation:rotate-a61a1368 2s linear infinite}.spinner-path[data-v-a61a1368]{stroke-linecap:round;animation:dash-a61a1368 1.5s ease-in-out infinite}@keyframes rotate-a61a1368{to{transform:rotate(360deg)}}@keyframes dash-a61a1368{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:120,150;stroke-dashoffset:-124}}.item{display:block;margin:0;width:100%;text-align:left;background:transparent;border-radius:.4rem;border:1px solid transparent;padding:.2rem .4rem}.item.is-selected{border-color:#000}.ProseMirror{outline:none;caret-color:#171717;word-break:break-word}.ProseMirror-focused:focus-visible{outline:none}.ProseMirror:not(.ProseMirror-focused) p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#999;pointer-events:none;height:0}.ProseMirror-selectednode video,img.ProseMirror-selectednode{outline:2px solid #E2E2E2}.mention{font-weight:600;-webkit-box-decoration-break:clone;box-decoration-break:clone}.prose table p{margin:0}.ProseMirror table .selectedCell:after{z-index:2;position:absolute;content:"";inset:0;pointer-events:none;background:#e3f1fd;opacity:.3}.ProseMirror table .column-resize-handle{position:absolute;right:-1px;top:0;bottom:-2px;width:4px;background-color:#e3f1fd;pointer-events:none}.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror mark{border-radius:3px;padding:0 2px}
|
||||
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 it is too large
Load Diff
1
lms/public/frontend/assets/index-Vx7mSx23.js.map
Normal file
1
lms/public/frontend/assets/index-Vx7mSx23.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"plus-_m-8cMp1.js","sources":["../../../../frontend/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]}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { a } from "./index-qZ7Yta4u.js";
|
||||
import { a } from "./index-Vx7mSx23.js";
|
||||
/**
|
||||
* @license lucide-vue-next v0.309.0 - ISC
|
||||
*
|
||||
@@ -9,4 +9,4 @@ import { a } from "./index-qZ7Yta4u.js";
|
||||
["path", { d: "M12 5v14", key: "s699le" }],
|
||||
]);
|
||||
export { s as P };
|
||||
//# sourceMappingURL=plus-_m-8cMp1.js.map
|
||||
//# sourceMappingURL=plus-pxSjkL_w.js.map
|
||||
1
lms/public/frontend/assets/plus-pxSjkL_w.js.map
Normal file
1
lms/public/frontend/assets/plus-pxSjkL_w.js.map
Normal file
@@ -0,0 +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]}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"star-xishKgdq.js","sources":["../../../../frontend/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]}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { a as o } from "./index-qZ7Yta4u.js";
|
||||
import { a as o } from "./index-Vx7mSx23.js";
|
||||
/**
|
||||
* @license lucide-vue-next v0.309.0 - ISC
|
||||
*
|
||||
@@ -14,4 +14,4 @@ import { a as o } from "./index-qZ7Yta4u.js";
|
||||
],
|
||||
]);
|
||||
export { a as S };
|
||||
//# sourceMappingURL=star-xishKgdq.js.map
|
||||
//# sourceMappingURL=star-ypmGZNF0.js.map
|
||||
1
lms/public/frontend/assets/star-ypmGZNF0.js.map
Normal file
1
lms/public/frontend/assets/star-ypmGZNF0.js.map
Normal file
@@ -0,0 +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]}
|
||||
@@ -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-qZ7Yta4u.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/frappe-ui-iPT8hMkb.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/frappe-ui-f0ZsshpU.css">
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-eoiomuoN.css">
|
||||
<script type="module" crossorigin src="/assets/index-Vx7mSx23.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/frappe-ui-20hnMCM8.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/frappe-ui-dYBF8eAq.css">
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-VOpIbXPv.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "frappe_lms",
|
||||
"version": "1.0.0",
|
||||
"description": "Easy to use, open-source, Learning Management System",
|
||||
"workspaces1": ["frappe-ui", "frontend"],
|
||||
"workspaces": ["frappe-ui", "frontend"],
|
||||
"scripts": {
|
||||
"test-local": "cypress open --e2e --browser chrome"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user