{"version":3,"file":"js/UpdateLicenseRequest.b1eb3b75.js","mappings":"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","sources":["webpack://marriage-officials/./src/views/Shared/Request/UpdateLicenseRequest/updateLicenseRequest.ts","webpack://marriage-officials/./src/views/UpdateLicenseRequest/updateLicenseRequest.ts","webpack://marriage-officials/./src/views/UpdateLicenseRequest/updateLicenseRequest.html","webpack://marriage-officials/./src/views/Shared/Request/UpdateLicenseRequest/updateLicenseRequest.html"],"sourcesContent":["import { Inject } from 'vue-di-container';\r\nimport {\r\n Component, Prop, Vue, Watch,\r\n} from 'vue-property-decorator';\r\nimport moment from 'moment-hijri';\r\n\r\nimport WithRender from './updateLicenseRequest.html';\r\n// components\r\nimport RequestLoader from '@/components/RequestLoader/requestLoader';\r\nimport PersonalInfo from '../steps/PersonalInfo/personalInfo';\r\nimport ContactInfo from '../steps/ContactInfo/contactInfo';\r\nimport RequestReview from '../steps/RequestReview/requestReview';\r\nimport RequestStatus from '@/components/RequestStatus/requestStatus';\r\nimport RequestSuccess from '@/components/RequestSuccess/requestSuccess';\r\nimport Qualifications from '../steps/Qualifications/qualifications';\r\n// Services\r\nimport RequestsApiService from '@/services/requests';\r\nimport UserService from '@/services/user';\r\nimport TelemetryService from '@/services/TelemetryService';\r\nimport { failedEvent, successfullEvent } from '@/utils/telemetry';\r\n// Models\r\nimport { UserModel } from '@/models/user';\r\nimport { RequestDetailsDataModel } from '@/models/request-details';\r\nimport { BaseRequestFormValues, SubmitMethodModel } from '@/models/request';\r\nimport { AttachmentTypeIds, LicenseNumberQueryName, RequestStatuses } from '@/services/staticLookups';\r\nimport { getStepperHeaderMeta } from '../utils';\r\nimport { StepperHeaderMeta } from '@/models/stepper';\r\nimport { holidayConfigs } from '@/utils/global';\r\nimport { HolidayConfigs } from '@/models/holidayConfigs';\r\nimport { AttachmentFieldFile } from '@/models/files';\r\n\r\nmoment.locale('en');\r\n\r\n@WithRender\r\n@Component({\r\n components: {\r\n PersonalInfo,\r\n ContactInfo,\r\n Qualifications,\r\n RequestStatus,\r\n RequestReview,\r\n RequestLoader,\r\n RequestSuccess,\r\n },\r\n diProvide: [\r\n UserService,\r\n RequestsApiService,\r\n TelemetryService,\r\n ],\r\n})\r\n\r\nexport default class UpdateLicenseRequest extends Vue {\r\n @Inject(UserService) public userService!: UserService;\r\n @Inject(RequestsApiService) public requestsApiService!: RequestsApiService;\r\n @Inject(TelemetryService) public telemetryService!: TelemetryService;\r\n\r\n @Prop({ default: () => ({} as UserModel) })\r\n public user!: UserModel;\r\n\r\n @Prop({ default: true })\r\n public isFetchingUserInfo!: boolean;\r\n\r\n @Prop({ default: true })\r\n public isSubmitting!: boolean;\r\n\r\n @Prop({ default: '' })\r\n public succededRequestNumber!: string;\r\n\r\n @Prop({ default: 0 })\r\n public requestTypeId!: number;\r\n\r\n @Prop({ default: false })\r\n public isSucceded!: boolean;\r\n\r\n @Prop({ default: () => ({} as RequestDetailsDataModel) })\r\n public licenseData!: RequestDetailsDataModel;\r\n\r\n public holidayConfigs: HolidayConfigs = holidayConfigs();\r\n public isNewRequest = true;\r\n public isEditMode = false;\r\n public isFetchingRequestDetails = false;\r\n public requestDetails = {} as RequestDetailsDataModel;\r\n public attachmentTypeIds = AttachmentTypeIds;\r\n public requestPayload = {\r\n id: '',\r\n requestNumber: 0,\r\n requestBasicInformation: {\r\n // ? From Profile\r\n name: '',\r\n socialId: '',\r\n birthDate: '',\r\n birthDateHijri: '',\r\n // ? User specific\r\n mobile: '',\r\n email: '',\r\n twitter: '',\r\n facebook: '',\r\n jobTitle: '',\r\n },\r\n requestContactInformation: [\r\n {\r\n name: '',\r\n mobile: '',\r\n },\r\n {\r\n name: '',\r\n mobile: '',\r\n },\r\n ],\r\n requestContactQualification: [],\r\n requestAttachments: [],\r\n requestContactAddress: {\r\n cityName: '',\r\n districtName: '',\r\n street: '',\r\n buildingNo: '',\r\n additionalNumber: '',\r\n zipCode: '',\r\n phone: '',\r\n unitNumber: 0,\r\n },\r\n } as BaseRequestFormValues;\r\n\r\n public originalDataPlaceHolder: BaseRequestFormValues = this.requestPayload;\r\n\r\n public get isLoading(): boolean {\r\n return this.isFetchingRequestDetails || this.isFetchingUserInfo;\r\n }\r\n\r\n public get isAllowedToUpdate(): boolean {\r\n return !this.validateRequstWithOriginal(this.originalDataPlaceHolder, this.requestPayload);\r\n }\r\n\r\n public get isPreviewMode(): boolean {\r\n return !this.isEditMode && !this.isNewRequest;\r\n }\r\n\r\n public get stepperHeaderMeta(): StepperHeaderMeta {\r\n const { path } = this.$route;\r\n\r\n return getStepperHeaderMeta(path);\r\n }\r\n\r\n public get pageTitle() {\r\n const { newText, editText, previewText } = this.stepperHeaderMeta;\r\n\r\n if (this.isNewRequest) {\r\n return newText;\r\n }\r\n\r\n if (this.isEditMode) {\r\n return editText;\r\n }\r\n\r\n return previewText;\r\n }\r\n\r\n public get personalInfoPayload() {\r\n const {\r\n requestBasicInformation,\r\n requestContactAddress,\r\n } = this.requestPayload;\r\n\r\n return {\r\n requestBasicInformation,\r\n requestContactAddress,\r\n };\r\n }\r\n\r\n public get requsestPersonalPhoto() {\r\n const { requestAttachments } = this.requestPayload;\r\n\r\n return requestAttachments.find((attachment) => attachment.attachmentTypeId === this.attachmentTypeIds.personalPicture);\r\n }\r\n\r\n public get applicantPhoneNumber() {\r\n return this.requestPayload.requestBasicInformation.mobile;\r\n }\r\n\r\n public get showStepperHeader() {\r\n return this.isNewRequest || this.isEditMode;\r\n }\r\n\r\n public get readOnlyMode() {\r\n return this.isPreviewMode;\r\n }\r\n\r\n public get steps() {\r\n return [\r\n {\r\n slotName: 'personalInfo',\r\n title: this.$t('personalInfo'),\r\n },\r\n {\r\n slotName: 'contactInfo',\r\n title: this.$t('contactInfo'),\r\n },\r\n {\r\n slotName: 'qualifications',\r\n title: this.$t('qualifications'),\r\n },\r\n {\r\n slotName: 'requestReview',\r\n title: this.$t('requestReview'),\r\n },\r\n ];\r\n };\r\n\r\n public get profileData() {\r\n const {\r\n givenName, username: socialId, birthDate, birthDateHijri,\r\n } = this.user;\r\n\r\n return {\r\n name: givenName,\r\n socialId,\r\n birthDate: moment(birthDate, 'DDMMYYYY').format('YYYY/MM/DD'),\r\n birthDateHijri,\r\n };\r\n }\r\n\r\n @Watch('user', { deep: true })\r\n public updateWithProfileData() {\r\n this.requestPayload = {\r\n ...this.requestPayload,\r\n requestBasicInformation: {\r\n ...this.requestPayload.requestBasicInformation,\r\n ...this.profileData,\r\n },\r\n };\r\n }\r\n\r\n async mounted() {\r\n const { params, query } = this.$route;\r\n const requestId = params.id || '';\r\n const licenseNumber = query[LicenseNumberQueryName] || '';\r\n this.updateWithProfileData();\r\n\r\n if (this.user) {\r\n this.fetchRequestDetails(requestId);\r\n }\r\n\r\n if (licenseNumber) {\r\n const decodedLicenseNumber = atob(licenseNumber as string);\r\n\r\n this.requestPayload.licenseNumber = Number(decodedLicenseNumber);\r\n }\r\n }\r\n\r\n public async fetchRequestDetails(requestId: string) {\r\n this.isFetchingRequestDetails = true;\r\n\r\n if (requestId) {\r\n const {\r\n isSuccess, data,\r\n } = await this.requestsApiService.getRequestDetails(requestId);\r\n\r\n if (isSuccess) {\r\n const licenseRequestStatusId = data.requestStatus.id;\r\n this.isEditMode = licenseRequestStatusId === RequestStatuses.returnToComplete;\r\n this.pushSuccessfullTelemetryEvent(this.$t('telemetry.fetchRequestDetails') as string);\r\n\r\n this.isNewRequest = false;\r\n this.requestDetails = data;\r\n\r\n this.updateRequestPayload();\r\n } else {\r\n this.pushFailureTelemetryEvent(this.$t('telemetry.fetchRequestDetails') as string);\r\n\r\n this.$nToaster.error({ message: this.$t('serverErrors.NOT_FOUND') as string });\r\n }\r\n } else {\r\n const {\r\n isSuccess, data,\r\n } = await this.requestsApiService.fetchLicenseData();\r\n\r\n if (isSuccess) {\r\n this.pushSuccessfullTelemetryEvent(this.$t('telemetry.fetchLicenseData') as string);\r\n this.requestDetails = data;\r\n\r\n this.updateRequestPayload();\r\n } else {\r\n this.pushFailureTelemetryEvent(this.$t('telemetry.fetchLicenseData') as string);\r\n\r\n this.$nToaster.error({ message: this.$t('serverErrors.NOT_FOUND') as string });\r\n }\r\n }\r\n\r\n this.isFetchingRequestDetails = false;\r\n }\r\n\r\n public updateRequestPayload() {\r\n const {\r\n id, requestAttachments, requestBasicInformation, requestContactAddress, requestContactInformation, requestContactQualification, requestNumber, licenseNumber,\r\n } = this.requestDetails;\r\n\r\n this.requestPayload.licenseNumber = licenseNumber;\r\n this.requestPayload.id = id;\r\n this.requestPayload.requestNumber = requestNumber;\r\n this.requestPayload.requestAttachments = requestAttachments || [];\r\n this.requestPayload.requestBasicInformation = requestBasicInformation;\r\n this.requestPayload.requestContactAddress = requestContactAddress;\r\n this.requestPayload.requestContactInformation = requestContactInformation;\r\n this.requestPayload.requestContactQualification = requestContactQualification;\r\n\r\n this.originalDataPlaceHolder = JSON.parse(JSON.stringify(this.requestPayload));\r\n }\r\n\r\n public onUpdatePersonalPhoto(personalPhoto: AttachmentFieldFile) {\r\n this.requestPayload.requestAttachments = [...this.requestPayload.requestAttachments, personalPhoto];\r\n }\r\n\r\n public onUpdateRequestFormValues(formValues: BaseRequestFormValues) {\r\n this.requestPayload = {\r\n ...this.requestPayload,\r\n ...formValues,\r\n };\r\n }\r\n\r\n public async onSubmitRequest() {\r\n if (!this.isAllowedToUpdate) { return this.$nToaster.error({ message: this.$t('pleaseUpdateOneFieldToCompleRequest') as string }); }\r\n this.$emit('submit', {\r\n payload: this.requestPayload,\r\n isEditMode: this.isEditMode,\r\n } as SubmitMethodModel);\r\n }\r\n\r\n private pushSuccessfullTelemetryEvent(eventName: string) {\r\n this.telemetryService.trackEvent({\r\n ...successfullEvent,\r\n serviceType: 'Transaction',\r\n eventName,\r\n userInfo: this.user,\r\n });\r\n }\r\n\r\n private pushFailureTelemetryEvent(eventName: string) {\r\n this.telemetryService.trackEvent({\r\n ...failedEvent,\r\n eventName,\r\n serviceType: 'Transaction',\r\n userInfo: this.user,\r\n });\r\n }\r\n\r\n private validateRequstWithOriginal(obj1: any, obj2: any): boolean {\r\n if (typeof obj1 !== typeof obj2) {\r\n return false;\r\n }\r\n\r\n if (typeof obj1 !== 'object' || obj1 === null || obj2 === null) {\r\n return String(obj1) === String(obj2);\r\n }\r\n\r\n if ('buildingNo' in obj1 && 'buildingNo' in obj2) {\r\n const address1 = obj1 || {};\r\n const address2 = obj2 || {};\r\n return (\r\n String(address1.street || '') === String(address2.street || '')\r\n && String(address1.buildingNo || '') === String(address2.buildingNo || '')\r\n );\r\n }\r\n\r\n const keys1 = Object.keys(obj1);\r\n const keys2 = Object.keys(obj2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n\r\n for (const key of keys1) {\r\n if (!keys2.includes(key) || !this.validateRequstWithOriginal(obj1[key], obj2[key])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Inject } from 'vue-di-container';\r\nimport { Component, Vue } from 'vue-property-decorator';\r\n\r\nimport WithRender from './updateLicenseRequest.html';\r\n\r\n// components\r\nimport UpdateLicenseRequest from '@/views/Shared/Request/UpdateLicenseRequest/updateLicenseRequest';\r\n// Services\r\nimport RequestsApiService from '@/services/requests';\r\nimport UserService from '@/services/user';\r\nimport TelemetryService from '@/services/TelemetryService';\r\nimport { failedEvent, successfullEvent } from '@/utils/telemetry';\r\n// Models\r\nimport { UserModel } from '@/models/user';\r\nimport { SubmitMethodModel } from '@/models/request';\r\nimport { HandledServerErrorsStatuses, RequestTypesIds } from '@/services/staticLookups';\r\n\r\n@WithRender\r\n@Component({\r\n components: {\r\n UpdateLicenseRequest,\r\n },\r\n diProvide: [\r\n UserService,\r\n RequestsApiService,\r\n TelemetryService,\r\n ],\r\n})\r\n\r\nexport default class UpdateLicense extends Vue {\r\n @Inject(UserService) public userService!: UserService;\r\n @Inject(RequestsApiService) public requestsApiService!: RequestsApiService;\r\n @Inject(TelemetryService) public telemetryService!: TelemetryService;\r\n\r\n public isSubmitting = false;\r\n public isFetchingUserInfo = true;\r\n public user: UserModel = {} as UserModel;\r\n\r\n public succededRequestNumber = 0;\r\n public requestTypeId = RequestTypesIds.updateLicenseRequest;\r\n public isSucceded = false;\r\n public isFetchingLicenseData = false;\r\n\r\n async mounted() {\r\n this.user = await this.userService.getUser();\r\n\r\n this.isFetchingUserInfo = false;\r\n }\r\n\r\n public async onSubmitRequest({ isEditMode, payload }: SubmitMethodModel) {\r\n this.isSubmitting = true;\r\n const {\r\n errors, isSuccess, httpCode, data,\r\n } = await this.requestsApiService.updateRequest(payload);\r\n\r\n if (isSuccess) {\r\n this.succededRequestNumber = data;\r\n this.isSucceded = true;\r\n\r\n this.$nToaster.success({\r\n message: this.$t(isEditMode ? 'updateOfficiantDataRequestEdittedSuccessfully' : 'updateOfficiantDataRequestSubmittedSuccessfully') as string,\r\n });\r\n\r\n this.pushSuccessfullTelemetryEvent(this.$t('telemetry.submitUpdateRequest') as string);\r\n } else {\r\n if (!HandledServerErrorsStatuses.includes(httpCode) && errors.length) {\r\n this.$nToaster.error({ message: errors[0] });\r\n }\r\n\r\n this.pushFailureTelemetryEvent(this.$t('telemetry.submitUpdateRequest') as string);\r\n }\r\n\r\n this.isSubmitting = false;\r\n }\r\n\r\n private pushSuccessfullTelemetryEvent(eventName: string) {\r\n this.telemetryService.trackEvent({\r\n ...successfullEvent,\r\n eventName,\r\n userInfo: this.user,\r\n });\r\n }\r\n\r\n private pushFailureTelemetryEvent(eventName: string) {\r\n this.telemetryService.trackEvent({\r\n ...failedEvent,\r\n eventName,\r\n userInfo: this.user,\r\n });\r\n }\r\n}\r\n","\r\n","\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{pageTitle}}\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n"],"names":["moment","UpdateLicenseRequest","Vue","constructor","args","_defineProperty","holidayConfigs","AttachmentTypeIds","id","requestNumber","requestBasicInformation","name","socialId","birthDate","birthDateHijri","mobile","email","twitter","facebook","jobTitle","requestContactInformation","requestContactQualification","requestAttachments","requestContactAddress","cityName","districtName","street","buildingNo","additionalNumber","zipCode","phone","unitNumber","this","requestPayload","isLoading","isFetchingRequestDetails","isFetchingUserInfo","isAllowedToUpdate","validateRequstWithOriginal","originalDataPlaceHolder","isPreviewMode","isEditMode","isNewRequest","stepperHeaderMeta","path","$route","getStepperHeaderMeta","pageTitle","newText","editText","previewText","personalInfoPayload","requsestPersonalPhoto","find","attachment","attachmentTypeId","attachmentTypeIds","personalPicture","applicantPhoneNumber","showStepperHeader","readOnlyMode","steps","slotName","title","$t","profileData","givenName","username","user","format","updateWithProfileData","mounted","params","query","requestId","licenseNumber","LicenseNumberQueryName","fetchRequestDetails","decodedLicenseNumber","atob","Number","isSuccess","data","requestsApiService","getRequestDetails","licenseRequestStatusId","requestStatus","RequestStatuses","returnToComplete","pushSuccessfullTelemetryEvent","requestDetails","updateRequestPayload","pushFailureTelemetryEvent","$nToaster","error","message","fetchLicenseData","JSON","parse","stringify","onUpdatePersonalPhoto","personalPhoto","onUpdateRequestFormValues","formValues","onSubmitRequest","$emit","payload","eventName","telemetryService","trackEvent","successfullEvent","serviceType","userInfo","failedEvent","obj1","obj2","String","address1","address2","keys1","Object","keys","keys2","length","key","includes","__decorate","Inject","UserService","RequestsApiService","TelemetryService","Prop","default","Watch","deep","WithRender","Component","components","PersonalInfo","ContactInfo","Qualifications","RequestStatus","RequestReview","RequestLoader","RequestSuccess","diProvide","UpdateLicense","RequestTypesIds","updateLicenseRequest","userService","getUser","isSubmitting","errors","httpCode","updateRequest","succededRequestNumber","isSucceded","success","HandledServerErrorsStatuses"],"sourceRoot":""}