@vue-skuilder/platform-ui 0.2.27 → 0.2.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{About-BwZepkSu.js → About-CY5R6hcy.js} +2 -2
- package/dist/assets/{About-BwZepkSu.js.map → About-CY5R6hcy.js.map} +1 -1
- package/dist/assets/AdminDashboard-BCf45Fv8.js +2 -0
- package/dist/assets/AdminDashboard-BCf45Fv8.js.map +1 -0
- package/dist/assets/AdminDashboard-fWfBatiA.css +1 -0
- package/dist/assets/AdminLearner-DkLKZPDK.js +2 -0
- package/dist/assets/AdminLearner-DkLKZPDK.js.map +1 -0
- package/dist/assets/{ClassroomCtrlPanel-BXa2InOS.js → ClassroomCtrlPanel-DgeiJJj-.js} +2 -2
- package/dist/assets/{ClassroomCtrlPanel-BXa2InOS.js.map → ClassroomCtrlPanel-DgeiJJj-.js.map} +1 -1
- package/dist/assets/{Classrooms-RBQL8it0.js → Classrooms-By8_HZk7.js} +3 -3
- package/dist/assets/{Classrooms-RBQL8it0.js.map → Classrooms-By8_HZk7.js.map} +1 -1
- package/dist/assets/CourseRouter-B0wsb_SJ.js +7 -0
- package/dist/assets/{CourseRouter-CRYYJcwq.js.map → CourseRouter-B0wsb_SJ.js.map} +1 -1
- package/dist/assets/CourseWare-BTFRjgBR-C5EKZq5q.js +3 -0
- package/dist/assets/{CourseWare-BTFRjgBR-fJXdIFUp.js.map → CourseWare-BTFRjgBR-C5EKZq5q.js.map} +1 -1
- package/dist/assets/{Courses-BxuNznL1.js → Courses-HDdIzJ-P.js} +3 -3
- package/dist/assets/{Courses-BxuNznL1.js.map → Courses-HDdIzJ-P.js.map} +1 -1
- package/dist/assets/{EloModeration-D3WYWr7A.js → EloModeration-C_gG6Y5k.js} +2 -2
- package/dist/assets/{EloModeration-D3WYWr7A.js.map → EloModeration-C_gG6Y5k.js.map} +1 -1
- package/dist/assets/{JoinCode-D4Svx2AZ.js → JoinCode-WS6Hg8YR.js} +2 -2
- package/dist/assets/{JoinCode-D4Svx2AZ.js.map → JoinCode-WS6Hg8YR.js.map} +1 -1
- package/dist/assets/{NewCourseDialog-eMM_zeNc.js → NewCourseDialog-CY2XRDQA.js} +2 -2
- package/dist/assets/{NewCourseDialog-eMM_zeNc.js.map → NewCourseDialog-CY2XRDQA.js.map} +1 -1
- package/dist/assets/{ReleaseNotes-B7DliPZd.js → ReleaseNotes-Bs2G8mQk.js} +2 -2
- package/dist/assets/{ReleaseNotes-B7DliPZd.js.map → ReleaseNotes-Bs2G8mQk.js.map} +1 -1
- package/dist/assets/{RequestPasswordReset-CX9buoN1.js → RequestPasswordReset-Abu5C0PS.js} +2 -2
- package/dist/assets/{RequestPasswordReset-CX9buoN1.js.map → RequestPasswordReset-Abu5C0PS.js.map} +1 -1
- package/dist/assets/{ResetPassword-54t3uwpt.js → ResetPassword-S4d7TZP3.js} +2 -2
- package/dist/assets/{ResetPassword-54t3uwpt.js.map → ResetPassword-S4d7TZP3.js.map} +1 -1
- package/dist/assets/Study-D29QwlyX.js +2 -0
- package/dist/assets/{Study-1bB9HH5I.js.map → Study-D29QwlyX.js.map} +1 -1
- package/dist/assets/{TagInformation-DfisiYQj.js → TagInformation-DfxG__6Q.js} +2 -2
- package/dist/assets/{TagInformation-DfisiYQj.js.map → TagInformation-DfxG__6Q.js.map} +1 -1
- package/dist/assets/{User-TVn_VW8y.js → User-DOCNnUcq.js} +3 -3
- package/dist/assets/{User-TVn_VW8y.js.map → User-DOCNnUcq.js.map} +1 -1
- package/dist/assets/{UserStats-BOS3nRFB.js → UserStats-DfDpe-Tt.js} +2 -2
- package/dist/assets/{UserStats-BOS3nRFB.js.map → UserStats-DfDpe-Tt.js.map} +1 -1
- package/dist/assets/{VerifyEmail-DnC6Lcu-.js → VerifyEmail-DIvEVYE3.js} +2 -2
- package/dist/assets/{VerifyEmail-DnC6Lcu-.js.map → VerifyEmail-DIvEVYE3.js.map} +1 -1
- package/dist/assets/admin-C1kbA23q.js +4 -0
- package/dist/assets/admin-C1kbA23q.js.map +1 -0
- package/dist/assets/admin-nsH2hmYz.css +1 -0
- package/dist/assets/{chess-E2uOAyQS-Bq2eA-0f.js → chess-E2uOAyQS-DGFsCQt6.js} +3 -3
- package/dist/assets/{chess-E2uOAyQS-Bq2eA-0f.js.map → chess-E2uOAyQS-DGFsCQt6.js.map} +1 -1
- package/dist/assets/chess-Lfm7Fsvs-Dg_zv7tG.js +1 -0
- package/dist/assets/common-ui.es-BKEt3ead.js +38 -0
- package/dist/assets/common-ui.es-BKEt3ead.js.map +1 -0
- package/dist/assets/common-ui.es-Kjr2m0-r.js +1 -0
- package/dist/assets/{dist-B1rlsz-O.js → dist-5pzU2QGs.js} +12 -12
- package/dist/assets/dist-5pzU2QGs.js.map +1 -0
- package/dist/assets/{dist-Bs_ymDcS.js → dist-BrFW2xcq.js} +4 -4
- package/dist/assets/{dist-Bs_ymDcS.js.map → dist-BrFW2xcq.js.map} +1 -1
- package/dist/assets/dist-BuuMJSO8.js +1 -0
- package/dist/assets/dist-CoJktbks.js +1 -0
- package/dist/assets/edit-ui.es-B-WRQSob.js +1 -0
- package/dist/assets/edit-ui.es-P-QQ-hsA.js +36 -0
- package/dist/assets/{edit-ui.es-BYkRhLNm.js.map → edit-ui.es-P-QQ-hsA.js.map} +1 -1
- package/dist/assets/{french-Dk7YG8Td-idvPJOyv.js → french-Dk7YG8Td-oI_Y9Yn7.js} +2 -2
- package/dist/assets/{french-Dk7YG8Td-idvPJOyv.js.map → french-Dk7YG8Td-oI_Y9Yn7.js.map} +1 -1
- package/dist/assets/french-evUMlbbq--804zfgk.js +1 -0
- package/dist/assets/index-001F1CnH.js +4 -0
- package/dist/assets/index-001F1CnH.js.map +1 -0
- package/dist/assets/{math-B4HbgYf6-DlDwrhG3.js → math-B4HbgYf6-DZW-sQzL.js} +6 -6
- package/dist/assets/{math-B4HbgYf6-DlDwrhG3.js.map → math-B4HbgYf6-DZW-sQzL.js.map} +1 -1
- package/dist/assets/math-DYni7rRl-BiMckB4D.js +1 -0
- package/dist/assets/piano-BN5Btq91-BIOLr8tm.js +1 -0
- package/dist/assets/piano-DF1g6yaX-D4bbUsyA.js +2 -0
- package/dist/assets/{piano-DF1g6yaX-Bz3YzlGc.js.map → piano-DF1g6yaX-D4bbUsyA.js.map} +1 -1
- package/dist/assets/{pitch-CgGJFkZ1-jTBbu2PH.js → pitch-CgGJFkZ1-CKqgrwBw.js} +2 -2
- package/dist/assets/{pitch-CgGJFkZ1-jTBbu2PH.js.map → pitch-CgGJFkZ1-CKqgrwBw.js.map} +1 -1
- package/dist/assets/pitch-Dn0iNqiS-Dz5Ffxl4.js +1 -0
- package/dist/assets/{server-CngqYJXJ.js → server-D4EXUyhH.js} +2 -2
- package/dist/assets/{server-CngqYJXJ.js.map → server-D4EXUyhH.js.map} +1 -1
- package/dist/assets/{sightsing-BFQ7HRig-TY63jvHz.js → sightsing-BFQ7HRig-3JyNWqf-.js} +3 -3
- package/dist/assets/{sightsing-BFQ7HRig-TY63jvHz.js.map → sightsing-BFQ7HRig-3JyNWqf-.js.map} +1 -1
- package/dist/assets/sightsing-CJX3k0Fd-C5Fwkk2A.js +1 -0
- package/dist/assets/{typing-BevtfWlp-WuHuczGo.js → typing-BevtfWlp-DqPA0VeF.js} +2 -2
- package/dist/assets/{typing-BevtfWlp-WuHuczGo.js.map → typing-BevtfWlp-DqPA0VeF.js.map} +1 -1
- package/dist/assets/typing-k-ojjO7G-6WUzbhh3.js +1 -0
- package/dist/assets/vue-router-CDq4a4rc.js +2 -0
- package/dist/assets/vue-router-CDq4a4rc.js.map +1 -0
- package/dist/assets/{word-work-BOnRlZgd-BVbBvXQS.js → word-work-BOnRlZgd-BoR5qGg1.js} +2 -2
- package/dist/assets/{word-work-BOnRlZgd-BVbBvXQS.js.map → word-work-BOnRlZgd-BoR5qGg1.js.map} +1 -1
- package/dist/assets/word-work-Dd6tIKrt-0BhZ2cDk.js +1 -0
- package/dist/assets/{workbox-window.prod.es5-DBwpKi3B.js → workbox-window.prod.es5-r2bRTooK.js} +1 -1
- package/dist/assets/{workbox-window.prod.es5-DBwpKi3B.js.map → workbox-window.prod.es5-r2bRTooK.js.map} +1 -1
- package/dist/index.html +4 -3
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/package.json +7 -7
- package/src/router.ts +8 -0
- package/src/views/AdminDashboard.vue +79 -19
- package/src/views/AdminLearner.vue +108 -0
- package/dist/assets/AdminDashboard-CIcq497y.js +0 -2
- package/dist/assets/AdminDashboard-CIcq497y.js.map +0 -1
- package/dist/assets/AdminDashboard-CWnC_vEI.css +0 -1
- package/dist/assets/CourseRouter-CRYYJcwq.js +0 -7
- package/dist/assets/CourseWare-BTFRjgBR-fJXdIFUp.js +0 -3
- package/dist/assets/Study-1bB9HH5I.js +0 -2
- package/dist/assets/chess-Lfm7Fsvs-DS5rTsA2.js +0 -1
- package/dist/assets/common-ui.es-CN0Lc64m.js +0 -38
- package/dist/assets/common-ui.es-CN0Lc64m.js.map +0 -1
- package/dist/assets/common-ui.es-fu0mNnpY.js +0 -1
- package/dist/assets/dist-B1rlsz-O.js.map +0 -1
- package/dist/assets/dist-DZiBPA0D.js +0 -1
- package/dist/assets/dist-dMwpP4kc.js +0 -1
- package/dist/assets/edit-ui.es-BYkRhLNm.js +0 -36
- package/dist/assets/edit-ui.es-DLN3acd3.js +0 -1
- package/dist/assets/french-evUMlbbq-DxNOW4TY.js +0 -1
- package/dist/assets/index-CF5bC3bl.js +0 -4
- package/dist/assets/index-CF5bC3bl.js.map +0 -1
- package/dist/assets/math-DYni7rRl-BuP4-lli.js +0 -1
- package/dist/assets/piano-BN5Btq91-BtifFdAn.js +0 -1
- package/dist/assets/piano-DF1g6yaX-Bz3YzlGc.js +0 -2
- package/dist/assets/pitch-Dn0iNqiS-CDhseaCp.js +0 -1
- package/dist/assets/sightsing-CJX3k0Fd-RHUC0Qrm.js +0 -1
- package/dist/assets/typing-k-ojjO7G-3h2XW_H1.js +0 -1
- package/dist/assets/word-work-Dd6tIKrt-Jn9YNKpa.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbox-window.prod.es5-DBwpKi3B.js","names":[],"sources":["../../../../node_modules/workbox-window/build/workbox-window.prod.es5.mjs"],"sourcesContent":["try{self[\"workbox:window:7.2.0\"]&&_()}catch(n){}function n(n,t){return new Promise((function(r){var e=new MessageChannel;e.port1.onmessage=function(n){r(n.data)},n.postMessage(t,[e.port2])}))}function t(n){var t=function(n,t){if(\"object\"!=typeof n||!n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var e=r.call(n,t||\"default\");if(\"object\"!=typeof e)return e;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(n)}(n,\"string\");return\"symbol\"==typeof t?t:t+\"\"}function r(n,r){for(var e=0;e<r.length;e++){var i=r[e];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(n,t(i.key),i)}}function e(n,t){return e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},e(n,t)}function i(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=new Array(t);r<t;r++)e[r]=n[r];return e}function o(n,t){var r=\"undefined\"!=typeof Symbol&&n[Symbol.iterator]||n[\"@@iterator\"];if(r)return(r=r.call(n)).next.bind(r);if(Array.isArray(n)||(r=function(n,t){if(n){if(\"string\"==typeof n)return i(n,t);var r=Object.prototype.toString.call(n).slice(8,-1);return\"Object\"===r&&n.constructor&&(r=n.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(n):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(n,t):void 0}}(n))||t&&n&&\"number\"==typeof n.length){r&&(n=r);var e=0;return function(){return e>=n.length?{done:!0}:{done:!1,value:n[e++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}try{self[\"workbox:core:7.2.0\"]&&_()}catch(n){}var u=function(){var n=this;this.promise=new Promise((function(t,r){n.resolve=t,n.reject=r}))};function a(n,t){var r=location.href;return new URL(n,r).href===new URL(t,r).href}var c=function(n,t){this.type=n,Object.assign(this,t)};function f(n,t,r){return r?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function s(){}var v={type:\"SKIP_WAITING\"};function h(n,t){if(!t)return n&&n.then?n.then(s):Promise.resolve()}var l=function(t){function i(n,r){var e,i;return void 0===r&&(r={}),(e=t.call(this)||this).nn={},e.tn=0,e.rn=new u,e.en=new u,e.on=new u,e.un=0,e.an=new Set,e.cn=function(){var n=e.fn,t=n.installing;e.tn>0||!a(t.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=t,n.removeEventListener(\"updatefound\",e.cn)):(e.hn=t,e.an.add(t),e.rn.resolve(t)),++e.tn,t.addEventListener(\"statechange\",e.ln)},e.ln=function(n){var t=e.fn,r=n.target,i=r.state,o=r===e.vn,u={sw:r,isExternal:o,originalEvent:n};!o&&e.mn&&(u.isUpdate=!0),e.dispatchEvent(new c(i,u)),\"installed\"===i?e.wn=self.setTimeout((function(){\"installed\"===i&&t.waiting===r&&e.dispatchEvent(new c(\"waiting\",u))}),200):\"activating\"===i&&(clearTimeout(e.wn),o||e.en.resolve(r))},e.yn=function(n){var t=e.hn,r=t!==navigator.serviceWorker.controller;e.dispatchEvent(new c(\"controlling\",{isExternal:r,originalEvent:n,sw:t,isUpdate:e.mn})),r||e.on.resolve(t)},e.gn=(i=function(n){var t=n.data,r=n.ports,i=n.source;return f(e.getSW(),(function(){e.an.has(i)&&e.dispatchEvent(new c(\"message\",{data:t,originalEvent:n,ports:r,sw:i}))}))},function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];try{return Promise.resolve(i.apply(this,n))}catch(n){return Promise.reject(n)}}),e.sn=n,e.nn=r,navigator.serviceWorker.addEventListener(\"message\",e.gn),e}var o,s;s=t,(o=i).prototype=Object.create(s.prototype),o.prototype.constructor=o,e(o,s);var l,m,w,y=i.prototype;return y.register=function(n){var t=(void 0===n?{}:n).immediate,r=void 0!==t&&t;try{var e=this;return f(function(n,t){var r=n();if(r&&r.then)return r.then(t);return t(r)}((function(){if(!r&&\"complete\"!==document.readyState)return h(new Promise((function(n){return window.addEventListener(\"load\",n)})))}),(function(){return e.mn=Boolean(navigator.serviceWorker.controller),e.dn=e.pn(),f(e.bn(),(function(n){e.fn=n,e.dn&&(e.hn=e.dn,e.en.resolve(e.dn),e.on.resolve(e.dn),e.dn.addEventListener(\"statechange\",e.ln,{once:!0}));var t=e.fn.waiting;return t&&a(t.scriptURL,e.sn.toString())&&(e.hn=t,Promise.resolve().then((function(){e.dispatchEvent(new c(\"waiting\",{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),e.hn&&(e.rn.resolve(e.hn),e.an.add(e.hn)),e.fn.addEventListener(\"updatefound\",e.cn),navigator.serviceWorker.addEventListener(\"controllerchange\",e.yn),e.fn}))})))}catch(n){return Promise.reject(n)}},y.update=function(){try{return this.fn?f(h(this.fn.update())):f()}catch(n){return Promise.reject(n)}},y.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},y.messageSW=function(t){try{return f(this.getSW(),(function(r){return n(r,t)}))}catch(n){return Promise.reject(n)}},y.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&n(this.fn.waiting,v)},y.pn=function(){var n=navigator.serviceWorker.controller;return n&&a(n.scriptURL,this.sn.toString())?n:void 0},y.bn=function(){try{var n=this;return f(function(n,t){try{var r=n()}catch(n){return t(n)}if(r&&r.then)return r.then(void 0,t);return r}((function(){return f(navigator.serviceWorker.register(n.sn,n.nn),(function(t){return n.un=performance.now(),t}))}),(function(n){throw n})))}catch(n){return Promise.reject(n)}},l=i,(m=[{key:\"active\",get:function(){return this.en.promise}},{key:\"controlling\",get:function(){return this.on.promise}}])&&r(l.prototype,m),w&&r(l,w),Object.defineProperty(l,\"prototype\",{writable:!1}),l}(function(){function n(){this.Pn=new Map}var t=n.prototype;return t.addEventListener=function(n,t){this.jn(n).add(t)},t.removeEventListener=function(n,t){this.jn(n).delete(t)},t.dispatchEvent=function(n){n.target=this;for(var t,r=o(this.jn(n.type));!(t=r()).done;){(0,t.value)(n)}},t.jn=function(n){return this.Pn.has(n)||this.Pn.set(n,new Set),this.Pn.get(n)},n}());export{l as Workbox,c as WorkboxEvent,n as messageSW};\n//# sourceMappingURL=workbox-window.prod.es5.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"4BAAA,GAAG,CAAC,KAAK,yBAAyB,GAAG,MAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,SAAS,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,MAAM,UAAU,SAAS,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,GAAa,OAAO,GAAjB,UAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,aAAa,GAAY,IAAT,IAAK,GAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,GAAa,OAAO,GAAjB,SAAmB,OAAO,EAAE,MAAU,UAAU,+CAA+C,CAAC,OAAkB,IAAX,SAAa,OAAO,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,OAAgB,OAAO,GAAjB,SAAmB,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,UAAU,IAAI,EAAE,SAAS,CAAC,GAAG,OAAO,eAAe,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,OAAO,eAAe,OAAO,eAAe,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAQ,GAAN,MAAS,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,IAAI,IAAI,EAAE,EAAE,EAAM,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAe,OAAO,OAApB,KAA4B,EAAE,OAAO,WAAW,EAAE,cAAc,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,KAAK,EAAE,CAAC,GAAG,MAAM,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAa,OAAO,GAAjB,SAAmB,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,UAAU,SAAS,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,OAAiB,IAAX,UAAc,EAAE,cAAc,EAAE,EAAE,YAAY,MAAc,IAAR,OAAmB,IAAR,MAAU,MAAM,KAAK,EAAE,CAAe,IAAd,aAAiB,2CAA2C,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAK,KAAI,EAAE,GAAG,GAAG,GAAa,OAAO,EAAE,QAAnB,SAA0B,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,OAAO,UAAU,CAAC,OAAO,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAU,UAAU;oFAAwI,CAAC,GAAG,CAAC,KAAK,uBAAuB,GAAG,MAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,IAAI,SAAS,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,IAAI,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,OAAO,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,eAAe,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,QAAQ,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAgB,IAAT,IAAK,KAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,UAAU,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,EAAE,YAAY,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,oBAAoB,cAAc,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,iBAAiB,cAAc,EAAE,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,cAAc,IAAI,EAAE,EAAE,EAAE,CAAC,CAAe,IAAd,YAAgB,EAAE,GAAG,KAAK,YAAY,UAAU,CAAe,IAAd,aAAiB,EAAE,UAAU,GAAG,EAAE,cAAc,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAgB,IAAf,eAAmB,aAAa,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,UAAU,cAAc,WAAW,EAAE,cAAc,IAAI,EAAE,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,cAAc,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAK,IAAI,MAAqC,WAAa,GAAG,CAAC,OAAO,QAAQ,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,QAAQ,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,UAAU,cAAc,iBAAiB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,EAAI,EAAE,CAAC,EAAE,GAAG,UAAU,OAAO,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,MAAO,GAAE,SAAS,SAAS,EAAE,KAAK,GAAY,IAAT,IAAK,GAAM,EAAE,CAAC,GAAG,UAAU,EAAW,IAAT,IAAK,IAAO,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAA+B,OAA3B,GAAG,EAAE,KAAY,EAAE,KAAK,EAAE,CAAQ,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAgB,SAAS,aAAtB,WAAiC,OAAO,EAAE,IAAI,SAAS,SAAS,EAAE,CAAC,OAAO,OAAO,iBAAiB,OAAO,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,GAAG,EAAQ,UAAU,cAAc,WAAY,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,iBAAiB,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,QAAQ,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,SAAS,CAAC,MAAM,UAAU,CAAC,EAAE,cAAc,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,yBAAyB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,UAAU,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,iBAAiB,cAAc,EAAE,GAAG,CAAC,UAAU,cAAc,iBAAiB,mBAAmB,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,QAAQ,OAAO,EAAE,GAAG,EAAE,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,OAAO,QAAQ,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC,OAAgB,KAAK,KAAd,IAAK,GAAqC,KAAK,GAAG,QAAjC,QAAQ,QAAQ,KAAK,GAAG,EAAkB,EAAE,UAAU,SAAS,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,OAAO,QAAQ,OAAO,EAAE,GAAG,EAAE,mBAAmB,UAAU,CAAC,KAAK,IAAI,KAAK,GAAG,SAAS,EAAE,KAAK,GAAG,QAAQ,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,cAAc,WAAW,OAAO,GAAG,EAAE,EAAE,UAAU,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,IAAK,IAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAsC,OAAlC,GAAG,EAAE,KAAY,EAAE,KAAK,IAAK,GAAE,EAAE,CAAQ,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,cAAc,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,MAAO,GAAE,GAAG,YAAY,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,QAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC,CAAC,IAAI,cAAc,IAAI,UAAU,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,eAAe,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,UAAU,MAAO,GAAE,iBAAiB,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,SAAS,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAQ,EAAE,EAAE,OAAO,EAAE,EAAG,EAAE,GAAG,SAAS,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"workbox-window.prod.es5-r2bRTooK.js","names":[],"sources":["../../../../node_modules/workbox-window/build/workbox-window.prod.es5.mjs"],"sourcesContent":["try{self[\"workbox:window:7.2.0\"]&&_()}catch(n){}function n(n,t){return new Promise((function(r){var e=new MessageChannel;e.port1.onmessage=function(n){r(n.data)},n.postMessage(t,[e.port2])}))}function t(n){var t=function(n,t){if(\"object\"!=typeof n||!n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var e=r.call(n,t||\"default\");if(\"object\"!=typeof e)return e;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(n)}(n,\"string\");return\"symbol\"==typeof t?t:t+\"\"}function r(n,r){for(var e=0;e<r.length;e++){var i=r[e];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(n,t(i.key),i)}}function e(n,t){return e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,t){return n.__proto__=t,n},e(n,t)}function i(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=new Array(t);r<t;r++)e[r]=n[r];return e}function o(n,t){var r=\"undefined\"!=typeof Symbol&&n[Symbol.iterator]||n[\"@@iterator\"];if(r)return(r=r.call(n)).next.bind(r);if(Array.isArray(n)||(r=function(n,t){if(n){if(\"string\"==typeof n)return i(n,t);var r=Object.prototype.toString.call(n).slice(8,-1);return\"Object\"===r&&n.constructor&&(r=n.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(n):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(n,t):void 0}}(n))||t&&n&&\"number\"==typeof n.length){r&&(n=r);var e=0;return function(){return e>=n.length?{done:!0}:{done:!1,value:n[e++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}try{self[\"workbox:core:7.2.0\"]&&_()}catch(n){}var u=function(){var n=this;this.promise=new Promise((function(t,r){n.resolve=t,n.reject=r}))};function a(n,t){var r=location.href;return new URL(n,r).href===new URL(t,r).href}var c=function(n,t){this.type=n,Object.assign(this,t)};function f(n,t,r){return r?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function s(){}var v={type:\"SKIP_WAITING\"};function h(n,t){if(!t)return n&&n.then?n.then(s):Promise.resolve()}var l=function(t){function i(n,r){var e,i;return void 0===r&&(r={}),(e=t.call(this)||this).nn={},e.tn=0,e.rn=new u,e.en=new u,e.on=new u,e.un=0,e.an=new Set,e.cn=function(){var n=e.fn,t=n.installing;e.tn>0||!a(t.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=t,n.removeEventListener(\"updatefound\",e.cn)):(e.hn=t,e.an.add(t),e.rn.resolve(t)),++e.tn,t.addEventListener(\"statechange\",e.ln)},e.ln=function(n){var t=e.fn,r=n.target,i=r.state,o=r===e.vn,u={sw:r,isExternal:o,originalEvent:n};!o&&e.mn&&(u.isUpdate=!0),e.dispatchEvent(new c(i,u)),\"installed\"===i?e.wn=self.setTimeout((function(){\"installed\"===i&&t.waiting===r&&e.dispatchEvent(new c(\"waiting\",u))}),200):\"activating\"===i&&(clearTimeout(e.wn),o||e.en.resolve(r))},e.yn=function(n){var t=e.hn,r=t!==navigator.serviceWorker.controller;e.dispatchEvent(new c(\"controlling\",{isExternal:r,originalEvent:n,sw:t,isUpdate:e.mn})),r||e.on.resolve(t)},e.gn=(i=function(n){var t=n.data,r=n.ports,i=n.source;return f(e.getSW(),(function(){e.an.has(i)&&e.dispatchEvent(new c(\"message\",{data:t,originalEvent:n,ports:r,sw:i}))}))},function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];try{return Promise.resolve(i.apply(this,n))}catch(n){return Promise.reject(n)}}),e.sn=n,e.nn=r,navigator.serviceWorker.addEventListener(\"message\",e.gn),e}var o,s;s=t,(o=i).prototype=Object.create(s.prototype),o.prototype.constructor=o,e(o,s);var l,m,w,y=i.prototype;return y.register=function(n){var t=(void 0===n?{}:n).immediate,r=void 0!==t&&t;try{var e=this;return f(function(n,t){var r=n();if(r&&r.then)return r.then(t);return t(r)}((function(){if(!r&&\"complete\"!==document.readyState)return h(new Promise((function(n){return window.addEventListener(\"load\",n)})))}),(function(){return e.mn=Boolean(navigator.serviceWorker.controller),e.dn=e.pn(),f(e.bn(),(function(n){e.fn=n,e.dn&&(e.hn=e.dn,e.en.resolve(e.dn),e.on.resolve(e.dn),e.dn.addEventListener(\"statechange\",e.ln,{once:!0}));var t=e.fn.waiting;return t&&a(t.scriptURL,e.sn.toString())&&(e.hn=t,Promise.resolve().then((function(){e.dispatchEvent(new c(\"waiting\",{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),e.hn&&(e.rn.resolve(e.hn),e.an.add(e.hn)),e.fn.addEventListener(\"updatefound\",e.cn),navigator.serviceWorker.addEventListener(\"controllerchange\",e.yn),e.fn}))})))}catch(n){return Promise.reject(n)}},y.update=function(){try{return this.fn?f(h(this.fn.update())):f()}catch(n){return Promise.reject(n)}},y.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},y.messageSW=function(t){try{return f(this.getSW(),(function(r){return n(r,t)}))}catch(n){return Promise.reject(n)}},y.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&n(this.fn.waiting,v)},y.pn=function(){var n=navigator.serviceWorker.controller;return n&&a(n.scriptURL,this.sn.toString())?n:void 0},y.bn=function(){try{var n=this;return f(function(n,t){try{var r=n()}catch(n){return t(n)}if(r&&r.then)return r.then(void 0,t);return r}((function(){return f(navigator.serviceWorker.register(n.sn,n.nn),(function(t){return n.un=performance.now(),t}))}),(function(n){throw n})))}catch(n){return Promise.reject(n)}},l=i,(m=[{key:\"active\",get:function(){return this.en.promise}},{key:\"controlling\",get:function(){return this.on.promise}}])&&r(l.prototype,m),w&&r(l,w),Object.defineProperty(l,\"prototype\",{writable:!1}),l}(function(){function n(){this.Pn=new Map}var t=n.prototype;return t.addEventListener=function(n,t){this.jn(n).add(t)},t.removeEventListener=function(n,t){this.jn(n).delete(t)},t.dispatchEvent=function(n){n.target=this;for(var t,r=o(this.jn(n.type));!(t=r()).done;){(0,t.value)(n)}},t.jn=function(n){return this.Pn.has(n)||this.Pn.set(n,new Set),this.Pn.get(n)},n}());export{l as Workbox,c as WorkboxEvent,n as messageSW};\n//# sourceMappingURL=workbox-window.prod.es5.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/dist/index.html
CHANGED
|
@@ -8,13 +8,14 @@
|
|
|
8
8
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
9
9
|
<link rel="shortcut icon" href="/favicon.ico" />
|
|
10
10
|
<title>eduQuilt</title>
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-001F1CnH.js"></script>
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/chunk-D6hFPZc3.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/dist-l4NOxAbA.js">
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/dist-
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-5pzU2QGs.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/vue.runtime.esm-bundler-C3q8JS9f.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/MarkdownRenderer-kStoDRNE-HDBFbDeD.js">
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/vue-router-CDq4a4rc.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/common-ui.es-BKEt3ead.js">
|
|
18
19
|
<link rel="stylesheet" crossorigin href="/assets/common-ui-BY2Ut5jf.css">
|
|
19
20
|
<link rel="stylesheet" crossorigin href="/assets/index-NFrxkZjT.css">
|
|
20
21
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
package/dist/sw.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
if(!self.define){let s,
|
|
1
|
+
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(i,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let o={};const u=s=>l(s,n),t={module:{uri:n},exports:o,require:u};e[n]=Promise.all(i.map((s=>t[s]||u(s)))).then((s=>(r(...s),o)))}}define(["./workbox-1be04862"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/About-CY5R6hcy.js",revision:null},{url:"assets/admin-C1kbA23q.js",revision:null},{url:"assets/admin-nsH2hmYz.css",revision:null},{url:"assets/AdminDashboard-BCf45Fv8.js",revision:null},{url:"assets/AdminDashboard-fWfBatiA.css",revision:null},{url:"assets/AdminLearner-DkLKZPDK.js",revision:null},{url:"assets/chess-E2uOAyQS-DB7z_kWx.css",revision:null},{url:"assets/chess-E2uOAyQS-DGFsCQt6.js",revision:null},{url:"assets/chess-Lfm7Fsvs-Dg_zv7tG.js",revision:null},{url:"assets/chunk-D6hFPZc3.js",revision:null},{url:"assets/ClassroomCtrlPanel-DgeiJJj-.js",revision:null},{url:"assets/Classrooms-By8_HZk7.js",revision:null},{url:"assets/common-ui-BY2Ut5jf.css",revision:null},{url:"assets/common-ui.es-BKEt3ead.js",revision:null},{url:"assets/common-ui.es-Kjr2m0-r.js",revision:null},{url:"assets/CourseRouter-B0wsb_SJ.js",revision:null},{url:"assets/CourseRouter-DvfjFpWl.css",revision:null},{url:"assets/Courses-CsGfVDf9.css",revision:null},{url:"assets/Courses-HDdIzJ-P.js",revision:null},{url:"assets/CourseWare-BTFRjgBR-C5EKZq5q.js",revision:null},{url:"assets/CourseWare-BTFRjgBR-D750E7i0.css",revision:null},{url:"assets/dist-5pzU2QGs.js",revision:null},{url:"assets/dist-BrFW2xcq.js",revision:null},{url:"assets/dist-BuuMJSO8.js",revision:null},{url:"assets/dist-CoJktbks.js",revision:null},{url:"assets/dist-l4NOxAbA.js",revision:null},{url:"assets/edit-ui.es-B-WRQSob.js",revision:null},{url:"assets/edit-ui.es-P-QQ-hsA.js",revision:null},{url:"assets/EloModeration-C_gG6Y5k.js",revision:null},{url:"assets/EloModeration-DgUqPPoO.css",revision:null},{url:"assets/french-Dk7YG8Td-oI_Y9Yn7.js",revision:null},{url:"assets/french-evUMlbbq--804zfgk.js",revision:null},{url:"assets/index-001F1CnH.js",revision:null},{url:"assets/index-NFrxkZjT.css",revision:null},{url:"assets/JoinCode-DPSfXf5z.css",revision:null},{url:"assets/JoinCode-WS6Hg8YR.js",revision:null},{url:"assets/MarkdownRenderer-kStoDRNE-HDBFbDeD.js",revision:null},{url:"assets/MarkdownRenderer-kStoDRNE-HqRzdAdp.js",revision:null},{url:"assets/materialdesignicons-webfont-Dp5v-WZN.woff2",revision:null},{url:"assets/math-B4HbgYf6-CZyvKZtp.css",revision:null},{url:"assets/math-B4HbgYf6-DZW-sQzL.js",revision:null},{url:"assets/math-DYni7rRl-BiMckB4D.js",revision:null},{url:"assets/NewCourseDialog-CY2XRDQA.js",revision:null},{url:"assets/piano-BN5Btq91-BIOLr8tm.js",revision:null},{url:"assets/piano-DF1g6yaX-BLvDAgl1.css",revision:null},{url:"assets/piano-DF1g6yaX-D4bbUsyA.js",revision:null},{url:"assets/pitch-CgGJFkZ1-CKqgrwBw.js",revision:null},{url:"assets/pitch-Dn0iNqiS-Dz5Ffxl4.js",revision:null},{url:"assets/ReleaseNotes-Bs2G8mQk.js",revision:null},{url:"assets/RequestPasswordReset-Abu5C0PS.js",revision:null},{url:"assets/RequestPasswordReset-Du5-awJG.css",revision:null},{url:"assets/ResetPassword-S4d7TZP3.js",revision:null},{url:"assets/Roboto-Black-VhoA2qKx.woff2",revision:null},{url:"assets/Roboto-BlackItalic-D4yie1YO.woff2",revision:null},{url:"assets/Roboto-Bold-hN3duQhD.woff2",revision:null},{url:"assets/Roboto-BoldItalic-BWDm51uc.woff2",revision:null},{url:"assets/Roboto-Light-DHTugVNA.woff2",revision:null},{url:"assets/Roboto-LightItalic-JQyp2Y3P.woff2",revision:null},{url:"assets/Roboto-Medium-ByKogCTi.woff2",revision:null},{url:"assets/Roboto-MediumItalic-i1eR0KbF.woff2",revision:null},{url:"assets/Roboto-Regular-C6rbFxYz.woff2",revision:null},{url:"assets/Roboto-RegularItalic-CvPUdkvM.woff2",revision:null},{url:"assets/Roboto-Thin-NicBC1pN.woff2",revision:null},{url:"assets/Roboto-ThinItalic-CKlCjrO_.woff2",revision:null},{url:"assets/server-D4EXUyhH.js",revision:null},{url:"assets/sightsing-BFQ7HRig-3JyNWqf-.js",revision:null},{url:"assets/sightsing-BFQ7HRig-DkUGf5Yf.css",revision:null},{url:"assets/sightsing-CJX3k0Fd-C5Fwkk2A.js",revision:null},{url:"assets/Study-D29QwlyX.js",revision:null},{url:"assets/Study-R4LCAP7J.css",revision:null},{url:"assets/TagInformation-DfxG__6Q.js",revision:null},{url:"assets/typing-BevtfWlp-B7ZMUAQJ.css",revision:null},{url:"assets/typing-BevtfWlp-DqPA0VeF.js",revision:null},{url:"assets/typing-k-ojjO7G-6WUzbhh3.js",revision:null},{url:"assets/User-DOCNnUcq.js",revision:null},{url:"assets/UserStats-DfDpe-Tt.js",revision:null},{url:"assets/VerifyEmail-DIvEVYE3.js",revision:null},{url:"assets/vue-router-CDq4a4rc.js",revision:null},{url:"assets/vue.runtime.esm-bundler-C3q8JS9f.js",revision:null},{url:"assets/word-work-BOnRlZgd-BoR5qGg1.js",revision:null},{url:"assets/word-work-Dd6tIKrt-0BhZ2cDk.js",revision:null},{url:"assets/workbox-window.prod.es5-r2bRTooK.js",revision:null},{url:"favicon.ico",revision:"b71387b4508120b59615e43d5e103706"},{url:"img/icons/safari-pinned-tab.svg",revision:"f22d501a35a87d9f21701cb031f6ea17"},{url:"index.html",revision:"398b3508f5bf2bd2b63517e5335ce817"},{url:"manifest.json",revision:"14a155103e25199244cdda503219c3e1"},{url:"robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"manifest.webmanifest",revision:"0ad80257ac95729a8c88588d23a396c1"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("/index.html"),{allowlist:[/^(?!\/(couch|express)).*$/]}))}));
|
|
2
2
|
//# sourceMappingURL=sw.js.map
|
package/dist/sw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sw.js","sources":["../../../../../../../tmp/c71d1c56ad14f5cdad0c3a5ea2dd96d0/sw.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/About-BwZepkSu.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-CIcq497y.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-CWnC_vEI.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-E2uOAyQS-Bq2eA-0f.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-E2uOAyQS-DB7z_kWx.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-Lfm7Fsvs-DS5rTsA2.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chunk-D6hFPZc3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ClassroomCtrlPanel-BXa2InOS.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Classrooms-RBQL8it0.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui-BY2Ut5jf.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-CN0Lc64m.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-fu0mNnpY.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-CRYYJcwq.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-DvfjFpWl.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-BxuNznL1.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-CsGfVDf9.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseWare-BTFRjgBR-D750E7i0.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseWare-BTFRjgBR-fJXdIFUp.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-B1rlsz-O.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-Bs_ymDcS.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-dMwpP4kc.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-DZiBPA0D.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-l4NOxAbA.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-BYkRhLNm.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-DLN3acd3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-D3WYWr7A.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-DgUqPPoO.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-Dk7YG8Td-idvPJOyv.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-evUMlbbq-DxNOW4TY.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-CF5bC3bl.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-NFrxkZjT.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-D4Svx2AZ.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-DPSfXf5z.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-kStoDRNE-HDBFbDeD.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-kStoDRNE-HqRzdAdp.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/materialdesignicons-webfont-Dp5v-WZN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-B4HbgYf6-CZyvKZtp.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-B4HbgYf6-DlDwrhG3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-DYni7rRl-BuP4-lli.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/NewCourseDialog-eMM_zeNc.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-BN5Btq91-BtifFdAn.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-DF1g6yaX-BLvDAgl1.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-DF1g6yaX-Bz3YzlGc.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-CgGJFkZ1-jTBbu2PH.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-Dn0iNqiS-CDhseaCp.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ReleaseNotes-B7DliPZd.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-CX9buoN1.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-Du5-awJG.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ResetPassword-54t3uwpt.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Black-VhoA2qKx.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BlackItalic-D4yie1YO.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Bold-hN3duQhD.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BoldItalic-BWDm51uc.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Light-DHTugVNA.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-LightItalic-JQyp2Y3P.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Medium-ByKogCTi.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-MediumItalic-i1eR0KbF.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Regular-C6rbFxYz.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-RegularItalic-CvPUdkvM.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Thin-NicBC1pN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-ThinItalic-CKlCjrO_.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/server-CngqYJXJ.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-BFQ7HRig-DkUGf5Yf.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-BFQ7HRig-TY63jvHz.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-CJX3k0Fd-RHUC0Qrm.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-1bB9HH5I.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-R4LCAP7J.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/TagInformation-DfisiYQj.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-BevtfWlp-B7ZMUAQJ.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-BevtfWlp-WuHuczGo.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-k-ojjO7G-3h2XW_H1.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/User-TVn_VW8y.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/UserStats-BOS3nRFB.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/VerifyEmail-DnC6Lcu-.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/vue.runtime.esm-bundler-C3q8JS9f.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-BOnRlZgd-BVbBvXQS.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-Dd6tIKrt-Jn9YNKpa.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-DBwpKi3B.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"b71387b4508120b59615e43d5e103706\"\n },\n {\n \"url\": \"img/icons/safari-pinned-tab.svg\",\n \"revision\": \"f22d501a35a87d9f21701cb031f6ea17\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"48a805a12aa395b26c39e90340a4f01b\"\n },\n {\n \"url\": \"manifest.json\",\n \"revision\": \"14a155103e25199244cdda503219c3e1\"\n },\n {\n \"url\": \"robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"0ad80257ac95729a8c88588d23a396c1\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"/index.html\"), {\n allowlist: [/^(?!\\/(couch|express)).*$/],\n \n}));\n\n\n\n\n\n\n"],"names":["self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL","allowlist"],"mappings":"0nBAwBAA,KAAKC,cAELC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,yCACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,4CACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,yCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C,eAAgB,CAC3HC,UAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"sw.js","sources":["../../../../../../../tmp/0bfe8b58a0f886930415be3688178f67/sw.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/vue-skuilder/vue-skuilder/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/About-CY5R6hcy.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/admin-C1kbA23q.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/admin-nsH2hmYz.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-BCf45Fv8.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminDashboard-fWfBatiA.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/AdminLearner-DkLKZPDK.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-E2uOAyQS-DB7z_kWx.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-E2uOAyQS-DGFsCQt6.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chess-Lfm7Fsvs-Dg_zv7tG.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/chunk-D6hFPZc3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ClassroomCtrlPanel-DgeiJJj-.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Classrooms-By8_HZk7.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui-BY2Ut5jf.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-BKEt3ead.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/common-ui.es-Kjr2m0-r.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-B0wsb_SJ.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseRouter-DvfjFpWl.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-CsGfVDf9.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Courses-HDdIzJ-P.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseWare-BTFRjgBR-C5EKZq5q.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/CourseWare-BTFRjgBR-D750E7i0.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-5pzU2QGs.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-BrFW2xcq.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-BuuMJSO8.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-CoJktbks.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/dist-l4NOxAbA.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-B-WRQSob.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/edit-ui.es-P-QQ-hsA.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-C_gG6Y5k.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/EloModeration-DgUqPPoO.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-Dk7YG8Td-oI_Y9Yn7.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/french-evUMlbbq--804zfgk.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-001F1CnH.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-NFrxkZjT.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-DPSfXf5z.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/JoinCode-WS6Hg8YR.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-kStoDRNE-HDBFbDeD.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/MarkdownRenderer-kStoDRNE-HqRzdAdp.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/materialdesignicons-webfont-Dp5v-WZN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-B4HbgYf6-CZyvKZtp.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-B4HbgYf6-DZW-sQzL.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/math-DYni7rRl-BiMckB4D.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/NewCourseDialog-CY2XRDQA.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-BN5Btq91-BIOLr8tm.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-DF1g6yaX-BLvDAgl1.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/piano-DF1g6yaX-D4bbUsyA.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-CgGJFkZ1-CKqgrwBw.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/pitch-Dn0iNqiS-Dz5Ffxl4.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ReleaseNotes-Bs2G8mQk.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-Abu5C0PS.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/RequestPasswordReset-Du5-awJG.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/ResetPassword-S4d7TZP3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Black-VhoA2qKx.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BlackItalic-D4yie1YO.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Bold-hN3duQhD.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-BoldItalic-BWDm51uc.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Light-DHTugVNA.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-LightItalic-JQyp2Y3P.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Medium-ByKogCTi.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-MediumItalic-i1eR0KbF.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Regular-C6rbFxYz.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-RegularItalic-CvPUdkvM.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-Thin-NicBC1pN.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Roboto-ThinItalic-CKlCjrO_.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"assets/server-D4EXUyhH.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-BFQ7HRig-3JyNWqf-.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-BFQ7HRig-DkUGf5Yf.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/sightsing-CJX3k0Fd-C5Fwkk2A.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-D29QwlyX.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/Study-R4LCAP7J.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/TagInformation-DfxG__6Q.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-BevtfWlp-B7ZMUAQJ.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-BevtfWlp-DqPA0VeF.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/typing-k-ojjO7G-6WUzbhh3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/User-DOCNnUcq.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/UserStats-DfDpe-Tt.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/VerifyEmail-DIvEVYE3.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/vue-router-CDq4a4rc.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/vue.runtime.esm-bundler-C3q8JS9f.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-BOnRlZgd-BoR5qGg1.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/word-work-Dd6tIKrt-0BhZ2cDk.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-r2bRTooK.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"b71387b4508120b59615e43d5e103706\"\n },\n {\n \"url\": \"img/icons/safari-pinned-tab.svg\",\n \"revision\": \"f22d501a35a87d9f21701cb031f6ea17\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"398b3508f5bf2bd2b63517e5335ce817\"\n },\n {\n \"url\": \"manifest.json\",\n \"revision\": \"14a155103e25199244cdda503219c3e1\"\n },\n {\n \"url\": \"robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"0ad80257ac95729a8c88588d23a396c1\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"/index.html\"), {\n allowlist: [/^(?!\\/(couch|express)).*$/],\n \n}));\n\n\n\n\n\n\n"],"names":["self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL","allowlist"],"mappings":"0nBAwBAA,KAAKC,cAELC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,yCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,8BACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,+CACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,2CACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,4CACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,0CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,yCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,0BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,gCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,MAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C,eAAgB,CAC3HC,UAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.2.
|
|
6
|
+
"version": "0.2.29",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"dev": "vite",
|
|
9
9
|
"build": "vite build",
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@mdi/font": "^7.3.67",
|
|
27
27
|
"@tonaljs/tonal": "^3.6.0",
|
|
28
|
-
"@vue-skuilder/common": "0.2.
|
|
29
|
-
"@vue-skuilder/common-ui": "0.2.
|
|
30
|
-
"@vue-skuilder/courseware": "0.2.
|
|
31
|
-
"@vue-skuilder/db": "0.2.
|
|
32
|
-
"@vue-skuilder/edit-ui": "0.2.
|
|
28
|
+
"@vue-skuilder/common": "0.2.29",
|
|
29
|
+
"@vue-skuilder/common-ui": "0.2.29",
|
|
30
|
+
"@vue-skuilder/courseware": "0.2.29",
|
|
31
|
+
"@vue-skuilder/db": "0.2.29",
|
|
32
|
+
"@vue-skuilder/edit-ui": "0.2.29",
|
|
33
33
|
"@vue/compiler-sfc": "^3.5.13",
|
|
34
34
|
"abcjs": "^6.2.2",
|
|
35
35
|
"canvas-confetti": "^1.9.3",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"engines": {
|
|
92
92
|
"node": ">=18"
|
|
93
93
|
},
|
|
94
|
-
"stableVersion": "0.2.
|
|
94
|
+
"stableVersion": "0.2.29"
|
|
95
95
|
}
|
package/src/router.ts
CHANGED
|
@@ -11,6 +11,7 @@ import SignUp from './views/SignUp.vue';
|
|
|
11
11
|
// Lazy: everything else — each becomes its own chunk
|
|
12
12
|
const About = () => import('./views/About.vue');
|
|
13
13
|
const AdminDashboard = () => import('./views/AdminDashboard.vue');
|
|
14
|
+
const AdminLearner = () => import('./views/AdminLearner.vue');
|
|
14
15
|
const Classrooms = () => import('./views/Classrooms.vue');
|
|
15
16
|
const ClassroomCtrlPanel = () => import('./components/Classrooms/ClassroomCtrlPanel.vue');
|
|
16
17
|
const JoinCode = () => import('./components/Classrooms/JoinCode.vue');
|
|
@@ -174,6 +175,13 @@ const router = createRouter({
|
|
|
174
175
|
component: AdminDashboard,
|
|
175
176
|
meta: { requiresAdmin: true },
|
|
176
177
|
},
|
|
178
|
+
{
|
|
179
|
+
path: '/admin/learners/:courseId?/:username?',
|
|
180
|
+
name: 'admin-learner',
|
|
181
|
+
props: true,
|
|
182
|
+
component: AdminLearner,
|
|
183
|
+
meta: { requiresAdmin: true },
|
|
184
|
+
},
|
|
177
185
|
{
|
|
178
186
|
path: '/user/:username',
|
|
179
187
|
alias: '/u/:username',
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="admin-dashboard">
|
|
3
3
|
<h1>Admin Dashboard</h1>
|
|
4
|
+
<v-btn class="mb-4" variant="tonal" prepend-icon="mdi-account-search" to="/admin/learners">
|
|
5
|
+
Learner diagnostics
|
|
6
|
+
</v-btn>
|
|
4
7
|
|
|
5
8
|
<!-- User Selection Section -->
|
|
6
9
|
<v-card class="mb-4">
|
|
@@ -65,22 +68,60 @@
|
|
|
65
68
|
</v-row>
|
|
66
69
|
|
|
67
70
|
<!-- Card History Section -->
|
|
68
|
-
<card-
|
|
69
|
-
v-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
<v-card v-if="selectedCard && selectedUserId" class="mt-4" variant="outlined">
|
|
72
|
+
<v-card-title class="d-flex align-center">
|
|
73
|
+
Card history: {{ selectedUserId }}
|
|
74
|
+
<v-spacer />
|
|
75
|
+
<v-btn variant="text" size="small" prepend-icon="mdi-account-search" :to="learnerLink">
|
|
76
|
+
Learner diagnostics
|
|
77
|
+
</v-btn>
|
|
78
|
+
</v-card-title>
|
|
79
|
+
<v-card-text>
|
|
80
|
+
<v-progress-linear v-if="dossierLoading" indeterminate />
|
|
81
|
+
<v-alert v-else-if="dossierError" type="error" variant="tonal" density="compact">{{ dossierError }}</v-alert>
|
|
82
|
+
<card-dossier-detail v-else-if="cardDossier" :dossier="cardDossier" />
|
|
83
|
+
<div v-else class="text-caption text-disabled">{{ selectedUserId }} has no history with this card.</div>
|
|
84
|
+
</v-card-text>
|
|
85
|
+
</v-card>
|
|
75
86
|
</div>
|
|
76
87
|
</template>
|
|
77
88
|
|
|
78
89
|
<script lang="ts">
|
|
79
90
|
import { defineComponent } from 'vue';
|
|
80
|
-
import { CardSearch, CardSearchResults,
|
|
91
|
+
import { CardSearch, CardSearchResults, CardLoader, getCurrentUser } from '@vue-skuilder/common-ui';
|
|
92
|
+
import { CardDossierDetail } from '@vue-skuilder/common-ui/admin';
|
|
93
|
+
import '@vue-skuilder/common-ui/admin/style';
|
|
81
94
|
import { getDataLayer, CourseLookup } from '@vue-skuilder/db';
|
|
95
|
+
import {
|
|
96
|
+
cardDossiers,
|
|
97
|
+
fetchLearnerDump,
|
|
98
|
+
fromDump,
|
|
99
|
+
type CardDossier,
|
|
100
|
+
type LearnerDump,
|
|
101
|
+
} from '@vue-skuilder/db/diagnostics';
|
|
82
102
|
import { allCourseWare } from '@vue-skuilder/courseware';
|
|
83
|
-
import { UserDBInterface,
|
|
103
|
+
import { UserDBInterface, DataLayerProvider, AdminDBInterface } from '@vue-skuilder/db';
|
|
104
|
+
import ENV from '../ENVIRONMENT_VARS';
|
|
105
|
+
|
|
106
|
+
// A learner's records, per learner and course, fetched once per page load with
|
|
107
|
+
// the admin's couch session cookie. Not through a data-layer UserDB: building
|
|
108
|
+
// another user's UserDB replaces the logged-in one.
|
|
109
|
+
const dumps = new Map<string, Promise<LearnerDump>>();
|
|
110
|
+
|
|
111
|
+
function learnerDump(username: string, courseId: string): Promise<LearnerDump> {
|
|
112
|
+
const key = `${courseId}::${username}`;
|
|
113
|
+
if (!dumps.has(key)) {
|
|
114
|
+
const pending = fetchLearnerDump({
|
|
115
|
+
couchUrl: `${ENV.COUCHDB_SERVER_PROTOCOL}://${ENV.COUCHDB_SERVER_URL}`,
|
|
116
|
+
username,
|
|
117
|
+
courseId,
|
|
118
|
+
auth: { kind: 'cookie' },
|
|
119
|
+
});
|
|
120
|
+
dumps.set(key, pending);
|
|
121
|
+
pending.catch(() => dumps.delete(key));
|
|
122
|
+
}
|
|
123
|
+
return dumps.get(key)!;
|
|
124
|
+
}
|
|
84
125
|
|
|
85
126
|
interface UserOption {
|
|
86
127
|
label: string;
|
|
@@ -92,7 +133,7 @@ export default defineComponent({
|
|
|
92
133
|
components: {
|
|
93
134
|
CardSearch,
|
|
94
135
|
CardSearchResults,
|
|
95
|
-
|
|
136
|
+
CardDossierDetail,
|
|
96
137
|
CardLoader,
|
|
97
138
|
},
|
|
98
139
|
data() {
|
|
@@ -104,12 +145,21 @@ export default defineComponent({
|
|
|
104
145
|
dataLayer: null as DataLayerProvider | null,
|
|
105
146
|
adminDB: null as AdminDBInterface | null,
|
|
106
147
|
selectedUserId: '',
|
|
107
|
-
|
|
148
|
+
cardDossier: null as CardDossier | null,
|
|
149
|
+
dossierLoading: false,
|
|
150
|
+
dossierError: null as string | null,
|
|
108
151
|
selectedCourseId: null as string | null,
|
|
109
152
|
userOptions: [] as UserOption[],
|
|
110
153
|
courseOptions: [] as UserOption[],
|
|
111
154
|
};
|
|
112
155
|
},
|
|
156
|
+
computed: {
|
|
157
|
+
learnerLink(): string {
|
|
158
|
+
if (!this.selectedCard || !this.selectedUserId) return '/admin/learners';
|
|
159
|
+
const course = encodeURIComponent(this.selectedCard.courseId);
|
|
160
|
+
return `/admin/learners/${course}/${encodeURIComponent(this.selectedUserId)}`;
|
|
161
|
+
},
|
|
162
|
+
},
|
|
113
163
|
async created() {
|
|
114
164
|
this.userDB = await getCurrentUser();
|
|
115
165
|
this.userId = this.userDB.getUsername();
|
|
@@ -138,17 +188,26 @@ export default defineComponent({
|
|
|
138
188
|
}
|
|
139
189
|
},
|
|
140
190
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
191
|
+
onUserSelected() {
|
|
192
|
+
void this.loadDossier();
|
|
193
|
+
},
|
|
146
194
|
|
|
195
|
+
/** The selected learner's record for the selected card, from their dataset. */
|
|
196
|
+
async loadDossier() {
|
|
197
|
+
const card = this.selectedCard;
|
|
198
|
+
const user = this.selectedUserId;
|
|
199
|
+
this.cardDossier = null;
|
|
200
|
+
this.dossierError = null;
|
|
201
|
+
if (!card || !user) return;
|
|
202
|
+
this.dossierLoading = true;
|
|
147
203
|
try {
|
|
148
|
-
|
|
204
|
+
const dataset = fromDump(await learnerDump(user, card.courseId), card.courseId);
|
|
205
|
+
if (card !== this.selectedCard || user !== this.selectedUserId) return;
|
|
206
|
+
this.cardDossier = cardDossiers(dataset).find((d) => d.cardId === card.cardId) ?? null;
|
|
149
207
|
} catch (error) {
|
|
150
|
-
|
|
151
|
-
|
|
208
|
+
this.dossierError = error instanceof Error ? error.message : String(error);
|
|
209
|
+
} finally {
|
|
210
|
+
this.dossierLoading = false;
|
|
152
211
|
}
|
|
153
212
|
},
|
|
154
213
|
|
|
@@ -158,6 +217,7 @@ export default defineComponent({
|
|
|
158
217
|
|
|
159
218
|
onCardSelected(card: { cardId: string; courseId: string }) {
|
|
160
219
|
this.selectedCard = card;
|
|
220
|
+
void this.loadDossier();
|
|
161
221
|
},
|
|
162
222
|
|
|
163
223
|
async loadCourses() {
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="pa-8">
|
|
3
|
+
<h1 class="text-h5 mb-4">Learner</h1>
|
|
4
|
+
|
|
5
|
+
<div class="d-flex flex-wrap ga-4 mb-4">
|
|
6
|
+
<v-autocomplete
|
|
7
|
+
:model-value="courseId"
|
|
8
|
+
:items="courseOptions"
|
|
9
|
+
item-title="label"
|
|
10
|
+
item-value="value"
|
|
11
|
+
label="Course"
|
|
12
|
+
density="compact"
|
|
13
|
+
hide-details
|
|
14
|
+
style="max-width: 28rem"
|
|
15
|
+
@update:model-value="pickCourse"
|
|
16
|
+
/>
|
|
17
|
+
<v-autocomplete
|
|
18
|
+
:model-value="selectedUser"
|
|
19
|
+
:items="userOptions"
|
|
20
|
+
label="Learner"
|
|
21
|
+
density="compact"
|
|
22
|
+
hide-details
|
|
23
|
+
style="max-width: 20rem"
|
|
24
|
+
:disabled="!courseId"
|
|
25
|
+
@update:model-value="pickUser"
|
|
26
|
+
/>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<learner-dataset-source
|
|
30
|
+
v-if="courseId"
|
|
31
|
+
:key="`${courseId}/${selectedUser ?? ''}`"
|
|
32
|
+
:couch-url="couchUrl"
|
|
33
|
+
:course-id="courseId"
|
|
34
|
+
:initial-username="selectedUser"
|
|
35
|
+
:autoload="!!selectedUser"
|
|
36
|
+
@loaded="onLoaded"
|
|
37
|
+
/>
|
|
38
|
+
<learner-diagnostics v-if="dataset" :dataset="dataset" class="mt-6" />
|
|
39
|
+
</div>
|
|
40
|
+
</template>
|
|
41
|
+
|
|
42
|
+
<script setup lang="ts">
|
|
43
|
+
import { onMounted, ref, shallowRef } from 'vue';
|
|
44
|
+
import { useRouter } from 'vue-router';
|
|
45
|
+
import { CourseLookup, getDataLayer } from '@vue-skuilder/db';
|
|
46
|
+
import type { LearnerDataset } from '@vue-skuilder/db/diagnostics';
|
|
47
|
+
import { LearnerDatasetSource, LearnerDiagnostics } from '@vue-skuilder/common-ui/admin';
|
|
48
|
+
import '@vue-skuilder/common-ui/admin/style';
|
|
49
|
+
import ENV from '../ENVIRONMENT_VARS';
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Admin view of one learner in one course: `/admin/learners/:courseId?/:username?`.
|
|
53
|
+
* Reads through the admin's couch session cookie, same origin as the app.
|
|
54
|
+
*/
|
|
55
|
+
const props = defineProps<{ courseId?: string; username?: string }>();
|
|
56
|
+
|
|
57
|
+
const router = useRouter();
|
|
58
|
+
const couchUrl = `${ENV.COUCHDB_SERVER_PROTOCOL}://${ENV.COUCHDB_SERVER_URL}`;
|
|
59
|
+
|
|
60
|
+
const courseOptions = ref<Array<{ label: string; value: string }>>([]);
|
|
61
|
+
const userOptions = ref<string[]>([]);
|
|
62
|
+
// Drives the source component's key. The route can follow a learner typed
|
|
63
|
+
// into the component without remounting (and refetching) it.
|
|
64
|
+
const selectedUser = ref(props.username);
|
|
65
|
+
const dataset = shallowRef<LearnerDataset | null>(null);
|
|
66
|
+
|
|
67
|
+
function syncUrl(courseId?: string, username?: string): void {
|
|
68
|
+
const parts = ['/admin/learners', courseId, courseId ? username : undefined].filter((p): p is string => !!p);
|
|
69
|
+
void router.replace(parts.map((p, i) => (i === 0 ? p : encodeURIComponent(p))).join('/'));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function pickCourse(courseId: string | null): void {
|
|
73
|
+
selectedUser.value = undefined;
|
|
74
|
+
dataset.value = null;
|
|
75
|
+
syncUrl(courseId ?? undefined);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function pickUser(username: string | null): void {
|
|
79
|
+
selectedUser.value = username ?? undefined;
|
|
80
|
+
syncUrl(props.courseId, selectedUser.value);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function onLoaded(loaded: LearnerDataset): void {
|
|
84
|
+
dataset.value = loaded;
|
|
85
|
+
if (loaded.username !== props.username) syncUrl(props.courseId, loaded.username);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
onMounted(async () => {
|
|
89
|
+
try {
|
|
90
|
+
const courses = await CourseLookup.allCourseWare();
|
|
91
|
+
courseOptions.value = courses
|
|
92
|
+
.filter((c) => c._id)
|
|
93
|
+
.map((c) => ({ label: c.name?.trim() || c._id, value: c._id }))
|
|
94
|
+
.sort((a, b) => a.label.localeCompare(b.label));
|
|
95
|
+
} catch (e) {
|
|
96
|
+
console.error('[AdminLearner] course list failed', e);
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
const users = await (await getDataLayer()).getAdminDB().getUsers();
|
|
100
|
+
userOptions.value = users
|
|
101
|
+
.map((u) => (u as { name?: string }).name)
|
|
102
|
+
.filter((name): name is string => !!name && !name.startsWith('Guest'))
|
|
103
|
+
.sort();
|
|
104
|
+
} catch (e) {
|
|
105
|
+
console.error('[AdminLearner] user list failed', e);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
</script>
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./chunk-D6hFPZc3.js";import{$ as e,C as t,H as n,K as r,S as i,T as a,Vt as o,_ as s,b as c,v as l,y as u}from"./vue.runtime.esm-bundler-C3q8JS9f.js";import{I as d,T as f,b as p,m,u as h}from"./common-ui.es-CN0Lc64m.js";import"./dist-l4NOxAbA.js";import"./MarkdownRenderer-kStoDRNE-HDBFbDeD.js";import{U as g,r as _}from"./dist-B1rlsz-O.js";import{t as v}from"./index-CF5bC3bl.js";import"./CourseWare-BTFRjgBR-fJXdIFUp.js";import"./chess-E2uOAyQS-Bq2eA-0f.js";import"./math-B4HbgYf6-DlDwrhG3.js";import"./piano-DF1g6yaX-Bz3YzlGc.js";import"./sightsing-BFQ7HRig-TY63jvHz.js";import"./typing-BevtfWlp-WuHuczGo.js";import{t as y}from"./dist-Bs_ymDcS.js";var b=a({name:`AdminDashboard`,components:{CardSearch:h,CardSearchResults:m,CardHistoryViewer:p,CardLoader:d},data(){return{query:``,selectedCard:null,userId:``,userDB:null,dataLayer:null,adminDB:null,selectedUserId:``,selectedUserReader:null,selectedCourseId:null,userOptions:[],courseOptions:[]}},async created(){this.userDB=await f(),this.userId=this.userDB.getUsername(),this.dataLayer=await g(),this.adminDB=this.dataLayer.getAdminDB(),await this.loadUsers(),await this.loadCourses()},methods:{async loadUsers(){try{this.userOptions=(await this.adminDB.getUsers()).filter(e=>e.name&&!e.name.startsWith(`Guest_`)).map(e=>({label:e.name||`Unknown User`,value:e.name||``})).filter(e=>e.value!==``)}catch(e){console.error(`Failed to load users:`,e)}},async onUserSelected(e){if(!e){this.selectedUserReader=null;return}try{this.selectedUserReader=await this.dataLayer.createUserReaderForUser(e)}catch(e){console.error(`Failed to create user reader:`,e),this.selectedUserReader=null}},onSearch(e){this.query=e},onCardSelected(e){this.selectedCard=e},async loadCourses(){try{this.courseOptions=(await _.allCourseWare()).filter(e=>e._id).map(e=>{let t=e.name&&e.name.trim(),n,r;return t&&t!==e._id&&t!==``?(n=t,r=t.toLowerCase()):(n=e._id,r=e._id.toLowerCase()),{label:`📚 ${n}`,value:e._id,sortKey:r}}).sort((e,t)=>e.sortKey.localeCompare(t.sortKey)),console.log(`Loaded ${this.courseOptions.length} courses for filtering (lightweight mode)`)}catch(e){console.error(`Failed to load courses (lightweight):`,e),await this.loadCoursesExpensive()}},async loadCoursesExpensive(){try{console.log(`Using expensive course loading (full configs)...`),this.courseOptions=(await this.dataLayer.getAdminDB().getCourses()).filter(e=>e.courseID).map(e=>{let t=e.name&&e.name.trim(),n=e.creator?` (${e.creator})`:``,r,i;return t&&t!==e.courseID?(r=t,i=t.toLowerCase()):(r=e.courseID,i=e.courseID.toLowerCase()),{label:`${e.public?`🌐`:`🔒`} ${r}${n}`,value:e.courseID,sortKey:i}}).sort((e,t)=>e.sortKey.localeCompare(t.sortKey)),console.log(`Loaded ${this.courseOptions.length} courses for filtering (expensive mode)`)}catch(e){console.error(`Failed to load courses (expensive):`,e),this.loadCoursesBasic()}},async loadCoursesBasic(){try{console.log(`Using fallback course loading (IDs only)`),this.courseOptions=[{label:`⚠️ Course names not available - using IDs only`,value:``}]}catch(e){console.error(`Failed to load basic courses:`,e)}},onCourseFilterChanged(){this.query},getCourseNameById(e){let t=this.courseOptions.find(t=>t.value===e);return t?t.label:e},getSelectedCourseDetails(){return this.selectedCourseId?`ID: ${this.selectedCourseId}`:``},viewLookup(e){return y.getView(e)}}}),x={class:`admin-dashboard`},S={key:0,class:`mt-2`},C={key:0,class:`text-caption text-grey-darken-1`};function _sfc_render(a,d,f,p,m,h){let g=r(`v-card-title`),_=r(`v-select`),v=r(`v-chip`),y=r(`v-card-text`),b=r(`v-card`),w=r(`card-search`),T=r(`card-search-results`),E=r(`v-col`),D=r(`card-loader`),O=r(`v-row`),k=r(`card-history-viewer`);return n(),c(`div`,x,[d[4]||(d[4]=s(`h1`,null,`Admin Dashboard`,-1)),t(b,{class:`mb-4`},{default:e(()=>[t(g,null,{default:e(()=>d[2]||(d[2]=[i(`User Selection`)])),_:1}),t(y,null,{default:e(()=>[t(_,{modelValue:a.selectedUserId,"onUpdate:modelValue":[d[0]||(d[0]=e=>a.selectedUserId=e),a.onUserSelected],items:a.userOptions,"item-title":`label`,"item-value":`value`,label:`Select User`},null,8,[`modelValue`,`items`,`onUpdate:modelValue`]),a.selectedUserId?(n(),l(v,{key:0,color:`primary`,class:`mt-2`},{default:e(()=>[i(` Viewing data for: `+o(a.selectedUserId),1)]),_:1})):u(``,!0)]),_:1})]),_:1}),t(b,{class:`mb-4`},{default:e(()=>[t(g,null,{default:e(()=>d[3]||(d[3]=[i(`Search Filters`)])),_:1}),t(y,null,{default:e(()=>[t(_,{modelValue:a.selectedCourseId,"onUpdate:modelValue":[d[1]||(d[1]=e=>a.selectedCourseId=e),a.onCourseFilterChanged],items:a.courseOptions,"item-title":`label`,"item-value":`value`,label:`Filter by Course (optional)`,clearable:``},null,8,[`modelValue`,`items`,`onUpdate:modelValue`]),a.selectedCourseId?(n(),c(`div`,S,[t(v,{color:`info`,class:`mb-1`},{default:e(()=>[i(` 🎯 `+o(a.getCourseNameById(a.selectedCourseId)),1)]),_:1}),a.getSelectedCourseDetails()?(n(),c(`div`,C,o(a.getSelectedCourseDetails()),1)):u(``,!0)])):(n(),l(v,{key:1,color:`warning`,class:`mt-2`},{default:e(()=>[i(` ⚠️ Searching ALL `+o(a.courseOptions.length)+` courses (may be slow) `,1)]),_:1}))]),_:1})]),_:1}),t(w,{onSearch:a.onSearch},null,8,[`onSearch`]),t(O,null,{default:e(()=>[t(E,{cols:`6`},{default:e(()=>[a.query?(n(),l(T,{key:0,query:a.query,"data-layer":a.dataLayer,"course-filter":a.selectedCourseId,onCardSelected:a.onCardSelected},null,8,[`query`,`data-layer`,`course-filter`,`onCardSelected`])):u(``,!0)]),_:1}),t(E,{cols:`6`},{default:e(()=>[a.selectedCard?(n(),l(D,{key:0,qualified_id:{courseID:a.selectedCard.courseId,cardID:a.selectedCard.cardId},"view-lookup":a.viewLookup},null,8,[`qualified_id`,`view-lookup`])):u(``,!0)]),_:1})]),_:1}),a.selectedCard&&a.selectedUserReader?(n(),l(k,{key:0,"card-id":a.selectedCard.cardId,"course-id":a.selectedCard.courseId,"user-id":a.selectedUserId,"user-d-b":a.selectedUserReader},null,8,[`card-id`,`course-id`,`user-id`,`user-d-b`])):u(``,!0)])}var w=v(b,[[`render`,_sfc_render],[`__scopeId`,`data-v-7409c94e`]]);export{w as default};
|
|
2
|
-
//# sourceMappingURL=AdminDashboard-CIcq497y.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdminDashboard-CIcq497y.js","names":[],"sources":["../../src/views/AdminDashboard.vue","../../src/views/AdminDashboard.vue"],"sourcesContent":["<template>\n <div class=\"admin-dashboard\">\n <h1>Admin Dashboard</h1>\n\n <!-- User Selection Section -->\n <v-card class=\"mb-4\">\n <v-card-title>User Selection</v-card-title>\n <v-card-text>\n <v-select\n v-model=\"selectedUserId\"\n :items=\"userOptions\"\n item-title=\"label\"\n item-value=\"value\"\n label=\"Select User\"\n @update:model-value=\"onUserSelected\"\n ></v-select>\n <v-chip v-if=\"selectedUserId\" color=\"primary\" class=\"mt-2\"> Viewing data for: {{ selectedUserId }} </v-chip>\n </v-card-text>\n </v-card>\n\n <!-- Course Filter Section -->\n <v-card class=\"mb-4\">\n <v-card-title>Search Filters</v-card-title>\n <v-card-text>\n <v-select\n v-model=\"selectedCourseId\"\n :items=\"courseOptions\"\n item-title=\"label\"\n item-value=\"value\"\n label=\"Filter by Course (optional)\"\n clearable\n @update:model-value=\"onCourseFilterChanged\"\n ></v-select>\n <div v-if=\"selectedCourseId\" class=\"mt-2\">\n <v-chip color=\"info\" class=\"mb-1\"> 🎯 {{ getCourseNameById(selectedCourseId) }} </v-chip>\n <div v-if=\"getSelectedCourseDetails()\" class=\"text-caption text-grey-darken-1\">\n {{ getSelectedCourseDetails() }}\n </div>\n </div>\n <v-chip v-else color=\"warning\" class=\"mt-2\">\n ⚠️ Searching ALL {{ courseOptions.length }} courses (may be slow)\n </v-chip>\n </v-card-text>\n </v-card>\n\n <!-- Card Search Section -->\n <card-search @search=\"onSearch\" />\n <v-row>\n <v-col cols=\"6\">\n <card-search-results\n v-if=\"query\"\n :query=\"query\"\n :data-layer=\"dataLayer\"\n :course-filter=\"selectedCourseId\"\n @card-selected=\"onCardSelected\"\n />\n </v-col>\n <v-col cols=\"6\">\n <card-loader\n v-if=\"selectedCard\"\n :qualified_id=\"{ courseID: selectedCard.courseId, cardID: selectedCard.cardId }\"\n :view-lookup=\"viewLookup\"\n />\n </v-col>\n </v-row>\n\n <!-- Card History Section -->\n <card-history-viewer\n v-if=\"selectedCard && selectedUserReader\"\n :card-id=\"selectedCard.cardId\"\n :course-id=\"selectedCard.courseId\"\n :user-id=\"selectedUserId\"\n :user-d-b=\"selectedUserReader\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { CardSearch, CardSearchResults, CardHistoryViewer, CardLoader, getCurrentUser } from '@vue-skuilder/common-ui';\nimport { getDataLayer, CourseLookup } from '@vue-skuilder/db';\nimport { allCourseWare } from '@vue-skuilder/courseware';\nimport { UserDBInterface, UserDBReader, DataLayerProvider, AdminDBInterface } from '@vue-skuilder/db';\n\ninterface UserOption {\n label: string;\n value: string;\n}\n\nexport default defineComponent({\n name: 'AdminDashboard',\n components: {\n CardSearch,\n CardSearchResults,\n CardHistoryViewer,\n CardLoader,\n },\n data() {\n return {\n query: '',\n selectedCard: null as { cardId: string; courseId: string } | null,\n userId: '',\n userDB: null as UserDBInterface | null,\n dataLayer: null as DataLayerProvider | null,\n adminDB: null as AdminDBInterface | null,\n selectedUserId: '',\n selectedUserReader: null as UserDBReader | null,\n selectedCourseId: null as string | null,\n userOptions: [] as UserOption[],\n courseOptions: [] as UserOption[],\n };\n },\n async created() {\n this.userDB = await getCurrentUser();\n this.userId = this.userDB.getUsername();\n this.dataLayer = await getDataLayer();\n this.adminDB = this.dataLayer.getAdminDB();\n\n // Load user list for selection\n await this.loadUsers();\n\n // Load available courses\n await this.loadCourses();\n },\n methods: {\n async loadUsers() {\n try {\n const users = await this.adminDB!.getUsers();\n this.userOptions = users\n .filter((user) => user.name && !user.name.startsWith('Guest_'))\n .map((user) => ({\n label: user.name || 'Unknown User',\n value: user.name || '',\n }))\n .filter((option) => option.value !== '');\n } catch (error) {\n console.error('Failed to load users:', error);\n }\n },\n\n async onUserSelected(userId: string) {\n if (!userId) {\n this.selectedUserReader = null;\n return;\n }\n\n try {\n this.selectedUserReader = await this.dataLayer!.createUserReaderForUser(userId);\n } catch (error) {\n console.error('Failed to create user reader:', error);\n this.selectedUserReader = null;\n }\n },\n\n onSearch(query: string) {\n this.query = query;\n },\n\n onCardSelected(card: { cardId: string; courseId: string }) {\n this.selectedCard = card;\n },\n\n async loadCourses() {\n try {\n // Try efficient lookup-only approach first\n // const coursesDB = this.dataLayer!.getCoursesDB();\n\n // Get basic course list from lookup DB (lightweight, just IDs and basic names)\n const lookupCourses = await CourseLookup.allCourseWare();\n\n this.courseOptions = lookupCourses\n .filter((course) => course._id)\n .map((course) => {\n const courseName = course.name && course.name.trim();\n let displayName: string;\n let sortKey: string;\n\n if (courseName && courseName !== course._id && courseName !== '') {\n // Has a real name different from ID\n displayName = courseName;\n sortKey = courseName.toLowerCase();\n } else {\n // No name or name is same as ID - use ID\n displayName = course._id;\n sortKey = course._id.toLowerCase();\n }\n\n // Simple display without expensive metadata lookups\n return {\n label: `📚 ${displayName}`,\n value: course._id,\n sortKey,\n };\n })\n .sort((a, b) => a.sortKey.localeCompare(b.sortKey));\n\n console.log(`Loaded ${this.courseOptions.length} courses for filtering (lightweight mode)`);\n } catch (error) {\n console.error('Failed to load courses (lightweight):', error);\n // Fallback to expensive approach\n await this.loadCoursesExpensive();\n }\n },\n\n async loadCoursesExpensive() {\n try {\n console.log('Using expensive course loading (full configs)...');\n const adminDB = this.dataLayer!.getAdminDB();\n const basicCourseList = await adminDB.getCourses(); // This fetches full configs\n\n this.courseOptions = basicCourseList\n .filter((course) => course.courseID)\n .map((course) => {\n const courseName = course.name && course.name.trim();\n const creator = course.creator ? ` (${course.creator})` : '';\n\n let displayName: string;\n let sortKey: string;\n\n if (courseName && courseName !== course.courseID) {\n // Has a real name different from ID\n displayName = courseName;\n sortKey = courseName.toLowerCase();\n } else {\n // No name or name is same as ID - use ID\n displayName = course.courseID!;\n sortKey = course.courseID!.toLowerCase();\n }\n\n const visibility = course.public ? '🌐' : '🔒';\n\n return {\n label: `${visibility} ${displayName}${creator}`,\n value: course.courseID!,\n sortKey,\n };\n })\n .sort((a, b) => a.sortKey.localeCompare(b.sortKey));\n\n console.log(`Loaded ${this.courseOptions.length} courses for filtering (expensive mode)`);\n } catch (error) {\n console.error('Failed to load courses (expensive):', error);\n // Final fallback\n this.loadCoursesBasic();\n }\n },\n\n async loadCoursesBasic() {\n try {\n // Fallback: just get course IDs from lookup DB (fast)\n console.log('Using fallback course loading (IDs only)');\n // This would need a new method that just gets the lookup docs without full configs\n // For now, we'll show a basic message\n this.courseOptions = [{ label: '⚠️ Course names not available - using IDs only', value: '' }];\n } catch (error) {\n console.error('Failed to load basic courses:', error);\n }\n },\n\n onCourseFilterChanged() {\n // If there's an active search, re-run it with the new filter\n if (this.query) {\n // The CardSearchResults component will automatically re-search with the new filter\n }\n },\n\n getCourseNameById(courseId: string): string {\n const course = this.courseOptions.find((c) => c.value === courseId);\n return course ? course.label : courseId;\n },\n\n getSelectedCourseDetails(): string {\n if (!this.selectedCourseId) return '';\n\n // For now, just return the ID as additional context\n return `ID: ${this.selectedCourseId}`;\n },\n\n viewLookup(viewDescriptor: unknown) {\n return allCourseWare.getView(viewDescriptor);\n },\n },\n});\n</script>\n\n<style scoped>\n.admin-dashboard {\n padding: 2rem;\n}\n</style>\n","<template>\n <div class=\"admin-dashboard\">\n <h1>Admin Dashboard</h1>\n\n <!-- User Selection Section -->\n <v-card class=\"mb-4\">\n <v-card-title>User Selection</v-card-title>\n <v-card-text>\n <v-select\n v-model=\"selectedUserId\"\n :items=\"userOptions\"\n item-title=\"label\"\n item-value=\"value\"\n label=\"Select User\"\n @update:model-value=\"onUserSelected\"\n ></v-select>\n <v-chip v-if=\"selectedUserId\" color=\"primary\" class=\"mt-2\"> Viewing data for: {{ selectedUserId }} </v-chip>\n </v-card-text>\n </v-card>\n\n <!-- Course Filter Section -->\n <v-card class=\"mb-4\">\n <v-card-title>Search Filters</v-card-title>\n <v-card-text>\n <v-select\n v-model=\"selectedCourseId\"\n :items=\"courseOptions\"\n item-title=\"label\"\n item-value=\"value\"\n label=\"Filter by Course (optional)\"\n clearable\n @update:model-value=\"onCourseFilterChanged\"\n ></v-select>\n <div v-if=\"selectedCourseId\" class=\"mt-2\">\n <v-chip color=\"info\" class=\"mb-1\"> 🎯 {{ getCourseNameById(selectedCourseId) }} </v-chip>\n <div v-if=\"getSelectedCourseDetails()\" class=\"text-caption text-grey-darken-1\">\n {{ getSelectedCourseDetails() }}\n </div>\n </div>\n <v-chip v-else color=\"warning\" class=\"mt-2\">\n ⚠️ Searching ALL {{ courseOptions.length }} courses (may be slow)\n </v-chip>\n </v-card-text>\n </v-card>\n\n <!-- Card Search Section -->\n <card-search @search=\"onSearch\" />\n <v-row>\n <v-col cols=\"6\">\n <card-search-results\n v-if=\"query\"\n :query=\"query\"\n :data-layer=\"dataLayer\"\n :course-filter=\"selectedCourseId\"\n @card-selected=\"onCardSelected\"\n />\n </v-col>\n <v-col cols=\"6\">\n <card-loader\n v-if=\"selectedCard\"\n :qualified_id=\"{ courseID: selectedCard.courseId, cardID: selectedCard.cardId }\"\n :view-lookup=\"viewLookup\"\n />\n </v-col>\n </v-row>\n\n <!-- Card History Section -->\n <card-history-viewer\n v-if=\"selectedCard && selectedUserReader\"\n :card-id=\"selectedCard.cardId\"\n :course-id=\"selectedCard.courseId\"\n :user-id=\"selectedUserId\"\n :user-d-b=\"selectedUserReader\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { CardSearch, CardSearchResults, CardHistoryViewer, CardLoader, getCurrentUser } from '@vue-skuilder/common-ui';\nimport { getDataLayer, CourseLookup } from '@vue-skuilder/db';\nimport { allCourseWare } from '@vue-skuilder/courseware';\nimport { UserDBInterface, UserDBReader, DataLayerProvider, AdminDBInterface } from '@vue-skuilder/db';\n\ninterface UserOption {\n label: string;\n value: string;\n}\n\nexport default defineComponent({\n name: 'AdminDashboard',\n components: {\n CardSearch,\n CardSearchResults,\n CardHistoryViewer,\n CardLoader,\n },\n data() {\n return {\n query: '',\n selectedCard: null as { cardId: string; courseId: string } | null,\n userId: '',\n userDB: null as UserDBInterface | null,\n dataLayer: null as DataLayerProvider | null,\n adminDB: null as AdminDBInterface | null,\n selectedUserId: '',\n selectedUserReader: null as UserDBReader | null,\n selectedCourseId: null as string | null,\n userOptions: [] as UserOption[],\n courseOptions: [] as UserOption[],\n };\n },\n async created() {\n this.userDB = await getCurrentUser();\n this.userId = this.userDB.getUsername();\n this.dataLayer = await getDataLayer();\n this.adminDB = this.dataLayer.getAdminDB();\n\n // Load user list for selection\n await this.loadUsers();\n\n // Load available courses\n await this.loadCourses();\n },\n methods: {\n async loadUsers() {\n try {\n const users = await this.adminDB!.getUsers();\n this.userOptions = users\n .filter((user) => user.name && !user.name.startsWith('Guest_'))\n .map((user) => ({\n label: user.name || 'Unknown User',\n value: user.name || '',\n }))\n .filter((option) => option.value !== '');\n } catch (error) {\n console.error('Failed to load users:', error);\n }\n },\n\n async onUserSelected(userId: string) {\n if (!userId) {\n this.selectedUserReader = null;\n return;\n }\n\n try {\n this.selectedUserReader = await this.dataLayer!.createUserReaderForUser(userId);\n } catch (error) {\n console.error('Failed to create user reader:', error);\n this.selectedUserReader = null;\n }\n },\n\n onSearch(query: string) {\n this.query = query;\n },\n\n onCardSelected(card: { cardId: string; courseId: string }) {\n this.selectedCard = card;\n },\n\n async loadCourses() {\n try {\n // Try efficient lookup-only approach first\n // const coursesDB = this.dataLayer!.getCoursesDB();\n\n // Get basic course list from lookup DB (lightweight, just IDs and basic names)\n const lookupCourses = await CourseLookup.allCourseWare();\n\n this.courseOptions = lookupCourses\n .filter((course) => course._id)\n .map((course) => {\n const courseName = course.name && course.name.trim();\n let displayName: string;\n let sortKey: string;\n\n if (courseName && courseName !== course._id && courseName !== '') {\n // Has a real name different from ID\n displayName = courseName;\n sortKey = courseName.toLowerCase();\n } else {\n // No name or name is same as ID - use ID\n displayName = course._id;\n sortKey = course._id.toLowerCase();\n }\n\n // Simple display without expensive metadata lookups\n return {\n label: `📚 ${displayName}`,\n value: course._id,\n sortKey,\n };\n })\n .sort((a, b) => a.sortKey.localeCompare(b.sortKey));\n\n console.log(`Loaded ${this.courseOptions.length} courses for filtering (lightweight mode)`);\n } catch (error) {\n console.error('Failed to load courses (lightweight):', error);\n // Fallback to expensive approach\n await this.loadCoursesExpensive();\n }\n },\n\n async loadCoursesExpensive() {\n try {\n console.log('Using expensive course loading (full configs)...');\n const adminDB = this.dataLayer!.getAdminDB();\n const basicCourseList = await adminDB.getCourses(); // This fetches full configs\n\n this.courseOptions = basicCourseList\n .filter((course) => course.courseID)\n .map((course) => {\n const courseName = course.name && course.name.trim();\n const creator = course.creator ? ` (${course.creator})` : '';\n\n let displayName: string;\n let sortKey: string;\n\n if (courseName && courseName !== course.courseID) {\n // Has a real name different from ID\n displayName = courseName;\n sortKey = courseName.toLowerCase();\n } else {\n // No name or name is same as ID - use ID\n displayName = course.courseID!;\n sortKey = course.courseID!.toLowerCase();\n }\n\n const visibility = course.public ? '🌐' : '🔒';\n\n return {\n label: `${visibility} ${displayName}${creator}`,\n value: course.courseID!,\n sortKey,\n };\n })\n .sort((a, b) => a.sortKey.localeCompare(b.sortKey));\n\n console.log(`Loaded ${this.courseOptions.length} courses for filtering (expensive mode)`);\n } catch (error) {\n console.error('Failed to load courses (expensive):', error);\n // Final fallback\n this.loadCoursesBasic();\n }\n },\n\n async loadCoursesBasic() {\n try {\n // Fallback: just get course IDs from lookup DB (fast)\n console.log('Using fallback course loading (IDs only)');\n // This would need a new method that just gets the lookup docs without full configs\n // For now, we'll show a basic message\n this.courseOptions = [{ label: '⚠️ Course names not available - using IDs only', value: '' }];\n } catch (error) {\n console.error('Failed to load basic courses:', error);\n }\n },\n\n onCourseFilterChanged() {\n // If there's an active search, re-run it with the new filter\n if (this.query) {\n // The CardSearchResults component will automatically re-search with the new filter\n }\n },\n\n getCourseNameById(courseId: string): string {\n const course = this.courseOptions.find((c) => c.value === courseId);\n return course ? course.label : courseId;\n },\n\n getSelectedCourseDetails(): string {\n if (!this.selectedCourseId) return '';\n\n // For now, just return the ID as additional context\n return `ID: ${this.selectedCourseId}`;\n },\n\n viewLookup(viewDescriptor: unknown) {\n return allCourseWare.getView(viewDescriptor);\n },\n },\n});\n</script>\n\n<style scoped>\n.admin-dashboard {\n padding: 2rem;\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.admin-dashboard[data-v-7409c94e]{padding:2rem}
|