1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1675],{54056:(e,t,s)=>{s.d(t,{Am:()=>_,HE:()=>i,I4:()=>c,M_:()=>d,R7:()=>p,Rx:()=>f,Vy:()=>v,Yu:()=>l,oh:()=>g,rG:()=>u,yZ:()=>o});var r=s(21858),a=s(37547);async function i(e,t){try{let s={serial:e};(null==t?void 0:t.course_id)!==void 0&&null!==t.course_id&&""!==t.course_id&&(s.course_id=t.course_id),(null==t?void 0:t.class_id)!==void 0&&null!==t.class_id&&""!==t.class_id&&0!==t.class_id&&"0"!==t.class_id&&(s.class_id=t.class_id),(null==t?void 0:t.content_id)!==void 0&&null!==t.content_id&&""!==t.content_id&&0!==t.content_id&&"0"!==t.content_id&&(s.content_id=t.content_id);let i=await r.A.post("/quiz/quiz-by-serial",s),o=(0,a.Mw)(i.data);return{success:!0,data:o}}catch(e){var s,i;return console.error("Error fetching quiz by serial:",e),{success:!1,error:(null==(i=e.response)||null==(s=i.data)?void 0:s.message)||"Failed to fetch quiz"}}}async function o(e,t,s){try{let i={id:e};t&&(i.grade_id=t),(null==s?void 0:s.course_id)!==void 0&&null!==s.course_id&&""!==s.course_id&&(i.course_id=s.course_id),(null==s?void 0:s.class_id)!==void 0&&null!==s.class_id&&""!==s.class_id&&0!==s.class_id&&"0"!==s.class_id&&(i.class_id=s.class_id),(null==s?void 0:s.content_id)!==void 0&&null!==s.content_id&&""!==s.content_id&&0!==s.content_id&&"0"!==s.content_id&&(i.content_id=s.content_id);let o=await r.A.post("/quiz/quiz-by-id",i),n=(0,a.Mw)(o.data);return{success:!0,data:n}}catch(e){var i,o;return console.error("Error fetching quiz by id:",e),{success:!1,error:(null==(o=e.response)||null==(i=o.data)?void 0:i.message)||"Failed to fetch quiz"}}}let n=new Map;async function l(e){if(!e||"string"!=typeof e)return{success:!1,error:"Quiz URL is required"};if(n.has(e))return n.get(e);let t=(async()=>{try{let t,s=await fetch(e);if(!s.ok)throw Error("Failed to fetch quiz data from external URL");let r=await s.text();if(!r||""===r.trim()||"undefined"===r.trim())throw Error("Empty or invalid response from quiz URL");try{t=JSON.parse(r)}catch(s){let e=r.trim().replace(/^(?:var|let|const|window\.)?\s*[\w$]+\s*=\s*/,"").replace(/;\s*$/,"");try{t=JSON.parse(e)}catch(s){try{t=Function("return (".concat(e,");"))()}catch(e){throw Error("Failed to parse quiz content")}}}return{success:!0,data:t}}catch(t){return n.delete(e),console.error("Error fetching quiz details:",t),{success:!1,error:t.message||"Failed to fetch quiz details"}}})();return n.set(e,t),t}async function c(e){try{let t=await r.A.post("/quiz/submit",e),s=(0,a.Mw)(t.data);return{success:!0,data:s}}catch(e){var t,s,i;return console.error("Error submitting quiz:",(null==e||null==(t=e.response)?void 0:t.data)||e),{success:!1,error:(null==(i=e.response)||null==(s=i.data)?void 0:s.message)||"Failed to submit quiz"}}
1}async function u(e){try{let t=await r.A.get("/show-grade-result/".concat(e)),s=(0,a.Mw)(t.data);return{success:!0,data:s}}catch(e){var t,s,i;return console.error("Error fetching grade result:",(null==e||null==(t=e.response)?void 0:t.data)||e),{success:!1,error:(null==(i=e.response)||null==(s=i.data)?void 0:s.message)||"Failed to fetch grade result"}}}async function d(e){let t,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"tiger",i=s;"tiger"===e||"saudi"===e?i=e:void 0!==e&&(t=e);try{let e={template_type:i};null!=t&&""!==t&&(e.course_id=t);let s=await r.A.get("/quiz/random-quizzes-for-tiger",{params:e});if(s.data&&(s.data.error||403===s.data.status||!1===s.data.status)){let e=s.data.message||s.data.error||"Failed to fetch ".concat(i," quizzes");return{success:!1,error:e,status:s.data.status||403,data:[]}}let o=(0,a.Mw)(s.data);return{success:!0,data:o}}catch(r){var o,n,l,c;console.error("Error fetching ".concat(i," random quizzes:"),(null==r||null==(o=r.response)?void 0:o.data)||r);let e=null==(n=r.response)?void 0:n.data,t=null==(l=r.response)?void 0:l.status,s="Failed to fetch ".concat(i," quizzes");if(e){if("string"==typeof e)s=e;else if("object"==typeof e){let t=e.message,a=e.error;if(t&&a&&t!==a){let e=e=>"string"==typeof e&&(/^[A-Z0-9_]+$/.test(e)||e.length<5);s=e(t)&&!e(a)?a:e(a)&&!e(t)?t:"".concat(t," (").concat(a,")")}else s=t||a||(null==(c=e.errors)?void 0:c.message)||r.message||s}}else r.message&&(s=r.message);return{success:!1,error:s,status:t,data:[]}}}async function f(e){return d(e,"saudi")}async function g(e,t){try{let s=(0,a.jc)(e);s.startsWith("/v3/")?s=s.substring(3):s.startsWith("v3/")&&(s="/"+s.substring(3));let i={secret:void 0};(null==t?void 0:t.course_id)!==void 0&&null!==t.course_id&&""!==t.course_id&&(i.course_id=t.course_id),(null==t?void 0:t.class_id)!==void 0&&null!==t.class_id&&""!==t.class_id&&0!==t.class_id&&"0"!==t.class_id&&(i.class_id=t.class_id),(null==t?void 0:t.content_id)!==void 0&&null!==t.content_id&&""!==t.content_id&&0!==t.content_id&&"0"!==t.content_id&&(i.content_id=t.content_id);let o=await r.A.get(s,{params:i});if(o.data&&(o.data.error||403===o.data.status||!1===o.data.status)){let e=o.data.message||o.data.error||"Failed to fetch quiz by signed URL";return{success:!1,error:e,status:o.data.status||403}}let n=(0,a.Mw)(o.data);return{success:!0,data:n}}catch(a){var s,i,o,n;console.error("Error fetching quiz by signed URL:",(null==a||null==(s=a.response)?void 0:s.data)||a);let e=null==(i=a.response)?void 0:i.data,t=null==(o=a.response)?void 0:o.status,r="Failed to fetch quiz by signed URL";if(e){if("string"==typeof e)r=e;else if("object"==typeof e){let t=e.message,s=e.error;if(t&&s&&t!==s){let e=e=>"string"==typeof e&&(/^[A-Z0-9_]+$/.test(e)||e.length<5);r=e(t)&&!e(s)?s:e(s)&&!e(t)?t:"".concat(t," (").concat(s,")")}else r=t||s||(null==(n=e.errors)?void 0:n.message)||a.message||r}}else a.message&&(r=a.message);return{success:!1,error:r,status:t}}}async function _(e){try{let t=await r.A.post("/quiz/submit-pdf",e,{headers:{"Content-Type":"multipart/form-data"}}),s=(0,a.Mw)(t.data);return{success:!0,data:s}}catch(e){var t,s,i,o,n;return console.error("Error submitting pdf quiz:",(null==e||null==(t=e.response)?void 0:t.data)||e),{success:!1,error:(null==(i=e.response)||null==(s=i.data)?void 0:s.message)||"Failed to submit PDF quiz",status:null==(o=e.response)?void 0:o.status,data:null==(n=e.response)?void 0:n.data}}}async function p(e){var t,s,a,i,o,n,l,c;try{let o=await r.A.get("/quiz/section-quizzes",{params:{course_id:e.course_id,section:e.section,template_type:e.template_type||"tiger",...e.page?{page:e.page}:{},...e.search?{search:e.search}:{},...e.pagination?{pagination:e.pagination}:{}}});if(o.data&&(o.data.error||403===o.data.status||!1===o.data.status)){let e=o.data.message||o.data.error||"Failed to fetch section quizzes";return{success:!1,error:e,status:o.data.status||403,data:[]}}return{success:!0,data:null!=(i=null==(t=o.data)?void 0:t.data)?i:o.data,meta:null==(s=o.data)?void 0:s.meta,links:null==(a=o.data)?void 0:a.links}}catch(r){console.error("Error fetching section quizzes:",(null==r||null==(o=r.response)?void 0:o.data)||r);let e=null==(n=r.response)?void 0:n.data,t=null==(l=r.response)?void 0:l.status,s="Failed to fetch section quizzes";if(e){if("string"==typeof e)s=e;else if("object"==typeof e){let t=e.message,a=e.error;if(t&&a&&t!==a){let e=e=>"string"==typeof e&&(/^[A-Z0-9_]+$/.test(e)||e.length<5);s=e(t)&&!e(a)?a:e(a)&&!e(t)?t:"".concat(t," (").concat(a,")")}else s=t||a||(null==(c=e.errors)?void 0:c.message)||r.message||s}}else r.message&&(s=r.message);return{success:!1,error:s,status:t,data:[]}}}async function v(e){try{let t={course_id:e.course_id};e.quiz_ids.forEach((e,s)=>{t["quiz_ids[".concat(s,"]")]=e});let s=await r.A.get("/quiz/quizzes-by-ids",{params:t});if(s.data&&(s.data.error||403===s.data.status||!1===s.data.status)){let e=s.data.message||s.data.error||"Failed to fetch quizzes by IDs";return{success:!1,error:e,status:s.data.status||403,data:[]}}let i=(0,a.Mw)(s.data);return{success:!0,data:i}}catch(n){var t,s,i,o;console.error("Error fetching quizzes by IDs:",(null==n||null==(t=n.response)?void 0:t.data)||n);let e=null==(s=n.response)?void 0:s.data,r=null==(i=n.response)?void 0:i.status,a="Failed to fetch quizzes by IDs";if(e){if("string"==typeof e)a=e;else if("object"==typeof e){let t=e.message,s=e.error;if(t&&s&&t!==s){let e=e=>"string"==typeof e&&(/^[A-Z0-9_]+$/.test(e)||e.length<5);a=e(t)&&!e(s)?s:e(s)&&!e(t)?t:"".concat(t," (").concat(s,")")}else a=t||s||(null==(o=e.errors)?void 0:o.message)||n.message||a}}else n.message&&(a=n.message);return{success:!1,error:a,status:r,data:[]}}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.