{"version":3,"file":"js/app.4293e397.js","mappings":"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","sources":["webpack://connexis.portal.web/./src/api/connexis.ts","webpack://connexis.portal.web/./src/api/index.ts","webpack://connexis.portal.web/./src/authConfig.ts","webpack://connexis.portal.web/./src/hooks/useMsal.ts","webpack://connexis.portal.web/./src/hooks/useMsalAuthentication.ts","webpack://connexis.portal.web/./src/hooks/useVuexStore.ts","webpack://connexis.portal.web/./src/App.vue?0057","webpack://connexis.portal.web/./src/hooks/useIsAuthenticated.ts","webpack://connexis.portal.web/./src/App.vue","webpack://connexis.portal.web/./src/App.vue?b26e","webpack://connexis.portal.web/./src/App.vue?55a4","webpack://connexis.portal.web/./src/router/Guard.ts","webpack://connexis.portal.web/./src/router/index.ts","webpack://connexis.portal.web/./src/models/ResultVm.ts","webpack://connexis.portal.web/./src/store/modules/resultsEntered/ResultsEntered.ts","webpack://connexis.portal.web/./src/models/ScopeVm.ts","webpack://connexis.portal.web/./src/store/modules/myScope/MyScope.ts","webpack://connexis.portal.web/./src/store/index.ts","webpack://connexis.portal.web/./src/plugins/vuetify.ts","webpack://connexis.portal.web/./src/plugins/msal.ts","webpack://connexis.portal.web/./src/main.ts","webpack://connexis.portal.web/./src/models/TrainingPlanUnitStandardVm.ts","webpack://connexis.portal.web/./src/store/modules/account/types.ts","webpack://connexis.portal.web/./src/store/modules/account/Account.ts","webpack://connexis.portal.web/./src/store/modules/createResult/types.ts","webpack://connexis.portal.web/./src/store/modules/createResult/CreateResult.ts","webpack://connexis.portal.web/./src/store/modules/enterResults/types.ts","webpack://connexis.portal.web/./src/store/modules/enterResults/EnterResults.ts","webpack://connexis.portal.web/./src/store/modules/myScope/types.ts","webpack://connexis.portal.web/./src/store/modules/myTrainingPlans/types.ts","webpack://connexis.portal.web/./src/models/TrainingPlanVm.ts","webpack://connexis.portal.web/./src/store/modules/myTrainingPlans/MyTrainingPlans.ts","webpack://connexis.portal.web/./src/store/modules/resultsEntered/types.ts","webpack://connexis.portal.web/./src/store/modules/trainee/types.ts","webpack://connexis.portal.web/./src/store/modules/trainee/Trainee.ts","webpack://connexis.portal.web/./src/store/modules/unitStandardVersions/types.ts","webpack://connexis.portal.web/./src/store/modules/unitStandardVersions/UnitStandardVersions.ts","webpack://connexis.portal.web/./src/store/modules/unitStandard/types.ts","webpack://connexis.portal.web/./src/models/UnitStandardVm.ts","webpack://connexis.portal.web/./src/store/modules/unitStandard/UnitStandard.ts","webpack://connexis.portal.web/./src/store/types.ts","webpack://connexis.portal.web/./src/components/Cn-Button.vue?dfe5","webpack://connexis.portal.web/./src/components/Cn-Button.vue","webpack://connexis.portal.web/./src/components/Cn-Button.vue?c3ac","webpack://connexis.portal.web/./src/components/Cn-Button.vue?be18","webpack://connexis.portal.web/./src/components/Cn-DataTable.vue?25d6","webpack://connexis.portal.web/./src/components/Cn-DataTable.vue","webpack://connexis.portal.web/./src/components/Cn-DataTable.vue?32a7","webpack://connexis.portal.web/./src/components/Cn-DataTable.vue?f04b","webpack://connexis.portal.web/./src/components/Cn-DateField.vue?8013","webpack://connexis.portal.web/./src/components/Cn-DatePicker.vue?56f8","webpack://connexis.portal.web/./src/components/Cn-DatePicker.vue","webpack://connexis.portal.web/./src/components/Cn-DatePicker.vue?8e18","webpack://connexis.portal.web/./src/components/Cn-DatePicker.vue?384b","webpack://connexis.portal.web/./src/components/Cn-DateField.vue","webpack://connexis.portal.web/./src/components/Cn-DateField.vue?b505","webpack://connexis.portal.web/./src/components/Cn-DateField.vue?6313","webpack://connexis.portal.web/./src/components/Cn-TextField.vue?b8f5","webpack://connexis.portal.web/./src/components/Cn-TextField.vue","webpack://connexis.portal.web/./src/components/Cn-TextField.vue?3d8a","webpack://connexis.portal.web/./src/components/Cn-TextField.vue?9582","webpack://connexis.portal.web/./src/components/EnterResults/ResultsStep.vue?3b6e","webpack://connexis.portal.web/./src/components/EnterResults/ResultRow.vue?50d2","webpack://connexis.portal.web/./src/components/EnterResults/ResultRow.vue","webpack://connexis.portal.web/./src/components/EnterResults/ResultRow.vue?681e","webpack://connexis.portal.web/./src/components/EnterResults/ResultRow.vue?ade7","webpack://connexis.portal.web/./src/components/EnterResults/ResultsStep.vue","webpack://connexis.portal.web/./src/components/EnterResults/ResultsStep.vue?9295","webpack://connexis.portal.web/./src/components/EnterResults/ResultsStep.vue?afa3","webpack://connexis.portal.web/./src/views/EnterResults.vue?8726","webpack://connexis.portal.web/./src/components/Cn-Search.vue?ec92","webpack://connexis.portal.web/./src/components/Cn-Search.vue","webpack://connexis.portal.web/./src/components/Cn-Search.vue?3f41","webpack://connexis.portal.web/./src/components/Cn-Search.vue?7711","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmTrainingPlanResultsDialog.vue?ee43","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmTrainingPlanResultsDialog.vue","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmTrainingPlanResultsDialog.vue?5aea","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmTrainingPlanResultsDialog.vue?d512","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmCasualCreditResultsDialog.vue?7859","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmCasualCreditResultsDialog.vue","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmCasualCreditResultsDialog.vue?3426","webpack://connexis.portal.web/./src/components/EnterResults/ConfirmCasualCreditResultsDialog.vue?47b5","webpack://connexis.portal.web/./src/components/EnterResults/CreateNewTrainee.vue?a28d","webpack://connexis.portal.web/./src/components/Cn-Select.vue?bae0","webpack://connexis.portal.web/./src/components/Cn-Select.vue","webpack://connexis.portal.web/./src/components/Cn-Select.vue?5656","webpack://connexis.portal.web/./src/components/Cn-Select.vue?4fd3","webpack://connexis.portal.web/./src/components/EnterResults/CreateNewTrainee.vue","webpack://connexis.portal.web/./src/components/EnterResults/CreateNewTrainee.vue?76b0","webpack://connexis.portal.web/./src/components/EnterResults/CreateNewTrainee.vue?f2d2","webpack://connexis.portal.web/./src/views/EnterResults.vue","webpack://connexis.portal.web/./src/views/EnterResults.vue?6a17","webpack://connexis.portal.web/./src/views/EnterResults.vue?3fa8","webpack://connexis.portal.web/webpack/bootstrap","webpack://connexis.portal.web/webpack/runtime/chunk loaded","webpack://connexis.portal.web/webpack/runtime/compat get default export","webpack://connexis.portal.web/webpack/runtime/define property getters","webpack://connexis.portal.web/webpack/runtime/ensure chunk","webpack://connexis.portal.web/webpack/runtime/get javascript chunk filename","webpack://connexis.portal.web/webpack/runtime/get mini-css chunk filename","webpack://connexis.portal.web/webpack/runtime/global","webpack://connexis.portal.web/webpack/runtime/hasOwnProperty shorthand","webpack://connexis.portal.web/webpack/runtime/load script","webpack://connexis.portal.web/webpack/runtime/make namespace object","webpack://connexis.portal.web/webpack/runtime/node module decorator","webpack://connexis.portal.web/webpack/runtime/publicPath","webpack://connexis.portal.web/webpack/runtime/css loading","webpack://connexis.portal.web/webpack/runtime/jsonp chunk loading","webpack://connexis.portal.web/webpack/startup"],"sourcesContent":["/* tslint:disable */\r\n/* eslint-disable */\r\n//----------------------\r\n// \r\n// Generated using the NSwag toolchain v13.15.5.0 (NJsonSchema v10.6.6.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\r\n// \r\n//----------------------\r\n// ReSharper disable InconsistentNaming\r\n\r\nimport axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, CancelToken } from 'axios';\r\n\r\nexport interface IAccountClient {\r\n /**\r\n * @return OK\r\n */\r\n get(debtorNumber: string): Promise;\r\n}\r\n\r\nexport class AccountClient implements IAccountClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * @return OK\r\n */\r\n get(debtorNumber: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Account?\";\r\n if (debtorNumber === undefined || debtorNumber === null)\r\n throw new Error(\"The parameter 'debtorNumber' must be defined and cannot be null.\");\r\n else\r\n url_ += \"DebtorNumber=\" + encodeURIComponent(\"\" + debtorNumber) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ApiResultOfIEnumerableOfAccountDto.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n return throwException(\"NotFound\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IHealthClient {\r\n /**\r\n * @return OK\r\n */\r\n get(): Promise;\r\n}\r\n\r\nexport class HealthClient implements IHealthClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * @return OK\r\n */\r\n get( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Health\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n\r\n return Promise.resolve(result200);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IHelloWorldClient {\r\n /**\r\n * @return OK\r\n */\r\n getAll(): Promise;\r\n /**\r\n * @return No Content\r\n */\r\n post(value: string): Promise;\r\n /**\r\n * @return OK\r\n */\r\n get(id: number): Promise;\r\n /**\r\n * @return No Content\r\n */\r\n put(id: number, value: string): Promise;\r\n /**\r\n * @return No Content\r\n */\r\n delete(id: number): Promise;\r\n}\r\n\r\nexport class HelloWorldClient implements IHelloWorldClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * @return OK\r\n */\r\n getAll( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/HelloWorld\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetAll(_response);\r\n });\r\n }\r\n\r\n protected processGetAll(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(item);\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return Promise.resolve(result200);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * @return No Content\r\n */\r\n post(value: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/HelloWorld\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPost(_response);\r\n });\r\n }\r\n\r\n protected processPost(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * @return OK\r\n */\r\n get(id: number , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/HelloWorld/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n\r\n return Promise.resolve(result200);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * @return No Content\r\n */\r\n put(id: number, value: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/HelloWorld/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPut(_response);\r\n });\r\n }\r\n\r\n protected processPut(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * @return No Content\r\n */\r\n delete(id: number , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/HelloWorld/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processDelete(_response);\r\n });\r\n }\r\n\r\n protected processDelete(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IResultClient {\r\n /**\r\n * Add Result Collection. This is used by Unit Standard.\r\n * @return OK\r\n */\r\n post(requestList: CreateResultRequestDto[]): Promise;\r\n /**\r\n * Search Results.\r\n * @param dateEnteredFrom (optional)\r\n * @param dateEnteredTo (optional)\r\n * @return OK\r\n */\r\n get(dateEnteredFrom?: string | null | undefined, dateEnteredTo?: string | null | undefined): Promise;\r\n /**\r\n * Add Result. This is used by Casual Credit, saving single result\r\n * @return OK\r\n */\r\n post2(request: CreateResultRequestDto): Promise;\r\n}\r\n\r\nexport class ResultClient implements IResultClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * Add Result Collection. This is used by Unit Standard.\r\n * @return OK\r\n */\r\n post(requestList: CreateResultRequestDto[] , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/result/multiple\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(requestList);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPost(_response);\r\n });\r\n }\r\n\r\n protected processPost(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ApiResultOfIListOfCreateResultResponseDto.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Search Results.\r\n * @param dateEnteredFrom (optional)\r\n * @param dateEnteredTo (optional)\r\n * @return OK\r\n */\r\n get(dateEnteredFrom?: string | null | undefined, dateEnteredTo?: string | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Result?\";\r\n if (dateEnteredFrom !== undefined && dateEnteredFrom !== null)\r\n url_ += \"DateEnteredFrom=\" + encodeURIComponent(\"\" + dateEnteredFrom) + \"&\";\r\n if (dateEnteredTo !== undefined && dateEnteredTo !== null)\r\n url_ += \"DateEnteredTo=\" + encodeURIComponent(\"\" + dateEnteredTo) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ApiResultOfIEnumerableOfResultDto.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Add Result. This is used by Casual Credit, saving single result\r\n * @return OK\r\n */\r\n post2(request: CreateResultRequestDto , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Result\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(request);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPost2(_response);\r\n });\r\n }\r\n\r\n protected processPost2(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ApiResultOfCreateResultResponseDto.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IScopeClient {\r\n /**\r\n * Search scopes.\r\n * @param unitStandard (optional)\r\n * @return OK\r\n */\r\n get(unitStandard?: string | null | undefined): Promise;\r\n}\r\n\r\nexport class ScopeClient implements IScopeClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * Search scopes.\r\n * @param unitStandard (optional)\r\n * @return OK\r\n */\r\n get(unitStandard?: string | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Scope?\";\r\n if (unitStandard !== undefined && unitStandard !== null)\r\n url_ += \"UnitStandard=\" + encodeURIComponent(\"\" + unitStandard) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = SearchScopeResultDto.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface ITraineeClient {\r\n /**\r\n * Create new trainee\r\n * @param fName First Name\r\n * @param lName Last Name\r\n * @param dob Date of Birth\r\n * @param gender Gender\r\n * @param proofFile Proof of Identity\r\n * @return OK\r\n */\r\n create(fName: string, lName: string, dob: string, gender: string, proofFile: FileParameter): Promise;\r\n}\r\n\r\nexport class TraineeClient implements ITraineeClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * Create new trainee\r\n * @param fName First Name\r\n * @param lName Last Name\r\n * @param dob Date of Birth\r\n * @param gender Gender\r\n * @param proofFile Proof of Identity\r\n * @return OK\r\n */\r\n create(fName: string, lName: string, dob: string, gender: string, proofFile: FileParameter , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/trainee/create\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = new FormData();\r\n if (fName === null || fName === undefined)\r\n throw new Error(\"The parameter 'fName' cannot be null.\");\r\n else\r\n content_.append(\"fName\", fName.toString());\r\n if (lName === null || lName === undefined)\r\n throw new Error(\"The parameter 'lName' cannot be null.\");\r\n else\r\n content_.append(\"lName\", lName.toString());\r\n if (dob === null || dob === undefined)\r\n throw new Error(\"The parameter 'dob' cannot be null.\");\r\n else\r\n content_.append(\"dob\", dob.toString());\r\n if (gender === null || gender === undefined)\r\n throw new Error(\"The parameter 'gender' cannot be null.\");\r\n else\r\n content_.append(\"gender\", gender.toString());\r\n if (proofFile === null || proofFile === undefined)\r\n throw new Error(\"The parameter 'proofFile' cannot be null.\");\r\n else\r\n content_.append(\"proofFile\", proofFile.data, proofFile.fileName ? proofFile.fileName : \"proofFile\");\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processCreate(_response);\r\n });\r\n }\r\n\r\n protected processCreate(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ApiResultOfContact.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface ITrainingPlanClient {\r\n /**\r\n * Gets a list of all training plans where logged in user is the assessor\r\n * @return OK\r\n */\r\n myTrainingPlans(): Promise;\r\n /**\r\n * Search training plans where {query} is matched against either of Training Plan ID, NSN or Name\r\n * @param query search string\r\n * @param includeEmptyTrainee (optional)\r\n * @return OK\r\n */\r\n searchTrainingPlans(query: string, includeEmptyTrainee?: boolean | null | undefined): Promise;\r\n}\r\n\r\nexport class TrainingPlanClient implements ITrainingPlanClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * Gets a list of all training plans where logged in user is the assessor\r\n * @return OK\r\n */\r\n myTrainingPlans( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/trainingplan/my\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processMyTrainingPlans(_response);\r\n });\r\n }\r\n\r\n protected processMyTrainingPlans(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(TrainingPlanDto.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Search training plans where {query} is matched against either of Training Plan ID, NSN or Name\r\n * @param query search string\r\n * @param includeEmptyTrainee (optional)\r\n * @return OK\r\n */\r\n searchTrainingPlans(query: string, includeEmptyTrainee?: boolean | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/trainingplan/search?\";\r\n if (query === undefined || query === null)\r\n throw new Error(\"The parameter 'query' must be defined and cannot be null.\");\r\n else\r\n url_ += \"query=\" + encodeURIComponent(\"\" + query) + \"&\";\r\n if (includeEmptyTrainee !== undefined && includeEmptyTrainee !== null)\r\n url_ += \"includeEmptyTrainee=\" + encodeURIComponent(\"\" + includeEmptyTrainee) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processSearchTrainingPlans(_response);\r\n });\r\n }\r\n\r\n protected processSearchTrainingPlans(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(TrainingPlanDto.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface ITrainingPlanUnitStandardClient {\r\n /**\r\n * Search training plan unit standards.\r\n * @param trainingPlanId (optional)\r\n * @return OK\r\n */\r\n get(trainingPlanId?: string | null | undefined): Promise;\r\n}\r\n\r\nexport class TrainingPlanUnitStandardClient implements ITrainingPlanUnitStandardClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * Search training plan unit standards.\r\n * @param trainingPlanId (optional)\r\n * @return OK\r\n */\r\n get(trainingPlanId?: string | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/TrainingPlanUnitStandard?\";\r\n if (trainingPlanId !== undefined && trainingPlanId !== null)\r\n url_ += \"TrainingPlanId=\" + encodeURIComponent(\"\" + trainingPlanId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(TrainingPlanUnitStandardDto.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IUnitStandardClient {\r\n /**\r\n * @return OK\r\n */\r\n get(code: number): Promise;\r\n}\r\n\r\nexport class UnitStandardClient implements IUnitStandardClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * @return OK\r\n */\r\n get(code: number , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/UnitStandard?\";\r\n if (code === undefined || code === null)\r\n throw new Error(\"The parameter 'code' must be defined and cannot be null.\");\r\n else\r\n url_ += \"code=\" + encodeURIComponent(\"\" + code) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ApiResultOfUnitStandardDto.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n return throwException(\"NotFound\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IUnitStandardVersionClient {\r\n /**\r\n * @return OK\r\n */\r\n get(code: number): Promise;\r\n}\r\n\r\nexport class UnitStandardVersionClient implements IUnitStandardVersionClient {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n\r\n this.instance = instance ? instance : axios.create();\r\n\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:44326\";\r\n\r\n }\r\n\r\n /**\r\n * @return OK\r\n */\r\n get(code: number , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/UnitStandardVersion?\";\r\n if (code === undefined || code === null)\r\n throw new Error(\"The parameter 'code' must be defined and cannot be null.\");\r\n else\r\n url_ += \"code=\" + encodeURIComponent(\"\" + code) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ApiResultOfUnitStandardVersionsDto.fromJS(resultData200);\r\n return Promise.resolve(result200);\r\n\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n return throwException(\"BadRequest\", status, _responseText, _headers);\r\n\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n return throwException(\"NotFound\", status, _responseText, _headers);\r\n\r\n } else if (status === 500) {\r\n const _responseText = response.data;\r\n return throwException(\"InternalServerError\", status, _responseText, _headers);\r\n\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport class ApiResultOfIEnumerableOfAccountDto implements IApiResultOfIEnumerableOfAccountDto {\r\n result?: AccountDto[] | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IApiResultOfIEnumerableOfAccountDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.result) {\r\n this.result = [];\r\n for (let i = 0; i < data.result.length; i++) {\r\n let item = data.result[i];\r\n this.result[i] = item && !(item).toJSON ? new AccountDto(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data[\"Result\"])) {\r\n this.result = [] as any;\r\n for (let item of _data[\"Result\"])\r\n this.result!.push(AccountDto.fromJS(item));\r\n }\r\n this.message = _data[\"Message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ApiResultOfIEnumerableOfAccountDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ApiResultOfIEnumerableOfAccountDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.result)) {\r\n data[\"Result\"] = [];\r\n for (let item of this.result)\r\n data[\"Result\"].push(item.toJSON());\r\n }\r\n data[\"Message\"] = this.message;\r\n return data;\r\n }\r\n\r\n clone(): ApiResultOfIEnumerableOfAccountDto {\r\n const json = this.toJSON();\r\n let result = new ApiResultOfIEnumerableOfAccountDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IApiResultOfIEnumerableOfAccountDto {\r\n result?: IAccountDto[] | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class AccountDto implements IAccountDto {\r\n accountName?: string | undefined;\r\n debtorNumber?: string | undefined;\r\n\r\n constructor(data?: IAccountDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.accountName = _data[\"AccountName\"];\r\n this.debtorNumber = _data[\"DebtorNumber\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): AccountDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new AccountDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"AccountName\"] = this.accountName;\r\n data[\"DebtorNumber\"] = this.debtorNumber;\r\n return data;\r\n }\r\n\r\n clone(): AccountDto {\r\n const json = this.toJSON();\r\n let result = new AccountDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IAccountDto {\r\n accountName?: string | undefined;\r\n debtorNumber?: string | undefined;\r\n}\r\n\r\nexport class CreateResultRequestDto implements ICreateResultRequestDto {\r\n assessorId?: string | undefined;\r\n traineeId?: string | undefined;\r\n unitStandardId?: string | undefined;\r\n unitStandardCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n isExistingResult?: boolean | undefined;\r\n dateAchieved?: string | undefined;\r\n dateEntered?: string | undefined;\r\n statusCode?: number | undefined;\r\n isRcc?: boolean | undefined;\r\n casualCredit?: boolean | undefined;\r\n debtorCode?: string | undefined;\r\n poNumber?: string | undefined;\r\n\r\n constructor(data?: ICreateResultRequestDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.assessorId = _data[\"AssessorId\"];\r\n this.traineeId = _data[\"TraineeId\"];\r\n this.unitStandardId = _data[\"UnitStandardId\"];\r\n this.unitStandardCode = _data[\"UnitStandardCode\"];\r\n this.unitStandardName = _data[\"UnitStandardName\"];\r\n this.isExistingResult = _data[\"IsExistingResult\"];\r\n this.dateAchieved = _data[\"DateAchieved\"];\r\n this.dateEntered = _data[\"DateEntered\"];\r\n this.statusCode = _data[\"StatusCode\"];\r\n this.isRcc = _data[\"IsRcc\"];\r\n this.casualCredit = _data[\"CasualCredit\"];\r\n this.debtorCode = _data[\"DebtorCode\"];\r\n this.poNumber = _data[\"PoNumber\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): CreateResultRequestDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new CreateResultRequestDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"AssessorId\"] = this.assessorId;\r\n data[\"TraineeId\"] = this.traineeId;\r\n data[\"UnitStandardId\"] = this.unitStandardId;\r\n data[\"UnitStandardCode\"] = this.unitStandardCode;\r\n data[\"UnitStandardName\"] = this.unitStandardName;\r\n data[\"IsExistingResult\"] = this.isExistingResult;\r\n data[\"DateAchieved\"] = this.dateAchieved;\r\n data[\"DateEntered\"] = this.dateEntered;\r\n data[\"StatusCode\"] = this.statusCode;\r\n data[\"IsRcc\"] = this.isRcc;\r\n data[\"CasualCredit\"] = this.casualCredit;\r\n data[\"DebtorCode\"] = this.debtorCode;\r\n data[\"PoNumber\"] = this.poNumber;\r\n return data;\r\n }\r\n\r\n clone(): CreateResultRequestDto {\r\n const json = this.toJSON();\r\n let result = new CreateResultRequestDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface ICreateResultRequestDto {\r\n assessorId?: string | undefined;\r\n traineeId?: string | undefined;\r\n unitStandardId?: string | undefined;\r\n unitStandardCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n isExistingResult?: boolean | undefined;\r\n dateAchieved?: string | undefined;\r\n dateEntered?: string | undefined;\r\n statusCode?: number | undefined;\r\n isRcc?: boolean | undefined;\r\n casualCredit?: boolean | undefined;\r\n debtorCode?: string | undefined;\r\n poNumber?: string | undefined;\r\n}\r\n\r\nexport class ApiResultOfIListOfCreateResultResponseDto implements IApiResultOfIListOfCreateResultResponseDto {\r\n result?: CreateResultResponseDto[] | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IApiResultOfIListOfCreateResultResponseDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.result) {\r\n this.result = [];\r\n for (let i = 0; i < data.result.length; i++) {\r\n let item = data.result[i];\r\n this.result[i] = item && !(item).toJSON ? new CreateResultResponseDto(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data[\"Result\"])) {\r\n this.result = [] as any;\r\n for (let item of _data[\"Result\"])\r\n this.result!.push(CreateResultResponseDto.fromJS(item));\r\n }\r\n this.message = _data[\"Message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ApiResultOfIListOfCreateResultResponseDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ApiResultOfIListOfCreateResultResponseDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.result)) {\r\n data[\"Result\"] = [];\r\n for (let item of this.result)\r\n data[\"Result\"].push(item.toJSON());\r\n }\r\n data[\"Message\"] = this.message;\r\n return data;\r\n }\r\n\r\n clone(): ApiResultOfIListOfCreateResultResponseDto {\r\n const json = this.toJSON();\r\n let result = new ApiResultOfIListOfCreateResultResponseDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IApiResultOfIListOfCreateResultResponseDto {\r\n result?: ICreateResultResponseDto[] | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class CreateResultResponseDto implements ICreateResultResponseDto {\r\n resultId?: string | undefined;\r\n crmSaveErrorMessage?: string | undefined;\r\n crmSaveStatus?: CreateResultResponseDtoCrmSaveStatus | undefined;\r\n assessorId?: string | undefined;\r\n traineeId?: string | undefined;\r\n unitStandardId?: string | undefined;\r\n unitStandardCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n isExistingResult?: boolean | undefined;\r\n dateAchieved?: string | undefined;\r\n dateEntered?: string | undefined;\r\n statusCode?: number | undefined;\r\n isRcc?: boolean | undefined;\r\n casualCredit?: boolean | undefined;\r\n debtorCode?: string | undefined;\r\n poNumber?: string | undefined;\r\n\r\n constructor(data?: ICreateResultResponseDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.resultId = _data[\"ResultId\"];\r\n this.crmSaveErrorMessage = _data[\"CrmSaveErrorMessage\"];\r\n this.crmSaveStatus = _data[\"CrmSaveStatus\"];\r\n this.assessorId = _data[\"AssessorId\"];\r\n this.traineeId = _data[\"TraineeId\"];\r\n this.unitStandardId = _data[\"UnitStandardId\"];\r\n this.unitStandardCode = _data[\"UnitStandardCode\"];\r\n this.unitStandardName = _data[\"UnitStandardName\"];\r\n this.isExistingResult = _data[\"IsExistingResult\"];\r\n this.dateAchieved = _data[\"DateAchieved\"];\r\n this.dateEntered = _data[\"DateEntered\"];\r\n this.statusCode = _data[\"StatusCode\"];\r\n this.isRcc = _data[\"IsRcc\"];\r\n this.casualCredit = _data[\"CasualCredit\"];\r\n this.debtorCode = _data[\"DebtorCode\"];\r\n this.poNumber = _data[\"PoNumber\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): CreateResultResponseDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new CreateResultResponseDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"ResultId\"] = this.resultId;\r\n data[\"CrmSaveErrorMessage\"] = this.crmSaveErrorMessage;\r\n data[\"CrmSaveStatus\"] = this.crmSaveStatus;\r\n data[\"AssessorId\"] = this.assessorId;\r\n data[\"TraineeId\"] = this.traineeId;\r\n data[\"UnitStandardId\"] = this.unitStandardId;\r\n data[\"UnitStandardCode\"] = this.unitStandardCode;\r\n data[\"UnitStandardName\"] = this.unitStandardName;\r\n data[\"IsExistingResult\"] = this.isExistingResult;\r\n data[\"DateAchieved\"] = this.dateAchieved;\r\n data[\"DateEntered\"] = this.dateEntered;\r\n data[\"StatusCode\"] = this.statusCode;\r\n data[\"IsRcc\"] = this.isRcc;\r\n data[\"CasualCredit\"] = this.casualCredit;\r\n data[\"DebtorCode\"] = this.debtorCode;\r\n data[\"PoNumber\"] = this.poNumber;\r\n return data;\r\n }\r\n\r\n clone(): CreateResultResponseDto {\r\n const json = this.toJSON();\r\n let result = new CreateResultResponseDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface ICreateResultResponseDto {\r\n resultId?: string | undefined;\r\n crmSaveErrorMessage?: string | undefined;\r\n crmSaveStatus?: CreateResultResponseDtoCrmSaveStatus | undefined;\r\n assessorId?: string | undefined;\r\n traineeId?: string | undefined;\r\n unitStandardId?: string | undefined;\r\n unitStandardCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n isExistingResult?: boolean | undefined;\r\n dateAchieved?: string | undefined;\r\n dateEntered?: string | undefined;\r\n statusCode?: number | undefined;\r\n isRcc?: boolean | undefined;\r\n casualCredit?: boolean | undefined;\r\n debtorCode?: string | undefined;\r\n poNumber?: string | undefined;\r\n}\r\n\r\nexport class ApiResultOfIEnumerableOfResultDto implements IApiResultOfIEnumerableOfResultDto {\r\n result?: ResultDto[] | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IApiResultOfIEnumerableOfResultDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.result) {\r\n this.result = [];\r\n for (let i = 0; i < data.result.length; i++) {\r\n let item = data.result[i];\r\n this.result[i] = item && !(item).toJSON ? new ResultDto(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data[\"Result\"])) {\r\n this.result = [] as any;\r\n for (let item of _data[\"Result\"])\r\n this.result!.push(ResultDto.fromJS(item));\r\n }\r\n this.message = _data[\"Message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ApiResultOfIEnumerableOfResultDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ApiResultOfIEnumerableOfResultDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.result)) {\r\n data[\"Result\"] = [];\r\n for (let item of this.result)\r\n data[\"Result\"].push(item.toJSON());\r\n }\r\n data[\"Message\"] = this.message;\r\n return data;\r\n }\r\n\r\n clone(): ApiResultOfIEnumerableOfResultDto {\r\n const json = this.toJSON();\r\n let result = new ApiResultOfIEnumerableOfResultDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IApiResultOfIEnumerableOfResultDto {\r\n result?: IResultDto[] | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class ResultDto implements IResultDto {\r\n resultId?: string | undefined;\r\n dateEntered?: string | undefined;\r\n dateAchieved?: string | undefined;\r\n trainingPlanId?: string | undefined;\r\n frameworkElementCode?: string | undefined;\r\n traineeId?: string | undefined;\r\n traineeFirstName?: string | undefined;\r\n traineeLastName?: string | undefined;\r\n traineeNSN?: string | undefined;\r\n\r\n constructor(data?: IResultDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.resultId = _data[\"ResultId\"];\r\n this.dateEntered = _data[\"DateEntered\"];\r\n this.dateAchieved = _data[\"DateAchieved\"];\r\n this.trainingPlanId = _data[\"TrainingPlanId\"];\r\n this.frameworkElementCode = _data[\"FrameworkElementCode\"];\r\n this.traineeId = _data[\"TraineeId\"];\r\n this.traineeFirstName = _data[\"TraineeFirstName\"];\r\n this.traineeLastName = _data[\"TraineeLastName\"];\r\n this.traineeNSN = _data[\"TraineeNSN\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ResultDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ResultDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"ResultId\"] = this.resultId;\r\n data[\"DateEntered\"] = this.dateEntered;\r\n data[\"DateAchieved\"] = this.dateAchieved;\r\n data[\"TrainingPlanId\"] = this.trainingPlanId;\r\n data[\"FrameworkElementCode\"] = this.frameworkElementCode;\r\n data[\"TraineeId\"] = this.traineeId;\r\n data[\"TraineeFirstName\"] = this.traineeFirstName;\r\n data[\"TraineeLastName\"] = this.traineeLastName;\r\n data[\"TraineeNSN\"] = this.traineeNSN;\r\n return data;\r\n }\r\n\r\n clone(): ResultDto {\r\n const json = this.toJSON();\r\n let result = new ResultDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IResultDto {\r\n resultId?: string | undefined;\r\n dateEntered?: string | undefined;\r\n dateAchieved?: string | undefined;\r\n trainingPlanId?: string | undefined;\r\n frameworkElementCode?: string | undefined;\r\n traineeId?: string | undefined;\r\n traineeFirstName?: string | undefined;\r\n traineeLastName?: string | undefined;\r\n traineeNSN?: string | undefined;\r\n}\r\n\r\nexport class ApiResultOfCreateResultResponseDto implements IApiResultOfCreateResultResponseDto {\r\n result?: CreateResultResponseDto | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IApiResultOfCreateResultResponseDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n this.result = data.result && !(data.result).toJSON ? new CreateResultResponseDto(data.result) : this.result;\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.result = _data[\"Result\"] ? CreateResultResponseDto.fromJS(_data[\"Result\"]) : undefined;\r\n this.message = _data[\"Message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ApiResultOfCreateResultResponseDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ApiResultOfCreateResultResponseDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"Result\"] = this.result ? this.result.toJSON() : undefined;\r\n data[\"Message\"] = this.message;\r\n return data;\r\n }\r\n\r\n clone(): ApiResultOfCreateResultResponseDto {\r\n const json = this.toJSON();\r\n let result = new ApiResultOfCreateResultResponseDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IApiResultOfCreateResultResponseDto {\r\n result?: ICreateResultResponseDto | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class SearchScopeResultDto implements ISearchScopeResultDto {\r\n scopes?: ScopeDto[] | undefined;\r\n\r\n constructor(data?: ISearchScopeResultDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.scopes) {\r\n this.scopes = [];\r\n for (let i = 0; i < data.scopes.length; i++) {\r\n let item = data.scopes[i];\r\n this.scopes[i] = item && !(item).toJSON ? new ScopeDto(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data[\"Scopes\"])) {\r\n this.scopes = [] as any;\r\n for (let item of _data[\"Scopes\"])\r\n this.scopes!.push(ScopeDto.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): SearchScopeResultDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new SearchScopeResultDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.scopes)) {\r\n data[\"Scopes\"] = [];\r\n for (let item of this.scopes)\r\n data[\"Scopes\"].push(item.toJSON());\r\n }\r\n return data;\r\n }\r\n\r\n clone(): SearchScopeResultDto {\r\n const json = this.toJSON();\r\n let result = new SearchScopeResultDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface ISearchScopeResultDto {\r\n scopes?: IScopeDto[] | undefined;\r\n}\r\n\r\nexport class ScopeDto implements IScopeDto {\r\n assessorRegistrationId?: string | undefined;\r\n assessmentScopeId?: string | undefined;\r\n supplementaryUnitStandardId?: string | undefined;\r\n name?: string | undefined;\r\n parentFrameworkElements?: ParentFrameworkElement[] | undefined;\r\n\r\n constructor(data?: IScopeDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.parentFrameworkElements) {\r\n this.parentFrameworkElements = [];\r\n for (let i = 0; i < data.parentFrameworkElements.length; i++) {\r\n let item = data.parentFrameworkElements[i];\r\n this.parentFrameworkElements[i] = item && !(item).toJSON ? new ParentFrameworkElement(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.assessorRegistrationId = _data[\"AssessorRegistrationId\"];\r\n this.assessmentScopeId = _data[\"AssessmentScopeId\"];\r\n this.supplementaryUnitStandardId = _data[\"SupplementaryUnitStandardId\"];\r\n this.name = _data[\"Name\"];\r\n if (Array.isArray(_data[\"ParentFrameworkElements\"])) {\r\n this.parentFrameworkElements = [] as any;\r\n for (let item of _data[\"ParentFrameworkElements\"])\r\n this.parentFrameworkElements!.push(ParentFrameworkElement.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ScopeDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ScopeDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"AssessorRegistrationId\"] = this.assessorRegistrationId;\r\n data[\"AssessmentScopeId\"] = this.assessmentScopeId;\r\n data[\"SupplementaryUnitStandardId\"] = this.supplementaryUnitStandardId;\r\n data[\"Name\"] = this.name;\r\n if (Array.isArray(this.parentFrameworkElements)) {\r\n data[\"ParentFrameworkElements\"] = [];\r\n for (let item of this.parentFrameworkElements)\r\n data[\"ParentFrameworkElements\"].push(item.toJSON());\r\n }\r\n return data;\r\n }\r\n\r\n clone(): ScopeDto {\r\n const json = this.toJSON();\r\n let result = new ScopeDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IScopeDto {\r\n assessorRegistrationId?: string | undefined;\r\n assessmentScopeId?: string | undefined;\r\n supplementaryUnitStandardId?: string | undefined;\r\n name?: string | undefined;\r\n parentFrameworkElements?: IParentFrameworkElement[] | undefined;\r\n}\r\n\r\nexport class ParentFrameworkElement implements IParentFrameworkElement {\r\n name?: string | undefined;\r\n unitStandards?: UnitStandard[] | undefined;\r\n\r\n constructor(data?: IParentFrameworkElement) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.unitStandards) {\r\n this.unitStandards = [];\r\n for (let i = 0; i < data.unitStandards.length; i++) {\r\n let item = data.unitStandards[i];\r\n this.unitStandards[i] = item && !(item).toJSON ? new UnitStandard(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.name = _data[\"Name\"];\r\n if (Array.isArray(_data[\"UnitStandards\"])) {\r\n this.unitStandards = [] as any;\r\n for (let item of _data[\"UnitStandards\"])\r\n this.unitStandards!.push(UnitStandard.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ParentFrameworkElement {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ParentFrameworkElement();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"Name\"] = this.name;\r\n if (Array.isArray(this.unitStandards)) {\r\n data[\"UnitStandards\"] = [];\r\n for (let item of this.unitStandards)\r\n data[\"UnitStandards\"].push(item.toJSON());\r\n }\r\n return data;\r\n }\r\n\r\n clone(): ParentFrameworkElement {\r\n const json = this.toJSON();\r\n let result = new ParentFrameworkElement();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IParentFrameworkElement {\r\n name?: string | undefined;\r\n unitStandards?: IUnitStandard[] | undefined;\r\n}\r\n\r\nexport class UnitStandard implements IUnitStandard {\r\n unitStandardId?: string | undefined;\r\n frameworkElementId?: string | undefined;\r\n frameworkElementCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n credits?: number | undefined;\r\n currentVersion?: number | undefined;\r\n versions?: string | undefined;\r\n isLatestVersion?: boolean | undefined;\r\n readonly entityName?: string | undefined;\r\n\r\n constructor(data?: IUnitStandard) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.unitStandardId = _data[\"UnitStandardId\"];\r\n this.frameworkElementId = _data[\"FrameworkElementId\"];\r\n this.frameworkElementCode = _data[\"FrameworkElementCode\"];\r\n this.unitStandardName = _data[\"UnitStandardName\"];\r\n this.credits = _data[\"Credits\"];\r\n this.currentVersion = _data[\"CurrentVersion\"];\r\n this.versions = _data[\"Versions\"];\r\n this.isLatestVersion = _data[\"IsLatestVersion\"];\r\n (this).entityName = _data[\"EntityName\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): UnitStandard {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new UnitStandard();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"UnitStandardId\"] = this.unitStandardId;\r\n data[\"FrameworkElementId\"] = this.frameworkElementId;\r\n data[\"FrameworkElementCode\"] = this.frameworkElementCode;\r\n data[\"UnitStandardName\"] = this.unitStandardName;\r\n data[\"Credits\"] = this.credits;\r\n data[\"CurrentVersion\"] = this.currentVersion;\r\n data[\"Versions\"] = this.versions;\r\n data[\"IsLatestVersion\"] = this.isLatestVersion;\r\n data[\"EntityName\"] = this.entityName;\r\n return data;\r\n }\r\n\r\n clone(): UnitStandard {\r\n const json = this.toJSON();\r\n let result = new UnitStandard();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IUnitStandard {\r\n unitStandardId?: string | undefined;\r\n frameworkElementId?: string | undefined;\r\n frameworkElementCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n credits?: number | undefined;\r\n currentVersion?: number | undefined;\r\n versions?: string | undefined;\r\n isLatestVersion?: boolean | undefined;\r\n entityName?: string | undefined;\r\n}\r\n\r\nexport class ApiResultOfContact implements IApiResultOfContact {\r\n result?: Contact | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IApiResultOfContact) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n this.result = data.result && !(data.result).toJSON ? new Contact(data.result) : this.result;\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.result = _data[\"Result\"] ? Contact.fromJS(_data[\"Result\"]) : undefined;\r\n this.message = _data[\"Message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ApiResultOfContact {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ApiResultOfContact();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"Result\"] = this.result ? this.result.toJSON() : undefined;\r\n data[\"Message\"] = this.message;\r\n return data;\r\n }\r\n\r\n clone(): ApiResultOfContact {\r\n const json = this.toJSON();\r\n let result = new ApiResultOfContact();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IApiResultOfContact {\r\n result?: IContact | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class Contact implements IContact {\r\n id?: string | undefined;\r\n azureId?: string | undefined;\r\n allowPortalAccess?: boolean | undefined;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n email?: string | undefined;\r\n jobTitle?: string | undefined;\r\n nSN?: string | undefined;\r\n dateOfBirth?: string | undefined;\r\n gender?: number | undefined;\r\n isTrainee?: boolean | undefined;\r\n readonly entityName?: string | undefined;\r\n\r\n constructor(data?: IContact) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"Id\"];\r\n this.azureId = _data[\"AzureId\"];\r\n this.allowPortalAccess = _data[\"AllowPortalAccess\"];\r\n this.firstName = _data[\"FirstName\"];\r\n this.lastName = _data[\"LastName\"];\r\n this.email = _data[\"Email\"];\r\n this.jobTitle = _data[\"JobTitle\"];\r\n this.nSN = _data[\"NSN\"];\r\n this.dateOfBirth = _data[\"DateOfBirth\"];\r\n this.gender = _data[\"Gender\"];\r\n this.isTrainee = _data[\"IsTrainee\"];\r\n (this).entityName = _data[\"EntityName\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): Contact {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new Contact();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"Id\"] = this.id;\r\n data[\"AzureId\"] = this.azureId;\r\n data[\"AllowPortalAccess\"] = this.allowPortalAccess;\r\n data[\"FirstName\"] = this.firstName;\r\n data[\"LastName\"] = this.lastName;\r\n data[\"Email\"] = this.email;\r\n data[\"JobTitle\"] = this.jobTitle;\r\n data[\"NSN\"] = this.nSN;\r\n data[\"DateOfBirth\"] = this.dateOfBirth;\r\n data[\"Gender\"] = this.gender;\r\n data[\"IsTrainee\"] = this.isTrainee;\r\n data[\"EntityName\"] = this.entityName;\r\n return data;\r\n }\r\n\r\n clone(): Contact {\r\n const json = this.toJSON();\r\n let result = new Contact();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IContact {\r\n id?: string | undefined;\r\n azureId?: string | undefined;\r\n allowPortalAccess?: boolean | undefined;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n email?: string | undefined;\r\n jobTitle?: string | undefined;\r\n nSN?: string | undefined;\r\n dateOfBirth?: string | undefined;\r\n gender?: number | undefined;\r\n isTrainee?: boolean | undefined;\r\n entityName?: string | undefined;\r\n}\r\n\r\nexport class TrainingPlanDto implements ITrainingPlanDto {\r\n contactId?: string | undefined;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n nSN?: string | undefined;\r\n trainingPlanId?: string | undefined;\r\n programmeName?: string | undefined;\r\n isTtafEligible?: boolean | undefined;\r\n dateOfBirth?: string | undefined;\r\n status?: string | undefined;\r\n\r\n constructor(data?: ITrainingPlanDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.contactId = _data[\"ContactId\"];\r\n this.firstName = _data[\"FirstName\"];\r\n this.lastName = _data[\"LastName\"];\r\n this.nSN = _data[\"NSN\"];\r\n this.trainingPlanId = _data[\"TrainingPlanId\"];\r\n this.programmeName = _data[\"ProgrammeName\"];\r\n this.isTtafEligible = _data[\"IsTtafEligible\"];\r\n this.dateOfBirth = _data[\"DateOfBirth\"];\r\n this.status = _data[\"Status\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): TrainingPlanDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TrainingPlanDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"ContactId\"] = this.contactId;\r\n data[\"FirstName\"] = this.firstName;\r\n data[\"LastName\"] = this.lastName;\r\n data[\"NSN\"] = this.nSN;\r\n data[\"TrainingPlanId\"] = this.trainingPlanId;\r\n data[\"ProgrammeName\"] = this.programmeName;\r\n data[\"IsTtafEligible\"] = this.isTtafEligible;\r\n data[\"DateOfBirth\"] = this.dateOfBirth;\r\n data[\"Status\"] = this.status;\r\n return data;\r\n }\r\n\r\n clone(): TrainingPlanDto {\r\n const json = this.toJSON();\r\n let result = new TrainingPlanDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface ITrainingPlanDto {\r\n contactId?: string | undefined;\r\n firstName?: string | undefined;\r\n lastName?: string | undefined;\r\n nSN?: string | undefined;\r\n trainingPlanId?: string | undefined;\r\n programmeName?: string | undefined;\r\n isTtafEligible?: boolean | undefined;\r\n dateOfBirth?: string | undefined;\r\n status?: string | undefined;\r\n}\r\n\r\nexport class TrainingPlanUnitStandardDto implements ITrainingPlanUnitStandardDto {\r\n trainingPlanId?: string | undefined;\r\n trainingPlanUnitStandards?: TrainingPlanUnitStandard[] | undefined;\r\n\r\n constructor(data?: ITrainingPlanUnitStandardDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.trainingPlanUnitStandards) {\r\n this.trainingPlanUnitStandards = [];\r\n for (let i = 0; i < data.trainingPlanUnitStandards.length; i++) {\r\n let item = data.trainingPlanUnitStandards[i];\r\n this.trainingPlanUnitStandards[i] = item && !(item).toJSON ? new TrainingPlanUnitStandard(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.trainingPlanId = _data[\"TrainingPlanId\"];\r\n if (Array.isArray(_data[\"TrainingPlanUnitStandards\"])) {\r\n this.trainingPlanUnitStandards = [] as any;\r\n for (let item of _data[\"TrainingPlanUnitStandards\"])\r\n this.trainingPlanUnitStandards!.push(TrainingPlanUnitStandard.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): TrainingPlanUnitStandardDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TrainingPlanUnitStandardDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"TrainingPlanId\"] = this.trainingPlanId;\r\n if (Array.isArray(this.trainingPlanUnitStandards)) {\r\n data[\"TrainingPlanUnitStandards\"] = [];\r\n for (let item of this.trainingPlanUnitStandards)\r\n data[\"TrainingPlanUnitStandards\"].push(item.toJSON());\r\n }\r\n return data;\r\n }\r\n\r\n clone(): TrainingPlanUnitStandardDto {\r\n const json = this.toJSON();\r\n let result = new TrainingPlanUnitStandardDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface ITrainingPlanUnitStandardDto {\r\n trainingPlanId?: string | undefined;\r\n trainingPlanUnitStandards?: ITrainingPlanUnitStandard[] | undefined;\r\n}\r\n\r\nexport class TrainingPlanUnitStandard implements ITrainingPlanUnitStandard {\r\n unitStandardId?: string | undefined;\r\n unitStandardCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n resultId?: string | undefined;\r\n dateAchieved?: string | undefined;\r\n isRcc?: boolean | undefined;\r\n readonly isExistingResult?: boolean | undefined;\r\n readonly entityName?: string | undefined;\r\n\r\n constructor(data?: ITrainingPlanUnitStandard) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.unitStandardId = _data[\"UnitStandardId\"];\r\n this.unitStandardCode = _data[\"UnitStandardCode\"];\r\n this.unitStandardName = _data[\"UnitStandardName\"];\r\n this.resultId = _data[\"ResultId\"];\r\n this.dateAchieved = _data[\"DateAchieved\"];\r\n this.isRcc = _data[\"IsRcc\"];\r\n (this).isExistingResult = _data[\"IsExistingResult\"];\r\n (this).entityName = _data[\"EntityName\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): TrainingPlanUnitStandard {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TrainingPlanUnitStandard();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"UnitStandardId\"] = this.unitStandardId;\r\n data[\"UnitStandardCode\"] = this.unitStandardCode;\r\n data[\"UnitStandardName\"] = this.unitStandardName;\r\n data[\"ResultId\"] = this.resultId;\r\n data[\"DateAchieved\"] = this.dateAchieved;\r\n data[\"IsRcc\"] = this.isRcc;\r\n data[\"IsExistingResult\"] = this.isExistingResult;\r\n data[\"EntityName\"] = this.entityName;\r\n return data;\r\n }\r\n\r\n clone(): TrainingPlanUnitStandard {\r\n const json = this.toJSON();\r\n let result = new TrainingPlanUnitStandard();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface ITrainingPlanUnitStandard {\r\n unitStandardId?: string | undefined;\r\n unitStandardCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n resultId?: string | undefined;\r\n dateAchieved?: string | undefined;\r\n isRcc?: boolean | undefined;\r\n isExistingResult?: boolean | undefined;\r\n entityName?: string | undefined;\r\n}\r\n\r\nexport class ApiResultOfUnitStandardDto implements IApiResultOfUnitStandardDto {\r\n result?: UnitStandardDto | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IApiResultOfUnitStandardDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n this.result = data.result && !(data.result).toJSON ? new UnitStandardDto(data.result) : this.result;\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.result = _data[\"Result\"] ? UnitStandardDto.fromJS(_data[\"Result\"]) : undefined;\r\n this.message = _data[\"Message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ApiResultOfUnitStandardDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ApiResultOfUnitStandardDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"Result\"] = this.result ? this.result.toJSON() : undefined;\r\n data[\"Message\"] = this.message;\r\n return data;\r\n }\r\n\r\n clone(): ApiResultOfUnitStandardDto {\r\n const json = this.toJSON();\r\n let result = new ApiResultOfUnitStandardDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IApiResultOfUnitStandardDto {\r\n result?: IUnitStandardDto | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class UnitStandardDto implements IUnitStandardDto {\r\n frameworkElementId?: string | undefined;\r\n unitStandardId?: string | undefined;\r\n frameworkElementCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n credits?: number | undefined;\r\n currentVersion?: number | undefined;\r\n versions?: string | undefined;\r\n isLatestVersion?: boolean | undefined;\r\n\r\n constructor(data?: IUnitStandardDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.frameworkElementId = _data[\"FrameworkElementId\"];\r\n this.unitStandardId = _data[\"UnitStandardId\"];\r\n this.frameworkElementCode = _data[\"FrameworkElementCode\"];\r\n this.unitStandardName = _data[\"UnitStandardName\"];\r\n this.credits = _data[\"Credits\"];\r\n this.currentVersion = _data[\"CurrentVersion\"];\r\n this.versions = _data[\"Versions\"];\r\n this.isLatestVersion = _data[\"IsLatestVersion\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): UnitStandardDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new UnitStandardDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"FrameworkElementId\"] = this.frameworkElementId;\r\n data[\"UnitStandardId\"] = this.unitStandardId;\r\n data[\"FrameworkElementCode\"] = this.frameworkElementCode;\r\n data[\"UnitStandardName\"] = this.unitStandardName;\r\n data[\"Credits\"] = this.credits;\r\n data[\"CurrentVersion\"] = this.currentVersion;\r\n data[\"Versions\"] = this.versions;\r\n data[\"IsLatestVersion\"] = this.isLatestVersion;\r\n return data;\r\n }\r\n\r\n clone(): UnitStandardDto {\r\n const json = this.toJSON();\r\n let result = new UnitStandardDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IUnitStandardDto {\r\n frameworkElementId?: string | undefined;\r\n unitStandardId?: string | undefined;\r\n frameworkElementCode?: string | undefined;\r\n unitStandardName?: string | undefined;\r\n credits?: number | undefined;\r\n currentVersion?: number | undefined;\r\n versions?: string | undefined;\r\n isLatestVersion?: boolean | undefined;\r\n}\r\n\r\nexport class ApiResultOfUnitStandardVersionsDto implements IApiResultOfUnitStandardVersionsDto {\r\n result?: UnitStandardVersionsDto | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IApiResultOfUnitStandardVersionsDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n this.result = data.result && !(data.result).toJSON ? new UnitStandardVersionsDto(data.result) : this.result;\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.result = _data[\"Result\"] ? UnitStandardVersionsDto.fromJS(_data[\"Result\"]) : undefined;\r\n this.message = _data[\"Message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ApiResultOfUnitStandardVersionsDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ApiResultOfUnitStandardVersionsDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"Result\"] = this.result ? this.result.toJSON() : undefined;\r\n data[\"Message\"] = this.message;\r\n return data;\r\n }\r\n\r\n clone(): ApiResultOfUnitStandardVersionsDto {\r\n const json = this.toJSON();\r\n let result = new ApiResultOfUnitStandardVersionsDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IApiResultOfUnitStandardVersionsDto {\r\n result?: IUnitStandardVersionsDto | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class UnitStandardVersionsDto implements IUnitStandardVersionsDto {\r\n frameworkElementCode?: string | undefined;\r\n versions?: VersionDto[] | undefined;\r\n\r\n constructor(data?: IUnitStandardVersionsDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n if (data.versions) {\r\n this.versions = [];\r\n for (let i = 0; i < data.versions.length; i++) {\r\n let item = data.versions[i];\r\n this.versions[i] = item && !(item).toJSON ? new VersionDto(item) : item;\r\n }\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.frameworkElementCode = _data[\"FrameworkElementCode\"];\r\n if (Array.isArray(_data[\"Versions\"])) {\r\n this.versions = [] as any;\r\n for (let item of _data[\"Versions\"])\r\n this.versions!.push(VersionDto.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): UnitStandardVersionsDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new UnitStandardVersionsDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"FrameworkElementCode\"] = this.frameworkElementCode;\r\n if (Array.isArray(this.versions)) {\r\n data[\"Versions\"] = [];\r\n for (let item of this.versions)\r\n data[\"Versions\"].push(item.toJSON());\r\n }\r\n return data;\r\n }\r\n\r\n clone(): UnitStandardVersionsDto {\r\n const json = this.toJSON();\r\n let result = new UnitStandardVersionsDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IUnitStandardVersionsDto {\r\n frameworkElementCode?: string | undefined;\r\n versions?: IVersionDto[] | undefined;\r\n}\r\n\r\nexport class VersionDto implements IVersionDto {\r\n unitStandardId?: string | undefined;\r\n version?: number | undefined;\r\n\r\n constructor(data?: IVersionDto) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.unitStandardId = _data[\"UnitStandardId\"];\r\n this.version = _data[\"Version\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): VersionDto {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new VersionDto();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"UnitStandardId\"] = this.unitStandardId;\r\n data[\"Version\"] = this.version;\r\n return data;\r\n }\r\n\r\n clone(): VersionDto {\r\n const json = this.toJSON();\r\n let result = new VersionDto();\r\n result.init(json);\r\n return result;\r\n }\r\n}\r\n\r\nexport interface IVersionDto {\r\n unitStandardId?: string | undefined;\r\n version?: number | undefined;\r\n}\r\n\r\nexport type CreateResultResponseDtoCrmSaveStatus = 0 | 1;\r\n\r\nexport interface FileParameter {\r\n data: any;\r\n fileName: string;\r\n}\r\n\r\nexport class ApiException extends Error {\r\n message: string;\r\n status: number;\r\n response: string;\r\n headers: { [key: string]: any; };\r\n result: any;\r\n\r\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\r\n super();\r\n\r\n this.message = message;\r\n this.status = status;\r\n this.response = response;\r\n this.headers = headers;\r\n this.result = result;\r\n }\r\n\r\n protected isApiException = true;\r\n\r\n static isApiException(obj: any): obj is ApiException {\r\n return obj.isApiException === true;\r\n }\r\n}\r\n\r\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\r\n if (result !== null && result !== undefined)\r\n throw result;\r\n else\r\n throw new ApiException(message, status, response, headers, null);\r\n}\r\n\r\nfunction isAxiosError(obj: any | undefined): obj is AxiosError {\r\n return obj && obj.isAxiosError === true;\r\n}","export * from './connexis';\r\n\r\nimport { Ref } from '@vue/composition-api';\r\nimport axios from 'axios';\r\nimport {\r\n TrainingPlanClient,\r\n ScopeClient,\r\n UnitStandardClient,\r\n UnitStandardVersionClient,\r\n ResultClient,\r\n TrainingPlanUnitStandardClient,\r\n TraineeClient,\r\n AccountClient,\r\n} from './connexis';\r\n\r\nconst axiosInstance = axios.create({\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n responseType: 'json',\r\n});\r\n\r\nconst TrainingPlanClientInstance = new TrainingPlanClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n);\r\n\r\nconst ScopeClientInstance = new ScopeClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n);\r\n\r\nconst UnitStandardClientInstance = new UnitStandardClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n);\r\n\r\nconst UnitStandardVersionClientInstance = new UnitStandardVersionClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n);\r\n\r\nconst ResultClientInstance = new ResultClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n);\r\nconst TrainingPlanUnitStandardClientInstance =\r\n new TrainingPlanUnitStandardClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n );\r\n\r\nconst TraineeClientinstance = new TraineeClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n);\r\nconst AccountClientInstance = new AccountClient(\r\n process.env.VUE_APP_API_BASE_URI,\r\n axiosInstance,\r\n);\r\n\r\nconst useAxiosTokenInterceptor = (accessToken: Ref): void => {\r\n axiosInstance.interceptors.request.use(\r\n (config) => {\r\n if (accessToken.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n config.headers![\r\n 'Authorization'\r\n ] = `Bearer ${accessToken.value}`;\r\n }\r\n return config;\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n },\r\n );\r\n};\r\n\r\nexport {\r\n axiosInstance,\r\n useAxiosTokenInterceptor,\r\n TrainingPlanClientInstance,\r\n ScopeClientInstance,\r\n UnitStandardClientInstance,\r\n UnitStandardVersionClientInstance,\r\n ResultClientInstance,\r\n TrainingPlanUnitStandardClientInstance,\r\n AccountClientInstance,\r\n TraineeClientinstance,\r\n};\r\n","import {\r\n AccountInfo,\r\n Configuration,\r\n LogLevel,\r\n PublicClientApplication,\r\n} from '@azure/msal-browser';\r\n\r\nexport const msalConfig: Configuration = {\r\n auth: {\r\n // auth config are in .env files\r\n clientId: process.env.VUE_APP_MSAL_AUTH_CLIENTID,\r\n authority: process.env.VUE_APP_MSAL_AUTH_AUTHORITY,\r\n knownAuthorities: [process.env.VUE_APP_MSAL_AUTH_DOMAIN],\r\n redirectUri: `${window.origin}${process.env.VUE_APP_REDIRECT_URI}`,\r\n postLogoutRedirectUri: `${window.origin}${process.env.VUE_APP_REDIRECT_URI}`,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: false,\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (\r\n level: LogLevel,\r\n message: string,\r\n containsPii: boolean,\r\n ) => {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n default:\r\n return;\r\n }\r\n },\r\n logLevel: LogLevel.Verbose,\r\n },\r\n },\r\n};\r\n\r\n// Add here scopes for id token to be used at MS Identity Platform endpoints.\r\nexport const loginRequest = {\r\n scopes: [process.env.VUE_APP_MSAL_SCOPE],\r\n};\r\n\r\nexport const msalInstance = new PublicClientApplication(msalConfig);\r\n\r\ntype AccountIdentifiers = Partial<\r\n Pick\r\n>;\r\n\r\nexport function accountIsEqual(\r\n arrayA: AccountIdentifiers[],\r\n arrayB: AccountIdentifiers[],\r\n): boolean {\r\n if (arrayA == null || arrayB == null) {\r\n return false;\r\n }\r\n if (arrayA.length !== arrayB.length) {\r\n return false;\r\n }\r\n\r\n const comparisonArray = [...arrayB];\r\n\r\n return arrayA.every((elementA) => {\r\n const elementB = comparisonArray.shift();\r\n if (!elementA || !elementB) {\r\n return false;\r\n }\r\n\r\n return (\r\n elementA.homeAccountId === elementB.homeAccountId &&\r\n elementA.localAccountId === elementB.localAccountId &&\r\n elementA.username === elementB.username\r\n );\r\n });\r\n}\r\n","import { accountIsEqual } from '@/authConfig';\r\nimport { MutationNames } from '@/store/types';\r\nimport {\r\n PublicClientApplication,\r\n AccountInfo,\r\n InteractionStatus,\r\n} from '@azure/msal-browser';\r\nimport { Ref, SetupContext, toRefs, watch } from '@vue/composition-api';\r\nimport { isEqualWith } from 'lodash';\r\n\r\ninterface IMsalState {\r\n msalInstance: PublicClientApplication | undefined;\r\n accounts: Ref;\r\n inProgress: Ref;\r\n}\r\n\r\n/**\r\n * Provides a component access to the MSAL instance\r\n * @param context the context from the vue component this is used in.\r\n */\r\nfunction useMsal({ root: { $store, $msal } }: SetupContext): IMsalState {\r\n const { accounts, inProgress } = toRefs($msal);\r\n\r\n watch(\r\n () => $msal,\r\n (currentValue, prevValue) => {\r\n const { inProgress, accounts } = toRefs(currentValue);\r\n if (inProgress.value !== prevValue?.inProgress) {\r\n $store.commit(MutationNames.setInProgress, inProgress.value);\r\n }\r\n if (\r\n isEqualWith(accounts.value, prevValue?.accounts, accountIsEqual)\r\n ) {\r\n $store.commit(MutationNames.setAccounts, accounts.value);\r\n }\r\n },\r\n { deep: true, immediate: true },\r\n );\r\n\r\n // handle callback if needed\r\n if ($msal.inProgress === InteractionStatus.Startup) {\r\n $msal.instance.handleRedirectPromise().catch(() => {\r\n // Errors should be handled by listening to the LOGIN_FAILURE event\r\n return;\r\n });\r\n }\r\n\r\n return {\r\n msalInstance: $msal.instance,\r\n accounts,\r\n inProgress,\r\n };\r\n}\r\n\r\nexport { useMsal };\r\n","import {\r\n PopupRequest,\r\n RedirectRequest,\r\n SilentRequest,\r\n AuthenticationResult,\r\n AuthError,\r\n InteractionType,\r\n InteractionStatus,\r\n} from '@azure/msal-browser';\r\nimport { computed, reactive, SetupContext, toRefs } from '@vue/composition-api';\r\nimport { GetterNames, MutationNames } from '@/store/types';\r\nimport { useMsal } from './useMsal';\r\n\r\n// interface IMsalAuthenticationResult {\r\n// acquireToken: (\r\n// requestOverride?: PopupRequest | RedirectRequest | SilentRequest,\r\n// ) => Promise;\r\n// result: Ref;\r\n// error: Ref;\r\n// inProgress: Ref;\r\n// }\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useMsalAuthentication(\r\n context: SetupContext,\r\n interactionType: InteractionType,\r\n request: PopupRequest | RedirectRequest | SilentRequest,\r\n) {\r\n const { msalInstance, inProgress: msalInProgress } = useMsal(context);\r\n\r\n const state = reactive({\r\n inProgress: false,\r\n result: computed({\r\n get: () => context.root.$store.state.auth.result,\r\n set: (result) =>\r\n context.root.$store.commit(\r\n MutationNames.setAuthenticationResult,\r\n result,\r\n ),\r\n }),\r\n accessToken: computed(\r\n () => context.root.$store.getters[GetterNames.accessToken],\r\n ),\r\n error: null as AuthError | null,\r\n });\r\n\r\n const acquireToken = async (\r\n requestOverride?: PopupRequest | RedirectRequest | SilentRequest,\r\n ) => {\r\n if (!state.inProgress) {\r\n state.inProgress = true;\r\n const tokenRequest = requestOverride || request;\r\n\r\n if (\r\n msalInProgress.value === InteractionStatus.Startup ||\r\n msalInProgress.value === InteractionStatus.HandleRedirect\r\n ) {\r\n try {\r\n const response =\r\n await msalInstance?.handleRedirectPromise();\r\n if (response) {\r\n state.result = response;\r\n state.error = null;\r\n return;\r\n }\r\n } catch (e) {\r\n state.result = null;\r\n state.error = e as AuthError;\r\n return;\r\n }\r\n }\r\n\r\n try {\r\n const response =\r\n (await msalInstance?.acquireTokenSilent(tokenRequest)) ??\r\n null;\r\n state.result = response;\r\n state.error = null;\r\n } catch (e) {\r\n if (msalInProgress.value !== InteractionStatus.None) {\r\n return;\r\n }\r\n\r\n if (interactionType === InteractionType.Popup) {\r\n msalInstance\r\n ?.loginPopup(tokenRequest)\r\n .then((response) => {\r\n state.result = response;\r\n state.error = null;\r\n })\r\n .catch((e) => {\r\n state.error = e;\r\n state.result = null;\r\n });\r\n } else if (interactionType === InteractionType.Redirect) {\r\n await msalInstance\r\n ?.loginRedirect(tokenRequest)\r\n .catch((e) => {\r\n state.error = e;\r\n state.result = null;\r\n });\r\n }\r\n }\r\n state.inProgress = false;\r\n }\r\n };\r\n\r\n return {\r\n acquireToken,\r\n ...toRefs(state),\r\n };\r\n}\r\nexport { useMsalAuthentication };\r\n","import { SetupContext } from '@vue/composition-api';\r\nimport { Commit, Dispatch, Store } from 'vuex';\r\nimport { RootState } from '@/store';\r\n\r\n/**\r\n * Extracts the components of vuex in a more convenient setup for the composition api\r\n * @param context The context for the component this is being used from\r\n * @returns The components of vuex in a more convenient setup for composition api\r\n */\r\nexport function useVuexStore(context: SetupContext): {\r\n commit: Commit;\r\n dispatch: Dispatch;\r\n getters: Record;\r\n state: Required;\r\n} {\r\n const { commit, dispatch, getters, state } = context.root\r\n .$store as Store;\r\n\r\n return { commit, dispatch, getters, state: state as Required };\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-app-bar',{staticClass:\"header\",attrs:{\"app\":\"\",\"color\":\"#F4F1DA\",\"dense\":\"\",\"height\":_vm.navHeight}},[_c('v-container',{staticClass:\"header text pa-0 mx-0 fill-height d-flex\",attrs:{\"fluid\":\"\"}},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('v-img',{attrs:{\"alt\":\"Connexis Logo\",\"contain\":\"\",\"height\":_vm.navHeight,\"src\":require(\"./assets/wedge-logo.png\"),\"max-width\":270}})],1),_c('v-btn',{staticClass:\"header text\",attrs:{\"to\":\"/enter-result\",\"text\":\"\"}},[_c('span',[_vm._v(\"ENTER RESULT\")])]),_c('v-btn',{staticClass:\"header text\",attrs:{\"to\":\"/my-scope\",\"text\":\"\"}},[_c('span',[_vm._v(\"MY SCOPE\")])]),_c('v-btn',{staticClass:\"header text\",attrs:{\"to\":\"/results\",\"text\":\"\"}},[_c('span',[_vm._v(\"RESULTS\")])]),_c('v-spacer'),_c('div',[(_vm.isAuthenticated)?_c('v-btn',{staticClass:\"header text\",attrs:{\"text\":\"\"}},[_c('span',[_vm._v(_vm._s(_vm.name))])]):_vm._e(),(_vm.isAuthenticated)?_c('v-btn',{staticClass:\"header text\",attrs:{\"text\":\"\"},on:{\"click\":_vm.logout}},[_c('span',[_vm._v(\"LOGOUT\")])]):_c('v-btn',{staticClass:\"header text\",attrs:{\"text\":\"\"},on:{\"click\":_vm.login}},[_c('span',[_vm._v(\"LOGIN\")])])],1)],1)],1),_c('v-main',[_c('router-view')],1),_c('v-footer',{attrs:{\"color\":\"#808080\",\"height\":_vm.footerHeight}},[_c('div',{staticClass:\"footer logo\",attrs:{\"color\":\"red\"}},[_c('v-img',{attrs:{\"height\":\"45\",\"position\":\"center left\",\"alt\":\"Connexis Logo\",\"contain\":\"\",\"src\":require(\"./assets/wedge-logo.png\")}}),_c('div',{staticClass:\"footer text\"},[_vm._v(\" Helpdesk: \"),_c('a',{staticClass:\"white--text\",attrs:{\"href\":\"mailto: quality@connexis.org.nz\"}},[_vm._v(\" Quality@connexis.org.nz \")])])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed, Ref, SetupContext } from '@vue/composition-api';\r\nimport { useMsal } from './useMsal';\r\n\r\nexport function useIsAuthenticated(context: SetupContext): Ref {\r\n const { accounts } = useMsal(context);\r\n const isAuthenticated = computed(() => accounts.value.length > 0);\r\n\r\n return isAuthenticated;\r\n}\r\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\n\n\n\n\n\n\n\r\nimport {\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n reactive,\r\n toRefs,\r\n} from '@vue/composition-api';\r\nimport {\r\n VApp,\r\n VAppBar,\r\n VContainer,\r\n VImg,\r\n VBtn,\r\n VSpacer,\r\n VFooter,\r\n} from 'vuetify/lib/components';\r\nimport {\r\n AuthenticationResult,\r\n EventType,\r\n InteractionType,\r\n} from '@azure/msal-browser';\r\nimport { useMsal } from '@/hooks/useMsal';\r\nimport { loginRequest } from './authConfig';\r\nimport { CustomNavigationClient } from './router/NavigationClient';\r\nimport { useIsAuthenticated } from './hooks/useIsAuthenticated';\r\nimport { useMsalAuthentication } from './hooks/useMsalAuthentication';\r\nimport { useAxiosTokenInterceptor } from './api';\r\nimport { GetterNames } from '@/store/types';\r\n\r\nexport default defineComponent({\r\n name: 'App',\r\n components: {\r\n VApp,\r\n VAppBar,\r\n VContainer,\r\n VImg,\r\n VBtn,\r\n VSpacer,\r\n VFooter,\r\n },\r\n setup(props, context) {\r\n // #region hooks\r\n const { msalInstance, accounts } = useMsal(context);\r\n const { acquireToken, accessToken } = useMsalAuthentication(\r\n context,\r\n InteractionType.Redirect,\r\n loginRequest,\r\n );\r\n const isAuthenticated = useIsAuthenticated(context);\r\n useAxiosTokenInterceptor(accessToken);\r\n // #endregion\r\n\r\n // #region data\r\n // placing refs and computed inside reactive makes them accessable without using .value\r\n const state = reactive({\r\n // blank computed makes these readonly\r\n navHeight: computed(() => 80),\r\n footerHeight: computed(() => 100),\r\n isAuthenticated,\r\n name: computed(\r\n () => context.root.$store.getters[GetterNames.name],\r\n ),\r\n });\r\n // #endregion\r\n\r\n //#region methods\r\n const logout = () => {\r\n msalInstance?.logoutRedirect();\r\n };\r\n const login = () => {\r\n msalInstance?.loginRedirect();\r\n };\r\n //#endregion\r\n\r\n // #region lifeCycle\r\n onMounted(async () => {\r\n // const navigationClient = new CustomNavigationClient(\r\n // context.root.$router,\r\n // );\r\n // msalInstance?.setNavigationClient(navigationClient);\r\n\r\n if (accounts.value.length > 0) {\r\n msalInstance?.setActiveAccount(accounts.value[0]);\r\n }\r\n msalInstance?.addEventCallback((event) => {\r\n if (\r\n event.eventType === EventType.LOGIN_SUCCESS &&\r\n event.payload\r\n ) {\r\n const payload = event.payload as AuthenticationResult;\r\n const account = payload.account;\r\n msalInstance.setActiveAccount(account);\r\n acquireToken();\r\n }\r\n });\r\n\r\n if (isAuthenticated.value) {\r\n await acquireToken();\r\n }\r\n });\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n logout,\r\n login,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=3c60897c&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=3c60897c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3c60897c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VApp,VAppBar,VBtn,VContainer,VFooter,VImg,VMain,VSpacer})\n","import VueRouter from 'vue-router';\r\nimport { loginRequest, msalInstance } from '@/authConfig';\r\nimport {\r\n InteractionType,\r\n PopupRequest,\r\n PublicClientApplication,\r\n RedirectRequest,\r\n} from '@azure/msal-browser';\r\n\r\nexport function registerGuard(router: VueRouter): void {\r\n router.beforeEach(async (to, from, next) => {\r\n if (to.meta?.requiresAuth) {\r\n const request = {\r\n ...loginRequest,\r\n redirectStartPage: to.fullPath,\r\n };\r\n const shouldProceed = await isAuthenticated(\r\n msalInstance,\r\n InteractionType.Redirect,\r\n request,\r\n );\r\n if (!shouldProceed) {\r\n next('/failed');\r\n }\r\n }\r\n\r\n next();\r\n });\r\n}\r\n\r\nexport async function isAuthenticated(\r\n instance: PublicClientApplication,\r\n interactionType: InteractionType,\r\n loginRequest: PopupRequest | RedirectRequest,\r\n): Promise {\r\n // If your application uses redirects for interaction, handleRedirectPromise must be called and awaited on each page load before determining if a user is signed in or not\r\n return instance\r\n .handleRedirectPromise()\r\n .then(() => {\r\n const accounts = instance.getAllAccounts();\r\n if (accounts.length > 0) {\r\n return true;\r\n }\r\n\r\n // User is not signed in and attempting to access protected route. Sign them in.\r\n if (interactionType === InteractionType.Popup) {\r\n return instance\r\n .loginPopup(loginRequest)\r\n .then(() => {\r\n return true;\r\n })\r\n .catch(() => {\r\n return false;\r\n });\r\n } else if (interactionType === InteractionType.Redirect) {\r\n return instance\r\n .loginRedirect(loginRequest)\r\n .then(() => {\r\n return true;\r\n })\r\n .catch(() => {\r\n return false;\r\n });\r\n }\r\n\r\n return false;\r\n })\r\n .catch(() => {\r\n return false;\r\n });\r\n}\r\n","import Vue from 'vue';\r\nimport VueRouter, { RouteConfig } from 'vue-router';\r\nimport Home from '@/views/EnterResults.vue';\r\nimport { registerGuard } from './Guard';\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes: Array = [\r\n // -- DO NOT REMOVE -- AUTOMATED ROUTE IMPORTS\r\n {\r\n path: '/',\r\n name: 'Home',\r\n component: Home,\r\n meta: {\r\n requiresAuth: true,\r\n }\r\n },\r\n {\r\n path: '/about',\r\n name: 'About',\r\n // route level code-splitting\r\n // this generates a separate chunk (about.[hash].js) for this route\r\n // which is lazy-loaded when the route is visited.\r\n component: () =>\r\n import(/* webpackChunkName: \"about\" */ '../views/About.vue'),\r\n },\r\n // {\r\n // path: '/my-training-plans',\r\n // name: 'My Training Plans',\r\n // component: () => import('../views/MyTrainingPlans.vue'),\r\n // meta: {\r\n // requiresAuth: true,\r\n // },\r\n // },\r\n {\r\n path: '/my-scope',\r\n name: 'My Scope',\r\n component: () => import('../views/MyScope.vue'),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: '/logout',\r\n name: 'Logout',\r\n component: () => import('../views/Logout.vue'),\r\n meta: {\r\n requiresAuth: false,\r\n },\r\n },\r\n {\r\n path: '/failed',\r\n name: 'Login Failed',\r\n component: () => import('../views/Failed.vue'),\r\n meta: {\r\n requiresAuth: false,\r\n },\r\n },\r\n {\r\n path: '/enter-result',\r\n name: 'Enter Results',\r\n component: () => import('../views/EnterResults.vue'),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: '/results',\r\n name: 'ResultsEntered',\r\n component: () => import('../views/ResultsEntered.vue'),\r\n },\r\n {\r\n path: '/result-entered-confirm',\r\n name: 'ResultEnteredConfirm',\r\n component: () => import('../views/ResultEnteredConfirm.vue'),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n];\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes,\r\n});\r\n\r\nregisterGuard(router);\r\n\r\nexport default router;\r\n","import { ResultDto } from '@/api';\r\nimport { format } from 'date-fns';\r\n\r\nexport interface IResultVm {\r\n resultId: string;\r\n name: string;\r\n nsn: string;\r\n unitStandard: string;\r\n trainingPlan: string;\r\n dateAchieved: Date | null;\r\n dateEntered: Date | null;\r\n}\r\n\r\nexport function toResultVm(result: ResultDto): IResultVm {\r\n const dateAcieved =\r\n result.dateAchieved != null ? new Date(result.dateAchieved) : null;\r\n const dateEntered =\r\n result.dateEntered != null ? new Date(result.dateEntered) : null;\r\n return {\r\n resultId: result.resultId || '',\r\n name: `${result.traineeFirstName} ${result.traineeLastName}`,\r\n nsn: result.traineeNSN || '',\r\n unitStandard: result.frameworkElementCode || '',\r\n trainingPlan: result.trainingPlanId || '',\r\n dateAchieved: dateAcieved,\r\n dateEntered: dateEntered,\r\n };\r\n}\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport { ApiException, ResultClientInstance } from '@/api';\r\nimport { IResultVm, toResultVm } from '@/models/ResultVm';\r\n\r\nconst state = {\r\n results: [] as IResultVm[],\r\n loading: false,\r\n error: null as ApiException | null,\r\n};\r\n\r\nexport type ResultsEnteredState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n // TODO add getters\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n [mutationNames.setResults](state, scopes: IResultVm[]) {\r\n state.results = scopes;\r\n },\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n async [actionNames.searchForResults](\r\n context,\r\n { fromDate, toDate }: { fromDate: string; toDate: string },\r\n ) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n const { result } = await ResultClientInstance.get(fromDate, toDate);\r\n if (result) {\r\n const resultvms = result.map(toResultVm);\r\n context.commit(mutationNames.setResults, resultvms);\r\n }\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","import { ScopeDto } from '@/api';\r\n\r\nexport interface IScopeVm {\r\n name?: string;\r\n unitStandards: IUnitStandardVM[];\r\n}\r\n\r\nexport interface IUnitStandardVM {\r\n domain: string;\r\n unitStandard: string;\r\n description: string;\r\n credits: number;\r\n current: number;\r\n versions: string;\r\n}\r\n\r\nexport function toScopeVm(scope: ScopeDto): IScopeVm {\r\n return {\r\n name: scope.name,\r\n unitStandards:\r\n scope.parentFrameworkElements?.flatMap(\r\n (pfe) =>\r\n pfe.unitStandards?.map(\r\n (us) =>\r\n ({\r\n domain: pfe.name,\r\n unitStandard: us.frameworkElementCode,\r\n description: us.unitStandardName,\r\n credits: us.credits,\r\n current: us.currentVersion,\r\n versions: us.versions,\r\n } as IUnitStandardVM),\r\n ) || [],\r\n ) || [],\r\n };\r\n}\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport { ApiException, ScopeClientInstance } from '@/api';\r\nimport { IScopeVm, toScopeVm } from '@/models/ScopeVm';\r\n\r\nconst state = {\r\n currentScopes: [] as IScopeVm[],\r\n loading: false,\r\n error: null as ApiException | null,\r\n};\r\n\r\nexport type MyScopeState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n // TODO add getters\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n [mutationNames.setCurrentScope](state, scopes: IScopeVm[]) {\r\n state.currentScopes = scopes;\r\n },\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n async [actionNames.searchForUnitStandard](context, payload?: string) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n const { scopes } = await ScopeClientInstance.get(payload);\r\n if (scopes) {\r\n const scopeVms = scopes.map(toScopeVm);\r\n context.commit(mutationNames.setCurrentScope, scopeVms);\r\n }\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","import {\r\n InteractionStatus,\r\n AccountInfo,\r\n AuthenticationResult,\r\n} from '@azure/msal-browser';\r\nimport Vue from 'vue';\r\nimport Vuex, { StoreOptions } from 'vuex';\r\nimport { GetterNames, MutationNames } from './types';\r\n// -- DO NOT REMOVE -- AUTOMATED MODULE IMPORTS\r\nimport account, {\r\n AccountState,\r\n namespace as accountNamespace,\r\n} from './modules/account/Account';\r\nimport trainee, {\r\n TraineeState,\r\n namespace as traineeNamespace,\r\n} from './modules/trainee/Trainee';\r\nimport CreateResult, {\r\n CreateResultState,\r\n namespace as CreateResultNamespace,\r\n} from './modules/createResult/CreateResult';\r\nimport enterResults, {\r\n EnterResultsState,\r\n namespace as enterResultsNamespace,\r\n} from './modules/enterResults/EnterResults';\r\nimport unitStandardVersions, {\r\n UnitStandardVersionsState,\r\n namespace as unitStandardVersionsNamespace,\r\n} from './modules/unitStandardVersions/UnitStandardVersions';\r\nimport unitStandard, {\r\n UnitStandardState,\r\n namespace as unitStandardNamespace,\r\n} from './modules/unitStandard/UnitStandard';\r\nimport resultsEntered, {\r\n ResultsEnteredState,\r\n namespace as resultsEnteredNamespace,\r\n} from './modules/resultsEntered/ResultsEntered';\r\nimport myScope, {\r\n MyScopeState,\r\n namespace as myScopeNamespace,\r\n} from './modules/myScope/MyScope';\r\nimport myTrainingPlans, {\r\n MyTrainingPlansState,\r\n namespace as myTrainingPlansNamespace,\r\n} from './modules/myTrainingPlans/MyTrainingPlans';\r\n\r\nVue.use(Vuex);\r\n\r\nexport type RootState = {\r\n // module state\r\n auth: {\r\n result: AuthenticationResult | null;\r\n inProgress: InteractionStatus;\r\n accounts: AccountInfo[];\r\n };\r\n // -- DO NOT REMOVE -- AUTOMATED MODULE TYPES\r\n [accountNamespace]?: AccountState;\r\n [traineeNamespace]?: TraineeState;\r\n [CreateResultNamespace]?: CreateResultState;\r\n [enterResultsNamespace]?: EnterResultsState;\r\n [unitStandardVersionsNamespace]?: UnitStandardVersionsState;\r\n [unitStandardNamespace]?: UnitStandardState;\r\n [resultsEnteredNamespace]?: ResultsEnteredState;\r\n [myScopeNamespace]?: MyScopeState;\r\n [myTrainingPlansNamespace]?: MyTrainingPlansState;\r\n};\r\n\r\nexport const defaultStore = (): StoreOptions => ({\r\n state() {\r\n return {\r\n auth: {\r\n result: null,\r\n inProgress: InteractionStatus.Startup,\r\n accounts: [],\r\n },\r\n };\r\n },\r\n getters: {\r\n [GetterNames.accessToken]: (state) => state.auth.result?.accessToken,\r\n [GetterNames.signedIn]: (state) =>\r\n state.auth.inProgress === InteractionStatus.None,\r\n [GetterNames.name]: (state) => state.auth.result?.account?.name,\r\n },\r\n mutations: {\r\n [MutationNames.setAuthenticationResult](state, result) {\r\n state.auth.result = result;\r\n },\r\n [MutationNames.setInProgress](state, interactionStatus) {\r\n state.auth.inProgress = interactionStatus;\r\n },\r\n [MutationNames.setAccounts](state, accounts) {\r\n state.auth.accounts = accounts;\r\n },\r\n },\r\n actions: {},\r\n modules: {\r\n // -- DO NOT REMOVE -- AUTOMATED MODULE REGISTRATIONS\r\n [accountNamespace]: account,\r\n [traineeNamespace]: trainee,\r\n [CreateResultNamespace]: CreateResult,\r\n [enterResultsNamespace]: enterResults,\r\n [unitStandardVersionsNamespace]: unitStandardVersions,\r\n [unitStandardNamespace]: unitStandard,\r\n [resultsEnteredNamespace]: resultsEntered,\r\n [myScopeNamespace]: myScope,\r\n [myTrainingPlansNamespace]: myTrainingPlans,\r\n },\r\n});\r\n\r\nconst store = new Vuex.Store(defaultStore());\r\n\r\nexport default store;\r\n","import Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib/framework';\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n theme: {\r\n options: {\r\n customProperties: true,\r\n },\r\n themes: {\r\n light: {\r\n primary: '#EB2C45',\r\n secondary: '#272727',\r\n accent: '#82B1FF',\r\n error: '#FF5252',\r\n info: '#FFFFFF',\r\n success: '#4CAF50',\r\n warning: '#FFC107',\r\n },\r\n },\r\n },\r\n});\r\n","import { PluginObject } from 'vue';\r\nimport { reactive } from '@vue/composition-api';\r\nimport {\r\n EventMessage,\r\n EventMessageUtils,\r\n EventType,\r\n InteractionStatus,\r\n PublicClientApplication,\r\n AccountInfo,\r\n} from '@azure/msal-browser';\r\nimport { isEqualWith } from 'lodash-es';\r\nimport { accountIsEqual } from '@/authConfig';\r\n\r\nexport type MsalState = {\r\n instance: PublicClientApplication;\r\n inProgress: InteractionStatus;\r\n accounts: AccountInfo[];\r\n};\r\n\r\nconst MSALplugin: PluginObject = {\r\n install: (vue, msalInstance) => {\r\n const inProgress = InteractionStatus.Startup;\r\n const accounts = msalInstance?.getAllAccounts();\r\n\r\n const state = reactive({\r\n instance: msalInstance,\r\n inProgress,\r\n accounts,\r\n });\r\n\r\n Object.defineProperty(vue.prototype, '$msal', {\r\n get() {\r\n return state;\r\n },\r\n });\r\n\r\n msalInstance?.addEventCallback((message: EventMessage) => {\r\n switch (message.eventType) {\r\n case EventType.ACCOUNT_ADDED:\r\n case EventType.ACCOUNT_REMOVED:\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.SSO_SILENT_SUCCESS:\r\n case EventType.HANDLE_REDIRECT_END:\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.SSO_SILENT_FAILURE:\r\n case EventType.LOGOUT_END:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_FAILURE: {\r\n const currentAccounts = msalInstance.getAllAccounts();\r\n if (\r\n !isEqualWith(\r\n currentAccounts,\r\n state.accounts,\r\n accountIsEqual,\r\n )\r\n ) {\r\n state.accounts = currentAccounts;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n const status = EventMessageUtils.getInteractionStatusFromEvent(\r\n message,\r\n state.inProgress,\r\n );\r\n\r\n if (status !== null) {\r\n state.inProgress = status;\r\n }\r\n });\r\n },\r\n};\r\n\r\nexport default MSALplugin;\r\n","import VueCompositionApi, {\r\n createApp,\r\n defineComponent,\r\n} from '@vue/composition-api';\r\nimport Vue from 'vue';\r\nimport App from './App.vue';\r\nimport router from './router';\r\nimport store from './store';\r\nimport vuetify from './plugins/vuetify';\r\nimport MSALplugin from './plugins/msal';\r\nimport { msalInstance } from './authConfig';\r\n\r\nimport './styles/rootoverrides.scss';\r\nimport './styles/main.scss';\r\n\r\nVue.config.productionTip = false;\r\n\r\nVue.use(VueCompositionApi);\r\n\r\nconst app = createApp(\r\n defineComponent({\r\n router,\r\n store,\r\n vuetify,\r\n render: (h) => h(App),\r\n }),\r\n);\r\napp.use(MSALplugin, msalInstance);\r\napp.mount('#app');\r\n","import { ITrainingPlanUnitStandard } from '@/api';\r\nimport { format, parse } from 'date-fns';\r\nimport { CreateResultResponseDto } from '@/api';\r\n\r\nexport interface ITrainingPlanUnitStandardVm {\r\n unitStandardId: string;\r\n unitStandardCode: string;\r\n unitStandardName: string;\r\n dateAchieved?: string | undefined;\r\n isRcc: boolean;\r\n isExistingResult: boolean;\r\n saveStatus: string;\r\n saveErrorMessage: string;\r\n}\r\n\r\nexport function toTrainingPlanUnitStandardVm(\r\n trainingPlanUnitStandard: ITrainingPlanUnitStandard,\r\n) {\r\n const parsedDate = trainingPlanUnitStandard.dateAchieved\r\n ? new Date(trainingPlanUnitStandard.dateAchieved)\r\n : undefined;\r\n const vm: ITrainingPlanUnitStandardVm = {\r\n unitStandardId: trainingPlanUnitStandard.unitStandardId || '',\r\n unitStandardCode: trainingPlanUnitStandard.unitStandardCode || '',\r\n unitStandardName: trainingPlanUnitStandard.unitStandardName || '',\r\n dateAchieved: parsedDate ? format(parsedDate, 'yyyy-MM-dd') : '',\r\n isRcc: trainingPlanUnitStandard.isRcc || false,\r\n isExistingResult: trainingPlanUnitStandard.isExistingResult || false,\r\n saveStatus: '',\r\n saveErrorMessage: '',\r\n };\r\n return vm;\r\n}\r\n\r\nexport function resultCreationResponseToTrainingPlanUnitStandardVm(\r\n createResultResponse: CreateResultResponseDto,\r\n) {\r\n\r\n const parsedDate = createResultResponse.dateAchieved\r\n ? new Date(createResultResponse.dateAchieved)\r\n : undefined;\r\n const vm: ITrainingPlanUnitStandardVm = {\r\n unitStandardId: createResultResponse.unitStandardId || '',\r\n unitStandardCode: createResultResponse.unitStandardCode || '',\r\n unitStandardName: createResultResponse.unitStandardName || '',\r\n dateAchieved: parsedDate ? format(parsedDate, 'yyyy-MM-dd') : '',\r\n isRcc: createResultResponse.isRcc || false,\r\n isExistingResult: createResultResponse.isExistingResult || false,\r\n saveStatus:\r\n createResultResponse.crmSaveStatus == 1\r\n ? 'Successfully saved'\r\n : 'Failed to save',\r\n saveErrorMessage: createResultResponse.crmSaveErrorMessage || ''\r\n };\r\n return vm;\r\n}\r\n","const getterNames = Object.freeze({\r\n // TODO add getter names\r\n loading: 'GET_LOADING',\r\n getSearchedAccount: 'GET_SEARCHED_ACCOUNT',\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n // TODO add mutation names\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n setSearchedAccount: 'SET_SEARCHED_ACCOUNT',\r\n setDebtorNumberToSearch: 'SET_DEBTOR_NUMBER_TO_SEARCH',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n // TODO add action names\r\n fetchDebtorNumber: 'FETCH_DEBTOR_NUMBER',\r\n} as const);\r\n\r\nconst namespace = 'accountState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport { AccountClientInstance, ApiException, IAccountDto } from '@/api';\r\n\r\nconst state = {\r\n // TODO add State\r\n searchedAccount: null as IAccountDto | null,\r\n debtorNumberToSearch: '',\r\n loading: false,\r\n error: null as ApiException | null,\r\n};\r\n\r\nexport type AccountState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n // TODO add getters\r\n [getterNames.loading]: (state) => state.loading,\r\n [getterNames.getSearchedAccount]: (state) => state.searchedAccount,\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n // TODO add mutations\r\n [mutationNames.setSearchedAccount](state, account: IAccountDto) {\r\n state.searchedAccount = account;\r\n },\r\n [mutationNames.setDebtorNumberToSearch](\r\n state,\r\n debtorNumberToSearch: string,\r\n ) {\r\n state.debtorNumberToSearch = debtorNumberToSearch;\r\n },\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n // TODO add actions\r\n async [actionNames.fetchDebtorNumber](context, code: string) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n context.commit(mutationNames.setDebtorNumberToSearch, code);\r\n context.commit(mutationNames.setSearchedAccount, null);\r\n const debtorNumber = await AccountClientInstance.get(code);\r\n if (debtorNumber && debtorNumber.result) {\r\n context.commit(mutationNames.setSearchedAccount, debtorNumber);\r\n }\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","const getterNames = Object.freeze({\r\n getLoading: 'GET_LOADING',\r\n getError: 'GET_ERROR',\r\n getResultCreatedResponses: 'GET_RESULT_CREATED_RESPONSE'\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n setTraineeId: 'SET_TRAINEE_ID',\r\n setUnitStandardId: 'SET_UNIT_STANDARD_ID',\r\n setDateAchieved: 'SET_DATE_ACHIEVED',\r\n setIsRcc: 'SET_IS_RCC',\r\n setCasualCredit: 'SET_CASUAL_CREDIT',\r\n setPoNumber: 'SET_PO_NUMBER',\r\n setDebtorCode: 'SET_DEBTOR_CODE',\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n setApiReponse: 'SET_API_RESPONSE'\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n postCasualCreditToApi: 'POST_CASUAL_CREDIT_TO_API',\r\n postTrainingPlanToApi: 'POST_TRAINING_PLAN_TO_API',\r\n} as const);\r\n\r\nconst namespace = 'createResultState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\n//import { toResultCreatedResponseVm, IResultCreatedReponseVm } from '@/models/ResultCreatedVm';\r\nimport {\r\n resultCreationResponseToTrainingPlanUnitStandardVm,\r\n ITrainingPlanUnitStandardVm,\r\n} from '@/models/TrainingPlanUnitStandardVm';\r\nimport {\r\n ApiException,\r\n CreateResultRequestDto,\r\n ResultClientInstance,\r\n} from '@/api';\r\nimport { result } from 'lodash-es';\r\n\r\nconst state = {\r\n traineeId: '',\r\n unitStandardId: '',\r\n dateAchieved: '',\r\n isRcc: false,\r\n casualCredit: false,\r\n poNumber: '',\r\n debtorCode: '',\r\n createdResultResponses: [] as ITrainingPlanUnitStandardVm[],\r\n loading: false,\r\n error: '',\r\n};\r\n\r\nexport type CreateResultState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n // TODO add getters\r\n [getterNames.getLoading]: (state) => state.loading,\r\n [getterNames.getError]: (state) => state.error,\r\n [getterNames.getResultCreatedResponses]: (state) => state.createdResultResponses\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n [mutationNames.setTraineeId](state, traineeId: string) {\r\n state.traineeId = traineeId;\r\n },\r\n [mutationNames.setUnitStandardId](state, unitStandardId: string) {\r\n state.unitStandardId = unitStandardId;\r\n },\r\n [mutationNames.setDateAchieved](state, dateAchieved: string) {\r\n state.dateAchieved = dateAchieved;\r\n },\r\n [mutationNames.setIsRcc](state, isRcc: boolean) {\r\n state.isRcc = isRcc;\r\n },\r\n [mutationNames.setCasualCredit](state, casualCredit: boolean) {\r\n state.casualCredit = casualCredit;\r\n },\r\n [mutationNames.setPoNumber](state, poNumber: string) {\r\n state.poNumber = poNumber;\r\n },\r\n [mutationNames.setDebtorCode](state, debtorCode: string) {\r\n state.debtorCode = debtorCode;\r\n },\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setError](state, error: string) {\r\n state.error = error;\r\n },\r\n [mutationNames.setApiReponse](state, resultResponses: ITrainingPlanUnitStandardVm[]) {\r\n state.createdResultResponses = resultResponses;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n // TODO add actions\r\n async [actionNames.postCasualCreditToApi](context, payload) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n const result = await ResultClientInstance.post2(\r\n new CreateResultRequestDto({\r\n isRcc: context.state.casualCredit\r\n ? undefined\r\n : context.state.isRcc,\r\n traineeId:\r\n context.rootState.myTrainingPlansState?.trainee\r\n ?.contactId,\r\n unitStandardId:\r\n context.rootState.unitStandardState\r\n ?.selectedUnitStandard?.unitStandardId,\r\n unitStandardName:\r\n context.rootState.unitStandardState\r\n ?.selectedUnitStandard?.description,\r\n unitStandardCode:\r\n context.rootState.unitStandardState\r\n ?.selectedUnitStandard?.unitStandardNo,\r\n dateAchieved: context.state.dateAchieved,\r\n casualCredit: context.state.casualCredit,\r\n poNumber: context.state.poNumber,\r\n debtorCode: context.state.debtorCode,\r\n }),\r\n );\r\n\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n async [actionNames.postTrainingPlanToApi](context, payload) {\r\n try {\r\n context.commit(mutationNames.setError, '');\r\n\r\n context.commit(mutationNames.setLoading, true);\r\n const apiResult = await ResultClientInstance.post(\r\n context.rootState.enterResultsState?.enteredUnitStandardList.map(\r\n (us) =>\r\n new CreateResultRequestDto({\r\n isRcc: us.isRcc,\r\n traineeId:\r\n context.rootState.myTrainingPlansState?.trainee\r\n ?.contactId,\r\n unitStandardId: us.unitStandardId,\r\n unitStandardName: us.unitStandardName,\r\n unitStandardCode: us.unitStandardCode,\r\n dateAchieved: us.dateAchieved,\r\n casualCredit: context.state.casualCredit,\r\n }),\r\n ) ?? [],\r\n );\r\n\r\n const unitStandardWithResult = apiResult.result?.map(resultCreationResponseToTrainingPlanUnitStandardVm);\r\n\r\n context.commit(mutationNames.setApiReponse, unitStandardWithResult);\r\n if (apiResult.result) {\r\n // If any item in the response is error (crmSaveStatus = 0), consider the transaction is error.\r\n const failure = apiResult.result.find(\r\n (r) => r.crmSaveStatus == 0,\r\n );\r\n\r\n if(failure) {\r\n context.commit(mutationNames.setError, apiResult.message);\r\n }\r\n }\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","const getterNames = Object.freeze({\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n setUnitStandard: 'SET_UNIT_STANDARD',\r\n setLoading: 'SET_LOADING',\r\n setUnitStandardList: 'SET_UNIT_STANDARD_LIST',\r\n setError: 'SET_ERROR',\r\n setEnteredUnitStandardList: 'SET_ENTERED_UNIT_STANDARD_LIST',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n fetchTrainingPlanUnitStandard: 'FETCH_TRAINING_PLAN_UNIT_STANDARD',\r\n} as const);\r\n\r\nconst namespace = 'enterResultsState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import Vue from 'vue';\r\nimport type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport { ApiException, TrainingPlanUnitStandardClientInstance } from '@/api';\r\nimport {\r\n ITrainingPlanUnitStandardVm,\r\n toTrainingPlanUnitStandardVm,\r\n} from '@/models/TrainingPlanUnitStandardVm';\r\n\r\nconst state = {\r\n loading: false,\r\n unitStandardList: [] as ITrainingPlanUnitStandardVm[],\r\n enteredUnitStandardList: [] as ITrainingPlanUnitStandardVm[],\r\n existingUnitStandardList: [] as ITrainingPlanUnitStandardVm[],\r\n error: null as ApiException | null,\r\n};\r\n\r\nexport type EnterResultsState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n // TODO add getters\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setUnitStandardList](\r\n state,\r\n items: ITrainingPlanUnitStandardVm[],\r\n ) {\r\n state.unitStandardList = items;\r\n //Get new entered results\r\n state.enteredUnitStandardList =\r\n state.unitStandardList.filter(\r\n (a) => !a.isExistingResult && a.dateAchieved != undefined && a.dateAchieved != \"\"\r\n ) || new Array();\r\n\r\n //Get existing results, previously entered\r\n state.existingUnitStandardList =\r\n state.unitStandardList.filter(\r\n (a) => a.isExistingResult\r\n ) || new Array();\r\n },\r\n [mutationNames.setEnteredUnitStandardList](state,\r\n items: ITrainingPlanUnitStandardVm[],\r\n ) {\r\n state.enteredUnitStandardList =\r\n items.filter(\r\n (a) => !a.isExistingResult && a.dateAchieved != undefined && a.dateAchieved != \"\"\r\n ) || new Array();\r\n },\r\n [mutationNames.setUnitStandard](\r\n state,\r\n {\r\n unitStandard,\r\n index,\r\n }: { unitStandard: ITrainingPlanUnitStandardVm; index: number },\r\n ) {\r\n Vue.set(state.unitStandardList, index, unitStandard);\r\n },\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n async [actionNames.fetchTrainingPlanUnitStandard](\r\n context,\r\n trainingPlanId: string,\r\n ) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n const items = await TrainingPlanUnitStandardClientInstance.get(\r\n trainingPlanId,\r\n );\r\n const unitStandards =\r\n items.length > 0\r\n ? items[0].trainingPlanUnitStandards?.map(\r\n toTrainingPlanUnitStandardVm,\r\n )\r\n : [];\r\n context.commit(mutationNames.setUnitStandardList, unitStandards);\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","const getterNames = Object.freeze({\r\n // TODO add getter names\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n setCurrentScope: 'SET_CURRENT_SCOPE',\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n searchForUnitStandard: 'SEARCH_FOR_UNIT_STANDARD',\r\n} as const);\r\n\r\nconst namespace = 'myScopeState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","const getterNames = Object.freeze({\r\n getTraineeTrainingPlans: 'GET_TRAINEE_TRAINING_PLANS',\r\n getSearchedTrainingPlans: 'GET_SEARCHED_TRAINING_PLANS',\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n setMyPlans: 'SET_MY_PLANS',\r\n setSearchedPlans: 'SET_SEARCHED_PLANS',\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n setTrainee: 'SET_TRAINEE',\r\n setTraineeTrainingPlan: 'SET_TRAINEE_TRAINING_PLAN',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n fetchAllMyTrainingPlans: 'FETCH_MY_TRAINING_PLANS',\r\n searchTrainingPlans: 'SEARCH_TRAINING_PLANS',\r\n // searchTrainingPlansByTraineeId: 'GET_BY_TRAINEE_ID',\r\n} as const);\r\n\r\nconst namespace = 'myTrainingPlansState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import { TrainingPlanDto } from '@/api/connexis';\r\nimport { format } from 'date-fns';\r\n\r\nexport interface TrainingPlanVm {\r\n name: string;\r\n nSN: string;\r\n trainingPlanID: string;\r\n programme: string;\r\n contactId: string;\r\n actions: string;\r\n isTtafEligible: boolean;\r\n dateOfBirth: string;\r\n status: string;\r\n}\r\n\r\nfunction toTrainingPlanVm(plan: TrainingPlanDto): TrainingPlanVm {\r\n return {\r\n name: `${plan.firstName} ${plan.lastName}`,\r\n nSN: plan.nSN ?? '',\r\n programme: plan.programmeName ?? '',\r\n contactId: plan.contactId ?? '',\r\n trainingPlanID: plan.trainingPlanId ?? '',\r\n isTtafEligible: plan.isTtafEligible == true,\r\n dateOfBirth: plan.dateOfBirth\r\n ? format(new Date(plan.dateOfBirth), 'yyyy-MM-dd')\r\n : '',\r\n status: plan.status ?? '',\r\n actions: 'Enter result',\r\n };\r\n}\r\n\r\nexport { toTrainingPlanVm };\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport { ApiException, TrainingPlanClientInstance } from '@/api';\r\nimport { toTrainingPlanVm, TrainingPlanVm } from '@/models/TrainingPlanVm';\r\n\r\nconst state = {\r\n myPlans: [] as TrainingPlanVm[],\r\n searchedPlans: [] as TrainingPlanVm[],\r\n trainee: null as TrainingPlanVm | null,\r\n traineeTrainingPlan: null as TrainingPlanVm | null,\r\n loading: false,\r\n error: null as ApiException | null,\r\n};\r\n\r\nexport type MyTrainingPlansState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n [getterNames.getTraineeTrainingPlans]: (state) =>\r\n state.searchedPlans?.filter(\r\n (plan) => plan.contactId === state.trainee?.contactId,\r\n ),\r\n [getterNames.getSearchedTrainingPlans]: (state) => state.searchedPlans,\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n [mutationNames.setMyPlans](state, plans: TrainingPlanVm[]) {\r\n state.myPlans = plans;\r\n },\r\n [mutationNames.setSearchedPlans](state, plans: TrainingPlanVm[]) {\r\n state.searchedPlans = plans;\r\n },\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n [mutationNames.setTrainee](state, trainee: TrainingPlanVm) {\r\n state.trainee = trainee;\r\n },\r\n [mutationNames.setTraineeTrainingPlan](\r\n state,\r\n traineeTrainingPlan: TrainingPlanVm,\r\n ) {\r\n state.traineeTrainingPlan = traineeTrainingPlan;\r\n },\r\n};\r\ninterface TrainingPlanSearchParam {\r\n searchText: string\r\n}\r\n\r\nconst actions: ActionTree = {\r\n async [actionNames.fetchAllMyTrainingPlans](context) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n const tPlans = await TrainingPlanClientInstance.myTrainingPlans();\r\n const tPlansVm = tPlans.map(toTrainingPlanVm);\r\n context.commit(mutationNames.setMyPlans, tPlansVm);\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n async [actionNames.searchTrainingPlans](context, payload: TrainingPlanSearchParam) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n const tPlans = await TrainingPlanClientInstance.searchTrainingPlans(\r\n payload.searchText,\r\n );\r\n const tPlansVm = tPlans.map(toTrainingPlanVm);\r\n context.commit(mutationNames.setSearchedPlans, tPlansVm);\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n // async [actionNames.searchTrainingPlansByTraineeId](\r\n // context,\r\n // traineeId: string,\r\n // ) {\r\n // try {\r\n // context.commit(mutationNames.setLoading, true);\r\n // const tPlans = await TrainingPlanClientInstance.get(\r\n // null,\r\n // null,\r\n // null,\r\n // traineeId,\r\n // null,\r\n // );\r\n // const tPlansVm = tPlans.map(toTrainingPlanVm);\r\n // context.commit(mutationNames.setSearchedPlans, tPlansVm);\r\n // } catch (e) {\r\n // context.commit(mutationNames.setError, e);\r\n // } finally {\r\n // context.commit(mutationNames.setLoading, false);\r\n // }\r\n // },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\n\r\nexport default module;\r\n","const getterNames = Object.freeze({\r\n // TODO add getter names\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n setResults: 'SET_RESULTS',\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n searchForResults: 'SEARCH_FOR_RESULTS',\r\n} as const);\r\n\r\nconst namespace = 'resultsEnteredState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import type { RootState } from '@/store';\r\nimport type { TraineeState } from '@/store/modules/trainee/Trainee';\r\n\r\nconst getterNames = Object.freeze({\r\n getNewTrainee: 'GET_NEW_TRAINEE',\r\n getLoading: 'GET_LOADING',\r\n getError: 'GET_ERROR',\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n setTrainee: 'SET_TRAINEE',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n createNewTrainee: 'CREATE_NEW_TRAINEE',\r\n} as const);\r\n\r\nconst namespace = 'traineeState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport { ApiException, Contact, TraineeClientinstance } from '@/api';\r\n\r\nconst state = {\r\n loading: false,\r\n error: null as ApiException | null,\r\n newContact: null as Contact | null,\r\n};\r\n\r\nexport type TraineeState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n [getterNames.getNewTrainee]: (state) => state.newContact,\r\n [getterNames.getLoading]: (state) => state.loading,\r\n [getterNames.getError]: (state) => state.error,\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n [mutationNames.setTrainee](state, trainee: Contact) {\r\n state.newContact = trainee;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n async [actionNames.createNewTrainee](context, formData: FormData) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n const fName = (formData.get('fName') || '').toString();\r\n const lName = (formData.get('lName') || '').toString();\r\n const dob = (formData.get('dob') || '').toString();\r\n const gender = (formData.get('gender') || '').toString();\r\n const proofFile = formData.get('proofFile') as File;\r\n const traineeResponse = await TraineeClientinstance.create(\r\n fName,\r\n lName,\r\n dob,\r\n gender,\r\n { data: proofFile, fileName: proofFile.name },\r\n );\r\n context.commit(mutationNames.setTrainee, traineeResponse.result);\r\n context.commit(mutationNames.setError, null);\r\n } catch (e) {\r\n context.commit(mutationNames.setTrainee, null);\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","const getterNames = Object.freeze({\r\n // TODO add getter names\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n // TODO add mutation names\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n setSelectedUnitStandardVersion: 'SET_SELECTED_UNIT_STANDARD_VERSION',\r\n setUnitStandardVersions: 'SET_UNIT_STANDARD_VERSIONS',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n // TODO add action names\r\n fetchUnitStandardVersions: 'FETCH_UNIT_STANDARD_VERSIONS',\r\n} as const);\r\n\r\nconst namespace = 'unitStandardVersionsState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport {\r\n ApiException,\r\n IVersionDto,\r\n UnitStandardVersionClientInstance,\r\n} from '@/api';\r\n\r\nconst state = {\r\n // TODO add State\r\n selectedVersion: null as IVersionDto | null,\r\n unitStandardVersions: [] as IVersionDto[],\r\n loading: false,\r\n error: null as ApiException | null,\r\n};\r\n\r\nexport type UnitStandardVersionsState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n // TODO add getters\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n // TODO add mutations\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setUnitStandardVersions](state, versions: IVersionDto[]) {\r\n state.unitStandardVersions = versions;\r\n },\r\n [mutationNames.setSelectedUnitStandardVersion](\r\n state,\r\n version: IVersionDto,\r\n ) {\r\n state.selectedVersion = version;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n // TODO add actions\r\n async [actionNames.fetchUnitStandardVersions](context, code: number) {\r\n try {\r\n const unitStandardVersion =\r\n await UnitStandardVersionClientInstance.get(code);\r\n if (unitStandardVersion && unitStandardVersion.result) {\r\n context.commit(\r\n mutationNames.setUnitStandardVersions,\r\n unitStandardVersion.result.versions,\r\n );\r\n }\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","const getterNames = Object.freeze({\r\n // TODO add getter names\r\n loading: 'GET_LOADING',\r\n getSelectedUnitStandard: 'GET_SELECTED_UNIT_STANDARD',\r\n getSearchedUnitStandard: 'GET_SEARCHED_UNIT_STANDARD',\r\n} as const);\r\n\r\nconst mutationNames = Object.freeze({\r\n // TODO add mutation names\r\n setLoading: 'SET_LOADING',\r\n setError: 'SET_ERROR',\r\n setSelectedUnitStandard: 'SET_SELECTED_UNIT_STANDARD',\r\n setSearchedUnitStandard: 'SET_SEARCHED_UNIT_STANDARD',\r\n setUnitStandardCodeToSearch: 'SET_UNIT_STANDARD_CODE_TO_SEARCH',\r\n} as const);\r\n\r\nconst actionNames = Object.freeze({\r\n // TODO add action names\r\n fetchUnitStandard: 'FETCH_UNIT_STANDARD',\r\n searchForUnitStandard: 'SEARCH_FOR_UNIT_STANDARD',\r\n} as const);\r\n\r\nconst namespace = 'unitStandardState';\r\n\r\nexport { getterNames, mutationNames, actionNames, namespace };\r\n","import { IUnitStandard } from '@/api';\r\n\r\nexport interface IUnitStandardVm {\r\n unitStandardId: string;\r\n unitStandardNo: string;\r\n description: string;\r\n credits?: number;\r\n}\r\n\r\nexport function toUnitStandardVm(unitStandard: IUnitStandard): IUnitStandardVm {\r\n const vm: IUnitStandardVm = {\r\n unitStandardId: unitStandard.unitStandardId || '',\r\n unitStandardNo: unitStandard.frameworkElementCode || '',\r\n description: unitStandard.unitStandardName || '',\r\n credits: unitStandard.credits,\r\n };\r\n return vm;\r\n}\r\n","import type { GetterTree, MutationTree, ActionTree, Module } from 'vuex';\r\nimport type { RootState } from '@/store';\r\nimport { actionNames, getterNames, mutationNames, namespace } from './types';\r\nimport { ApiException, UnitStandardClientInstance } from '@/api';\r\nimport { toUnitStandardVm, IUnitStandardVm } from '@/models/UnitStandardVm';\r\n\r\nconst state = {\r\n // TODO add State\r\n selectedUnitStandard: null as IUnitStandardVm | null,\r\n searchedUnitStandard: null as IUnitStandardVm | null,\r\n unitStandardCodeToSearch: '',\r\n loading: false,\r\n error: null as ApiException | null,\r\n};\r\n\r\nexport type UnitStandardState = typeof state;\r\n\r\nconst getters: GetterTree = {\r\n // TODO add getters\r\n [getterNames.loading]: (state) => state.loading,\r\n [getterNames.getSelectedUnitStandard]: (state) =>\r\n state.selectedUnitStandard,\r\n [getterNames.getSearchedUnitStandard]: (state) =>\r\n state.searchedUnitStandard,\r\n};\r\n\r\nconst mutations: MutationTree = {\r\n // TODO add mutations\r\n [mutationNames.setSelectedUnitStandard](\r\n state,\r\n unitStandard: IUnitStandardVm,\r\n ) {\r\n state.selectedUnitStandard = unitStandard;\r\n },\r\n [mutationNames.setSearchedUnitStandard](\r\n state,\r\n unitStandard: IUnitStandardVm,\r\n ) {\r\n state.searchedUnitStandard = unitStandard;\r\n },\r\n [mutationNames.setError](state, error: ApiException) {\r\n state.error = error;\r\n },\r\n [mutationNames.setLoading](state, loading: boolean) {\r\n state.loading = loading;\r\n },\r\n [mutationNames.setUnitStandardCodeToSearch](\r\n state,\r\n unitStandardCodeToSearch: string,\r\n ) {\r\n state.unitStandardCodeToSearch = unitStandardCodeToSearch;\r\n },\r\n};\r\n\r\nconst actions: ActionTree = {\r\n // TODO add actions\r\n async [actionNames.fetchUnitStandard](context, code: number) {\r\n try {\r\n context.commit(mutationNames.setLoading, true);\r\n context.commit(mutationNames.setUnitStandardCodeToSearch, code);\r\n context.commit(mutationNames.setSearchedUnitStandard, null);\r\n const unitStandard = await UnitStandardClientInstance.get(code);\r\n if (unitStandard && unitStandard.result) {\r\n const unitStandardVm = toUnitStandardVm(unitStandard.result);\r\n context.commit(\r\n mutationNames.setSearchedUnitStandard,\r\n unitStandardVm,\r\n );\r\n }\r\n } catch (e) {\r\n context.commit(mutationNames.setError, e);\r\n } finally {\r\n context.commit(mutationNames.setLoading, false);\r\n }\r\n },\r\n};\r\n\r\nconst module: Module = {\r\n state: () => state,\r\n getters,\r\n mutations,\r\n actions,\r\n namespaced: true,\r\n};\r\n\r\nexport { namespace, getterNames, actionNames, mutationNames };\r\nexport default module;\r\n","const GetterNames = Object.freeze({\r\n accessToken: 'ACCESS_TOKEN',\r\n signedIn: 'SIGNED_IN',\r\n name: 'NAME',\r\n});\r\n\r\nconst MutationNames = Object.freeze({\r\n setAuthenticationResult: 'SET_AUTHENTICATION_RESULT',\r\n setInProgress: 'SET_IN_PROGRESS',\r\n setAccounts: 'SET_ACCOUNTS',\r\n});\r\n\r\nexport { GetterNames, MutationNames };\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-btn',_vm._g({staticClass:\"CnButton-font text-none font-weight-bold\",class:_vm.classes,attrs:{\"height\":\"45\",\"color\":_vm.buttonProps.color,\"outlined\":_vm.buttonProps.outlined,\"depressed\":_vm.buttonProps.depressed,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"to\":_vm.to}},_vm.$listeners),[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { defineComponent, computed } from '@vue/composition-api';\r\nimport { VBtn } from 'vuetify/lib/components';\r\nconst buttonTypes = ['primary', 'secondary'];\r\nexport default defineComponent({\r\n name: 'CnButton',\r\n props: {\r\n type: {\r\n type: String,\r\n required: false,\r\n default: 'primary',\r\n validator: (prop: string) => buttonTypes.includes(prop),\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n to: {\r\n type: String,\r\n },\r\n },\r\n components: {\r\n VBtn,\r\n },\r\n setup(props, context) {\r\n const isPrimary = computed(() => props.type === 'primary');\r\n const classes = computed(() => {\r\n return {\r\n // classes for when the button is primary\r\n 'white--text': isPrimary.value,\r\n // classes for when the button is secondary\r\n 'cn-dk-grey--text': !isPrimary.value,\r\n };\r\n });\r\n const buttonProps = computed(() => {\r\n return {\r\n depressed: isPrimary.value,\r\n // classes for when the button is secondary\r\n outlined: !isPrimary.value,\r\n color: props.type,\r\n };\r\n });\r\n return {\r\n isPrimary,\r\n classes,\r\n buttonProps,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-Button.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-Button.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cn-Button.vue?vue&type=template&id=3973c05b&scoped=true&\"\nimport script from \"./Cn-Button.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cn-Button.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cn-Button.vue?vue&type=style&index=0&id=3973c05b&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3973c05b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-data-table',{staticClass:\"striped-rows hover-rows-grey banner-grey\",attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"loading\":_vm.loading},on:{\"pagination\":function($event){return _vm.$emit('pagination', $event)}},scopedSlots:_vm._u([_vm._l((_vm.parentSlots),function(slot){return {key:slot,fn:function(props){return [_vm._t(slot,null,null,props)]}}}),_vm._l((_vm.headers.filter(function (header) { return header.hasOwnProperty('formatter'); }\n )),function(header){return {key:(\"item.\" + (header.value)),fn:function(ref){\n var value = ref.value;\nreturn [_vm._v(\" \"+_vm._s(header.formatter(value))+\" \")]}}})],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { computed, defineComponent } from '@vue/composition-api';\r\nimport { VDataTable } from 'vuetify/lib/components';\r\n\r\nexport default defineComponent({\r\n name: 'CnDataTable',\r\n components: {\r\n VDataTable,\r\n },\r\n props: {\r\n headers: {\r\n type: Array,\r\n },\r\n items: {\r\n type: Array,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n setup(props, context) {\r\n const parentSlots = computed(() => Object.keys(context.slots));\r\n return {\r\n parentSlots,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-DataTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-DataTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cn-DataTable.vue?vue&type=template&id=13a4f3ef&scoped=true&\"\nimport script from \"./Cn-DataTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cn-DataTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cn-DataTable.vue?vue&type=style&index=0&id=13a4f3ef&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13a4f3ef\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VDataTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"disabled\":_vm.readonly,\"close-on-content-click\":true,\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"auto\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('cn-text-field',_vm._g(_vm._b({class:_vm.widths,attrs:{\"append-icon\":\"mdi-calendar-blank-outline\",\"placeholderText\":_vm.placeholderText,\"outline-colour\":\"black\",\"readonly\":\"\",\"isDob\":\"\",\"full-width\":_vm.fullWidth,\"value\":_vm.value,\"rules\":_vm.rules}},'cn-text-field',attrs,false),on))]}}]),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('cn-date-picker',{attrs:{\"value\":_vm.value,\"isDob\":_vm.isDob},on:{\"input\":_vm.onItemSelected}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-date-picker',_vm._g({staticClass:\"CnDatePicker-font text-none font-weight-bold\",attrs:{\"show-adjacent-months\":_vm.showAdjacentMonths,\"color\":_vm.datePickerColour,\"value\":_vm.getMaxDate,\"max\":_vm.getMaxDate,\"isDob\":\"\"}},_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\r\nimport { defineComponent } from '@vue/composition-api';\r\nimport { VDatePicker } from 'vuetify/lib/components';\r\nexport default defineComponent({\r\n name: 'CnDatePicker',\r\n props: {\r\n datePickerColour: {\r\n type: String,\r\n default: 'primary',\r\n },\r\n showAdjacentMonths: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n value: {\r\n type: String,\r\n default: () =>\r\n new Date(Date.now() - new Date().getTimezoneOffset() * 60000)\r\n .toISOString()\r\n .substring(0, 10),\r\n },\r\n isDob: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n getMaxDate() {\r\n const today = new Date(\r\n Date.now() - new Date().getTimezoneOffset() * 60000,\r\n );\r\n if (this.$props.isDob) {\r\n const maxDate = today;\r\n maxDate.setFullYear(maxDate.getFullYear() - 10);\r\n return maxDate.toISOString().substring(0, 10);\r\n }\r\n return today.toISOString().substring(0, 10);\r\n },\r\n },\r\n components: {\r\n VDatePicker,\r\n },\r\n setup() {\r\n return {\r\n // TODO return stuff to template\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-DatePicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-DatePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cn-DatePicker.vue?vue&type=template&id=a1a9a0cc&scoped=true&\"\nimport script from \"./Cn-DatePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cn-DatePicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cn-DatePicker.vue?vue&type=style&index=0&id=a1a9a0cc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a1a9a0cc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\ninstallComponents(component, {VDatePicker})\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\r\nimport {\r\n defineComponent,\r\n reactive,\r\n toRefs,\r\n PropType,\r\n computed,\r\n} from '@vue/composition-api';\r\nimport { VMenu } from 'vuetify/lib/components';\r\nimport CnTextField from '@/components/Cn-TextField.vue';\r\nimport CnDatePicker from '@/components/Cn-DatePicker.vue';\r\nconst widthTypes = ['default', 'small', 'large'];\r\nexport default defineComponent({\r\n name: 'CnDateField',\r\n components: {\r\n VMenu,\r\n CnTextField,\r\n CnDatePicker,\r\n },\r\n props: {\r\n value: {\r\n type: String,\r\n required: false,\r\n },\r\n width: {\r\n type: String,\r\n required: false,\r\n default: 'default',\r\n validator: (prop: string) => widthTypes.includes(prop),\r\n },\r\n fullWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n rules: {\r\n type: Array as PropType boolean | string>>,\r\n default: () => [],\r\n },\r\n placeholderText: {\r\n type: String,\r\n default: 'Placeholder text',\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n isDob: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n emits: ['input'],\r\n setup(props, context) {\r\n // #region hooks\r\n // #endregion\r\n\r\n // #region data\r\n const state = reactive({\r\n isOpen: false,\r\n defaultWidth: computed(() => props.width === 'default'),\r\n smallWidth: computed(() => props.width === 'small'),\r\n largeWidth: computed(() => props.width === 'large'),\r\n });\r\n const widths = computed(() => {\r\n return {\r\n // classes for when the text field is standard width\r\n 'TextFieldWidth-default':\r\n state.defaultWidth && !props.fullWidth,\r\n // classes for when the text field is a smaller width\r\n 'TextFieldWidth-small': state.smallWidth && !props.fullWidth,\r\n // classes for when the text field is a larger width\r\n 'TextFieldWidth-large': state.largeWidth && !props.fullWidth,\r\n };\r\n });\r\n // #endregion\r\n\r\n // #region methods\r\n const onItemSelected = (value: string) => {\r\n context.emit('input', value);\r\n };\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n onItemSelected,\r\n widths,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-DateField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-DateField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cn-DateField.vue?vue&type=template&id=335d5ab1&\"\nimport script from \"./Cn-DateField.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cn-DateField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cn-DateField.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',_vm._g({staticClass:\"CnTextField-font body-1\",class:_vm.widths,attrs:{\"append-icon\":_vm.appendIcon,\"height\":44,\"outlined\":true,\"placeholder\":_vm.placeholderText,\"value\":_vm.value,\"color\":\"outlineColour\",\"background-color\":_vm.backgroundColour,\"dense\":\"\",\"loading\":_vm.loading,\"clearable\":_vm.clearable,\"full-width\":_vm.fullWidth,\"readonly\":_vm.readonly,\"required\":_vm.required,\"disabled\":_vm.disabled,\"rules\":_vm.rules}},_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport {\r\n defineComponent,\r\n computed,\r\n reactive,\r\n PropType,\r\n} from '@vue/composition-api';\r\nimport { VTextField } from 'vuetify/lib/components';\r\n\r\nconst widthTypes = ['default', 'small', 'large'];\r\n\r\nexport default defineComponent({\r\n name: 'CnTextField',\r\n props: {\r\n value: {\r\n type: String,\r\n required: false,\r\n default: '',\r\n },\r\n outlineColour: {\r\n type: String,\r\n default: 'secondary',\r\n },\r\n backgroundColour: {\r\n type: String,\r\n default: 'white',\r\n },\r\n placeholderText: {\r\n type: String,\r\n default: 'Placeholder text',\r\n },\r\n appendIcon: {\r\n type: String,\r\n default: '',\r\n },\r\n width: {\r\n type: String,\r\n required: false,\r\n default: 'default',\r\n validator: (prop: string) => widthTypes.includes(prop),\r\n },\r\n fullWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n required: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n clearable: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n rules: {\r\n type: Array as PropType boolean | string>>,\r\n default: () => [],\r\n },\r\n },\r\n setup(props) {\r\n // #region hooks\r\n // #endregion\r\n\r\n // #region data\r\n const state = reactive({\r\n defaultWidth: computed(() => props.width === 'default'),\r\n smallWidth: computed(() => props.width === 'small'),\r\n largeWidth: computed(() => props.width === 'large'),\r\n });\r\n\r\n const widths = computed(() => {\r\n return {\r\n // classes for when the text field is standard width\r\n 'TextFieldWidth-default':\r\n state.defaultWidth && !props.fullWidth,\r\n // classes for when the text field is a smaller width\r\n 'TextFieldWidth-small': state.smallWidth && !props.fullWidth,\r\n // classes for when the text field is a larger width\r\n 'TextFieldWidth-large': state.largeWidth && !props.fullWidth,\r\n };\r\n });\r\n // #endregion\r\n\r\n // #region methods\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n widths,\r\n };\r\n },\r\n components: {\r\n VTextField,\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-TextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-TextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cn-TextField.vue?vue&type=template&id=6ab212ed&\"\nimport script from \"./Cn-TextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cn-TextField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cn-TextField.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"form\",attrs:{\"value\":_vm.value},on:{\"input\":_vm.handleInput}},[_c('cn-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.unitStandards,\"loading\":_vm.loading},on:{\"pagination\":_vm.handlePagination},scopedSlots:_vm._u([{key:\"item\",fn:function(slotProps){return [_c('tr',[_c('td',[_c('result-row',{attrs:{\"item\":slotProps.item,\"readonly\":_vm.readonly},on:{\"date-achieved\":function($event){return _vm.handleAchievedChanged($event, slotProps.index)},\"is-rcc\":function($event){return _vm.handleIsRccChanged($event, slotProps.index)}}})],1)])]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.item.unitStandardCode)+\" \")])]),_c('v-col',[_c('div',[_vm._v(\" \"+_vm._s(_vm.item.unitStandardName)+\" \")])]),_c('v-col',[_c('div',{staticClass:\"red--text font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.item.saveStatus)+\" \")])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Date Achieved \")]),(!_vm.readonly && !_vm.item.isExistingResult)?_c('cn-date-field',{attrs:{\"placeholder-text\":\"e.g. 24/11/1995\",\"readonly\":_vm.readonly},model:{value:(_vm.dateAchieved),callback:function ($$v) {_vm.dateAchieved=$$v},expression:\"dateAchieved\"}}):_c('span',{staticClass:\"pl-8\"},[_vm._v(_vm._s(_vm.dateAchieved))])],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Is RCC? \"),(!_vm.readonly)?_c('span',{staticClass:\"red--text\"},[_vm._v(\"*\")]):_vm._e()]),(!_vm.readonly && !_vm.item.isExistingResult)?_c('v-switch',{model:{value:(_vm.isRcc),callback:function ($$v) {_vm.isRcc=$$v},expression:\"isRcc\"}}):_c('span',{staticClass:\"pl-8\"},[_vm._v(_vm._s(_vm.isRcc ? 'Yes' : 'No'))])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"red--text font-weight-bold\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.item.saveErrorMessage)+\" \")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\r\nimport {\r\n computed,\r\n defineComponent,\r\n PropType,\r\n reactive,\r\n toRefs,\r\n} from '@vue/composition-api';\r\nimport { VContainer, VRow, VCol, VSwitch } from 'vuetify/lib';\r\nimport { ITrainingPlanUnitStandard } from '@/api';\r\nimport CnDateField from '../Cn-DateField.vue';\r\nexport default defineComponent({\r\n name: 'ResultRow',\r\n components: {\r\n VContainer,\r\n VRow,\r\n VCol,\r\n VSwitch,\r\n CnDateField,\r\n },\r\n props: {\r\n item: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n emits: ['date-achieved', 'is-rcc'],\r\n setup(props, context) {\r\n // #region hooks\r\n // #endregion\r\n\r\n // #region data\r\n const state = reactive({\r\n dateAchieved: computed({\r\n get: () => props.item.dateAchieved,\r\n set: (value) => {\r\n context.emit('date-achieved', value);\r\n },\r\n }),\r\n isRcc: computed({\r\n get: () => props.item.isRcc == true,\r\n set: (value) => {\r\n context.emit('is-rcc', value);\r\n },\r\n }),\r\n });\r\n // #endregion\r\n\r\n // #region methods\r\n\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ResultRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ResultRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResultRow.vue?vue&type=template&id=2c6b7683&\"\nimport script from \"./ResultRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResultRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VCol,VContainer,VRow,VSwitch})\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\r\nimport {\r\n defineComponent,\r\n reactive,\r\n toRefs,\r\n computed,\r\n PropType,\r\n ComponentInstance,\r\n ref,\r\n} from '@vue/composition-api';\r\nimport { ITrainingPlanUnitStandard } from '@/api';\r\nimport { useVuexStore } from '@/hooks/useVuexStore';\r\nimport {\r\n mutationNames as EnterResultsMutations,\r\n namespace as EnterResultsNamespace,\r\n} from '@/store/modules/enterResults/EnterResults';\r\nimport CnDataTable from '@/components/Cn-DataTable.vue';\r\nimport ResultRow from './ResultRow.vue';\r\nimport { VForm } from 'vuetify/lib/components';\r\nimport { DataPagination } from 'vuetify/types';\r\n\r\ntype VFormComponent = ComponentInstance & { validate: () => boolean };\r\n\r\nexport default defineComponent({\r\n name: 'ResultsStep',\r\n components: { CnDataTable, ResultRow, VForm },\r\n props: {\r\n trainingPlanId: {\r\n type: String,\r\n },\r\n unitStandards: {\r\n type: Array as PropType,\r\n required: true,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n value: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n },\r\n setup(props, context) {\r\n // #region hooks\r\n const { commit } = useVuexStore(context);\r\n // #endregion\r\n\r\n // #region data\r\n const form = ref(null);\r\n const state = reactive({\r\n headers: computed(() => {\r\n const header = {\r\n text: props.trainingPlanId,\r\n align: 'start',\r\n value: 'trainingPlanUnitStandards',\r\n sortable: false,\r\n };\r\n return [header];\r\n }),\r\n });\r\n const pagination = ref();\r\n // #endregion\r\n\r\n // #region computed\r\n\r\n const currentPageOffset = computed(() => {\r\n if (pagination?.value) {\r\n return (pagination.value.page - 1) * pagination.value.itemsPerPage;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n\r\n // #endregion\r\n\r\n // #region methods\r\n const mutateTrainingPlanUnitStandard = (\r\n unitStandard: ITrainingPlanUnitStandard,\r\n index: number,\r\n ) => {\r\n commit(\r\n `${EnterResultsNamespace}/${EnterResultsMutations.setUnitStandard}`,\r\n { unitStandard, index },\r\n );\r\n };\r\n\r\n const handleAchievedChanged = (value: string, index: number): void => {\r\n const offsetIndex = currentPageOffset.value + index;\r\n \r\n const updatedUnitStandard = {\r\n ...props.unitStandards[offsetIndex],\r\n dateAchieved: value,\r\n } as ITrainingPlanUnitStandard;\r\n mutateTrainingPlanUnitStandard(updatedUnitStandard, offsetIndex);\r\n };\r\n const handleIsRccChanged = (value: boolean, index: number): void => {\r\n const offsetIndex = currentPageOffset.value + index;\r\n \r\n const updatedUnitStandard = {\r\n ...props.unitStandards[offsetIndex],\r\n isRcc: value,\r\n } as ITrainingPlanUnitStandard;\r\n mutateTrainingPlanUnitStandard(updatedUnitStandard, offsetIndex);\r\n };\r\n const handleInput = (value: boolean): void => {\r\n context.emit('input', value);\r\n };\r\n\r\n const validate = (): boolean => {\r\n return form.value?.validate() ?? false;\r\n };\r\n\r\n const handlePagination = (event: DataPagination) => {\r\n pagination.value = event;\r\n };\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n form,\r\n handleAchievedChanged,\r\n handleIsRccChanged,\r\n handleInput,\r\n validate,\r\n handlePagination,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ResultsStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ResultsStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResultsStep.vue?vue&type=template&id=209e7af5&\"\nimport script from \"./ResultsStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResultsStep.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VForm } from 'vuetify/lib/components/VForm';\ninstallComponents(component, {VForm})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"mt-12 pr-16 ps-16\"},[_c('h1',{staticClass:\"mb-10\"},[_vm._v(\"Enter Results\")]),_c('v-divider',{attrs:{\"color\":\"black\"}}),_c('v-stepper',{attrs:{\"vertical\":\"\",\"flat\":\"\"},model:{value:(_vm.currentStep),callback:function ($$v) {_vm.currentStep=$$v},expression:\"currentStep\"}},[_c('v-stepper-step',{attrs:{\"step\":\"1\"}},[_c('v-layout',{attrs:{\"d-flex\":\"\",\"justify-space-between\":\"\"}},[_c('h3',{staticClass:\"me-5 ml-n14\"},[_vm._v(\"Trainee details\")]),_c('cn-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentStep > 1 && _vm.selectedTrainee != null),expression:\"currentStep > 1 && selectedTrainee != null\"}],on:{\"click\":function($event){return _vm.changeTrainee()}}},[_vm._v(\" Change Trainee \")])],1)],1),_c('v-stepper-content',{staticClass:\"ml-n5\",attrs:{\"step\":\"1\"}},[(!_vm.showCreateNewTrainee)?_c('v-row',[_c('v-col',{staticClass:\"pr-12\"},[_c('cn-search',{staticClass:\"px-0 pt-1 pb-13\",attrs:{\"placeholder-text\":\"Search by NSN or training plan ID\",\"label-text\":\"Search by NSN or training plan ID\",\"showSearchButton\":true,\"loading\":_vm.trainingPlansLoading},on:{\"onSearch\":_vm.performTraineeSearch,\"onClear\":_vm.clearSearch}})],1),(!_vm.showSearchResult)?_c('v-divider',{attrs:{\"vertical\":\"\"}}):_vm._e()],1):_vm._e(),(_vm.showSearchResult && !_vm.showCreateNewTrainee)?_c('cn-data-table',{staticClass:\"mb-7\",attrs:{\"headers\":_vm.traineeHeaders,\"items\":_vm.searchedTrainees,\"loading\":_vm.trainingPlansLoading},scopedSlots:_vm._u([{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('cn-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.selectTraineeRow(item)}}},[_vm._v(\" Select \")])]}}],null,false,1555705585)}):_vm._e(),(_vm.showCreateNewTrainee)?_c('CreateNewTrainee',{staticClass:\"mb-7\",attrs:{\"errorMessages\":_vm.traineeCreationError,\"loading\":_vm.newTraineeCreationLoading},on:{\"onCreateTrainee\":_vm.createTrainee}}):_vm._e()],1),(_vm.selectedTrainee)?_c('p',[_c('span',{staticClass:\"pr-10\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainee.name)+\" \")]),_c('span',{staticClass:\"pr-10 pl-10\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainee.nSN)+\" \")])]):_vm._e(),_c('v-divider',{attrs:{\"color\":\"black\"}}),_c('v-stepper-step',{attrs:{\"step\":\"2\"}},[_c('v-layout',{attrs:{\"d-flex\":\"\",\"justify-space-between\":\"\"}},[(!_vm.showCasualCredit)?_c('h3',{staticClass:\"me-5 ml-n14\"},[_vm._v(\" Training Plans \")]):_vm._e(),(_vm.showCasualCredit)?_c('h3',{staticClass:\"me-5 ml-n14\"},[_vm._v(\" Casual Credits \")]):_vm._e(),_c('cn-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n _vm.currentStep > 2 &&\n _vm.selectedTrainee != null &&\n !_vm.showCasualCredit\n ),expression:\"\\n currentStep > 2 &&\\n selectedTrainee != null &&\\n !showCasualCredit\\n \"}],on:{\"click\":function($event){return _vm.changeTrainingPlan()}}},[_vm._v(\" Change Training Plan \")]),_c('cn-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n _vm.currentStep > 2 &&\n _vm.selectedTrainee != null &&\n _vm.showCasualCredit\n ),expression:\"\\n currentStep > 2 &&\\n selectedTrainee != null &&\\n showCasualCredit\\n \"}],on:{\"click\":function($event){return _vm.changeUnitStandard()}}},[_vm._v(\" Change unit standards \")])],1)],1),_c('v-stepper-content',{staticClass:\"ml-n5\",attrs:{\"complete\":_vm.currentStep > 2,\"step\":\"2\"}},[(!_vm.showCasualCredit)?_c('cn-data-table',{staticClass:\"mb-7\",attrs:{\"headers\":_vm.trainingPlansHeaders,\"items\":_vm.trainingPlansList},scopedSlots:_vm._u([{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('cn-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.selectTrainingPlanRow(item)}}},[_vm._v(\" Select \")])]}}],null,false,136622754)}):_vm._e(),(_vm.showCasualCredit)?_c('div',[_c('v-banner',{attrs:{\"color\":\"rgba(254, 25, 56, 0.25)\"}},[_vm._v(\"Note that Casual Credits cost $XX.YY per credit, and you will be invoiced for this charge. \")]),_c('div',{staticClass:\"font-weight-bold pt-14\"},[_vm._v(\" Unit Standard \"),_c('cn-text-field',{attrs:{\"placeholder-text\":\"Search by unit standard\",\"append-icon\":\"mdi-magnify\",\"clearable\":\"\",\"rules\":[_vm.unitStandardSearchRules.isNumber],\"loading\":_vm.unitStandardLoading},model:{value:(_vm.searchUnitStandardCode),callback:function ($$v) {_vm.searchUnitStandardCode=$$v},expression:\"searchUnitStandardCode\"}})],1),(_vm.unitStandardLoading)?_c('v-card',{staticClass:\"d-flex flex-row justify-center\",attrs:{\"flat\":\"\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_vm._e(),(_vm.searchedUnitStandardResult)?_c('cn-data-table',{staticClass:\"mb-7\",attrs:{\"headers\":_vm.unitStandardsHeaders,\"items\":[_vm.searchedUnitStandardResult]},scopedSlots:_vm._u([{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('cn-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.selectUnitStandardRow(item)}}},[_vm._v(\" Select \")])]}}],null,false,3547374508)}):_c('v-card',{attrs:{\"flat\":\"\"}},[(\n _vm.unitStandardCodeToSearch && !_vm.unitStandardLoading\n )?_c('h6',[_vm._v(\" Looks like there are no results for \"+_vm._s(_vm.unitStandardCodeToSearch)+\" \")]):_vm._e()])],1):_vm._e()],1),(_vm.selectedTrainingPlan)?_c('p',[_c('span',{staticClass:\"pr-13\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainingPlan.trainingPlanID)+\" \")]),_c('span',{staticClass:\"pl-13\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainingPlan.status)+\" \")])]):_vm._e(),(_vm.selectedUnitStandard)?_c('p',[_c('span',{staticClass:\"pr-13 pt-n10\"},[_vm._v(\" \"+_vm._s(_vm.selectedUnitStandard.unitStandardNo)+\" \")]),_c('span',{staticClass:\"pl-13\"},[_vm._v(\" Active \")])]):_vm._e(),_c('v-divider',{attrs:{\"color\":\"black\"}}),_c('v-stepper-step',{attrs:{\"step\":\"3\"}},[_c('h3',{staticClass:\"me-5 ml-n14\"},[_vm._v(\"Result\")])]),_c('v-stepper-content',{staticClass:\"ml-n5\",attrs:{\"step\":\"3\"}},[(_vm.showCasualCredit)?_c('div',[_c('v-banner',{attrs:{\"color\":\"rgba(254, 25, 56, 0.25)\"}},[_vm._v(\"Note that Casual Credits cost $XX.YY per credit, and you will be invoiced for this charge. \")]),(_vm.selectedUnitStandard)?_c('div',[_c('p',{staticClass:\"pt-8\"},[_c('span',{staticClass:\"pr-13 pl-6\"},[_vm._v(\" \"+_vm._s(_vm.selectedUnitStandard.unitStandardNo)+\" \")]),_c('span',{staticClass:\"pl-13\"},[_vm._v(\" \"+_vm._s(_vm.selectedUnitStandard.description)+\" \")])])]):_vm._e(),_c('v-form',{ref:\"casualCreditForm\",model:{value:(_vm.casualCreditValid),callback:function ($$v) {_vm.casualCreditValid=$$v},expression:\"casualCreditValid\"}},[_c('v-container',{staticClass:\"ma-2 pb-16\",attrs:{\"text-xs-center\":\"\"}},[_c('v-row',[_c('v-col',[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Date Achieved \")]),_c('span',{staticClass:\"red--text\"},[_c('strong',[_vm._v(\"* \")])]),_c('cn-date-field',{attrs:{\"placeholder-text\":\"e.g. 24/11/1995\",\"full-width\":\"\"},model:{value:(_vm.dateAchieved),callback:function ($$v) {_vm.dateAchieved=$$v},expression:\"dateAchieved\"}})],1),_c('v-col',[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Version \")]),_c('span',{staticClass:\"red--text\"},[_c('strong',[_vm._v(\"* \")])]),_c('v-select',{attrs:{\"height\":44,\"items\":_vm.unitStandardVersions,\"item-text\":\"version\",\"item-value\":\"unitStandardId\",\"rules\":_vm.versionRules,\"color\":\"black\",\"placeholder\":\"Select a version\",\"outlined\":\"\",\"dense\":\"\",\"return-object\":\"\"},model:{value:(_vm.selectedVersion),callback:function ($$v) {_vm.selectedVersion=$$v},expression:\"selectedVersion\"}})],1)],1)],1),_c('v-card',{staticClass:\"mb-12 pl-n16\",attrs:{\"color\":\"#E5E5E5\",\"height\":\"155px\",\"elevation\":\"0\"}},[_c('div',{staticClass:\"ps-4\"},[_c('v-row',[_c('v-col',[_c('label',{staticClass:\"body-1 font-weight-bold\"},[_vm._v(\" Invoice Details \")])])],1),_c('v-row',[_c('v-col',[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Debtor code \")]),_c('cn-text-field',{attrs:{\"full-width\":\"\",\"loading\":_vm.debtorNumberLoading,\"rules\":[\n _vm.debtorNumberRules.required ]},model:{value:(_vm.searchDebtorNumber),callback:function ($$v) {_vm.searchDebtorNumber=$$v},expression:\"searchDebtorNumber\"}})],1),_c('v-col',[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" PO Number \")]),_c('cn-text-field',{staticClass:\"pr-4\",attrs:{\"full-width\":\"\",\"rules\":[_vm.poNumberRules.required]},model:{value:(_vm.poNumber),callback:function ($$v) {_vm.poNumber=$$v},expression:\"poNumber\"}})],1)],1)],1),_c('span',{attrs:{\"color\":\"rgba(254, 25, 56, 0.25)\"}},[_vm._v(\" For external charging of casual credits, you will need to fill in a Casual Credit Reporting application. Please contact Quality Assurance to go through the process: \"),_c('a',{attrs:{\"href\":\"mailto: quality@connexis.org.nz\"}},[_vm._v(\" Quality@connexis.org.nz\")])])])],1)],1):_vm._e(),(!_vm.showCasualCredit && _vm.selectedTrainingPlan)?_c('div',[_c('results-step',{ref:\"trainingPlanForm\",attrs:{\"loading\":_vm.enterResultsLoading,\"training-plan-id\":_vm.selectedTrainingPlan.trainingPlanID,\"unit-standards\":_vm.unitStandardList},model:{value:(_vm.trainingPlansValid),callback:function ($$v) {_vm.trainingPlansValid=$$v},expression:\"trainingPlansValid\"}})],1):_vm._e()]),(_vm.showCasualCredit && _vm.currentStep == 3)?_c('div',[_c('v-divider',{attrs:{\"color\":\"black\"}}),_c('v-spacer',{staticClass:\"pb-8\"}),(_vm.currentStep === 3)?_c('cn-button',{attrs:{\"loading\":_vm.debtorNumberLoading,\"disabled\":_vm.debtorNumberLoading},on:{\"click\":function($event){$event.stopPropagation();return _vm.handleCasualCreditEnterResultsClicked.apply(null, arguments)}}},[_vm._v(\" Enter Results \")]):_vm._e(),_c('confirm-casual-credit-results-dialog',{attrs:{\"is-open\":_vm.casualCreditDialog,\"selected-trainee\":_vm.selectedTrainee,\"selected-unit-standard\":_vm.selectedUnitStandard,\"debtorCode\":_vm.searchDebtorNumber,\"dateAchieved\":_vm.dateAchieved,\"poNumber\":_vm.poNumber,\"isSubmitted\":_vm.isAlreadySubmitted,\"apiError\":_vm.saveError,\"loading\":_vm.saveConfirmLoading},on:{\"close\":_vm.handleCasualCreditConfirmClose,\"confirm\":_vm.handleCasualCreditConfirm}})],1):_vm._e(),(!_vm.showCasualCredit && _vm.selectedTrainingPlan)?_c('div',[_c('v-divider',{attrs:{\"color\":\"black\"}}),_c('v-spacer',{staticClass:\"pb-8\"}),(_vm.currentStep === 3 && !_vm.enterResultsLoading)?_c('cn-button',{on:{\"click\":function($event){$event.stopPropagation();return _vm.handleTrainingPlanEntered.apply(null, arguments)}}},[_vm._v(\" Enter Results \")]):_vm._e(),_c('confirm-training-plan-results-dialog',{attrs:{\"is-open\":_vm.trainingPlanDialog,\"selected-trainee\":_vm.selectedTrainee,\"selected-training-plan\":_vm.selectedTrainingPlan,\"unit-standard-list\":_vm.enteredUnitStandardList,\"existing-unit-standard-list\":_vm.existingUnitStandardList,\"isSubmitted\":_vm.isAlreadySubmitted,\"apiError\":_vm.saveError,\"loading\":_vm.saveConfirmLoading},on:{\"close\":_vm.handleTrainingPlanConfirmClose,\"confirm\":_vm.handleTrainingPlanConfirm}})],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"ps-0\"},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-text-field',{staticClass:\"CnTextField-font body-1\",class:_vm.widths,attrs:{\"height\":44,\"outlined\":true,\"placeholder\":_vm.placeholderText,\"rules\":[_vm.rules.required],\"label\":_vm.labelText,\"color\":\"outlineColour\",\"dense\":\"\",\"clearable\":\"\",\"append-icon\":\"mdi-magnify\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search()},\"click:clear\":function($event){return _vm.clear()}},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}}),_c('v-card-actions',{staticClass:\"px-0 pt-0\"},[_vm._t(\"before-search-button\"),(_vm.showSearchButton)?_c('cn-button',{attrs:{\"type\":\"primary\",\"loading\":_vm.loading,\"disabled\":_vm.loading},on:{\"click\":_vm.search}},[_vm._v(\" Search \")]):_vm._e(),_vm._t(\"after-search-button\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\r\nimport { defineComponent, computed, ref, reactive } from '@vue/composition-api';\r\n\r\nimport { VTextField } from 'vuetify/lib/components';\r\nimport CnButton from '@/components/Cn-Button.vue';\r\n\r\nconst widthTypes = ['default', 'small', 'large'];\r\n\r\nexport default defineComponent({\r\n name: 'CnSearch',\r\n emits: ['onSearch', 'onClear'],\r\n props: {\r\n outlineColour: {\r\n type: String,\r\n default: 'secondary',\r\n },\r\n placeholderText: {\r\n type: String,\r\n default: 'Placeholder text',\r\n },\r\n labelText: {\r\n type: String,\r\n },\r\n width: {\r\n type: String,\r\n required: false,\r\n default: 'default',\r\n validator: (prop: string) => widthTypes.includes(prop),\r\n },\r\n showSearchButton: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n setup(props: { width: string }, context) {\r\n const searchText = ref('');\r\n const defaultWidth = computed(() => props.width === 'default');\r\n const smallWidth = computed(() => props.width === 'small');\r\n const largeWidth = computed(() => props.width === 'large');\r\n\r\n const widths = computed(() => {\r\n return {\r\n // classes for when the text field is standard width\r\n 'TextFieldWidth-default': defaultWidth.value,\r\n // classes for when the text field is a smaller width\r\n 'TextFieldWidth-small': smallWidth.value,\r\n // classes for when the text field is a larger width\r\n 'TextFieldWidth-large': largeWidth.value,\r\n };\r\n });\r\n\r\n const search = () => {\r\n context.emit('onSearch', searchText.value);\r\n };\r\n\r\n const clear = () => {\r\n context.emit('onClear');\r\n };\r\n\r\n const rules = reactive({\r\n required: computed((value) => !!value || 'Required.'),\r\n });\r\n\r\n return {\r\n searchText,\r\n widths,\r\n search,\r\n clear,\r\n rules,\r\n };\r\n },\r\n components: {\r\n VTextField,\r\n CnButton,\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-Search.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-Search.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cn-Search.vue?vue&type=template&id=9d30fb04&\"\nimport script from \"./Cn-Search.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cn-Search.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cn-Search.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCardActions,VContainer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.isOpen,\"persistent\":\"\",\"max-width\":\"1200\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"dark\":\"\",\"icon\":\"\"},on:{\"click\":_vm.handleOnClose}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.selectedTrainee)?_c('v-container',{staticClass:\"pr-16 ps-16 mb-n6\"},[_c('h1',{staticClass:\"mb-10\"},[_vm._v(\"Confirm Results\")]),_c('h3',{staticClass:\"me-5\"},[_vm._v(\"Trainee details\")]),_c('p',{staticClass:\"pt-8\"},[_c('span',{staticClass:\"pr-10\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainee.name)+\" \")]),_c('span',{staticClass:\"pr-10 pl-10\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainee.nSN)+\" \")])])]):_vm._e(),(_vm.selectedTrainingPlan)?_c('v-container',{staticClass:\"pr-16 ps-16 mb-n6\"},[_c('h3',{staticClass:\"me-5\"},[_vm._v(\"Training Plans\")]),_c('p',{staticClass:\"pt-8\"},[_c('span',{staticClass:\"pr-13 pt-n10\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainingPlan.trainingPlanID)+\" \")]),_c('span',{staticClass:\"pl-13\"},[_vm._v(\" Active \")])])]):_vm._e(),_c('v-container',{staticClass:\"pr-16 ps-16 mb-n6\"},[_c('h3',{staticClass:\"me-5\"},[_vm._v(\"Results\")]),_c('results-step',{attrs:{\"readonly\":\"\",\"training-plan-id\":_vm.selectedTrainingPlan.trainingPlanID,\"unit-standards\":_vm.unitStandardList,\"value\":true}}),(_vm.apiError != '')?_c('p',{staticClass:\"pt-8\"},[_c('span',{staticClass:\"pr-13 pt-n10 red--text\"},[_vm._v(\" Error occurred when trying to save. Please fix the issues and try again or contact support team.\"),_c('br')])]):_vm._e()],1),_c('v-card-actions',{staticClass:\"pt-14 pb-10 mr-12\"},[_c('v-spacer'),_c('cn-button',{on:{\"click\":_vm.handleOnClose}},[_vm._v(\" Close \")]),_c('cn-button',{attrs:{\"loading\":_vm.loading,\"disabled\":_vm.loading || _vm.isSubmitted},on:{\"click\":_vm.handleConfirm}},[_vm._v(\" Confirm \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\r\nimport {\r\n defineComponent,\r\n PropType,\r\n reactive,\r\n toRefs,\r\n} from '@vue/composition-api';\r\nimport {\r\n VDialog,\r\n VCard,\r\n VToolbar,\r\n VSpacer,\r\n VBtn,\r\n VIcon,\r\n VContainer,\r\n VCardActions,\r\n} from 'vuetify/lib/components';\r\nimport CnButton from '@/components/Cn-Button.vue';\r\nimport ResultsStep from './ResultsStep.vue';\r\nimport { TrainingPlanVm } from '@/models/TrainingPlanVm';\r\nimport { ITrainingPlanUnitStandard } from '@/api';\r\nexport default defineComponent({\r\n name: 'ConfirmTrainingPlanResultsDialog',\r\n components: {\r\n VDialog,\r\n VCard,\r\n VToolbar,\r\n VSpacer,\r\n VBtn,\r\n VIcon,\r\n VContainer,\r\n VCardActions,\r\n CnButton,\r\n ResultsStep,\r\n },\r\n emits: ['close', 'confirm'],\r\n props: {\r\n isOpen: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n selectedTrainee: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n selectedTrainingPlan: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n unitStandardList: {\r\n type: Array as PropType,\r\n required: true,\r\n },\r\n existingUnitStandardList: {\r\n type: Array as PropType,\r\n required: true,\r\n },\r\n isSubmitted: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n apiError: {\r\n type: String,\r\n required: true,\r\n },\r\n loading: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n },\r\n setup(props, context) {\r\n // #region hooks\r\n // #endregion\r\n\r\n // #region data\r\n const state = reactive({\r\n // TODO add state here\r\n });\r\n // #endregion\r\n\r\n // #region methods\r\n const handleOnClose = (e: MouseEvent) => {\r\n context.emit('close', e);\r\n };\r\n\r\n const handleConfirm = (e: MouseEvent) => {\r\n context.emit('confirm', e);\r\n };\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n handleOnClose,\r\n handleConfirm,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmTrainingPlanResultsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmTrainingPlanResultsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConfirmTrainingPlanResultsDialog.vue?vue&type=template&id=4d759766&\"\nimport script from \"./ConfirmTrainingPlanResultsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConfirmTrainingPlanResultsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VContainer,VDialog,VIcon,VSpacer,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.isOpen,\"persistent\":\"\",\"max-width\":\"1200\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"primary\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"dark\":\"\",\"icon\":\"\"},on:{\"click\":_vm.handleOnClose}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.selectedTrainee && _vm.selectedUnitStandard)?_c('v-container',{staticClass:\"pr-16 ps-16 mb-n6\"},[_c('h1',{staticClass:\"mb-10\"},[_vm._v(\"Confirm Results\")]),_c('h3',{staticClass:\"me-5\"},[_vm._v(\"Trainee details\")]),_c('p',{staticClass:\"pt-8\"},[_c('span',{staticClass:\"pr-10\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainee.name)+\" \")]),_c('span',{staticClass:\"pr-10 pl-10\"},[_vm._v(\" \"+_vm._s(_vm.selectedTrainee.nSN)+\" \")])]),_c('h3',{staticClass:\"me-5\"},[_vm._v(\"Result\")]),_c('p',{staticClass:\"pt-1\"},[_c('span',{staticClass:\"pr-13 pt-n10\"},[_vm._v(\" \"+_vm._s(_vm.selectedUnitStandard.unitStandardNo)+\" \")]),_c('span',{staticClass:\"pl-13\"},[_vm._v(\" \"+_vm._s(_vm.selectedUnitStandard.description)+\" \")])]),_c('p',{staticClass:\"pb-8\"},[_c('span',{staticClass:\"pr-8 pt-n10 font-weight-bold\"},[_vm._v(\"Date achieved: \")]),_c('span',[_vm._v(_vm._s(_vm.dateAchieved))])]),_c('v-card',{staticClass:\"mb-12 pl-n16\",attrs:{\"color\":\"#E5E5E5\",\"height\":\"100px\",\"elevation\":\"0\"}},[_c('div',{staticClass:\"ps-4\"},[_c('v-row',[_c('v-col',[_c('label',{staticClass:\"body-1 font-weight-bold\"},[_vm._v(\" Invoice Details \")])])],1),_c('v-row',[_c('v-col',[_c('label',{staticClass:\"pr-8 font-weight-bold\"},[_vm._v(\" Debtor code: \")]),_c('label',{staticClass:\"pl-5\"},[_vm._v(\" \"+_vm._s(_vm.debtorCode)+\" \")])]),_c('v-col',[_c('label',{staticClass:\"pr-8 font-weight-bold\"},[_vm._v(\" PO Number: \")]),_c('label',{staticClass:\"pl-5\"},[_vm._v(\" \"+_vm._s(_vm.poNumber)+\" \")])])],1)],1)]),(_vm.apiError != '')?_c('p',{staticClass:\"pt-8 font-weight-bold\"},[_c('span',{staticClass:\"pr-13 pt-n10 red--text\"},[_vm._v(\" Error occurred when trying to save. Please fix the issues and try again or contact support team.\"),_c('br'),_vm._v(\" \"+_vm._s(_vm.apiError)+\" \")])]):_vm._e(),(_vm.isSubmitted && _vm.apiError == '')?_c('p',{staticClass:\"pt-8 font-weight-bold\"},[_c('span',{staticClass:\"pr-13 pt-n10 red--text\"},[_vm._v(\" Successfully saved \")])]):_vm._e()],1):_vm._e(),_c('v-card-actions',{staticClass:\"pt-14 pb-10 mr-12\"},[_c('v-spacer'),_c('cn-button',{attrs:{\"loading\":_vm.loading,\"disabled\":_vm.loading || _vm.isSubmitted},on:{\"click\":_vm.handleConfirm}},[_vm._v(\" Confirm \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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\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\r\nimport {\r\n defineComponent,\r\n PropType,\r\n reactive,\r\n toRefs,\r\n} from '@vue/composition-api';\r\nimport {\r\n VDialog,\r\n VCard,\r\n VToolbar,\r\n VSpacer,\r\n VBtn,\r\n VIcon,\r\n VContainer,\r\n VCardActions,\r\n} from 'vuetify/lib/components';\r\nimport CnButton from '@/components/Cn-Button.vue';\r\nimport { TrainingPlanVm } from '@/models/TrainingPlanVm';\r\nimport { IUnitStandardVm } from '@/models/UnitStandardVm';\r\n\r\nexport default defineComponent({\r\n name: 'ConfirmCasualCreditResultsDialog',\r\n components: {\r\n VDialog,\r\n VCard,\r\n VToolbar,\r\n VSpacer,\r\n VBtn,\r\n VIcon,\r\n VContainer,\r\n VCardActions,\r\n CnButton,\r\n },\r\n emits: ['close', 'confirm'],\r\n props: {\r\n isOpen: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n selectedTrainee: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n selectedUnitStandard: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n debtorCode: {\r\n type: String,\r\n required: false,\r\n },\r\n dateAchieved: {\r\n type: String,\r\n required: true\r\n },\r\n poNumber:{\r\n type: String,\r\n required: false\r\n },\r\n isSubmitted: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n apiError:{\r\n type: String,\r\n required: true,\r\n },\r\n loading: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n },\r\n setup(props, context) {\r\n // #region hooks\r\n // #endregion\r\n\r\n // #region data\r\n const state = reactive({\r\n // TODO add state here\r\n });\r\n // #endregion\r\n\r\n // #region methods\r\n const handleOnClose = (e: MouseEvent) => {\r\n context.emit('close', e);\r\n };\r\n\r\n const handleConfirm = (e: MouseEvent) => {\r\n context.emit('confirm', e);\r\n };\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n handleOnClose,\r\n handleConfirm,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmCasualCreditResultsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmCasualCreditResultsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConfirmCasualCreditResultsDialog.vue?vue&type=template&id=071c1003&\"\nimport script from \"./ConfirmCasualCreditResultsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConfirmCasualCreditResultsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VContainer,VDialog,VIcon,VRow,VSpacer,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h2',{staticClass:\"mb-3\"},[_vm._v(\"Create New Trainee\")]),_c('v-form',[_c('v-container',{staticClass:\"pa-0\",attrs:{\"text-xs-center\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"pb-0\"},[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" First Name \")]),_c('span',{staticClass:\"red--text\"},[_c('strong',[_vm._v(\"* \")])]),_c('cn-text-field',{ref:\"fNameTextField\",attrs:{\"rules\":[function () { return !!_vm.fName || 'First name is required'; }],\"placeholder-text\":\"First Name\",\"clearable\":\"\",\"width\":\"large\",\"required\":\"\"},model:{value:(_vm.fName),callback:function ($$v) {_vm.fName=$$v},expression:\"fName\"}})],1),_c('v-col',{staticClass:\"pb-0\"},[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Last Name \")]),_c('span',{staticClass:\"red--text\"},[_c('strong',[_vm._v(\"* \")])]),_c('cn-text-field',{ref:\"lNameTextField\",attrs:{\"rules\":[function () { return !!_vm.lName || 'Last name is required'; }],\"placeholder-text\":\"Last Name\",\"clearable\":\"\",\"width\":\"large\",\"required\":\"\"},model:{value:(_vm.lName),callback:function ($$v) {_vm.lName=$$v},expression:\"lName\"}})],1)],1),_c('v-row',[_c('v-col',[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Date of birth \")]),_c('span',{staticClass:\"red--text\"},[_c('strong',[_vm._v(\"* \")])]),_c('cn-date-field',{ref:\"dobTextField\",attrs:{\"rules\":[\n function () { return !!_vm.dob || 'Date of birth is required'; } ],\"isDob\":\"\",\"placeholder-text\":\"Click to select date\",\"width\":\"large\"},model:{value:(_vm.dob),callback:function ($$v) {_vm.dob=$$v},expression:\"dob\"}})],1),_c('v-col',[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Gender \")]),_c('span',{staticClass:\"red--text\"},[_c('strong',[_vm._v(\"* \")])]),_c('cn-select',{attrs:{\"width\":\"large\",\"items\":_vm.genderItems},model:{value:(_vm.gender),callback:function ($$v) {_vm.gender=$$v},expression:\"gender\"}})],1)],1),_c('v-row',[_c('v-col',[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\" Proof of identification \")]),_c('span',{staticClass:\"red--text\"},[_c('strong',[_vm._v(\"* \")])]),_c('span',{staticClass:\"proof-of-id-subtext pb-5\"},[(_vm.selectedFile == undefined)?_c('span',[_vm._v(\" Please upload a copy or image of the trainee's passport or drivers license \")]):_vm._e(),(_vm.selectedFile != undefined)?_c('span',[_vm._v(\" \"+_vm._s(_vm.selectedFile.name)+\" - (\"+_vm._s(_vm.getFileSizeString(_vm.selectedFile.size))+\") \")]):_vm._e()]),_c('input',{attrs:{\"id\":\"fileUpload\",\"type\":\"file\",\"accept\":\"image/*, .pdf\",\"hidden\":\"\",\"required\":\"\"},on:{\"change\":_vm.handleSelectedFiles}}),_c('v-flex',{staticClass:\"mb-6\"},[_c('cn-button',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){return _vm.chooseFiles()}}},[(_vm.selectedFile != undefined)?_c('span',[_vm._v(\"Re-\")]):_vm._e(),_vm._v(\"Upload \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-tray-arrow-up\")])],1)],1),_c('v-flex',[_c('cn-button',{attrs:{\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.createNewTrainee()}}},[_vm._v(\" Create new trainee \")])],1)],1),_c('v-col',_vm._l((_vm.errorMessages),function(error,i){return _c('div',{key:i,staticClass:\"red--text font-weight-bold\"},[_vm._v(\" \"+_vm._s(error)+\" \")])}),0)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',_vm._g({class:_vm.widths,attrs:{\"append-icon\":\"mdi-chevron-down\",\"height\":44,\"items\":_vm.items,\"label\":_vm.label,\"full-width\":_vm.fullWidth,\"placeholder\":_vm.placeholderText,\"outlined\":\"\",\"dense\":\"\"}},_vm.$listeners),[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { computed, defineComponent, reactive, toRefs } from '@vue/composition-api';\r\nimport { VSelect } from 'vuetify/lib/components';\r\nconst widthTypes = ['default', 'small', 'large'];\r\nexport default defineComponent({\r\n name: 'CnSelect',\r\n components: { VSelect },\r\n props: {\r\n items: {\r\n type: Array,\r\n required: true,\r\n default: () => [],\r\n },\r\n label: {\r\n type: String,\r\n required: false,\r\n },\r\n fullWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n placeholderText: {\r\n type: String,\r\n default: 'Select',\r\n },\r\n width: {\r\n type: String,\r\n required: false,\r\n default: 'default',\r\n validator: (prop: string) => widthTypes.includes(prop),\r\n },\r\n },\r\n setup(props, context) {\r\n // #region hooks\r\n // #endregion\r\n\r\n // #region data\r\n const state = reactive({\r\n defaultWidth: computed(() => props.width === 'default'),\r\n smallWidth: computed(() => props.width === 'small'),\r\n largeWidth: computed(() => props.width === 'large'),\r\n });\r\n\r\n const widths = computed(() => {\r\n return {\r\n // classes for when the text field is standard width\r\n 'TextFieldWidth-default':\r\n state.defaultWidth && !props.fullWidth,\r\n // classes for when the text field is a smaller width\r\n 'TextFieldWidth-small': state.smallWidth && !props.fullWidth,\r\n // classes for when the text field is a larger width\r\n 'TextFieldWidth-large': state.largeWidth && !props.fullWidth,\r\n };\r\n });\r\n // #endregion\r\n\r\n // #region methods\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n widths,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-Select.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Cn-Select.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cn-Select.vue?vue&type=template&id=312698c2&\"\nimport script from \"./Cn-Select.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cn-Select.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cn-Select.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\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\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\r\nimport {\r\n defineComponent,\r\n reactive,\r\n toRefs,\r\n computed,\r\n} from '@vue/composition-api';\r\nimport CnTextField from '@/components/Cn-TextField.vue';\r\nimport CnDateField from '@/components/Cn-DateField.vue';\r\nimport CnButton from '@/components/Cn-Button.vue';\r\nimport CnSelect from '@/components/Cn-Select.vue';\r\nexport default defineComponent({\r\n name: 'CreateNewTrainee',\r\n emits: ['onCreateTrainee'],\r\n components: {\r\n CnTextField,\r\n CnDateField,\r\n CnButton,\r\n CnSelect,\r\n },\r\n props: {\r\n errorMessages: {\r\n type: [],\r\n required: false,\r\n default: [],\r\n },\r\n loading: {\r\n type: Boolean,\r\n required: false,\r\n default: false,\r\n },\r\n },\r\n setup(props, context) {\r\n // #region hooks\r\n // #endregion\r\n\r\n // #region data\r\n const genders = Object.freeze({\r\n Male: 1,\r\n Female: 2,\r\n Unknown: 3,\r\n } as const);\r\n\r\n const state = reactive({\r\n fName: null as string | null,\r\n lName: null as string | null,\r\n dob: null as string | null,\r\n gender: '' as any,\r\n selectedFile: undefined as File | undefined,\r\n genderItems: Object.keys(genders).map((key) => ({\r\n text: key,\r\n value: genders[key as keyof typeof genders],\r\n })),\r\n });\r\n // #endregion\r\n\r\n // #region methods\r\n const chooseFiles = () => {\r\n document.getElementById('fileUpload')?.click();\r\n };\r\n const handleSelectedFiles = (e: Event) => {\r\n state.selectedFile = undefined;\r\n e.preventDefault();\r\n const files = (e.target as HTMLInputElement).files;\r\n if (files != undefined && files?.length > 0) {\r\n if (files[0].size <= 1024 * 1024 * 2) {\r\n state.selectedFile = files[0];\r\n } else {\r\n alert('File size cannot exceed more than 2 MB');\r\n }\r\n }\r\n };\r\n const getFileSizeString = (size: number) => {\r\n if (size < 1024) {\r\n return `${size} bytes`;\r\n } else if (size > 1024 && size <= 1024 * 1024) {\r\n return `${(size / 1024).toFixed(2)} KB`;\r\n } else {\r\n return `${(size / (1024 * 1024)).toFixed(2)} MB`;\r\n }\r\n };\r\n\r\n const createNewTrainee = () => {\r\n const data: FormData = new FormData();\r\n data.append('fName', state.fName as string);\r\n data.append('lName', state.lName as string);\r\n data.append('dob', state.dob as string);\r\n data.append('gender', state.gender as string);\r\n data.append(\r\n 'proofFile',\r\n state.selectedFile as File,\r\n `ProofOfIdentity - ${state.selectedFile?.name}`,\r\n );\r\n context.emit('onCreateTrainee', data);\r\n };\r\n // #endregion\r\n\r\n // #region lifeCycle\r\n // #endregion\r\n\r\n return {\r\n ...toRefs(state),\r\n chooseFiles,\r\n handleSelectedFiles,\r\n getFileSizeString,\r\n createNewTrainee,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateNewTrainee.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateNewTrainee.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateNewTrainee.vue?vue&type=template&id=022b5085&\"\nimport script from \"./CreateNewTrainee.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateNewTrainee.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateNewTrainee.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VFlex,VForm,VIcon,VRow})\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\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\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\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\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\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\n\n\n\n\n\r\nimport {\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n reactive,\r\n ref,\r\n toRefs,\r\n watch,\r\n ComponentInstance,\r\n watchEffect,\r\n} from '@vue/composition-api';\r\nimport { InteractionType } from '@azure/msal-browser';\r\nimport { loginRequest } from '@/authConfig';\r\nimport { useMsalAuthentication } from '@/hooks/useMsalAuthentication';\r\nimport {\r\n getterNames as TrainingPlansGetters,\r\n actionNames as TrainingPlansActions,\r\n namespace as TrainingPlansNamespace,\r\n mutationNames as TrainingPlansMutations,\r\n} from '@/store/modules/myTrainingPlans/MyTrainingPlans';\r\nimport {\r\n getterNames as UnitStandardGetters,\r\n actionNames as UnitStandardActions,\r\n namespace as UnitStandardNamespace,\r\n mutationNames as UnitStandardMutations,\r\n} from '@/store/modules/unitStandard/UnitStandard';\r\nimport {\r\n actionNames as EnterResultsActions,\r\n namespace as EnterResultsNamespace,\r\n mutationNames as EnterResultsMutation,\r\n} from '@/store/modules/enterResults/EnterResults';\r\nimport {\r\n actionNames as UnitStandardVersionsActions,\r\n namespace as UnitStandardVersionsNamespace,\r\n mutationNames as UnitStandardVersionsMutations,\r\n} from '@/store/modules/unitStandardVersions/UnitStandardVersions';\r\nimport {\r\n namespace as CreateResultNamespace,\r\n mutationNames as CreateResultMutations,\r\n actionNames as CreateResultActions,\r\n getterNames as CreateResultGetters,\r\n} from '@/store/modules/createResult/CreateResult';\r\nimport {\r\n actionNames as AccountActions,\r\n namespace as AccountNamespace,\r\n mutationNames as AccountMutations,\r\n} from '@/store/modules/account/Account';\r\nimport {\r\n actionNames as TraineeActions,\r\n namespace as TraineeNamespace,\r\n mutationNames as TraineeMutations,\r\n getterNames as TraineeGetters,\r\n} from '@/store/modules/trainee/Trainee';\r\nimport {\r\n VLayout,\r\n VRow,\r\n VCol,\r\n VSpacer,\r\n VDivider,\r\n VStepper,\r\n VStepperStep,\r\n VStepperContent,\r\n VContainer,\r\n VBanner,\r\n VForm,\r\n VSelect,\r\n VCard,\r\n} from 'vuetify/lib/components';\r\nimport CnDataTable from '@/components/Cn-DataTable.vue';\r\nimport CnButton from '@/components/Cn-Button.vue';\r\nimport CnTextField from '@/components/Cn-TextField.vue';\r\nimport { TrainingPlanVm } from '@/models/TrainingPlanVm';\r\nimport { IUnitStandardVm } from '@/models/UnitStandardVm';\r\nimport CnSearch from '@/components/Cn-Search.vue';\r\nimport CnDateField from '@/components/Cn-DateField.vue';\r\nimport ResultsStep from '@/components/EnterResults/ResultsStep.vue';\r\nimport {\r\n ApiException,\r\n Contact,\r\n IAccountDto,\r\n ITrainingPlanUnitStandard,\r\n} from '@/api';\r\nimport ConfirmTrainingPlanResultsDialog from '@/components/EnterResults/ConfirmTrainingPlanResultsDialog.vue';\r\nimport ConfirmCasualCreditResultsDialog from '@/components/EnterResults/ConfirmCasualCreditResultsDialog.vue';\r\nimport { useVuexStore } from '@/hooks/useVuexStore';\r\nimport CreateNewTrainee from '@/components/EnterResults/CreateNewTrainee.vue';\r\nimport { debounce } from 'lodash-es';\r\nimport { ITrainingPlanUnitStandardVm } from '@/models/TrainingPlanUnitStandardVm';\r\nimport { format } from 'date-fns';\r\n\r\ntype VFormComponent = ComponentInstance & { validate: () => boolean };\r\n\r\nexport default defineComponent({\r\n name: 'EnterResults',\r\n components: {\r\n VLayout,\r\n VDivider,\r\n VRow,\r\n VCol,\r\n VSpacer,\r\n VStepper,\r\n VStepperStep,\r\n VStepperContent,\r\n CnSearch,\r\n VBanner,\r\n VForm,\r\n VSelect,\r\n VCard,\r\n CnDataTable,\r\n CnButton,\r\n VContainer,\r\n CnTextField,\r\n CnDateField,\r\n ResultsStep,\r\n ConfirmTrainingPlanResultsDialog,\r\n ConfirmCasualCreditResultsDialog,\r\n CreateNewTrainee,\r\n },\r\n setup(props, context) {\r\n //#region hooks\r\n const { accessToken, acquireToken } = useMsalAuthentication(\r\n context,\r\n InteractionType.Redirect,\r\n loginRequest,\r\n );\r\n const { state, commit, dispatch } = useVuexStore(context);\r\n\r\n //#endregion\r\n\r\n //#region data\r\n // ref for the results VForm\r\n const casualCreditForm = ref(null);\r\n const trainingPlanForm = ref(null);\r\n const currentStep = ref(1);\r\n\r\n // validation rules for unitStandard Search field\r\n const unitStandardSearchRules = {\r\n isNumber: (value: string | null) =>\r\n value?.match(/\\d+/) != null ||\r\n value == null ||\r\n 'Invalid Unit Standard code',\r\n };\r\n\r\n // validation rules for the PO Number field\r\n const poNumberRules = {\r\n required: (value: string | null) => {\r\n if (\r\n step3State.searchDebtorNumber == null ||\r\n step3State.searchDebtorNumber.length < 1\r\n ) {\r\n return true;\r\n }\r\n if (value != null && value.length > 0) {\r\n return true;\r\n }\r\n return 'Please enter PO Number';\r\n },\r\n };\r\n\r\n const debtorNumberRules = {\r\n required: () => {\r\n if (step3State.isValidDebtorNumber) {\r\n return true;\r\n }\r\n return 'Invalid Debtor Code';\r\n },\r\n };\r\n\r\n const searchedTrainingPlans = computed(\r\n () =>\r\n context.root.$store.state[TrainingPlansNamespace].searchedPlans,\r\n );\r\n\r\n const traineeTrainingPlans = computed(() => {\r\n return context.root.$store.getters[\r\n `${TrainingPlansNamespace}/${TrainingPlansGetters.getTraineeTrainingPlans}`\r\n ];\r\n });\r\n\r\n // collective state for step 1\r\n const step1State = reactive({\r\n // computed with getter and setter that encapsulates the trainee and the mutation setTrainee\r\n selectedTrainee: computed({\r\n get: () =>\r\n context.root.$store.state[TrainingPlansNamespace].trainee,\r\n set: (value) => {\r\n context.root.$store.commit(\r\n `${TrainingPlansNamespace}/${TrainingPlansMutations.setTrainee}`,\r\n value,\r\n );\r\n },\r\n }),\r\n searchedTrainees: computed(() => {\r\n const uniqueTrainees = [\r\n ...new Map(\r\n searchedTrainingPlans.value.map(\r\n (tp: TrainingPlanVm) => [tp.name + tp.nSN + tp.dateOfBirth, tp],\r\n ),\r\n ).values(),\r\n ];\r\n return uniqueTrainees;\r\n }),\r\n showSearchResult: false,\r\n showCreateNewTrainee: false,\r\n trainingPlansLoading: computed(\r\n () => context.root.$store.state[TrainingPlansNamespace].loading,\r\n ),\r\n traineeCreationError: [] as string[],\r\n newTraineeCreationLoading: computed(() => {\r\n return context.root.$store.getters[\r\n `${TraineeNamespace}/${TraineeGetters.getLoading}`\r\n ];\r\n }),\r\n });\r\n // collective state for step 2\r\n const step2State = reactive({\r\n showCasualCredit: false,\r\n trainingPlansList: computed(() => {\r\n return step1State.selectedTrainee != null\r\n ? traineeTrainingPlans.value.filter((t) => t.trainingPlanID)\r\n : searchedTrainingPlans.value.filter(\r\n (t) => t.trainingPlanID,\r\n );\r\n }),\r\n searchUnitStandardCode: null as string | null,\r\n unitStandardCodeToSearch: computed(\r\n () => state.unitStandardState.unitStandardCodeToSearch,\r\n ),\r\n unitStandardLoading: computed(\r\n () => context.root.$store.state[UnitStandardNamespace].loading,\r\n ),\r\n searchedUnitStandardResult: computed(() => {\r\n return context.root.$store.getters[\r\n `${UnitStandardNamespace}/${UnitStandardGetters.getSearchedUnitStandard}`\r\n ];\r\n }),\r\n // computed with getter and setter that encapsulates the traineeTrainingPlan and the mutation setTraineeTrainingPlan\r\n selectedTrainingPlan: computed({\r\n get: () =>\r\n context.root.$store.state[TrainingPlansNamespace]\r\n .traineeTrainingPlan,\r\n set: (value) => {\r\n context.root.$store.commit(\r\n `${TrainingPlansNamespace}/${TrainingPlansMutations.setTraineeTrainingPlan}`,\r\n value,\r\n );\r\n },\r\n }),\r\n });\r\n // collective state for step 3\r\n const step3State = reactive({\r\n // computed with getter and setter that encapsulates the selectedUnitStandard and the mutation setSelectedUnitStandard\r\n selectedUnitStandard: computed({\r\n get: () => state[UnitStandardNamespace].selectedUnitStandard,\r\n set: (value) => {\r\n commit(\r\n `${UnitStandardNamespace}/${UnitStandardMutations.setSelectedUnitStandard}`,\r\n value,\r\n );\r\n },\r\n }),\r\n enterResultsLoading: computed(\r\n () => state[EnterResultsNamespace].loading,\r\n ),\r\n unitStandardList: computed(\r\n () => state[EnterResultsNamespace].unitStandardList,\r\n ),\r\n enteredUnitStandardList: computed(\r\n () => state[EnterResultsNamespace].enteredUnitStandardList,\r\n ),\r\n existingUnitStandardList: computed(\r\n () => state[EnterResultsNamespace].existingUnitStandardList,\r\n ),\r\n unitStandardVersions: computed(\r\n () => state[UnitStandardVersionsNamespace].unitStandardVersions,\r\n ),\r\n\r\n selectedVersion: computed({\r\n get: () => state[UnitStandardVersionsNamespace].selectedVersion,\r\n set: (value) => {\r\n commit(\r\n `${UnitStandardVersionsNamespace}/${UnitStandardVersionsMutations.setSelectedUnitStandardVersion}`,\r\n value,\r\n );\r\n },\r\n }),\r\n\r\n dateAchieved: computed({\r\n get: () => state[CreateResultNamespace].dateAchieved,\r\n set: (value) => {\r\n context.root.$store.commit(\r\n `${CreateResultNamespace}/${CreateResultMutations.setDateAchieved}`,\r\n value,\r\n );\r\n },\r\n }),\r\n\r\n searchDebtorNumber: null as string | null,\r\n isValidDebtorNumber: true,\r\n\r\n debtorNumberLoading: computed(\r\n () => state[AccountNamespace].loading,\r\n ),\r\n\r\n searchedAccountResult: computed({\r\n get: () => state[AccountNamespace].searchedAccount,\r\n set: (value) => {\r\n commit(\r\n `${AccountNamespace}/${AccountMutations.setSearchedAccount}`,\r\n value,\r\n );\r\n },\r\n }),\r\n\r\n poNumber: computed({\r\n get: () => state[CreateResultNamespace].poNumber,\r\n set: (value) => {\r\n context.root.$store.commit(\r\n `${CreateResultNamespace}/${CreateResultMutations.setPoNumber}`,\r\n value,\r\n );\r\n },\r\n }),\r\n casualCreditValid: false,\r\n trainingPlansValid: false,\r\n casualCreditDialog: false,\r\n trainingPlanDialog: false,\r\n saveConfirmLoading: computed(\r\n () => state[CreateResultNamespace].loading,\r\n ),\r\n isAlreadySubmitted: false,\r\n saveError: computed(() => state[CreateResultNamespace].error),\r\n });\r\n const isSuccessfullySaved = computed(\r\n () =>\r\n step3State.isAlreadySubmitted &&\r\n (step3State.saveError === '' ||\r\n step3State.saveError === undefined),\r\n );\r\n\r\n //#endregion\r\n\r\n //#region methods\r\n const selectTraineeRow = (item: TrainingPlanVm) => {\r\n step1State.selectedTrainee = item;\r\n currentStep.value = 2;\r\n };\r\n\r\n function selectTrainingPlanRow(item: TrainingPlanVm) {\r\n step2State.selectedTrainingPlan = item;\r\n currentStep.value = 3;\r\n }\r\n\r\n function changeTrainee() {\r\n step1State.selectedTrainee = null;\r\n step2State.selectedTrainingPlan = null;\r\n step2State.showCasualCredit = false;\r\n step3State.selectedUnitStandard = null;\r\n currentStep.value = 1;\r\n }\r\n\r\n function changeTrainingPlan() {\r\n step2State.selectedTrainingPlan = null;\r\n step2State.showCasualCredit = false;\r\n step3State.selectedUnitStandard = null;\r\n currentStep.value = 2;\r\n }\r\n\r\n function addCausalCredit() {\r\n step2State.showCasualCredit = true;\r\n step3State.selectedUnitStandard = null;\r\n }\r\n\r\n function changeUnitStandard() {\r\n step3State.selectedUnitStandard = null;\r\n currentStep.value = 2;\r\n }\r\n\r\n function selectUnitStandardRow(item: IUnitStandardVm) {\r\n step3State.selectedUnitStandard = item;\r\n currentStep.value = 3;\r\n }\r\n\r\n const handleCasualCreditConfirmClose = () => {\r\n step3State.casualCreditDialog = false;\r\n if (isSuccessfullySaved.value) {\r\n context.root.$router.go(0);\r\n }\r\n };\r\n const handleCasualCreditConfirm = async () => {\r\n // tell API to set as Casual Credit\r\n commit(\r\n `${CreateResultNamespace}/${CreateResultMutations.setCasualCredit}`,\r\n true,\r\n );\r\n\r\n // hit API\r\n await context.root.$store.dispatch(\r\n `${CreateResultNamespace}/${CreateResultActions.postCasualCreditToApi}`,\r\n );\r\n\r\n step3State.isAlreadySubmitted = true;\r\n\r\n };\r\n\r\n const handleCasualCreditEnterResultsClicked = async () => {\r\n if (\r\n step3State.searchDebtorNumber &&\r\n step3State.searchDebtorNumber.length > 0\r\n ) {\r\n await performDebtorNumberSearch(\r\n step3State.searchDebtorNumber ?? null,\r\n );\r\n step3State.isValidDebtorNumber =\r\n state[AccountNamespace].searchedAccount != null;\r\n } else {\r\n step3State.isValidDebtorNumber = true;\r\n }\r\n commit(\r\n `${CreateResultNamespace}/${CreateResultMutations.setError}`,\r\n '',\r\n );\r\n\r\n const test = casualCreditForm.value?.validate();\r\n if (test && step3State.isValidDebtorNumber) {\r\n step3State.casualCreditDialog = true;\r\n step3State.isAlreadySubmitted = false;\r\n }\r\n };\r\n\r\n const handleTrainingPlanEntered = () => {\r\n const isTrainingValid = trainingPlanForm.value?.validate();\r\n commit(\r\n `${EnterResultsNamespace}/${EnterResultsMutation.setEnteredUnitStandardList}`,\r\n step3State.unitStandardList,\r\n );\r\n commit(\r\n `${CreateResultNamespace}/${CreateResultMutations.setError}`,\r\n '',\r\n );\r\n\r\n if (isTrainingValid) {\r\n step3State.trainingPlanDialog = true;\r\n step3State.isAlreadySubmitted = false;\r\n }\r\n };\r\n\r\n const performTraineeSearch = async (searchText: string | null) => {\r\n if (searchText != null && searchText.trim().length > 0) {\r\n step1State.showSearchResult = true;\r\n await context.root.$store.dispatch(\r\n `${TrainingPlansNamespace}/${TrainingPlansActions.searchTrainingPlans}`,\r\n {\r\n searchText: searchText\r\n },\r\n );\r\n } else {\r\n clearSearch();\r\n }\r\n };\r\n\r\n const performUnitStandardSearch = async (searchCode: string | null) => {\r\n if (searchCode != null && searchCode.trim().length > 0) {\r\n await context.root.$store.dispatch(\r\n `${UnitStandardNamespace}/${UnitStandardActions.fetchUnitStandard}`,\r\n searchCode,\r\n );\r\n } else {\r\n clearSearch();\r\n }\r\n };\r\n\r\n const performTrainingPlanUnitStandardFetch = async (\r\n trainingPlanId: string,\r\n ) => {\r\n await context.root.$store.dispatch(\r\n `${EnterResultsNamespace}/${EnterResultsActions.fetchTrainingPlanUnitStandard}`,\r\n trainingPlanId,\r\n );\r\n };\r\n\r\n const performUnitStandardVersionSearch = async (\r\n searchCode: string | null,\r\n ) => {\r\n if (searchCode != null && searchCode.trim().length > 0) {\r\n await context.root.$store.dispatch(\r\n `${UnitStandardVersionsNamespace}/${UnitStandardVersionsActions.fetchUnitStandardVersions}`,\r\n searchCode,\r\n );\r\n }\r\n };\r\n\r\n const performDebtorNumberSearch = async (searchCode: string | null) => {\r\n if (searchCode != null && searchCode.trim().length > 0) {\r\n await context.root.$store.dispatch(\r\n `${AccountNamespace}/${AccountActions.fetchDebtorNumber}`,\r\n searchCode,\r\n );\r\n }\r\n };\r\n\r\n const clearSearch = () => {\r\n step1State.showSearchResult = false;\r\n commit(\r\n `${UnitStandardNamespace}/${UnitStandardMutations.setUnitStandardCodeToSearch}`,\r\n '',\r\n );\r\n };\r\n\r\n const handleTrainingPlanConfirmClose = () => {\r\n step3State.trainingPlanDialog = false;\r\n if (isSuccessfullySaved.value) {\r\n context.root.$router.go(0);\r\n }\r\n };\r\n const handleTrainingPlanConfirm = async () => {\r\n // tell API to set as Training Plan\r\n commit(\r\n `${CreateResultNamespace}/${CreateResultMutations.setCasualCredit}`,\r\n false,\r\n );\r\n // hit api\r\n await context.root.$store.dispatch(\r\n `${CreateResultNamespace}/${CreateResultActions.postTrainingPlanToApi}`,\r\n );\r\n\r\n const unitStandardCreatedResult: ITrainingPlanUnitStandardVm[] =\r\n context.root.$store.getters[\r\n `${CreateResultNamespace}/${CreateResultGetters.getResultCreatedResponses}`\r\n ];\r\n\r\n if (unitStandardCreatedResult?.length > 0) {\r\n commit(\r\n `${EnterResultsNamespace}/${EnterResultsMutation.setEnteredUnitStandardList}`,\r\n unitStandardCreatedResult,\r\n );\r\n }\r\n step3State.isAlreadySubmitted = true;\r\n\r\n };\r\n const createTrainee = async (data: FormData) => {\r\n step1State.traineeCreationError = [];\r\n await context.root.$store.dispatch(\r\n `${TraineeNamespace}/${TraineeActions.createNewTrainee}`,\r\n data,\r\n );\r\n const newTrainee: Contact | null =\r\n context.root.$store.getters[\r\n `${TraineeNamespace}/${TraineeGetters.getNewTrainee}`\r\n ];\r\n if (newTrainee != null) {\r\n let newTraineeTrainingPlan = {\r\n name: `${newTrainee.firstName} ${newTrainee.lastName}`,\r\n nSN: null,\r\n trainingPlanID: null,\r\n programme: null,\r\n contactId: newTrainee.id,\r\n actions: null,\r\n isTtafEligible: null,\r\n dateOfBirth: newTrainee.dateOfBirth\r\n ? format(new Date(newTrainee.dateOfBirth), 'yyyy-MM-dd')\r\n : '',\r\n status: null,\r\n } as unknown as TrainingPlanVm;\r\n selectTraineeRow(newTraineeTrainingPlan);\r\n } else {\r\n try {\r\n const error: ApiException | null =\r\n context.root.$store.getters[\r\n `${TraineeNamespace}/${TraineeGetters.getError}`\r\n ];\r\n if (error != null) {\r\n step1State.traineeCreationError = JSON.parse(\r\n JSON.stringify(error.response),\r\n ).Message.split('\\n');\r\n } else {\r\n step1State.traineeCreationError.push(\r\n 'Server Error: Unable to create new trainee. Please try again later',\r\n );\r\n }\r\n } catch (e) {\r\n step1State.traineeCreationError.push(\r\n 'Something went wrong while creating new trainee, please contact administration',\r\n );\r\n }\r\n }\r\n };\r\n\r\n const onCreateNewTrainee = async () => {\r\n step1State.showCreateNewTrainee = true;\r\n };\r\n //#endregion\r\n\r\n //#region lifecycle\r\n watch(\r\n () => step2State.selectedTrainingPlan,\r\n async (currentValue, previousValue) => {\r\n if (\r\n currentValue?.trainingPlanID ===\r\n previousValue?.trainingPlanID\r\n ) {\r\n return;\r\n }\r\n if (currentValue != null) {\r\n await performTrainingPlanUnitStandardFetch(\r\n currentValue.trainingPlanID,\r\n );\r\n }\r\n },\r\n );\r\n watchEffect(() => {\r\n if (step2State.searchUnitStandardCode?.length === 0) {\r\n commit(\r\n `${UnitStandardNamespace}/${UnitStandardMutations.setUnitStandardCodeToSearch}`,\r\n '',\r\n );\r\n }\r\n });\r\n watch(\r\n () => step2State.searchUnitStandardCode,\r\n debounce(async (currentValue, previousValue) => {\r\n // if the field hasnt changed even if its been updated, dont search please, loose equality cause numbers and string malarky\r\n if (currentValue == previousValue) {\r\n return;\r\n }\r\n // since isNumber returns string or boolean we must explicitly check for true\r\n if (unitStandardSearchRules.isNumber(currentValue) === true) {\r\n // pass in undefined if its null so the search request doesnt have a query string\r\n await performUnitStandardSearch(currentValue ?? null);\r\n await performUnitStandardVersionSearch(\r\n currentValue ?? null,\r\n );\r\n }\r\n }, 1000),\r\n );\r\n\r\n onMounted(async () => {\r\n if (!accessToken.value) {\r\n await acquireToken();\r\n }\r\n // for trainee selected on My Training Plans screen\r\n // show trainee data under step 1 and skip to step 2 after setting data on step 2\r\n if (step1State.selectedTrainee != null) {\r\n context.root.$store.commit(\r\n `${TrainingPlansNamespace}/${TrainingPlansMutations.setSearchedPlans}`,\r\n [step1State.selectedTrainee],\r\n );\r\n currentStep.value = 2;\r\n }\r\n });\r\n //#endregion\r\n\r\n return {\r\n ...toRefs(step1State),\r\n ...toRefs(step2State),\r\n ...toRefs(step3State),\r\n currentStep,\r\n casualCreditForm,\r\n trainingPlanForm,\r\n // static data\r\n traineeHeaders: [\r\n {\r\n text: 'Trainee name',\r\n align: 'start',\r\n value: 'name',\r\n },\r\n { text: 'Trainee NSN', value: 'nSN' },\r\n { text: 'Actions', value: 'actions', sortable: false },\r\n ],\r\n trainingPlansHeaders: [\r\n {\r\n text: 'Training plan ID',\r\n align: 'start',\r\n value: 'trainingPlanID',\r\n },\r\n { text: 'Programme', value: 'programme' },\r\n { text: 'TTAF', value: 'isTtafEligible' },\r\n { text: 'Actions', value: 'actions', sortable: false },\r\n ],\r\n unitStandardsHeaders: [\r\n {\r\n text: 'Unit standard',\r\n align: 'start',\r\n value: 'unitStandardNo',\r\n },\r\n {\r\n text: 'Description',\r\n value: 'description',\r\n },\r\n {\r\n text: 'Credits',\r\n value: 'credits',\r\n },\r\n {\r\n text: 'Actions',\r\n value: 'actions',\r\n sortable: false,\r\n },\r\n ],\r\n // validation rules\r\n unitStandardSearchRules,\r\n versionRules: [(v: any) => !!v || 'Please enter Version'],\r\n poNumberRules,\r\n debtorNumberRules,\r\n // methods\r\n performTraineeSearch,\r\n clearSearch,\r\n selectTraineeRow,\r\n changeTrainee,\r\n changeTrainingPlan,\r\n changeUnitStandard,\r\n selectTrainingPlanRow,\r\n selectUnitStandardRow,\r\n addCausalCredit,\r\n handleCasualCreditEnterResultsClicked,\r\n handleCasualCreditConfirm,\r\n handleCasualCreditConfirmClose,\r\n handleTrainingPlanEntered,\r\n handleTrainingPlanConfirmClose,\r\n handleTrainingPlanConfirm,\r\n createTrainee,\r\n onCreateNewTrainee,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EnterResults.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41[0].rules[0].use[0]!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41[0].rules[0].use[3]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EnterResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnterResults.vue?vue&type=template&id=a9717e2e&scoped=true&\"\nimport script from \"./EnterResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnterResults.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnterResults.vue?vue&type=style&index=0&id=a9717e2e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a9717e2e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBanner } from 'vuetify/lib/components/VBanner';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VStepper } from 'vuetify/lib/components/VStepper';\nimport { VStepperContent } from 'vuetify/lib/components/VStepper';\nimport { VStepperStep } from 'vuetify/lib/components/VStepper';\ninstallComponents(component, {VBanner,VCard,VCol,VContainer,VDivider,VForm,VLayout,VProgressCircular,VRow,VSelect,VSpacer,VStepper,VStepperContent,VStepperStep})\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + (chunkId === 443 ? \"about\" : chunkId) + \".\" + {\"86\":\"86e427e6\",\"266\":\"1981ff79\",\"443\":\"3d2014f8\",\"668\":\"246db255\",\"831\":\"ce8c0780\",\"958\":\"66d1d651\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"266\":\"648d785b\",\"831\":\"b72496a5\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"connexis.portal.web:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"266\":1,\"831\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkconnexis_portal_web\"] = self[\"webpackChunkconnexis_portal_web\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(1709); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["AccountClient","constructor","baseUrl","instance","undefined","this","get","debtorNumber","cancelToken","url_","Error","encodeURIComponent","replace","options_","method","url","headers","request","catch","_error","isAxiosError","response","then","_response","processGet","status","_headers","k","hasOwnProperty","_responseText","data","result200","resultData200","ApiResultOfIEnumerableOfAccountDto","fromJS","Promise","resolve","throwException","ResultClient","post","requestList","content_","JSON","stringify","processPost","ApiResultOfIListOfCreateResultResponseDto","dateEnteredFrom","dateEnteredTo","ApiResultOfIEnumerableOfResultDto","post2","processPost2","ApiResultOfCreateResultResponseDto","ScopeClient","unitStandard","SearchScopeResultDto","TraineeClient","create","fName","lName","dob","gender","proofFile","FormData","append","toString","fileName","processCreate","ApiResultOfContact","TrainingPlanClient","myTrainingPlans","processMyTrainingPlans","Array","isArray","item","push","TrainingPlanDto","searchTrainingPlans","query","includeEmptyTrainee","processSearchTrainingPlans","TrainingPlanUnitStandardClient","trainingPlanId","TrainingPlanUnitStandardDto","UnitStandardClient","code","ApiResultOfUnitStandardDto","UnitStandardVersionClient","ApiResultOfUnitStandardVersionsDto","property","result","i","length","toJSON","AccountDto","init","_data","message","clone","json","accountName","CreateResultRequestDto","assessorId","traineeId","unitStandardId","unitStandardCode","unitStandardName","isExistingResult","dateAchieved","dateEntered","statusCode","isRcc","casualCredit","debtorCode","poNumber","CreateResultResponseDto","resultId","crmSaveErrorMessage","crmSaveStatus","ResultDto","frameworkElementCode","traineeFirstName","traineeLastName","traineeNSN","scopes","ScopeDto","parentFrameworkElements","ParentFrameworkElement","assessorRegistrationId","assessmentScopeId","supplementaryUnitStandardId","name","unitStandards","UnitStandard","frameworkElementId","credits","currentVersion","versions","isLatestVersion","entityName","Contact","id","azureId","allowPortalAccess","firstName","lastName","email","jobTitle","nSN","dateOfBirth","isTrainee","contactId","programmeName","isTtafEligible","trainingPlanUnitStandards","TrainingPlanUnitStandard","UnitStandardDto","UnitStandardVersionsDto","VersionDto","version","ApiException","super","obj","isApiException","axiosInstance","responseType","TrainingPlanClientInstance","ScopeClientInstance","UnitStandardClientInstance","UnitStandardVersionClientInstance","ResultClientInstance","TrainingPlanUnitStandardClientInstance","TraineeClientinstance","AccountClientInstance","useAxiosTokenInterceptor","accessToken","interceptors","use","config","value","error","reject","msalConfig","auth","clientId","authority","knownAuthorities","redirectUri","window","origin","postLogoutRedirectUri","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","console","info","debug","warn","logLevel","loginRequest","msalInstance","accountIsEqual","arrayA","arrayB","comparisonArray","every","elementA","elementB","shift","homeAccountId","localAccountId","username","useMsal","root","$store","$msal","accounts","inProgress","currentValue","prevValue","commit","isEqualWith","deep","immediate","handleRedirectPromise","useMsalAuthentication","context","interactionType","msalInProgress","state","set","getters","acquireToken","async","tokenRequest","requestOverride","e","acquireTokenSilent","loginPopup","loginRedirect","useVuexStore","dispatch","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","navHeight","_v","_s","_e","on","logout","login","footerHeight","staticRenderFns","useIsAuthenticated","isAuthenticated","components","VApp","VAppBar","VContainer","VImg","VBtn","VSpacer","VFooter","setup","props","logoutRedirect","setActiveAccount","addEventCallback","event","eventType","EventType","payload","account","component","registerGuard","router","beforeEach","to","from","next","meta","requiresAuth","redirectStartPage","fullPath","shouldProceed","getAllAccounts","routes","path","mode","base","toResultVm","dateAcieved","Date","nsn","trainingPlan","results","loading","mutations","actions","fromDate","toDate","resultvms","map","namespaced","toScopeVm","scope","flatMap","pfe","us","domain","description","current","currentScopes","scopeVms","defaultStore","interactionStatus","modules","CreateResult","store","theme","options","customProperties","themes","light","primary","secondary","accent","success","warning","MSALplugin","install","vue","Object","defineProperty","prototype","currentAccounts","EventMessage","app","vuetify","h","App","mount","toTrainingPlanUnitStandardVm","trainingPlanUnitStandard","parsedDate","vm","saveStatus","saveErrorMessage","resultCreationResponseToTrainingPlanUnitStandardVm","createResultResponse","getterNames","freeze","getSearchedAccount","mutationNames","setLoading","setError","setSearchedAccount","setDebtorNumberToSearch","actionNames","fetchDebtorNumber","namespace","searchedAccount","debtorNumberToSearch","getLoading","getError","getResultCreatedResponses","setTraineeId","setUnitStandardId","setDateAchieved","setIsRcc","setCasualCredit","setPoNumber","setDebtorCode","setApiReponse","postCasualCreditToApi","postTrainingPlanToApi","createdResultResponses","resultResponses","rootState","myTrainingPlansState","trainee","unitStandardState","selectedUnitStandard","unitStandardNo","apiResult","enterResultsState","enteredUnitStandardList","unitStandardWithResult","failure","find","r","setUnitStandard","setUnitStandardList","setEnteredUnitStandardList","fetchTrainingPlanUnitStandard","unitStandardList","existingUnitStandardList","items","filter","a","index","setCurrentScope","searchForUnitStandard","getTraineeTrainingPlans","getSearchedTrainingPlans","setMyPlans","setSearchedPlans","setTrainee","setTraineeTrainingPlan","fetchAllMyTrainingPlans","toTrainingPlanVm","plan","programme","trainingPlanID","format","myPlans","searchedPlans","traineeTrainingPlan","plans","tPlans","tPlansVm","searchText","setResults","searchForResults","getNewTrainee","createNewTrainee","newContact","formData","traineeResponse","setSelectedUnitStandardVersion","setUnitStandardVersions","fetchUnitStandardVersions","selectedVersion","unitStandardVersions","unitStandardVersion","getSelectedUnitStandard","getSearchedUnitStandard","setSelectedUnitStandard","setSearchedUnitStandard","setUnitStandardCodeToSearch","fetchUnitStandard","toUnitStandardVm","searchedUnitStandard","unitStandardCodeToSearch","unitStandardVm","GetterNames","signedIn","MutationNames","setAuthenticationResult","setInProgress","setAccounts","_g","class","classes","buttonProps","color","outlined","depressed","disabled","$listeners","_t","buttonTypes","type","String","required","default","validator","prop","includes","Boolean","isPrimary","$event","$emit","scopedSlots","_u","_l","slot","key","fn","header","ref","formatter","VDataTable","parentSlots","keys","slots","readonly","_b","widths","placeholderText","fullWidth","rules","model","callback","$$v","isOpen","expression","isDob","onItemSelected","showAdjacentMonths","datePickerColour","getMaxDate","now","getTimezoneOffset","toISOString","substring","computed","today","$props","maxDate","setFullYear","getFullYear","VDatePicker","widthTypes","VMenu","CnTextField","CnDatePicker","width","emits","defaultWidth","smallWidth","largeWidth","emit","appendIcon","backgroundColour","clearable","outlineColour","VTextField","handleInput","handlePagination","slotProps","handleAchievedChanged","handleIsRccChanged","VRow","VCol","VSwitch","CnDateField","CnDataTable","ResultRow","VForm","form","text","align","sortable","pagination","currentPageOffset","page","itemsPerPage","mutateTrainingPlanUnitStandard","EnterResults","offsetIndex","updatedUnitStandard","validate","currentStep","directives","rawName","selectedTrainee","changeTrainee","showCreateNewTrainee","trainingPlansLoading","performTraineeSearch","clearSearch","showSearchResult","traineeHeaders","searchedTrainees","selectTraineeRow","traineeCreationError","newTraineeCreationLoading","createTrainee","showCasualCredit","changeTrainingPlan","changeUnitStandard","trainingPlansHeaders","trainingPlansList","selectTrainingPlanRow","unitStandardSearchRules","isNumber","unitStandardLoading","searchUnitStandardCode","unitStandardsHeaders","searchedUnitStandardResult","selectUnitStandardRow","selectedTrainingPlan","casualCreditValid","versionRules","debtorNumberLoading","debtorNumberRules","searchDebtorNumber","poNumberRules","enterResultsLoading","trainingPlansValid","stopPropagation","handleCasualCreditEnterResultsClicked","apply","arguments","casualCreditDialog","isAlreadySubmitted","saveError","saveConfirmLoading","handleCasualCreditConfirmClose","handleCasualCreditConfirm","handleTrainingPlanEntered","trainingPlanDialog","handleTrainingPlanConfirmClose","handleTrainingPlanConfirm","labelText","indexOf","_k","keyCode","search","clear","showSearchButton","CnButton","VCard","handleOnClose","apiError","isSubmitted","handleConfirm","VDialog","VToolbar","VIcon","VCardActions","ResultsStep","genderItems","selectedFile","getFileSizeString","size","handleSelectedFiles","chooseFiles","label","VSelect","CnSelect","errorMessages","genders","Male","Female","Unknown","document","getElementById","click","preventDefault","files","target","alert","toFixed","VLayout","VDivider","VStepper","VStepperStep","VStepperContent","CnSearch","VBanner","ConfirmTrainingPlanResultsDialog","ConfirmCasualCreditResultsDialog","CreateNewTrainee","casualCreditForm","trainingPlanForm","match","step3State","isValidDebtorNumber","searchedTrainingPlans","traineeTrainingPlans","step1State","uniqueTrainees","Map","tp","values","Trainee","step2State","t","UnitStandardVersions","Account","searchedAccountResult","isSuccessfullySaved","addCausalCredit","$router","go","performDebtorNumberSearch","test","isTrainingValid","trim","performUnitStandardSearch","searchCode","performTrainingPlanUnitStandardFetch","performUnitStandardVersionSearch","unitStandardCreatedResult","newTrainee","newTraineeTrainingPlan","parse","Message","split","onCreateNewTrainee","previousValue","debounce","v","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","splice","n","getter","__esModule","d","definition","o","enumerable","f","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","Function","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","href","err","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}