From 9671c4d63ffd402371a79f20d931bfc6c84519fa Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Tue, 23 Jan 2024 15:33:31 +0530 Subject: [PATCH] feat: batch billing --- frontend/package.json | 6 +- frontend/src/components/Annoucements.vue | 5 +- frontend/src/components/BatchOverlay.vue | 22 +- frontend/src/components/Controls/Link.vue | 1 + frontend/src/components/CourseCardOverlay.vue | 16 + frontend/src/components/NotPermitted.vue | 44 + .../src/components/UpcomingEvaluations.vue | 2 +- frontend/src/pages/Batch.vue | 69 +- frontend/src/pages/BatchDetail.vue | 9 +- frontend/src/pages/Billing.vue | 335 +- frontend/yarn.lock | 751 +- lms/lms/api.py | 22 +- lms/lms/utils.py | 48 +- lms/public/frontend/assets/Batch--wtfybfQ.js | 2700 + .../frontend/assets/Batch--wtfybfQ.js.map | 1 + lms/public/frontend/assets/Batch-oDSZMopQ.css | 1 + lms/public/frontend/assets/Batch.3bb9da4e.js | 730 - ....f109aa14.css => BatchDetail-AhnKex4u.css} | 0 .../frontend/assets/BatchDetail-MDvOC8VN.js | 494 + .../assets/BatchDetail-MDvOC8VN.js.map | 1 + .../frontend/assets/BatchDetail.9bef2d15.js | 454 - ...ches.70c9cf07.css => Batches-1PjOhl-q.css} | 0 ...atches.6064501b.js => Batches-gDWZzuli.js} | 168 +- .../frontend/assets/Batches-gDWZzuli.js.map | 1 + .../frontend/assets/Billing-hBjAglsj.js | 51000 +++++++++++++++ .../frontend/assets/Billing-hBjAglsj.js.map | 1 + ...ard.bf057db6.js => CourseCard-1i2yp1tI.js} | 129 +- .../assets/CourseCard-1i2yp1tI.js.map | 1 + .../frontend/assets/CourseCard-w2R5j-Mr.css | 1 + .../frontend/assets/CourseCard.04c5bb55.css | 1 - ...6888eccf.css => CourseDetail-SyEqAeUc.css} | 0 ...l.e391d1e0.js => CourseDetail-hyS6u7Jr.js} | 565 +- .../assets/CourseDetail-hyS6u7Jr.js.map | 1 + ....2110618a.js => CourseOutline-7cUm8E8p.js} | 205 +- .../assets/CourseOutline-7cUm8E8p.js.map | 1 + ...dd858fb.css => CourseOutline-S7REli5R.css} | 0 ...ourses.52ce2794.js => Courses-hTDCCPUa.js} | 125 +- .../frontend/assets/Courses-hTDCCPUa.js.map | 1 + .../frontend/assets/Discussions-0iopHFAD.js | 838 + .../assets/Discussions-0iopHFAD.js.map | 1 + ...olor.8609c26d.js => FontColor-67MjDpop.js} | 61 +- .../frontend/assets/FontColor-67MjDpop.js.map | 1 + .../{Home.28a136f6.js => Home-x768lxic.js} | 37 +- .../frontend/assets/Home-x768lxic.js.map | 1 + ...ge.8746762f.js => InsertImage-pFxauZ_l.js} | 61 +- .../assets/InsertImage-pFxauZ_l.js.map | 1 + ...ink.bddcb61b.js => InsertLink-PJVOdU-g.js} | 55 +- .../assets/InsertLink-PJVOdU-g.js.map | 1 + ...eo.1f3698d7.js => InsertVideo-5zm7I1WB.js} | 61 +- .../assets/InsertVideo-5zm7I1WB.js.map | 1 + ...55dd7.woff2 => Inter-Black-PRL2gLxE.woff2} | Bin ...c79713b.woff => Inter-Black-gEeqJlx_.woff} | Bin ...198e0.woff2 => Inter-Black-gvpTKl7u.woff2} | Bin ...woff2 => Inter-BlackItalic-CNL9E1KN.woff2} | Bin ...a.woff => Inter-BlackItalic-LuVXomuZ.woff} | Bin ...woff2 => Inter-BlackItalic-YIX3NM0i.woff2} | Bin ...c41a58.woff2 => Inter-Bold-EdMx6Mxx.woff2} | Bin ...fd8e3c.woff2 => Inter-Bold-Kpqetf9N.woff2} | Bin ...2b828bef.woff => Inter-Bold-aawefGjc.woff} | Bin ....woff2 => Inter-BoldItalic-9PuRMf9-.woff2} | Bin ....woff2 => Inter-BoldItalic-XUFxVcVI.woff2} | Bin ...ff.woff => Inter-BoldItalic-wtLMf_e5.woff} | Bin ...off2 => Inter-DisplayBlack-FnmDQwgF.woff2} | Bin ...> Inter-DisplayBlackItalic-xRJiBbHd.woff2} | Bin ...woff2 => Inter-DisplayBold-vtRAxkYc.woff2} | Bin ...=> Inter-DisplayBoldItalic-iEpk2r5E.woff2} | Bin ... => Inter-DisplayExtraBold-V39hiaxk.woff2} | Bin ...ter-DisplayExtraBoldItalic-s79yhQ_A.woff2} | Bin ...=> Inter-DisplayExtraLight-9iWtGm20.woff2} | Bin ...er-DisplayExtraLightItalic-0cIjPU9g.woff2} | Bin ...ff2 => Inter-DisplayItalic-CTRBNqPt.woff2} | Bin ...off2 => Inter-DisplayLight-MPJT0Cp0.woff2} | Bin ...> Inter-DisplayLightItalic-wb3t3iNe.woff2} | Bin ...ff2 => Inter-DisplayMedium-3I7W5HAH.woff2} | Bin ... Inter-DisplayMediumItalic-QQqEubj3.woff2} | Bin ...2 => Inter-DisplaySemiBold-QVi2Oby0.woff2} | Bin ...nter-DisplaySemiBoldItalic-jbwRhe3t.woff2} | Bin ...woff2 => Inter-DisplayThin-oS-KBQoF.woff2} | Bin ...=> Inter-DisplayThinItalic-sccOoUW7.woff2} | Bin ...ce1.woff => Inter-ExtraBold-20C648Aw.woff} | Bin ...b.woff2 => Inter-ExtraBold-cuUj04eJ.woff2} | Bin ...6.woff2 => Inter-ExtraBold-nvPG8kJ6.woff2} | Bin ...2 => Inter-ExtraBoldItalic-970UaulA.woff2} | Bin ...2 => Inter-ExtraBoldItalic-oJpuiHti.woff2} | Bin ...ff => Inter-ExtraBoldItalic-vd7VQ08J.woff} | Bin ....woff2 => Inter-ExtraLight-go-Sjg8O.woff2} | Bin ...44.woff => Inter-ExtraLight-jeYO1f-H.woff} | Bin ....woff2 => Inter-ExtraLight-lRyqvtsv.woff2} | Bin ... => Inter-ExtraLightItalic-D9C4BIx-.woff2} | Bin ... => Inter-ExtraLightItalic-V0vED6rj.woff2} | Bin ...f => Inter-ExtraLightItalic-WOCOQ2hx.woff} | Bin ...b21adf.woff => Inter-Italic-9gSHXy2r.woff} | Bin ...74d1.woff2 => Inter-Italic-ISoFZYQK.woff2} | Bin ...ea31.woff2 => Inter-Italic-pTrbWXqe.woff2} | Bin ....woff2 => Inter-Italic.var-Rh84h4CO.woff2} | Bin ...19f53ba.woff => Inter-Light-5-GUXROx.woff} | Bin ...d65f8.woff2 => Inter-Light-5yGeM-5q.woff2} | Bin ...445a8.woff2 => Inter-Light-HSANeLnN.woff2} | Bin ...woff2 => Inter-LightItalic--wmYzZXX.woff2} | Bin ...woff2 => Inter-LightItalic-AXCUKzf6.woff2} | Bin ...c.woff => Inter-LightItalic-L35SlV37.woff} | Bin ...00bbb9.woff => Inter-Medium-6LCU1brN.woff} | Bin ...e7e6.woff2 => Inter-Medium-CGa_B2Kz.woff2} | Bin ...6e39.woff2 => Inter-Medium-Te4g5Ksu.woff2} | Bin ...off2 => Inter-MediumItalic-Hh5yQeyY.woff2} | Bin ...off2 => Inter-MediumItalic-IkU60XOc.woff2} | Bin ....woff => Inter-MediumItalic-vhxdSiLG.woff} | Bin ...eaf.woff2 => Inter-Regular-LaxDZo1w.woff2} | Bin ...1b7.woff2 => Inter-Regular-tqCZk5FY.woff2} | Bin ...5f1bc.woff => Inter-Regular-vcEMZOhg.woff} | Bin ...a2.woff2 => Inter-SemiBold-NbxoiBZv.woff2} | Bin ...07.woff2 => Inter-SemiBold-gVHpBfRB.woff2} | Bin ...a990.woff => Inter-SemiBold-lA3Cpv5S.woff} | Bin ...f2 => Inter-SemiBoldItalic-CeN50S0a.woff2} | Bin ...f2 => Inter-SemiBoldItalic-Qr_1eK2M.woff2} | Bin ...off => Inter-SemiBoldItalic-eSy1gFAN.woff} | Bin ...8c5cbe.woff2 => Inter-Thin-0i_c-DeN.woff2} | Bin ...4c3fab.woff2 => Inter-Thin-9yYhymhj.woff2} | Bin ...2198e9fb.woff => Inter-Thin-GyNvsbHi.woff} | Bin ....woff2 => Inter-ThinItalic-7cvai1Oj.woff2} | Bin ...de.woff => Inter-ThinItalic-tXIlT4km.woff} | Bin ....woff2 => Inter-ThinItalic-wXB-lYIc.woff2} | Bin ...30c3bd0.woff2 => Inter.var-vcQwTkty.woff2} | Bin ...{Lesson.19d410ae.js => Lesson-DbPY_b_T.js} | 2983 +- .../frontend/assets/Lesson-DbPY_b_T.js.map | 1 + ...esson.3532a62c.css => Lesson-EmJokeso.css} | 2 +- lms/public/frontend/assets/Link-4jJRdvJb.js | 733 + .../frontend/assets/Link-4jJRdvJb.js.map | 1 + .../frontend/assets/Statistics-Z-8FWaV4.js | 274 + .../assets/Statistics-Z-8FWaV4.js.map | 1 + ...tar.3cd4adb4.js => UserAvatar-nJqmkBPv.js} | 15 +- .../assets/UserAvatar-nJqmkBPv.js.map | 1 + .../assets/book-open-check-5hpjM2tX.js | 22 + .../assets/book-open-check-5hpjM2tX.js.map | 1 + lms/public/frontend/assets/clock-z0R6Od6V.js | 34 + .../frontend/assets/clock-z0R6Od6V.js.map | 1 + lms/public/frontend/assets/clock.b36d19aa.js | 23 - ...ui.7692ed2d.css => frappe-ui-f0ZsshpU.css} | 2 +- .../frontend/assets/frappe-ui-iPT8hMkb.js | 51208 ++++++++++++++++ .../frontend/assets/frappe-ui-iPT8hMkb.js.map | 1 + .../frontend/assets/frappe-ui.a747cf9c.js | 45754 -------------- lms/public/frontend/assets/index-eoiomuoN.css | 1 + lms/public/frontend/assets/index-qZ7Yta4u.js | 2129 + .../frontend/assets/index-qZ7Yta4u.js.map | 1 + lms/public/frontend/assets/index.51e5b051.js | 1790 - lms/public/frontend/assets/index.6f049c1a.js | 45 - lms/public/frontend/assets/index.7337873e.css | 1 - lms/public/frontend/assets/plus-_m-8cMp1.js | 12 + .../frontend/assets/plus-_m-8cMp1.js.map | 1 + lms/public/frontend/assets/plus.d245902e.js | 6 - lms/public/frontend/assets/star-xishKgdq.js | 17 + .../frontend/assets/star-xishKgdq.js.map | 1 + lms/public/frontend/assets/star.d358f014.js | 11 - lms/public/frontend/index.html | 9 +- 154 files changed, 112825 insertions(+), 51286 deletions(-) create mode 100644 frontend/src/components/NotPermitted.vue create mode 100644 lms/public/frontend/assets/Batch--wtfybfQ.js create mode 100644 lms/public/frontend/assets/Batch--wtfybfQ.js.map create mode 100644 lms/public/frontend/assets/Batch-oDSZMopQ.css delete mode 100644 lms/public/frontend/assets/Batch.3bb9da4e.js rename lms/public/frontend/assets/{BatchDetail.f109aa14.css => BatchDetail-AhnKex4u.css} (100%) create mode 100644 lms/public/frontend/assets/BatchDetail-MDvOC8VN.js create mode 100644 lms/public/frontend/assets/BatchDetail-MDvOC8VN.js.map delete mode 100644 lms/public/frontend/assets/BatchDetail.9bef2d15.js rename lms/public/frontend/assets/{Batches.70c9cf07.css => Batches-1PjOhl-q.css} (100%) rename lms/public/frontend/assets/{Batches.6064501b.js => Batches-gDWZzuli.js} (81%) create mode 100644 lms/public/frontend/assets/Batches-gDWZzuli.js.map create mode 100644 lms/public/frontend/assets/Billing-hBjAglsj.js create mode 100644 lms/public/frontend/assets/Billing-hBjAglsj.js.map rename lms/public/frontend/assets/{CourseCard.bf057db6.js => CourseCard-1i2yp1tI.js} (73%) create mode 100644 lms/public/frontend/assets/CourseCard-1i2yp1tI.js.map create mode 100644 lms/public/frontend/assets/CourseCard-w2R5j-Mr.css delete mode 100644 lms/public/frontend/assets/CourseCard.04c5bb55.css rename lms/public/frontend/assets/{CourseDetail.6888eccf.css => CourseDetail-SyEqAeUc.css} (100%) rename lms/public/frontend/assets/{CourseDetail.e391d1e0.js => CourseDetail-hyS6u7Jr.js} (69%) create mode 100644 lms/public/frontend/assets/CourseDetail-hyS6u7Jr.js.map rename lms/public/frontend/assets/{CourseOutline.2110618a.js => CourseOutline-7cUm8E8p.js} (63%) create mode 100644 lms/public/frontend/assets/CourseOutline-7cUm8E8p.js.map rename lms/public/frontend/assets/{CourseOutline.6dd858fb.css => CourseOutline-S7REli5R.css} (100%) rename lms/public/frontend/assets/{Courses.52ce2794.js => Courses-hTDCCPUa.js} (86%) create mode 100644 lms/public/frontend/assets/Courses-hTDCCPUa.js.map create mode 100644 lms/public/frontend/assets/Discussions-0iopHFAD.js create mode 100644 lms/public/frontend/assets/Discussions-0iopHFAD.js.map rename lms/public/frontend/assets/{FontColor.8609c26d.js => FontColor-67MjDpop.js} (88%) create mode 100644 lms/public/frontend/assets/FontColor-67MjDpop.js.map rename lms/public/frontend/assets/{Home.28a136f6.js => Home-x768lxic.js} (69%) create mode 100644 lms/public/frontend/assets/Home-x768lxic.js.map rename lms/public/frontend/assets/{InsertImage.8746762f.js => InsertImage-pFxauZ_l.js} (83%) create mode 100644 lms/public/frontend/assets/InsertImage-pFxauZ_l.js.map rename lms/public/frontend/assets/{InsertLink.bddcb61b.js => InsertLink-PJVOdU-g.js} (80%) create mode 100644 lms/public/frontend/assets/InsertLink-PJVOdU-g.js.map rename lms/public/frontend/assets/{InsertVideo.1f3698d7.js => InsertVideo-5zm7I1WB.js} (84%) create mode 100644 lms/public/frontend/assets/InsertVideo-5zm7I1WB.js.map rename lms/public/frontend/assets/{Inter-Black.05e55dd7.woff2 => Inter-Black-PRL2gLxE.woff2} (100%) rename lms/public/frontend/assets/{Inter-Black.9c79713b.woff => Inter-Black-gEeqJlx_.woff} (100%) rename lms/public/frontend/assets/{Inter-Black.bc2198e0.woff2 => Inter-Black-gvpTKl7u.woff2} (100%) rename lms/public/frontend/assets/{Inter-BlackItalic.4ff7db4a.woff2 => Inter-BlackItalic-CNL9E1KN.woff2} (100%) rename lms/public/frontend/assets/{Inter-BlackItalic.7ecbf9fa.woff => Inter-BlackItalic-LuVXomuZ.woff} (100%) rename lms/public/frontend/assets/{Inter-BlackItalic.1cb529a7.woff2 => Inter-BlackItalic-YIX3NM0i.woff2} (100%) rename lms/public/frontend/assets/{Inter-Bold.1dc41a58.woff2 => Inter-Bold-EdMx6Mxx.woff2} (100%) rename lms/public/frontend/assets/{Inter-Bold.2efd8e3c.woff2 => Inter-Bold-Kpqetf9N.woff2} (100%) rename lms/public/frontend/assets/{Inter-Bold.2b828bef.woff => Inter-Bold-aawefGjc.woff} (100%) rename lms/public/frontend/assets/{Inter-BoldItalic.dc0d4194.woff2 => Inter-BoldItalic-9PuRMf9-.woff2} (100%) rename lms/public/frontend/assets/{Inter-BoldItalic.f528d863.woff2 => Inter-BoldItalic-XUFxVcVI.woff2} (100%) rename lms/public/frontend/assets/{Inter-BoldItalic.8bc8e0ff.woff => Inter-BoldItalic-wtLMf_e5.woff} (100%) rename lms/public/frontend/assets/{Inter-DisplayBlack.b1d4e33d.woff2 => Inter-DisplayBlack-FnmDQwgF.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayBlackItalic.d561e8dd.woff2 => Inter-DisplayBlackItalic-xRJiBbHd.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayBold.d9bf35ac.woff2 => Inter-DisplayBold-vtRAxkYc.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayBoldItalic.fef00c57.woff2 => Inter-DisplayBoldItalic-iEpk2r5E.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayExtraBold.b7cc680a.woff2 => Inter-DisplayExtraBold-V39hiaxk.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayExtraBoldItalic.e5a5984a.woff2 => Inter-DisplayExtraBoldItalic-s79yhQ_A.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayExtraLight.32095132.woff2 => Inter-DisplayExtraLight-9iWtGm20.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayExtraLightItalic.8eeb78f4.woff2 => Inter-DisplayExtraLightItalic-0cIjPU9g.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayItalic.938db435.woff2 => Inter-DisplayItalic-CTRBNqPt.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayLight.e40a858d.woff2 => Inter-DisplayLight-MPJT0Cp0.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayLightItalic.151e9a11.woff2 => Inter-DisplayLightItalic-wb3t3iNe.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayMedium.12a4a358.woff2 => Inter-DisplayMedium-3I7W5HAH.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayMediumItalic.8968b5ab.woff2 => Inter-DisplayMediumItalic-QQqEubj3.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplaySemiBold.856fcb49.woff2 => Inter-DisplaySemiBold-QVi2Oby0.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplaySemiBoldItalic.5e57e1d2.woff2 => Inter-DisplaySemiBoldItalic-jbwRhe3t.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayThin.b64c173b.woff2 => Inter-DisplayThin-oS-KBQoF.woff2} (100%) rename lms/public/frontend/assets/{Inter-DisplayThinItalic.b70f1c61.woff2 => Inter-DisplayThinItalic-sccOoUW7.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraBold.585b4ce1.woff => Inter-ExtraBold-20C648Aw.woff} (100%) rename lms/public/frontend/assets/{Inter-ExtraBold.74e72c6b.woff2 => Inter-ExtraBold-cuUj04eJ.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraBold.8a72efb6.woff2 => Inter-ExtraBold-nvPG8kJ6.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraBoldItalic.2abc7ab1.woff2 => Inter-ExtraBoldItalic-970UaulA.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraBoldItalic.38e71f7c.woff2 => Inter-ExtraBoldItalic-oJpuiHti.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraBoldItalic.b87f7d97.woff => Inter-ExtraBoldItalic-vd7VQ08J.woff} (100%) rename lms/public/frontend/assets/{Inter-ExtraLight.25a4db7c.woff2 => Inter-ExtraLight-go-Sjg8O.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraLight.1c06ef44.woff => Inter-ExtraLight-jeYO1f-H.woff} (100%) rename lms/public/frontend/assets/{Inter-ExtraLight.4c337585.woff2 => Inter-ExtraLight-lRyqvtsv.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraLightItalic.7b39e865.woff2 => Inter-ExtraLightItalic-D9C4BIx-.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraLightItalic.f0df46d0.woff2 => Inter-ExtraLightItalic-V0vED6rj.woff2} (100%) rename lms/public/frontend/assets/{Inter-ExtraLightItalic.0e5667b1.woff => Inter-ExtraLightItalic-WOCOQ2hx.woff} (100%) rename lms/public/frontend/assets/{Inter-Italic.b0b21adf.woff => Inter-Italic-9gSHXy2r.woff} (100%) rename lms/public/frontend/assets/{Inter-Italic.950174d1.woff2 => Inter-Italic-ISoFZYQK.woff2} (100%) rename lms/public/frontend/assets/{Inter-Italic.dd31ea31.woff2 => Inter-Italic-pTrbWXqe.woff2} (100%) rename lms/public/frontend/assets/{Inter-Italic.var.d9f448e3.woff2 => Inter-Italic.var-Rh84h4CO.woff2} (100%) rename lms/public/frontend/assets/{Inter-Light.319f53ba.woff => Inter-Light-5-GUXROx.woff} (100%) rename lms/public/frontend/assets/{Inter-Light.87ed65f8.woff2 => Inter-Light-5yGeM-5q.woff2} (100%) rename lms/public/frontend/assets/{Inter-Light.211445a8.woff2 => Inter-Light-HSANeLnN.woff2} (100%) rename lms/public/frontend/assets/{Inter-LightItalic.5b94e337.woff2 => Inter-LightItalic--wmYzZXX.woff2} (100%) rename lms/public/frontend/assets/{Inter-LightItalic.9ea2db78.woff2 => Inter-LightItalic-AXCUKzf6.woff2} (100%) rename lms/public/frontend/assets/{Inter-LightItalic.289a60bc.woff => Inter-LightItalic-L35SlV37.woff} (100%) rename lms/public/frontend/assets/{Inter-Medium.f500bbb9.woff => Inter-Medium-6LCU1brN.woff} (100%) rename lms/public/frontend/assets/{Inter-Medium.a4e1e7e6.woff2 => Inter-Medium-CGa_B2Kz.woff2} (100%) rename lms/public/frontend/assets/{Inter-Medium.24fb6e39.woff2 => Inter-Medium-Te4g5Ksu.woff2} (100%) rename lms/public/frontend/assets/{Inter-MediumItalic.d4a7f5d9.woff2 => Inter-MediumItalic-Hh5yQeyY.woff2} (100%) rename lms/public/frontend/assets/{Inter-MediumItalic.a2db9bea.woff2 => Inter-MediumItalic-IkU60XOc.woff2} (100%) rename lms/public/frontend/assets/{Inter-MediumItalic.d06751dd.woff => Inter-MediumItalic-vhxdSiLG.woff} (100%) rename lms/public/frontend/assets/{Inter-Regular.edd1deaf.woff2 => Inter-Regular-LaxDZo1w.woff2} (100%) rename lms/public/frontend/assets/{Inter-Regular.c342b1b7.woff2 => Inter-Regular-tqCZk5FY.woff2} (100%) rename lms/public/frontend/assets/{Inter-Regular.b825f1bc.woff => Inter-Regular-vcEMZOhg.woff} (100%) rename lms/public/frontend/assets/{Inter-SemiBold.af44b8a2.woff2 => Inter-SemiBold-NbxoiBZv.woff2} (100%) rename lms/public/frontend/assets/{Inter-SemiBold.51419407.woff2 => Inter-SemiBold-gVHpBfRB.woff2} (100%) rename lms/public/frontend/assets/{Inter-SemiBold.3041a990.woff => Inter-SemiBold-lA3Cpv5S.woff} (100%) rename lms/public/frontend/assets/{Inter-SemiBoldItalic.daa7095c.woff2 => Inter-SemiBoldItalic-CeN50S0a.woff2} (100%) rename lms/public/frontend/assets/{Inter-SemiBoldItalic.a4f92da5.woff2 => Inter-SemiBoldItalic-Qr_1eK2M.woff2} (100%) rename lms/public/frontend/assets/{Inter-SemiBoldItalic.5ce565c8.woff => Inter-SemiBoldItalic-eSy1gFAN.woff} (100%) rename lms/public/frontend/assets/{Inter-Thin.918c5cbe.woff2 => Inter-Thin-0i_c-DeN.woff2} (100%) rename lms/public/frontend/assets/{Inter-Thin.914c3fab.woff2 => Inter-Thin-9yYhymhj.woff2} (100%) rename lms/public/frontend/assets/{Inter-Thin.2198e9fb.woff => Inter-Thin-GyNvsbHi.woff} (100%) rename lms/public/frontend/assets/{Inter-ThinItalic.382fab25.woff2 => Inter-ThinItalic-7cvai1Oj.woff2} (100%) rename lms/public/frontend/assets/{Inter-ThinItalic.f53f21de.woff => Inter-ThinItalic-tXIlT4km.woff} (100%) rename lms/public/frontend/assets/{Inter-ThinItalic.a3279f0a.woff2 => Inter-ThinItalic-wXB-lYIc.woff2} (100%) rename lms/public/frontend/assets/{Inter.var.d30c3bd0.woff2 => Inter.var-vcQwTkty.woff2} (100%) rename lms/public/frontend/assets/{Lesson.19d410ae.js => Lesson-DbPY_b_T.js} (54%) create mode 100644 lms/public/frontend/assets/Lesson-DbPY_b_T.js.map rename lms/public/frontend/assets/{Lesson.3532a62c.css => Lesson-EmJokeso.css} (85%) create mode 100644 lms/public/frontend/assets/Link-4jJRdvJb.js create mode 100644 lms/public/frontend/assets/Link-4jJRdvJb.js.map create mode 100644 lms/public/frontend/assets/Statistics-Z-8FWaV4.js create mode 100644 lms/public/frontend/assets/Statistics-Z-8FWaV4.js.map rename lms/public/frontend/assets/{UserAvatar.3cd4adb4.js => UserAvatar-nJqmkBPv.js} (78%) create mode 100644 lms/public/frontend/assets/UserAvatar-nJqmkBPv.js.map create mode 100644 lms/public/frontend/assets/book-open-check-5hpjM2tX.js create mode 100644 lms/public/frontend/assets/book-open-check-5hpjM2tX.js.map create mode 100644 lms/public/frontend/assets/clock-z0R6Od6V.js create mode 100644 lms/public/frontend/assets/clock-z0R6Od6V.js.map delete mode 100644 lms/public/frontend/assets/clock.b36d19aa.js rename lms/public/frontend/assets/{frappe-ui.7692ed2d.css => frappe-ui-f0ZsshpU.css} (92%) create mode 100644 lms/public/frontend/assets/frappe-ui-iPT8hMkb.js create mode 100644 lms/public/frontend/assets/frappe-ui-iPT8hMkb.js.map delete mode 100644 lms/public/frontend/assets/frappe-ui.a747cf9c.js create mode 100644 lms/public/frontend/assets/index-eoiomuoN.css create mode 100644 lms/public/frontend/assets/index-qZ7Yta4u.js create mode 100644 lms/public/frontend/assets/index-qZ7Yta4u.js.map delete mode 100644 lms/public/frontend/assets/index.51e5b051.js delete mode 100644 lms/public/frontend/assets/index.6f049c1a.js delete mode 100644 lms/public/frontend/assets/index.7337873e.css create mode 100644 lms/public/frontend/assets/plus-_m-8cMp1.js create mode 100644 lms/public/frontend/assets/plus-_m-8cMp1.js.map delete mode 100644 lms/public/frontend/assets/plus.d245902e.js create mode 100644 lms/public/frontend/assets/star-xishKgdq.js create mode 100644 lms/public/frontend/assets/star-xishKgdq.js.map delete mode 100644 lms/public/frontend/assets/star.d358f014.js diff --git a/frontend/package.json b/frontend/package.json index 1d0a5c75..5b9e5064 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,11 +14,11 @@ "lucide-vue-next": "^0.309.0", "markdown-it": "^14.0.0", "pinia": "^2.0.33", - "tailwindcss": "^3.2.7", "socket.io-client": "^4.7.2", + "tailwindcss": "^3.2.7", "vue": "^3.2.25", - "vue-router": "^4.0.12", - "vue-chartjs": "^5.0.0" + "vue-chartjs": "^5.0.0", + "vue-router": "^4.0.12" }, "devDependencies": { "@vitejs/plugin-vue": "^2.0.0", diff --git a/frontend/src/components/Annoucements.vue b/frontend/src/components/Annoucements.vue index 4141b688..f075c740 100644 --- a/frontend/src/components/Annoucements.vue +++ b/frontend/src/components/Annoucements.vue @@ -1,5 +1,5 @@ diff --git a/frontend/src/components/UpcomingEvaluations.vue b/frontend/src/components/UpcomingEvaluations.vue index aeb54d79..c39890ab 100644 --- a/frontend/src/components/UpcomingEvaluations.vue +++ b/frontend/src/components/UpcomingEvaluations.vue @@ -6,7 +6,7 @@
{{ __('Upcoming Evaluations') }}
-
+
diff --git a/frontend/src/pages/Batch.vue b/frontend/src/pages/Batch.vue index add4a62b..4fe7e485 100644 --- a/frontend/src/pages/Batch.vue +++ b/frontend/src/pages/Batch.vue @@ -120,7 +120,7 @@ />
-
+
{ }) const tabIndex = ref(0) -const tabs = [] - -if (isStudent.value) { - tabs.push({ - label: 'Dashboard', - icon: LayoutDashboard, +const tabs = computed(() => { + let batchTabs = [] + if (isStudent.value) { + batchTabs.push({ + label: 'Dashboard', + icon: LayoutDashboard, + }) + } + if (user.data?.is_moderator) { + batchTabs.push({ + label: 'Students', + icon: Contact2, + }) + batchTabs.push({ + label: 'Assessments', + icon: BookOpenCheck, + }) + } + batchTabs.push({ + label: 'Live Class', + icon: Laptop, }) -} - -if (user.data?.is_moderator) { - tabs.push({ - label: 'Students', - icon: Contact2, + batchTabs.push({ + label: 'Courses', + icon: BookOpen, }) - tabs.push({ - label: 'Assessments', - icon: BookOpenCheck, + batchTabs.push({ + label: 'Announcements', + icon: Mail, }) -} - -tabs.push({ - label: 'Live Class', - icon: Laptop, -}) - -tabs.push({ - label: 'Courses', - icon: BookOpen, -}) - -tabs.push({ - label: 'Announcements', - icon: Mail, -}) - -tabs.push({ - label: 'Discussions', - icon: MessageCircle, + batchTabs.push({ + label: 'Discussions', + icon: MessageCircle, + }) + return batchTabs }) const courses = createResource({ diff --git a/frontend/src/pages/BatchDetail.vue b/frontend/src/pages/BatchDetail.vue index 58aa3329..fa006df5 100644 --- a/frontend/src/pages/BatchDetail.vue +++ b/frontend/src/pages/BatchDetail.vue @@ -78,12 +78,7 @@
diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 136d7b3f..f3f11be2 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -171,9 +171,9 @@ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.9": - version "0.3.21" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15" - integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== + version "0.3.22" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" + integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -240,70 +240,70 @@ dependencies: type-fest "^2.19.0" -"@rollup/rollup-android-arm-eabi@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz#b752b6c88a14ccfcbdf3f48c577ccc3a7f0e66b9" - integrity sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA== +"@rollup/rollup-android-arm-eabi@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" + integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== -"@rollup/rollup-android-arm64@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz#33757c3a448b9ef77b6f6292d8b0ec45c87e9c1a" - integrity sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg== +"@rollup/rollup-android-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" + integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== -"@rollup/rollup-darwin-arm64@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz#5234ba62665a3f443143bc8bcea9df2cc58f55fb" - integrity sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w== +"@rollup/rollup-darwin-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" + integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== -"@rollup/rollup-darwin-x64@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz#981256c054d3247b83313724938d606798a919d1" - integrity sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA== +"@rollup/rollup-darwin-x64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" + integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== -"@rollup/rollup-linux-arm-gnueabihf@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz#120678a5a2b3a283a548dbb4d337f9187a793560" - integrity sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g== +"@rollup/rollup-linux-arm-gnueabihf@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" + integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== -"@rollup/rollup-linux-arm64-gnu@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz#c99d857e2372ece544b6f60b85058ad259f64114" - integrity sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA== +"@rollup/rollup-linux-arm64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" + integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== -"@rollup/rollup-linux-arm64-musl@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz#3064060f568a5718c2a06858cd6e6d24f2ff8632" - integrity sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ== +"@rollup/rollup-linux-arm64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" + integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== -"@rollup/rollup-linux-riscv64-gnu@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz#987d30b5d2b992fff07d055015991a57ff55fbad" - integrity sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA== +"@rollup/rollup-linux-riscv64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" + integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== -"@rollup/rollup-linux-x64-gnu@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz#85946ee4d068bd12197aeeec2c6f679c94978a49" - integrity sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA== +"@rollup/rollup-linux-x64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" + integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== -"@rollup/rollup-linux-x64-musl@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz#fe0b20f9749a60eb1df43d20effa96c756ddcbd4" - integrity sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg== +"@rollup/rollup-linux-x64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" + integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== -"@rollup/rollup-win32-arm64-msvc@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz#422661ef0e16699a234465d15b2c1089ef963b2a" - integrity sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ== +"@rollup/rollup-win32-arm64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" + integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== -"@rollup/rollup-win32-ia32-msvc@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz#7b73a145891c202fbcc08759248983667a035d85" - integrity sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA== +"@rollup/rollup-win32-ia32-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" + integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== -"@rollup/rollup-win32-x64-msvc@4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz#10491ccf4f63c814d4149e0316541476ea603602" - integrity sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ== +"@rollup/rollup-win32-x64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" + integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== "@socket.io/component-emitter@~3.1.0": version "3.1.0" @@ -333,9 +333,9 @@ integrity sha512-SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg== "@tanstack/vue-virtual@^3.0.0-beta.60": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.0.1.tgz#ca96c169d3c66de3e6eef638a06c74275d77c619" - integrity sha512-85Cyi8m7h1xzGB2FyXMurPVFOZvatycVU7OfhQ8QFk27E4tQ7ISNfYEMrakTTaE0ZyNsKRFlAzHuwL1Bv1vuMw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.0.2.tgz#8f78b0ce20f8429b4529ca6bc2a89c6ab5547963" + integrity sha512-1iFpX+yZswHuf4wrA6GU9yJ/YzQ/8SacABwqghwCkcwrkZbOPLlRSdOAqZ1WQ50SftmfhZpaiZl2KmpV7cgfMQ== dependencies: "@tanstack/virtual-core" "3.0.0" @@ -577,11 +577,28 @@ "@tiptap/extension-bubble-menu" "^2.1.16" "@tiptap/extension-floating-menu" "^2.1.16" +"@types/bluebird@*": + version "3.5.42" + resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.42.tgz#7ec05f1ce9986d920313c1377a5662b1b563d366" + integrity sha512-Jhy+MWRlro6UjVi578V/4ZGNfeCOcNCp0YaFNIUGFKlImowqwb1O/22wDVk3FDGMLqxdpOV3qQHD5fPEH4hK6A== + +"@types/caseless@*": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" + integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== + "@types/estree@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/node@*": + version "20.11.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e" + integrity sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w== + dependencies: + undici-types "~5.26.4" + "@types/object.omit@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/object.omit/-/object.omit-3.0.3.tgz#cc52b1d9774c1619b5c6fc50229d087f01eabd68" @@ -592,11 +609,34 @@ resolved "https://registry.yarnpkg.com/@types/object.pick/-/object.pick-1.3.4.tgz#1a38b6e69a35f36ec2dcc8b9f5ffd555c1c4d7fc" integrity sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA== +"@types/request-promise@^4.1.48": + version "4.1.51" + resolved "https://registry.yarnpkg.com/@types/request-promise/-/request-promise-4.1.51.tgz#a6bb43289569de84055073757d37a8fd6146bfe3" + integrity sha512-qVcP9Fuzh9oaAh8oPxiSoWMFGnWKkJDknnij66vi09Yiy62bsSDqtd+fG5kIM9wLLgZsRP3Y6acqj9O/v2ZtRw== + dependencies: + "@types/bluebird" "*" + "@types/request" "*" + +"@types/request@*": + version "2.48.12" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30" + integrity sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw== + dependencies: + "@types/caseless" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + form-data "^2.5.0" + "@types/throttle-debounce@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + "@types/web-bluetooth@^0.0.20": version "0.0.20" resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" @@ -607,89 +647,89 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz#966a6279060eb2d9d1a02ea1a331af071afdcf9e" integrity sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg== -"@vue/compiler-core@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.13.tgz#49f499034c25b0832845028ea3cd701fe5a17367" - integrity sha512-zGUdmB3j3Irn9z51GXLJ5s0EAHxmsm5/eXl0y6MBaajMeOAaiT4+zaDoxui4Ets98dwIRr8BBaqXXHtHSfm+KA== +"@vue/compiler-core@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e" + integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== dependencies: "@babel/parser" "^7.23.6" - "@vue/shared" "3.4.13" + "@vue/shared" "3.4.15" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-dom@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.13.tgz#66a80a6ee412a3d32b7175a146b75d9ec3d1c50c" - integrity sha512-XSNbpr5Rs3kCfVAmBqMu/HDwOS+RL6y28ZZjDlnDUuf146pRWt2sQkwhsOYc9uu2lxjjJy2NcyOkK7MBLVEc7w== +"@vue/compiler-dom@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5" + integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== dependencies: - "@vue/compiler-core" "3.4.13" - "@vue/shared" "3.4.13" + "@vue/compiler-core" "3.4.15" + "@vue/shared" "3.4.15" -"@vue/compiler-sfc@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.13.tgz#0f5f6db0e64f522c09995585453ae5f13ba54c60" - integrity sha512-SkpmQN8xIFBd5onT413DFSDdjxULJf6jmJg/t3w/DZ9I8ZzyNlLIBLO0qFLewVHyHCiAgpPZlWqSRZXYrawk3Q== +"@vue/compiler-sfc@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b" + integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== dependencies: "@babel/parser" "^7.23.6" - "@vue/compiler-core" "3.4.13" - "@vue/compiler-dom" "3.4.13" - "@vue/compiler-ssr" "3.4.13" - "@vue/shared" "3.4.13" + "@vue/compiler-core" "3.4.15" + "@vue/compiler-dom" "3.4.15" + "@vue/compiler-ssr" "3.4.15" + "@vue/shared" "3.4.15" estree-walker "^2.0.2" magic-string "^0.30.5" - postcss "^8.4.32" + postcss "^8.4.33" source-map-js "^1.0.2" -"@vue/compiler-ssr@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.13.tgz#90fa9a4116f7974d7a4e43a8a67f3fc162e8720f" - integrity sha512-rwnw9SVBgD6eGKh8UucnwztieQo/R3RQrEGpE0b0cxb2xxvJeLs/fe7DoYlhEfaSyzM/qD5odkK87hl3G3oW+A== +"@vue/compiler-ssr@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf" + integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== dependencies: - "@vue/compiler-dom" "3.4.13" - "@vue/shared" "3.4.13" + "@vue/compiler-dom" "3.4.15" + "@vue/shared" "3.4.15" "@vue/devtools-api@^6.5.0": version "6.5.1" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== -"@vue/reactivity@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.13.tgz#7eeeb9d598512f66e06a6438fd53464014b5ae59" - integrity sha512-/ZdUOrGKkGVONzVJkfDqNcn2fLMvaa5VlYx2KwTbnRbX06YZ4GJE0PVTmWzIxtBYdpSTLLXgw3pDggO+96KXzg== +"@vue/reactivity@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1" + integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== dependencies: - "@vue/shared" "3.4.13" + "@vue/shared" "3.4.15" -"@vue/runtime-core@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.13.tgz#776cad7c1d56ec5e92a48e040c8483b89f779542" - integrity sha512-Ov4d4At7z3goxqzSqQxdfVYEcN5HY4dM1uDYL6Hu/Es9Za9BEN602zyjWhhi2+BEki5F9NizRSvn02k/tqNWlg== +"@vue/runtime-core@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0" + integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== dependencies: - "@vue/reactivity" "3.4.13" - "@vue/shared" "3.4.13" + "@vue/reactivity" "3.4.15" + "@vue/shared" "3.4.15" -"@vue/runtime-dom@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.13.tgz#74aff1494bee49c037b9c5355d8998c793ac0977" - integrity sha512-ynde9p16eEV3u1VCxUre2e0nKzD0l3NzH0r599+bXeLT1Yhac8Atcot3iL9XNqwolxYCI89KBII+2MSVzfrz6w== +"@vue/runtime-dom@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406" + integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== dependencies: - "@vue/runtime-core" "3.4.13" - "@vue/shared" "3.4.13" + "@vue/runtime-core" "3.4.15" + "@vue/shared" "3.4.15" csstype "^3.1.3" -"@vue/server-renderer@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.13.tgz#b8c9cfb2147c0a01feba7f136d3a432848dafcab" - integrity sha512-hkw+UQyDZZtSn1q30nObMfc8beVEQv2pG08nghigxGw+iOWodR+tWSuJak0mzWAHlP/xt/qLc//dG6igfgvGEA== +"@vue/server-renderer@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f" + integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== dependencies: - "@vue/compiler-ssr" "3.4.13" - "@vue/shared" "3.4.13" + "@vue/compiler-ssr" "3.4.15" + "@vue/shared" "3.4.15" -"@vue/shared@3.4.13": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.13.tgz#a1eefce5ddffe207d53eafbc07f4ebbea0a4768a" - integrity sha512-56crFKLPpzk85WXX1L1c0QzPOuoapWlPVys8eMG8kkRmqdMjWUqK8KpFdE2d7BQA4CEbXwyyHPq6MpFr8H9rcg== +"@vue/shared@3.4.15": + version "3.4.15" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30" + integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== "@vueuse/core@^10.4.1": version "10.7.2" @@ -713,6 +753,16 @@ dependencies: vue-demi ">=0.14.6" +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -758,28 +808,72 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -autoprefixer@^10.4.2: - version "10.4.16" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" - integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: - browserslist "^4.21.10" - caniuse-lite "^1.0.30001538" - fraction.js "^4.3.6" + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +autoprefixer@^10.4.2: + version "10.4.17" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.17.tgz#35cd5695cbbe82f536a50fa025d561b01fdec8be" + integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg== + dependencies: + browserslist "^4.22.2" + caniuse-lite "^1.0.30001578" + fraction.js "^4.3.7" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + brace-expansion@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" @@ -794,7 +888,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.10: +browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -809,16 +903,21 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: - version "1.0.30001576" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" - integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== +caniuse-lite@^1.0.30001565, caniuse-lite@^1.0.30001578: + version "1.0.30001579" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz#45c065216110f46d6274311a4b3fcf6278e0852a" + integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== case-anything@^2.1.13: version "2.1.13" resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.13.tgz#0cdc16278cb29a7fcdeb072400da3f342ba329e9" integrity sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -851,6 +950,13 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + commander@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -862,9 +968,14 @@ commander@^9.0.0: integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== core-js@^3.1.3: - version "3.35.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4" - integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg== + version "3.35.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.1.tgz#9c28f8b7ccee482796f8590cc8d15739eaaf980c" + integrity sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== crelt@^1.0.0: version "1.0.6" @@ -895,6 +1006,13 @@ dash-get@^1.0.2: resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c" integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + dayjs@^1.11.6: version "1.11.10" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" @@ -912,6 +1030,11 @@ deepmerge@^4.3.1: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" @@ -927,10 +1050,18 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + electron-to-chromium@^1.4.601: - version "1.4.630" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz#1d9f4169653784997bec98975e11a2c05214ce39" - integrity sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg== + version "1.4.640" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.640.tgz#76290a36fa4b5f1f4cadaf1fc582478ebb3ac246" + integrity sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA== emoji-regex@^8.0.0: version "8.0.0" @@ -1007,7 +1138,22 @@ estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -fast-deep-equal@^3.1.3: +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -1023,6 +1169,11 @@ fast-glob@^3.3.0: merge2 "^1.3.0" micromatch "^4.0.4" +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + fastq@^1.6.0: version "1.16.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" @@ -1053,15 +1204,38 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -fraction.js@^4.3.6: +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fraction.js@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== frappe-ui@^0.1.22: - version "0.1.23" - resolved "https://registry.yarnpkg.com/frappe-ui/-/frappe-ui-0.1.23.tgz#576b4494b296a9a942f85c284a0ea008bd7a3822" - integrity sha512-JPCLdv7NE3H5aEBFE3hmv02NTKsX3E5og9JRzUdwntBDqrYDSqKfi+5NABDue4yF5RnmjcGMAm+uqObE4IMfXg== + version "0.1.24" + resolved "https://registry.yarnpkg.com/frappe-ui/-/frappe-ui-0.1.24.tgz#145318a7709e1ff69b33f7f3798345708d978307" + integrity sha512-sCNReFdjla43AijGUZWCElEQYoVsob72XhcWwg43EqpKnrT1nLyiHcZxGMgIPNfm4uCEPZ5WldVGPcIype14Ug== dependencies: "@headlessui/vue" "^1.7.14" "@popperjs/core" "^2.11.2" @@ -1101,6 +1275,13 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -1126,6 +1307,19 @@ glob@^10.3.10: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + hasown@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" @@ -1133,6 +1327,15 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + idb-keyval@^6.2.0: version "6.2.1" resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" @@ -1188,6 +1391,11 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -1198,6 +1406,11 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + jackspeak@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" @@ -1212,6 +1425,36 @@ jiti@^1.19.1: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -1254,6 +1497,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash@^4.17.19: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + "lru-cache@^9.1.1 || ^10.0.0": version "10.1.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" @@ -1306,6 +1554,18 @@ micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + mini-svg-data-uri@^1.2.3: version "1.4.4" resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" @@ -1357,6 +1617,11 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -1404,6 +1669,11 @@ path-scurry@^1.10.1: lru-cache "^9.1.1 || ^10.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -1484,7 +1754,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23, postcss@^8.4.32, postcss@^8.4.5: +postcss@^8.4.23, postcss@^8.4.32, postcss@^8.4.33, postcss@^8.4.5: version "8.4.33" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== @@ -1493,6 +1763,13 @@ postcss@^8.4.23, postcss@^8.4.32, postcss@^8.4.5: picocolors "^1.0.0" source-map-js "^1.0.2" +promise@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + prosemirror-changeset@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383" @@ -1647,16 +1924,42 @@ prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, pros prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + punycode.js@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +razorpay@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/razorpay/-/razorpay-2.9.2.tgz#95c62631abf3c8aa346c0582fb1a046f338d7927" + integrity sha512-FMtt7FKnwt65WSocGlWGdwTCt7JyeiTK1ej8nHPl78R0BmJ13A57F1DtWVbpnghIfUa++4TD7+bRzq0YbOK8hw== + dependencies: + "@types/request-promise" "^4.1.48" + promise "^8.1.0" + request "^2.88.0" + request-promise "^4.2.6" + typescript "^4.9.4" + read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -1671,6 +1974,49 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise@^4.2.6: + version "4.2.6" + resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.6.tgz#7e7e5b9578630e6f598e3813c0f8eb342a27f0a2" + integrity sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ== + dependencies: + bluebird "^3.5.0" + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + resolve@^1.1.7, resolve@^1.22.2: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" @@ -1686,25 +2032,25 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rollup@^4.2.0: - version "4.9.5" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.5.tgz#62999462c90f4c8b5d7c38fc7161e63b29101b05" - integrity sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ== + version "4.9.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" + integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.5" - "@rollup/rollup-android-arm64" "4.9.5" - "@rollup/rollup-darwin-arm64" "4.9.5" - "@rollup/rollup-darwin-x64" "4.9.5" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.5" - "@rollup/rollup-linux-arm64-gnu" "4.9.5" - "@rollup/rollup-linux-arm64-musl" "4.9.5" - "@rollup/rollup-linux-riscv64-gnu" "4.9.5" - "@rollup/rollup-linux-x64-gnu" "4.9.5" - "@rollup/rollup-linux-x64-musl" "4.9.5" - "@rollup/rollup-win32-arm64-msvc" "4.9.5" - "@rollup/rollup-win32-ia32-msvc" "4.9.5" - "@rollup/rollup-win32-x64-msvc" "4.9.5" + "@rollup/rollup-android-arm-eabi" "4.9.6" + "@rollup/rollup-android-arm64" "4.9.6" + "@rollup/rollup-darwin-arm64" "4.9.6" + "@rollup/rollup-darwin-x64" "4.9.6" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" + "@rollup/rollup-linux-arm64-gnu" "4.9.6" + "@rollup/rollup-linux-arm64-musl" "4.9.6" + "@rollup/rollup-linux-riscv64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-musl" "4.9.6" + "@rollup/rollup-win32-arm64-msvc" "4.9.6" + "@rollup/rollup-win32-ia32-msvc" "4.9.6" + "@rollup/rollup-win32-x64-msvc" "4.9.6" fsevents "~2.3.2" rope-sequence@^1.3.0: @@ -1719,6 +2065,16 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -1766,6 +2122,26 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: name string-width-cjs version "4.2.3" @@ -1879,21 +2255,51 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + type-fest@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== +typescript@^4.9.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + uc.micro@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.0.0.tgz#84b3c335c12b1497fd9e80fcd3bfa7634c363ff1" integrity sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -1902,15 +2308,36 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vite@^5.0.11: - version "5.0.11" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.11.tgz#31562e41e004cb68e1d51f5d2c641ab313b289e4" - integrity sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA== + version "5.0.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" + integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== dependencies: esbuild "^0.19.3" postcss "^8.4.32" @@ -1936,15 +2363,15 @@ vue-router@^4.0.12: "@vue/devtools-api" "^6.5.0" vue@^3.2.25: - version "3.4.13" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.13.tgz#aa522baf2344d1c4c54c769f66c0151f1872f1ff" - integrity sha512-FE3UZ0p+oUZTwz+SzlH/hDFg+XsVRFvwmx0LXjdD1pRK/cO4fu5v6ltAZji4za4IBih3dV78elUK3di8v3pWIg== + version "3.4.15" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c" + integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== dependencies: - "@vue/compiler-dom" "3.4.13" - "@vue/compiler-sfc" "3.4.13" - "@vue/runtime-dom" "3.4.13" - "@vue/server-renderer" "3.4.13" - "@vue/shared" "3.4.13" + "@vue/compiler-dom" "3.4.15" + "@vue/compiler-sfc" "3.4.15" + "@vue/runtime-dom" "3.4.15" + "@vue/server-renderer" "3.4.15" + "@vue/shared" "3.4.15" w3c-keyname@^2.2.0: version "2.2.8" diff --git a/lms/lms/api.py b/lms/lms/api.py index e09f0848..ed0b6515 100644 --- a/lms/lms/api.py +++ b/lms/lms/api.py @@ -170,6 +170,7 @@ def get_translations(): def validate_billing_access(type, name): access = True message = "" + doctype = "LMS Course" if type == "course" else "LMS Batch" if frappe.session.user == "Guest": access = False @@ -179,7 +180,7 @@ def validate_billing_access(type, name): access = False message = _("Module is incorrect.") - if not frappe.db.exists(type, name): + if not frappe.db.exists(doctype, name): access = False message = _("Module Name is incorrect or does not exist.") @@ -199,4 +200,21 @@ def validate_billing_access(type, name): access = False message = _("You are already enrolled for this batch.") - return {"access": access, "message": message} + address = frappe.db.get_value( + "Address", + {"email_id": frappe.session.user}, + [ + "name", + "address_title as billing_name", + "address_line1", + "address_line2", + "city", + "state", + "country", + "pincode", + "phone", + ], + as_dict=1, + ) + + return {"access": access, "message": message, "address": address} diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 92c7e49f..5c676eeb 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -972,15 +972,15 @@ def check_multicurrency(amount, currency, country=None, amount_usd=None): def apply_gst(amount, country=None): - gst_applied = False + gst_applied = 0 apply_gst = frappe.db.get_single_value("LMS Settings", "apply_gst") if not country: country = frappe.db.get_value("User", frappe.session.user, "country") if apply_gst and country == "India": - gst_applied = True - amount = amount * 1.18 + gst_applied = amount * 0.18 + amount += gst_applied return amount, gst_applied @@ -1062,7 +1062,6 @@ def create_order(client, amount, currency): @frappe.whitelist() def verify_payment(response, doctype, docname, address, order_id): - response = json.loads(response) client = get_client() client.utility.verify_payment_signature( { @@ -1080,7 +1079,7 @@ def verify_payment(response, doctype, docname, address, order_id): def record_payment(address, response, client, doctype, docname): - address = frappe._dict(json.loads(address)) + address = frappe._dict(address) address_name = save_address(address) payment_details = get_payment_details(doctype, docname, address) @@ -1131,7 +1130,7 @@ def create_membership(course, payment): {"member": frappe.session.user, "course": course, "payment": payment.name} ) membership.save(ignore_permissions=True) - return f"/courses/{course}/learn/1.1" + return f"/courses/{course}/learn/1-1" def add_student_to_batch(batchname, payment): @@ -1680,3 +1679,40 @@ def get_discussion_replies(topic): ) return replies + + +@frappe.whitelist() +def get_order_summary(doctype, docname, country=None): + if doctype == "LMS Course": + details = frappe.db.get_value( + "LMS Course", + docname, + ["title", "name", "paid_course", "course_price as amount", "currency", "amount_usd"], + as_dict=True, + ) + + if not details.paid_course: + raise frappe.throw(_("This course is free.")) + + else: + details = frappe.db.get_value( + "LMS Batch", + docname, + ["title", "name", "paid_batch", "amount", "currency", "amount_usd"], + as_dict=True, + ) + + if not details.paid_batch: + raise frappe.throw(_("To join this batch, please contact the Administrator.")) + + details.amount, details.currency = check_multicurrency( + details.amount, details.currency, country, details.amount_usd + ) + details.original_amount_formatted = fmt_money(details.amount, 0, details.currency) + + if details.currency == "INR": + details.amount, details.gst_applied = apply_gst(details.amount) + details.gst_amount_formatted = fmt_money(details.gst_applied, 0, details.currency) + + details.total_amount_formatted = fmt_money(details.amount, 0, details.currency) + return details diff --git a/lms/public/frontend/assets/Batch--wtfybfQ.js b/lms/public/frontend/assets/Batch--wtfybfQ.js new file mode 100644 index 00000000..ef004bee --- /dev/null +++ b/lms/public/frontend/assets/Batch--wtfybfQ.js @@ -0,0 +1,2700 @@ +var ce = Object.defineProperty; +var W = Object.getOwnPropertySymbols; +var me = Object.prototype.hasOwnProperty, + _e = Object.prototype.propertyIsEnumerable; +var K = (c, y, l) => + y in c + ? ce(c, y, { + enumerable: !0, + configurable: !0, + writable: !0, + value: l, + }) + : (c[y] = l), + R = (c, y) => { + for (var l in y || (y = {})) me.call(y, l) && K(c, l, y[l]); + if (W) for (var l of W(y)) _e.call(y, l) && K(c, l, y[l]); + return c; + }; +var X = (c, y, l) => + new Promise((p, f) => { + var a = (u) => { + try { + m(l.next(u)); + } catch (_) { + f(_); + } + }, + s = (u) => { + try { + m(l.throw(u)); + } catch (_) { + f(_); + } + }, + m = (u) => + u.done ? p(u.value) : Promise.resolve(u.value).then(a, s); + m((l = l.apply(c, y)).next()); + }); +import { + aa as I, + a as S, + ab as A, + b as F, + k as M, + w as ee, + x as i, + A as V, + B as v, + H as r, + J as t, + ak as H, + G as e, + F as n, + al as oe, + Q as L, + C as O, + y as b, + R as U, + I as C, + D as q, + r as T, + U as D, + a7 as j, + c as Z, + ae as le, + am as Y, + T as te, + ac as pe, + a5 as ne, + an as he, + ao as be, + M as ie, + ap as ye, + aq as ve, + ar as fe, + as as de, + at as ge, + au as ke, + j as se, + W as xe, + a6 as $e, + a8 as Ve, + a9 as Ce, +} from "./frappe-ui-iPT8hMkb.js"; +import { + a as w, + f as E, + c as z, + g as Se, + t as Me, + B as we, +} from "./index-qZ7Yta4u.js"; +import { _ as Le } from "./CourseCard-1i2yp1tI.js"; +import { C as J, a as G } from "./clock-z0R6Od6V.js"; +import { P as re } from "./plus-_m-8cMp1.js"; +import { _ as De } from "./Link-4jJRdvJb.js"; +import { _ as je } from "./Discussions-0iopHFAD.js"; +import { B as Ae } from "./book-open-check-5hpjM2tX.js"; +import "./UserAvatar-nJqmkBPv.js"; +import "./star-xishKgdq.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 Ue = w("Contact2Icon", [ + ["path", { d: "M16 18a4 4 0 0 0-8 0", key: "1lzouq" }], + ["circle", { cx: "12", cy: "11", r: "3", key: "itu57m" }], + [ + "rect", + { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }, + ], + ["line", { x1: "8", x2: "8", y1: "2", y2: "4", key: "1ff9gb" }], + ["line", { x1: "16", x2: "16", y1: "2", y2: "4", key: "1ufoma" }], +]); +/** + * @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 ae = w("InfoIcon", [ + ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }], + ["path", { d: "M12 16v-4", key: "1dtifu" }], + ["path", { d: "M12 8h.01", key: "e9boi3" }], +]); +/** + * @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 Be = w("LaptopIcon", [ + [ + "path", + { + d: "M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16", + key: "tarvll", + }, + ], +]); +/** + * @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 Te = w("LayoutDashboardIcon", [ + [ + "rect", + { width: "7", height: "9", x: "3", y: "3", rx: "1", key: "10lvy0" }, + ], + [ + "rect", + { width: "7", height: "5", x: "14", y: "3", rx: "1", key: "16une8" }, + ], + [ + "rect", + { width: "7", height: "9", x: "14", y: "12", rx: "1", key: "1hutg5" }, + ], + [ + "rect", + { width: "7", height: "5", x: "3", y: "16", rx: "1", key: "ldoo1y" }, + ], +]); +/** + * @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 Ee = w("MailIcon", [ + [ + "rect", + { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }, + ], + ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }], +]); +/** + * @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 Ne = w("MessageCircleIcon", [ + ["path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z", key: "vv11sd" }], +]); +/** + * @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 Pe = w("MonitorIcon", [ + [ + "rect", + { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }, + ], + ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }], + ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }], +]); +/** + * @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 Ye = w("SendIcon", [ + ["path", { d: "m22 2-7 20-4-9-9-4Z", key: "1q3vgg" }], + ["path", { d: "M22 2 11 13", key: "nzbqef" }], +]); +/** + * @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 ze = w("Trash2Icon", [ + ["path", { d: "M3 6h18", key: "d0wm0j" }], + ["path", { d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", key: "4alrt4" }], + ["path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", key: "v07s0e" }], + ["line", { x1: "10", x2: "10", y1: "11", y2: "17", key: "1uufr5" }], + ["line", { x1: "14", x2: "14", y1: "11", y2: "17", key: "xtxkd" }], +]); +/** + * @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 Ie = w("UserRoundCogIcon", [ + ["path", { d: "M2 21a8 8 0 0 1 10.434-7.62", key: "1yezr2" }], + ["circle", { cx: "10", cy: "8", r: "5", key: "o932ke" }], + ["circle", { cx: "18", cy: "18", r: "3", key: "1xkwt0" }], + ["path", { d: "m19.5 14.3-.4.9", key: "1eb35c" }], + ["path", { d: "m16.9 20.8-.4.9", key: "dfjc4z" }], + ["path", { d: "m21.7 19.5-.9-.4", key: "q4dx6b" }], + ["path", { d: "m15.2 16.9-.9-.4", key: "1r0w5f" }], + ["path", { d: "m21.7 16.5-.9.4", key: "1knoei" }], + ["path", { d: "m15.2 19.1-.9.4", key: "j188fs" }], + ["path", { d: "m19.5 21.7-.4-.9", key: "1tonu5" }], + ["path", { d: "m16.9 15.2-.4-.9", key: "699xu" }], +]); +/** + * @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 qe = w("VideoIcon", [ + ["path", { d: "m22 8-6 4 6 4V8Z", key: "50v9me" }], + [ + "rect", + { + width: "14", + height: "12", + x: "2", + y: "6", + rx: "2", + ry: "2", + key: "1rqjg6", + }, + ], + ]), + Re = { class: "flex flex-col gap-4" }, + He = { class: "mb-1.5 text-sm text-gray-600" }, + Oe = { class: "mb-1.5 text-sm text-gray-600" }, + Fe = { key: 0 }, + Ze = { class: "mb-1.5 text-sm text-gray-600" }, + Je = { class: "grid grid-cols-2 gap-2" }, + Ge = ["onClick"], + Qe = { + __name: "EvaluationModal", + props: I( + { + courses: { type: Array, default: [] }, + batch: { type: String, default: null }, + endDate: { type: String, default: null }, + }, + { + modelValue: {}, + modelModifiers: {}, + reloadEvals: {}, + reloadEvalsModifiers: {}, + } + ), + emits: ["update:modelValue", "update:reloadEvals"], + setup(c) { + const y = S("$user"), + l = S("$dayjs"), + p = A(c, "modelValue"), + f = A(c, "reloadEvals"), + a = c; + let s = F({ + course: "", + date: "", + start_time: "", + end_time: "", + day: "", + batch: a.batch, + member: y.data.name, + }); + const m = M({ + url: "frappe.client.insert", + makeParams(o) { + return { + doc: R( + { + doctype: "LMS Certificate Request", + batch_name: o.batch, + }, + o + ), + }; + }, + }); + function u(o) { + m.submit(s, { + validate() { + if (!s.course) return "Please select a course."; + if (!s.date) return "Please select a date."; + if (!s.start_time) return "Please select a slot."; + if (l(s.date).isSameOrBefore(l(), "day")) + return "Please select a future date."; + if (l(s.date).isAfter(l(a.endDate), "day")) + return `Please select a date before the end date ${l( + a.endDate + ).format("DD MMMM YYYY")}.`; + }, + onSuccess() { + f.value.reload(), o(); + }, + onError(h) { + var d; + z({ + title: "Error", + text: + ((d = h.messages) == null ? void 0 : d[0]) || h, + icon: "x", + iconClasses: + "bg-red-600 text-white rounded-md p-px", + position: "top-center", + timeout: 10, + }); + }, + }); + } + const _ = () => { + let o = []; + for (const h of a.courses) + o.push({ label: h.title, value: h.course }); + return o; + }, + g = M({ + url: "lms.lms.doctype.course_evaluator.course_evaluator.get_schedule", + makeParams(o) { + return { + course: o.course, + date: o.date, + batch: a.batch, + }; + }, + }); + ee( + () => s.date, + (o) => { + (s.start_time = ""), o && g.submit(s); + } + ), + ee( + () => s.course, + (o) => { + (s.date = ""), (s.start_time = ""), g.reset(); + } + ); + const k = (o) => { + (s.start_time = o.start_time), + (s.end_time = o.end_time), + (s.day = o.day); + }; + return (o, h) => ( + i(), + V( + e(q), + { + modelValue: p.value, + "onUpdate:modelValue": + h[2] || (h[2] = (d) => (p.value = d)), + options: { + title: o.__("Schedule Evaluation"), + size: "xl", + actions: [ + { + label: "Submit", + variant: "solid", + onClick: (d) => u(d), + }, + ], + }, + }, + { + "body-content": v(() => [ + t("div", Re, [ + t("div", null, [ + t("div", He, r(o.__("Course")), 1), + n( + e(H), + { + modelValue: e(s).course, + "onUpdate:modelValue": + h[0] || + (h[0] = (d) => + (e(s).course = d)), + options: _(), + }, + null, + 8, + ["modelValue", "options"] + ), + ]), + t("div", null, [ + t("div", Oe, r(o.__("Date")), 1), + n( + e(oe), + { + modelValue: e(s).date, + "onUpdate:modelValue": + h[1] || + (h[1] = (d) => (e(s).date = d)), + }, + null, + 8, + ["modelValue"] + ), + ]), + e(g).data + ? (i(), + b("div", Fe, [ + t( + "div", + Ze, + r(o.__("Select a slot")), + 1 + ), + t("div", Je, [ + (i(!0), + b( + L, + null, + U( + e(g).data, + (d) => ( + i(), + b("div", null, [ + t( + "div", + { + class: O( + [ + "text-base text-center border rounded-md bg-gray-200 p-2 cursor-pointer", + { + "border-gray-900": + e( + s + ) + .start_time == + d.start_time, + }, + ] + ), + onClick: + ( + $ + ) => + k( + d + ), + }, + r( + e(E)( + d.start_time + ) + ) + + " - " + + r( + e( + E + )( + d.end_time + ) + ), + 11, + Ge + ), + ]) + ) + ), + 256 + )), + ]), + ])) + : C("", !0), + ]), + ]), + _: 1, + }, + 8, + ["modelValue", "options"] + ) + ); + }, + }, + We = { class: "mb-10" }, + Ke = { class: "text-lg font-semibold mb-4" }, + Xe = { key: 1 }, + et = { class: "grid grid-cols-2 gap-4" }, + tt = { class: "border rounded-md p-3" }, + st = { class: "font-medium mb-3" }, + at = { class: "flex items-center mb-2" }, + ot = { class: "ml-2" }, + lt = { class: "flex items-center mb-2" }, + nt = { class: "ml-2" }, + it = { class: "flex items-center" }, + dt = { class: "ml-2 font-medium" }, + rt = { key: 2, class: "text-sm italic text-gray-600" }, + ut = { + __name: "UpcomingEvaluations", + props: { + batch: { type: String, default: null }, + courses: { type: Array, default: [] }, + isStudent: { type: Boolean, default: !1 }, + endDate: { type: String, default: null }, + }, + setup(c) { + const y = S("$dayjs"), + l = S("$user"), + p = T(!1), + f = c, + a = M({ + url: "lms.lms.utils.get_upcoming_evals", + cache: ["upcoming_evals", l.data.name], + params: { + student: l.data.name, + courses: f.courses.map((m) => m.course), + }, + auto: !0, + }); + function s() { + p.value = !0; + } + return (m, u) => ( + i(), + b( + L, + null, + [ + t("div", We, [ + c.isStudent + ? (i(), + V( + e(j), + { + key: 0, + onClick: s, + class: "float-right", + }, + { + default: v(() => [ + D( + r( + m.__( + "Schedule Evaluation" + ) + ), + 1 + ), + ]), + _: 1, + } + )) + : C("", !0), + t("div", Ke, r(m.__("Upcoming Evaluations")), 1), + e(a).data + ? (i(), + b("div", Xe, [ + t("div", et, [ + (i(!0), + b( + L, + null, + U( + e(a).data, + (_) => ( + i(), + b("div", null, [ + t("div", tt, [ + t( + "div", + st, + r( + _.course_title + ), + 1 + ), + t("div", at, [ + n(e(J), { + class: "w-4 h-4 stroke-1.5", + }), + t( + "span", + ot, + r( + e( + y + )( + _.date + ).format( + "DD MMMM YYYY" + ) + ), + 1 + ), + ]), + t("div", lt, [ + n(e(G), { + class: "w-4 h-4 stroke-1.5", + }), + t( + "span", + nt, + r( + e( + E + )( + _.start_time + ) + ), + 1 + ), + ]), + t("div", it, [ + n(e(Ie), { + class: "w-4 h-4 stroke-1.5", + }), + t( + "span", + dt, + r( + _.evaluator_name + ), + 1 + ), + ]), + ]), + ]) + ) + ), + 256 + )), + ]), + ])) + : (i(), + b( + "div", + rt, + r(m.__("No upcoming evaluations.")), + 1 + )), + ]), + n( + Qe, + { + batch: c.batch, + endDate: c.endDate, + courses: c.courses, + modelValue: p.value, + "onUpdate:modelValue": + u[0] || (u[0] = (_) => (p.value = _)), + reloadEvals: e(a), + "onUpdate:reloadEvals": + u[1] || + (u[1] = (_) => + Z(a) ? (a.value = _) : null), + }, + null, + 8, + [ + "batch", + "endDate", + "courses", + "modelValue", + "reloadEvals", + ] + ), + ], + 64 + ) + ); + }, + }, + ct = { class: "text-lg font-semibold mb-4" }, + mt = { key: 0 }, + _t = { key: 1, class: "text-sm italic text-gray-600" }, + ue = { + __name: "Assessments", + props: { + batch: { type: String, required: !0 }, + rows: { type: Array }, + columns: { type: Array }, + options: { + type: Object, + default: () => ({ selectable: !0, totalCount: 0, rowCount: 0 }), + }, + }, + setup(c) { + const y = S("$user"), + p = M({ + url: "lms.lms.utils.get_assessments", + params: { batch: c.batch }, + auto: !0, + }), + f = () => { + var s; + let a = [ + { label: "Assessment", key: "title" }, + { label: "Type", key: "assessment_type" }, + ]; + return ( + ((s = y.data) != null && s.is_moderator) || + a.push({ + label: "Status/Score", + key: "status", + align: "center", + }), + a + ); + }; + return (a, s) => { + var m; + return ( + i(), + b("div", null, [ + t("div", ct, r(a.__("Assessments")), 1), + (m = e(p).data) != null && m.length + ? (i(), + b("div", mt, [ + n( + e(le), + { + columns: f(), + rows: e(p).data, + "row-key": "name", + options: { + selectable: !1, + showTooltip: !1, + }, + }, + null, + 8, + ["columns", "rows"] + ), + ])) + : (i(), b("div", _t, r(a.__("No Assessments")), 1)), + ]) + ); + }; + }, + }, + pt = { + __name: "BatchDashboard", + props: { + batch: { type: Object, default: null }, + isStudent: { type: Boolean, default: !1 }, + }, + setup(c) { + return (y, l) => ( + i(), + b("div", null, [ + n( + ut, + { + batch: c.batch.data.name, + endDate: c.batch.data.evaluation_end_date, + courses: c.batch.data.courses, + isStudent: c.isStudent, + }, + null, + 8, + ["batch", "endDate", "courses", "isStudent"] + ), + n(ue, { batch: c.batch.data.name }, null, 8, ["batch"]), + ]) + ); + }, + }, + ht = { class: "flex flex-col gap-4" }, + bt = { class: "grid grid-cols-2 gap-4" }, + yt = { class: "mb-4" }, + vt = { class: "mb-1.5 text-sm text-gray-600" }, + ft = { class: "mb-4" }, + gt = { class: "mb-1.5 text-sm text-gray-600" }, + kt = { class: "mb-1.5 text-sm text-gray-600" }, + xt = { class: "mb-4" }, + $t = { class: "mb-1.5 text-sm text-gray-600" }, + Vt = { class: "mb-4" }, + Ct = { class: "mb-1.5 text-sm text-gray-600" }, + St = { class: "mb-1.5 text-sm text-gray-600" }, + Mt = { class: "mb-1.5 text-sm text-gray-600" }, + wt = { + __name: "LiveClassModal", + props: I( + { batch: { type: String, default: null } }, + { + reloadLiveClasses: {}, + reloadLiveClassesModifiers: {}, + modelValue: {}, + modelModifiers: {}, + } + ), + emits: ["update:reloadLiveClasses", "update:modelValue"], + setup(c) { + const y = A(c, "reloadLiveClasses"), + l = A(c, "modelValue"), + p = S("$user"), + f = S("$dayjs"); + let s = F({ + title: "", + description: "", + date: "", + time: "", + duration: "", + timezone: "", + auto_recording: "No Recording", + batch: c.batch, + host: p.data.name, + }); + const m = () => Se().map((o) => ({ label: o, value: o })), + u = () => [ + { label: "No Recording", value: "No Recording" }, + { label: "Local", value: "Local" }, + { label: "Cloud", value: "Cloud" }, + ], + _ = M({ + url: "lms.lms.doctype.lms_batch.lms_batch.create_live_class", + makeParams(o) { + return R( + { doctype: "LMS Live Class", batch_name: o.batch }, + o + ); + }, + }), + g = (o) => { + _.submit(s, { + validate() { + if (!s.title) return "Please enter a title."; + if (!s.date) return "Please select a date."; + if (f(s.date).isSameOrBefore(f(), "day")) + return "Please select a future date."; + if (!s.time) return "Please select a time."; + if (!k()) + return "Please enter a valid time in the format HH:mm."; + if (!s.duration) return "Please select a duration."; + if (!s.timezone) return "Please select a timezone."; + }, + onSuccess() { + y.value.reload(), o(); + }, + onError(h) { + var d; + z({ + title: "Error", + text: + ((d = h.messages) == null + ? void 0 + : d[0]) || h, + icon: "x", + iconClasses: + "bg-red-600 text-white rounded-md p-px", + position: "top-center", + timeout: 10, + }); + }, + }); + }, + k = () => { + let o = s.time.split(":"); + return !( + o.length != 2 || + o[0] < 0 || + o[0] > 23 || + o[1] < 0 || + o[1] > 59 + ); + }; + return (o, h) => ( + i(), + V( + e(q), + { + modelValue: l.value, + "onUpdate:modelValue": + h[7] || (h[7] = (d) => (l.value = d)), + options: { + title: o.__("Create a Live Class"), + size: "xl", + actions: [ + { + label: "Submit", + variant: "solid", + onClick: (d) => g(d), + }, + ], + }, + }, + { + "body-content": v(() => [ + t("div", ht, [ + t("div", bt, [ + t("div", null, [ + t("div", yt, [ + t("div", vt, r(o.__("Title")), 1), + n( + e(Y), + { + type: "text", + modelValue: e(s).title, + "onUpdate:modelValue": + h[0] || + (h[0] = (d) => + (e(s).title = d)), + }, + null, + 8, + ["modelValue"] + ), + ]), + t("div", ft, [ + t("div", gt, [ + n( + e(te), + { + class: "flex items-center", + text: o.__( + "Time must be in 24 hour format (HH:mm). Example 11:30 or 22:00" + ), + }, + { + default: v(() => [ + t( + "span", + null, + r(o.__("Time")), + 1 + ), + n(e(ae), { + class: "stroke-2 w-3 h-3 ml-1", + }), + ]), + _: 1, + }, + 8, + ["text"] + ), + ]), + n( + e(Y), + { + modelValue: e(s).time, + "onUpdate:modelValue": + h[1] || + (h[1] = (d) => + (e(s).time = d)), + }, + null, + 8, + ["modelValue"] + ), + ]), + t("div", null, [ + t( + "div", + kt, + r(o.__("Timezone")), + 1 + ), + n( + e(H), + { + modelValue: e(s).timezone, + "onUpdate:modelValue": + h[2] || + (h[2] = (d) => + (e(s).timezone = + d)), + options: m(), + }, + null, + 8, + ["modelValue", "options"] + ), + ]), + ]), + t("div", null, [ + t("div", xt, [ + t("div", $t, r(o.__("Date")), 1), + n( + e(oe), + { + modelValue: e(s).date, + "onUpdate:modelValue": + h[3] || + (h[3] = (d) => + (e(s).date = d)), + inputClass: "w-full", + }, + null, + 8, + ["modelValue"] + ), + ]), + t("div", Vt, [ + t("div", Ct, [ + n( + e(te), + { + class: "flex items-center", + text: o.__( + "Duration of the live class in minutes" + ), + }, + { + default: v(() => [ + t( + "span", + null, + r( + o.__( + "Duration" + ) + ), + 1 + ), + n(e(ae), { + class: "stroke-2 w-3 h-3 ml-1", + }), + ]), + _: 1, + }, + 8, + ["text"] + ), + ]), + n( + e(Y), + { + type: "number", + modelValue: e(s).duration, + "onUpdate:modelValue": + h[4] || + (h[4] = (d) => + (e(s).duration = + d)), + }, + null, + 8, + ["modelValue"] + ), + ]), + t("div", null, [ + t( + "div", + St, + r(o.__("Auto Recording")), + 1 + ), + n( + e(H), + { + modelValue: + e(s).auto_recording, + "onUpdate:modelValue": + h[5] || + (h[5] = (d) => + (e( + s + ).auto_recording = + d)), + options: u(), + }, + null, + 8, + ["modelValue", "options"] + ), + ]), + ]), + ]), + t("div", null, [ + t("div", Mt, r(o.__("Description")), 1), + n( + e(pe), + { + modelValue: e(s).description, + "onUpdate:modelValue": + h[6] || + (h[6] = (d) => + (e(s).description = d)), + }, + null, + 8, + ["modelValue"] + ), + ]), + ]), + ]), + _: 1, + }, + 8, + ["modelValue", "options"] + ) + ); + }, + }, + Lt = { class: "text-lg font-semibold mb-4" }, + Dt = { key: 1, class: "grid grid-cols-2 gap-5" }, + jt = { class: "border rounded-md p-3" }, + At = { class: "font-semibold text-lg mb-4" }, + Ut = { class: "flex items-center mb-2" }, + Bt = { class: "ml-2" }, + Tt = { class: "flex items-center mb-5" }, + Et = { class: "ml-2" }, + Nt = { class: "mb-5" }, + Pt = { class: "flex items-center gap-2" }, + Yt = ["href"], + zt = ["href"], + It = { key: 2, class: "text-sm italic text-gray-600" }, + qt = { + __name: "LiveClass", + props: { batch: { type: String, required: !0 } }, + setup(c) { + const y = S("$user"), + l = T(!1), + p = S("$dayjs"), + f = c, + a = ne({ + doctype: "LMS Live Class", + filters: { batch: f.batchName, date: [">=", new Date()] }, + fields: [ + "title", + "description", + "time", + "date", + "start_url", + "join_url", + "owner", + ], + orderBy: "date", + auto: !0, + }), + s = () => { + l.value = !0; + }; + return (m, u) => { + var _; + return ( + i(), + b( + L, + null, + [ + e(y).data.is_moderator + ? (i(), + V( + e(j), + { + key: 0, + variant: "solid", + class: "float-right mb-3", + onClick: s, + }, + { + prefix: v(() => [ + n(e(re), { class: "h-4 w-4" }), + ]), + default: v(() => [ + t( + "span", + null, + r(m.__("Create")), + 1 + ), + ]), + _: 1, + } + )) + : C("", !0), + t("div", Lt, r(m.__("Live Class")), 1), + (_ = e(a).data) != null && _.length + ? (i(), + b("div", Dt, [ + (i(!0), + b( + L, + null, + U( + e(a).data, + (g) => ( + i(), + b("div", null, [ + t("div", jt, [ + t( + "div", + At, + r(g.title), + 1 + ), + t("div", Ut, [ + n(e(J), { + class: "w-4 h-4 stroke-1.5", + }), + t( + "span", + Bt, + r( + e(p)( + g.date + ).format( + "DD MMMM YYYY" + ) + ), + 1 + ), + ]), + t("div", Tt, [ + n(e(G), { + class: "w-4 h-4 stroke-1.5", + }), + t( + "span", + Et, + r( + e(E)( + g.time + ) + ), + 1 + ), + ]), + t( + "div", + Nt, + r( + g.description + ), + 1 + ), + t("div", Pt, [ + t( + "a", + { + href: g.start_url, + target: "_blank", + class: "w-1/2 cursor-pointer inline-flex items-center justify-center gap-2 transition-colors focus:outline-none text-gray-800 bg-gray-100 hover:bg-gray-200 active:bg-gray-300 focus-visible:ring focus-visible:ring-gray-400 h-7 text-base px-2 rounded", + }, + [ + n( + e( + Pe + ), + { + class: "h-4 w-4 stroke-1.5", + } + ), + D( + " " + + r( + m.__( + "Start" + ) + ), + 1 + ), + ], + 8, + Yt + ), + t( + "a", + { + href: g.join_url, + target: "_blank", + class: "w-1/2 cursor-pointer inline-flex items-center justify-center gap-2 transition-colors focus:outline-none text-gray-800 bg-gray-100 hover:bg-gray-200 active:bg-gray-300 focus-visible:ring focus-visible:ring-gray-400 h-7 text-base px-2 rounded", + }, + [ + n( + e( + qe + ), + { + class: "h-4 w-4 stroke-1.5", + } + ), + D( + " " + + r( + m.__( + "Join" + ) + ), + 1 + ), + ], + 8, + zt + ), + ]), + ]), + ]) + ) + ), + 256 + )), + ])) + : (i(), + b( + "div", + It, + r(m.__("No live classes scheduled")), + 1 + )), + n( + wt, + { + batch: f.batch, + modelValue: l.value, + "onUpdate:modelValue": + u[0] || (u[0] = (g) => (l.value = g)), + reloadLiveClasses: e(a), + "onUpdate:reloadLiveClasses": + u[1] || + (u[1] = (g) => + Z(a) ? (a.value = g) : null), + }, + null, + 8, + ["batch", "modelValue", "reloadLiveClasses"] + ), + ], + 64 + ) + ); + }; + }, + }, + Rt = { class: "flex flex-col gap-4" }, + Ht = { + __name: "StudentModal", + props: I( + { batch: { type: String, default: null } }, + { + reloadStudents: {}, + reloadStudentsModifiers: {}, + modelValue: {}, + modelModifiers: {}, + } + ), + emits: ["update:reloadStudents", "update:modelValue"], + setup(c) { + const y = A(c, "reloadStudents"), + l = T(), + p = A(c, "modelValue"), + f = c, + a = M({ + url: "frappe.client.insert", + makeParams(m) { + return { + doc: { + doctype: "Batch Student", + parent: f.batch, + parenttype: "LMS Batch", + parentfield: "students", + student: l.value, + }, + }; + }, + }), + s = (m) => { + a.submit( + {}, + { + onSuccess() { + y.value.reload(), m(), (l.value = null); + }, + } + ); + }; + return (m, u) => ( + i(), + V( + e(q), + { + modelValue: p.value, + "onUpdate:modelValue": + u[1] || (u[1] = (_) => (p.value = _)), + options: { + title: m.__("Add a Student"), + size: "xl", + actions: [ + { + label: "Submit", + variant: "solid", + onClick: (_) => s(_), + }, + ], + }, + }, + { + "body-content": v(() => [ + t("div", Rt, [ + n( + De, + { + doctype: "User", + modelValue: l.value, + "onUpdate:modelValue": + u[0] || + (u[0] = (_) => (l.value = _)), + filters: { ignore_user_type: 1 }, + }, + null, + 8, + ["modelValue"] + ), + ]), + ]), + _: 1, + }, + 8, + ["modelValue", "options"] + ) + ); + }, + }, + Ot = { class: "text-lg font-semibold mb-4" }, + Ft = { key: 0 }, + Zt = { key: 0 }, + Jt = { class: "flex gap-2" }, + Gt = { + __name: "BatchStudents", + props: { batch: { type: String, default: null } }, + setup(c) { + const y = T(!1), + l = c, + p = M({ + url: "lms.lms.utils.get_batch_students", + cache: ["students", l.batch], + params: { batch: l.batch }, + auto: !0, + }), + f = () => [ + { label: "Full Name", key: "full_name" }, + { + label: "Courses Done", + key: "courses_completed", + align: "center", + }, + { + label: "Assessments Done", + key: "assessments_completed", + align: "center", + }, + { label: "Last Active", key: "last_active" }, + ], + a = () => { + y.value = !0; + }, + s = M({ + url: "frappe.client.delete", + makeParams(u) { + return { doctype: "Batch Student", name: u.student }; + }, + }), + m = (u) => { + u.forEach((_) => + X(this, null, function* () { + console.log(_), + s.submit({ student: _ }), + yield setTimeout(1e3); + }) + ); + }; + return (u, _) => { + var g; + return ( + i(), + b( + L, + null, + [ + n( + e(j), + { + class: "float-right mb-3", + variant: "solid", + onClick: _[0] || (_[0] = (k) => a()), + }, + { + prefix: v(() => [ + n(e(re), { class: "h-4 w-4" }), + ]), + default: v(() => [ + D(" " + r(u.__("Add Student")), 1), + ]), + _: 1, + } + ), + t("div", Ot, r(u.__("Students")), 1), + (g = e(p).data) != null && g.length + ? (i(), + b("div", Ft, [ + n( + e(le), + { + columns: f(), + rows: e(p).data, + "row-key": "name", + options: { showTooltip: !1 }, + }, + { + default: v(() => [ + n( + e(he), + { + class: "mb-2 grid items-center space-x-4 rounded bg-gray-100 p-2", + }, + { + default: v(() => [ + (i(!0), + b( + L, + null, + U( + f(), + (k) => ( + i(), + V( + e( + be + ), + { + item: k, + }, + { + prefix: v( + ({ + item: o, + }) => [ + o.icon + ? (i(), + V( + ie( + o.icon + ), + { + key: 0, + class: "h-4 w-4 stroke-1.5 ml-4", + } + )) + : C( + "", + !0 + ), + ] + ), + _: 2, + }, + 1032, + [ + "item", + ] + ) + ) + ), + 256 + )), + ]), + _: 1, + } + ), + n(e(ye), null, { + default: v(() => [ + (i(!0), + b( + L, + null, + U( + e(p).data, + (k) => ( + i(), + V( + e( + ve + ), + { + row: k, + }, + { + default: + v( + ({ + column: o, + item: h, + }) => [ + n( + e( + fe + ), + { + item: k[ + o + .key + ], + align: o.align, + }, + { + prefix: v( + () => [ + o.key == + "full_name" + ? (i(), + b( + "div", + Zt, + [ + n( + e( + de + ), + { + class: "flex items-center", + image: k.user_image, + label: h, + size: "sm", + }, + null, + 8, + [ + "image", + "label", + ] + ), + ] + )) + : C( + "", + !0 + ), + ] + ), + default: + v( + () => [ + t( + "div", + null, + r( + k[ + o + .key + ] + ), + 1 + ), + ] + ), + _: 2, + }, + 1032, + [ + "item", + "align", + ] + ), + ] + ), + _: 2, + }, + 1032, + [ + "row", + ] + ) + ) + ), + 256 + )), + ]), + _: 1, + }), + n(e(ge), null, { + actions: v( + ({ + unselectAll: k, + selections: o, + }) => [ + t("div", Jt, [ + n( + e(j), + { + variant: + "ghost", + onClick: + ( + h + ) => + m( + o + ), + }, + { + default: + v( + () => [ + n( + e( + ze + ), + { + class: "h-4 w-4 stroke-1.5", + } + ), + ] + ), + _: 2, + }, + 1032, + [ + "onClick", + ] + ), + n( + e(j), + { + variant: + "ghost", + label: "Unselect all", + onClick: + ( + h + ) => + k.toString(), + }, + null, + 8, + [ + "onClick", + ] + ), + ]), + ] + ), + _: 1, + }), + ]), + _: 1, + }, + 8, + ["columns", "rows"] + ), + ])) + : C("", !0), + n( + Ht, + { + batch: l.batch, + modelValue: y.value, + "onUpdate:modelValue": + _[1] || (_[1] = (k) => (y.value = k)), + reloadStudents: e(p), + "onUpdate:reloadStudents": + _[2] || + (_[2] = (k) => + Z(p) ? (p.value = k) : null), + }, + null, + 8, + ["batch", "modelValue", "reloadStudents"] + ), + ], + 64 + ) + ); + }; + }, + }, + Qt = { key: 0 }, + Wt = { class: "mb-8" }, + Kt = { class: "flex items-center justify-between mb-2" }, + Xt = { class: "flex items-center" }, + es = { class: "ml-2" }, + ts = { class: "text-sm" }, + ss = ["innerHTML"], + as = { + __name: "Annoucements", + props: { batch: { type: String, required: !0 } }, + setup(c) { + const y = c, + l = ne({ + doctype: "Communication", + fields: [ + "subject", + "content", + "recipients", + "cc", + "communication_date", + "sender", + "sender_full_name", + ], + filters: { + reference_doctype: "LMS Batch", + reference_name: y.batch, + }, + orderBy: "communication_date desc", + auto: !0, + cache: ["batch", y.batch], + }); + return (p, f) => + e(l).data + ? (i(), + b("div", Qt, [ + (i(!0), + b( + L, + null, + U( + e(l).data, + (a) => ( + i(), + b("div", null, [ + t("div", Wt, [ + t("div", Kt, [ + t("div", Xt, [ + n( + e(de), + { + label: a.sender_full_name, + size: "lg", + }, + null, + 8, + ["label"] + ), + t( + "div", + es, + r( + a.sender_full_name + ), + 1 + ), + ]), + t( + "div", + ts, + r( + e(Me)( + a.communication_date + ) + ), + 1 + ), + ]), + t( + "div", + { + class: "prose prose-sm bg-gray-50 !min-w-full px-4 py-2 rounded-md", + innerHTML: a.content, + }, + null, + 8, + ss + ), + ]), + ]) + ) + ), + 256 + )), + ])) + : C("", !0); + }, + }, + os = { class: "flex flex-col gap-4" }, + ls = { class: "" }, + ns = { class: "mb-1.5 text-sm text-gray-600" }, + is = { class: "" }, + ds = { class: "mb-1.5 text-sm text-gray-600" }, + rs = { class: "mb-4" }, + us = { class: "mb-1.5 text-sm text-gray-600" }, + cs = { + __name: "AnnouncementModal", + props: I( + { + batch: { type: String, required: !0 }, + students: { type: Array, required: !0 }, + }, + { modelValue: {}, modelModifiers: {} } + ), + emits: ["update:modelValue"], + setup(c) { + const y = A(c, "modelValue"), + l = c, + p = F({ subject: "", replyTo: "", announcement: "" }), + f = M({ + url: "frappe.core.doctype.communication.email.make", + makeParams(s) { + return { + recipients: l.students.join(", "), + cc: p.replyTo, + subject: p.subject, + content: p.announcement, + doctype: "LMS Batch", + name: l.batch, + send_email: 1, + }; + }, + }), + a = (s) => { + f.submit( + {}, + { + validate() { + if (!l.students.length) + return "No students in this batch"; + if (!p.subject) return "Subject is required"; + }, + onSuccess() { + s(), + z({ + title: "Success", + text: "Announcement has been sent successfully", + icon: "Check", + iconClasses: + "bg-green-600 text-white rounded-md p-px", + }); + }, + onError(m) { + var u; + z({ + title: "Error", + text: + ((u = m.messages) == null + ? void 0 + : u[0]) || m, + icon: "x", + iconClasses: + "bg-red-600 text-white rounded-md p-px", + position: "top-center", + timeout: 10, + }); + }, + } + ); + }; + return (s, m) => ( + i(), + V( + e(q), + { + modelValue: y.value, + "onUpdate:modelValue": + m[3] || (m[3] = (u) => (y.value = u)), + options: { + title: s.__("Make an Announcement"), + size: "xl", + actions: [ + { + label: "Submit", + variant: "solid", + onClick: (u) => a(u), + }, + ], + }, + }, + { + "body-content": v(() => [ + t("div", os, [ + t("div", ls, [ + t("div", ns, r(s.__("Subject")), 1), + n( + e(Y), + { + type: "text", + modelValue: p.subject, + "onUpdate:modelValue": + m[0] || + (m[0] = (u) => (p.subject = u)), + }, + null, + 8, + ["modelValue"] + ), + ]), + t("div", is, [ + t("div", ds, r(s.__("Reply To")), 1), + n( + e(Y), + { + type: "text", + modelValue: p.replyTo, + "onUpdate:modelValue": + m[1] || + (m[1] = (u) => (p.replyTo = u)), + }, + null, + 8, + ["modelValue"] + ), + ]), + t("div", rs, [ + t("div", us, r(s.__("Announcement")), 1), + n(e(ke), { + bubbleMenu: !0, + onChange: + m[2] || + (m[2] = (u) => + (p.announcement = u)), + editorClass: + "prose-sm py-2 px-2 min-h-[200px] border-gray-300 hover:border-gray-400 rounded-md bg-gray-200", + }), + ]), + ]), + ]), + _: 1, + }, + 8, + ["modelValue", "options"] + ) + ); + }, + }, + ms = { key: 0, class: "h-screen text-base" }, + _s = { + class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5", + }, + ps = { key: 0, class: "grid grid-cols-[70%,30%] h-full" }, + hs = { class: "border-r-2" }, + bs = { class: "pt-5 px-10 pb-10" }, + ys = { key: 0 }, + vs = { class: "text-xl font-semibold" }, + fs = { class: "grid grid-cols-1 sm:grid-cols-1 md:grid-cols-2 gap-8 mt-5" }, + gs = { key: 1 }, + ks = { key: 2 }, + xs = { key: 3 }, + $s = { key: 4 }, + Vs = { key: 5 }, + Cs = { key: 6 }, + Ss = { class: "p-5" }, + Ms = { class: "text-2xl font-semibold mb-3" }, + ws = { class: "flex items-center mb-3" }, + Ls = { class: "flex items-center mb-6" }, + Ds = ["innerHTML"], + js = { key: 1, class: "h-screen" }, + As = { class: "text-base border rounded-md w-1/3 mx-auto my-32" }, + Us = { class: "border-b px-5 py-3 font-medium" }, + Bs = t( + "span", + { + class: "inline-flex items-center before:bg-red-600 before:w-2 before:h-2 before:rounded-md before:mr-2", + }, + null, + -1 + ), + Ts = { class: "px-5 py-3" }, + Es = { key: 0, class: "mb-4 leading-6" }, + Ns = { key: 1, class: "mb-4 leading-6" }, + Gs = { + __name: "Batch", + props: { batchName: { type: String, required: !0 } }, + setup(c) { + var h; + const y = S("$dayjs"), + l = S("$user"), + p = T(!1), + f = c, + a = M({ + url: "lms.lms.utils.get_batch_details", + cache: ["batch", f.batchName], + params: { batch: f.batchName }, + auto: !0, + }), + s = se(() => { + var $, N, P; + let d = [ + { label: "All Batches", route: { name: "Batches" } }, + ]; + return ( + m.value || + d.push({ + label: ($ = a.data) == null ? void 0 : $.title, + route: { + name: "BatchDetail", + params: { + batchName: + (N = a.data) == null + ? void 0 + : N.name, + }, + }, + }), + d.push({ + label: + (P = a == null ? void 0 : a.data) == null + ? void 0 + : P.title, + route: { + name: "Batch", + params: { batchName: f.batchName }, + }, + }), + d + ); + }), + m = se(() => { + var d, $; + return ( + (l == null ? void 0 : l.data) && + ((d = a.data) == null ? void 0 : d.students.length) && + (($ = a.data) == null + ? void 0 + : $.students.includes(l.data.name)) + ); + }), + u = T(0), + _ = []; + m.value && _.push({ label: "Dashboard", icon: Te }), + (h = l.data) != null && + h.is_moderator && + (_.push({ label: "Students", icon: Ue }), + _.push({ label: "Assessments", icon: Ae })), + _.push({ label: "Live Class", icon: Be }), + _.push({ label: "Courses", icon: we }), + _.push({ label: "Announcements", icon: Ee }), + _.push({ label: "Discussions", icon: Ne }); + const g = M({ + url: "lms.lms.utils.get_batch_courses", + params: { batch: f.batchName }, + cache: ["batchCourses", f.batchName], + auto: !0, + }), + k = () => { + window.location.href = "/login?redirect-to=/batches"; + }, + o = () => { + p.value = !0; + }; + return (d, $) => { + var P, Q; + const N = xe("router-link"); + return ((P = e(l).data) != null && P.is_moderator) || m.value + ? (i(), + b("div", ms, [ + t("header", _s, [ + n( + e($e), + { class: "h-7", items: s.value }, + null, + 8, + ["items"] + ), + n( + e(j), + { onClick: $[0] || ($[0] = (x) => o()) }, + { + suffix: v(() => [ + n(e(Ye), { + class: "h-4 stroke-1.5", + }), + ]), + default: v(() => [ + t( + "span", + null, + r(d.__("Make an Announcement")), + 1 + ), + ]), + _: 1, + } + ), + ]), + e(a).data + ? (i(), + b("div", ps, [ + t("div", hs, [ + n( + e(Ce), + { + class: "overflow-hidden", + modelValue: u.value, + "onUpdate:modelValue": + $[1] || + ($[1] = (x) => + (u.value = x)), + tabs: _, + }, + { + tab: v( + ({ + tab: x, + selected: B, + }) => [ + t("div", null, [ + t( + "button", + { + class: O( + [ + "group -mb-px flex items-center gap-1 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": + B, + }, + ] + ), + }, + [ + x.icon + ? (i(), + V( + ie( + x.icon + ), + { + key: 0, + class: "h-4 stroke-1.5", + } + )) + : C( + "", + !0 + ), + D( + " " + + r( + d.__( + x.label + ) + ) + + " ", + 1 + ), + x.count + ? (i(), + V( + e( + Ve + ), + { + key: 1, + class: O( + { + "text-gray-900 border border-gray-900": + B, + } + ), + variant: + "subtle", + theme: "gray", + size: "sm", + }, + { + default: + v( + () => [ + D( + r( + x.count + ), + 1 + ), + ] + ), + _: 2, + }, + 1032, + [ + "class", + ] + )) + : C( + "", + !0 + ), + ], + 2 + ), + ]), + ] + ), + default: v(({ tab: x }) => [ + t("div", bs, [ + x.label == "Courses" + ? (i(), + b("div", ys, [ + t( + "div", + vs, + r( + d.__( + "Courses" + ) + ), + 1 + ), + t( + "div", + fs, + [ + (i( + !0 + ), + b( + L, + null, + U( + e( + g + ) + .data, + ( + B + ) => ( + i(), + b( + "div", + null, + [ + n( + N, + { + to: { + name: "CourseDetail", + params: { + courseName: + B.name, + }, + }, + }, + { + default: + v( + () => [ + (i(), + V( + Le, + { + key: B.name, + course: B, + }, + null, + 8, + [ + "course", + ] + )), + ] + ), + _: 2, + }, + 1032, + [ + "to", + ] + ), + ] + ) + ) + ), + 256 + )), + ] + ), + ])) + : x.label == + "Dashboard" + ? (i(), + b("div", gs, [ + n( + pt, + { + batch: e( + a + ), + isStudent: + m.value, + }, + null, + 8, + [ + "batch", + "isStudent", + ] + ), + ])) + : x.label == + "Live Class" + ? (i(), + b("div", ks, [ + n( + qt, + { + batch: e( + a + ) + .data + .name, + }, + null, + 8, + [ + "batch", + ] + ), + ])) + : x.label == + "Students" + ? (i(), + b("div", xs, [ + n( + Gt, + { + batch: e( + a + ) + .data + .name, + }, + null, + 8, + [ + "batch", + ] + ), + ])) + : x.label == + "Assessments" + ? (i(), + b("div", $s, [ + n( + ue, + { + batch: e( + a + ) + .data + .name, + }, + null, + 8, + [ + "batch", + ] + ), + ])) + : x.label == + "Announcements" + ? (i(), + b("div", Vs, [ + n( + as, + { + batch: e( + a + ) + .data + .name, + }, + null, + 8, + [ + "batch", + ] + ), + ])) + : x.label == + "Discussions" + ? (i(), + b("div", Cs, [ + (i(), + V( + je, + { + doctype: + "LMS Batch", + docname: + e( + a + ) + .data + .name, + title: "Discussions", + key: e( + a + ) + .data + .name, + singleThread: + !0, + }, + null, + 8, + [ + "docname", + ] + )), + ])) + : C("", !0), + ]), + ]), + _: 1, + }, + 8, + ["modelValue"] + ), + ]), + t("div", Ss, [ + t("div", Ms, r(e(a).data.title), 1), + t("div", ws, [ + n(e(J), { + class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700", + }), + t( + "span", + null, + r( + e(y)( + e(a).data.start_date + ).format("DD MMMM YYYY") + ) + + " - " + + r( + e(y)( + e(a).data + .end_date + ).format( + "DD MMMM YYYY" + ) + ), + 1 + ), + ]), + t("div", Ls, [ + n(e(G), { + class: "h-4 w-4 stroke-1.5 mr-2 text-gray-700", + }), + t( + "span", + null, + r( + e(E)( + e(a).data.start_time + ) + ) + + " - " + + r( + e(E)( + e(a).data + .end_time + ) + ), + 1 + ), + ]), + t( + "div", + { + innerHTML: + e(a).data.description, + }, + null, + 8, + Ds + ), + ]), + n( + cs, + { + modelValue: p.value, + "onUpdate:modelValue": + $[2] || + ($[2] = (x) => + (p.value = x)), + batch: e(a).data.name, + students: e(a).data.students, + }, + null, + 8, + ["modelValue", "batch", "students"] + ), + ])) + : C("", !0), + ])) + : (i(), + b("div", js, [ + t("div", As, [ + t("div", Us, [ + Bs, + D(" " + r(d.__("Not Permitted")), 1), + ]), + t("div", Ts, [ + e(l).data + ? (i(), + b( + "div", + Es, + r( + d.__( + "You are not a member of this batch. Please checkout our upcoming batches." + ) + ), + 1 + )) + : (i(), + b( + "div", + Ns, + r( + d.__( + "Please login to access this page." + ) + ), + 1 + )), + e(l).data + ? (i(), + V( + N, + { + key: 2, + to: { + name: "Batches", + params: { + batchName: + (Q = + e( + a + ).data) == + null + ? void 0 + : Q.name, + }, + }, + }, + { + default: v(() => [ + n( + e(j), + { + variant: + "solid", + class: "w-full", + }, + { + default: v( + () => [ + D( + r( + d.__( + "Upcoming Batches" + ) + ), + 1 + ), + ] + ), + _: 1, + } + ), + ]), + _: 1, + }, + 8, + ["to"] + )) + : (i(), + V( + e(j), + { + key: 3, + variant: "solid", + class: "w-full", + onClick: + $[3] || + ($[3] = (x) => k()), + }, + { + default: v(() => [ + D(r(d.__("Login")), 1), + ]), + _: 1, + } + )), + ]), + ]), + ])); + }; + }, + }; +export { Gs as default }; +//# sourceMappingURL=Batch--wtfybfQ.js.map diff --git a/lms/public/frontend/assets/Batch--wtfybfQ.js.map b/lms/public/frontend/assets/Batch--wtfybfQ.js.map new file mode 100644 index 00000000..f548fe2e --- /dev/null +++ b/lms/public/frontend/assets/Batch--wtfybfQ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Batch--wtfybfQ.js","sources":["../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/contact-2.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/info.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/laptop.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/layout-dashboard.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/mail.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/message-circle.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/monitor.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/send.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/trash-2.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/user-round-cog.js","../../../../frontend/node_modules/lucide-vue-next/dist/esm/icons/video.js","../../../../frontend/src/components/Modals/EvaluationModal.vue","../../../../frontend/src/components/UpcomingEvaluations.vue","../../../../frontend/src/components/Assessments.vue","../../../../frontend/src/components/Modals/LiveClassModal.vue","../../../../frontend/src/components/LiveClass.vue","../../../../frontend/src/components/Modals/StudentModal.vue","../../../../frontend/src/components/BatchStudents.vue","../../../../frontend/src/components/Annoucements.vue","../../../../frontend/src/components/Modals/AnnouncementModal.vue","../../../../frontend/src/pages/Batch.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 Contact2 = createLucideIcon(\"Contact2Icon\", [\n [\"path\", { d: \"M16 18a4 4 0 0 0-8 0\", key: \"1lzouq\" }],\n [\"circle\", { cx: \"12\", cy: \"11\", r: \"3\", key: \"itu57m\" }],\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"4\", rx: \"2\", key: \"1hopcy\" }],\n [\"line\", { x1: \"8\", x2: \"8\", y1: \"2\", y2: \"4\", key: \"1ff9gb\" }],\n [\"line\", { x1: \"16\", x2: \"16\", y1: \"2\", y2: \"4\", key: \"1ufoma\" }]\n]);\n\nexport { Contact2 as default };\n//# sourceMappingURL=contact-2.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 Info = createLucideIcon(\"InfoIcon\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.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 Laptop = createLucideIcon(\"LaptopIcon\", [\n [\n \"path\",\n {\n d: \"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16\",\n key: \"tarvll\"\n }\n ]\n]);\n\nexport { Laptop as default };\n//# sourceMappingURL=laptop.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 LayoutDashboard = createLucideIcon(\"LayoutDashboardIcon\", [\n [\"rect\", { width: \"7\", height: \"9\", x: \"3\", y: \"3\", rx: \"1\", key: \"10lvy0\" }],\n [\"rect\", { width: \"7\", height: \"5\", x: \"14\", y: \"3\", rx: \"1\", key: \"16une8\" }],\n [\"rect\", { width: \"7\", height: \"9\", x: \"14\", y: \"12\", rx: \"1\", key: \"1hutg5\" }],\n [\"rect\", { width: \"7\", height: \"5\", x: \"3\", y: \"16\", rx: \"1\", key: \"ldoo1y\" }]\n]);\n\nexport { LayoutDashboard as default };\n//# sourceMappingURL=layout-dashboard.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 Mail = createLucideIcon(\"MailIcon\", [\n [\"rect\", { width: \"20\", height: \"16\", x: \"2\", y: \"4\", rx: \"2\", key: \"18n3k1\" }],\n [\"path\", { d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\", key: \"1ocrg3\" }]\n]);\n\nexport { Mail as default };\n//# sourceMappingURL=mail.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 MessageCircle = createLucideIcon(\"MessageCircleIcon\", [\n [\"path\", { d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\", key: \"vv11sd\" }]\n]);\n\nexport { MessageCircle as default };\n//# sourceMappingURL=message-circle.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 Monitor = createLucideIcon(\"MonitorIcon\", [\n [\"rect\", { width: \"20\", height: \"14\", x: \"2\", y: \"3\", rx: \"2\", key: \"48i651\" }],\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"21\", y2: \"21\", key: \"1svkeh\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"17\", y2: \"21\", key: \"vw1qmm\" }]\n]);\n\nexport { Monitor as default };\n//# sourceMappingURL=monitor.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 Send = createLucideIcon(\"SendIcon\", [\n [\"path\", { d: \"m22 2-7 20-4-9-9-4Z\", key: \"1q3vgg\" }],\n [\"path\", { d: \"M22 2 11 13\", key: \"nzbqef\" }]\n]);\n\nexport { Send as default };\n//# sourceMappingURL=send.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 Trash2 = createLucideIcon(\"Trash2Icon\", [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\", key: \"4alrt4\" }],\n [\"path\", { d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\", key: \"v07s0e\" }],\n [\"line\", { x1: \"10\", x2: \"10\", y1: \"11\", y2: \"17\", key: \"1uufr5\" }],\n [\"line\", { x1: \"14\", x2: \"14\", y1: \"11\", y2: \"17\", key: \"xtxkd\" }]\n]);\n\nexport { Trash2 as default };\n//# sourceMappingURL=trash-2.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 UserRoundCog = createLucideIcon(\"UserRoundCogIcon\", [\n [\"path\", { d: \"M2 21a8 8 0 0 1 10.434-7.62\", key: \"1yezr2\" }],\n [\"circle\", { cx: \"10\", cy: \"8\", r: \"5\", key: \"o932ke\" }],\n [\"circle\", { cx: \"18\", cy: \"18\", r: \"3\", key: \"1xkwt0\" }],\n [\"path\", { d: \"m19.5 14.3-.4.9\", key: \"1eb35c\" }],\n [\"path\", { d: \"m16.9 20.8-.4.9\", key: \"dfjc4z\" }],\n [\"path\", { d: \"m21.7 19.5-.9-.4\", key: \"q4dx6b\" }],\n [\"path\", { d: \"m15.2 16.9-.9-.4\", key: \"1r0w5f\" }],\n [\"path\", { d: \"m21.7 16.5-.9.4\", key: \"1knoei\" }],\n [\"path\", { d: \"m15.2 19.1-.9.4\", key: \"j188fs\" }],\n [\"path\", { d: \"m19.5 21.7-.4-.9\", key: \"1tonu5\" }],\n [\"path\", { d: \"m16.9 15.2-.4-.9\", key: \"699xu\" }]\n]);\n\nexport { UserRoundCog as default };\n//# sourceMappingURL=user-round-cog.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 Video = createLucideIcon(\"VideoIcon\", [\n [\"path\", { d: \"m22 8-6 4 6 4V8Z\", key: \"50v9me\" }],\n [\"rect\", { width: \"14\", height: \"12\", x: \"2\", y: \"6\", rx: \"2\", ry: \"2\", key: \"1rqjg6\" }]\n]);\n\nexport { Video as default };\n//# sourceMappingURL=video.js.map\n","\n\n","\n\n","\n\n","