@obe-loms/coms-parser 1.4.5 → 1.4.7

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/bundle.js CHANGED
@@ -1,46 +1,62 @@
1
- import _0x46b4e9 from 'papaparse';
2
- import * as _0x572983 from 'xlsx';
1
+ import _0x2656f4 from 'papaparse';
2
+ import * as _0x1bac2d from 'xlsx';
3
3
 
4
- function parseCurriculum(_0x1b357f){let _0x116a77='',_0x82fdd7='',_0x1bf64c=0x0,_0x220310=null;const _0x153d56=[];return _0x46b4e9['parse'](_0x1b357f,{'skipEmptyLines':!![],'complete':_0x2ec8b6=>{_0x2ec8b6['data']['forEach'](_0x20db97=>{const _0x5e7d16=_0x20db97['map'](_0x5e0864=>(_0x5e0864??'')['toString']()['trim']()),_0x3456d8=_0x5e7d16[0x0]??'';if(_0x3456d8['includes']('Rev#')){const _0xb3963a=_0x3456d8['match'](/([A-Z0-9]+)\s*-\s*.*:\s*(.*?)\s+Rev#\s*(\d+)/i);_0xb3963a&&(_0x116a77=_0xb3963a[0x1]?.['trim']()??'',_0x82fdd7=_0xb3963a[0x2]?.['trim']()??'',_0x1bf64c=parseInt(_0xb3963a[0x3]??'0',0xa));return;}if(/FIRST YEAR/i['test'](_0x3456d8)){_0x220310=0x1;return;}if(/SECOND YEAR/i['test'](_0x3456d8)){_0x220310=0x2;return;}if(/THIRD YEAR/i['test'](_0x3456d8)){_0x220310=0x3;return;}if(/FOURTH YEAR/i['test'](_0x3456d8)){_0x220310=0x4;return;}if(/FIFTH YEAR/i['test'](_0x3456d8)){_0x220310=0x5;return;}if(/First Semester/i['test'](_0x3456d8)||/Second Semester/i['test'](_0x3456d8)||/Summer/i['test'](_0x3456d8))return;const _0xaba1ec=[{'sem':0x1,'offset':0x0},{'sem':0x2,'offset':0x6},{'sem':0x3,'offset':0xc}];_0xaba1ec['forEach'](({sem:_0x4323e2,offset:_0x535b25})=>{const _0x3adb1b=_0x5e7d16[_0x535b25]??'',_0x39b002=_0x5e7d16[_0x535b25+0x1]??'',_0x57c3a3=_0x5e7d16[_0x535b25+0x2]??'',_0xeac4f9=_0x5e7d16[_0x535b25+0x3]??'',_0x2eac4d=_0x5e7d16[_0x535b25+0x4]??'';_0x3adb1b&&_0x220310&&_0x153d56['push']({'curr_id':_0x116a77,'program_name':_0x82fdd7,'revision_no':_0x1bf64c,'year_level':_0x220310,'sem':_0x4323e2,'course_id':_0x3adb1b,'course_desc':_0x39b002,'total_units':_0x57c3a3,'lec_unit':_0xeac4f9,'lab_unit':_0x2eac4d});});});}}),_0x153d56;}
4
+ function parseCurriculum(_0x2a5a11){let _0x444c0d='',_0x1d6ee5='',_0x23aca2=0x0,_0x1b5f7b=null;const _0x446529=[];return _0x2656f4['parse'](_0x2a5a11,{'skipEmptyLines':!![],'complete':_0x30e1d3=>{_0x30e1d3['data']['forEach'](_0x4d87eb=>{const _0x301239=_0x4d87eb['map'](_0x3c9c23=>(_0x3c9c23??'')['toString']()['trim']()),_0xd2ab4c=_0x301239[0x0]??'';if(_0xd2ab4c['includes']('Rev#')){const _0x3f2a5d=_0xd2ab4c['match'](/([A-Z0-9]+)\s*-\s*.*:\s*(.*?)\s+Rev#\s*(\d+)/i);_0x3f2a5d&&(_0x444c0d=_0x3f2a5d[0x1]?.['trim']()??'',_0x1d6ee5=_0x3f2a5d[0x2]?.['trim']()??'',_0x23aca2=parseInt(_0x3f2a5d[0x3]??'0',0xa));return;}if(/FIRST YEAR/i['test'](_0xd2ab4c)){_0x1b5f7b=0x1;return;}if(/SECOND YEAR/i['test'](_0xd2ab4c)){_0x1b5f7b=0x2;return;}if(/THIRD YEAR/i['test'](_0xd2ab4c)){_0x1b5f7b=0x3;return;}if(/FOURTH YEAR/i['test'](_0xd2ab4c)){_0x1b5f7b=0x4;return;}if(/FIFTH YEAR/i['test'](_0xd2ab4c)){_0x1b5f7b=0x5;return;}if(/First Semester/i['test'](_0xd2ab4c)||/Second Semester/i['test'](_0xd2ab4c)||/Summer/i['test'](_0xd2ab4c))return;const _0x539eff=[{'sem':0x1,'offset':0x0},{'sem':0x2,'offset':0x6},{'sem':0x3,'offset':0xc}];_0x539eff['forEach'](({sem:_0x1b0749,offset:_0xead98a})=>{const _0x320b17=_0x301239[_0xead98a]??'',_0x37f5de=_0x301239[_0xead98a+0x1]??'',_0x35e327=_0x301239[_0xead98a+0x2]??'',_0x1bfdf2=_0x301239[_0xead98a+0x3]??'',_0x2f7454=_0x301239[_0xead98a+0x4]??'';_0x320b17&&_0x1b5f7b&&_0x446529['push']({'curr_id':_0x444c0d,'program_name':_0x1d6ee5,'revision_no':_0x23aca2,'year_level':_0x1b5f7b,'sem':_0x1b0749,'course_id':_0x320b17,'course_desc':_0x37f5de,'total_units':_0x35e327,'lec_unit':_0x1bfdf2,'lab_unit':_0x2f7454});});});}}),_0x446529;}
5
5
 
6
- function convertToCSVFile(_0x33e567){return new Promise((_0x49a216,_0x32294b)=>{const _0x2b4665=new FileReader();_0x2b4665['onload']=_0x28f696=>{const _0x65d66a=_0x28f696['target']?.['result'];if(!_0x65d66a){_0x32294b(new Error('Failed\x20to\x20read\x20file'));return;}try{const _0xea27a1=_0x572983['read'](_0x65d66a,{'type':'array'}),_0x385502=_0xea27a1['SheetNames'][0x0];if(!_0x385502){_0x32294b(new Error('No\x20sheets\x20found\x20in\x20workbook'));return;}const _0x33f3ca=_0xea27a1['Sheets'][_0x385502];if(!_0x33f3ca){_0x32294b(new Error('No\x20sheets\x20found\x20in\x20worksheet'));return;}const _0x5e1373=_0x572983['utils']['sheet_to_csv'](_0x33f3ca,{'strip':!![]}),_0x5c5bba=_0x33e567['name']['replace'](/\.[^/.]+$/,'.csv'),_0x5a1577=new File([_0x5e1373],_0x5c5bba,{'type':'text/csv','lastModified':Date['now']()});_0x49a216(_0x5a1577);}catch(_0x1d0d89){_0x32294b(_0x1d0d89);}},_0x2b4665['onerror']=()=>{_0x32294b(new Error('File\x20reading\x20failed'));},_0x2b4665['readAsArrayBuffer'](_0x33e567);});}
6
+ function convertToCSVFile(_0x5c87f6,_0x5534d6){return new Promise((_0x2aca40,_0x354a2f)=>{const _0x5be6ee=new FileReader();_0x5be6ee['onload']=_0x9ac914=>{const _0x586eb2=_0x9ac914['target']?.['result'];if(!_0x586eb2){_0x354a2f(new Error('Failed\x20to\x20read\x20file'));return;}try{const _0x32dea3=_0x1bac2d['read'](_0x586eb2,{'type':'array'});!_0x5534d6&&(_0x5534d6=_0x32dea3['SheetNames'][0x0]);if(!_0x5534d6){_0x354a2f(new Error('No\x20sheets\x20found\x20in\x20workbook'));return;}const _0x494b9e=_0x32dea3['Sheets'][_0x5534d6];if(!_0x494b9e){_0x354a2f(new Error('No\x20sheets\x20found\x20in\x20worksheet'));return;}const _0xc14e0e=_0x1bac2d['utils']['sheet_to_csv'](_0x494b9e,{'strip':!![]}),_0x1cab3d=_0x5c87f6['name']['replace'](/\.[^/.]+$/,'.csv'),_0x7402f0=new File([_0xc14e0e],_0x1cab3d,{'type':'text/csv','lastModified':Date['now']()});_0x2aca40(_0x7402f0);}catch(_0x2d3a1a){_0x354a2f(_0x2d3a1a);}},_0x5be6ee['onerror']=()=>{_0x354a2f(new Error('File\x20reading\x20failed'));},_0x5be6ee['readAsArrayBuffer'](_0x5c87f6);});}
7
7
 
8
- async function uploadCurriculum(_0x2fb11e,_0xf18c66){try{const _0x55b7b5=await convertToCSVFile(_0xf18c66),_0x28e355=await _0x55b7b5['text'](),_0x1d5c62=parseCurriculum(_0x28e355),_0x5995f5=_0x46b4e9['unparse'](_0x1d5c62),_0x2fbf09=new File([_0x5995f5],_0x55b7b5['name'],{'type':'text/csv'}),_0x84a99e=new FormData();_0x84a99e['append']('csvFile',_0x2fbf09);const _0x53d38b=await fetch(_0x2fb11e+'/curr-courses/upload',{'method':'POST','body':_0x84a99e});if(!_0x53d38b['ok']){const _0x473606=await _0x53d38b['json']();throw _0x473606;}return _0x53d38b['json']();}catch(_0x55365b){throw _0x55365b;}}
8
+ async function uploadCurriculum(_0x52d28d,_0xe978df){try{const _0x23f25f=await convertToCSVFile(_0xe978df),_0x45cf77=await _0x23f25f['text'](),_0x16f243=parseCurriculum(_0x45cf77),_0x313fd8=_0x2656f4['unparse'](_0x16f243),_0x1a9d4c=new File([_0x313fd8],_0x23f25f['name'],{'type':'text/csv'}),_0x186fa2=new FormData();_0x186fa2['append']('csvFile',_0x1a9d4c);const _0xcd5483=await fetch(_0x52d28d+'/curr-courses/upload',{'method':'POST','body':_0x186fa2});if(!_0xcd5483['ok']){const _0x530c40=await _0xcd5483['json']();throw _0x530c40;}return _0xcd5483['json']();}catch(_0x4fa7f2){throw _0x4fa7f2;}}
9
9
 
10
- function parseCourseOffering(_0x532d7a){let _0x55e81e='',_0x2a30ca='';const _0x1926d1=[],_0x531e11=_0x46b4e9['parse'](_0x532d7a,{'header':![],'skipEmptyLines':!![],'delimiter':','}),_0xe6d888=_0x531e11['data'];for(let _0x22fcd5=0x0;_0x22fcd5<Math['min'](0x5,_0xe6d888['length']);_0x22fcd5++){const _0xa4b614=_0xe6d888[_0x22fcd5];if(_0xa4b614&&_0xa4b614['length']>0x0){const _0x4d1ac5=_0xa4b614[0x0]?.['toString']()||'',_0x5bce01=_0x4d1ac5['match'](/(First|Second)\s+Sem\s+S\/Y\s+(\d{4}-\d{4})/i);if(_0x5bce01){_0x55e81e=_0x5bce01[0x1]?.['toLowerCase']()==='first'?'1':'2';if(_0x5bce01[0x2]){const _0x802173=_0x5bce01[0x2]['match'](/(\d{2})(\d{2})-(\d{2})(\d{2})/);_0x802173&&_0x802173[0x2]&&_0x802173[0x4]&&(_0x2a30ca=_0x802173[0x2]+_0x802173[0x4]);}}}}let _0x5d64c1=-1;for(let _0x1099f3=0x0;_0x1099f3<_0xe6d888['length'];_0x1099f3++){const _0x1172c8=_0xe6d888[_0x1099f3];if(_0x1172c8&&_0x1172c8['some'](_0x161b32=>_0x161b32?.['toString']()['toUpperCase']()['includes']('CODE'))){_0x5d64c1=_0x1099f3;break;}}if(_0x5d64c1===-1)throw new Error('Could\x20not\x20find\x20header\x20row\x20in\x20CSV\x20data');let _0x42742d={'code':'','description':'','unit':0x0};for(let _0x327633=_0x5d64c1+0x1;_0x327633<_0xe6d888['length'];_0x327633++){const _0x216793=_0xe6d888[_0x327633];if(!_0x216793||_0x216793['length']<0x8)continue;const _0x3bffc0=_0x216793[0x1]?.['toString']()['trim']()||'',_0x1379b1=_0x216793[0x4]?.['toString']()['trim']()||'',_0x2bb844=_0x216793[0x5]?.['toString']()['trim']()||'',_0x4ea680=_0x216793[0x6]?.['toString']()['trim']()||'',_0x49ae36=_0x216793[0x7]?.['toString']()['trim']()||'',_0x20ac97=_0x216793[0x3]?.['toString']()['trim']()||'';let _0x1b33fa=_0x216793[0x0]?.['toString']()['trim']()||'',_0x5d9e6f=_0x216793[0x2]?.['toString']()['trim']()||'';if(!_0x3bffc0)continue;if(!_0x1b33fa)_0x1b33fa=_0x42742d['code'];if(!_0x5d9e6f)_0x5d9e6f=_0x42742d['description'];let _0x4bb327=_0x42742d['unit'];if(_0x20ac97){const _0x14094a=_0x20ac97['match'](/(\d+)/);_0x14094a&&_0x14094a[0x1]&&(_0x4bb327=parseInt(_0x14094a[0x1],0xa));}const _0x30aea3={'sem':_0x55e81e,'school_year':_0x2a30ca,'code':_0x1b33fa,'course_no':_0x3bffc0,'course_desc':_0x5d9e6f,'unit':_0x4bb327,'time':_0x1379b1,'days':_0x2bb844,'faculty':_0x4ea680,'room':_0x49ae36};_0x42742d['code']=_0x1b33fa,_0x42742d['description']=_0x5d9e6f,_0x42742d['unit']=_0x4bb327,_0x1926d1['push'](_0x30aea3);}return _0x1926d1;}
10
+ function parseCourseOffering(_0x5ed337){let _0x258148='',_0x1eab67='';const _0x694ebe=[],_0x2e4af6=_0x2656f4['parse'](_0x5ed337,{'header':![],'skipEmptyLines':!![],'delimiter':','}),_0x4c0573=_0x2e4af6['data'];for(let _0x2ef90f=0x0;_0x2ef90f<Math['min'](0x5,_0x4c0573['length']);_0x2ef90f++){const _0x573a0b=_0x4c0573[_0x2ef90f];if(_0x573a0b&&_0x573a0b['length']>0x0){const _0x5b0ee5=_0x573a0b[0x0]?.['toString']()||'',_0x4353bf=_0x5b0ee5['match'](/(First|Second)\s+Sem\s+S\/Y\s+(\d{4}-\d{4})/i);if(_0x4353bf){_0x258148=_0x4353bf[0x1]?.['toLowerCase']()==='first'?'1':'2';if(_0x4353bf[0x2]){const _0x4ea72d=_0x4353bf[0x2]['match'](/(\d{2})(\d{2})-(\d{2})(\d{2})/);_0x4ea72d&&_0x4ea72d[0x2]&&_0x4ea72d[0x4]&&(_0x1eab67=_0x4ea72d[0x2]+_0x4ea72d[0x4]);}}}}let _0x2207b3=-1;for(let _0x2516ab=0x0;_0x2516ab<_0x4c0573['length'];_0x2516ab++){const _0x11baa2=_0x4c0573[_0x2516ab];if(_0x11baa2&&_0x11baa2['some'](_0x25940f=>_0x25940f?.['toString']()['toUpperCase']()['includes']('CODE'))){_0x2207b3=_0x2516ab;break;}}if(_0x2207b3===-1)throw new Error('Could\x20not\x20find\x20header\x20row\x20in\x20CSV\x20data');let _0x2bf083={'code':'','description':'','unit':0x0};for(let _0x551c0e=_0x2207b3+0x1;_0x551c0e<_0x4c0573['length'];_0x551c0e++){const _0x447209=_0x4c0573[_0x551c0e];if(!_0x447209||_0x447209['length']<0x8)continue;const _0x554340=_0x447209[0x1]?.['toString']()['trim']()||'',_0x228ef2=_0x447209[0x4]?.['toString']()['trim']()||'',_0x4dc287=_0x447209[0x5]?.['toString']()['trim']()||'',_0x3e8010=_0x447209[0x6]?.['toString']()['trim']()||'',_0x14e021=_0x447209[0x7]?.['toString']()['trim']()||'',_0x5c60ab=_0x447209[0x3]?.['toString']()['trim']()||'';let _0x491956=_0x447209[0x0]?.['toString']()['trim']()||'',_0x474060=_0x447209[0x2]?.['toString']()['trim']()||'';if(!_0x554340)continue;if(!_0x491956)_0x491956=_0x2bf083['code'];if(!_0x474060)_0x474060=_0x2bf083['description'];let _0x4a3b38=_0x2bf083['unit'];if(_0x5c60ab){const _0x5031c6=_0x5c60ab['match'](/(\d+)/);_0x5031c6&&_0x5031c6[0x1]&&(_0x4a3b38=parseInt(_0x5031c6[0x1],0xa));}const _0x4cc3a7={'sem':_0x258148,'school_year':_0x1eab67,'code':_0x491956,'course_no':_0x554340,'course_desc':_0x474060,'unit':_0x4a3b38,'time':_0x228ef2,'days':_0x4dc287,'faculty':_0x3e8010,'room':_0x14e021};_0x2bf083['code']=_0x491956,_0x2bf083['description']=_0x474060,_0x2bf083['unit']=_0x4a3b38,_0x694ebe['push'](_0x4cc3a7);}return _0x694ebe;}
11
11
 
12
- async function uploadCourseOffering(_0x5c1aca,_0x446c55){try{const _0x86f794=await convertToCSVFile(_0x446c55),_0x1c1596=await _0x86f794['text'](),_0x272adb=parseCourseOffering(_0x1c1596),_0x56c17c=_0x46b4e9['unparse'](_0x272adb),_0x5ec5a1=new File([_0x56c17c],_0x86f794['name'],{'type':'text/csv'}),_0x65bfae=new FormData();_0x65bfae['append']('csvFile',_0x5ec5a1);const _0x51caa5=await fetch(_0x5c1aca+'/course-offerings/upload',{'method':'POST','body':_0x65bfae});if(!_0x51caa5['ok']){const _0x2ce80e=await _0x51caa5['json']();throw _0x2ce80e;}return _0x51caa5['json']();}catch(_0x415d60){throw _0x415d60;}}
12
+ async function uploadCourseOffering(_0x33f6f,_0x39714e){try{const _0x4a093b=await convertToCSVFile(_0x39714e),_0x510293=await _0x4a093b['text'](),_0x1919cd=parseCourseOffering(_0x510293),_0x159974=_0x2656f4['unparse'](_0x1919cd),_0x1f5d51=new File([_0x159974],_0x4a093b['name'],{'type':'text/csv'}),_0x46393e=new FormData();_0x46393e['append']('csvFile',_0x1f5d51);const _0x34c95a=await fetch(_0x33f6f+'/course-offerings/upload',{'method':'POST','body':_0x46393e});if(!_0x34c95a['ok']){const _0x467531=await _0x34c95a['json']();throw _0x467531;}return _0x34c95a['json']();}catch(_0x10e112){throw _0x10e112;}}
13
13
 
14
- function performaceTarget(_0x1a4243){if(!_0x1a4243)return {'performance_target':null,'passing_score':null};const _0x2267ef=_0x1a4243['match'](/\d+/g);return {'performance_target':_0x2267ef?.[0x0]?parseInt(_0x2267ef[0x0],0xa):null,'passing_score':_0x2267ef?.[0x1]?parseInt(_0x2267ef[0x1],0xa):null};}
14
+ function performaceTarget(_0x1ab87a){if(!_0x1ab87a)return {'performance_target':null,'passing_score':null};const _0x1dea05=_0x1ab87a['match'](/\d+/g);return {'performance_target':_0x1dea05?.[0x0]?parseInt(_0x1dea05[0x0],0xa):null,'passing_score':_0x1dea05?.[0x1]?parseInt(_0x1dea05[0x1],0xa):null};}
15
15
 
16
- function extractInstructionalVerb(_0x4b123e){const _0x278697=_0x4b123e['trim'](),_0x13ee05=/\b(will|shall)\b\s+(?:be\s+able\s+to\s+)?([a-zA-Z]+)/i,_0xa2f580=_0x278697['match'](_0x13ee05);return _0xa2f580&&_0xa2f580[0x2]!==undefined?_0xa2f580[0x2]:null;}
16
+ function extractInstructionalVerb(_0x3531c4){const _0x4f76c3=_0x3531c4['trim'](),_0x567635=/\b(will|shall)\b\s+(?:be\s+able\s+to\s+)?([a-zA-Z]+)/i,_0x1dea2e=_0x4f76c3['match'](_0x567635);return _0x1dea2e&&_0x1dea2e[0x2]!==undefined?_0x1dea2e[0x2]:null;}
17
17
 
18
- const HEADERS$1={'co':['course\x20outcome','co\x20statement','outcome\x20statement'],'ilo':['intended\x20learning','ilo','learning\x20outcome'],'assessTool':['assessment\x20tool','assessment\x20method','tool'],'perfTarget':['performance\x20target','target','passing']};function getCoaepHeader(_0x583bc9){let _0x2120a5={'headerRowIndex':-1,'coIdx':-1,'iloIdx':-1,'assessToolIdx':-1,'perfTargetIdx':-1};for(let _0xafd1e5=0x0;_0xafd1e5<Math['min'](_0x583bc9['length'],0x14);_0xafd1e5++){const _0x4e39c7=(_0x583bc9[_0xafd1e5]??[])['map'](_0x367e89=>_0x367e89['toLowerCase']()['trim']()),_0x54b3f2=_0x4e39c7['findIndex'](_0x1019ec=>HEADERS$1['co']['some'](_0x57629e=>_0x1019ec['includes'](_0x57629e))),_0x121348=_0x4e39c7['findIndex'](_0x178384=>HEADERS$1['ilo']['some'](_0x49c459=>_0x178384['includes'](_0x49c459))),_0x4558bf=_0x4e39c7['findIndex'](_0x4f1499=>HEADERS$1['assessTool']['some'](_0x2535d9=>_0x4f1499['includes'](_0x2535d9))),_0x3ac58e=_0x4e39c7['findIndex'](_0x4f1df2=>HEADERS$1['perfTarget']['some'](_0x2aa9e0=>_0x4f1df2['includes'](_0x2aa9e0))),_0x264571=[_0x54b3f2,_0x121348,_0x4558bf,_0x3ac58e]['filter'](_0x111c16=>_0x111c16!==-1)['length'];if(_0x264571>=0x3){_0x2120a5={'headerRowIndex':_0xafd1e5,'coIdx':_0x54b3f2,'iloIdx':_0x121348,'assessToolIdx':_0x4558bf,'perfTargetIdx':_0x3ac58e};break;}}return _0x2120a5;}
18
+ const HEADERS$1={'co':['course\x20outcome','co\x20statement','outcome\x20statement'],'ilo':['intended\x20learning','ilo','learning\x20outcome'],'assessTool':['assessment\x20tool','assessment\x20method','tool'],'perfTarget':['performance\x20target','target','passing']};function getCoaepHeader(_0x59d942){let _0x12e5d5={'headerRowIndex':-1,'coIdx':-1,'iloIdx':-1,'assessToolIdx':-1,'perfTargetIdx':-1};for(let _0x25dacd=0x0;_0x25dacd<Math['min'](_0x59d942['length'],0x14);_0x25dacd++){const _0x19f755=(_0x59d942[_0x25dacd]??[])['map'](_0x223a65=>_0x223a65['toLowerCase']()['trim']()),_0x13c891=_0x19f755['findIndex'](_0x9d368a=>HEADERS$1['co']['some'](_0x1c941b=>_0x9d368a['includes'](_0x1c941b))),_0x5bf164=_0x19f755['findIndex'](_0x3b6355=>HEADERS$1['ilo']['some'](_0x1586c8=>_0x3b6355['includes'](_0x1586c8))),_0x21b733=_0x19f755['findIndex'](_0x12535d=>HEADERS$1['assessTool']['some'](_0x4eb64d=>_0x12535d['includes'](_0x4eb64d))),_0x55b970=_0x19f755['findIndex'](_0x4245d2=>HEADERS$1['perfTarget']['some'](_0x46b1f3=>_0x4245d2['includes'](_0x46b1f3))),_0x45600c=[_0x13c891,_0x5bf164,_0x21b733,_0x55b970]['filter'](_0xf61dd1=>_0xf61dd1!==-1)['length'];if(_0x45600c>=0x3){_0x12e5d5={'headerRowIndex':_0x25dacd,'coIdx':_0x13c891,'iloIdx':_0x5bf164,'assessToolIdx':_0x21b733,'perfTargetIdx':_0x55b970};break;}}return _0x12e5d5;}
19
19
 
20
- function parseCOAEP(_0x386ade){const _0x21cb51=_0x46b4e9['parse'](_0x386ade,{'skipEmptyLines':![]})['data'],_0x4c0068={'COAEP':{'faculty':null,'course':null,'sy':null,'semester':null,'co':[]}},{headerRowIndex:_0x5a4ded,coIdx:_0x4ea3da,iloIdx:_0x470ac6,assessToolIdx:_0x3776cd,perfTargetIdx:_0x195ead}=getCoaepHeader(_0x21cb51);if(_0x5a4ded===-1)return {'error':'Could\x20not\x20auto-detect\x20header\x20row.','message':'Please\x20ensure\x20the\x20CSV\x20file\x20is\x20in\x20the\x20correct\x20COAEP\x20format.'};_0x21cb51['forEach'](_0xd96b03=>{const _0x1a4c38=_0xd96b03['indexOf']('Name\x20of\x20Faculty:'),_0x2ad88a=_0xd96b03['indexOf']('School\x20Year'),_0x52c2ba=_0xd96b03['indexOf']('Course:'),_0x5ed7fe=_0xd96b03['indexOf']('Semester');_0x1a4c38!==-1&&(_0x4c0068['COAEP']['faculty']=_0xd96b03[_0x1a4c38+0x1]?.['trim']()||_0x4c0068['COAEP']['faculty']);_0x2ad88a!==-1&&(_0x4c0068['COAEP']['sy']=_0xd96b03[_0x2ad88a+0x1]?.['trim']()||_0x4c0068['COAEP']['sy']);_0x52c2ba!==-1&&(_0x4c0068['COAEP']['course']=_0xd96b03[_0x52c2ba+0x1]?.['trim']()||_0x4c0068['COAEP']['course']);if(_0x5ed7fe!==-1){const _0x3fc30f=_0xd96b03[_0x5ed7fe+0x1]?.['trim']()||'',_0x2bea08=_0x3fc30f['match'](/\d+/)?.[0x0];_0x4c0068['COAEP']['semester']=_0x2bea08?parseInt(_0x2bea08,0xa):_0x4c0068['COAEP']['semester'];}});let _0x49cafc=null;return _0x21cb51['forEach']((_0x4b3588,_0x5c7b2d)=>{if(_0x5c7b2d<=_0x5a4ded)return;let _0x36e47f=_0x4b3588[_0x4ea3da-0x1]?.['trim']()||'',_0xc148c8=_0x4b3588[_0x4ea3da]?.['trim']()||'';/^\d+$/['test'](_0x4b3588[_0x4ea3da]?.['trim']()||'')&&(_0x36e47f=_0x4b3588[_0x4ea3da]?.['trim']()||'',_0xc148c8=_0x4b3588[_0x4ea3da+0x1]?.['trim']()||'');const _0xf57a89=_0x4b3588[_0x470ac6]?.['trim']()||'',_0x2ee38b=_0x4b3588[_0x3776cd]?.['replace'](/^ILO\d+[:.]?\s*/,'')['trim']()||'',_0x2a05b=_0x4b3588[_0x195ead]?.['replace'](/\s+/g,'\x20')['trim']()||'';if(_0x36e47f&&/^\d+$/['test'](_0x36e47f)){_0x49cafc&&_0x4c0068['COAEP']['co']['push'](_0x49cafc);const _0x589276=_0xc148c8,_0x3229f1=extractInstructionalVerb(_0x589276)||'';_0x49cafc={'statement':_0x589276,'verb':_0x3229f1,'ilo':[]};}if(_0x49cafc&&_0xf57a89&&_0x2a05b){const _0x527548=_0xf57a89['replace'](/^ILO\d+[:.]?\s*/,'');if(_0x527548['match'](/^(Revision|Prepared|Date|Approved|Effectivity|Page)/i)||_0x527548['length']<0xa)return;let _0x575c2d=_0x2ee38b;if(!_0x575c2d&&_0x527548['includes'](':')){const _0x25841c=_0x527548['match'](/^ILO\d+:\s*(.+?)(?:\s*\(|$)/);_0x25841c&&(_0x575c2d=_0x25841c[0x1]?.['trim']()||'');}const {performance_target:_0x908b9c,passing_score:_0x417b9d}=performaceTarget(_0x2a05b);_0x49cafc['ilo']['push']({'statement':_0x527548,'verb':extractInstructionalVerb(_0x527548)||'','assessment_tool':_0x575c2d,'performance_target':_0x908b9c,'passing_score':_0x417b9d});}}),_0x49cafc&&_0x4c0068['COAEP']['co']['push'](_0x49cafc),_0x4c0068;}
20
+ function parseCOAEP(_0x24b1c3){const _0x2f27a5=_0x2656f4['parse'](_0x24b1c3,{'skipEmptyLines':![]})['data'],_0x342977={'COAEP':{'faculty':null,'course':null,'sy':null,'semester':null,'co':[]}},{headerRowIndex:_0x506c63,coIdx:_0x2cfef8,iloIdx:_0x2853a0,assessToolIdx:_0xb4f1ce,perfTargetIdx:_0x3d0805}=getCoaepHeader(_0x2f27a5);if(_0x506c63===-1)return {'error':'Could\x20not\x20auto-detect\x20header\x20row.','message':'Please\x20ensure\x20the\x20CSV\x20file\x20is\x20in\x20the\x20correct\x20COAEP\x20format.'};_0x2f27a5['forEach'](_0x1795c2=>{const _0x3b07ee=_0x1795c2['indexOf']('Name\x20of\x20Faculty:'),_0x359766=_0x1795c2['indexOf']('School\x20Year'),_0x5d6752=_0x1795c2['indexOf']('Course:'),_0x56a145=_0x1795c2['indexOf']('Semester');_0x3b07ee!==-1&&(_0x342977['COAEP']['faculty']=_0x1795c2[_0x3b07ee+0x1]?.['trim']()||_0x342977['COAEP']['faculty']);_0x359766!==-1&&(_0x342977['COAEP']['sy']=_0x1795c2[_0x359766+0x1]?.['trim']()||_0x342977['COAEP']['sy']);_0x5d6752!==-1&&(_0x342977['COAEP']['course']=_0x1795c2[_0x5d6752+0x1]?.['trim']()||_0x342977['COAEP']['course']);if(_0x56a145!==-1){const _0x1e4864=_0x1795c2[_0x56a145+0x1]?.['trim']()||'',_0xf878d6=_0x1e4864['match'](/\d+/)?.[0x0];_0x342977['COAEP']['semester']=_0xf878d6?parseInt(_0xf878d6,0xa):_0x342977['COAEP']['semester'];}});let _0x722ae3=null;return _0x2f27a5['forEach']((_0x394f91,_0x350822)=>{if(_0x350822<=_0x506c63)return;let _0x269d2d=_0x394f91[_0x2cfef8-0x1]?.['trim']()||'',_0x32f5b2=_0x394f91[_0x2cfef8]?.['trim']()||'';/^\d+$/['test'](_0x394f91[_0x2cfef8]?.['trim']()||'')&&(_0x269d2d=_0x394f91[_0x2cfef8]?.['trim']()||'',_0x32f5b2=_0x394f91[_0x2cfef8+0x1]?.['trim']()||'');const _0x3973e6=_0x394f91[_0x2853a0]?.['trim']()||'',_0x3ad8b7=_0x394f91[_0xb4f1ce]?.['replace'](/^ILO\d+[:.]?\s*/,'')['trim']()||'',_0x54fb33=_0x394f91[_0x3d0805]?.['replace'](/\s+/g,'\x20')['trim']()||'';if(_0x269d2d&&/^\d+$/['test'](_0x269d2d)){_0x722ae3&&_0x342977['COAEP']['co']['push'](_0x722ae3);const _0x3a79cf=_0x32f5b2,_0x2bfcb6=extractInstructionalVerb(_0x3a79cf)||'';_0x722ae3={'statement':_0x3a79cf,'verb':_0x2bfcb6,'ilo':[]};}if(_0x722ae3&&_0x3973e6&&_0x54fb33){const _0x240ac1=_0x3973e6['replace'](/^ILO\d+[:.]?\s*/,'');if(_0x240ac1['match'](/^(Revision|Prepared|Date|Approved|Effectivity|Page)/i)||_0x240ac1['length']<0xa)return;let _0x27aed9=_0x3ad8b7;if(!_0x27aed9&&_0x240ac1['includes'](':')){const _0xd08e8c=_0x240ac1['match'](/^ILO\d+:\s*(.+?)(?:\s*\(|$)/);_0xd08e8c&&(_0x27aed9=_0xd08e8c[0x1]?.['trim']()||'');}const {performance_target:_0xece8dd,passing_score:_0x4daa7e}=performaceTarget(_0x54fb33);_0x722ae3['ilo']['push']({'statement':_0x240ac1,'verb':extractInstructionalVerb(_0x240ac1)||'','assessment_tool':_0x27aed9,'performance_target':_0xece8dd,'passing_score':_0x4daa7e});}}),_0x722ae3&&_0x342977['COAEP']['co']['push'](_0x722ae3),_0x342977;}
21
21
 
22
- async function uploadCOAEP(_0x3c7dcc,_0x3f7ee6,_0xeace2){try{const _0x1cb041=await convertToCSVFile(_0x3f7ee6),_0x53c63c=await _0x1cb041['text'](),_0x21c422=parseCOAEP(_0x53c63c);console['log'](_0x21c422);const _0xf7a05a=await fetch(_0x3c7dcc+'/coaeps/upload?course_id='+_0xeace2,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x21c422)});if(!_0xf7a05a['ok']){const _0x2c0257=await _0xf7a05a['json']();throw _0x2c0257;}return _0xf7a05a['json']();}catch(_0x1e0cb2){throw _0x1e0cb2;}}
22
+ async function uploadCOAEP(_0x1fcf15,_0x34fec7,_0x248611){try{const _0x5959f3=await convertToCSVFile(_0x34fec7),_0x5f3b07=await _0x5959f3['text'](),_0x392431=parseCOAEP(_0x5f3b07);console['log'](_0x392431);const _0xe78dbf=await fetch(_0x1fcf15+'/coaeps/upload?course_id='+_0x248611,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x392431)});if(!_0xe78dbf['ok']){const _0x12532a=await _0xe78dbf['json']();throw _0x12532a;}return _0xe78dbf['json']();}catch(_0x24ca94){throw _0x24ca94;}}
23
23
 
24
- async function uploadEnrolledStudent(_0x26fad2,_0x8dbf1f){try{const _0x207c3e=await convertToCSVFile(_0x8dbf1f),_0x216b4b=new FormData();_0x216b4b['append']('csvFile',_0x207c3e);const _0x567e6b=await fetch(_0x26fad2+'/enrolled-students/upload',{'method':'POST','body':_0x216b4b});if(!_0x567e6b['ok']){const _0x8e236c=await _0x567e6b['json']();throw _0x8e236c;}return _0x567e6b['json']();}catch(_0x53d942){throw _0x53d942;}}
24
+ async function uploadEnrolledStudent(_0x254a65,_0x162eda){try{const _0x524041=await convertToCSVFile(_0x162eda),_0x96bd0c=new FormData();_0x96bd0c['append']('csvFile',_0x524041);const _0x289063=await fetch(_0x254a65+'/enrolled-students/upload',{'method':'POST','body':_0x96bd0c});if(!_0x289063['ok']){const _0x170011=await _0x289063['json']();throw _0x170011;}return _0x289063['json']();}catch(_0x4c9e01){throw _0x4c9e01;}}
25
25
 
26
- function parseClassList(_0x33890c){const _0x249507=_0x46b4e9['parse'](_0x33890c,{'skipEmptyLines':!![]})['data'];let _0x29c18a='',_0x1017aa='',_0x25ce1a='';const _0x26f81e=[];return _0x249507['forEach'](_0x8a0b48=>{const _0x17b8ec=_0x8a0b48['map'](_0x2e543b=>(_0x2e543b??'')['toString']()['trim']()),_0x58d21d=_0x17b8ec[0x0]??'';if(_0x58d21d['startsWith']('Course\x20No:')){const _0x20841f=_0x58d21d['replace']('Course\x20No:','')['trim'](),_0x4dc37a=_0x20841f['split'](/\s+/);_0x25ce1a=_0x4dc37a[0x0]??'';const [_0x149f1c,_0x272fa6]=(_0x4dc37a[0x1]??'')['split']('-');_0x1017aa=_0x149f1c??'';const _0xc09369=(_0x272fa6??'')['match'](/[a-z]$/);_0x29c18a=_0xc09369?_0xc09369[0x0]:'';}if(/^\d+$/['test'](_0x58d21d)){const _0x2e791c=_0x17b8ec[0x2]??'';_0x26f81e['push']({'subj_code':_0x25ce1a,'student_no':_0x2e791c,'course_id':_0x1017aa,'section':_0x29c18a});}}),{'enrolledCourses':_0x26f81e};}
26
+ function parseClassList(_0x2fc9e9){const _0x3e63a1=_0x2656f4['parse'](_0x2fc9e9,{'skipEmptyLines':!![]})['data'];let _0x18520c='',_0x161da7='',_0x18d4a7='';const _0x170863=[];return _0x3e63a1['forEach'](_0x7614b7=>{const _0x394846=_0x7614b7['map'](_0x338954=>(_0x338954??'')['toString']()['trim']()),_0x427b1d=_0x394846[0x0]??'';if(_0x427b1d['startsWith']('Course\x20No:')){const _0x4f84a7=_0x427b1d['replace']('Course\x20No:','')['trim'](),_0x316b00=_0x4f84a7['split'](/\s+/);_0x18d4a7=_0x316b00[0x0]??'';const [_0x1e8895,_0x42c244]=(_0x316b00[0x1]??'')['split']('-');_0x161da7=_0x1e8895??'';const _0x436d06=(_0x42c244??'')['match'](/[a-z]$/);_0x18520c=_0x436d06?_0x436d06[0x0]:'';}if(/^\d+$/['test'](_0x427b1d)){const _0x24a7f2=_0x394846[0x2]??'';_0x170863['push']({'subj_code':_0x18d4a7,'student_no':_0x24a7f2,'course_id':_0x161da7,'section':_0x18520c});}}),{'enrolledCourses':_0x170863};}
27
27
 
28
- async function uploadClassList(_0x284c70,_0xe37b1d,_0x35ab93,_0x389245){try{const _0x32bfd5=await convertToCSVFile(_0xe37b1d),_0x32f898=await _0x32bfd5['text'](),_0x518591=parseClassList(_0x32f898),_0x434e63='subj_code='+_0x35ab93+'&period_id='+_0x389245,_0x70a866=await fetch(_0x284c70+'/enrolled-courses/upload?'+_0x434e63,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x518591)});if(!_0x70a866['ok']){const _0x430ffc=await _0x70a866['json']();throw _0x430ffc;}return _0x70a866['json']();}catch(_0x2393f1){throw _0x2393f1;}}
28
+ async function uploadClassList(_0x538376,_0x48a7d8,_0x401121,_0x4e9b0a){try{const _0x1a6450=await convertToCSVFile(_0x48a7d8),_0x2e9ef7=await _0x1a6450['text'](),_0x4d42a1=parseClassList(_0x2e9ef7),_0x4a609a='subj_code='+_0x401121+'&period_id='+_0x4e9b0a,_0x54b481=await fetch(_0x538376+'/enrolled-courses/upload?'+_0x4a609a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x4d42a1)});if(!_0x54b481['ok']){const _0x7a10fe=await _0x54b481['json']();throw _0x7a10fe;}return _0x54b481['json']();}catch(_0x53e8d4){throw _0x53e8d4;}}
29
29
 
30
- function parseAssessmentCsv(_0x5b1c87){const {data:_0x5b1586}=_0x46b4e9['parse'](_0x5b1c87,{'skipEmptyLines':!![]}),_0x552173=_0x5b1586['filter'](_0x30e6bf=>_0x30e6bf['length']>0x0),_0x316285=_0x552173['find'](_0x4e89b2=>_0x4e89b2['some'](_0x34f9c6=>_0x34f9c6?.['includes']('Faculty'))),_0x92949d=_0x316285?_0x316285['findIndex'](_0x146645=>_0x146645?.['includes']('Faculty')):-1,_0x586cfa=_0x92949d!==-1&&_0x316285?_0x316285[_0x92949d+0x2]?.['replace'](/"/g,'')['trim']()??'':'',_0xe4a5fc=_0x552173['find'](_0x7002e7=>_0x7002e7['some'](_0x6732cc=>_0x6732cc?.['includes']('Semester'))),_0x1fd1ce=_0xe4a5fc?_0xe4a5fc['findIndex'](_0x3c7f70=>_0x3c7f70?.['includes']('Semester')):-1,_0x14b7f8=_0x1fd1ce!==-1&&_0xe4a5fc?_0xe4a5fc[_0x1fd1ce+0x2]?.['trim']()??'':'',_0x3b6d9e=_0x14b7f8['includes']('1st')?0x1:_0x14b7f8['includes']('2nd')?0x2:0x0,_0x59847d=_0x552173['find'](_0x193eb9=>_0x193eb9['some'](_0x1b8e7a=>_0x1b8e7a?.['includes']('Course\x20&\x20Sec'))),_0x2967ad=_0x59847d?_0x59847d['findIndex'](_0x4b0eed=>_0x4b0eed?.['includes']('Course\x20&\x20Sec')):-1,_0x47cd08=_0x2967ad!==-1&&_0x59847d?_0x59847d[_0x2967ad+0x2]?.['trim']()??'':'';let _0x4ba579='',_0x175115='';if(_0x47cd08){const _0x177295=_0x47cd08['match'](/^([A-Za-z0-9]+)-?([A-Za-z]+)?/);_0x177295&&(_0x4ba579=_0x177295[0x1]??'',_0x177295[0x2]&&(_0x175115=_0x177295[0x2]['replace'](/^OC/i,'')));}const _0x5bfc06=_0x552173['find'](_0x2e0613=>_0x2e0613['some'](_0xb3011a=>_0xb3011a?.['includes']('School\x20Year'))),_0x48462a=_0x5bfc06?_0x5bfc06['findIndex'](_0x15ba29=>_0x15ba29?.['includes']('School\x20Year')):-1,_0x1c6973=_0x48462a!==-1&&_0x5bfc06?_0x5bfc06[_0x48462a+0x2]?.['trim']()??'':'';let _0x3de99c=0x0;if(_0x1c6973){const _0x56015b=_0x1c6973['match'](/(\d{4})-(\d{4})/);if(_0x56015b){const _0x38f28f=(_0x56015b[0x1]??'')['slice'](0x2),_0x5d93dd=(_0x56015b[0x2]??'')['slice'](0x2);_0x3de99c=parseInt(_0x38f28f+_0x5d93dd,0xa);}}const _0x54ef71={'faculty':_0x586cfa,'course':_0x4ba579,'section':_0x175115,'semester':_0x3b6d9e,'sy':_0x3de99c},_0x572e1b=_0x552173['findIndex'](_0x47797f=>_0x47797f['some'](_0x4195b6=>_0x4195b6?.['trim']()==='CO\x20#'));if(_0x572e1b===-1)throw new Error('CO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x204153=_0x552173[_0x572e1b+0x1];if(!_0x204153)throw new Error('ILO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x1a1461={};let _0x5a28b9=0x1,_0x3af121=0x1;for(let _0x174944=0x3;_0x174944<_0x204153['length'];_0x174944++){const _0x9d3b9b=_0x204153[_0x174944];if(!_0x9d3b9b)continue;const _0x14204f='co'+_0x5a28b9;if(!_0x1a1461[_0x14204f])_0x1a1461[_0x14204f]=[];_0x1a1461[_0x14204f]['push']('ilo'+_0x3af121),_0x3af121++,_0x3af121>0x3&&(_0x5a28b9++,_0x3af121=0x1);}const _0x28e0fe=_0x552173['findIndex'](_0x39258d=>_0x39258d['includes']('Name\x20of\x20Students'));if(_0x28e0fe===-1)throw new Error('Student\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x4e8a02=_0x552173[_0x28e0fe];if(!_0x4e8a02)throw new Error('Student\x20header\x20row\x20is\x20missing');const _0x47388f=_0x4e8a02['findIndex'](_0x2a6738=>_0x2a6738?.['includes']('Name\x20of\x20Students'));if(_0x47388f===-1)throw new Error('Name\x20of\x20Students\x20column\x20not\x20found\x20in\x20CSV');const _0x59db40=_0x47388f+0x2,_0x333323=[];for(let _0x57d068=_0x28e0fe+0x1;_0x57d068<_0x552173['length'];_0x57d068++){const _0x202300=_0x552173[_0x57d068];if(!_0x202300)continue;if(_0x202300['some'](_0x94f9e2=>_0x94f9e2?.['toUpperCase']()['includes']('TOTAL\x20STUDENTS')||_0x94f9e2?.['toUpperCase']()['includes']('ACHIEVED\x20THE\x20MINIMUM')||_0x94f9e2?.['toUpperCase']()['includes']('INACTIVE')||_0x94f9e2?.['toUpperCase']()['includes']('AVERAGE')))continue;if(!_0x202300[_0x47388f])continue;const _0x334893=_0x202300[_0x47388f]['replace'](/"/g,'')['trim'](),_0x55b8b3=_0x202300['slice'](_0x59db40)['map'](_0x4d2855=>_0x4d2855===null?null:!isNaN(Number(_0x4d2855))?parseFloat(_0x4d2855):0x0);let _0x3d1976=0x0;const _0x2c372f={};Object['entries'](_0x1a1461)['forEach'](([_0x5c5ab2,_0x5055d2])=>{const _0x14114e={};_0x5055d2['forEach'](_0x1769e0=>{_0x14114e[_0x1769e0]=_0x55b8b3[_0x3d1976]??0x0,_0x3d1976++;}),_0x2c372f[_0x5c5ab2]={'transmuted_score':_0x14114e};}),_0x333323['push']({'student_name':_0x334893,'coaep':_0x2c372f});}const _0x4fd809=_0x552173['find'](_0x4c9419=>_0x4c9419['some'](_0x15ff0a=>_0x15ff0a?.['includes']('ACHIEVED\x20THE\x20MINIMUM'))),_0x298e5f=_0x552173['find'](_0x330354=>_0x330354['some'](_0x5900bd=>_0x5900bd?.['includes']('AVERAGE'))),_0x4ec749=_0x4fd809?_0x4fd809['slice'](_0x59db40)['map'](_0x28e6f2=>_0x28e6f2&&!isNaN(Number(_0x28e6f2))?parseInt(_0x28e6f2):0x0):[],_0x99472e=_0x298e5f?_0x298e5f['slice'](_0x59db40)['map'](_0x4845ca=>_0x4845ca&&_0x4845ca!=='#DIV/0!'&&!isNaN(Number(_0x4845ca))?parseInt(_0x4845ca):0x0):[],_0x3f2731={};let _0x3db2bd=0x0;return Object['entries'](_0x1a1461)['forEach'](([_0x1334f3,_0x4a2714])=>{if(!_0x3f2731[_0x1334f3])_0x3f2731[_0x1334f3]={};_0x4a2714['forEach'](_0x113384=>{_0x3f2731[_0x1334f3][_0x113384]={'achievedMinimum':_0x4ec749[_0x3db2bd]??0x0,'average':_0x99472e[_0x3db2bd]??0x0},_0x3db2bd++;});}),{'assessmentData':{'classAssignment':_0x54ef71,'student':_0x333323,'total':_0x3f2731}};}
30
+ function parseAssessmentCsv(_0x1cb27d){const {data:_0x5e4b67}=_0x2656f4['parse'](_0x1cb27d,{'skipEmptyLines':!![]}),_0x4171fc=_0x5e4b67['filter'](_0x49638d=>_0x49638d['length']>0x0),_0x4ef15c=_0x4171fc['find'](_0x1e15b1=>_0x1e15b1['some'](_0x4632eb=>_0x4632eb?.['includes']('Faculty'))),_0x4afbef=_0x4ef15c?_0x4ef15c['findIndex'](_0x15c6c8=>_0x15c6c8?.['includes']('Faculty')):-1,_0x2a760d=_0x4afbef!==-1&&_0x4ef15c?_0x4ef15c[_0x4afbef+0x2]?.['replace'](/"/g,'')['trim']()??'':'',_0x3c7c63=_0x4171fc['find'](_0x47d14b=>_0x47d14b['some'](_0x4c9b01=>_0x4c9b01?.['includes']('Semester'))),_0x1a9a47=_0x3c7c63?_0x3c7c63['findIndex'](_0x322c2a=>_0x322c2a?.['includes']('Semester')):-1,_0x5969bf=_0x1a9a47!==-1&&_0x3c7c63?_0x3c7c63[_0x1a9a47+0x2]?.['trim']()??'':'',_0x4415f6=_0x5969bf['includes']('1st')?0x1:_0x5969bf['includes']('2nd')?0x2:0x0,_0x42f47e=_0x4171fc['find'](_0x37d372=>_0x37d372['some'](_0x2e9b77=>_0x2e9b77?.['includes']('Course\x20&\x20Sec'))),_0x35606e=_0x42f47e?_0x42f47e['findIndex'](_0x422f05=>_0x422f05?.['includes']('Course\x20&\x20Sec')):-1,_0x20811a=_0x35606e!==-1&&_0x42f47e?_0x42f47e[_0x35606e+0x2]?.['trim']()??'':'';let _0x656b1e='',_0x10528f='';if(_0x20811a){const _0x3dd4fa=_0x20811a['match'](/^([A-Za-z0-9]+)-?([A-Za-z]+)?/);_0x3dd4fa&&(_0x656b1e=_0x3dd4fa[0x1]??'',_0x3dd4fa[0x2]&&(_0x10528f=_0x3dd4fa[0x2]['replace'](/^OC/i,'')));}const _0x2b204a=_0x4171fc['find'](_0x4e5e5c=>_0x4e5e5c['some'](_0x38fcef=>_0x38fcef?.['includes']('School\x20Year'))),_0x3d55bf=_0x2b204a?_0x2b204a['findIndex'](_0x3eb3e1=>_0x3eb3e1?.['includes']('School\x20Year')):-1,_0x3e35f3=_0x3d55bf!==-1&&_0x2b204a?_0x2b204a[_0x3d55bf+0x2]?.['trim']()??'':'';let _0x530a8b=0x0;if(_0x3e35f3){const _0x13c073=_0x3e35f3['match'](/(\d{4})-(\d{4})/);if(_0x13c073){const _0x1930ac=(_0x13c073[0x1]??'')['slice'](0x2),_0x25b0ee=(_0x13c073[0x2]??'')['slice'](0x2);_0x530a8b=parseInt(_0x1930ac+_0x25b0ee,0xa);}}const _0x13d655={'faculty':_0x2a760d,'course':_0x656b1e,'section':_0x10528f,'semester':_0x4415f6,'sy':_0x530a8b},_0x46b0a1=_0x4171fc['findIndex'](_0x283e4f=>_0x283e4f['some'](_0x3f9c6a=>_0x3f9c6a?.['trim']()==='CO\x20#'));if(_0x46b0a1===-1)throw new Error('CO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x4c54ed=_0x4171fc[_0x46b0a1+0x1];if(!_0x4c54ed)throw new Error('ILO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x56d69d={};let _0x5d5822=0x1,_0x1d2464=0x1;for(let _0x1e44a1=0x3;_0x1e44a1<_0x4c54ed['length'];_0x1e44a1++){const _0x5e8409=_0x4c54ed[_0x1e44a1];if(!_0x5e8409)continue;const _0x28ced7='co'+_0x5d5822;if(!_0x56d69d[_0x28ced7])_0x56d69d[_0x28ced7]=[];_0x56d69d[_0x28ced7]['push']('ilo'+_0x1d2464),_0x1d2464++,_0x1d2464>0x3&&(_0x5d5822++,_0x1d2464=0x1);}const _0x30ea68=_0x4171fc['findIndex'](_0x33f04a=>_0x33f04a['includes']('Name\x20of\x20Students'));if(_0x30ea68===-1)throw new Error('Student\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x12594c=_0x4171fc[_0x30ea68];if(!_0x12594c)throw new Error('Student\x20header\x20row\x20is\x20missing');const _0x3c6ad1=_0x12594c['findIndex'](_0x2891f2=>_0x2891f2?.['includes']('Name\x20of\x20Students'));if(_0x3c6ad1===-1)throw new Error('Name\x20of\x20Students\x20column\x20not\x20found\x20in\x20CSV');const _0x5ba76f=_0x3c6ad1+0x2,_0x4c298f=[];for(let _0x5c6956=_0x30ea68+0x1;_0x5c6956<_0x4171fc['length'];_0x5c6956++){const _0x4a694e=_0x4171fc[_0x5c6956];if(!_0x4a694e)continue;if(_0x4a694e['some'](_0x404d87=>_0x404d87?.['toUpperCase']()['includes']('TOTAL\x20STUDENTS')||_0x404d87?.['toUpperCase']()['includes']('ACHIEVED\x20THE\x20MINIMUM')||_0x404d87?.['toUpperCase']()['includes']('INACTIVE')||_0x404d87?.['toUpperCase']()['includes']('AVERAGE')))continue;if(!_0x4a694e[_0x3c6ad1])continue;const _0x2a5e31=_0x4a694e[_0x3c6ad1]['replace'](/"/g,'')['trim'](),_0x33b06b=_0x4a694e['slice'](_0x5ba76f)['map'](_0x162a8c=>_0x162a8c===null?null:!isNaN(Number(_0x162a8c))?parseFloat(_0x162a8c):0x0);let _0x3d7a08=0x0;const _0x20c8bb={};Object['entries'](_0x56d69d)['forEach'](([_0x3b83f1,_0x43dc14])=>{const _0x41fccb={};_0x43dc14['forEach'](_0x4dfb92=>{_0x41fccb[_0x4dfb92]=_0x33b06b[_0x3d7a08]??0x0,_0x3d7a08++;}),_0x20c8bb[_0x3b83f1]={'transmuted_score':_0x41fccb};}),_0x4c298f['push']({'student_name':_0x2a5e31,'coaep':_0x20c8bb});}const _0xf853f0=_0x4171fc['find'](_0x396e47=>_0x396e47['some'](_0x1d91e7=>_0x1d91e7?.['includes']('ACHIEVED\x20THE\x20MINIMUM'))),_0x2bfc09=_0x4171fc['find'](_0x57263d=>_0x57263d['some'](_0x3274c0=>_0x3274c0?.['includes']('AVERAGE'))),_0x919d14=_0xf853f0?_0xf853f0['slice'](_0x5ba76f)['map'](_0x3c1f0a=>_0x3c1f0a&&!isNaN(Number(_0x3c1f0a))?parseInt(_0x3c1f0a):0x0):[],_0x2d1658=_0x2bfc09?_0x2bfc09['slice'](_0x5ba76f)['map'](_0x3c091b=>_0x3c091b&&_0x3c091b!=='#DIV/0!'&&!isNaN(Number(_0x3c091b))?parseInt(_0x3c091b):0x0):[],_0x589d04={};let _0x2555ea=0x0;return Object['entries'](_0x56d69d)['forEach'](([_0x264798,_0x1e54a4])=>{if(!_0x589d04[_0x264798])_0x589d04[_0x264798]={};_0x1e54a4['forEach'](_0x15b2c2=>{_0x589d04[_0x264798][_0x15b2c2]={'achievedMinimum':_0x919d14[_0x2555ea]??0x0,'average':_0x2d1658[_0x2555ea]??0x0},_0x2555ea++;});}),{'assessmentData':{'classAssignment':_0x13d655,'student':_0x4c298f,'total':_0x589d04}};}
31
31
 
32
- async function uploadAssessmentData(_0x2e619b,_0x268103){try{const _0x91ac67=await convertToCSVFile(_0x268103),_0x4a3eef=await _0x91ac67['text'](),_0x2c39e1=parseAssessmentCsv(_0x4a3eef),_0x3a9840=await fetch(_0x2e619b+'/assessment-data/upload',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2c39e1)});if(!_0x3a9840['ok']){const _0x5b376e=await _0x3a9840['json']();throw _0x5b376e;}return _0x3a9840['json']();}catch(_0x3519a4){throw _0x3519a4;}}
32
+ async function uploadAssessmentData(_0x205992,_0x59f2e0){try{const _0x272938=await convertToCSVFile(_0x59f2e0),_0x1ee500=await _0x272938['text'](),_0x191383=parseAssessmentCsv(_0x1ee500),_0x3e19c4=await fetch(_0x205992+'/assessment-data/upload',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x191383)});if(!_0x3e19c4['ok']){const _0x5eea51=await _0x3e19c4['json']();throw _0x5eea51;}return _0x3e19c4['json']();}catch(_0xaa2e2){throw _0xaa2e2;}}
33
33
 
34
- async function uploadDeptFaculty(_0x6f7c8f,_0x221b4a){try{const _0x8a9247=await convertToCSVFile(_0x221b4a),_0x1b8f0f=new FormData();_0x1b8f0f['append']('csvFile',_0x8a9247);const _0x46be7d=await fetch(_0x6f7c8f+'/dept-faculties/upload',{'method':'POST','body':_0x1b8f0f});if(!_0x46be7d['ok']){const _0x485ba6=await _0x46be7d['json']();throw _0x485ba6;}return _0x46be7d['json']();}catch(_0x34dc0a){throw _0x34dc0a;}}
34
+ async function uploadDeptFaculty(_0x403fcc,_0x40691a){try{const _0x1f9e48=await convertToCSVFile(_0x40691a),_0x505ef7=new FormData();_0x505ef7['append']('csvFile',_0x1f9e48);const _0x2c6dca=await fetch(_0x403fcc+'/dept-faculties/upload',{'method':'POST','body':_0x505ef7});if(!_0x2c6dca['ok']){const _0x54de01=await _0x2c6dca['json']();throw _0x54de01;}return _0x2c6dca['json']();}catch(_0x4178f2){throw _0x4178f2;}}
35
35
 
36
- const HEADERS={'po':['program\x20outcome','po\x20statement','outcome\x20statement'],'tl':['taxonomy','level'],'pi':['performance\x20indicator'],'fc':['formative'],'sc':['summative'],'at':['assessment\x20tool','assessment\x20method','tool'],'pt':['performance\x20target','target','passing']};function getPoaepHeader(_0x1500c7){let _0xcc7fd1={'headerIdx':-1,'poIdx':-1,'tlIdx':-1,'piIdx':-1,'fcIdx':-1,'scIdx':-1,'atIdx':-1,'ptIdx':-1};for(let _0x75746=0x0;_0x75746<Math['min'](_0x1500c7['length'],0x14);_0x75746++){const _0x5d5fd4=(_0x1500c7[_0x75746]??[])['map'](_0x97d172=>_0x97d172['toLowerCase']()['trim']()),_0x19f875=_0x5d5fd4['findIndex'](_0x2ce533=>HEADERS['po']['some'](_0x441498=>_0x2ce533['toLowerCase']()['includes'](_0x441498))),_0x40c5f8=_0x5d5fd4['findIndex'](_0x3f8cf2=>HEADERS['tl']['some'](_0x238d55=>_0x3f8cf2['toLowerCase']()['includes'](_0x238d55))),_0x2a8766=_0x5d5fd4['findIndex'](_0x391dc2=>HEADERS['pi']['some'](_0x15a770=>_0x391dc2['toLowerCase']()['includes'](_0x15a770))),_0x27edfa=_0x5d5fd4['findIndex'](_0x2d2562=>HEADERS['fc']['some'](_0x267fb9=>_0x2d2562['toLowerCase']()['includes'](_0x267fb9))),_0x1b6100=_0x5d5fd4['findIndex'](_0x2658f8=>HEADERS['sc']['some'](_0x5d4646=>_0x2658f8['toLowerCase']()['includes'](_0x5d4646))),_0x2d98b1=_0x5d5fd4['findIndex'](_0x15bce9=>HEADERS['at']['some'](_0x581b40=>_0x15bce9['toLowerCase']()['includes'](_0x581b40))),_0x5c8894=_0x5d5fd4['findIndex'](_0x1ad356=>HEADERS['pt']['some'](_0x41efda=>_0x1ad356['toLowerCase']()['includes'](_0x41efda))),_0x37a80f=[_0x19f875,_0x40c5f8,_0x2a8766,_0x27edfa,_0x1b6100,_0x2d98b1,_0x5c8894]['filter'](_0x39d6cc=>_0x39d6cc!==-1)['length'];if(_0x37a80f>=0x3){_0xcc7fd1={'headerIdx':_0x75746,'poIdx':_0x19f875,'tlIdx':_0x40c5f8,'piIdx':_0x2a8766,'fcIdx':_0x27edfa,'scIdx':_0x1b6100,'atIdx':_0x2d98b1,'ptIdx':_0x5c8894};break;}}if(_0xcc7fd1['headerIdx']===-1)throw new Error('No\x20valid\x20headers\x20found\x20in\x20POAEP\x20file.');return _0xcc7fd1;}
36
+ const HEADERS={'po':['program\x20outcome','po\x20statement','outcome\x20statement'],'tl':['taxonomy','level'],'pi':['performance\x20indicator'],'fc':['formative'],'sc':['summative'],'at':['assessment\x20tool','assessment\x20method','tool'],'pt':['performance\x20target','target','passing']};function getPoaepHeader(_0x5b38d4){let _0x4b7357={'headerIdx':-1,'poIdx':-1,'tlIdx':-1,'piIdx':-1,'fcIdx':-1,'scIdx':-1,'atIdx':-1,'ptIdx':-1};for(let _0x3cc9f4=0x0;_0x3cc9f4<Math['min'](_0x5b38d4['length'],0x14);_0x3cc9f4++){const _0x4123fb=(_0x5b38d4[_0x3cc9f4]??[])['map'](_0x4b436b=>_0x4b436b['toLowerCase']()['trim']()),_0x50f9da=_0x4123fb['findIndex'](_0x24f039=>HEADERS['po']['some'](_0x41c7e8=>_0x24f039['toLowerCase']()['includes'](_0x41c7e8))),_0x491333=_0x4123fb['findIndex'](_0x256df2=>HEADERS['tl']['some'](_0x5981aa=>_0x256df2['toLowerCase']()['includes'](_0x5981aa))),_0xae2c6c=_0x4123fb['findIndex'](_0x126f49=>HEADERS['pi']['some'](_0x440263=>_0x126f49['toLowerCase']()['includes'](_0x440263))),_0x284450=_0x4123fb['findIndex'](_0x30065f=>HEADERS['fc']['some'](_0x1fdb8e=>_0x30065f['toLowerCase']()['includes'](_0x1fdb8e))),_0x4f6126=_0x4123fb['findIndex'](_0x35621f=>HEADERS['sc']['some'](_0x4e83db=>_0x35621f['toLowerCase']()['includes'](_0x4e83db))),_0x5a78b4=_0x4123fb['findIndex'](_0x34fa44=>HEADERS['at']['some'](_0x216710=>_0x34fa44['toLowerCase']()['includes'](_0x216710))),_0x2853a5=_0x4123fb['findIndex'](_0x363546=>HEADERS['pt']['some'](_0x22b627=>_0x363546['toLowerCase']()['includes'](_0x22b627))),_0x444f7e=[_0x50f9da,_0x491333,_0xae2c6c,_0x284450,_0x4f6126,_0x5a78b4,_0x2853a5]['filter'](_0x2b9996=>_0x2b9996!==-1)['length'];if(_0x444f7e>=0x3){_0x4b7357={'headerIdx':_0x3cc9f4,'poIdx':_0x50f9da,'tlIdx':_0x491333,'piIdx':_0xae2c6c,'fcIdx':_0x284450,'scIdx':_0x4f6126,'atIdx':_0x5a78b4,'ptIdx':_0x2853a5};break;}}if(_0x4b7357['headerIdx']===-1)throw new Error('No\x20valid\x20headers\x20found\x20in\x20POAEP\x20file.');return _0x4b7357;}
37
37
 
38
- const parseFormativeCourses=_0x2c2812=>{let _0x122636=_0x2c2812['split'](',')['reduce']((_0x26172d,_0x12b0e5)=>{const _0x5ec415=_0x12b0e5['trim']();if(_0x5ec415)_0x26172d['push'](_0x5ec415);return _0x26172d;},[]);return _0x122636;};
38
+ const parseFormativeCourses=_0x23a1b3=>{let _0x58ee47=_0x23a1b3['split'](',')['reduce']((_0x1eea25,_0x55fe9d)=>{const _0x24db65=_0x55fe9d['trim']();if(_0x24db65)_0x1eea25['push'](_0x24db65);return _0x1eea25;},[]);return _0x58ee47;};
39
39
 
40
- const parsePOAEP=_0x3fac3b=>{try{const _0x1df76e=_0x46b4e9['parse'](_0x3fac3b,{'skipEmptyLines':![]})['data'],{headerIdx:_0x51ef23,poIdx:_0x4b63a7,tlIdx:_0x59f610,piIdx:_0xf870c6,fcIdx:_0x3352c9,scIdx:_0xd7173c,atIdx:_0x520e39,ptIdx:_0x595e64}=getPoaepHeader(_0x1df76e),_0x19578d=[];let _0x1d1a21={'po_desc':'','seq_no':0x0,'PerfIndicators':[]},_0x3a897a='',_0x55fd9d='',_0x5ed7df='';for(let _0x1f9c6b=_0x51ef23+0x1;_0x1f9c6b<_0x1df76e['length'];_0x1f9c6b++){const _0x23a0ef=_0x1df76e[_0x1f9c6b];if(!_0x23a0ef)break;const _0x16700f=_0x23a0ef[_0x4b63a7]?.['trim']()||'';_0x16700f!==''&&(_0x1d1a21={'po_desc':_0x16700f,'seq_no':_0x1d1a21['seq_no']+0x1,'PerfIndicators':[]},_0x19578d['push'](_0x1d1a21),_0x3a897a='',_0x55fd9d='',_0x5ed7df='');if(_0x1d1a21['po_desc']==='')throw new Error('Invalid\x20Program\x20Outcome\x20at\x20row\x20'+_0x1f9c6b+'.');const _0x41f9b7=_0x23a0ef[_0xf870c6]?.['trim']()||'';if(_0x41f9b7==='')break;const _0x426996=_0x23a0ef[_0x3352c9]?.['trim']()||'';if(_0x426996==='')throw new Error('Empty\x20Formative\x20Courses\x20at\x20row\x20'+_0x1f9c6b+'.');const _0x4a3ef1=_0x23a0ef[_0xd7173c]?.['trim']()||_0x3a897a;if(_0x4a3ef1==='')throw new Error('Empty\x20Summative\x20Course\x20at\x20row\x20'+_0x1f9c6b+'.');_0x3a897a=_0x4a3ef1;const _0x3ed94c=_0x23a0ef[_0x520e39]?.['trim']()||_0x55fd9d;if(_0x3ed94c==='')throw new Error('Empty\x20Assessment\x20Tool\x20at\x20row\x20'+_0x1f9c6b+'.');_0x55fd9d=_0x3ed94c;const _0x4d932a=_0x23a0ef[_0x595e64]?.['trim']()||_0x5ed7df;if(_0x4d932a==='')throw new Error('Empty\x20Performance\x20Target\x20at\x20row\x20'+_0x1f9c6b+'.');_0x5ed7df=_0x4d932a;const _0x224fac=parseFormativeCourses(_0x426996);if(_0x224fac['length']===0x0)throw new Error('Invalid\x20Formative\x20Courses\x20format\x20at\x20row\x20'+_0x1f9c6b+'.');const _0x16dbbb=performaceTarget(_0x4d932a);if(!_0x16dbbb['performance_target']||!_0x16dbbb['passing_score'])throw new Error('Invalid\x20Performance\x20Targets\x20format\x20at\x20row\x20'+_0x1f9c6b+'.');const _0x37956={'pi_desc':_0x41f9b7,'FormativeCourses':_0x224fac['map'](_0x1e2e4a=>({'course_id':_0x1e2e4a,'cognitive_level':0x0})),'SummativeCourse':{'course_id':_0x4a3ef1},'AssessmentTool':{'at_desc':_0x3ed94c},'PerformanceTargets':{'target_percent':_0x16dbbb['performance_target'],'min_score':_0x16dbbb['passing_score']}};_0x1d1a21['PerfIndicators']['push'](_0x37956);}return {'success':!![],'message':'Successfully\x20parsed\x20POAEP\x20file.','data':{'POAEP':_0x19578d}};}catch(_0x384938){return {'success':![],'error':_0x384938 instanceof Error?_0x384938['message']:_0x384938,'message':'Please\x20ensure\x20the\x20file\x20follows\x20the\x20POAEP\x20template.'};}};
40
+ const parsePOAEP=_0x231128=>{try{const _0x2d0b46=_0x2656f4['parse'](_0x231128,{'skipEmptyLines':![]})['data'],{headerIdx:_0x494e9e,poIdx:_0x10fba9,tlIdx:_0x473eed,piIdx:_0x5f53fb,fcIdx:_0x197f88,scIdx:_0x35a034,atIdx:_0x23d746,ptIdx:_0x570ee8}=getPoaepHeader(_0x2d0b46),_0x15504e=[];let _0x463fa2={'po_desc':'','seq_no':0x0,'PerfIndicators':[]},_0x592347='',_0x3844e5='',_0x400364='';for(let _0x9dd5c8=_0x494e9e+0x1;_0x9dd5c8<_0x2d0b46['length'];_0x9dd5c8++){const _0x45a3a4=_0x2d0b46[_0x9dd5c8];if(!_0x45a3a4)break;const _0x93b3dd=_0x45a3a4[_0x10fba9]?.['trim']()||'';_0x93b3dd!==''&&(_0x463fa2={'po_desc':_0x93b3dd,'seq_no':_0x463fa2['seq_no']+0x1,'PerfIndicators':[]},_0x15504e['push'](_0x463fa2),_0x592347='',_0x3844e5='',_0x400364='');if(_0x463fa2['po_desc']==='')throw new Error('Invalid\x20Program\x20Outcome\x20at\x20row\x20'+_0x9dd5c8+'.');const _0x4d6ec4=_0x45a3a4[_0x5f53fb]?.['trim']()||'';if(_0x4d6ec4==='')break;const _0x168211=_0x45a3a4[_0x197f88]?.['trim']()||'';if(_0x168211==='')throw new Error('Empty\x20Formative\x20Courses\x20at\x20row\x20'+_0x9dd5c8+'.');const _0x53a865=_0x45a3a4[_0x35a034]?.['trim']()||_0x592347;if(_0x53a865==='')throw new Error('Empty\x20Summative\x20Course\x20at\x20row\x20'+_0x9dd5c8+'.');_0x592347=_0x53a865;const _0x4fb614=_0x45a3a4[_0x23d746]?.['trim']()||_0x3844e5;if(_0x4fb614==='')throw new Error('Empty\x20Assessment\x20Tool\x20at\x20row\x20'+_0x9dd5c8+'.');_0x3844e5=_0x4fb614;const _0x54b811=_0x45a3a4[_0x570ee8]?.['trim']()||_0x400364;if(_0x54b811==='')throw new Error('Empty\x20Performance\x20Target\x20at\x20row\x20'+_0x9dd5c8+'.');_0x400364=_0x54b811;const _0x42bb7a=parseFormativeCourses(_0x168211);if(_0x42bb7a['length']===0x0)throw new Error('Invalid\x20Formative\x20Courses\x20format\x20at\x20row\x20'+_0x9dd5c8+'.');const _0x3a874f=performaceTarget(_0x54b811);if(!_0x3a874f['performance_target']||!_0x3a874f['passing_score'])throw new Error('Invalid\x20Performance\x20Targets\x20format\x20at\x20row\x20'+_0x9dd5c8+'.');const _0x24aaee={'pi_desc':_0x4d6ec4,'FormativeCourses':_0x42bb7a['map'](_0x500311=>({'course_id':_0x500311,'cognitive_level':0x0})),'SummativeCourse':{'course_id':_0x53a865},'AssessmentTool':{'at_desc':_0x4fb614},'PerformanceTargets':{'target_percent':_0x3a874f['performance_target'],'min_score':_0x3a874f['passing_score']}};_0x463fa2['PerfIndicators']['push'](_0x24aaee);}return {'success':!![],'message':'Successfully\x20parsed\x20POAEP\x20file.','data':{'POAEP':_0x15504e}};}catch(_0x587d09){return {'success':![],'error':_0x587d09 instanceof Error?_0x587d09['message']:_0x587d09,'message':'Please\x20ensure\x20the\x20file\x20follows\x20the\x20POAEP\x20template.'};}};
41
41
 
42
- async function uploadPOAEP(_0x4b3e04,_0x24fb3e,_0x5dafc7,_0x54897c,_0x4cc41f,_0x4f33bf){try{const _0x2f6d02=await convertToCSVFile(_0x24fb3e),_0x8b9e15=await _0x2f6d02['text'](),_0x5d35ef=parsePOAEP(_0x8b9e15),_0x2c8a3e=await fetch(_0x4b3e04+'/program-outcomes/poaep/upload?curr_id='+_0x54897c+'&period_id='+_0x4cc41f+'&program_id='+_0x4f33bf,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x5dafc7},'credentials':'include','body':JSON['stringify'](_0x5d35ef)});if(!_0x2c8a3e['ok']){const _0x1e8a2e=await _0x2c8a3e['json']();throw _0x1e8a2e;}return _0x2c8a3e['json']();}catch(_0x8af377){throw _0x8af377;}}
42
+ async function uploadPOAEP(_0x167e13,_0x4963b9,_0x284073,_0x2a3413,_0x9f9e24){try{const _0x2dea2d=await convertToCSVFile(_0x4963b9),_0x34f258=await _0x2dea2d['text'](),_0x2ba8a0=parsePOAEP(_0x34f258),_0x220c27=await fetch(_0x167e13+'/program-outcomes/poaep/upload?curr_id='+_0x2a3413+'&period_id='+_0x9f9e24,{'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x284073},'credentials':'include','body':JSON['stringify'](_0x2ba8a0)});if(!_0x220c27['ok']){const _0x2a7322=await _0x220c27['json']();throw _0x2a7322;}return _0x220c27['json']();}catch(_0x4f1e75){throw _0x4f1e75;}}
43
43
 
44
- class Client{['BASE_URL'];constructor(_0x5517d5){this['BASE_URL']=_0x5517d5;}['Parser'](){return {'curriculum':async _0x41c378=>{const _0x10cbf7=await uploadCurriculum(this['BASE_URL'],_0x41c378);return _0x10cbf7;},'courseOffering':async _0x4e1549=>{const _0x1f78ab=await uploadCourseOffering(this['BASE_URL'],_0x4e1549);return _0x1f78ab;},'coaep':async(_0x251b20,_0x11a51c)=>{const _0x13883b=await uploadCOAEP(this['BASE_URL'],_0x251b20,_0x11a51c);return _0x13883b;},'enrolledStudent':async _0x34d3b0=>{const _0x3cb5a4=await uploadEnrolledStudent(this['BASE_URL'],_0x34d3b0);return _0x3cb5a4;},'classlist':async(_0x2878d5,_0x29cafe,_0x48e97d)=>{const _0x33c7b9=await uploadClassList(this['BASE_URL'],_0x2878d5,_0x29cafe,_0x48e97d);return _0x33c7b9;},'assessmentData':async _0x30e1e2=>{const _0xc49060=await uploadAssessmentData(this['BASE_URL'],_0x30e1e2);return _0xc49060;},'deptFaculty':async _0x37b8d4=>{const _0x26dfc8=await uploadDeptFaculty(this['BASE_URL'],_0x37b8d4);return _0x26dfc8;},'poaep':async(_0xe9ff05,_0x415761,_0x5cd304,_0x129d0c,_0xd89dab)=>{const _0x1c04d1=await uploadPOAEP(this['BASE_URL'],_0xe9ff05,_0x415761,_0x5cd304,_0x129d0c,_0xd89dab);return _0x1c04d1;}};}}
44
+ const getAssessmentData=async _0x261bfc=>{try{const _0x53d585=await convertToCSVFile(_0x261bfc),_0x19db86=await _0x53d585['text'](),_0x3093aa=parseAssessmentCsv(_0x19db86),_0x5cbbb3={'success':!![],'message':'Successfully\x20parsed\x20Assessment\x20Data.','data':_0x3093aa};return Promise['resolve'](_0x5cbbb3);}catch(_0xc0752c){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Assessment\x20Data.','error':_0xc0752c});}};
45
+
46
+ const getClassList=async _0x15f352=>{try{const _0x3e01b4=await convertToCSVFile(_0x15f352),_0x27f399=await _0x3e01b4['text'](),_0x452808=parseClassList(_0x27f399),_0x2b782a={'success':!![],'message':'Successfully\x20parsed\x20Class\x20List.','data':_0x452808};return Promise['resolve'](_0x2b782a);}catch(_0xbc591a){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Assessment\x20Data.','error':_0xbc591a});}};
47
+
48
+ async function getCOAEP(_0x2c5e9a){try{const _0x46429a=await convertToCSVFile(_0x2c5e9a),_0x3b58dc=await _0x46429a['text'](),_0x1567aa=parseCOAEP(_0x3b58dc);if('error'in _0x1567aa)return Promise['reject']({'success':![],'message':_0x1567aa['message'],'error':_0x1567aa['error']});const _0x3bff64={'success':!![],'message':'Successfully\x20parsed\x20COAEP\x20Data.','data':_0x1567aa};return Promise['resolve'](_0x3bff64);}catch(_0x1a751f){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20COAEP\x20Data.','error':_0x1a751f});}}
49
+
50
+ const getCourseOffering=async _0x57f9d9=>{try{const _0x1b04c2=await convertToCSVFile(_0x57f9d9),_0x357386=await _0x1b04c2['text'](),_0x3171f6=parseCourseOffering(_0x357386),_0x5aa18a={'success':!![],'message':'Successfully\x20parsed\x20Course\x20Offering.','data':{'courseOfferings':_0x3171f6}};return Promise['resolve'](_0x5aa18a);}catch(_0x4d3405){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Course\x20Offering.','error':_0x4d3405});}};
51
+
52
+ const getCurriculum=async _0xbb8989=>{try{const _0x547c1f=await convertToCSVFile(_0xbb8989),_0x1d6ca2=await _0x547c1f['text'](),_0x7c4829=parseCurriculum(_0x1d6ca2),_0x81efca={'success':!![],'message':'Successfully\x20parsed\x20Curriculum.','data':{'curriculums':_0x7c4829}};return Promise['resolve'](_0x81efca);}catch(_0x2dd76f){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Curriculum.','error':_0x2dd76f});}};
53
+
54
+ const getPOAEP=async _0x305a56=>{try{const _0x5cca75=await convertToCSVFile(_0x305a56),_0x5183bb=await _0x5cca75['text'](),_0x103664=parsePOAEP(_0x5183bb);if(!_0x103664['success'])return Promise['reject'](_0x103664);return Promise['resolve'](_0x103664);}catch(_0x33b9b5){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20POAEP.','error':_0x33b9b5});}};
55
+
56
+ const getDeptFaculty=async _0x2cde28=>{try{const _0x38ae3f=await convertToCSVFile(_0x2cde28),_0x317e3b=new FormData();_0x317e3b['append']('csvFile',_0x38ae3f);const _0x1fbf39={'success':!![],'message':'Successfully\x20parsed\x20Dept\x20Faculty.','data':{'body':_0x317e3b}};return Promise['resolve'](_0x1fbf39);}catch(_0x4a6711){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Dept\x20Faculty.','error':_0x4a6711});}};
57
+
58
+ const getEnrolledStudents=async _0x2b5571=>{try{const _0x1717dd=await convertToCSVFile(_0x2b5571),_0x593bee=new FormData();_0x593bee['append']('csvFile',_0x1717dd);const _0x5272f2={'success':!![],'message':'Successfully\x20parsed\x20Enrolled\x20Students.','data':{'body':_0x593bee}};return Promise['resolve'](_0x5272f2);}catch(_0x4885c7){return Promise['reject']({'success':![],'message':'Error\x20parsing\x20Enrolled\x20Students.','error':_0x4885c7});}};
59
+
60
+ class Client{['BASE_URL'];constructor(_0x307e6f){this['BASE_URL']=_0x307e6f;}['Parser'](){return {'curriculum':async _0x405ffe=>{const _0x3cf444=await uploadCurriculum(this['BASE_URL'],_0x405ffe);return _0x3cf444;},'courseOffering':async _0x1df9f0=>{const _0x41ca59=await uploadCourseOffering(this['BASE_URL'],_0x1df9f0);return _0x41ca59;},'coaep':async(_0x51399c,_0x143706)=>{const _0x56fbda=await uploadCOAEP(this['BASE_URL'],_0x51399c,_0x143706);return _0x56fbda;},'enrolledStudent':async _0x1aa588=>{const _0x335833=await uploadEnrolledStudent(this['BASE_URL'],_0x1aa588);return _0x335833;},'classlist':async(_0x17c29b,_0xf88b14,_0x42b0f8)=>{const _0x581d09=await uploadClassList(this['BASE_URL'],_0x17c29b,_0xf88b14,_0x42b0f8);return _0x581d09;},'assessmentData':async _0x297097=>{const _0x40674a=await uploadAssessmentData(this['BASE_URL'],_0x297097);return _0x40674a;},'deptFaculty':async _0x5c20c9=>{const _0x2ba05e=await uploadDeptFaculty(this['BASE_URL'],_0x5c20c9);return _0x2ba05e;},'poaep':async(_0x306963,_0x2eb7d8,_0x42dfa9,_0x45dec0)=>{const _0x31c6a2=await uploadPOAEP(this['BASE_URL'],_0x306963,_0x2eb7d8,_0x42dfa9,_0x45dec0);return _0x31c6a2;},'getAssessmentData':getAssessmentData,'getClassList':getClassList,'getCOAEP':getCOAEP,'getCourseOffering':getCourseOffering,'getCurriculum':getCurriculum,'getPOAEP':getPOAEP,'getDeptFaculty':getDeptFaculty,'getEnrolledStudents':getEnrolledStudents};}}
45
61
 
46
62
  export { Client as default };
package/main.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { getCOAEP } from "./payloads/getCOAEP";
1
2
  export default class Client {
2
3
  private BASE_URL;
3
4
  constructor(url: string);
@@ -19,6 +20,36 @@ export default class Client {
19
20
  classlist: (xls: File, subj_code: number, period_id: number) => Promise<Record<string, unknown>>;
20
21
  assessmentData: (xls: File) => Promise<Record<string, unknown>>;
21
22
  deptFaculty: (xls: File) => Promise<Record<string, unknown>>;
22
- poaep: (xls: File, token: string, curr_id: string, period_id: number, program_id: number) => Promise<Record<string, unknown>>;
23
+ poaep: (xls: File, token: string, curr_id: string, period_id: number) => Promise<Record<string, unknown>>;
24
+ /**
25
+ * Functions that parse then return the payload
26
+ * instead of directly calling the backend and returning the response
27
+ */
28
+ getAssessmentData: (xls: File) => Promise<import("./types/parserResult").ParserResult<{
29
+ assessmentData: import("./types/assessmentdata").AssessmentData;
30
+ }>>;
31
+ getClassList: (xls: File) => Promise<import("./types/parserResult").ParserResult<{
32
+ enrolledCourses: import("./types/classList").classList[];
33
+ }>>;
34
+ getCOAEP: typeof getCOAEP;
35
+ getCourseOffering: (xls: File) => Promise<import("./types/parserResult").ParserResult<{
36
+ courseOfferings: import("./types/courseOffering").CourseOffering[];
37
+ }>>;
38
+ getCurriculum: (xls: File) => Promise<import("./types/parserResult").ParserResult<{
39
+ curriculums: import("./types/curriculum").CurriculumCourses[];
40
+ }>>;
41
+ getPOAEP: (xls: File) => Promise<import("./types/parserResult").ParserResult<{
42
+ POAEP: import("./types/poaep").PO[];
43
+ }>>;
44
+ /**
45
+ * Functions that converts the xls to csv
46
+ * then returns the csv as formdata
47
+ */
48
+ getDeptFaculty: (xls: File) => Promise<import("./types/parserResult").ParserResult<{
49
+ body: FormData;
50
+ }>>;
51
+ getEnrolledStudents: (xls: File) => Promise<import("./types/parserResult").ParserResult<{
52
+ body: FormData;
53
+ }>>;
23
54
  };
24
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obe-loms/coms-parser",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
4
4
  "license": "ISC",
5
5
  "dependencies": {
6
6
  "papaparse": "^5.5.3",
package/parser/xls.d.ts CHANGED
@@ -1 +1 @@
1
- export declare function convertToCSVFile(xls: File): Promise<File>;
1
+ export declare function convertToCSVFile(xls: File, sheetName?: string): Promise<File>;
@@ -0,0 +1,6 @@
1
+ import { AssessmentData } from "../types/assessmentdata";
2
+ import { ParserResult } from "../types/parserResult";
3
+ declare const getAssessmentData: (xls: File) => Promise<ParserResult<{
4
+ assessmentData: AssessmentData;
5
+ }>>;
6
+ export default getAssessmentData;
@@ -0,0 +1,5 @@
1
+ import { COAEP } from "../types/coaep";
2
+ import { ParserResult } from "../types/parserResult";
3
+ export declare function getCOAEP(xls: File): Promise<ParserResult<{
4
+ COAEP: COAEP;
5
+ }>>;
@@ -0,0 +1,6 @@
1
+ import { classList } from "../types/classList";
2
+ import { ParserResult } from "../types/parserResult";
3
+ declare const getClassList: (xls: File) => Promise<ParserResult<{
4
+ enrolledCourses: classList[];
5
+ }>>;
6
+ export default getClassList;
@@ -0,0 +1,6 @@
1
+ import { ParserResult } from "../types/parserResult";
2
+ import { CourseOffering } from "../types/courseOffering";
3
+ declare const getCourseOffering: (xls: File) => Promise<ParserResult<{
4
+ courseOfferings: CourseOffering[];
5
+ }>>;
6
+ export default getCourseOffering;
@@ -0,0 +1,6 @@
1
+ import { ParserResult } from "../types/parserResult";
2
+ import { CurriculumCourses } from "../types/curriculum";
3
+ declare const getCurriculum: (xls: File) => Promise<ParserResult<{
4
+ curriculums: CurriculumCourses[];
5
+ }>>;
6
+ export default getCurriculum;
@@ -0,0 +1,5 @@
1
+ import { ParserResult } from "../types/parserResult";
2
+ declare const getDeptFaculty: (xls: File) => Promise<ParserResult<{
3
+ body: FormData;
4
+ }>>;
5
+ export default getDeptFaculty;
@@ -0,0 +1,5 @@
1
+ import { ParserResult } from "../types/parserResult";
2
+ declare const getEnrolledStudents: (xls: File) => Promise<ParserResult<{
3
+ body: FormData;
4
+ }>>;
5
+ export default getEnrolledStudents;
@@ -0,0 +1,6 @@
1
+ import { ParserResult } from "../types/parserResult";
2
+ import { PO } from "../types/poaep";
3
+ declare const getPOAEP: (xls: File) => Promise<ParserResult<{
4
+ POAEP: PO[];
5
+ }>>;
6
+ export default getPOAEP;
@@ -1 +1 @@
1
- export declare function uploadPOAEP(url: string, xls: File, token: string, curr_id: string, period_id: number, program_id: number): Promise<Record<string, unknown>>;
1
+ export declare function uploadPOAEP(url: string, xls: File, token: string, curr_id: string, period_id: number): Promise<Record<string, unknown>>;
@@ -0,0 +1,6 @@
1
+ export type ParserResult<T = any> = {
2
+ success: boolean;
3
+ message: string;
4
+ data?: T;
5
+ error?: any;
6
+ };