{"version":3,"sources":["webpack:///./src/services/http-service.ts","webpack:///./src/services/settings-service.ts","webpack:///./images/csv.jpg","webpack:///./environments/environment-release.ts","webpack:///./src/services/filter-service.ts","webpack:///./src/paths.ts","webpack:///./images/EducationDirectory.png","webpack:///./src/services/data-services/staff-data-service.ts","webpack:///./src/app.ts","webpack:///./src/app.html","webpack:///./src/components/back-to-top/back-to-top.ts","webpack:///./src/components/back-to-top/back-to-top.html","webpack:///./src/components/banner/banner.ts","webpack:///./src/components/banner/banner.html","webpack:///./src/components/index.ts","webpack:///./src/components/resizable-panel/resizable-panel.ts","webpack:///./src/components/school-filter/school-filter.ts","webpack:///./src/components/school-filter/school-filter.html","webpack:///./src/main.ts","webpack:///./src/pages/api-down/api-down.ts","webpack:///./src/pages/api-down/api-down.html","webpack:///./src/pages/downloads/downloads.ts","webpack:///./src/pages/downloads/downloads.html","webpack:///./src/pages/offices/office-details/office-details.ts","webpack:///./src/pages/offices/office-details/office-details.html","webpack:///./src/pages/offices/office-list/office-list.ts","webpack:///./src/pages/offices/office-list/office-list.html","webpack:///./src/pages/offices/offices.ts","webpack:///./src/pages/offices/offices.html","webpack:///./src/pages/schools/school-details/school-details.ts","webpack:///./src/pages/schools/school-details/school-details.html","webpack:///./src/pages/schools/school-list/school-list.ts","webpack:///./src/pages/schools/school-list/school-list.html","webpack:///./src/pages/schools/schools.ts","webpack:///./src/pages/schools/schools.html","webpack:///./src/pages/staff/staff.ts","webpack:///./src/pages/staff/staff.html","webpack:///./src/value-converters/address-value-converter.ts","webpack:///./src/value-converters/index.ts"],"names":["http","configure","config","withBaseUrl","EnvironmentVars","baseUrl","withDefaults","credentials","credentialsPolicy","headers","get","url","params","this","appendSlash","output","buildParams","json","console","error","indexOf","post","data","fetch","method","body","result","status","Error","statusText","contentType","downloadFile","param","window","location","obj","s","add","k","v","length","encodeURIComponent","prefix","i","len","key","Array","isArray","String","name","value","join","HttpService","autoinject","HttpClient","settings","apiUrl","ApplicationSettings","inject","module","exports","initFilter","isEmpty","schoolFilter","electorate","decsRegion","schoolName","schoolType","isGovernment","clear","clearCallBack","doSearch","filterCallBack","FilterService","singleton","getSchoolImagePath","getSchoolPath","getAllSchoolsPath","Paths","searchStaff","staffFilter","StaffDataService","appSettings","router","filter","buildVersion","currentRouteName","currentInstruction","Date","getFullYear","configureRouter","title","routeConfig","route","redirect","moduleId","nav","isInternalUser","push","map","mapUnknownRoutes","isAppOffline","assign","App","element","iconClass","onScrollChange","$","children","first","pageYOffset","MinimumWindowScroll","css","show","hide","BackToTop","attached","addEventListener","ScrollEventName","detached","removeEventListener","click","animate","scrollTop","bindable","Element","classShowMenu","bannerImageUrl","toggleMenu","Banner","aurelia","globalResources","addClass","resizable","handleSelector","resizeHeight","ResizablePanelCustomAttribute","filterService","hideDropdowns","hasAnyFilter","types","filterDropdowns","electorates","regions","clearFilter","toggleDropdowns","SchoolFilter","start","container","registerInstance","use","standardConfiguration","feature","plugin","options","apiKey","googleMapsApiKey","apiLibraries","panControl","panControlOptions","position","region","markerCluster","enable","src","imagePath","imageExtension","setRoot","navigator","userAgent","ApiDown","activate","downloadOfficeDetails","downloadSchoolList","downloadPublicSchoolList","Downloads","office","itSchoolCode","loadOfficeDetails","navModel","setTitle","type","isDivision","internalUser","isValidEmail","email","EmailValidator","validate","scrollToTopOfOfficeDisplay","document","documentElement","offset","top","fullName","row","lastName","firstName","sort","property","$event","ths","staffTable","querySelectorAll","btn","target","resetBtnSortIndicator","classList","contains","remove","th","item","dataset","btnToIgnore","btns","staffSortButtons","OfficeDetails","offices","forEach","concat","goToOffice","navigateToRoute","OfficeList","Router","Offices","httpService","school","mapMarkers","search","additionalRoleClasses","ICTC","Librarian","loadSchoolData","initialStaffs","schoolStaff","scrollToTopOfSchoolDisplay","imageUrl","encodeURI","latitude","lat","longitude","long","faftSchool","preSchool","primarySchool","middleSchool","seniorSchool","clearSearch","observable","computedFrom","SchoolDetails","bindingSignaler","alphabet","groupedSchools","hasResults","schoolList","groupSchools","signal","filteredSchools","getSchoolsForView","letter","toLowerCase","scrollToTopOfList","scrollTo","scrollToLetter","elm","j","hasSchools","schools","schoolDetails","SchoolList","BindingSignaler","Schools","staffDataService","bindingEngine","staffList","pageSize","currentPage","sortKey","sortOrder","subscriptions","loadStaff","StaffTableController","bind","propertyObserver","subscribe","newValue","oldValue","targetEl","resetTableSortClasses","DESC","ASC","currentTh","pop","dispose","sortBtn","Staff","BindingEngine","toView","parts","description","trim","state","postCode","AddressValueConverter"],"mappings":"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","file":"assets/app.3b45b37940cf43166521.js","sourcesContent":["\nimport { HttpClient, json } from \"aurelia-fetch-client\";\nimport { autoinject } from \"aurelia-framework\";\nimport { EnvironmentVars } from 'environment';\nimport * as param from 'jquery-param'\n\n@autoinject()\nexport class HttpService{\n constructor(\n public http:HttpClient\n ){\n http.configure(config => {\n config\n .withBaseUrl(EnvironmentVars.baseUrl)\n .withDefaults({\n credentials: EnvironmentVars.credentialsPolicy,\n headers: {\n 'Accept' : 'application/json',\n 'X-Requested-With': 'Fetch'\n }\n });\n });\n }\n\n async get(url:string,params:any = null):Promise{\n \n url = this.appendSlash(url);\n\n var output:T = null;\n\n if (params!=null){\n var url = url + \"?\" + this.buildParams(params)\n }\n\n try{\n var result = await this.http.get(url);\n output = await result.json(); \n }\n catch(e){\n console.error(e);\n }\n\n return output;\n }\n\n private appendSlash(url:string):string{\n if (url.indexOf(\"/\")!=0)\n {\n return \"/\" +url;\n }\n return url;\n }\n\n async post(url:string,data:any):Promise{\n \n url = this.appendSlash(url);\n\n var result = await this.http.fetch(url, {\n method: \"post\",\n body: json(data)\n });\n if (result.status!=200){\n throw new Error(result.statusText);\n }\n const contentType = result.headers.get(\"content-type\");\n if (contentType && contentType.indexOf(\"application/json\") !== -1)\n return await result.json();\n return \n }\n\n downloadFile(url:string, params:any = null){\n if (params!=null){\n var url = url + \"?\" + param(params);\n }\n (window).location = EnvironmentVars.baseUrl + url;\n }\n\n private buildParams(obj:any):string {\n var s:any = [];\n var add = function (k:any, v:any) {\n v = typeof v === 'function' ? v() : v;\n v = v === null ? '' : v === undefined ? '' : v;\n s[s.length] = encodeURIComponent(k) + '=' + encodeURIComponent(v);\n };\n var buildParams = function (prefix:any, obj:any) {\n var i, len, key;\n if (!obj)\n return;\n \n if (prefix) {\n if (Array.isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n buildParams(\n prefix + '[' + (typeof obj[i] === 'object' && obj[i] ? i : i) + ']',\n obj[i]\n );\n }\n } else if (String(obj) === '[object Object]') {\n for (key in obj) {\n buildParams(prefix + '[' + key + ']', obj[key]);\n }\n } else {\n add(prefix, obj);\n }\n } else if (Array.isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n add(obj[i].name, obj[i].value);\n }\n } else {\n for (key in obj) {\n buildParams(key, obj[key]);\n }\n }\n return s;\n };\n\n return buildParams('', obj).join('&');\n }\n}","import { ISettings } from \"../../typings/project\";\nimport { inject, autoinject } from \"aurelia-framework\";\nimport { HttpClient } from \"aurelia-fetch-client\";\nimport { EnvironmentVars } from 'environment';\n\n\n@inject('appSettings')\nexport class ApplicationSettings{\n apiUrl:string;\n\n constructor(public readonly settings: ISettings){\n this.apiUrl = EnvironmentVars.baseUrl;\n } \n}","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAiACMDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6l8SeJtF060voZdd061vooHKxyXUaurbcr8pP07VRh1vw88aZ+IEJdgOBe2vX/vmvGPiy8+m+I/Feu2mo6TbTQ6rbxCC9tIpRc5toiFy6kgdc4x1zXFaN4ok8SxeKRrS6Rp8qWjGz0u20pFZGBUlxKFyoAB6tyWrgnjOWXK0eZPH8k+S2p9YyQKjFG8Qankdtsf8A8brltP8AFdxousvZ+INThurG5upIoLgsgktmVyoSUDHynAIbHfmtq11C5MNvm7k+aUq372LoA3+z7Cub+JMgk8B6zKzK0jW84LfuyeN2D8oz2HNd6PTR6gGGBiiodOBOn2xJP+qX+QooA8T+IPw9vdQ8S69q+o+EtN13T5ZluoHk1Z7d4wsCIw2qhzynrXLXnw1vGleXTPDmn6ZcyxPZqT4hLpGuDncpiywGDjJ64r6G8TOkfh7U5JGCotpKWYnAA2HJNceni/wsrRFfF2j7UmeTjU4Bw27GM/WuaWEhJ3f6HHLA05O7/T/I2LZrSHTY7u8vmijiuGGUxIM4b+6vHGTXNePLm1uvA3iK2gmmdreymmDMF2urFhkEfWnax4l8P3uj/YoPGPhtGMrsxn1GM8EEcbf941y/iTVdGtvCOuoPFfhm6afTHt0itr4NIxzkYHc5rpOw9z03/kHW3/XJf5Cik03/AJB1t/1yX+QooAklVShBAIPBBHWqA0nSsf8AINsv+/C/4UUUAH9k6V/0DLL/AL8L/hR/ZOlf9A2y/wC/C/4UUUAXlAAAAwB2ooooA//Z\"","let EnvironmentVars = {\n baseUrl:'/api',\n credentialsPolicy:'same-origin'\n}\nexport { EnvironmentVars }","import { ISchoolFilter } from \"../app\";\nimport { singleton } from \"aurelia-framework\";\n\n@singleton()\nexport class FilterService {\n schoolFilter: ISchoolFilter;\n filterCallBack:Function;\n clearCallBack:Function;\n\n constructor() {\n this.initFilter();\n }\n\n get hasAnyFilter():boolean{\n return !(\n this.isEmpty(this.schoolFilter.electorate) &&\n this.isEmpty(this.schoolFilter.decsRegion) &&\n this.isEmpty(this.schoolFilter.schoolName) &&\n this.isEmpty(this.schoolFilter.schoolType) &&\n this.schoolFilter.isGovernment ==null\n )\n }\n\n private initFilter(){\n this.schoolFilter = {\n isGovernment:null\n };\n }\n\n clear(){\n \n this.initFilter();\n if (this.clearCallBack!=null){\n this.clearCallBack();\n }\n }\n \n private isEmpty(value:any):boolean{\n return (value == null || value.length === 0);\n } \n\n doSearch(){\n if (this.filterCallBack!=null)\n this.filterCallBack();\n }\n}","export class Paths {\n static readonly getSchoolImagePath = \"/System/GetSchoolImage?param=\";\n static readonly getSchoolPath = \"/System/GetSchool\";\n static readonly getAllSchoolsPath = \"/System/GetAllSchools\";\n}","module.exports = \"data:image/png;base64,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\"","import { IStaffFilter, IStaffSearchResponseDto } from './../../../typings/project';\nimport { HttpService } from './../http-service';\nimport { autoinject } from 'aurelia-framework';\n\n@autoinject()\nexport class StaffDataService {\n\n constructor(\n private readonly http: HttpService\n ) { }\n \n\n async searchStaff(staffFilter: IStaffFilter): Promise {\n return await this.http.post('/Staff/SearchStaff', staffFilter);\n }\n}","import { HttpService } from './services/http-service';\n\nimport { RouterConfiguration, Router, RouteConfig, NavModel, NavigationInstruction, Next } from 'aurelia-router';\nimport { inject, PLATFORM, autoinject, Disposable, computedFrom } from 'aurelia-framework';\nimport { ApplicationSettings } from './services/settings-service';\n\n\nexport interface ISchoolFilter {\n schoolName: string;\n schoolType: string;\n decsRegion: string;\n electorate: string;\n isGovernment: boolean;\n}\n\n@autoinject\nexport class App {\n\n buildVersion: string;\n router: Router = {};\n\n filter: ISchoolFilter = { schoolName: null, schoolType: null, decsRegion: null, electorate: null, isGovernment: null };\n\n\n constructor(\n private readonly appSettings: ApplicationSettings\n ) {\n this.buildVersion = appSettings.settings.buildVersion;\n }\n\n get hideHeaderAndFooter(): boolean {\n return this.currentRouteName == \"apiDown\";\n }\n\n get currentRouteName(): string | undefined {\n if (this.router == null || this.router.currentInstruction == null || this.router.currentInstruction.config == null)\n return '';\n return this.router.currentInstruction.config.name;\n }\n\n get currentYear(): number {\n var dt = new Date();\n return dt.getFullYear();\n }\n\n\n configureRouter(config: RouterConfiguration, router: Router): void {\n\n this.router = router;\n config.title = 'DoE';\n var routeConfig: RouteConfig[] = [\n {\n route: '',\n redirect: 'schools'\n },\n {\n route: 'schools',\n name: 'schools',\n moduleId: PLATFORM.moduleName('pages/schools/schools'),\n title: 'Schools',\n nav: true\n },\n {\n route: 'offices',\n name: 'offices',\n moduleId: PLATFORM.moduleName('pages/offices/offices'),\n title: 'Offices',\n nav: false\n },\n {\n route: 'downloads',\n name: 'downloads',\n moduleId: PLATFORM.moduleName('pages/downloads/downloads'),\n title: 'Downloads',\n nav: false\n },\n {\n route: 'apiDown',\n name: 'apiDown',\n moduleId: PLATFORM.moduleName('pages/api-down/api-down'),\n title: 'Application is Offline',\n nav: false\n }\n ];\n\n if (this.appSettings.settings.isInternalUser) {\n routeConfig.push({\n route: 'staff',\n name: 'staff',\n moduleId: PLATFORM.moduleName('pages/staff/staff'),\n title: 'Staff',\n nav: false\n })\n }\n\n config.map(routeConfig);\n\n config.mapUnknownRoutes({ route: 'unknown', redirect: '#/' }); //https://stackoverflow.com/questions/33280224/redirect-within-mapunknownroutes-in-aurelia\n\n //bellow its absolute shit, we should be able to use route.navigateTo, but it does not work from here, \n //and I dont know another event that runs after router configuration (activate runs before?!?!?!) \n if (this.appSettings.settings.isAppOffline) {\n location.assign('#/apiDown');\n }\n\n }\n}\n","module.exports = \"\";","import { autoinject, bindable } from 'aurelia-framework';\nimport 'jquery';\n\n@autoinject()\nexport class BackToTop {\n\n public static ScrollEventName = 'scroll';\n public static MinimumWindowScroll = 50;\n\n @bindable iconClass = 'icon-up-big';\n\n constructor(private element: Element) { }\n\n attached() {\n window.addEventListener(BackToTop.ScrollEventName, this.onScrollChange);\n }\n\n detached() {\n window.removeEventListener(BackToTop.ScrollEventName, this.onScrollChange);\n }\n\n click() {\n $('body,html').animate({ scrollTop: 0 }, 500);\n }\n\n private onScrollChange = () => {\n const element = $(this.element).children().first();\n\n //css check so it doesn't keep calling show\n if (window.pageYOffset >= BackToTop.MinimumWindowScroll && element.css('display') === 'none') {\n element.show();\n } else if(window.pageYOffset <= BackToTop.MinimumWindowScroll && element.css('display') === 'block') {\n element.hide();\n }\n }\n}","module.exports = \"\";","import { ApplicationSettings } from \"../../services/settings-service\";\nimport { autoinject } from \"aurelia-framework\";\n\n@autoinject()\nexport class Banner {\n bannerImageUrl: string;\n\n classShowMenu:string = \"\";\n \n constructor(private readonly appSettings:ApplicationSettings){\n this.bannerImageUrl = appSettings.apiUrl + \"/System/GetBannerImage\";\n }\n\n toggleMenu(){\n if (this.classShowMenu)\n {\n this.classShowMenu = \"\";\n }\n else{\n this.classShowMenu = \"show\";\n }\n }\n\n isInternalUser() {\n return this.appSettings.settings.isInternalUser;\n }\n}","module.exports = \"\";","import { FrameworkConfiguration } from 'aurelia-framework';\nimport { PLATFORM } from 'aurelia-framework'; \n\n\nexport function configure(aurelia: FrameworkConfiguration) {\n aurelia.globalResources([\n PLATFORM.moduleName(\"./banner/banner\"),\n PLATFORM.moduleName(\"./resizable-panel/resizable-panel\"),\n PLATFORM.moduleName(\"./school-filter/school-filter\"),\n PLATFORM.moduleName(\"./back-to-top/back-to-top\"),\n \n ]);\n}\n","//import \"./resizable-panel.scss\";\nimport \"jquery-resizable-dom\";\nimport { autoinject } from \"aurelia-framework\";\n\n@autoinject\nexport class ResizablePanelCustomAttribute {\n \n constructor(private readonly element:Element){\n $(()=>{\n $(element)\n .addClass(\"resizeable\")\n .resizable({\n handleSelector: \".splitter\",\n resizeHeight: false\n });\n \n });\n }\n}\n","import { ISchoolFilter } from \"../../app\";\nimport { bindable, computedFrom, autoinject } from \"aurelia-framework\";\nimport { ApplicationSettings } from \"../../services/settings-service\";\n\nimport { FilterService } from \"../../services/filter-service\";\n\n@autoinject\nexport class SchoolFilter {\n\n \n /* Shows/Hides filter fields */\n hideDropdowns: boolean = true;\n\n /* Drop downs */\n types: string[];\n electorates: string[];\n regions: string[];\n\n constructor(\n private readonly appSettings: ApplicationSettings,\n private readonly filterService: FilterService,\n ) {\n if(filterService.hasAnyFilter)\n {\n this.hideDropdowns = false;\n }\n \n }\n\n attached() {\n this.types = this.appSettings.settings.filterDropdowns.types;\n this.electorates = this.appSettings.settings.filterDropdowns.electorates;\n this.regions = this.appSettings.settings.filterDropdowns.regions;\n }\n\n clearFilter(){\n this.filterService.clear();\n }\n\n doSearch(){\n this.filterService.doSearch();\n }\n\n\n toggleDropdowns() {\n this.hideDropdowns = !this.hideDropdowns;\n }\n}","module.exports = \"\";","import {\n Aurelia,\n PLATFORM,\n FrameworkConfiguration,\n InlineViewStrategy\n} from 'aurelia-framework';\n\nimport {Configure} from 'aurelia-google-maps'\n\nimport {HttpClient, json} from 'aurelia-fetch-client';\n\nimport * as Fuse from 'fuse.js';\n\nimport 'polyfill-array-includes';\nimport 'whatwg-fetch';\n\nimport { HttpService } from \"./services/http-service\";\n\n\n\nimport { ISettings } from '../typings/project';\n\nimport \"../styles/app.scss\";\n\n\nexport async function configure(aurelia: Aurelia): Promise {\n\n if(navigator.userAgent.indexOf('MSIE')!==-1){\n //do not start if IE < 11\n return;\n }\n\n var http = new HttpService(new HttpClient());\n \n\n try{\n var settings = await http.get(\"/System/Settings\"); //this should be loaded via API\n // var settings:ISettings = { buildVersion:'0.1',environment:'Dev',isAppOffline:false,isInternalUser:true }; \n start(settings);\n }\n catch(err){\n //app is offline\n var dt: ISettings = {\n isAppOffline:true\n }\n await start(dt);\n }\n\n async function start(data:ISettings):Promise{\n\n aurelia.container.registerInstance(\"appSettings\", data);\n aurelia.use.standardConfiguration()\n \n .feature(PLATFORM.moduleName('components/index'))\n .feature(PLATFORM.moduleName('value-converters/index'))\n .plugin(PLATFORM.moduleName('au-table'))\n \n //FIXME image resources below should be hosted as per https://www.npmjs.com/package/aurelia-google-maps#configuring-for-use\n .plugin(PLATFORM.moduleName('aurelia-google-maps'), (config: any) => {\n config.options({\n apiKey: data.googleMapsApiKey, \n apiLibraries: 'drawing,geometry', \n options: { panControl: true, panControlOptions: { position: 9 } },\n region: 'AU',\n markerCluster: {\n enable: false,\n src: 'https://cdn.rawgit.com/googlemaps/v3-utility-library/99a385c1/markerclusterer/src/markerclusterer.js', \n imagePath: 'https://cdn.rawgit.com/googlemaps/v3-utility-library/tree/master/markerclusterer/images/m', \n imageExtension: 'png',\n }\n });\n })\n \n ;\n\n if (process.env.NODE_ENV !== 'production') {\n aurelia.use.developmentLogging();\n }\n\n \n try{\n await aurelia.start();\n await aurelia.setRoot(PLATFORM.moduleName('app'));\n }\n catch(error){\n console.error(error);\n }\n }\n}\n","export class ApiDown{\n constructor(){\n\n };\n}","module.exports = \"\";","import { HttpService } from \"../../services/http-service\";\nimport { ApplicationSettings } from \"../../services/settings-service\";\nimport { autoinject } from \"aurelia-framework\";\n\n@autoinject()\nexport class Downloads\n{\n \n isInternalUser :boolean;\n\n constructor(private readonly http: HttpService,\n private readonly appSettings: ApplicationSettings)\n {\n\n }\n\n activate = async () =>\n {\n this.isInternalUser = this.appSettings.settings.isInternalUser;\n }\n\n\n downloadOfficeDetails = async () => \n {\n await this.http.downloadFile(\"/Office/GetOfficeListAsCsv\");\n }\n\n downloadSchoolList = async () => \n {\n await this.http.downloadFile(\"/System/GetSchoolListAsCsv\");\n }\n\n downloadPublicSchoolList = async () => \n {\n await this.http.downloadFile(\"/System/GetPublicSchoolListAsCsv\");\n }\n\n}","module.exports = \"\";","import { RouteConfig } from \"aurelia-router\";\nimport { IOfficeDto, IStaffDto } from \"../../../../typings/project\";\nimport { HttpService } from \"../../../services/http-service\";\nimport { autoinject } from \"aurelia-framework\";\nimport { ApplicationSettings } from \"../../../services/settings-service\";\nimport * as EmailValidator from 'email-validator';\n\n@autoinject()\nexport class OfficeDetails {\n\n constructor(private readonly http: HttpService,\n private readonly appSettings: ApplicationSettings) {\n }\n\n office: IOfficeDto = {};\n itSchoolCode: string;\n type: string;\n internalUser: boolean;\n\n staffTable: HTMLTableElement;\n staffSortButtons: HTMLDivElement;\n\n activate = async (params: any, routeConfig: RouteConfig) => {\n this.itSchoolCode = params.itSchoolCode;\n await this.loadOfficeDetails();\n routeConfig.navModel.setTitle(this.office.name);\n }\n\n attached() {\n this.scrollToTopOfOfficeDisplay();\n }\n\n loadOfficeDetails = async () => {\n this.office = await this.http.get('/Office/GetOfficeDetails', { param: this.itSchoolCode });\n this.type = this.office.isDivision ? 'Division' : 'Branch';\n this.internalUser = this.appSettings.settings.isInternalUser;\n }\n\n isValidEmail = (email: string) => {\n return email && EmailValidator.validate(email);\n }\n\n scrollToTopOfOfficeDisplay() {\n $([document.documentElement, document.body]).animate({\n scrollTop: $(\"main\").offset().top\n }, 1000);\n }\n\n fullName(row: IStaffDto) {\n return `${row.lastName}, ${row.firstName}`;\n }\n\n sort(property: string, $event: Event) {\n var ths = this.staffTable.querySelectorAll('th');\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n var btn = $event.target as HTMLElement;\n this.resetBtnSortIndicator(btn);\n\n if (btn.classList.contains(ascClass)) {\n btn.classList.remove(ascClass);\n btn.classList.add(descClass);\n } else if (btn.classList.contains(descClass)) {\n btn.classList.remove(descClass);\n } else {\n btn.classList.add(ascClass);\n }\n\n for (var i = 0; i < ths.length; i++) {\n var th = ths.item(i);\n if (th.dataset.sort == 'fullName' && property == 'fullName') {\n th.click();\n } else if (th.dataset.sort == 'primaryRole' && property == 'primaryRole') {\n th.click();\n } else if (th.dataset.sort == 'phone' && property == 'phone') {\n th.click();\n }\n }\n }\n\n resetBtnSortIndicator(btnToIgnore: HTMLElement) {\n var btns = this.staffSortButtons.children;\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n for (var i = 0; i < btns.length; i++) {\n var btn = btns.item(i);\n\n if (btn == btnToIgnore) {\n continue;\n }\n btn.classList.remove(descClass);\n btn.classList.remove(ascClass);\n }\n }\n}","module.exports = \"\";","import { autoinject } from \"aurelia-framework\";\nimport { HttpService } from \"../../../services/http-service\";\nimport { IDivisionForListDto, IBranchForListDto } from \"../../../../typings/project\";\nimport { Router } from \"aurelia-router\";\nimport * as EmailValidator from 'email-validator';\n\n@autoinject()\nexport class OfficeList\n{\n offices: IBranchForListDto[] = [];\n \n constructor(private readonly http: HttpService,\n private readonly router: Router)\n {\n\n }\n \n activate = async () =>\n {\n const branches: IDivisionForListDto[] = await this.http.get(\"/Office/GetOfficeList\");\n\n branches.forEach(element => {\n this.offices.push(element);\n this.offices = this.offices.concat(element.offices);\n });\n }\n \n goToOffice = (office: IBranchForListDto) => \n {\n this.router.navigateToRoute(\"office-details\", {itSchoolCode: office.itSchoolCode});\n }\n\n isValidEmail = (email: string) =>\n {\n return email && EmailValidator.validate(email);\n }\n\n}","module.exports = \"\\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\";","\nimport { autoinject, PLATFORM } from \"aurelia-framework\";\nimport { RouterConfiguration, RouteConfig, Router } from \"aurelia-router\";\n\n@autoinject()\nexport class Offices {\n\n router: Router = {};\n \n constructor() {\n \n }\n\n configureRouter(config: RouterConfiguration, router: Router): void {\n\n this.router = router;\n \n config.map((([\n {\n route: '',\n name: 'office-list',\n moduleId: PLATFORM.moduleName('./office-list/office-list'),\n title: 'List',\n nav: false\n },\n {\n route: 'details/:itSchoolCode',\n name: 'office-details',\n moduleId: PLATFORM.moduleName('./office-details/office-details'),\n title: 'Office Details',\n nav: false\n },\n ]))\n );\n } \n}","module.exports = \"\";","import { autoinject, computedFrom, observable } from \"aurelia-framework\";\nimport { Router, RouteConfig } from \"aurelia-router\";\nimport {\n ISchoolDto,\n ISchoolInternalDto,\n IStaffDto\n} from \"../../../../typings/project\";\nimport { Marker } from \"aurelia-google-maps\";\nimport { HttpService } from \"../../../services/http-service\";\nimport { ApplicationSettings } from \"../../../services/settings-service\";\nimport { Paths } from \"../../../paths\";\nimport * as EmailValidator from \"email-validator\";\n\n@autoinject()\nexport class SchoolDetails {\n itSchoolCode: string;\n school: ISchoolDto = {};\n\n imageUrl: string;\n mapMarkers: Marker[] = [];\n internalUser: boolean;\n @observable search: string = null;\n initialStaffs: IStaffDto[];\n\n additionalRoleClasses: Record = {\n \"SAMS Admin\": \"sd-sams-admin\",\n ICTC: \"sd-ictc\",\n \"Finance Officer\": \"sd-finance-officer\",\n Librarian: \"sd-librarian\"\n };\n\n staffTable: HTMLTableElement;\n staffSortButtons: HTMLDivElement;\n\n constructor(\n private readonly router: Router,\n private readonly httpService: HttpService,\n private readonly appSettings: ApplicationSettings\n ) { }\n\n activate = async (params: any, routeConfig: RouteConfig) => {\n this.itSchoolCode = params.itSchoolCode;\n await this.loadSchoolData();\n routeConfig.navModel.setTitle(this.school.name);\n this.initialStaffs = (this.school as ISchoolInternalDto).schoolStaff;\n };\n\n async attached() {\n this.scrollToTopOfSchoolDisplay();\n\n this.internalUser = this.appSettings.settings.isInternalUser;\n this.imageUrl =\n this.appSettings.apiUrl +\n Paths.getSchoolImagePath +\n encodeURI(this.itSchoolCode);\n\n this.mapMarkers.push({\n latitude: this.school.lat,\n longitude: this.school.long,\n title: this.school.name\n });\n\n }\n\n async loadSchoolData() {\n if (this.appSettings.settings.isInternalUser) {\n this.school = await this.httpService.get(Paths.getSchoolPath, {\n itSchoolCode: this.itSchoolCode\n });\n } else {\n this.school = await this.httpService.get(Paths.getSchoolPath, {\n itSchoolCode: this.itSchoolCode\n });\n }\n }\n\n @computedFrom(\n \"school.preSchool\",\n \"school.primarySchool\",\n \"school.middleSchool\",\n \"school.seniorSchool\",\n \"school.faftSchool\"\n )\n get schoolType(): string {\n let types: string[] = [];\n if (this.school.faftSchool) types.push(\"FAFT School\");\n if (this.school.preSchool) types.push(\"Preschool\");\n if (this.school.primarySchool) types.push(\"Primary School\");\n if (this.school.middleSchool) types.push(\"Middle School\");\n if (this.school.seniorSchool) types.push(\"Senior School\");\n return types ? types.join(\", \") : \"\";\n }\n\n doSearch() {\n this.router.navigateToRoute(\"school-list\");\n }\n\n isValidEmail = (email: string) => {\n return email && EmailValidator.validate(email);\n };\n\n scrollToTopOfSchoolDisplay() {\n $([document.documentElement, document.body]).animate(\n {\n scrollTop: $(\"main\").offset().top\n },\n 1000\n );\n }\n\n clearSearch() {\n //this will trigger SearchChanged\n this.search = null;\n }\n\n fullName(row: IStaffDto) {\n return `${row.lastName}, ${row.firstName}`;\n }\n\n\n sort(property: string, $event: Event) {\n var ths = this.staffTable.querySelectorAll('th');\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n var btn = $event.target as HTMLElement;\n this.resetBtnSortIndicator(btn);\n\n if (btn.classList.contains(ascClass)) {\n btn.classList.remove(ascClass);\n btn.classList.add(descClass);\n } else if (btn.classList.contains(descClass)) {\n btn.classList.remove(descClass);\n } else {\n btn.classList.add(ascClass);\n }\n\n for (var i = 0; i < ths.length; i++) {\n var th = ths.item(i);\n if (th.dataset.sort == 'fullName' && property == 'fullName') {\n th.click();\n } else if (th.dataset.sort == 'primaryRole' && property == 'primaryRole') {\n th.click();\n } else if (th.dataset.sort == 'phone' && property == 'phone') {\n th.click();\n }\n }\n }\n\n resetBtnSortIndicator(btnToIgnore: HTMLElement) {\n var btns = this.staffSortButtons.children;\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n for (var i = 0; i < btns.length; i++) {\n var btn = btns.item(i);\n\n if (btn == btnToIgnore) {\n continue;\n }\n btn.classList.remove(descClass);\n btn.classList.remove(ascClass);\n }\n }\n}\n","module.exports = \"\";","import { autoinject, computedFrom } from \"aurelia-framework\";\nimport { ISchoolsForListDto } from \"../../../../typings/project\";\nimport { Router } from \"aurelia-router\";\nimport { StringFormatValueConverter } from \"../../../value-converters/string-format-value-converter\";\nimport { FilterService } from \"../../../services/filter-service\";\nimport { HttpService } from \"../../../services/http-service\";\nimport { Paths } from \"../../../paths\";\n\nimport { BindingSignaler } from 'aurelia-templating-resources';\n\n@autoinject()\nexport class SchoolList {\n\n\n schoolList: ISchoolsForListDto[];\n alphabet: string[] = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];\n groupedSchools: any = [];\n hasResults: boolean = true;\n\n constructor(\n private readonly router: Router,\n private readonly filterService: FilterService,\n private readonly httpService: HttpService,\n private readonly bindingSignaler: BindingSignaler\n ) {\n\n (window)[\"SchoolList\"] = this;\n }\n\n\n\n\n async attached() {\n this.schoolList = await this.httpService.get(Paths.getAllSchoolsPath);\n\n this.groupSchools();\n this.bindingSignaler.signal(\"reloadList\");\n\n this.filterService.filterCallBack = () => {\n this.doSearch();\n }\n\n this.filterService.clearCallBack = () => {\n this.groupSchools();\n this.bindingSignaler.signal(\"reloadList\");\n this.hasResults = this.filteredSchools && this.filteredSchools.length > 0;\n }\n }\n\n getSchoolsForView(letter: string) {\n return this.groupedSchools[letter];\n }\n\n get filteredSchools(): ISchoolsForListDto[] {\n var output = this.schoolList;\n if (this.filterService.schoolFilter.schoolName) {\n output = output.filter(i => i.schoolName.toLowerCase().indexOf(this.filterService.schoolFilter.schoolName.toLowerCase()) > -1)\n }\n if (this.filterService.schoolFilter.isGovernment != null) {\n output = output.filter(i => i.isGovernment == this.filterService.schoolFilter.isGovernment);\n }\n\n if (this.filterService.schoolFilter.schoolType) {\n output = output.filter(i => i.schoolType == this.filterService.schoolFilter.schoolType);\n }\n\n if (this.filterService.schoolFilter.electorate) {\n output = output.filter(i => i.electorate == this.filterService.schoolFilter.electorate);\n }\n\n if (this.filterService.schoolFilter.decsRegion) {\n output = output.filter(i => i.decsRegion == this.filterService.schoolFilter.decsRegion);\n }\n\n return output;\n }\n\n scrollToTopOfList() {\n this.scrollTo($(\"#search-panel-container\"));\n }\n\n scrollToLetter(letter: string) {\n let elm = $(\"#letter-\" + letter);\n this.scrollTo($(\"#letter-\" + letter));\n }\n\n private scrollTo(elm: JQuery) {\n if (elm.length > 0) {\n $([document.documentElement, document.body]).animate({\n scrollTop: elm.offset().top\n }, 1000);\n }\n }\n\n \n doSearch() {\n this.groupSchools();\n this.bindingSignaler.signal(\"reloadList\");\n if (this.filteredSchools && this.filteredSchools.length > 0) {\n this.scrollToTopOfList();\n this.hasResults = true;\n }\n else {\n this.hasResults = false;\n }\n }\n\n\n groupSchools() {\n this.alphabet.forEach(letter => {\n this.groupedSchools[letter] = this.filteredSchools.filter(j => j.schoolName.indexOf(letter) == 0);\n });\n }\n\n hasSchools(letter: string) {\n var schools = this.groupedSchools[letter];\n return schools && schools.length > 0;\n }\n\n\n schoolDetails(school: ISchoolsForListDto) {\n this.router.navigateToRoute(\"details\", { itSchoolCode: school.itSchoolCode });\n }\n}\n\n\n\n\n","module.exports = \"\";","\nimport { autoinject, PLATFORM } from \"aurelia-framework\";\nimport { RouterConfiguration, RouteConfig, Router } from \"aurelia-router\";\n\n@autoinject()\nexport class Schools {\n\n router: Router = {};\n \n constructor() {\n \n }\n\n configureRouter(config: RouterConfiguration, router: Router): void {\n\n this.router = router;\n \n config.map((([\n {\n route: '',\n name: 'school-list',\n moduleId: PLATFORM.moduleName('./school-list/school-list'),\n title: 'List',\n nav: false\n },\n {\n route: 'details/:itSchoolCode',\n name: 'details',\n moduleId: PLATFORM.moduleName('./school-details/school-details'),\n title: 'School Details',\n nav: false\n },\n ]))\n );\n } \n}","module.exports = \"\";","import { ApplicationSettings } from './../../services/settings-service';\nimport { IStaffFilter, IStaffSearchResponseDto, IStaffForListDto } from './../../../typings/project';\nimport { StaffDataService } from './../../services/data-services/staff-data-service';\nimport { autoinject, BindingEngine, Disposable } from 'aurelia-framework';\n\n@autoinject()\nexport class Staff {\n\n staffList: IStaffSearchResponseDto = {} as IStaffSearchResponseDto;\n\n staffFilter: IStaffFilter = {\n search: '',\n pageSize: 20,\n currentPage: 1,\n sortKey: '',\n sortOrder: ''\n };\n\n staffTable: HTMLTableElement;\n staffSortButtons: HTMLDivElement;\n\n additionalRoleClasses: Record = {\n \"SAMS Admin\": \"sd-sams-admin\",\n ICTC: \"sd-ictc\",\n \"Finance Officer\": \"sd-finance-officer\",\n Librarian: \"sd-librarian\"\n };\n\n subscriptions: Disposable[] = [];\n\n constructor(\n private staffDataService: StaffDataService,\n private appSettings: ApplicationSettings,\n private bindingEngine: BindingEngine\n ) {\n (window).StaffTableController = this;\n }\n\n bind() {\n this.loadStaff();\n\n this.subscriptions.push(this.bindingEngine.propertyObserver(this.staffFilter, 'search').subscribe(async (newValue, oldValue) => {\n if (oldValue == newValue) return;\n\n await this.loadStaff();\n }));\n\n this.subscriptions.push(this.bindingEngine.propertyObserver(this.staffFilter, 'pageSize').subscribe(async (newValue, oldValue) => {\n if (oldValue == newValue) return;\n\n await this.loadStaff();\n }));\n\n this.subscriptions.push(this.bindingEngine.propertyObserver(this.staffFilter, 'currentPage').subscribe(async (newValue, oldValue) => {\n if (oldValue == newValue) return;\n\n await this.loadStaff();\n }));\n\n this.subscriptions.push(this.bindingEngine.propertyObserver(this.staffFilter, 'sortKey').subscribe(async (newValue, oldValue) => {\n if (oldValue == newValue) return;\n\n await this.loadStaff();\n }));\n\n this.subscriptions.push(this.bindingEngine.propertyObserver(this.staffFilter, 'sortOrder').subscribe(async (newValue, oldValue) => {\n if (oldValue == newValue) return;\n\n await this.loadStaff();\n }));\n }\n\n loadStaff = async () => {\n if (!this.isInternalUser()) return;\n\n this.staffList = await this.staffDataService.searchStaff(this.staffFilter);\n }\n\n clearSearch() {\n this.staffFilter.search = \"\";\n }\n\n isInternalUser() {\n return this.appSettings.settings.isInternalUser;\n }\n\n sort($event: Event) {\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n enum sortOrder {\n ASC = \"ASC\",\n DESC = \"DESC\"\n };\n\n // debugger;\n var targetEl = $event.target as HTMLElement;\n if (!targetEl) return;\n\n this.resetTableSortClasses(targetEl as HTMLTableHeaderCellElement)\n\n this.staffFilter.sortKey = targetEl.dataset.sort;\n\n if (targetEl.classList.contains(ascClass)) {\n this.staffFilter.sortOrder = sortOrder.DESC;\n targetEl.classList.add(descClass);\n targetEl.classList.remove(ascClass);\n } else if (targetEl.classList.contains(descClass)) {\n this.staffFilter.sortOrder = '';\n targetEl.classList.remove(descClass);\n } else {\n this.staffFilter.sortOrder = sortOrder.ASC;\n targetEl.classList.add(ascClass);\n }\n }\n\n resetTableSortClasses(currentTh: HTMLTableHeaderCellElement) {\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n var ths = (this.staffTable as HTMLElement).querySelectorAll('th');\n for (var i = 0; i < ths.length; i++) {\n var th = ths.item(i);\n if (currentTh.dataset.sort == th.dataset.sort) {\n continue;\n }\n\n th.classList.remove(descClass);\n th.classList.remove(ascClass);\n }\n }\n\n\n detached() {\n while (this.subscriptions.length > 0) {\n this.subscriptions.pop().dispose();\n }\n }\n\n\n sortBtn(property: string, $event: Event) {\n var ths = this.staffTable.querySelectorAll('th');\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n var btn = $event.target as HTMLElement;\n this.resetBtnSortIndicator(btn);\n\n if (btn.classList.contains(ascClass)) {\n btn.classList.remove(ascClass);\n btn.classList.add(descClass);\n } else if (btn.classList.contains(descClass)) {\n btn.classList.remove(descClass);\n } else {\n btn.classList.add(ascClass);\n }\n\n for (var i = 0; i < ths.length; i++) {\n var th = ths.item(i);\n if (th.dataset.sort == 'lastName' && property == 'lastName') {\n th.click();\n } else if (th.dataset.sort == 'primaryRole' && property == 'primaryRole') {\n th.click();\n } else if (th.dataset.sort == 'schoolName' && property == 'schoolName') {\n th.click();\n } else if (th.dataset.sort == 'phone' && property == 'phone') {\n th.click();\n }\n else if (th.dataset.sort == 'location' && property == 'location') {\n th.click();\n }\n }\n }\n\n resetBtnSortIndicator(btnToIgnore: HTMLElement) {\n var btns = this.staffSortButtons.children;\n var descClass = 'aut-desc';\n var ascClass = 'aut-asc';\n\n for (var i = 0; i < btns.length; i++) {\n var btn = btns.item(i);\n\n if (btn == btnToIgnore) {\n continue;\n }\n btn.classList.remove(descClass);\n btn.classList.remove(ascClass);\n }\n }\n}","module.exports = \"\";","import { IAddress } from \"../../typings/project\";\n\n\nexport class AddressValueConverter {\n toView(value?:IAddress) {\n \n\n if(value)\n {\n let parts: string[] = []; \n\n if(value.description && value.description.trim() != \"\")\n {\n parts.push(value.description.trim());\n }\n\n if(value.state && value.state.trim() != \"\")\n {\n parts.push(value.state.trim());\n }\n\n if(value.postCode && value.postCode.trim() != \"\")\n {\n parts.push(value.postCode.trim());\n }\n\n return parts.join(\", \");\n\n }\n\n return \"\";\n\n }\n}","import { FrameworkConfiguration } from 'aurelia-framework';\nimport { PLATFORM } from 'aurelia-framework'; \n\n\nexport function configure(aurelia: FrameworkConfiguration) {\n aurelia.globalResources([\n PLATFORM.moduleName(\"./address-value-converter\")\n ]);\n}\n"],"sourceRoot":""}