{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/DAF/Models/CaseSummaryDetails.ts","./src/app/DAF/Models/Dashboard.ts","./src/app/DAF/Models/DocuentChecklist.ts","./src/app/DAF/Models/FilingStratergy.ts","./src/app/DAF/Models/GeneralDetails.ts","./src/app/DAF/Models/IndividualBioInfo.ts","./src/app/DAF/Models/LCAAssessmentDetails.ts","./src/app/DAF/Models/PrimaryWorksiteAddress.ts","./src/app/DAF/Models/SpouseAndDependentDetails.ts","./src/app/DAF/Models/WorkExperience.ts","./src/app/DAF/Models/addressWizardInfos.ts","./src/app/DAF/Models/applicationConstants.ts","./src/app/DAF/Models/filingdetails.ts","./src/app/DAF/Models/jobDetailsWizardInfo.ts","./src/app/DAF/Models/specialityDegreeDetails.ts","./src/app/DAF/Models/websiteWizard.ts","./src/app/DAF/modules/assessment-forms/assessment-forms-routing.module.ts","./src/app/DAF/modules/assessment-forms/assessment-forms.module.ts","./src/app/DAF/modules/assessment-forms/case-type-assessment/case-type-assessment.component.ts","./src/app/DAF/modules/assessment-forms/general-details/general-details.component.ts","./src/app/DAF/modules/assessment-forms/lca-assessment/lca-assessment.component.ts","./src/app/DAF/modules/dafhome/address-info-wizard/address-info-wizard.component.ts","./src/app/DAF/modules/dafhome/case-summary-details/case-summary-details.component.ts","./src/app/DAF/modules/dafhome/daf-case-fees/daf-case-fees.component.ts","./src/app/DAF/modules/dafhome/dafc-home/dafc-home.component.ts","./src/app/DAF/modules/dafhome/dafhome-routing.module.ts","./src/app/DAF/modules/dafhome/dafhome.module.ts","./src/app/DAF/modules/dafhome/document-checklist/document-checklist.component.ts","./src/app/DAF/modules/dafhome/experience-wizard/experience-wizard.component.ts","./src/app/DAF/modules/dafhome/filing-stratergy/filing-stratergy.component.ts","./src/app/DAF/modules/dafhome/filing-travel-modal/filing-travel-modal.component.ts","./src/app/DAF/modules/dafhome/individual-bio-graphical-information/individual-bio-graphical-information.component.ts","./src/app/DAF/modules/dafhome/job-details-wizard/job-details-wizard.component.ts","./src/app/DAF/modules/dafhome/job-position-assessment/job-position-assessment.component.ts","./src/app/DAF/modules/dafhome/kendo-grid-checklistEdit-form/kendo-grid-checklistEdit-form.component.ts","./src/app/DAF/modules/dafhome/kendo-grid-edit-form/kendo-grid-edit-form.component.ts","./src/app/DAF/modules/dafhome/kendo-grid-filing-detail/kendo-grid-filing-detail.component.ts","./src/app/DAF/modules/dafhome/kendo-grid-specialist-form/kendo-grid-specialist-form.component.ts","./src/app/DAF/modules/dafhome/lca-assessment/lca-assessment.component.ts","./src/app/DAF/modules/dafhome/lca-info-wizard/lca-info-wizard.component.ts","./src/app/DAF/modules/dafhome/primary-worksite-address/primary-worksite-address.component.ts","./src/app/DAF/modules/dafhome/recapture-wizard/recapture-wizard.component.ts","./src/app/DAF/modules/dafhome/specialist-degree/specialist-degree.component.ts","./src/app/DAF/modules/dafhome/spouse-and-dependent-application/spouse-and-dependent-application.component.ts","./src/app/DAF/modules/dafhome/validation-message/validation-message.component.ts","./src/app/DAF/modules/dafhome/worksite-address-wizard/worksite-address-wizard.component.ts","./src/app/DAF/modules/dafhome/worksite-wizard/worksite-wizard.component.ts","./src/app/DAF/modules/dashboard/components/case-details/case-details.component.ts","./src/app/DAF/modules/dashboard/components/dashboard-page/dashboard-page.component.ts","./src/app/DAF/modules/dashboard/components/pie-chart/pie-chart.component.ts","./src/app/DAF/modules/dashboard/dashboard-routing.module.ts","./src/app/DAF/modules/dashboard/dashboard.module.ts","./src/app/DAF/modules/dashboard/models/filterParams.model.ts","./src/app/DAF/modules/shared/components/auto-complete/auto-complete.component.ts","./src/app/DAF/modules/shared/components/button/button.component.ts","./src/app/DAF/modules/shared/components/number-input/number-input.component.ts","./src/app/DAF/modules/shared/shared.module.ts","./src/app/DAF/services/dafService.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/breadcrumb/breadcrumb.component.ts","./src/app/core/guards/auth.guard.ts","./src/app/core/interceptors/insert-auth-token-interceptor.ts","./src/app/eymp-inszoom-integration/Model/CaseModel.ts","./src/app/eymp-inszoom-integration/Model/EYIModel.ts","./src/app/eymp-inszoom-integration/Model/ProfileModel.ts","./src/app/eymp-inszoom-integration/Model/QuestAddModel.ts","./src/app/eymp-inszoom-integration/Model/QuestInfoModel.ts","./src/app/eymp-inszoom-integration/Model/QuestModel.ts","./src/app/eymp-inszoom-integration/Model/filterparams.ts","./src/app/eymp-inszoom-integration/dashboard-details/View-CaseEYI/view-case-eyiupload/view-case-eyiupload.component.ts","./src/app/eymp-inszoom-integration/dashboard-details/View-CaseTravel/view-casetravel/view-casetravel.component.ts","./src/app/eymp-inszoom-integration/dashboard-details/View-Questionaire/view-questionare/view-questionare.component.ts","./src/app/eymp-inszoom-integration/dashboard-details/ViewCase/view-case/view-case.component.ts","./src/app/eymp-inszoom-integration/dashboard-details/ViewProfile/view-profile/view-profile.component.ts","./src/app/eymp-inszoom-integration/dashboard-details/dashboard-details.component.ts","./src/app/eymp-inszoom-integration/dashboard/dashboard.component.ts","./src/app/eymp-inszoom-integration/eymp-inszoom-integration-routing.module.ts","./src/app/eymp-inszoom-integration/eymp-inszoom-integration.module.ts","./src/app/eymp-inszoom-integration/services/eympservice.ts","./src/app/eymp-notices/Model/filterparams.ts","./src/app/eymp-notices/dashboard-details/dashboard-details.component.ts","./src/app/eymp-notices/dashboard/dashboard.component.ts","./src/app/eymp-notices/eymp-notices-routing.module.ts","./src/app/eymp-notices/eymp-notices.module.ts","./src/app/eymp-notices/services/eympservice.ts","./src/app/immigrationcompilation/add-lca/add-lca.component.ts","./src/app/immigrationcompilation/add-lca/service/add-lca.service.ts","./src/app/immigrationcompilation/await-lcadetermination/await-lcadetermination.component.ts","./src/app/immigrationcompilation/awaitcompilation/awaitcompilation.component.ts","./src/app/immigrationcompilation/awaitdocextraction/awaitdocextraction.component.ts","./src/app/immigrationcompilation/awaitdocextraction/documentchklist/documentchklist.component.ts","./src/app/immigrationcompilation/awaitdocextraction/model/dashboardview.ts","./src/app/immigrationcompilation/awaitdocextraction/service/awaitdocextraction.service.ts","./src/app/immigrationcompilation/awaitlawclerkreview/awaitlawclerkreview.component.ts","./src/app/immigrationcompilation/compilationfailed/compilationfailed.component.ts","./src/app/immigrationcompilation/compilationrejected/compilationrejected.component.ts","./src/app/immigrationcompilation/courier-package/Model/DocumentExraction.Model.ts","./src/app/immigrationcompilation/courier-package/courier-package.component.ts","./src/app/immigrationcompilation/courier-package/courierpackage-failure/courierpackage-failure.component.ts","./src/app/immigrationcompilation/courier-package/courierpackage-success/courierpackage-success.component.ts","./src/app/immigrationcompilation/courier-package/courierpackage-success/document-extraction-info/document-extraction-info.component.ts","./src/app/immigrationcompilation/courier-package/service/courier-package.service.ts","./src/app/immigrationcompilation/dashboard/dashboard.component.ts","./src/app/immigrationcompilation/dashboard/service/dashboard.service.ts","./src/app/immigrationcompilation/detailedview/detailedview.component.ts","./src/app/immigrationcompilation/detailedview/service/detailedview.service.ts","./src/app/immigrationcompilation/edit-internal-work-site-info/edit-internal-work-site-info.component.ts","./src/app/immigrationcompilation/ey-lcaassessment/ey-lcaassessment.component.ts","./src/app/immigrationcompilation/immigrationcompilation-routing.module.ts","./src/app/immigrationcompilation/immigrationcompilation.module.ts","./src/app/immigrationcompilation/lawyer-email/editlawyer/editLawyer.component.ts","./src/app/immigrationcompilation/lawyer-email/lawyer-email.component.ts","./src/app/immigrationcompilation/lawyer-email/model/insertLawyer.ts","./src/app/immigrationcompilation/lawyer-email/model/lawyer.ts","./src/app/immigrationcompilation/lawyer-email/service/lawyer.service.ts","./src/app/immigrationcompilation/lca-compliance/edit-lca-compliance/edit-lca-compliance.component.ts","./src/app/immigrationcompilation/lca-compliance/lca-compliance.component.ts","./src/app/immigrationcompilation/lca-compliance/model/Lca.model.ts","./src/app/immigrationcompilation/lca-compliance/service/lca.service.ts","./src/app/immigrationcompilation/lca-determination/lca-determination.component.ts","./src/app/immigrationcompilation/lca-home-info/lca-home-info.component.ts","./src/app/immigrationcompilation/lca-home/lca-home.component.ts","./src/app/immigrationcompilation/lca-internal-dashboard/lca-internal-dashboard.component.ts","./src/app/immigrationcompilation/lca-review/lca-review.component.ts","./src/app/immigrationcompilation/lcachklist/lcachklist.component.ts","./src/app/immigrationcompilation/main-page/main-page.component.ts","./src/app/immigrationcompilation/modaldesign/modaldesign.component.ts","./src/app/immigrationcompilation/reposting-completed/reposting-completed.component.ts","./src/app/immigrationcompilation/shared/components/access-denied/access-denied.component.ts","./src/app/immigrationcompilation/submittedtolawyer/submittedtolawyer.component.ts","./src/app/immigrationcompilation/update-lca-modal/update-lca-modal.component.ts","./src/app/immigrationcompilation/usermanagement/edituser/edituser.component.ts","./src/app/immigrationcompilation/usermanagement/model/checkUser.ts","./src/app/immigrationcompilation/usermanagement/model/insertUser.ts","./src/app/immigrationcompilation/usermanagement/model/user.ts","./src/app/immigrationcompilation/usermanagement/role-view/role-view.component.ts","./src/app/immigrationcompilation/usermanagement/service/user.service.ts","./src/app/immigrationcompilation/usermanagement/usermanagement.component.ts","./src/app/immigrationcompilation/work-site-acknowledge/work-site-acknowledge.component.ts","./src/app/nav-menu/nav-menu.component.ts","./src/app/service/common.service.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { GeneralDetailsModel } from \"./GeneralDetails\";\r\n\r\nexport class caseSummaryDetails extends GeneralDetailsModel {\r\n caseSummaryId: number = 0;\r\n firstName: string = null;\r\n middleName: string = null;\r\n lastName: string = null;\r\n dateOfBirth: Date = null;\r\n caseManager: string = null;\r\n caseAttorney: string = null;\r\n companyName: string = null;\r\n supportTeamMember: string = null;\r\n signatoryName: string = null;\r\n signatoryTitle: string = null;\r\n signatoryTelephone: string = null;\r\n signatoryEmail: string = null;\r\n corporationAddress: string = null;\r\n signatoryStreetName: string = null;\r\n signatoryStreetNo : number = null;\r\n signatoryAptSteFlrDoorNo: number = null;\r\n signatoryCity: string = null;\r\n signatoryState: string = null;\r\n signatoryZipcode: string = null;\r\n department: string = null;\r\n employeeId: string = null;\r\n employeeEmail: string = null;\r\n expediteCase: boolean = false;\r\n reasonToExpediteCase: string = null;\r\n placeOnHold: boolean = false;\r\n reasonToDelayCase: string = null;\r\n notes: string = null;\r\n stateId: number = 0;\r\n zipCodeId: number = 0;\r\n cityId: number = 0;\r\n signatoryCounty: number = 0;\r\n signatoryMSA: number = 0;\r\n geographyId: number = 0;\r\n countyId: number = 0;\r\n caseManagerId: number = 0;\r\n caseAttorneyId: number = 0;\r\n constructor(obj?: any) {\r\n super();\r\n try{\r\n if (obj) {\r\n this.caseId = obj.caseId ? obj.caseId : null;\r\n this.caseSummaryId = obj.caseSummaryId ? obj.caseSummaryId : null;\r\n this.firstName = obj.firstName ? obj.firstName : null;\r\n this.middleName = obj.middleName ? obj.middleName : null;\r\n this.lastName = obj.lastName ? obj.lastName : null;\r\n this.dateOfBirth = obj.dateOfBirth ? obj.dateOfBirth : new Date();\r\n this.caseManager = obj.caseManager ? obj.caseManager : null;\r\n this.caseAttorney = obj.caseAttorney ? obj.caseAttorney : null;\r\n this.companyName = obj.companyName ? obj.companyName : null;\r\n this.supportTeamMember = obj.supportTeamMember ? obj.supportTeamMember : null;\r\n this.signatoryEmail = obj.signatoryEmail ? obj.signatoryEmail : null;\r\n this.signatoryName = obj.signatoryName ? obj.signatoryName : null;\r\n this.signatoryTitle = obj.signatoryTitle ? obj.signatoryTitle : null;\r\n this.signatoryAptSteFlrDoorNo = obj.signatoryAptSteFlrDoorNo ? obj.signatoryAptSteFlrDoorNo : null;\r\n this.signatoryStreetNo = obj.signatoryStreetNo ? obj.signatoryStreetNo : null;\r\n this.signatoryStreetName = obj.signatoryStreetName ? obj.signatoryStreetName : null;\r\n this.signatoryState = obj.signatoryState ? obj.signatoryState : null;\r\n this.signatoryZipcode = obj.signatoryZipcode ? obj.signatoryZipcode : null;\r\n this.signatoryCity = obj.signatoryCity ? obj.signatoryCity : null;\r\n this.signatoryTelephone = obj.signatoryTelephone ? obj.signatoryTelephone : null;\r\n this.corporationAddress = obj.corporationAddress ? obj.corporationAddress : null;\r\n this.department = obj.department ? obj.department : null;\r\n this.employeeEmail = obj.employeeEmail ? obj.employeeEmail : null;\r\n this.employeeId = obj.employeeID ? obj.employeeID : null;\r\n this.expediteCase = obj.expediteCase ? obj.expediteCase : false;\r\n this.reasonToDelayCase = obj.reasonToDelayCase ? obj.reasonToDelayCase : null;\r\n this.reasonToExpediteCase = obj.reasonToExpediteCase ? obj.reasonToExpediteCase : null;\r\n this.placeOnHold = obj.placeOnHold ? obj.placeOnHold : false;\r\n this.notes = obj.notes ? obj.notes : null;\r\n this.stateId = obj.stateId ? obj.stateId : null;\r\n this.zipCodeId = obj.zipCodeId ? obj.zipCodeId : null;\r\n this.cityId = obj.cityId ? obj.cityId : null;\r\n this.signatoryCounty = obj.signatoryCounty ? obj.signatoryCounty : null;\r\n this.signatoryMSA = obj.signatoryMSA ? obj.signatoryMSA : null;\r\n this.countyId = obj.countyId ? obj.countyId : null;\r\n this.geographyId = obj.geographyId ? obj.geographyId : null;\r\n this.caseManagerId = obj.caseManagerId ? obj.caseManagerId : null;\r\n this.caseAttorneyId = obj.caseAttorneyId ? obj.caseAttorneyId : null;\r\n }\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n}\r\n\r\nexport namespace Summaryconstants{\r\n export class formControlConstants {\r\n static lockedFields: Array = [\"employeeId\", \"employeeEmail\"]\r\n }\r\n}\r\n","export class DashboardModel {\r\n category: string = null;\r\n value: number = 0;\r\n color: string = null;\r\n constructor(obj?: any) {\r\n try {\r\n if (obj) {\r\n this.color = obj.color ? obj.color : null;\r\n this.value = obj.count ? (obj.count == null ? 0 : obj.count) : 0;\r\n this.category = obj.caseStatus ? obj.caseStatus : null;\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n}\r\n","export class documentChecklist {\r\n checklistDetails: Array = [];\r\n notes: string;\r\n}\r\n\r\nexport class checklistItems {\r\n documentChecklistDetailId: number;\r\n documentName: string;\r\n individual: string;\r\n relation: string;\r\n recievedDrafted: boolean;\r\n requestDraft: boolean;\r\n na: boolean;\r\n notes: string;\r\n}\r\n","\r\n\r\nexport class filingStratergyDetails {\r\n caseSummaryId: string = null;\r\n h1B2ndOrSubsExt: boolean = false;\r\n l1ClassificationId: number = 0;\r\n caseTypeId: number = 0;\r\n filingVenueId: number = 0;\r\n filingAddress: string = null;\r\n visaApptDate: Date = null;\r\n serviceCenterCodeId: number = 0;\r\n amenDwOrNoExt: boolean = false;\r\n anticipatedTravel: boolean = false;\r\n advIssuedOnTravelOrCaseImpact: boolean = false;\r\n departureDate: Date = null;\r\n arrivalDate: Date = null;\r\n countryId: number = 0;\r\n recapture: boolean = false;\r\n recaptureTimeAvailable : boolean = false;\r\n days: number = 0;\r\n months: number = 0;\r\n newProposedVisaMax: Date = null;\r\n premiumProcessingI907: boolean = null;\r\n emailAddressI907: string = null;\r\n aC21Extension: boolean = null;\r\n a106a1yrPERM: boolean = null;\r\n datePERMFiledwithDOL: Date = null;\r\n i485AppFiledWinYrPDBecomingCurr: boolean = false;\r\n a104c3YearI140: boolean = null;\r\n dateI140FiledUSCIS: Date = null;\r\n priorityDate: Date = null;\r\n priorityCountryId: number = null;\r\n\r\n visaBulletinCutoffDate: Date = null;\r\n dateI140PetitionApproved: Date = null;\r\n priorityClassification: string = null;\r\n priorityDateCurrent: boolean = null;\r\n notes:string=null;\r\n filingTravelDetails: Array = [];\r\n filingStateOrCountry: string = null;\r\n eyPetitioner: boolean = null;\r\n constructor(obj?: any) {\r\n try{\r\n if (obj) {\r\n this.caseSummaryId = obj.caseSummaryId ? obj.caseSummaryId : null;\r\n this.h1B2ndOrSubsExt = obj.h1B2ndOrSubsExt ? obj.h1B2ndOrSubsExt : false;\r\n this.l1ClassificationId = obj.l1ClassificationId ? obj.l1ClassificationId : null;\r\n this.caseTypeId = obj.caseTypeId ? obj.caseTypeId : null;\r\n this.filingVenueId = obj.filingVenueId ? obj.filingVenueId : null;\r\n this.filingAddress = obj.filingAddress ? obj.filingAddress : null;\r\n this.visaApptDate = obj.visaApptDate ? obj.visaApptDate : null;\r\n this.serviceCenterCodeId = obj.serviceCenterCodeId ? obj.serviceCenterCodeId : null;\r\n this.amenDwOrNoExt = obj.amenDwOrNoExt ? obj.amenDwOrNoExt : false;\r\n this.anticipatedTravel = obj.anticipatedTravel ? obj.anticipatedTravel : false;\r\n this.advIssuedOnTravelOrCaseImpact = obj.advIssuedOnTravelOrCaseImpact ? obj.advIssuedOnTravelOrCaseImpact : false;\r\n this.departureDate = obj.departureDate ? obj.departureDate : null;\r\n this.arrivalDate = obj.arrivalDate ? obj.arrivalDate : null;\r\n this.countryId = obj.countryId ? obj.countryId : null;\r\n this.recapture = obj.recapture ? obj.recapture : false;\r\n this.recaptureTimeAvailable = obj.recaptureTimeAvailable ? obj.recaptureTimeAvailable : false;\r\n this.days = obj.days ? obj.days : null;\r\n this.months = obj.months ? obj.months : null;\r\n this.newProposedVisaMax = obj.newProposedVisaMax ? obj.newProposedVisaMax : null;\r\n this.premiumProcessingI907 = obj.premiumProcessingI907 ? obj.premiumProcessingI907 : false;\r\n this.emailAddressI907 = obj.emailAddressI907 ? obj.emailAddressI907 : null;\r\n this.aC21Extension = obj.aC21Extension ? obj.aC21Extension : false;\r\n this.a106a1yrPERM = obj.a106a1yrPERM ? obj.a106a1yrPERM : false;\r\n this.datePERMFiledwithDOL = obj.datePERMFiledwithDOL ? obj.datePERMFiledwithDOL : null;\r\n this.i485AppFiledWinYrPDBecomingCurr = obj.i485AppFiledWinYrPDBecomingCurr ? obj.i485AppFiledWinYrPDBecomingCurr : null;\r\n this.a104c3YearI140 = obj.a104c3YearI140 ? obj.a104c3YearI140 : null;\r\n this.dateI140FiledUSCIS = obj.dateI140FiledUSCIS ? obj.dateI140FiledUSCIS : null;\r\n this.priorityDate = obj.priorityDate ? obj.priorityDate : null;\r\n\r\n this.priorityCountryId = obj.priorityCountryId ? obj.priorityCountryId : null;\r\n this.visaBulletinCutoffDate = obj.visaBulletinCutoffDate ? obj.visaBulletinCutoffDate : null;\r\n this.dateI140PetitionApproved = obj.dateI140PetitionApproved ? obj.dateI140PetitionApproved : null;\r\n this.priorityClassification = obj.priorityClassification ? obj.priorityClassification : null;\r\n this.priorityDateCurrent = obj.priorityDateCurrent ? obj.priorityDateCurrent : false;\r\n this.notes = obj.notes?obj.notes :null;\r\n this.filingTravelDetails=obj.filingTravelDetails?obj.filingTravelDetails:[];\r\n this.filingStateOrCountry = obj.filingStateOrCountry ? obj.filingStateOrCountry : [];\r\n this.eyPetitioner = obj.eyPetitioner ? obj.eyPetitioner : null;\r\n }\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\nexport class FilingTableDetail {\r\n filingTravelID: number;\r\n //caseId: string;\r\n //caseSummaryID: number;\r\n departureDate: Date;\r\n arrivalDate: Date;\r\n countryId: boolean;\r\n //changeType: string;\r\n}\r\n","export class GeneralDetailsModel {\r\n // firstName: string = null;\r\n // lastName: string = null;\r\n // Date: Date = null;\r\n caseId: number = 0;\r\n\r\n constructor(obj?: any) {\r\n try{\r\n if (obj) {\r\n this.caseId = obj.caseId ? obj.caseId : 0;\r\n }\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n}\r\n","import { FilingDetails } from \"./filingdetails\";\r\nimport { GeneralDetailsModel } from \"./GeneralDetails\";\r\n\r\nexport class individualBioInfo {\r\n individualBioInfoID: number = 0;\r\n caseId:string=null;\r\n caseSummaryId:number=0;\r\n countryOfBirth: number = null;\r\n citizenship: number = null;\r\n dualCitizenship: boolean = null;\r\n secondCitizenship: string = null;\r\n currentStatus: string = null;\r\n statusDuration:boolean=null;\r\n ped: Date = null;\r\n priorH1L1Time: boolean = null;\r\n priorJ1: boolean = null;\r\n j1Notes: string = null;\r\n notes:string=null;\r\n subjectTo212: boolean = null;\r\n i94ExpDate: Date = null;\r\n visaExpDate: Date = null; \r\n h1L1statusStartDate: Date = null;\r\n h1L1statusToDate: Date = null;\r\n dateFrom: Date = null;\r\n dateTo: Date = null;\r\n fileHistoryReport: Array = [];\r\n nationality: number = null;\r\n alienNumber: string = null;\r\n constructor(obj?: any) {\r\n try {\r\n if (obj) {\r\n this.caseSummaryId = obj.caseSummaryId ? obj.caseSummaryId : 0;\r\n // this.individualBioInfoID = obj.bioInfoID ? obj.bioInfoID : null;\r\n // this.countryOfBirth = 105;\r\n // this.citizenship = 104;\r\n // this.currentStatus = obj.currentStatus ? \"Active\" : \"Active\";\r\n // this.priorH1L1Time = obj.priorH1orL1Time ? true :true;\r\n // this.dateFrom = obj.dateOfBirth ? new Date(1992,21,2) : new Date(1992,21,2);\r\n // this.dateTo = obj.caseManager ? new Date(2020,21,2) : new Date(2020,21,2);\r\n // this.i94ExpDate = obj.i94ExpDate ? new Date() : new Date();\r\n // this.visaExpDate = obj.visaExpDate ? new Date() : new Date();\r\n // this.subjectTo212 = obj.subjectTo212E ? true : true;\r\n // this.ped = obj.ped ? \"PED Value\" : \"PED Value\";\r\n // this.priorJ1 = false;\r\n // this.j1Notes = \"Documentation Complete\";\r\n // this.h1L1statusStartDate = new Date(2000,10,12);\r\n // this.h1L1statusToDate = new Date(2002,10,12);\r\n this.caseId = obj.caseId ? obj.caseId : null;\r\n this.individualBioInfoID = obj.bioInfoID ? obj.bioInfoID : 0;\r\n this.countryOfBirth = obj.countryOfBirth ? +obj.countryOfBirth : null;\r\n this.nationality = obj.nationality ? +obj.nationality : null;\r\n this.citizenship = obj.citizenship ? obj.citizenship : null;\r\n this.currentStatus = obj.currentStatus ? obj.currentStatus : null;\r\n this.priorH1L1Time = obj.priorH1L1Time ? obj.priorH1L1Time :false;\r\n this.statusDuration = obj.statusDuration ? obj.statusDuration :false;\r\n\r\n this.dateFrom = obj.dateFrom ? new Date(obj.dateFrom) : null;\r\n this.dateTo = obj.dateTo ? new Date(obj.dateTo) : null;\r\n this.i94ExpDate = obj.i94ExpDate ? new Date(obj.i94ExpDate) : null;\r\n this.visaExpDate = obj.visaExpDate ? new Date(obj.visaExpDate) : null;\r\n this.subjectTo212 = obj.subjectTo212 ? obj.subjectTo212 : false;\r\n this.ped = obj.ped ? new Date(obj.ped) : null;\r\n this.priorJ1 = obj.priorJ1 ? obj.priorJ1 : false;\r\n this.j1Notes = obj.j1Notes ? obj.j1Notes : null;\r\n this.secondCitizenship = obj.secondCitizenship ? obj.secondCitizenship : null;\r\n this.dualCitizenship = obj.dualCitizenship? obj.dualCitizenship :false;\r\n this.h1L1statusStartDate = obj.h1L1statusStartDate ? new Date(obj.h1L1statusStartDate) : null;\r\n this.h1L1statusToDate = obj.h1L1statusToDate ? new Date(obj.h1L1statusToDate) : null;\r\n this.notes = obj.notes ? obj.notes : null;\r\n this.alienNumber = obj.alienNumber ? obj.alienNumber : null;\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n}\r\nexport class FilingHistory {\r\n FileHistoryID: number;\r\n caseId: string;\r\n casesummaryId: number;\r\n FormType: string;\r\n Classification: string;\r\n RN: string;\r\n ReceiptDate: Date;\r\n ValidFrom: Date;\r\n ValidTo: Date;\r\n Status: string;\r\n IsFiledByPetitioner: boolean;\r\n changeType: string;\r\n}\r\n","import { addressWizardInfos } from \"./addressWizardInfos\";\r\n\r\nexport class lcaAssessmentDetails {\r\n jobTitle: string;\r\n oesSOCTitle: string;\r\n onetOcssId: number;\r\n oessocCode: string;\r\n lcaValidityFrom: Date;\r\n lcaValidityTo: Date;\r\n dotCode: string;\r\n wageLevel: Array = [];\r\n basisOfClassification: Array = [];\r\n wageSourceAndYear : string;\r\n //OFLC : string;\r\n prevailingWage: number;\r\n actualSalary: number;\r\n isInSalaryRange: boolean;\r\n salaryRangeFrom: number;\r\n salaryRangeTo: number;\r\n emailAddressForLCA: string;\r\n headcount: number;\r\n additionalWorksite: boolean;\r\n isSecondaryEntity : boolean;\r\n secondaryEntityName: string;\r\n streetNumber: string;\r\n streetName: string;\r\n apartment: string;\r\n cityName: string;\r\n cityId: number;\r\n stateId: number;\r\n postalCodeId: string;\r\n county: string;\r\n countryOnOLFC: string;\r\n isAdditionalLCA: boolean;\r\n additionalLCAJobTitle: string;\r\n additionalLCAOESSOCTitle: string;\r\n additionalLCAOESSOCCode: string;\r\n additionalLCAonetOcssId: number;\r\n additionalLCAPrevailingWage: number;\r\n additionalLCAactualSalary: number;\r\n isAdditionalLCAWageRange: boolean;\r\n additionalLCASalaryRangeFrom: number;\r\n additionalLCASalaryRangeTo: number;\r\n additionalLCAType: Array = [];;\r\n assessmentNotes: string;\r\n wageLevelId: number;\r\n wageLevelName: string;\r\n geography: string;\r\n worksiteAddress: Array = [];\r\n isbasis: number;\r\n}\r\n\r\nexport class wageLevel {\r\n wageLevelId: number;\r\n wageLevelName: string;\r\n isSelected: boolean;\r\n}\r\n\r\nexport class basisOfClassification {\r\n basisForClassificationType: string;\r\n classificationId: number;\r\n basisForClassificationId: number;\r\n isSelected: boolean;\r\n shortForm: string;\r\n}\r\n\r\nexport class worksiteAddressModal {\r\n public wageLevelId: number;\r\n public oesSOCCode: string;\r\n public addressWizardInfos: addressWizardInfos;\r\n}\r\n","import { addressWizardInfos } from \"./addressWizardInfos\";\r\nimport { GeneralDetailsModel } from \"./GeneralDetails\";\r\nimport { basisOfClassification, wageLevel } from \"./LCAAssessmentDetails\";\r\n\r\nexport class primaryWorksiteAddress extends GeneralDetailsModel{\r\n primWorkAddID: number = 0;\r\n state: string = null;\r\n officeaddress: string = null;\r\n city: string = null;\r\n caseSummaryId: number = 0;\r\n county: string = null;\r\n postalCode: string = null;\r\n streetName: string = null;\r\n streetNumber : number = null;\r\n apt: number = null;\r\n countryOnOLFC: string = null;\r\n employeeOffsite: boolean = false;\r\n compliance: boolean = false;\r\n addnlWorksites: boolean = false;\r\n h1BDependantER: boolean = false;\r\n willfulViolator: boolean = false;\r\n exemptH1Bworker: boolean = false;\r\n reasonForExemption: string = null;\r\n educCoveredByACIWA: boolean = false;\r\n notes: string = null;\r\n stateID: number = 0;\r\n zipCodeId: number = 0;\r\n cityId: number = 0;\r\n countyId: number = 0;\r\n geographyId: number = 0;\r\n officeaddressId: number = 0;\r\n companyName: string = null;\r\n\r\n //LCA Assessment\r\n jobTitle: string;\r\n oesSOCTitle: string;\r\n onetOcssId: number;\r\n oessocCode: string;\r\n lcaValidityFrom: Date;\r\n lcaValidityTo: Date;\r\n dotCode: string;\r\n wageLevel: Array = [];\r\n basisOfClassification: Array = [];\r\n wageSourceAndYear: string;\r\n prevailingWage: number;\r\n actualSalary: number;\r\n isInSalaryRange: boolean;\r\n salaryRangeFrom: number;\r\n salaryRangeTo: number;\r\n emailAddressForLCA: string;\r\n headcount: number;\r\n worksiteAddress: Array = [];\r\n wageLevelId: number;\r\n wageLevelName: string;\r\n isbasis: number;\r\n lcaAssmtID: number;\r\n officeType: string;\r\n constructor(obj?: any) {\r\n super();\r\n try{\r\n if (obj) {\r\n this.caseId = obj.caseId ? obj.caseId : null;\r\n this.caseSummaryId = obj.caseSummaryId ? obj.caseSummaryId : 0;\r\n this.primWorkAddID = obj.primWorkAddID ? obj.primWorkAddID : 0;\r\n this.state = obj.state ? obj.state : null;\r\n this.city = obj.city ? obj.city : null;\r\n this.county = obj.county ? obj.county : null;\r\n this.postalCode = obj.postalCode ? obj.postalCode : null;\r\n this.streetName = obj.streetName ? obj.streetName : null;\r\n this.streetNumber = obj.streetNumber ? obj.streetNumber : null;\r\n this.apt = obj.apt ? obj.apt : null;\r\n this.countryOnOLFC = obj.countryOnOLFC ? obj.countryOnOLFC : null;\r\n this.addnlWorksites = obj.addnlWorksites ? obj.addnlWorksites : false;\r\n this.compliance = obj.compliance ? obj.compliance : false;\r\n this.educCoveredByACIWA = obj.educCoveredByACIWA ? obj.educCoveredByACIWA : false;\r\n this.employeeOffsite = obj.employeeOffsite ? obj.employeeOffsite : false;\r\n this.exemptH1Bworker = obj.exemptH1BWorker ? obj.exemptH1BWorker : false;\r\n this.reasonForExemption = obj.reasonForExemption ? obj.reasonForExemption : \"\";\r\n this.h1BDependantER = obj.h1BDependantER ? obj.h1BDependantER : false;\r\n this.notes = obj.notes ? obj.notes : null;\r\n this.willfulViolator = obj.willfulViolator ? obj.willfulViolator : false;\r\n this.stateID = obj.stateID ? obj.stateID : null;\r\n this.zipCodeId = obj.zipCodeId ? obj.zipCodeId : null;\r\n this.cityId = obj.cityId ? obj.cityId : null;\r\n this.countyId = obj.countyId ? obj.countyId : null;\r\n this.geographyId = obj.geographyId ? obj.geographyId : null;\r\n this.officeaddressId = obj.officeaddressId ? obj.officeaddressId : null;\r\n this.companyName = obj.companyName ? obj.companyName : null;\r\n\r\n this.lcaAssmtID = obj.lcaAssmtID ? obj.lcaAssmtID : null;\r\n this.jobTitle = obj.jobTitle ? obj.jobTitle : null;\r\n this.oesSOCTitle = obj.oesSOCTitle ? obj.oesSOCTitle : null;\r\n this.onetOcssId = obj.onetOcssId ? obj.onetOcssId : null;\r\n this.oessocCode = obj.oessocCode ? obj.oessocCode : null;\r\n this.lcaValidityFrom = obj.lcaValidityFrom ? obj.lcaValidityFrom : null;\r\n this.lcaValidityTo = obj.lcaValidityTo ? obj.lcaValidityTo : null;\r\n this.dotCode = obj.dotCode ? obj.dotCode : null;\r\n this.wageLevel = obj.wageLevel ? obj.wageLevel : null;\r\n this.basisOfClassification = obj.basisOfClassification ? obj.basisOfClassification : null;\r\n this.wageSourceAndYear = obj.wageSourceAndYear ? obj.wageSourceAndYear : null;\r\n this.prevailingWage = obj.prevailingWage ? obj.prevailingWage : null;\r\n this.actualSalary = obj.actualSalary ? obj.actualSalary : null;\r\n this.isInSalaryRange = obj.isInSalaryRange ? obj.isInSalaryRange : null;\r\n this.salaryRangeFrom = obj.salaryRangeFrom ? obj.salaryRangeFrom : null;\r\n this.salaryRangeTo = obj.salaryRangeTo ? obj.salaryRangeTo : null;\r\n this.emailAddressForLCA = obj.emailAddressForLCA ? obj.emailAddressForLCA : null;\r\n this.headcount = obj.headcount ? obj.headcount : null;\r\n this.worksiteAddress = obj.worksiteAddress ? obj.worksiteAddress : null;\r\n this.wageLevelId = obj.wageLevelId ? obj.wageLevelId : null;\r\n this.wageLevelName = obj.wageLevelName ? obj.wageLevelName : null;\r\n this.isbasis = obj.isbasis ? obj.isbasis : null;\r\n this.officeType = obj.officeType ? obj.officeType : null;\r\n }\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n}\r\n","export class spouseAndDependentDetails {\r\n isDependentExist: boolean; \r\n relationDetails: Array = [];\r\n notes: string;\r\n}\r\n\r\nexport class relationDetail {\r\n relation: string;\r\n firstName: string;\r\n middleName: string;\r\n lastName: string;\r\n isSpouseEmployedFollowingLatestEntry: boolean;\r\n i539Required: boolean;\r\n i765Required: boolean;\r\n i131Required: boolean;\r\n spouseAndDependentNotes: string;\r\n spouseDepAppID: number;\r\n relationId: number;\r\n isNew: boolean;\r\n}\r\n","export class WorkExperience{\r\n workExperienceWizardID : number;\r\n caseID : string;\r\n caseSummaryID :number;\r\n employerName :string;\r\n jobTitle : string;\r\n fromDates : Date;\r\n toDates : Date;\r\n totalNumberOfDays :string;\r\n years :string;\r\n months :string;\r\n days :string;\r\n}","export class addressWizardInfos {\r\n addressWizardID: number = 0;\r\n caseID:string=null;\r\n caseSummaryID: number = 0;\r\n addressType: string = null;\r\n entityName: string = null;\r\n streetNumber: string = null;\r\n streetName: string = null;\r\n apt: string = null;\r\n city: string = null;\r\n state: string = null;\r\n geography: string = null;\r\n postalCode: string = null;\r\n county: string = null;\r\n countyOnOLFC: string = null;\r\n salary: number = 0;\r\n flcWage: number = 0;\r\n pwi: boolean = null;\r\n geographyId: number = null;\r\n stateId: number = null;\r\n zipCodeId: number = null;\r\n cityId: number = null;\r\n countyId: number = null;\r\n constructor(obj?: any) {\r\n try {\r\n if (obj) {\r\n \r\n this.caseID = obj.caseID ? obj.caseID : null;\r\n this.addressWizardID = obj.addressWizardID ? obj.addressWizardID : 0;\r\n this.caseSummaryID = obj.caseSummaryID ? obj.caseSummaryID : 0;\r\n this.addressType = obj.addressType ? obj.addressType : null;\r\n this.entityName = obj.entityName ? obj.entityName : null;\r\n this.streetName = obj.streetName ? obj.streetName :null;\r\n this.streetNumber = obj.streetNumber ? obj.streetNumber : null;\r\n this.apt = obj.apt ? obj.apt : null;\r\n this.city = obj.city ? obj.city : null;\r\n this.state = obj.state ? obj.state :null;\r\n this.postalCode = obj.postalCode ? obj.postalCode : null;\r\n this.county = obj.county ? obj.county : null;\r\n this.countyOnOLFC = obj.countyOnOLFC ? obj.countyOnOLFC : null;\r\n this.salary = obj.salary ? obj.salary :0;\r\n this.flcWage = obj.flcWage ? obj.flcWage : 0;\r\n this.pwi = obj.flcWage ? obj.flcWage : null;\r\n this.stateId = obj.stateId ? obj.stateId : null;\r\n this.zipCodeId = obj.zipCodeId ? obj.zipCodeId : null;\r\n this.cityId = obj.cityId ? obj.cityId : null;\r\n this.countyId = obj.countyId ? obj.countyId : null;\r\n this.geographyId = obj.geographyId ? obj.geographyId : null;\r\n this.geography = obj.geography ? obj.geography : null;\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n}\r\n","export namespace dafAppConstants{\r\n export class caseStatus {\r\n static initialted: string = \"Initiated\";\r\n static drafted: string = \"Case Drafted\";\r\n static supportReview: string = \"Support Review\";\r\n static attorneyReview: string = \"Attorney Review\";\r\n static caseManaerReview: string = \"Case Manager Review\";\r\n static onHold: string = \"On Hold\";\r\n static approved: string = \"Approved\";\r\n static rejected: string = \"Rejected\";\r\n }\r\n\r\n export class sessionStorageVariables{\r\n static currentStatus: string = \"caseStatus\";\r\n static currentCaseType : string = \"caseType\";\r\n static currentCaseSummaryId : string = \"caseSummaryId\";\r\n }\r\n}","export class FilingDetails {\r\n fileHistoryID :number;\r\n caseId :string;\r\n casesummaryId :number;\r\n formType :string;\r\n classification :string;\r\n rn :string;\r\n receiptDate:Date;\r\n validFrom :Date;\r\n validTo :Date;\r\n fileStatus :string;\r\n isFiledByPetitioner :boolean;\r\n changeType: string;\r\n}\r\n\r\n\r\nexport class EditFilingDetails {\r\n fileHistoryID :number;\r\n formType :string;\r\n classification :string;\r\n rn :string;\r\n receiptDate:Date;\r\n validFrom :Date;\r\n validTo :Date;\r\n status :string;\r\n isFiledByPetitioner :boolean;\r\n}\r\n","import { GeneralDetailsModel } from \"./GeneralDetails\";\r\n\r\nexport class jobDetailsWizardInfo {\r\n jobTitleWizardSaveID: number = 0;\r\n caseId:string=null;\r\n caseSummaryId: number = 0;\r\n jobTitle: string = null;\r\n salaryOffered: string = null;\r\n jobDetails: string = null;\r\n\r\n jobRequirements: string = null;\r\n constructor(obj?: any) {\r\n try {\r\n if (obj) {\r\n \r\n this.caseId = obj.caseId ? obj.caseId : null;\r\n this.jobTitleWizardSaveID = obj.jobTitleWizardSaveID ? obj.jobTitleWizardSaveID : 0;\r\n this.caseSummaryId = obj.caseSummaryId ? obj.caseSummaryId : 0;\r\n this.jobTitle = obj.jobTitle ? obj.jobTitle : null;\r\n this.salaryOffered = obj.salaryOffered ? obj.salaryOffered : null;\r\n this.jobDetails = obj.jobDetails ? obj.jobDetails :null;\r\n this.jobRequirements = obj.jobRequirements ? obj.jobRequirements : null;\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n}","export class specialityDegreeDetails {\r\n specialtyDegAssmtCertID:number;\r\n highestEdulevel:string;\r\n expRequireseval:boolean;\r\n profExpreqforeval:boolean;\r\n certification:boolean;\r\n degLevelequivalency:string;\r\n degFieldequivalency:string;\r\n\r\n caseID:string;\r\n\r\n caseSummaryID:number;\r\n notes:string;\r\n specialityDegree: Array = [];\r\n}\r\n\r\nexport class SpecialDegreeAssessment {\r\n spedegassmtId :number;\r\n caseId :string;\r\n casesummaryId :number;\r\n universityName :string;\r\n degree :string;\r\n degreeField :string;\r\n enrollFrom :Date;\r\n enrollTo :Date;\r\n awardDate :Date;\r\n degissuingCountry : string;\r\n degreesOnFile :boolean;\r\n changeType: string;\r\n}\r\n","export class WorkSitewizards{\r\n primWorkItineraryID:number;\r\n worksiteItenary:boolean;\r\n clientsideAmmendment:boolean;\r\n clientlegalName:string;\r\n periodFrom:Date;\r\n periodTo:Date;\r\n daysPerMonth:string;\r\n streetAddress:string;\r\n streetNumber :string;\r\n streetName:string;\r\n apt:string;\r\n cityId: number;\r\n stateId: number;\r\n zipCodeId: number;\r\n countyId: number;\r\n primary: boolean;\r\n offsite: boolean;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { CaseTypeAssessmentComponent } from './case-type-assessment/case-type-assessment.component';\r\nimport { GeneralDetailsComponent } from './general-details/general-details.component'\r\nimport { LCAAssessmentComponent } from './lca-assessment/lca-assessment.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'generaldetails', pathMatch: 'full', component: GeneralDetailsComponent\r\n },\r\n {\r\n path: 'lcaassessment', pathMatch: 'full', component: LCAAssessmentComponent\r\n },\r\n {\r\n path: 'casetypeassessment', pathMatch: 'full', component: CaseTypeAssessmentComponent\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AssessmentFormsRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { AssessmentFormsRoutingModule } from './assessment-forms-routing.module';\r\nimport { GeneralDetailsComponent } from './general-details/general-details.component';\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LCAAssessmentComponent } from './lca-assessment/lca-assessment.component';\r\nimport { CaseTypeAssessmentComponent } from './case-type-assessment/case-type-assessment.component';\r\nimport { EditorModule } from \"@progress/kendo-angular-editor\";\r\n\r\n@NgModule({\r\n declarations: [GeneralDetailsComponent, LCAAssessmentComponent, CaseTypeAssessmentComponent],\r\n imports: [\r\n CommonModule,\r\n AssessmentFormsRoutingModule,\r\n LayoutModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n EditorModule\r\n ]\r\n})\r\nexport class AssessmentFormsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-case-type-assessment',\r\n templateUrl: './case-type-assessment.component.html',\r\n styleUrls: ['./case-type-assessment.component.scss']\r\n})\r\nexport class CaseTypeAssessmentComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit,ViewChild } from '@angular/core';\r\nimport { StepperComponent } from \"@progress/kendo-angular-layout\";\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-general-details',\r\n templateUrl: './general-details.component.html',\r\n styleUrls: ['./general-details.component.scss']\r\n})\r\nexport class GeneralDetailsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n @ViewChild(\"stepper\", { static: true })\r\n public stepper: StepperComponent;\r\n\r\n public currentStep = 0;\r\n\r\n private sumbitted = false;\r\n\r\n private isStepValid = (index: number): boolean => {\r\n return this.getGroupAt(index).valid;\r\n };\r\n\r\n private shouldValidate = (): boolean => {\r\n return this.sumbitted === true;\r\n };\r\n\r\n public steps = [\r\n {\r\n label: \"General Details\"\r\n\r\n },\r\n {\r\n label: \"LCA Assessment\"\r\n\r\n },\r\n {\r\n label: \"Case Type Assessment\"\r\n\r\n },\r\n {\r\n label: \"CheckList\"\r\n\r\n },\r\n {\r\n label: \"Preview and Submit\"\r\n\r\n },\r\n ];\r\n\r\n public form = new FormGroup({\r\n accountDetails: new FormGroup({\r\n userName: new FormControl(\"\", Validators.required),\r\n email: new FormControl(\"\", [Validators.required, Validators.email]),\r\n password: new FormControl(\"\", Validators.required),\r\n avatar: new FormControl(null),\r\n }),\r\n personalDetails: new FormGroup({\r\n fullName: new FormControl(\"\", [Validators.required]),\r\n country: new FormControl(\"\", [Validators.required]),\r\n gender: new FormControl(null, [Validators.required]),\r\n about: new FormControl(\"\"),\r\n }),\r\n paymentDetails: new FormGroup({\r\n paymentType: new FormControl(null, Validators.required),\r\n cardNumber: new FormControl(\"\", Validators.required),\r\n cvc: new FormControl(\"\", [\r\n Validators.required,\r\n Validators.maxLength(3),\r\n Validators.minLength(3),\r\n ]),\r\n expirationDate: new FormControl(\"\", Validators.required),\r\n cardHolder: new FormControl(\"\", Validators.required),\r\n }),\r\n });\r\n\r\n public get currentGroup(): FormGroup {\r\n return this.getGroupAt(this.currentStep);\r\n }\r\n\r\n public next(): void {\r\n this.currentStep += 1;\r\n }\r\n\r\n public prev(): void {\r\n this.currentStep -= 1;\r\n }\r\n\r\n public submit(): void {\r\n this.sumbitted = true;\r\n\r\n if (!this.form.valid) {\r\n this.form.markAllAsTouched();\r\n this.stepper.validateSteps();\r\n }\r\n\r\n console.log(\"Submitted data\", this.form.value);\r\n }\r\n\r\n private getGroupAt(index: number): FormGroup {\r\n const groups = Object.keys(this.form.controls).map((groupName) =>\r\n this.form.get(groupName)\r\n ) as FormGroup[];\r\n\r\n return groups[index];\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-lca-assessment',\r\n templateUrl: './lca-assessment.component.html',\r\n styleUrls: ['./lca-assessment.component.scss']\r\n})\r\nexport class LCAAssessmentComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { CellClickEvent, CreateFormGroupArgs, GridComponent, GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { NotificationService } from '@progress/kendo-angular-notification';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Subscription } from 'rxjs';\r\nimport { addressWizardInfos } from 'src/app/DAF/Models/addressWizardInfos';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-address-info-wizard',\r\n templateUrl: './address-info-wizard.component.html',\r\n styleUrls: ['./address-info-wizard.component.scss']\r\n})\r\nexport class AddressInfoWizardComponent implements OnInit {\r\n public emailForm: FormGroup;\r\n public isReady=false;\r\n addressInfo=[];\r\n public view = [];\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n\r\n\r\n \r\n @Input() caseSummaryId = 0;\r\n public formGroup: FormGroup;\r\n public addressDetails=[];\r\n private notifier: NotifierService;\r\n public WorkSite=\"Address Info Wizard\";\r\n\r\n\r\n\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n constructor(private formBuilder: FormBuilder,@Inject(NotificationService) private notificationService: NotificationService, private _dafService: DafService,notifier: NotifierService) {\r\n this.notifier = notifier; \r\n\r\n this.createFormGroup = this.createFormGroup.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAddressInformation();\r\n }\r\n\r\n \r\n\r\n\r\n public createFormGroup(args: CreateFormGroupArgs): FormGroup {\r\n const item = args.isNew ? new addressWizardInfos() : args.dataItem;\r\n\r\n this.formGroup = this.formBuilder.group({\r\n addressWizardID: item.addressWizardID,\r\n addressType: item.addressType,\r\n entityName: item.entityName,\r\n streetNumber: item.streetNumber,\r\n streetName: item.streetName,\r\n apt: item.apt,\r\n city: item.city,\r\n state: item.state,\r\n postalCode: item.postalCode,\r\n county: item.county,\r\n countyOnOLFC:item.countyOnOLFC,\r\n salary: item.salary,\r\n flcWage: item.flcWage,\r\n pwi: item.pwi\r\n });\r\n\r\n return this.formGroup;\r\n }\r\n\r\n saveData(){\r\n this.addressDetails=[];\r\n var saveValues = [];\r\n\r\n \r\n \r\n this.addressInfo.forEach(item => {\r\n \r\n \r\n var address=new addressWizardInfos();\r\n address.caseID=\"\";\r\n address.caseSummaryID=0;\r\n address.addressWizardID=0,\r\n address.addressType= item.addressType,\r\n address.entityName= item.entityName,\r\n address.streetNumber= item.streetNumber,\r\n address.streetName= item.streetName,\r\n address.apt= item.apt,\r\n address.city= item.city,\r\n address.state= item.state,\r\n address.postalCode= item.postalCode,\r\n address.county= item.county,\r\n address.countyOnOLFC=item.countyOnOLFC,\r\n address.salary= item.salary,\r\n address.flcWage= item.flcWage,\r\n address.pwi= item.pwi\r\n this.addressDetails.push(address);\r\n \r\n });\r\n if(this.addressDetails.length>0){\r\n this._dafService.saveAddressWizard(this.caseSummaryId, this.addressDetails).toPromise().then(() => {\r\n this.notifier.notify('success', 'Address details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n\r\n\r\n }\r\n \r\n }\r\n\r\n\r\n onLcaAdd(){\r\n this.cancel.emit(\"Lca\");\r\n }\r\n\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n}\r\n\r\npublic closeForm(): void {\r\n this.cancel.emit(\"Close\");\r\n}\r\n\r\n\r\n getAddressInformation(){\r\n this.isReady = false;\r\n this._dafService.getAddressWizardInformation(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.addressInfo = data;\r\n if(this.addressInfo.length==0){\r\n for(let i=0;i<3;i++){\r\n var newAddress= new addressWizardInfos();\r\n newAddress.caseSummaryID=this.caseSummaryId;\r\n this.addressInfo.push(newAddress);\r\n }\r\n this.addressInfo[0].addressType=\"Primary\";\r\n this.addressInfo[1].addressType=\"Additional\";\r\n this.addressInfo[2].addressType=\"Secondary\";\r\n\r\n }\r\n this.view = this.addressInfo;\r\n\r\n\r\n this.loadItems();\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isReady = true;\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { FormBuilder, Validators, FormGroup, FormControl } from '@angular/forms';\r\nimport { caseSummaryDetails, Summaryconstants } from 'src/app/DAF/Models/CaseSummaryDetails';\r\nimport { AddLCAService } from 'src/app/immigrationcompilation/add-lca/service/add-lca.service';\r\n\r\n@Component({\r\n selector: 'app-case-summary-details',\r\n templateUrl: './case-summary-details.component.html',\r\n styleUrls: ['./case-summary-details.component.scss']\r\n})\r\nexport class CaseSummaryDetailsComponent implements OnInit, OnDestroy {\r\n //public textboxValue = '';\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n private notifier: NotifierService;\r\n public searchDetails: any;\r\n public addUserMail: string;\r\n public addUserName: string;\r\n public caseData: caseSummaryDetails = new caseSummaryDetails();\r\n public isUnlocked: boolean = false;\r\n public isEditEnabled: boolean = false;\r\n public isPageReady = true;\r\n caseSummaryForm: FormGroup = null;\r\n\r\n statesDataSource = [];\r\n statesList=[];\r\n public zipcodeList = [];\r\n public addressTypesList = [];\r\n public state;\r\n public zipcodeSource=[];\r\n public selectedType=[];\r\n public cityArray=[[]];\r\n public countyArray = [[]];\r\n public isReady=false;\r\n cityDataArray: any[]=[];\r\n countyDataArray: any[]=[];\r\n addressTypes: any[] = [];\r\n public countyList = [];\r\n public geographyList = [];\r\n public countySource = [];\r\n public geographySource = [];\r\n public cityList = [];\r\n public citySource = [];\r\n public caseManagersList = [];\r\n public caseManagersSourceList = [];\r\n public caseAttorneysList = [];\r\n dateOfBirth: any;\r\n public caseAttorneysSourceList = [];\r\n\r\n @Input() caseId = 0;\r\n @Output() page = new EventEmitter();\r\n \r\n @Output() collapseCSPanel = new EventEmitter();\r\n @ViewChild('autocomplete', { static: false }) autocomplete: any;\r\n\r\n optionalFormControls = [\"middleName\",\"signatoryName\",\"signatoryTitle\",\"signatoryTelephone\",\"department\"];\r\n formErrors = {\r\n 'firstName': '',\r\n 'lastName': '',\r\n 'dateOfBirth': '',\r\n 'caseManager': '',\r\n 'caseAttorney': '',\r\n 'companyName': '',\r\n 'supportTeamMember': '',\r\n 'signatoryName': '',\r\n 'signatoryTitle': '',\r\n 'signatoryTelephone': '',\r\n 'signatoryEmail': '',\r\n 'signatoryStreetName': '',\r\n 'signatoryStreetNo': '',\r\n 'signatoryAptSteFlrDoorNo': '',\r\n 'signatoryCity': '',\r\n 'signatoryState': '',\r\n 'signatoryZipcode': '',\r\n 'department': '',\r\n 'employeeId': '',\r\n 'employeeEmail': '',\r\n 'expediteCase': '', \r\n 'reasonToExpediteCase': '',\r\n 'placeOnHold':'',\r\n 'reasonToDelayCase':'',\r\n 'notes':''\r\n };\r\n \r\n validationMessages = {\r\n 'firstName': {\r\n 'required': 'First Name is required.',\r\n },\r\n 'lastName': { \r\n 'required': 'Last Name is required.', \r\n },\r\n 'dateOfBirth': { \r\n 'required': 'DOB is required.', \r\n },\r\n 'caseManager': { \r\n 'required': 'Case Manager is required.', \r\n },\r\n 'caseAttorney': { \r\n 'required': 'Case Attorney is required.', \r\n },\r\n 'companyName': { \r\n 'required': 'Company Name is required.', \r\n },\r\n 'supportTeamMember': { \r\n 'required': 'Support team member required.', \r\n },\r\n 'signatoryName': { \r\n 'required': 'Signatory Name is required.', \r\n },\r\n 'signatoryTitle': { \r\n 'required': 'Signotary Title is required.', \r\n },\r\n 'signatoryTelephone': { \r\n 'required': 'Signotary Telephone is required.', \r\n },\r\n 'signatoryEmail': { \r\n 'required': 'Signatory Email is required.', \r\n 'email': 'Please enter a valid email address'\r\n },\r\n 'signatoryStreetName': { \r\n 'required': 'Street Name is required.', \r\n },\r\n 'signatoryStreetNo': { \r\n 'required': 'Street number is required.', \r\n },\r\n 'signatoryAptSteFlrDoorNo': { \r\n 'required': 'An apartment/floor/door number is required', \r\n },\r\n 'signatoryCity': {\r\n 'required': 'City is required.',\r\n },\r\n 'signatoryState': { \r\n 'required': 'State is required.', \r\n },\r\n 'signatoryZipcode': { \r\n 'required': 'Zipcode is required.',\r\n },\r\n 'department': { \r\n 'required': 'Department is required.', \r\n },\r\n 'employeeId': { \r\n 'required': 'EmployeeId is required.', \r\n },\r\n 'employeeEmail': { \r\n 'required': 'Employee Emial is required.',\r\n 'email': 'Please enter a valid email address'\r\n },\r\n 'expediteCase': { \r\n 'required': 'First Name is required.', \r\n },\r\n 'reasonToExpediteCase': { \r\n 'required': 'Reason is required.',\r\n },\r\n 'placeOnHold': { \r\n 'required': 'Reason is required.', \r\n },\r\n 'reasonToDelayCase': { \r\n 'required': 'Reason is required.', \r\n },\r\n 'notes': {\r\n 'required': 'Notes are required.',\r\n },\r\n 'cityId': {\r\n 'required': 'City is required.',\r\n },\r\n 'stateId': {\r\n 'required': 'State is required.',\r\n },\r\n 'zipCodeId': {\r\n 'required': 'Zipcode is required.',\r\n }\r\n };\r\n\r\n constructor(private _dafService: DafService, notifierService: NotifierService, public _addLCAService: AddLCAService,private formBuilder: FormBuilder) {\r\n this.notifier = notifierService; \r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.getMasterData();\r\n // this.getStates();\r\n // this.fetchcaseData(this.caseId);\r\n }\r\n\r\n async getMasterData (){\r\n this.getStates();\r\n\r\n this.fetchcaseData(this.caseId);\r\n\r\n \r\n //var c = await this.GetCountyInfo(staff.zipCode);\r\n }\r\n\r\n async fetchcaseData(caseId: number) {\r\n \r\n this.isPageReady = false;\r\n this._dafService.getCasesById(caseId).toPromise().then((data: any) => {\r\n this.caseData = new caseSummaryDetails(data);\r\n \r\n this.initializeForm();\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n async initializeForm() {\r\n await this.GetZipcodes(this.caseData.stateId);\r\n await this.GetCounty(this.caseData.stateId);\r\n await this.GetGeography(this.caseData.stateId);\r\n await this.GetCity(this.caseData.zipCodeId);\r\n await this.GetCaseManagers();\r\n await this.GetCaseAttorneys();\r\n let decodedNotes = this.decodeHTMLEntities(this.caseData.notes);\r\n try {\r\n this.caseSummaryForm = this.formBuilder.group({\r\n caseId: new FormControl(this.caseId),\r\n caseSummaryId: new FormControl(this.caseData.caseSummaryId),\r\n firstName: new FormControl({ value: this.caseData.firstName, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n middleName: new FormControl({ value: this.caseData.middleName, disabled: true}),\r\n lastName: new FormControl({ value: this.caseData.lastName, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n dateOfBirth: new FormControl({ value: this.caseData.dateOfBirth ? new Date(this.caseData.dateOfBirth) : null, disabled: true }, Validators.required),\r\n caseManager: new FormControl({ value: this.caseData.caseManager, disabled: true },[ Validators.required,Validators.nullValidator]),\r\n caseAttorney: new FormControl({ value: this.caseData.caseAttorney, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n companyName: new FormControl({ value: this.caseData.companyName, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n supportTeamMember: new FormControl({ value: this.caseData.supportTeamMember, disabled: false }),\r\n signatoryName: new FormControl({ value: this.caseData.signatoryName, disabled: true }),\r\n signatoryTitle: new FormControl({ value: this.caseData.signatoryTitle, disabled: true }),\r\n signatoryTelephone: new FormControl({ value: this.caseData.signatoryTelephone, disabled: true }),\r\n signatoryEmail: new FormControl({ value: this.caseData.signatoryEmail, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n //corporationAddress: new FormControl({ value: this.caseData.corporationAddress, disabled: true }, Validators.required),\r\n //signatoryPrimaryOfficeState: new FormControl({ value: this.caseData.signatoryPrimaryOfficeState, disabled: true }, Validators.required),\r\n department: new FormControl({ value: this.caseData.department, disabled: true }),\r\n employeeId: new FormControl({ value: this.caseData.employeeId, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n employeeEmail: new FormControl({ value: this.caseData.employeeEmail, disabled: true }, [Validators.required, Validators.email]),\r\n expediteCase: new FormControl({ value: this.caseData.expediteCase, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n reasonToExpediteCase: new FormControl({ value: this.caseData.reasonToExpediteCase, disabled: true }),\r\n placeOnHold: new FormControl({ value: this.caseData.placeOnHold, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n reasonToDelayCase: new FormControl({ value: this.caseData.reasonToDelayCase, disabled: true }),\r\n notes: new FormControl({ value: decodedNotes, disabled: true }),\r\n signatoryStreetNo: new FormControl({value: this.caseData.signatoryStreetNo, disabled: true},[Validators.required,Validators.nullValidator]),\r\n signatoryStreetName: new FormControl({value: this.caseData.signatoryStreetName, disabled: true},[Validators.required,Validators.nullValidator]),\r\n signatoryAptSteFlrDoorNo: new FormControl({ value: this.caseData.signatoryAptSteFlrDoorNo, disabled: true }),\r\n signatoryCity: new FormControl({ value: null, disabled: true }),\r\n countyId: new FormControl({ value: this.caseData.countyId, disabled: true }),\r\n signatoryState: new FormControl({ value: null, disabled: true }),\r\n signatoryZipcode: new FormControl({ value: null, disabled: true }),\r\n geographyId: new FormControl({ value: this.caseData.geographyId, disabled: true }),\r\n stateId: new FormControl({ value: this.caseData.stateId, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n zipCodeId: new FormControl({ value: this.caseData.zipCodeId, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n cityId: new FormControl({ value: this.caseData.cityId, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n caseManagerId: new FormControl({ value: this.caseData.caseManagerId, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n caseAttorneyId: new FormControl({ value: this.caseData.caseAttorneyId, disabled: true }, [Validators.required, Validators.nullValidator])\r\n });\r\n\r\n this.isPageReady = true;\r\n this.subscribeToFormControlValueChanges();\r\n this.caseSummaryForm.valueChanges.subscribe((val=>{\r\n this.logOnChangeValidationErrors();\r\n }));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n subscribeToFormControlValueChanges() {\r\n if(this.caseData.expediteCase)\r\n this.f['reasonToExpediteCase'].setValidators([Validators.required,Validators.nullValidator]);\r\n if(this.caseData.placeOnHold)\r\n this.f['reasonToDelayCase'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.caseSummaryForm.updateValueAndValidity();\r\n this.caseSummaryForm.get(\"expediteCase\").valueChanges.subscribe(val => {\r\n if (val) {\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm, [\"reasonToExpediteCase\"], false);\r\n this.caseData.expediteCase = true;\r\n this.f['reasonToExpediteCase'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.caseSummaryForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm, [\"reasonToExpediteCase\"], true);\r\n this.caseData.expediteCase = false;\r\n this.f[\"reasonToExpediteCase\"].clearValidators();\r\n this.f['reasonToExpediteCase'].setValue(null);\r\n this.caseSummaryForm.updateValueAndValidity();\r\n // this.caseSummaryForm.patchValue({\r\n // reasonToExpediteCase: null,\r\n // });\r\n }\r\n });\r\n this.caseSummaryForm.get(\"placeOnHold\").valueChanges.subscribe(val => {\r\n if (val) {\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm, [\"reasonToDelayCase\"], false);\r\n this.caseData.placeOnHold = true;\r\n this.f['reasonToDelayCase'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.caseSummaryForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm, [\"reasonToDelayCase\"], true);\r\n this.caseData.placeOnHold = false;\r\n this.f['reasonToDelayCase'].setValue(null);\r\n this.f[\"reasonToDelayCase\"].clearValidators();\r\n this.caseSummaryForm.updateValueAndValidity();\r\n // this.caseSummaryForm.patchValue({\r\n // reasonToDelayCase: null,\r\n // });\r\n }\r\n });\r\n }\r\n\r\n enableEdit() {\r\n try {\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.caseSummaryForm, [\"reasonToExpediteCase\", \"reasonToDelayCase\"], false);\r\n\r\n if (!this.caseSummaryForm.get(\"stateId\").value)\r\n this._dafService.disableEnableAllFormControls(this.caseSummaryForm, [\"zipCodeId\", \"cityId\", \"countyId\"], false);\r\n\r\n if (this.caseData.expediteCase) {\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm, [\"reasonToExpediteCase\"], false);\r\n }\r\n if (this.caseData.placeOnHold) {\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm, [\"reasonToDelayCase\"], false);\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n unlockFields() {\r\n try {\r\n this.isUnlocked = true;\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"employeeEmail\"], false);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n lockFields() {\r\n try {\r\n this.isUnlocked = false;\r\n this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"employeeEmail\"], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n saveCaseSummaryData() {\r\n this.isPageReady = false;\r\n this.logValidationErrors();\r\n this.isPageReady = true;\r\n\r\n this.readFormValues(this.caseSummaryForm);\r\n if (this.caseSummaryForm.valid) {\r\n if (this.caseData.dateOfBirth && this.caseData.dateOfBirth !== null) {\r\n //var userTimezoneOffset = new Date(this.caseData.dateOfBirth).getTimezoneOffset() * 60000;\r\n //this.caseData.dateOfBirth = new Date(this.caseData.dateOfBirth.getTime() - userTimezoneOffset);\r\n this.dateOfBirth = this.caseData.dateOfBirth.toDateString();\r\n }\r\n else {\r\n this.dateOfBirth = null;\r\n }\r\n var caseSummaryData = this.caseSummaryForm.value;\r\n if (caseSummaryData.notes) {\r\n caseSummaryData.notes = this.encodeHTMLEntities(this.caseSummaryForm.get(\"notes\").value);\r\n }\r\n this._dafService.saveCaseSummary(caseSummaryData, this.dateOfBirth).subscribe((data: any) => {\r\n this._dafService.disableEnableAllFormControls(this.caseSummaryForm, [], true);\r\n this.isEditEnabled = false;\r\n this.isUnlocked = false;\r\n this.page.emit(1);\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Case summary details have been saved successfully');\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while saving case summary details');\r\n });\r\n }\r\n else {\r\n this.notifier.notify('error', 'All fields are required and should have data');\r\n this.isPageReady = true;\r\n }\r\n\r\n if(this.caseSummaryForm.valid){\r\n \r\n }\r\n else{\r\n this.logValidationErrors();\r\n }\r\n\r\n }\r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.caseSummaryForm.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.readFormValues(abstractControl);\r\n }\r\n else {\r\n this.caseData[key] = abstractControl.value;\r\n }\r\n });\r\n }\r\n\r\n resetForm() {\r\n try {\r\n this.fetchcaseData(this.caseId);\r\n this.isEditEnabled = false;\r\n this.isUnlocked = false;\r\n this._dafService.disableEnableAllFormControls(this.caseSummaryForm, [\"supportTeamMember\"],true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n get f() {\r\n return this.caseSummaryForm.controls;\r\n }\r\n\r\n logValidationErrors(group: FormGroup = this.caseSummaryForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n // && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.caseSummaryForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n setCSPanelState() {\r\n this.collapseCSPanel.emit(0);\r\n }\r\n\r\n searchUserDetails(email: any) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase().trim();\r\n if (filterValue) {\r\n this._dafService.searchSupportUserDetails(filterValue).subscribe((data: any) => {\r\n this.searchDetails = data.value;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while searching the user details');\r\n });\r\n }\r\n\r\n }\r\n\r\n selectAddUserDetails(email: any) {\r\n try {\r\n this.addUserMail = email.mail;\r\n this.addUserName = email.displayName;\r\n this.autocomplete.reset();\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.caseSummaryForm.get(\"expediteCase\").valueChanges.subscribe().unsubscribe();\r\n this.caseSummaryForm.get(\"placeOnHold\").valueChanges.subscribe().unsubscribe();\r\n }\r\n\r\n getStates(){\r\n this._dafService.getStates().subscribe((data: any) => {\r\n this.statesDataSource = data;\r\n this.statesList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n onStateChange(event) {\r\n this.caseSummaryForm.controls[\"zipCodeId\"].setValue(null);\r\n this.caseSummaryForm.controls[\"cityId\"].setValue(null);\r\n this.caseSummaryForm.controls[\"cityId\"].disable();\r\n this.caseSummaryForm.controls[\"geographyId\"].setValue(null);\r\n this.caseSummaryForm.controls[\"countyId\"].setValue(null);\r\n this.GetZipcodes(event);\r\n this.GetCounty(event);\r\n this.GetGeography(event);\r\n }\r\n\r\n GetZipcodes(event): Promise {\r\n this.zipcodeList = [];\r\n let res = this._dafService.getZipcodeByState(event).toPromise().then((data: any) => {\r\n this.zipcodeList = data;\r\n this.zipcodeSource = data;\r\n //if (data.length > 0) {\r\n // data.forEach(element => {\r\n // this.zipcodeList[index].push(element.zipcode.toString());\r\n // });\r\n //}\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n onZipCodeChange(event) {\r\n this.caseSummaryForm.controls[\"cityId\"].setValue(null);\r\n this.caseSummaryForm.controls[\"cityId\"].enable();\r\n this.GetCity(event);\r\n }\r\n\r\n GetCountyInfo(event, index: any): Promise {\r\n this.cityArray[index]=[];\r\n this.countyArray[index]=[];\r\n let res = this._addLCAService.GetCountyInfo(event).toPromise().then((data: any) => {\r\n if (data.length > 0) {\r\n this.caseSummaryForm.controls[\"cityId\"].setValue(data[0].cityName);\r\n this.caseSummaryForm.controls[\"countyId\"].setValue(data[0].countyName);\r\n this.caseSummaryForm.updateValueAndValidity();\r\n }\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n }\r\n );\r\n return res;\r\n }\r\n\r\n public caseManagerFilterChange(filter: any): void {\r\n this.caseManagersList = this.caseManagersSourceList.filter(x => x.caseManager.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n\r\n public attorneyFilterChange(filter: any): void {\r\n this.caseAttorneysList = this.caseAttorneysSourceList.filter(x => x.caseAttorney.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n\r\n public stateFilterChange(filter: any): void {\r\n this.statesList = this.statesDataSource.filter(x=>x.stateName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n\r\n public zipFilterChange(filter: any): void {\r\n this.zipcodeList = this.zipcodeSource.filter(x => x.zipcode.includes(filter));\r\n }\r\n\r\n public cityFilterChange(filter: any): void {\r\n this.cityList = this.citySource.filter(x => x.city.toLowerCase().includes(filter));\r\n }\r\n\r\n public msaFilterChange(filter: any): void {\r\n this.geographyList = this.geographySource.filter(x => x.value.toLowerCase().includes(filter));\r\n }\r\n\r\n public countyFilterChange(filter: any): void {\r\n this.countyList = this.countySource.filter(x => x.value.toLowerCase().includes(filter));\r\n }\r\n\r\n GetCounty(event): Promise {\r\n this.countyList = [];\r\n let res = this._dafService.getCountyByState(event).toPromise().then((data: any) => {\r\n this.countyList = data;\r\n this.countySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n GetCity(event): Promise {\r\n this.cityList = [];\r\n let res = this._dafService.getCityByZipcode(event).toPromise().then((data: any) => {\r\n this.cityList = data;\r\n this.citySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while fetching the city list');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n GetGeography(event): Promise {\r\n this.geographyList = [];\r\n let res = this._dafService.getGeographyByState(event).toPromise().then((data: any) => {\r\n this.geographyList = data;\r\n this.geographySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n OnCountyChange(event) {\r\n this.geographyList = [];\r\n //this.caseSummaryForm.get(\"signatoryMSA\").setValue(null);\r\n let selectedState = this.caseSummaryForm.get(\"stateId\").value;\r\n let res = this._dafService.GetGeographyByCounty(selectedState, event).toPromise().then((data: any) => {\r\n this.geographyList = data;\r\n this.geographySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n OnGeographyChange(event) {\r\n this.countyList = [];\r\n //this.caseSummaryForm.get(\"signatoryCounty\").setValue(null);\r\n let selectedState = this.caseSummaryForm.get(\"stateId\").value;\r\n let res = this._dafService.GetCountyByGeography(selectedState, event).toPromise().then((data: any) => {\r\n this.countyList = data;\r\n this.countySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n GetCaseManagers() {\r\n this.caseManagersList = [];\r\n let res = this._dafService.GetCaseManagers().toPromise().then((data: any) => {\r\n this.caseManagersList = data;\r\n this.caseManagersSourceList = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n GetCaseAttorneys() {\r\n this.caseAttorneysList = [];\r\n let res = this._dafService.GetAttorneys().toPromise().then((data: any) => {\r\n this.caseAttorneysList = data;\r\n this.caseAttorneysSourceList = data;\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n if (text) {\r\n escapeQuotes = text.replace(/['\"()]/g, escape);\r\n }\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n if (text) {\r\n unescapeQuotes = text.replace(\"%27\", unescape);\r\n unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%28\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%29\", unescape);\r\n }\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n}\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CaseFeesDetailModel, h1BFilingType, jobPositionDetails } from 'src/app/DAF/Models/JobPositionDetails';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-daf-case-fees',\r\n templateUrl: './daf-case-fees.component.html',\r\n styleUrls: ['./daf-case-fees.component.scss']\r\n})\r\nexport class DafCaseFeesComponent implements OnInit {\r\n\r\n caseFeesForm: FormGroup;\r\n \r\n caseId: number;\r\n caseFeeDetails: CaseFeesDetailModel;\r\n public isPageReady = true;\r\n isEditEnabled: boolean;\r\n requestedAction: any = [];\r\n @Input() caseSummaryId = 0;\r\n private notifier: NotifierService;\r\n public notes;\r\n constructor(private formBuilder: FormBuilder,\r\n private _dafService: DafService, notifier: NotifierService) { this.notifier = notifier; }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.getCaseFeeDetails();\r\n }\r\n\r\n addDynamicControls(): void {\r\n\r\n this.requestedAction.forEach(key => {\r\n (this.caseFeesForm.get('requestedAction') as FormGroup).addControl(key.fees, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n }\r\n resetForm() {\r\n try {\r\n this.getCaseFeeDetails();\r\n this.isEditEnabled = false;\r\n this._dafService.disableEnableAllFormControls(this.caseFeesForm, [], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n getCaseFeeDetails() {\r\n this.isPageReady = false;\r\n this._dafService.getCaseFeesByCaseSummaryId(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.caseFeeDetails = data;\r\n this.requestedAction = this.caseFeeDetails.caseFeesDetails;\r\n \r\n this.initializeForm();\r\n this.addDynamicControls();\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n initializeForm() {\r\n\r\n try {\r\n this.caseFeesForm = this.formBuilder.group({\r\n requestedAction: this.formBuilder.group({}),\r\n notes: new FormControl({ value: this.caseFeeDetails.notes, disabled: true }),\r\n });\r\n this.isPageReady = true;\r\n\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n\r\n\r\n public saveCaseSummaryData() {\r\n this.readFormValues(this.caseFeesForm);\r\n\r\n this.isPageReady = false;\r\n\r\n //var caseFeesArray = [...this.caseFeeDetails.caseFeesDetails];\r\n\r\n this.caseFeeDetails.caseFeesDetails = this.caseFeeDetails.caseFeesDetails.map(obj => {\r\n \r\n return { ...obj, fees: obj.fees.replace('$', 'USD') };\r\n\r\n return obj;\r\n });\r\n debugger;\r\n this._dafService.saveCaseFeesDetails(this.caseSummaryId, this.caseFeeDetails, this.caseFeesForm.value.notes).toPromise().then(() => {\r\n this._dafService.disableEnableAllFormControls(this.caseFeesForm, [], true);\r\n this.getCaseFeeDetails();\r\n this.isEditEnabled = false;\r\n\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Case Fees Details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n this.isPageReady = true;\r\n });\r\n\r\n }\r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.caseFeesForm.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.getDynamicControlValue(abstractControl, key);\r\n }\r\n else {\r\n this.caseFeeDetails[key] = abstractControl.value;\r\n }\r\n });\r\n }\r\n\r\n private getDynamicControlValue(formGroup: FormGroup, childFormGroup: string){\r\n\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n console.log(abstractControl); \r\n \r\n if (childFormGroup === 'requestedAction') {\r\n this.caseFeeDetails.caseFeesDetails.filter(p => p.fees == key)[0].isSelected = abstractControl.value;\r\n }\r\n \r\n });\r\n\r\n }\r\n\r\n\r\n\r\n get formControls() {\r\n return this.caseFeesForm.controls;\r\n }\r\n enableEdit() {\r\n try {\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.caseFeesForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], false);\r\n\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { dafAppConstants } from 'src/app/DAF/Models/applicationConstants';\r\nimport { ValidationMessage } from 'src/app/DAF/Models/validationMessage';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { AddLCAService } from 'src/app/immigrationcompilation/add-lca/service/add-lca.service';\r\n\r\n@Component({\r\n selector: 'app-dafc-home',\r\n templateUrl: './dafc-home.component.html',\r\n styleUrls: ['./dafc-home.component.scss']\r\n})\r\nexport class DAFcHomeComponent implements OnInit {\r\n @ViewChild('openValidModalButton', { static: false }) openValidModalButton: ElementRef;\r\n\r\n public current = 0;\r\n public currentofc = 0;\r\n requestId = \"\";\r\n zipCodeData: any[];\r\n statesDataSource=[];\r\n statusId=0;\r\n validationData:ValidationMessage[];\r\n isCSPanelExpanded = false;\r\n private notifier: NotifierService;\r\n public showConfirmation = false;\r\n public steps = [\r\n { label: 'Initiated', icon: 'k-icon k-i-page-properties', isValid: true },\r\n { label: 'Support Review', icon: 'k-icon k-i-user', isValid: true },\r\n { label: 'Case Manager Review', icon: 'k-icon k-i-user', isValid: true },\r\n { label: 'Attorney Review', icon: 'k-icon k-i-user', isValid: true },\r\n { label: 'Approved', icon: 'k-icon k-i-track-changes-accept-all', isValid: true }\r\n];\r\n\r\n public caseId = 0;\r\n public caseStatus = 'Initiated';\r\n public zoomId = '';\r\n public caseData:any;\r\n\r\n constructor(public route: ActivatedRoute,public router: Router ,public _addLCAService: AddLCAService,notifier: NotifierService, public _dafService:DafService) {this.notifier = notifier;\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.caseId = params['caseId'];\r\n this.caseStatus = params['caseStatus'];\r\n this.zoomId = params['zoomId'];\r\n if(this.caseStatus==\"Case Drafted\"||this.caseStatus==\"On Hold\"||this.caseStatus==\"Rejected\")\r\n {\r\n this.current=0;\r\n }\r\n else if(this.caseStatus==\"Initiated\"){\r\n this.current=0;\r\n }\r\n else if(this.caseStatus.replace(/%20/g, \" \")==\"Support Review\"){\r\n this.current=1;\r\n }\r\n else if(this.caseStatus.replace(/%20/g, \" \")==\"Case Manager Review\"){\r\n this.current=2;\r\n }\r\n else if(this.caseStatus.replace(/%20/g, \" \")==\"Attorney Review\"){\r\n this.current=3;\r\n }\r\n else if(this.caseStatus.replace(/%20/g, \" \")==\"Approved\"){\r\n this.current=4;\r\n }\r\n //this.getStates();\r\n // Loads data to grid\r\n }); \r\n }\r\n\r\n\r\n changePage(value) {\r\n this.current = value;\r\n }\r\n \r\n\r\n confirmationDialog(open: boolean,statusId) {\r\n // Opens the confirmation dialog\r\n if (open) {\r\n this.showConfirmation = true;\r\n } else {\r\n this.showConfirmation = false;\r\n }\r\n // setting the delete ID to global variable\r\n if (statusId) {\r\n this.statusId = statusId;\r\n } else {\r\n this.statusId = 0;\r\n }\r\n }\r\n determineLCA(value) {\r\n if (value != \"\") {\r\n this.requestId = value;\r\n //this.steps[3].disabled = 'true';\r\n this.current = 4;\r\n }\r\n }\r\n\r\n validationCheck(statusId){\r\n this._dafService.GetDAFValidation(this.caseId,statusId).toPromise().then((data: any) => {\r\n if(data.length>0){\r\n this.validationData = data;\r\n this.openValidModalButton.nativeElement.click();\r\n }\r\n else{\r\n this.confirmationDialog(true,statusId);\r\n }\r\n });\r\n}\r\n\r\n assignData(data) {\r\n //this.workSiteInfo = data;\r\n this.current = 3;\r\n }\r\n\r\n completeLCA(data) {\r\n //this.steps[3].disabled = 'false';\r\n this.current = 0;\r\n }\r\n\r\n CSPanel(data) {\r\n this.isCSPanelExpanded = true;\r\n\r\n }\r\n\r\n onPanelChange(event) {\r\n if (event[0].expanded == true)\r\n this.isCSPanelExpanded = true;\r\n }\r\n\r\n UpdateCaseStatus(){\r\n if(this.statusId!=0){\r\n \r\n\r\n this._dafService.UpdateCaseStatus(this.caseId, this.statusId).toPromise().then(() => {\r\n // this.isUnlocked = false;\r\n this.notifier.notify('success', 'Case details have been updated successfully');\r\n this.router.navigate(['daf/dashboard']);\r\n\r\n });\r\n }\r\n }\r\n\r\n goToList(){\r\n try{\r\n this.router.navigate(['/caseDeatils'], { queryParams: { 'caseStatus': this._dafService.getSessionStorage(dafAppConstants.sessionStorageVariables.currentStatus), 'caseType': this._dafService.getSessionStorage(dafAppConstants.sessionStorageVariables.currentCaseType) } });\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DAFcHomeComponent } from './dafc-home/dafc-home.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'dafc-home', component: DAFcHomeComponent\r\n }\r\n ];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class DAFHomeRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { DAFHomeRoutingModule } from './dafhome-routing.module';\r\nimport { DashboardModule } from '../dashboard/dashboard.module';\r\nimport { DAFcHomeComponent } from './dafc-home/dafc-home.component';\r\nimport { AssessmentFormsModule } from '../assessment-forms/assessment-forms.module';\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport { CaseSummaryDetailsComponent } from './case-summary-details/case-summary-details.component';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\n\r\nimport { ButtonsModule } from \"@progress/kendo-angular-buttons\";\r\nimport { IconsModule } from \"@progress/kendo-angular-icons\";\r\nimport { TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { LabelModule } from '@progress/kendo-angular-label';\r\nimport { IndividualBioGraphicalInformationComponent } from './individual-bio-graphical-information/individual-bio-graphical-information.component';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { EditorModule } from '@progress/kendo-angular-editor';\r\nimport { JobPositionAssessmentComponent } from './job-position-assessment/job-position-assessment.component';\r\nimport { CheckBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { PrimaryWorksiteAddressComponent } from './primary-worksite-address/primary-worksite-address.component';\r\nimport { LcaAssessmentComponent } from './lca-assessment/lca-assessment.component';\r\nimport { SpouseAndDependentApplicationComponent } from './spouse-and-dependent-application/spouse-and-dependent-application.component';\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { FilingStratergyComponent } from './filing-stratergy/filing-stratergy.component';\r\nimport { KendoGridEditFormComponent } from './kendo-grid-edit-form/kendo-grid-edit-form.component';\r\nimport { DocumentChecklistComponent } from './document-checklist/document-checklist.component';\r\nimport { KendoGridChecklistEditFormComponent } from './kendo-grid-checklistEdit-form/kendo-grid-checklistEdit-form.component';\r\nimport { WorksiteWizardComponent } from './worksite-wizard/worksite-wizard.component';\r\nimport { SpecialistDegreeComponent } from './specialist-degree/specialist-degree.component';\r\nimport { KendoGridSpecialistFormComponent } from './kendo-grid-specialist-form/kendo-grid-specialist-form.component';\r\nimport { ExperienceWizardComponent } from './experience-wizard/experience-wizard.component';\r\nimport { RecaptureWizardComponent } from './recapture-wizard/recapture-wizard.component';\r\nimport { JobDetailsWizardComponent } from './job-details-wizard/job-details-wizard.component';\r\nimport { AddressInfoWizardComponent } from './address-info-wizard/address-info-wizard.component';\r\nimport { LcaInfoWizardComponent } from './lca-info-wizard/lca-info-wizard.component';\r\nimport { KendoGridFilingDetailComponent } from './kendo-grid-filing-detail/kendo-grid-filing-detail.component';\r\nimport { ValidationMessageComponent } from './validation-message/validation-message.component';\r\nimport { WorksiteAddressWizardComponent } from './worksite-address-wizard/worksite-address-wizard.component';\r\nimport { FilingTravelModalComponent } from './filing-travel-modal/filing-travel-modal.component';\r\nimport { DafCaseFeesComponent } from './daf-case-fees/daf-case-fees.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [DAFcHomeComponent, CaseSummaryDetailsComponent, IndividualBioGraphicalInformationComponent, JobPositionAssessmentComponent, PrimaryWorksiteAddressComponent, LcaAssessmentComponent, SpouseAndDependentApplicationComponent, FilingStratergyComponent, KendoGridEditFormComponent, DocumentChecklistComponent,KendoGridChecklistEditFormComponent, WorksiteWizardComponent, SpecialistDegreeComponent, KendoGridSpecialistFormComponent, ExperienceWizardComponent, RecaptureWizardComponent, JobDetailsWizardComponent, AddressInfoWizardComponent, LcaInfoWizardComponent, KendoGridFilingDetailComponent, ValidationMessageComponent, WorksiteAddressWizardComponent, FilingTravelModalComponent, DafCaseFeesComponent],\r\n imports: [\r\n CommonModule,\r\n DAFHomeRoutingModule,\r\n DashboardModule,\r\n AssessmentFormsModule,\r\n LayoutModule,\r\n DropDownsModule,\r\n ButtonsModule,\r\n InputsModule,\r\n LabelModule,\r\n TextBoxModule,\r\n IconsModule,\r\n GridModule,\r\n EditorModule,\r\n SharedModule,\r\n CheckBoxModule,\r\n DialogsModule\r\n ]\r\n})\r\nexport class DAFHomeModule { }\r\n","import { Component, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { AddEvent, CellClickEvent, GridComponent, GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Subscription } from 'rxjs';\r\nimport { checklistItems, documentChecklist } from 'src/app/DAF/Models/DocuentChecklist';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-document-checklist',\r\n templateUrl: './document-checklist.component.html',\r\n styleUrls: ['./document-checklist.component.scss']\r\n})\r\nexport class DocumentChecklistComponent implements OnInit {\r\n\r\n documentChecklistForm: FormGroup;\r\n documentChecklist: documentChecklist;\r\n public formGroup: FormGroup;\r\n isPageReady: boolean;\r\n @Input() caseSummaryId = 0;\r\n isEditEnabled: boolean;\r\n isGridEditable: boolean;\r\n public documentGridResult: GridDataResult;\r\n public pageSize = 15;\r\n public skip = 0;\r\n @ViewChild(GridComponent, {static: false})\r\n private grid: GridComponent;\r\n private docClickSubscription: Subscription = new Subscription();\r\n isDeleteClicked: boolean = false;\r\n public checklistItems: Array = [];\r\n private isNew: boolean;\r\n editedRowIndex: number;\r\n private notifier: NotifierService;\r\n public editDataItem: checklistItems;\r\n\r\n\r\n deleteIndex: any;\r\n showDialog: boolean;\r\n constructor( private formBuilder: FormBuilder,\r\n private _dafService: DafService,\r\n private renderer: Renderer2,notifier: NotifierService) { this.notifier = notifier; }\r\n\r\n ngOnInit() {\r\n // this.docClickSubscription.add(\r\n // this.renderer.listen(\"document\", \"click\", this.onDocumentClick.bind(this))\r\n // );\r\n this.getDocumentChecklistDetails();\r\n }\r\n\r\n initializeForm() {\r\n let decodedNotes = this.decodeHTMLEntities(this.documentChecklist.notes);\r\n try {\r\n this.documentChecklistForm = this.formBuilder.group({ \r\n notes: new FormControl({ value: this.documentChecklist.notes, disabled: true }),\r\n }); \r\n }\r\n catch (err) {\r\n this.isPageReady = true;\r\n console.log(err);\r\n }\r\n }\r\n\r\n getDocumentChecklistDetails(){\r\n this.isPageReady = false;\r\n this._dafService.getDocumentChecklistDetails(this.caseSummaryId).toPromise().then((data: any) => {\r\n \r\n \r\n this.documentChecklist = new documentChecklist();\r\n this.documentChecklist=data;\r\n this.checklistItems=this.documentChecklist.checklistDetails;\r\n this.documentChecklist.notes = this.documentChecklist.notes;\r\n \r\n this.loadItems();\r\n this.initializeForm();\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isPageReady = true;\r\n }\r\n );\r\n\r\n\r\n }\r\n\r\n resetForm(){\r\n this.isEditEnabled = false;\r\n this._dafService.disableEnableAllFormControls(this.documentChecklistForm, [], true);\r\n this.isGridEditable = false;\r\n this.getDocumentChecklistDetails();\r\n }\r\n\r\n enableEdit(){\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.documentChecklistForm, [], false);\r\n this.isGridEditable = true;\r\n }\r\n\r\n saveDocumentChecklistDetails() {\r\n this.documentChecklist = this.documentChecklistForm.value;\r\n\r\n var encodedList = this.checklistItems.map(x => {\r\n return { ...x, documentName : this.encodeHTMLEntities(x.documentName) };\r\n });\r\n this.documentChecklist.checklistDetails = encodedList;\r\n this.isPageReady = false;\r\n this.documentChecklist.notes = this.documentChecklist.notes ? this.encodeHTMLEntities(this.documentChecklist.notes) : null;\r\n this._dafService.saveDocumentChecklistDetails(this.caseSummaryId, this.documentChecklist).toPromise().then(() => {\r\n this._dafService.disableEnableAllFormControls(this.documentChecklistForm, [], true);\r\n this.getDocumentChecklistDetails();\r\n this.isEditEnabled = false;\r\n // this.isUnlocked = false;\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Document Checklist details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n }\r\n\r\n\r\n public ngOnDestroy(): void {\r\n this.docClickSubscription.unsubscribe();\r\n }\r\n\r\n // public relation(id: number): any {\r\n // return this.relationTypeList.find((x) => x.relationId === id);\r\n // }\r\n\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.loadItems();\r\n }\r\n \r\n private loadItems(): void {\r\n this.documentGridResult = {\r\n data: this.checklistItems.slice(this.skip, this.skip + this.pageSize),\r\n total: this.checklistItems.length,\r\n };\r\n }\r\n public addHandler(): void {\r\n this.editDataItem = new checklistItems();\r\n this.editDataItem.recievedDrafted=false;\r\n this.editDataItem.requestDraft=false;\r\n this.editDataItem.na=false;\r\n this.editDataItem.documentChecklistDetailId=0;\r\n this.isNew = true;\r\n }\r\n\r\n public saveHandler(product: checklistItems): void {\r\n if(this.isNew){\r\n this.checklistItems.splice(0, 0, product);\r\n }\r\n else{\r\n Object.assign(\r\n this.checklistItems.find(({ documentChecklistDetailId }) => documentChecklistDetailId === product.documentChecklistDetailId),\r\n product\r\n ); \r\n }\r\n\r\n this.editDataItem = undefined;\r\n this.isNew=false;\r\n this.loadItems();\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n\r\n public editHandler(args: AddEvent): void {\r\n\r\n \r\n this.editDataItem = args.dataItem;\r\n\r\n \r\n this.isNew = false;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n createFormGroup(dataItem) {\r\n return new FormGroup({\r\n name: new FormControl(dataItem.name, Validators.required),\r\n individual: new FormControl(dataItem.individual, Validators.required),\r\n relation: new FormControl(dataItem.relation),\r\n isReceivedOrDrafted: new FormControl(dataItem.isReceivedOrDrafted),\r\n isRequestOrDraft: new FormControl(dataItem.isRequestOrDraft),\r\n isNA: new FormControl(dataItem.isNA),\r\n notes: new FormControl(dataItem.notes)\r\n });\r\n }\r\n\r\n matches(el, selector) {\r\n return (el.matches || el.msMatchesSelector).call(el, selector);\r\n }\r\n\r\n public setIndexToDelete(args: any){\r\n this.isDeleteClicked = true;\r\n this.deleteIndex = args.rowIndex;\r\n this.showDialog = true;\r\n }\r\n\r\n public deleteDependent(){\r\n this.checklistItems.splice(this.deleteIndex, 1);\r\n this.loadItems();\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDelete(){\r\n this.showDialog = false;\r\n }\r\n\r\n public onDialogClose(){\r\n this.showDialog = false;\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n //if (text) {\r\n // escapeQuotes = text.replace(/[()]/g, escape);\r\n //}\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n //if (text) {\r\n // unescapeQuotes = text.replace(\"%27\", unescape);\r\n // unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n //}\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { GridComponent, GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { NotificationService } from '@progress/kendo-angular-notification';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { WorkExperience } from 'src/app/DAF/Models/WorkExperience';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-experience-wizard',\r\n templateUrl: './experience-wizard.component.html',\r\n styleUrls: ['./experience-wizard.component.scss']\r\n})\r\nexport class ExperienceWizardComponent implements OnInit {\r\n public isReady=false;\r\n public WorkSite=\"Work Experience\";\r\n private hideAfter = 2000;\r\n public WorkSiteDetails: any = [];\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n public dateDifference=0;\r\n private notifier: NotifierService;\r\n public primaryworksiteInfo=[];\r\n public view: Array = [];\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n private isNew: boolean;\r\n public isGridEditable: boolean;\r\n public formGroup: FormGroup;\r\n @ViewChild(GridComponent, {static: false})\r\n private grid: GridComponent;\r\n private editedRowIndex: number;\r\n public showConfirmation: boolean = false;\r\n public deleteId: Number = 0;\r\n\r\n @Input() caseSummaryId = 0;\r\n\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n\r\n\r\n\r\n\r\n constructor(private formBuilder: FormBuilder,@Inject(NotificationService) private notificationService: NotificationService, private _dafService: DafService,notifier: NotifierService) \r\n { \r\n this.notifier = notifier; \r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.getWorkExperienceDetails()\r\n\r\n }\r\n\r\n\r\n private onDocumentClick(e: Event): void {\r\n if (\r\n this.formGroup &&\r\n this.formGroup.valid &&\r\n !this.matches(\r\n e.target,\r\n \"#productssGrid tbody *, #productssGrid .k-grid-toolbar .k-button\"\r\n )\r\n ) {\r\n this.saveCurrent();\r\n }\r\n }\r\n\r\n private saveCurrent(): void {\r\n if (this.formGroup) {\r\n // this.service.save(this.formGroup.value, this.isNew);\r\n let maxId: number = Math.max.apply(Math, this.view.map(function (o) { return o.workExperienceWizardID; }));\r\n let sdDetails = this.formGroup.value;\r\n let index = maxId + 1;\r\n if (this.isNew) { \r\n sdDetails.workExperienceWizardID = index;\r\n sdDetails.isNew = true;\r\n this.view.splice(0, 0, sdDetails);\r\n } else {\r\n Object.assign(\r\n this.view.find(({ workExperienceWizardID }) => workExperienceWizardID === sdDetails.workExperienceWizardID),\r\n sdDetails\r\n ); \r\n }\r\n this.closeEditor();\r\n this.loadItems();\r\n }\r\n }\r\n\r\n matches(el, selector) {\r\n return (el.matches || el.msMatchesSelector).call(el, selector);\r\n }\r\n\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n\r\n getWorkExperienceDetails(){\r\n this.isReady = false;\r\n this._dafService.getWorkExperienceDetails(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.primaryworksiteInfo = data;\r\n\r\n this.primaryworksiteInfo.forEach(item=>{\r\n if (item.fromDates!= undefined) {\r\n item.fromDates = new Date(item.fromDates); \r\n } \r\n if (item.toDates != undefined) {\r\n item.toDates = new Date(item.toDates); \r\n }\r\n\r\n\r\n });\r\n\r\n this.view = this.primaryworksiteInfo;\r\n\r\n this.loadItems();\r\n \r\n \r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isReady = true;\r\n }\r\n );\r\n }\r\n\r\n public deleteItem() {\r\n //Sends delete request to api\r\n this._dafService.deleteWorkExperienceDetails(this.deleteId).toPromise().then(() => {\r\n this.getWorkExperienceDetails();\r\n this.showConfirmation = false;\r\n this.notifier.notify('success', 'WorkSite Experience details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n }\r\n\r\n public handleToDateChange(dataItem) {\r\n this.formGroup.controls[\"totalNumberOfDays\"].setValue(null);\r\n this.formGroup.controls[\"months\"].setValue(null);\r\n this.formGroup.controls[\"years\"].setValue(null);\r\n this.formGroup.controls[\"days\"].setValue(null);\r\n if (dataItem.value.toDates && dataItem.value.fromDates) {\r\n this.formGroup.controls[\"totalNumberOfDays\"].setValue(this.getDayDiff(dataItem.value.fromDates, dataItem.value.toDates).toString());\r\n this.formGroup.controls[\"months\"].setValue(this.getMonthDiff(dataItem.value.fromDates, dataItem.value.toDates).toString());\r\n this.formGroup.controls[\"years\"].setValue(this.getYearDiff(dataItem.value.fromDates, dataItem.value.toDates).toString());\r\n this.formGroup.controls[\"days\"].setValue(this.getDayDiff(dataItem.value.fromDates, dataItem.value.toDates).toString());\r\n } \r\n }\r\n\r\n public getDayDiff(startDate: Date, endDate: Date): number {\r\n const msInDay = 24 * 60 * 60 * 1000;\r\n\r\n return Math.round(\r\n Math.abs(Number(endDate) - Number(startDate)) / msInDay\r\n );\r\n }\r\n\r\n public getYearDiff(startDate: Date, endDate: Date): number {\r\n let yearsDiff = endDate.getFullYear() - startDate.getFullYear();\r\n return yearsDiff;\r\n }\r\n\r\n public getMonthDiff(startDate: Date, endDate: Date): number {\r\n let years = this.getYearDiff(startDate, endDate);\r\n let months = (years * 12) + (endDate.getMonth() - startDate.getMonth());\r\n return months;\r\n }\r\n public saveHandler({ sender, rowIndex, formGroup, isNew }) {\r\n //this.submitted = true;\r\n //this.isRequiredFailed = false;\r\n //this.errorList = '';\r\n\r\n //Checks if formgroup is valid\r\n if (this.formGroup.valid) {\r\n //this.isPageReady = false;\r\n \r\n //Checks if it is new record or existing record\r\n if (this.isNew) {\r\n const product = formGroup.value;\r\n product.workExperienceWizardID = 0;\r\n product.caseID = \"\";\r\n product.caseSummaryID = 0;\r\n let workExperienceArray = [];\r\n workExperienceArray.push(product);\r\n //Post data to api for update\r\n this._dafService.saveWorkExperienceDetails(this.caseSummaryId, workExperienceArray).toPromise().then(() => {\r\n sender.closeRow(rowIndex);\r\n this.getWorkExperienceDetails();\r\n \r\n this.notifier.notify('success', 'WorkSite Experience details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n }\r\n else {\r\n const product = formGroup.value;\r\n product.caseID = \"\";\r\n product.caseSummaryID = 0;\r\n let workExperienceArray = [];\r\n workExperienceArray.push(product);\r\n //Post data to api for update\r\n this._dafService.updateWorkExperienceDetails(this.caseSummaryId, workExperienceArray).toPromise().then(() => {\r\n sender.closeRow(rowIndex);\r\n this.getWorkExperienceDetails();\r\n\r\n this.notifier.notify('success', 'WorkSite Experience details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n }\r\n\r\n }\r\n \r\n }\r\n\r\n \r\n\r\n\r\n public addHandler(): void {\r\n this.closeEditor();\r\n\r\n this.formGroup = new FormGroup({\r\n employerName: new FormControl(null, Validators.required),\r\n jobTitle: new FormControl(null, Validators.required),\r\n fromDates: new FormControl(null),\r\n toDates: new FormControl(null),\r\n totalNumberOfDays: new FormControl(null),\r\n days: new FormControl(null),\r\n months: new FormControl(null),\r\n years: new FormControl(null)\r\n });\r\n this.isNew = true;\r\n\r\n this.grid.addRow(this.formGroup);\r\n }\r\n\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n //Closes the editor\r\n this.closeEditor();\r\n\r\n //Creates form group for edit feature\r\n this.formGroup = this.createFormGroup(dataItem);\r\n this.isNew = false;\r\n this.editedRowIndex = rowIndex;\r\n\r\n //Opens the editor with data populated\r\n sender.editRow(rowIndex, this.formGroup);\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n public removeHandler({ dataItem }) {\r\n //Call for delete confirmation\r\n this.confirmationDialog(true, dataItem)\r\n }\r\n\r\n confirmationDialog(open: boolean, data) {\r\n //Opens the confirmation dialog\r\n if (open) {\r\n this.showConfirmation = true;\r\n }\r\n else {\r\n this.showConfirmation = false;\r\n }\r\n\r\n //setting the delete ID to global variable\r\n if (data)\r\n this.deleteId = data.workExperienceWizardID;\r\n else\r\n this.deleteId = 0;\r\n }\r\n\r\n \r\n\r\n createFormGroup(dataItem) {\r\n return new FormGroup({\r\n workExperienceWizardID: new FormControl(dataItem.workExperienceWizardID),\r\n employerName: new FormControl(dataItem.employerName, Validators.required),\r\n jobTitle: new FormControl(dataItem.jobTitle, Validators.required),\r\n fromDates: new FormControl(dataItem.fromDates),\r\n toDates: new FormControl(dataItem.toDates),\r\n totalNumberOfDays : new FormControl(dataItem.totalNumberOfDays),\r\n days: new FormControl(dataItem.days),\r\n months: new FormControl(dataItem.months),\r\n years: new FormControl(dataItem.years)\r\n });\r\n }\r\n\r\n\r\n\r\n saveData(){\r\n this.WorkSiteDetails = [];\r\n var saveValues = this.gridView.data;\r\n\r\n \r\n \r\n saveValues.forEach(item => {\r\n if(item.periodFrom==\"\"){\r\n this.WorkSiteDetails=[];\r\n this.invalidMessage();\r\n \r\n }\r\n else if (item.periodFrom && item.periodTO && item.periodFrom > item.periodTO) {\r\n this.notificationService.show({\r\n content: \"Please enter valid dates. End Date should be greather than or equal to Start Date.\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n } \r\n else{\r\n \r\n var workSite=new WorkExperience();\r\n workSite.workExperienceWizardID=0;\r\n workSite.employerName=item.worksiteItenary;\r\n workSite.jobTitle=item.clientsideAmmendment;\r\n workSite.fromDates = item.clientlegalName;\r\n workSite.toDates = item.periodFrom;\r\n workSite.totalNumberOfDays = item.periodTo;\r\n workSite.days=item.daysPerMonth.toString();\r\n workSite.months=\"\";\r\n workSite.years=item.streetNumber;\r\n this.WorkSiteDetails.push(workSite);\r\n }\r\n });\r\n if(this.WorkSiteDetails.length>0){\r\n this._dafService.saveWorkExperienceDetails(this.caseSummaryId, this.WorkSiteDetails).toPromise().then(() => {\r\n this.notifier.notify('success', 'WorkSite Experience details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n\r\n\r\n }\r\n \r\n }\r\n\r\n\r\n invalidMessage(){\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n}\r\n\r\n\r\npublic closeForm(): void {\r\n this.cancel.emit();\r\n}\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { AddEvent, CellClickEvent, DataStateChangeEvent, GridComponent, GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Subscription } from 'rxjs';\r\nimport { filingStratergyDetails, FilingTableDetail } from 'src/app/DAF/Models/FilingStratergy';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { AddLCAService } from 'src/app/immigrationcompilation/add-lca/service/add-lca.service';\r\n\r\n@Component({\r\n selector: 'app-filing-stratergy',\r\n templateUrl: './filing-stratergy.component.html',\r\n styleUrls: ['./filing-stratergy.component.scss']\r\n})\r\nexport class FilingStratergyComponent implements OnInit {\r\n\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n radioButtonSecondOptionValues: Array = [{ value: true, text: \"Days\" }, { value: false, text: \"Months\" }];\r\n\r\n private notifier: NotifierService;\r\n public searchDetails: any;\r\n public addUserMail: string;\r\n public addUserName: string;\r\n public filingData: filingStratergyDetails = new filingStratergyDetails();\r\n public isUnlocked: boolean = false;\r\n public isEditEnabled: boolean = false;\r\n public isPageReady = true;\r\n FilingStratergyForm: FormGroup = null;\r\n serviceCenter: any = [];\r\n public isActivate=false;\r\n\r\n serviceCodes = [];\r\n serviceCodesList = [];\r\n public filingVenue = [];\r\n public zipcodeList = [[]];\r\n public addressTypesList = [];\r\n public state;\r\n public zipcodeSource=[[]];\r\n public selectedType=[];\r\n public cityArray=[[]];\r\n public countyArray = [[]];\r\n public isReady=false;\r\n cityDataArray: any[]=[];\r\n countyDataArray: any[]=[];\r\n addressTypes: any[]=[];\r\n\r\n countrySourceList: Array = [];\r\n CountryList: Array = [];\r\n\r\n public view: Array = [];\r\n\r\n filingtravelTbl: Array = [];\r\n\r\n public editDataItem: FilingTableDetail;\r\n\r\n\r\n\r\n isDisabled: boolean = false;\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n private isDeleteClicked: boolean = false;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n showDialog:boolean = false;\r\n deleteIndex: number;\r\n @ViewChild(GridComponent, {static: false})\r\n private grid: GridComponent;\r\n private editedRowIndex: number;\r\n private docClicksSubscription: Subscription = new Subscription();\r\n private isNew: boolean;\r\n public isGridEditable: boolean;\r\n public formGroup: FormGroup;\r\n public caseRecieptDetails:any;\r\n public modifiedRecords: Array = [];\r\n\r\n @Input() caseId = 0;\r\n @Output() page = new EventEmitter();\r\n @Output() collapseCSPanel = new EventEmitter();\r\n @ViewChild('autocomplete', { static: false }) autocomplete: any;\r\n\r\n optionalFormControls = [\"middleName\",\"signatoryName\",\"signatoryTitle\",\"signatoryTelephone\"];\r\n formErrors = {\r\n 'h1B2ndOrSubsExt': '',\r\n 'l1ClassificationId': '',\r\n 'caseTypeId': '',\r\n 'filingVenueId': '',\r\n 'filingAddress': '',\r\n 'visaApptDate': '',\r\n 'serviceCenterCodeId': '',\r\n 'aMENDwOrNoExt': '',\r\n 'anticipatedTravel': '',\r\n 'advIssuedOnTravelOrCaseImpact': '',\r\n 'departureDate': '',\r\n 'arrivalDate': '',\r\n 'countryId': '',\r\n 'recapture': '',\r\n 'recaptureTimeAvailable': '',\r\n 'days': '',\r\n 'months': '',\r\n 'newProposedVisaMax': '', \r\n 'premiumProcessingI907': '',\r\n 'emailAddressI907': '',\r\n 'aC21Extension': '',\r\n 'a106a1yrPERM': '',\r\n 'datePERMFiledwithDOL': '',\r\n 'i485AppFiledWinYrPDBecomingCurr': '',\r\n 'a104c3YearI140': '',\r\n 'dateI140FiledUSCIS': '',\r\n 'priorityDate': '',\r\n 'priorityCountryId': '',\r\n 'visaBulletinCutoffDate': '',\r\n 'dateI140PetitionApproved': '',\r\n 'priorityClassification': '',\r\n 'priorityDateCurrent': '',\r\n 'notes': '',\r\n };\r\n \r\n validationMessages = {\r\n 'h1B2ndOrSubsExt': {\r\n 'required': 'h1B2ndOrSubsExt is required.',\r\n },\r\n 'l1ClassificationId': { \r\n 'required': 'l1ClassificationId is required.', \r\n },\r\n 'caseTypeId': { \r\n 'required': 'caseTypeId is required.', \r\n },\r\n 'filingVenueId': { \r\n 'required': 'filingVenueId is required.', \r\n },\r\n 'filingAddress': { \r\n 'required': 'filingAddress is required.', \r\n },\r\n 'visaApptDate': { \r\n 'required': 'visaApptDate is required.', \r\n },\r\n 'serviceCenterCodeId': { \r\n 'required': 'serviceCenter member required.', \r\n },\r\n 'aMENDwOrNoExt': { \r\n 'required': 'aMENDwOrNoExt is required.', \r\n },\r\n 'anticipatedTravel': { \r\n 'required': 'anticipatedTravel is required.', \r\n },\r\n 'advIssuedOnTravelOrCaseImpact': { \r\n 'required': 'advIssuedOnTravelOrCaseImpact is required.', \r\n },\r\n 'departureDate': { \r\n 'required': 'departureDate is required.', \r\n },\r\n 'arrivalDate': { \r\n 'required': 'arrivalDate is required.', \r\n },\r\n 'countryId': { \r\n 'required': 'countryId is required.', \r\n },\r\n 'recapture': { \r\n 'required': 'recapture is required', \r\n },\r\n 'recaptureTimeAvailable': {\r\n 'required': 'recaptureTimeAvailable is required.',\r\n },\r\n 'days': { \r\n 'required': 'days is required.', \r\n },\r\n 'months': { \r\n 'required': 'months is required.',\r\n },\r\n 'newProposedVisaMax': { \r\n 'required': 'newProposedVisaMax is required.', \r\n },\r\n 'premiumProcessingI907': { \r\n 'required': 'premiumProcessingI907 is required.', \r\n },\r\n 'aC21Extension': { \r\n 'required': 'aC21Extension is required.',\r\n },\r\n 'a106a1yrPERM': { \r\n 'required': 'a106a1yrPERM is required.', \r\n },\r\n 'datePERMFiledwithDOL': { \r\n 'required': 'datePERMFiledwithDOL is required.',\r\n },\r\n 'i485AppFiledWinYrPDBecomingCurr': { \r\n 'required': 'i485AppFiledWinYrPDBecomingCurr is required.', \r\n },\r\n 'a104c3YearI140': { \r\n 'required': 'a104c3YearI140 is required.', \r\n },\r\n 'priorityDate': {\r\n 'required': 'priorityDate are required.',\r\n },\r\n 'priorityCountryId': { \r\n 'required': 'priorityCountryId is required.',\r\n },\r\n 'visaBulletinCutoffDate': { \r\n 'required': 'visaBulletinCutoffDate is required.', \r\n },\r\n 'dateI140PetitionApproved': { \r\n 'required': 'dateI140PetitionApproved is required.',\r\n },\r\n 'priorityClassification': { \r\n 'required': 'priorityClassification is required.', \r\n },\r\n 'priorityDateCurrent': { \r\n 'required': 'priorityDateCurrent is required.', \r\n },\r\n 'notes': {\r\n 'required': 'notes are required.',\r\n }\r\n };\r\n\r\n constructor(private _dafService: DafService, private renderer: Renderer2,notifierService: NotifierService, public _addLCAService: AddLCAService,private formBuilder: FormBuilder) {\r\n this.notifier = notifierService; \r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.docClicksSubscription.add(\r\n this.renderer.listen(\"document\", \"click\", this.onDocumentClick.bind(this))\r\n );\r\n this.getMasterData();\r\n // this.getStates();\r\n // this.fetchfilingData(this.caseId);\r\n }\r\n\r\n async getMasterData (){\r\n this.getServiceCodes();\r\n this.getCountryList();\r\n this.getCaseRecieptDetails();\r\n this.fetchfilingData(this.caseId);\r\n this.getFilingVenue();\r\n }\r\n\r\n private onDocumentClick(e: Event): void {\r\n if (\r\n this.formGroup &&\r\n this.formGroup.valid &&\r\n !this.matches(\r\n e.target,\r\n \"#productssGrid tbody *, #productssGrid .k-grid-toolbar .k-button\"\r\n )\r\n ) {\r\n this.saveCurrent();\r\n }\r\n }\r\n\r\n\r\n public country(id: number): any {\r\n return this.countrySourceList.find((x) => x.countryId === id);\r\n }\r\n\r\n matches(el, selector) {\r\n return (el.matches || el.msMatchesSelector).call(el, selector);\r\n }\r\n\r\n \r\n\r\n\r\n\r\n fetchfilingData(caseId: number) {\r\n this.isPageReady = false;\r\n this._dafService.getFilingStratergyDetailsByCaseSummaryId(caseId).toPromise().then((data: any) => {\r\n this.filingData = new filingStratergyDetails(data);\r\n\r\n this.filingData.filingTravelDetails.forEach(item => {\r\n if (item.arrivalDate != undefined) {\r\n item.arrivalDate = new Date(item.arrivalDate);\r\n }\r\n if (item.departureDate != undefined) {\r\n item.departureDate = new Date(item.departureDate);\r\n }\r\n });\r\n\r\n this.view=this.filingData.filingTravelDetails;\r\n this.initializeForm();\r\n this.loadItems(); \r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n \r\n getCountryList() {\r\n this._dafService.getCountriesCitizenship().subscribe((data: any) => {\r\n this.CountryList = data;\r\n this.countrySourceList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n initializeForm() {\r\n let decodedNotes = this.decodeHTMLEntities(this.filingData.notes);\r\n try {\r\n this.FilingStratergyForm = this.formBuilder.group({\r\n caseSummaryId: new FormControl(this.filingData.caseSummaryId),\r\n h1B2ndOrSubsExt: new FormControl({ value: this.filingData.h1B2ndOrSubsExt, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n l1ClassificationId: new FormControl({ value: this.filingData.l1ClassificationId, disabled: true}),\r\n caseTypeId: new FormControl({ value: this.filingData.caseTypeId, disabled: true }),\r\n filingVenueId: new FormControl({ value: this.filingData.filingVenueId, disabled: true }),\r\n filingAddress: new FormControl({ value: this.filingData.filingAddress, disabled: true }),\r\n visaApptDate: new FormControl({ value: this.filingData.visaApptDate ? new Date(this.filingData.visaApptDate) : null, disabled: true }),\r\n serviceCenterCodeId: new FormControl({ value: this.filingData.serviceCenterCodeId, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n aMENDwOrNoExt: new FormControl({ value: this.filingData.amenDwOrNoExt, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n anticipatedTravel: new FormControl({ value: this.filingData.anticipatedTravel, disabled: true }),\r\n advIssuedOnTravelOrCaseImpact: new FormControl({ value: this.filingData.advIssuedOnTravelOrCaseImpact, disabled: true }),\r\n departureDate: new FormControl({ value: this.filingData.departureDate ? new Date(this.filingData.departureDate) : null, disabled: true }),\r\n arrivalDate: new FormControl({ value: this.filingData.arrivalDate ? new Date(this.filingData.arrivalDate) : null, disabled: true }),\r\n //corporationAddress: new FormControl({ value: this.filingData.corporationAddress, disabled: true }, Validators.required),\r\n //signatoryPrimaryOfficeState: new FormControl({ value: this.filingData.signatoryPrimaryOfficeState, disabled: true }, Validators.required),\r\n countryId: new FormControl({ value: this.filingData.countryId, disabled: true }),\r\n recapture: new FormControl({ value: this.filingData.recapture, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n recaptureTimeAvailable: new FormControl({ value: this.filingData.recaptureTimeAvailable, disabled: true }),\r\n days: new FormControl({ value: this.filingData.days, disabled: true }),\r\n months: new FormControl({ value: this.filingData.months, disabled: true }),\r\n newProposedVisaMax: new FormControl({ value: this.filingData.newProposedVisaMax == null ? null : new Date(this.filingData.newProposedVisaMax), disabled: true }),\r\n premiumProcessingI907: new FormControl({ value: this.filingData.premiumProcessingI907, disabled: true }),\r\n emailAddressI907: new FormControl({ value: this.filingData.emailAddressI907, disabled: true }),\r\n aC21Extension: new FormControl({value: this.filingData.aC21Extension, disabled: true},[Validators.required,Validators.nullValidator]),\r\n a106a1yrPERM: new FormControl({value: this.filingData.a106a1yrPERM, disabled: true}),\r\n datePERMFiledwithDOL: new FormControl({ value: this.filingData.datePERMFiledwithDOL == null ? null : new Date(this.filingData.datePERMFiledwithDOL), disabled: true}),\r\n i485AppFiledWinYrPDBecomingCurr: new FormControl({value: this.filingData.i485AppFiledWinYrPDBecomingCurr, disabled: true}),\r\n a104c3YearI140: new FormControl({value: this.filingData.a104c3YearI140, disabled: true}),\r\n dateI140FiledUSCIS: new FormControl({ value: this.filingData.dateI140FiledUSCIS ? new Date(this.filingData.dateI140FiledUSCIS) : null, disabled: true}),\r\n priorityDate: new FormControl({ value: this.filingData.priorityDate ? new Date(this.filingData.priorityDate) : null, disabled: true}),\r\n \r\n priorityCountryId: new FormControl({value: this.filingData.priorityCountryId, disabled: true}),\r\n visaBulletinCutoffDate: new FormControl({ value: this.filingData.visaBulletinCutoffDate ? new Date(this.filingData.visaBulletinCutoffDate) : null, disabled: true}),\r\n dateI140PetitionApproved: new FormControl({ value: this.filingData.dateI140PetitionApproved ? new Date(this.filingData.dateI140PetitionApproved) : null, disabled: true}),\r\n priorityClassification: new FormControl({value: this.filingData.priorityClassification, disabled: true}),\r\n priorityDateCurrent: new FormControl({value: this.filingData.priorityDateCurrent, disabled: true}),\r\n notes: new FormControl({ value: decodedNotes, disabled: true }),\r\n filingStateOrCountry: new FormControl({ value: this.filingData.filingStateOrCountry, disabled: true }),\r\n eyPetitioner: new FormControl({ value: this.filingData.eyPetitioner, disabled: true })\r\n });\r\n this.isPageReady = true;\r\n this.subscribeToFormControlValueChanges();\r\n this.FilingStratergyForm.valueChanges.subscribe((val=>{\r\n this.logOnChangeValidationErrors();\r\n }));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n\r\n // private getDynamicControlValue(formGroup: FormGroup, childFormGroup: string){\r\n\r\n // Object.keys(formGroup.controls).forEach((key: string) => {\r\n // const abstractControl = formGroup.get(key);\r\n // console.log(abstractControl); \r\n // if(childFormGroup === 'serviceCenter'){\r\n // this.filingData.se.filter(p=>p.shortForm == key)[0].isSelected = abstractControl.value;\r\n // }\r\n \r\n // });\r\n\r\n // }\r\n\r\n subscribeToFormControlValueChanges() {\r\n if(this.filingData.anticipatedTravel)\r\n {\r\n this.f['advIssuedOnTravelOrCaseImpact'].setValidators([Validators.required,Validators.nullValidator]);\r\n //this.f['arrivalDate'].setValidators([Validators.required,Validators.nullValidator]);\r\n //this.f['departureDate'].setValidators([Validators.required,Validators.nullValidator]);\r\n //this.f['countryId'].setValidators([Validators.required,Validators.nullValidator]);\r\n \r\n }\r\n\r\n if(this.filingData.recapture)\r\n {\r\n this.f['recaptureTimeAvailable'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.f['days'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.f['months'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.f['newProposedVisaMax'].setValidators([Validators.required,Validators.nullValidator]);\r\n\r\n }\r\n if(this.filingData.aC21Extension)\r\n {\r\n this.f['a106a1yrPERM'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.f['a104c3YearI140'].setValidators([Validators.required,Validators.nullValidator]);\r\n\r\n }\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n this.FilingStratergyForm.get(\"anticipatedTravel\").valueChanges.subscribe(val => {\r\n if (val) {\r\n \r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"advIssuedOnTravelOrCaseImpact\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"arrivalDate\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"departureDate\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"countryId\"], false);\r\n\r\n this.isGridEditable = true;\r\n if(this.view == null || this.view.length == 0){\r\n this.view = this.filingtravelTbl;\r\n }\r\n this.loadItems();\r\n //this.view = this.spouseAndDependentMaster;\r\n \r\n \r\n\r\n this.filingData.anticipatedTravel = true;\r\n //this.f['advIssuedOnTravelOrCaseImpact'].setValue(null);\r\n this.f['advIssuedOnTravelOrCaseImpact'].setValidators([Validators.required,Validators.nullValidator]);\r\n // this.f['arrivalDate'].setValue(null);\r\n // this.f['arrivalDate'].setValidators([Validators.required,Validators.nullValidator]);\r\n // this.f['countryId'].setValue(null);\r\n // this.f['countryId'].setValidators([Validators.required,Validators.nullValidator]);\r\n // this.f['departureDate'].setValue(null);\r\n // this.f['departureDate'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"reasonToExpediteCase\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"arrivalDate\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"departureDate\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"countryId\"], true);\r\n\r\n this.filingtravelTbl = this.view;\r\n this.view = []\r\n this.isGridEditable = false;\r\n this.loadItems();\r\n \r\n\r\n this.filingData.anticipatedTravel = false;\r\n //this.f['advIssuedOnTravelOrCaseImpact'].setValue(null);\r\n this.f['advIssuedOnTravelOrCaseImpact'].clearValidators();\r\n //this.f['arrivalDate'].setValue(null);\r\n this.f['arrivalDate'].clearValidators();\r\n //this.f['departureDate'].setValue(null);\r\n this.f['departureDate'].clearValidators();\r\n //this.f['countryId'].setValue(null);\r\n this.f['countryId'].clearValidators();\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n // this.FilingStratergyForm.patchValue({\r\n // reasonToExpediteCase: null,\r\n // });\r\n }\r\n });\r\n this.FilingStratergyForm.get(\"recapture\").valueChanges.subscribe(val => {\r\n if (val) {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"recaptureTimeAvailable\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"days\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"months\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"newProposedVisaMax\"], false);\r\n\r\n this.filingData.recapture = true;\r\n //this.f['recaptureTimeAvailable'].setValue(null);\r\n this.f['recaptureTimeAvailable'].setValidators([Validators.required,Validators.nullValidator]);\r\n //this.f['days'].setValue(null);\r\n this.f['days'].setValidators([Validators.required,Validators.nullValidator]);\r\n //this.f['months'].setValue(null);\r\n this.f['months'].setValidators([Validators.required,Validators.nullValidator]);\r\n //this.f['newProposedVisaMax'].setValue(null);\r\n this.f['newProposedVisaMax'].setValidators([Validators.required,Validators.nullValidator]);\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"recaptureTimeAvailable\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"days\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"months\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"newProposedVisaMax\"], true);\r\n this.filingData.recapture = false;\r\n //this.f['recaptureTimeAvailable'].setValue(null);\r\n this.f['recaptureTimeAvailable'].clearValidators();\r\n //this.f['days'].setValue(null);\r\n this.f['days'].clearValidators();\r\n //this.f['months'].setValue(null);\r\n this.f['months'].clearValidators();\r\n //this.f['newProposedVisaMax'].setValue(null);\r\n this.f['newProposedVisaMax'].clearValidators();\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n // this.FilingStratergyForm.patchValue({\r\n // reasonToDelayCase: null,\r\n // });\r\n }\r\n });\r\n this.FilingStratergyForm.get(\"aC21Extension\").valueChanges.subscribe(val => {\r\n if (val) {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"a106a1yrPERM\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"a104c3YearI140\"], false);\r\n\r\n this.filingData.aC21Extension = true;\r\n //this.f['a106a1yrPERM'].setValue(null);\r\n this.f['a106a1yrPERM'].setValidators([Validators.required,Validators.nullValidator]);\r\n //this.f['a104c3YearI140'].setValue(null);\r\n this.f['a104c3YearI140'].setValidators([Validators.required,Validators.nullValidator]);\r\n\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"a106a1yrPERM\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"a104c3YearI140\"], true);\r\n this.filingData.aC21Extension = false;\r\n this.f['a106a1yrPERM'].setValue(false);\r\n this.f['a106a1yrPERM'].clearValidators();\r\n\r\n //this.f['a104c3YearI140'].setValue(null);\r\n this.f['a104c3YearI140'].clearValidators();\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n \r\n }\r\n });\r\n this.FilingStratergyForm.get(\"a106a1yrPERM\").valueChanges.subscribe(val => {\r\n if (val) {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"datePERMFiledwithDOL\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"i485AppFiledWinYrPDBecomingCurr\"], false);\r\n\r\n this.filingData.a106a1yrPERM = true;\r\n //this.f['datePERMFiledwithDOL'].setValue(this.caseRecieptDetails.caseMainReceiptDate?new Date(this.caseRecieptDetails.caseMainReceiptDate):null);\r\n //this.f['i485AppFiledWinYrPDBecomingCurr'].setValue(null);\r\n\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"datePERMFiledwithDOL\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"i485AppFiledWinYrPDBecomingCurr\"], true);\r\n this.filingData.a106a1yrPERM = false;\r\n this.f['datePERMFiledwithDOL'].setValue(null);\r\n this.f['datePERMFiledwithDOL'].clearValidators();\r\n this.f['i485AppFiledWinYrPDBecomingCurr'].setValue(false);\r\n this.f['i485AppFiledWinYrPDBecomingCurr'].clearValidators();\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n \r\n }\r\n });\r\n this.FilingStratergyForm.get(\"a104c3YearI140\").valueChanges.subscribe(val => {\r\n if (val) {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"dateI140FiledUSCIS\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"dateI140PetitionApproved\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityDate\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityCountryId\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityClassification\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityDateCurrent\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"visaBulletinCutoffDate\"], false);\r\n\r\n this.filingData.a104c3YearI140 = true;\r\n //this.f['dateI140FiledUSCIS'].setValue(this.caseRecieptDetails.caseMainReceiptDate?new Date(this.caseRecieptDetails.caseMainReceiptDate):null);\r\n //this.f['dateI140PetitionApproved'].setValue(this.caseRecieptDetails.receiptValidFromDate?new Date(this.caseRecieptDetails.receiptValidFromDate):null);\r\n //this.f['priorityDate'].setValue(this.caseRecieptDetails.casePriorityDate?new Date(this.caseRecieptDetails.casePriorityDate):null);\r\n //this.f['priorityCountryId'].setValue(this.caseRecieptDetails.casePriorityCountryId);\r\n //this.f['priorityClassification'].setValue(this.caseRecieptDetails.casePriorityCategory);\r\n //this.f['priorityDateCurrent'].setValue(null);\r\n //this.f['visaBulletinCutoffDate'].setValue(null);\r\n\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"dateI140FiledUSCIS\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"dateI140PetitionApproved\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityDate\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityCountryId\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityClassification\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"priorityDateCurrent\"], true);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"visaBulletinCutoffDate\"], true);\r\n this.filingData.a104c3YearI140 = false;\r\n //this.f['dateI140FiledUSCIS'].setValue(null);\r\n this.f['dateI140FiledUSCIS'].clearValidators();\r\n //this.f['dateI140PetitionApproved'].setValue(null);\r\n this.f['dateI140PetitionApproved'].clearValidators();\r\n //this.f['priorityDate'].setValue(null);\r\n this.f['priorityDate'].clearValidators();\r\n //this.f['priorityCountryId'].setValue(null);\r\n this.f['priorityCountryId'].clearValidators();\r\n\r\n //this.f['priorityClassification'].setValue(null);\r\n this.f['priorityClassification'].clearValidators();\r\n //this.f['priorityDateCurrent'].setValue(null);\r\n this.f['priorityDateCurrent'].clearValidators();\r\n\r\n //this.f['visaBulletinCutoffDate'].setValue(null);\r\n this.f['visaBulletinCutoffDate'].clearValidators();\r\n\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n \r\n }\r\n });\r\n }\r\n\r\n public countryFilterChange(filter: any): void {\r\n this.CountryList = this.countrySourceList.filter(x => x.countryName.toLowerCase().includes(filter));\r\n }\r\n\r\n enableEdit() {\r\n try {\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.FilingStratergyForm, [\"advIssuedOnTravelOrCaseImpact\", \"arrivalDate\", \"departureDate\", \"countryId\", \"recaptureTimeAvailable\", \"days\", \"months\", \"newProposedVisaMax\", \"datePERMFiledwithDOL\", \"i485AppFiledWinYrPDBecomingCurr\", \"a106a1yrPERM\", \"a104c3YearI140\", \"dateI140FiledUSCIS\", \"dateI140PetitionApproved\", \"priorityDate\", \"priorityClassification\", \"priorityCountryId\", \"priorityDateCurrent\", \"visaBulletinCutoffDate\"], false);\r\n\r\n if (this.filingData.anticipatedTravel) {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"advIssuedOnTravelOrCaseImpact\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"arrivalDate\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"departureDate\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"countryId\"], false); }\r\n if (this.filingData.recapture) {\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"recaptureTimeAvailable\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"days\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"months\"], false);\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm, [\"newProposedVisaMax\"], false);\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n public addHandler(): void {\r\n this.editDataItem = new FilingTableDetail();\r\n this.editDataItem.filingTravelID = 0;\r\n this.editDataItem.arrivalDate = null;\r\n this.editDataItem.departureDate = null;\r\n this.editDataItem.countryId = null;\r\n //this.closeEditor();\r\n\r\n //this.formGroup = this.createFormGroup({\r\n // departureDate: null,\r\n // arrivalDate: null,\r\n // countryId: null,\r\n // filingTravelID:0\r\n //});\r\n this.isNew = true;\r\n\r\n //this.grid.addRow(this.formGroup);\r\n }\r\n\r\n public saveRow(): void {\r\n if (this.formGroup && this.formGroup.valid) {\r\n this.saveCurrent();\r\n }\r\n }\r\n\r\n \r\n\r\n public cellClickHandler({\r\n isEdited,\r\n dataItem,\r\n rowIndex,\r\n }: CellClickEvent): void {\r\n if (isEdited || (this.formGroup && !this.formGroup.valid) || !this.isGridEditable || this.isDeleteClicked) {\r\n this.isDeleteClicked = false;\r\n return;\r\n }\r\n\r\n if (this.isNew) {\r\n rowIndex += 1;\r\n }\r\n\r\n this.saveCurrent();\r\n\r\n this.formGroup = this.createFormGroup(dataItem);\r\n this.editedRowIndex = rowIndex;\r\n\r\n this.grid.editRow(rowIndex, this.formGroup);\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n private saveCurrent(): void {\r\n if (this.formGroup) {\r\n // this.service.save(this.formGroup.value, this.isNew);\r\n let maxId: number = Math.max.apply(Math, this.view.map(function (o) { return o.filingTravelID; }));\r\n let sdDetails = this.formGroup.value;\r\n let index = maxId + 1;\r\n if (this.isNew) { \r\n sdDetails.filingTravelID = index;\r\n sdDetails.isNew = true;\r\n this.view.splice(0, 0, sdDetails);\r\n } else {\r\n Object.assign(\r\n this.view.find(({ filingTravelID }) => filingTravelID === sdDetails.filingTravelID),\r\n sdDetails\r\n ); \r\n }\r\n this.closeEditor();\r\n this.loadItems();\r\n }\r\n }\r\n\r\n createFormGroup(dataItem) {\r\n return new FormGroup({\r\n arrivalDate: new FormControl({ value: dataItem.arrivalDate ? new Date(dataItem.arrivalDate) : null, disabled: true }, Validators.required),\r\n departureDate: new FormControl({ value: dataItem.departureDate ? new Date(dataItem.departureDate) : null, disabled: true }, Validators.required),\r\n countryId: new FormControl(dataItem.countryId),\r\n filingTravelID: new FormControl(dataItem.filingTravelID)\r\n });\r\n }\r\n\r\n unlockFields() {\r\n try {\r\n this.isUnlocked = true;\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm,[\"employeeEmail\"], false);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n lockFields() {\r\n try {\r\n this.isUnlocked = false;\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm,[\"employeeEmail\"], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n saveFilingStratergyDetails() {\r\n this.isPageReady = false;\r\n this.logValidationErrors();\r\n this.isPageReady = true;\r\n \r\n this.readFormValues(this.FilingStratergyForm);\r\n this.filingData.filingTravelDetails=this.view;\r\n if (this.FilingStratergyForm.valid) {\r\n // if (this.filingData.visaApptDate && this.filingData.visaApptDate !== null) {\r\n // var userTimezoneOffset = new Date(this.filingData.visaApptDate).getTimezoneOffset() * 60000;\r\n // this.filingData.visaApptDate = new Date(this.filingData.visaApptDate.getTime() - userTimezoneOffset);\r\n // }\r\n this.filingData.notes = this.filingData.notes ? this.encodeHTMLEntities(this.filingData.notes) : null;\r\n this._dafService.saveFilingStratergyDetails(this.caseId,this.filingData).subscribe((data: any) => {\r\n this._dafService.disableEnableAllFormControls(this.FilingStratergyForm, [], true);\r\n this.isEditEnabled = false;\r\n this.isUnlocked = false;\r\n this.page.emit(1);\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Filing Strategy details have been saved successfully');\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while saving case summary details');\r\n });\r\n }\r\n else {\r\n this.notifier.notify('error', 'All fields are required and should have data');\r\n this.isPageReady = true;\r\n }\r\n\r\n if(this.FilingStratergyForm.valid){\r\n \r\n }\r\n else{\r\n this.logValidationErrors();\r\n }\r\n\r\n }\r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.FilingStratergyForm.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n // this.getDynamicControlValue(abstractControl,key);\r\n }\r\n else {\r\n this.filingData[key] = abstractControl.value;\r\n }\r\n });\r\n }\r\n \r\n \r\n\r\n resetForm() {\r\n try {\r\n this.fetchfilingData(this.caseId);\r\n this.isEditEnabled = false;\r\n this.isUnlocked = false;\r\n this._dafService.disableEnableAllFormControls(this.FilingStratergyForm, [\"supportTeamMember\"],true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n get f() {\r\n return this.FilingStratergyForm.controls;\r\n }\r\n\r\n logValidationErrors(group: FormGroup = this.FilingStratergyForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n // && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.FilingStratergyForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n setCSPanelState() {\r\n this.collapseCSPanel.emit(0);\r\n }\r\n\r\n searchUserDetails(email: any) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase().trim();\r\n if (filterValue) {\r\n this._dafService.searchSupportUserDetails(filterValue).subscribe((data: any) => {\r\n this.searchDetails = data.value;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while searching the user details');\r\n });\r\n }\r\n\r\n }\r\n\r\n selectAddUserDetails(email: any) {\r\n try {\r\n this.addUserMail = email.mail;\r\n this.addUserName = email.displayName;\r\n this.autocomplete.reset();\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.FilingStratergyForm.get(\"expediteCase\").valueChanges.subscribe().unsubscribe();\r\n this.FilingStratergyForm.get(\"placeOnHold\").valueChanges.subscribe().unsubscribe();\r\n }\r\n\r\n openWizard(){\r\n this.isActivate=true;\r\n }\r\n\r\n \r\n public cancelHandlers(): void {\r\n this.isActivate=false; }\r\n\r\n getServiceCodes(){\r\n this._dafService.GetServiceCodes().subscribe((data: any) => {\r\n this.serviceCodes = data;\r\n this.serviceCodesList = data;\r\n\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n getCaseRecieptDetails(){\r\n this._dafService.getCaseRecieptDetails(this.caseId).subscribe((data: any) => {\r\n this.caseRecieptDetails = data;\r\n\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n\r\n public setDependentIndexToDelete(args: any){\r\n this.isDeleteClicked = true;\r\n this.deleteIndex = args.rowIndex;\r\n this.showDialog = true;\r\n //this.view.splice(args.rowIndex, 1);\r\n //this.loadItems();\r\n }\r\n\r\n public deleteDependent(){\r\n this.view.splice(this.deleteIndex, 1);\r\n this.loadItems();\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDelete(){\r\n this.showDialog = false;\r\n }\r\n\r\n public onDialogClose(){\r\n this.showDialog = false;\r\n }\r\n\r\n GetZipcodes(event, index: any): Promise {\r\n this.zipcodeList[index] = [];\r\n this.zipcodeSource[index] = [];\r\n let res = this._addLCAService.GetZipcodes(event).toPromise().then((data: any) => {\r\n if (data.length > 0) {\r\n data.forEach(element => {\r\n this.zipcodeList[index].push(element.zipcode.toString());\r\n this.zipcodeSource[index].push(element.zipcode.toString());\r\n });\r\n }\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n this._dafService.disableEnableFormControl(this.FilingStratergyForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n GetCountyInfo(event, index: any): Promise {\r\n this.cityArray[index]=[];\r\n this.countyArray[index]=[];\r\n let res = this._addLCAService.GetCountyInfo(event).toPromise().then((data: any) => {\r\n if (data.length > 0) {\r\n this.FilingStratergyForm.controls[\"signatoryCity\"].setValue(data[0].cityName);\r\n this.FilingStratergyForm.controls[\"signatoryCounty\"].setValue(data[0].countyName);\r\n this.FilingStratergyForm.updateValueAndValidity();\r\n }\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n }\r\n );\r\n return res;\r\n }\r\n\r\n public filterChange(filter: any): void {\r\n if(filter.length>2){\r\n this.serviceCodesList = this.serviceCodes.filter(x=>x.stateName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n }\r\n\r\n public zipFilterChange(filter: any,index:any): void {\r\n this.zipcodeList[index] = this.zipcodeSource[index].filter(\r\n (s) => s.toString().startsWith(filter)\r\n );\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n if (text) {\r\n escapeQuotes = text.replace(/['\"()]/g, escape);\r\n }\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n if (text) {\r\n unescapeQuotes = text.replace(\"%27\", unescape);\r\n unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%28\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%29\", unescape);\r\n }\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n\r\n public saveHandler(product: FilingTableDetail): void {\r\n if (product) {\r\n product.arrivalDate = product.arrivalDate ? new Date(product.arrivalDate) : null;\r\n product.departureDate = product.departureDate ? new Date(product.departureDate) : null;\r\n product.countryId = product.countryId ? product.countryId : null;\r\n }\r\n if (this.isNew) {\r\n this.view.splice(0, 0, product);\r\n this.modifiedRecords.push(product);\r\n }\r\n else {\r\n Object.assign(\r\n this.view.find(({ filingTravelID }) => filingTravelID === product.filingTravelID),\r\n product\r\n );\r\n\r\n if (this.modifiedRecords.find(({ filingTravelID }) => filingTravelID === product.filingTravelID)) {\r\n Object.assign(\r\n this.modifiedRecords.find(({ filingTravelID }) => filingTravelID === product.filingTravelID),\r\n product\r\n );\r\n }\r\n else {\r\n this.modifiedRecords.push(product);\r\n }\r\n }\r\n\r\n this.editDataItem = undefined;\r\n this.isNew = false;\r\n this.loadItems();\r\n }\r\n\r\n public editHandler(args: AddEvent): void {\r\n this.editDataItem = args.dataItem;\r\n\r\n this.isNew = false;\r\n }\r\n\r\n getFilingVenue() {\r\n this._dafService.GetFilingVenue().subscribe((data: any) => {\r\n this.filingVenue = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { FilingTableDetail } from '../../../Models/FilingStratergy';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-filing-travel-modal',\r\n templateUrl: './filing-travel-modal.component.html',\r\n styleUrls: ['./filing-travel-modal.component.scss']\r\n})\r\nexport class FilingTravelModalComponent implements OnInit {\r\n public active = false;\r\n countrySourceList: Array = [];\r\n countryList: Array = [];\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() save: EventEmitter = new EventEmitter();\r\n @Input() public isNew = false;\r\n private notifier: NotifierService;\r\n @Input() public set model(product: FilingTableDetail) {\r\n this.editForm.reset(product);\r\n // toggle the Dialog visibility\r\n this.active = product !== undefined;\r\n }\r\n constructor(notifier: NotifierService, private _dafService: DafService) { this.notifier = notifier; }\r\n\r\n ngOnInit(): void {\r\n this.getCountryList();\r\n }\r\n\r\n public editForm: FormGroup = new FormGroup({\r\n filingTravelID: new FormControl(0),\r\n arrivalDate: new FormControl(null, Validators.required),\r\n departureDate: new FormControl(null, Validators.required),\r\n countryId: new FormControl(null, Validators.required),\r\n });\r\n\r\n getCountryList() {\r\n this._dafService.getCountriesCitizenship().subscribe((data: any) => {\r\n this.countryList = data;\r\n this.countrySourceList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n public onSave(e: PointerEvent): void {\r\n e.preventDefault();\r\n if (this.editForm.get('departureDate').value > this.editForm.get('arrivalDate').value) {\r\n this.notifier.notify('error', 'Arrival date cannot be less than Departure Date');\r\n return;\r\n }\r\n this.save.emit(this.editForm.value);\r\n this.active = false;\r\n }\r\n\r\n public countryFilterChange(filter: any): void {\r\n this.countryList = this.countrySourceList.filter(x => x.countryName.toLowerCase().includes(filter));\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { DafService } from '../../../services/dafService';\r\nimport { FilingHistory, individualBioInfo } from '../../../Models/IndividualBioInfo';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Router } from '@angular/router';\r\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { AddEvent, DataStateChangeEvent, GridComponent, GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { EditFilingDetails, FilingDetails } from 'src/app/DAF/Models/filingdetails';\r\n\r\n@Component({\r\n selector: 'app-individual-bio-graphical-information',\r\n templateUrl: './individual-bio-graphical-information.component.html',\r\n styleUrls: ['./individual-bio-graphical-information.component.scss']\r\n})\r\nexport class IndividualBioGraphicalInformationComponent implements OnInit {\r\n\r\n @Input() caseId = 0;\r\n private notifier: NotifierService;\r\n ibiDetails: individualBioInfo = new individualBioInfo();\r\n public modifiedRecords: Array = [];\r\n public isPageReady = true;\r\n isEditEnabled: boolean = false;\r\n isUnlocked: boolean = false;\r\n haveRadioButtonsChanged\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n @ViewChild(GridComponent, {static: false})\r\n private grid: GridComponent;\r\n public view: Array = [];\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n\r\n showDialog:boolean = false;\r\n deleteIndex: number;\r\n public editDataItem: EditFilingDetails;\r\n public isGridEditable: boolean;\r\n private isDeleteClicked: boolean = false;\r\n dateFrom: any;\r\n dateTo: any;\r\n ped: any;\r\n i94ExpDate: any;\r\n visaExpDate: any;\r\n h1L1statusStartDate: any;\r\n h1L1statusToDate: any;\r\n public defaultItem: { immigrationStatusDescription: string, immigrationStatusId: number } = { immigrationStatusDescription: \"\", immigrationStatusId: null };\r\n // public caseList: any;\r\n // public gridViewData: any[];\r\n // private notifier: NotifierService;\r\n // public pageSize = 10;\r\n // public skip = 0;\r\n // public gridState: DataStateChangeEvent = {\r\n // skip: this.skip,\r\n // take: this.pageSize\r\n // };\r\n // public caseStatus = \"\";\r\n // public caseType = \"\";\r\n private isNew: boolean;\r\n optionalFormControls = [\"h1L1statusStartDate\", \"h1L1statusToDate\", \"priorJ1\", \"j1Notes\",\"visaExpDate\"];\r\n formErrors = {\r\n 'countryOfBirth': '',\r\n 'citizenship': '',\r\n 'currentStatus': '',\r\n 'ped': '',\r\n 'i94ExpDate': '',\r\n 'visaExpDate': '',\r\n 'priorH1L1Time': '',\r\n 'h1L1statusStartDate': '',\r\n 'h1L1statusToDate': '',\r\n 'priorJ1': '',\r\n 'j1Notes': '',\r\n 'dateFrom': '',\r\n 'dateTo': '',\r\n 'subjectTo212': '',\r\n 'secondCitizenship': '',\r\n 'nationality': '',\r\n\r\n };\r\n\r\n private editedRowIndex: number;\r\n\r\n\r\n validationMessages = {\r\n 'countryOfBirth': {\r\n 'required': 'Birth Country is required.',\r\n },\r\n 'citizenship': {\r\n 'required': 'Citizenship is required.',\r\n },\r\n 'currentStatus': {\r\n 'required': 'Current Status is required.',\r\n },\r\n 'ped': {\r\n 'required': 'PED is required.',\r\n },\r\n 'i94ExpDate': {\r\n 'required': 'Date is required.',\r\n },\r\n 'visaExpDate': {\r\n 'required': 'Date is required.',\r\n },\r\n 'priorH1L1Time': {\r\n 'required': 'This info is required.',\r\n },\r\n 'h1L1statusStartDate': {\r\n 'required': 'Date is is required.',\r\n },\r\n 'h1L1statusToDate': {\r\n 'required': 'Date is required.',\r\n },\r\n 'j1Notes': {\r\n 'required': 'These notes is required.',\r\n },\r\n 'priorJ1': {\r\n 'required': 'Prior J1 is required.',\r\n },\r\n 'dateFrom': {\r\n 'required': 'Date is required.',\r\n },\r\n 'dateTo': {\r\n 'required': 'Date is required.',\r\n },\r\n 'subjectTo212': {\r\n 'required': 'SubjectTo212 is required.',\r\n },\r\n 'secondCitizenship': {\r\n 'required': 'secondCitizenship is required.',\r\n },\r\n 'nationality': {\r\n 'required': 'nationality is required.',\r\n },\r\n };\r\n\r\n\r\n constructor(private _dafService: DafService, notifierService: NotifierService, private router: Router, private formBuilder: FormBuilder) {\r\n this.notifier = notifierService; \r\n\r\n }\r\n chartDatas: any;\r\n countrySourceList: Array = [];\r\n CountryList: Array = [];\r\n immStatusSourceList: Array = [];\r\n immStatusList: Array = [];\r\n citizenshipSourceList: Array = [];\r\n citizenshipList: Array = [];\r\n nationalitySourceList: Array = [];\r\n nationalityList: Array = [];\r\n multicitizenshipSourceList: Array<{ text: string; value: number }> = [];\r\n multicitizenshipList:Array<{ text: string; value: number }>= [];\r\n IBIform: FormGroup;\r\n IndFileHsitory: any;\r\n FileHistory: any;\r\n citizenships:any[];\r\n public deleteRow: any;\r\n\r\n ngOnInit() {\r\n this.getCountryList();\r\n this.getIndFileDetails();\r\n }\r\n\r\n getCountryList() {\r\n this._dafService.getCountriesCitizenship().subscribe((data: any) => {\r\n this.CountryList = data;\r\n this.countrySourceList = data;\r\n this.citizenshipList=data;\r\n this.citizenshipSourceList = data;\r\n this.nationalityList = data;\r\n this.nationalitySourceList = data;\r\n this.multicitizenshipList=[];\r\n this.multicitizenshipSourceList=[];;\r\n data.forEach(element => {\r\n if(element.nationality){\r\n this.multicitizenshipList.push({'text':element.nationality,'value':element.countryId});\r\n this.multicitizenshipSourceList.push({'text':element.nationality,'value':element.countryId});\r\n }\r\n });\r\n this.getImmigrationStatus();\r\n this.getCaseDetails(this.caseId);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n getImmigrationStatus(){\r\n this._dafService.getImmigrationStatus().subscribe((data: any) => {\r\n this.immStatusList = data;\r\n this.immStatusSourceList = data;\r\n });\r\n}\r\n\r\npublic pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.loadItems();\r\n}\r\n\r\nprivate loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n}\r\n\r\n\r\n initializeForm() {\r\n try {\r\n let decodedNotes = this.decodeHTMLEntities(this.ibiDetails.notes);\r\n this.IBIform = this.formBuilder.group({\r\n individualBioInfoID: new FormControl(this.ibiDetails.individualBioInfoID),\r\n countryOfBirth: new FormControl({ value: this.ibiDetails.countryOfBirth, disabled: { onlySelf: true } }, Validators.required),\r\n nationality: new FormControl({ value: this.ibiDetails.nationality, disabled: true }, Validators.required),\r\n citizenship: new FormControl({ value: this.ibiDetails.citizenship, disabled: true }),\r\n currentStatus: new FormControl({ value: this.ibiDetails.currentStatus, disabled: true }),\r\n ped: new FormControl({ value: this.ibiDetails.ped, disabled: true }, Validators.required),\r\n i94ExpDate: new FormControl({ value: this.ibiDetails.i94ExpDate ? new Date(this.ibiDetails.i94ExpDate) : null, disabled: true }, Validators.required),\r\n statusDuration: new FormControl({ value: this.ibiDetails.statusDuration, disabled: true }, Validators.required),\r\n visaExpDate: new FormControl({ value: this.ibiDetails.visaExpDate ? new Date(this.ibiDetails.visaExpDate) : null, disabled: true }),\r\n priorH1L1Time: new FormControl({ value: this.ibiDetails.priorH1L1Time, disabled: true }, Validators.required),\r\n h1L1statusStartDate: new FormControl({ value: this.ibiDetails.h1L1statusStartDate ? new Date(this.ibiDetails.h1L1statusStartDate) : null, disabled: true }),\r\n h1L1statusToDate: new FormControl({ value: this.ibiDetails.h1L1statusToDate ? new Date(this.ibiDetails.h1L1statusToDate) : null, disabled: true }),\r\n priorJ1: new FormControl({ value: this.ibiDetails.priorJ1, disabled: true }),\r\n j1Notes: new FormControl({ value: this.ibiDetails.j1Notes, disabled: true }),\r\n dualCitizenship: new FormControl({ value: this.ibiDetails.dualCitizenship, disabled: true }, Validators.required),\r\n secondCitizenship: new FormControl({ value: this.ibiDetails.secondCitizenship, disabled: true }),\r\n dateFrom: new FormControl({ value: this.ibiDetails.dateFrom ? new Date(this.ibiDetails.dateFrom) : null, disabled: true }, Validators.required),\r\n dateTo: new FormControl({ value: this.ibiDetails.dateTo ? new Date(this.ibiDetails.dateTo) : null, disabled: true }, Validators.required),\r\n subjectTo212: new FormControl({ value: this.ibiDetails.subjectTo212, disabled: true }, Validators.required),\r\n notes: new FormControl({ value: decodedNotes, disabled: true }),\r\n alienNumber: new FormControl({ value: this.ibiDetails.alienNumber, disabled: true }, Validators.required)\r\n });\r\n if (this.ibiDetails.priorH1L1Time != true) {\r\n this.IBIform.get(\"ped\").setValidators(null);\r\n }\r\n if (this.ibiDetails.priorJ1 != true) {\r\n this.IBIform.get(\"dateFrom\").setValidators(null);\r\n this.IBIform.get(\"dateTo\").setValidators(null);\r\n this.IBIform.get(\"subjectTo212\").setValidators(null);\r\n }\r\n this.isPageReady = true;\r\n this.subscribeToFormControlValueChanges();\r\n this.IBIform.valueChanges.subscribe((val => {\r\n this.logOnChangeValidationErrors();\r\n }));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n subscribeToFormControlValueChanges(){\r\n this.IBIform.get(\"dualCitizenship\").valueChanges.subscribe(val => {\r\n if(val){\r\n this.ibiDetails.dualCitizenship = true;\r\n }\r\n else{\r\n this.ibiDetails.dualCitizenship = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n countryFilterChange(filter: any) {\r\n try {\r\n this.CountryList = this.countrySourceList.filter(x => x.countryName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n finally {\r\n\r\n }\r\n }\r\n\r\n CurrentStatusFilter(filter: any) {\r\n try {\r\n this.immStatusList = this.immStatusSourceList.filter(x => x.immigrationStatusDescription.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n finally {\r\n\r\n }\r\n }\r\n\r\n getCitizenship(event: any) {\r\n try {\r\n this.citizenshipList = this.citizenshipSourceList.filter(\r\n (s) => s.nationality?.toLowerCase().includes(event.toLowerCase())\r\n );\r\n }\r\n catch (err) {\r\n\r\n }\r\n }\r\n\r\n MultiCitizenshipFilter(event: any) {\r\n\r\n try {\r\n this.multicitizenshipList = this.multicitizenshipSourceList.filter(\r\n (s) => s.text?.toLowerCase().includes(event.toLowerCase())\r\n );\r\n }\r\n catch (err) {\r\n\r\n }\r\n }\r\n\r\n getNationality(filter: any) {\r\n try {\r\n this.nationalityList = this.nationalitySourceList.filter(x => (x.nationality ? x.nationality : '').toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n finally {\r\n\r\n }\r\n }\r\n getCaseDetails(caseId: number) {\r\n this.isPageReady = false;\r\n this._dafService.GetIndividualBio(this.caseId).toPromise().then((data: any) => {\r\n console.log(data);\r\n this.ibiDetails = new individualBioInfo(data);\r\n this.citizenships = this.ibiDetails.secondCitizenship?.split(',').map(function(item) {\r\n return parseInt(item, 10);\r\n });\r\n this.initializeForm();\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while fetching the data');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n getIndFileDetails() {\r\n this.isPageReady = false;\r\n this._dafService.GetFileHistoryInfo(this.caseId).subscribe((data: any) => {\r\n this.IndFileHsitory = data;\r\n this.IndFileHsitory.forEach(item => {\r\n if (item.receiptDate != undefined) {\r\n item.receiptDate = new Date(item.receiptDate);\r\n }\r\n if (item.validFrom != undefined) {\r\n item.validFrom = new Date(item.validFrom);\r\n }\r\n if (item.validTo != undefined) {\r\n item.validTo = new Date(item.validTo);\r\n }\r\n });\r\n this.view = this.IndFileHsitory;\r\n\r\n this.loadItems();\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n });\r\n }\r\n\r\n enableEdit() {\r\n try {\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.IBIform, [], false);\r\n this.isGridEditable = true;\r\n\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n get formControls() {\r\n return this.IBIform.controls;\r\n }\r\n\r\n unlockFields() {\r\n try {\r\n this.isUnlocked = true;\r\n this._dafService.disableEnableFormControl(this.IBIform, [\"countryOfBirth\", \"citizenship\"], false);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n lockFields() {\r\n try {\r\n this.isUnlocked = false;\r\n this._dafService.disableEnableFormControl(this.IBIform, [\"countryOfBirth\", \"citizenship\"], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n resetForm() {\r\n try {\r\n this.getCaseDetails(this.caseId);\r\n this.isEditEnabled = false;\r\n this.isUnlocked = false;\r\n this.isGridEditable = false;\r\n this._dafService.disableEnableAllFormControls(this.IBIform, [], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n logValidationErrors(group: FormGroup = this.IBIform): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n // && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n public addHandler(): void {\r\n this.editDataItem = new EditFilingDetails();\r\n this.editDataItem.formType=\"\";\r\n this.editDataItem.classification =\"\";\r\n this.editDataItem.rn = \"\";\r\n this.editDataItem.receiptDate = null;\r\n this.editDataItem.validFrom =null;\r\n this.editDataItem.validTo =null;\r\n this.editDataItem.status = \"\";\r\n this.editDataItem.isFiledByPetitioner = false;\r\n this.editDataItem.fileHistoryID =0;\r\n\r\n this.isNew = true;\r\n }\r\n\r\n public editHandler(args: AddEvent): void {\r\n this.editDataItem = args.dataItem;\r\n\r\n this.isNew = false;\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.IBIform): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n static stringMatchValidator(control: AbstractControl) {\r\n const password: string = control.get('citizenship').value; // get password from our password form control\r\n const confirmPassword: string = control.get('secondCitizenship').value; // get password from our confirmPassword form control\r\n // compare is the password math\r\n if (password === confirmPassword) {\r\n // if they don't match, set an error in our confirmPassword form control\r\n control.get('secondCitizenship').setErrors({ NoPassswordMatch: true });\r\n }\r\n }\r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.IBIform.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.readFormValues(abstractControl);\r\n }\r\n else {\r\n this.ibiDetails[key] = abstractControl.value;\r\n }\r\n });\r\n }\r\n\r\n public saveHandler(product: FilingDetails): void {\r\n if (product) {\r\n product.receiptDate = product.receiptDate ? new Date(product.receiptDate) : null;\r\n product.validFrom=product.validFrom?new Date(product.validFrom):null;\r\n product.validTo=product.validTo?new Date(product.validTo):null;\r\n\r\n }\r\n \r\n if(this.isNew){\r\n this.view.splice(0, 0, product);\r\n this.modifiedRecords.push(product);\r\n }\r\n else{\r\n Object.assign(\r\n this.view.find(({ fileHistoryID }) => fileHistoryID === product.fileHistoryID),\r\n product\r\n );\r\n\r\n if (this.modifiedRecords.find(({ fileHistoryID }) => fileHistoryID === product.fileHistoryID)) {\r\n Object.assign(\r\n this.modifiedRecords.find(({ fileHistoryID }) => fileHistoryID === product.fileHistoryID),\r\n product\r\n );\r\n }\r\n else {\r\n this.modifiedRecords.push(product);\r\n }\r\n }\r\n\r\n this.editDataItem = undefined;\r\n this.isNew = false;\r\n this.loadItems();\r\n }\r\n\r\n saveIndividualBioInfo() {\r\n this.isPageReady = false;\r\n this.logValidationErrors();\r\n this.isPageReady = true;\r\n\r\n this.readFormValues(this.IBIform);\r\n if (this.ibiDetails.dualCitizenship) {\r\n this.ibiDetails.secondCitizenship = this.citizenships?.toString();\r\n }\r\n\r\n this.ibiDetails.fileHistoryReport = this.modifiedRecords;\r\n this.ibiDetails.fileHistoryReport.forEach(\r\n item => {\r\n item.caseId = \"0\"\r\n }\r\n )\r\n if (this.ibiDetails.dateTo < this.ibiDetails.dateFrom) {\r\n this.notifier.notify('error', 'Date From value must be less than Date To value. Please check.');\r\n return false;\r\n }\r\n\r\n if (this.IBIform.valid) {\r\n\r\n if (this.ibiDetails.notes) {\r\n this.ibiDetails.notes = this.encodeHTMLEntities(this.ibiDetails.notes);\r\n }\r\n if (this.ibiDetails.dateFrom == null) {\r\n this.dateFrom = null;\r\n }\r\n else {\r\n this.dateFrom = this.ibiDetails.dateFrom.toDateString();\r\n }\r\n if (this.ibiDetails.dateTo == null) {\r\n this.dateTo = null;\r\n }\r\n else {\r\n this.dateTo = this.ibiDetails.dateTo.toDateString();\r\n }\r\n if (this.ibiDetails.ped == null) {\r\n this.ped = null;\r\n }\r\n else {\r\n this.ped = this.ibiDetails.ped.toDateString();\r\n }\r\n if (this.ibiDetails.i94ExpDate == null) {\r\n this.i94ExpDate = null;\r\n }\r\n else {\r\n this.i94ExpDate = this.ibiDetails.i94ExpDate.toDateString();\r\n }\r\n if (this.ibiDetails.visaExpDate == null) {\r\n this.visaExpDate = null;\r\n }\r\n else {\r\n this.visaExpDate = this.ibiDetails.visaExpDate.toDateString();\r\n }\r\n if (this.ibiDetails.visaExpDate == null) {\r\n this.visaExpDate = null;\r\n }\r\n else {\r\n this.visaExpDate = this.ibiDetails.visaExpDate.toDateString();\r\n }\r\n if (this.ibiDetails.h1L1statusStartDate == null) {\r\n this.h1L1statusStartDate = null;\r\n }\r\n else {\r\n this.h1L1statusStartDate = this.ibiDetails.h1L1statusStartDate.toDateString();\r\n }\r\n if (this.ibiDetails.h1L1statusStartDate == null) {\r\n this.h1L1statusStartDate = null;\r\n }\r\n else {\r\n this.h1L1statusStartDate = this.ibiDetails.h1L1statusStartDate.toDateString();\r\n }\r\n if (this.ibiDetails.h1L1statusToDate == null) {\r\n this.h1L1statusToDate = null;\r\n }\r\n else {\r\n this.h1L1statusToDate = this.ibiDetails.h1L1statusToDate.toDateString();\r\n }\r\n this._dafService.saveIndividualBioInfo(this.ibiDetails, this.ped, this.i94ExpDate, this.visaExpDate, this.h1L1statusStartDate, this.h1L1statusToDate, this.dateFrom, this.dateTo).toPromise().then(() => {\r\n this._dafService.disableEnableAllFormControls(this.IBIform, [], true);\r\n \r\n this.isEditEnabled = false;\r\n this.isUnlocked = false;\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Biographical Information details have been saved successfully');\r\n }).catch((err)=>{\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n }\r\n else {\r\n this.notifier.notify('error', 'Please fill all mandatory fields');\r\n }\r\n }\r\n\r\n handleChange(event) {\r\n let priorTime = this.formControls['priorH1L1Time'].value;\r\n if (priorTime) {\r\n this.IBIform.get(\"ped\").setValidators(Validators.required);\r\n this.IBIform.get(\"ped\").updateValueAndValidity();\r\n }\r\n else {\r\n this.IBIform.get(\"ped\").setValidators(null);\r\n this.IBIform.get(\"ped\").updateValueAndValidity();\r\n }\r\n }\r\n\r\n handleJ1StatusChange(event) {\r\n let j1Status = this.formControls['priorJ1'].value;\r\n if (j1Status) {\r\n this.IBIform.get(\"dateFrom\").setValidators(Validators.required);\r\n this.IBIform.get(\"dateTo\").setValidators(Validators.required);\r\n this.IBIform.get(\"subjectTo212\").setValidators(Validators.required);\r\n }\r\n else {\r\n this.IBIform.get(\"dateFrom\").setValidators(null);\r\n this.IBIform.get(\"dateTo\").setValidators(null);\r\n this.IBIform.get(\"subjectTo212\").setValidators(null);\r\n }\r\n this.IBIform.get(\"dateFrom\").updateValueAndValidity();\r\n this.IBIform.get(\"dateTo\").updateValueAndValidity();\r\n this.IBIform.get(\"subjectTo212\").updateValueAndValidity();\r\n }\r\n\r\n public setDependentIndexToDelete(args: any) {\r\n this.isDeleteClicked = true;\r\n this.deleteRow = args;\r\n this.deleteIndex = args.rowIndex;\r\n this.showDialog = true;\r\n }\r\n \r\n public deleteDependent() {\r\n this.view.splice(this.deleteIndex, 1);\r\n this.deleteRow.dataItem.changeType = \"DELETE\";\r\n this.modifiedRecords.push(this.deleteRow.dataItem);\r\n this.loadItems();\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDelete() {\r\n this.showDialog = false;\r\n }\r\n\r\n public onDialogClose() {\r\n this.showDialog = false;\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n if (text) {\r\n escapeQuotes = text.replace(/['\"()]/g, escape);\r\n }\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n if (text) {\r\n unescapeQuotes = text.replace(\"%27\", unescape);\r\n unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%28\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%29\", unescape);\r\n }\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n}\r\n\r\n\r\n","import { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { NotificationService } from '@progress/kendo-angular-notification';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { jobDetailsWizardInfo } from 'src/app/DAF/Models/jobDetailsWizardInfo';\r\nimport { jobTitleWizards } from 'src/app/DAF/Models/jobTitleWizards';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { ActionsLayout } from \"@progress/kendo-angular-dialog\";\r\n\r\n\r\n@Component({\r\n selector: 'app-job-details-wizard',\r\n templateUrl: './job-details-wizard.component.html',\r\n styleUrls: ['./job-details-wizard.component.scss']\r\n})\r\nexport class JobDetailsWizardComponent implements OnChanges {\r\n public emailForm: FormGroup;\r\n\r\n public isReady=false;\r\n public WorkSite=\"Job Details Wizard\";\r\n private hideAfter = 2000;\r\n public WorkSiteDetails: any = [];\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n public dateDifference=0;\r\n private notifier: NotifierService;\r\n public primaryworksiteInfo:jobTitleWizards[]=[];\r\n public view: Array = [];\r\n public pageSize = 5;\r\n public actionsLayout: ActionsLayout = \"normal\";\r\n public skip = 0;\r\n jobDetails: jobDetailsWizardInfo = new jobDetailsWizardInfo();\r\n public gridView: GridDataResult;\r\n public active: boolean = false;\r\n @Input() caseSummaryId = 0;\r\n\r\n @Output() cancel = new EventEmitter();\r\n\r\n\r\n\r\n\r\n constructor(private formBuilder: FormBuilder,@Inject(NotificationService) private notificationService: NotificationService, private _dafService: DafService,notifier: NotifierService) \r\n { \r\n this.notifier = notifier; \r\n }\r\n\r\n\r\n ngOnChanges(): void {\r\n this.getJobTitleInformation();\r\n this.getjobTitleInfos();\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n\r\n getJobTitleInformation(){\r\n this.isReady = false;\r\n this._dafService.getJobTitleInformation(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.primaryworksiteInfo = data;\r\n this.jobDetails = new jobDetailsWizardInfo(data);\r\n this.initializeForm();\r\n },\r\n (error) => {\r\n console.log(error)\r\n }\r\n );\r\n }\r\n\r\n getjobTitleInfos(){\r\n this.isReady = false;\r\n this._dafService.getjobTitleInfos(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.primaryworksiteInfo = data;\r\n this.view = this.primaryworksiteInfo;\r\n\r\n this.loadItems();\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isReady = true;\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n \r\n\r\n public closeForm(): void {\r\n this.cancel.emit(\"Close\");\r\n}\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n initializeForm() {\r\n try {\r\n this.emailForm = this.formBuilder.group({\r\n jobTitleWizardSaveID: new FormControl(this.jobDetails.jobTitleWizardSaveID),\r\n jobTitle: new FormControl( this.jobDetails.jobTitle),\r\n salaryOffered: new FormControl( this.jobDetails.salaryOffered),\r\n jobDetails: new FormControl( this.jobDetails.jobDetails),\r\n jobRequirements: new FormControl( this.jobDetails.jobRequirements),\r\n caseId: new FormControl(this.jobDetails.caseId),\r\n caseSummaryId: new FormControl(this.jobDetails.caseSummaryId)\r\n });\r\n //this.isReady = true;\r\n this.active = true;\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.emailForm.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.readFormValues(abstractControl);\r\n }\r\n else {\r\n this.jobDetails[key] = abstractControl.value;\r\n }\r\n });\r\n }\r\n\r\n\r\n saveJobDetailsInfo(){\r\n this.isReady = false;\r\n\r\n this.readFormValues(this.emailForm);\r\n if(this.emailForm.valid){\r\n this._dafService.saveJobDetailsWizard(this.jobDetails,this.caseSummaryId).toPromise().then(()=>{\r\n this.isReady = true;\r\n this.notifier.notify('success', 'JobTitle Wizard Information have been saved successfully');\r\n this.cancel.emit(\"Close\");\r\n }).catch((err)=>{\r\n this.notifier.notify('error', 'Operation Failed');\r\n this.cancel.emit(\"Close\");\r\n });\r\n }\r\n }\r\n\r\n onAddressAdd(){\r\n this.cancel.emit(\"Address\");\r\n }\r\n\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n}\r\n\r\n\r\n\r\n \r\n\r\n invalidMessage(){\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { h1BFilingType, jobPositionDetails } from 'src/app/DAF/Models/JobPositionDetails';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-job-position-assessment',\r\n templateUrl: './job-position-assessment.component.html',\r\n styleUrls: ['./job-position-assessment.component.scss']\r\n})\r\nexport class JobPositionAssessmentComponent implements OnInit {\r\n\r\n jobPositionForm: FormGroup;\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n radiobasisValues: Array = [{ value: 1, text: \"New\" }, { value: 2, text: \"Continuation\" }, { value: 3, text: \"Change\" }, { value: 4, text: \"Concurrent\" }, { value: 5, text: \"COE\" }, { value: 6, text: \"Amendment\" }];\r\n caseId: number;\r\n jobPositionDetails: jobPositionDetails;\r\n public isPageReady = true;\r\n isEditEnabled: boolean;\r\n basisOfClassification: any = [];\r\n requestedAction: any = [];\r\n h1b1Types: any = [];\r\n classifications: any = [];\r\n @Input() caseSummaryId = 0;\r\n private notifier: NotifierService;\r\n private salaryFrom: number;\r\n private salaryTo: number;\r\n public isActivate=false;\r\n public isActivateAddress=false;\r\n public isActivateLca=false;\r\n i129FromDate: any;\r\n i129ToDate: any;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private _dafService: DafService, notifier: NotifierService) { this.notifier = notifier; }\r\n\r\n optionalFormControls = [\"basisOfClassification\",\"requestedAction\",\"h1BFilingType\",\"signatoryTelephone\"];\r\n formErrors = {\r\n 'basisOfClassification': '',\r\n 'requestedAction': '',\r\n 'h1BFilingType': '',\r\n 'reasonForExcemption': '',\r\n 'caseType': '',\r\n 'jobTitle': '',\r\n 'jobDetails': '',\r\n 'jobRequirements': '',\r\n 'i129FromDate': '',\r\n 'i129ToDate': '',\r\n 'actualSalary': '',\r\n 'isInSalaryRange': '',\r\n 'salaryRangeFrom': '',\r\n 'salaryRangeTo': '',\r\n 'Isbasis':''\r\n };\r\n \r\n validationMessages = {\r\n 'jobTitle': {\r\n 'required': 'Job Title is required.',\r\n },\r\n 'caseType': { \r\n 'required': 'Case Type is required.', \r\n },\r\n 'salaryRangeFrom': { \r\n 'required': 'Salary From Range is required.', \r\n },\r\n 'salaryRangeTo': { \r\n 'required': 'Salary To Range is required.', \r\n }\r\n };\r\n\r\n ngOnInit() {\r\n this.getJobPositionDetails();\r\n }\r\n\r\n addDynamicControls(): void {\r\n this.basisOfClassification.forEach(key => {\r\n console.log(key);\r\n (this.jobPositionForm.get('basisOfClassification') as FormGroup).addControl(key.shortForm, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n\r\n this.requestedAction.forEach(key => {\r\n console.log(key);\r\n (this.jobPositionForm.get('requestedAction') as FormGroup).addControl(key.requestedActionType, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n\r\n this.h1b1Types.forEach(key => {\r\n console.log(key);\r\n (this.jobPositionForm.get('h1BFilingType') as FormGroup).addControl(key.h1BFilingType, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n\r\n }\r\n OnbasicClassificationchekced(classtype) {\r\n \r\n this.classifications = [\"Continuation\", \"Change\", \"Concurrent\", \"COE\",\"Amendment\"];\r\n var arraycontains = (this.classifications.indexOf(classtype) > -1);\r\n if (arraycontains) {\r\n\r\n for (let i = 0; i < this.h1b1Types.length; i++) {\r\n\r\n this.formControls['h1BFilingType'].get('CAP Exempt').setValue(true);\r\n }\r\n }\r\n else {\r\n this.formControls['h1BFilingType'].get('CAP Exempt').setValue(false);\r\n }\r\n\r\n\r\n }\r\n getJobPositionDetails() {\r\n this.isPageReady = false;\r\n this._dafService.getJobPositionDetailsByCaseSummaryId(this.caseSummaryId).toPromise().then((data: any) => {\r\n //alert(data.jobPositionDetails.Isbasis);\r\n this.jobPositionDetails = data;\r\n //this.jobPositionDetails.Isbasis = data.jobPositionDetails.Isbasis;\r\n this.basisOfClassification = this.jobPositionDetails.basisOfClassification;\r\n this.h1b1Types = this.jobPositionDetails.h1BFilingType;\r\n this.requestedAction = this.jobPositionDetails.requestedAction;\r\n console.log(this.jobPositionDetails);\r\n console.log(this.basisOfClassification);\r\n console.log(data);\r\n this.initializeForm();\r\n this.addDynamicControls();\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n public cancelHandler(event): void {\r\n if(event==\"Address\"){\r\n this.isActivate=false;\r\n\r\n\r\n }\r\n else if(event==\"Lca\"){\r\n this.isActivateAddress=false;\r\n\r\n }\r\n else{\r\n this.isActivateAddress=false;\r\n this.isActivate=false; \r\n this.isActivateLca=false;\r\n }\r\n }\r\n\r\n openWizard(value){\r\n if(value==1){\r\n this.isActivate=true;\r\n this.isActivateAddress=false;\r\n this.isActivateLca=false;\r\n }\r\n else if (value==2){\r\n this.isActivate=false;\r\n this.isActivateAddress=true;\r\n this.isActivateLca=false;\r\n }\r\n else if (value==3){\r\n this.isActivate=false;\r\n this.isActivateAddress=false;\r\n this.isActivateLca=true;\r\n }\r\n }\r\n\r\n\r\n initializeForm() {\r\n let decodedNotes = this.decodeHTMLEntities(this.jobPositionDetails.jobPositionNotes);\r\n let decodedJobDetails = this.decodeHTMLEntities(this.jobPositionDetails.jobDetails);\r\n let decodedJobReq = this.decodeHTMLEntities(this.jobPositionDetails.jobRequirements);\r\n let decodedJobTitle = this.decodeHTMLEntities(this.jobPositionDetails.jobTitle);\r\n try {\r\n this.jobPositionForm = this.formBuilder.group({\r\n basisOfClassification: this.formBuilder.group({}),\r\n requestedAction: this.formBuilder.group({}),\r\n h1BFilingType: this.formBuilder.group({}),\r\n reasonForExcemption: this.formBuilder.group({}),\r\n caseType: new FormControl({ value: this.jobPositionDetails.caseType, disabled: true }, Validators.required),\r\n jobTitle: new FormControl({ value: decodedJobTitle, disabled: true }, Validators.required),\r\n jobDetails: new FormControl({ value: decodedJobDetails, disabled: true }),\r\n jobRequirements: new FormControl({ value: decodedJobReq, disabled: true }),\r\n i129FromDate: new FormControl({ value: this.jobPositionDetails.i129FromDate ? new Date(this.jobPositionDetails.i129FromDate) :null, disabled: true }),\r\n i129ToDate: new FormControl({ value: this.jobPositionDetails.i129ToDate == null ? null : new Date(this.jobPositionDetails.i129ToDate), disabled: true }),\r\n actualSalary: new FormControl({ value: this.jobPositionDetails.actualSalary, disabled: true }),\r\n isInSalaryRange: new FormControl({ value: this.jobPositionDetails.isInSalaryRange, disabled: true }),\r\n isbasis: new FormControl({ value: this.jobPositionDetails.isbasis, disabled: true }),\r\n salaryRangeFrom: new FormControl({ value: this.jobPositionDetails.salaryRangeFrom, disabled: true }),\r\n salaryRangeTo: new FormControl({ value: this.jobPositionDetails.salaryRangeTo, disabled: true }),\r\n jobPositionNotes: new FormControl({ value: decodedNotes, disabled: true }),\r\n\r\n });\r\n this.isPageReady = true;\r\n this.subscribeToFormControlValueChange();\r\n this.jobPositionForm.valueChanges.subscribe((val=>{\r\n this.logOnChangeValidationErrors();\r\n }));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n enableEdit() {\r\n try {\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.jobPositionForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], false);\r\n\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n resetForm() {\r\n try {\r\n this.getJobPositionDetails();\r\n this.isEditEnabled = false;\r\n this._dafService.disableEnableAllFormControls(this.jobPositionForm, [], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n resetFormData() {\r\n this.isPageReady = false;\r\n this.getJobPositionDetails();\r\n this.initializeForm();\r\n }\r\n\r\n public saveCaseSummaryData() {\r\n this.logValidationErrors();\r\n this.readFormValues(this.jobPositionForm);\r\n if (this.jobPositionForm.valid) {\r\n //alert(this.jobPositionForm.controls[\"Isbasis\"].value);\r\n this.jobPositionDetails.isbasis = this.jobPositionForm.controls[\"isbasis\"].value;\r\n this.jobPositionDetails.jobPositionNotes = this.jobPositionDetails.jobPositionNotes ? this.encodeHTMLEntities(this.jobPositionDetails.jobPositionNotes) : null;\r\n this.jobPositionDetails.jobDetails = this.jobPositionDetails.jobDetails ? this.encodeHTMLEntities(this.jobPositionDetails.jobDetails) : null;\r\n this.jobPositionDetails.jobRequirements = this.jobPositionDetails.jobRequirements ? this.encodeHTMLEntities(this.jobPositionDetails.jobRequirements) : null;\r\n this.jobPositionDetails.jobTitle = this.jobPositionDetails.jobTitle ? this.encodeHTMLEntities(this.jobPositionDetails.jobTitle) : null;\r\n\r\n if (this.jobPositionDetails.i129FromDate == null) {\r\n this.i129FromDate = null;\r\n }\r\n else {\r\n this.i129FromDate = this.jobPositionDetails.i129FromDate.toDateString();\r\n }\r\n\r\n if (this.jobPositionDetails.i129ToDate == null) {\r\n this.i129ToDate = null;\r\n }\r\n else {\r\n this.i129ToDate = this.jobPositionDetails.i129ToDate.toDateString();\r\n }\r\n if (this.validateJobPositionData(this.jobPositionDetails) === true) {\r\n this.isPageReady = false;\r\n this._dafService.saveJobPositionDetails(this.caseSummaryId, this.i129FromDate, this.i129ToDate, this.jobPositionDetails).toPromise().then(() => {\r\n this._dafService.disableEnableAllFormControls(this.jobPositionForm, [], true);\r\n this.getJobPositionDetails();\r\n this.isEditEnabled = false;\r\n // this.isUnlocked = false;\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Job position details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n this.isPageReady = true;\r\n });\r\n }\r\n }\r\n }\r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.jobPositionForm.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.getDynamicControlValue(abstractControl, key);\r\n }\r\n else {\r\n this.jobPositionDetails[key] = abstractControl.value;\r\n }\r\n });\r\n }\r\n\r\n private getDynamicControlValue(formGroup: FormGroup, childFormGroup: string) {\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n console.log(abstractControl); \r\n if(childFormGroup === 'basisOfClassification'){\r\n this.jobPositionDetails.basisOfClassification.filter(p=>p.shortForm == key)[0].isSelected = abstractControl.value;\r\n }\r\n else if(childFormGroup === 'requestedAction'){\r\n this.jobPositionDetails.requestedAction.filter(p=>p.requestedActionType == key)[0].isSelected = abstractControl.value;\r\n }\r\n else if(childFormGroup === 'h1BFilingType'){\r\n this.jobPositionDetails.h1BFilingType.filter(p=>p.h1BFilingType == key)[0].isSelected = abstractControl.value;\r\n }\r\n });\r\n\r\n }\r\n\r\n private validateJobPositionData(jobPositionDetails: jobPositionDetails) {\r\n let isValidationSuccess = true;\r\n if (jobPositionDetails.i129ToDate < jobPositionDetails.i129FromDate) {\r\n this.notifier.notify('error', 'I-129 from date cannot be less than to date');\r\n isValidationSuccess = false;\r\n }\r\n else if (jobPositionDetails.isInSalaryRange === true) {\r\n if (jobPositionDetails.salaryRangeTo < jobPositionDetails.salaryRangeFrom) {\r\n this.notifier.notify('error', 'Salary range to cannot be less than salary range from');\r\n isValidationSuccess = false;\r\n }\r\n else if ((jobPositionDetails.actualSalary > jobPositionDetails.salaryRangeTo) ||\r\n (jobPositionDetails.actualSalary < jobPositionDetails.salaryRangeFrom)) {\r\n this.notifier.notify('error', 'Actual salary should be in between salary from range and salary to range');\r\n isValidationSuccess = false;\r\n }\r\n\r\n }\r\n\r\n return isValidationSuccess;\r\n }\r\n\r\n get formControls() {\r\n return this.jobPositionForm.controls;\r\n }\r\n\r\n private subscribeToFormControlValueChange() {\r\n this.jobPositionForm.get(\"isInSalaryRange\").valueChanges.subscribe(isSalaryRange => {\r\n if (isSalaryRange) {\r\n this._dafService.disableEnableFormControl(this.jobPositionForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], false);\r\n if (this.salaryFrom > 0) {\r\n this.formControls['salaryRangeFrom'].setValue(this.salaryFrom);\r\n }\r\n if (this.salaryTo > 0) {\r\n this.formControls['salaryRangeTo'].setValue(this.salaryTo);\r\n }\r\n this.formControls['salaryRangeFrom'].setValidators([Validators.required, Validators.nullValidator]);\r\n this.formControls['salaryRangeTo'].setValidators([Validators.required, Validators.nullValidator]);\r\n this.jobPositionForm.updateValueAndValidity();\r\n } else {\r\n\r\n this._dafService.disableEnableFormControl(this.jobPositionForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], true);\r\n this.salaryFrom = this.formControls['salaryRangeFrom'].value;\r\n this.salaryTo = this.formControls['salaryRangeTo'].value;\r\n this.formControls['salaryRangeFrom'].setValue(null);\r\n this.formControls['salaryRangeTo'].setValue(null);\r\n this.formControls[\"salaryRangeFrom\"].clearValidators();\r\n this.formControls[\"salaryRangeTo\"].clearValidators();\r\n this.jobPositionForm.updateValueAndValidity();\r\n }\r\n });\r\n }\r\n\r\n logValidationErrors(group: FormGroup = this.jobPositionForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.jobPositionForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n if (text) {\r\n escapeQuotes = text.replace(/['\"()]/g, escape);\r\n }\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n if (text) {\r\n unescapeQuotes = text.replace(\"%27\", unescape);\r\n unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%28\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%29\", unescape);\r\n }\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { checklistItems } from 'src/app/DAF/Models/DocuentChecklist';\r\n\r\n@Component({\r\n selector: 'kendo-grid-checklistedit-form',\r\n templateUrl: './kendo-grid-checklistedit-form.component.html',\r\n styleUrls: ['./kendo-grid-checklistedit-form.component.scss'],\r\n styles: [\r\n `\r\n input[type='text'] {\r\n width: 100%;\r\n }\r\n .k-inline-checkbox {\r\n display: inline-flex;\r\n }\r\n `\r\n]\r\n})\r\nexport class KendoGridChecklistEditFormComponent {\r\n\r\n public active = false;\r\n private notifier: NotifierService;\r\n classifications: any = [];\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n public relationTypeList = [\r\n {\r\n relationId: 0,\r\n relationType: '-Select-'\r\n },\r\n {\r\n relationId: 1,\r\n relationType: 'Father'\r\n },\r\n {\r\n relationId: 2,\r\n relationType: 'Mother'\r\n },\r\n {\r\n relationId: 3,\r\n relationType: 'Spouse'\r\n }\r\n ];\r\n public editForm: FormGroup = new FormGroup({\r\n documentName: new FormControl('', Validators.required),\r\n individual: new FormControl('', Validators.required),\r\n relation: new FormControl(''),\r\n recievedDrafted: new FormControl(false),\r\n requestDraft: new FormControl(false),\r\n na: new FormControl(false),\r\n notes: new FormControl(''),\r\n documentChecklistDetailId: new FormControl(0),\r\n });\r\n\r\n \r\n\r\n @Input() public isNew = false;\r\n\r\n @Input() public set model(product: checklistItems) {\r\n this.editForm.reset(product);\r\n this.IsCheckedDraft = product.requestDraft;\r\n this.IsCheckedNa = product.na;\r\n this.IsrecievedDrafted = product.recievedDrafted;\r\n\r\n // toggle the Dialog visibility\r\n this.active = product !== undefined;\r\n }\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() save: EventEmitter = new EventEmitter();\r\n\r\n constructor(notifier: NotifierService) {this.notifier = notifier;}\r\n\r\n IsCheckedDraft: boolean;\r\n IsCheckedNa: boolean;\r\n IsrecievedDrafted: boolean;\r\n \r\n public onChange(event: Event): void {\r\n const isChecked: boolean = event.target['checked']; \r\n \r\n if (isChecked) {\r\n this.IsCheckedNa = false;\r\n this.IsCheckedDraft = false;\r\n }\r\n \r\n }\r\n public onChangereq(event: Event): void {\r\n const isChecked: boolean = event.target['checked']; \r\n\r\n if (isChecked) {\r\n this.IsCheckedNa = false;\r\n this.IsrecievedDrafted = false;\r\n }\r\n\r\n }\r\n public onChangena(event: Event): void {\r\n const isChecked: boolean = event.target['checked']; \r\n\r\n if (isChecked) {\r\n this.IsCheckedDraft = false;\r\n this.IsrecievedDrafted = false;\r\n }\r\n\r\n }\r\n public onSave(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.save.emit(this.editForm.value);\r\n this.active = false;\r\n this.IsCheckedDraft = false;\r\n this.IsCheckedNa = false;\r\n this.IsrecievedDrafted = false;\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n\r\n public closeForm(): void {\r\n this.IsCheckedDraft = false;\r\n this.IsCheckedNa = false;\r\n this.IsrecievedDrafted = false;\r\n this.active = false;\r\n this.cancel.emit();\r\n\r\n }\r\n \r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { relationDetail } from 'src/app/DAF/Models/SpouseAndDependentDetails';\r\n\r\n@Component({\r\n selector: 'kendo-grid-edit-form',\r\n templateUrl: './kendo-grid-edit-form.component.html',\r\n styleUrls: ['./kendo-grid-edit-form.component.scss'],\r\n styles: [\r\n `\r\n input[type='text'] {\r\n width: 100%;\r\n }\r\n .k-inline-checkbox {\r\n display: inline-flex;\r\n }\r\n `\r\n]\r\n})\r\nexport class KendoGridEditFormComponent {\r\n\r\n public active = false;\r\n private notifier: NotifierService;\r\n public relationTypeList = [\r\n {\r\n relationId: 1,\r\n relationType: 'Dependents'\r\n },\r\n {\r\n relationId: 2,\r\n relationType: 'Spouse'\r\n }\r\n ];\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n\r\n public editForm: FormGroup = new FormGroup({\r\n relationId: new FormControl(0, Validators.required),\r\n firstName: new FormControl('', Validators.required),\r\n middleName: new FormControl(''),\r\n lastName: new FormControl(''),\r\n isSpouseEmployedFollowingLatestEntry: new FormControl(false),\r\n i539Required: new FormControl(false),\r\n i765Required: new FormControl(false),\r\n i131Required: new FormControl(false),\r\n spouseDepAppID: new FormControl(0),\r\n });\r\n\r\n \r\n\r\n @Input() public isNew = false;\r\n @Input() public isSpouse = false;\r\n\r\n @Input() public set model(product: relationDetail) {\r\n this.editForm.reset(product);\r\n\r\n // toggle the Dialog visibility\r\n this.active = product !== undefined;\r\n }\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() save: EventEmitter = new EventEmitter();\r\n\r\n constructor(notifier: NotifierService) {this.notifier = notifier;}\r\n\r\n public onSave(e: PointerEvent): void {\r\n e.preventDefault();\r\n if(this.isSpouse&&this.editForm.controls.relationId.value==3){\r\n this.notifier.notify('error', 'Spouse Can only be selected Once');\r\n }\r\n else{\r\n this.save.emit(this.editForm.value);\r\n this.active = false;\r\n }\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { checklistItems } from 'src/app/DAF/Models/DocuentChecklist';\r\nimport { EditFilingDetails } from 'src/app/DAF/Models/filingdetails';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-kendo-grid-filing-detail',\r\n templateUrl: './kendo-grid-filing-detail.component.html',\r\n styleUrls: ['./kendo-grid-filing-detail.component.scss'],\r\n styles: [\r\n `\r\n input[type='text'] {\r\n width: 100%;\r\n }\r\n .k-inline-checkbox {\r\n display: inline-flex;\r\n }\r\n `\r\n]\r\n})\r\nexport class KendoGridFilingDetailComponent implements OnInit {\r\n\r\n public active = false;\r\n private notifier: NotifierService;\r\n degrees=[\"Associate\",\"Bachelor\",\"Master\",\"Doctorate\"];\r\n\r\n allowCustom=true;\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n public relationTypeList = [\r\n {\r\n relationId: 0,\r\n relationType: '-Select-'\r\n },\r\n {\r\n relationId: 1,\r\n relationType: 'Father'\r\n },\r\n {\r\n relationId: 2,\r\n relationType: 'Mother'\r\n },\r\n {\r\n relationId: 3,\r\n relationType: 'Spouse'\r\n }\r\n ];\r\n public editForm: FormGroup = new FormGroup({\r\n formType: new FormControl('', Validators.required),\r\n classification: new FormControl('', Validators.required),\r\n rn: new FormControl(''),\r\n receiptDate: new FormControl(null),\r\n validFrom: new FormControl(null),\r\n validTo: new FormControl(null),\r\n status: new FormControl(''),\r\n isFiledByPetitioner: new FormControl(false),\r\n changeType: new FormControl(''),\r\n fileHistoryID: new FormControl(0),\r\n });\r\n\r\n \r\n\r\n @Input() public isNew = false;\r\n\r\n @Input() public set model(product: EditFilingDetails) {\r\n this.editForm.reset(product);\r\n // toggle the Dialog visibility\r\n this.active = product !== undefined;\r\n }\r\n countrySourceList: Array = [];\r\n CountryList: Array = [];\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() save: EventEmitter = new EventEmitter();\r\n\r\n constructor(notifier: NotifierService,private _dafService: DafService) {this.notifier = notifier;}\r\n\r\n ngOnInit(){\r\n this.getCountryList();\r\n }\r\n public onSave(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.editForm.value\r\n let validFrom = this.editForm.value.validFrom ? new Date(this.editForm.value.validFrom) : null;\r\n let validTo = this.editForm.value.validTo ? new Date(this.editForm.value.validTo) : null;\r\n if (validFrom && validTo && (validTo < validFrom)) {\r\n this.notifier.notify('error', 'Valid From value must be less than Valid To value. Please check.');\r\n return;\r\n }\r\n this.save.emit(this.editForm.value);\r\n this.active = false;\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n public ngOnChanges() {\r\n let changeType = \"UPDATE\";\r\n if (this.isNew)\r\n changeType = \"INSERT\"\r\n this.editForm.controls[\"changeType\"].setValue(changeType);\r\n }\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n countryFilterChange(filter: any) {\r\n try {\r\n if (filter.length > 2) {\r\n this.CountryList = this.countrySourceList.filter(x => x.countryName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n finally {\r\n \r\n }\r\n }\r\n\r\n getCountryList(){\r\n this._dafService.getCountriesCitizenship().subscribe((data: any) => {\r\n this.CountryList = data;\r\n this.countrySourceList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { checklistItems } from 'src/app/DAF/Models/DocuentChecklist';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'kendo-grid-specialist-form',\r\n templateUrl: './kendo-grid-specialist-form.component.html',\r\n styleUrls: ['./kendo-grid-specialist-form.component.scss'],\r\n styles: [\r\n `\r\n input[type='text'] {\r\n width: 100%;\r\n }\r\n .k-inline-checkbox {\r\n display: inline-flex;\r\n }\r\n `\r\n]\r\n})\r\nexport class KendoGridSpecialistFormComponent implements OnInit {\r\n\r\n public active = false;\r\n private notifier: NotifierService;\r\n degrees=[\"Associate\",\"Bachelor\",\"Master\",\"Doctorate\"];\r\n\r\n allowCustom=true;\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n public relationTypeList = [\r\n {\r\n relationId: 0,\r\n relationType: '-Select-'\r\n },\r\n {\r\n relationId: 1,\r\n relationType: 'Father'\r\n },\r\n {\r\n relationId: 2,\r\n relationType: 'Mother'\r\n },\r\n {\r\n relationId: 3,\r\n relationType: 'Spouse'\r\n }\r\n ];\r\n \r\n @Input() public isNew = false;\r\n\r\n @Input() public set model(product: checklistItems) {\r\n this.editForm.reset(product);\r\n\r\n // toggle the Dialog visibility\r\n this.active = product !== undefined;\r\n }\r\n countrySourceList: Array = [];\r\n CountryList: Array = [];\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() save: EventEmitter = new EventEmitter();\r\n\r\n constructor(notifier: NotifierService,private _dafService: DafService) {this.notifier = notifier;}\r\n\r\n ngOnInit(){\r\n this.getCountryList();\r\n }\r\n public onSave(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.save.emit(this.editForm.value);\r\n this.active = false;\r\n\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n public ngOnChanges() {\r\n let changeType = \"UPDATE\";\r\n if (this.isNew)\r\n changeType = \"INSERT\";\r\n\r\n this.editForm.controls[\"changeType\"].setValue(changeType);\r\n }\r\n\r\n public editForm: FormGroup = new FormGroup({\r\n universityName: new FormControl('', Validators.required),\r\n degree: new FormControl('', Validators.required),\r\n degreeField: new FormControl(''),\r\n enrollFrom: new FormControl(null),\r\n enrollTo: new FormControl(null),\r\n awardDate: new FormControl(null),\r\n degissuingCountry: new FormControl(''),\r\n degreesOnFile: new FormControl(false),\r\n spedegassmtId: new FormControl(0),\r\n changeType: new FormControl('')\r\n });\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n countryFilterChange(filter: any) {\r\n try {\r\n this.CountryList = this.countrySourceList.filter(x => x.countryName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n finally {\r\n \r\n }\r\n }\r\n\r\n getCountryList(){\r\n this._dafService.getCountriesCitizenship().subscribe((data: any) => {\r\n this.CountryList = data;\r\n this.countrySourceList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { basisOfClassification, lcaAssessmentDetails, wageLevel, worksiteAddressModal } from 'src/app/DAF/Models/LCAAssessmentDetails';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AddEvent, CreateFormGroupArgs, GridComponent, GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { addressWizardInfos } from 'src/app/DAF/Models/addressWizardInfos';\r\n\r\n@Component({\r\n selector: 'app-lca-assessment',\r\n templateUrl: './lca-assessment.component.html',\r\n styleUrls: ['./lca-assessment.component.scss']\r\n})\r\nexport class LcaAssessmentComponent implements OnInit {\r\n\r\n @Input() caseSummaryId = 0;\r\n lcaAssessmentForm: FormGroup;\r\n public isPageReady = true;\r\n private lcaAssessmentDetails: lcaAssessmentDetails = new lcaAssessmentDetails();\r\n basisOfClassification: Array = [];\r\n wageLevel: any = [];\r\n additionalLCAType: Array = [];\r\n isEditEnabled: boolean;\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n radiobasisValues: Array = [{ value: 1, text: \"New\" }, { value: 2, text: \"Continuation\" }, { value: 3, text: \"Change\" }, { value: 4, text: \"Concurrent\" }, { value: 5, text: \"COE\" }, { value: 6, text: \"Amendment\" }];\r\n onetocsSDetails: any;\r\n onetocsSTitle: any;\r\n onetocsSCode: any;\r\n statesList: any;\r\n stateMaster: any;\r\n zipCodeList: any;\r\n zipCodeMaster: any;\r\n additionalLCAONETOCSSTitle: any;\r\n additionalLCAONETOCSSCode: any;\r\n private salaryFrom: number;\r\n private salaryTo: number;\r\n private notifier: NotifierService;\r\n public formGroup: FormGroup;\r\n public isGridEditable: boolean;\r\n showDialog: boolean = false;\r\n deleteIndex: number;\r\n addressInfo = [];\r\n public view = [];\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n public addressDetails = [];\r\n public dotCodeList = [];\r\n //public editDataItem: addressWizardInfos;\r\n public editDataItem : worksiteAddressModal;\r\n private isNew: boolean;\r\n private editedRowIndex: number;\r\n private grid: GridComponent;\r\n public modifiedRecords: Array = [];\r\n public deleteRow: any;\r\n private isDeleteClicked: boolean = false;\r\n public selectedWageLevelId: any;\r\n public deleteMessage;\r\n lcaValidityFrom: any;\r\n lcaValidityTo: any;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private _dafService: DafService,\r\n notifier: NotifierService) {\r\n this.notifier = notifier;\r\n //this.createFormGroup = this.createFormGroup.bind(this);\r\n }\r\n\r\n formErrors = {\r\n 'jobTitle': '',\r\n 'salaryRangeFrom': '',\r\n 'salaryRangeTo': '',\r\n 'secondaryEntityName': '',\r\n 'stateId': '',\r\n 'postalCodeId': '',\r\n 'streetName': '',\r\n 'streetNumber': '',\r\n 'apartment': '',\r\n 'additionalLCAJobTitle': '',\r\n 'additionalLCASalaryRangeFrom': '',\r\n 'additionalLCASalaryRangeTo': '',\r\n 'additionalLCAonetOcssId': '',\r\n 'Isbasis': ''\r\n\r\n };\r\n\r\n validationMessages = {\r\n 'jobTitle': {\r\n 'required': 'Job Title is required.',\r\n },\r\n 'secondaryEntityName': {\r\n 'required': 'Secondary Entity Name is required.',\r\n },\r\n 'salaryRangeFrom': {\r\n 'required': 'Salary From Range is required.',\r\n },\r\n 'salaryRangeTo': {\r\n 'required': 'Salary To Range is required.',\r\n },\r\n 'stateId': {\r\n 'required': 'State is required.',\r\n },\r\n 'postalCodeId': {\r\n 'required': 'Postal code is required.',\r\n },\r\n 'streetName': {\r\n 'required': 'Stree Name is required.',\r\n },\r\n 'streetNumber': {\r\n 'required': 'Street Number is required.',\r\n },\r\n 'apartment': {\r\n 'required': 'Apartment is required.',\r\n },\r\n 'additionalLCAJobTitle': {\r\n 'required': 'Job Title is required.',\r\n },\r\n 'additionalLCASalaryRangeFrom': {\r\n 'required': 'Salary Range From is required.',\r\n },\r\n 'additionalLCASalaryRangeTo': {\r\n 'required': 'Salary Range To is required.',\r\n },\r\n 'additionalLCAonetOcssId': {\r\n 'required': 'SOC/OES Code is required.',\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n this.wageLevel = [\r\n { lcaWageLevelId: 1, wageLevelId: 1, wageLevel: \"I\", isSelected: false },\r\n { lcaWageLevelId: 2, wageLevelId: 2, wageLevel: \"II\", isSelected: false },\r\n { lcaWageLevelId: 3, wageLevelId: 3, wageLevel: \"III\", isSelected: false },\r\n { lcaWageLevelId: 4, wageLevelId: 4, wageLevel: \"IV\", isSelected: false },\r\n ]\r\n this.getStates();\r\n this.getetONETOCSSDetails();\r\n this.getLCAAssessmentDetails();\r\n this.getAddressInformation();\r\n }\r\n\r\n public resetForm() {\r\n try {\r\n this.isEditEnabled = false;\r\n this.getLCAAssessmentDetails();\r\n this.isGridEditable = false;\r\n this._dafService.disableEnableAllFormControls(this.lcaAssessmentForm, [], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n //public createFormGroup(args: CreateFormGroupArgs): FormGroup {\r\n // const item = args.isNew ? new addressWizardInfos() : args.dataItem;\r\n\r\n // this.formGroup = this.formBuilder.group({\r\n // addressWizardID: item.addressWizardID,\r\n // addressType: item.addressType,\r\n // entityName: item.entityName,\r\n // streetNumber: item.streetNumber,\r\n // streetName: item.streetName,\r\n // apt: item.apt,\r\n // city: item.city,\r\n // state: item.state,\r\n // postalCode: item.postalCode,\r\n // county: item.county,\r\n // countyOnOLFC:item.countyOnOLFC,\r\n // salary: item.salary,\r\n // flcWage: item.flcWage,\r\n // pwi: item.pwi\r\n // });\r\n\r\n // return this.formGroup;\r\n //}\r\n\r\n getLCAAssessmentDetails() {\r\n this.isPageReady = false;\r\n this._dafService.getLCAAssessmentDetails(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.lcaAssessmentDetails = data;\r\n this.basisOfClassification = this.lcaAssessmentDetails.basisOfClassification;\r\n this.selectedWageLevelId = this.lcaAssessmentDetails.wageLevelId;\r\n this.initializeForm();\r\n this.additionalLCAType = this.lcaAssessmentDetails.additionalLCAType;\r\n if (this.lcaAssessmentDetails.stateId > 0) {\r\n this.getZipcodeByState(this.lcaAssessmentDetails.stateId);\r\n }\r\n if (this.wageLevel.filter(p => p.wageLevelId == this.lcaAssessmentDetails.wageLevelId).length > 0) {\r\n this.wageLevel.filter(p => p.wageLevelId == this.lcaAssessmentDetails.wageLevelId)[0].isSelected = true;\r\n }\r\n \r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n\r\n public enableEdit() {\r\n try {\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.lcaAssessmentForm, [], false);\r\n this.enableDisableControls();\r\n this.isGridEditable = true;\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n\r\n\r\n addDynamicControls(): void {\r\n\r\n this.basisOfClassification.forEach(key => {\r\n console.log(key);\r\n (this.lcaAssessmentForm.get('basisOfClassification') as FormGroup).addControl(key.shortForm, new FormControl({ value: key.isSelected, disabled: true }))\r\n });\r\n \r\n this.wageLevel.forEach(key => {\r\n console.log(key);\r\n \r\n (this.lcaAssessmentForm.get('wageLevel') as FormGroup).addControl(key.wageLevel, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n\r\n this.additionalLCAType.forEach(key => {\r\n console.log(key);\r\n (this.lcaAssessmentForm.get('additionalLCAType') as FormGroup).addControl(key.shortForm, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n\r\n }\r\n\r\n async initializeForm() {\r\n if (this.lcaAssessmentDetails.onetOcssId)\r\n await this.getDotCodeBySOCCd(this.lcaAssessmentDetails.onetOcssId);\r\n\r\n let decodedNotes = this.decodeHTMLEntities(this.lcaAssessmentDetails.assessmentNotes);\r\n try {\r\n this.lcaAssessmentForm = this.formBuilder.group({\r\n basisOfClassification: this.formBuilder.group({}),\r\n wageLevel: this.formBuilder.group({}),\r\n additionalLCAType: this.formBuilder.group({}),\r\n jobTitle: new FormControl({ value: this.lcaAssessmentDetails.jobTitle, disabled: true }, Validators.required),\r\n oesSOCTitle: new FormControl({ value: this.lcaAssessmentDetails.oesSOCTitle, disabled: true }),\r\n onetOcssId: new FormControl({ value: this.lcaAssessmentDetails.onetOcssId, disabled: true }, Validators.required),\r\n oessocCode: new FormControl({ value: this.lcaAssessmentDetails.oessocCode, disabled: true }),\r\n lcaValidityFrom: new FormControl({ value: this.lcaAssessmentDetails.lcaValidityFrom ? new Date(this.lcaAssessmentDetails.lcaValidityFrom) : null, disabled: true }),\r\n lcaValidityTo: new FormControl({ value: this.lcaAssessmentDetails.lcaValidityTo ? new Date(this.lcaAssessmentDetails.lcaValidityTo) : null, disabled: true }),\r\n dotCode: new FormControl({ value: this.lcaAssessmentDetails.dotCode, disabled: true }),\r\n wageSourceAndYear: new FormControl({ value: this.lcaAssessmentDetails.wageSourceAndYear, disabled: true }),\r\n prevailingWage: new FormControl({ value: this.lcaAssessmentDetails.prevailingWage ? this.lcaAssessmentDetails.prevailingWage : 0, disabled: true }, Validators.required),\r\n actualSalary: new FormControl({ value: this.lcaAssessmentDetails.actualSalary, disabled: true }, Validators.required),\r\n isInSalaryRange: new FormControl({ value: this.lcaAssessmentDetails.isInSalaryRange, disabled: true }),\r\n salaryRangeFrom: new FormControl({ value: this.lcaAssessmentDetails.salaryRangeFrom, disabled: true }, Validators.required),\r\n salaryRangeTo: new FormControl({ value: this.lcaAssessmentDetails.salaryRangeTo, disabled: true }, Validators.required),\r\n emailAddressForLCA: new FormControl({ value: this.lcaAssessmentDetails.emailAddressForLCA ? this.lcaAssessmentDetails.emailAddressForLCA : \"certified.lca@ca.ey.com\", disabled: true , }),\r\n headcount: new FormControl({ value: this.lcaAssessmentDetails.headcount ? this.lcaAssessmentDetails.headcount : 1, disabled: true }, Validators.required),\r\n additionalWorksite: new FormControl({ value: this.lcaAssessmentDetails.additionalWorksite, disabled: true }),\r\n isSecondaryEntity: new FormControl({ value: this.lcaAssessmentDetails.isSecondaryEntity, disabled: true }),\r\n secondaryEntityName: new FormControl({ value: this.lcaAssessmentDetails.secondaryEntityName, disabled: true }, Validators.required),\r\n streetNumber: new FormControl({ value: this.lcaAssessmentDetails.streetNumber, disabled: true }, Validators.required),\r\n streetName: new FormControl({ value: this.lcaAssessmentDetails.streetName, disabled: true }, Validators.required),\r\n apartment: new FormControl({ value: this.lcaAssessmentDetails.apartment, disabled: true }, Validators.required),\r\n cityName: new FormControl({ value: this.lcaAssessmentDetails.cityName, disabled: true }),\r\n stateId: new FormControl({ value: this.lcaAssessmentDetails.stateId, disabled: true }, Validators.required),\r\n postalCodeId: new FormControl({ value: this.lcaAssessmentDetails.postalCodeId, disabled: true }, Validators.required),\r\n county: new FormControl({ value: this.lcaAssessmentDetails.county, disabled: true }),\r\n countryOnOLFC: new FormControl({ value: this.lcaAssessmentDetails.countryOnOLFC, disabled: true }),\r\n isAdditionalLCA: new FormControl({ value: this.lcaAssessmentDetails.isAdditionalLCA, disabled: true }),\r\n additionalLCAJobTitle: new FormControl({ value: this.lcaAssessmentDetails.additionalLCAJobTitle, disabled: true }, Validators.required),\r\n additionalLCAOESSOCTitle: new FormControl({ value: this.lcaAssessmentDetails.additionalLCAOESSOCTitle, disabled: true }),\r\n additionalLCAonetOcssId: new FormControl({ value: this.lcaAssessmentDetails.additionalLCAonetOcssId, disabled: true }, Validators.required),\r\n additionalLCAPrevailingWage: new FormControl({ value: this.lcaAssessmentDetails.additionalLCAPrevailingWage, disabled: true }),\r\n additionalLCAactualSalary: new FormControl({ value: this.lcaAssessmentDetails.additionalLCAactualSalary, disabled: true }),\r\n isAdditionalLCAWageRange: new FormControl({ value: this.lcaAssessmentDetails.isAdditionalLCAWageRange, disabled: true }),\r\n additionalLCASalaryRangeFrom: new FormControl({ value: this.lcaAssessmentDetails.additionalLCASalaryRangeFrom, disabled: true }, Validators.required),\r\n additionalLCASalaryRangeTo: new FormControl({ value: this.lcaAssessmentDetails.additionalLCASalaryRangeTo, disabled: true }, Validators.required),\r\n assessmentNotes: new FormControl({ value: decodedNotes, disabled: true }),\r\n geography: new FormControl({ value: this.lcaAssessmentDetails.geography, disabled: true }),\r\n isbasis: new FormControl({ value: this.lcaAssessmentDetails.isbasis, disabled: true }),\r\n //wageLevelId: new FormControl({ value: this.lcaAssessmentDetails.wageLevelId, disabled: true })\r\n });\r\n\r\n this.addDynamicControls();\r\n this.isPageReady = true;\r\n this.subscribeToFormControlValueChange();\r\n\r\n this.lcaAssessmentForm.valueChanges.subscribe((val => {\r\n this.logOnChangeValidationErrors();\r\n }));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n getetONETOCSSDetails() {\r\n this.isPageReady = false;\r\n this._dafService.getetONETOCSSDetails().toPromise().then((data: any) => {\r\n this.onetocsSDetails = data;\r\n this.onetocsSTitle = data;\r\n this.onetocsSCode = data;\r\n this.additionalLCAONETOCSSTitle = data;\r\n this.additionalLCAONETOCSSCode = data;\r\n console.log(this.onetocsSDetails);\r\n\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n getStates() {\r\n this._dafService.getDAFStates().toPromise().then((data: any) => {\r\n this.statesList = data;\r\n this.stateMaster = data;\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n getDotCodeBySOCCd(event) {\r\n if (this.lcaAssessmentForm)\r\n this.lcaAssessmentForm.controls[\"dotCode\"].setValue(null);\r\n this._dafService.getDotCodeBySOCCd(event).toPromise().then((data: any) => {\r\n this.dotCodeList = data;\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n getZipcodeByState(stateId: number) {\r\n this.isPageReady = false;\r\n this._dafService.getZipcodeByState(stateId).toPromise().then((data: any) => {\r\n this.zipCodeList = data;\r\n this.zipCodeMaster = data;\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n getCountyAndCityInfoByZipCode(zip: any) {\r\n this.isPageReady = false;\r\n this._dafService.getCountyAndCityInfoByZipCode(zip).toPromise().then((data: any) => {\r\n if (data != null && data.length > 0) {\r\n this.lcaAssessmentForm.controls[\"cityName\"].setValue(data[0].cityName);\r\n this.lcaAssessmentForm.controls[\"county\"].setValue(data[0].countyName);\r\n this.lcaAssessmentDetails.cityId = data[0].cityId;\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n }\r\n else {\r\n this.lcaAssessmentForm.controls[\"cityName\"].setValue(null);\r\n this.lcaAssessmentForm.controls[\"county\"].setValue(null);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n }\r\n this.isPageReady = true;\r\n\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n public onOESSOCTitlevalueChange(event) {\r\n this.lcaAssessmentForm.controls[\"onetOcssId\"].setValue(event.onetOcssId);\r\n //this.getLCAPrevailingwage(event, false);\r\n this.getDotCodeBySOCCd(event.onetOcssId);\r\n this.lcaAssessmentForm.updateValueAndValidity\r\n\r\n let socCode = event.onetCode;\r\n this.lcaAssessmentForm.get(\"oessocCode\").setValue(socCode);\r\n\r\n this.view.forEach((key: any, i: number) => {\r\n this.getFLCWage(key.geographyId, socCode, this.selectedWageLevelId, i);\r\n });\r\n }\r\n\r\n public onOESSOCTitleFilterChange(event) {\r\n this.onetocsSTitle = this.onetocsSDetails.filter(x => x.onetTitle.toLowerCase().includes(event.toLowerCase()));\r\n\r\n }\r\n\r\n public onOESSOCCodevalueChange(event) {\r\n this.lcaAssessmentForm.controls[\"onetOcssId\"].setValue(event.onetOcssId);\r\n //this.getLCAPrevailingwage(event, false);\r\n this.getDotCodeBySOCCd(event.onetOcssId);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n\r\n let socCode = event.onetCode;\r\n this.lcaAssessmentForm.get(\"oessocCode\").setValue(socCode);\r\n //let geographyId = this.addressInfo.filter(x => x.addressType == \"Primary\")[0].geographyId;\r\n\r\n this.view.forEach((key: any, i:number) => {\r\n this.getFLCWage(key.geographyId, socCode, this.selectedWageLevelId, i);\r\n });\r\n //if (this.selectedWageLevelId && socCode && geographyId) {\r\n // this.getFLCWage(geographyId, socCode, this.selectedWageLevelId);\r\n //}\r\n }\r\n\r\n public onAdditionalLCAOESSOCTitlevalueChange(event) {\r\n this.lcaAssessmentForm.controls[\"additionalLCAonetOcssId\"].setValue(event);\r\n //this.getLCAPrevailingwage(event, true);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n\r\n }\r\n\r\n public onAdditionalLCAOESSOCCodevalueChange(event) {\r\n this.lcaAssessmentForm.controls[\"additionalLCAonetOcssId\"].setValue(event);\r\n this.getLCAPrevailingwage(event, true);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n\r\n }\r\n\r\n public onOESSOCCodeFilterChange(event) {\r\n this.onetocsSCode = this.onetocsSDetails.filter(x => x.onetCode.toLowerCase().includes(event.toLowerCase()));\r\n\r\n }\r\n\r\n getAddressInformation() {\r\n this.isPageReady = false;\r\n this._dafService.getAddressWizardInformation(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.addressInfo = data;\r\n //if(this.addressInfo.length==0){\r\n // for(let i=0;i<3;i++){\r\n // var newAddress= new addressWizardInfos();\r\n // newAddress.caseSummaryId=this.caseSummaryId;\r\n // this.addressInfo.push(newAddress);\r\n // }\r\n // this.addressInfo[0].addressType=\"Primary\";\r\n // this.addressInfo[1].addressType=\"Additional\";\r\n // this.addressInfo[2].addressType=\"Secondary\";\r\n\r\n //}\r\n this.view = this.addressInfo;\r\n\r\n\r\n this.loadItems();\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n public stateFilterChange(event) {\r\n this.statesList = this.stateMaster.filter(x => x.stateName.toLowerCase().includes(event.toLowerCase()));\r\n }\r\n\r\n public zipFilterChange(event) {\r\n this.zipCodeList = this.zipCodeMaster.filter(x => x.zipcode.toLowerCase().includes(event.toLowerCase()));\r\n }\r\n\r\n get formControls() {\r\n return this.lcaAssessmentForm.controls;\r\n }\r\n\r\n isAllSelected(item) {\r\n var formGroup = this.lcaAssessmentForm.get(\"wageLevel\") as FormGroup;\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n if (key === item.key) {\r\n let currValue = abstractControl.value as boolean;\r\n abstractControl.setValue(true);\r\n }\r\n else {\r\n abstractControl.setValue(false);\r\n }\r\n });\r\n\r\n this.selectedWageLevelId = this.wageLevel.filter(p => p.wageLevel == item.key)[0].wageLevelId;\r\n let socCode = this.lcaAssessmentForm.get(\"oessocCode\").value;\r\n this.view.forEach((key: any, i: number) => {\r\n this.getFLCWage(key.geographyId, socCode, this.selectedWageLevelId, i);\r\n });\r\n }\r\n\r\n getFLCWage(geographyId: number, socCode: any, selectedWageLevelId:number, i:number) {\r\n\r\n this._dafService.getFLCWage(geographyId, socCode, selectedWageLevelId).toPromise().then((data: any) => {\r\n let PLCwage = data;\r\n if (this.view[i].addressType == \"Primary\")\r\n this.lcaAssessmentForm.get(\"prevailingWage\").setValue(PLCwage);\r\n\r\n this.view[i].flcWage = PLCwage;\r\n this.view[i].pwi = PLCwage >= this.view[i].salary ? true : false;\r\n this.view[i].changeType = \"UPDATE\";\r\n this.saveHandler(this.view[i]);\r\n //this.lcaAssessmentForm.get(\"prevailingWage\").setValue(data);\r\n //this.view.find(x => x.addressType == \"Primary\").flcWage = data;\r\n //this.view.find(x => x.addressType == \"Primary\").pwi = data >= this.lcaAssessmentForm.get(\"actualSalary\").value ? true : false;\r\n //this.view.find(x => x.addressType == \"Primary\").changeType = \"UPDATE\";\r\n //this.saveHandler(this.view.find(x => x.addressType == \"Primary\"));\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting the FLC Wage');\r\n }\r\n );\r\n }\r\n\r\n public saveLCADetails() {\r\n //this.logValidationErrors();\r\n\r\n this.readFormValues(this.lcaAssessmentForm);\r\n if (this.lcaAssessmentForm.valid && this.selectedWageLevelId != null) {\r\n this.lcaAssessmentDetails.worksiteAddress = this.modifiedRecords;\r\n if (this.lcaAssessmentDetails.lcaValidityFrom == null) {\r\n this.lcaValidityFrom = null;\r\n }\r\n else {\r\n this.lcaValidityFrom = this.lcaAssessmentDetails.lcaValidityFrom.toDateString();\r\n }\r\n if (this.lcaAssessmentDetails.lcaValidityTo == null) {\r\n this.lcaValidityTo = null;\r\n }\r\n else {\r\n this.lcaValidityTo = this.lcaAssessmentDetails.lcaValidityTo.toDateString();\r\n }\r\n if (this.validateLCAData(this.lcaAssessmentDetails) == true) {\r\n this.isPageReady = false;\r\n //this.jobPositionDetails.isbasis = this.jobPositionForm.controls[\"isbasis\"].value;\r\n this.lcaAssessmentDetails.assessmentNotes = this.lcaAssessmentDetails.assessmentNotes ? this.encodeHTMLEntities(this.lcaAssessmentDetails.assessmentNotes) : null;\r\n this._dafService.saveLCAAssessmentDetails(this.caseSummaryId, this.lcaValidityFrom, this.lcaValidityTo ,this.lcaAssessmentDetails).toPromise().then(() => {\r\n this._dafService.disableEnableAllFormControls(this.lcaAssessmentForm, [], true);\r\n this.getLCAAssessmentDetails();\r\n this.isEditEnabled = false;\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'LCA Assessment have been saved successfully');\r\n }).catch((err) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n }\r\n }\r\n else {\r\n this.notifier.notify('error', 'All fields are required and should have data');\r\n this.isPageReady = true;\r\n }\r\n }\r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.lcaAssessmentForm.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.getDynamicControlValue(abstractControl, key);\r\n }\r\n else {\r\n this.lcaAssessmentDetails[key] = abstractControl.value;\r\n if (key == 'additionalLCAonetOcssId') {\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getDynamicControlValue(formGroup: FormGroup, childFormGroup: string) {\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n console.log(abstractControl);\r\n if (childFormGroup === 'basisOfClassification') {\r\n this.lcaAssessmentDetails.basisOfClassification.filter(p => p.shortForm == key)[0].isSelected = abstractControl.value;\r\n }\r\n else if (childFormGroup === 'additionalLCAType') {\r\n this.lcaAssessmentDetails.additionalLCAType.filter(p => p.shortForm == key)[0].isSelected = abstractControl.value;\r\n }\r\n else if (childFormGroup === 'wageLevel') {\r\n if (abstractControl.value === true) {\r\n this.lcaAssessmentDetails.wageLevelId = this.wageLevel.filter(p => p.wageLevel == key)[0].wageLevelId;\r\n }\r\n }\r\n });\r\n\r\n }\r\n private enableDisableControls() {\r\n if (this.lcaAssessmentForm.controls[\"isInSalaryRange\"].value == true) {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], false);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n }\r\n else {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], true);\r\n this.formControls['salaryRangeFrom'].setValue(null);\r\n this.formControls['salaryRangeTo'].setValue(null);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n }\r\n\r\n if (this.lcaAssessmentForm.controls[\"additionalWorksite\"].value == true) {\r\n this.enableadditionalWorksite();\r\n }\r\n else {\r\n this.disableAdditionalWorksite();\r\n }\r\n\r\n if (this.lcaAssessmentForm.controls[\"isAdditionalLCA\"].value == true) {\r\n this.enableAdditionalLCA();\r\n } else {\r\n this.disableAdditionalLCA();\r\n }\r\n\r\n if (this.lcaAssessmentForm.controls[\"isAdditionalLCAWageRange\"].value == true) {\r\n this.enableadditionalLCAWageRange();\r\n } else {\r\n this.disableadditionalLCAWageRange();\r\n }\r\n\r\n if (this.lcaAssessmentForm.get(\"isSecondaryEntity\").value == true) {\r\n\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"secondaryEntityName\"], false);\r\n }\r\n else {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"secondaryEntityName\"], true);\r\n }\r\n }\r\n private subscribeToFormControlValueChange() {\r\n this.lcaAssessmentForm.get(\"isInSalaryRange\").valueChanges.subscribe(isSalaryRange => {\r\n if (isSalaryRange) {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], false);\r\n if (this.salaryFrom > 0) {\r\n this.formControls['salaryRangeFrom'].setValue(null);\r\n }\r\n if (this.salaryTo > 0) {\r\n this.formControls['salaryRangeTo'].setValue(null);\r\n }\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n } else {\r\n\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], true);\r\n this.salaryFrom = this.formControls['salaryRangeFrom'].value;\r\n this.salaryTo = this.formControls['salaryRangeTo'].value;\r\n this.formControls['salaryRangeFrom'].setValue(null);\r\n this.formControls['salaryRangeTo'].setValue(null);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n }\r\n });\r\n\r\n this.additionalWorksiteValueChange();\r\n this.additionalLCAValueChange();\r\n this.additionalLCAWageRangeValueChange();\r\n this.secondaryEntityValueChange();\r\n }\r\n\r\n private additionalWorksiteValueChange() {\r\n this.lcaAssessmentForm.get(\"additionalWorksite\").valueChanges.subscribe(isSalaryRange => {\r\n if (isSalaryRange) {\r\n this.enableadditionalWorksite();\r\n } else {\r\n\r\n this.disableAdditionalWorksite();\r\n }\r\n });\r\n }\r\n\r\n private secondaryEntityValueChange() {\r\n this.lcaAssessmentForm.get(\"isSecondaryEntity\").valueChanges.subscribe(isSalaryRange => {\r\n if (isSalaryRange) {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"secondaryEntityName\"], false);\r\n } else {\r\n\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"secondaryEntityName\"], true);\r\n }\r\n });\r\n }\r\n\r\n private enableadditionalWorksite() {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"isSecondaryEntity\", \"secondaryEntityName\", \"streetNumber\", \"streetName\", \"apartment\", \"cityName\", \"stateId\", \"postalCodeId\", \"county\", \"countryOnOLFC\"], false);\r\n }\r\n\r\n private disableAdditionalWorksite() {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"isSecondaryEntity\", \"secondaryEntityName\", \"streetNumber\", \"streetName\", \"apartment\", \"cityName\", \"stateId\", \"postalCodeId\", \"county\", \"countryOnOLFC\"], true);\r\n this.formControls['isSecondaryEntity'].setValue(false);\r\n this.formControls['secondaryEntityName'].setValue(\"\");\r\n this.formControls['streetNumber'].setValue(\"\");\r\n this.formControls['streetName'].setValue(\"\");\r\n this.formControls['apartment'].setValue(\"\");\r\n this.formControls['cityName'].setValue(\"\");\r\n this.formControls['stateId'].setValue(null);\r\n this.formControls['postalCodeId'].setValue(null);\r\n this.formControls['county'].setValue(\"\");\r\n this.formControls['countryOnOLFC'].setValue(\"\");\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n }\r\n\r\n private additionalLCAValueChange() {\r\n this.lcaAssessmentForm.get(\"isAdditionalLCA\").valueChanges.subscribe(isTrue => {\r\n if (isTrue) {\r\n this.enableAdditionalLCA();\r\n } else {\r\n this.disableAdditionalLCA();\r\n }\r\n });\r\n }\r\n\r\n private enableAdditionalLCA() {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"additionalLCAJobTitle\", \"additionalLCAOESSOCTitle\", \"additionalLCAonetOcssId\", \"additionalLCAPrevailingWage\", \"additionalLCAactualSalary\", \"isAdditionalLCAWageRange\", \"additionalLCASalaryRangeTo\", \"additionalLCAType\"], false);\r\n this.formControls['additionalLCAJobTitle'].setValue(this.formControls['jobTitle'].value);\r\n this.lcaAssessmentForm.controls[\"additionalLCAonetOcssId\"].setValue(this.formControls['onetOcssId'].value);\r\n this.formControls['additionalLCAPrevailingWage'].setValue(this.formControls['prevailingWage'].value);\r\n this.formControls['additionalLCAactualSalary'].setValue(this.formControls['actualSalary'].value);\r\n this.formControls['isAdditionalLCAWageRange'].setValue(this.formControls['isInSalaryRange'].value);\r\n this.formControls['additionalLCASalaryRangeFrom'].setValue(this.formControls['salaryRangeFrom'].value);\r\n this.formControls['additionalLCASalaryRangeTo'].setValue(this.formControls['salaryRangeTo'].value);\r\n }\r\n\r\n private disableAdditionalLCA() {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"additionalLCAJobTitle\", \"additionalLCAOESSOCTitle\", \"additionalLCAonetOcssId\", \"additionalLCAPrevailingWage\", \"additionalLCAactualSalary\", \"isAdditionalLCAWageRange\", \"additionalLCASalaryRangeTo\", \"additionalLCAType\"], true);\r\n this.formControls['additionalLCAJobTitle'].setValue(\"\");\r\n this.formControls['additionalLCAOESSOCTitle'].setValue(\"\");\r\n\r\n this.formControls['additionalLCAonetOcssId'].setValue(null);\r\n this.formControls['additionalLCAPrevailingWage'].setValue(null);\r\n this.formControls['additionalLCAactualSalary'].setValue(null);\r\n this.formControls['isAdditionalLCAWageRange'].setValue(false);\r\n this.formControls['additionalLCASalaryRangeFrom'].setValue(null);\r\n this.formControls['additionalLCASalaryRangeTo'].setValue(null);\r\n this.resetLCAType();\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n\r\n }\r\n\r\n private additionalLCAWageRangeValueChange() {\r\n this.lcaAssessmentForm.get(\"isAdditionalLCAWageRange\").valueChanges.subscribe(isTrue => {\r\n if (isTrue) {\r\n this.enableadditionalLCAWageRange();\r\n } else {\r\n this.disableadditionalLCAWageRange();\r\n }\r\n });\r\n }\r\n\r\n private enableadditionalLCAWageRange() {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"additionalLCASalaryRangeFrom\", \"additionalLCASalaryRangeTo\"], false);\r\n }\r\n\r\n private disableadditionalLCAWageRange() {\r\n this._dafService.disableEnableFormControl(this.lcaAssessmentForm, [\"additionalLCASalaryRangeFrom\", \"additionalLCASalaryRangeTo\"], true);\r\n this.formControls['additionalLCASalaryRangeFrom'].setValue(null);\r\n this.formControls['additionalLCASalaryRangeTo'].setValue(null);\r\n this.lcaAssessmentForm.updateValueAndValidity();\r\n }\r\n\r\n private validateLCAData(lcaAssessmentData: any) {\r\n let isValidationSuccess = true;\r\n if (lcaAssessmentData.lcaValidityTo < lcaAssessmentData.lcaValidityFrom) {\r\n this.notifier.notify('error', 'LCA Validity to date cannot be less than from date');\r\n isValidationSuccess = false;\r\n }\r\n if (lcaAssessmentData.isInSalaryRange === true) {\r\n if (lcaAssessmentData.salaryRangeTo < lcaAssessmentData.salaryRangeFrom) {\r\n this.notifier.notify('error', 'Salary range to cannot be less than salary range from');\r\n isValidationSuccess = false;\r\n }\r\n else if ((lcaAssessmentData.actualSalary > lcaAssessmentData.salaryRangeTo) ||\r\n (lcaAssessmentData.actualSalary < lcaAssessmentData.salaryRangeFrom)) {\r\n this.notifier.notify('error', 'Actual salary should be in between salary from range and salary to range');\r\n isValidationSuccess = false;\r\n }\r\n\r\n }\r\n if (lcaAssessmentData.isAdditionalLCAWageRange === true) {\r\n if (lcaAssessmentData.additionalLCASalaryRangeTo < lcaAssessmentData.additionalLCASalaryRangeFrom) {\r\n this.notifier.notify('error', 'Additional LCA salary range to cannot be less than salary range from');\r\n isValidationSuccess = false;\r\n }\r\n else if ((lcaAssessmentData.additionalLCAactualSalary > lcaAssessmentData.additionalLCASalaryRangeTo) ||\r\n (lcaAssessmentData.additionalLCAactualSalary < lcaAssessmentData.additionalLCASalaryRangeFrom)) {\r\n this.notifier.notify('error', 'Additional LCA actual salary should be in between salary from range and salary to range');\r\n isValidationSuccess = false;\r\n }\r\n\r\n }\r\n\r\n return isValidationSuccess;\r\n }\r\n\r\n logValidationErrors(group: FormGroup = this.lcaAssessmentForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.lcaAssessmentForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getLCAPrevailingwage(onetId: string, isAdditionalLCA: boolean) {\r\n this.isPageReady = false;\r\n let prevailingwage: number = 0;\r\n let onetCode: string\r\n if (this.onetocsSDetails.filter(p => p.onetOcssId == onetId) != null) {\r\n onetCode = this.onetocsSDetails.filter(p => p.onetOcssId == onetId)[0].onetCode;\r\n }\r\n this._dafService.getLCAPrevailingwage(this.caseSummaryId, onetCode).toPromise().then((data: any) => {\r\n prevailingwage = data;\r\n if (isAdditionalLCA) {\r\n this.lcaAssessmentForm.controls[\"additionalLCAPrevailingWage\"].setValue(prevailingwage);\r\n }\r\n else {\r\n this.lcaAssessmentForm.controls[\"prevailingWage\"].setValue(prevailingwage);\r\n\r\n }\r\n\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n }\r\n );\r\n\r\n return prevailingwage;\r\n }\r\n\r\n resetLCAType() {\r\n var formGroup = this.lcaAssessmentForm.get(\"additionalLCAType\") as FormGroup;\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n abstractControl.setValue(false);\r\n });\r\n }\r\n\r\n public addHandler(): void {\r\n var address = new addressWizardInfos();\r\n var modalData = new worksiteAddressModal();\r\n address.caseID = \"\";\r\n address.caseSummaryID = 0;\r\n address.addressWizardID = 0,\r\n address.addressType = \"Additional\",\r\n address.entityName = \"\",\r\n address.streetNumber = \"\",\r\n address.streetName = \"\",\r\n address.apt = \"\",\r\n address.city = \"\",\r\n address.state = \"\",\r\n address.postalCode = \"\",\r\n address.county = \"\",\r\n address.countyOnOLFC = \"\",\r\n address.salary = this.lcaAssessmentForm.value.actualSalary,\r\n address.flcWage = 0,\r\n address.pwi = null\r\n\r\n modalData.oesSOCCode = this.lcaAssessmentForm.get(\"oessocCode\").value;\r\n\r\n modalData.wageLevelId = this.selectedWageLevelId ? this.selectedWageLevelId : null;\r\n modalData.addressWizardInfos = address;\r\n this.editDataItem = modalData;\r\n this.isNew = true;\r\n }\r\n\r\n public editHandler(args: AddEvent): void {\r\n var modalData = new worksiteAddressModal();\r\n modalData.oesSOCCode = this.lcaAssessmentForm.get(\"oessocCode\").value;\r\n modalData.wageLevelId = this.selectedWageLevelId ? this.selectedWageLevelId : null;\r\n modalData.addressWizardInfos = args.dataItem;\r\n\r\n this.editDataItem = modalData;\r\n\r\n this.isNew = false;\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n }\r\n\r\n public saveHandler(product: addressWizardInfos): void {\r\n if (this.isNew) {\r\n this.view.splice(0, 0, product);\r\n this.modifiedRecords.push(product);\r\n }\r\n else {\r\n Object.assign(\r\n this.view.find(({ addressWizardID }) => addressWizardID === product.addressWizardID),\r\n product\r\n );\r\n\r\n if (this.modifiedRecords.find(({ addressWizardID }) => addressWizardID === product.addressWizardID)) {\r\n Object.assign(\r\n this.modifiedRecords.find(({ addressWizardID }) => addressWizardID === product.addressWizardID),\r\n product\r\n );\r\n\r\n if (product.addressType == \"Primary\")\r\n this.lcaAssessmentForm.get(\"prevailingWage\").setValue(product.flcWage);\r\n }\r\n else {\r\n this.modifiedRecords.push(product);\r\n }\r\n }\r\n\r\n this.editDataItem = undefined;\r\n this.isNew = false;\r\n this.loadItems();\r\n }\r\n\r\n public setDependentIndexToDelete(args: any) {\r\n this.deleteMessage = \"\";\r\n this.isDeleteClicked = true;\r\n this.deleteRow = args;\r\n this.deleteIndex = args.rowIndex;\r\n if (args.dataItem.addressType == \"Primary\") {\r\n this.deleteMessage = \"Deleting this record will remove address details from Primary Worksite Address module.\";\r\n }\r\n this.showDialog = true;\r\n }\r\n\r\n public deleteDependent() {\r\n this.view.splice(this.deleteIndex, 1);\r\n this.deleteRow.dataItem.changeType = \"DELETE\";\r\n this.modifiedRecords.push(this.deleteRow.dataItem);\r\n this.loadItems();\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDelete() {\r\n this.showDialog = false;\r\n }\r\n\r\n public onDialogClose() {\r\n this.showDialog = false;\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n textArea.innerText = text;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n textArea.innerHTML = text;\r\n return textArea.value;\r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { NotificationService } from '@progress/kendo-angular-notification';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-lca-info-wizard',\r\n templateUrl: './lca-info-wizard.component.html',\r\n styleUrls: ['./lca-info-wizard.component.scss']\r\n})\r\nexport class LcaInfoWizardComponent implements OnChanges {\r\n public view = [];\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n public emailForm: FormGroup;\r\n public isReady=false;\r\n public WorkSite=\"Lca Info Wizard\";\r\n public lcaInfo=[];\r\n public savedLcaInfo:any;\r\n\r\n @Input() caseSummaryId = 0;\r\n\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n constructor(private formBuilder: FormBuilder,@Inject(NotificationService) private notificationService: NotificationService, private _dafService: DafService,notifier: NotifierService) { }\r\n\r\n ngOnChanges(): void {\r\n this.getlcaInformation();\r\n this.getLcaSavedInfos();\r\n }\r\n\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n}\r\n\r\n\r\npublic closeForm(): void {\r\n this.cancel.emit(\"Close\");\r\n}\r\n\r\n\r\n getLcaSavedInfos(){\r\n this.isReady = false;\r\n this._dafService.getLCAWizardInformation(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.savedLcaInfo = data;\r\n\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isReady = true;\r\n }\r\n );\r\n }\r\n\r\n getlcaInformation(){\r\n this.isReady = false;\r\n this._dafService.getLCAInformation(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.lcaInfo = data;\r\n this.view = this.lcaInfo;\r\n\r\n this.loadItems();\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isReady = true;\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { AddEvent, GridComponent, GridDataResult } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { delay } from 'rxjs/operators';\r\nimport { primaryWorksiteAddress } from 'src/app/DAF/Models/PrimaryWorksiteAddress';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { AddLCAService } from 'src/app/immigrationcompilation/add-lca/service/add-lca.service';\r\nimport { addressWizardInfos } from '../../../Models/addressWizardInfos';\r\nimport { basisOfClassification, worksiteAddressModal } from '../../../Models/LCAAssessmentDetails';\r\n\r\n\r\n@Component({\r\n selector: 'app-primary-worksite-address',\r\n templateUrl: './primary-worksite-address.component.html',\r\n styleUrls: ['./primary-worksite-address.component.scss']\r\n})\r\nexport class PrimaryWorksiteAddressComponent implements OnInit {\r\n\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n private notifier: NotifierService;\r\n public workSiteData: primaryWorksiteAddress = new primaryWorksiteAddress();\r\n public isUnlocked: boolean = false;\r\n public isEditEnabled: boolean = false;\r\n public isAdditineray: boolean = false;\r\n public isOffc: boolean = false;\r\n\r\n \r\n public isPageReady = true;\r\n worksiteForm: FormGroup = null;\r\n addressDataSource = [];\r\n addressList = [];\r\n statesDataSource = [];\r\n statesList=[];\r\n public zipcodeList = [[]];\r\n public addressTypesList = [];\r\n addressTypes: any[] = [];\r\n public state;\r\n public zipcodeSource = [];\r\n public zipcodeSourcefrOffc = [];\r\n public cityArray=[[]];\r\n public countyArray = [[]];\r\n public isReady=false;\r\n public isActivate=false;\r\n citySourceArray: any[]=[];\r\n countyDataArray: any[] = [];\r\n public cityList = [];\r\n public citySource = [];\r\n public countyList = [];\r\n public countySource = [];\r\n public geographyList = [];\r\n public geographySource = [];\r\n public OfficeDataSource = [];\r\n lcaValidityFrom: any;\r\n lcaValidityTo: any;\r\n public officeTypeList: Array = [\r\n \"Apt.\",\r\n \"Ste.\",\r\n \"Flr.\"\r\n ];\r\n\r\n @Input() caseId = 0;\r\n \r\n @Output() page = new EventEmitter();\r\n @Output() collapseCSPanel = new EventEmitter();\r\n @ViewChild('autocomplete', { static: false }) autocomplete: any;\r\n\r\n optionalFormControls = [\"middleName\",\"signatoryName\",\"signatoryTitle\",\"signatoryTelephone\",\"apt\"];\r\n formErrors = {\r\n 'state': '',\r\n 'city': '',\r\n 'county': '',\r\n 'postalCode': '',\r\n 'streetName': '', \r\n 'streetNumber': '',\r\n 'apt':'',\r\n 'countryOnOLFC':'',\r\n 'employeeOffsite':'',\r\n 'compliance':'',\r\n 'reasonForExemption': '',\r\n\r\n 'jobTitle': '',\r\n 'salaryRangeFrom': '',\r\n 'salaryRangeTo': '',\r\n 'secondaryEntityName': ''\r\n };\r\n \r\n validationMessages = {\r\n 'state': {\r\n 'required': 'State is required.',\r\n },\r\n 'city': { \r\n 'required': 'City is required.', \r\n },\r\n 'county': { \r\n 'required': 'county is required.', \r\n },\r\n 'postalCode': { \r\n 'required': 'Postal Code is required.', \r\n },\r\n 'streetName': { \r\n 'required': 'Street Name is required.', \r\n },\r\n 'streetNumber': { \r\n 'required': 'Street Number is required.', \r\n },\r\n 'apt': { \r\n 'required': 'Apartment Number required.', \r\n },\r\n 'countryOnOLFC': { \r\n 'required': 'Countr/City/Township on OLFC is required.', \r\n },\r\n 'employeeOffsite': { \r\n 'required': 'This field is required.', \r\n },\r\n 'compliance': { \r\n 'required': 'Compliance is required.', \r\n },\r\n 'reasonForExemption': { \r\n 'required': 'Reason is required.', \r\n },\r\n\r\n\r\n 'jobTitle': {\r\n 'required': 'Job Title is required.',\r\n },\r\n 'secondaryEntityName': {\r\n 'required': 'Secondary Entity Name is required.',\r\n },\r\n 'salaryRangeFrom': {\r\n 'required': 'Salary From Range is required.',\r\n },\r\n 'salaryRangeTo': {\r\n 'required': 'Salary To Range is required.',\r\n }\r\n };\r\n\r\n //LCA Assessment Variables\r\n @Input() caseSummaryId = 0;\r\n //worksiteForm: FormGroup;\r\n //public isPageReady = true;\r\n //private workSiteData: workSiteData = new workSiteData();\r\n basisOfClassification: Array = [];\r\n wageLevel: any = [];\r\n additionalLCAType: Array = [];\r\n //isEditEnabled: boolean;\r\n //radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n radiobasisValues: Array = [{ value: 1, text: \"New\" }, { value: 2, text: \"Continuation\" }, { value: 3, text: \"Change\" }, { value: 4, text: \"Concurrent\" }, { value: 5, text: \"COE\" }, { value: 6, text: \"Amendment\" }];\r\n onetocsSDetails: any;\r\n onetocsSTitle: any;\r\n onetocsSCode: any;\r\n //statesList: any;\r\n stateMaster: any;\r\n zipCodeList: any;\r\n zipCodeMaster: any;\r\n additionalLCAONETOCSSTitle: any;\r\n additionalLCAONETOCSSCode: any;\r\n private salaryFrom: number;\r\n private salaryTo: number;\r\n //private notifier: NotifierService;\r\n public formGroup: FormGroup;\r\n public isGridEditable: boolean;\r\n showDialog: boolean = false;\r\n deleteIndex: number;\r\n addressInfo = [];\r\n public view = [];\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n public addressDetails = [];\r\n public dotCodeList = [];\r\n public editDataItem: worksiteAddressModal;\r\n private isNew: boolean;\r\n private editedRowIndex: number;\r\n private grid: GridComponent;\r\n public modifiedRecords: Array = [];\r\n public deleteRow: any;\r\n private isDeleteClicked: boolean = false;\r\n public selectedWageLevelId: any;\r\n public deleteMessage;\r\n\r\n constructor(private _dafService: DafService, notifierService: NotifierService, public _addLCAService: AddLCAService, private formBuilder: FormBuilder, public addLCAService: AddLCAService) {\r\n this.notifier = notifierService; \r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.wageLevel = [\r\n { lcaWageLevelId: 1, wageLevelId: 1, wageLevel: \"I\", isSelected: false },\r\n { lcaWageLevelId: 2, wageLevelId: 2, wageLevel: \"II\", isSelected: false },\r\n { lcaWageLevelId: 3, wageLevelId: 3, wageLevel: \"III\", isSelected: false },\r\n { lcaWageLevelId: 4, wageLevelId: 4, wageLevel: \"IV\", isSelected: false },\r\n ]\r\n this.getetONETOCSSDetails();\r\n //this.getworkSiteData();\r\n this.getMasterData();\r\n this.getAddressInformation();\r\n\r\n \r\n // this.getStates();\r\n // this.fetchcaseData(this.caseId);\r\n }\r\n\r\n async getMasterData (){\r\n this.getStates();\r\n this.fetchcaseData(this.caseId);\r\n this.getOfficeAddress();\r\n }\r\n\r\n fetchcaseData(caseId: number) {\r\n \r\n this.isPageReady = false;\r\n \r\n this._dafService.GetPrimaryWorksiteAddress(caseId).toPromise().then((data: any) => {\r\n this.workSiteData = new primaryWorksiteAddress(data);\r\n this.basisOfClassification = this.workSiteData.basisOfClassification;\r\n this.selectedWageLevelId = this.workSiteData.wageLevelId;\r\n if (this.workSiteData.companyName === \"EY US\" || this.workSiteData.companyName === \"Ernst & Young Infrastructure Advisors LLC\" || this.workSiteData.companyName === \"Ernst & Young U.S. LLP\" ) {\r\n this.isOffc = true;\r\n }\r\n else { this.isOffc = false; }\r\n this.initializeForm();\r\n\r\n if (this.wageLevel.filter(p => p.wageLevelId == this.workSiteData.wageLevelId).length > 0) {\r\n this.wageLevel.filter(p => p.wageLevelId == this.workSiteData.wageLevelId)[0].isSelected = true;\r\n }\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n openWizard(){\r\n this.isActivate=true;\r\n }\r\n\r\n async initializeForm() {\r\n await this.GetZipcodes(this.workSiteData.stateID);\r\n await this.GetCounty(this.workSiteData.stateID);\r\n await this.GetGeography(this.workSiteData.stateID);\r\n await this.GetCity(this.workSiteData.zipCodeId);\r\n\r\n if (this.workSiteData.onetOcssId)\r\n await this.getDotCodeBySOCCd(this.workSiteData.onetOcssId);\r\n\r\n let decodedNotes = this.decodeHTMLEntities(this.workSiteData.notes);\r\n let decodedjobTitle = this.decodeHTMLEntities(this.workSiteData.jobTitle);\r\n try {\r\n\r\n this.worksiteForm = this.formBuilder.group({\r\n caseId: new FormControl(this.caseId),\r\n primWorkAddID: new FormControl(this.workSiteData.primWorkAddID),\r\n state: new FormControl({ value: this.workSiteData.state, disabled: true }),\r\n officeaddress: new FormControl({ value: this.workSiteData.officeaddress, disabled: true }),\r\n city: new FormControl({ value: null, disabled: true}),\r\n county: new FormControl({ value: this.workSiteData.county, disabled: true }),\r\n postalCode: new FormControl({ value: this.workSiteData.postalCode, disabled: true }),\r\n streetName: new FormControl({ value: this.workSiteData.streetName, disabled: true },[ Validators.required,Validators.nullValidator]),\r\n streetNumber: new FormControl({ value: this.workSiteData.streetNumber, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n apt: new FormControl({ value: this.workSiteData.apt, disabled: true },),\r\n officeType: new FormControl({ value: this.workSiteData.officeType, disabled: true },),\r\n countryOnOLFC: new FormControl({ value: this.workSiteData.countryOnOLFC, disabled: false }),\r\n employeeOffsite: new FormControl({ value: this.workSiteData.employeeOffsite, disabled: true }),\r\n compliance: new FormControl({ value: this.workSiteData.compliance, disabled: true }),\r\n addnlWorksites: new FormControl({ value: this.workSiteData.addnlWorksites, disabled: true }),\r\n h1BDependantER: new FormControl({ value: this.workSiteData.h1BDependantER, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n willfulViolator: new FormControl({ value: this.workSiteData.willfulViolator, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n exemptH1Bworker: new FormControl({ value: this.workSiteData.exemptH1Bworker, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n reasonForExemption: new FormControl({ value: this.workSiteData.reasonForExemption, disabled: true }),\r\n educCoveredByACIWA: new FormControl({ value: this.workSiteData.educCoveredByACIWA, disabled: true }, [Validators.required,Validators.nullValidator]),\r\n notes: new FormControl({ value: decodedNotes, disabled: true }),\r\n stateId: new FormControl({ value: this.workSiteData.stateID, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n officeaddressId: new FormControl({ value: this.workSiteData.officeaddressId, disabled: true }),\r\n zipCodeId: new FormControl({ value: this.workSiteData.zipCodeId, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n cityId: new FormControl({ value: this.workSiteData.cityId, disabled: true }, [Validators.required, Validators.nullValidator]),\r\n countyId: new FormControl({ value: this.workSiteData.countyId, disabled: true }),\r\n geographyId: new FormControl({ value: this.workSiteData.geographyId, disabled: true }),\r\n \r\n //LCA Classification\r\n basisOfClassification: this.formBuilder.group({}),\r\n wageLevel: this.formBuilder.group({}),\r\n additionalLCAType: this.formBuilder.group({}),\r\n jobTitle: new FormControl({ value: decodedjobTitle, disabled: true }, Validators.required),\r\n oesSOCTitle: new FormControl({ value: this.workSiteData.oesSOCTitle, disabled: true }),\r\n onetOcssId: new FormControl({ value: this.workSiteData.onetOcssId, disabled: true }, Validators.required),\r\n oessocCode: new FormControl({ value: this.workSiteData.oessocCode, disabled: true }),\r\n lcaValidityFrom: new FormControl({ value: this.workSiteData.lcaValidityFrom ? new Date(this.workSiteData.lcaValidityFrom) : null, disabled: true }),\r\n lcaValidityTo: new FormControl({ value: this.workSiteData.lcaValidityTo ? new Date(this.workSiteData.lcaValidityTo) : null, disabled: true }),\r\n dotCode: new FormControl({ value: this.workSiteData.dotCode, disabled: true }),\r\n wageSourceAndYear: new FormControl({ value: this.workSiteData.wageSourceAndYear, disabled: true }),\r\n prevailingWage: new FormControl({ value: this.workSiteData.prevailingWage ? this.workSiteData.prevailingWage : 0, disabled: true }, Validators.required),\r\n actualSalary: new FormControl({ value: this.workSiteData.actualSalary, disabled: true }, Validators.required),\r\n isInSalaryRange: new FormControl({ value: this.workSiteData.isInSalaryRange, disabled: true }),\r\n salaryRangeFrom: new FormControl({ value: this.workSiteData.salaryRangeFrom, disabled: true }, Validators.required),\r\n salaryRangeTo: new FormControl({ value: this.workSiteData.salaryRangeTo, disabled: true }, Validators.required),\r\n emailAddressForLCA: new FormControl({ value: this.workSiteData.emailAddressForLCA ? this.workSiteData.emailAddressForLCA : \"certified.lca@ca.ey.com\", disabled: true, }),\r\n headcount: new FormControl({ value: this.workSiteData.headcount ? this.workSiteData.headcount : 1, disabled: true }, Validators.required),\r\n isbasis: new FormControl({ value: this.workSiteData.isbasis, disabled: true })\r\n });\r\n this.addDynamicControls();\r\n this.isPageReady = true;\r\n this.subscribeToFormControlValueChanges();\r\n\r\n this.worksiteForm.valueChanges.subscribe((val=>{\r\n this.logOnChangeValidationErrors();\r\n }));\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n addDynamicControls(): void {\r\n\r\n this.basisOfClassification.forEach(key => {\r\n console.log(key);\r\n (this.worksiteForm.get('basisOfClassification') as FormGroup).addControl(key.shortForm, new FormControl({ value: key.isSelected, disabled: true }))\r\n });\r\n\r\n this.wageLevel.forEach(key => {\r\n console.log(key);\r\n\r\n (this.worksiteForm.get('wageLevel') as FormGroup).addControl(key.wageLevel, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n\r\n this.additionalLCAType.forEach(key => {\r\n console.log(key);\r\n (this.worksiteForm.get('additionalLCAType') as FormGroup).addControl(key.shortForm, new FormControl({ value: key.isSelected, disabled: true }))\r\n })\r\n\r\n }\r\n\r\n get formControls() {\r\n return this.worksiteForm.controls;\r\n }\r\n\r\n subscribeToFormControlValueChanges() {\r\n this.worksiteForm.get(\"isInSalaryRange\").valueChanges.subscribe(isSalaryRange => {\r\n if (isSalaryRange) {\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], false);\r\n if (this.salaryFrom > 0) {\r\n this.formControls['salaryRangeFrom'].setValue(null);\r\n }\r\n if (this.salaryTo > 0) {\r\n this.formControls['salaryRangeTo'].setValue(null);\r\n }\r\n this.worksiteForm.updateValueAndValidity();\r\n } else {\r\n\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], true);\r\n this.salaryFrom = this.formControls['salaryRangeFrom'].value;\r\n this.salaryTo = this.formControls['salaryRangeTo'].value;\r\n this.formControls['salaryRangeFrom'].setValue(null);\r\n this.formControls['salaryRangeTo'].setValue(null);\r\n this.worksiteForm.updateValueAndValidity();\r\n }\r\n });\r\n\r\n //this.additionalWorksiteValueChange();\r\n //this.additionalLCAValueChange();\r\n this.additionalLCAWageRangeValueChange();\r\n //this.secondaryEntityValueChange();\r\n }\r\n\r\n enableEdit() {\r\n try {\r\n if (this.worksiteForm.controls[\"addnlWorksites\"].value == true) {\r\n this.isAdditineray = true;\r\n }\r\n else {\r\n this.isAdditineray = false;\r\n }\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.worksiteForm, [], false);\r\n this.enableDisableControls();\r\n this.isGridEditable = true;\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n unlockFields() {\r\n try {\r\n this.isUnlocked = true;\r\n this._dafService.disableEnableFormControl(this.worksiteForm,[\"county\",\"countryOnOLFC\"], false);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n lockFields() {\r\n try {\r\n this.isUnlocked = false;\r\n //this._dafService.disableEnableFormControl(this.worksiteForm,[\"employeeEmail\"], true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n enableAdditionalworksite() {\r\n\r\n if (this.worksiteForm.controls[\"addnlWorksites\"].value == true) {\r\n this.isAdditineray = true;\r\n }\r\n else {\r\n this.isAdditineray = false;\r\n }\r\n }\r\n\r\n\r\n saveWorksiteAddressData() {\r\n debugger;\r\n this.isPageReady = false;\r\n //this.logValidationErrors();\r\n this.isPageReady = true;\r\n this.readFormValues(this.worksiteForm);\r\n\r\n if (this.worksiteForm.valid && this.validateLCAData(this.workSiteData) ) {\r\n this.workSiteData.worksiteAddress = this.modifiedRecords;\r\n if (this.workSiteData.notes) {\r\n this.workSiteData.notes = this.encodeHTMLEntities(this.workSiteData.notes);\r\n }\r\n if (this.workSiteData.lcaValidityFrom == null) {\r\n this.lcaValidityFrom = null;\r\n }\r\n else {\r\n this.lcaValidityFrom = this.workSiteData.lcaValidityFrom.toDateString();\r\n }\r\n if (this.workSiteData.lcaValidityTo == null) {\r\n this.lcaValidityTo = null;\r\n }\r\n else {\r\n this.lcaValidityTo = this.workSiteData.lcaValidityTo.toDateString();\r\n }\r\n if (this.workSiteData.jobTitle) {\r\n this.workSiteData.jobTitle = this.encodeHTMLEntities(this.workSiteData.jobTitle);\r\n }\r\n this._dafService.savePrimaryWorksiteAddress(this.workSiteData, this.lcaValidityFrom, this.lcaValidityTo).toPromise().then(() => {\r\n \r\n this.getMasterData();\r\n this.getAddressInformation();\r\n this._dafService.disableEnableAllFormControls(this.worksiteForm, [], true);\r\n this.isEditEnabled = false;\r\n this.isAdditineray = false;\r\n this.isUnlocked = false;\r\n this.isPageReady = true;\r\n this.isGridEditable = false;\r\n this.notifier.notify('success', 'Worksite address details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Error occurred while saving the details');\r\n });\r\n }\r\n else {\r\n this.notifier.notify('error', 'All fields are required and should have data');\r\n this.isPageReady = true;\r\n }\r\n }\r\n\r\n \r\n\r\n private readFormValues(group: FormGroup) {\r\n Object.keys(this.worksiteForm.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.getDynamicControlValue(abstractControl, key);\r\n }\r\n else {\r\n this.workSiteData[key] = abstractControl.value;\r\n }\r\n });\r\n }\r\n\r\n resetForm() {\r\n try {\r\n this.fetchcaseData(this.caseId);\r\n this.isEditEnabled = false;\r\n this.isUnlocked = false;\r\n this.isGridEditable = false;\r\n this._dafService.disableEnableAllFormControls(this.worksiteForm,[],true);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n get f() {\r\n return this.worksiteForm.controls;\r\n }\r\n\r\n logValidationErrors(group: FormGroup = this.worksiteForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n // && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.worksiteForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n setCSPanelState() {\r\n this.collapseCSPanel.emit(0);\r\n }\r\n\r\n// public cancelHandler(): void {\r\n//this.isActivate=false; }\r\n\r\n\r\n ngOnDestroy(): void {\r\n // this.worksiteForm.get(\"expediteCase\").valueChanges.subscribe().unsubscribe();\r\n // this.worksiteForm.get(\"placeOnHold\").valueChanges.subscribe().unsubscribe();\r\n }\r\n\r\n getOfficeAddress() {\r\n this._dafService.getOfficeAddress().subscribe((data: any) => {\r\n this.addressDataSource = data;\r\n this.addressList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n getStates(){\r\n this._dafService.getStates().subscribe((data: any) => {\r\n this.statesDataSource = data;\r\n this.statesList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n onStateChange(event) {\r\n this.worksiteForm.controls[\"zipCodeId\"].setValue(null);\r\n this.worksiteForm.controls[\"cityId\"].setValue(null);\r\n this.worksiteForm.controls[\"cityId\"].disable();\r\n this.worksiteForm.controls[\"geographyId\"].setValue(null);\r\n this.worksiteForm.controls[\"countyId\"].setValue(null);\r\n this.GetZipcodes(event);\r\n this.GetCounty(event);\r\n this.GetGeography(event);\r\n }\r\n\r\n GetZipcodes(event): Promise {\r\n this.zipcodeList = [];\r\n this.zipcodeSourcefrOffc = [];\r\n let res = this._dafService.getZipcodeByState(event).toPromise().then((data: any) => {\r\n this.zipcodeList = data;\r\n this.zipcodeSource = data;\r\n this.zipcodeSourcefrOffc = data;\r\n //if (data.length > 0) {\r\n // data.forEach(element => {\r\n // this.zipcodeList[index].push(element.zipcode.toString());\r\n // });\r\n //}\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n GetZipcodesforOffc(event): Promise {\r\n \r\n this.zipcodeSourcefrOffc = [];\r\n let res = this._dafService.getZipcodeByState(event).toPromise().then(async (data: any) => {\r\n this.zipcodeSourcefrOffc = data;\r\n\r\n const zipres = this.zipcodeSourcefrOffc.filter(s => s.zipcode == this.OfficeDataSource[0].zip);\r\n this.worksiteForm.controls[\"zipCodeId\"].setValue(zipres[0].zipCodeId);\r\n this.worksiteForm.controls[\"cityId\"].enable();\r\n await this.GetCityfroffc(zipres[0].zipCodeId);\r\n \r\n //const zipres1 = this.countySource.filter(s => s.value == this.OfficeDataSource[0].country);\r\n //this.worksiteForm.controls[\"countyId\"].setValue(zipres1[0].id);\r\n \r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n \r\n }\r\n );\r\n \r\n return res;\r\n }\r\n onZipCodeChange(event) {\r\n this.worksiteForm.controls[\"cityId\"].setValue(null);\r\n this.worksiteForm.controls[\"cityId\"].enable();\r\n this.GetCity(event);\r\n }\r\n\r\n GetCountyInfo(event, index: any): Promise {\r\n this.cityArray = [];\r\n this.countyArray = [];\r\n let res = this._addLCAService.GetCountyInfo(event).toPromise().then((data: any) => {\r\n if (data.length > 0) {\r\n //this.citySourceArray = data.map(x=>x.cityName);\r\n //this.worksiteForm.controls[\"city\"].setValue(data[0].cityName);\r\n //this.worksiteForm.controls[\"county\"].setValue(data[0].countyName);\r\n this.worksiteForm.updateValueAndValidity();\r\n }\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n }\r\n );\r\n return res;\r\n }\r\n\r\n setCounty(event, index: any){\r\n try{\r\n this.worksiteForm.controls[\"city\"].setValue(event);\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n\r\n GetCounty(event): Promise {\r\n this.countyList = [];\r\n let res = this._dafService.getCountyByState(event).toPromise().then((data: any) => {\r\n this.countyList = data;\r\n this.countySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n GetCity(event): Promise {\r\n \r\n this.cityList = [];\r\n let res = this._dafService.getCityByZipcode(event).toPromise().then(async(data: any) => {\r\n this.cityList = data;\r\n this.citySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while fetching the city list');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n public officeAddressFilterChange(filter: any): void {\r\n this.addressList = this.addressDataSource.filter(x => x.displayOffcName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n\r\nGetCityfroffc(event): Promise < any > {\r\n\r\n this.cityList = [];\r\n \r\n let res = this._dafService.getCityByZipcode(event).toPromise().then(async (data: any) => {\r\n this.cityList = data;\r\n this.citySource = data;\r\n console.log(this.citySource);\r\n const cityres = this.citySource.filter(s => s.city.toLowerCase() == this.OfficeDataSource[0].city.toLowerCase());\r\n this.worksiteForm.controls[\"cityId\"].setValue(cityres[0].cityID);\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while fetching the city list');\r\n }\r\n );\r\n \r\n return res;\r\n}\r\n public stateFilterChange(filter: any): void {\r\n this.statesList = this.statesDataSource.filter(x => x.stateName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n\r\n public zipFilterChange(filter: any): void {\r\n this.zipcodeList = this.zipcodeSource.filter(x => x.zipcode.includes(filter));\r\n }\r\n\r\n public cityFilterChange(filter: any): void {\r\n this.cityList = this.citySource.filter(x => x.city.toLowerCase().includes(filter));\r\n }\r\n\r\n public msaFilterChange(filter: any): void {\r\n this.geographyList = this.geographySource.filter(x => x.value.toLowerCase().includes(filter));\r\n }\r\n\r\n public countyFilterChange(filter: any): void {\r\n this.countyList = this.countySource.filter(x => x.value.toLowerCase().includes(filter));\r\n }\r\n\r\n GetGeography(event): Promise {\r\n this.geographyList = [];\r\n let res = this._dafService.getGeographyByState(event).toPromise().then((data: any) => {\r\n this.geographyList = data;\r\n this.geographySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n OnCountyChange(event) {\r\n this.geographyList = [];\r\n let selectedState = this.worksiteForm.get(\"stateId\").value;\r\n let res = this._dafService.GetGeographyByCounty(selectedState, event).toPromise().then((data: any) => {\r\n this.geographyList = data;\r\n this.geographySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n OnGeographyChange(event) {\r\n this.countyList = [];\r\n let selectedState = this.worksiteForm.get(\"stateId\").value;\r\n this.getFLCWageOnMSAChange();\r\n let res = this._dafService.GetCountyByGeography(selectedState, event).toPromise().then((data: any) => {\r\n this.countyList = data;\r\n this.countySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n if (text) {\r\n escapeQuotes = text.replace(/['\"()]/g, escape);\r\n }\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n if (text) {\r\n unescapeQuotes = text.replace(\"%27\", unescape);\r\n unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%28\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%29\", unescape);\r\n }\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n\r\n OnOfficeChange(event) {\r\n\r\n this.OfficeDataSource = [];\r\n let selectedoffc = this.worksiteForm.get(\"officeaddressId\").value;\r\n let res = this._dafService.getOfficeInfoById(selectedoffc).toPromise().then(async (data: any) => {\r\n this.OfficeDataSource = data;\r\n \r\n this.worksiteForm.controls[\"streetName\"].setValue(this.OfficeDataSource[0].street1);\r\n this.worksiteForm.controls[\"streetNumber\"].setValue(this.OfficeDataSource[0].street2);\r\n const result = this.statesDataSource.filter(s => s.state == this.OfficeDataSource[0].state);\r\n this.worksiteForm.controls[\"stateId\"].setValue(result[0].stateId);\r\n this.onStateChange(result[0].stateId);\r\n this.GetZipcodesforOffc(result[0].stateId);\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n\r\n }\r\n );\r\n\r\n return res;\r\n }\r\n\r\n getetONETOCSSDetails() {\r\n this.isPageReady = false;\r\n this._dafService.getetONETOCSSDetails().toPromise().then((data: any) => {\r\n this.onetocsSDetails = data;\r\n this.onetocsSTitle = data;\r\n this.onetocsSCode = data;\r\n this.additionalLCAONETOCSSTitle = data;\r\n this.additionalLCAONETOCSSCode = data;\r\n console.log(this.onetocsSDetails);\r\n\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n getDotCodeBySOCCd(event) {\r\n if (this.worksiteForm)\r\n this.worksiteForm.controls[\"dotCode\"].setValue(null);\r\n this._dafService.getDotCodeBySOCCd(event).toPromise().then((data: any) => {\r\n this.dotCodeList = data;\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n public onOESSOCTitlevalueChange(event) {\r\n this.worksiteForm.controls[\"onetOcssId\"].setValue(event.onetOcssId);\r\n //this.getLCAPrevailingwage(event, false);\r\n this.getDotCodeBySOCCd(event.onetOcssId);\r\n this.worksiteForm.updateValueAndValidity\r\n\r\n let socCode = event.onetCode;\r\n this.worksiteForm.get(\"oessocCode\").setValue(socCode);\r\n this.getFLCWageOnMSAChange();\r\n this.view.forEach((key: any, i: number) => {\r\n this.getFLCWage(key.geographyId, socCode, this.selectedWageLevelId, i);\r\n });\r\n }\r\n\r\n public onOESSOCTitleFilterChange(event) {\r\n this.onetocsSTitle = this.onetocsSDetails.filter(x => x.onetTitle.toLowerCase().includes(event.toLowerCase()));\r\n\r\n }\r\n\r\n public onOESSOCCodevalueChange(event) {\r\n this.worksiteForm.controls[\"onetOcssId\"].setValue(event.onetOcssId);\r\n //this.getLCAPrevailingwage(event, false);\r\n this.getDotCodeBySOCCd(event.onetOcssId);\r\n this.worksiteForm.updateValueAndValidity();\r\n\r\n let socCode = event.onetCode;\r\n this.worksiteForm.get(\"oessocCode\").setValue(socCode);\r\n //let geographyId = this.addressInfo.filter(x => x.addressType == \"Primary\")[0].geographyId;\r\n this.getFLCWageOnMSAChange();\r\n this.view.forEach((key: any, i: number) => {\r\n this.getFLCWage(key.geographyId, socCode, this.selectedWageLevelId, i);\r\n });\r\n //if (this.selectedWageLevelId && socCode && geographyId) {\r\n // this.getFLCWage(geographyId, socCode, this.selectedWageLevelId);\r\n //}\r\n }\r\n\r\n public onAdditionalLCAOESSOCTitlevalueChange(event) {\r\n this.worksiteForm.controls[\"additionalLCAonetOcssId\"].setValue(event);\r\n //this.getLCAPrevailingwage(event, true);\r\n this.worksiteForm.updateValueAndValidity();\r\n\r\n }\r\n\r\n public onAdditionalLCAOESSOCCodevalueChange(event) {\r\n this.worksiteForm.controls[\"additionalLCAonetOcssId\"].setValue(event);\r\n this.getLCAPrevailingwage(event, true);\r\n this.worksiteForm.updateValueAndValidity();\r\n\r\n }\r\n\r\n public onOESSOCCodeFilterChange(event) {\r\n this.onetocsSCode = this.onetocsSDetails.filter(x => x.onetCode.toLowerCase().includes(event.toLowerCase()));\r\n\r\n }\r\n\r\n getAddressInformation() {\r\n this.isPageReady = false;\r\n this._dafService.getAddressWizardInformation(this.caseId).toPromise().then((data: any) => {\r\n this.addressInfo = data;\r\n //if(this.addressInfo.length==0){\r\n // for(let i=0;i<3;i++){\r\n // var newAddress= new addressWizardInfos();\r\n // newAddress.caseSummaryId=this.caseSummaryId;\r\n // this.addressInfo.push(newAddress);\r\n // }\r\n // this.addressInfo[0].addressType=\"Primary\";\r\n // this.addressInfo[1].addressType=\"Additional\";\r\n // this.addressInfo[2].addressType=\"Secondary\";\r\n\r\n //}\r\n this.view = this.addressInfo;\r\n\r\n\r\n this.loadItems();\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n isAllSelected(item) {\r\n var formGroup = this.worksiteForm.get(\"wageLevel\") as FormGroup;\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n if (key === item.key) {\r\n let currValue = abstractControl.value as boolean;\r\n abstractControl.setValue(true);\r\n }\r\n else {\r\n abstractControl.setValue(false);\r\n }\r\n });\r\n\r\n this.selectedWageLevelId = this.wageLevel.filter(p => p.wageLevel == item.key)[0].wageLevelId;\r\n let socCode = this.worksiteForm.get(\"oessocCode\").value;\r\n this.getFLCWageOnMSAChange();\r\n this.view.forEach((key: any, i: number) => {\r\n this.getFLCWage(key.geographyId, socCode, this.selectedWageLevelId, i);\r\n });\r\n }\r\n\r\n getFLCWage(geographyId: number, socCode: any, selectedWageLevelId: number, i: number) {\r\n\r\n this._dafService.getFLCWage(geographyId, socCode, selectedWageLevelId).toPromise().then((data: any) => {\r\n let PLCwage = data;\r\n if (this.view[i].addressType == \"Primary\")\r\n this.worksiteForm.get(\"prevailingWage\").setValue(PLCwage);\r\n\r\n this.view[i].flcWage = PLCwage;\r\n this.view[i].pwi = PLCwage >= this.view[i].salary ? true : false;\r\n this.view[i].changeType = \"UPDATE\";\r\n this.saveHandler(this.view[i]);\r\n //this.worksiteForm.get(\"prevailingWage\").setValue(data);\r\n //this.view.find(x => x.addressType == \"Primary\").flcWage = data;\r\n //this.view.find(x => x.addressType == \"Primary\").pwi = data >= this.worksiteForm.get(\"actualSalary\").value ? true : false;\r\n //this.view.find(x => x.addressType == \"Primary\").changeType = \"UPDATE\";\r\n //this.saveHandler(this.view.find(x => x.addressType == \"Primary\"));\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting the FLC Wage');\r\n }\r\n );\r\n }\r\n\r\n getFLCWageOnMSAChange() {\r\n let socCode = this.worksiteForm.get(\"oessocCode\").value;\r\n let geographyId = this.worksiteForm.get(\"geographyId\").value;\r\n this._dafService.getFLCWage(geographyId, socCode, this.selectedWageLevelId).toPromise().then((data: any) => {\r\n let PLCwage = data;\r\n \r\n this.worksiteForm.get(\"prevailingWage\").setValue(PLCwage);\r\n\r\n this.view.forEach((key: any, i: number) => {\r\n if (this.view[i].addressType == \"Primary\") {\r\n this.view[i].flcWage = data;\r\n this.view[i].geography = this.geographySource.find(x => x.id == geographyId).value;\r\n this.view[i].geographyId = geographyId;\r\n this.view[i].pwi = PLCwage >= this.view[i].salary ? true : false;\r\n this.view[i].changeType = \"UPDATE\";\r\n this.saveHandler(this.view[i]);\r\n }\r\n });\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting the FLC Wage');\r\n }\r\n );\r\n }\r\n\r\n private getDynamicControlValue(formGroup: FormGroup, childFormGroup: string) {\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n console.log(abstractControl);\r\n if (childFormGroup === 'basisOfClassification') {\r\n this.workSiteData.basisOfClassification.filter(p => p.shortForm == key)[0].isSelected = abstractControl.value;\r\n }\r\n else if (childFormGroup === 'wageLevel') {\r\n if (abstractControl.value === true) {\r\n this.workSiteData.wageLevelId = this.wageLevel.filter(p => p.wageLevel == key)[0].wageLevelId;\r\n }\r\n }\r\n });\r\n\r\n }\r\n private enableDisableControls() {\r\n if (this.worksiteForm.controls[\"isInSalaryRange\"].value == true) {\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], false);\r\n this.worksiteForm.updateValueAndValidity();\r\n }\r\n else {\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"salaryRangeFrom\", \"salaryRangeTo\"], true);\r\n this.formControls['salaryRangeFrom'].setValue(null);\r\n this.formControls['salaryRangeTo'].setValue(null);\r\n this.worksiteForm.updateValueAndValidity();\r\n }\r\n }\r\n private enableAdditionalLCA() {\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"additionalLCAJobTitle\", \"additionalLCAOESSOCTitle\", \"additionalLCAonetOcssId\", \"additionalLCAPrevailingWage\", \"additionalLCAactualSalary\", \"isAdditionalLCAWageRange\", \"additionalLCASalaryRangeTo\", \"additionalLCAType\"], false);\r\n this.formControls['additionalLCAJobTitle'].setValue(this.formControls['jobTitle'].value);\r\n this.worksiteForm.controls[\"additionalLCAonetOcssId\"].setValue(this.formControls['onetOcssId'].value);\r\n this.formControls['additionalLCAPrevailingWage'].setValue(this.formControls['prevailingWage'].value);\r\n this.formControls['additionalLCAactualSalary'].setValue(this.formControls['actualSalary'].value);\r\n this.formControls['isAdditionalLCAWageRange'].setValue(this.formControls['isInSalaryRange'].value);\r\n this.formControls['additionalLCASalaryRangeFrom'].setValue(this.formControls['salaryRangeFrom'].value);\r\n this.formControls['additionalLCASalaryRangeTo'].setValue(this.formControls['salaryRangeTo'].value);\r\n }\r\n\r\n private disableAdditionalLCA() {\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"additionalLCAJobTitle\", \"additionalLCAOESSOCTitle\", \"additionalLCAonetOcssId\", \"additionalLCAPrevailingWage\", \"additionalLCAactualSalary\", \"isAdditionalLCAWageRange\", \"additionalLCASalaryRangeTo\", \"additionalLCAType\"], true);\r\n this.formControls['additionalLCAJobTitle'].setValue(\"\");\r\n this.formControls['additionalLCAOESSOCTitle'].setValue(\"\");\r\n\r\n this.formControls['additionalLCAonetOcssId'].setValue(null);\r\n this.formControls['additionalLCAPrevailingWage'].setValue(null);\r\n this.formControls['additionalLCAactualSalary'].setValue(null);\r\n this.formControls['isAdditionalLCAWageRange'].setValue(false);\r\n this.formControls['additionalLCASalaryRangeFrom'].setValue(null);\r\n this.formControls['additionalLCASalaryRangeTo'].setValue(null);\r\n this.resetLCAType();\r\n this.worksiteForm.updateValueAndValidity();\r\n\r\n }\r\n\r\n private additionalLCAWageRangeValueChange() {\r\n this.worksiteForm.get(\"isAdditionalLCAWageRange\").valueChanges.subscribe(isTrue => {\r\n if (isTrue) {\r\n this.enableadditionalLCAWageRange();\r\n } else {\r\n this.disableadditionalLCAWageRange();\r\n }\r\n });\r\n }\r\n\r\n private enableadditionalLCAWageRange() {\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"additionalLCASalaryRangeFrom\", \"additionalLCASalaryRangeTo\"], false);\r\n }\r\n\r\n private disableadditionalLCAWageRange() {\r\n this._dafService.disableEnableFormControl(this.worksiteForm, [\"additionalLCASalaryRangeFrom\", \"additionalLCASalaryRangeTo\"], true);\r\n this.formControls['additionalLCASalaryRangeFrom'].setValue(null);\r\n this.formControls['additionalLCASalaryRangeTo'].setValue(null);\r\n this.worksiteForm.updateValueAndValidity();\r\n }\r\n\r\n private validateLCAData(lcaAssessmentData: any) {\r\n let isValidationSuccess = true;\r\n if (lcaAssessmentData.lcaValidityTo < lcaAssessmentData.lcaValidityFrom) {\r\n this.notifier.notify('error', 'LCA Validity to date cannot be less than from date');\r\n isValidationSuccess = false;\r\n }\r\n if (lcaAssessmentData.isInSalaryRange === true) {\r\n if (lcaAssessmentData.salaryRangeTo < lcaAssessmentData.salaryRangeFrom) {\r\n this.notifier.notify('error', 'Salary range to cannot be less than salary range from');\r\n isValidationSuccess = false;\r\n }\r\n else if ((lcaAssessmentData.actualSalary > lcaAssessmentData.salaryRangeTo) ||\r\n (lcaAssessmentData.actualSalary < lcaAssessmentData.salaryRangeFrom)) {\r\n this.notifier.notify('error', 'Actual salary should be in between salary from range and salary to range');\r\n isValidationSuccess = false;\r\n }\r\n\r\n }\r\n if (lcaAssessmentData.isAdditionalLCAWageRange === true) {\r\n if (lcaAssessmentData.additionalLCASalaryRangeTo < lcaAssessmentData.additionalLCASalaryRangeFrom) {\r\n this.notifier.notify('error', 'Additional LCA salary range to cannot be less than salary range from');\r\n isValidationSuccess = false;\r\n }\r\n else if ((lcaAssessmentData.additionalLCAactualSalary > lcaAssessmentData.additionalLCASalaryRangeTo) ||\r\n (lcaAssessmentData.additionalLCAactualSalary < lcaAssessmentData.additionalLCASalaryRangeFrom)) {\r\n this.notifier.notify('error', 'Additional LCA actual salary should be in between salary from range and salary to range');\r\n isValidationSuccess = false;\r\n }\r\n\r\n }\r\n\r\n if (this.selectedWageLevelId = null) {\r\n this.notifier.notify('error', 'Wage Level is mandatory. Please select the value and try again.');\r\n isValidationSuccess = false;\r\n }\r\n\r\n return isValidationSuccess;\r\n }\r\n\r\n private getLCAPrevailingwage(onetId: string, isAdditionalLCA: boolean) {\r\n this.isPageReady = false;\r\n let prevailingwage: number = 0;\r\n let onetCode: string\r\n if (this.onetocsSDetails.filter(p => p.onetOcssId == onetId) != null) {\r\n onetCode = this.onetocsSDetails.filter(p => p.onetOcssId == onetId)[0].onetCode;\r\n }\r\n this._dafService.getLCAPrevailingwage(this.caseId, onetCode).toPromise().then((data: any) => {\r\n prevailingwage = data;\r\n if (isAdditionalLCA) {\r\n this.worksiteForm.controls[\"additionalLCAPrevailingWage\"].setValue(prevailingwage);\r\n }\r\n else {\r\n this.worksiteForm.controls[\"prevailingWage\"].setValue(prevailingwage);\r\n\r\n }\r\n\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n }\r\n );\r\n\r\n return prevailingwage;\r\n }\r\n\r\n resetLCAType() {\r\n var formGroup = this.worksiteForm.get(\"additionalLCAType\") as FormGroup;\r\n Object.keys(formGroup.controls).forEach((key: string) => {\r\n const abstractControl = formGroup.get(key);\r\n abstractControl.setValue(false);\r\n });\r\n }\r\n\r\n public addHandler(): void {\r\n var address = new addressWizardInfos();\r\n var modalData = new worksiteAddressModal();\r\n address.caseID = \"\";\r\n address.caseSummaryID = 0;\r\n address.addressWizardID = 0,\r\n address.addressType = \"\",\r\n address.entityName = \"\",\r\n address.streetNumber = \"\",\r\n address.streetName = \"\",\r\n address.apt = \"\",\r\n address.city = \"\",\r\n address.state = \"\",\r\n address.postalCode = \"\",\r\n address.county = \"\",\r\n address.countyOnOLFC = \"\",\r\n address.salary = this.worksiteForm.value.actualSalary,\r\n address.flcWage = 0,\r\n address.pwi = null\r\n\r\n modalData.oesSOCCode = this.worksiteForm.get(\"oessocCode\").value;\r\n\r\n modalData.wageLevelId = this.selectedWageLevelId ? this.selectedWageLevelId : null;\r\n modalData.addressWizardInfos = address;\r\n this.editDataItem = modalData;\r\n this.isNew = true;\r\n }\r\n\r\n public editHandler(args: AddEvent): void {\r\n var modalData = new worksiteAddressModal();\r\n modalData.oesSOCCode = this.worksiteForm.get(\"oessocCode\").value;\r\n modalData.wageLevelId = this.selectedWageLevelId ? this.selectedWageLevelId : null;\r\n modalData.addressWizardInfos = args.dataItem;\r\n\r\n this.editDataItem = modalData;\r\n\r\n this.isNew = false;\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n }\r\n\r\n public saveHandler(product: addressWizardInfos): void {\r\n if (this.isNew) {\r\n this.view.splice(0, 0, product);\r\n this.modifiedRecords.push(product);\r\n }\r\n else {\r\n Object.assign(\r\n this.view.find(({ addressWizardID }) => addressWizardID === product.addressWizardID),\r\n product\r\n );\r\n\r\n if (this.modifiedRecords.find(({ addressWizardID }) => addressWizardID === product.addressWizardID)) {\r\n Object.assign(\r\n this.modifiedRecords.find(({ addressWizardID }) => addressWizardID === product.addressWizardID),\r\n product\r\n );\r\n\r\n if (product.addressType == \"Primary\")\r\n this.worksiteForm.get(\"prevailingWage\").setValue(product.flcWage);\r\n }\r\n else {\r\n this.modifiedRecords.push(product);\r\n }\r\n }\r\n\r\n this.editDataItem = undefined;\r\n this.isNew = false;\r\n this.loadItems();\r\n }\r\n\r\n public setDependentIndexToDelete(args: any) {\r\n this.deleteMessage = \"\";\r\n this.isDeleteClicked = true;\r\n this.deleteRow = args;\r\n this.deleteIndex = args.rowIndex;\r\n if (args.dataItem.addressType == \"Primary\") {\r\n this.deleteMessage = \"Deleting this record will remove address details from Primary Worksite Address module.\";\r\n }\r\n this.showDialog = true;\r\n }\r\n\r\n public deleteDependent() {\r\n this.view.splice(this.deleteIndex, 1);\r\n this.deleteRow.dataItem.changeType = \"DELETE\";\r\n this.modifiedRecords.push(this.deleteRow.dataItem);\r\n this.loadItems();\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDelete() {\r\n this.showDialog = false;\r\n }\r\n\r\n public onDialogClose() {\r\n this.showDialog = false;\r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotificationService } from '@progress/kendo-angular-notification';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { RecaptureWizards } from 'src/app/DAF/Models/RecaptureWizards';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-recapture-wizard',\r\n templateUrl: './recapture-wizard.component.html',\r\n styleUrls: ['./recapture-wizard.component.scss']\r\n})\r\nexport class RecaptureWizardComponent implements OnInit {\r\n public emailForm: FormGroup;\r\n public isReady=false;\r\n public WorkSite=\"Recapture Info\";\r\n private hideAfter = 2000;\r\n public WorkSiteDetails: any = [];\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n public dateDifference=0;\r\n private notifier: NotifierService;\r\n public primaryworksiteInfo:RecaptureWizards[]=[];\r\n\r\n tripNumber:number;\r\n dateExited:Date;\r\n dateEntered:Date;\r\n daysOutSideUS:number;\r\n Notes:string;\r\n \r\n private gridData: any[] = [\r\n {\r\n \"tripNumber\": 1,\r\n \"dateExited\": null,\r\n \"dateEntered\": null,\r\n \"daysOutSideUS\": 0,\r\n \"notes\": \"\"\r\n },\r\n {\r\n \"tripNumber\": 2,\r\n \"dateExited\": null,\r\n \"dateEntered\": null,\r\n \"daysOutSideUS\": 0,\r\n \"notes\": \"\"\r\n },\r\n {\r\n \"tripNumber\": 3,\r\n \"dateExited\": null,\r\n \"dateEntered\": null,\r\n \"daysOutSideUS\": 0,\r\n \"notes\": \"\"\r\n }];\r\n\r\n @Input() caseSummaryId = 0;\r\n\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n\r\n\r\n\r\n\r\n constructor(private formBuilder: FormBuilder,@Inject(NotificationService) private notificationService: NotificationService, private _dafService: DafService,notifier: NotifierService) \r\n { \r\n this.createForm();\r\n this.notifier = notifier; \r\n }\r\n\r\n createForm(){\r\n this.emailForm = this.formBuilder.group({\r\n emails: this.formBuilder.array([this.createEmailFormGroup()])\r\n });\r\n this.isReady=true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getprimaryworkSiteItineraryDetails()\r\n\r\n }\r\n\r\n\r\n\r\n\r\n getprimaryworkSiteItineraryDetails(){\r\n this.isReady = false;\r\n this._dafService.getprimaryworkSiteItineraryDetails(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.primaryworksiteInfo = data;\r\n\r\n \r\n var arrayControl = this.emailForm.get('emails') as FormArray;\r\n if(this.primaryworksiteInfo.length>0){\r\n while (arrayControl.length) {\r\n arrayControl.removeAt(0);\r\n }\r\n this.primaryworksiteInfo.forEach(async (staff,i) => {\r\n arrayControl.push(this.formBuilder.group(staff))\r\n });\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isReady = true;\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n onstartDateChange(event,index){\r\n\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.periodFrom=event;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.onStartsDateChange(event,index);\r\n \r\n }\r\n\r\n onEndDateChange(event,index){\r\n var data=this.emailForm.controls.emails['controls'][index].value.periodFrom; \r\n if((data!=\"\"&&data!=null) && (event!=\"\"&&event!=null)){\r\n this.dateDifference = Math.round((event - data)/1000/60/60/24);\r\n }\r\n else{\r\n this.dateDifference=null;\r\n }\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.daysPerMonth=this.dateDifference;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n \r\n }\r\n\r\n public closeForm(): void {\r\n this.cancel.emit();\r\n}\r\n\r\n onEndDateChanges(event,index){\r\n\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.periodTo=event;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.onEndDateChange(event,index);\r\n\r\n }\r\n\r\n\r\n \r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n}\r\n\r\n\r\n\r\n onStartsDateChange(event,index){\r\n var data=this.emailForm.controls.emails['controls'][index].value.periodTo; \r\n if((data!=\"\"&&data!=null) && (event!=\"\"&&event!=null)){\r\n this.dateDifference = Math.round((data - event)/1000/60/60/24); \r\n }\r\n else{\r\n this.dateDifference=null;\r\n }\r\n \r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.daysPerMonth=this.dateDifference;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n }\r\n \r\n\r\n\r\n private createEmailFormGroup(): FormGroup {\r\n return new FormGroup({\r\n 'recaptureWizard': new FormControl(false,Validators.required),\r\n 'statusStart': new FormControl(''),\r\n 'initialStatusEnd': new FormControl('',Validators.required),\r\n 'recaptureTime': new FormControl('',Validators.required),\r\n 'numberOfYears': new FormControl('',Validators.required),\r\n 'additionalTime': new FormControl('',Validators.required),\r\n 'adjustedStatusEndDate' : new FormControl('')\r\n })\r\n }\r\n\r\n public addEmailFormGroup() {\r\n const emails = this.emailForm.get('emails') as FormArray\r\n if(emails.length<10){\r\n emails.push(this.createEmailFormGroup())\r\n }\r\n\r\n }\r\n\r\n invalidMessage(){\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n","import { Component, Input, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { AddEvent, DataStateChangeEvent, GridComponent, GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Subscription } from 'rxjs';\r\nimport { SpecialDegreeAssessment, specialityDegreeDetails } from 'src/app/DAF/Models/specialityDegreeDetails';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-specialist-degree',\r\n templateUrl: './specialist-degree.component.html',\r\n styleUrls: ['./specialist-degree.component.scss']\r\n})\r\nexport class SpecialistDegreeComponent implements OnInit, OnDestroy {\r\n isPageReady: boolean;\r\n @Input() caseSummaryId = 0;\r\n @ViewChild(GridComponent, {static: false})\r\n private grid: GridComponent;\r\n public view: Array = [];\r\n public modifiedRecords: Array = [];\r\n public formGroup: FormGroup;\r\n private editedRowIndex: number;\r\n private docClickSubscription: Subscription = new Subscription();\r\n private isNew: boolean;\r\n public isEditEnabled: boolean;\r\n public isActivate=false;\r\n\r\n public isGridEditable: boolean;\r\n relationTypeList: { relationId: number; relationType: string; }[];\r\n specialityDegreeForm: FormGroup;\r\n specialDegreeDetail: specialityDegreeDetails;\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n isDisabled: boolean = false;\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n private notifier: NotifierService;\r\n private isDeleteClicked: boolean = false;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public deleteRow: any;\r\n degrees=[\"Associate\",\"Bachelor\",\"Master\",\"Doctorate\"];\r\n allowCustom=true;\r\n\r\n\r\n public educationLists: Array = [\r\n \"Bachelor\",\r\n \"Master\",\r\n \"Prof. Degree\",\r\n \"Phd/Doc\"\r\n ];\r\n public educations: Array = [\r\n \"Bachelor\",\r\n \"Master\",\r\n \"Prof. Degree\",\r\n \"Phd/Doc\"\r\n ];\r\n\r\n public experienceLists:Array=[\r\n \"No\",\r\n \"Edge\",\r\n \"Ed + Exp Prof Eval\",\r\n \"d. Eval.\"\r\n ];\r\n\r\n public experiences:Array=[\r\n \"No\",\r\n \"Edge\",\r\n \"Ed + Exp Prof Eval\",\r\n \"d. Eval.\"\r\n ];\r\n isSpouseSelected:boolean=false;\r\n showDialog:boolean = false;\r\n deleteIndex: number;\r\n public editDataItem: SpecialDegreeAssessment;\r\n\r\n \r\n spouseAndDependentMaster: Array = [];\r\n constructor(private renderer: Renderer2,\r\n private _dafService: DafService,\r\n private formBuilder: FormBuilder,\r\n notifier: NotifierService) { this.notifier = notifier; }\r\n\r\n\r\n \r\n \r\n\r\n\r\n ngOnInit() {\r\n\r\n \r\n\r\n this.relationTypeList = [\r\n {\r\n relationId: 0,\r\n relationType: '-Select-'\r\n },\r\n {\r\n relationId: 1,\r\n relationType: 'Dependents'\r\n },\r\n {\r\n relationId: 2,\r\n relationType: 'Spouse'\r\n }\r\n ];\r\n // this.specialDegreeDetail= new specialDegreeDetails();\r\n // this.specialDegreeDetail.isDependentExist = true;\r\n // this.specialDegreeDetail.relationDetail = this.view;\r\n // this.docClickSubscription.add(\r\n // this.renderer.listen(\"document\", \"click\", this.onDocumentClick.bind(this))\r\n // );\r\n //this.initializeForm();\r\n this.getSpecialityDegreeDetails();\r\n \r\n }\r\n\r\n\r\n openWizard(){\r\n this.isActivate=true;\r\n }\r\n\r\n public cancelHandlers(): void {\r\n this.isActivate=false; }\r\n\r\n getSpecialityDegreeDetails(){\r\n this.isPageReady = false;\r\n this._dafService.getSpecialityDegreeDetails(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.specialDegreeDetail = data;\r\n\r\n this.specialDegreeDetail.specialityDegree.forEach(item=>{\r\n if (item.enrollFrom != undefined) {\r\n item.enrollFrom = new Date(item.enrollFrom); \r\n } \r\n if (item.enrollTo != undefined) {\r\n item.enrollTo = new Date(item.enrollTo); \r\n }\r\n if(item.awardDate != undefined) {\r\n item.awardDate = new Date(item.awardDate); \r\n}\r\n});\r\n this.view = this.specialDegreeDetail.specialityDegree;\r\n console.log(data);\r\n console.log(this.view);\r\n console.log(this.specialDegreeDetail);\r\n this.initializeForm();\r\n this.loadItems(); \r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n initializeForm() {\r\n let decodedNotes = this.decodeHTMLEntities(this.specialDegreeDetail.notes);\r\n try {\r\n this.specialityDegreeForm = this.formBuilder.group({ \r\n highestEduLevel: new FormControl({ value: this.specialDegreeDetail.highestEdulevel, disabled: true }),\r\n profExpReqForEval: new FormControl({ value: this.specialDegreeDetail.profExpreqforeval, disabled: true }),\r\n expRequiresEval: new FormControl({ value: this.specialDegreeDetail.expRequireseval, disabled: true }),\r\n certification: new FormControl({ value: this.specialDegreeDetail.certification, disabled: true }),\r\n\r\n degLevelEquivalency: new FormControl({ value: this.specialDegreeDetail.degLevelequivalency, disabled: true }),\r\n degFieldEquivalency: new FormControl({ value: this.specialDegreeDetail.degFieldequivalency, disabled: true }),\r\n\r\n notes: new FormControl({ value: decodedNotes, disabled: true }),\r\n });\r\n \r\n this.subscribeToFormControlValueChange();\r\n }\r\n catch (err) {\r\n this.isPageReady = true;\r\n console.log(err);\r\n }\r\n }\r\n\r\n\r\n public ngOnDestroy(): void {\r\n this.docClickSubscription.unsubscribe();\r\n }\r\n\r\n public filterChange(filter: any): void {\r\n if(filter.length>2){\r\n this.educationLists = this.educations.filter(x=>x.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n }\r\n\r\n public filterChanges(filter: any): void {\r\n if(filter.length>2){\r\n this.experienceLists = this.experiences.filter(x=>x.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n }\r\n\r\n public relation(id: number): any {\r\n return this.relationTypeList.find((x) => x.relationId === id);\r\n }\r\n\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.loadItems();\r\n }\r\n \r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n public saveHandler(product: SpecialDegreeAssessment): void {\r\n if(this.isNew){\r\n this.view.splice(0, 0, product);\r\n this.modifiedRecords.push(product);\r\n }\r\n else{\r\n Object.assign(\r\n this.view.find(({ spedegassmtId }) => spedegassmtId === product.spedegassmtId),\r\n product\r\n );\r\n\r\n if (this.modifiedRecords.find(({ spedegassmtId }) => spedegassmtId === product.spedegassmtId)) {\r\n Object.assign(\r\n this.modifiedRecords.find(({ spedegassmtId }) => spedegassmtId === product.spedegassmtId),\r\n product\r\n );\r\n }\r\n else {\r\n this.modifiedRecords.push(product);\r\n }\r\n }\r\n \r\n this.editDataItem = undefined;\r\n this.isNew=false;\r\n this.loadItems();\r\n\r\n}\r\n\r\n public addHandler(): void {\r\n this.editDataItem = new SpecialDegreeAssessment();\r\n this.editDataItem.universityName=\"\";\r\n this.editDataItem.degree =\"\";\r\n this.editDataItem.degreeField =\"\";\r\n this.editDataItem.enrollFrom =null;\r\n this.editDataItem.enrollTo =null;\r\n this.editDataItem.awardDate =null;\r\n this.editDataItem.degissuingCountry =\"\";\r\n this.editDataItem.degreesOnFile=false;\r\n this.editDataItem.spedegassmtId=0;\r\n\r\n this.isNew = true;\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n\r\n public editHandler(args: AddEvent): void {\r\n this.editDataItem = args.dataItem;\r\n\r\n this.isNew = false;\r\n }\r\n\r\n SaveSpecialityDegreeDetails(){\r\n this.specialDegreeDetail = this.specialityDegreeForm.value;\r\n this.specialDegreeDetail.specialityDegree = this.modifiedRecords;\r\n this.specialDegreeDetail.specialityDegree.forEach(\r\n item=>{item.caseId=\"0\";\r\n item.casesummaryId=Number(this.caseSummaryId);}\r\n )\r\n this.isPageReady = false;\r\n if (this.specialDegreeDetail.notes) {\r\n this.specialDegreeDetail.notes = this.encodeHTMLEntities(this.specialDegreeDetail.notes);\r\n }\r\n this._dafService.SaveSpecialityDegreeDetails(this.caseSummaryId, this.specialDegreeDetail).toPromise().then(() => {\r\n this._dafService.disableEnableAllFormControls(this.specialityDegreeForm, [], true);\r\n this.getSpecialityDegreeDetails();\r\n this.isEditEnabled = false;\r\n // this.isUnlocked = false;\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Speciality Degree details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n \r\n }\r\n\r\n createFormGroup(dataItem) {\r\n return new FormGroup({\r\n relationId: new FormControl(dataItem.relationId, Validators.required),\r\n firstName: new FormControl(dataItem.firstName, Validators.required),\r\n middleName: new FormControl(dataItem.middleName),\r\n lastName: new FormControl(dataItem.lastName),\r\n isSpouseEmployedFollowingLatestEntry: new FormControl(dataItem.isSpouseEmployedFollowingLatestEntry),\r\n i539Required: new FormControl(dataItem.i539Required),\r\n i765Required: new FormControl(dataItem.i765Required),\r\n i131Required: new FormControl(dataItem.i131Required),\r\n spouseAndDepRelationId: new FormControl(dataItem.spouseAndDepRelationId),\r\n certification: new FormControl(dataItem.certification)\r\n \r\n \r\n \r\n });\r\n }\r\n\r\n matches(el, selector) {\r\n return (el.matches || el.msMatchesSelector).call(el, selector);\r\n }\r\n\r\n resetForm() {\r\n \r\n this.isEditEnabled = false;\r\n this._dafService.disableEnableAllFormControls(this.specialityDegreeForm, [], true);\r\n this.isGridEditable = false;\r\n this.specialityDegreeForm.controls[\"notes\"].setValue('testval');\r\n this.getSpecialityDegreeDetails();\r\n\r\n \r\n }\r\n\r\n enableEdit(){\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.specialityDegreeForm, [\"certification\"], false);\r\n if (this.specialDegreeDetail.expRequireseval) {\r\n this._dafService.disableEnableFormControl(this.specialityDegreeForm, [\"certification\"], true); }\r\n this.isGridEditable = true;\r\n \r\n }\r\n\r\n private subscribeToFormControlValueChange() {\r\n\r\n // this.specialityDegreeForm.get(\"isDependentExist\").valueChanges.subscribe(isTrue => {\r\n // if (isTrue) {\r\n // this.isGridEditable = true;\r\n // if(this.view == null || this.view.length == 0){\r\n // this.view = this.spouseAndDependentMaster;\r\n // }\r\n // this.loadItems();\r\n // //this.view = this.spouseAndDependentMaster;\r\n // } else {\r\n // this.spouseAndDependentMaster = this.view;\r\n // this.view = []\r\n // this.isGridEditable = false;\r\n // this.loadItems();\r\n // }\r\n // });\r\n\r\n this.specialityDegreeForm.get(\"expRequiresEval\").valueChanges.subscribe(val => {\r\n if (val) {\r\n \r\n this._dafService.disableEnableFormControl(this.specialityDegreeForm, [\"certification\"], false);\r\n\r\n this.specialityDegreeForm.updateValueAndValidity();\r\n } else {\r\n this._dafService.disableEnableFormControl(this.specialityDegreeForm, [\"certification\"], true);\r\n\r\n\r\n this.specialityDegreeForm.updateValueAndValidity();\r\n // this.FilingStratergyForm.patchValue({\r\n // reasonToExpediteCase: null,\r\n // });\r\n }\r\n });\r\n }\r\n\r\n public setDependentIndexToDelete(args: any){\r\n this.isDeleteClicked = true;\r\n this.deleteRow = args;\r\n this.deleteIndex = args.rowIndex;\r\n this.showDialog = true;\r\n }\r\n\r\n public deleteDependent(){\r\n this.view.splice(this.deleteIndex, 1);\r\n this.deleteRow.dataItem.changeType = \"DELETE\";\r\n this.modifiedRecords.push(this.deleteRow.dataItem);\r\n this.loadItems();\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDelete(){\r\n this.showDialog = false;\r\n }\r\n\r\n public onDialogClose(){\r\n this.showDialog = false;\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n if (text) {\r\n escapeQuotes = text.replace(/['\"()]/g, escape);\r\n }\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n if (text) {\r\n unescapeQuotes = text.replace(\"%27\", unescape);\r\n unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%28\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%29\", unescape);\r\n }\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n}\r\n","import {Component, OnInit, OnDestroy, ViewChild, Renderer2, Input, ViewEncapsulation,} from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from \"@angular/forms\";\r\nimport { AddEvent, CellClickEvent, DataStateChangeEvent, GridComponent, GridDataResult, PageChangeEvent } from \"@progress/kendo-angular-grid\";\r\nimport { NotifierService } from \"angular-notifier\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { relationDetail, spouseAndDependentDetails } from \"src/app/DAF/Models/SpouseAndDependentDetails\";\r\nimport { DafService } from \"src/app/DAF/services/dafService\";\r\n\r\n@Component({\r\n selector: 'app-spouse-and-dependent-application',\r\n templateUrl: './spouse-and-dependent-application.component.html',\r\n styleUrls: ['./spouse-and-dependent-application.component.scss']\r\n})\r\nexport class SpouseAndDependentApplicationComponent implements OnInit, OnDestroy {\r\n isPageReady: boolean;\r\n @Input() caseSummaryId = 0;\r\n @ViewChild(GridComponent, {static: false})\r\n private grid: GridComponent;\r\n public view: Array = [];\r\n public formGroup: FormGroup;\r\n private editedRowIndex: number;\r\n private docClickSubscription: Subscription = new Subscription();\r\n private isNew: boolean;\r\n public isEditEnabled: boolean;\r\n public isGridEditable: boolean;\r\n relationTypeList: { relationId: number; relationType: string; }[];\r\n spouseAndDependentForm: FormGroup;\r\n spouseAndDependentDetail: spouseAndDependentDetails;\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n isDisabled: boolean = false;\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridView: GridDataResult;\r\n private notifier: NotifierService;\r\n private isDeleteClicked: boolean = false;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n isSpouseSelected:boolean=false;\r\n showDialog:boolean = false;\r\n deleteIndex: number;\r\n public editDataItem: relationDetail;\r\n\r\n \r\n spouseAndDependentMaster: Array = [];\r\n constructor(private renderer: Renderer2,\r\n private _dafService: DafService,\r\n private formBuilder: FormBuilder,\r\n notifier: NotifierService) { this.notifier = notifier; }\r\n\r\n\r\n \r\n \r\n\r\n\r\n ngOnInit() {\r\n\r\n \r\n\r\n this.relationTypeList = [\r\n {\r\n relationId: 1,\r\n relationType: 'Dependents'\r\n },\r\n {\r\n relationId: 2,\r\n relationType: 'Spouse'\r\n }\r\n ];\r\n // this.spouseAndDependentDetail= new spouseAndDependentDetails();\r\n // this.spouseAndDependentDetail.isDependentExist = true;\r\n // this.spouseAndDependentDetail.relationDetail = this.view;\r\n // this.docClickSubscription.add(\r\n // this.renderer.listen(\"document\", \"click\", this.onDocumentClick.bind(this))\r\n // );\r\n //this.initializeForm();\r\n this.getSpouseAndDependentDetails();\r\n \r\n }\r\n\r\n getSpouseAndDependentDetails(){\r\n this.isPageReady = false;\r\n this._dafService.getSpouseAndDependentDetails(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.spouseAndDependentDetail = data;\r\n this.view = this.spouseAndDependentDetail.relationDetails;\r\n console.log(data);\r\n console.log(this.view);\r\n console.log(this.spouseAndDependentDetail);\r\n this.initializeForm();\r\n this.loadItems(); \r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n initializeForm() {\r\n let decodedNotes = this.decodeHTMLEntities(this.spouseAndDependentDetail.notes);\r\n try {\r\n this.spouseAndDependentForm = this.formBuilder.group({ \r\n isDependentExist: new FormControl({ value: this.spouseAndDependentDetail.isDependentExist, disabled: true }),\r\n notes: new FormControl({ value: decodedNotes, disabled: true }),\r\n });\r\n \r\n this.subscribeToFormControlValueChange();\r\n }\r\n catch (err) {\r\n this.isPageReady = true;\r\n console.log(err);\r\n }\r\n }\r\n\r\n\r\n public ngOnDestroy(): void {\r\n this.docClickSubscription.unsubscribe();\r\n }\r\n\r\n public relation(id: number): any {\r\n return this.relationTypeList.find((x) => x.relationId === id);\r\n }\r\n\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.skip = event.skip;\r\n this.loadItems();\r\n }\r\n \r\n private loadItems(): void {\r\n this.gridView = {\r\n data: this.view.slice(this.skip, this.skip + this.pageSize),\r\n total: this.view.length,\r\n };\r\n }\r\n\r\n public saveHandler(product: relationDetail): void {\r\n if(this.isNew){\r\n this.view.splice(0, 0, product);\r\n }\r\n else{\r\n Object.assign(\r\n this.view.find(({ spouseDepAppID }) => spouseDepAppID === product.spouseDepAppID),\r\n product\r\n ); \r\n }\r\n\r\n this.editDataItem = undefined;\r\n this.isNew=false;\r\n this.loadItems();\r\n\r\n}\r\n\r\n public addHandler(): void {\r\n // this.closeEditor();\r\n\r\n // this.formGroup = this.createFormGroup({\r\n // firstName: \"\",\r\n // i131Required: false,\r\n // i539Required: false,\r\n // i765Required: false,\r\n // isSpouseEmployedFollowingLatestEntry: false,\r\n // lastName: \"\",\r\n // middleName: \"\",\r\n // relationId: null,\r\n // spouseAndDepRelationId: 0\r\n // });\r\n if(this.view.filter(item=>item.relationId==2).length>0){\r\n this.isSpouseSelected=true;\r\n }\r\n else{\r\n this.isSpouseSelected=false;\r\n }\r\n\r\n this.editDataItem = new relationDetail();\r\n this.editDataItem.isSpouseEmployedFollowingLatestEntry=false;\r\n this.editDataItem.i131Required=false;\r\n this.editDataItem.i539Required=false;\r\n this.editDataItem.i765Required=false;\r\n this.editDataItem.spouseDepAppID =0;\r\n\r\n\r\n\r\n this.isNew = true;\r\n\r\n // this.grid.addRow(this.formGroup);\r\n }\r\n\r\n // public saveRow(): void {\r\n // if (this.formGroup && this.formGroup.valid) {\r\n // this.saveCurrent();\r\n // }\r\n // }\r\n\r\n // public cellClickHandler({\r\n // isEdited,\r\n // dataItem,\r\n // rowIndex,\r\n // }: CellClickEvent): void {\r\n // if (isEdited || (this.formGroup && !this.formGroup.valid) || !this.isGridEditable || this.isDeleteClicked) {\r\n // this.isDeleteClicked = false;\r\n // return;\r\n // }\r\n\r\n // if (this.isNew) {\r\n // rowIndex += 1;\r\n // }\r\n\r\n // this.saveCurrent();\r\n\r\n // this.formGroup = this.createFormGroup(dataItem);\r\n // this.editedRowIndex = rowIndex;\r\n\r\n // this.grid.editRow(rowIndex, this.formGroup);\r\n // }\r\n\r\n public cancelHandler(): void {\r\n this.closeEditor();\r\n }\r\n\r\n private closeEditor(): void {\r\n this.grid.closeRow(this.editedRowIndex);\r\n\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n\r\n public editHandler(args: AddEvent): void {\r\n this.editDataItem = args.dataItem;\r\n\r\n if(this.view.filter(item=>item.relationId==2).length>0){\r\n\r\n if (this.view.filter(item => item.relationId == 2)[0].spouseDepAppID != this.editDataItem.spouseDepAppID)\r\n {\r\n this.isSpouseSelected=true;\r\n }\r\n else{\r\n this.isSpouseSelected=false;\r\n }\r\n }\r\n else{\r\n this.isSpouseSelected=false;\r\n }\r\n this.isNew = false;\r\n}\r\n\r\n \r\n\r\n // private saveCurrent(): void {\r\n // if (this.formGroup) {\r\n // // this.service.save(this.formGroup.value, this.isNew);\r\n // let maxId: number = Math.max.apply(Math, this.view.map(function (o) { return o.spouseAndDepRelationId; }));\r\n // let sdDetails = this.formGroup.value;\r\n // let index = maxId + 1;\r\n // if (this.isNew) { \r\n // sdDetails.spouseAndDepRelationId = index;\r\n // sdDetails.isNew = true;\r\n // this.view.splice(0, 0, sdDetails);\r\n // } else {\r\n // Object.assign(\r\n // this.view.find(({ spouseAndDepRelationId }) => spouseAndDepRelationId === sdDetails.spouseAndDepRelationId),\r\n // sdDetails\r\n // ); \r\n // }\r\n // this.closeEditor();\r\n // this.loadItems();\r\n // }\r\n // }\r\n\r\n saveSpouseAndDependentDetails(){\r\n this.spouseAndDependentDetail = this.spouseAndDependentForm.value;\r\n console.log( this.spouseAndDependentDetail);\r\n this.spouseAndDependentDetail.relationDetails = this.view;\r\n this.isPageReady = false;\r\n this.spouseAndDependentDetail.notes = this.spouseAndDependentDetail.notes ? this.encodeHTMLEntities(this.spouseAndDependentDetail.notes) : null;\r\n this._dafService.saveSpouseAndDependentDetails(this.caseSummaryId, this.spouseAndDependentDetail).toPromise().then(() => {\r\n this._dafService.disableEnableAllFormControls(this.spouseAndDependentForm, [], true);\r\n this.getSpouseAndDependentDetails();\r\n this.isEditEnabled = false;\r\n // this.isUnlocked = false;\r\n this.isPageReady = true;\r\n this.notifier.notify('success', 'Spouse and dependent details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n \r\n }\r\n createFormGroup(dataItem) {\r\n return new FormGroup({\r\n relationId: new FormControl(dataItem.relationId, Validators.required),\r\n firstName: new FormControl(dataItem.firstName, Validators.required),\r\n middleName: new FormControl(dataItem.middleName),\r\n lastName: new FormControl(dataItem.lastName),\r\n isSpouseEmployedFollowingLatestEntry: new FormControl(dataItem.isSpouseEmployedFollowingLatestEntry),\r\n i539Required: new FormControl(dataItem.i539Required),\r\n i765Required: new FormControl(dataItem.i765Required),\r\n i131Required: new FormControl(dataItem.i131Required),\r\n spouseDepAppID: new FormControl(dataItem.spouseDepAppID),\r\n });\r\n }\r\n\r\n matches(el, selector) {\r\n return (el.matches || el.msMatchesSelector).call(el, selector);\r\n }\r\n\r\n resetForm(){\r\n this.isEditEnabled = false;\r\n this._dafService.disableEnableAllFormControls(this.spouseAndDependentForm, [], true);\r\n this.isGridEditable = false;\r\n this.getSpouseAndDependentDetails();\r\n }\r\n\r\n enableEdit(){\r\n this.isEditEnabled = true;\r\n this._dafService.disableEnableAllFormControls(this.spouseAndDependentForm, [], false);\r\n if(this.spouseAndDependentForm.get(\"isDependentExist\").value == true){\r\n this.isGridEditable = true;\r\n }\r\n }\r\n\r\n private subscribeToFormControlValueChange() {\r\n this.spouseAndDependentForm.get(\"isDependentExist\").valueChanges.subscribe(isTrue => {\r\n if (isTrue) {\r\n this.isGridEditable = true;\r\n if(this.view == null || this.view.length == 0){\r\n this.view = this.spouseAndDependentMaster;\r\n }\r\n this.loadItems();\r\n //this.view = this.spouseAndDependentMaster;\r\n } else {\r\n this.spouseAndDependentMaster = this.view;\r\n this.view = []\r\n this.isGridEditable = false;\r\n this.loadItems();\r\n }\r\n });\r\n }\r\n\r\n public setDependentIndexToDelete(args: any){\r\n this.isDeleteClicked = true;\r\n this.deleteIndex = args.rowIndex;\r\n this.showDialog = true;\r\n //this.view.splice(args.rowIndex, 1);\r\n //this.loadItems();\r\n }\r\n\r\n public deleteDependent(){\r\n this.view.splice(this.deleteIndex, 1);\r\n this.loadItems();\r\n this.showDialog = false;\r\n }\r\n\r\n public cancelDelete(){\r\n this.showDialog = false;\r\n }\r\n\r\n public onDialogClose(){\r\n this.showDialog = false;\r\n }\r\n\r\n encodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let escapeQuotes = text;\r\n if (text) {\r\n escapeQuotes = text.replace(/['\"()]/g, escape);\r\n }\r\n\r\n textArea.innerText = escapeQuotes;\r\n let encodedOutput = textArea.innerHTML;\r\n let arr = encodedOutput.split('
');\r\n encodedOutput = arr.join('\\n');\r\n return encodedOutput;\r\n }\r\n\r\n decodeHTMLEntities(text) {\r\n let textArea = document.createElement('textarea');\r\n let unescapeQuotes = text;\r\n if (text) {\r\n unescapeQuotes = text.replace(\"%27\", unescape);\r\n unescapeQuotes = unescapeQuotes.replace(\"%22\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%28\", unescape);\r\n unescapeQuotes = unescapeQuotes.replaceAll(\"%29\", unescape);\r\n }\r\n textArea.innerHTML = unescapeQuotes;\r\n return textArea.value;\r\n }\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { ValidationMessage } from 'src/app/DAF/Models/validationMessage';\r\n\r\n@Component({\r\n selector: 'app-validation-message',\r\n templateUrl: './validation-message.component.html',\r\n styleUrls: ['./validation-message.component.scss']\r\n})\r\nexport class ValidationMessageComponent implements OnInit {\r\n\r\n @Input() validationData: ValidationMessage[];\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n bnfId: string;\r\n caseType: string;\r\n applicantType: string;\r\n requestType: string;\r\n public documentSearch: any;\r\n public searchText = '';\r\n private notifier: NotifierService;\r\n public validationsearch: any[];\r\n public newPageReady = true;\r\n constructor() {\r\n var data=this.validationData;\r\nthis.validationsearch=data;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n ngOnChanges() {\r\n }\r\n closeForm() {\r\n const closeButton: HTMLElement = this.closeButton.nativeElement as HTMLElement;\r\n closeButton.click();\r\n }\r\n\r\nclearFilter() {\r\n // Resets search textbox\r\n this.searchText = '';\r\n}\r\napplyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = this.validationsearch.filter(r => r.caseSummaryId.toLowerCase().includes(filterValue)\r\n || r.columnName.toLowerCase().includes(filterValue));\r\n this.validationData = filterData;\r\n}\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { AddLCAService } from '../../../../immigrationcompilation/add-lca/service/add-lca.service';\r\nimport { addressWizardInfos } from '../../../Models/addressWizardInfos';\r\nimport { worksiteAddressModal } from '../../../Models/LCAAssessmentDetails';\r\nimport { DafService } from '../../../services/dafService';\r\n\r\n@Component({\r\n selector: 'app-worksite-address-wizard',\r\n templateUrl: './worksite-address-wizard.component.html',\r\n styleUrls: ['./worksite-address-wizard.component.scss']\r\n})\r\nexport class WorksiteAddressWizardComponent implements OnInit {\r\n\r\n public editForm: FormGroup = new FormGroup({\r\n caseID: new FormControl(''),\r\n caseSummaryID: new FormControl(0),\r\n addressWizardID: new FormControl(0),\r\n addressType: new FormControl('', Validators.required),\r\n entityName: new FormControl(''),\r\n streetNumber: new FormControl(''),\r\n streetName: new FormControl('', Validators.required),\r\n apt: new FormControl(null),\r\n city: new FormControl(null),\r\n state: new FormControl(null),\r\n postalCode: new FormControl(null),\r\n county: new FormControl(null),\r\n geography: new FormControl(null),\r\n geographyId: new FormControl(null),\r\n stateId: new FormControl(null),\r\n zipCodeId: new FormControl(null),\r\n cityId: new FormControl(null),\r\n countyId: new FormControl(null),\r\n countyOnOLFC: new FormControl(''),\r\n salary: new FormControl(0),\r\n flcWage: new FormControl(0),\r\n pwi: new FormControl(null),\r\n changeType: new FormControl(''),\r\n });\r\n\r\n @Input() public isNew = false;\r\n public active = false;\r\n private notifier: NotifierService;\r\n public statesList = [];\r\n public countyList = [];\r\n public geographyList = [];\r\n public countySource = [];\r\n public geographySource = [];\r\n public cityList = [];\r\n public citySource = [];\r\n statesDataSource = [];\r\n public zipcodeList = [];\r\n public zipcodeSource = [];\r\n public oesSOCCode;\r\n public wageLevelId;\r\n public addressTypesList = [];\r\n public addressTypes: any[] = [];\r\n\r\n\r\n @Input() public set model(product: worksiteAddressModal) {\r\n if (product){\r\n this.editForm.reset(product.addressWizardInfos);\r\n // toggle the Dialog visibility\r\n this.active = product.addressWizardInfos !== undefined;\r\n this.oesSOCCode = product.oesSOCCode;\r\n this.wageLevelId = product.wageLevelId;\r\n }\r\n }\r\n countrySourceList: Array = [];\r\n CountryList: Array = [];\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n @Output() save: EventEmitter = new EventEmitter();\r\n\r\n constructor(notifier: NotifierService, private _dafService: DafService, public addLCAService: AddLCAService) { this.notifier = notifier; }\r\n\r\n ngOnInit(): void {\r\n this.getStates();\r\n this.GetAddressType();\r\n }\r\n\r\n public onSave(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.save.emit(this.editForm.value);\r\n this.active = false;\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n public ngOnChanges() {\r\n let changeType = \"UPDATE\";\r\n if (this.isNew)\r\n changeType = \"INSERT\"\r\n else {\r\n if (this.editForm.value.stateId)\r\n this.initializeForm();\r\n }\r\n this.editForm.controls[\"changeType\"].setValue(changeType);\r\n }\r\n\r\n public closeForm(): void {\r\n this.active = false;\r\n this.cancel.emit();\r\n }\r\n\r\n async initializeForm() {\r\n await this.GetZipcodes(this.editForm.value.stateId);\r\n await this.GetCounty(this.editForm.value.stateId);\r\n await this.GetGeography(this.editForm.value.stateId);\r\n await this.GetCity(this.editForm.value.zipCodeId);\r\n }\r\n\r\n getStates() {\r\n this._dafService.getStates().subscribe((data: any) => {\r\n this.statesDataSource = data;\r\n this.statesList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n GetAddressType() {\r\n this.addLCAService.GetAddressType().subscribe((data: any) => {\r\n this.addressTypes = data;\r\n this.addressTypesList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n onStateChange(event) {\r\n this.editForm.get(\"state\").setValue(event.stateName);\r\n this.editForm.controls[\"zipCodeId\"].setValue(null);\r\n this.editForm.controls[\"cityId\"].setValue(null);\r\n this.editForm.controls[\"cityId\"].disable();\r\n this.editForm.controls[\"geographyId\"].setValue(null);\r\n this.editForm.controls[\"countyId\"].setValue(null);\r\n this.editForm.controls[\"flcWage\"].setValue(null);\r\n this.GetZipcodes(event.stateId);\r\n this.GetCounty(event.stateId);\r\n this.GetGeography(event.stateId);\r\n }\r\n\r\n GetZipcodes(event): Promise {\r\n this.zipcodeList = [];\r\n let res = this._dafService.getZipcodeByState(event).toPromise().then((data: any) => {\r\n this.zipcodeList = data;\r\n this.zipcodeSource = data;\r\n //if (data.length > 0) {\r\n // data.forEach(element => {\r\n // this.zipcodeList[index].push(element.zipcode.toString());\r\n // });\r\n //}\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting the zipcode details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n onZipCodeChange(event) {\r\n this.editForm.get(\"postalCode\").setValue(event.zipcode);\r\n this.editForm.controls[\"cityId\"].setValue(null);\r\n this.editForm.controls[\"cityId\"].enable();\r\n this.GetCity(event.zipCodeId);\r\n }\r\n\r\n GetCity(event): Promise {\r\n this.cityList = [];\r\n let res = this._dafService.getCityByZipcode(event).toPromise().then((data: any) => {\r\n this.cityList = data;\r\n this.citySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while fetching the city list');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n GetCounty(event): Promise {\r\n this.countyList = [];\r\n let res = this._dafService.getCountyByState(event).toPromise().then((data: any) => {\r\n this.countyList = data;\r\n this.countySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n onCityChange(event) {\r\n this.editForm.get(\"city\").setValue(event.city);\r\n }\r\n\r\n public filterChange(filter: any): void {\r\n this.statesList = this.statesDataSource.filter(x => x.stateName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n\r\n public zipFilterChange(filter: any): void {\r\n this.zipcodeList = this.zipcodeSource.filter(\r\n (s) => s.zipcode.includes(filter)\r\n );\r\n }\r\n\r\n public cityFilterChange(filter: any): void {\r\n this.cityList = this.citySource.filter(x => x.city.toLowerCase().includes(filter));\r\n }\r\n\r\n public msaFilterChange(filter: any): void {\r\n this.geographyList = this.geographySource.filter(x => x.value.toLowerCase().includes(filter));\r\n }\r\n\r\n public countyFilterChange(filter: any): void {\r\n this.countyList = this.countySource.filter(x => x.value.toLowerCase().includes(filter));\r\n }\r\n\r\n GetGeography(event): Promise {\r\n this.geographyList = [];\r\n let res = this._dafService.getGeographyByState(event).toPromise().then((data: any) => {\r\n this.geographyList = data;\r\n this.geographySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n OnCountyChange(event) {\r\n this.geographyList = [];\r\n this.editForm.get(\"county\").setValue(event.value);\r\n let selectedState = this.editForm.get(\"stateId\").value;\r\n let res = this._dafService.GetGeographyByCounty(selectedState, event.id).toPromise().then((data: any) => {\r\n this.geographyList = data;\r\n this.geographySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n OnGeographyChange(event) {\r\n this.countyList = [];\r\n this.editForm.get(\"geography\").setValue(event.value);\r\n let selectedState = this.editForm.get(\"stateId\").value;\r\n this.getFLCWage(event.id);\r\n let res = this._dafService.GetCountyByGeography(selectedState, event.id).toPromise().then((data: any) => {\r\n this.countyList = data;\r\n this.countySource = data;\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n getFLCWage(geographyId:number) {\r\n\r\n this.editForm.get(\"pwi\").setValue(false);\r\n let res = this._dafService.getFLCWage(geographyId, this.oesSOCCode, this.wageLevelId).toPromise().then((data: any) => {\r\n this.editForm.get(\"flcWage\").setValue(data);\r\n if (data >= this.editForm.get(\"salary\").value)\r\n this.editForm.get(\"pwi\").setValue(true);\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n\r\n \r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NotificationService } from '@progress/kendo-angular-notification';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { WorkSitewizards } from 'src/app/DAF/Models/websiteWizard';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\n\r\n@Component({\r\n selector: 'app-worksite-wizard',\r\n templateUrl: './worksite-wizard.component.html',\r\n styleUrls: ['./worksite-wizard.component.scss']\r\n})\r\nexport class WorksiteWizardComponent implements OnInit {\r\n public emailForm: FormGroup;\r\n public isReady=false;\r\n public WorkSite=\"Worksite Itinerary\";\r\n private hideAfter = 2000;\r\n public WorkSiteDetails: any = [];\r\n radioButtonOptionValues: Array = [{ value: true, text: \"Yes\" }, { value: false, text: \"No\" }];\r\n\r\n public dateDifference=0;\r\n private notifier: NotifierService;\r\n public primaryworksiteInfo:WorkSitewizards[]=[];\r\n statesDataSource = [];\r\n statesList = [];\r\n public zipcodeList = [];\r\n public addressTypesList = [];\r\n public state;\r\n public zipcodeSource = [];\r\n public cityArray = [[]];\r\n public countyArray = [[]];\r\n citySourceArray: any[] = [];\r\n cityDataArray: any[] = [];\r\n countyDataArray: any[] = [];\r\n public cityList = [];\r\n public citySource = [];\r\n public countyList = [];\r\n public countySource = [];\r\n public disabled = true;\r\n public countydisabled = [true];\r\n public citydisabled = [true];\r\n\r\n @Input() caseSummaryId = 0;\r\n\r\n\r\n @Output() cancel: EventEmitter = new EventEmitter();\r\n\r\n optionalFormControls = [\"middleName\", \"signatoryName\", \"signatoryTitle\", \"signatoryTelephone\", \"apt\"];\r\n\r\n constructor(private formBuilder: FormBuilder,@Inject(NotificationService) private notificationService: NotificationService, private _dafService: DafService,notifier: NotifierService) \r\n { \r\n this.createForm();\r\n this.notifier = notifier; \r\n }\r\n\r\n createForm(){\r\n this.emailForm = this.formBuilder.group({\r\n emails: this.formBuilder.array([this.createEmailFormGroup()])\r\n });\r\n this.isReady=true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getMasterData();\r\n }\r\n\r\n async getMasterData() {\r\n this.getStates();\r\n this.getprimaryworkSiteItineraryDetails();\r\n }\r\n\r\n public stateFilterChange(filter: any, i: number): void {\r\n this.statesList[i] = this.statesDataSource.filter(x => x.stateName.toLowerCase().includes(filter.toLowerCase()));\r\n }\r\n\r\n public zipFilterChange(filter: any, i: number): void {\r\n this.zipcodeList[i] = this.zipcodeSource[i].filter(x => x.zipcode.includes(filter));\r\n }\r\n\r\n public cityFilterChange(filter: any, i: number): void {\r\n this.cityArray[i] = this.citySource[i].filter(x => x.city.toLowerCase().includes(filter));\r\n }\r\n\r\n public countyFilterChange(filter: any, i: number): void {\r\n this.countyArray[i] = this.countySource[i].filter(x => x.value.toLowerCase().includes(filter));\r\n }\r\n\r\n getStates() {\r\n this._dafService.getStates().subscribe((data: any) => {\r\n this.statesDataSource = data;\r\n this.statesList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n onStateChange(event, index) {\r\n var selectedControl = this.emailForm.controls.emails['controls'][index];\r\n var datas = selectedControl.value;\r\n datas.zipCodeId = null;\r\n datas.cityId = null;\r\n datas.countyId = null;\r\n selectedControl.controls[\"cityId\"].disable();\r\n selectedControl.setValue(datas);\r\n \r\n //datas.zipCode=\"\";\r\n //this.emailForm.controls.emails.value[index].zipCodeId\r\n //this.emailForm.controls[\"zipCodeId\"][index].setValue(null);\r\n //this.emailForm.controls[\"cityId\"][index].setValue(null);\r\n //this.emailForm.controls[\"cityId\"][index].disable();\r\n //this.emailForm.controls[\"countyId\"][index].setValue(null);\r\n this.GetZipcodes(event, index);\r\n this.GetCountyInfo(event, index);\r\n }\r\n\r\n GetZipcodes(event, index: any): Promise {\r\n this.zipcodeList[index] = [];\r\n this.zipcodeSource[index] = [];\r\n let res = this._dafService.getZipcodeByState(event).toPromise().then((data: any) => {\r\n if (data.length > 0) {\r\n //data.forEach(element => {\r\n this.zipcodeList[index] = data;\r\n this.zipcodeSource[index] = data;\r\n //});\r\n //var datas=this.emailForm.controls.emails['controls'][index].value;\r\n //datas.zipCode=\"\";\r\n //this.emailForm.controls.emails['controls'][index].setValue(datas);\r\n //this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.disabled = false;\r\n\r\n }\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n onZipCodeChange(event, index) {\r\n var selectedControl = this.emailForm.controls.emails['controls'][index];\r\n var datas = selectedControl.value;\r\n datas.cityId = null;\r\n selectedControl.controls[\"cityId\"].enable();\r\n selectedControl.setValue(datas);\r\n\r\n this.GetCity(event, index);\r\n }\r\n\r\n GetCountyInfo(event, index: any): Promise {\r\n this.countyDataArray[index] = [];\r\n this.countyArray[index] = [];\r\n this.countySource[index] = [];\r\n\r\n let res = this._dafService.getCountyByState(event).toPromise().then((data: any) => {\r\n var newData = data;\r\n if (newData.length > 0) {\r\n //this.cityArray[index].push(\r\n // newData[0].cityName.toString()\r\n //);\r\n //if (this.cityArray[index].length > 0) {\r\n // this.citydisabled[index] = false;\r\n //}\r\n\r\n //newData.forEach(element => {\r\n // this.countyArray[index].push(\r\n // element.countyName.toString()\r\n // );\r\n //});\r\n //if (this.countyArray[index].length > 0) {\r\n // this.countydisabled[index] = false;\r\n //}\r\n //data.forEach(element => {\r\n // this.zipcodeList[index] = data;\r\n // this.zipcodeSource[index] = data;\r\n //});\r\n this.countyArray[index] = data;\r\n this.countyDataArray[index] = data;\r\n this.countydisabled[index] = false;\r\n this.countySource[index] = data;\r\n }\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n return res;\r\n }\r\n\r\n GetCity(event, index): Promise {\r\n this.cityArray[index] = [];\r\n this.cityDataArray[index] = [];\r\n this.citySource[index] = [];\r\n let res = this._dafService.getCityByZipcode(event).toPromise().then((data: any) => {\r\n if (data.length > 0) {\r\n this.cityArray[index] = data;\r\n this.cityDataArray[index] = data;\r\n this.citydisabled[index] = false;\r\n this.citySource[index] = data;\r\n }\r\n\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while fetching the city list');\r\n }\r\n );\r\n //this._dafService.disableEnableFormControl(this.caseSummaryForm,[\"signatoryZipcode\"],false);\r\n return res;\r\n }\r\n\r\n getprimaryworkSiteItineraryDetails(){\r\n this.isReady = false;\r\n this._dafService.getprimaryworkSiteItineraryDetails(this.caseSummaryId).toPromise().then((data: any) => {\r\n this.primaryworksiteInfo = data;\r\n\r\n this.primaryworksiteInfo.forEach(item=>{\r\n if (item.periodFrom != undefined) {\r\n item.periodFrom = new Date(item.periodFrom); \r\n } \r\n if (item.periodTo != undefined) {\r\n item.periodTo = new Date(item.periodTo); \r\n }\r\n });\r\n \r\n var arrayControl = this.emailForm.get('emails') as FormArray;\r\n if(this.primaryworksiteInfo.length>0){\r\n while (arrayControl.length) {\r\n arrayControl.removeAt(0);\r\n }\r\n this.primaryworksiteInfo.forEach(async (staff, i) => {\r\n var r = await this.GetZipcodes(staff.stateId, i);\r\n var c = await this.GetCountyInfo(staff.stateId, i);\r\n var d = await this.GetCity(staff.zipCodeId,i);\r\n arrayControl.push(this.formBuilder.group(staff))\r\n });\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error)\r\n this.isReady = true;\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n onstartDateChange(event,index){\r\n\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.periodFrom=event;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.onStartsDateChange(event,index);\r\n \r\n }\r\n\r\n onEndDateChange(event,index){\r\n var data=this.emailForm.controls.emails['controls'][index].value.periodFrom; \r\n if((data!=\"\"&&data!=null) && (event!=\"\"&&event!=null)){\r\n this.dateDifference = Math.round((event - data)/1000/60/60/24);\r\n }\r\n else{\r\n this.dateDifference=null;\r\n }\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.daysPerMonth=this.dateDifference;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n \r\n }\r\n\r\n public closeForm(): void {\r\n this.cancel.emit();\r\n}\r\n\r\n onEndDateChanges(event,index){\r\n\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.periodTo=event;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.onEndDateChange(event,index);\r\n\r\n }\r\n\r\n onStartsDateChange(event,index){\r\n var data=this.emailForm.controls.emails['controls'][index].value.periodTo; \r\n if((data!=\"\"&&data!=null) && (event!=\"\"&&event!=null)){\r\n this.dateDifference = Math.round((data - event)/1000/60/60/24); \r\n }\r\n else{\r\n this.dateDifference=null;\r\n }\r\n \r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.daysPerMonth=this.dateDifference;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n }\r\n \r\n\r\n\r\n private createEmailFormGroup(): FormGroup {\r\n return new FormGroup({\r\n 'worksiteItenary': new FormControl(false,Validators.required),\r\n 'clientsideAmmendment': new FormControl(false),\r\n 'clientlegalName': new FormControl('',Validators.required),\r\n 'periodFrom': new FormControl(null, Validators.required),\r\n 'periodTo': new FormControl(null, Validators.required),\r\n 'daysPerMonth': new FormControl(''),\r\n 'streetNumber': new FormControl('', Validators.required),\r\n 'streetName': new FormControl('', Validators.required),\r\n 'apt':new FormControl(''),\r\n 'cityId': new FormControl(null, Validators.required),\r\n 'stateId': new FormControl(null, Validators.required),\r\n 'zipCodeId': new FormControl(null, Validators.required),\r\n 'countyId':new FormControl(null),\r\n 'primary': new FormControl(false),\r\n 'offsite' : new FormControl(false)\r\n })\r\n }\r\n\r\n public addEmailFormGroup() {\r\n const emails = this.emailForm.get('emails') as FormArray\r\n if(emails.length<10){\r\n emails.push(this.createEmailFormGroup())\r\n }\r\n\r\n }\r\n\r\n public onCancel(e: PointerEvent): void {\r\n e.preventDefault();\r\n this.closeForm();\r\n }\r\n\r\n invalidMessage(){\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"error\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n\r\n saveData(){\r\n this.WorkSiteDetails=[];\r\n var saveValues = this.emailForm.controls.emails.value;\r\n \r\n if(this.emailForm.valid){\r\n\r\n \r\n \r\n saveValues.forEach(item => {\r\n \r\n //if(item.periodFrom==\"\"){\r\n // this.WorkSiteDetails=[];\r\n // this.invalidMessage();\r\n \r\n //}\r\n if (item.periodFrom && item.periodTo && item.periodFrom > item.periodTo) {\r\n this.notifier.notify('error', 'Please enter valid dates. Period To should be greather than or equal to Period From.');\r\n } \r\n else{\r\n \r\n var workSite=new WorkSitewizards();\r\n workSite.primWorkItineraryID=0;\r\n workSite.worksiteItenary=item.worksiteItenary;\r\n workSite.clientsideAmmendment=item.clientsideAmmendment;\r\n workSite.clientlegalName = item.clientlegalName;\r\n workSite.periodFrom = item.periodFrom;\r\n workSite.periodTo = item.periodTo;\r\n workSite.daysPerMonth = item.daysPerMonth?item.daysPerMonth.toString():\"\";\r\n workSite.streetAddress=\"\";\r\n workSite.streetNumber=item.streetNumber;\r\n workSite.streetName=item.streetName;\r\n workSite.apt = item.apt;\r\n workSite.cityId=item.cityId;\r\n workSite.stateId=item.stateId;\r\n workSite.zipCodeId = item.zipCodeId;\r\n workSite.countyId = item.countyId;\r\n workSite.primary = item.primary;\r\n workSite.offsite=item.offsite;\r\n this.WorkSiteDetails.push(workSite);\r\n }\r\n });\r\n if(this.WorkSiteDetails.length>0){\r\n this._dafService.savePrimaryWorkSiteItinerary(this.caseSummaryId, this.WorkSiteDetails).toPromise().then(() => {\r\n this.notifier.notify('success', 'Worksite Itinerary details have been saved successfully');\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n\r\n\r\n }\r\n \r\n }\r\n else {\r\n this.notifier.notify('error', 'Please ensure to add all the required Data.');\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, Inject, LOCALE_ID, OnInit } from '@angular/core';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DataStateChangeEvent, GridComponent, SelectAllCheckboxState } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { ExportParams, PagingParams } from '../../models/filterParams.model';\r\nimport { GroupResult, State } from '@progress/kendo-data-query';\r\nimport { DateTimePickerComponent } from '@progress/kendo-angular-dateinputs';\r\nimport { formatDate } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-case-details',\r\n templateUrl: './case-details.component.html',\r\n styleUrls: ['./case-details.component.scss']\r\n})\r\nexport class CaseDetailsComponent implements OnInit {\r\n chartDatas: any[] = [];\r\n public caseList: any;\r\n public gridViewData: any[];\r\n public isClicked = false;\r\n private notifier: NotifierService;\r\n public pageSize = 10;\r\n public skip = 0;\r\n dateFilterModel: DateFiltersModel;\r\n fromreportDate: any;\r\n toreportDate: any\r\n public searchDetails: any;\r\n public addUserMail: string;\r\n public addUserName: string;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public caseStatus = \"\";\r\n public isPageReady = true;\r\n public caseType = \"\";\r\n public filterselected = true;\r\n gridFilteredData: any;\r\n public CaseIdsData: any[];\r\n public memberemail: string;\r\n isChkEnabled: boolean;\r\n public mySelection = [];\r\n public selectAllState: SelectAllCheckboxState = 'checked';\r\n public isSuppEnabled: boolean = true;\r\n public fromStartDate: any;\r\n public toEndDate: any;\r\n CaseStatusList: Array = [];\r\n public caseliststatus = \"\";\r\n\r\n\r\n constructor(public _dafService: DafService, private router: Router,\r\n private route: ActivatedRoute,\r\n notifier: NotifierService, @Inject(LOCALE_ID) private locale: string) {\r\n this.notifier = notifier;\r\n this.dateFilterModel = new DateFiltersModel(new Date(), new Date());\r\n this.CaseIdsData = [];\r\n\r\n\r\n }\r\n take: number;\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.caseStatus = params['caseStatus'];\r\n this.caseType = params['caseType'];\r\n \r\n });\r\n this.getCaseStatusList();\r\n \r\n this.filterselected = true;\r\n //this.dateFilterModel = new DateFiltersModel(new Date(), new Date());\r\n this._dafService.currentDates.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate = data.toDate;\r\n this.dateFilterModel = new DateFiltersModel(new Date(this.fromreportDate), new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n }\r\n\r\n filterCaseList() {\r\n this.filterselected = true;\r\n const zipres = this.CaseStatusList.filter(s => s.dafStatusTypeId == this.caseliststatus);\r\n this.caseStatus = zipres[0].statusType;\r\n this._dafService.updateDate({ fromDate: this.dateFilterModel.startDate.toDateString(), toDate: this.dateFilterModel.endDate.toDateString() });\r\n }\r\n\r\n resetDashboard() {\r\n\r\n this.filterselected = true;\r\n\r\n //this.dateFilterModel.startDate = null;\r\n //this.dateFilterModel.endDate = null;\r\n //this.refreshCaseList(this.gridState);\r\n this.dateFilterModel = new DateFiltersModel(new Date(), new Date());\r\n this._dafService.resetDate.subscribe(data => {\r\n this._dafService.updateDate({ fromDate: this.dateFilterModel.startDate.toDateString(), toDate: this.dateFilterModel.endDate.toDateString() });\r\n });\r\n }\r\n\r\n viewData(dataItem: any) {\r\n this.router.navigate(['/dafdashboard/dafc-home'], { queryParams: { 'caseId': dataItem.caseSummaryId, 'caseStatus': dataItem.status, 'zoomId': dataItem.caseId } })\r\n\r\n }\r\n\r\n getG28Form(dataItem: any) {\r\n this.isPageReady = false;\r\n //Triggers template download from api\r\n this._dafService.downloadG28Form(dataItem.caseSummaryId).subscribe(response => {\r\n let blob: any = new Blob([response.body], { type: 'application/pdf' });\r\n const url= window.URL.createObjectURL(blob);\r\n window.open(url, '_blank');\r\n //window.location.href = response.url;\r\n //fileSaver.saveAs(blob, 'G28.pdf');\r\n this.isPageReady = true;\r\n }), (error) => {\r\n }\r\n }\r\n\r\n addCaseIds(dataItem: any) {\r\n\r\n var arraycontains = (this.CaseIdsData.indexOf(dataItem.caseId) > -1);\r\n if (arraycontains) {\r\n\r\n this.CaseIdsData.splice(this.CaseIdsData.indexOf(dataItem.caseId), 1);\r\n\r\n }\r\n else {\r\n this.CaseIdsData.push(dataItem.caseId);\r\n\r\n\r\n }\r\n if (this.CaseIdsData.length == 0) {\r\n this.isSuppEnabled = true;\r\n }\r\n else {\r\n this.isSuppEnabled = false;\r\n }\r\n\r\n }\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n this.selectAllState = 'unchecked';\r\n this.isPageReady = false;\r\n var kets = state;\r\n this.gridState = kets;\r\n let skip = 0;\r\n if (state.skip !== 0) {\r\n skip = state.skip / 10;\r\n }\r\n\r\n var summaryParams = new ExportParams();\r\n summaryParams.PagingParams = new PagingParams();\r\n summaryParams.PagingParams.PageNumber = skip + 1;\r\n summaryParams.PagingParams.PageSize = state.take;\r\n if (state.filter != null) {\r\n summaryParams.FilterParams = state.filter.filters;\r\n }\r\n else {\r\n summaryParams.FilterParams = null;\r\n }\r\n if (this.filterselected) {\r\n\r\n summaryParams.FromDate = null;// this.convertUTCDateToLocalDate(this.dateFilterModel.startDate);\r\n summaryParams.ToDate = null;// this.convertUTCDateToLocalDate(this.dateFilterModel.endDate);//formatDate(this.dateFilterModel.endDate, 'YYYY-MM-ddTHH:mm:ss.sssZ', this.locale);//this.dateFilterModel.endDate.toLocaleDateString();\r\n\r\n }\r\n else {\r\n summaryParams.FromDate = null;\r\n summaryParams.ToDate = null;\r\n }\r\n \r\n this._dafService.getCasesByStatus(this.caseStatus, this.caseType, this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString(), summaryParams).subscribe((data: any) => {\r\n this.gridFilteredData = data;\r\n\r\n // Binds the data to grid\r\n let dataParams = process(this.gridFilteredData.caseSummaryModel, { skip: 0, take: this.pageSize, filter: this.gridState.filter, sort: this.gridState.sort }).data;\r\n this.caseList = { data: dataParams, total: this.gridFilteredData.totalRowCount };\r\n this.isPageReady = true;\r\n this.selectAllState = 'unchecked';\r\n \r\n\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n //Adds search placeholder to all filter textbox\r\n var result = document.getElementsByClassName(\"k-filtercell-wrapper\");\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].children[0].setAttribute(\"placeholder\", \"search\");\r\n }\r\n }\r\n\r\n public exportToExcel(grid: GridComponent): void {\r\n grid.saveAsExcel();\r\n }\r\n\r\n getCaseDetails() {\r\n this._dafService.GetCaseSummary().subscribe((data: any) => {\r\n this.chartDatas = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n private rowCallback(row: any) {\r\n const isEven = row.index % 2 == 0;\r\n return {\r\n even: isEven,\r\n odd: !isEven\r\n };\r\n }\r\n\r\n public onDateChange(event: any) {\r\n const diffDays = (date, otherDate) => Math.ceil(Math.abs(date - otherDate) / (1000 * 60 * 60 * 24));\r\n if (this.dateFilterModel.endDate != null && this.dateFilterModel.startDate != null) {\r\n if (this.dateFilterModel.endDate < this.dateFilterModel.startDate) {\r\n this.notifier.notify('error', 'To date cannot be less than from date');\r\n }\r\n\r\n let totalDays = diffDays(this.dateFilterModel.endDate, this.dateFilterModel.startDate);\r\n console.log(totalDays);\r\n\r\n if (totalDays > 730) {\r\n this.notifier.notify('error', 'Date difference cannot be greater than 2 years');\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n goToDashboard() {\r\n try {\r\n this.router.navigate(['/daf/dashboard']);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n searchUserDetails(email: any) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase().trim();\r\n if (filterValue) {\r\n this._dafService.searchSupportUserDetails(filterValue).subscribe((data: any) => {\r\n this.searchDetails = data.value;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while searching the user details');\r\n });\r\n }\r\n\r\n }\r\n\r\n selectAddUserDetails(email: any) {\r\n try {\r\n this.addUserMail = email.mail;\r\n this.addUserName = email.displayName;\r\n //this.autocomplete.reset();\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n UpdateSupportingmemberByCaseIds() {\r\n\r\n if (this.memberemail == undefined || this.memberemail == \"\") {\r\n this.notifier.notify('error', 'Suporting member cannot be blank');\r\n return;\r\n }\r\n\r\n this._dafService.UpdateSupportingmemberByCaseIds(this.CaseIdsData, this.memberemail).toPromise().then(() => {\r\n\r\n this.CaseIdsData = [];\r\n\r\n this.notifier.notify('success', 'CaseIds assigned successfully');\r\n this.refreshCaseList(this.gridState);\r\n this.isSuppEnabled = true;\r\n\r\n\r\n }).catch((err) => {\r\n this.notifier.notify('error', 'Operation Failed');\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n public onSelectedKeysChange(): void {\r\n\r\n const len = this.mySelection.length;\r\n\r\n\r\n\r\n if (len === 0) {\r\n\r\n this.selectAllState = \"unchecked\";\r\n\r\n } else if (len > 0 && len < this.caseList.length) {\r\n\r\n this.selectAllState = \"indeterminate\";\r\n\r\n } else {\r\n\r\n this.selectAllState = \"checked\";\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n public onSelectAllChange(checkedState: SelectAllCheckboxState): void {\r\n\r\n if (checkedState === \"checked\") {\r\n\r\n this.selectAllState = \"checked\";\r\n\r\n } else {\r\n\r\n this.selectAllState = \"unchecked\";\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n public convertUTCDateToLocalDate(date) {\r\n var newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);\r\n\r\n var offset = date.getTimezoneOffset() / 60;\r\n var hours = date.getHours();\r\n\r\n newDate.setHours(hours - offset);\r\n\r\n return newDate;\r\n }\r\n\r\n getCaseStatusList() {\r\n this._dafService.getDAFStatus().subscribe((data: any) => {\r\n this.CaseStatusList = data;\r\n console.log(this.CaseStatusList);\r\n const zipres = this.CaseStatusList.filter(s => s.statusType == this.caseStatus);\r\n this.caseliststatus = zipres[0].dafStatusTypeId;\r\n });\r\n }\r\n}\r\n\r\nexport class DateFiltersModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { dafAppConstants } from 'src/app/DAF/Models/applicationConstants';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { DashboardModel } from '../../../../Models/Dashboard';\r\nimport { CommonService } from 'src/app/service/common.service';\r\nimport { waitForAsync } from '@angular/core/testing';\r\n\r\n@Component({\r\n selector: 'app-dashboard-page',\r\n templateUrl: './dashboard-page.component.html',\r\n styleUrls: ['./dashboard-page.component.scss']\r\n})\r\nexport class DashboardPageComponent implements OnInit {\r\n overallStatusData: Array = [];\r\n dataByLoggedInUser: Array = [];\r\n totalCases: number = 0;\r\n totalCasesByLoggedInUser: number = 0;\r\n isPageReady: boolean = false;\r\n dateFilterModel: DateFiltersModel;\r\n fromReportDate: any;\r\n toReportDate: any;\r\n constructor(public _dafService: DafService, private router: Router, private commonService: CommonService) {\r\n this.dateFilterModel = new DateFiltersModel(new Date(), new Date());\r\n }\r\n\r\n\r\n async ngOnInit() {\r\n //this.dateFilterModel = new DateFiltersModel(new Date(), new Date());\r\n await this.getCaseSummaryReportDate();\r\n //await this.getCaseDetails();\r\n }\r\n\r\n getCaseSummaryReportDate() {\r\n this.commonService.getCaseSummaryReportDate()\r\n .subscribe((data: any) => {\r\n this._dafService.updateDate({ fromDate: data.reportDate, toDate: data.reportDate });\r\n this.getCaseDetails();\r\n });\r\n }\r\n getCaseDetails() {\r\n\r\n this._dafService.currentDates\r\n .subscribe((data: any) => {\r\n this.fromReportDate = data.fromDate;\r\n this.toReportDate = data.toDate;\r\n this.dateFilterModel = new DateFiltersModel(new Date(this.fromReportDate), new Date(this.toReportDate));\r\n this._dafService.GetCaseSummaryDashboard(this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n this.overallStatusData = [];\r\n this.totalCases = 0;\r\n data.forEach(element => {\r\n this.overallStatusData.push(new DashboardModel(element))\r\n });\r\n const countsArr = this.overallStatusData.map(x => x.value);\r\n this.totalCases = countsArr.reduce((a, b) => a + b, 0);\r\n this.getCaseAssessorDetails();\r\n },\r\n (error) => {\r\n });\r\n //this._dafService.GetCaseSummaryDashboard(this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // this.overallStatusData=[];\r\n // this.totalCases=0;\r\n // data.forEach(element => {\r\n // this.overallStatusData.push(new DashboardModel(element))\r\n // });\r\n // const countsArr = this.overallStatusData.map(x => x.value);\r\n // this.totalCases = countsArr.reduce((a, b) => a + b, 0);\r\n // this.getCaseAssessorDetails();\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n getCaseAssessorDetails() {\r\n this._dafService.GetCaseAssessorSummary(this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n this.dataByLoggedInUser=[];\r\n this.totalCasesByLoggedInUser=0;\r\n const filteredData = data;\r\n filteredData.forEach(element => {\r\n this.dataByLoggedInUser.push(new DashboardModel(element))\r\n });\r\n \r\n const countsArr = this.dataByLoggedInUser.map(x => x.value);\r\n this.totalCasesByLoggedInUser = countsArr.reduce((a, b) => a + b, 0);\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n caseasessorOpen(status) {\r\n // this._dafService.setSessionStorage(dafAppConstants.sessionStorageVariables.currentStatus,status);\r\n // this._dafService.setSessionStorage(dafAppConstants.sessionStorageVariables.currentCaseType,\"caseAssessor\")\r\n // this.router.navigate(['/caseDeatils'], { queryParams: { 'caseStatus': status, 'caseType': 'caseAssessor' }});\r\n }\r\n\r\n onSeriesClick(event: any, caseType: string) {\r\n try {\r\n console.log(event);\r\n this._dafService.setSessionStorage(dafAppConstants.sessionStorageVariables.currentStatus, event.category);\r\n this._dafService.setSessionStorage(dafAppConstants.sessionStorageVariables.currentCaseType, caseType)\r\n this.router.navigate(['/caseDeatils'], { queryParams: { 'caseStatus': event.category, 'caseType': caseType } });\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n filterCaseList() {\r\n //this.getCaseDetails();\r\n this._dafService.updateDate({ fromDate: this.dateFilterModel.startDate.toDateString(), toDate: this.dateFilterModel.endDate.toDateString() });\r\n }\r\n\r\n}\r\nexport class DateFiltersModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { Component, Input, OnInit, OnChanges,AfterViewInit, Output , EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-pie-chart',\r\n templateUrl: './pie-chart.component.html',\r\n styleUrls: ['./pie-chart.component.scss']\r\n})\r\nexport class PieChartComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() title = null;\r\n @Input() doughnutCenterTemplate;\r\n doughnutCenterTemplateString = \"\"\r\n showLegend = true;\r\n @Input() public chartData;\r\n @Output() seriesClick = new EventEmitter();\r\n constructor(private router: Router) {\r\n\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.doughnutCenterTemplateString = `Total Cases: \\n ${this.doughnutCenterTemplate}`;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // const total = this.chartData.map(x=>x.value).reduce((a,b)=>a+b,0)\r\n // this.doughnutCenterTemplateString = `Total Cases: \\n ${total}`;\r\n }\r\n\r\n public onSeriesClick(event): void {\r\n this.seriesClick.emit(event);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DashboardPageComponent } from './components/dashboard-page/dashboard-page.component';\r\nimport { CaseDetailsComponent } from './components/case-details/case-details.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'dashboard', pathMatch: 'full',component: DashboardPageComponent\r\n },\r\n {\r\n path:'caseDeatils',pathMatch: 'full',component:CaseDetailsComponent\r\n }\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class DashboardRoutingModule {\r\n\r\n\r\n\r\n }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChartModule } from '@progress/kendo-angular-charts';\r\nimport { SharedModule } from '../shared/shared.module'\r\nimport { DashboardRoutingModule } from './dashboard-routing.module';\r\nimport { DashboardPageComponent } from './components/dashboard-page/dashboard-page.component';\r\nimport { PieChartComponent } from './components/pie-chart/pie-chart.component';\r\nimport { FormControl, FormsModule } from \"@angular/forms\";\r\nimport { Component, ViewEncapsulation, ViewChild } from \"@angular/core\";\r\n\r\nimport { LayoutModule, StepperComponent } from \"@progress/kendo-angular-layout\";\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CaseDetailsComponent } from './components/case-details/case-details.component';\r\nimport { DatePickerModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { FloatingLabelModule } from '@progress/kendo-angular-label';\r\nimport { TextBoxModule } from '@progress/kendo-angular-inputs';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [DashboardPageComponent, PieChartComponent, CaseDetailsComponent],\r\n imports: [\r\n CommonModule,\r\n DashboardRoutingModule,\r\n ChartModule,\r\n SharedModule,\r\n LayoutModule,\r\n FormsModule,\r\n DatePickerModule,\r\n DateInputsModule,\r\n ReactiveFormsModule,\r\n GridModule,\r\n ExcelModule,\r\n TextBoxModule,\r\n FloatingLabelModule\r\n ]\r\n})\r\nexport class DashboardModule { }\r\n","export class ExportParams {\r\n FilterParams: any[] = [];\r\n PagingParams: PagingParams;\r\n SortParams: SortParams;\r\n FromDate: any;\r\n ToDate: any\r\n}\r\n\r\nexport class CompositeFilterDescriptor {\r\n Logic: string\r\n Filters: object[];\r\n}\r\n\r\n\r\nexport class PagingParams {\r\n PageNumber: number;\r\n PageSize: number\r\n}\r\n\r\nexport class SortParams {\r\n Direction: string;\r\n Field: string;\r\n}\r\n","import { Component, OnInit, Input,Output,EventEmitter, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-auto-complete',\r\n templateUrl: './auto-complete.component.html',\r\n styleUrls: ['./auto-complete.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AutoCompleteComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class AutoCompleteComponent implements OnInit {\r\n @Input() dataToBind: string = \"\";\r\n @Input() label : string =\"\";\r\n onChange: any = () => { };\r\n onTouch: any = () => { };\r\n isDisabled = false;\r\n @Input() isReadOnly: boolean = false;\r\n @Output() changeEmitter = new EventEmitter();\r\n \r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n try {\r\n this.dataToBind = obj;\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n try {\r\n this.onChange = fn;\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n onValueChange(event: any) {\r\n try {\r\n if (this.isDisabled) return;\r\n this.dataToBind = event.value;\r\n this.onChange(this.dataToBind);\r\n this.onTouch();\r\n this.changeEmitter.emit(event);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n try {\r\n this.onTouch = fn;\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n try {\r\n this.isDisabled = isDisabled;\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit , Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n\r\n @Input() label = null;\r\n @Input() type;\r\n @Input() isDisabled: boolean = false;\r\n @Input() isHidden: boolean = false;\r\n @Input() icon = null;\r\n @Input() iconPlacementFront: boolean = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-number-input',\r\n templateUrl: './number-input.component.html',\r\n styleUrls: ['./number-input.component.scss']\r\n})\r\nexport class NumberInputComponent implements OnInit {\r\n\r\n @Input() value: number = 0;\r\n @Input() disabled: boolean = false;\r\n @Input() max: number = null;\r\n @Input() min: number = null;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonComponent } from './components/button/button.component';\r\nimport { NumberInputComponent } from './components/number-input/number-input.component';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { LabelModule, FloatingLabelModule } from \"@progress/kendo-angular-label\";\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DatePickerModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { AutoCompleteComponent } from './components/auto-complete/auto-complete.component';\r\nimport { DropDownsModule } from \"@progress/kendo-angular-dropdowns\";\r\n\r\n\r\n@NgModule({\r\n declarations: [ButtonComponent,NumberInputComponent, \r\n AutoCompleteComponent],\r\n imports: [\r\n CommonModule, InputsModule, FloatingLabelModule, LabelModule, \r\n FormsModule, ReactiveFormsModule,\r\n DatePickerModule, DateInputsModule, DropDownsModule\r\n ],\r\n exports: [\r\n ButtonComponent,\r\n NumberInputComponent,\r\n FloatingLabelModule,LabelModule,\r\n FormsModule, ReactiveFormsModule,\r\n DatePickerModule, DateInputsModule,DropDownsModule,\r\n AutoCompleteComponent\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExportParams, PagingParams } from '../modules/dashboard/models/filterParams.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { filingStratergyDetails } from '../Models/FilingStratergy';\r\nimport { dafAppConstants } from '../Models/applicationConstants';\r\nimport { WorkSitewizards } from '../Models/websiteWizard';\r\nimport { WorkExperience } from '../Models/WorkExperience';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DafService {\r\n private dataSource = new BehaviorSubject({emailId: 'Ashish.Kudva@ey.com',id:1});\r\n currentData = this.dataSource.asObservable();\r\n\r\n private dateSources = new BehaviorSubject( {fromDate:new Date(),toDate:new Date()});\r\n currentDates = this.dateSources.asObservable();\r\n\r\n private dateSourcesINS = new BehaviorSubject({ fromDate: new Date(), toDate: new Date() });\r\n currentInsDates = this.dateSourcesINS.asObservable();\r\n\r\n private resetDates = new BehaviorSubject( new Date());\r\nresetDate = this.resetDates.asObservable();\r\n mySubject : BehaviorSubject = new BehaviorSubject([]);\r\n addedLCAData=this.mySubject.asObservable();\r\n \r\n constructor(private _http: HttpClient) { }\r\n \r\n getCasesByStatus(statusus: string, caseType: string, startDate: any, endDate: any, filterParams: ExportParams) {\r\n var status=encodeURIComponent(statusus);\r\n //filterParams[\"status\"]= this.getSessionStorage(dafAppConstants.sessionStorageVariables.currentStatus);\r\n //filterParams[\"caseType\"]= this.getSessionStorage(dafAppConstants.sessionStorageVariables.currentCaseType);\r\n //return this._http.post(environment.ApiUrl + 'daf/GetCasesByStatus', filterParams, {});\r\n return this._http.post(environment.ApiUrl + 'daf/GetCasesByStatus?status=' + status + '&caseType=' + caseType + '&startDate=' + startDate + '&endDate=' + endDate, filterParams, {});\r\n }\r\n\r\n\r\n GetCaseSummary() {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCaseSummary');\r\n }\r\n\r\n GetCaseAssessorSummary(startDate, endDate) {\r\n let params = new HttpParams();\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n return this._http.get(environment.ApiUrl + 'daf/GetAssessmentSummary', { params: params });\r\n }\r\n\r\n public updateDate(data: any) {\r\n this.dateSources.next(data);\r\n }\r\n\r\n public updateINSDate(data: any) {\r\n this.dateSourcesINS.next(data);\r\n }\r\n\r\n public setresetDate(data: any) {\r\n this.resetDates.next(data);\r\n }\r\n\r\n GetCaseSummaryDashboard(startDate, endDate) {\r\n let params = new HttpParams();\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate );\r\n return this._http.get(environment.ApiUrl + 'daf/GetCaseSummaryDashboard', { params: params });\r\n }\r\n\r\n getCasesById(caseId:number) {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCasesByCaseId?caseId='+caseId);\r\n }\r\n\r\n getCaseRecieptDetails(caseId:number) {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCaseRecieptDetails?caseId='+caseId);\r\n }\r\n GetIndividualBio(caseId:number) {\r\n return this._http.get(environment.ApiUrl + 'daf/GetIndividualBioInfoByCaseId?caseId='+caseId);\r\n }\r\n\r\n GetPrimaryWorksiteAddress(caseId:number) {\r\n return this._http.get(environment.ApiUrl + 'daf/GetPrimaryWorksiteAddress?caseId='+caseId);\r\n }\r\n\r\n GetFileHistoryInfo(caseSummaryId: number) {\r\n return this._http.get(environment.ApiUrl + 'daf/GetFileHistoryInfo?caseSummaryId=' + caseSummaryId);\r\n }\r\n\r\n GetServiceCodes() {\r\n return this._http.get(environment.ApiUrl + 'daf/GetServiceCode');\r\n }\r\n\r\n searchSupportUserDetails(email: string) {\r\n return this._http.get(environment.GraphUri + 'v1.0/groups/6bd64b1b-3ab3-467a-8682-839c6b951ac5/members/microsoft.graph.user?$count=true&$search=\"mail:' + email + '\" OR \"displayName:' + email +'\"');\r\n }\r\n\r\n saveCaseSummary(caseSummary: any,dob : any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveCaseSummary?dob=' + dob, caseSummary, {});\r\n }\r\n\r\n saveIndividualBioInfo(indBioInfo: any, ped: any, iExpDate: any, visaExpDate: any , h1L1statusStartDate: any, h1L1statusToDate: any, dateFrom: any, dateTo: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveIndividualBiographicalInfo?peddate=' + ped + '&iExpDate=' + iExpDate + '&visaExpDate=' + visaExpDate + '&h1L1statusStartDate=' + h1L1statusStartDate + '&h1L1statusToDate=' + h1L1statusToDate + '&dateFrom=' + dateFrom + '&dateTo=' + dateTo , indBioInfo, {});\r\n }\r\n\r\n savePrimaryWorksiteAddress(worksiteAddress: any, lcaValidityFrom: any, lcaValidityTo: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SavePrimaryWorksiteAddress?lcaValidityFrom=' + lcaValidityFrom + '&lcaValidityTo=' + lcaValidityTo, worksiteAddress, {});\r\n }\r\n\r\n saveJobDetailsWizard(worksiteAddress: any,caseSummaryId:any) {\r\n return this._http.post(environment.ApiUrl + 'daf/InsertJobTitleWizardData?caseSummaryId=' + caseSummaryId, worksiteAddress, {});\r\n }\r\n\r\n UpdateCaseStatus(caseId: any,caseStatus:any) {\r\n return this._http.post(environment.ApiUrl + 'daf/UpdateCaseStatus?caseSummaryId=' + caseId+'&caseStatus=' + caseStatus, {});\r\n }\r\n\r\n GetDAFValidation(caseId:any,caseStatus:any){\r\n return this._http.get(environment.ApiUrl + 'daf/GetDAFValidation?caseSummaryId=' + caseId+'&moduleName=' + caseStatus.toString(), {});\r\n }\r\n\r\n saveAddressWizard(caseSummaryId:any,worksiteAddress: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/InsertAddressWizardData?caseSummaryId=' + caseSummaryId, worksiteAddress, {});\r\n }\r\n\r\n saveLCAInfoWizard(caseSummaryId:any,worksiteAddress: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/InsertLCAWizardData', worksiteAddress, {});\r\n }\r\n \r\n\r\n disableEnableAllFormControls(form:FormGroup,controlsToExclude:Array=[],disable:boolean=true){\r\n try{\r\n Object.keys(form.controls).forEach(key => {\r\n const abstractControl = form.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.disableEnableAllFormControls(abstractControl,controlsToExclude, disable);\r\n }\r\n else{\r\n if(disable)\r\n {\r\n if(!controlsToExclude.includes(key)){\r\n form.controls[key].disable();\r\n }\r\n }\r\n else{\r\n if(!controlsToExclude.includes(key)){\r\n form.controls[key].enable();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n\r\n disableEnableFormControl(form:FormGroup,controlsArray:Array,disable:boolean){\r\n try{\r\n controlsArray.forEach(key => {\r\n if(disable){\r\n form.controls[key].disable();\r\n }\r\n else{\r\n form.controls[key].enable();\r\n }\r\n });\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n\r\n getStates(){\r\n try{\r\n return this._http.get(`${environment.ApiUrl}daf/GetStates`);\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n\r\n getOfficeAddress() {\r\n try {\r\n return this._http.get(`${environment.ApiUrl}daf/GetOfficeAddresses`);\r\n }\r\n catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n getImmigrationStatus(){\r\n try{\r\n return this._http.get(`${environment.ApiUrl}daf/getImmigrationStatus`)\r\n }\r\n catch(err){\r\n console.log(err)\r\n }\r\n }\r\n\r\n getCountriesCitizenship(){\r\n try{\r\n return this._http.get(`${environment.ApiUrl}daf/GetCountries`)\r\n }\r\n catch(err){\r\n console.log(err)\r\n }\r\n }\r\n\r\n getZipCodeByState(state:string){\r\n try{\r\n return this._http.get(`${environment.ApiUrl}LCAData/GetZipcodes`);\r\n }\r\n catch(err){\r\n console.log(err);\r\n }\r\n }\r\n\r\n getJobPositionDetailsByCaseSummaryId(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetJobPositionDetailsByCaseSummaryId?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getCaseFeesByCaseSummaryId(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCaseFeesByCaseSummaryId?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getFilingStratergyDetailsByCaseSummaryId(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetFilingStratergyDetailsByCaseSummaryId?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n saveJobPositionDetails(caseSummaryId: number, I129FromDate: any, I129ToDate : any, jobPositionDetails: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveJobPositionDetails?caseSummaryId=' + caseSummaryId + '&I129FromDate=' + I129FromDate + '&I129ToDate=' + I129ToDate, jobPositionDetails, {});\r\n }\r\n saveCaseFeesDetails(caseSummaryId: number, CaseFeesDetails: any, notes: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveCaseFeesByCaseSummaryId?caseSummaryId=' + caseSummaryId + '¬es=' + notes, CaseFeesDetails, {});\r\n }\r\n\r\n saveFilingStratergyDetails(caseSummaryId: number, filingstartergyDetails: filingStratergyDetails) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveFilingStratergy?caseSummaryId=' + caseSummaryId, filingstartergyDetails, {});\r\n }\r\n\r\n savePrimaryWorkSiteItinerary(caseSummaryId: number, worksiteDetails: WorkSitewizards[]) {\r\n return this._http.post(environment.ApiUrl + 'daf/InsertWorkSiteIterinary?caseSummaryId=' + caseSummaryId, worksiteDetails, {});\r\n }\r\n\r\n saveWorkExperienceDetails(caseSummaryId: number, worksiteDetails: WorkExperience[]) {\r\n return this._http.post(environment.ApiUrl + 'daf/InsertWorkExperience?caseSummaryId=' + caseSummaryId, worksiteDetails, {});\r\n }\r\n\r\n updateWorkExperienceDetails(caseSummaryId: number, worksiteDetails: WorkExperience[]) {\r\n return this._http.post(environment.ApiUrl + 'daf/UpdateWorkExperience?caseSummaryId=' + caseSummaryId, worksiteDetails, {});\r\n }\r\n\r\n UpdateSupportingmemberByCaseIds(CaseIds: string[], Memberemail: string) {\r\n return this._http.post(environment.ApiUrl + 'daf/UpdateSupportingmemberByCaseIds?CaseIds=' + CaseIds + '&Memberemail=' + Memberemail, {});\r\n }\r\n\r\n deleteWorkExperienceDetails(workExperienceId: Number) {\r\n return this._http.delete(environment.ApiUrl + 'daf/DeleteWorkExperience?workExperienceId=' + workExperienceId);\r\n }\r\n\r\n getprimaryworkSiteItineraryDetails(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetWorkSiteItineraryDetails?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getWorkExperienceDetails(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetWorkExperienceDetails?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getetONETOCSSDetails() {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetONETOCSSDetails');\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n getLCAAssessmentDetails(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetLCAAssessmentDetails?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getjobTitleInfos(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetJobTitleDetails?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getJobTitleInformation(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetJobTitleWizardInformation?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getAddressWizardInformation(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetAddressWizardInformation?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getLCAWizardInformation(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetLCAWizardInformation?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getLCAInformation(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetLCAInformation?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getDAFStates() {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetStates');\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getDotCodeBySOCCd(socCode) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetDotCodeBySOCCode?socCode=' + socCode);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getZipcodeByState(stateId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetZipcodeByState?stateId=' + stateId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getCountyByState(stateId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCountyByState?stateId=' + stateId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getCityByZipcode(zipCodeId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCitiesByZipcode?zipCodeId=' + zipCodeId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getGeographyByState(stateId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetGeographyByState?stateId=' + stateId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n GetCountyByGeography(stateId: number, geographyId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCountyByGeography?stateId=' + stateId + '&geographyId=' + geographyId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n GetGeographyByCounty(stateId: number, countyId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetGeographyByCounty?stateId=' + stateId + '&countyId=' + countyId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n GetCaseManagers() {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCaseManagers');\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n GetAttorneys() {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCaseAttorneys');\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getCountyAndCityInfoByZipCode(zipCodeId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCountyAndCityInfoByZipCode?stateId=' + zipCodeId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n saveLCAAssessmentDetails(caseSummaryId: number, lcaValidityFrom : any, lcaValidityTo : any, lcaAssessmentDetails: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveLCAAssessmentDetails?caseSummaryId=' + caseSummaryId + '&LCAValidityFrom=' + lcaValidityFrom + '&LCAValidityTo=' + lcaValidityTo , lcaAssessmentDetails, {});\r\n }\r\n\r\n getLCAPrevailingwage(caseSummaryId: number, onetCode: string) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetLCAPrevailingwage?caseSummaryId=' + caseSummaryId + '&onetCode=' + onetCode);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getFLCWage(geographyId: number, socCode: string, wageLevel: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetFLCWage?geographyId=' + geographyId + '&socCode=' + socCode + '&wageLevel=' + wageLevel);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getSpouseAndDependentDetails(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetSpouseAndDependentDetails?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getSpecialityDegreeDetails(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/SpeDegAssInfo?caseId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getDocumentChecklistDetails(caseSummaryId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetDocumentChecklistDetails?caseSummaryId=' + caseSummaryId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n saveSpouseAndDependentDetails(caseSummaryId: number, spouseAndDependentDetail: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveSpouseAndDependentDetails?caseSummaryId=' + caseSummaryId, spouseAndDependentDetail, {});\r\n }\r\n\r\n SaveSpecialityDegreeDetails(caseSummaryId: number, specialitydegreeDetails: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveSpecialityDegreeDetails?caseSummaryId=' + caseSummaryId, specialitydegreeDetails, {});\r\n }\r\n \r\n saveDocumentChecklistDetails(caseSummaryId: number, documentchecklist: any) {\r\n return this._http.post(environment.ApiUrl + 'daf/SaveDocumentChecklistDetails?caseSummaryId=' + caseSummaryId, documentchecklist, {});\r\n }\r\n \r\n\r\n\r\n setSessionStorage(key: string, value: string) {\r\n sessionStorage.setItem(key, value);\r\n }\r\n\r\n getSessionStorage(key: string) {\r\n return sessionStorage.getItem(key);\r\n }\r\n getOfficeInfoById(officeId: number) {\r\n try {\r\n return this._http.get(environment.ApiUrl + 'daf/GetOfficeAddressesById?officeId=' + officeId);\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n getDAFStatus() {\r\n try {\r\n return this._http.get(`${environment.ApiUrl}daf/GetDAFStatus`)\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n }\r\n\r\n downloadG28Form(caseSummaryId) {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n }),\r\n observe: 'response' as 'body',\r\n responseType: 'blob' as 'json'\r\n };\r\n\r\n return this._http.get(`${environment.ApiUrl}daf/DownloadG28Form?caseSummaryId=` + caseSummaryId, httpOptions);\r\n }\r\n\r\n GetFilingVenue() {\r\n return this._http.get(environment.ApiUrl + 'daf/GetFilingVenue');\r\n }\r\n}\r\n\r\n","import { Component, OnInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { BroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Logger, CryptoUtils } from 'msal';\r\nimport { Router } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CommonService } from '../app/service/common.service';\r\nimport { Subject, Subscription, timer } from 'rxjs';\r\nimport { take, startWith, switchMap } from 'rxjs/operators';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n isIframe = false;\r\n loggedIn = false;\r\n profile;\r\n isUserExist = '';\r\n requestObj = null;\r\n userInactive: Subject = new Subject();\r\n public showConfirmation: boolean = false;\r\n public isLogout = false;\r\n sessioTimeout: any;\r\n userActivity: any;\r\n unsubscribe$: Subject = new Subject();\r\n\r\n constructor(private broadcastService: BroadcastService, private authService: MsalService,\r\n private http: HttpClient, private router: Router, private commonService: CommonService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.isUserExist = localStorage.getItem('isUserExist');\r\n this.isIframe = window !== window.parent && !window.opener;\r\n\r\n this.broadcastService.subscribe('msal:loginSuccess', () => {\r\n this.checkAccount();\r\n });\r\n\r\n this.broadcastService.subscribe('msal:acquireTokenSuccess', () => {\r\n this.checkAccount();\r\n });\r\n\r\n this.authService.handleRedirectCallback((authError, response) => {\r\n if (authError) {\r\n console.error('Redirect Error: ', authError.errorMessage);\r\n return;\r\n }\r\n console.log('Redirect Success: ', response.accessToken);\r\n });\r\n\r\n this.requestObj = {\r\n scopes: [\"user.read\", environment.APIScope]\r\n };\r\n this.broadcastService.subscribe(\"msal:acquireTokenFailure\", payload => {\r\n this.renewToken();\r\n //this.login();\r\n });\r\n\r\n this.authService.setLogger(new Logger((logLevel, message, piiEnabled) => {\r\n console.log('MSAL Logging: ', message);\r\n }, {\r\n correlationId: CryptoUtils.createNewGuid(),\r\n piiLoggingEnabled: false\r\n }));\r\n\r\n this.setUserIdleTimeout();\r\n this.userInactive.subscribe(() => {\r\n this.logout();\r\n });\r\n }\r\n\r\n @HostListener('window:mousedown', ['$event'])\r\n @HostListener('window:mousemove', ['$event'])\r\n @HostListener('document:keyup', ['$event'])\r\n @HostListener('document:keydown', ['$event'])\r\n @HostListener('document:wheel', ['$event'])\r\n @HostListener('window:click', ['$event'])\r\n onEvent(event) {\r\n clearTimeout(this.userActivity);\r\n this.setUserIdleTimeout();\r\n }\r\n\r\n setUserIdleTimeout() {\r\n this.userActivity = setTimeout(() => {\r\n if (!!this.authService.getAccount()) {\r\n this.userInactive.next(undefined);\r\n }\r\n }, 1800000);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n checkAccount() {\r\n this.loggedIn = !!this.authService.getAccount();\r\n }\r\n\r\n login() {\r\n const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\n if (isIE) {\r\n this.authService.loginRedirect();\r\n } else {\r\n this.authService.loginPopup();\r\n }\r\n }\r\n\r\n logout() {\r\n this.commonService.logoutSession().subscribe((data: any) => {\r\n this.authService.logout();\r\n });\r\n }\r\n\r\n renewToken() {\r\n this.authService.acquireTokenRedirect(this.requestObj);\r\n //.then(\r\n //function (accessTokenResponse) {\r\n // // call API\r\n //}).catch(function (error) {\r\n // console.log(error);\r\n //});\r\n }\r\n\r\n //@HostListener(\"window:beforeunload\", [\"$event\"])\r\n //clearLocalStorage(event) {\r\n // localStorage.clear();\r\n //}\r\n \r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n// import { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MsalModule, MsalInterceptor } from '@azure/msal-angular';\r\nimport { AppComponent } from './app.component';\r\nimport { NavMenuComponent } from './nav-menu/nav-menu.component';\r\nimport { ImmigrationcompilationModule } from './immigrationcompilation/immigrationcompilation.module';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { CustomHttpInterceptor } from './core/interceptors/insert-auth-token-interceptor';\r\nimport { AuthGuard } from './core/guards/auth.guard';\r\n// Kendo Controls\r\nimport { TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NotifierModule, NotifierOptions } from 'angular-notifier';\r\nimport { FloatingLabelModule, LabelModule } from '@progress/kendo-angular-label';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport { DatePickerModule } from '@progress/kendo-angular-dateinputs';\r\nimport { DialogModule } from '@progress/kendo-angular-dialog';\r\nimport { ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { LayoutModule } from \"@progress/kendo-angular-layout\";\r\nimport { IconsModule } from \"@progress/kendo-angular-icons\";\r\nimport { ListViewModule } from '@progress/kendo-angular-listview';\r\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\r\nimport { NavigationModule } from '@progress/kendo-angular-navigation';\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport \"hammerjs\";\r\nimport { DAFHomeModule } from './DAF/modules/dafhome/dafhome.module';\r\nimport { EympINSZoomIntegrationModule } from './eymp-inszoom-integration/eymp-inszoom-integration.module';\r\nimport { EympNoticesModule } from './eymp-notices/eymp-notices.module';\r\n\r\nexport const protectedResourceMap: [string, string[]][] =\r\n [[environment.ApiUrl + 'values', [environment.APIScope]],\r\n [environment.GraphUri + 'v1.0/me', ['user.read']]];\r\n\r\nconst isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\nconst customNotifierOptions: NotifierOptions = {\r\n position: {\r\n horizontal: {\r\n position: 'right',\r\n distance: 12\r\n },\r\n vertical: {\r\n position: 'top',\r\n distance: 50,\r\n gap: 10\r\n }\r\n },\r\n behaviour: {\r\n autoHide: 4000\r\n }\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n NavMenuComponent,\r\n BreadcrumbComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n // FormsModule,\r\n // ReactiveFormsModule,\r\n TextBoxModule,\r\n InputsModule,\r\n BrowserAnimationsModule,\r\n ImmigrationcompilationModule,\r\n NotifierModule.withConfig(customNotifierOptions),\r\n FloatingLabelModule,\r\n TreeViewModule,\r\n TreeListModule,\r\n DatePickerModule,\r\n DialogModule,\r\n ExcelModule,\r\n LayoutModule,\r\n InputsModule,\r\n LabelModule,\r\n IconsModule,\r\n TextBoxModule,\r\n FloatingLabelModule,\r\n MsalModule.forRoot({\r\n auth: {\r\n clientId: environment.FrontEndClientId,\r\n authority: environment.Authority,\r\n redirectUri: environment.RedirectUri,\r\n postLogoutRedirectUri: environment.RedirectUri,\r\n navigateToLoginRequestUrl: true,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: isIE,\r\n },\r\n },\r\n {\r\n popUp: false,\r\n consentScopes: [\r\n 'user.read',\r\n 'openid',\r\n 'profile',\r\n environment.APIScope\r\n ],\r\n unprotectedResources: [],\r\n protectedResourceMap: protectedResourceMap,\r\n extraQueryParameters: {}\r\n }),\r\n RouterModule.forRoot([\r\n { path: 'daf', loadChildren: () => import('./DAF/modules/dashboard/dashboard.module').then(m => m.DashboardModule) },\r\n { path: '', loadChildren: () => import('./immigrationcompilation/immigrationcompilation.module').then(m => m.ImmigrationcompilationModule), pathMatch: 'full', canActivate: [MsalGuard] },\r\n { path: 'dafdashboard', loadChildren: () => import('./DAF/modules/dafhome/dafhome.module').then(m => m.DAFHomeModule) },\r\n { path: 'inszoom', loadChildren: () => import('./eymp-inszoom-integration/eymp-inszoom-integration.module').then(m => m.EympINSZoomIntegrationModule) },\r\n { path: 'notices', loadChildren: () => import('./eymp-notices/eymp-notices.module').then(m => m.EympNoticesModule) }\r\n\r\n], { relativeLinkResolution: 'legacy' }),\r\n ListViewModule,\r\n ChartsModule,\r\n DAFHomeModule,\r\n NavigationModule,\r\n EympINSZoomIntegrationModule,\r\n EympNoticesModule\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: CustomHttpInterceptor,\r\n multi: true\r\n }, AuthGuard],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router, Data, PRIMARY_OUTLET, ActivatedRoute } from '@angular/router';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n breadcrumbs = [];\r\n loadBreadcrumb = false;\r\n\r\n constructor(public router: Router, private activatedRoute: ActivatedRoute) {\r\n this.router.events\r\n .pipe(filter(event => event instanceof NavigationEnd))\r\n .pipe(map(() => this.activatedRoute))\r\n .pipe(map((route) => {\r\n while (route.firstChild) { route = route.firstChild; }\r\n return route;\r\n }))\r\n .pipe(filter(route => route.outlet === PRIMARY_OUTLET))\r\n .subscribe(route => {\r\n this.loadBreadcrumb = false;\r\n\r\n let snapshot = this.router.routerState.snapshot;\r\n let index = 0;\r\n\r\n let url = snapshot.url.split('?')[0];\r\n let routeData = route.snapshot.data;\r\n\r\n let label = routeData['breadcrumb'];\r\n let params = snapshot.root.queryParams;\r\n index = this.breadcrumbs.findIndex(item => item.label == label);\r\n if (label != 'Home' && label != '') {\r\n if (index > -1) {\r\n this.breadcrumbs.splice(index + 1, this.breadcrumbs.length - index);\r\n }\r\n else {\r\n\r\n this.breadcrumbs.push({\r\n url: url,\r\n label: label,\r\n params: params\r\n });\r\n }\r\n }\r\n else {\r\n this.breadcrumbs = [];\r\n }\r\n\r\n this.loadBreadcrumb = true;\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRoute, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\nexport class AuthGuard implements CanActivate {\r\n roles=[];\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n let ret = false;\r\n this.roles=[];\r\n var roles =JSON.parse(localStorage.getItem(\"isSuperAdmin\"));\r\n if(route.routeConfig.path==\"dashboard\"){\r\n this.roles=roles.filter(item=>{ return item==\"ImmigrationCompilation-Attorney\"||item==\"ImmigrationCompilation-Admin\"||item==\"ImmigrationCompilation-Law Clerk\"||item==\"SuperAdmin\";})\r\n if(this.roles.length>0){\r\n ret=true;\r\n }\r\n else if(roles.includes('CourierPackage-Admin')||roles.includes('CourierPackage-User')){\r\n \r\n this.router.navigate(['/courierpackage']);\r\n\r\n }\r\n else{\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n\r\n \r\n }\r\n //else if(route.routeConfig.path==\"awaitdocextract\"||route.routeConfig.path==\"awaitcompilation\"||route.routeConfig.path==\"compilationfailed\"||route.routeConfig.path==\"awaitlawclerkreview\"||route.routeConfig.path==\"submittedtolawyer\"||route.routeConfig.path==\"compilationrejected\"||route.routeConfig.path==\"detailedview/:parentBnfId/:applicantType/:requestType/:caseType/:insZoomId/:isLast\"){\r\n else if (route.routeConfig.path == \"awaitdocextract\" || route.routeConfig.path == \"awaitcompilation\" || route.routeConfig.path == \"compilationfailed\" || route.routeConfig.path == \"awaitlawclerkreview\" || route.routeConfig.path == \"submittedtolawyer\" || route.routeConfig.path == \"compilationrejected\" || route.routeConfig.path == \"detailedview/:Id/:isLast\") {\r\n this.roles=roles.filter(item=>{ return item==\"ImmigrationCompilation-Attorney\"||item==\"ImmigrationCompilation-Admin\"||item==\"ImmigrationCompilation-Law Clerk\"||item==\"SuperAdmin\";})\r\n if(this.roles.length>0){\r\n ret=true;\r\n }\r\n else{\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n else if (route.routeConfig.path == \"courierpackage\" || route.routeConfig.path == \"courierpackageSuccess\" || route.routeConfig.path == \"courierpackageFailure\" || route.routeConfig.path == \"courierpackagePendings\" || route.routeConfig.path == \"courierpackageAccessFailure\"){\r\n this.roles=roles.filter(item=>{ return item==\"CourierPackage-Admin\"||item==\"CourierPackage-User\"||item==\"SuperAdmin\";})\r\n if(this.roles.length>0){\r\n ret=true;\r\n }\r\n else{\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n else if(route.routeConfig.path==\"lawyer-management\"){\r\n this.roles=roles.filter(item=>{ return item==\"CourierPackage-Admin\"||item==\"SuperAdmin\";})\r\n if(this.roles.length>0){\r\n ret=true;\r\n }\r\n else{\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n else if (route.routeConfig.path == \"inszoom/dashboard\" || route.routeConfig.path == \"draftdetails\") {\r\n this.roles = roles.filter(item => { return item == \"EYMPINSZoomIntegration-Admin\" || item == \"SuperAdmin\" || item == \"EYMPINSZoomIntegration-User\"; })\r\n if (this.roles.length > 0) {\r\n ret = true;\r\n }\r\n else {\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n else if (route.routeConfig.path == \"notices/dashboard\" || route.routeConfig.path == \"noticesdetails\") {\r\n this.roles = roles.filter(item => { return item == \"EYMPNotices-Admin\" || item == \"SuperAdmin\" || item == \"EYMPNotices-User\"; })\r\n if (this.roles.length > 0) {\r\n ret = true;\r\n }\r\n else {\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n else if(route.routeConfig.path==\"user-management\"){\r\n this.roles = roles.filter(item => { return item == \"ImmigrationCompilation-Admin\" || item == \"SuperAdmin\" || item == \"CourierPackage-Admin\" || item == \"LCACompliance-Admin\" || item == \"DigitalAssessmentForm-Admin\" || item == \"EYMPINSZoomIntegration-Admin\" || item == \"EYMPNotices-Admin\";})\r\n if(this.roles.length>0){\r\n ret=true;\r\n }\r\n else{\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n //const returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n return ret;\r\n }\r\n}\r\n","import { Observable, from } from 'rxjs';\r\nimport { Location } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpInterceptor } from '@angular/common/http';\r\nimport { HttpRequest } from '@angular/common/http';\r\nimport { HttpHandler } from '@angular/common/http';\r\nimport { HttpEvent } from '@angular/common/http';\r\nimport { BroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\nexport class CustomHttpInterceptor implements HttpInterceptor {\r\n constructor(private msalService: MsalService) { }\r\n public token: any;\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return from(this.handleAccess(request, next));\r\n }\r\n\r\n private async handleAccess(request: HttpRequest, next: HttpHandler):\r\n Promise> {\r\n var finalHeader;\r\n var requestObj = null;\r\n\r\n if (request.url.includes('https://graph.microsoft.com/')) {\r\n requestObj = {\r\n scopes: [\"user.read\"]\r\n };\r\n\r\n this.token = await this.msalService.acquireTokenSilent(requestObj).then(function (tokenResponse) {\r\n // Callback code here\r\n return Promise.resolve(tokenResponse.accessToken);\r\n //console.log(tokenResponse.accessToken);\r\n }).catch(function (error) {\r\n console.log(error);\r\n if (error.name === \"InteractionRequiredAuthError\") {\r\n this.msalService.acquireTokenRedirect(requestObj).then(\r\n function (accessTokenResponse) {\r\n // call API\r\n }).catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n requestObj = {\r\n scopes: [environment.APIScope]\r\n };\r\n this.token = await this.msalService.acquireTokenSilent(requestObj).then(function (tokenResponse) {\r\n // Callback code here\r\n return Promise.resolve(tokenResponse.accessToken);\r\n //console.log(tokenResponse.accessToken);\r\n }).catch(function (error) {\r\n if (error.name === \"InteractionRequiredAuthError\") {\r\n this.msalService.acquireTokenRedirect(requestObj).then(\r\n function (accessTokenResponse) {\r\n // call API\r\n }).catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n });\r\n }\r\n let changedRequest = request;\r\n // HttpHeader object immutable - copy values\r\n const headerSettings: { [name: string]: string | string[]; } = {};\r\n\r\n for (const key of request.headers.keys()) {\r\n headerSettings[key] = request.headers.getAll(key);\r\n }\r\n if (this.token) {\r\n headerSettings['Authorization'] = 'Bearer ' + this.token;\r\n }\r\n // if(!(request.url.includes(\"UploadFileTemplateCheck\") || request.url.includes(\"UploadFileDataCheck\") || request.url.includes(\"UploadPayroll\") )){\r\n // headerSettings['Content-Type'] = 'application/json';\r\n // }\r\n if (request.url.includes('graph.microsoft.com/v1.0/groups')) {\r\n headerSettings['ConsistencyLevel'] = 'eventual';\r\n }\r\n const newHeader = new HttpHeaders(headerSettings);\r\n \r\n if (request.url.includes('photos/48x48/$value')) {\r\n finalHeader = {\r\n headers: newHeader,\r\n responseType: 'blob'\r\n }\r\n }\r\n else {\r\n finalHeader = {\r\n headers: newHeader\r\n }\r\n }\r\n\r\n changedRequest = request.clone(finalHeader);\r\n return next.handle(changedRequest).toPromise();\r\n }\r\n\r\n}\r\n","export class CaseModel {\r\n constructor(\r\n public zoomCaseID = \"\",\r\n public createdDate = new Date(),\r\n public createdDateString = \"\",\r\n public caseCountry = \"\",\r\n public caseStatus = \"\",\r\n public eYMPCaseGUID = \"\",\r\n public comments = \"\"\r\n ) { }\r\n}\r\n","export class EYIModel {\r\n constructor(\r\n \r\n public createdDate = new Date(),\r\n public createdDateString = \"\",\r\n public documentName = \"\",\r\n public uploadedPath = \"\",\r\n public comments = \"\"\r\n ) { }\r\n}\r\n","\r\nexport class ProfileModel {\r\n constructor(\r\n public zoomProfileID = \"\",\r\n public createdDate = new Date(),\r\n public createdDateString = \"\",\r\n public firstName = \"\",\r\n public lastName = \"\",\r\n public profileGUID = \"\",\r\n public comments = \"\"\r\n ) { }\r\n}\r\n","export class QuestAddModel {\r\n constructor(\r\n\r\n public createdDate = new Date(),\r\n public createdDateString = \"\",\r\n public documentName = \"\",\r\n public status = \"\",\r\n public comments = \"\"\r\n ) { }\r\n}\r\n","export class QuestInfoModel {\r\n constructor(\r\n public id = 0,\r\n public travelpathwayid = 0,\r\n public homecompanyname = \"\",\r\n public destcompanycode = \"\", \r\n ) { }\r\n}\r\n","export class QuestModel {\r\n constructor(\r\n\r\n public createdDate = new Date(),\r\n public createdDateString = \"\",\r\n public section = \"\",\r\n public subSection = \"\",\r\n public subsubSection = \"\",\r\n public comment = \"\"\r\n ) { }\r\n}\r\n","export class ExportParams {\r\n FilterParams: any[] = [];\r\n PagingParams: PagingParams;\r\n SortParams: SortParams;\r\n FromDate: any;\r\n ToDate: any\r\n}\r\n\r\nexport class CompositeFilterDescriptor {\r\n Logic: string\r\n Filters: object[];\r\n}\r\n\r\n\r\nexport class PagingParams {\r\n PageNumber: number;\r\n PageSize: number\r\n}\r\n\r\nexport class SortParams {\r\n Direction: string;\r\n Field: string;\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { EYIModel } from '../../../Model/EYIModel';\r\n\r\n@Component({\r\n selector: 'app-view-case-eyiupload',\r\n templateUrl: './view-case-eyiupload.component.html',\r\n styleUrls: ['./view-case-eyiupload.component.scss']\r\n})\r\nexport class ViewCaseEYIUploadComponent implements OnInit {\r\n public pageSize = 10;\r\n public skip = 0;\r\n public caseEYIList: any;\r\n public gridViewData: any[];\r\n @Input() documentInfo: EYIModel[] = [];\r\n @Input() packagesStatus: any;\r\n public gridState: DataStateChangeEvent = {\r\n\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n ngOnChanges(): void {\r\n console.log(this.documentInfo);\r\n this.skip = 0;\r\n this.gridState.skip = this.skip;\r\n this.loadData();\r\n }\r\n\r\n pageChange(event: DataStateChangeEvent, gridId: string): void {\r\n\r\n this.gridState = event;\r\n this.caseEYIList = process(this.documentInfo, this.gridState);\r\n this.gridViewData = this.documentInfo;\r\n }\r\n\r\n loadData(): void {\r\n if (Array.isArray(this.documentInfo)) {\r\n\r\n this.caseEYIList = process(this.documentInfo, this.gridState);\r\n this.gridViewData = this.documentInfo;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnChanges, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { EympService } from 'src/app/eymp-inszoom-integration/services/eympservice';\r\nimport { QuestInfoModel } from '../../../Model/QuestInfoModel';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-view-casetravel',\r\n templateUrl: './view-casetravel.component.html',\r\n styleUrls: ['./view-casetravel.component.scss']\r\n})\r\nexport class ViewCasetravelComponent implements OnInit, OnChanges {\r\n\r\n @Input() documentInfo: QuestInfoModel;\r\n @Input() packagesStatus: any;\r\n @ViewChild('closeButton', { static: false }) closeButton: ElementRef;\r\n @ViewChild('addcloseButton', { static: false }) addcloseButton: ElementRef;\r\n @ViewChild('autocomplete', { static: false }) autocomplete: any;\r\n @Output() save = new EventEmitter();\r\n errorMessage: string;\r\n public documents: QuestInfoModel;\r\n private notifier: NotifierService;\r\n\r\n constructor(private eympservice: EympService, public notifierService: NotifierService\r\n ) {\r\n this.notifier = notifierService;\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log(this.documentInfo);\r\n }\r\n ngOnChanges() {\r\n console.log(this.documentInfo);\r\n }\r\n closeForm() {\r\n const closeButton: HTMLElement = this.closeButton\r\n .nativeElement as HTMLElement;\r\n closeButton.click();\r\n }\r\n\r\n addcloseForm() {\r\n this.autocomplete.reset();\r\n const addcloseButton: HTMLElement = this.addcloseButton\r\n .nativeElement as HTMLElement;\r\n addcloseButton.click();\r\n }\r\n\r\n saveData() {\r\n\r\n this.eympservice.SaveDocumentExtraction(this.documentInfo).subscribe((result) => {\r\n document.getElementById(\"btnClose\").click();\r\n this.closeForm();\r\n this.notifier.notify('success', 'Case details have been updated successfully');\r\n this.save.emit(\"refresh\");\r\n }, error => {\r\n this.notifier.notify('error', 'Error occured while updating case details');\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { QuestModel } from '../../../Model/QuestModel';\r\n\r\n@Component({\r\n selector: 'app-view-questionare',\r\n templateUrl: './view-questionare.component.html',\r\n styleUrls: ['./view-questionare.component.scss']\r\n})\r\nexport class ViewQuestionareComponent implements OnInit {\r\n public pageSize = 10;\r\n public skip = 0;\r\n public caseQuestList: any;\r\n public DocStatusList: any;\r\n public gridViewData: any[];\r\n public gridViewData1: any[];\r\n public gridState: DataStateChangeEvent = {\r\n\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public gridState1: DataStateChangeEvent = {\r\n\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n @Input() documentInfo: QuestModel[] = [];\r\n @Input() documentInfo1: QuestModel[] = [];\r\n @Input() packagesStatus: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n ngOnChanges(): void {\r\n console.log(\"this.documentInfo-ngOnChanges\");\r\n console.log(this.documentInfo);\r\n this.skip = 0;\r\n this.gridState.skip = this.skip;\r\n this.loadData();\r\n }\r\n\r\n pageChange(event: DataStateChangeEvent, gridId: string): void {\r\n console.log(\"this.documentInfo-pageChange\"); \r\n\r\n if (gridId === 'grid1') {\r\n\r\n this.gridState = event;\r\n this.caseQuestList = process(this.documentInfo, this.gridState);\r\n this.gridViewData = this.documentInfo;\r\n\r\n } else if (gridId === 'grid2') {\r\n this.gridState1 = event;\r\n this.DocStatusList = process(this.documentInfo1, this.gridState1);\r\n this.gridViewData1 = this.documentInfo1;\r\n }\r\n }\r\n\r\n loadData(): void {\r\n\r\n if (Array.isArray(this.documentInfo)) {\r\n\r\n this.caseQuestList = process(this.documentInfo, this.gridState);\r\n this.gridViewData = this.documentInfo;\r\n }\r\n \r\n if (Array.isArray(this.documentInfo1)) {\r\n this.DocStatusList = process(this.documentInfo1, this.gridState1);\r\n this.gridViewData1 = this.documentInfo1;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ProfileModel } from '../../../Model/ProfileModel';\r\n\r\n@Component({\r\n selector: 'app-view-case',\r\n templateUrl: './view-case.component.html',\r\n styleUrls: ['./view-case.component.scss']\r\n})\r\nexport class ViewCaseComponent implements OnInit {\r\n @Input() documentInfo: ProfileModel;\r\n @Input() packagesStatus: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ProfileModel } from '../../../Model/ProfileModel';\r\n\r\n@Component({\r\n selector: 'app-view-profile',\r\n templateUrl: './view-profile.component.html',\r\n styleUrls: ['./view-profile.component.scss']\r\n})\r\nexport class ViewProfileComponent implements OnInit {\r\n @Input() documentInfo: ProfileModel;\r\n @Input() packagesStatus: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { DataStateChangeEvent, GridComponent, SelectAllCheckboxState } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { EympService } from 'src/app/eymp-inszoom-integration/services/eympservice';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ProfileModel } from '../Model/ProfileModel';\r\nimport { CaseModel } from '../Model/CaseModel';\r\nimport { EYIModel } from '../Model/EYIModel';\r\nimport { QuestModel } from '../Model/QuestModel';\r\nimport { QuestAddModel } from '../Model/QuestAddModel';\r\nimport { QuestInfoModel } from '../Model/QuestInfoModel';\r\nimport { ExportParams, PagingParams } from '../Model/filterparams';\r\nimport * as fileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\n\r\n@Component({\r\n selector: 'app-dashboard-details',\r\n templateUrl: './dashboard-details.component.html',\r\n styleUrls: ['./dashboard-details.component.scss']\r\n})\r\nexport class DashboardDetailsComponent implements OnInit {\r\n @ViewChild('openDocumentInfoModalButton', { static: false }) openEditModalButton: ElementRef;\r\n @ViewChild('openDocumentInfoModalButton1', { static: false }) openEditModalButton1: ElementRef;\r\n @ViewChild('openDocumentInfoModalButton2', { static: false }) openEditModalButton2: ElementRef;\r\n @ViewChild('openDocumentInfoModalButton3', { static: false }) openEditModalButton3: ElementRef;\r\n @ViewChild('openDocumentInfoModalButton4', { static: false }) openEditModalButton4: ElementRef;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public isPageReady = false;\r\n public caseList: any;\r\n public caseFormList: any;\r\n public gridViewData: any[];\r\n public ProfilecaseStatus = \"\";\r\n public Status = \"\";\r\n isActivate = false;\r\n isfailure = false;\r\n isreattempt = false;\r\n selectedCaseId;\r\n isshare = false;\r\n isProfile = false;\r\n isCase = false;\r\n isCaseState = false;\r\n isCaseGuidState = false;\r\n isEYIUpload = false;\r\n isEYIUpateStatus = false;\r\n isQuest = false;\r\n isCaseDocState = false;\r\n isCaseDocNRState = true;\r\n gridFilteredData: any;\r\n private notifier: NotifierService;\r\n public selecteddocumentId = 0;\r\n public documentInfo = new ProfileModel();\r\n public documentInfo1 = new CaseModel();\r\n public documentInfo2 = new EYIModel();\r\n public documentInfo3 = new QuestModel();\r\n public documentInfo4 = new QuestAddModel();\r\n public documentInfo5 = new QuestInfoModel();\r\n \r\n public showModel = false;\r\n public showConfirmation = false;\r\n public isRushEnabled = false;\r\n public selectedGuid;\r\n public popupMessage;\r\n public isQuestionnaireAvailable = false;\r\n public showStopConfirmation = false;\r\n public statusId;\r\n public isStopEnabled = false;\r\n public response;\r\n\r\n public gridState: DataStateChangeEvent = {\r\n\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n dateFilterModel: DateFiltersModel;\r\n fromreportDate: any;\r\n toreportDate: any\r\n constructor(public _dafService: DafService, private router: Router, private route: ActivatedRoute, notifier: NotifierService, public _eympservice: EympService, public datepipe: DatePipe) {\r\n this.dateFilterModel = new DateFiltersModel(new Date(), new Date());\r\n this.notifier = notifier;\r\n }\r\n take: number;\r\n ngOnInit(): void {\r\n this.route.queryParams.subscribe(params => {\r\n this.ProfilecaseStatus = params['ProfileCase'];\r\n\r\n this.Status = params['Status'];\r\n if (this.ProfilecaseStatus == \"Profile\")\r\n this.isProfile = true;\r\n\r\n else if (this.ProfilecaseStatus == \"Document\") {\r\n this.isCaseDocState = true;\r\n this.isCaseState = true;\r\n this.isCaseDocNRState = false;\r\n this.isEYIUpload = false;\r\n //if (this.Status == \"Ready for Document Upload\" || this.Status == \"\") {\r\n //this.isEYIUpload = true;\r\n //}\r\n }\r\n else {\r\n this.isCaseState = true;\r\n this.isCaseGuidState = true;\r\n this.isEYIUpateStatus = false;\r\n if (this.Status == \"Ready for Profile and Case Creation\") {\r\n this.isCase = true;\r\n this.isEYIUpload = false;\r\n this.isQuest = false;\r\n this.isStopEnabled = true;\r\n }\r\n else if (this.Status == \"Ready for Case Questionnaire Update\") {\r\n this.isCase = false;\r\n this.isEYIUpload = true;\r\n this.isQuest = false;\r\n }\r\n else if (this.Status == \"Ready for EYI Upload\") {\r\n this.isCase = false;\r\n this.isEYIUpload = false;\r\n this.isQuest = false;\r\n this.isEYIUpateStatus = true;\r\n this.isStopEnabled = true;\r\n }\r\n else if (this.Status == \"Success\" || this.Status == \"Failure\") {\r\n if(this.Status == \"Failure\")\r\n this.isCase = false;\r\n this.isEYIUpload = true;\r\n this.isQuest = true;\r\n }\r\n else if (this.Status == \"Waiting for Case Questionnaire milestone completion in EYMP\") {\r\n this.isCase = false;\r\n this.isEYIUpload = false;\r\n this.isQuest = false;\r\n this.isRushEnabled = true;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n });\r\n this._dafService.currentInsDates.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate = data.toDate;\r\n this.dateFilterModel = new DateFiltersModel(new Date(this.fromreportDate), new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n //this.refreshCaseList(this.gridState);\r\n }\r\n\r\n onSave(action: string) {\r\n if (action === 'refresh') {\r\n this.filterCaseList(); // Refresh the grid data\r\n }\r\n }\r\n\r\n filterCaseList() {\r\n\r\n this._dafService.updateINSDate({ fromDate: this.dateFilterModel.startDate.toDateString(), toDate: this.dateFilterModel.endDate.toDateString() });\r\n }\r\n\r\n\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n\r\n this.isPageReady = false;\r\n var kets = state;\r\n this.gridState = kets;\r\n let skip = 0;\r\n if (state.skip !== 0) {\r\n skip = state.skip / 10;\r\n }\r\n var summaryParams = new ExportParams();\r\n summaryParams.PagingParams = new PagingParams();\r\n summaryParams.PagingParams.PageNumber = skip + 1;\r\n summaryParams.PagingParams.PageSize = state.take;\r\n if (state.filter != null) {\r\n summaryParams.FilterParams = state.filter.filters;\r\n }\r\n else {\r\n summaryParams.FilterParams = null;\r\n }\r\n this._eympservice.getEympDetailsWithStatusNew(this.Status, this.ProfilecaseStatus, this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString(), 'G', summaryParams).subscribe((data: any) => {\r\n this.gridFilteredData = data;\r\n // Binds the data to grid\r\n let dataParams = process(this.gridFilteredData.caseSummaryModel, { skip: 0, take: this.pageSize, filter: this.gridState.filter, sort: this.gridState.sort }).data;\r\n this.caseList = { data: dataParams, total: this.gridFilteredData.totalRowCount };\r\n this.isPageReady = true;\r\n\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n //this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n private rowCallback(row: any) {\r\n const isEven = row.index % 2 == 0;\r\n return {\r\n even: isEven,\r\n odd: !isEven\r\n };\r\n }\r\n\r\n viewProfileInfo(documentId: number, edit: boolean) {\r\n console.log(documentId);\r\n this.selecteddocumentId = documentId;\r\n this._eympservice.getProfileInfoById(documentId).subscribe((result: ProfileModel) => {\r\n this.documentInfo = result;\r\n this.documentInfo.createdDateString = this.datepipe.transform(this.documentInfo.createdDate, 'dd-MMM-yyyy');\r\n this.showModel = true;\r\n this.openEditModalButton.nativeElement.click();\r\n console.log(this.documentInfo);\r\n }, error => { console.error(error); console.log('error'); });\r\n }\r\n updateCaseStatus() {\r\n console.log(\"updateCaseStatus\");\r\n console.log(this.statusId);\r\n this._eympservice.updateCaseEYIStatus(this.statusId).subscribe((result) => {\r\n this.filterCaseList();\r\n this.showStopConfirmation = false;\r\n }, error => { console.error(error); console.log('error'); });\r\n }\r\n\r\n exportToExcel(state: DataStateChangeEvent): Promise {\r\n var summaryParams = new ExportParams();\r\n summaryParams.PagingParams = new PagingParams();\r\n summaryParams.PagingParams.PageNumber = 1;\r\n summaryParams.PagingParams.PageSize = this.caseList.total;\r\n if (state.filter != null) {\r\n summaryParams.FilterParams = state.filter.filters;\r\n }\r\n else {\r\n summaryParams.FilterParams = null;\r\n }\r\n this.response = this._eympservice.getEympDetailsWithStatusNew(this.Status, this.ProfilecaseStatus, this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString(), 'E', summaryParams).subscribe((data: any) => {\r\n var excelDt = data.caseSummaryModel.map(({\r\n corporation, serviceCountry, attorney, lawClerk, zoomProfileID, zoomCaseId, eympCaseID, applicantName, caseType, caseSubType, caseSubSubType, zoomCaseType, caseGUID,\r\n createdDate, requestedDate, homeCompanyName, destinationCompanyCode, isVIP, caseFee, caseFeeComment, homeCareerStage, comments, clientName, documentName, uploadedDate, receivedDate,\r\n zoomUploadStatus, eyiUploadStatus, zoomUploadComments, eyiUploadComments\r\n }) => ({\r\n \r\n Corporation: corporation, ServiceCountry: serviceCountry, Attorney: attorney, LawClerk: lawClerk, ZoomProfileID: zoomProfileID, ZoomCaseId: zoomCaseId, EYMPCaseID: eympCaseID, ApplicantName: applicantName,\r\n CaseType: caseType, CaseSubType: caseSubType, CaseSubSubType: caseSubSubType, ZoomCaseType: zoomCaseType, EYMPCaseGUID: caseGUID, CreatedDate: createdDate, RequestedDate: requestedDate,\r\n HomeCompanyName: homeCompanyName, DestinationCompanyCode: destinationCompanyCode, IsVIP: isVIP, CaseFee: caseFee, CaseFeeComment: caseFeeComment, HomeCareerStage: homeCareerStage, Comments: comments, ClientName: clientName, DocumentName: documentName,\r\n UploadedDate: uploadedDate, ReceivedDate: receivedDate, ZoomUploadStatus: zoomUploadStatus, EYIUploadStatus: eyiUploadStatus,\r\n ZoomUploadComments: zoomUploadComments, EYIUploadComments: eyiUploadComments\r\n }));\r\n\r\n\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(excelDt);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n\r\n let blob: any = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });\r\n\r\n fileSaver.saveAs(blob, 'INSZoomDetails.xlsx');\r\n\r\n },\r\n err => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n });\r\n return this.response;\r\n }\r\n\r\n viewCaseInfo(documentId: number, edit: boolean) {\r\n console.log(documentId);\r\n this.selecteddocumentId = documentId;\r\n this._eympservice.getCaseEYITravelPathInfoById(documentId).subscribe((result: QuestInfoModel) => {\r\n this.documentInfo5 = result;\r\n this.showModel = true;\r\n this.openEditModalButton4.nativeElement.click();\r\n console.log(this.documentInfo5);\r\n }, error => { console.error(error); console.log('error'); });\r\n }\r\n\r\n viewCaseEYIInfo(documentId: number, edit: boolean) {\r\n console.log(documentId);\r\n this.selecteddocumentId = documentId;\r\n this._eympservice.getCaseEYIInfoById(documentId).subscribe((result: EYIModel) => {\r\n this.documentInfo2 = result;\r\n this.documentInfo2.createdDateString = this.datepipe.transform(this.documentInfo1.createdDate, 'dd-MMM-yyyy');\r\n this.showModel = true;\r\n this.openEditModalButton2.nativeElement.click();\r\n console.log(this.documentInfo2);\r\n }, error => { console.error(error); console.log('error'); });\r\n }\r\n\r\n viewCaseQuestInfo(documentId: number, edit: boolean) {\r\n console.log(documentId);\r\n this.selecteddocumentId = documentId;\r\n this._eympservice.getCaseQuestInfoById(documentId).subscribe((result: QuestModel) => {\r\n this.documentInfo3 = result;\r\n this.documentInfo3.createdDateString = this.datepipe.transform(this.documentInfo3.createdDate, 'dd-MMM-yyyy');\r\n this._eympservice.getCaseQuestAddInfoById(documentId).subscribe((result: QuestAddModel) => {\r\n\r\n this.documentInfo4 = result;\r\n this.documentInfo4.createdDateString = this.datepipe.transform(this.documentInfo4.createdDate, 'dd-MMM-yyyy');\r\n }, error => { console.error(error); console.log('error'); });\r\n this.showModel = true;\r\n this.openEditModalButton3.nativeElement.click();\r\n console.log(this.documentInfo3);\r\n\r\n }, error => { console.error(error); console.log('error'); });\r\n }\r\n stopConfirmationDialog(open: boolean, statusId) {\r\n // Opens the confirmation dialog\r\n if (open) {\r\n this.showStopConfirmation = true;\r\n } else {\r\n this.showStopConfirmation = false;\r\n }\r\n // setting the delete ID to global variable\r\n if (statusId) {\r\n this.statusId = statusId;\r\n } else {\r\n this.statusId = 0;\r\n }\r\n }\r\n confirmationDialog(open: boolean, data) {\r\n this.isPageReady = false;\r\n // setting the delete ID to global variable\r\n if (data) {\r\n this.selectedGuid = data.caseGUID;\r\n this.selectedCaseId = data.id;\r\n }\r\n // Opens the confirmation dialog\r\n if (open) {\r\n this._eympservice.checkQuestionnaireDetails(this.selectedGuid).subscribe((data: any) => {\r\n if (data) {\r\n this.isQuestionnaireAvailable = true;\r\n this.popupMessage = 'Questionnaire details are available in Agility for the selected case. Click Confirm, if you wish to proceed.';\r\n }\r\n else {\r\n this.isQuestionnaireAvailable = false;\r\n this.popupMessage = 'Questionnaire details are not available in Agility for the selected case. Please try again later.';\r\n }\r\n this.showConfirmation = true;\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while deleting the user from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n\r\n } else {\r\n this.showConfirmation = false;\r\n this.isPageReady = true;\r\n }\r\n\r\n }\r\n\r\n getQuestionnaire() {\r\n this.isPageReady = false;\r\n this._eympservice.getQuestionnaire(this.selectedCaseId, this.selectedGuid).subscribe((data: any) => {\r\n this.confirmationDialog(false, data);\r\n this.isPageReady = true;\r\n this.refreshCaseList(this.gridState);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while deleting the user from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n resetDashboard() {\r\n this._dafService.resetDate.subscribe(data => {\r\n this._dafService.updateINSDate({ fromDate: data, toDate: data });\r\n });\r\n }\r\n\r\n}\r\n\r\nexport class DateFiltersModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/service/common.service';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { EympService } from 'src/app/eymp-inszoom-integration/services/eympservice';\r\nimport { Router } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n dateFilterModel: DateFilterModel;\r\n fromReportDate: any;\r\n toReportDate: any;\r\n public isPageReady = false;\r\n public caseList: any[];\r\n caseSuccess: number;\r\n caseFailure: number;\r\n caseReady: number;\r\n caseQuest: number;\r\n caseeyiupload: number;\r\n awaitingMilestoneCompletion: number;\r\n\r\n pfsuccess: number;\r\n pffailure: number;\r\n pfready: number;\r\n\r\n caseDocSuccess: number;\r\n caseDocFailure: number;\r\n caseDocReady: number;\r\n private notifier: NotifierService;\r\n\r\n constructor(private router: Router, private commonService: CommonService, public _dafService: DafService, public _eympservice: EympService, notifier: NotifierService ) {\r\n this.notifier = notifier; \r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n this._dafService.currentInsDates.subscribe(data => {\r\n\r\n if (data && data.fromDate && data.toDate) {\r\n this.fromReportDate = data.fromDate;\r\n this.toReportDate = data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromReportDate), new Date(this.toReportDate));\r\n this.getCaseDetails();\r\n } else {\r\n this.getCaseDraftReportDate();\r\n }\r\n });\r\n this.isPageReady = true;\r\n }\r\n getCaseDraftReportDate() {\r\n\r\n this.commonService.getINSZoomReportDate()\r\n .subscribe((data: any) => {\r\n this._dafService.updateINSDate({ fromDate: data.reportDate, toDate: data.reportDate });\r\n this.getCaseDetails();\r\n });\r\n }\r\n getCaseDetails() {\r\n this.isPageReady = false;\r\n //this._dafService.currentInsDates\r\n // .subscribe((data: any) => {\r\n // this.fromReportDate = data.fromDate;\r\n // this.toReportDate = data.toDate;\r\n // this.dateFilterModel = new DateFilterModel(new Date(this.fromReportDate), new Date(this.toReportDate));\r\n this._eympservice.getDashboardCount(this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = data;\r\n this.caseSuccess = data.caseSuccess;\r\n this.caseeyiupload = data.awaitingEYIUpload;\r\n this.caseFailure = data.caseFailure;\r\n this.caseReady = data.casestobeCreated;\r\n this.caseQuest = data.awaitingQuestionnaireUpload;\r\n this.awaitingMilestoneCompletion = data.awaitingMilestoneCompletion\r\n\r\n this.pfready = data.profiletobeCreated;\r\n this.pffailure = data.profileFailure;\r\n this.pfsuccess = data.profileSuccess;\r\n\r\n this.caseDocReady = data.caseDoctobeCreated;\r\n this.caseDocSuccess = data.caseDocSuccess;\r\n this.caseDocFailure = data.caseDocFailure;\r\n\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n\r\n //},\r\n // (error) => {\r\n // this.notifier.notify('error', 'Error occured while updating the user details');\r\n // }\r\n //);\r\n\r\n }\r\n filterCaseList() {\r\n\r\n this._dafService.updateINSDate({ fromDate: this.dateFilterModel.startDate.toDateString(), toDate: this.dateFilterModel.endDate.toDateString() });\r\n }\r\n getProfileReadydetails() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Ready for Profile and Case Creation', 'ProfileCase':'Profile' } });\r\n }\r\n\r\n getProfileSuccess() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Success', 'ProfileCase': 'Profile' } });\r\n }\r\n\r\n getProfileFailure() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Failure', 'ProfileCase': 'Profile' } });\r\n }\r\n\r\n getCaseReady() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Ready for Profile and Case Creation', 'ProfileCase': 'Case' } });\r\n }\r\n\r\n getCaseCreated() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Waiting for Case Questionnaire milestone completion in EYMP', 'ProfileCase': 'Case' } });\r\n }\r\n\r\n getCaseFailure() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Failure', 'ProfileCase': 'Case' } });\r\n }\r\n getCaseSuccess() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Success', 'ProfileCase': 'Case' } });\r\n }\r\n getCaseEyiupload() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Ready for EYI Upload', 'ProfileCase': 'Case' } });\r\n }\r\n\r\n getCaseQuest() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Ready for Case Questionnaire Update', 'ProfileCase': 'Case' } });\r\n }\r\n\r\n getCaseDocumentReady() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Ready for Document Upload', 'ProfileCase': 'Document' } });\r\n }\r\n getCaseDocumentSuccess() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Success', 'ProfileCase': 'Document' } });\r\n }\r\n getCaseDocumentFailure() {\r\n this.router.navigate(['/draftdetails'], { queryParams: { 'Status': 'Failure', 'ProfileCase': 'Document' } });\r\n }\r\n resetDashboard() {\r\n this._dafService.resetDate.subscribe(data => {\r\n this._dafService.updateINSDate({ fromDate: data, toDate: data });\r\n });\r\n }\r\n}\r\nexport class DateFilterModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { DashboardDetailsComponent } from './dashboard-details/dashboard-details.component';\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'home', pathMatch: 'full', data: { breadcrumb: 'Home' } },\r\n { path: 'dashboard', component: DashboardComponent, canActivate: [MsalGuard], data: { breadcrumb: 'EYMPINSZoom Home' } },\r\n { path: 'draftdetails', component: DashboardDetailsComponent, canActivate: [MsalGuard], data: { breadcrumb: 'EYMP Details' } }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class EympINSZoomIntegrationRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { EympINSZoomIntegrationRoutingModule } from './eymp-inszoom-integration-routing.module';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { DatePickerModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LayoutModule, StepperComponent } from \"@progress/kendo-angular-layout\";\r\nimport { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { FloatingLabelModule } from '@progress/kendo-angular-label';\r\nimport { TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { DashboardDetailsComponent } from './dashboard-details/dashboard-details.component';\r\nimport { ViewProfileComponent } from './dashboard-details/ViewProfile/view-profile/view-profile.component';\r\nimport { ViewCaseComponent } from './dashboard-details/ViewCase/view-case/view-case.component';\r\nimport { ViewCaseEYIUploadComponent } from './dashboard-details/View-CaseEYI/view-case-eyiupload/view-case-eyiupload.component';\r\nimport { ViewQuestionareComponent } from './dashboard-details/View-Questionaire/view-questionare/view-questionare.component';\r\nimport { ViewCasetravelComponent } from './dashboard-details/View-CaseTravel/view-casetravel/view-casetravel.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n DashboardComponent,\r\n DashboardDetailsComponent,\r\n ViewProfileComponent,\r\n ViewCaseComponent,\r\n ViewCaseEYIUploadComponent,\r\n ViewQuestionareComponent,\r\n ViewCasetravelComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n EympINSZoomIntegrationRoutingModule,\r\n DatePickerModule,\r\n FormsModule,\r\n GridModule,\r\n ExcelModule,\r\n TextBoxModule,\r\n FloatingLabelModule,\r\n ReactiveFormsModule,\r\n DialogsModule\r\n ]\r\n})\r\nexport class EympINSZoomIntegrationModule { }\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { FormGroup } from '@angular/forms'; import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\nimport { ProfileModel } from '../Model/ProfileModel';\r\nimport { CaseModel } from '../Model/CaseModel';\r\nimport { EYIModel } from '../Model/EYIModel';\r\nimport { QuestModel } from '../Model/QuestModel';\r\nimport { QuestAddModel } from '../Model/QuestAddModel';\r\nimport { QuestInfoModel } from '../Model/QuestInfoModel';\r\nimport { ExportParams } from '../Model/filterparams';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EympService {\r\n [x: string]: any;\r\n constructor(private _http: HttpClient) { }\r\n getDashboardCount(startDate, endDate) {\r\n let params = new HttpParams();\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n\r\n\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetEympDashboardCount', { params: params });\r\n }\r\n //getEympDetailsWithStatus(status: string, ProfileCaseStatus: string, startDate, endDate) {\r\n // let params = new HttpParams();\r\n // params = params.append('startDate', startDate);\r\n // params = params.append('endDate', endDate);\r\n // params = params.append('status', status);\r\n // params = params.append('ProfileCaseStatus', ProfileCaseStatus);\r\n // return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetEympDetailsbyStatus', { params: params });\r\n //}\r\n\r\n getEympDetailsWithStatusNew(status: string, ProfileCaseStatus: string, startDate, endDate,mode: string, filterParams: ExportParams) {\r\n\r\n return this._http.post(environment.ApiUrl + 'EYMPINSZoomIntegration/GetEympDetailsbyStatusNew?status=' + status + '&ProfileCaseStatus=' + ProfileCaseStatus + '&startDate=' + startDate + '&endDate=' + endDate + '&mode=' + mode, filterParams, {});\r\n }\r\n\r\n getProfileInfoById(documentId: number) {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetProfileInfoByID?zoomProfileId=' + documentId, {});\r\n }\r\n getCaseInfoById(documentId: number) {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetCaseInfoByCaseID?Id=' + documentId, {});\r\n }\r\n getCaseEYIInfoById(documentId: number) {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetCaseEYIInfoByCaseID?Id=' + documentId, {});\r\n }\r\n getCaseQuestInfoById(documentId: number) {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetCaseQuestInfoByCaseID?Id=' + documentId, {});\r\n }\r\n getCaseQuestAddInfoById(documentId: number) {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetCaseQuestAddInfoByCaseID?Id=' + documentId, {});\r\n }\r\n checkQuestionnaireDetails(caseGuid: any) {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/CheckAgilityQuestionnaireData?caseGuid=' + caseGuid, {});\r\n }\r\n getQuestionnaire(caseID: any,caseGuid: any) {\r\n let params = new HttpParams();\r\n params = params.append('caseID', caseID);\r\n params = params.append('caseGuid', caseGuid);\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetQuestionnaireData', { params: params });\r\n }\r\n getCaseEYITravelPathInfoById(documentId: number) {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetCaseEYITravelPathInfoByCaseID?Id=' + documentId, {});\r\n }\r\n\r\n SaveDocumentExtraction(caseTravelInfo: any) {\r\n return this._http.post(environment.ApiUrl + 'EYMPINSZoomIntegration/SaveCaseTravelInfoDetails', caseTravelInfo, {});\r\n }\r\n updateCaseEYIStatus(documentId: number) {\r\n return this._http.post(environment.ApiUrl + 'EYMPINSZoomIntegration/UpdateCaseEYIStatus?Id=' + documentId, {});\r\n }\r\n}\r\n","export class ExportParams {\r\n FilterParams: any[] = [];\r\n PagingParams: PagingParams;\r\n SortParams: SortParams;\r\n FromDate: any;\r\n ToDate: any\r\n}\r\n\r\nexport class CompositeFilterDescriptor {\r\n Logic: string\r\n Filters: object[];\r\n}\r\n\r\n\r\nexport class PagingParams {\r\n PageNumber: number;\r\n PageSize: number\r\n}\r\n\r\nexport class SortParams {\r\n Direction: string;\r\n Field: string;\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { DataStateChangeEvent, GridComponent, SelectAllCheckboxState } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { EympService } from 'src/app/eymp-notices/services/eympservice';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ExportParams, PagingParams } from '../Model/filterparams';\r\nimport * as fileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\n@Component({\r\n selector: 'app-dashboard-details',\r\n templateUrl: './dashboard-details.component.html',\r\n styleUrls: ['./dashboard-details.component.scss']\r\n})\r\nexport class DashboardDetailsComponent implements OnInit {\r\n\r\n public pageSize = 10;\r\n public skip = 0;\r\n public isPageReady = false;\r\n public caseList: any;\r\n public caseFormList: any;\r\n public gridViewData: any[];\r\n public Status = \"\";\r\n public NoticesStatus = \"\";\r\n gridFilteredData: any;\r\n private notifier: NotifierService;\r\n public selecteddocumentId = 0;\r\n\r\n public gridState: DataStateChangeEvent = {\r\n\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n dateFilterModel: DateFiltersModel;\r\n fromreportDate: any;\r\n toreportDate: any\r\n\r\n constructor(public _dafService: DafService, private router: Router, private route: ActivatedRoute, notifier: NotifierService, public _eympservice: EympService, public datepipe: DatePipe) {\r\n this.dateFilterModel = new DateFiltersModel(new Date(), new Date());\r\n this.notifier = notifier;\r\n }\r\n take: number;\r\n ngOnInit(): void {\r\n this.route.queryParams.subscribe(params => {\r\n this.NoticesStatus = params['NoticeStatus'];\r\n this.Status = params['Status'];\r\n });\r\n this._dafService.currentInsDates.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate = data.toDate;\r\n this.dateFilterModel = new DateFiltersModel(new Date(this.fromreportDate), new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n this.refreshCaseList(this.gridState);\r\n }\r\n\r\n onSave(action: string) {\r\n if (action === 'refresh') {\r\n this.filterCaseList(); // Refresh the grid data\r\n }\r\n }\r\n\r\n filterCaseList() {\r\n\r\n this._dafService.updateINSDate({ fromDate: this.dateFilterModel.startDate.toDateString(), toDate: this.dateFilterModel.endDate.toDateString() });\r\n }\r\n resetDashboard() {\r\n this._dafService.resetDate.subscribe(data => {\r\n this._dafService.updateINSDate({ fromDate: data, toDate: data });\r\n });\r\n }\r\n\r\n\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n\r\n this.isPageReady = false;\r\n var kets = state;\r\n this.gridState = kets;\r\n let skip = 0;\r\n if (state.skip !== 0) {\r\n skip = state.skip / 10;\r\n }\r\n var summaryParams = new ExportParams();\r\n summaryParams.PagingParams = new PagingParams();\r\n summaryParams.PagingParams.PageNumber = skip + 1;\r\n summaryParams.PagingParams.PageSize = state.take;\r\n if (state.filter != null) {\r\n summaryParams.FilterParams = state.filter.filters;\r\n }\r\n else {\r\n summaryParams.FilterParams = null;\r\n }\r\n this._eympservice.getEympNoticesDetailsWithStatus(this.Status, this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString(), 'G', summaryParams).subscribe((data: any) => {\r\n this.gridFilteredData = data;\r\n // Binds the data to grid\r\n let dataParams = process(this.gridFilteredData.caseNoticesSummaryModel, { skip: 0, take: this.pageSize, filter: this.gridState.filter, sort: this.gridState.sort }).data;\r\n this.caseList = { data: dataParams, total: this.gridFilteredData.totalRowCount };\r\n this.isPageReady = true;\r\n\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n //this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n private rowCallback(row: any) {\r\n const isEven = row.index % 2 == 0;\r\n return {\r\n even: isEven,\r\n odd: !isEven\r\n };\r\n }\r\n\r\n}\r\n\r\nexport class DateFiltersModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/service/common.service';\r\nimport { DafService } from 'src/app/DAF/services/dafService';\r\nimport { EympService } from 'src/app/eymp-notices/services/eympservice';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n dateFilterModel: DateFilterModel;\r\n fromReportDate: any;\r\n toReportDate: any;\r\n public isPageReady = false;\r\n public caseList: any[];\r\n\r\n caseNoticeSuccess: number;\r\n caseNoticeFailure: number;\r\n caseNoticeReady: number;\r\n\r\n constructor(private router: Router, private commonService: CommonService, public _dafService: DafService, public _eympservice: EympService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date()) }\r\n\r\n ngOnInit(): void {\r\n this._dafService.currentInsDates.subscribe(data => {\r\n if (data && data.fromDate && data.toDate) {\r\n this.fromReportDate = data.fromDate;\r\n this.toReportDate = data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromReportDate), new Date(this.toReportDate));\r\n this.getCaseDetails();\r\n } else {\r\n this.getCaseDraftReportDate();\r\n }\r\n });\r\n this.isPageReady = true;\r\n }\r\n getCaseDraftReportDate() {\r\n\r\n this.commonService.getINSZoomReportDate()\r\n .subscribe((data: any) => {\r\n this._dafService.updateINSDate({ fromDate: data.reportDate, toDate: data.reportDate });\r\n this.getCaseDetails();\r\n });\r\n }\r\n getCaseDetails() {\r\n\r\n this._dafService.currentInsDates\r\n .subscribe((data: any) => {\r\n this.fromReportDate = data.fromDate;\r\n this.toReportDate = data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromReportDate), new Date(this.toReportDate));\r\n this._eympservice.getDashboardCount(this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = data;\r\n \r\n\r\n this.caseNoticeReady = data.caseNoticetobeCreated;\r\n this.caseNoticeSuccess = data.caseNoticeSuccess;\r\n this.caseNoticeFailure = data.caseNoticeFailure;\r\n\r\n this.isPageReady = true;\r\n console.log(this.caseList);\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n // this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n\r\n }\r\n filterCaseList() {\r\n this._dafService.updateINSDate({ fromDate: this.dateFilterModel.startDate.toDateString(), toDate: this.dateFilterModel.endDate.toDateString() });\r\n }\r\n getCaseNoticesReady() {\r\n this.router.navigate(['/noticesdetails'], { queryParams: { 'Status': 'Ready for Notice Upload', 'NoticeStatus': 'Notices' } });\r\n }\r\n getCaseNoticesSuccess() {\r\n this.router.navigate(['/noticesdetails'], { queryParams: { 'Status': 'Success', 'NoticeStatus': 'Notices' } });\r\n }\r\n getCaseNoticesFailure() {\r\n this.router.navigate(['/noticesdetails'], { queryParams: { 'Status': 'Failure', 'NoticeStatus': 'Notices' } });\r\n }\r\n resetDashboard() {\r\n this._dafService.resetDate.subscribe(data => {\r\n this._dafService.updateINSDate({ fromDate: data, toDate: data });\r\n });\r\n }\r\n\r\n}\r\nexport class DateFilterModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { DashboardDetailsComponent } from './dashboard-details/dashboard-details.component'\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'home', pathMatch: 'full', data: { breadcrumb: 'Home' } },\r\n { path: 'dashboard', component: DashboardComponent, canActivate: [MsalGuard], data: { breadcrumb: 'EYMPNotices Home' } },\r\n { path: 'noticesdetails', component: DashboardDetailsComponent, canActivate: [MsalGuard], data: { breadcrumb: 'EYMP Notices Details' } }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class EympNoticesRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { EympNoticesRoutingModule } from './eymp-notices-routing.module';\r\nimport { DatePickerModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LayoutModule, StepperComponent } from \"@progress/kendo-angular-layout\";\r\nimport { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { FloatingLabelModule } from '@progress/kendo-angular-label';\r\nimport { TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { DashboardDetailsComponent } from './dashboard-details/dashboard-details.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n \r\n DashboardComponent,\r\n DashboardDetailsComponent\r\n ],\r\n imports: [\r\n EympNoticesRoutingModule,\r\n CommonModule,\r\n DatePickerModule,\r\n FormsModule,\r\n GridModule,\r\n ExcelModule,\r\n TextBoxModule,\r\n FloatingLabelModule,\r\n ReactiveFormsModule,\r\n DialogsModule\r\n ]\r\n})\r\nexport class EympNoticesModule { }\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { FormGroup } from '@angular/forms'; import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\nimport { ExportParams } from '../Model/filterparams';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EympService {\r\n [x: string]: any;\r\n constructor(private _http: HttpClient) { }\r\n getDashboardCount(startDate, endDate) {\r\n let params = new HttpParams();\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n\r\n\r\n return this._http.get(environment.ApiUrl + 'EYMPNotices/GetEympNoticesDashboardCount', { params: params });\r\n }\r\n getEympNoticesDetailsWithStatus(status: string,startDate, endDate, mode: string, filterParams: ExportParams) {\r\n\r\n return this._http.post(environment.ApiUrl + 'EYMPNotices/GetEympNoticeDetailsbyStatus?status=' + status + '&startDate=' + startDate + '&endDate=' + endDate + '&mode=' + mode, filterParams, {});\r\n }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, ViewChild, TemplateRef, Inject, Input } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray, FormControl, Validators } from '@angular/forms';\r\nimport { WorkSiteData } from '../lca-compliance/model/Lca.model';\r\nimport { LCAService } from '../lca-compliance/service/lca.service';\r\nimport { AddLCAService } from './service/add-lca.service';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport { NotificationService } from \"@progress/kendo-angular-notification\";\r\n\r\n\r\n\r\nexport class streetAddresses {\r\n streetAddress: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-add-lca',\r\n templateUrl: './add-lca.component.html',\r\n styleUrls: ['./add-lca.component.scss']\r\n})\r\nexport class AddLcaComponent implements OnInit {\r\n public caseData: WorkSiteData = new WorkSiteData();\r\n public emailForm: FormGroup;\r\n public statesList=[];\r\n public zipcodeList = [[]];\r\n public addressTypesList = [];\r\n public state;\r\n public statesListSource=[];\r\n public startDate;\r\n public zipcodeSource=[[]];\r\n public disabled = true;\r\n public countydisabled=[true];\r\n public citydisabled = [true];\r\n public selectedType=[];\r\n public cityArray=[[]];\r\n public countyArray = [[]];\r\n public showConfirmation = false;\r\n public isReady=false;\r\n //public WorkSiteDetails:WorkSiteData[]=[];\r\n public WorkSiteDetails: any = [];\r\n cityDataArray: any[]=[];\r\n countyDataArray: any[]=[];\r\n addressTypes: any[]=[];\r\n public listItems: Array = [];\r\n public emailId=\"\";\r\n lcaAddressInfo=[];\r\n public dateDifference=0;\r\n public primaryAddressIndex: number = -1;\r\n public residenceAddressIndex: number = -1;\r\n public specialAddressTypes: any[] = ['Primary Worksite Address with Employer', 'Home Address/Residence']\r\n options : streetAddresses[]= [\r\n ];\r\n filteredOptions: Observable< streetAddresses[]>[] = [];\r\n private hideAfter = 2000;\r\n public houseItems: Array = [\r\n \"Apt.\",\r\n \"Ste.\",\r\n \"Flr.\",\r\n \"Door\"\r\n ];\r\n @Output() worksiteDatats = new EventEmitter();\r\n @Output() page = new EventEmitter();\r\n @Input() lcaType=\"\";\r\n\r\n\r\n constructor(private formBuilder: FormBuilder,private lcaService: LCAService,public addLCAService: AddLCAService,@Inject(NotificationService) private notificationService: NotificationService) {\r\n this.createForm();\r\n }\r\n\r\n createForm(){\r\n this.emailForm = this.formBuilder.group({\r\n emails: this.formBuilder.array([this.createEmailFormGroup()])\r\n });\r\n this.ManageNameControl(0);\r\n this.isReady=true;\r\n }\r\n\r\n ngOnInit() {\r\n \r\n\r\n this.GetStates();\r\n\r\n this.GetAddressType(0);\r\n\r\n this.getEmailId();\r\n this.getLCAData();\r\n \r\n }\r\n\r\n getEmailId(){\r\n this.addLCAService.currentData.subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.emailId=data.emailId;\r\n });\r\n }\r\n\r\n getLCAData(){\r\n this.addLCAService.addedLCAData.subscribe((data:any) => {\r\n if(data.length>0){\r\n var arrayControl = this.emailForm.get('emails') as FormArray;\r\n while (arrayControl.length) {\r\n arrayControl.removeAt(0);\r\n }\r\n data.forEach(async (staff,i) => {\r\n this.GetAddressType(i);\r\n var r = await this.GetZipcodes(staff.state,i);\r\n var c = await this.GetCountyInfo(staff.zipCode,i);\r\n arrayControl.push(this.formBuilder.group(staff))\r\n });\r\n }\r\n });\r\n }\r\n\r\n ManageNameControl(index: number) {\r\n var arrayControl = this.emailForm.get('emails') as FormArray;\r\n this.filteredOptions[index] = arrayControl.at(index).get('streetAddress').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => \r\n typeof value === 'string' ? value : value.streetAddress\r\n ),\r\n map(streetAddress => \r\n streetAddress ? this._filter(streetAddress) : this.options.slice()\r\n )\r\n );\r\n\r\n }\r\n\r\n public displayFn(user?: streetAddresses){\r\n return user ;\r\n }\r\n\r\n public _filter(name: string): streetAddresses[] {\r\n const filterValue = name.toLowerCase();\r\n var newValue= this.options.filter(option => option.streetAddress.toLowerCase().includes(filterValue))\r\n return newValue;\r\n }\r\n\r\n confirmationDialog(open: boolean) {\r\n // Opens the confirmation dialog\r\n if (open) {\r\n this.showConfirmation = true;\r\n } else {\r\n this.showConfirmation = false;\r\n }\r\n }\r\n\r\n invalidMessage(){\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n\r\n saveData(){\r\n this.WorkSiteDetails=[];\r\n var saveValues = this.emailForm.controls.emails.value;\r\n\r\n if(this.emailForm.valid){\r\n\r\n \r\n \r\n saveValues.forEach(item => {\r\n if(item.state==\"\"||item.startDate==\"\"||item.streetAddress.trim()==\"\"){\r\n this.WorkSiteDetails=[];\r\n this.invalidMessage();\r\n \r\n }\r\n else if (item.startDate && item.expiryDate && item.startDate > item.expiryDate) {\r\n this.notificationService.show({\r\n content: \"Please enter valid dates. End Date should be greather than or equal to Start Date.\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n } \r\n else if (item.addressType == \"Third Party Placement or Client Worksite\" && (item.workFrom == \"\" || item.clientName == \"\" || item.engagementPartner == \"\" || item.experienceManager == \"\")){\r\n this.WorkSiteDetails=[];\r\n this.invalidMessage();\r\n }\r\n else if (item.addressType == \"Third Party Placement or Client Worksite\" && item.workFrom && item.workTo && item.workFrom > item.workTo) {\r\n this.notificationService.show({\r\n content: \"Please enter valid dates. Period of Work From should be greather than or equal to Period of Work To.\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n else{\r\n \r\n var workSite=new WorkSiteData();\r\n workSite.county=item.county;\r\n workSite.startDate=item.startDate;\r\n workSite.expiryDate = item.expiryDate==\"\"?null:item.expiryDate;\r\n workSite.zipCode = item.zipCode;\r\n workSite.streetAddress = item.streetAddress instanceof Object?item.streetAddress.streetAddress:item.streetAddress;\r\n workSite.streetNumber=item.streetNumber;\r\n workSite.houseNumber=item.houseNumber;\r\n workSite.houseName=item.houseName;\r\n workSite.city = item.city;\r\n workSite.clientName = item.clientName;\r\n workSite.workFrom=item.workFrom==\"\"?null:item.workFrom;\r\n workSite.workTo=item.workTo==\"\"?null:item.workTo;\r\n workSite.toalDays=item.toalDays;\r\n workSite.telePhone=item.telePhone;\r\n workSite.engagementCode = item.engagementCode;\r\n workSite.interactionId=item.interactionId;\r\n workSite.engagementPartner=item.engagementPartner;\r\n workSite.experienceManager=item.experienceManager; \r\n workSite.state=item.state;\r\n workSite.addressType = item.addressType;\r\n this.WorkSiteDetails.push(workSite);\r\n }\r\n });\r\n if(this.WorkSiteDetails.length>0){\r\n this.addLCAService.setLCAData(this.WorkSiteDetails);\r\n\r\n this.worksiteDatats.emit(this.WorkSiteDetails);\r\n }\r\n \r\n }\r\n else {\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n public addEmailFormGroup() {\r\n const emails = this.emailForm.get('emails') as FormArray\r\n if(emails.length<10){\r\n emails.push(this.createEmailFormGroup())\r\n this.ManageNameControl(emails.length - 1);\r\n this.citydisabled[emails.length - 1]=true;\r\n this.countydisabled[emails.length - 1] = true;\r\n this.handleAddressType(emails.length - 1);\r\n }\r\n\r\n }\r\n\r\n public handleAddressType(i: number) {\r\n var formArrayValues = this.emailForm.controls.emails.value;\r\n var tempAddressTypes = this.addressTypesList;\r\n formArrayValues.forEach(item => {\r\n if (this.specialAddressTypes.includes(item.addressType)) {\r\n tempAddressTypes = tempAddressTypes.filter(x => x.addressTypes != item.addressType);\r\n }\r\n })\r\n this.addressTypes[i] = tempAddressTypes;\r\n }\r\n\r\n public cascadeChanges(event, i) {\r\n var tempAddressTypes1 = this.addressTypesList;\r\n if (event == 'Primary Worksite Address with Employer') {\r\n this.primaryAddressIndex = i;\r\n var formArrayValues1 = this.emailForm.controls.emails.value;\r\n formArrayValues1.forEach((item, index) => {\r\n if (index != i) {\r\n if (this.residenceAddressIndex != -1 && item.addressType != 'Home Address/Residence')\r\n this.addressTypes[index] = this.addressTypesList.filter(x => x.addressTypes != 'Primary Worksite Address with Employer' && x.addressTypes != 'Home Address/Residence');\r\n else\r\n this.addressTypes[index] = tempAddressTypes1.filter(x => x.addressTypes != 'Primary Worksite Address with Employer');\r\n }\r\n \r\n });\r\n }\r\n if (event != 'Primary Worksite Address with Employer' && this.primaryAddressIndex == i) {\r\n this.primaryAddressIndex = -1;\r\n var formArrayValues1 = this.emailForm.controls.emails.value;\r\n formArrayValues1.forEach((item, index) => {\r\n if (index != i) {\r\n if (this.residenceAddressIndex != -1 && item.addressType != 'Home Address/Residence')\r\n this.addressTypes[index] = this.addressTypesList.filter(x => x.addressTypes != 'Home Address/Residence');\r\n else\r\n this.addressTypes[index] = this.addressTypesList;\r\n } \r\n });\r\n \r\n }\r\n if (event == 'Home Address/Residence') {\r\n this.residenceAddressIndex = i;\r\n var formArrayValues1 = this.emailForm.controls.emails.value;\r\n formArrayValues1.forEach((item, index) => {\r\n if (index != i)\r\n if (this.primaryAddressIndex != -1 && item.addressType != 'Primary Worksite Address with Employer')\r\n this.addressTypes[index] = this.addressTypesList.filter(x => x.addressTypes != 'Primary Worksite Address with Employer' && x.addressTypes != 'Home Address/Residence');\r\n else\r\n this.addressTypes[index] = tempAddressTypes1.filter(x => x.addressTypes != 'Home Address/Residence');\r\n });\r\n }\r\n if (event != 'Home Address/Residence' && this.residenceAddressIndex == i) {\r\n this.residenceAddressIndex = -1;\r\n var formArrayValues1 = this.emailForm.controls.emails.value;\r\n formArrayValues1.forEach((item, index) => {\r\n if (index != i) {\r\n if (this.primaryAddressIndex != -1 && item.addressType != 'Primary Worksite Address with Employer')\r\n this.addressTypes[index] = this.addressTypesList.filter(x => x.addressTypes != 'Primary Worksite Address with Employer');\r\n else\r\n this.addressTypes[index] = this.addressTypesList;\r\n }\r\n \r\n });\r\n }\r\n\r\n if(this.emailForm.controls.emails.value[i].addressType==\"Third Party Placement or Client Worksite\")\r\n {\r\n var data=this.emailForm.controls.emails['controls'][i].value;\r\n if(data.startDate){\r\n data.workFrom=data.startDate;\r\n data.workTo=data.expiryDate;\r\n this.emailForm.controls.emails['controls'][i].setValue(data);\r\n this.emailForm.controls.emails['controls'][i].updateValueAndValidity();\r\n this.onStartsDateChange(data.startDate,i);\r\n }\r\n }\r\n\r\n }\r\n\r\n public removeOrClearEmail(i: number) {\r\n const emails = this.emailForm.get('emails') as FormArray\r\n if (emails.length > 1) {\r\n emails.removeAt(i)\r\n this.addressTypes.splice(i, 1);\r\n if (this.primaryAddressIndex == i) { \r\n this.primaryAddressIndex = -1; \r\n var formArrayValues1 = emails.value;\r\n formArrayValues1.forEach((item, index) => {\r\n if (this.residenceAddressIndex != -1 && item.addressType != 'Home Address/Residence')\r\n this.addressTypes[index] = this.addressTypesList.filter(x => x.addressTypes != 'Home Address/Residence');\r\n else\r\n this.addressTypes[index] = this.addressTypesList;\r\n });\r\n }\r\n if (this.primaryAddressIndex > i) {\r\n this.primaryAddressIndex = this.primaryAddressIndex - 1;\r\n }\r\n\r\n if (this.residenceAddressIndex == i) {\r\n this.residenceAddressIndex = -1;\r\n var formArrayValues1 = emails.value;\r\n formArrayValues1.forEach((item, index) => {\r\n if (this.primaryAddressIndex != -1 && item.addressType != 'Primary Worksite Address with Employer')\r\n this.addressTypes[index] = this.addressTypesList.filter(x => x.addressTypes != 'Primary Worksite Address with Employer');\r\n else\r\n this.addressTypes[index] = this.addressTypesList;\r\n });\r\n }\r\n if (this.residenceAddressIndex > i) {\r\n this.residenceAddressIndex = this.residenceAddressIndex - 1;\r\n }\r\n\r\n } else {\r\n emails.reset()\r\n }\r\n }\r\n optionalFormControls = [\"middleName\", \"signatoryName\", \"signatoryTitle\", \"signatoryTelephone\", \"apt\"];\r\n formErrors = {\r\n 'addressType': '',\r\n 'streetAddress':'',\r\n 'clientName':'',\r\n 'state': '',\r\n 'zipcode': '',\r\n 'experienceManager': '',\r\n 'engagementPartner': '',\r\n 'startDate': '',\r\n 'workfrom':''\r\n };\r\n\r\n validationMessages = {\r\n \r\n 'addressType': {\r\n 'required': 'addressType is required.',\r\n },\r\n 'streetAddress': {\r\n 'required': 'Street Address is required.',\r\n },\r\n 'clientName': {\r\n 'required': 'Client Name is required.',\r\n },\r\n 'state': {\r\n 'required': 'State is required.',\r\n },\r\n 'zipcode': {\r\n 'required': 'Zipcode is required.',\r\n },\r\n \r\n 'experienceManager': {\r\n 'required': 'Experience Manager is required.',\r\n },\r\n 'engagementPartner': {\r\n 'required': 'Engagement Partner is required.',\r\n },\r\n 'startDate': {\r\n 'required': 'Start Date is required.',\r\n },\r\n 'workfrom': {\r\n 'required': 'Period of Work From is required.',\r\n },\r\n };\r\n private createEmailFormGroup(): FormGroup {\r\n return new FormGroup({\r\n 'startDate': new FormControl('',Validators.required),\r\n 'expiryDate': new FormControl(''),\r\n 'streetAddress': new FormControl('', Validators.required),\r\n /*'streetAddress': new FormControl({ value: this.caseData.streetAddress, }, [Validators.required]),*/\r\n 'state': new FormControl('',Validators.required),\r\n 'zipCode': new FormControl('',Validators.required),\r\n 'addressType': new FormControl('',Validators.required),\r\n 'county' : new FormControl(''),\r\n 'houseNumber':new FormControl(''),\r\n 'houseName':new FormControl(''),\r\n 'city':new FormControl(''),\r\n 'clientName': new FormControl(''),\r\n 'workFrom':new FormControl('',null),\r\n 'workTo':new FormControl('',null),\r\n 'toalDays': new FormControl(''),\r\n 'telePhone' : new FormControl(''),\r\n 'engagementCode': new FormControl(''),\r\n 'interactionId': new FormControl(''),\r\n 'engagementPartner': new FormControl(''),\r\n 'experienceManager': new FormControl('')\r\n })\r\n }\r\n\r\n GetStates() {\r\n this.addLCAService.getStates().subscribe((data: any) => {\r\n this.statesList = data;\r\n this.statesListSource = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n\r\n GetAddressType(i) {\r\n this.addLCAService.GetAddressType().subscribe((data: any) => {\r\n this.addressTypes[i] = data;\r\n this.addressTypesList = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n\r\n GetLCAAddress(zipCode,index)\r\n {\r\n this.listItems=[];\r\n this.addLCAService.GetLCAAddress(zipCode,this.emailId).subscribe((data: any) => {\r\n this.lcaAddressInfo = data;\r\n this.lcaAddressInfo.forEach(item=>{\r\n if(item.primaryAddress){\r\n this.listItems.push(item.primaryAddress);\r\n }\r\n if(item.addl1Address){\r\n this.listItems.push(item.addl1Address);\r\n }\r\n if(item.addl2Address){\r\n this.listItems.push(item.addl2Address);\r\n }\r\n this.options=[];\r\n this.listItems.forEach(item=>{\r\n var data= new streetAddresses();\r\n data[\"streetAddress\"]=item;\r\n this.options.push(data);\r\n });\r\n this.ManageNameControl(index);\r\n })\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n GetZipcodes(event, index: any): Promise {\r\n this.zipcodeList[index] = [];\r\n this.zipcodeSource[index] = [];\r\n let res = this.addLCAService.GetZipcodes(event).toPromise().then((data: any) => {\r\n if (data.length > 0) {\r\n data.forEach(element => {\r\n this.zipcodeList[index].push(element.zipcode.toString());\r\n this.zipcodeSource[index].push(element.zipcode.toString());\r\n });\r\n //var datas=this.emailForm.controls.emails['controls'][index].value;\r\n //datas.zipCode=\"\";\r\n //this.emailForm.controls.emails['controls'][index].setValue(datas);\r\n //this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.disabled = false;\r\n\r\n }\r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n return res;\r\n }\r\n //GetZipcodes(event,index:any) { \r\n // this.zipcodeList[index]=[];\r\n // this.zipcodeSource[index]=[];\r\n // this.addLCAService.GetZipcodes(event).subscribe((data: any) => {\r\n // if(data.length>0){\r\n // data.forEach(element => {\r\n // this.zipcodeList[index].push(element.zipcode.toString());\r\n // this.zipcodeSource[index].push(element.zipcode.toString());\r\n // });\r\n \r\n // var datas=this.emailForm.controls.emails['controls'][index].value;\r\n // datas.zipCode=\"\";\r\n // this.emailForm.controls.emails['controls'][index].setValue(datas);\r\n // this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n // this.disabled = false;\r\n // }\r\n // },\r\n // (error) => {\r\n // //this.notifier.notify('error', 'Error occured while updating the user details');\r\n // }\r\n // );\r\n //}\r\n\r\n onstartDateChange(event,index){\r\n if(this.emailForm.controls.emails.value[index].addressType==\"Third Party Placement or Client Worksite\")\r\n {\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.workFrom=event;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.onStartsDateChange(event,index);\r\n }\r\n }\r\n\r\n onEndDateChange(event,index){\r\n var data=this.emailForm.controls.emails['controls'][index].value.workFrom; \r\n if((data!=\"\"&&data!=null) && (event!=\"\"&&event!=null)){\r\n this.dateDifference = Math.round((event - data)/1000/60/60/24);\r\n }\r\n else{\r\n this.dateDifference=null;\r\n }\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.toalDays=this.dateDifference;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n \r\n }\r\n\r\n onEndDateChanges(event,index){\r\n if(this.emailForm.controls.emails.value[index].addressType==\"Third Party Placement or Client Worksite\")\r\n {\r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.workTo=event;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.onEndDateChange(event,index);\r\n }\r\n\r\n }\r\n\r\n onStartsDateChange(event,index){\r\n var data=this.emailForm.controls.emails['controls'][index].value.workTo; \r\n if((data!=\"\"&&data!=null) && (event!=\"\"&&event!=null)){\r\n this.dateDifference = Math.round((data - event)/1000/60/60/24); \r\n }\r\n else{\r\n this.dateDifference=null;\r\n }\r\n \r\n var data=this.emailForm.controls.emails['controls'][index].value;\r\n data.toalDays=this.dateDifference;\r\n this.emailForm.controls.emails['controls'][index].setValue(data);\r\n this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n }\r\n \r\n\r\n\r\n GetCountyInfo(event, index: any): Promise {\r\n this.cityArray[index]=[];\r\n this.countyArray[index]=[];\r\n \r\n let res = this.addLCAService.GetCountyInfo(event).toPromise().then((data: any) => {\r\n var newData = data;\r\n if(newData.length>0){\r\n this.cityArray[index].push(\r\n newData[0].cityName.toString()\r\n );\r\n if(this.cityArray[index].length>0)\r\n {\r\n this.citydisabled[index]=false;\r\n }\r\n\r\n newData.forEach(element => {\r\n this.countyArray[index].push(\r\n element.countyName.toString()\r\n );\r\n });\r\n if(this.countyArray[index].length>0){\r\n this.countydisabled[index]=false;\r\n }\r\n this.cityDataArray[index]=this.cityArray[index];\r\n this.countyDataArray[index] = this.countyArray[index];\r\n }\r\n //var data=this.emailForm.controls.emails['controls'][index].value;\r\n // data.county=\"\";\r\n // data.city=\"\";\r\n // this.emailForm.controls.emails['controls'][index].setValue(data);\r\n // this.emailForm.controls.emails['controls'][index].updateValueAndValidity();\r\n this.GetLCAAddress(event,index);\r\n \r\n return Promise.resolve(data);\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n return res;\r\n }\r\n\r\n\r\n\r\n public cityValueChange(event:any){\r\n\r\n }\r\n\r\n public countyValueChange(event:any){\r\n \r\n }\r\n\r\n\r\n\r\n public filterChange(filter: any): void {\r\n this.statesList= this.statesListSource.filter(\r\n (s) => s.stateName.toLowerCase().startsWith(filter.toLowerCase()) \r\n );\r\n }\r\n\r\n public zipFilterChange(filter: any,index:any): void {\r\n this.zipcodeList[index] = this.zipcodeSource[index].filter(\r\n (s) => s.toString().startsWith(filter)\r\n );\r\n }\r\n\r\n public cityFilterChange(filter: any,index:any): void {\r\n this.cityArray[index] = this.cityDataArray[index].filter(\r\n (s) => s.toString().startsWith(filter)\r\n );\r\n }\r\n\r\n public countyFilterChange(filter: any): void {\r\n this.countyArray = this.countyDataArray.filter(\r\n (s) => s.toString().startsWith(filter)\r\n );\r\n }\r\n\r\n goBack() {\r\n let par: any = \"back\";\r\n //this.saveData();\r\n this.WorkSiteDetails = [];\r\n var saveValues = this.emailForm.controls.emails.value;\r\n saveValues.forEach(item => {\r\n\r\n var workSite = new WorkSiteData();\r\n workSite.county = item.county;\r\n workSite.startDate = item.startDate;\r\n workSite.expiryDate = item.expiryDate == \"\" ? null : item.expiryDate;\r\n workSite.zipCode = item.zipCode;\r\n workSite.streetAddress = item.streetAddress instanceof Object ? item.streetAddress.streetAddress : item.streetAddress;\r\n workSite.streetNumber = item.streetNumber;\r\n workSite.houseNumber = item.houseNumber;\r\n workSite.houseName = item.houseName;\r\n workSite.city = item.city;\r\n workSite.clientName = item.clientName;\r\n workSite.workFrom = item.workFrom == \"\" ? null : item.workFrom;\r\n workSite.workTo = item.workTo == \"\" ? null : item.workTo;\r\n workSite.toalDays = item.toalDays;\r\n workSite.telePhone = item.telePhone;\r\n workSite.engagementCode = item.engagementCode;\r\n workSite.interactionId = item.interactionId;\r\n workSite.engagementPartner = item.engagementPartner;\r\n workSite.experienceManager = item.experienceManager;\r\n workSite.state = item.state;\r\n workSite.addressType = item.addressType;\r\n this.WorkSiteDetails.push(workSite);\r\n \r\n });\r\n if (this.WorkSiteDetails.length > 0) {\r\n this.addLCAService.setLCAData(this.WorkSiteDetails);\r\n\r\n //this.worksiteDatats.emit(this.WorkSiteDetails);\r\n }\r\n this.page.emit(this.WorkSiteDetails);\r\n }\r\n logValidationErrors(group: FormGroup = this.emailForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n // && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.emailForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { MissingLCA, FinalDetermination } from '../../lca-compliance/model/Lca.model';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AddLCAService {\r\n //private dataSource = new BehaviorSubject({emailId: 'Ashish.Kudva@ey.com',id:1});\r\n private dataSource = new BehaviorSubject({});\r\n private engagementdataSource = new BehaviorSubject({engagementName:'Ernst & Young U.S. LLP',id:1});\r\n currentData = this.dataSource.asObservable();\r\n engagementData =this.engagementdataSource.asObservable();\r\n mySubject : BehaviorSubject = new BehaviorSubject([]);\r\n addedLCAData=this.mySubject.asObservable();\r\n\r\n constructor(private _http: HttpClient) { }\r\n \r\n getStates() {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetStates');\r\n }\r\n\r\n GetZipcodes(state) {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetZipcodes?state=' + state);\r\n }\r\n public changeUser(data: any) {\r\n if (this.dataSource.value[\"emailId\"] != data.emailId) {\r\n this.mySubject = new BehaviorSubject([]);\r\n this.addedLCAData = this.mySubject.asObservable();\r\n }\r\n this.dataSource.next(data);\r\n \r\n }\r\n\r\n public resetUser() {\r\n this.dataSource.next([]);\r\n }\r\n\r\n public changeEngagement(data: any) {\r\n this.engagementdataSource.next(data);\r\n }\r\n\r\n public setLCAData(data : any){\r\n this.mySubject.next(data);\r\n }\r\n\r\n GetCountyInfo(zipcode) {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetCountyInfo?zipCode=' + zipcode);\r\n }\r\n\r\n getLCAHistory(requestId) {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetLCAHistoryData?requestId='+requestId);\r\n }\r\n\r\n GetWorkSiteData(requestId) {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetWorkSiteData?requestId=' + requestId);\r\n }\r\n\r\n GetWorkSiteDeterminationDetails(requestId) {\r\n return this._http.get(environment.ApiUrl + 'LCAInternalData/GetWorkSiteDeterminationDetails?requestId=' + requestId);\r\n }\r\n\r\n getLawyerList() {\r\n return this._http.get(environment.ApiUrl + 'LCAInternalData/GetLawyerList');\r\n }\r\n\r\n\r\n GetAddressType() {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetAddressTypes');\r\n }\r\n\r\n saveFinalDetermination(determinations:FinalDetermination){\r\n return this._http.post(environment.ApiUrl + 'LCAInternalData/UpdateFinalDetermination',determinations, {});\r\n }\r\n\r\n updateRepostStatus(requestId:string, clientRemarks:string){\r\n return this._http.post(environment.ApiUrl + 'LCAInternalData/UpdateRepostStatus?requestId='+requestId+'&clerkRemarks='+clientRemarks, {});\r\n }\r\n\r\n GetLCAAddress(zipCode,emailId) {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetLCAAddress?zipCode=' + zipCode+'&emailId='+emailId);\r\n }\r\n\r\n addMissingLCA(lcaInfo:MissingLCA){\r\n return this._http.post(environment.ApiUrl + 'LCAData/InserMissingLCA',lcaInfo, {});\r\n }\r\n\r\n getWorkSiteRequestCount(){\r\n return this._http.get(environment.ApiUrl + 'LCAInternalData/GetWorkSiteRequestCount');\r\n }\r\n updateLCANumber(lcaInfo) {\r\n return this._http.post(environment.ApiUrl + 'LCAInternalData/UpdateLCANumberForWorksite', lcaInfo, {});\r\n }\r\n getCaseManagerList() {\r\n return this._http.get(environment.ApiUrl + 'LCAInternalData/GetAllCaseManager');\r\n }\r\n\r\n getActiveLCA(requestId: any) {\r\n return this._http.get(environment.ApiUrl + 'LCAInternalData/GetActiveLCADetails?requestId=' + requestId);\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-await-lcadetermination',\r\n templateUrl: './await-lcadetermination.component.html',\r\n styleUrls: ['./await-lcadetermination.component.scss']\r\n})\r\nexport class AwaitLCADeterminationComponent implements OnInit {\r\n public isPageReady = false;\r\n public createdDate:Date=new Date();\r\n @Input() lcaType=\"\";\r\n @Input() RequestId:any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.isPageReady=true;\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport {AwaitDocExtractionService} from '../awaitdocextraction/service/awaitdocextraction.service';\r\nimport { DashType } from '@progress/kendo-drawing';\r\nimport { DashboardService } from 'src/app/immigrationcompilation/dashboard/service/dashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport {DashboardView} from '../awaitdocextraction/model/dashboardview';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DateFilterModel } from '../awaitlawclerkreview/awaitlawclerkreview.component';\r\nimport { CommonService } from 'src/app/service/common.service';\r\n\r\n@Component({\r\n selector: 'app-awaitcompilation',\r\n templateUrl: './awaitcompilation.component.html',\r\n styleUrls: ['./awaitcompilation.component.scss']\r\n})\r\nexport class AwaitcompilationComponent implements OnInit {\r\n @ViewChild('openDocModalButton', { static: false }) openDocModalButton: ElementRef;\r\n public caseList: any;\r\n public gridViewData: any[];\r\n private notifier: NotifierService;\r\n public isClicked = false;\r\n public dashboardView: DashboardView = new DashboardView();\r\n public pageSize = 10;\r\n public skip = 0;\r\n dateFilterModel: DateFilterModel;\r\n fromreportDate: any;\r\n toreportDate:any\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public isPageReady = true;\r\n constructor(private dashboardService: AwaitDocExtractionService, private commonService: CommonService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n }\r\n take: number;\r\n ngOnInit() {\r\n this.getReportDate();\r\n }\r\n\r\n getReportDate(){\r\n this.commonService.currentData.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate=data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromreportDate),new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n }\r\n\r\n filterCaseList(){\r\n this.commonService.updateDate({fromDate:this.dateFilterModel.startDate.toDateString(),toDate:this.dateFilterModel.endDate.toDateString()});\r\n }\r\n\r\n resetDashboard(){\r\n this.commonService.resetDate.subscribe(data=>{\r\n this.commonService.updateDate({fromDate:data,toDate:data});\r\n });\r\n }\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n this.isPageReady=false;\r\n this.gridState = state;\r\n this.dashboardService.getCaseDetailsWithStatus('AwaitCompilation',this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = process(data, this.gridState);\r\n this.gridViewData = data;\r\n this.take = 10;\r\n this.isPageReady=true;\r\n },\r\n (error) => {\r\n this.isPageReady=true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\nviewDocumentCheckList(dataItem: any) {\r\n this.isClicked = true;\r\n this.dashboardView = Object.assign({}, dataItem);\r\n this.openDocModalButton.nativeElement.click();\r\n}\r\nngAfterViewInit() {\r\n //Adds search placeholder to all filter textbox\r\n var result = document.getElementsByClassName(\"k-filtercell-wrapper\");\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].children[0].setAttribute(\"placeholder\", \"search\");\r\n }\r\n}\r\n}\r\n\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport {AwaitDocExtractionService} from './service/awaitdocextraction.service';\r\nimport { DashType } from '@progress/kendo-drawing';\r\nimport { DashboardService } from 'src/app/immigrationcompilation/dashboard/service/dashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { DashboardView } from '../awaitdocextraction/model/dashboardview';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { CommonService } from 'src/app/service/common.service';\r\n@Component({\r\n selector: 'app-awaitdocextraction',\r\n templateUrl: './awaitdocextraction.component.html',\r\n styleUrls: ['./awaitdocextraction.component.scss']\r\n})\r\nexport class AwaitdocextractionComponent implements OnInit, AfterViewInit {\r\n @ViewChild('openDocModalButton', { static: false }) openDocModalButton: ElementRef;\r\n public caseList: any;\r\n public gridViewData: any[];\r\n private notifier: NotifierService;\r\n public isClicked = false;\r\n public dashboardView: DashboardView = new DashboardView();\r\n public pageSize = 10;\r\n public skip = 0;\r\n dateFilterModel: DateFilterModel;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n fromreportDate: any;\r\n toreportDate: any;\r\n public isPageReady = true;\r\n constructor(private dashboardService: AwaitDocExtractionService, private commonService: CommonService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n }\r\ntake: number;\r\n ngOnInit() {\r\n this.getReportDate();\r\n }\r\n\r\n getReportDate(){\r\n this.commonService.currentData.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate=data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromreportDate),new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n }\r\n\r\n resetDashboard(){\r\n this.commonService.resetDate.subscribe(data=>{\r\n this.commonService.updateDate({fromDate:data,toDate:data});\r\n });\r\n }\r\n filterCaseList(){\r\n this.commonService.updateDate({fromDate:this.dateFilterModel.startDate.toDateString(),toDate:this.dateFilterModel.endDate.toDateString()});\r\n }\r\n \r\n refreshCaseList(state: DataStateChangeEvent) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n this.dashboardService.getCaseDetailsWithStatus('AwaitDocExtract', this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = process(data, this.gridState);\r\n this.gridViewData = data;\r\n this.take = 10;\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n viewDocumentCheckList(dataItem: any) {\r\n\r\nthis.isClicked = true;\r\nthis.dashboardView = Object.assign({}, dataItem);\r\nthis.openDocModalButton.nativeElement.click();\r\n\r\n }\r\n applyFilter(data: any) {\r\n const filterData = [];\r\n // Iterate each object in gridview data\r\n this.gridViewData.forEach((i) => {\r\n // clones object to avoid filter impact to gridViewData\r\n\r\n const rowData = { ...i };\r\n // Apply filter logic for all columns.\r\n const nestedArray = rowData.gridView.filter((y) => {\r\n if ((y['insZoomId'].toLowerCase().includes(data.key.toString()) ||\r\n y['insZoomId'].toString().includes(data.key.toLowerCase())) // &&\r\n // y['requestType'].toLowerCase().includes(this.formGroup.controls['requestType'].value.toLowerCase()) &&\r\n // y['lawyer'].toLowerCase().includes(this.formGroup.controls['lawyer'].value.toLowerCase()) &&\r\n // y['lawClerk'].toString().includes(this.formGroup.controls['lawClerk'].value.toString()) &&\r\n // y['engagement'].toString().includes(this.formGroup.controls['engagement'].value.toString()) &&\r\n // y['dateRequested'].toString().includes(this.formGroup.controls['dateRequested'].value.toString()) &&\r\n // y['applicantName'].toString().includes(this.formGroup.controls['applicantName'].value.toString()) &&\r\n // y['status'].toString().includes(this.formGroup.controls['status'].value.toString()) &&\r\n // y['applicantType'].toString().includes(this.formGroup.controls['applicantType'].value.toString())\r\n ) {\r\n return true;\r\n }\r\n });\r\n // Pushes the filtered parent\\child rows to an array\r\n if (nestedArray.length > 0) {\r\n const filter = rowData;\r\n filter.gridView = nestedArray;\r\n filterData.push(filter);\r\n }\r\n });\r\n // Binds the filtered rows to grid\r\n this.caseList = filterData;\r\n }\r\n\r\n public isExpanded = (dataItem: any): boolean => {\r\n return true;\r\n }\r\n\r\n ngAfterViewInit() {\r\n //Adds search placeholder to all filter textbox\r\n var result = document.getElementsByClassName(\"k-filtercell-wrapper\");\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].children[0].setAttribute(\"placeholder\", \"search\");\r\n }\r\n }\r\n}\r\n\r\nexport class DateFilterModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter, OnChanges} from '@angular/core';\r\nimport {DashboardView} from '../model/dashboardview';\r\nimport {AwaitDocExtractionService} from '../service/awaitdocextraction.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n@Component({\r\n selector: 'app-documentchklist',\r\n templateUrl: './documentchklist.component.html',\r\n styleUrls: ['./documentchklist.component.scss']\r\n})\r\nexport class DocumentchklistComponent implements OnInit, OnChanges {\r\n @Input() dashboardView: DashboardView;\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n bnfId: string;\r\n caseType: string;\r\n applicantType: string;\r\n requestType: string;\r\n public documentSearch: any;\r\n public searchText = '';\r\n private notifier: NotifierService;\r\n public documentList: any[];\r\n public newPageReady = true;\r\n constructor(private dashboardService: AwaitDocExtractionService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n ngOnChanges() {\r\n this.loadDocumentCheckList(this.dashboardView);\r\n }\r\n closeForm() {\r\n const closeButton: HTMLElement = this.closeButton.nativeElement as HTMLElement;\r\n closeButton.click();\r\n }\r\n loadDocumentCheckList(caseDetail: DashboardView) {\r\n this.newPageReady=false;\r\n this.bnfId = caseDetail.parentBnfId;\r\nthis.caseType = caseDetail.caseType;\r\nthis.applicantType = caseDetail.applicantType;\r\nthis.requestType = caseDetail.requestType;\r\nthis.dashboardService.getDocumentDetails(this.caseType, this.applicantType, this.requestType).subscribe((data: any) => {\r\n this.documentList = data;\r\n this.documentSearch = this.documentList;\r\n this.newPageReady=true;\r\n console.log(this.documentList);\r\n},\r\n(error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n}\r\n);\r\n}\r\nclearFilter() {\r\n // Resets search textbox\r\n this.searchText = '';\r\n}\r\napplyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = this.documentSearch.filter(r => r.applicantType.toLowerCase().includes(filterValue)\r\n || r.documentType.toLowerCase().includes(filterValue));\r\n this.documentList = filterData;\r\n}\r\n}\r\n","export class DashboardView {\r\nparentBnfId: string;\r\n caseType: string;\r\n requestType: string;\r\n applicantType: string;\r\n }\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AwaitDocExtractionService {\r\n public headers = new HttpHeaders ({\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json'\r\n });\r\n public options = {\r\n headers: this.headers\r\n };\r\n constructor(private _http: HttpClient) { }\r\n getCaseDetails(status: string,startDate,endDate) {\r\n let params = new HttpParams();\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n params = params.append('status', status);\r\n return this._http.get(environment.ApiUrl + 'Dashboard/GetAllCaseDetails', {params: params });\r\n }\r\n\r\n getCaseDetailsWithStatus(status: string,startDate,endDate) {\r\n let params = new HttpParams();\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n params = params.append('status', status);\r\n \r\n return this._http.get(environment.ApiUrl + 'Dashboard/GetCaseDetails', { params: params });\r\n }\r\n\r\n getDocumentDetails(caseType: string, applicantType: string, requestType: string) {\r\n return this._http.get(environment.ApiUrl + 'Dashboard/GetDocumentCheckList?caseType=' + caseType + '&applicantType=' +\r\n applicantType + '&requestType=' + requestType, {});\r\n }\r\n resubmitForCompilation(insZoomId: string, id: number, message: string) {\r\n return this._http.post(environment.ApiUrl + 'Dashboard/Recompile?insZoomId=' + insZoomId +\r\n '&id=' + id + '&message=' + message, {});\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport {AwaitDocExtractionService} from '../awaitdocextraction/service/awaitdocextraction.service';\r\nimport { DashType } from '@progress/kendo-drawing';\r\nimport { DashboardService } from 'src/app/immigrationcompilation/dashboard/service/dashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport {DashboardView} from '../awaitdocextraction/model/dashboardview';\r\nimport { Router } from '@angular/router';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { CommonService } from 'src/app/service/common.service';\r\n\r\n@Component({\r\n selector: 'app-awaitlawclerkreview',\r\n templateUrl: './awaitlawclerkreview.component.html',\r\n styleUrls: ['./awaitlawclerkreview.component.scss']\r\n})\r\nexport class AwaitlawclerkreviewComponent implements OnInit, AfterViewInit {\r\n @ViewChild('openDocModalButton', { static: false }) openDocModalButton: ElementRef;\r\n public caseList: any;\r\n public gridViewData: any[];\r\n private notifier: NotifierService;\r\n public isClicked = false;\r\n public dashboardView: DashboardView = new DashboardView();\r\n public pageSize = 10;\r\n public skip = 0;\r\n dateFilterModel: DateFilterModel;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public take: number;\r\n fromreportDate: any;\r\n toreportDate:any;\r\n public isPageReady = true;\r\n\r\n constructor(private dashboardService: AwaitDocExtractionService, private router: Router,private commonService:CommonService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n }\r\n \r\n ngOnInit() {\r\n this.getReportDate();\r\n }\r\n\r\n getReportDate(){\r\n this.commonService.currentData.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate=data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromreportDate),new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n }\r\n filterCaseList(){\r\n this.commonService.updateDate({fromDate:this.dateFilterModel.startDate.toDateString(),toDate:this.dateFilterModel.endDate.toDateString()});\r\n }\r\n\r\n resetDashboard(){\r\n this.commonService.resetDate.subscribe(data=>{\r\n this.commonService.updateDate({fromDate:data,toDate:data});\r\n });\r\n }\r\n\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n this.isPageReady=false;\r\n this.gridState = state;\r\n this.dashboardService.getCaseDetailsWithStatus('AwaitLawClerkReview',this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = process(data, this.gridState);\r\n this.gridViewData = data;\r\n this.take = 10;\r\n this.isPageReady=true;\r\n },\r\n (error) => {\r\n this.isPageReady=true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n\r\n viewDocumentCheckList(dataItem: any) {\r\n this.isClicked = true;\r\n this.dashboardView = Object.assign({}, dataItem);\r\n // this.openDocModalButton.nativeElement.click();\r\n this.router.navigate(['/detailedview']);\r\n }\r\n\r\n public isExpanded = (dataItem: any): boolean => {\r\n return true;\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Adds search placeholder to all filter textbox\r\n var result = document.getElementsByClassName(\"k-filtercell-wrapper\");\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].children[0].setAttribute(\"placeholder\", \"search\");\r\n }\r\n }\r\n }\r\n\r\n export class DateFilterModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n }\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport { AwaitDocExtractionService } from '../awaitdocextraction/service/awaitdocextraction.service';\r\nimport { DashType } from '@progress/kendo-drawing';\r\nimport { DashboardService } from 'src/app/immigrationcompilation/dashboard/service/dashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { DashboardView } from '../awaitdocextraction/model/dashboardview';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DateFilterModel } from '../dashboard/dashboard.component';\r\nimport { CommonService } from 'src/app/service/common.service';\r\n\r\n@Component({\r\n selector: 'app-compilationfailed',\r\n templateUrl: './compilationfailed.component.html',\r\n styleUrls: ['./compilationfailed.component.scss']\r\n})\r\nexport class CompilationfailedComponent implements OnInit, AfterViewInit {\r\n @ViewChild('openDocModalButton', { static: false }) openDocModalButton: ElementRef;\r\n public caseList: any;\r\n public gridViewData: any[];\r\n private notifier: NotifierService;\r\n public isClicked = false;\r\n public dashboardView: DashboardView = new DashboardView();\r\n public pageSize = 10;\r\n public skip = 0;\r\n dateFilterModel: DateFilterModel;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n fromreportDate: any;\r\n toreportDate:any;\r\n\r\n constructor(private dashboardService: AwaitDocExtractionService, private commonService: CommonService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n }\r\n take: number;\r\n public isPageReady = true;\r\n\r\n ngOnInit() {\r\n this.getReportDate();\r\n }\r\n\r\n resetDashboard(){\r\n this.commonService.resetDate.subscribe(data=>{\r\n this.commonService.updateDate({fromDate:data,toDate:data});\r\n });\r\n }\r\n getReportDate(){\r\n this.commonService.currentData.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate=data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromreportDate),new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n }\r\n filterCaseList(){\r\n this.commonService.updateDate({fromDate:this.dateFilterModel.startDate.toDateString(),toDate:this.dateFilterModel.endDate.toDateString()});\r\n }\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n this.isPageReady=false;\r\n this.gridState = state;\r\n this.dashboardService.getCaseDetailsWithStatus('CompilationFailed', this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = process(data, this.gridState);\r\n console.log(this.caseList);\r\n this.gridViewData = data;\r\n this.take = 10;\r\n this.isPageReady=true;\r\n },\r\n (error) => {\r\n this.isPageReady=true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n ngAfterViewInit() {\r\n //Adds search placeholder to all filter textbox\r\n var result = document.getElementsByClassName(\"k-filtercell-wrapper\");\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].children[0].setAttribute(\"placeholder\", \"search\");\r\n }\r\n }\r\n resubmit(insZoomId: any, id: any, message: any) {\r\n this.dashboardService.resubmitForCompilation(insZoomId, id, message).subscribe((data: any) => {\r\n this.refreshCaseList(this.gridState);\r\n this.notifier.notify('success', 'Case Id is submitted for recompilation');\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while updating data from server');\r\n }\r\n );\r\n }\r\n}\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport {AwaitDocExtractionService} from '../awaitdocextraction/service/awaitdocextraction.service';\r\nimport { DashType } from '@progress/kendo-drawing';\r\nimport { DashboardService } from 'src/app/immigrationcompilation/dashboard/service/dashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport {DashboardView} from '../awaitdocextraction/model/dashboardview';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DateFilterModel } from '../dashboard/dashboard.component';\r\nimport { CommonService } from 'src/app/service/common.service';\r\n\r\n@Component({\r\n selector: 'app-compilationrejected',\r\n templateUrl: './compilationrejected.component.html',\r\n styleUrls: ['./compilationrejected.component.scss']\r\n})\r\nexport class CompilationrejectedComponent implements OnInit, AfterViewInit {\r\n @ViewChild('openDocModalButton', { static: false }) openDocModalButton: ElementRef;\r\n public caseList: any;\r\n public gridViewData: any[];\r\n private notifier: NotifierService;\r\n public isClicked = false;\r\n public dashboardView: DashboardView = new DashboardView();\r\n public pageSize = 10;\r\n public skip = 0;\r\n dateFilterModel: DateFilterModel;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n fromreportDate: any;\r\n toreportDate:any;\r\n public isPageReady = true;\r\n constructor(private dashboardService: AwaitDocExtractionService,private commonService:CommonService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n }\r\n take: number;\r\n\r\n\r\n ngOnInit() {\r\n this.getReportDate();\r\n }\r\n\r\n resetDashboard(){\r\n this.commonService.resetDate.subscribe(data=>{\r\n this.commonService.updateDate({fromDate:data,toDate:data});\r\n });\r\n }\r\n filterCaseList(){\r\n this.commonService.updateDate({fromDate:this.dateFilterModel.startDate.toDateString(),toDate:this.dateFilterModel.endDate.toDateString()});\r\n }\r\n\r\n getReportDate(){\r\n this.commonService.currentData.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate=data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromreportDate),new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n }\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n this.dashboardService.getCaseDetailsWithStatus('CompilationRejected', this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = process(data, this.gridState);\r\n this.gridViewData = data;\r\n this.take = 10;\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n viewDocumentCheckList(dataItem: any) {\r\n this.isClicked = true;\r\n this.dashboardView = Object.assign({}, dataItem);\r\n this.openDocModalButton.nativeElement.click();\r\n }\r\n ngAfterViewInit() {\r\n //Adds search placeholder to all filter textbox\r\n var result = document.getElementsByClassName(\"k-filtercell-wrapper\");\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].children[0].setAttribute(\"placeholder\", \"search\");\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n","export class DocumentExtractionModel {\r\n constructor(\r\n public id = 0,\r\n public caseId= \"\",\r\n public documentName=\"\",\r\n public packageType=\"\",\r\n public carrierName=\"\",\r\n public wayBill=\"\",\r\n public pickupDate=new Date(),\r\n public pickupDateString=\"\",\r\n public firstName= \"\",\r\n public lastName = \"\",\r\n public accessTypeId = 0,\r\n public dateOfBirth=new Date())\r\n {}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataStateChangeEvent, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { User } from '../usermanagement/model/user';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CourierPackageService } from './service/courier-package.service';\r\nimport { Router } from '@angular/router';\r\nimport { DatePipe } from '@angular/common';\r\nimport { CommonService } from 'src/app/service/common.service';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\n\r\n\r\n@Component({\r\n selector: 'app-courier-package',\r\n templateUrl: './courier-package.component.html',\r\n styleUrls: ['./courier-package.component.scss']\r\n})\r\nexport class CourierPackageComponent implements OnInit {\r\n public selectedUser: User = new User();\r\n public deleteId = 0;\r\n public searchTerm = '';\r\n public showConfirmation = false;\r\n public userList: any[] = [];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private readonly notifier: NotifierService;\r\n constructor(private packageService: CourierPackageService,private router: Router,public datepipe: DatePipe) {\r\n this.allData = this.allData.bind(this);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n // Loads data to grid\r\n this.dataStateChange(this.gridState);\r\n }\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.userList\r\n };\r\n \r\n return result;\r\n }\r\n\r\n\r\n \r\n updateUserList() {\r\n this.dataStateChange(this.gridState);\r\n }\r\n\r\n NavigatetoSuccess(date:Date,$event: MouseEvent) {\r\n $event.preventDefault();\r\n this.router.navigate(['/courierpackageSuccess'], { queryParams: { 'incomingDate': date },skipLocationChange: true });\r\n }\r\n\r\n NavigatetoFailure(date:Date,$event: MouseEvent, status:any) {\r\n $event.preventDefault();\r\n this.router.navigate(['/courierpackageFailure'], { queryParams: { 'incomingDate': date, 'packageStatus': status },skipLocationChange: true });\r\n }\r\n\r\n NavigatetoPending(date:Date,$event: MouseEvent, status:any) {\r\n $event.preventDefault();\r\n this.router.navigate(['/courierpackagePendings'], { queryParams: { 'incomingDate': date, 'packageStatus': status },skipLocationChange: true });\r\n }\r\n\r\n NavigateToAccessFailure(date: Date, $event: MouseEvent, status: any) {\r\n $event.preventDefault();\r\n this.router.navigate(['/courierpackageAccessFailure'], { queryParams: { 'incomingDate': date, 'packageStatus': status }, skipLocationChange: true });\r\n }\r\n\r\n public pageChange(state: DataStateChangeEvent): void {\r\n this.gridState = state;\r\n this.loadItems();\r\n}\r\n\r\nprivate loadItems(): void {\r\n this.gridView = process(this.userList, this.gridState);\r\n}\r\n\r\n dataStateChange(state: DataStateChangeEvent) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n // Gets data from api\r\n this.packageService.getDocumentDetails().subscribe((data: any) => {\r\n // Binds the data to grid\r\n if(data){\r\n var items=\"\";\r\n data.forEach(item=>{\r\n item.incomingDate=this.datepipe.transform(item.incomingDate, 'dd-MMM-yyyy');\r\n });\r\n this.gridView = {\r\n data: data.slice(this.skip, this.skip + this.pageSize),\r\n total: data.length\r\n };\r\n this.gridViewSearch = data.map(x => Object.assign({}, x));\r\n this.userList = data;\r\n this.isPageReady = true;\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n\r\n let filterData = this.gridViewSearch.filter(r => r.incomingDate.toLowerCase().includes(filterValue)\r\n || r.total.toString().includes(filterValue)\r\n || r.scanned.toString().includes(filterValue)|| r.success.toString().includes(filterValue)\r\n || r.failure.toString().includes(filterValue));\r\n this.gridView.data = filterData;\r\n this.gridView.total=filterData.length;\r\n // console.log(this.gridView);\r\n }\r\n}\r\n\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { DataStateChangeEvent, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CourierPackageService } from '../service/courier-package.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { DocumentExtractionModel } from '../Model/DocumentExraction.Model';\r\n\r\n@Component({\r\n selector: 'app-courierpackage-failure',\r\n templateUrl: './courierpackage-failure.component.html',\r\n styleUrls: ['./courierpackage-failure.component.scss']\r\n})\r\nexport class CourierpackageFailureComponent implements OnInit {\r\n @ViewChild('openDocumentInfoModalButton', { static: false }) openEditModalButton: ElementRef;\r\n public deleteId = 0;\r\n public searchTerm = '';\r\n public packagesStatus = '';\r\n public showConfirmation = false;\r\n public userList: any[] = [];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public incomingDate:Date=new Date();\r\n public inputDate;\r\n private readonly notifier: NotifierService;\r\n public selecteddocumentId = 0;\r\n public documentInfo = new DocumentExtractionModel();\r\n public showModel = false;\r\n\r\n constructor(private packageService: CourierPackageService,private router: Router,private route:ActivatedRoute,public datepipe: DatePipe) {\r\n this.allData = this.allData.bind(this);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n var updatedDate = params['incomingDate'];\r\n this.packagesStatus = params['packageStatus'];\r\n if(updatedDate){\r\n this.incomingDate = new Date(updatedDate);\r\n this.inputDate = updatedDate;\r\n }\r\n })\r\n this.dataStateChange(this.gridState,this.inputDate);\r\n }\r\n\r\n public pageChange(state: DataStateChangeEvent): void {\r\n this.gridState = state;\r\n this.loadItems();\r\n}\r\n\r\nprivate loadItems(): void {\r\n this.gridView = process(this.userList, this.gridState);\r\n}\r\n\r\npublic allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.userList\r\n };\r\n\r\n return result;\r\n}\r\n\r\n\r\n\r\n dataStateChange(state: DataStateChangeEvent,incomingDate:any) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n\r\n // Gets data from api\r\n if (this.packagesStatus == 'Failure') {\r\n this.packageService.getDocumentFailureDetails(incomingDate).subscribe((data: any) => {\r\n // Binds the data to grid\r\n if (data) {\r\n var items = \"\";\r\n data.forEach(item => {\r\n item.incomingDate = this.datepipe.transform(item.incomingDate, 'dd-MMM-yyyy');\r\n });\r\n this.gridView = {\r\n data: data.slice(this.skip, this.skip + this.pageSize),\r\n total: data.length\r\n };\r\n this.gridViewSearch = data.map(x => Object.assign({}, x));\r\n this.userList = data;\r\n this.isPageReady = true;\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n else if (this.packagesStatus == 'Pending'){\r\n this.packageService.getDocumentPendingDetails(incomingDate).subscribe((data: any) => {\r\n // Binds the data to grid\r\n if (data) {\r\n var items = \"\";\r\n data.forEach(item => {\r\n item.incomingDate = this.datepipe.transform(item.incomingDate, 'dd-MMM-yyyy');\r\n });\r\n this.gridView = {\r\n data: data.slice(this.skip, this.skip + this.pageSize),\r\n total: data.length\r\n };\r\n this.gridViewSearch = data.map(x => Object.assign({}, x));\r\n this.userList = data;\r\n this.isPageReady = true;\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n else if (this.packagesStatus == 'AccessFailure') {\r\n this.packageService.getDocumentAccessFailureDetails(incomingDate).subscribe((data: any) => {\r\n // Binds the data to grid\r\n if (data) {\r\n var items = \"\";\r\n data.forEach(item => {\r\n item.incomingDate = this.datepipe.transform(item.incomingDate, 'dd-MMM-yyyy');\r\n });\r\n this.gridView = {\r\n data: data.slice(this.skip, this.skip + this.pageSize),\r\n total: data.length\r\n };\r\n this.gridViewSearch = data.map(x => Object.assign({}, x));\r\n this.userList = data;\r\n this.isPageReady = true;\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = this.gridViewSearch.filter(r => r.incomingDate.toLowerCase().includes(filterValue)\r\n || r.office.toLowerCase().includes(filterValue)\r\n || r.fileName.toLowerCase().includes(filterValue)|| r.scanned.toLowerCase().includes(filterValue)\r\n || r.aiExtracted.toLowerCase().includes(filterValue)|| r.uploadStatus.toLowerCase().includes(filterValue)\r\n || r.remarks.toLowerCase().includes(filterValue));\r\n this.gridView.data = filterData;\r\n this.gridView.total=filterData.length;\r\n // console.log(this.gridView);\r\n }\r\n\r\n viewDocumentInfo(documentId: number, edit: boolean) {\r\n this.selecteddocumentId = documentId;\r\n this.packageService.getdocumentInfoById(documentId).subscribe((result: DocumentExtractionModel) => {\r\n this.documentInfo = result;\r\n this.documentInfo.pickupDateString = this.datepipe.transform(this.documentInfo.pickupDate, 'dd-MMM-yyyy');\r\n this.showModel = true;\r\n this.openEditModalButton.nativeElement.click();\r\n }, error => { console.error(error); console.log('error'); });\r\n }\r\n\r\n saveHandler(event) {\r\n this.dataStateChange(this.gridState, this.inputDate);\r\n }\r\n}\r\n\r\n","import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { DataStateChangeEvent, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CourierPackageService } from '../service/courier-package.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DocumentExtractionModel } from '../Model/DocumentExraction.Model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { process } from '@progress/kendo-data-query';\r\n\r\n\r\n@Component({\r\n selector: 'app-courierpackage-success',\r\n templateUrl: './courierpackage-success.component.html',\r\n styleUrls: ['./courierpackage-success.component.scss']\r\n})\r\nexport class CourierpackageSuccessComponent implements OnInit {\r\n @ViewChild('openDocumentInfoModalButton', { static: false }) openEditModalButton: ElementRef;\r\n public deleteId = 0;\r\n public searchTerm = '';\r\n public showConfirmation = false;\r\n public userList: any[] = [];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public showModel=false;\r\n public selecteddocumentId=0;\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public documentInfo= new DocumentExtractionModel();\r\n public incomingDate: Date = new Date();\r\n public inputDate;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private readonly notifier: NotifierService;\r\n\r\n constructor(private packageService: CourierPackageService,private router: Router,private route:ActivatedRoute,public datepipe: DatePipe) {\r\n this.allData = this.allData.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n var updatedDate = params['incomingDate'];\r\n if(updatedDate){\r\n this.incomingDate = new Date(updatedDate);\r\n this.inputDate = updatedDate;\r\n }\r\n });\r\n \r\n this.dataStateChange(this.gridState, this.inputDate);\r\n }\r\n\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.userList\r\n };\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n\r\n viewDocumentInfo(documentId:number , edit: boolean) {\r\n this.selecteddocumentId=documentId;\r\n this.packageService.getdocumentInfoById(documentId).subscribe((result: DocumentExtractionModel) => {\r\n this.documentInfo = result;\r\n this.documentInfo.pickupDateString=this.datepipe.transform(this.documentInfo.pickupDate, 'dd-MMM-yyyy');\r\n this.showModel=true;\r\n this.openEditModalButton.nativeElement.click();\r\n }, error => {console.error(error); console.log('error'); });\r\n }\r\n\r\n\r\n LoadDocumentInfo(documentId) {\r\n \r\n }\r\n\r\n public pageChange(state: DataStateChangeEvent): void {\r\n this.gridState = state;\r\n this.loadItems();\r\n}\r\n\r\nprivate loadItems(): void {\r\n this.gridView = process(this.userList, this.gridState);\r\n}\r\n\r\n dataStateChange(state: DataStateChangeEvent,incomingDate:any) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n // Gets data from api\r\n this.packageService.getDocumentSuccessInfo(incomingDate).subscribe((data: any) => {\r\n // Binds the data to grid\r\n if(data){\r\n var items=\"\";\r\n data.forEach(item=>{\r\n item.pickupDate=this.datepipe.transform(item.pickupDate, 'dd-MMM-yyyy');\r\n item.incomingDate=this.datepipe.transform(item.incomingDate, 'dd-MMM-yyyy');\r\n });\r\n this.gridView = {\r\n data: data.slice(this.skip, this.skip + this.pageSize),\r\n total: data.length\r\n };\r\n this.gridViewSearch = data.map(x => Object.assign({}, x));\r\n this.userList = data;\r\n this.isPageReady = true;\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = this.gridViewSearch.filter(r => r.incomingDate.toLowerCase().includes(filterValue)\r\n || r.office.toLowerCase().includes(filterValue)\r\n || r.fileName.toLowerCase().includes(filterValue));\r\n this.gridView.data = filterData;\r\n this.gridView.total=filterData.length;\r\n // console.log(this.gridView);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { User } from 'src/app/immigrationcompilation/usermanagement/model/user';\r\nimport { CourierPackageService } from '../../service/courier-package.service';\r\nimport { DocumentExtractionModel } from '../../Model/DocumentExraction.Model';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-document-extraction-info',\r\n templateUrl: './document-extraction-info.component.html',\r\n styleUrls: ['./document-extraction-info.component.scss']\r\n})\r\nexport class DocumentExtractionInfoComponent implements OnInit {\r\n\r\n @Input() documentInfo: DocumentExtractionModel;\r\n @Input() packagesStatus: any;\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n @ViewChild('addcloseButton', {static: false}) addcloseButton: ElementRef;\r\n @ViewChild('autocomplete' , {static: false}) autocomplete: any;\r\n @ViewChild('notification', { static: false }) customNotificationTmpl;\r\n @Output() save = new EventEmitter();\r\n errorMessage: string;\r\n public searchDetails: any;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public documents:DocumentExtractionModel;\r\n private notifier: NotifierService;\r\n public selectedRole = 0;\r\n public userId: number;\r\n public selectedDate=\"\";\r\n public addUserMail: string;\r\n public addUserName: string;\r\n public isEditable = false;\r\n public accessTypeList = [\r\n { \"id\": 1, \"value\": \"Firm Only\" },\r\n { \"id\": 2, \"value\": \"All\" },\r\n { \"id\": 3, \"value\": \"Applicant Only\" },\r\n { \"id\": 4, \"value\": \"Sponsor Only\" }\r\n ];\r\n\r\n constructor(private packageService:CourierPackageService,public datepipe: DatePipe,\r\n notifierService: NotifierService\r\n ) {\r\n this.notifier = notifierService;\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedDate=this.datepipe.transform(this.documentInfo.pickupDate, 'dd-MMM-yyyy');\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.packagesStatus == \"Failure\")\r\n this.isEditable = true;\r\n else\r\n this.isEditable = false;\r\n }\r\n\r\n closeForm() {\r\n const closeButton: HTMLElement = this.closeButton\r\n .nativeElement as HTMLElement;\r\n closeButton.click();\r\n }\r\n\r\n addcloseForm() {\r\n this.addUserMail = '';\r\n this.addUserName = '';\r\n this.selectedRole = 0;\r\n this.autocomplete.reset();\r\n const addcloseButton: HTMLElement = this.addcloseButton\r\n .nativeElement as HTMLElement;\r\n addcloseButton.click();\r\n }\r\n\r\n selectAddUserDetails(email: any) {\r\n this.addUserMail = email.mail;\r\n this.addUserName = email.displayName;\r\n this.autocomplete.reset();\r\n }\r\n\r\n saveData() {\r\n\r\n if (!this.documentInfo.caseId || !this.documentInfo.accessTypeId || !this.documentInfo.carrierName || !this.documentInfo.firstName || !this.documentInfo.lastName || !this.documentInfo.wayBill || !this.documentInfo.documentName || !this.documentInfo.packageType) {\r\n this.notifier.notify('error', 'Please enter value for all the fields');\r\n return;\r\n }\r\n\r\n this.packageService.SaveDocumentExtraction(this.documentInfo).subscribe((result) => {\r\n document.getElementById(\"btnClose\").click();\r\n this.notifier.notify('success', 'Package details have been saved successfully');\r\n this.save.emit(\"refresh\");\r\n }, error => {\r\n this.notifier.notify('error', 'Error occured while saving the package details');\r\n });\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { DocumentExtractionModel } from '../Model/DocumentExraction.Model';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CourierPackageService {\r\n public headers = new HttpHeaders ({\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json'\r\n });\r\n public options = {\r\n headers: this.headers\r\n };\r\n constructor(private _http: HttpClient) { }\r\n getDocumentDetails() {\r\n return this._http.get(environment.ApiUrl + 'Courier/GetAllCourierPackageDetails' , {});\r\n }\r\n\r\n\r\n getDocumentSuccessDetails(incomingDate:any){\r\n return this._http.get(environment.ApiUrl + 'Courier/GetAllCourierPackageSuccessDetails?incomingDate=' + incomingDate , {});\r\n }\r\n\r\n\r\n getDocumentFailureDetails(incomingDate:any){\r\n return this._http.get(environment.ApiUrl + 'Courier/GetAllCourierPackageFailureDetails?incomingDate=' + incomingDate , {});\r\n }\r\n\r\n\r\n getdocumentInfoById(documentId:number){\r\n return this._http.get(environment.ApiUrl + 'Courier/GetDocumentExtractionInfoByID?documentId=' + documentId , {});\r\n }\r\n\r\n\r\n getDocumentSuccessInfo(incomingDate:any){\r\n return this._http.get(environment.ApiUrl + 'Courier/GetCourierPackageSuccessInfo?incomingDate=' + incomingDate , {});\r\n }\r\n\r\n getDocumentPendingDetails(incomingDate: any) {\r\n return this._http.get(environment.ApiUrl + 'Courier/GetAllCourierPackagePendingDetails?incomingDate=' + incomingDate, {});\r\n }\r\n getDocumentAccessFailureDetails(incomingDate: any) {\r\n return this._http.get(environment.ApiUrl + 'Courier/GetCPAccessFailureDetails?incomingDate=' + incomingDate, {});\r\n }\r\n SaveDocumentExtraction(documentExtractionData: any) {\r\n return this._http.post(environment.ApiUrl + 'Courier/SaveDocumentExtraction', documentExtractionData, {});\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { Router } from '@angular/router';\r\nimport { DashboardService } from '../dashboard/service/dashboard.service';\r\nimport { CommonService } from 'src/app/service/common.service';\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n public caseList: any[];\r\n dateFilterModel: DateFilterModel;\r\n await: number;\r\n public isPageReady = true;\r\n awaitCompilation: number;\r\n lawClerk: number;\r\n fail: number;\r\n submit: number;\r\n reject: number;\r\n engagement;\r\n public engagementList: any = [{ 'EngagementId': '1', 'EngagementName': 'Wright Service Corportation' },\r\n { 'EngagementId': '2', 'EngagementName': 'EY GTH India' }];\r\n fromReportDate: any;\r\n toReportDate:any;\r\n constructor(private router: Router, private dashboardService: DashboardService,private commonService: CommonService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n }\r\n\r\n ngOnInit() {\r\n this.getReportDate();\r\n \r\n }\r\n\r\n getReportDate(){\r\n\r\n this.commonService.currentData\r\n .subscribe((data: any) => {\r\n // Navigates to accessdenied component if user doesn't exist\r\n this.fromReportDate=data.fromDate;\r\n this.toReportDate=data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromReportDate),new Date(this.toReportDate));\r\n this.getDashboardCount();\r\n },\r\n (error) => {\r\n });\r\n }\r\n\r\n\r\n\r\n filterCaseList(){\r\n this.commonService.updateDate({fromDate:this.dateFilterModel.startDate.toDateString(),toDate:this.dateFilterModel.endDate.toDateString()});\r\n }\r\n\r\n getDashboardCount() {\r\n this.isPageReady = false;\r\n this.dashboardService.getDashboardCount(this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString(), this.engagement).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = data;\r\n this.await = data.awaitDocExtract;\r\n this.awaitCompilation = data.awaitCompilation;\r\n this.lawClerk = data.awaitLawClerk;\r\n this.fail = data.compilationFailed;\r\n this.submit = data.submittedToAttorney;\r\n this.reject = data.compilationRejected;\r\n this.isPageReady = true;\r\n console.log(this.caseList);\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n // this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n docExtraction() {\r\n this.router.navigate(['/awaitdocextract']);\r\n }\r\n awaitCompile() {\r\n this.router.navigate(['/awaitcompilation']);\r\n }\r\n compilationFailed() {\r\n this.router.navigate(['/compilationfailed']);\r\n }\r\n awaitLawClerkReview() {\r\n this.router.navigate(['/awaitlawclerkreview']);\r\n }\r\n submittedToLawyer() {\r\n this.router.navigate(['/submittedtolawyer']);\r\n }\r\n compilationRejected() {\r\n this.router.navigate(['/compilationrejected']);\r\n }\r\n\r\n resetDashboard(){\r\n this.commonService.resetDate.subscribe(data=>{\r\n this.commonService.updateDate({fromDate:data,toDate:data});\r\n });\r\n }\r\n\r\n getCaseCountByEngagement(id: any) {\r\n if (id == 1) {\r\n this.await = 15;\r\n this.awaitCompilation = 40;\r\n this.lawClerk = 10;\r\n this.fail = 1;\r\n this.submit = 15;\r\n this.reject = 0;\r\n }\r\n if (id == 2) {\r\n this.await = 25;\r\n this.awaitCompilation = 30;\r\n this.lawClerk = 5;\r\n this.fail = 0;\r\n this.submit = 5;\r\n this.reject = 4;\r\n }\r\n if (id == 0) {\r\n this.await = 60;\r\n this.awaitCompilation = 20;\r\n this.lawClerk = 8;\r\n this.fail = 2;\r\n this.submit = 5;\r\n this.reject = 3;\r\n }\r\n }\r\n}\r\nexport class DateFilterModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardService {\r\n\r\n constructor(private _http: HttpClient) { }\r\n getDashboardCount(startDate, endDate, engagement) {\r\n let params = new HttpParams();\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n\r\n if (engagement) {\r\n params = params.append('engagement', engagement);\r\n }\r\n //?startDate=' + startDate + '&endDate=' + endDate + '&engagement=' + engagement\r\n return this._http.get(environment.ApiUrl + 'Dashboard/GetDashboardCount', { params: params });\r\n }\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, ViewChild, ElementRef, Output, EventEmitter, OnChanges } from '@angular/core';\r\nimport {DashboardView} from '../awaitdocextraction/model/dashboardview';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { DetailedViewService } from 'src/app/immigrationcompilation/detailedview/service/detailedview.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n@Component({\r\n selector: 'app-detailedview',\r\n templateUrl: './detailedview.component.html',\r\n styleUrls: ['./detailedview.component.scss']\r\n})\r\nexport class DetailedviewComponent implements OnInit {\r\n public data: any[];\r\n public selectedStatus = 0;\r\n public parentBnfId: number;\r\n public parentZoomId: number;\r\n public applicantType: string;\r\n public time:number;\r\n public requestType: string;\r\n public caseType: string;\r\n public insZoomId: string;\r\n public isLast: boolean;\r\n public detailsList: any[];\r\n public statusMaster: any[];\r\n public isPageReady = true;\r\n public action=\"Time Spent\";\r\n take: number;\r\n public id;\r\n public gridHeight = {\r\n height: 'calc(100vh - 220px)'\r\n };\r\n constructor(private route: ActivatedRoute, private router: Router, private location: Location, \r\n private notifier: NotifierService, private detailedService: DetailedViewService) { }\r\n ngOnInit(): void {\r\n this.route.params.subscribe((params) => {\r\n this.parentBnfId = params['parentBnfId'];\r\n this.applicantType = params['applicantType'];\r\n this.requestType = params['requestType'];\r\n this.caseType = params['caseType'];\r\n this.insZoomId = params['insZoomId'];\r\n this.isLast = params['isLast'];\r\n this.id = params['Id'];\r\n });\r\n this.LoadStatusMaster();\r\n //this.refreshDetailsList();\r\n this.GetChecklistWithID();\r\n }\r\n refreshDetailsList() {\r\n this.isPageReady=false;\r\n this.detailedService.getAIResult(this.insZoomId).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.detailsList = data;\r\n this.isPageReady=true;\r\n },\r\n (error) => {\r\n this.isPageReady=true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n cancelClick() {\r\n this.location.back();\r\n }\r\nupdateCase(detailedView: any, statusId: any) {\r\ndetailedView = JSON.stringify(detailedView);\r\nconsole.log(detailedView);\r\nthis.detailedService.updateCase(detailedView, this.insZoomId, statusId.value,this.time).subscribe((data: any) => {\r\n this.location.back();\r\n this.notifier.notify('success', 'Case Id is updated with entered remarks and status');\r\n console.log(this.detailsList);\r\n},\r\n(error) => {\r\n this.notifier.notify('error', 'Error occured while updating data to the server');\r\n}\r\n);\r\n}\r\nLoadStatusMaster() {\r\n this.detailedService.getStatusMaster().subscribe((statusresult: any[]) => {\r\n this.statusMaster = statusresult;\r\n }, error => {console.error(error); console.log('error'); });\r\n}\r\n// valueChange($event: any, dataItem: any) {\r\n// var remarks = $event.target.value;\r\n// this.detailsList[0].gridView[0].gridView.find(x => x.id == dataItem.id).remarks = remarks;\r\n// }\r\n public fetchChildren = (item: any): any[] => {\r\n var result = item.gridView;\r\n if (item.gridView.length > 1 && item.gridView.find(x => x.fileNames == \"Not Found\")) {\r\n result = item.gridView.filter(x => x.fileNames != \"Not Found\")\r\n }\r\n return result;\r\n}\r\n\r\npublic hasChildren = (item: any): boolean => {\r\n return item.gridView && item.gridView.length > 0;\r\n}\r\n GetChecklistWithID() {\r\n this.isPageReady = false;\r\n this.detailedService.GetChecklistWithID(this.id).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.detailsList = data;\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n\r\n UpdateCompilationRemarks(detailedView: any, statusId: any) {\r\n detailedView = JSON.stringify(detailedView);\r\n this.detailedService.UpdateCompilationRemarks(detailedView, this.id, statusId.value, this.time).subscribe((data: any) => {\r\n this.location.back();\r\n this.notifier.notify('success', 'Case Id is updated with entered remarks and status');\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while updating data to the server');\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { NgModelGroup } from '@angular/forms';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DetailedViewService {\r\n // Initialize variables\r\n public headers = new HttpHeaders ({\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json'\r\n});\r\npublic options = {\r\n headers: this.headers\r\n};\r\n constructor(private _http: HttpClient) { }\r\n getAIResult(insZoomId: string) {\r\n return this._http.get(environment.ApiUrl + 'Dashboard/GetAIResult?insZoomId=' + insZoomId, {});\r\n }\r\n getStatusMaster() {\r\n return this._http.get(environment.ApiUrl + 'Dashboard/getStatusMaster', {});\r\n }\r\n updateCase( model: any, insZoomId: any, statusId: any,time:number) {\r\n return this._http.post(environment.ApiUrl + 'Dashboard/UpdateCase?insZoomId=' + insZoomId + '&statusId=' + statusId +'&time=' +time,\r\n model , this.options);\r\n }\r\n GetChecklistWithID(id: string) {\r\n return this._http.get(environment.ApiUrl + 'Dashboard/GetChecklistWithID?id=' + id, {});\r\n }\r\n UpdateCompilationRemarks(model: any, id: any, statusId: any, time: number) {\r\n return this._http.post(environment.ApiUrl + 'Dashboard/UpdateCompilationRemarks?id=' + id + '&statusId=' + statusId + '&time=' + time,\r\n model, this.options);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { AddLCAService } from '../add-lca/service/add-lca.service';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NotificationService } from \"@progress/kendo-angular-notification\";\r\nimport { FinalDetermination } from '../lca-compliance/model/Lca.model';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-edit-internal-work-site-info',\r\n templateUrl: './edit-internal-work-site-info.component.html',\r\n styleUrls: ['./edit-internal-work-site-info.component.scss']\r\n})\r\nexport class EditInternalWorkSiteInfoComponent implements OnInit {\r\n @ViewChild('openLCAModalButton', { static: false }) openEditModalButton: ElementRef;\r\n @Input() workSiteDetails: any[] = [];\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public workSiteData=[];\r\n public showData=false;\r\n public LCAData=[];\r\n public newWorkSites=[];\r\n public gridView2:any;\r\n public gridView:any;\r\n public RecommendedOutput=\"\";\r\n public isPageReady = false;\r\n private hideAfter = 4000;\r\n public CaseId=\"\";\r\n public Department=\"\";\r\n public Corporation=\"\";\r\n public Description=\"\";\r\n public employeeId=\"\";\r\n public attorneyList = [];\r\n public caseManagerList = [];\r\n public determination=\"\";\r\n public attorney = \"\";\r\n public caseManager = \"\";\r\n public determinationList = [\"No Action Required\", \"LCA Re-Posting Required\", \"H-1B Amendment Required\",\"More Info Required\"]\r\n public individualName=\"\";\r\n public requestId=\"\";\r\n public Remarks=\"\";\r\n public clerkRemarks=\"\";\r\n public status = \"submitted\";\r\n public selectedLCA: any = [];\r\n public jobTitle: any = \"\";\r\n public degree: any = \"\";\r\n public socCode: any = \"\";\r\n public wageLevel: any = \"\";\r\n public activeLCAData = [];\r\n public worksiteCaseId = \"\";\r\n constructor(public addLCAService: AddLCAService,private router: Router,private route: ActivatedRoute,@Inject(NotificationService) private notificationService: NotificationService) { }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.requestId = params['requestId'];\r\n this.status = params['status'];\r\n if(this.requestId!=\"\"){\r\n // Loads data to grid\r\n this.GetWorkSiteData(this.requestId);\r\n this.getLawyerList();\r\n this.getCaseManagerList();\r\n this.getActiveLCA();\r\n }\r\n });\r\n }\r\n\r\n\r\n Save(){\r\n if(this.determination!=this.RecommendedOutput && this.Remarks.trim()==\"\"){\r\n this.invalidMessage(\"Please ensure to fill all the mandatory fields\");\r\n }\r\n else if (this.determination == 'H-1B Amendment Required' && (this.jobTitle.trim() == \"\" || this.degree.trim() == \"\" || this.socCode.trim() == \"\" || this.wageLevel.trim() == \"\")) {\r\n this.invalidMessage(\"Please ensure to fill all the mandatory fields\");\r\n }\r\n else{\r\n var finalDetermination = new FinalDetermination();\r\n finalDetermination.finalDeterminations=this.determination;\r\n finalDetermination.lawyer=this.attorney;\r\n finalDetermination.remarks=this.Remarks;\r\n finalDetermination.requestId = this.requestId;\r\n finalDetermination.caseManager = this.caseManager;\r\n finalDetermination.jobTitle = this.jobTitle;\r\n finalDetermination.degree = this.degree;\r\n finalDetermination.socCode = this.socCode;\r\n finalDetermination.wageLevel = this.wageLevel;\r\n \r\n this.addLCAService.saveFinalDetermination(finalDetermination).subscribe((data: any) => {\r\n if(data){\r\n this.router.navigate(['/EyLca'], { queryParams: { status: this.status } })\r\n }\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n });\r\n }\r\n }\r\n\r\n approveReposting() {\r\n let wsMissingLcaCount = this.gridView.data.filter(x => x.lcaNumber == null || x.lcaNumber.trim() == '').length;\r\n if (wsMissingLcaCount > 0) {\r\n this.invalidMessage(\"Please update LCA number for all new worksites\");\r\n }\r\n else if(this.clerkRemarks.trim()==\"\"){\r\n this.invalidMessage(\"Please ensure to fill all the mandatory fields\");\r\n }\r\n \r\n else{\r\n this.addLCAService.updateRepostStatus(this.requestId,this.clerkRemarks).subscribe((data: any) => {\r\n if(data){\r\n this.router.navigate(['/EyLca'], { queryParams: { status: this.status } })\r\n }\r\n });\r\n }\r\n }\r\n\r\n Cancel(){\r\n this.router.navigate(['/EyLca'], { queryParams: { status: this.status } });\r\n }\r\n\r\n getLawyerList() {\r\n\r\n this.addLCAService.getLawyerList().subscribe((data: any) => {\r\n if (data && data.length > 0) {\r\n this.attorneyList = data;\r\n //data.forEach(element => {\r\n // this.attorneyList.push(element.lawyerName);\r\n //});\r\n }\r\n });\r\n }\r\n\r\n\r\n Approve(){\r\n if(this.determination!=\"\"&&this.determination!=this.RecommendedOutput){\r\n this.invalidMessage(\"Cannot Approve request with final determination option other than Recommended Determination\");\r\n\r\n }\r\n\r\n }\r\n\r\n Reject(){\r\n if(this.determination!=\"\"&&this.determination==this.RecommendedOutput){\r\n this.invalidMessage(\"Cannot Reject Request with Same Determination as Recommended Determination\")\r\n \r\n }\r\n else if(this.Remarks.trim()==\"\"){\r\n this.invalidMessage(\"Please ensure to fill all the mandatory fields\");\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n invalidMessage(dataToShow){\r\n this.notificationService.show({\r\n content: dataToShow,\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n\r\n \r\n GetWorkSiteData(requestId) {\r\n\r\n this.addLCAService.GetWorkSiteDeterminationDetails(requestId).subscribe((data: any) => {\r\n this.workSiteData=data;\r\n this.newWorkSites=data.workSiteData;\r\n this.LCAData=data.lcaHistory;\r\n this.RecommendedOutput=data.recommendedOutput;\r\n this.requestId=data.ticketNumber;\r\n this.employeeId=data.employeeId;\r\n this.Department =data.department;\r\n this.Description=data.description;\r\n this.individualName=data.individualName;\r\n this.Corporation=data.corporation;\r\n this.CaseId=data.caseId;\r\n this.attorney = data.attorney;\r\n this.caseManager = data.caseManager;\r\n this.determination=data.finalDetermination;\r\n this.isPageReady=true;\r\n this.Remarks=data.remarks;\r\n this.gridView = process(this.newWorkSites, this.gridState);\r\n this.gridView2 = process(this.LCAData, this.gridState);\r\n this.showData=true;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n editUser(worksite:any, rowIndex: number) {\r\n //lcaData[\"index\"] = rowIndex;\r\n let obj = [];\r\n obj[\"worksite\"] = worksite;\r\n obj[\"requestID\"] = this.requestId;\r\n obj[\"caseID\"] = this.CaseId;\r\n obj[\"applicantName\"] = this.individualName;\r\n obj[\"corporation\"] = this.Corporation;\r\n obj[\"department\"] = this.Department;\r\n obj[\"lcaList\"] = [];\r\n if (this.LCAData.length > 0) {\r\n let unique = [...new Set(this.LCAData.map(x => x.lcA_Number))];\r\n obj[\"lcaList\"] = unique;\r\n }\r\n this.selectedLCA = obj;\r\n this.openEditModalButton.nativeElement.click();\r\n }\r\n\r\n refreshPage() {\r\n this.GetWorkSiteData(this.requestId);\r\n }\r\n\r\n getCaseManagerList() {\r\n\r\n this.addLCAService.getCaseManagerList().subscribe((data: any) => {\r\n if (data && data.length > 0) {\r\n this.caseManagerList = data;\r\n //data.forEach(element => {\r\n // this.caseManagerList.push(element);\r\n //});\r\n }\r\n });\r\n }\r\n\r\n getActiveLCA() {\r\n\r\n this.addLCAService.getActiveLCA(this.requestId).subscribe((data: any) => {\r\n if (data && data.length > 0) {\r\n this.activeLCAData = data;\r\n\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LCAService } from '../lca-compliance/service/lca.service';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\n\r\n@Component({\r\n selector: 'app-ey-lcaassessment',\r\n templateUrl: './ey-lcaassessment.component.html',\r\n styleUrls: ['./ey-lcaassessment.component.scss']\r\n})\r\nexport class EyLCAAssessmentComponent implements OnInit {\r\n public current = 0;\r\n public userList: any[] = [];\r\n public sourceUserList:any[]=[];\r\n roleData:any[]=[];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public status='submitted'\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private readonly notifier: NotifierService;\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public searchTerm = '';\r\n public TemplateHeader=\"\";\r\n dateFilterModel: DateFilterModel;\r\n\r\n public steps = [\r\n { label: 'Search Page', icon: 'user' },\r\n { label: 'LCA Assessment Review', icon: 'dictionary-add' },\r\n { label: 'Reposting Tracker', icon: 'attachment' },\r\n\r\n ];\r\n constructor(private lcaService: LCAService,private route: ActivatedRoute,private router: Router) {\r\n this.allData = this.allData.bind(this);\r\n this.dateFilterModel = new DateFilterModel(new Date(2021, 0, 1), new Date());\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.status = params['status'];\r\n if(this.status){\r\n if (this.status ==\"More Info Required\"){\r\n this.TemplateHeader = \"More Info Required Request Details\";\r\n }\r\n else{\r\n this.TemplateHeader = this.status+\" Request Details\";\r\n }\r\n // Loads data to grid\r\n this.dataStateChange(this.gridState,this.status);\r\n }\r\n })\r\n \r\n }\r\n\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.userList\r\n };\r\n \r\n return result;\r\n }\r\n\r\n editInternalData(workSite: any) {\r\n this.router.navigate(['/editInternalEY'], { queryParams: { requestId: workSite.requestId,status:this.status } })\r\n }\r\n\r\n GotoBack(){\r\n this.router.navigate(['/internalLca'])\r\n }\r\n\r\n\r\n\r\n updateUserList() {\r\n this.dataStateChange(this.gridState,this.status);\r\n }\r\n dataStateChange(state: DataStateChangeEvent,status:string) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n\r\n // Gets data from api\r\n this.sourceUserList=[];\r\n this.lcaService.searchWorkSite(this.searchTerm, this.status, this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n //this.gridViewSearch = data;\r\n //this.sourceUserList=data;\r\n //let filterData = this.gridViewSearch;\r\n\r\n this.gridView = process(data, this.gridState);\r\n //this.gridView = {\r\n // data: data.slice(this.skip, this.skip + this.pageSize),\r\n // total: data.length\r\n //};\r\n //this.gridViewSearch = data.map(x => Object.assign({}, x));\r\n //debugger;\r\n //this.userList = data;\r\n //this.isPageReady = true;\r\n \r\n this.userList = data;\r\n\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = [];\r\n if (this.status == \"Submitted\") {\r\n filterData = this.userList.filter(r => r.requestDate.toString().includes(filterValue) ||\r\n (r.corporation == null ? \"\".toString().includes(filterValue) : r.corporation.toLowerCase().includes(filterValue)) ||\r\n (r.department == null ? \"\".toString().includes(filterValue) : r.department.toLowerCase().includes(filterValue)) ||\r\n (r.caseId == null ? \"\".toString().includes(filterValue) : r.caseId.toLowerCase().includes(filterValue)) ||\r\n r.requestId.toLowerCase().includes(filterValue) ||\r\n (r.fullName == null ? \"\".toString().includes(filterValue) : r.fullName.toLowerCase().includes(filterValue)) ||\r\n (r.caseManager == null ? \"\".toString().includes(filterValue) : r.caseManager.toLowerCase().includes(filterValue)) ||\r\n (r.attorney == null ? \"\".toString().includes(filterValue) : r.attorney.toLowerCase().includes(filterValue)) ||\r\n (r.description == null ? \"\".toString().includes(filterValue) : r.description.toLowerCase().includes(filterValue))\r\n );\r\n }\r\n else {\r\n filterData = this.userList.filter(r => r.requestDate.toString().includes(filterValue) ||\r\n (r.corporation == null ? \"\".toString().includes(filterValue) : r.corporation.toLowerCase().includes(filterValue)) ||\r\n (r.department == null ? \"\".toString().includes(filterValue) : r.department.toLowerCase().includes(filterValue)) ||\r\n (r.caseId == null ? \"\".toString().includes(filterValue) : r.caseId.toLowerCase().includes(filterValue)) ||\r\n r.requestId.toLowerCase().includes(filterValue) ||\r\n (r.fullName == null ? \"\".toString().includes(filterValue) : r.fullName.toLowerCase().includes(filterValue)) ||\r\n (r.caseManager == null ? \"\".toString().includes(filterValue) : r.caseManager.toLowerCase().includes(filterValue)) ||\r\n (r.attorney == null ? \"\".toString().includes(filterValue) : r.attorney.toLowerCase().includes(filterValue)));\r\n }\r\n\r\n \r\n \r\n this.gridView.data = filterData.slice(this.skip, this.skip + this.pageSize);\r\n this.gridView.total = filterData.length;\r\n \r\n }\r\n\r\n applyDateFilter() {\r\n this.dataStateChange(this.gridState, this.status);\r\n }\r\n\r\n resetFilter() {\r\n this.dateFilterModel = new DateFilterModel(new Date(2022, 0, 1), new Date());\r\n this.dataStateChange(this.gridState, this.status);\r\n }\r\n}\r\nexport class DateFilterModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { AccessDeniedComponent } from './shared/components/access-denied/access-denied.component';\r\nimport { UsermanagementComponent } from './usermanagement/usermanagement.component';\r\nimport { AwaitdocextractionComponent } from './awaitdocextraction/awaitdocextraction.component';\r\nimport { AwaitcompilationComponent } from './awaitcompilation/awaitcompilation.component';\r\nimport { CompilationfailedComponent } from '../immigrationcompilation/compilationfailed/compilationfailed.component';\r\nimport {CompilationrejectedComponent} from '../immigrationcompilation/compilationrejected/compilationrejected.component';\r\nimport { AwaitlawclerkreviewComponent } from '../immigrationcompilation/awaitlawclerkreview/awaitlawclerkreview.component'; \r\nimport { SubmittedtolawyerComponent } from '../immigrationcompilation/submittedtolawyer/submittedtolawyer.component';\r\nimport { DetailedviewComponent } from '../immigrationcompilation/detailedview/detailedview.component';\r\nimport { CourierPackageComponent } from './courier-package/courier-package.component';\r\nimport { CourierpackageSuccessComponent } from './courier-package/courierpackage-success/courierpackage-success.component';\r\nimport { CourierpackageFailureComponent } from './courier-package/courierpackage-failure/courierpackage-failure.component';\r\nimport { AuthGuard } from '../core/guards/auth.guard';\r\nimport { LawyerEmailComponent } from './lawyer-email/lawyer-email.component';\r\nimport { MainPageComponent } from './main-page/main-page.component';\r\nimport { LcaComplianceComponent } from './lca-compliance/lca-compliance.component';\r\nimport { AddLcaComponent } from './add-lca/add-lca.component';\r\nimport { WorkSiteAcknowledgeComponent } from './work-site-acknowledge/work-site-acknowledge.component';\r\nimport { LcaHomeComponent } from './lca-home/lca-home.component';\r\nimport { EyLCAAssessmentComponent } from './ey-lcaassessment/ey-lcaassessment.component';\r\nimport { LcaDeterminationComponent } from './lca-determination/lca-determination.component';\r\nimport { LcaInternalDashboardComponent } from './lca-internal-dashboard/lca-internal-dashboard.component';\r\nimport { EditInternalWorkSiteInfoComponent } from './edit-internal-work-site-info/edit-internal-work-site-info.component';\r\nimport { RepostingCompletedComponent } from './reposting-completed/reposting-completed.component';\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'home', pathMatch: 'full', data: { breadcrumb: 'Home' } },\r\n { path: 'dashboard', component: DashboardComponent, canActivate: [MsalGuard,AuthGuard], data: { breadcrumb: 'Immigration Home' } },//, canActivate: [MsalGuard]\r\n\r\n {\r\n path: 'user-management',\r\n component: UsermanagementComponent, canActivate: [MsalGuard, AuthGuard],data: { breadcrumb: 'User' }\r\n },\r\n {\r\n path: 'lcaCompliance',\r\n component: LcaComplianceComponent, canActivate: [MsalGuard], data: { breadcrumb: 'LCA Compliance' }\r\n },\r\n {\r\n path: 'lcaHome',\r\n component: LcaHomeComponent, canActivate: [MsalGuard], data: { breadcrumb: 'LCA Home' }\r\n },\r\n {\r\n path: 'addLca',\r\n component: AddLcaComponent, canActivate: [MsalGuard], data: { breadcrumb: 'Add LCA' }\r\n },\r\n {\r\n path: 'EyLca',\r\n component: EyLCAAssessmentComponent, canActivate: [MsalGuard], data: { breadcrumb: 'Inernal LCA Assessment' }\r\n },\r\n {\r\n path: 'Repostings',\r\n component: RepostingCompletedComponent, canActivate: [MsalGuard], data: { breadcrumb: 'Inernal LCA Assessment' }\r\n },\r\n {\r\n path: 'editInternalEY',\r\n component: EditInternalWorkSiteInfoComponent, canActivate: [MsalGuard], data: { breadcrumb: 'Edit LCA' }\r\n },\r\n {\r\n path: 'delermination',\r\n component: LcaDeterminationComponent, canActivate: [MsalGuard], data: { breadcrumb: 'LCA Determination' }\r\n },\r\n {\r\n path:'internalLca',\r\n component:LcaInternalDashboardComponent,canActivate: [MsalGuard], data: { breadcrumb: 'Internal LCA' }\r\n },\r\n\r\n \r\n {\r\n path: 'lawyer-management',\r\n component: LawyerEmailComponent, canActivate: [MsalGuard, AuthGuard], data: { breadcrumb: 'Lawyer Management' }\r\n },\r\n { path: 'accessdenied', component: AccessDeniedComponent, data: { breadcrumb: 'Access Denied' }},\r\n { path: 'home', component: MainPageComponent,canActivate: [MsalGuard],data: { breadcrumb: 'Home' } },\r\n { path: 'awaitdocextract', component: AwaitdocextractionComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Await Doc Extract' } },\r\n { path: 'awaitcompilation', component: AwaitcompilationComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Await Compilation' } },\r\n { path: 'compilationfailed', component: CompilationfailedComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Compilation Failed' } },\r\n { path: 'awaitlawclerkreview', component: AwaitlawclerkreviewComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Await Law ClerkReview' } },\r\n { path: 'submittedtolawyer', component: SubmittedtolawyerComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Submitted to Lawyer' } },\r\n { path: 'compilationrejected', component: CompilationrejectedComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Compilation Rejected' } },\r\n { path: 'courierpackage', component:CourierPackageComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Courier Package' } },\r\n { path: 'courierpackageSuccess', component:CourierpackageSuccessComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Courier Package Success' } },\r\n { path: 'courierpackageFailure', component:CourierpackageFailureComponent,canActivate: [ AuthGuard],data: { breadcrumb: 'Courier Package Failure' } },\r\n { path: 'courierpackagePendings', component: CourierpackageFailureComponent, canActivate: [AuthGuard], data: { breadcrumb: 'Courier Package Pending' } },\r\n { path: 'courierpackageAccessFailure', component: CourierpackageFailureComponent, canActivate: [AuthGuard], data: { breadcrumb: 'Courier Package Access Failure' } },\r\n { path: 'lcaAcknowledge', component:WorkSiteAcknowledgeComponent, canActivate: [MsalGuard],data: { breadcrumb: 'LCA Acknowledge' } }, \r\n { path: 'detailedview/:Id/:applicantType/:requestType/:caseType/:insZoomId/:isLast', component: DetailedviewComponent }\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n RouterModule.forChild(routes)\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class ImmigrationcompilationRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { ImmigrationcompilationRoutingModule } from './immigrationcompilation-routing.module';\r\nimport { DialogModule } from '@progress/kendo-angular-dialog';\r\nimport { ModaldesignComponent } from './modaldesign/modaldesign.component';\r\nimport { UsermanagementComponent } from './usermanagement/usermanagement.component';\r\nimport { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { EdituserComponent } from './usermanagement/edituser/edituser.component';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FloatingLabelModule } from '@progress/kendo-angular-label';\r\nimport { TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { AccessDeniedComponent } from './shared/components/access-denied/access-denied.component';\r\nimport { AwaitdocextractionComponent } from './awaitdocextraction/awaitdocextraction.component';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport { DatePickerModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { DocumentchklistComponent } from './awaitdocextraction/documentchklist/documentchklist.component';\r\nimport { AwaitcompilationComponent } from './awaitcompilation/awaitcompilation.component';\r\nimport { CompilationfailedComponent } from './compilationfailed/compilationfailed.component';\r\nimport { CompilationrejectedComponent } from './compilationrejected/compilationrejected.component';\r\nimport { SubmittedtolawyerComponent } from './submittedtolawyer/submittedtolawyer.component';\r\nimport { AwaitlawclerkreviewComponent } from './awaitlawclerkreview/awaitlawclerkreview.component';\r\nimport { DetailedviewComponent } from './detailedview/detailedview.component';\r\nimport { CourierPackageComponent } from './courier-package/courier-package.component';\r\nimport { CourierpackageSuccessComponent } from './courier-package/courierpackage-success/courierpackage-success.component';\r\nimport { CourierpackageFailureComponent } from './courier-package/courierpackage-failure/courierpackage-failure.component';\r\nimport { DocumentExtractionInfoComponent } from './courier-package/courierpackage-success/document-extraction-info/document-extraction-info.component';\r\nimport { DatePipe } from '@angular/common';\r\nimport { LawyerEmailComponent } from './lawyer-email/lawyer-email.component'\r\nimport { EditLawyerComponent } from './lawyer-email/editlawyer/editLawyer.component';\r\nimport { RoleViewComponent } from './usermanagement/role-view/role-view.component';\r\nimport { MainPageComponent } from './main-page/main-page.component';\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\nimport { LcaComplianceComponent } from './lca-compliance/lca-compliance.component';\r\nimport { EditLcaComplianceComponent } from './lca-compliance/edit-lca-compliance/edit-lca-compliance.component';\r\nimport { AddLcaComponent } from './add-lca/add-lca.component';\r\nimport { WorkSiteAcknowledgeComponent } from './work-site-acknowledge/work-site-acknowledge.component';\r\nimport { LcachklistComponent } from './lcachklist/lcachklist.component';\r\nimport { ListViewModule } from \"@progress/kendo-angular-listview\";\r\nimport { LcaHomeComponent } from './lca-home/lca-home.component';\r\nimport { IconsModule } from \"@progress/kendo-angular-icons\";\r\nimport { LcaHomeInfoComponent } from './lca-home-info/lca-home-info.component';\r\nimport { EyLCAAssessmentComponent } from './ey-lcaassessment/ey-lcaassessment.component';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport { LcaDeterminationComponent } from './lca-determination/lca-determination.component';\r\nimport { LcaReviewComponent } from './lca-review/lca-review.component';\r\nimport { AwaitLCADeterminationComponent } from './await-lcadetermination/await-lcadetermination.component';\r\nimport { NotificationModule } from \"@progress/kendo-angular-notification\";\r\nimport { LcaInternalDashboardComponent } from './lca-internal-dashboard/lca-internal-dashboard.component';\r\nimport { EditInternalWorkSiteInfoComponent } from './edit-internal-work-site-info/edit-internal-work-site-info.component';\r\nimport { NavigationModule } from \"@progress/kendo-angular-navigation\";\r\nimport { RepostingCompletedComponent } from './reposting-completed/reposting-completed.component';\r\nimport { UpdateLcaModalComponent } from './update-lca-modal/update-lca-modal.component';\r\n\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [DashboardComponent, ModaldesignComponent, UsermanagementComponent, EdituserComponent,MainPageComponent,\r\n AccessDeniedComponent, AwaitdocextractionComponent, DocumentchklistComponent, AwaitcompilationComponent, CompilationfailedComponent, CompilationrejectedComponent, SubmittedtolawyerComponent, AwaitlawclerkreviewComponent, DetailedviewComponent, CourierPackageComponent, CourierpackageSuccessComponent, CourierpackageFailureComponent, DocumentExtractionInfoComponent, LawyerEmailComponent,EditLawyerComponent, RoleViewComponent, LcaComplianceComponent, EditLcaComplianceComponent, AddLcaComponent, WorkSiteAcknowledgeComponent, LcachklistComponent, LcaHomeComponent, LcaHomeInfoComponent, EyLCAAssessmentComponent, LcaDeterminationComponent, LcaReviewComponent, AwaitLCADeterminationComponent, LcaInternalDashboardComponent, EditInternalWorkSiteInfoComponent, RepostingCompletedComponent, UpdateLcaModalComponent],\r\n imports: [\r\n CommonModule,\r\n DialogModule,\r\n ExcelModule,\r\n ImmigrationcompilationRoutingModule,\r\n GridModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DropDownsModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FloatingLabelModule,\r\n TextBoxModule,\r\n InputsModule,\r\n TreeViewModule,\r\n TreeListModule,\r\n DatePickerModule,\r\n LayoutModule,\r\n DateInputsModule,\r\n ListViewModule,\r\n NotificationModule,\r\n IconsModule,\r\n MatAutocompleteModule,\r\n NavigationModule,\r\n NgMultiSelectDropDownModule.forRoot()\r\n ],\r\n providers:[DatePipe]\r\n})\r\nexport class ImmigrationcompilationModule { }\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { Lawyer } from '../model/lawyer';\r\nimport { LawyerService } from 'src/app/immigrationcompilation/lawyer-email/service/lawyer.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { DateTimePickerModule } from '@progress/kendo-angular-dateinputs/dist/es2015/datetimepicker/datetimepicker.module';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { InsertLawyer } from '../model/insertLawyer';\r\n@Component({\r\n selector: 'app-editLawyer',\r\n templateUrl: './editLawyer.component.html',\r\n styleUrls: ['./editLawyer.component.scss']\r\n})\r\nexport class EditLawyerComponent implements OnInit {\r\n @Input() lawyer: Lawyer;\r\n @Output() updateLawyerList = new EventEmitter();\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n @ViewChild('addcloseButton', {static: false}) addcloseButton: ElementRef;\r\n @ViewChild('autocomplete' , {static: false}) autocomplete: any;\r\n @ViewChild('notification', {static: false}) customNotificationTmpl;\r\n errorMessage: string;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private notifier: NotifierService;\r\n public selectedRole = 0;\r\n public editlawyerDetails: Lawyer;\r\n public addLawyerDetails: Lawyer;\r\n public lawyerId: number;\r\n public addLawyerMail: string;\r\n public addLawyerName: string;\r\n constructor(\r\n private lawyerService: LawyerService,\r\n notifierService: NotifierService\r\n ) {\r\n this.notifier = notifierService;\r\n }\r\n\r\n ngOnInit() {\r\n // console.log(this.user);\r\n }\r\n\r\n closeForm() {\r\n const closeButton: HTMLElement = this.closeButton\r\n .nativeElement as HTMLElement;\r\n closeButton.click();\r\n}\r\naddcloseForm() {\r\n this.addLawyerMail = '';\r\n this.addLawyerName = '';\r\n this.selectedRole = 0;\r\n const addcloseButton: HTMLElement = this.addcloseButton\r\n .nativeElement as HTMLElement;\r\n addcloseButton.click();\r\n}\r\neditLawyer(editLawyerForm: NgForm) {\r\n this.lawyerId = this.lawyer.lawyerId;\r\n this.editlawyerDetails = editLawyerForm.value;\r\n this.editlawyerDetails.email = editLawyerForm.controls['email'].value;\r\n this.editlawyerDetails.name = editLawyerForm.controls['firstName'].value;\r\n this.editlawyerDetails.lawyerId = this.lawyerId;\r\n this.lawyerService.editLawyer(this.lawyerId, this.editlawyerDetails.email,this.editlawyerDetails.name).subscribe((data: any) => {\r\n this.closeForm();\r\n this.updateLawyerList.emit(true);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while updating the Lawyer details');\r\n }\r\n );\r\n}\r\naddLawyer(addLawyerForm: NgForm) {\r\n this.addLawyerDetails = addLawyerForm.value;\r\n this.addLawyerDetails.email = addLawyerForm.controls['email'].value;\r\n this.addLawyerDetails.name = addLawyerForm.controls['name'].value;\r\n var lawyers=new InsertLawyer();\r\n \r\n lawyers.name=this.addLawyerDetails.name;\r\n lawyers.email=this.addLawyerDetails.email;\r\n this.lawyerService.addLawyer(lawyers).subscribe((data: any) => {\r\n if (data.message.includes('exists')) {\r\n this.notifier.notify('error', 'Lawyer already exists');\r\n this.errorMessage = 'Lawyer details already exists';\r\n addLawyerForm.resetForm();\r\n this.selectedRole = 0;\r\n } else {\r\n this.addLawyerMail = '';\r\n this.addLawyerName = '';\r\n this.selectedRole = 0;\r\n addLawyerForm.resetForm();\r\n this.addcloseForm();\r\n this.updateLawyerList.emit(true);\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while saving the Lawyer details');\r\n }\r\n );\r\n}\r\n\r\n selectAddLawyerDetails(email: any) {\r\n this.addLawyerMail = email.mail;\r\n this.addLawyerName = email.displayName;\r\n}\r\n}\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Lawyer } from './model/lawyer';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { LawyerService } from './service/lawyer.service';\r\nimport { process } from '@progress/kendo-data-query';\r\n\r\n\r\n@Component({\r\n selector: 'app-lawyer-email',\r\n templateUrl: './lawyer-email.component.html',\r\n styleUrls: ['./lawyer-email.component.scss']\r\n})\r\nexport class LawyerEmailComponent implements OnInit {\r\n @ViewChild('openEditModalButton', { static: false }) openEditModalButton: ElementRef;\r\n public selectedLawyer: Lawyer = new Lawyer();\r\n public deleteId = 0;\r\n public searchTerm = '';\r\n public showConfirmation = false;\r\n public lawyerList: any[] = [];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public searchName = '';\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private readonly notifier: NotifierService;\r\n constructor(\r\n private lawyerService: LawyerService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n // Loads data to grid\r\n this.dataStateChange(this.gridState);\r\n }\r\n updateLawyerList() {\r\n this.dataStateChange(this.gridState);\r\n }\r\n dataStateChange(state: DataStateChangeEvent) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n // Gets data from api\r\n this.lawyerService.refreshLawyerList(this.searchTerm).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.gridViewSearch = data;\r\n\r\n let filterData = this.gridViewSearch.filter(r => r.name.toLowerCase().includes(this.searchName)\r\n || r.email.toLowerCase().includes(this.searchName));\r\n\r\n this.gridView = process(filterData, this.gridState);\r\n this.lawyerList = data;\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n deleteLawyer() {\r\n this.lawyerService.deleteLawyer(this.deleteId).subscribe((data: any) => {\r\n this.confirmationDialog(false, data);\r\n this.dataStateChange(this.gridState);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while deleting the lawyer from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n editLawyer(lawyer: Lawyer , edit: boolean) {\r\n this.selectedLawyer = Object.assign({}, lawyer);\r\n this.openEditModalButton.nativeElement.click();\r\n }\r\n confirmationDialog(open: boolean, data) {\r\n // Opens the confirmation dialog\r\n if (open) {\r\n this.showConfirmation = true;\r\n } else {\r\n this.showConfirmation = false;\r\n }\r\n // setting the delete ID to global variable\r\n if (data) {\r\n this.deleteId = data.lawyerId;\r\n } else {\r\n this.deleteId = 0;\r\n }\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = this.gridViewSearch.filter(r => r.name.toLowerCase().includes(filterValue)\r\n || r.email.toLowerCase().includes(filterValue));\r\n this.gridState.skip = 0;\r\n this.gridView = process(filterData, this.gridState);\r\n // console.log(this.gridView);\r\n }\r\n}\r\n","export class InsertLawyer {\r\n name: string;\r\n email: string;\r\n}","export class Lawyer {\r\n lawyerId: number;\r\n name: string;\r\n email: string;\r\n status: boolean;\r\n createdBy: string;\r\n createdDate: Date;\r\n modifiedBy: string;\r\n modifiedDate: Date;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Lawyer } from '../model/lawyer';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { InsertLawyer } from '../model/insertLawyer';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LawyerService {\r\n\r\n constructor(private _http: HttpClient) { }\r\n refreshLawyerList(searchTerm?: string) {\r\n return this.searchLawyer(searchTerm);\r\n }\r\n searchLawyer(searchTerm: string) {\r\n if (!searchTerm) {\r\n return this.getLawyers();\r\n } // else {\r\n // const urlString = `/client/search/${searchTerm}/`;\r\n // return ();\r\n // }\r\n }\r\n getLawyers() {\r\n return this._http.get(environment.ApiUrl + 'Lawyer/GetAllLawyers');\r\n }\r\n\r\n deleteLawyer(LawyerId: number) {\r\nreturn this._http.post(environment.ApiUrl + 'Lawyer/deleteLawyer?lawyerId=' + LawyerId , {});\r\n }\r\n editLawyer(lawyerId: number, email: string,name:string) {\r\n return this._http.post(environment.ApiUrl + 'Lawyer/EditLawyer?lawyerId=' + lawyerId + '&email=' + email + '&name=' +name, {});\r\n }\r\n addLawyer(lawyer:InsertLawyer) {\r\n return this._http.post(environment.ApiUrl + 'Lawyer/InsertLawyer',lawyer, {});\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, ViewChild, EventEmitter, ElementRef, Inject } from '@angular/core';\r\nimport { LcaData, WorkSiteData, MissingLCA } from '../model/Lca.model';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\r\nimport { LCAService } from '../service/lca.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { AddLCAService } from '../../add-lca/service/add-lca.service';\r\nimport { NotificationService } from '@progress/kendo-angular-notification';\r\nimport { FormBuilder, FormGroup, FormArray, FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-edit-lca-compliance',\r\n templateUrl: './edit-lca-compliance.component.html',\r\n styleUrls: ['./edit-lca-compliance.component.scss']\r\n})\r\nexport class EditLcaComplianceComponent implements OnInit {\r\n public Lcadata:WorkSiteData=new WorkSiteData();\r\n @Input() \r\n public set Lcadatas(val: any) {\r\n this.Lcadata = val;\r\n this.InitializeData(this.Lcadata);\r\n }\r\n \r\n @Output() updateLCAList = new EventEmitter();\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n @ViewChild('addcloseButton', {static: false}) addcloseButton: ElementRef;\r\n @ViewChild('notification', {static: false}) customNotificationTmpl;\r\n errorMessage: string;\r\n public editLcaForm: FormGroup;\r\n public searchDetails: any;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private notifier: NotifierService;\r\n public statesList=[];\r\n public zipcodeList=[];\r\n public state=\"\"\r\n public statesListSource=[];\r\n\r\n public startDate;\r\n public zipcodeSource=[];\r\n public disabled = true;\r\n public countydisabled=true;\r\n public citydisabled = true;\r\n public selectedType=[];\r\n public cityArray=[];\r\n public countyArray = [];\r\n public showConfirmation = false;\r\n public lcaNumber=\"\";\r\npublic expiryDate;\r\npublic zipCode=\"\";\r\npublic city=\"\";\r\npublic county=\"\";\r\npublic streetAddress=\"\";\r\n public isReady=false;\r\n public houseItems: Array = [\r\n \"Apt.\",\r\n \"Ste.\",\r\n \"Flr.\",\r\n \"Door\"\r\n ];\r\n public WorkSiteDetails:WorkSiteData[]=[];\r\n cityDataArray: any[]=[];\r\n private hideAfter = 2000;\r\n countyDataArray: any[]=[];\r\n constructor(\r\n private addLCAService: AddLCAService,\r\n notifierService: NotifierService,\r\n @Inject(NotificationService) private notificationService: NotificationService\r\n ) {\r\n this.notifier = notifierService;\r\n }\r\n\r\n ngOnInit() {\r\n this.GetStates();\r\n\r\n }\r\n\r\n optionalFormControls = [\"middleName\", \"signatoryName\", \"signatoryTitle\", \"signatoryTelephone\", \"apt\"];\r\n formErrors = {\r\n \r\n 'streetAddress': '',\r\n 'clientName': '',\r\n 'state': '',\r\n 'zipcode': '',\r\n 'startDate': '',\r\n 'workfrom': ''\r\n };\r\n\r\n validationMessages = {\r\n\r\n \r\n 'streetAddress': {\r\n 'required': 'Street Address is required.',\r\n },\r\n 'clientName': {\r\n 'required': 'Client Name is required.',\r\n },\r\n 'state': {\r\n 'required': 'State is required.',\r\n },\r\n 'zipcode': {\r\n 'required': 'Zipcode is required.',\r\n },\r\n\r\n 'startDate': {\r\n 'required': 'Start Date is required.',\r\n },\r\n 'workfrom': {\r\n 'required': 'Period of Work From is required.',\r\n },\r\n };\r\n\r\n\r\n closeForm() {\r\n\r\n const closeButton: HTMLElement = this.closeButton\r\n .nativeElement as HTMLElement;\r\n closeButton.click();\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nGetStates() {\r\n\r\n this.addLCAService.getStates().subscribe((data: any) => {\r\n this.statesList = data;\r\n this.statesListSource = data;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n}\r\n\r\nInitializeData(lcaData){\r\n this.addLCAService.GetZipcodes(lcaData.state).subscribe((data: any) => {\r\n this.zipcodeList = data;\r\n this.zipcodeSource = data;\r\n \r\n this.disabled = false;\r\n this.GetCountyInfo(lcaData.zipCode);\r\n });\r\n}\r\n\r\n\r\nGetZipcodes(event) { \r\n this.addLCAService.GetZipcodes(event).subscribe((data: any) => {\r\n this.zipcodeList = data;\r\n this.zipcodeSource = data;\r\n this.disabled = false;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n}\r\n\r\n\r\nGetCountyInfo(event) {\r\n this.cityArray=[];\r\n this.countyArray=[];\r\n \r\n this.addLCAService.GetCountyInfo(event).subscribe((data: any) => {\r\n var newData = data;\r\n if(newData.length>0){\r\n this.cityArray.push(\r\n newData[0].cityName\r\n );\r\n }\r\n if(this.cityArray.length>0)\r\n {\r\n this.citydisabled=false;\r\n }\r\n\r\n newData.forEach(element => {\r\n this.countyArray.push(\r\n element.countyName\r\n );\r\n });\r\n if(this.countyArray.length>0){\r\n this.countydisabled=false;\r\n }\r\n this.cityDataArray=this.cityArray;\r\n this.countyDataArray = this.countyArray;\r\n\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n}\r\n\r\npublic disabledDates = (date: Date): boolean => {\r\n return date <= new Date();\r\n}\r\n\r\npublic disabledEndDates = (date: Date): boolean => {\r\n return date <= this.startDate;\r\n}\r\n\r\nonEndDateChanges(event,index){\r\n if(this.Lcadata.addressType==\"Third Party Placement or Client Worksite\")\r\n {\r\n \r\n this.Lcadata.workTo=event;\r\n this.onEndDateChange(event);\r\n }\r\n else{\r\n this.Lcadata.workTo=null;\r\n }\r\n \r\n\r\n}\r\n\r\nonstartDateChanges(event){\r\n if(this.Lcadata.addressType==\"Third Party Placement or Client Worksite\")\r\n {\r\n this.Lcadata.workFrom=event;\r\n this.onStartsDateChange(event);\r\n }\r\n else{\r\n this.Lcadata.workFrom=null;\r\n }\r\n}\r\n\r\nonEndDateChange(event){\r\n var data=null;\r\n\r\n if(this.Lcadata.workTo!=null && this.Lcadata.workFrom!=null){\r\n data = Math.round((this.Lcadata.workTo.getDate() - this.Lcadata.workFrom.getDate()));\r\n }\r\n else{\r\n data=null;\r\n } \r\n this.Lcadata.toalDays=data;\r\n\r\n}\r\n\r\nonStartsDateChange(event){\r\n var data=null;\r\n\r\n if(this.Lcadata.workTo!=null && this.Lcadata.workFrom!=null){\r\n data = Math.round((this.Lcadata.workTo.getDate() - this.Lcadata.workFrom.getDate()));\r\n }\r\n else{\r\n data=null;\r\n } \r\n\r\n this.Lcadata.toalDays=data;\r\n}\r\n\r\npublic filterChange(filter: any): void {\r\n this.statesList= this.statesListSource.filter(\r\n (s) => s.states.toLowerCase().startsWith(filter.toLowerCase()) \r\n );\r\n}\r\n\r\npublic zipFilterChange(filter: any): void {\r\n this.zipcodeList = this.zipcodeSource.filter(\r\n (s) => s.zipcode.toString().startsWith(filter)\r\n );\r\n}\r\n\r\npublic cityFilterChange(filter: any): void {\r\n this.cityArray = this.cityDataArray.filter(\r\n (s) => s.city.toString().startsWith(filter)\r\n );\r\n}\r\n\r\npublic countyFilterChange(filter: any): void {\r\n this.countyArray = this.countyDataArray.filter(\r\n (s) => s.county.toString().startsWith(filter)\r\n );\r\n}\r\n\r\naddcloseForm() {\r\n this.Lcadata=new WorkSiteData();\r\n const addcloseButton: HTMLElement = this.addcloseButton\r\n .nativeElement as HTMLElement;\r\n addcloseButton.click();\r\n}\r\n\r\n public addLCA() {\r\n if (this.Lcadata.state == \"\" || this.Lcadata.startDate == null || this.Lcadata.zipCode == \"\" || this.Lcadata.streetAddress == \"\") {\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n else if (this.Lcadata.startDate && this.Lcadata.expiryDate && this.Lcadata.startDate > this.Lcadata.expiryDate) {\r\n this.notificationService.show({\r\n content: \"Please enter valid dates. End Date should be greather than or equal to Start Date.\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n else if(this.Lcadata.addressType==\"Third Party Placement or Client Worksite\" &&(this.Lcadata.workFrom==null||this.Lcadata.clientName==\"\")){\r\n this.notificationService.show({\r\n content: \"Please ensure to add all the required Data\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n \r\n }\r\n else if (this.Lcadata.addressType == \"Third Party Placement or Client Worksite\" && this.Lcadata.workFrom && this.Lcadata.workTo && this.Lcadata.workFrom > this.Lcadata.workTo) {\r\n this.notificationService.show({\r\n content: \"Please enter valid dates. Period of Work From should be greather than or equal to Period of Work To.\",\r\n position: { horizontal: \"right\", vertical: \"top\" },\r\n animation: { type: \"fade\", duration: 800 },\r\n type: { style: \"warning\", icon: true },\r\n hideAfter: this.hideAfter,\r\n });\r\n }\r\n else{\r\n this.updateLCAList.emit(this.Lcadata);\r\n this.addcloseForm();\r\n }\r\n}\r\n\r\n logValidationErrors(group: FormGroup = this.editLcaForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n // && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n logOnChangeValidationErrors(group: FormGroup = this.editLcaForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n if (abstractControl instanceof FormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n } else {\r\n this.formErrors[key] = '';\r\n if (abstractControl && !abstractControl.valid\r\n && (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter, Input } from '@angular/core';\r\nimport { LCAService } from './service/lca.service';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { LcaData } from './model/Lca.model';\r\nimport { Router } from '@angular/router';\r\nimport { formatDate } from '@angular/common';\r\nimport { AddLCAService } from '../add-lca/service/add-lca.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-lca-compliance',\r\n templateUrl: './lca-compliance.component.html',\r\n styleUrls: ['./lca-compliance.component.scss']\r\n})\r\nexport class LcaComplianceComponent implements OnInit {\r\n @ViewChild('openEditModalButton', { static: false }) openEditModalButton: ElementRef;\r\n public selectedCaseId=\"\";\r\n public deleteId = 0;\r\n public searchTerm = '';\r\n public showConfirmation = false;\r\n public userList: any[] = [];\r\n roleData:any[]=[];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public roleArray=[];\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public CaseDescription=\"\";\r\n public searchName = '';\r\n public caseStatus = '';\r\n public validDate = '';\r\n public approvedDate = '';\r\n public filedDate = '';\r\n public caseNumber = '';\r\n public userLists=[];\r\n public addl1=true;\r\n public userListSource=[];\r\n public enaggementName;\r\n public addl2=true;\r\n public OpenRoles=false;\r\n public email;\r\n public engagements=[];\r\n public engagementSource=[];\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private readonly notifier: NotifierService;\r\n profile: string=\"\";\r\n @Input() lcaType=\"\";\r\n @Output() page = new EventEmitter();\r\n @Output() changeNWSStepper = new EventEmitter();\r\n optionalFormControls = [\"middleName\", \"signatoryName\", \"signatoryTitle\", \"signatoryTelephone\", \"department\"];\r\n formErrors = {\r\n 'firstName': '',\r\n 'lastName': '',\r\n 'dateOfBirth': '',\r\n 'caseManager': '',\r\n 'caseAttorney': '',\r\n 'companyName': '',\r\n 'supportTeamMember': '',\r\n 'signatoryName': '',\r\n 'signatoryTitle': '',\r\n 'signatoryTelephone': '',\r\n 'signatoryEmail': '',\r\n 'signatoryStreetName': '',\r\n 'signatoryStreetNo': '',\r\n 'signatoryAptSteFlrDoorNo': '',\r\n 'signatoryCity': '',\r\n 'signatoryState': '',\r\n 'signatoryZipcode': '',\r\n 'department': '',\r\n 'employeeId': '',\r\n 'employeeEmail': '',\r\n 'expediteCase': '',\r\n 'reasonToExpediteCase': '',\r\n 'placeOnHold': '',\r\n 'reasonToDelayCase': '',\r\n 'notes': ''\r\n };\r\n validationMessages = {\r\n 'firstName': {\r\n 'required': 'First Name is required.',\r\n },\r\n 'lastName': {\r\n 'required': 'Last Name is required.',\r\n },\r\n 'dateOfBirth': {\r\n 'required': 'DOB is required.',\r\n },\r\n 'caseManager': {\r\n 'required': 'Case Manager is required.',\r\n },\r\n 'caseAttorney': {\r\n 'required': 'Case Attorney is required.',\r\n },\r\n 'companyName': {\r\n 'required': 'Company Name is required.',\r\n },\r\n 'supportTeamMember': {\r\n 'required': 'Support team member required.',\r\n },\r\n 'signatoryName': {\r\n 'required': 'Signatory Name is required.',\r\n },\r\n 'signatoryTitle': {\r\n 'required': 'Signotary Title is required.',\r\n },\r\n 'signatoryTelephone': {\r\n 'required': 'Signotary Telephone is required.',\r\n },\r\n 'signatoryEmail': {\r\n 'required': 'Signatory Email is required.',\r\n 'email': 'Please enter a valid email address'\r\n },\r\n 'signatoryStreetName': {\r\n 'required': 'Street Name is required.',\r\n },\r\n 'signatoryStreetNo': {\r\n 'required': 'Street number is required.',\r\n },\r\n 'signatoryAptSteFlrDoorNo': {\r\n 'required': 'An apartment/floor/door number is required',\r\n },\r\n 'signatoryCity': {\r\n 'required': 'City is required.',\r\n },\r\n 'signatoryState': {\r\n 'required': 'State is required.',\r\n },\r\n 'signatoryZipcode': {\r\n 'required': 'Zipcode is required.',\r\n },\r\n 'department': {\r\n 'required': 'Department is required.',\r\n },\r\n 'employeeId': {\r\n 'required': 'EmployeeId is required.',\r\n },\r\n 'employeeEmail': {\r\n 'required': 'Employee Emial is required.',\r\n 'email': 'Please enter a valid email address'\r\n },\r\n 'expediteCase': {\r\n 'required': 'First Name is required.',\r\n },\r\n 'reasonToExpediteCase': {\r\n 'required': 'Reason is required.',\r\n },\r\n 'placeOnHold': {\r\n 'required': 'Reason is required.',\r\n },\r\n 'reasonToDelayCase': {\r\n 'required': 'Reason is required.',\r\n },\r\n 'notes': {\r\n 'required': 'Notes are required.',\r\n },\r\n 'cityId': {\r\n 'required': 'City is required.',\r\n },\r\n 'stateId': {\r\n 'required': 'State is required.',\r\n },\r\n 'zipCodeId': {\r\n 'required': 'Zipcode is required.',\r\n }\r\n };\r\n\r\n constructor(\r\n private lcaService: LCAService,private addLCAService:AddLCAService, private authService: MsalService,private router:Router\r\n ) {\r\n this.email = authService.getAccount().userName;\r\n this.profile = authService.getAccount().name;\r\n \r\n }\r\n\r\n ngOnInit() {\r\n if(this.lcaType==\"replicator\"){\r\n this.getEngagements();\r\n }\r\n else{\r\n\r\n this.getData(this.email);\r\n this.isPageReady=true;\r\n this.addLCAService.currentData.subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.email=data.emailId;\r\n this.dataStateChange(this.gridState,this.email);\r\n });\r\n }\r\n // Loads data to grid\r\n \r\n }\r\n\r\ngetEngagements(){\r\n this.lcaService.getLCAEngagements().subscribe((data: any) => {\r\n data.forEach(element => {\r\n this.engagements.push(element.engagementName);\r\n });\r\n this.engagementSource=this.engagements;\r\n this.addLCAService.engagementData.subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.enaggementName=data.engagementName;\r\n this.getLCAUsers(this.enaggementName);\r\n \r\n });\r\n \r\n });\r\n}\r\n \r\n \r\n redirectToLca(){\r\n this.page.emit(2);\r\n }\r\n\r\n\r\n getLCAUsers(engagement) {\r\n this.isPageReady = false;\r\n this.userListSource=[];\r\n this.userLists=[];\r\n // Gets data from api\r\n this.lcaService.getLCAUserList(engagement).subscribe((data: any) => {\r\n // Binds the data to grid\r\n data.forEach(element => {\r\n this.userLists.push(element.emailId);\r\n });\r\n this.userListSource=this.userLists;\r\n this.isPageReady=true;\r\n this.addLCAService.currentData.subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.email=data.emailId;\r\n this.dataStateChange(this.gridState,this.email);\r\n });\r\n });\r\n }\r\n\r\n \r\n public filterChange(filter: any): void {\r\n this.userLists= this.userListSource.filter(\r\n (s) => s.toLowerCase().includes(filter.toLowerCase()) \r\n );\r\n }\r\n\r\n public filterCorpChanges(filter: any): void {\r\n this.engagements= this.engagementSource.filter(\r\n (s) => s.toLowerCase().includes(filter.toLowerCase()) \r\n );\r\n }\r\n\r\n public getData(event: any){\r\n this.addLCAService.changeUser({emailId:event,id:1});\r\n }\r\n\r\n public getUserData(event: any){\r\n this.addLCAService.changeEngagement({ engagementName: event, id: 1 });\r\n this.email = \"\";\r\n }\r\n\r\n\r\naddUser(){\r\n this.roleArray=[];\r\n}\r\n updateUserList() {\r\n this.dataStateChange(this.gridState,this.email);\r\n }\r\n dataStateChange(state: DataStateChangeEvent,emailId:string) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n\r\n // Gets data from api\r\n this.lcaService.refreshLCAList(emailId,this.searchTerm).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.gridViewSearch = data;\r\n this.CaseDescription = \"\";\r\n this.caseNumber = \"\";\r\n this.caseStatus = \"\";\r\n this.filedDate = \"\";\r\n this.approvedDate = \"\";\r\n this.validDate = \"\";\r\n this.changeNWSStepper.emit(this.gridViewSearch.length);\r\n if(this.gridViewSearch.length>0){\r\n this.CaseDescription=this.gridViewSearch[0].case_Description;\r\n this.caseNumber=this.gridViewSearch[0].case_ID;\r\n this.caseStatus=this.gridViewSearch[0].currentStatus;\r\n this.filedDate=formatDate(this.gridViewSearch[0].filedDate, 'yyyy-MM-dd', 'en-US');\r\n this.approvedDate = this.gridViewSearch[0].approvalDate?formatDate(this.gridViewSearch[0].approvalDate, 'yyyy-MM-dd', 'en-US'):this.gridViewSearch[0].approvalDate;\r\n this.validDate = formatDate(this.gridViewSearch[0].i129SExpiry, 'yyyy-MM-dd', 'en-US');\r\n }\r\n var filter1=this.gridViewSearch.filter(item=>item.lcA_Addl_Primary_Work_1_City!=null);\r\n if(filter1&&filter1.length>0){\r\n this.addl1=false;\r\n }\r\n var filter2 = this.gridViewSearch.filter(item=>item.lcA_Addl_Primary_Work_2_City!=null);\r\n if(filter2&&filter2.length>0){\r\n this.addl2=false;\r\n }\r\n let filterData = this.gridViewSearch;\r\n\r\n this.gridView = process(filterData, this.gridState);\r\n this.userList = data;\r\n\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n\r\n confirmationDialog(open: boolean, data) {\r\n // Opens the confirmation dialog\r\n if (open) {\r\n this.showConfirmation = true;\r\n } else {\r\n this.showConfirmation = false;\r\n }\r\n // setting the delete ID to global variable\r\n if (data) {\r\n this.deleteId = data.userId;\r\n } else {\r\n this.deleteId = 0;\r\n }\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = this.gridViewSearch.filter(r => r.name.toLowerCase().includes(filterValue)\r\n || r.email.toLowerCase().includes(filterValue)\r\n );\r\n this.gridState.skip = 0;\r\n this.gridView = process(filterData, this.gridState);\r\n\r\n // console.log(this.gridView);\r\n }\r\n\r\n GotoNext(){\r\n this.router.navigate(['/addLca']);\r\n }\r\n\r\n editUser(edit: boolean) {\r\n this.selectedCaseId=this.caseNumber; \r\n this.openEditModalButton.nativeElement.click();\r\n }\r\n\r\n}\r\n","export class LcaData {\r\n id: number;\r\n lcA_Number: string;\r\n lcA_Validity_StartDate:Date;\r\n lcA_ExpiryDate: Date;\r\n lcA_Primary_Work_City: boolean;\r\n lcA_Primary_Work_Sheet: string;\r\n lcA_Primary_Work_State: Date;\r\n lcA_Primary_Work_Country: string;\r\n lcA_Primary_Work_ZipCode: Date;\r\n lcA_Addl_Primary_Work_1_City: boolean;\r\n lcA_Addl_Primary_Work_1_Sheet: string;\r\n lcA_Addl_Primary_Work_1_State: Date;\r\n clcA_Addl_Primary_Work_1_ZipCode: string;\r\n lcA_Addl_Primary_Work_2_City: Date;\r\n lcA_Addl_Primary_Work_2_Sheet: boolean;\r\n lcA_Addl_Primary_Work_2_State: string;\r\n lcA_Addl_Primary_Work_2_ZipCode: Date;\r\n }\r\n\r\n export class WorkSiteData{\r\n county:string;\r\n startDate:Date;\r\n expiryDate :Date;\r\n zipCode :string;\r\n streetAddress :string;\r\n streetNumber:string;\r\n houseNumber:string;\r\n houseName:string;\r\n city:string;\r\n clientName: string;\r\n workFrom?:Date;\r\n workTo?:Date;\r\n toalDays: string;\r\n telePhone : string;\r\n engagementCode: string;\r\n interactionId: string;\r\n engagementPartner:string;\r\n experienceManager: string;\r\n state:string;\r\n addressType:string;\r\n }\r\n\r\n export class WorkSiteInfo{\r\n workSiteData:WorkSiteData[];\r\n }\r\n\r\n\r\n export class MissingLCA {\r\n caseId:string;\r\n lcaNumber:string;\r\n county:string;\r\n startDate:Date;\r\n expiryDate :Date;\r\n zipCode :string;\r\n streetAddress :string;\r\n state:string;\r\n city:string;\r\n}\r\n\r\nexport class WorkSiteRequestCount{\r\n ticketStatus:string;\r\n count:number=0;\r\n}\r\n\r\nexport class FinalDetermination{\r\n requestId : string;\r\n finalDeterminations : string;\r\n remarks : string;\r\n lawyer: string;\r\n caseManager: string;\r\n jobTitle: string;\r\n degree: string;\r\n socCode: string;\r\n wageLevel: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\nimport { LcaData, WorkSiteData, WorkSiteInfo } from '../model/Lca.model';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LCAService {\r\n\r\n constructor(private _http: HttpClient) { }\r\n refreshLCAList(emailId:string,searchTerm?: string) {\r\n return this.searchLCA(emailId,searchTerm);\r\n }\r\n searchLCA(emailId:string,searchTerm: string) {\r\n if (!searchTerm) {\r\n return this.getLCAInformation(emailId);\r\n } // else {\r\n // const urlString = `/client/search/${searchTerm}/`;\r\n // return ();\r\n // }\r\n }\r\n\r\n getLCAUserList(engagementName){\r\n var engagementNames=encodeURIComponent(engagementName)\r\n return this._http.get(environment.ApiUrl + 'User/GetAllLCAUsers?engagementName='+engagementNames);\r\n }\r\n\r\n getLCAEngagements(){\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetEngagementList');\r\n }\r\n\r\n editUser(LCAData:LcaData) {\r\n\r\n return this._http.post(environment.ApiUrl + 'User/EditUser',LCAData, {});\r\n }\r\n insertWorkSite(lcaData:any,emailId:string) {\r\n var workSite=new WorkSiteInfo();\r\n workSite.workSiteData=lcaData;\r\n return this._http.post(environment.ApiUrl + 'LCAData/InsertWorkSite?emailId='+emailId,workSite, {});\r\n }\r\n getLCAInformation(emailId) {\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetAllLCAInformation?emailId='+emailId);\r\n }\r\n\r\n\r\n searchWorkSite(searchTerm: string,status:string, startDate:any, endDate:any) {\r\n if (!searchTerm) {\r\n return this.getWorkSiteInformation(status, startDate, endDate);\r\n } // else {\r\n // const urlString = `/client/search/${searchTerm}/`;\r\n // return ();\r\n // }\r\n }\r\n\r\n searchRepostingData(searchTerm: string, status: string, startDate: any, endDate: any) {\r\n if (!searchTerm) {\r\n return this.getRepostingInformation(status, startDate, endDate);\r\n } // else {\r\n // const urlString = `/client/search/${searchTerm}/`;\r\n // return ();\r\n // }\r\n }\r\n\r\n getWorkSiteInformation(status: string, startDate: any, endDate: any) {\r\n\r\n let params = new HttpParams();\r\n params = params.append('status', status);\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n \r\n return this._http.get(environment.ApiUrl + 'LCAData/GetAllWorkSiteInfo', { params: params });\r\n }\r\n\r\n getRepostingInformation(status: string, startDate: any, endDate: any) {\r\n let params = new HttpParams();\r\n params = params.append('status', status);\r\n params = params.append('startDate', startDate);\r\n params = params.append('endDate', endDate);\r\n return this._http.get(environment.ApiUrl + 'LCAData/GetAllRepostingInfo', { params: params });\r\n }\r\n\r\n \r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AddLCAService } from '../add-lca/service/add-lca.service';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\n\r\n@Component({\r\n selector: 'app-lca-determination',\r\n templateUrl: './lca-determination.component.html',\r\n styleUrls: ['./lca-determination.component.scss']\r\n})\r\nexport class LcaDeterminationComponent implements OnInit {\r\n public pageSize = 5;\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public workSiteData=[];\r\n public showData=false;\r\n public LCAData=[];\r\n public newWorkSites=[];\r\n public gridView2:any;\r\n public gridView:any;\r\n public RecommendedOutput=\"\";\r\n public isPageReady = false;\r\n public createdDate:Date=new Date();\r\n @Input() RequestId:any;\r\n @Input() lcaType=\"\";\r\n\r\n @Output() pages = new EventEmitter();\r\n constructor(public addLCAService: AddLCAService) { }\r\n\r\n ngOnInit() {\r\n if(this.RequestId){\r\n this.GetWorkSiteData(this.RequestId);\r\n }\r\n }\r\n\r\n AddNewWorkSites(){\r\n this.addLCAService.setLCAData([]);\r\n this.pages.emit(5);\r\n }\r\n\r\n\r\n\r\n \r\n GetWorkSiteData(requestId) {\r\n\r\n this.addLCAService.GetWorkSiteData(requestId).subscribe((data: any) => {\r\n this.workSiteData=data;\r\n this.newWorkSites=data.workSiteData;\r\n this.createdDate=data.createdDate;\r\n this.LCAData=data.lcaHistory;\r\n this.RecommendedOutput=data.recommendedOutput;\r\n this.isPageReady=true;\r\n this.gridView = process(this.newWorkSites, this.gridState);\r\n this.gridView2 = process(this.LCAData, this.gridState);\r\n this.showData=true;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-lca-home-info',\r\n templateUrl: './lca-home-info.component.html',\r\n styleUrls: ['./lca-home-info.component.scss']\r\n})\r\nexport class LcaHomeInfoComponent implements OnInit {\r\n @Input() lcaType=\"\";\r\n @Output() page = new EventEmitter();\r\n constructor(public router:Router) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n redirectToLca(){\r\n this.page.emit(1);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { WorkSiteData } from '../lca-compliance/model/Lca.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-lca-home',\r\n templateUrl: './lca-home.component.html',\r\n styleUrls: ['./lca-home.component.scss']\r\n})\r\nexport class LcaHomeComponent implements OnInit {\r\n public current = 0;\r\n requestId=\"\";\r\n\r\n public steps = [\r\n { label: 'Welcome Page', icon: 'user' },\r\n { label: 'Most Recent/Active LCA(s)', icon: 'dictionary-add' },\r\n { label: 'New Work Site Details', icon: 'attachment', disabled:true },\r\n { label: 'New Work Site Review', icon: 'preview',disabled:'false' },\r\n { label: 'Submission', icon: 'file-add' }\r\n ];\r\n\r\n public workSiteInfo:WorkSiteData[];\r\n public lcaType=\"internal\";\r\n\r\n constructor(public route:ActivatedRoute) { }\r\n\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.lcaType = params['lcaType'];\r\n // Loads data to grid\r\n });\r\n }\r\n\r\n changePage(value){\r\n console.log(value);\r\n this.current=value;\r\n }\r\n\r\n determineLCA(value){\r\n if (value != \"\") {\r\n if (value == \"back\") {\r\n this.current = 2;\r\n }\r\n else {\r\n this.requestId = value;\r\n this.steps[3].disabled = 'true';\r\n this.current = 4;\r\n this.workSiteInfo = [];\r\n this.steps[2].disabled = true;\r\n }\r\n \r\n }\r\n }\r\n\r\n\r\n assignData(data){\r\n this.workSiteInfo=data;\r\n this.current=3;\r\n }\r\n\r\n completeLCA(data){\r\n this.steps[3].disabled='false';\r\n this.current=0;\r\n }\r\n\r\n draftData(data) {\r\n this.workSiteInfo = data;\r\n this.current = 1;\r\n }\r\n\r\n changeNWSStepper(data) {\r\n if (data > 0)\r\n this.steps[2].disabled = false;\r\n else\r\n this.steps[2].disabled = true;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AddLCAService } from '../add-lca/service/add-lca.service';\r\nimport { WorkSiteRequestCount } from '../lca-compliance/model/Lca.model';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-lca-internal-dashboard',\r\n templateUrl: './lca-internal-dashboard.component.html',\r\n styleUrls: ['./lca-internal-dashboard.component.scss']\r\n})\r\nexport class LcaInternalDashboardComponent implements OnInit {\r\n public workSiteDataCounts:WorkSiteRequestCount[]=[];\r\n public H1bComplianceandRepostCount=0;\r\n public H1bCompliancewithoutRepostCount=0;\r\n public H1bComplianceRequiredCount=0;\r\n public submittedRequestCount=0;\r\n public UnableToDetermineCount=0;\r\n public RepostingCompletedCount=0;\r\n public isPageReady=false;\r\n constructor(public addLCAService: AddLCAService,private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.getWorkSiteRequestCount();\r\n\r\n }\r\n\r\n\r\n getWorkSiteRequestCount() {\r\n\r\n this.addLCAService.getWorkSiteRequestCount().subscribe((data: any) => {\r\n this.workSiteDataCounts=data;\r\n this.isPageReady=true;\r\n if(this.workSiteDataCounts.length>0){\r\n this.H1bComplianceandRepostCount=this.workSiteDataCounts.filter(item=>item.ticketStatus=='No Action Required')[0].count;\r\n this.H1bCompliancewithoutRepostCount=this.workSiteDataCounts.filter(item=>item.ticketStatus=='LCA Re-Posting Required')[0].count;\r\n this.H1bComplianceRequiredCount=this.workSiteDataCounts.filter(item=>item.ticketStatus=='H-1B Amendment Required')[0].count;\r\n this.submittedRequestCount=this.workSiteDataCounts.filter(item=>item.ticketStatus=='Submitted')[0].count;\r\n this.UnableToDetermineCount = this.workSiteDataCounts.filter(item => item.ticketStatus =='More Info Required')[0].count;\r\n this.RepostingCompletedCount=this.workSiteDataCounts.filter(item=>item.ticketStatus=='Reposting Completed')[0].count;\r\n }\r\n\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n opneEYLCAasessment(status:string){\r\n if(status ==\"Reposting Completed\"){\r\n this.router.navigate(['/Repostings'], { queryParams: { status: status } })\r\n }\r\n else{\r\n this.router.navigate(['/EyLca'], { queryParams: { status: status } })\r\n }\r\n }\r\n\r\n \r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, Input, EventEmitter, Output } from '@angular/core';\r\nimport { WorkSiteData } from '../lca-compliance/model/Lca.model';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { LCAService } from '../lca-compliance/service/lca.service';\r\nimport { AddLCAService } from '../add-lca/service/add-lca.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-lca-review',\r\n templateUrl: './lca-review.component.html',\r\n styleUrls: ['./lca-review.component.scss']\r\n})\r\nexport class LcaReviewComponent implements OnInit {\r\n\r\n @ViewChild('openEditModalButton', { static: false }) openEditModalButton: ElementRef;\r\n @Input() workSiteDetails:WorkSiteData[]=[];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public roleArray=[];\r\n public gridViewSearch: any;\r\n public WorkSiteDetails=[];\r\n public selectedLCA:WorkSiteData= new WorkSiteData();\r\n public gridView: any;\r\n public searchName = '';\r\n public emailId=\"\";\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n }; \r\n @Output() page = new EventEmitter();\r\n @Input() lcaType=\"\";\r\n constructor(private lcaService: LCAService,private addLCAService:AddLCAService) { }\r\n\r\n ngOnInit() {\r\n this.dataStateChange(this.gridState);\r\n this.getEmailId();\r\n }\r\n\r\n editUser(lcaData: WorkSiteData , rowIndex: number) {\r\n lcaData[\"index\"]=rowIndex;\r\n this.selectedLCA = Object.assign({}, lcaData);\r\n this.openEditModalButton.nativeElement.click();\r\n }\r\n\r\n dataStateChange(state: DataStateChangeEvent){\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n this.gridViewSearch = this.workSiteDetails;\r\n\r\n this.gridView = process(this.gridViewSearch, this.gridState);\r\n this.isPageReady = true;\r\n }\r\n\r\n getEmailId(){\r\n this.addLCAService.currentData.subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.emailId=data.emailId;\r\n });\r\n }\r\n\r\n\r\n updateLCALists(lcaData: WorkSiteData){\r\n var dataIndex=this.gridView.data.indexOf(lcaData['index']);\r\n this.gridView.data[dataIndex]=lcaData;\r\n this.addLCAService.setLCAData(this.gridView.data);\r\n }\r\n\r\n\r\n saveLCAData() {\r\n this.isPageReady = false;\r\n this.workSiteDetails=[];\r\n this.gridView.data.forEach(item => {\r\n var workSite=new WorkSiteData();\r\n workSite.county=item.county;\r\n workSite.startDate=item.startDate;\r\n workSite.expiryDate = item.expiryDate==\"\"?null:item.expiryDate;\r\n workSite.zipCode = item.zipCode;\r\n workSite.streetAddress = item.streetAddress instanceof Object?item.streetAddress.streetAddress:item.streetAddress;\r\n workSite.streetNumber=item.streetNumber;\r\n workSite.houseNumber=item.houseNumber;\r\n workSite.houseName=item.houseName;\r\n workSite.city = item.city;\r\n workSite.clientName = item.clientName;\r\n workSite.workFrom=item.workFrom==\"\"?null:item.workFrom;\r\n workSite.workTo=item.workTo==\"\"?null:item.workTo;\r\n workSite.toalDays=item.toalDays?item.toalDays.toString():\"\";\r\n workSite.telePhone=item.telePhone;\r\n workSite.engagementCode = item.engagementCode;\r\n workSite.interactionId=item.interactionId;\r\n workSite.engagementPartner=item.engagementPartner;\r\n workSite.experienceManager=item.experienceManager; \r\n workSite.state=item.state;\r\n workSite.addressType = item.addressType;\r\n this.WorkSiteDetails.push(workSite);\r\n });\r\n\r\n\r\n this.lcaService.insertWorkSite(this.WorkSiteDetails,this.emailId).subscribe((data: any) => {\r\n if (data.message != \"\") {\r\n this.addLCAService.resetUser();\r\n this.page.emit(data.message);\r\n this.isPageReady = true;\r\n }\r\n\r\n });\r\n }\r\n\r\n goBack() {\r\n let par: any = \"back\";\r\n this.page.emit(par);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Input, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-lcachklist',\r\n templateUrl: './lcachklist.component.html',\r\n styleUrls: ['./lcachklist.component.scss']\r\n})\r\nexport class LcachklistComponent implements OnInit {\r\n @Input() lcaData: any;\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n bnfId: string;\r\n caseType: string;\r\n applicantType: string;\r\n requestType: string;\r\n public documentSearch: any;\r\n public searchText = '';\r\n public documentList: any[];\r\n public newPageReady = true;\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeForm() {\r\n const closeButton: HTMLElement = this.closeButton.nativeElement as HTMLElement;\r\n closeButton.click();\r\n }\r\n\r\nclearFilter() {\r\n // Resets search textbox\r\n this.searchText = '';\r\n}\r\napplyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n let filterData = this.documentSearch.filter(r => r.applicantType.toLowerCase().includes(filterValue)\r\n || r.documentType.toLowerCase().includes(filterValue));\r\n this.documentList = filterData;\r\n}\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CommonService } from 'src/app/service/common.service';\r\nimport { Router } from '@angular/router';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CheckUser } from '../usermanagement/model/checkUser';\r\nimport { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-main-page',\r\n templateUrl: './main-page.component.html',\r\n styleUrls: ['./main-page.component.scss']\r\n})\r\nexport class MainPageComponent implements OnInit {\r\n public items: any = [\r\n\r\n //{ title: 'Courier Package', col: 1, body: 'Courier Package', avatar: 'settings', redirectUrl: \"courierpackage\" },\r\n //{ title: 'Immigration Compilation', col: 2, body: 'Immigration Compilation', avatar: 'dashboard', redirectUrl: \"dashboard\" },\r\n //{ title: 'Digital Assessment Form', col: 2, body: 'Digital Assessment form', avatar: 'home', redirectUrl: \"\" },\r\n //{ title: 'H-1B Compliance / New work site request', col: 1, body: 'H1B Compliance / New work site request', avatar: 'school', redirectUrl: \"lcaHomes\" },\r\n //{ title: 'H-1B Compliance Internal Tracker', col: 3, body: 'H1B Compliance Internal Tracker', avatar: 'school', redirectUrl: \"internalLca\" },\r\n //{ title: 'LCA NWS External Replicator', col: 1, body: 'LCA NWS External Replicator',avatar:'school',redirectUrl:\"lcaHome\" }\r\n \r\n //{ title: 'OOE', col: 3, body: 'OOE',avatar:'event',redirectUrl:\"\" }\r\n];\r\nprofile;\r\nemail;\r\nisSuperAdmin=[];\r\nAdminRoles=[];\r\nclasses=\"\";\r\nphoto: any = \"../../assets/images/user.jpg\";\r\npublic isPageReady=true;\r\n\r\n constructor(private sanitizer: DomSanitizer, private http: HttpClient, private commonService: CommonService, private router: Router, private authService: MsalService) {\r\n this.profile = authService.getAccount().name;\r\n this.email = authService.getAccount().userName;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.getUserRole(this.email);\r\n this.getAvatar();\r\n }\r\n\r\n redirectTo(value:any){\r\n if (value == \"dashboard\" || value == \"courierpackage\" || value == \"internalLca\" || value == \"daf/dashboard\" || value == \"inszoom/dashboard\" || value == \"notices/dashboard\"){\r\n this.router.navigate(['/'+value]);\r\n\r\n }\r\n else if(value==\"lcaHome\"){\r\n this.router.navigate(['/lcaHome'], { queryParams: { lcaType: 'replicator' } })\r\n }\r\n else if(value==\"lcaHomes\"){\r\n this.router.navigate(['/lcaHome'], { queryParams: { lcaType: 'internal' } })\r\n }\r\n else if(value!=\"\"){\r\n window.open(value, \"_blank\");\r\n }\r\n }\r\n\r\n getAvatar() {\r\n this.http.get(environment.GraphUri + 'v1.0/users/' + this.email + '/photos/48x48/$value')\r\n .subscribe((photo: any) => {\r\n //this.createImageFromBlob(photo);\r\n this.photo = this.sanitizer.bypassSecurityTrustResourceUrl(URL.createObjectURL(photo));\r\n },\r\n () => {\r\n });\r\n }\r\n\r\n createImageFromBlob(image: Blob) {\r\n let reader = new FileReader();\r\n reader.addEventListener('load', () => {\r\n this.photo = reader.result;\r\n }, false);\r\n if (image) {\r\n reader.readAsDataURL(image);\r\n }\r\n }\r\n\r\n public listItems: Array = [\r\n \"X-Small\",\r\n \"Small\",\r\n \"Medium\",\r\n \"Large\",\r\n \"X-Large\",\r\n \"2X-Large\",\r\n ];\r\n\r\n getUserRole(email) {\r\n this.isPageReady=false;\r\n var user=new CheckUser();\r\n user.email=email;\r\n // Gets user role from api using email\r\n this.commonService.getUserRoleByEmail(user.email)\r\n .subscribe((data: any) => {\r\n // Navigates to accessdenied component if user doesn't exist\r\n if (data.length==0) {\r\n this.router.navigate(['/accessdenied']);\r\n\r\n } else {\r\n \r\n var roleArray = data;\r\n this.isSuperAdmin = roleArray.map(a => a.appName);\r\n this.AdminRoles = roleArray.map(a => a.roleName);\r\n\r\n if(this.isSuperAdmin.includes('SuperAdmin'))\r\n {\r\n this.items.push({ title: 'Courier Package', col: 1, body: 'Courier Package', avatar: 'settings', redirectUrl: \"courierpackage\" });\r\n this.items.push({ title: 'Immigration Compilation', col: 2, body: 'Immigration Compilation', avatar: 'dashboard', redirectUrl: \"dashboard\" });\r\n this.items.push({ title: 'Digital Assessment Form', col: 2, body: 'Digital Assessment form', avatar: 'home', redirectUrl: \"daf/dashboard\" });\r\n this.items.push({ title: 'LCA NWS External Replicator', col: 1, body: 'LCA NWS External Replicator', avatar: 'school', redirectUrl: \"lcaHome\" });\r\n this.items.push({ title: 'H-1B Compliance Internal Tracker', col: 3, body: 'H1B Compliance Internal Tracker', avatar: 'school', redirectUrl: \"internalLca\" });\r\n this.items.push({ title: 'H-1B Compliance / New work site request', col: 1, body: 'H1B Compliance / New work site request', avatar: 'school', redirectUrl: \"lcaHomes\" });\r\n this.items.push({ title: 'EYMP INSZoom Integration', col: 2, body: 'EYMP INSZoom Integration', avatar: 'home', redirectUrl: \"inszoom/dashboard\" });\r\n this.items.push({ title: 'EYMP Notices', col: 2, body: 'EYMP Notices', avatar: 'home', redirectUrl: \"notices/dashboard\" });\r\n }\r\n else{\r\n // if(!this.isSuperAdmin.includes('CourierPackage')){\r\n // this.items=this.items.filter(item=>item.title!=\"Courier Package\");\r\n // }\r\n //if(!this.isSuperAdmin.includes('ImmigrationCompilation')){\r\n // this.items=this.items.filter(item=>item.title!=\"Immigration Compilation\");\r\n //}\r\n\r\n //if(this.isSuperAdmin.includes('LCACompliance')){\r\n // this.items=this.items.filter(item=>item.title!=\"LCA NWS External Replicator\");\r\n // this.items = this.items.filter(item => item.title !=\"H-1B Compliance Internal Tracker\");\r\n // this.items = this.items.filter(item => item.title != \"H-1B Compliance / New work site request\");\r\n\r\n //}\r\n //if(this.isSuperAdmin.includes('LCACompliance')&&!this.AdminRoles.includes('LCAComplianceExternal')&&!this.AdminRoles.includes('LCACompliance-Admin')&&!this.AdminRoles.includes('LCAComplianceExternalReplicator')){\r\n // this.items=this.items.filter(item=>item.title!=\"LCA NWS External Replicator\");\r\n // }\r\n if(this.isSuperAdmin.includes('CourierPackage')){\r\n this.items.push({ title: 'Courier Package', col: 1, body: 'Courier Package', avatar: 'settings', redirectUrl: \"courierpackage\" })\r\n }\r\n if (this.isSuperAdmin.includes('LCACompliance') && this.AdminRoles.includes('LCACompliance-Admin')) {\r\n this.items.push({ title: 'H-1B Compliance / New work site request', col: 1, body: 'H1B Compliance / New work site request', avatar: 'school', redirectUrl: \"lcaHomes\" });\r\n this.items.push({ title: 'LCA NWS External Replicator', col: 2, body: 'LCA NWS External Replicator', avatar: 'school', redirectUrl: \"lcaHome\" });\r\n this.items.push({ title: 'H-1B Compliance Internal Tracker', col: 3, body: 'H1B Compliance Internal Tracker', avatar: 'school', redirectUrl: \"internalLca\" });\r\n }\r\n if (this.isSuperAdmin.includes('LCACompliance') && this.AdminRoles.includes('LCAComplianceExternalReplicator')) {\r\n this.items.push({ title: 'LCA NWS External Replicator', col: 1, body: 'LCA NWS External Replicator', avatar: 'school', redirectUrl: \"lcaHome\" }); \r\n }\r\n if (this.isSuperAdmin.includes('LCACompliance') && this.AdminRoles.includes('LCAComplianceInternal')) {\r\n this.items.push({ title: 'H-1B Compliance Internal Tracker', col: 3, body: 'H1B Compliance Internal Tracker', avatar: 'school', redirectUrl: \"internalLca\" });\r\n }\r\n if (this.isSuperAdmin.includes('LCACompliance') && this.AdminRoles.includes('LCAComplianceExternal')) {\r\n this.items.push({ title: 'H-1B Compliance / New work site request', col: 1, body: 'H1B Compliance / New work site request', avatar: 'school', redirectUrl: \"lcaHomes\" });\r\n }\r\n if (this.isSuperAdmin.includes('DigitalAssessmentForm')) {\r\n this.items.push({ title: 'Digital Assessment Form', col: 2, body: 'Digital Assessment form', avatar: 'home', redirectUrl: \"daf/dashboard\" });\r\n }\r\n if (this.isSuperAdmin.includes('EYMPINSZoomIntegration')) {\r\n this.items.push({ title: 'EYMP INSZoom Integration', col: 2, body: 'EYMP INSZoom Integration', avatar: 'home', redirectUrl: \"inszoom/dashboard\" }); \r\n }\r\n if (this.isSuperAdmin.includes('EYMPNotices')) {\r\n this.items.push({ title: 'EYMP Notices', col: 2, body: 'EYMP Notices', avatar: 'home', redirectUrl: \"notices/dashboard\" });\r\n }\r\n //if(this.isSuperAdmin.includes('LCACompliance')&&!this.AdminRoles.includes('LCAComplianceInternal')&&!this.AdminRoles.includes('LCACompliance-Admin')&&!this.AdminRoles.includes('LCAComplianceExternalReplicator')){\r\n // this.items=this.items.filter(item=>item.title!=\"H-1B Compliance Internal Tracker\");\r\n // }\r\n if(this.isSuperAdmin.length==0){\r\n this.items=[];\r\n }\r\n }\r\n if(this.items.length>0){\r\n this.items.forEach((element,index) => {\r\n if(index<3){\r\n element.col=index+1;\r\n }\r\n else if(index<6){\r\n element.col=index-2;\r\n }\r\n else{\r\n element.col=index-5;\r\n }\r\n });\r\n }\r\n this.isPageReady=true;\r\n\r\n }\r\n });\r\n\r\n }\r\n logout() {\r\n this.commonService.logoutSession().subscribe((data: any) => {\r\n this.authService.logout();\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'modaldesign',\r\n templateUrl: './modaldesign.component.html',\r\n styleUrls: ['./modaldesign.component.scss']\r\n})\r\nexport class ModaldesignComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { LCAService } from '../lca-compliance/service/lca.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { process } from '@progress/kendo-data-query';\r\n\r\n\r\n@Component({\r\n selector: 'app-reposting-completed',\r\n templateUrl: './reposting-completed.component.html',\r\n styleUrls: ['./reposting-completed.component.scss']\r\n})\r\nexport class RepostingCompletedComponent implements OnInit {\r\n public current = 0;\r\n public userList: any[] = [];\r\n public sourceUserList:any[]=[];\r\n roleData:any[]=[];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public status='submitted'\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private readonly notifier: NotifierService;\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public searchTerm = '';\r\n public TemplateHeader=\"\";\r\n dateFilterModel: DateFilterModel;\r\n public steps = [\r\n { label: 'Search Page', icon: 'user' },\r\n { label: 'LCA Assessment Review', icon: 'dictionary-add' },\r\n { label: 'Reposting Tracker', icon: 'attachment' },\r\n\r\n ];\r\n constructor(private lcaService: LCAService,private route: ActivatedRoute,private router: Router) {\r\n this.allData = this.allData.bind(this);\r\n this.dateFilterModel = new DateFilterModel(new Date(2021, 0, 1), new Date());\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.status = params['status'];\r\n if(this.status){\r\n this.TemplateHeader = this.status+\" Request Details\";\r\n }\r\n // Loads data to grid\r\n this.dataStateChange(this.gridState,this.status);\r\n \r\n });\r\n \r\n }\r\n\r\n\r\n public allData(): ExcelExportData {\r\n const result: ExcelExportData = {\r\n data: this.userList\r\n };\r\n \r\n return result;\r\n }\r\n\r\n editInternalData(workSite: any) {\r\n this.router.navigate(['/editInternalEY'], { queryParams: { requestId: workSite.requestId,status:this.status } })\r\n }\r\n\r\n GotoBack(){\r\n this.router.navigate(['/internalLca'])\r\n }\r\n\r\n\r\n\r\n updateUserList() {\r\n this.dataStateChange(this.gridState,this.status);\r\n }\r\n dataStateChange(state: DataStateChangeEvent,status:string) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n\r\n // Gets data from api\r\n this.sourceUserList=[];\r\n this.lcaService.searchRepostingData(this.searchTerm, this.status, this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.gridViewSearch = data;\r\n this.sourceUserList=data;\r\n let filterData = this.gridViewSearch;\r\n\r\n this.gridView = process(filterData, this.gridState);\r\n this.userList = data;\r\n\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n\r\n applyDateFilter() {\r\n this.dataStateChange(this.gridState, this.status);\r\n }\r\n\r\n resetFilter() {\r\n this.dateFilterModel = new DateFilterModel(new Date(2022, 0, 1), new Date());\r\n this.dataStateChange(this.gridState, this.status);\r\n }\r\n}\r\nexport class DateFilterModel {\r\n public startDate: Date;\r\n public endDate: Date;\r\n constructor(startDate: Date, endDate: Date) {\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-access-denied',\r\n templateUrl: './access-denied.component.html',\r\n styleUrls: ['./access-denied.component.scss']\r\n})\r\nexport class AccessDeniedComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport {AwaitDocExtractionService} from '../awaitdocextraction/service/awaitdocextraction.service';\r\nimport { DashType } from '@progress/kendo-drawing';\r\nimport { DashboardService } from 'src/app/immigrationcompilation/dashboard/service/dashboard.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport {DashboardView} from '../awaitdocextraction/model/dashboardview';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DateFilterModel } from '../awaitlawclerkreview/awaitlawclerkreview.component';\r\nimport { CommonService } from 'src/app/service/common.service';\r\n\r\n@Component({\r\n selector: 'app-submittedtolawyer',\r\n templateUrl: './submittedtolawyer.component.html',\r\n styleUrls: ['./submittedtolawyer.component.scss']\r\n})\r\nexport class SubmittedtolawyerComponent implements OnInit, AfterViewInit {\r\n @ViewChild('openDocModalButton', { static: false }) openDocModalButton: ElementRef;\r\n public caseList: any;\r\n public gridViewData: any[];\r\n private notifier: NotifierService;\r\n public isClicked = false;\r\n public dashboardView: DashboardView = new DashboardView();\r\n public pageSize = 10;\r\n public skip = 0;\r\n dateFilterModel: DateFilterModel;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n fromreportDate: any;\r\n toreportDate:any;\r\n public isPageReady = true;\r\n constructor(private dashboardService: AwaitDocExtractionService, private commonService: CommonService) {\r\n this.dateFilterModel = new DateFilterModel(new Date(2020, 1, 1), new Date());\r\n }\r\ntake: number;\r\n ngOnInit() {\r\n this.getReportDate();\r\n }\r\n\r\n getReportDate(){\r\n this.commonService.currentData.subscribe(data => {\r\n this.fromreportDate = data.fromDate;\r\n this.toreportDate=data.toDate;\r\n this.dateFilterModel = new DateFilterModel(new Date(this.fromreportDate),new Date(this.toreportDate));\r\n this.refreshCaseList(this.gridState);\r\n });\r\n }\r\n\r\n filterCaseList(){\r\n this.commonService.updateDate({fromDate:this.dateFilterModel.startDate.toDateString(),toDate:this.dateFilterModel.endDate.toDateString()});\r\n }\r\n \r\n\r\n resetDashboard(){\r\n this.commonService.resetDate.subscribe(data=>{\r\n this.commonService.updateDate({fromDate:data,toDate:data});\r\n });\r\n }\r\n refreshCaseList(state: DataStateChangeEvent) {\r\n this.isPageReady = false;\r\n this.gridState = state;\r\n this.dashboardService.getCaseDetailsWithStatus('SubmittedToLawyer',this.dateFilterModel.startDate.toDateString(), this.dateFilterModel.endDate.toDateString()).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.caseList = process(data, this.gridState);\r\n this.gridViewData = data;\r\n this.take = 10;\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.isPageReady = true;\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n }\r\n );\r\n }\r\n viewDocumentCheckList(dataItem: any) {\r\n this.isClicked = true;\r\n this.dashboardView = Object.assign({}, dataItem);\r\n this.openDocModalButton.nativeElement.click();\r\n }\r\n\r\n ngAfterViewInit() {\r\n //Adds search placeholder to all filter textbox\r\n var result = document.getElementsByClassName(\"k-filtercell-wrapper\");\r\n for (let i = 0; i < result.length; i++) {\r\n result[i].children[0].setAttribute(\"placeholder\", \"search\");\r\n }\r\n }\r\n}\r\n\r\n\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { AddLCAService } from '../add-lca/service/add-lca.service';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-update-lca-modal',\r\n templateUrl: './update-lca-modal.component.html',\r\n styleUrls: ['./update-lca-modal.component.scss']\r\n})\r\nexport class UpdateLcaModalComponent {\r\n @Input() workSiteInfo: any;\r\n\r\n @Output() updateLCAList = new EventEmitter();\r\n @ViewChild('closeButton', { static: false }) closeButton: ElementRef;\r\n @ViewChild('addcloseButton', { static: false }) addcloseButton: ElementRef;\r\n @ViewChild('notification', { static: false }) customNotificationTmpl;\r\n errorMessage: string;\r\n options: string[];// = ['One', 'Two', 'Three'];\r\n filteredOptions: any;\r\n selectedLCA = new FormControl('');\r\n \r\n public isPageReady = true;\r\n constructor(public addLCAService: AddLCAService, private notifier: NotifierService) {\r\n \r\n }\r\n public lcaForm = new FormGroup({\r\n WorksiteId: new FormControl(''),\r\n LCANumber: new FormControl('', Validators.required),\r\n Comment: new FormControl(''),\r\n CaseId: new FormControl(''),\r\n ApplicantName: new FormControl(''),\r\n Corporation: new FormControl(''),\r\n Department: new FormControl('')\r\n });\r\n \r\n ngOnChanges() {\r\n if (this.workSiteInfo.worksite) {\r\n this.lcaForm.controls[\"WorksiteId\"].setValue(this.workSiteInfo.worksite.id);\r\n this.lcaForm.controls[\"Comment\"].setValue(this.workSiteInfo.worksite.comment);\r\n this.lcaForm.controls[\"LCANumber\"].setValue(this.workSiteInfo.worksite.lcaNumber);\r\n this.lcaForm.controls[\"CaseId\"].setValue(this.workSiteInfo.caseID);\r\n this.lcaForm.controls[\"ApplicantName\"].setValue(this.workSiteInfo.applicantName);\r\n this.lcaForm.controls[\"Corporation\"].setValue(this.workSiteInfo.corporation);\r\n this.lcaForm.controls[\"Department\"].setValue(this.workSiteInfo.department);\r\n }\r\n \r\n }\r\n\r\n addLCANumber(addWorksiteForm) {\r\n this.isPageReady = false;\r\n this.addLCAService.updateLCANumber(this.lcaForm.value).subscribe((data: any) => {\r\n this.updateLCAList.emit();\r\n this.isPageReady = true;\r\n this.addcloseForm();\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while updating the LCA details');\r\n this.isPageReady = true;\r\n });\r\n }\r\n\r\n addcloseForm() {\r\n const addcloseButton: HTMLElement = this.addcloseButton\r\n .nativeElement as HTMLElement;\r\n addcloseButton.click();\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { User } from '../model/user';\r\nimport { UserService } from 'src/app/immigrationcompilation/usermanagement/service/user.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { DateTimePickerModule } from '@progress/kendo-angular-dateinputs/dist/es2015/datetimepicker/datetimepicker.module';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { InsertUser } from '../model/insertUser';\r\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\r\n\r\n@Component({\r\n selector: 'app-edituser',\r\n templateUrl: './edituser.component.html',\r\n styleUrls: ['./edituser.component.scss']\r\n})\r\nexport class EdituserComponent implements OnInit {\r\n public selectedRoles: any = [];\r\n public HiddenSelectedRoles: any = [];\r\n @Input() user: User;\r\n @Input() \r\n public set selectedRole(val: any) {\r\n if(val.length>0){\r\n this.enableRoles();\r\n this.updateRoles(val);\r\n }\r\n else{\r\n this.enableRoles();\r\n }\r\n };\r\n @Output() updateUserList = new EventEmitter();\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n @ViewChild('addcloseButton', {static: false}) addcloseButton: ElementRef;\r\n @ViewChild('autocomplete' , {static: false}) autocomplete: any;\r\n @ViewChild('notification', {static: false}) customNotificationTmpl;\r\n errorMessage: string;\r\n public searchDetails: any;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n private notifier: NotifierService;\r\n public rolemaster: any[]=[];\r\n public editUserDetails: User;\r\n public addUserDetails: User;\r\n public userId: number;\r\n public addUserMail: string;\r\n public addUserName: string;\r\n\r\n dropdownList = [];\r\n selectedItems = [];\r\n dropdownSettings:IDropdownSettings= {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'roleName',\r\n enableCheckAll:false\r\n };\r\n showdropdown: boolean=false\r\n constructor(\r\n private userService: UserService,\r\n notifierService: NotifierService\r\n ) {\r\n this.notifier = notifierService;\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.LoadRoleMaster();\r\n\r\n\r\n // console.log(this.user);\r\n }\r\n\r\n updateRoles(selectedRoleList){\r\n var array=this.rolemaster;\r\n this.rolemaster = [];\r\n let selectedRolesTemp = [];\r\n //selectedRole.forEach(element => {\r\n\r\n // var role= array.filter(item=>item.id==element.id);\r\n // var restrictions= role[0].restrictions.split(','); \r\n // restrictions.forEach(element => {\r\n // array.forEach(elements => {\r\n // if(elements.id==element){\r\n // elements.isDisabled=true;\r\n // }\r\n // });\r\n // });\r\n //});\r\n this.rolemaster=[...array];\r\n \r\n selectedRoleList.forEach(element => {\r\n if (array.find(x => x.id == element.id)) {\r\n selectedRolesTemp.push(element);\r\n }\r\n else {\r\n this.HiddenSelectedRoles.push(element);\r\n }\r\n });\r\n\r\n this.selectedRoles = selectedRolesTemp;\r\n }\r\n\r\n onItemSelect(item: any) {\r\n if(item.id==6 && this.selectedRoles.length>0){\r\n this.selectedRoles=this.selectedRoles.filter(item=>item.id==6);\r\n }\r\n var array=this.rolemaster;\r\n this.rolemaster=[];\r\n var roleData = array.filter(items => items.id == item.id);\r\n\r\n var restrctions=roleData[0].restrictions.split(',');\r\n restrctions.forEach(element => {\r\n array.forEach(elements => {\r\n if(elements.id==element){\r\n elements.isDisabled=true;\r\n }\r\n });\r\n \r\n \r\n });\r\n this.rolemaster=[...array];\r\n }\r\n onDeSelect(item: any) {\r\n var array=this.rolemaster;\r\n this.rolemaster=[];\r\n var roleData=array.filter(items=>items.id==item.id);\r\n var restrctions=roleData[0].restrictions.split(',');\r\n restrctions.forEach(element => {\r\n array.forEach(elements => {\r\n if(elements.id==element){\r\n elements.isDisabled=false;\r\n }\r\n });\r\n \r\n \r\n });\r\n this.rolemaster=[...array];\r\n }\r\n LoadRoleMaster() {\r\n \r\n this.rolemaster=[];\r\n this.userService.getRolesUrl().subscribe((roleresult: any[]) => {\r\n var roles = roleresult;\r\n var userroles =JSON.parse(localStorage.getItem(\"isSuperAdmin\"));\r\n if(userroles.includes('SuperAdmin')){\r\n roles.forEach(element => {\r\n this.rolemaster.push({'id':element.roleId,'roleName':element.roleName,'isDisabled':false,'restrictions':element.roleRestrictions});\r\n });\r\n }\r\n else{\r\n if(userroles.includes('CourierPackage-Admin')){\r\n roles.forEach(element => {\r\n if(element.appName==\"CourierPackage\"){\r\n this.rolemaster.push({'id':element.roleId,'roleName':element.roleName,'isDisabled':false,'restrictions':element.roleRestrictions});\r\n }\r\n });\r\n }\r\n if(userroles.includes('ImmigrationCompilation-Admin')){\r\n roles.forEach(element => {\r\n if(element.appName==\"ImmigrationCompilation\"){\r\n this.rolemaster.push({'id':element.roleId,'roleName':element.roleName,'isDisabled':false,'restrictions':element.roleRestrictions});\r\n }\r\n });\r\n }\r\n if(userroles.includes('LCAComplianceExternal')){\r\n roles.forEach(element => {\r\n if(element.appName==\"LCACompliance\"){\r\n this.rolemaster.push({'id':element.roleId,'roleName':element.roleName,'isDisabled':false,'restrictions':element.roleRestrictions});\r\n }\r\n });\r\n }\r\n if(userroles.includes('LCAComplianceInternal')){\r\n roles.forEach(element => {\r\n if(element.appName==\"LCACompliance\"){\r\n this.rolemaster.push({'id':element.roleId,'roleName':element.roleName,'isDisabled':false,'restrictions':element.roleRestrictions});\r\n }\r\n });\r\n }\r\n if (userroles.includes('LCACompliance-Admin')) {\r\n roles.forEach(element => {\r\n if (element.appName == \"LCACompliance\") {\r\n this.rolemaster.push({ 'id': element.roleId, 'roleName': element.roleName, 'isDisabled': false, 'restrictions': element.roleRestrictions });\r\n }\r\n });\r\n }\r\n if (userroles.includes('EYMPINSZoomIntegration-Admin')) {\r\n roles.forEach(element => {\r\n if (element.appName == \"EYMPINSZoomIntegration\") {\r\n this.rolemaster.push({ 'id': element.roleId, 'roleName': element.roleName, 'isDisabled': false, 'restrictions': element.roleRestrictions });\r\n }\r\n });\r\n }\r\n if (userroles.includes('EYMPNotices-Admin')) {\r\n roles.forEach(element => {\r\n if (element.appName == \"EYMPNotices\") {\r\n this.rolemaster.push({ 'id': element.roleId, 'roleName': element.roleName, 'isDisabled': false, 'restrictions': element.roleRestrictions });\r\n }\r\n });\r\n }\r\n }\r\n\r\n \r\n this.showdropdown=true;\r\n \r\n }, error => {console.error(error); console.log('error'); });\r\n }\r\n closeForm() {\r\n this.enableRoles();\r\n this.selectedRoles=[];\r\n const closeButton: HTMLElement = this.closeButton\r\n .nativeElement as HTMLElement;\r\n closeButton.click();\r\n}\r\n\r\nenableRoles(){\r\n \r\n if(this.rolemaster.length>0){\r\n var arrays = this.rolemaster;\r\n this.rolemaster=[];\r\n arrays.forEach(element => {\r\n element.isDisabled=false;\r\n });\r\n this.rolemaster=[...arrays];\r\n}\r\n}\r\n\r\nclosemodal(){\r\n this.enableRoles();\r\n this.selectedRoles=[];\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\naddcloseForm() {\r\n this.addUserMail = '';\r\n this.addUserName = '';\r\n this.autocomplete.reset();\r\n this.enableRoles();\r\n this.selectedRoles=[];\r\n const addcloseButton: HTMLElement = this.addcloseButton\r\n .nativeElement as HTMLElement;\r\n addcloseButton.click();\r\n}\r\neditUser(editUserForm: NgForm) {\r\n this.userId = this.user.userId;\r\n this.editUserDetails = editUserForm.value;\r\n this.editUserDetails.userId = this.userId;\r\n this.HiddenSelectedRoles.forEach(element => {\r\n this.selectedRoles.push(element);\r\n });\r\n this.userService.editUser(this.userId, this.selectedRoles).subscribe((data: any) => {\r\n this.closeForm();\r\n this.updateUserList.emit(true);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n}\r\naddUser(addUserForm: NgForm) {\r\n this.addUserDetails = addUserForm.value;\r\n this.addUserDetails.email = addUserForm.controls['email'].value;\r\n this.addUserDetails.name = addUserForm.controls['name'].value;\r\n var users=new InsertUser();\r\n \r\n users.name=this.addUserDetails.name;\r\n users.email=this.addUserDetails.email;\r\n users.roles = this.selectedRoles;\r\n\r\n this.userService.addUser(users).subscribe((data: any) => {\r\n if (data.message.includes('exists')) {\r\n this.notifier.notify('error', 'User already exists');\r\n this.errorMessage = 'User details already exists';\r\n addUserForm.resetForm();\r\n this.autocomplete.reset();\r\n } else {\r\n this.addUserMail = '';\r\n this.addUserName = '';\r\n addUserForm.resetForm();\r\n this.autocomplete.reset();\r\n this.addcloseForm();\r\n this.updateUserList.emit(true);\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while saving the user details');\r\n }\r\n );\r\n}\r\n searchUserDetails(email: any) {\r\n this.userService.searchUserDetails(email.target.value.trim()).subscribe((data: any) => {\r\n this.searchDetails = data.value;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while searching the user details');\r\n });\r\n }\r\n selectAddUserDetails(email: any) {\r\n this.addUserMail = email.mail;\r\n this.addUserName = email.displayName;\r\n this.autocomplete.reset();\r\n}\r\n}\r\n\r\n","export class CheckUser {\r\n email: string;\r\n}","export class InsertUser {\r\n name: string;\r\n email: string;\r\n roles:Roles[];\r\n}\r\n\r\nexport class Roles{\r\n id:number;\r\n roleName:string;\r\n}","export class User {\r\n userId: number;\r\n name: string;\r\n email: string;\r\n status: boolean;\r\n createdBy: string;\r\n createdDate: Date;\r\n modifiedBy: string;\r\n modifiedDate: Date;\r\n userRoles:UserRole[];\r\n}\r\n\r\nexport class UserRole{\r\n roleId:number;\r\n appName:string;\r\n roleName:string;\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-role-view',\r\n templateUrl: './role-view.component.html',\r\n styleUrls: ['./role-view.component.scss']\r\n})\r\nexport class RoleViewComponent implements OnInit {\r\n public gridData: any ;\r\n @Input() roles: any;\r\n @ViewChild('closeButton', {static: false}) closeButton: ElementRef;\r\n constructor() { \r\n this.gridData=this.roles;\r\n console.log(this.roles);\r\n }\r\n\r\n ngOnInit() {\r\n this.gridData=this.roles;\r\n console.log(this.roles);\r\n\r\n }\r\n\r\n\r\n closeForm() {\r\n const closeButton: HTMLElement = this.closeButton\r\n .nativeElement as HTMLElement;\r\n closeButton.click();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { User } from '../model/user';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { InsertUser, Roles } from '../model/insertUser';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n constructor(private _http: HttpClient) { }\r\n refreshUserList(emailId: string, role: string, skip, take, searchTerm: string) {\r\n return this.getUsers(emailId, role, skip, take, searchTerm);\r\n }\r\n searchUser(emailId: string, role: string, skip,take,searchTerm: string) {\r\n if (!searchTerm) {\r\n return this.getUsers(emailId,role,skip,take, searchTerm);\r\n } // else {\r\n // const urlString = `/client/search/${searchTerm}/`;\r\n // return ();\r\n // }\r\n }\r\n getUsers(emailId, role, skip, take, searchTerm) {\r\n return this._http.get(environment.ApiUrl + 'User/GetAllUsers?emailId=' + emailId + '&role=' + role + '&pageNumber=' + skip + '&pageSize=' + take + '&searchTerm=' + searchTerm);\r\n }\r\n\r\n deleteUser(UserId: number) {\r\nreturn this._http.post(environment.ApiUrl + 'User/DeleteUser?userId=' + UserId , {});\r\n }\r\n getRolesUrl() {\r\n return this._http.get(environment.ApiUrl + 'User/GetUserRoles');\r\n }\r\n editUser(userId: number, selectedRole: Roles[]) {\r\n var userInfo={\r\n \"userId\":userId,\r\n \"roles\":selectedRole\r\n }\r\n return this._http.post(environment.ApiUrl + 'User/EditUser',userInfo, {});\r\n }\r\n addUser(user:InsertUser) {\r\n return this._http.post(environment.ApiUrl + 'User/InsertUser',user, {});\r\n }\r\n searchUserDetails(email: string) {\r\n let username = \"'\" + email + \"'\";\r\n return this._http.get(environment.GraphUri + 'v1.0/users?$filter=startswith(mail,' + username + ')');\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef} from '@angular/core';\r\nimport { UserService } from 'src/app/immigrationcompilation/usermanagement/service/user.service';\r\nimport { GridDataResult, DataStateChangeEvent, PageChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { User } from '../usermanagement/model/user';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n@Component({\r\n selector: 'app-usermanagement',\r\n templateUrl: './usermanagement.component.html',\r\n styleUrls: ['./usermanagement.component.scss']\r\n})\r\nexport class UsermanagementComponent implements OnInit {\r\n @ViewChild('openRoleModalButton', { static: false }) openRoleModalButton: ElementRef;\r\n @ViewChild('openEditModalButton', { static: false }) openEditModalButton: ElementRef;\r\n public selectedUser: User = new User();\r\n public deleteId = 0;\r\n public searchTerm = '';\r\n public showConfirmation = false;\r\n public userList: any[] = [];\r\n roleData:any[]=[];\r\n public isPageReady = true;\r\n public pageSize = 10;\r\n public skip = 0;\r\n public roleArray=[];\r\n public gridViewSearch: any;\r\n public gridView: any;\r\n public searchName = '';\r\n public OpenRoles=false;\r\n public email;\r\n public role=\"\";\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n public totalCount;\r\n private readonly notifier: NotifierService;\r\n constructor(\r\n private userService: UserService, private authService: MsalService,public route:ActivatedRoute,private router: Router,\r\n ) {\r\n this.email = authService.getAccount().userName;\r\n }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.role = params['role'];\r\n // Loads data to grid\r\n this.dataStateChange(this.gridState,this.role);\r\n });\r\n }\r\n\r\n viewUserRoles(dataItem: any) {\r\n this.roleData = Object.assign({}, dataItem);\r\n\r\n this.OpenRoles=true;\r\n this.openRoleModalButton.nativeElement.click();\r\n}\r\naddUser(){\r\n this.roleArray=[];\r\n}\r\n updateUserList() {\r\n this.dataStateChange(this.gridState,this.role);\r\n }\r\n pageChange({ skip, take }: PageChangeEvent): void {\r\n this.skip = skip;\r\n this.pageSize = take;\r\n var t = (skip / this.pageSize) + 1;\r\n }\r\n dataStateChange(state: DataStateChangeEvent, role: string) {\r\n //this.skip = state.skip;\r\n //this.pageSize = state.take;\r\n\r\n \r\n this.gridState = state;\r\n var roles =JSON.parse(localStorage.getItem(\"isSuperAdmin\"));\r\n //var userRole = roles.filter(item => { return item == \"ImmigrationCompilation-Admin\" || item == \"SuperAdmin\" || item == \"CourierPackage-Admin\" || item ==\"LCACompliance-Admin\";})\r\n this.getUserData(state.skip, state.take);\r\n \r\n }\r\n\r\n getUserData(skip, take) {\r\n this.isPageReady = false;\r\n // Gets data from api\r\n this.userService.refreshUserList(this.email, this.role, skip, take, this.searchName).subscribe((data: any) => {\r\n // Binds the data to grid\r\n this.gridViewSearch = data.userList;\r\n this.totalCount = data.rowCount;\r\n //let filterData = this.gridViewSearch.filter(r => r.name.toLowerCase().includes(this.searchName)\r\n // || r.email.toLowerCase().includes(this.searchName)\r\n // );\r\n let dataParams = process(this.gridViewSearch, { skip: 0, take: this.pageSize }).data;\r\n this.gridView = { data: dataParams, total: this.totalCount };\r\n this.userList = data.userList;\r\n\r\n this.isPageReady = true;\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting data from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n deleteUser() {\r\n this.userService.deleteUser(this.deleteId).subscribe((data: any) => {\r\n this.confirmationDialog(false, data);\r\n this.dataStateChange(this.gridState,this.role);\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while deleting the user from server');\r\n this.isPageReady = true;\r\n }\r\n );\r\n }\r\n editUser(user: User , edit: boolean) {\r\n this.selectedUser = Object.assign({}, user);\r\n this.roleArray=[];\r\n\r\n this.selectedUser.userRoles.forEach(element => {\r\n this.roleArray.push({'id':element.roleId,'roleName':element.roleName});\r\n });\r\n \r\n this.openEditModalButton.nativeElement.click();\r\n }\r\n confirmationDialog(open: boolean, data) {\r\n // Opens the confirmation dialog\r\n if (open) {\r\n this.showConfirmation = true;\r\n } else {\r\n this.showConfirmation = false;\r\n }\r\n // setting the delete ID to global variable\r\n if (data) {\r\n this.deleteId = data.userId;\r\n } else {\r\n this.deleteId = 0;\r\n }\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.toLowerCase();\r\n this.searchName = filterValue;\r\n this.getUserData(0, this.pageSize);\r\n //this.dataStateChange(this.gridState, this.role);\r\n //let filterData = this.gridViewSearch.filter(r => r.name.toLowerCase().includes(filterValue)\r\n //|| r.email.toLowerCase().includes(filterValue)\r\n // );\r\n //this.gridState.skip = 0;\r\n //this.gridView = process(filterData, this.gridState);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { AddLCAService } from '../add-lca/service/add-lca.service';\r\nimport { DataStateChangeEvent } from '@progress/kendo-angular-grid';\r\nimport { process } from '@progress/kendo-data-query';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n\r\n@Component({\r\n selector: 'app-work-site-acknowledge',\r\n templateUrl: './work-site-acknowledge.component.html',\r\n styleUrls: ['./work-site-acknowledge.component.scss']\r\n})\r\nexport class WorkSiteAcknowledgeComponent implements OnInit {\r\n @ViewChild('openLCAInfoModalButton', { static: false }) openLcaModalButton: ElementRef;\r\n public pageSize = 5;\r\n public skip = 0;\r\n public notallowedWorkSite=[];\r\n rows=[];\r\n public workSiteData=[];\r\n public allowedWorkSite=[];\r\n public showData=false;\r\n public gridView:any;\r\n public lcaData=[];\r\n public partialWorkSite=[];\r\n public gridState: DataStateChangeEvent = {\r\n skip: this.skip,\r\n take: this.pageSize\r\n };\r\n constructor(public addLCAService: AddLCAService) { }\r\n\r\n ngOnInit() {\r\n var requestId=\"3SS135C86\";\r\n this.GetWorkSiteData(requestId);\r\n }\r\n\r\n\r\n viewLCAInfo(lcaData:any , edit: boolean) {\r\n this.lcaData=lcaData;\r\n \r\n this.openLcaModalButton.nativeElement.click();\r\n \r\n }\r\n\r\n \r\n GetWorkSiteData(requestId) {\r\n\r\n this.addLCAService.GetWorkSiteData(requestId).subscribe((data: any) => {\r\n this.workSiteData=data;\r\n this.workSiteData.forEach(item=>{\r\n if(item.recommendedOutput==\"Y\"){\r\n item.recommendedOutput=\"Allowed\";\r\n }\r\n else if(item.recommendedOutput==\"N\"){\r\n item.recommendedOutput=\"Not Allowed\";\r\n }\r\n else if(item.recommendedOutput==\"P\"){\r\n item.recommendedOutput=\"Partially Allowed\";\r\n }\r\n });\r\n this.gridView = process(this.workSiteData, this.gridState);\r\n this.showData=true;\r\n },\r\n (error) => {\r\n //this.notifier.notify('error', 'Error occured while updating the user details');\r\n }\r\n );\r\n }\r\n\r\n // GetLCAHistory(requestId) {\r\n \r\n // this.addLCAService.getLCAHistory(requestId).subscribe((data: any) => {\r\n // this.rows = data;\r\n // var datePipe = new DatePipe('en-US');\r\n // this.rows.forEach(item=>{\r\n // item.lcA_Validity_StartDate=datePipe.transform(item.lcA_Validity_StartDate, 'yyyy-MM-dd');\r\n // item.lcA_ExpiryDate=datePipe.transform(item.lcA_ExpiryDate, 'yyyy-MM-dd');\r\n\r\n // });\r\n // this.showData=true;\r\n // },\r\n // (error) => {\r\n // //this.notifier.notify('error', 'Error occured while updating the user details');\r\n // }\r\n // );\r\n // }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { InteractionRequiredAuthError, AuthError } from 'msal';\r\nimport { environment } from '../../environments/environment';\r\nimport { CommonService } from '../service/common.service';\r\nimport { Router } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { CheckUser } from '../immigrationcompilation/usermanagement/model/checkUser';\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.scss']\r\n})\r\n\r\nexport class NavMenuComponent implements OnInit {\r\n isExpanded = false;\r\n profile;\r\n photo: any = \"../../assets/images/user.jpg\";\r\n email;\r\n public isSuperAdmin=[];\r\n public isUserExist = null;\r\n private readonly notifier: NotifierService;\r\n ReportDate: any;\r\n constructor(private http: HttpClient, private commonService: CommonService, private router: Router, private authService: MsalService) {\r\n this.profile = authService.getAccount().name;\r\n this.email = authService.getAccount().userName;\r\n }\r\n\r\n ngOnInit() {\r\n this.getReportDate();\r\n this.getAvatar();\r\n this.getUserRole(this.email); \r\n }\r\n\r\n getReportDate(){\r\n this.commonService.getReportDate()\r\n .subscribe((data: any) => {\r\n this.commonService.updateDate({fromDate:data.reportDate,toDate:data.reportDate});\r\n this.commonService.setresetDate(data.reportDate);\r\n });\r\n }\r\n\r\n collapse() {\r\n this.isExpanded = false;\r\n }\r\n\r\n toggle() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n getAvatar() {\r\n this.http.get(environment.GraphUri + 'v1.0/users/' + this.email + '/photos/48x48/$value')\r\n .subscribe((photo: any) => {\r\n this.createImageFromBlob(photo);\r\n },\r\n () => {\r\n });\r\n }\r\n\r\n\r\n\r\n createImageFromBlob(image: Blob) {\r\n let reader = new FileReader();\r\n reader.addEventListener('load', () => {\r\n this.photo = reader.result;\r\n }, false);\r\n if (image) {\r\n reader.readAsDataURL(image);\r\n }\r\n }\r\n\r\n logout() {\r\n this.commonService.logoutSession().subscribe((data: any) => {\r\n this.authService.logout();\r\n });\r\n }\r\n getUserRole(email) {\r\n var user=new CheckUser();\r\n user.email=email;\r\n // Gets user role from api using email\r\n this.commonService.getUserRoleByEmail(user.email)\r\n .subscribe((data: any) => {\r\n // Navigates to accessdenied component if user doesn't exist\r\n if (data.length==0) {\r\n this.isUserExist = 'noaccess';\r\n localStorage.setItem('isUserExist', this.isUserExist);\r\n this.router.navigate(['/accessdenied']);\r\n } else {\r\n // Assigns values to local storage if user exists\r\n this.isUserExist = 'hasaccess';\r\n localStorage.setItem('isUserExist', this.isUserExist);\r\n \r\n var roleArray = data;\r\n this.isSuperAdmin = roleArray.map(a => a.roleName);\r\n localStorage.setItem('isSuperAdmin', JSON.stringify(this.isSuperAdmin));\r\n }\r\n },\r\n (error) => {\r\n this.notifier.notify('error', 'Error occured while getting user role from server');\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, throwError, BehaviorSubject } from 'rxjs';\r\nimport { retry, catchError } from 'rxjs/operators';\r\nimport { environment } from '../../environments/environment';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n private dataSource = new BehaviorSubject( {fromDate:new Date(),toDate:new Date()});\r\ncurrentData = this.dataSource.asObservable();\r\nprivate resetData = new BehaviorSubject( new Date());\r\n resetDate = this.resetData.asObservable();\r\n\r\n private dataSource1 = new BehaviorSubject({ fromDate: new Date(), toDate: new Date() });\r\n currentData1 = this.dataSource1.asObservable();\r\n\r\n constructor(private _http: HttpClient) { }\r\n CheckUserAdmin(user): Observable {\r\n return this._http.post(environment.ApiUrl + 'User/CheckUserAdmin',user , {});\r\n }\r\n\r\n getUserRoleByEmail(UserEmail: string) {\r\n return this._http.get(environment.ApiUrl + 'User/getUserRolesbyEmailId?emailId=' + UserEmail , {});\r\n }\r\n\r\n public updateDate(data: any) {\r\n this.dataSource.next(data);\r\n }\r\n public updateDate1(data: any) {\r\n this.dataSource1.next(data);\r\n }\r\n\r\n public setresetDate(data: any) {\r\n this.resetData.next(data);\r\n }\r\n\r\n getReportDate(): Observable {\r\n return this._http.get(environment.ApiUrl + 'Dashboard/getReportDate', {});\r\n }\r\n\r\n getCaseSummaryReportDate(): Observable {\r\n return this._http.get(environment.ApiUrl + 'daf/GetCaseSummaryReportDate', {});\r\n }\r\n\r\n getINSZoomReportDate(): Observable {\r\n return this._http.get(environment.ApiUrl + 'EYMPINSZoomIntegration/GetINSZoomReportDate', {});\r\n }\r\n\r\n logoutSession() : Observable {\r\n return this._http.post(environment.ApiUrl + \"User/LogoutUserSession\", null)\r\n .pipe(\r\n retry(1),\r\n catchError(this.handleError)\r\n )\r\n }\r\n\r\n\r\n handleError(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n errorMessage = error.error.message;\r\n } else {\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n return throwError(errorMessage);\r\n }\r\n\r\n\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\nexport const environment = {\r\n production: false,\r\n //ApiUrl: 'https://localhost:44369/api/',\r\n ApiUrl: 'https://ares.ey.com/api/',\r\n //ApiUrl: 'https://ares-ua.ey.com/api/',\r\n baseURL : 'http://localhost:60658/',\r\n APIScope: 'api://04b6f4c0-b568-4999-aed3-dccf14db68da/user_impersonation',\r\n GraphUri: 'https://graph.microsoft.com/',\r\n FrontEndClientId: '031ff1d7-61c7-43ca-ae5f-68348ef991aa',\r\n Authority: 'https://login.microsoftonline.com/EYGS.onmicrosoft.com/',\r\n //RedirectUri: 'https://localhost:44369'\r\n //RedirectUri: 'https://ares-ua.ey.com'\r\n RedirectUri: 'https://ares.ey.com'\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: []}\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"names":[],"sourceRoot":"webpack:///"}