@obe-loms/coms-parser 1.3.2 → 1.4.0

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,38 +1,38 @@
1
- import _0x4967db from 'papaparse';
2
- import * as _0x3f7939 from 'xlsx';
1
+ import _0x1b82a8 from 'papaparse';
2
+ import * as _0x787c13 from 'xlsx';
3
3
 
4
- function parseCurriculum(_0x425bec){let _0x44bb02='',_0x5004d2='',_0x17c91a=0x0,_0x1a13b0=null;const _0x1d17ab=[];return _0x4967db['parse'](_0x425bec,{'skipEmptyLines':!![],'complete':_0x5620b3=>{_0x5620b3['data']['forEach'](_0x548d79=>{const _0x162b05=_0x548d79['map'](_0xd401f2=>(_0xd401f2??'')['toString']()['trim']()),_0x568dd0=_0x162b05[0x0]??'';if(_0x568dd0['includes']('Rev#')){const _0xeda952=_0x568dd0['match'](/([A-Z0-9]+)\s*-\s*.*:\s*(.*?)\s+Rev#\s*(\d+)/i);_0xeda952&&(_0x44bb02=_0xeda952[0x1]?.['trim']()??'',_0x5004d2=_0xeda952[0x2]?.['trim']()??'',_0x17c91a=parseInt(_0xeda952[0x3]??'0',0xa));return;}if(/FIRST YEAR/i['test'](_0x568dd0)){_0x1a13b0=0x1;return;}if(/SECOND YEAR/i['test'](_0x568dd0)){_0x1a13b0=0x2;return;}if(/THIRD YEAR/i['test'](_0x568dd0)){_0x1a13b0=0x3;return;}if(/FOURTH YEAR/i['test'](_0x568dd0)){_0x1a13b0=0x4;return;}if(/FIFTH YEAR/i['test'](_0x568dd0)){_0x1a13b0=0x5;return;}if(/First Semester/i['test'](_0x568dd0)||/Second Semester/i['test'](_0x568dd0)||/Summer/i['test'](_0x568dd0))return;const _0xf90b49=[{'sem':0x1,'offset':0x0},{'sem':0x2,'offset':0x6},{'sem':0x3,'offset':0xc}];_0xf90b49['forEach'](({sem:_0x27a98b,offset:_0x151559})=>{const _0x3ee35=_0x162b05[_0x151559]??'',_0x3616fb=_0x162b05[_0x151559+0x1]??'',_0x4be3f9=_0x162b05[_0x151559+0x2]??'',_0x38454b=_0x162b05[_0x151559+0x3]??'',_0x290de8=_0x162b05[_0x151559+0x4]??'';_0x3ee35&&_0x1a13b0&&_0x1d17ab['push']({'curr_id':_0x44bb02,'program_name':_0x5004d2,'revision_no':_0x17c91a,'year_level':_0x1a13b0,'sem':_0x27a98b,'course_id':_0x3ee35,'course_desc':_0x3616fb,'total_units':_0x4be3f9,'lec_unit':_0x38454b,'lab_unit':_0x290de8});});});}}),_0x1d17ab;}
4
+ function parseCurriculum(_0x44fabc){let _0x3a888c='',_0x176dbb='',_0x5ee526=0x0,_0x4bc480=null;const _0xb70030=[];return _0x1b82a8['parse'](_0x44fabc,{'skipEmptyLines':!![],'complete':_0x396794=>{_0x396794['data']['forEach'](_0x25bcd4=>{const _0x2db680=_0x25bcd4['map'](_0x12a41c=>(_0x12a41c??'')['toString']()['trim']()),_0x38caa5=_0x2db680[0x0]??'';if(_0x38caa5['includes']('Rev#')){const _0x3d200d=_0x38caa5['match'](/([A-Z0-9]+)\s*-\s*.*:\s*(.*?)\s+Rev#\s*(\d+)/i);_0x3d200d&&(_0x3a888c=_0x3d200d[0x1]?.['trim']()??'',_0x176dbb=_0x3d200d[0x2]?.['trim']()??'',_0x5ee526=parseInt(_0x3d200d[0x3]??'0',0xa));return;}if(/FIRST YEAR/i['test'](_0x38caa5)){_0x4bc480=0x1;return;}if(/SECOND YEAR/i['test'](_0x38caa5)){_0x4bc480=0x2;return;}if(/THIRD YEAR/i['test'](_0x38caa5)){_0x4bc480=0x3;return;}if(/FOURTH YEAR/i['test'](_0x38caa5)){_0x4bc480=0x4;return;}if(/FIFTH YEAR/i['test'](_0x38caa5)){_0x4bc480=0x5;return;}if(/First Semester/i['test'](_0x38caa5)||/Second Semester/i['test'](_0x38caa5)||/Summer/i['test'](_0x38caa5))return;const _0x4ae836=[{'sem':0x1,'offset':0x0},{'sem':0x2,'offset':0x6},{'sem':0x3,'offset':0xc}];_0x4ae836['forEach'](({sem:_0x595a06,offset:_0x3c1b8b})=>{const _0x2dc78f=_0x2db680[_0x3c1b8b]??'',_0x2f2f2d=_0x2db680[_0x3c1b8b+0x1]??'',_0xfafe7=_0x2db680[_0x3c1b8b+0x2]??'',_0x1ef752=_0x2db680[_0x3c1b8b+0x3]??'',_0x59ca28=_0x2db680[_0x3c1b8b+0x4]??'';_0x2dc78f&&_0x4bc480&&_0xb70030['push']({'curr_id':_0x3a888c,'program_name':_0x176dbb,'revision_no':_0x5ee526,'year_level':_0x4bc480,'sem':_0x595a06,'course_id':_0x2dc78f,'course_desc':_0x2f2f2d,'total_units':_0xfafe7,'lec_unit':_0x1ef752,'lab_unit':_0x59ca28});});});}}),_0xb70030;}
5
5
 
6
- function convertToCSVFile(_0x13fd5d){return new Promise((_0x16f27b,_0x3ab3f2)=>{const _0x527d7=new FileReader();_0x527d7['onload']=_0x85148a=>{const _0x482fe6=_0x85148a['target']?.['result'];if(!_0x482fe6){_0x3ab3f2(new Error('Failed\x20to\x20read\x20file'));return;}try{const _0x5bafb2=_0x3f7939['read'](_0x482fe6,{'type':'array'}),_0x2e29df=_0x5bafb2['SheetNames'][0x0];if(!_0x2e29df){_0x3ab3f2(new Error('No\x20sheets\x20found\x20in\x20workbook'));return;}const _0x485de8=_0x5bafb2['Sheets'][_0x2e29df];if(!_0x485de8){_0x3ab3f2(new Error('No\x20sheets\x20found\x20in\x20worksheet'));return;}const _0x628bbd=_0x3f7939['utils']['sheet_to_csv'](_0x485de8,{'strip':!![]}),_0x520fd4=_0x13fd5d['name']['replace'](/\.[^/.]+$/,'.csv'),_0x3c8526=new File([_0x628bbd],_0x520fd4,{'type':'text/csv','lastModified':Date['now']()});_0x16f27b(_0x3c8526);}catch(_0x5c8b10){_0x3ab3f2(_0x5c8b10);}},_0x527d7['onerror']=()=>{_0x3ab3f2(new Error('File\x20reading\x20failed'));},_0x527d7['readAsArrayBuffer'](_0x13fd5d);});}
6
+ function convertToCSVFile(_0x58ace7){return new Promise((_0x3d740b,_0x2b0ca5)=>{const _0x1feb0d=new FileReader();_0x1feb0d['onload']=_0x314804=>{const _0x3adc21=_0x314804['target']?.['result'];if(!_0x3adc21){_0x2b0ca5(new Error('Failed\x20to\x20read\x20file'));return;}try{const _0x34c9c9=_0x787c13['read'](_0x3adc21,{'type':'array'}),_0x5c65e1=_0x34c9c9['SheetNames'][0x0];if(!_0x5c65e1){_0x2b0ca5(new Error('No\x20sheets\x20found\x20in\x20workbook'));return;}const _0x250397=_0x34c9c9['Sheets'][_0x5c65e1];if(!_0x250397){_0x2b0ca5(new Error('No\x20sheets\x20found\x20in\x20worksheet'));return;}const _0x1253ea=_0x787c13['utils']['sheet_to_csv'](_0x250397,{'strip':!![]}),_0x373a36=_0x58ace7['name']['replace'](/\.[^/.]+$/,'.csv'),_0x54e444=new File([_0x1253ea],_0x373a36,{'type':'text/csv','lastModified':Date['now']()});_0x3d740b(_0x54e444);}catch(_0x5ec5fe){_0x2b0ca5(_0x5ec5fe);}},_0x1feb0d['onerror']=()=>{_0x2b0ca5(new Error('File\x20reading\x20failed'));},_0x1feb0d['readAsArrayBuffer'](_0x58ace7);});}
7
7
 
8
- async function uploadCurriculum(_0x1bfad7,_0x1268b7){try{const _0x42131a=await convertToCSVFile(_0x1268b7),_0x5ee287=await _0x42131a['text'](),_0x254d5c=parseCurriculum(_0x5ee287),_0x41c949=_0x4967db['unparse'](_0x254d5c),_0x510cd4=new File([_0x41c949],_0x42131a['name'],{'type':'text/csv'}),_0x304e61=new FormData();_0x304e61['append']('csvFile',_0x510cd4);const _0x8dc07b=await fetch(_0x1bfad7+'/curr-courses/upload',{'method':'POST','body':_0x304e61});if(!_0x8dc07b['ok']){const _0x5a556=await _0x8dc07b['json']();throw _0x5a556;}return _0x8dc07b['json']();}catch(_0x1d5dec){throw _0x1d5dec;}}
8
+ async function uploadCurriculum(_0x10f2c0,_0x3263e8){try{const _0x31ef1f=await convertToCSVFile(_0x3263e8),_0x416eae=await _0x31ef1f['text'](),_0x56e763=parseCurriculum(_0x416eae),_0x4f92c0=_0x1b82a8['unparse'](_0x56e763),_0x359416=new File([_0x4f92c0],_0x31ef1f['name'],{'type':'text/csv'}),_0x4a24e6=new FormData();_0x4a24e6['append']('csvFile',_0x359416);const _0x5f33fc=await fetch(_0x10f2c0+'/curr-courses/upload',{'method':'POST','body':_0x4a24e6});if(!_0x5f33fc['ok']){const _0x55e702=await _0x5f33fc['json']();throw _0x55e702;}return _0x5f33fc['json']();}catch(_0x185d49){throw _0x185d49;}}
9
9
 
10
- function parseCourseOffering(_0x29baf3){let _0xaa9df3='',_0x4acd6f='';const _0x4b7c28=[],_0x872268=_0x4967db['parse'](_0x29baf3,{'header':![],'skipEmptyLines':!![],'delimiter':','}),_0x5b18d9=_0x872268['data'];for(let _0x18edc5=0x0;_0x18edc5<Math['min'](0x5,_0x5b18d9['length']);_0x18edc5++){const _0x3d2a7e=_0x5b18d9[_0x18edc5];if(_0x3d2a7e&&_0x3d2a7e['length']>0x0){const _0x33977d=_0x3d2a7e[0x0]?.['toString']()||'',_0x3e3e11=_0x33977d['match'](/(First|Second)\s+Sem\s+S\/Y\s+(\d{4}-\d{4})/i);if(_0x3e3e11){_0xaa9df3=_0x3e3e11[0x1]?.['toLowerCase']()==='first'?'1':'2';if(_0x3e3e11[0x2]){const _0x2ad619=_0x3e3e11[0x2]['match'](/(\d{2})(\d{2})-(\d{2})(\d{2})/);_0x2ad619&&_0x2ad619[0x2]&&_0x2ad619[0x4]&&(_0x4acd6f=_0x2ad619[0x2]+_0x2ad619[0x4]);}}}}let _0x32c818=-1;for(let _0x16f5c6=0x0;_0x16f5c6<_0x5b18d9['length'];_0x16f5c6++){const _0xe43f7f=_0x5b18d9[_0x16f5c6];if(_0xe43f7f&&_0xe43f7f['some'](_0x28fd43=>_0x28fd43?.['toString']()['toUpperCase']()['includes']('CODE'))){_0x32c818=_0x16f5c6;break;}}if(_0x32c818===-1)throw new Error('Could\x20not\x20find\x20header\x20row\x20in\x20CSV\x20data');let _0xf5c19a={'code':'','description':'','unit':0x0};for(let _0x42c537=_0x32c818+0x1;_0x42c537<_0x5b18d9['length'];_0x42c537++){const _0x8a58b3=_0x5b18d9[_0x42c537];if(!_0x8a58b3||_0x8a58b3['length']<0x8)continue;const _0x2e2ec0=_0x8a58b3[0x1]?.['toString']()['trim']()||'',_0x321737=_0x8a58b3[0x4]?.['toString']()['trim']()||'',_0x30e8a8=_0x8a58b3[0x5]?.['toString']()['trim']()||'',_0x3e2632=_0x8a58b3[0x6]?.['toString']()['trim']()||'',_0x1a6b3d=_0x8a58b3[0x7]?.['toString']()['trim']()||'',_0x2b9af4=_0x8a58b3[0x3]?.['toString']()['trim']()||'';let _0x49e52a=_0x8a58b3[0x0]?.['toString']()['trim']()||'',_0x4e9131=_0x8a58b3[0x2]?.['toString']()['trim']()||'';if(!_0x2e2ec0)continue;if(!_0x49e52a)_0x49e52a=_0xf5c19a['code'];if(!_0x4e9131)_0x4e9131=_0xf5c19a['description'];let _0x2c5acc=_0xf5c19a['unit'];if(_0x2b9af4){const _0x2c53a7=_0x2b9af4['match'](/(\d+)/);_0x2c53a7&&_0x2c53a7[0x1]&&(_0x2c5acc=parseInt(_0x2c53a7[0x1],0xa));}const _0x4188d8={'sem':_0xaa9df3,'school_year':_0x4acd6f,'code':_0x49e52a,'course_no':_0x2e2ec0,'course_desc':_0x4e9131,'unit':_0x2c5acc,'time':_0x321737,'days':_0x30e8a8,'faculty':_0x3e2632,'room':_0x1a6b3d};_0xf5c19a['code']=_0x49e52a,_0xf5c19a['description']=_0x4e9131,_0xf5c19a['unit']=_0x2c5acc,_0x4b7c28['push'](_0x4188d8);}return _0x4b7c28;}
10
+ function parseCourseOffering(_0x29ba1d){let _0x3f8050='',_0x344efe='';const _0x5dffa5=[],_0x1841d6=_0x1b82a8['parse'](_0x29ba1d,{'header':![],'skipEmptyLines':!![],'delimiter':','}),_0x218d3a=_0x1841d6['data'];for(let _0x1ea3a7=0x0;_0x1ea3a7<Math['min'](0x5,_0x218d3a['length']);_0x1ea3a7++){const _0xbbae6c=_0x218d3a[_0x1ea3a7];if(_0xbbae6c&&_0xbbae6c['length']>0x0){const _0x3dc4c3=_0xbbae6c[0x0]?.['toString']()||'',_0x1879be=_0x3dc4c3['match'](/(First|Second)\s+Sem\s+S\/Y\s+(\d{4}-\d{4})/i);if(_0x1879be){_0x3f8050=_0x1879be[0x1]?.['toLowerCase']()==='first'?'1':'2';if(_0x1879be[0x2]){const _0x38d397=_0x1879be[0x2]['match'](/(\d{2})(\d{2})-(\d{2})(\d{2})/);_0x38d397&&_0x38d397[0x2]&&_0x38d397[0x4]&&(_0x344efe=_0x38d397[0x2]+_0x38d397[0x4]);}}}}let _0x3bc00a=-1;for(let _0x2f1d11=0x0;_0x2f1d11<_0x218d3a['length'];_0x2f1d11++){const _0x57d316=_0x218d3a[_0x2f1d11];if(_0x57d316&&_0x57d316['some'](_0x595fbd=>_0x595fbd?.['toString']()['toUpperCase']()['includes']('CODE'))){_0x3bc00a=_0x2f1d11;break;}}if(_0x3bc00a===-1)throw new Error('Could\x20not\x20find\x20header\x20row\x20in\x20CSV\x20data');let _0x1fb0f2={'code':'','description':'','unit':0x0};for(let _0x32208b=_0x3bc00a+0x1;_0x32208b<_0x218d3a['length'];_0x32208b++){const _0x562f56=_0x218d3a[_0x32208b];if(!_0x562f56||_0x562f56['length']<0x8)continue;const _0x3ab6f=_0x562f56[0x1]?.['toString']()['trim']()||'',_0x1969ba=_0x562f56[0x4]?.['toString']()['trim']()||'',_0x13d602=_0x562f56[0x5]?.['toString']()['trim']()||'',_0x12903f=_0x562f56[0x6]?.['toString']()['trim']()||'',_0x21adb4=_0x562f56[0x7]?.['toString']()['trim']()||'',_0x55fcc9=_0x562f56[0x3]?.['toString']()['trim']()||'';let _0x239b56=_0x562f56[0x0]?.['toString']()['trim']()||'',_0x480301=_0x562f56[0x2]?.['toString']()['trim']()||'';if(!_0x3ab6f)continue;if(!_0x239b56)_0x239b56=_0x1fb0f2['code'];if(!_0x480301)_0x480301=_0x1fb0f2['description'];let _0x509478=_0x1fb0f2['unit'];if(_0x55fcc9){const _0x254dfc=_0x55fcc9['match'](/(\d+)/);_0x254dfc&&_0x254dfc[0x1]&&(_0x509478=parseInt(_0x254dfc[0x1],0xa));}const _0x19dbc2={'sem':_0x3f8050,'school_year':_0x344efe,'code':_0x239b56,'course_no':_0x3ab6f,'course_desc':_0x480301,'unit':_0x509478,'time':_0x1969ba,'days':_0x13d602,'faculty':_0x12903f,'room':_0x21adb4};_0x1fb0f2['code']=_0x239b56,_0x1fb0f2['description']=_0x480301,_0x1fb0f2['unit']=_0x509478,_0x5dffa5['push'](_0x19dbc2);}return _0x5dffa5;}
11
11
 
12
- async function uploadCourseOffering(_0x114b9c,_0x5ca7ab){try{const _0x5e5c30=await convertToCSVFile(_0x5ca7ab),_0x45ef6d=await _0x5e5c30['text'](),_0x42923b=parseCourseOffering(_0x45ef6d),_0x4a53a7=_0x4967db['unparse'](_0x42923b),_0x1c5277=new File([_0x4a53a7],_0x5e5c30['name'],{'type':'text/csv'}),_0x3baa4e=new FormData();_0x3baa4e['append']('csvFile',_0x1c5277);const _0x5e37dd=await fetch(_0x114b9c+'/course-offerings/upload',{'method':'POST','body':_0x3baa4e});if(!_0x5e37dd['ok']){const _0x113331=await _0x5e37dd['json']();throw _0x113331;}return _0x5e37dd['json']();}catch(_0x116d90){throw _0x116d90;}}
12
+ async function uploadCourseOffering(_0x39a74d,_0x19ab3d){try{const _0x15b578=await convertToCSVFile(_0x19ab3d),_0x4a116b=await _0x15b578['text'](),_0x3d55b9=parseCourseOffering(_0x4a116b),_0x36b16c=_0x1b82a8['unparse'](_0x3d55b9),_0x23d76b=new File([_0x36b16c],_0x15b578['name'],{'type':'text/csv'}),_0x3f9480=new FormData();_0x3f9480['append']('csvFile',_0x23d76b);const _0x3c56b2=await fetch(_0x39a74d+'/course-offerings/upload',{'method':'POST','body':_0x3f9480});if(!_0x3c56b2['ok']){const _0x5a854a=await _0x3c56b2['json']();throw _0x5a854a;}return _0x3c56b2['json']();}catch(_0x261f9c){throw _0x261f9c;}}
13
13
 
14
- function performaceTarget(_0x214fbf){if(!_0x214fbf)return {'performance_target':null,'passing_score':null};const _0x2a5583=_0x214fbf['match'](/\d+/g);return {'performance_target':_0x2a5583?.[0x0]?parseInt(_0x2a5583[0x0],0xa):null,'passing_score':_0x2a5583?.[0x1]?parseInt(_0x2a5583[0x1],0xa):null};}
14
+ function performaceTarget(_0x4dc1ea){if(!_0x4dc1ea)return {'performance_target':null,'passing_score':null};const _0x56643d=_0x4dc1ea['match'](/\d+/g);return {'performance_target':_0x56643d?.[0x0]?parseInt(_0x56643d[0x0],0xa):null,'passing_score':_0x56643d?.[0x1]?parseInt(_0x56643d[0x1],0xa):null};}
15
15
 
16
- function extractInstructionalVerb(_0xc24e10){const _0x1d0d8f=_0xc24e10['trim'](),_0x251d71=/\b(will|shall)\b\s+(?:be\s+able\s+to\s+)?([a-zA-Z]+)/i,_0x196e48=_0x1d0d8f['match'](_0x251d71);return _0x196e48&&_0x196e48[0x2]!==undefined?_0x196e48[0x2]:null;}
16
+ function extractInstructionalVerb(_0x4a5f2e){const _0x3ec3e8=_0x4a5f2e['trim'](),_0x33e565=/\b(will|shall)\b\s+(?:be\s+able\s+to\s+)?([a-zA-Z]+)/i,_0x15cd5f=_0x3ec3e8['match'](_0x33e565);return _0x15cd5f&&_0x15cd5f[0x2]!==undefined?_0x15cd5f[0x2]:null;}
17
17
 
18
- const HEADERS={'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(_0x563116){let _0x3e8268={'headerRowIndex':-1,'coIdx':-1,'iloIdx':-1,'assessToolIdx':-1,'perfTargetIdx':-1};for(let _0x33b72b=0x0;_0x33b72b<Math['min'](_0x563116['length'],0x14);_0x33b72b++){const _0x1c806d=(_0x563116[_0x33b72b]??[])['map'](_0x1b7032=>_0x1b7032['toLowerCase']()['trim']()),_0x5aa288=_0x1c806d['findIndex'](_0x5a6bb5=>HEADERS['co']['some'](_0xbe1b65=>_0x5a6bb5['includes'](_0xbe1b65))),_0x255617=_0x1c806d['findIndex'](_0x18a6e5=>HEADERS['ilo']['some'](_0x5c1695=>_0x18a6e5['includes'](_0x5c1695))),_0x4c7f59=_0x1c806d['findIndex'](_0x2f7b95=>HEADERS['assessTool']['some'](_0x3099a9=>_0x2f7b95['includes'](_0x3099a9))),_0x1e636d=_0x1c806d['findIndex'](_0x54cf4d=>HEADERS['perfTarget']['some'](_0x36e953=>_0x54cf4d['includes'](_0x36e953))),_0x1c1bb6=[_0x5aa288,_0x255617,_0x4c7f59,_0x1e636d]['filter'](_0x7946ea=>_0x7946ea!==-1)['length'];if(_0x1c1bb6>=0x3){_0x3e8268={'headerRowIndex':_0x33b72b,'coIdx':_0x5aa288,'iloIdx':_0x255617,'assessToolIdx':_0x4c7f59,'perfTargetIdx':_0x1e636d};break;}}return _0x3e8268;}
18
+ const HEADERS={'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(_0x43edce){let _0x23a0e2={'headerRowIndex':-1,'coIdx':-1,'iloIdx':-1,'assessToolIdx':-1,'perfTargetIdx':-1};for(let _0x48e41a=0x0;_0x48e41a<Math['min'](_0x43edce['length'],0x14);_0x48e41a++){const _0x3b5fb6=(_0x43edce[_0x48e41a]??[])['map'](_0x173926=>_0x173926['toLowerCase']()['trim']()),_0x5388ba=_0x3b5fb6['findIndex'](_0x2bd9d1=>HEADERS['co']['some'](_0x5a772a=>_0x2bd9d1['includes'](_0x5a772a))),_0x2137dc=_0x3b5fb6['findIndex'](_0x264448=>HEADERS['ilo']['some'](_0x3598dd=>_0x264448['includes'](_0x3598dd))),_0xd2b590=_0x3b5fb6['findIndex'](_0x5e2026=>HEADERS['assessTool']['some'](_0x1110a9=>_0x5e2026['includes'](_0x1110a9))),_0x3126c7=_0x3b5fb6['findIndex'](_0x186127=>HEADERS['perfTarget']['some'](_0x15af65=>_0x186127['includes'](_0x15af65))),_0x2aeadf=[_0x5388ba,_0x2137dc,_0xd2b590,_0x3126c7]['filter'](_0x44440c=>_0x44440c!==-1)['length'];if(_0x2aeadf>=0x3){_0x23a0e2={'headerRowIndex':_0x48e41a,'coIdx':_0x5388ba,'iloIdx':_0x2137dc,'assessToolIdx':_0xd2b590,'perfTargetIdx':_0x3126c7};break;}}return _0x23a0e2;}
19
19
 
20
- function parseCOAEP(_0x51f4cd){const _0x466344=_0x4967db['parse'](_0x51f4cd,{'skipEmptyLines':![]})['data'],_0x4ec5b9={'COAEP':{'faculty':null,'course':null,'sy':null,'semester':null,'co':[]}},{headerRowIndex:_0x47a992,coIdx:_0x2a2651,iloIdx:_0x8dfa14,assessToolIdx:_0x3d61d2,perfTargetIdx:_0x496584}=getCoaepHeader(_0x466344);if(_0x47a992===-1)return {'error':'Could\x20not\x20auto-detect\x20header\x20row.','message':'Please\x20ensure\x20the\x20CSV\x20file\x20is\x20in\x20the\x20correct\x20COAEP\x20format.'};_0x466344['forEach'](_0xdf8b91=>{const _0x1f9a97=_0xdf8b91['indexOf']('Name\x20of\x20Faculty:'),_0x10e816=_0xdf8b91['indexOf']('School\x20Year'),_0x3be04c=_0xdf8b91['indexOf']('Course:'),_0x448f28=_0xdf8b91['indexOf']('Semester');_0x1f9a97!==-1&&(_0x4ec5b9['COAEP']['faculty']=_0xdf8b91[_0x1f9a97+0x1]?.['trim']()||_0x4ec5b9['COAEP']['faculty']);_0x10e816!==-1&&(_0x4ec5b9['COAEP']['sy']=_0xdf8b91[_0x10e816+0x1]?.['trim']()||_0x4ec5b9['COAEP']['sy']);_0x3be04c!==-1&&(_0x4ec5b9['COAEP']['course']=_0xdf8b91[_0x3be04c+0x1]?.['trim']()||_0x4ec5b9['COAEP']['course']);if(_0x448f28!==-1){const _0x1499f7=_0xdf8b91[_0x448f28+0x1]?.['trim']()||'',_0x454bbb=_0x1499f7['match'](/\d+/)?.[0x0];_0x4ec5b9['COAEP']['semester']=_0x454bbb?parseInt(_0x454bbb,0xa):_0x4ec5b9['COAEP']['semester'];}});let _0xd05f1f=null;return _0x466344['forEach']((_0x5511a5,_0x22a42b)=>{if(_0x22a42b<=_0x47a992)return;let _0xfe6fd5=_0x5511a5[_0x2a2651-0x1]?.['trim']()||'',_0x4cd478=_0x5511a5[_0x2a2651]?.['trim']()||'';/^\d+$/['test'](_0x5511a5[_0x2a2651]?.['trim']()||'')&&(_0xfe6fd5=_0x5511a5[_0x2a2651]?.['trim']()||'',_0x4cd478=_0x5511a5[_0x2a2651+0x1]?.['trim']()||'');const _0x229dd1=_0x5511a5[_0x8dfa14]?.['trim']()||'',_0x4dd7b7=_0x5511a5[_0x3d61d2]?.['replace'](/^ILO\d+[:.]?\s*/,'')['trim']()||'',_0xe9e179=_0x5511a5[_0x496584]?.['replace'](/\s+/g,'\x20')['trim']()||'';if(_0xfe6fd5&&/^\d+$/['test'](_0xfe6fd5)){_0xd05f1f&&_0x4ec5b9['COAEP']['co']['push'](_0xd05f1f);const _0x4de273=_0x4cd478,_0x3493ed=extractInstructionalVerb(_0x4de273)||'';_0xd05f1f={'statement':_0x4de273,'verb':_0x3493ed,'ilo':[]};}if(_0xd05f1f&&_0x229dd1&&_0xe9e179){const _0x8c664b=_0x229dd1['replace'](/^ILO\d+[:.]?\s*/,'');if(_0x8c664b['match'](/^(Revision|Prepared|Date|Approved|Effectivity|Page)/i)||_0x8c664b['length']<0xa)return;let _0xdbfdbd=_0x4dd7b7;if(!_0xdbfdbd&&_0x8c664b['includes'](':')){const _0xd7f3ce=_0x8c664b['match'](/^ILO\d+:\s*(.+?)(?:\s*\(|$)/);_0xd7f3ce&&(_0xdbfdbd=_0xd7f3ce[0x1]?.['trim']()||'');}const {performance_target:_0x1449a1,passing_score:_0x1c512d}=performaceTarget(_0xe9e179);_0xd05f1f['ilo']['push']({'statement':_0x8c664b,'verb':extractInstructionalVerb(_0x8c664b)||'','assessment_tool':_0xdbfdbd,'performance_target':_0x1449a1,'passing_score':_0x1c512d});}}),_0xd05f1f&&_0x4ec5b9['COAEP']['co']['push'](_0xd05f1f),_0x4ec5b9;}
20
+ function parseCOAEP(_0x3f3f79){const _0x3b8929=_0x1b82a8['parse'](_0x3f3f79,{'skipEmptyLines':![]})['data'],_0x24b986={'COAEP':{'faculty':null,'course':null,'sy':null,'semester':null,'co':[]}},{headerRowIndex:_0x3113f3,coIdx:_0x1f5f9b,iloIdx:_0x2428a6,assessToolIdx:_0x1b8754,perfTargetIdx:_0x2e2ae4}=getCoaepHeader(_0x3b8929);if(_0x3113f3===-1)return {'error':'Could\x20not\x20auto-detect\x20header\x20row.','message':'Please\x20ensure\x20the\x20CSV\x20file\x20is\x20in\x20the\x20correct\x20COAEP\x20format.'};_0x3b8929['forEach'](_0x423223=>{const _0x41ec1e=_0x423223['indexOf']('Name\x20of\x20Faculty:'),_0xf1efaa=_0x423223['indexOf']('School\x20Year'),_0x3e36e3=_0x423223['indexOf']('Course:'),_0x25af56=_0x423223['indexOf']('Semester');_0x41ec1e!==-1&&(_0x24b986['COAEP']['faculty']=_0x423223[_0x41ec1e+0x1]?.['trim']()||_0x24b986['COAEP']['faculty']);_0xf1efaa!==-1&&(_0x24b986['COAEP']['sy']=_0x423223[_0xf1efaa+0x1]?.['trim']()||_0x24b986['COAEP']['sy']);_0x3e36e3!==-1&&(_0x24b986['COAEP']['course']=_0x423223[_0x3e36e3+0x1]?.['trim']()||_0x24b986['COAEP']['course']);if(_0x25af56!==-1){const _0x192c37=_0x423223[_0x25af56+0x1]?.['trim']()||'',_0x417fa6=_0x192c37['match'](/\d+/)?.[0x0];_0x24b986['COAEP']['semester']=_0x417fa6?parseInt(_0x417fa6,0xa):_0x24b986['COAEP']['semester'];}});let _0x17383d=null;return _0x3b8929['forEach']((_0x24a2d8,_0x13c2fb)=>{if(_0x13c2fb<=_0x3113f3)return;let _0x545ecb=_0x24a2d8[_0x1f5f9b-0x1]?.['trim']()||'',_0x5656e9=_0x24a2d8[_0x1f5f9b]?.['trim']()||'';/^\d+$/['test'](_0x24a2d8[_0x1f5f9b]?.['trim']()||'')&&(_0x545ecb=_0x24a2d8[_0x1f5f9b]?.['trim']()||'',_0x5656e9=_0x24a2d8[_0x1f5f9b+0x1]?.['trim']()||'');const _0x5d004a=_0x24a2d8[_0x2428a6]?.['trim']()||'',_0x3a3f10=_0x24a2d8[_0x1b8754]?.['replace'](/^ILO\d+[:.]?\s*/,'')['trim']()||'',_0x4885ba=_0x24a2d8[_0x2e2ae4]?.['replace'](/\s+/g,'\x20')['trim']()||'';if(_0x545ecb&&/^\d+$/['test'](_0x545ecb)){_0x17383d&&_0x24b986['COAEP']['co']['push'](_0x17383d);const _0x2822e2=_0x5656e9,_0x44ef6d=extractInstructionalVerb(_0x2822e2)||'';_0x17383d={'statement':_0x2822e2,'verb':_0x44ef6d,'ilo':[]};}if(_0x17383d&&_0x5d004a&&_0x4885ba){const _0x2fa15e=_0x5d004a['replace'](/^ILO\d+[:.]?\s*/,'');if(_0x2fa15e['match'](/^(Revision|Prepared|Date|Approved|Effectivity|Page)/i)||_0x2fa15e['length']<0xa)return;let _0x1b715d=_0x3a3f10;if(!_0x1b715d&&_0x2fa15e['includes'](':')){const _0x54b4f6=_0x2fa15e['match'](/^ILO\d+:\s*(.+?)(?:\s*\(|$)/);_0x54b4f6&&(_0x1b715d=_0x54b4f6[0x1]?.['trim']()||'');}const {performance_target:_0x33d47f,passing_score:_0x267c6c}=performaceTarget(_0x4885ba);_0x17383d['ilo']['push']({'statement':_0x2fa15e,'verb':extractInstructionalVerb(_0x2fa15e)||'','assessment_tool':_0x1b715d,'performance_target':_0x33d47f,'passing_score':_0x267c6c});}}),_0x17383d&&_0x24b986['COAEP']['co']['push'](_0x17383d),_0x24b986;}
21
21
 
22
- async function uploadCOAEP(_0x8b3d7e,_0x819929,_0x336e7d){try{const _0x3afa89=await convertToCSVFile(_0x819929),_0x3f921f=await _0x3afa89['text'](),_0x897928=parseCOAEP(_0x3f921f),_0x41ba6d=await fetch(_0x8b3d7e+'/coaeps/upload?course_id='+_0x336e7d,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x897928)});if(!_0x41ba6d['ok']){const _0x4a8336=await _0x41ba6d['json']();throw _0x4a8336;}return _0x41ba6d['json']();}catch(_0x2ec830){throw _0x2ec830;}}
22
+ async function uploadCOAEP(_0x2341b9,_0x135a10,_0x5332fb){try{const _0x433460=await convertToCSVFile(_0x135a10),_0x5328f6=await _0x433460['text'](),_0x475694=parseCOAEP(_0x5328f6);console['log'](_0x475694);}catch(_0x7f8db8){throw _0x7f8db8;}}
23
23
 
24
- async function uploadEnrolledStudent(_0x52aece,_0x24ed59){try{const _0x3e6e25=await convertToCSVFile(_0x24ed59),_0x3d8a96=new FormData();_0x3d8a96['append']('csvFile',_0x3e6e25);const _0x42c8cf=await fetch(_0x52aece+'/enrolled-students/upload',{'method':'POST','body':_0x3d8a96});if(!_0x42c8cf['ok']){const _0xae2eab=await _0x42c8cf['json']();throw _0xae2eab;}return _0x42c8cf['json']();}catch(_0x1e7a5d){throw _0x1e7a5d;}}
24
+ async function uploadEnrolledStudent(_0xdd4cd9,_0x36a08f){try{const _0x4984ac=await convertToCSVFile(_0x36a08f),_0x291662=new FormData();_0x291662['append']('csvFile',_0x4984ac);const _0x5bfb2a=await fetch(_0xdd4cd9+'/enrolled-students/upload',{'method':'POST','body':_0x291662});if(!_0x5bfb2a['ok']){const _0x4fe997=await _0x5bfb2a['json']();throw _0x4fe997;}return _0x5bfb2a['json']();}catch(_0x4558a1){throw _0x4558a1;}}
25
25
 
26
- function parseClassList(_0x1bff8a){const _0x2da3a1=_0x4967db['parse'](_0x1bff8a,{'skipEmptyLines':!![]})['data'];let _0xbd8e15='',_0x26a0b3='',_0x202257='';const _0xea812c=[];return _0x2da3a1['forEach'](_0xb1279f=>{const _0x25fe94=_0xb1279f['map'](_0x13fc38=>(_0x13fc38??'')['toString']()['trim']()),_0x198523=_0x25fe94[0x0]??'';if(_0x198523['startsWith']('Course\x20No:')){const _0x1cf512=_0x198523['replace']('Course\x20No:','')['trim'](),_0x76ed64=_0x1cf512['split'](/\s+/);_0x202257=_0x76ed64[0x0]??'';const [_0x20c23d,_0x24b929]=(_0x76ed64[0x1]??'')['split']('-');_0x26a0b3=_0x20c23d??'';const _0x5ab20f=(_0x24b929??'')['match'](/[a-z]$/);_0xbd8e15=_0x5ab20f?_0x5ab20f[0x0]:'';}if(/^\d+$/['test'](_0x198523)){const _0x12487d=_0x25fe94[0x2]??'';_0xea812c['push']({'subj_code':_0x202257,'student_no':_0x12487d,'course_id':_0x26a0b3,'section':_0xbd8e15});}}),{'enrolledCourses':_0xea812c};}
26
+ function parseClassList(_0xa7a332){const _0x51df74=_0x1b82a8['parse'](_0xa7a332,{'skipEmptyLines':!![]})['data'];let _0x486956='',_0x3a210='',_0x4e149d='';const _0x33e77d=[];return _0x51df74['forEach'](_0x573135=>{const _0x538ede=_0x573135['map'](_0x51a788=>(_0x51a788??'')['toString']()['trim']()),_0x1d5763=_0x538ede[0x0]??'';if(_0x1d5763['startsWith']('Course\x20No:')){const _0x2a6924=_0x1d5763['replace']('Course\x20No:','')['trim'](),_0x273809=_0x2a6924['split'](/\s+/);_0x4e149d=_0x273809[0x0]??'';const [_0xb4cfff,_0x1e8367]=(_0x273809[0x1]??'')['split']('-');_0x3a210=_0xb4cfff??'';const _0x579480=(_0x1e8367??'')['match'](/[a-z]$/);_0x486956=_0x579480?_0x579480[0x0]:'';}if(/^\d+$/['test'](_0x1d5763)){const _0x5579fa=_0x538ede[0x2]??'';_0x33e77d['push']({'subj_code':_0x4e149d,'student_no':_0x5579fa,'course_id':_0x3a210,'section':_0x486956});}}),{'enrolledCourses':_0x33e77d};}
27
27
 
28
- async function uploadClassList(_0x4bbddc,_0x133df4,_0x37d2cd,_0x180267){try{const _0x270f2f=await convertToCSVFile(_0x133df4),_0x327041=await _0x270f2f['text'](),_0x30a650=parseClassList(_0x327041),_0x2aa7ea='subj_code='+_0x37d2cd+'&period_id='+_0x180267,_0x5d7b91=await fetch(_0x4bbddc+'/enrolled-courses/upload?'+_0x2aa7ea,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x30a650)});if(!_0x5d7b91['ok']){const _0x10b7de=await _0x5d7b91['json']();throw _0x10b7de;}return _0x5d7b91['json']();}catch(_0x269d28){throw _0x269d28;}}
28
+ async function uploadClassList(_0x38d7bb,_0x41cc66,_0x295076,_0x3c3cf8){try{const _0x2e77c7=await convertToCSVFile(_0x41cc66),_0x373573=await _0x2e77c7['text'](),_0x53e69a=parseClassList(_0x373573),_0x23b5f5='subj_code='+_0x295076+'&period_id='+_0x3c3cf8,_0x2f36ab=await fetch(_0x38d7bb+'/enrolled-courses/upload?'+_0x23b5f5,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x53e69a)});if(!_0x2f36ab['ok']){const _0x16c872=await _0x2f36ab['json']();throw _0x16c872;}return _0x2f36ab['json']();}catch(_0x1966e6){throw _0x1966e6;}}
29
29
 
30
- function parseAssessmentCsv(_0x46fbef){const {data:_0x2b9f8b}=_0x4967db['parse'](_0x46fbef,{'skipEmptyLines':!![]}),_0x1ea82b=_0x2b9f8b['filter'](_0x55394d=>_0x55394d['length']>0x0),_0xc98fd3=_0x1ea82b['find'](_0x50fc9e=>_0x50fc9e['some'](_0xebfce4=>_0xebfce4?.['includes']('Faculty'))),_0x2d3741=_0xc98fd3?_0xc98fd3['findIndex'](_0x5714dc=>_0x5714dc?.['includes']('Faculty')):-1,_0x5e038c=_0x2d3741!==-1&&_0xc98fd3?_0xc98fd3[_0x2d3741+0x2]?.['replace'](/"/g,'')['trim']()??'':'',_0x254d20=_0x1ea82b['find'](_0x26a0cf=>_0x26a0cf['some'](_0x2952b8=>_0x2952b8?.['includes']('Semester'))),_0x1068a5=_0x254d20?_0x254d20['findIndex'](_0x45bdf6=>_0x45bdf6?.['includes']('Semester')):-1,_0x4d5498=_0x1068a5!==-1&&_0x254d20?_0x254d20[_0x1068a5+0x2]?.['trim']()??'':'',_0x568e58=_0x4d5498['includes']('1st')?0x1:_0x4d5498['includes']('2nd')?0x2:0x0,_0x2a9583=_0x1ea82b['find'](_0x1dc875=>_0x1dc875['some'](_0x55ee16=>_0x55ee16?.['includes']('Course\x20&\x20Sec'))),_0x5f005e=_0x2a9583?_0x2a9583['findIndex'](_0x26e2e2=>_0x26e2e2?.['includes']('Course\x20&\x20Sec')):-1,_0x17a225=_0x5f005e!==-1&&_0x2a9583?_0x2a9583[_0x5f005e+0x2]?.['trim']()??'':'';let _0xa6ca28='',_0x446a66='';if(_0x17a225){const _0x4a339a=_0x17a225['match'](/^([A-Za-z0-9]+)-?([A-Za-z]+)?/);_0x4a339a&&(_0xa6ca28=_0x4a339a[0x1]??'',_0x4a339a[0x2]&&(_0x446a66=_0x4a339a[0x2]['replace'](/^OC/i,'')));}const _0x2c7c3b=_0x1ea82b['find'](_0x198794=>_0x198794['some'](_0x506882=>_0x506882?.['includes']('School\x20Year'))),_0x463256=_0x2c7c3b?_0x2c7c3b['findIndex'](_0x33d1f0=>_0x33d1f0?.['includes']('School\x20Year')):-1,_0x3ebd93=_0x463256!==-1&&_0x2c7c3b?_0x2c7c3b[_0x463256+0x2]?.['trim']()??'':'';let _0xfe2301=0x0;if(_0x3ebd93){const _0xbbec17=_0x3ebd93['match'](/(\d{4})-(\d{4})/);if(_0xbbec17){const _0x359f97=(_0xbbec17[0x1]??'')['slice'](0x2),_0x12d74e=(_0xbbec17[0x2]??'')['slice'](0x2);_0xfe2301=parseInt(_0x359f97+_0x12d74e,0xa);}}const _0x5b1705={'faculty':_0x5e038c,'course':_0xa6ca28,'section':_0x446a66,'semester':_0x568e58,'sy':_0xfe2301},_0x1aad6c=_0x1ea82b['findIndex'](_0x5d0b9e=>_0x5d0b9e['some'](_0xf3778c=>_0xf3778c?.['trim']()==='CO\x20#'));if(_0x1aad6c===-1)throw new Error('CO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x235d2a=_0x1ea82b[_0x1aad6c+0x1];if(!_0x235d2a)throw new Error('ILO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0xe229e0={};let _0xda09ca=0x1,_0x1bdf73=0x1;for(let _0x52ac8d=0x3;_0x52ac8d<_0x235d2a['length'];_0x52ac8d++){const _0x273bd2=_0x235d2a[_0x52ac8d];if(!_0x273bd2)continue;const _0x4e0d8e='co'+_0xda09ca;if(!_0xe229e0[_0x4e0d8e])_0xe229e0[_0x4e0d8e]=[];_0xe229e0[_0x4e0d8e]['push']('ilo'+_0x1bdf73),_0x1bdf73++,_0x1bdf73>0x3&&(_0xda09ca++,_0x1bdf73=0x1);}const _0x4a9b33=_0x1ea82b['findIndex'](_0x517cc8=>_0x517cc8['includes']('Name\x20of\x20Students'));if(_0x4a9b33===-1)throw new Error('Student\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x59f732=_0x1ea82b[_0x4a9b33];if(!_0x59f732)throw new Error('Student\x20header\x20row\x20is\x20missing');const _0x3d5ca1=_0x59f732['findIndex'](_0x54e368=>_0x54e368?.['includes']('Name\x20of\x20Students'));if(_0x3d5ca1===-1)throw new Error('Name\x20of\x20Students\x20column\x20not\x20found\x20in\x20CSV');const _0x8ea928=_0x3d5ca1+0x2,_0x2e0918=[];for(let _0x7b2675=_0x4a9b33+0x1;_0x7b2675<_0x1ea82b['length'];_0x7b2675++){const _0x35255e=_0x1ea82b[_0x7b2675];if(!_0x35255e)continue;if(_0x35255e['some'](_0x42385e=>_0x42385e?.['toUpperCase']()['includes']('TOTAL\x20STUDENTS')||_0x42385e?.['toUpperCase']()['includes']('ACHIEVED\x20THE\x20MINIMUM')||_0x42385e?.['toUpperCase']()['includes']('INACTIVE')||_0x42385e?.['toUpperCase']()['includes']('AVERAGE')))continue;if(!_0x35255e[_0x3d5ca1])continue;const _0x8482bd=_0x35255e[_0x3d5ca1]['replace'](/"/g,'')['trim'](),_0x375e54=_0x35255e['slice'](_0x8ea928)['map'](_0x155908=>_0x155908===null?null:!isNaN(Number(_0x155908))?parseFloat(_0x155908):0x0);let _0x52fa88=0x0;const _0x1d1a38={};Object['entries'](_0xe229e0)['forEach'](([_0xf69464,_0x5b4e7b])=>{const _0x5b24ea={};_0x5b4e7b['forEach'](_0x23e1ec=>{_0x5b24ea[_0x23e1ec]=_0x375e54[_0x52fa88]??0x0,_0x52fa88++;}),_0x1d1a38[_0xf69464]={'transmuted_score':_0x5b24ea};}),_0x2e0918['push']({'student_name':_0x8482bd,'coaep':_0x1d1a38});}const _0x221adb=_0x1ea82b['find'](_0x1666bc=>_0x1666bc['some'](_0x4cd963=>_0x4cd963?.['includes']('ACHIEVED\x20THE\x20MINIMUM'))),_0x5effa8=_0x1ea82b['find'](_0x1b58ba=>_0x1b58ba['some'](_0x326a1e=>_0x326a1e?.['includes']('AVERAGE'))),_0x58cad7=_0x221adb?_0x221adb['slice'](_0x8ea928)['map'](_0x5ec62b=>_0x5ec62b&&!isNaN(Number(_0x5ec62b))?parseInt(_0x5ec62b):0x0):[],_0x52bce9=_0x5effa8?_0x5effa8['slice'](_0x8ea928)['map'](_0x5c6833=>_0x5c6833&&_0x5c6833!=='#DIV/0!'&&!isNaN(Number(_0x5c6833))?parseInt(_0x5c6833):0x0):[],_0x487ffd={};let _0x5c42c5=0x0;return Object['entries'](_0xe229e0)['forEach'](([_0xb7cbed,_0x1e5fd7])=>{if(!_0x487ffd[_0xb7cbed])_0x487ffd[_0xb7cbed]={};_0x1e5fd7['forEach'](_0x4832c2=>{_0x487ffd[_0xb7cbed][_0x4832c2]={'achievedMinimum':_0x58cad7[_0x5c42c5]??0x0,'average':_0x52bce9[_0x5c42c5]??0x0},_0x5c42c5++;});}),{'assessmentData':{'classAssignment':_0x5b1705,'student':_0x2e0918,'total':_0x487ffd}};}
30
+ function parseAssessmentCsv(_0x5eed18){const {data:_0x28c889}=_0x1b82a8['parse'](_0x5eed18,{'skipEmptyLines':!![]}),_0x4b5f17=_0x28c889['filter'](_0x57f270=>_0x57f270['length']>0x0),_0x2050b7=_0x4b5f17['find'](_0x3f14a8=>_0x3f14a8['some'](_0x3cb2b1=>_0x3cb2b1?.['includes']('Faculty'))),_0x43b57a=_0x2050b7?_0x2050b7['findIndex'](_0x3afdbb=>_0x3afdbb?.['includes']('Faculty')):-1,_0x1abe02=_0x43b57a!==-1&&_0x2050b7?_0x2050b7[_0x43b57a+0x2]?.['replace'](/"/g,'')['trim']()??'':'',_0x240261=_0x4b5f17['find'](_0x39b38a=>_0x39b38a['some'](_0x531e01=>_0x531e01?.['includes']('Semester'))),_0x530450=_0x240261?_0x240261['findIndex'](_0x57f945=>_0x57f945?.['includes']('Semester')):-1,_0x5c0188=_0x530450!==-1&&_0x240261?_0x240261[_0x530450+0x2]?.['trim']()??'':'',_0x234fa1=_0x5c0188['includes']('1st')?0x1:_0x5c0188['includes']('2nd')?0x2:0x0,_0x164756=_0x4b5f17['find'](_0x19b75c=>_0x19b75c['some'](_0x587839=>_0x587839?.['includes']('Course\x20&\x20Sec'))),_0x155270=_0x164756?_0x164756['findIndex'](_0x4afdd4=>_0x4afdd4?.['includes']('Course\x20&\x20Sec')):-1,_0x162c74=_0x155270!==-1&&_0x164756?_0x164756[_0x155270+0x2]?.['trim']()??'':'';let _0x2ee5fa='',_0x32b6da='';if(_0x162c74){const _0x4d5a8b=_0x162c74['match'](/^([A-Za-z0-9]+)-?([A-Za-z]+)?/);_0x4d5a8b&&(_0x2ee5fa=_0x4d5a8b[0x1]??'',_0x4d5a8b[0x2]&&(_0x32b6da=_0x4d5a8b[0x2]['replace'](/^OC/i,'')));}const _0x439099=_0x4b5f17['find'](_0x254076=>_0x254076['some'](_0x21abc8=>_0x21abc8?.['includes']('School\x20Year'))),_0x2b8b8e=_0x439099?_0x439099['findIndex'](_0xfa8a07=>_0xfa8a07?.['includes']('School\x20Year')):-1,_0x2a8f90=_0x2b8b8e!==-1&&_0x439099?_0x439099[_0x2b8b8e+0x2]?.['trim']()??'':'';let _0x5e8d40=0x0;if(_0x2a8f90){const _0x1f0098=_0x2a8f90['match'](/(\d{4})-(\d{4})/);if(_0x1f0098){const _0x42dcd4=(_0x1f0098[0x1]??'')['slice'](0x2),_0x54583f=(_0x1f0098[0x2]??'')['slice'](0x2);_0x5e8d40=parseInt(_0x42dcd4+_0x54583f,0xa);}}const _0x3e88a0={'faculty':_0x1abe02,'course':_0x2ee5fa,'section':_0x32b6da,'semester':_0x234fa1,'sy':_0x5e8d40},_0x4d3b4c=_0x4b5f17['findIndex'](_0x5ae1bd=>_0x5ae1bd['some'](_0x46d7d9=>_0x46d7d9?.['trim']()==='CO\x20#'));if(_0x4d3b4c===-1)throw new Error('CO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x155bd2=_0x4b5f17[_0x4d3b4c+0x1];if(!_0x155bd2)throw new Error('ILO\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x607ea6={};let _0xd5e4aa=0x1,_0x17cf19=0x1;for(let _0x449b21=0x3;_0x449b21<_0x155bd2['length'];_0x449b21++){const _0xfd766c=_0x155bd2[_0x449b21];if(!_0xfd766c)continue;const _0xee6e3f='co'+_0xd5e4aa;if(!_0x607ea6[_0xee6e3f])_0x607ea6[_0xee6e3f]=[];_0x607ea6[_0xee6e3f]['push']('ilo'+_0x17cf19),_0x17cf19++,_0x17cf19>0x3&&(_0xd5e4aa++,_0x17cf19=0x1);}const _0x1a5b90=_0x4b5f17['findIndex'](_0x1e58b4=>_0x1e58b4['includes']('Name\x20of\x20Students'));if(_0x1a5b90===-1)throw new Error('Student\x20header\x20row\x20not\x20found\x20in\x20CSV');const _0x6bebe5=_0x4b5f17[_0x1a5b90];if(!_0x6bebe5)throw new Error('Student\x20header\x20row\x20is\x20missing');const _0x1b427d=_0x6bebe5['findIndex'](_0x4dee22=>_0x4dee22?.['includes']('Name\x20of\x20Students'));if(_0x1b427d===-1)throw new Error('Name\x20of\x20Students\x20column\x20not\x20found\x20in\x20CSV');const _0xfbbb15=_0x1b427d+0x2,_0x34f4e9=[];for(let _0xc9d9f8=_0x1a5b90+0x1;_0xc9d9f8<_0x4b5f17['length'];_0xc9d9f8++){const _0x39713d=_0x4b5f17[_0xc9d9f8];if(!_0x39713d)continue;if(_0x39713d['some'](_0x2def7a=>_0x2def7a?.['toUpperCase']()['includes']('TOTAL\x20STUDENTS')||_0x2def7a?.['toUpperCase']()['includes']('ACHIEVED\x20THE\x20MINIMUM')||_0x2def7a?.['toUpperCase']()['includes']('INACTIVE')||_0x2def7a?.['toUpperCase']()['includes']('AVERAGE')))continue;if(!_0x39713d[_0x1b427d])continue;const _0x74a7a2=_0x39713d[_0x1b427d]['replace'](/"/g,'')['trim'](),_0x1b5bab=_0x39713d['slice'](_0xfbbb15)['map'](_0x582262=>_0x582262===null?null:!isNaN(Number(_0x582262))?parseFloat(_0x582262):0x0);let _0x4254c6=0x0;const _0x36320c={};Object['entries'](_0x607ea6)['forEach'](([_0x1f32a6,_0x5d6728])=>{const _0x523e19={};_0x5d6728['forEach'](_0x292135=>{_0x523e19[_0x292135]=_0x1b5bab[_0x4254c6]??0x0,_0x4254c6++;}),_0x36320c[_0x1f32a6]={'transmuted_score':_0x523e19};}),_0x34f4e9['push']({'student_name':_0x74a7a2,'coaep':_0x36320c});}const _0x55e5bd=_0x4b5f17['find'](_0x5d20eb=>_0x5d20eb['some'](_0x22be7f=>_0x22be7f?.['includes']('ACHIEVED\x20THE\x20MINIMUM'))),_0x22dcad=_0x4b5f17['find'](_0x4da915=>_0x4da915['some'](_0x3bf022=>_0x3bf022?.['includes']('AVERAGE'))),_0xe5eb2b=_0x55e5bd?_0x55e5bd['slice'](_0xfbbb15)['map'](_0x52fe20=>_0x52fe20&&!isNaN(Number(_0x52fe20))?parseInt(_0x52fe20):0x0):[],_0x33b1cb=_0x22dcad?_0x22dcad['slice'](_0xfbbb15)['map'](_0x3104fb=>_0x3104fb&&_0x3104fb!=='#DIV/0!'&&!isNaN(Number(_0x3104fb))?parseInt(_0x3104fb):0x0):[],_0x3420e3={};let _0x367056=0x0;return Object['entries'](_0x607ea6)['forEach'](([_0x30946e,_0x5f3e8a])=>{if(!_0x3420e3[_0x30946e])_0x3420e3[_0x30946e]={};_0x5f3e8a['forEach'](_0x247ac6=>{_0x3420e3[_0x30946e][_0x247ac6]={'achievedMinimum':_0xe5eb2b[_0x367056]??0x0,'average':_0x33b1cb[_0x367056]??0x0},_0x367056++;});}),{'assessmentData':{'classAssignment':_0x3e88a0,'student':_0x34f4e9,'total':_0x3420e3}};}
31
31
 
32
- async function uploadAssessmentData(_0x48dd35,_0x4134fd){try{const _0x2e3718=await convertToCSVFile(_0x4134fd),_0x9b3ca=await _0x2e3718['text'](),_0x2b993e=parseAssessmentCsv(_0x9b3ca),_0x1aec4a=await fetch(_0x48dd35+'/assessment-data/upload',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x2b993e)});if(!_0x1aec4a['ok']){const _0x4f0e39=await _0x1aec4a['json']();throw _0x4f0e39;}return _0x1aec4a['json']();}catch(_0x15050c){throw _0x15050c;}}
32
+ async function uploadAssessmentData(_0x356300,_0x59454e){try{const _0x57c7ab=await convertToCSVFile(_0x59454e),_0x12d9a6=await _0x57c7ab['text'](),_0x144596=parseAssessmentCsv(_0x12d9a6),_0x53504f=await fetch(_0x356300+'/assessment-data/upload',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x144596)});if(!_0x53504f['ok']){const _0x4f6dfb=await _0x53504f['json']();throw _0x4f6dfb;}return _0x53504f['json']();}catch(_0x4790f0){throw _0x4790f0;}}
33
33
 
34
- async function uploadDeptFaculty(_0x3fa45a,_0xb4335f){try{const _0x8e2e07=await convertToCSVFile(_0xb4335f),_0x43c272=new FormData();_0x43c272['append']('csvFile',_0x8e2e07);const _0x110611=await fetch(_0x3fa45a+'/dept-faculties/upload',{'method':'POST','body':_0x43c272});if(!_0x110611['ok']){const _0x4e3a2d=await _0x110611['json']();throw _0x4e3a2d;}return _0x110611['json']();}catch(_0x47a899){throw _0x47a899;}}
34
+ async function uploadDeptFaculty(_0x36db14,_0x262c14){try{const _0x5b9206=await convertToCSVFile(_0x262c14),_0x2d9cd8=new FormData();_0x2d9cd8['append']('csvFile',_0x5b9206);const _0x28c8c2=await fetch(_0x36db14+'/dept-faculties/upload',{'method':'POST','body':_0x2d9cd8});if(!_0x28c8c2['ok']){const _0x39a1e9=await _0x28c8c2['json']();throw _0x39a1e9;}return _0x28c8c2['json']();}catch(_0x264292){throw _0x264292;}}
35
35
 
36
- class Client{['BASE_URL'];constructor(_0x19cd9b){this['BASE_URL']=_0x19cd9b;}['Parser'](){return {'curriculum':async _0x76d539=>{const _0x4eac42=await uploadCurriculum(this['BASE_URL'],_0x76d539);return _0x4eac42;},'courseOffering':async _0x5ed2cc=>{const _0x2ff2ac=await uploadCourseOffering(this['BASE_URL'],_0x5ed2cc);return _0x2ff2ac;},'coaep':async(_0x42f019,_0xdb190b)=>{const _0x49be99=await uploadCOAEP(this['BASE_URL'],_0x42f019,_0xdb190b);return _0x49be99;},'enrolledStudent':async _0x10ade8=>{const _0x432bd4=await uploadEnrolledStudent(this['BASE_URL'],_0x10ade8);return _0x432bd4;},'classlist':async(_0x44fed4,_0x2dff1e,_0x2dc68d)=>{const _0x3c0a24=await uploadClassList(this['BASE_URL'],_0x44fed4,_0x2dff1e,_0x2dc68d);return _0x3c0a24;},'assessmentData':async _0x11dbef=>{const _0x34263f=await uploadAssessmentData(this['BASE_URL'],_0x11dbef);return _0x34263f;},'deptFaculty':async _0x429cca=>{const _0x409d6d=await uploadDeptFaculty(this['BASE_URL'],_0x429cca);return _0x409d6d;}};}}
36
+ class Client{['BASE_URL'];constructor(_0x581906){this['BASE_URL']=_0x581906;}['Parser'](){return {'curriculum':async _0x2ee520=>{const _0x38a76b=await uploadCurriculum(this['BASE_URL'],_0x2ee520);return _0x38a76b;},'courseOffering':async _0x292438=>{const _0x2f2f82=await uploadCourseOffering(this['BASE_URL'],_0x292438);return _0x2f2f82;},'coaep':async(_0x125b65,_0x173c79)=>{const _0x2b4bd5=await uploadCOAEP(this['BASE_URL'],_0x125b65);return _0x2b4bd5;},'enrolledStudent':async _0x3bc634=>{const _0x320e13=await uploadEnrolledStudent(this['BASE_URL'],_0x3bc634);return _0x320e13;},'classlist':async(_0x399b2f,_0x292fa1,_0x341db2)=>{const _0x48e08f=await uploadClassList(this['BASE_URL'],_0x399b2f,_0x292fa1,_0x341db2);return _0x48e08f;},'assessmentData':async _0x313b0e=>{const _0x3f60a5=await uploadAssessmentData(this['BASE_URL'],_0x313b0e);return _0x3f60a5;},'deptFaculty':async _0x3a9e8c=>{const _0x108aec=await uploadDeptFaculty(this['BASE_URL'],_0x3a9e8c);return _0x108aec;}};}}
37
37
 
38
38
  export { Client as default };
@@ -0,0 +1,10 @@
1
+ export default function getPoaepHeader(rows: string[][]): {
2
+ headerIdx: number;
3
+ poIdx: number;
4
+ tlIdx: number;
5
+ piIdx: number;
6
+ fcIdx: number;
7
+ scIdx: number;
8
+ atIdx: number;
9
+ ptIdx: number;
10
+ };
@@ -0,0 +1,2 @@
1
+ declare const parseFormativeCourses: (fc_list: string) => string[];
2
+ export default parseFormativeCourses;
package/main.d.ts CHANGED
@@ -14,7 +14,7 @@ export default class Client {
14
14
  * @returns status 201
15
15
  */
16
16
  courseOffering: (xls: File) => Promise<Record<string, unknown>>;
17
- coaep: (xls: File, course_id: string) => Promise<Record<string, unknown>>;
17
+ coaep: (xls: File, course_id: string) => Promise<void>;
18
18
  enrolledStudent: (xls: File) => Promise<Record<string, unknown>>;
19
19
  classlist: (xls: File, subj_code: number, period_id: number) => Promise<Record<string, unknown>>;
20
20
  assessmentData: (xls: File) => Promise<Record<string, unknown>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obe-loms/coms-parser",
3
- "version": "1.3.2",
3
+ "version": "1.4.0",
4
4
  "license": "ISC",
5
5
  "dependencies": {
6
6
  "papaparse": "^5.5.3",
@@ -0,0 +1,13 @@
1
+ import { PO } from "../types/poaep";
2
+ declare const parsePOAEP: (csvString: string) => {
3
+ success: boolean;
4
+ message: string;
5
+ data: PO[];
6
+ error?: never;
7
+ } | {
8
+ success: boolean;
9
+ error: string;
10
+ message: string;
11
+ data?: never;
12
+ };
13
+ export default parsePOAEP;
@@ -1 +1 @@
1
- export declare function uploadCOAEP(url: string, xls: File, course_id: string): Promise<Record<string, unknown>>;
1
+ export declare function uploadCOAEP(url: string, xls: File, course_id: string): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function uploadPOAEP(url: string, xls: File, token: string, course_id: string, curr_id: string, period_id: number): Promise<Record<string, unknown>>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ export interface PO {
2
+ po_desc: string;
3
+ seq_no: number;
4
+ PerfIndicators: PerfIndicator[];
5
+ }
6
+ export interface PerfIndicator {
7
+ pi_desc: string;
8
+ FormativeCourses: PIFormative[];
9
+ SummativeCourse: PISummative;
10
+ AssessmentTool: PIAssessmentTool;
11
+ PerformanceTargets: PIPerfTarget;
12
+ }
13
+ export interface PIFormative {
14
+ course_id: string;
15
+ cognitive_level: number;
16
+ }
17
+ export interface PISummative {
18
+ course_id: string;
19
+ }
20
+ export interface PIAssessmentTool {
21
+ at_desc: string;
22
+ }
23
+ export interface PIPerfTarget {
24
+ target_percent: number;
25
+ min_score: number;
26
+ }