{"version":3,"sources":["webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routing.ts","webpack:///./src/app/demo-material-module.ts","webpack:///./src/app/layouts/blank/blank.component.html","webpack:///./src/app/layouts/blank/blank.component.ts","webpack:///./src/app/layouts/full/full.component.html","webpack:///./src/app/layouts/full/full.component.ts","webpack:///./src/app/layouts/full/header/header.component.html","webpack:///./src/app/layouts/full/header/header.component.ts","webpack:///./src/app/layouts/full/sidebar/sidebar.component.html","webpack:///./src/app/layouts/full/sidebar/sidebar.component.ts","webpack:///./src/app/reference/auth-consts.ts","webpack:///./src/app/reference/client-consts.ts","webpack:///./src/app/reference/roles.ts","webpack:///./src/app/reference/sentry-consts.ts","webpack:///./src/app/reference/session-decision-type.ts","webpack:///./src/app/reference/session-review-state.ts","webpack:///./src/app/services/account.context.ts","webpack:///./src/app/services/account.service.ts","webpack:///./src/app/services/assessment.service.ts","webpack:///./src/app/services/auth.guard.ts","webpack:///./src/app/services/client.context.ts","webpack:///./src/app/services/config.service.ts","webpack:///./src/app/services/data-table-settings.service.ts","webpack:///./src/app/services/data.service.ts","webpack:///./src/app/services/faculty.service.ts","webpack:///./src/app/services/global-error-handler.ts","webpack:///./src/app/services/hub.service.ts","webpack:///./src/app/services/jwt.interceptor.ts","webpack:///./src/app/services/reference-data.resolver.ts","webpack:///./src/app/services/reference-data.service.ts","webpack:///./src/app/services/reports.service.ts","webpack:///./src/app/services/school.service.ts","webpack:///./src/app/services/search.service.ts","webpack:///./src/app/services/settings.service.ts","webpack:///./src/app/services/statistics.service.ts","webpack:///./src/app/services/unit.service.ts","webpack:///./src/app/services/user-management.service.ts","webpack:///./src/app/shared/accordion/accordion.directive.ts","webpack:///./src/app/shared/accordion/accordionanchor.directive.ts","webpack:///./src/app/shared/accordion/accordionlink.directive.ts","webpack:///./src/app/shared/confirm-dialog/confirm-dialog.component.html","webpack:///./src/app/shared/confirm-dialog/confirm-dialog.component.ts","webpack:///./src/app/shared/menu-items/menu-items.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/shared/spinners/route-spinner.component.ts.RouteSpinnerComponent.html","webpack:///./src/app/shared/spinners/route-spinner.component.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kGCvFA,yjBAAe,4oBAAmB,yBAAlC,YAAe;;;;;;;;;;;;;;;;ACFf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACS;AACQ;AAEE;AACA;AACF;AAE1D;IAUE,sBACU,MAAc,EACd,cAA8B,EAC9B,cAA8B,EAC9B,aAA4B,EAC5B,YAAmB;QAL7B,iBA0BC;QAzBS,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAgB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAO;QARtB,eAAU,GAAY,KAAK,CAAC;QAUjC,IAAI,CAAC,YAAY,GAAG,cAAY,CAAC,qEAAW,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,qEAAW,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE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","file":"main.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","var map = {\n\t\"./app-settings/app-settings.module.ngfactory\": [\n\t\t\"./src/app/app-settings/app-settings.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~b1c59018\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~e8031f56\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~authentication-authentication-module-ngfactory~un~7c820dc1\",\n\t\t\"common\",\n\t\t\"app-settings-app-settings-module-ngfactory\"\n\t],\n\t\"./authentication/authentication.module.ngfactory\": [\n\t\t\"./src/app/authentication/authentication.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~authentication-authentication-module-ngfactory~un~7c820dc1\",\n\t\t\"common\",\n\t\t\"authentication-authentication-module-ngfactory\"\n\t],\n\t\"./faculty-management/faculty-management.module.ngfactory\": [\n\t\t\"./src/app/faculty-management/faculty-management.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~b1c59018\",\n\t\t\"default~faculty-management-faculty-management-module-ngfactory~reporting-reporting-module-ngfactory~~84f81d37\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~e8031f56\",\n\t\t\"default~faculty-management-faculty-management-module-ngfactory~units-units-module-ngfactory\",\n\t\t\"common\",\n\t\t\"faculty-management-faculty-management-module-ngfactory\"\n\t],\n\t\"./profile/profile.module.ngfactory\": [\n\t\t\"./src/app/profile/profile.module.ngfactory.js\",\n\t\t\"common\",\n\t\t\"profile-profile-module-ngfactory\"\n\t],\n\t\"./reporting/reporting.module.ngfactory\": [\n\t\t\"./src/app/reporting/reporting.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~b1c59018\",\n\t\t\"default~faculty-management-faculty-management-module-ngfactory~reporting-reporting-module-ngfactory~~84f81d37\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~e8031f56\",\n\t\t\"common\",\n\t\t\"reporting-reporting-module-ngfactory\"\n\t],\n\t\"./search/search.module.ngfactory\": [\n\t\t\"./src/app/search/search.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~b1c59018\",\n\t\t\"default~faculty-management-faculty-management-module-ngfactory~reporting-reporting-module-ngfactory~~84f81d37\",\n\t\t\"default~search-search-module-ngfactory~units-units-module-ngfactory~user-management-user-management-~e11141e7\",\n\t\t\"common\",\n\t\t\"search-search-module-ngfactory\"\n\t],\n\t\"./statistics/statistics.module.ngfactory\": [\n\t\t\"./src/app/statistics/statistics.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~b1c59018\",\n\t\t\"common\",\n\t\t\"statistics-statistics-module-ngfactory\"\n\t],\n\t\"./units/units.module.ngfactory\": [\n\t\t\"./src/app/units/units.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~b1c59018\",\n\t\t\"default~faculty-management-faculty-management-module-ngfactory~reporting-reporting-module-ngfactory~~84f81d37\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~e8031f56\",\n\t\t\"default~search-search-module-ngfactory~units-units-module-ngfactory~user-management-user-management-~e11141e7\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~authentication-authentication-module-ngfactory~un~7c820dc1\",\n\t\t\"default~faculty-management-faculty-management-module-ngfactory~units-units-module-ngfactory\",\n\t\t\"common\",\n\t\t\"units-units-module-ngfactory\"\n\t],\n\t\"./user-management/user-management.module.ngfactory\": [\n\t\t\"./src/app/user-management/user-management.module.ngfactory.js\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~b1c59018\",\n\t\t\"default~faculty-management-faculty-management-module-ngfactory~reporting-reporting-module-ngfactory~~84f81d37\",\n\t\t\"default~app-settings-app-settings-module-ngfactory~faculty-management-faculty-management-module-ngfa~e8031f56\",\n\t\t\"default~search-search-module-ngfactory~units-units-module-ngfactory~user-management-user-management-~e11141e7\",\n\t\t\"common\",\n\t\t\"user-management-user-management-module-ngfactory\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","\n\n\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { environment } from '../environments/environment';\n\nimport { AccountService } from './services/account.service';\nimport { AccountContext } from './services/account.context';\nimport { ConfigService } from './services/config.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n\n public isLoggedIn: boolean = false;\n public instanceName: string;\n \n constructor(\n private router: Router,\n private accountService: AccountService,\n private accountContext: AccountContext,\n private configService: ConfigService,\n private titleService: Title\n ) {\n this.instanceName = `Dashboard${(environment.environmentName !== 'Prod' ? ' (' + environment.environmentName + ')' : '')}`;\n titleService.setTitle(this.instanceName);\n\n this.accountService.tryRestoreLogin()\n .subscribe(loggedIn => {\n console.log('Auth session restored');\n \n if (this.router.url === '/authentication/login') {\n this.accountContext.redirectToHome();\n }\n }, err => {\n \n });\n\n this.accountContext.isLoggedIn\n .subscribe(loggedIn => {\n this.isLoggedIn = loggedIn;\n });\n\n }\n\n logOut() {\n this.accountService.logout();\n\n this.router.navigateByUrl(\"/authentication/login\");\n }\n}\n","import * as $ from 'jquery'\nimport { BrowserModule } from '@angular/platform-browser'\nimport { NgModule, APP_INITIALIZER, ErrorHandler } from '@angular/core'\nimport { RouterModule } from '@angular/router'\nimport { FormsModule } from '@angular/forms'\nimport {\n HttpClientModule,\n HttpClient,\n HTTP_INTERCEPTORS,\n} from '@angular/common/http'\nimport { LocationStrategy, HashLocationStrategy } from '@angular/common'\nimport { AppRoutes } from './app.routing'\nimport { AppComponent } from './app.component'\n\nimport { HttpModule, Http } from '@angular/http'\nimport { MomentModule } from 'angular2-moment'\nimport { DatePipe } from '@angular/common'\n\nimport { AuthGuard } from './services/auth.guard'\nimport { JwtInterceptor } from './services/jwt.interceptor'\nimport { AccountService } from './services/account.service'\nimport { AccountContext } from './services/account.context'\nimport { HubService } from './services/hub.service'\nimport { ClientContext } from './services/client.context'\nimport { UserManagementService } from './services/user-management.service'\nimport { UnitService } from './services/unit.service'\nimport { AssessmentService } from './services/assessment.service'\nimport { SchoolService } from './services/school.service'\nimport { FacultyService } from './services/faculty.service'\nimport { ConfigService } from './services/config.service'\nimport { ReferenceDataService } from './services/reference-data.service'\nimport { SettingsService } from './services/settings.service'\nimport { GlobalErrorHandler } from './services/global-error-handler'\nimport { DataTableSettingsService } from './services/data-table-settings.service'\nimport { SearchService } from './services/search.service'\nimport { StatisticsService } from './services/statistics.service'\n\nimport { FlexLayoutModule } from '@angular/flex-layout'\nimport { FullComponent } from './layouts/full/full.component'\nimport { AppBlankComponent } from './layouts/blank/blank.component'\nimport { AppHeaderComponent } from './layouts/full/header/header.component'\nimport { AppSidebarComponent } from './layouts/full/sidebar/sidebar.component'\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations'\nimport { DemoMaterialModule } from './demo-material-module'\n\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'\nimport { PERFECT_SCROLLBAR_CONFIG } from 'ngx-perfect-scrollbar'\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar'\n\nimport { SharedModule } from './shared/shared.module'\nimport { DataService } from './services/data.service'\nimport { ReportsService } from './services/reports.service'\n\nexport function initApp() {\n return () => {\n console.log('App initialising..')\n // return Promise.all([\n // ]);\n }\n}\n\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\n suppressScrollX: true,\n wheelSpeed: 2,\n wheelPropagation: true,\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n FullComponent,\n AppHeaderComponent,\n AppBlankComponent,\n AppSidebarComponent,\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n DemoMaterialModule,\n FormsModule, \n FlexLayoutModule,\n HttpClientModule,\n PerfectScrollbarModule,\n SharedModule,\n MomentModule, \n RouterModule.forRoot(AppRoutes),\n ], \n providers: [\n AccountService,\n AccountContext,\n HubService,\n ClientContext,\n UserManagementService,\n UnitService,\n DataTableSettingsService,\n AssessmentService,\n SchoolService,\n FacultyService,\n ConfigService,\n ReferenceDataService,\n SettingsService,\n DataService,\n ReportsService,\n SearchService,\n StatisticsService,\n DatePipe,\n {\n provide: AuthGuard,\n useClass: AuthGuard,\n },\n {\n provide: ErrorHandler,\n useClass: GlobalErrorHandler,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initApp,\n deps: [],\n multi: true,\n },\n {\n provide: PERFECT_SCROLLBAR_CONFIG,\n useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG,\n },\n {\n provide: LocationStrategy,\n useClass: HashLocationStrategy,\n },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Routes } from '@angular/router'\n\nimport { FullComponent } from './layouts/full/full.component'\nimport { AppBlankComponent } from './layouts/blank/blank.component'\n\nimport { AuthGuard } from './services/auth.guard'\nimport { ReferenceDataResolver } from './services/reference-data.resolver'\n\nexport const AppRoutes: Routes = [\n {\n path: '',\n component: AppBlankComponent,\n children: [\n {\n path: '',\n redirectTo: '/authentication/login',\n pathMatch: 'full',\n },\n {\n path: 'authentication',\n loadChildren:\n './authentication/authentication.module#AuthenticationModule',\n },\n ],\n },\n {\n path: '',\n component: FullComponent, \n canActivate: [AuthGuard],\n resolve: {\n data: ReferenceDataResolver\n },\n runGuardsAndResolvers: 'always',\n children: [\n {\n path: 'search',\n loadChildren: './search/search.module#SearchModule',\n },\n {\n path: 'units',\n loadChildren: './units/units.module#UnitsModule',\n },\n {\n path: 'user-management',\n loadChildren:\n './user-management/user-management.module#UserManagementModule',\n },\n {\n path: 'faculty-management',\n loadChildren:\n './faculty-management/faculty-management.module#FacultyManagementModule',\n },\n {\n path: 'reporting',\n loadChildren: './reporting/reporting.module#ReportingModule',\n },\n {\n path: 'app-settings',\n loadChildren: './app-settings/app-settings.module#AppSettingsModule',\n },\n {\n path: 'profile',\n loadChildren: './profile/profile.module#ProfileModule',\n },\n {\n path: 'statistics',\n loadChildren: './statistics/statistics.module#StatisticsModule',\n },\n ],\n },\n {\n path: '**',\n redirectTo: 'authentication/404',\n },\n]\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatBottomSheetModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatStepperModule,\n} from '@angular/material';\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material';\nimport {CdkTableModule} from '@angular/cdk/table';\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PlatformModule} from '@angular/cdk/platform';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {PortalModule} from '@angular/cdk/portal';\n\n/**\n * NgModule that includes all Material modules that are required to serve the demo-app.\n */\n@NgModule({ \n exports: [\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatBottomSheetModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatTableModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSlideToggleModule,\n MatSliderModule,\n MatSnackBarModule,\n MatSortModule,\n MatStepperModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatNativeDateModule,\n CdkTableModule,\n A11yModule,\n BidiModule,\n CdkAccordionModule,\n ObserversModule,\n OverlayModule,\n PlatformModule,\n PortalModule,\n ]\n})\nexport class DemoMaterialModule {}\n","\n\n\n\n \n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-blank',\n templateUrl: './blank.component.html',\n styleUrls: []\n})\nexport class AppBlankComponent {\n}","\n\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n
\n
","import * as $ from 'jquery';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { Router } from '@angular/router';\nimport { ChangeDetectorRef, Component, NgZone, OnDestroy, ViewChild, HostListener, Directive, AfterViewInit } from '@angular/core';\nimport { MenuItems } from '../../shared/menu-items/menu-items';\nimport { AppHeaderComponent } from './header/header.component';\nimport { AppSidebarComponent } from './sidebar/sidebar.component';\n\nimport { environment } from '../../../environments/environment';\n\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar'; \n/** @title Responsive sidenav */\n@Component({\n selector: 'app-full-layout',\n templateUrl: 'full.component.html',\n styleUrls: [],\n}) \nexport class FullComponent implements OnDestroy, AfterViewInit {\n\n mobileQuery: MediaQueryList;\n dir = 'ltr';\n green: boolean;\n blue: boolean;\n dark: boolean;\n minisidebar: boolean;\n boxed: boolean;\n danger: boolean;\n showHide:boolean;\n sidebarOpened; \n \n public config: PerfectScrollbarConfigInterface = {};\n private _mobileQueryListener: () => void;\n \n constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public menuItems: MenuItems) {\n this.mobileQuery = media.matchMedia('(min-width: 768px)');\n this._mobileQueryListener = () => changeDetectorRef.detectChanges();\n this.mobileQuery.addListener(this._mobileQueryListener);\n }\n\n ngOnDestroy(): void {\n this.mobileQuery.removeListener(this._mobileQueryListener);\n }\n ngAfterViewInit() {\n //This is for the topbar search\n ($(\".srh-btn, .cl-srh-btn\")).on('click', function () {\n ($(\".app-search\")).toggle(200);\n });\n //This is for the megamenu\n \n }\n \n // Mini sidebar\n \n \n}\n"," \n\n\n\n\n\n\n\n \n \n \n \n\n\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AccountService } from './../../../services/account.service';\n\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: []\n})\nexport class AppHeaderComponent {\n\n public config: PerfectScrollbarConfigInterface = {};\n\n constructor(\n private router: Router,\n private accountService: AccountService) { }\n \n logOut() {\n this.accountService.logout();\n\n this.router.navigateByUrl(\"/authentication/login\");\n }\n\n // This is for Notifications\n // notifications: Object[] = [{\n // round: 'round-danger',\n // icon: 'ti-link',\n // title: 'Luanch Admin', \n // subject: 'Just see the my new admin!',\n // time: '9:30 AM' \n // }, {\n // round: 'round-success',\n // icon: 'ti-calendar',\n // title: 'Event today', \n // subject: 'Just a reminder that you have event',\n // time: '9:10 AM'\n // }, {\n // round: 'round-info', \n // icon: 'ti-settings',\n // title: 'Settings', \n // subject: 'You can customize this template as you want',\n // time: '9:08 AM'\n // }, {\n // round: 'round-primary',\n // icon: 'ti-user',\n // title: 'Pavan kumar', \n // subject: 'Just see the my admin!',\n // time: '9:00 AM'\n // }];\n \n // This is for Mymessages\n // mymessages: Object[] = [{\n // useravatar: 'assets/images/users/1.jpg',\n // status: 'online',\n // from: 'Pavan kumar', \n // subject: 'Just see the my admin!',\n // time: '9:30 AM' \n // }, {\n // useravatar: 'assets/images/users/2.jpg',\n // status: 'busy',\n // from: 'Sonu Nigam', \n // subject: 'I have sung a song! See you at',\n // time: '9:10 AM'\n // }, {\n // useravatar: 'assets/images/users/2.jpg',\n // status: 'away',\n // from: 'Arijit Sinh', \n // subject: 'I am a singer!',\n // time: '9:08 AM'\n // }, {\n // useravatar: 'assets/images/users/4.jpg',\n // status: 'offline',\n // from: 'Pavan kumar', \n // subject: 'Just see the my admin!',\n // time: '9:00 AM'\n // }];\n}\n","\n\n\n\n\n \n \n {{ menuitem.icon }} \n {{ menuitem.name }} \n \n {{ badge.value }} \n \n\n \n {{ menuitem.icon }} \n {{ menuitem.name }} \n \n {{ badge.value }} \n \n \n {{ menuitem.icon }} \n {{ menuitem.name}} \n \n {{ badge.value }} \n \n \n {{ menuitem.icon }} \n {{ menuitem.name }} \n \n {{ badge.value }}\n keyboard_arrow_down\n \n \n \n {{ childitem.name}} \n \n \n
\n {{ menuitem.name }} \n
\n
\n
","import { ChangeDetectorRef, Component, NgZone, OnDestroy, ViewChild, HostListener, Directive, AfterViewInit } from '@angular/core';\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar';\nimport { MediaMatcher } from '@angular/cdk/layout';\n\nimport { AccountContext } from '../../../services/account.context';\n\nimport { MenuItems, Menu } from '../../../shared/menu-items/menu-items';\n\n@Component({\n selector: 'app-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: []\n})\nexport class AppSidebarComponent {\n public config: PerfectScrollbarConfigInterface = {};\n mobileQuery: MediaQueryList;\n \n public menuItems: Menu[] = []\n \n private _mobileQueryListener: () => void;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef, \n private media: MediaMatcher, \n private accountContext: AccountContext,\n private menu: MenuItems) {\n\n this.mobileQuery = media.matchMedia('(min-width: 768px)');\n this._mobileQueryListener = () => changeDetectorRef.detectChanges();\n this.mobileQuery.addListener(this._mobileQueryListener);\n\n this.accountContext.isLoggedIn\n .subscribe(loggedIn => {\n this.menuItems = menu.getMenuitem();\n });\n\n this.menuItems = menu.getMenuitem();\n }\n\n ngOnDestroy(): void {\n this.mobileQuery.removeListener(this._mobileQueryListener);\n }\n \n}","export const AuthConstants = {\n authTokenKey: 'access_token',\n authExpiryKey: 'access_expires',\n authUserId: 'user_id',\n reCaptchaUiKey: '6LerpLoZAAAAAK38bezTW4l0vF3zsBYN8CwJbpz-',\n}\n","export const ClientConstants = {\n clientData: \"client_data\"\n}","export const Roles = {\n Tutor: \"TUTOR\",\n Lecturer: \"LECTR\",\n Admin: \"ADMIN\",\n SchoolAdmin: \"SCADM\"\n}","export const SentryConstants = {\n SentryPublicKey: \"1567fdcb62484416af832d3fab530329\",\n SentryProjectId: \"1810853\" \n}","export enum SessionDecisionType {\n satisfactoryReview = 0,\n potentialBreach = 1,\n confirmedBreach = 2,\n }\n","export enum SessionReviewState {\n none = 0,\n reviewed = 1 << 1,\n faceMatched = 1 << 2,\n authenticated = 1 << 3,\n}\n","import { Injectable } from '@angular/core'\nimport { ReplaySubject } from 'rxjs/ReplaySubject'\nimport { Router } from '@angular/router'\n\nimport { ClientContext } from './client.context'\nimport { ReferenceDataService } from '../services/reference-data.service'\n\nimport { User } from '../models/user'\n\nimport { Roles } from '../reference/roles'\n\nimport * as _ from 'lodash'\nimport { Role } from '../models/role'\n\n@Injectable()\nexport class AccountContext {\n public loggedInUser: User\n public isLoggedIn: ReplaySubject\n\n private userSchoolRoleIds: number[]\n private adminRoleIds: Role[]\n private schoolAdminRoleIds: Role[]\n private lecturerRoleIds: Role[]\n private tutorRoleIds: Role[]\n private manageAssessmentsRoles: Role[]\n private manageUsersRoles: Role[]\n private manageFacultiesRoles: Role[]\n private deleteUsersRoles: Role[]\n private deleteAssessments: Role[]\n private manageSettingsRoles: Role[]\n\n private userHasRole(requiredRoleCollection: Role[]): boolean {\n return this.userSchoolRoleIds.some((r) =>\n _.map(requiredRoleCollection, 'roleId').includes(r),\n )\n }\n\n private updateRoleMappings() {\n this.adminRoleIds = _.filter(this.referenceDataService.getRoles, (x) => {\n return x.code === Roles.Admin\n })\n\n this.schoolAdminRoleIds = _.filter(\n this.referenceDataService.getRoles,\n (x) => {\n return x.code === Roles.SchoolAdmin\n },\n )\n\n this.lecturerRoleIds = _.filter(this.referenceDataService.getRoles, (x) => {\n return x.code === Roles.Lecturer\n })\n\n this.tutorRoleIds = _.filter(this.referenceDataService.getRoles, (x) => {\n return x.code === Roles.Tutor\n })\n\n this.manageAssessmentsRoles = _.filter(\n this.referenceDataService.getRoles,\n (x) => {\n return (\n x.code === Roles.Admin ||\n x.code === Roles.SchoolAdmin ||\n x.code === Roles.Lecturer\n )\n },\n )\n\n this.manageUsersRoles = _.filter(\n this.referenceDataService.getRoles,\n (x) => {\n return (\n x.code === Roles.Admin ||\n x.code === Roles.SchoolAdmin ||\n x.code === Roles.Lecturer\n )\n },\n )\n\n this.manageFacultiesRoles = _.filter(\n this.referenceDataService.getRoles,\n (x) => {\n return x.code === Roles.Admin || x.code === Roles.SchoolAdmin\n },\n )\n\n this.deleteUsersRoles = _.filter(\n this.referenceDataService.getRoles,\n (x) => {\n return x.code === Roles.Admin\n },\n )\n\n this.deleteAssessments = _.filter(\n this.referenceDataService.getRoles,\n (x) => {\n return x.code === Roles.Admin\n },\n )\n\n this.manageSettingsRoles = _.filter(\n this.referenceDataService.getRoles,\n (x) => {\n return x.code === Roles.Admin\n },\n )\n }\n\n private clearRoleMappings() {\n this.adminRoleIds = []\n this.schoolAdminRoleIds = []\n this.lecturerRoleIds = []\n this.tutorRoleIds = []\n this.manageAssessmentsRoles = []\n this.manageUsersRoles = []\n this.manageFacultiesRoles = []\n this.deleteUsersRoles = []\n this.deleteAssessments = []\n this.manageSettingsRoles = []\n }\n\n isAdministrator(): boolean {\n return this.userHasRole(this.adminRoleIds)\n }\n\n isSchoolAdmin(): boolean {\n return this.userHasRole(this.schoolAdminRoleIds)\n }\n\n isLecturer(): boolean {\n return this.userHasRole(this.lecturerRoleIds)\n }\n\n isTutor(): boolean {\n return this.userHasRole(this.tutorRoleIds)\n }\n\n canManageAssessments(): boolean {\n return this.userHasRole(this.manageAssessmentsRoles)\n }\n\n canManageUsers(): boolean {\n return this.userHasRole(this.manageUsersRoles)\n }\n\n canManageFaculties(): boolean {\n return this.userHasRole(this.manageFacultiesRoles)\n }\n\n canDeleteUsers(): boolean {\n return this.userHasRole(this.deleteUsersRoles)\n }\n\n canDeleteAssessments(): boolean {\n return this.userHasRole(this.deleteAssessments)\n }\n\n canManageSettings(): boolean {\n return this.userHasRole(this.manageSettingsRoles)\n }\n\n constructor(\n private clientContext: ClientContext,\n private referenceDataService: ReferenceDataService,\n private router: Router,\n ) {\n this.isLoggedIn = new ReplaySubject(1)\n\n this.clientContext.isClientLoaded.subscribe((isLoaded) => {\n if (isLoaded) {\n this.updateRoleMappings()\n } else {\n this.clearRoleMappings()\n }\n })\n }\n\n login(user: User): void {\n this.loggedInUser = user\n\n let roleIds = _.map(this.loggedInUser.schoolRoles, 'roleIds')\n this.userSchoolRoleIds = _.flatten(roleIds)\n\n this.isLoggedIn.next(true)\n }\n\n logout(): void {\n this.loggedInUser = null\n this.userSchoolRoleIds = []\n this.isLoggedIn.next(false)\n }\n\n redirectToHome(): void {\n if (!this.loggedInUser) {\n this.router.navigateByUrl('/authentication/login')\n } else {\n this.router.navigateByUrl('/units')\n }\n }\n}\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { Observable } from 'rxjs/Observable'\n\nimport { ClientContext } from './client.context'\nimport { AccountContext } from './account.context'\nimport { HubService } from './hub.service'\n\nimport { AuthConstants } from '../reference/auth-consts'\n\nimport { User } from '../models/user'\nimport { Client } from '../models/client'\n\n@Injectable()\nexport class AccountService {\n readonly tokenEndpoint = '/api/token/auth'\n readonly userEndpoint = '/api/users/'\n readonly settingsEndpoint = '/api/settings'\n\n constructor(\n private http: HttpClient,\n private clientContext: ClientContext,\n private accountContext: AccountContext,\n private hubService: HubService,\n ) {}\n\n login(username: string, password: string): Observable {\n return Observable.create((observer) => {\n let handleError = (err) => {\n observer.error(err)\n this.hubService.forgetClient()\n }\n\n this.hubService\n .getClientForLogin(username)\n .subscribe((clientMap: Client) => {\n this.hubService.setClient(clientMap)\n\n const loginRequest = {\n username: username,\n password: password,\n clientId: clientMap.clientSubDomain,\n grantType: 'password',\n }\n\n this.http\n .post(\n this.clientContext.clientServerUrl + this.tokenEndpoint,\n loginRequest,\n )\n .subscribe((data: any) => {\n localStorage.setItem(\n AuthConstants.authTokenKey,\n data.access_token,\n )\n localStorage.setItem(AuthConstants.authExpiryKey, data.expires_in)\n localStorage.setItem(AuthConstants.authUserId, data.user_id)\n\n this.completeLogin(data.user_id).subscribe((user: User) => {\n observer.next(user)\n observer.complete()\n }, handleError)\n }, handleError)\n }, handleError)\n })\n }\n\n updateAccount(fullName: string, email: string): Observable {\n return Observable.create((observer) => {\n let updatedUser = {} as User\n Object.assign(updatedUser, this.accountContext.loggedInUser)\n\n updatedUser.fullName = fullName\n updatedUser.email = email\n\n this.http\n .put(\n this.clientContext.clientServerUrl +\n this.userEndpoint +\n updatedUser.userId +\n '/current',\n updatedUser,\n )\n .subscribe(\n (user: User) => {\n this.accountContext.login(user)\n\n observer.next(user)\n observer.complete()\n },\n (err) => {\n observer.error(err)\n },\n )\n })\n }\n\n updateUserPassword(\n currentPassword: string,\n newPassword: string,\n userId: string,\n ) {\n return Observable.create((observer) => {\n let request = {\n currentPassword: currentPassword,\n newPassword: newPassword,\n }\n\n this.http\n .put(\n this.clientContext.clientServerUrl +\n this.userEndpoint +\n userId +\n '/password',\n request,\n )\n .subscribe(\n (user: User) => {\n this.accountContext.login(user)\n observer.next(user)\n observer.complete()\n },\n (err) => {\n observer.error(err)\n },\n )\n })\n }\n\n updatePassword(\n currentPassword: string,\n newPassword: string,\n ): Observable {\n let userId = this.accountContext.loggedInUser.userId\n return this.updateUserPassword(\n currentPassword,\n newPassword,\n userId.toString(),\n )\n }\n\n resetPassword(emailAddress: string): Observable {\n return Observable.create((observer) => {\n let request = {\n emailAddress: emailAddress,\n }\n\n this.http\n .put(\n this.clientContext.clientServerUrl +\n this.userEndpoint +\n 'passwordreset',\n request,\n )\n .subscribe(\n () => {\n observer.next()\n observer.complete()\n },\n (err) => {\n observer.error(err)\n },\n )\n })\n }\n\n tryRestoreLogin(): Observable {\n return Observable.create((observer) => {\n let authToken = localStorage.getItem(AuthConstants.authTokenKey)\n let userId = localStorage.getItem(AuthConstants.authUserId)\n if (!authToken || !userId) {\n return observer.error('Failed to restore user session - auth error')\n }\n\n let restoredClient = this.hubService.tryRestoreClient()\n if (!restoredClient) {\n return observer.error('Failed to restore user session - client error')\n }\n\n this.completeLogin(userId).subscribe(\n (user: User) => {\n observer.next(user)\n observer.complete()\n },\n (err) => {\n observer.error(err)\n },\n )\n })\n }\n\n completeLogin(userId): Observable {\n return Observable.create((observer) => {\n this.http\n .get(this.clientContext.clientServerUrl + this.userEndpoint + userId)\n .subscribe(\n (user: User) => {\n this.hubService.loadClient().subscribe(() => {\n if (!user.passwordChangeRequired) {\n this.accountContext.login(user)\n }\n observer.next(user)\n observer.complete()\n })\n },\n (err) => {\n observer.error(err)\n },\n )\n })\n }\n\n logout(): void {\n sessionStorage.clear()\n this.accountContext.logout()\n localStorage.removeItem(AuthConstants.authTokenKey)\n localStorage.removeItem(AuthConstants.authExpiryKey)\n localStorage.removeItem(AuthConstants.authUserId)\n this.hubService.forgetClient()\n }\n\n getAuthQueryParam(): string {\n return (\n 'authorization-bearer-token=' +\n localStorage.getItem(AuthConstants.authTokenKey)\n )\n }\n}\n","import { Injectable } from '@angular/core'\nimport { RequestOptions, URLSearchParams } from '@angular/http'\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http'\nimport { Observable } from 'rxjs/Observable'\nimport { DatePipe } from '@angular/common'\n\nimport { environment } from '../../environments/environment'\n\nimport { ClientContext } from './client.context'\nimport { ConfigService } from './config.service'\n\nimport { Assessment } from '../models/assessment'\nimport {\n Session,\n ExaminationSessionDecision,\n SendNotification,\n} from '../models/session'\nimport { SessionAuthStatus } from '../models/session-auth-status'\nimport { Log } from '../models/logs'\n\nimport { AnomalySource } from '../reference/anomaly-source'\n\nimport * as _ from 'lodash'\n\nimport 'rxjs/Rx'\nimport { SessionReviewState } from '../reference/session-review-state'\nimport { SessionDecisionType } from '../reference/session-decision-type'\n\n@Injectable()\nexport class AssessmentService {\n readonly assessmentsEndpoint = '/api/assessments/'\n readonly fileEndpoint = '/api/file/'\n\n constructor(\n private datePipe: DatePipe,\n private clientContext: ClientContext,\n private configService: ConfigService,\n private http: HttpClient,\n ) {}\n\n getAssessment(assessmentId: number): Observable {\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}`,\n )\n }\n\n getAssessmentUsers(assessmentId: number): Observable {\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/users`,\n )\n }\n\n // tslint:disable-next-line: max-line-length\n getAssessmentSessions(\n assessmentId: number,\n date?: Date,\n minimumFlaggedPercentage?: number,\n reviewState?: number,\n studentName?: string,\n studentNumber?: string,\n ): Observable {\n const sessionsFiltersModel = {\n examinationId: assessmentId,\n date: date,\n minimumFlaggedPercentage: minimumFlaggedPercentage,\n reviewState: reviewState,\n studentName: studentName,\n studentNumber: studentNumber,\n }\n console.log(sessionsFiltersModel)\n // tslint:disable-next-line: max-line-length\n return this.http.post(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions`,\n sessionsFiltersModel,\n )\n }\n\n getAssessmentSessionLog(\n assessmentId: number,\n sessionId: number,\n ): Observable {\n return this.http\n .get(\n `${this.clientContext.clientServerUrl}${this.fileEndpoint}download/${assessmentId}/${sessionId}/log`,\n )\n .map((response: any) => JSON.parse(response) as Log[])\n }\n\n getAssessmentSessionThumbnails(\n assessmentId: number,\n sessionId: number,\n source: AnomalySource,\n ): Observable {\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.fileEndpoint}download/${assessmentId}/${sessionId}/thumbnails/${source}`,\n )\n }\n\n createAssessment(schoolId: number, formData: any) {\n return this.http.post(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}schools/${schoolId}/createassessment`,\n formData,\n )\n }\n\n updateAssessment(formData: any) {\n return this.http.put(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${formData.assessmentId}`,\n formData,\n )\n }\n\n updateUsersBySchoolId(examinationId, userIds: any[]) {\n return this.http.put(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${examinationId}/users`,\n userIds,\n )\n }\n\n deleteAssessment(assessmentId: number) {\n return this.http.delete(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}`,\n )\n }\n\n deleteSession(assessmentId: number, sessionId: number) {\n return this.http.delete(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${sessionId}`,\n )\n }\n\n notifySupport(assessmentId: number, sessionId: number) {\n return this.http.post(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${sessionId}/notifySupport`,\n {},\n )\n }\n\n requestBundle(assessmentId: number, sessionId: number, password: string) {\n const request = {\n examinationSessionId: sessionId,\n bundlePassword: password,\n }\n return this.http.post(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/requestBundle`,\n request,\n )\n }\n\n getAssessmentSessionDetails(assessmentId, assessmentSessionId) {\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}`,\n )\n }\n\n getSequenceSuspiciousFrames(\n assessmentId,\n assessmentSessionId,\n sessionSequenceId,\n ) {\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/sequences/${sessionSequenceId}/susframes`,\n )\n }\n\n setSessionReviewed(assessmentId: number, assessmentSessionId: number) {\n return this.http.put(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/reviewed`,\n [],\n )\n }\n\n setSessionAuthenticated(assessmentId: number, assessmentSessionId: number) {\n return this.http.put(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/authenticated`,\n [],\n )\n }\n\n revertSessionReviewed(assessmentId: number, assessmentSessionId: number) {\n return this.http.delete(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/reviewed`,\n )\n }\n\n ignoreSessionFaceMatched(assessmentId: number, assessmentSessionId: number) {\n return this.http.put(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/faceMatchedIgnored`,\n {},\n )\n }\n\n ignoreSessionAuthenticated(\n assessmentId: number,\n assessmentSessionId: number,\n ) {\n return this.http.put(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/authenticatedIgnored`,\n {},\n )\n }\n\n getSessionAuthStatus(\n assessmentId: number,\n assessmentSessionId: number,\n ): Observable {\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/authStatus`,\n )\n }\n\n addSessionNote(\n assessmentId: number,\n assessmentSessionId: number,\n note: string,\n ) {\n return this.http.put(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/notes?notes=${note}`,\n [],\n )\n }\n\n addSessionView(assessmentId: number, assessmentSessionId: number) {\n const addSessionViewRequest = {\n examinationSessionId: assessmentSessionId,\n }\n // tslint:disable-next-line: max-line-length\n return this.http.post(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${assessmentSessionId}/createSessionView`,\n addSessionViewRequest,\n )\n }\n\n addSessionDecision(\n assessmentId: number,\n examinationSessionDecision: ExaminationSessionDecision,\n ) {\n debugger\n // tslint:disable-next-line: max-line-length\n return this.http.post(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/sessions/${examinationSessionDecision.examinationSessionId}/createSessionDecision`,\n examinationSessionDecision,\n )\n }\n\n sendNotification(assessmentId: number, sendNotification: SendNotification) {\n debugger\n // tslint:disable-next-line: max-line-length\n return this.http.post(\n `${this.clientContext.clientServerUrl}${this.assessmentsEndpoint}${assessmentId}/SendNotification`,\n sendNotification,\n )\n }\n\n convertToCSV(\n assessmentId: number,\n unitId: number,\n assessmentName: string,\n data: any,\n ) {\n let csvString = ''\n let row = ''\n let dateFormat = this.configService.config.dateFormat\n\n delete data[0].hasCardId\n delete data[0].hasFullReport\n delete data[0].hasSequences\n delete data[0].reviewState\n delete data[0].hasExaminationSessionView\n\n for (let index in data[0]) {\n index = index == 'assessmentName' ? 'Assessment Name' : index\n index = index == 'assessmentSessionId' ? 'Session ID' : index\n index = index == 'sessionKey' ? 'Session Key' : index\n index = index == 'studentName' ? 'Student Name' : index\n index = index == 'studentId' ? 'Student ID' : index\n index = index == 'startedAt' ? 'Start Time' : index\n index = index == 'endedAt' ? 'End Time' : index\n index = index == 'probability' ? 'Suspicious %' : index\n index = index == 'hasSequences' ? 'Has Recordings' : index\n index = index == 'utcOffsetInMinutes' ? 'UTC Offset (minutes)' : index\n index = index == 'sessionReviewState' ? 'Reviewed Status' : index\n index = index == 'examinationSessionDecisions' ? 'Decision' : index\n index = index == 'alerts' ? 'Alerts' : index\n index = index == 'reviewNotes' ? 'Notes' : index\n index = index == 'fullPlay' ? 'Full Report' : index\n index = index == 'summary' ? 'Summary' : index\n row += index + ','\n // row += this.splitCamelCase(index) + ',';\n }\n row += 'Assessment Name' + ','\n row += 'Full Report' + ','\n row += 'Summary'\n csvString += row + '\\r\\n'\n\n for (let i = 0; i < data.length; i++) {\n let line = ''\n delete data[i].hasCardId\n delete data[i].hasFullReport\n delete data[i].hasSequences\n delete data[i].reviewState\n delete data[i].hasExaminationSessionView\n\n delete data[i].recordingTypes\n if (data[i].sessionReviewState & SessionReviewState.authenticated) {\n data[i].sessionReviewState = 'Authenticated'\n } else if (data[i].sessionReviewState & SessionReviewState.faceMatched) {\n data[i].sessionReviewState = 'Face Matched'\n } else if (data[i].sessionReviewState & SessionReviewState.reviewed) {\n data[i].sessionReviewState = 'Reviewed'\n } else {\n data[i].sessionReviewState = 'No'\n }\n let decision = _.includes(\n data[i].examinationSessionDecisions,\n SessionDecisionType.confirmedBreach,\n )\n ? 'Confirmed Breach, '\n : ''\n decision += _.includes(\n data[i].examinationSessionDecisions,\n SessionDecisionType.potentialBreach,\n )\n ? 'Potential Breach, '\n : ''\n decision += _.includes(\n data[i].examinationSessionDecisions,\n SessionDecisionType.satisfactoryReview,\n )\n ? 'Satisfactory Review, '\n : ''\n decision =\n decision.length > 0\n ? decision.substring(0, decision.length - 2)\n : decision // strip extra ', '\n data[i].examinationSessionDecisions = decision\n data[i].startedAt =\n this.datePipe.transform(data[i].startedAt, dateFormat) +\n ' ' +\n this.datePipe.transform(data[i].startedAt, 'shortTime')\n data[i].endedAt =\n this.datePipe.transform(data[i].endedAt, dateFormat) +\n ' ' +\n this.datePipe.transform(data[i].endedAt, 'shortTime')\n data[i].probability =\n !data[i].probability || data[i].probability < 0\n ? '0 %'\n : data[i].probability.toFixed(2) + ' %'\n data[i].assessmentName = assessmentName\n data[\n i\n ].fullPlay = `${window.location.origin}/#/units/${unitId}/assessments/${assessmentId}/sessions/${data[i].assessmentSessionId}/session-view/${data[i].assessmentSessionId}`\n data[\n i\n ].summary = `${window.location.origin}/#/units/${unitId}/assessments/${assessmentId}/sessions/${data[i].assessmentSessionId}/summary-view/${data[i].assessmentSessionId}`\n\n for (let index in data[i]) {\n if (line != '') line += ','\n line += JSON.stringify(data[i][index])\n }\n csvString += line + '\\r\\n'\n }\n return csvString\n }\n\n splitCamelCase(word) {\n let output,\n i,\n l,\n capReg = /[A-Z]/\n output = []\n for (i = 0, l = word.length; i < l; i += 1) {\n if (i === 0) {\n output.push(word[i].toUpperCase())\n } else {\n if (i > 0 && capReg.test(word[i])) {\n output.push(' ')\n }\n output.push(word[i])\n }\n }\n return output.join('')\n }\n\n downloadCSV(assessmentId: any, csvData: any) {\n let blob = new Blob([csvData], { type: 'text/csv;charset=utf-8;' })\n let fileName = `${assessmentId}_sessions_${new Date().toLocaleTimeString()}.csv`\n let link = document.createElement('a')\n if (link.download !== undefined) {\n let url = URL.createObjectURL(blob)\n link.setAttribute('href', url)\n link.setAttribute('download', fileName)\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n}\n","import { Injectable } from '@angular/core'\nimport {\n CanActivate,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n} from '@angular/router'\nimport { Observable } from 'rxjs/Observable'\nimport { Observer } from 'rxjs/Observer'\n\nimport { AccountContext } from './account.context'\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(private router: Router, private acountContext: AccountContext) {}\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot,\n ): Observable | Promise | boolean {\n if (!this.acountContext.loggedInUser) {\n this.router.navigate(['/', 'authentication', 'login'])\n }\n return new Observable((observer: Observer) => {\n this.acountContext.isLoggedIn.subscribe((isLoggedIn) => {\n if (isLoggedIn) {\n observer.next(true)\n observer.complete()\n } else {\n this.router.navigate(['/', 'authentication', 'login'])\n observer.next(false)\n observer.complete()\n }\n })\n })\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs/ReplaySubject';\n\nimport { environment } from \"../../environments/environment\";\n\nimport { Client } from '../models/client';\n\n@Injectable()\nexport class ClientContext {\n \n private _clientServerUrl: string;\n\n public activeClient: Client;\n public isClientSet: ReplaySubject;\n public isClientLoaded: ReplaySubject;\n\n get clientServerUrl(): string {\n return this._clientServerUrl;\n }\n\n constructor() {\n this.isClientSet = new ReplaySubject(1);\n this.isClientLoaded = new ReplaySubject(1);\n }\n\n setClient(clientMap: Client): void {\n this.activeClient = clientMap;\n this._clientServerUrl = `${environment.clientServerProtocol}://${clientMap.clientSubDomain}.${environment.clientServerDomain}`;\n this.isClientSet.next(true);\n }\n\n markClientAsLoaded(): void {\n this.isClientLoaded.next(true);\n }\n\n clearClient(): void {\n this.activeClient = null;\n this._clientServerUrl = null;\n this.isClientSet.next(false);\n this.isClientLoaded.next(false);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { ClientContext } from './client.context';\n\nimport { Config } from '../models/config';\n\n@Injectable()\nexport class ConfigService {\n\n readonly dateFormatStorageKey = 'date_format';\n readonly configEndpoint = '/api/config/';\n\n private _config: Config = null;\n\n get config(): Config {\n return this._config;\n }\n\n\tconstructor(\n private http: HttpClient,\n private clientContext: ClientContext) { }\n\n\n loadConfig(): Promise {\n return this.http.get(this.clientContext.clientServerUrl + this.configEndpoint)\n .toPromise()\n .then((config: Config) => {\n this._config = config;\n\n localStorage.setItem(this.dateFormatStorageKey, this._config.dateFormat);\n\n console.log('Client configuration loaded.', JSON.stringify(this._config));\n\n return this._config;\n }, err => {\n console.log('Failed to load client configuration.');\n\n return null;\n });\n }\n\n clearConfig() {\n this._config = null;\n localStorage.removeItem(this.dateFormatStorageKey);\n console.log('Client configuration cleared.');\n }\n}","import { Injectable } from '@angular/core'\n\n@Injectable()\nexport class DataTableSettingsService {\n fetchTableFilter(tableName: string): any {\n let filterData = sessionStorage.getItem(`${tableName}_filter`)\n return filterData\n }\n\n fetchTableSort(tableName: string): any {\n let sortData = sessionStorage.getItem(`${tableName}_sort`)\n return sortData != null ? JSON.parse(sortData) : null\n }\n\n fetchTableDateFilter(tableName: string): any {\n let sortData = sessionStorage.getItem(`${tableName}_date_filter`)\n return sortData != null ? JSON.parse(sortData) : null\n }\n\n storeTableFilter(tableName: string, filterValue: any) {\n if (!filterValue) {\n sessionStorage.removeItem(`${tableName}_filter`)\n } else {\n sessionStorage.setItem(`${tableName}_filter`, filterValue)\n }\n }\n\n storeTableSort(tableName: string, sortValue: any) {\n if (!sortValue) {\n sessionStorage.removeItem(`${tableName}_sort`)\n } else {\n sessionStorage.setItem(`${tableName}_sort`, JSON.stringify(sortValue))\n }\n }\n\n storeTableDateFilter(tableName: string, sortValue: any) {\n if (!sortValue || (sortValue && !sortValue.fromDate && !sortValue.toDate)) {\n sessionStorage.removeItem(`${tableName}_date_filter`)\n } else {\n sessionStorage.setItem(\n `${tableName}_date_filter`,\n JSON.stringify(sortValue),\n )\n }\n }\n\n StoreTableData(name, filteredDataKey: any[], propName, tableSortkey: any[]) {\n sessionStorage.setItem(name, JSON.stringify(filteredDataKey))\n sessionStorage.setItem(propName, JSON.stringify(tableSortkey))\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n/*\nThis service created with a purpose of sharing data\nbetween sibling components\n*/\n@Injectable()\nexport class DataService {\n\n private messageSource = new BehaviorSubject('default message');\n currentMessage = this.messageSource.asObservable();\n\n constructor() { }\n\n changeMessage(message: string) {\n this.messageSource.next(message);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs/Observable\";\n\nimport { ClientContext } from './client.context';\n\nimport { Faculty } from \"../models/faculty\";\nimport { School } from \"../models/school\";\nimport { Course } from \"../models/course\";\nimport { Unit } from \"../models/unit\";\nimport { StudyPeriod } from \"../models/study-period\";\n\n@Injectable()\nexport class FacultyService {\n\n readonly facultyEndpoint = \"/api/faculties\";\n\n readonly courseEndpoint = \"/api/schools\";\n\n readonly periodsEndpoint = \"/api/studyperiods\";\n\n\n constructor(\n private http: HttpClient,\n private clientContext: ClientContext) { }\n\n\n getFaculties(): Observable {\n return this.http.get(this.clientContext.clientServerUrl + this.facultyEndpoint);\n }\n\n getCourse(schoolId: number): Observable{\n return this.http.get(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${schoolId}/courses`);\n }\n\n getSchools(facultyId: number): Observable{\n return this.http.get(`${this.clientContext.clientServerUrl}${this.facultyEndpoint}/${facultyId}/schools`);\n }\n\n getUnits(schoolId: number, courseId: number): Observable{\n return this.http.get(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${schoolId}/courses/${courseId}/units`);\n }\n\n getPeriods(): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.periodsEndpoint}`);\n }\n\n deleteUnit(schoolId: number, courseId: number, unitId: number){\n return this.http.delete(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${schoolId}/courses/${courseId}/units/${unitId}`);\n }\n\n deleteCourse(schoolId: number, courseId: number){\n return this.http.delete(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${schoolId}/courses/${courseId}`);\n }\n\n deleteFaculty(facultyId) {\n return this.http.delete(`${this.clientContext.clientServerUrl}${this.facultyEndpoint}/${facultyId}`);\n }\n\n deleteSchool(facultyId, schoolId) {\n return this.http.delete(`${this.clientContext.clientServerUrl}${this.facultyEndpoint}/${facultyId}/schools/${schoolId}`);\n }\n\n deletePeriods(studyPeriodId: number) {\n return this.http.delete(`${this.clientContext.clientServerUrl}${this.periodsEndpoint}/${studyPeriodId}`);\n }\n\n updateFacultyByFacultyId(faculty) {\n return this.http.put(`${this.clientContext.clientServerUrl}${this.facultyEndpoint}/${faculty.facultyId}`, faculty );\n }\n\n updateSchoolBySchoolId(school){\n return this.http.put(`${this.clientContext.clientServerUrl}${this.facultyEndpoint}/${school.facultyId}/schools/${school.schoolId}`, school);\n }\n\n updateCourseByCourseId(course) {\n return this.http.put(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${course.schoolId}/courses/${course.courseId}`, course);\n }\n\n updateUnitByUnitId(unit) {\n return this.http.put(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${unit.schoolId}/courses/${unit.courseId}/units/${unit.unitId}`, unit);\n }\n\n updatePeriodBySchoolPeriodId(period){\n return this.http.put(`${this.clientContext.clientServerUrl}${this.periodsEndpoint}/${period.studyPeriodId}`, period);\n }\n\n postStudyPeriod(formdata) {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.periodsEndpoint}`, formdata);\n }\n\n postCourse(course) {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${course.schoolId}/courses/`, course);\n }\n\n postUnit(unit) {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.courseEndpoint}/${unit.schoolId}/courses/${unit.courseId}/units/`, unit);\n }\n\n postFaculty(faculty) {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.facultyEndpoint}`, faculty);\n }\n\n postSchool(school) {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.facultyEndpoint}/${school.facultyId}/schools`, school);\n }\n}\n","import { ErrorHandler, Injectable, Injector } from '@angular/core'\nimport * as Sentry from '@sentry/browser'\nimport { Router } from '@angular/router'\nimport { SentryConstants } from '../reference/sentry-consts'\nimport { environment } from '../../environments/environment'\n\n@Injectable()\nexport class GlobalErrorHandler implements ErrorHandler {\n constructor(private injector: Injector) {\n Sentry.init({\n dsn: `https://${SentryConstants.SentryPublicKey}@sentry.io/${SentryConstants.SentryProjectId}`,\n environment: `${environment.environmentName}`,\n })\n }\n\n handleError(error) {\n let err = error.originalError || error\n if (err === 'Unauthorised!') {\n // unauthorized error - picked up by auth interceptor\n return\n }\n\n try {\n console.log(err)\n Sentry.captureException(err)\n let router = this.injector.get(Router)\n router.navigate(['/authentication/404'])\n } catch (ex) {\n console.log(ex)\n }\n }\n}\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { Observable } from 'rxjs/Observable'\nimport { forkJoin } from 'rxjs/observable/forkJoin'\n\nimport { environment } from '../../environments/environment'\n\nimport { ClientContext } from '../services/client.context'\nimport { ConfigService } from '../services/config.service'\nimport { ReferenceDataService } from '../services/reference-data.service'\n\nimport { Client } from '../models/client'\nimport { ClientConstants } from '../reference/client-consts'\nimport { User } from '../models/user'\n\nimport * as _ from 'lodash'\n\n@Injectable()\nexport class HubService {\n readonly clientsEndpoint = '/clients/'\n\n private resetPasswordAtClient(\n clientSubDomain: string,\n emailAddress: string,\n captchaResponse: string,\n ) {\n const request = {\n emailAddress,\n captchaResponse,\n }\n const resetUrl = `${environment.clientServerProtocol}://${clientSubDomain}.${environment.clientServerDomain}/api/users/passwordreset`\n return this.http.put(resetUrl, request)\n }\n\n constructor(\n private http: HttpClient,\n private clientContext: ClientContext,\n private configService: ConfigService,\n private referenceDataService: ReferenceDataService,\n ) {}\n\n getClientForLogin(login: string): Observable {\n return this.http.get(\n `${environment.hubServerUrl}${this.clientsEndpoint}byusername/${login}`,\n )\n }\n\n getClientsForEmail(email: string): Observable {\n return this.http.get(\n `${environment.hubServerUrl}${this.clientsEndpoint}byemail/${email}`,\n )\n }\n\n resetPassword(\n emailAddress: string,\n captchaResponse: string,\n ): Observable {\n return Observable.create((observer) => {\n this.getClientsForEmail(emailAddress).subscribe(\n (clients: Client[]) => {\n const resetActions = []\n _.each(clients, (client: Client) => {\n resetActions.push(\n this.resetPasswordAtClient(\n client.clientSubDomain,\n emailAddress,\n captchaResponse,\n ),\n )\n })\n\n forkJoin(resetActions).subscribe(\n () => {\n observer.next()\n observer.complete()\n },\n (err) => {\n observer.error(err)\n },\n )\n },\n (err) => {\n observer.error(err)\n },\n )\n })\n }\n\n setClient(clientMap: Client) {\n localStorage.setItem(ClientConstants.clientData, JSON.stringify(clientMap))\n this.clientContext.setClient(clientMap)\n }\n\n tryRestoreClient(): boolean {\n let clientData = localStorage.getItem(ClientConstants.clientData)\n if (!clientData) {\n return false\n }\n\n let client = JSON.parse(clientData)\n this.clientContext.setClient(client)\n\n return true\n }\n\n forgetClient() {\n this.configService.clearConfig()\n this.referenceDataService.clearReferenceData()\n localStorage.removeItem(ClientConstants.clientData)\n this.clientContext.clearClient()\n }\n\n loadClient(): Observable {\n return Observable.create((observer) => {\n Promise.all([\n this.configService.loadConfig(),\n this.referenceDataService.loadReferenceData(),\n ])\n .then(() => {\n this.clientContext.markClientAsLoaded()\n\n observer.next()\n observer.complete()\n })\n .catch((err: any) => {\n observer.error(err)\n })\n })\n }\n}\n","import 'rxjs/add/operator/do';\nimport { Injectable, Injector } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpResponse, HttpErrorResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs/Observable';\nimport { Router } from '@angular/router';\n \nimport { AccountService } from './account.service';\n\nimport { AuthConstants } from '../reference/auth-consts';\nimport { ReferenceDataService } from './reference-data.service';\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n \n constructor( private referenceDataService: ReferenceDataService,\n private injector: Injector) { }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // add authorization header with jwt token if available\n let accessToken = localStorage.getItem(AuthConstants.authTokenKey);\n if (accessToken) {\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${accessToken}`\n }\n });\n }\n\n return next.handle(request).do(async (event: HttpEvent) => {\n if (event instanceof HttpResponse) {\n // do stuff with response if you want\n }\n }, (err: any) => {\n if (err instanceof HttpErrorResponse) {\n if (err.status === 401) {\n this.injector.get(AccountService).logout();\n this.injector.get(Router).navigateByUrl(\"/authentication/login\");\n throw 'Unauthorised!';\n } else {\n console.log('XHR request error...');\n console.log(JSON.stringify(err));\n if (err.error && err.error.length) {\n throw err.error[0];\n }\n throw 'An unexpected error has occurred';\n }\n }\n });\n }\n}","import { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { ReferenceDataService } from './reference-data.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ReferenceDataResolver implements Resolve {\r\n\r\n constructor(private referenceDataService: ReferenceDataService) { }\r\n\r\n resolve() {\r\n return this.referenceDataService.loadReferenceData()\r\n }\r\n \r\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { ClientContext } from './client.context';\n\nimport { Role } from '../models/role';\nimport { Faculty } from '../models/faculty';\nimport { School } from '../models/school';\n\nimport 'rxjs/Rx';\n\n@Injectable()\nexport class ReferenceDataService {\n\n private readonly referenceEndpoint = '/api/reference-data/';\n\n private roles: Role[] = [];\n private faculties: Faculty[] = [];\n private schools: School[] = [];\n\n get getRoles(): Role[] {\n return this.roles;\n }\n\n get getFaculties(): Faculty[] {\n return this.faculties;\n }\n\n get getSchools(): School[] {\n return this.schools;\n }\n \n\tconstructor(\n private http: HttpClient,\n private clientContext: ClientContext) { }\n\n loadReferenceData(): Promise {\n return this.http.get(this.clientContext.clientServerUrl + this.referenceEndpoint)\n .toPromise()\n .then((data: any) => {\n\n this.roles = data.roles;\n this.faculties = data.faculties;\n this.schools = data.schools;\n console.log('Reference data loaded.');\n\n return null;\n }, err => {\n console.log('Failed to load reference data.');\n\n return null;\n });\n }\n\n clearReferenceData() {\n this.roles = [];\n this.faculties = [];\n this.schools = [];\n console.log('Reference data cleared.');\n }\n\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { ClientContext } from './client.context';\nimport { Unit } from '../models/unit';\nimport {\n Report,\n ReportUnProcessedResponse,\n AutoAuthenticationFailureResponse,\n ReportFlaggedFramePercentage,\n UserFilterModel,\n ConfirmedBreachesModel,\n ConfirmedBreachesResponse,\n StudentTestMinutesResponse,\n UnitFilterModel,\n AuditTrailModel,\n AuditTrailResponse,\n ReportFlaggedFrameResponse,\n SessionReviewedFrameResponse,\n SessionsReviewedPercentage\n} from '../models/report';\nimport { StudyPeriod } from '../models/study-period';\nimport { User } from '../models/user';\nimport { Course } from '../models/course';\n\n@Injectable()\nexport class ReportsService {\n\n readonly reportsEndpoint = '/api/reports/';\n\n constructor(\n private http: HttpClient,\n private clientContext: ClientContext) { }\n\n getUnits(schoolIds: any[]): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}/units/${schoolIds}`);\n }\n\n getCourses(schoolIds: any[]): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}/courses/${schoolIds}`);\n }\n\n getUnitsByCourseIds(courseIds: any[]): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}/unitsbycourseIds/${courseIds}`);\n }\n\n getReportUnProcessed(report: Report): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}report-unProcessed`, report);\n }\n\n getAutoAuthenticationFailure(report: Report): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}auto-authentication-failure`, report);\n }\n\n getFlaggedFramePercentage(report: ReportFlaggedFramePercentage): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}flagged-frame-percentage`, report);\n }\n\n getAllAssessments(): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.get(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}all-assessments`);\n }\n\n getConfirmedBreaches(report: ConfirmedBreachesModel): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}confirmed-breaches`, report);\n }\n\n getAuditTrail(report: AuditTrailModel): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}audit-trail`, report);\n }\n\n getStudentTestMinutes(report: Report): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}student-test-minutes`, report);\n }\n\n getStudyPeriods(): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.get(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}study-period`);\n }\n\n getUsers(report: Report): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}users`, report);\n }\n\n getFilteredUsers(userFilterModel: UserFilterModel): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}filtered-users`, userFilterModel);\n }\n\n getFilteredUnits(unitFilterModel: UnitFilterModel): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}filtered-units-assessments`, unitFilterModel);\n }\n\n getFlaggedFrames(report: Report): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}flagged-frame`, report);\n }\n\n getSessionsReviewed(report: SessionsReviewedPercentage): Observable {\n // tslint:disable-next-line: max-line-length\n return this.http.post(`${this.clientContext.clientServerUrl}${this.reportsEndpoint}sessions-reviewed`, report);\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { ClientContext } from './client.context';\n\nimport { Assessment } from '../models/assessment';\nimport { Session } from '../models/session';\n\nimport 'rxjs/Rx';\n\n@Injectable()\nexport class SchoolService {\n\n readonly schoolsEndpoint = '/api/schools/';\n\n\tconstructor(\n private http: HttpClient,\n private clientContext: ClientContext) { }\n\n getCourses(schoolId: number): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.schoolsEndpoint}${schoolId}/courses`);\n }\n\n getUnits(schoolId: number, courseId: number): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.schoolsEndpoint}${schoolId}/courses/${courseId}/units`);\n }\n\n getUsersBySchoolId(schoolId): Observable{\n return this.http.get(`${this.clientContext.clientServerUrl}${this.schoolsEndpoint}${schoolId}/users`);\n }\n\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { ClientContext } from './client.context';\nimport {\n SearchResponseFaculty,\n SearchResponseSchool,\n SearchResponseUnit,\n SearchResponseStudyPeriod,\n SearchResponseUsers,\n SearchResponseStudent,\n SearchResponseSession\n} from '../models/search-response';\nimport { SearchRequest } from '../models/search-request';\n\n@Injectable()\nexport class SearchService {\n\n readonly searchEndpoint = '/api/search/';\n\n constructor(\n private http: HttpClient,\n private clientContext: ClientContext\n ) {\n\n }\n\n searchFaculties(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}faculties`, request);\n }\n\n searchSchools(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}schools`, request);\n }\n \n searchUnits(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}units`, request);\n }\n \n searchStudyPeriods(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}studyPeriods`, request);\n }\n \n searchUsers(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}users`, request);\n }\n \n searchStudents(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}students`, request);\n }\n \n searchSessions(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}sessions`, request);\n }\n\n searchAssessments(request: SearchRequest): Observable {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.searchEndpoint}exams`, request);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { RequestOptions, URLSearchParams } from '@angular/http';\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs/Observable';\nimport { environment } from '../../environments/environment';\n\nimport { ClientContext } from './client.context';\nimport { ConfigService } from './config.service';\n\nimport { Config } from '../models/config';\n\n@Injectable()\nexport class SettingsService {\n\n readonly settingsEndpoint = '/api/settings';\n\n\tconstructor(\n private http: HttpClient, \n private clientContext: ClientContext,\n private configService: ConfigService) { }\n \n getSettings() {\n return this.http.get(this.clientContext.clientServerUrl + this.settingsEndpoint);\n }\n\n updateSettings(settings: any) {\n return Observable.create(observer => {\n let onFailure = (err) => {\n observer.error(err);\n }\n\n this.http.post(this.clientContext.clientServerUrl + this.settingsEndpoint, settings)\n .subscribe((settings: any) => {\n \n // refresh app wide config\n this.configService.loadConfig()\n .then((value: Config) => {\n observer.next(settings);\n observer.complete();\n }).catch(onFailure);\n\n }, onFailure);\n });\n }\n\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs/Observable';\nimport { ClientContext } from './client.context';\nimport { StatsRequest } from '../models/statistics';\n\n@Injectable()\nexport class StatisticsService {\n\n readonly statisticsEndpoint = '/api/stats/';\n\n constructor(\n private http: HttpClient,\n private clientContext: ClientContext\n ) {}\n\n processingSequences(request: StatsRequest): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.statisticsEndpoint}processing?from=${request.from}`);\n }\n\n processedSequences(request: StatsRequest): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.statisticsEndpoint}processed?from=${request.from}&to=${request.to}`);\n }\n\n activeExams(): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.statisticsEndpoint}active-exams`);\n }\n\n activeSessions(): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.statisticsEndpoint}active-sessions`);\n }\n\n lockedSequences(request: StatsRequest): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.statisticsEndpoint}locked-sequences?from=${request.from}&to=${request.to}`);\n }\n\n processedChart(request: StatsRequest): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.statisticsEndpoint}processed-chart?from=${request.from}&to=${request.to}`);\n }\n}\n","import { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\nimport { Observable } from 'rxjs/Observable'\n\nimport { ClientContext } from './client.context'\n\nimport { Unit } from '../models/unit'\n\n//import * as moment from 'moment';\n\n@Injectable()\nexport class UnitService {\n readonly unitsEndpoint = '/api/unitsummaries/'\n readonly schoolsEndpoint = '/api/schools/'\n readonly assessmentsEndpoint = '/api/assessments/'\n\n constructor(private http: HttpClient, private clientContext: ClientContext) {}\n\n getUnits(\n courseName?: string,\n unitName?: string,\n facultyIds?: number[],\n schoolIds?: number[],\n assessmentRange?: string,\n dateFrom?: Date,\n ): Observable {\n const request = {\n courseName: courseName,\n unitName: unitName,\n facultyIds: facultyIds,\n schoolIds: schoolIds,\n assessmentRange: assessmentRange,\n dateFrom: dateFrom,\n }\n return this.http.post(\n this.clientContext.clientServerUrl + this.unitsEndpoint,\n request,\n )\n }\n\n getUnit(unitId: number): Observable {\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.unitsEndpoint}${unitId}`,\n )\n }\n\n getAssessmentByUnitId(\n unitId: number,\n fromDate?: Date,\n toDate?: Date,\n ): Observable {\n let fromDateFormatted = !!fromDate ? fromDate.toISOString() : 'null'\n let toDateFormatted = !!toDate ? toDate.toISOString() : 'null'\n return this.http.get(\n `${this.clientContext.clientServerUrl}${this.unitsEndpoint}${unitId}/examinations/${fromDateFormatted}/${toDateFormatted}`,\n )\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { ClientContext } from './client.context';\n\nimport { User } from '../models/user';\n\n@Injectable()\nexport class UserManagementService {\n\n readonly userEndpoint = '/api/users/';\n\n constructor(\n private http: HttpClient,\n private clientContext: ClientContext) { }\n\n\n getUsers(): Observable {\n return this.http.get(this.clientContext.clientServerUrl + this.userEndpoint);\n }\n\n getUser(userId): Observable {\n return this.http.get(`${this.clientContext.clientServerUrl}${this.userEndpoint}${userId}`);\n }\n\n createUser(userData) {\n return this.http.post(`${this.clientContext.clientServerUrl}${this.userEndpoint}`, userData);\n }\n\n updateUser(userData) {\n return this.http.put(`${this.clientContext.clientServerUrl}${this.userEndpoint}${userData.userId}`, userData);\n }\n\n updateSchoolUserRoles(roleData) {\n return this.http.put(`${this.clientContext.clientServerUrl}${this.userEndpoint}schooluserroles/${roleData.userId}`, roleData);\n }\n\n deleteUser(userId) {\n return this.http.delete(`${this.clientContext.clientServerUrl}${this.userEndpoint}${userId}`);\n }\n\n}\n\n","import { Directive, OnInit, AfterViewInit, AfterContentChecked } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport 'rxjs/add/operator/filter';\n\nimport { AccordionLinkDirective } from './accordionlink.directive';\n\n@Directive({\n selector: '[appAccordion]',\n})\nexport class AccordionDirective implements AfterContentChecked {\n\n protected navlinks: Array = [];\n\n closeOtherLinks(selectedLink: AccordionLinkDirective): void {\n this.navlinks.forEach((link: AccordionLinkDirective) => {\n if (link !== selectedLink) {\n link.selected = false;\n }\n });\n }\n\n addLink(link: AccordionLinkDirective): void {\n this.navlinks.push(link);\n }\n\n removeGroup(link: AccordionLinkDirective): void {\n const index = this.navlinks.indexOf(link);\n if (index !== -1) {\n this.navlinks.splice(index, 1);\n }\n }\n\n checkOpenLinks() {\n this.navlinks.forEach((link: AccordionLinkDirective) => {\n if (link.group) {\n const routeUrl = this.router.url;\n const currentUrl = routeUrl.split('/');\n if (currentUrl.indexOf( link.group ) > 0) {\n link.selected = true;\n this.closeOtherLinks(link);\n }\n }\n });\n }\n\n ngAfterContentChecked(): void {\n this.router.events.filter(event => event instanceof NavigationEnd).subscribe(e => this.checkOpenLinks());\n }\n\n constructor( private router: Router) {\n setTimeout(() => this.checkOpenLinks());\n }\n}\n","import { Directive, HostListener, Inject } from '@angular/core';\n\nimport { AccordionLinkDirective } from './accordionlink.directive';\n\n@Directive({\n selector: '[appAccordionToggle]'\n})\nexport class AccordionAnchorDirective {\n\n protected navlink: AccordionLinkDirective;\n\n constructor( @Inject(AccordionLinkDirective) navlink: AccordionLinkDirective) {\n this.navlink = navlink;\n }\n\n @HostListener('click', ['$event'])\n onClick(e: any) {\n this.navlink.toggle();\n }\n}\n","import {\n Directive, HostBinding, Inject, Input, OnInit, OnDestroy\n} from '@angular/core';\n\nimport { AccordionDirective } from './accordion.directive';\n\n@Directive({\n selector: '[appAccordionLink]'\n})\nexport class AccordionLinkDirective implements OnInit, OnDestroy {\n\n @Input() public group: any;\n\n @HostBinding('class.selected')\n @Input()\n get selected(): boolean {\n return this._selected; \n }\n\n set selected(value: boolean) {\n this._selected = value;\n if (value) {\n this.nav.closeOtherLinks(this);\n }\n }\n\n protected _selected: boolean;\n protected nav: AccordionDirective;\n\n constructor(@Inject(AccordionDirective) nav: AccordionDirective) {\n this.nav = nav;\n }\n\n ngOnInit(): any {\n this.nav.addLink(this);\n \n }\n\n ngOnDestroy(): any {\n this.nav.removeGroup(this);\n }\n\n toggle(): any {\n this.selected = !this.selected;\n }\n}\n","
\n

{{ data.title }}

\n \n {{ data.content }}\n \n \n \n \n \n
\n","import { Component, OnInit, Inject } from '@angular/core'\nimport { MAT_DIALOG_DATA } from '@angular/material'\nimport { MatDialogRef } from '@angular/material'\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.css'],\n})\nexport class ConfirmDialogComponent implements OnInit {\n confirmLabel = 'Delete'\n confirmColor = 'warn'\n\n constructor(\n public thisDialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n ) {\n this.confirmLabel = data.confirmLabel\n ? data.confirmLabel\n : this.confirmLabel\n this.confirmColor = data.confirmColor\n ? data.confirmColor\n : this.confirmColor\n }\n\n ngOnInit() {}\n\n onCloseConfirm() {\n this.thisDialogRef.close('Confirm')\n }\n\n onCloseCancel() {\n this.thisDialogRef.close('Cancel')\n }\n}\n","import { Injectable } from '@angular/core'\n\nimport { AccountContext } from '../../services/account.context'\n\nexport interface BadgeItem {\n type: string\n value: string\n}\nexport interface Saperator {\n name: string\n type?: string\n}\nexport interface ChildrenItems {\n state: string\n name: string\n type?: string\n}\n\nexport interface Menu {\n state: string\n name: string\n type: string\n icon: string\n badge?: BadgeItem[]\n saperator?: Saperator[]\n children?: ChildrenItems[]\n}\n\n@Injectable()\nexport class MenuItems {\n getMenuitem(): Menu[] {\n let menuItems: Menu[] = []\n\n menuItems.push({\n state: 'units',\n name: 'Units & Assessments',\n type: 'link',\n icon: 'assessment',\n children: [],\n })\n\n menuItems.push({\n state: 'search',\n name: 'Search',\n type: 'link',\n icon: 'search',\n children: [],\n })\n\n if (this.accountContext.canManageUsers()) {\n menuItems.push({\n state: 'user-management',\n name: 'User Management',\n type: 'link',\n icon: 'people',\n children: [],\n })\n }\n\n if (this.accountContext.canManageFaculties()) {\n menuItems.push({\n state: 'faculty-management',\n name: 'Faculty Management',\n type: 'link',\n icon: 'business',\n children: [],\n })\n }\n\n if (this.accountContext.isAdministrator()) {\n menuItems.push({\n state: 'reporting',\n name: 'Reporting',\n type: 'link',\n icon: 'assignment',\n children: [],\n })\n }\n\n if (this.accountContext.canManageSettings()) {\n menuItems.push({\n state: 'app-settings',\n name: 'Application Settings',\n type: 'link',\n icon: 'settings',\n children: [],\n })\n }\n\n menuItems.push({\n state: 'profile',\n name: `Profile (${\n !!this.accountContext.loggedInUser\n ? this.accountContext.loggedInUser.username\n : ''\n })`,\n type: 'link',\n icon: 'account_circle',\n children: [],\n })\n\n if (this.accountContext.isAdministrator()) {\n menuItems.push({\n state: 'statistics',\n name: 'Statistics',\n type: 'link',\n icon: 'info',\n children: [],\n })\n }\n\n return menuItems\n }\n\n constructor(private accountContext: AccountContext) {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common'; \nimport { MatIconModule, MatIconRegistry, MAT_DATE_LOCALE } from '@angular/material';\n\nimport { DemoMaterialModule} from '../demo-material-module';\nimport { MenuItems } from './menu-items/menu-items';\nimport { AccordionAnchorDirective, AccordionLinkDirective, AccordionDirective } from './accordion';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { RouteSpinnerComponent } from './spinners/route-spinner.component';\nimport { RequestLoaderComponent } from './spinners/request-spinner.component';\nimport { ExportComponent } from './export/export.component';\nimport { NgxMatDateFormats, NgxMatDatetimePickerModule, NgxMatNativeDateModule, NgxMatTimepickerModule, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\nimport { NgxMatMomentModule } from '@angular-material-components/moment-adapter';\n\nconst CUSTOM_MOMENT_FORMATS: NgxMatDateFormats = {\n parse: {\n dateInput: \"l, LT\"\n },\n display: {\n dateInput: \"l, LT\",\n monthYearLabel: \"MMM YYYY\",\n dateA11yLabel: \"LL\",\n monthYearA11yLabel: \"MMMM YYYY\"\n }\n};\n\n@NgModule({\n declarations: [\n AccordionAnchorDirective,\n AccordionLinkDirective,\n AccordionDirective,\n ConfirmDialogComponent,\n RouteSpinnerComponent,\n RequestLoaderComponent,\n ExportComponent,\n ],\n imports: [\n DemoMaterialModule,\n CommonModule,\n MatIconModule, \n NgxMatDatetimePickerModule,\n NgxMatMomentModule,\n ],\n exports: [\n AccordionAnchorDirective,\n AccordionLinkDirective,\n AccordionDirective,\n ConfirmDialogComponent,\n RouteSpinnerComponent,\n RequestLoaderComponent,\n ExportComponent,\n NgxMatDatetimePickerModule,\n NgxMatMomentModule,\n ],\n entryComponents: [ \n ConfirmDialogComponent \n ],\n providers: [ \n MenuItems,\n MatIconRegistry, \n { provide: MAT_DATE_LOCALE, useValue: \"en-AU\" },\n { provide: NGX_MAT_DATE_FORMATS, useValue: CUSTOM_MOMENT_FORMATS }\n ]\n})\nexport class SharedModule {\n constructor(\n public matIconRegistry: MatIconRegistry) {\n matIconRegistry.registerFontClassAlias('fontawesome', 'fa');\n }\n }\n","
\n
\n
\n
\n
\n
","import {Component, Input, OnDestroy, Inject, ViewEncapsulation} from '@angular/core';\nimport {Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError} from '@angular/router';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: 'app-route-spinner',\n template: `
\n
\n
\n
\n
\n
`,\n encapsulation: ViewEncapsulation.None\n})\nexport class RouteSpinnerComponent implements OnDestroy {\n public isSpinnerVisible = true;\n \n @Input() public backgroundColor = 'rgba(0, 115, 170, 0.69)';\n \n constructor(private router: Router, @Inject(DOCUMENT) private document: Document) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.isSpinnerVisible = true;\n } else if ( event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {\n this.isSpinnerVisible = false;\n }\n }, () => {\n this.isSpinnerVisible = false;\n });\n }\n\n ngOnDestroy(): void {\n this.isSpinnerVisible = false;\n }\n}\n","export const environment = {\n production: false,\n environmentName: 'Test',\n hubServerUrl: 'https://iris-test-hub-internal.curtin.edu.au',\n clientServerProtocol: 'https',\n clientServerDomain: 'curtin.edu.au',\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport 'hammerjs';\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule) \n .catch(err => console.log(err));\n"],"sourceRoot":""}