openlearn-next 0.3.3 → 0.3.5

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.
Files changed (29) hide show
  1. package/dist/assets/{BatchPickerModal-2jsnyMYM.js → BatchPickerModal-Dtoea1V3.js} +1 -1
  2. package/dist/assets/{ClassesView-DUnZ5nFa.js → ClassesView-B-jRQxdS.js} +1 -1
  3. package/dist/assets/{CloudDriveModal-DXJktxoq.js → CloudDriveModal-BWTV8a8T.js} +1 -1
  4. package/dist/assets/{CourseManagement-ChHr_wNd.js → CourseManagement-CCfPc_CY.js} +1 -1
  5. package/dist/assets/{CourseWizardModal-RAaltA_q.js → CourseWizardModal-D4cBfjGs.js} +1 -1
  6. package/dist/assets/{Dashboard-BMXQhpnj.js → Dashboard-gsxGW7q1.js} +1 -1
  7. package/dist/assets/{ExportWeightModal-BwW76Kqo.js → ExportWeightModal-BbjHHoCT.js} +1 -1
  8. package/dist/assets/{HelpView-BqUqq-QE.js → HelpView--MQfJiFF.js} +2 -2
  9. package/dist/assets/{ImportLessonsModal-DHLxg68P.js → ImportLessonsModal-AAOtANpB.js} +1 -1
  10. package/dist/assets/{InteractiveCoursewareViewer-C8uZcebL.js → InteractiveCoursewareViewer-Tes2QD6f.js} +1 -1
  11. package/dist/assets/{InteractiveWhiteboard-C2HAx6zv.js → InteractiveWhiteboard-B6ErhtNE.js} +1 -1
  12. package/dist/assets/{LazyCourseware-C1bH8aKj.js → LazyCourseware-BsZu3p5U.js} +1 -1
  13. package/dist/assets/{LazyWhiteboard-DE9sMBUF.js → LazyWhiteboard-CKnCRtFY.js} +1 -1
  14. package/dist/assets/{LessonEditorView-mIxHUfYb.js → LessonEditorView-VzUJZUSD.js} +1 -1
  15. package/dist/assets/{LiveClassroomView-DNGZaCC8.js → LiveClassroomView-CTeUIrDr.js} +1 -1
  16. package/dist/assets/{NotificationDetailModal-CPrHxHcC.js → NotificationDetailModal-CSTLco-A.js} +1 -1
  17. package/dist/assets/{PluginView-DSLBfNDj.js → PluginView-NuFAl1cx.js} +1 -1
  18. package/dist/assets/{QuizGeneratorModal-CoeGXKck.js → QuizGeneratorModal-CfRWi15M.js} +1 -1
  19. package/dist/assets/{StudentAssignmentView-V7Kp6TnP.js → StudentAssignmentView-DvWlg_x-.js} +1 -1
  20. package/dist/assets/{StudentLessonView-IZVXM5kz.js → StudentLessonView-BSlGMvNX.js} +1 -1
  21. package/dist/assets/{StudentPreviewModal-DwumAjWX.js → StudentPreviewModal-CspHoFJZ.js} +1 -1
  22. package/dist/assets/{StudentView-3mCaDwFB.js → StudentView-PgJn1UEY.js} +1 -1
  23. package/dist/assets/{SystemResourceLibraryModal-B6ms798K.js → SystemResourceLibraryModal-BIijjMl0.js} +1 -1
  24. package/dist/assets/{TeacherView-BVd_ZMFH.js → TeacherView-BAx0ID4U.js} +1 -1
  25. package/dist/assets/{index-Vr-_Vpp3.js → index-BAmfY-YR.js} +1 -1
  26. package/dist/assets/{index-Cwf8LQbY.js → index-afBTqYFz.js} +3 -3
  27. package/dist/index.html +1 -1
  28. package/dist/server.cjs +55 -57
  29. package/package.json +2 -2
@@ -1 +1 @@
1
- import{j as e}from"./vendor-react-0Lg0vA-4.js";import{CloudDrivePanel as P}from"./CloudDriveModal-DXJktxoq.js";import{p as h,ai as D,T as $}from"./vendor-icons-Dq6MhgH9.js";import"./LazyCourseware-C1bH8aKj.js";import"./vendor-pdf-Cp-cYteE.js";import"./index-Cwf8LQbY.js";import"./vendor-utils-BEhuP0Zq.js";import"./vendor-motion-DjY2czvL.js";import"./vendor-pptx-B_NheIKl.js";import"./vendor-charts-CRXa4AlU.js";function B(b){const{isSystemResourceLibraryOpen:y,setIsSystemResourceLibraryOpen:v,lang:s,systemResourceTab:d,setSystemResourceTab:p,selectedLibraryResourceId:o,setSelectedLibraryResourceId:c,vfsNodes:N,currentVfsParent:j,setCurrentVfsParent:w,cloudDrivePreviewNode:k,setCloudDrivePreviewNode:R,loadingLibraryResources:f,libraryResources:g,fetchLibraryResources:x}=b;return e.jsx(e.Fragment,{children:y&&e.jsx("div",{className:"fixed inset-0 bg-gray-900/40 backdrop-blur-sm flex items-center justify-center p-6 z-50",children:e.jsxs("div",{className:"bg-white border text-gray-900 border-gray-200 rounded-2xl shadow-2xl w-full max-w-6xl h-[85vh] flex flex-col overflow-hidden animate-in fade-in zoom-in-95 duration-150",children:[e.jsxs("div",{className:"p-4 border-b border-gray-100 flex items-center justify-between bg-gray-50/80 shrink-0 flex-wrap gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx(h,{size:20,className:"text-emerald-500 animate-pulse"}),e.jsx("h2",{className:"font-semibold text-gray-800 text-lg",children:s==="zh"?"系统资源库与应用商城":"System Resource Library"}),e.jsxs("div",{className:"flex items-center gap-1 bg-slate-200/80 p-0.5 rounded-xl border border-slate-300/60 shadow-3xs ml-2",children:[e.jsxs("button",{onClick:()=>p("system"),className:`px-3 py-1 text-xs font-bold rounded-lg transition-all flex items-center gap-1.5 cursor-pointer ${d==="system"?"bg-white text-emerald-800 shadow-2xs font-extrabold":"text-slate-600 hover:text-slate-900"}`,children:[e.jsx(h,{size:13,className:"text-emerald-500"}),e.jsx("span",{children:s==="zh"?"互动课件与系统资源":"System Resources"})]}),e.jsxs("button",{onClick:()=>p("cloud"),className:`px-3 py-1 text-xs font-bold rounded-lg transition-all flex items-center gap-1.5 cursor-pointer ${d==="cloud"?"bg-white text-indigo-800 shadow-2xs font-extrabold":"text-slate-600 hover:text-slate-900"}`,children:[e.jsx(D,{size:13,className:"text-indigo-500"}),e.jsx("span",{children:s==="zh"?"云端课程资源 (Cloud Drive)":"Cloud Course Resource"})]})]})]}),e.jsx("button",{onClick:()=>{v(!1),c(null)},className:"text-gray-400 hover:text-gray-600 font-bold p-1 overflow-hidden hover:bg-gray-200 rounded transition-colors text-lg inline-flex items-center justify-center w-8 h-8 cursor-pointer",children:"×"})]}),d==="cloud"?e.jsx(P,{vfsNodes:N,currentVfsParent:j,setCurrentVfsParent:w,cloudDrivePreviewNode:k,setCloudDrivePreviewNode:R}):e.jsxs("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[e.jsxs("div",{className:"w-80 border-r border-gray-100 bg-slate-50 flex flex-col shrink-0",children:[e.jsxs("div",{className:"p-4 border-b border-gray-200 bg-white space-y-2",children:[e.jsx("span",{className:"block text-xs font-semibold text-gray-500 uppercase tracking-wider mb-1",children:s==="zh"?"上传新资源":"Upload New Resource"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("label",{className:"flex flex-col items-center justify-center p-3 bg-slate-50 hover:bg-indigo-50 border border-dashed border-gray-300 hover:border-indigo-400 rounded-xl cursor-pointer text-center transition-all group",children:[e.jsx("span",{className:"text-lg mb-1 group-hover:scale-110 transition-transform",children:"📄"}),e.jsx("span",{className:"font-bold text-indigo-600 text-[10px] break-all leading-tight",children:s==="zh"?"单HTML文件":"Single HTML"}),e.jsx("input",{type:"file",accept:".html,.htm",className:"hidden",onChange:async t=>{const r=t.target.files?.[0];if(!r)return;const i=new FileReader;i.onload=async n=>{const a=n.target?.result;try{(await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r.name,type:"html",content:a})})).ok&&x()}catch(l){console.error("Library upload failed:",l)}},i.readAsText(r)}})]}),e.jsxs("label",{className:"flex flex-col items-center justify-center p-3 bg-slate-50 hover:bg-teal-50 border border-dashed border-gray-300 hover:border-teal-400 rounded-xl cursor-pointer text-center transition-all group",children:[e.jsx("span",{className:"text-lg mb-1 group-hover:scale-110 transition-transform",children:"📁"}),e.jsx("span",{className:"font-bold text-teal-600 text-[10px] break-all leading-tight",children:s==="zh"?"完整文件夹":"Directory Folder"}),e.jsx("input",{type:"file",webkitdirectory:"",directory:"",multiple:!0,className:"hidden",onChange:async t=>{const r=t.target.files;if(!r||r.length===0)return;const i=[];let n="";for(let a=0;a<r.length;a++){const l=r[a],u=l.webkitRelativePath||l.name;n||(n=u.split("/")[0]||"library_resource");const z=l.name.split(".").pop()?.toLowerCase(),C=["png","jpg","jpeg","gif","webp","ico"].includes(z||"");await new Promise(L=>{const m=new FileReader;m.onload=S=>{const T=S.target?.result;i.push({path:u,content:T}),L()},C?m.readAsDataURL(l):m.readAsText(l)})}try{(await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:n,type:"folder",content:JSON.stringify(i)})})).ok&&x()}catch(a){console.error("Folder upload failed:",a)}}})]})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-3 space-y-2",children:[e.jsx("span",{className:"block text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1",children:s==="zh"?"当前已存储的资源":"Stored Resources"}),f&&e.jsx("div",{className:"text-center py-8 text-xs text-slate-400",children:"Loading resources..."}),!f&&g.length===0&&e.jsx("div",{className:"text-center py-12 text-xs text-slate-400 italic",children:s==="zh"?"暂无资源,支持拖入或上传文件。":"No resources in library. Upload some above!"}),g.map(t=>{const r=o===t.id;return e.jsxs("div",{onClick:()=>c(t.id),className:`p-2.5 rounded-xl border flex justify-between items-center cursor-pointer transition-all ${r?"bg-indigo-50 border-indigo-200 shadow-xs":"bg-white border-slate-100 hover:border-slate-200 hover:shadow-2xs"}`,children:[e.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[e.jsx("span",{className:"text-base select-none",children:t.type==="folder"?"📁":"📄"}),e.jsxs("div",{className:"text-left min-w-0",children:[e.jsx("div",{className:"text-xs font-semibold text-gray-700 truncate font-sans",title:t.name,children:t.name}),e.jsxs("div",{className:"text-[9px] text-gray-400 mt-0.5 font-mono",children:[new Date(t.created_at).toLocaleDateString()," • ",t.id]})]})]}),e.jsx("button",{onClick:async i=>{i.stopPropagation(),confirm(s==="zh"?`确认删除资源 [${t.name}] 吗?`:`Delete resource [${t.name}]?`)&&(await fetch(`/api/resources/${t.id}`,{method:"DELETE"}),o===t.id&&c(null),x())},className:"p-1 hover:bg-red-50 text-slate-400 hover:text-red-500 rounded-md transition-colors cursor-pointer",title:"Delete",children:e.jsx($,{size:12,className:"shrink-0"})})]},t.id)})]})]}),e.jsx("div",{className:"flex-1 bg-white flex flex-col min-w-0",children:o?e.jsxs("div",{className:"flex-1 flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"p-3 border-b border-gray-100 bg-gray-50 flex items-center justify-between shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-bold text-gray-700 text-sm",children:s==="zh"?"交互沙箱应用预览:":"Sandbox Live Preview:"}),e.jsxs("span",{className:"text-xs bg-slate-200/70 text-slate-700 px-2 py-0.5 rounded font-mono",children:["/api/resources/",o,"/"]})]}),e.jsx("button",{onClick:()=>c(null),className:"text-xs text-indigo-600 hover:text-indigo-800 font-medium cursor-pointer",children:s==="zh"?"关闭预览":"Close Preview"})]}),e.jsx("div",{className:"flex-1 relative bg-slate-100/50",children:e.jsx("iframe",{src:`/api/resources/${o}/`,sandbox:"allow-scripts",className:"w-full h-full border-none bg-white font-sans",title:"Interactive Resource Preview"})})]}):e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-gray-400 bg-slate-50/50",children:[e.jsx(h,{size:48,className:"text-gray-300 mb-3 opacity-60"}),e.jsx("p",{className:"text-sm font-semibold text-gray-600",children:s==="zh"?"未选择资源进行预览":"No Resource Selected"}),e.jsx("p",{className:"text-xs text-center text-gray-400 mt-1 max-w-sm",children:s==="zh"?"请在左侧列表中点击选择要预览/管理的 HTML 单文件或完整 applet 文件夹,右侧即可进行沙箱实时运行。":"Click any resource in the list on the left to preview its interactive live sandbox iframe here."})]})})]})]})})})}export{B as SystemResourceLibraryModal};
1
+ import{j as e}from"./vendor-react-0Lg0vA-4.js";import{CloudDrivePanel as P}from"./CloudDriveModal-BWTV8a8T.js";import{p as h,ai as D,T as $}from"./vendor-icons-Dq6MhgH9.js";import"./LazyCourseware-BsZu3p5U.js";import"./vendor-pdf-Cp-cYteE.js";import"./index-afBTqYFz.js";import"./vendor-utils-BEhuP0Zq.js";import"./vendor-motion-DjY2czvL.js";import"./vendor-pptx-B_NheIKl.js";import"./vendor-charts-CRXa4AlU.js";function B(b){const{isSystemResourceLibraryOpen:y,setIsSystemResourceLibraryOpen:v,lang:s,systemResourceTab:d,setSystemResourceTab:p,selectedLibraryResourceId:o,setSelectedLibraryResourceId:c,vfsNodes:N,currentVfsParent:j,setCurrentVfsParent:w,cloudDrivePreviewNode:k,setCloudDrivePreviewNode:R,loadingLibraryResources:f,libraryResources:g,fetchLibraryResources:x}=b;return e.jsx(e.Fragment,{children:y&&e.jsx("div",{className:"fixed inset-0 bg-gray-900/40 backdrop-blur-sm flex items-center justify-center p-6 z-50",children:e.jsxs("div",{className:"bg-white border text-gray-900 border-gray-200 rounded-2xl shadow-2xl w-full max-w-6xl h-[85vh] flex flex-col overflow-hidden animate-in fade-in zoom-in-95 duration-150",children:[e.jsxs("div",{className:"p-4 border-b border-gray-100 flex items-center justify-between bg-gray-50/80 shrink-0 flex-wrap gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx(h,{size:20,className:"text-emerald-500 animate-pulse"}),e.jsx("h2",{className:"font-semibold text-gray-800 text-lg",children:s==="zh"?"系统资源库与应用商城":"System Resource Library"}),e.jsxs("div",{className:"flex items-center gap-1 bg-slate-200/80 p-0.5 rounded-xl border border-slate-300/60 shadow-3xs ml-2",children:[e.jsxs("button",{onClick:()=>p("system"),className:`px-3 py-1 text-xs font-bold rounded-lg transition-all flex items-center gap-1.5 cursor-pointer ${d==="system"?"bg-white text-emerald-800 shadow-2xs font-extrabold":"text-slate-600 hover:text-slate-900"}`,children:[e.jsx(h,{size:13,className:"text-emerald-500"}),e.jsx("span",{children:s==="zh"?"互动课件与系统资源":"System Resources"})]}),e.jsxs("button",{onClick:()=>p("cloud"),className:`px-3 py-1 text-xs font-bold rounded-lg transition-all flex items-center gap-1.5 cursor-pointer ${d==="cloud"?"bg-white text-indigo-800 shadow-2xs font-extrabold":"text-slate-600 hover:text-slate-900"}`,children:[e.jsx(D,{size:13,className:"text-indigo-500"}),e.jsx("span",{children:s==="zh"?"云端课程资源 (Cloud Drive)":"Cloud Course Resource"})]})]})]}),e.jsx("button",{onClick:()=>{v(!1),c(null)},className:"text-gray-400 hover:text-gray-600 font-bold p-1 overflow-hidden hover:bg-gray-200 rounded transition-colors text-lg inline-flex items-center justify-center w-8 h-8 cursor-pointer",children:"×"})]}),d==="cloud"?e.jsx(P,{vfsNodes:N,currentVfsParent:j,setCurrentVfsParent:w,cloudDrivePreviewNode:k,setCloudDrivePreviewNode:R}):e.jsxs("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[e.jsxs("div",{className:"w-80 border-r border-gray-100 bg-slate-50 flex flex-col shrink-0",children:[e.jsxs("div",{className:"p-4 border-b border-gray-200 bg-white space-y-2",children:[e.jsx("span",{className:"block text-xs font-semibold text-gray-500 uppercase tracking-wider mb-1",children:s==="zh"?"上传新资源":"Upload New Resource"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("label",{className:"flex flex-col items-center justify-center p-3 bg-slate-50 hover:bg-indigo-50 border border-dashed border-gray-300 hover:border-indigo-400 rounded-xl cursor-pointer text-center transition-all group",children:[e.jsx("span",{className:"text-lg mb-1 group-hover:scale-110 transition-transform",children:"📄"}),e.jsx("span",{className:"font-bold text-indigo-600 text-[10px] break-all leading-tight",children:s==="zh"?"单HTML文件":"Single HTML"}),e.jsx("input",{type:"file",accept:".html,.htm",className:"hidden",onChange:async t=>{const r=t.target.files?.[0];if(!r)return;const i=new FileReader;i.onload=async n=>{const a=n.target?.result;try{(await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r.name,type:"html",content:a})})).ok&&x()}catch(l){console.error("Library upload failed:",l)}},i.readAsText(r)}})]}),e.jsxs("label",{className:"flex flex-col items-center justify-center p-3 bg-slate-50 hover:bg-teal-50 border border-dashed border-gray-300 hover:border-teal-400 rounded-xl cursor-pointer text-center transition-all group",children:[e.jsx("span",{className:"text-lg mb-1 group-hover:scale-110 transition-transform",children:"📁"}),e.jsx("span",{className:"font-bold text-teal-600 text-[10px] break-all leading-tight",children:s==="zh"?"完整文件夹":"Directory Folder"}),e.jsx("input",{type:"file",webkitdirectory:"",directory:"",multiple:!0,className:"hidden",onChange:async t=>{const r=t.target.files;if(!r||r.length===0)return;const i=[];let n="";for(let a=0;a<r.length;a++){const l=r[a],u=l.webkitRelativePath||l.name;n||(n=u.split("/")[0]||"library_resource");const z=l.name.split(".").pop()?.toLowerCase(),C=["png","jpg","jpeg","gif","webp","ico"].includes(z||"");await new Promise(L=>{const m=new FileReader;m.onload=S=>{const T=S.target?.result;i.push({path:u,content:T}),L()},C?m.readAsDataURL(l):m.readAsText(l)})}try{(await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:n,type:"folder",content:JSON.stringify(i)})})).ok&&x()}catch(a){console.error("Folder upload failed:",a)}}})]})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-3 space-y-2",children:[e.jsx("span",{className:"block text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1",children:s==="zh"?"当前已存储的资源":"Stored Resources"}),f&&e.jsx("div",{className:"text-center py-8 text-xs text-slate-400",children:"Loading resources..."}),!f&&g.length===0&&e.jsx("div",{className:"text-center py-12 text-xs text-slate-400 italic",children:s==="zh"?"暂无资源,支持拖入或上传文件。":"No resources in library. Upload some above!"}),g.map(t=>{const r=o===t.id;return e.jsxs("div",{onClick:()=>c(t.id),className:`p-2.5 rounded-xl border flex justify-between items-center cursor-pointer transition-all ${r?"bg-indigo-50 border-indigo-200 shadow-xs":"bg-white border-slate-100 hover:border-slate-200 hover:shadow-2xs"}`,children:[e.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[e.jsx("span",{className:"text-base select-none",children:t.type==="folder"?"📁":"📄"}),e.jsxs("div",{className:"text-left min-w-0",children:[e.jsx("div",{className:"text-xs font-semibold text-gray-700 truncate font-sans",title:t.name,children:t.name}),e.jsxs("div",{className:"text-[9px] text-gray-400 mt-0.5 font-mono",children:[new Date(t.created_at).toLocaleDateString()," • ",t.id]})]})]}),e.jsx("button",{onClick:async i=>{i.stopPropagation(),confirm(s==="zh"?`确认删除资源 [${t.name}] 吗?`:`Delete resource [${t.name}]?`)&&(await fetch(`/api/resources/${t.id}`,{method:"DELETE"}),o===t.id&&c(null),x())},className:"p-1 hover:bg-red-50 text-slate-400 hover:text-red-500 rounded-md transition-colors cursor-pointer",title:"Delete",children:e.jsx($,{size:12,className:"shrink-0"})})]},t.id)})]})]}),e.jsx("div",{className:"flex-1 bg-white flex flex-col min-w-0",children:o?e.jsxs("div",{className:"flex-1 flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"p-3 border-b border-gray-100 bg-gray-50 flex items-center justify-between shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-bold text-gray-700 text-sm",children:s==="zh"?"交互沙箱应用预览:":"Sandbox Live Preview:"}),e.jsxs("span",{className:"text-xs bg-slate-200/70 text-slate-700 px-2 py-0.5 rounded font-mono",children:["/api/resources/",o,"/"]})]}),e.jsx("button",{onClick:()=>c(null),className:"text-xs text-indigo-600 hover:text-indigo-800 font-medium cursor-pointer",children:s==="zh"?"关闭预览":"Close Preview"})]}),e.jsx("div",{className:"flex-1 relative bg-slate-100/50",children:e.jsx("iframe",{src:`/api/resources/${o}/`,sandbox:"allow-scripts",className:"w-full h-full border-none bg-white font-sans",title:"Interactive Resource Preview"})})]}):e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-gray-400 bg-slate-50/50",children:[e.jsx(h,{size:48,className:"text-gray-300 mb-3 opacity-60"}),e.jsx("p",{className:"text-sm font-semibold text-gray-600",children:s==="zh"?"未选择资源进行预览":"No Resource Selected"}),e.jsx("p",{className:"text-xs text-center text-gray-400 mt-1 max-w-sm",children:s==="zh"?"请在左侧列表中点击选择要预览/管理的 HTML 单文件或完整 applet 文件夹,右侧即可进行沙箱实时运行。":"Click any resource in the list on the left to preview its interactive live sandbox iframe here."})]})})]})]})})})}export{B as SystemResourceLibraryModal};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B-YxO39A.css"])))=>i.map(i=>d[i]);
2
- import{_ as u}from"./vendor-pdf-Cp-cYteE.js";import{j as e,r as c}from"./vendor-react-0Lg0vA-4.js";import{u as v,a as _,E as ee,D as te}from"./index-Cwf8LQbY.js";import{ad as se,ae as ne,B as ie,r as re,U as oe,a5 as le,l as ae,u as y,S as de,O as ce,x as ue,w as me}from"./vendor-icons-Dq6MhgH9.js";import"./vendor-utils-BEhuP0Zq.js";import"./vendor-motion-DjY2czvL.js";import"./vendor-pptx-B_NheIKl.js";import"./vendor-charts-CRXa4AlU.js";const xe=t=>{if(t.status==="cancelled"||t.status==="holiday")return!1;if(!t.time_slot)return!0;try{const o=t.time_slot.split("-");if(o.length<2)return!0;const i=o[1].trim(),[s,n]=i.split(":").map(Number),r=new Date,d=r.getHours(),a=r.getMinutes();return!(d>s||d===s&&a>=n)}catch{return!0}};function he({mainNavCollapsed:t,setMainNavCollapsed:o,teacherTab:i,setTeacherTab:s,lang:n,session:r,todaySchedules:d}){const l=v(m=>m.extensionPoints).get("teacher.tab")||[];return _(m=>m.siteInfo),e.jsxs("div",{id:"navigation_sidebar",className:`${t?"w-16":"w-16 md:w-64"} bg-surface border-r border-theme text-main flex flex-col transition-all duration-300`,children:[e.jsxs("div",{className:`p-2 flex border-b border-theme-subtle ${t?"justify-center":"justify-between items-center px-4"} min-h-[48px] shrink-0`,children:[!t&&e.jsx("span",{className:"hidden md:inline text-[11px] font-black tracking-widest text-muted uppercase select-none",children:n==="zh"?"系统导航":"NAVIGATION"}),e.jsx("button",{onClick:()=>o(!t),className:"p-1.5 rounded-lg hover:bg-surface-secondary text-muted hover:text-primary-theme transition-colors cursor-pointer flex items-center justify-center shrink-0",title:t?n==="zh"?"展开导航":"Expand Sidebar":n==="zh"?"折叠导航":"Collapse Sidebar",children:t?e.jsx(se,{size:18}):e.jsx(ne,{size:18})})]}),e.jsxs("div",{className:`p-2 ${t?"md:p-2":"md:p-4"} flex flex-col gap-3 overflow-y-auto flex-1`,children:[e.jsx(b,{label:n==="zh"?"教学工具":"TEACHING",mainNavCollapsed:t}),e.jsx(h,{icon:ie,label:n==="zh"?"课程管理":"Courses",tab:"courses",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(h,{icon:re,label:n==="zh"?"互动课堂":"Live Class",tab:"live_class",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t,highlight:!0}),e.jsx(h,{icon:oe,label:n==="zh"?"班级管理":"Classes & Students",tab:"classes",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(b,{label:n==="zh"?"系统管理":"SYSTEM MANAGEMENT",mainNavCollapsed:t}),e.jsx(h,{icon:le,label:n==="zh"?"课表管理":"Timetable Routine",tab:"timetable",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(h,{icon:ae,label:n==="zh"?"机房管理":"Computer Lab Seating",tab:"computer_labs",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(h,{icon:y,label:n==="zh"?"插件中心":"App Store / Plugins",tab:"plugins",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),r?.subRole==="administrator"&&e.jsxs("button",{onClick:()=>s("admin_directory"),id:"nav_btn_admin_directory",className:`flex items-center gap-3 p-3 transition-colors text-sm font-medium text-indigo-700 hover:bg-indigo-50 border border-slate-200/50 rounded-xl ${i==="admin_directory"?"bg-indigo-50/70 border-indigo-200":"bg-slate-50/50"} ${t?"justify-center px-2":""}`,title:n==="zh"?"管理后台":"⭐ Admin Center",children:[e.jsx(de,{size:20,className:"shrink-0 text-indigo-600 animate-pulse"}),e.jsx("span",{className:t?"hidden":"hidden md:block font-bold text-indigo-850",children:n==="zh"?"管理后台":"⭐ Admin Center"})]}),l.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(b,{label:n==="zh"?"扩展应用":"EXTENSIONS",mainNavCollapsed:t}),e.jsx(ee,{slot:"teacher.tab",slotProps:{renderType:"button",mainNavCollapsed:t,teacherTab:i,setTeacherTab:s}})]}),e.jsx(b,{label:n==="zh"?"帮助与支持":"HELP & SUPPORT",mainNavCollapsed:t}),e.jsx(h,{icon:ce,label:n==="zh"?"帮助文档":"System Commands / Help",tab:"help",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t})]}),(()=>{const m=d.filter(xe),f=m.length;return t||d.length===0?null:e.jsxs("div",{className:"mt-auto p-3 m-3 bg-indigo-50/55 rounded-xl border border-indigo-105 hidden md:block select-none shadow-3xs",id:"today_schedule_sidebar_panel",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-bold text-indigo-700 mb-1.5",children:[e.jsx(ue,{size:12,className:"text-indigo-600 animate-pulse shrink-0"}),n==="zh"?"本堂余课":"Classes Remaining"]}),e.jsx("div",{className:"text-[11px] text-gray-500 mb-2",children:n==="zh"?`今天还有 ${f} 节课面授`:`${f} more classes left today`}),m.length>0&&e.jsx("div",{className:"max-h-[140px] overflow-y-auto space-y-1 pr-1",children:m.map(x=>e.jsxs("div",{className:"text-[10px] p-1.5 bg-white rounded border border-indigo-100/60 shadow-3xs hover:border-indigo-200 transition-colors",children:[e.jsx("div",{className:"font-bold text-gray-750 truncate",title:x.lesson_title,children:x.lesson_title}),e.jsxs("div",{className:"text-[9px] text-gray-450 truncate flex justify-between mt-0.5",children:[e.jsx("span",{className:"font-medium text-slate-500 truncate max-w-[60px]",children:x.class_name}),e.jsx("span",{className:"font-mono text-indigo-700 font-semibold",children:x.time_slot})]})]},x.id))})]})})()]})}function b({label:t,mainNavCollapsed:o}){return o?e.jsx("div",{className:"h-px bg-border-theme-subtle my-1 w-full"}):e.jsx("div",{className:"px-3 pt-2 text-[10px] font-bold text-muted tracking-wider uppercase hidden md:block select-none",children:t})}function h({icon:t,label:o,tab:i,teacherTab:s,setTeacherTab:n,mainNavCollapsed:r,highlight:d}){const a=s===i;return e.jsxs("button",{onClick:()=>n(i),id:`nav_btn_${i}`,className:`flex items-center gap-3 p-3 transition-colors text-sm font-medium rounded-xl cursor-pointer ${a?"bg-primary-theme-light text-primary-theme font-bold"+(d?" shadow-xs border border-theme":""):"text-muted hover:bg-surface-secondary hover:text-main"} ${r?"justify-center px-2":""}`,title:o,children:[e.jsx(t,{size:20,className:`shrink-0 ${d&&!a?"text-primary-theme":""}`}),e.jsx("span",{className:r?"hidden":"hidden md:block",children:o})]})}function fe({component:t,lessonId:o,classId:i}){const s=t;return e.jsx(s,{renderType:"panel",lessonId:o,classId:i})}function pe({activeNavPlugin:t}){const o=v(l=>l.extensionPoints),i=_(l=>l.lang),s=_(l=>l.selectedLesson),n=_(l=>l.liveClassSelectedClassId),r=o.get("teacher.tab")||[],d=t||(r.length>0?r[0].pluginId:null),a=r.find(l=>l.pluginId===d);return e.jsx("div",{className:"flex-1 flex flex-col min-h-0",children:e.jsx("div",{className:"flex-1 overflow-auto",children:a?.component?e.jsx(fe,{component:a.component,lessonId:s,classId:n}):a&&typeof a.render=="function"?e.jsx(te,{ext:a,slot:"teacher.tab",slotProps:{renderType:"panel",lessonId:s,classId:n}}):e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsxs("div",{className:"text-center",children:[e.jsx(y,{size:48,className:"mx-auto text-gray-300 mb-3"}),e.jsx("p",{className:"text-sm text-gray-400 font-medium",children:i==="zh"?"此插件未提供页面组件":"This plugin has no page component"}),e.jsx("p",{className:"text-xs text-gray-300 mt-1",children:i==="zh"?"插件已注册导航条目,但未提供对应的界面渲染逻辑。":"The plugin registered a navigation entry but did not provide a render component."})]})})})})}const be=c.lazy(()=>u(()=>import("./Dashboard-BMXQhpnj.js"),__vite__mapDeps([0])).then(t=>({default:t.Dashboard}))),_e=c.lazy(()=>u(()=>import("./LessonEditorView-mIxHUfYb.js"),__vite__mapDeps([0])).then(t=>({default:t.LessonEditorView}))),ge=c.lazy(()=>u(()=>import("./LiveClassroomView-DNGZaCC8.js"),__vite__mapDeps([0])).then(t=>({default:t.LiveClassroomView}))),je=c.lazy(()=>u(()=>import("./PluginView-DSLBfNDj.js"),__vite__mapDeps([0])).then(t=>({default:t.PluginView}))),ve=c.lazy(()=>u(()=>import("./CourseManagement-ChHr_wNd.js"),__vite__mapDeps([0])).then(t=>({default:t.CourseManagement}))),ye=c.lazy(()=>u(()=>import("./ClassesView-DUnZ5nFa.js"),__vite__mapDeps([0])).then(t=>({default:t.ClassesView}))),we=c.lazy(()=>u(()=>import("./TimetableView-DJgOlGSf.js"),[]).then(t=>({default:t.TimetableView}))),ze=c.lazy(()=>u(()=>import("./AdminDirectoryView-0XV86Ues.js"),[]).then(t=>({default:t.AdminDirectoryView}))),Se=c.lazy(()=>u(()=>import("./ComputerLabView-BId0ZarM.js"),[]).then(t=>({default:t.ComputerLabView}))),Ee=c.lazy(()=>u(()=>import("./HelpView-BqUqq-QE.js"),__vite__mapDeps([0])).then(t=>({default:t.HelpView})));function ke(t){const{mainNavCollapsed:o,setMainNavCollapsed:i,teacherTab:s,setTeacherTab:n,lang:r,session:d,todaySchedules:a,socketRef:l,setShowCoursewareHub:m,selectedLesson:f,setSelectedLesson:x,classStudentsMap:w,lessons:g,classes:j,plugins:z,timelineSegments:S,activeSegmentId:E,setActiveSegmentId:P,liveClassSelectedClassId:p,setLiveClassSelectedClassId:L,liveClassIsActive:A,setLiveClassIsActive:C,liveClassTimeRemaining:I,setLiveClassTimeRemaining:N,liveClassFeed:V,setLiveClassFeed:R,liveClassAcknowledgedMap:k,setLiveClassAcknowledgedMap:D,elements:O,fetchElements:M,addToast:T,onlineStudentIds:H,activeStudentLessons:$,liveClassStudentProgress:U,fetchStudents:G,fetchClassStudents:B,activeRole:F,setActiveRole:Q,onRefresh:W,computerLabs:X,fetchTodaySchedules:Y,fetchRegisteredCommands:q,registeredCommands:J}=t;return e.jsxs("div",{className:"flex-1 overflow-hidden flex bg-gray-50",children:[e.jsx(he,{mainNavCollapsed:o,setMainNavCollapsed:i,teacherTab:s,setTeacherTab:n,lang:r,session:d,todaySchedules:a}),e.jsxs("div",{className:"flex-1 p-6 overflow-hidden flex gap-6 relative",children:[["dashboard","lesson_editor","live_class","plugins","courses","classes","timetable","admin_directory","help","computer_labs"].includes(s)?null:e.jsx(pe,{activeNavPlugin:s.includes("/")?s.split("/")[0]:null}),e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center min-h-[400px] text-slate-400 gap-3",children:[e.jsx(me,{className:"w-8 h-8 animate-spin text-indigo-500"}),e.jsx("span",{className:"text-sm font-medium",children:"加载视图中..."})]}),children:s==="dashboard"?e.jsx(be,{...t}):s==="lesson_editor"?e.jsx(_e,{...t}):s==="live_class"?e.jsx("div",{className:"flex-grow flex-1 flex flex-col min-h-0 min-w-0",children:e.jsx(ge,{selectedLesson:f,setSelectedLesson:x,lessons:g,classes:j,students:p?w[p]||[]:[],plugins:z,lang:r,timelineSegments:S,activeSegmentId:E,setActiveSegmentId:P,liveClassSelectedClassId:p,setLiveClassSelectedClassId:L,liveClassIsActive:A,setLiveClassIsActive:C,liveClassTimeRemaining:I,setLiveClassTimeRemaining:N,liveClassFeed:V,setLiveClassFeed:R,liveClassAcknowledgedMap:k,setLiveClassAcknowledgedMap:D,elements:O,fetchElements:M,fetchStudents:async()=>{await G(),p&&await B(p)},addToast:T,onlineStudentIds:H,activeStudentLessons:$,liveClassStudentProgress:U,onPingStudent:(K,Z)=>{l.current&&l.current.emit("teacher-ping-student",{studentId:K,lessonId:f,message:Z})},onOpenCoursewareHub:()=>m(!0),activeRole:F,setActiveRole:Q})}):s==="plugins"?e.jsx(je,{...t}):s==="courses"?e.jsx(ve,{...t}):s==="classes"?e.jsx(ye,{...t}):s==="timetable"?e.jsx(we,{classes:j,lessons:g,lang:r,onSchedulesUpdated:Y}):s==="admin_directory"?e.jsx(ze,{...t}):s==="computer_labs"?e.jsx(Se,{computerLabs:X,onRefresh:W,lang:r}):s==="help"?e.jsx(Ee,{registeredCommands:J,onRefresh:q}):null})]})]})}export{ke as TeacherView};
2
+ import{_ as u}from"./vendor-pdf-Cp-cYteE.js";import{j as e,r as c}from"./vendor-react-0Lg0vA-4.js";import{u as v,a as _,E as ee,D as te}from"./index-afBTqYFz.js";import{ad as se,ae as ne,B as ie,r as re,U as oe,a5 as le,l as ae,u as y,S as de,O as ce,x as ue,w as me}from"./vendor-icons-Dq6MhgH9.js";import"./vendor-utils-BEhuP0Zq.js";import"./vendor-motion-DjY2czvL.js";import"./vendor-pptx-B_NheIKl.js";import"./vendor-charts-CRXa4AlU.js";const xe=t=>{if(t.status==="cancelled"||t.status==="holiday")return!1;if(!t.time_slot)return!0;try{const o=t.time_slot.split("-");if(o.length<2)return!0;const i=o[1].trim(),[s,n]=i.split(":").map(Number),r=new Date,d=r.getHours(),a=r.getMinutes();return!(d>s||d===s&&a>=n)}catch{return!0}};function he({mainNavCollapsed:t,setMainNavCollapsed:o,teacherTab:i,setTeacherTab:s,lang:n,session:r,todaySchedules:d}){const l=v(m=>m.extensionPoints).get("teacher.tab")||[];return _(m=>m.siteInfo),e.jsxs("div",{id:"navigation_sidebar",className:`${t?"w-16":"w-16 md:w-64"} bg-surface border-r border-theme text-main flex flex-col transition-all duration-300`,children:[e.jsxs("div",{className:`p-2 flex border-b border-theme-subtle ${t?"justify-center":"justify-between items-center px-4"} min-h-[48px] shrink-0`,children:[!t&&e.jsx("span",{className:"hidden md:inline text-[11px] font-black tracking-widest text-muted uppercase select-none",children:n==="zh"?"系统导航":"NAVIGATION"}),e.jsx("button",{onClick:()=>o(!t),className:"p-1.5 rounded-lg hover:bg-surface-secondary text-muted hover:text-primary-theme transition-colors cursor-pointer flex items-center justify-center shrink-0",title:t?n==="zh"?"展开导航":"Expand Sidebar":n==="zh"?"折叠导航":"Collapse Sidebar",children:t?e.jsx(se,{size:18}):e.jsx(ne,{size:18})})]}),e.jsxs("div",{className:`p-2 ${t?"md:p-2":"md:p-4"} flex flex-col gap-3 overflow-y-auto flex-1`,children:[e.jsx(b,{label:n==="zh"?"教学工具":"TEACHING",mainNavCollapsed:t}),e.jsx(h,{icon:ie,label:n==="zh"?"课程管理":"Courses",tab:"courses",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(h,{icon:re,label:n==="zh"?"互动课堂":"Live Class",tab:"live_class",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t,highlight:!0}),e.jsx(h,{icon:oe,label:n==="zh"?"班级管理":"Classes & Students",tab:"classes",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(b,{label:n==="zh"?"系统管理":"SYSTEM MANAGEMENT",mainNavCollapsed:t}),e.jsx(h,{icon:le,label:n==="zh"?"课表管理":"Timetable Routine",tab:"timetable",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(h,{icon:ae,label:n==="zh"?"机房管理":"Computer Lab Seating",tab:"computer_labs",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),e.jsx(h,{icon:y,label:n==="zh"?"插件中心":"App Store / Plugins",tab:"plugins",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t}),r?.subRole==="administrator"&&e.jsxs("button",{onClick:()=>s("admin_directory"),id:"nav_btn_admin_directory",className:`flex items-center gap-3 p-3 transition-colors text-sm font-medium text-indigo-700 hover:bg-indigo-50 border border-slate-200/50 rounded-xl ${i==="admin_directory"?"bg-indigo-50/70 border-indigo-200":"bg-slate-50/50"} ${t?"justify-center px-2":""}`,title:n==="zh"?"管理后台":"⭐ Admin Center",children:[e.jsx(de,{size:20,className:"shrink-0 text-indigo-600 animate-pulse"}),e.jsx("span",{className:t?"hidden":"hidden md:block font-bold text-indigo-850",children:n==="zh"?"管理后台":"⭐ Admin Center"})]}),l.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(b,{label:n==="zh"?"扩展应用":"EXTENSIONS",mainNavCollapsed:t}),e.jsx(ee,{slot:"teacher.tab",slotProps:{renderType:"button",mainNavCollapsed:t,teacherTab:i,setTeacherTab:s}})]}),e.jsx(b,{label:n==="zh"?"帮助与支持":"HELP & SUPPORT",mainNavCollapsed:t}),e.jsx(h,{icon:ce,label:n==="zh"?"帮助文档":"System Commands / Help",tab:"help",teacherTab:i,setTeacherTab:s,mainNavCollapsed:t})]}),(()=>{const m=d.filter(xe),f=m.length;return t||d.length===0?null:e.jsxs("div",{className:"mt-auto p-3 m-3 bg-indigo-50/55 rounded-xl border border-indigo-105 hidden md:block select-none shadow-3xs",id:"today_schedule_sidebar_panel",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-bold text-indigo-700 mb-1.5",children:[e.jsx(ue,{size:12,className:"text-indigo-600 animate-pulse shrink-0"}),n==="zh"?"本堂余课":"Classes Remaining"]}),e.jsx("div",{className:"text-[11px] text-gray-500 mb-2",children:n==="zh"?`今天还有 ${f} 节课面授`:`${f} more classes left today`}),m.length>0&&e.jsx("div",{className:"max-h-[140px] overflow-y-auto space-y-1 pr-1",children:m.map(x=>e.jsxs("div",{className:"text-[10px] p-1.5 bg-white rounded border border-indigo-100/60 shadow-3xs hover:border-indigo-200 transition-colors",children:[e.jsx("div",{className:"font-bold text-gray-750 truncate",title:x.lesson_title,children:x.lesson_title}),e.jsxs("div",{className:"text-[9px] text-gray-450 truncate flex justify-between mt-0.5",children:[e.jsx("span",{className:"font-medium text-slate-500 truncate max-w-[60px]",children:x.class_name}),e.jsx("span",{className:"font-mono text-indigo-700 font-semibold",children:x.time_slot})]})]},x.id))})]})})()]})}function b({label:t,mainNavCollapsed:o}){return o?e.jsx("div",{className:"h-px bg-border-theme-subtle my-1 w-full"}):e.jsx("div",{className:"px-3 pt-2 text-[10px] font-bold text-muted tracking-wider uppercase hidden md:block select-none",children:t})}function h({icon:t,label:o,tab:i,teacherTab:s,setTeacherTab:n,mainNavCollapsed:r,highlight:d}){const a=s===i;return e.jsxs("button",{onClick:()=>n(i),id:`nav_btn_${i}`,className:`flex items-center gap-3 p-3 transition-colors text-sm font-medium rounded-xl cursor-pointer ${a?"bg-primary-theme-light text-primary-theme font-bold"+(d?" shadow-xs border border-theme":""):"text-muted hover:bg-surface-secondary hover:text-main"} ${r?"justify-center px-2":""}`,title:o,children:[e.jsx(t,{size:20,className:`shrink-0 ${d&&!a?"text-primary-theme":""}`}),e.jsx("span",{className:r?"hidden":"hidden md:block",children:o})]})}function fe({component:t,lessonId:o,classId:i}){const s=t;return e.jsx(s,{renderType:"panel",lessonId:o,classId:i})}function pe({activeNavPlugin:t}){const o=v(l=>l.extensionPoints),i=_(l=>l.lang),s=_(l=>l.selectedLesson),n=_(l=>l.liveClassSelectedClassId),r=o.get("teacher.tab")||[],d=t||(r.length>0?r[0].pluginId:null),a=r.find(l=>l.pluginId===d);return e.jsx("div",{className:"flex-1 flex flex-col min-h-0",children:e.jsx("div",{className:"flex-1 overflow-auto",children:a?.component?e.jsx(fe,{component:a.component,lessonId:s,classId:n}):a&&typeof a.render=="function"?e.jsx(te,{ext:a,slot:"teacher.tab",slotProps:{renderType:"panel",lessonId:s,classId:n}}):e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsxs("div",{className:"text-center",children:[e.jsx(y,{size:48,className:"mx-auto text-gray-300 mb-3"}),e.jsx("p",{className:"text-sm text-gray-400 font-medium",children:i==="zh"?"此插件未提供页面组件":"This plugin has no page component"}),e.jsx("p",{className:"text-xs text-gray-300 mt-1",children:i==="zh"?"插件已注册导航条目,但未提供对应的界面渲染逻辑。":"The plugin registered a navigation entry but did not provide a render component."})]})})})})}const be=c.lazy(()=>u(()=>import("./Dashboard-gsxGW7q1.js"),__vite__mapDeps([0])).then(t=>({default:t.Dashboard}))),_e=c.lazy(()=>u(()=>import("./LessonEditorView-VzUJZUSD.js"),__vite__mapDeps([0])).then(t=>({default:t.LessonEditorView}))),ge=c.lazy(()=>u(()=>import("./LiveClassroomView-CTeUIrDr.js"),__vite__mapDeps([0])).then(t=>({default:t.LiveClassroomView}))),je=c.lazy(()=>u(()=>import("./PluginView-NuFAl1cx.js"),__vite__mapDeps([0])).then(t=>({default:t.PluginView}))),ve=c.lazy(()=>u(()=>import("./CourseManagement-CCfPc_CY.js"),__vite__mapDeps([0])).then(t=>({default:t.CourseManagement}))),ye=c.lazy(()=>u(()=>import("./ClassesView-B-jRQxdS.js"),__vite__mapDeps([0])).then(t=>({default:t.ClassesView}))),we=c.lazy(()=>u(()=>import("./TimetableView-DJgOlGSf.js"),[]).then(t=>({default:t.TimetableView}))),ze=c.lazy(()=>u(()=>import("./AdminDirectoryView-0XV86Ues.js"),[]).then(t=>({default:t.AdminDirectoryView}))),Se=c.lazy(()=>u(()=>import("./ComputerLabView-BId0ZarM.js"),[]).then(t=>({default:t.ComputerLabView}))),Ee=c.lazy(()=>u(()=>import("./HelpView--MQfJiFF.js"),__vite__mapDeps([0])).then(t=>({default:t.HelpView})));function ke(t){const{mainNavCollapsed:o,setMainNavCollapsed:i,teacherTab:s,setTeacherTab:n,lang:r,session:d,todaySchedules:a,socketRef:l,setShowCoursewareHub:m,selectedLesson:f,setSelectedLesson:x,classStudentsMap:w,lessons:g,classes:j,plugins:z,timelineSegments:S,activeSegmentId:E,setActiveSegmentId:P,liveClassSelectedClassId:p,setLiveClassSelectedClassId:L,liveClassIsActive:A,setLiveClassIsActive:C,liveClassTimeRemaining:I,setLiveClassTimeRemaining:N,liveClassFeed:V,setLiveClassFeed:R,liveClassAcknowledgedMap:k,setLiveClassAcknowledgedMap:D,elements:O,fetchElements:M,addToast:T,onlineStudentIds:H,activeStudentLessons:$,liveClassStudentProgress:U,fetchStudents:G,fetchClassStudents:B,activeRole:F,setActiveRole:Q,onRefresh:W,computerLabs:X,fetchTodaySchedules:Y,fetchRegisteredCommands:q,registeredCommands:J}=t;return e.jsxs("div",{className:"flex-1 overflow-hidden flex bg-gray-50",children:[e.jsx(he,{mainNavCollapsed:o,setMainNavCollapsed:i,teacherTab:s,setTeacherTab:n,lang:r,session:d,todaySchedules:a}),e.jsxs("div",{className:"flex-1 p-6 overflow-hidden flex gap-6 relative",children:[["dashboard","lesson_editor","live_class","plugins","courses","classes","timetable","admin_directory","help","computer_labs"].includes(s)?null:e.jsx(pe,{activeNavPlugin:s.includes("/")?s.split("/")[0]:null}),e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center min-h-[400px] text-slate-400 gap-3",children:[e.jsx(me,{className:"w-8 h-8 animate-spin text-indigo-500"}),e.jsx("span",{className:"text-sm font-medium",children:"加载视图中..."})]}),children:s==="dashboard"?e.jsx(be,{...t}):s==="lesson_editor"?e.jsx(_e,{...t}):s==="live_class"?e.jsx("div",{className:"flex-grow flex-1 flex flex-col min-h-0 min-w-0",children:e.jsx(ge,{selectedLesson:f,setSelectedLesson:x,lessons:g,classes:j,students:p?w[p]||[]:[],plugins:z,lang:r,timelineSegments:S,activeSegmentId:E,setActiveSegmentId:P,liveClassSelectedClassId:p,setLiveClassSelectedClassId:L,liveClassIsActive:A,setLiveClassIsActive:C,liveClassTimeRemaining:I,setLiveClassTimeRemaining:N,liveClassFeed:V,setLiveClassFeed:R,liveClassAcknowledgedMap:k,setLiveClassAcknowledgedMap:D,elements:O,fetchElements:M,fetchStudents:async()=>{await G(),p&&await B(p)},addToast:T,onlineStudentIds:H,activeStudentLessons:$,liveClassStudentProgress:U,onPingStudent:(K,Z)=>{l.current&&l.current.emit("teacher-ping-student",{studentId:K,lessonId:f,message:Z})},onOpenCoursewareHub:()=>m(!0),activeRole:F,setActiveRole:Q})}):s==="plugins"?e.jsx(je,{...t}):s==="courses"?e.jsx(ve,{...t}):s==="classes"?e.jsx(ye,{...t}):s==="timetable"?e.jsx(we,{classes:j,lessons:g,lang:r,onSchedulesUpdated:Y}):s==="admin_directory"?e.jsx(ze,{...t}):s==="computer_labs"?e.jsx(Se,{computerLabs:X,onRefresh:W,lang:r}):s==="help"?e.jsx(Ee,{registeredCommands:J,onRefresh:q}):null})]})]})}export{ke as TeacherView};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B-YxO39A.css"])))=>i.map(i=>d[i]);
2
- import{_ as e}from"./vendor-pdf-Cp-cYteE.js";import{r as t}from"./vendor-react-0Lg0vA-4.js";const i=t.lazy(()=>e(()=>import("./InteractiveCoursewareViewer-C8uZcebL.js"),__vite__mapDeps([0])).then(r=>({default:r.InteractiveCoursewareViewer})));export{i as CoursewareViewer};
2
+ import{_ as e}from"./vendor-pdf-Cp-cYteE.js";import{r as t}from"./vendor-react-0Lg0vA-4.js";const i=t.lazy(()=>e(()=>import("./InteractiveCoursewareViewer-Tes2QD6f.js"),__vite__mapDeps([0])).then(r=>({default:r.InteractiveCoursewareViewer})));export{i as CoursewareViewer};