{"version":3,"file":"main.js","mappings":"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,EAAE;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;SACR;QACD,KAAK,EAAE;YACL,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;SACd;KACF;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;SACP;QACD,KAAK,EAAE;YACL,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;SACd;KACF;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM;YACN,MAAM;YACN,MAAM;SACP;QACD,KAAK,EAAE;YACL,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAAa;YACb,aAA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","sources":["./src/app/Constants/genericType.ts","./src/app/Constants/jobs.ts","./src/app/Constants/legalTypes.ts","./src/app/Job/job-add/job-add.component.ts","./src/app/Job/job-add/job-add.component.html","./src/app/Job/job-addlayout/job-addlayout.component.ts","./src/app/Job/job-addlayout/job-addlayout.component.html","./src/app/Job/job-candidate-card/job-candidate-card.component.ts","./src/app/Job/job-candidate-card/job-candidate-card.component.html","./src/app/Job/job-candidates/job-candidates.component.ts","./src/app/Job/job-candidates/job-candidates.component.html","./src/app/Job/job-description-card/job-description-card.component.ts","./src/app/Job/job-description-card/job-description-card.component.html","./src/app/Job/job-description-card/jobStatusFilter.pipe.ts","./src/app/Job/job-description/job-description.component.ts","./src/app/Job/job-description/job-description.component.html","./src/app/Job/job-details-preview/job-details-preview.component.ts","./src/app/Job/job-details-preview/job-details-preview.component.html","./src/app/Job/job-details/job-details.component.ts","./src/app/Job/job-details/job-details.component.html","./src/app/Job/job-dialog/job-dialog.component.ts","./src/app/Job/job-dialog/job-dialog.component.html","./src/app/Job/job-education/job-education.component.ts","./src/app/Job/job-education/job-education.component.html","./src/app/Job/job-file-upload/job-file-upload.component.ts","./src/app/Job/job-file-upload/job-file-upload.component.html","./src/app/Job/job-fileview/job-fileview.component.ts","./src/app/Job/job-fileview/job-fileview.component.html","./src/app/Job/job-interview-schedule/job-interview-schedule.component.ts","./src/app/Job/job-interview-schedule/job-interview-schedule.component.html","./src/app/Job/job-interview/job-interview.component.ts","./src/app/Job/job-interview/job-interview.component.html","./src/app/Job/job-list/interfaces/job.model.ts","./src/app/Job/job-list/job-create-update/job-create-update.component.ts","./src/app/Job/job-list/job-create-update/Job-create-update.component.html","./src/app/Job/job-list/job-create-update/job-create-update.module.ts","./src/app/Job/job-list/job-list.component.ts","./src/app/Job/job-list/job-list.component.html","./src/app/Job/job-list/job-list.module.ts","./src/app/Job/job-list/style-paginator.directive.ts","./src/app/Job/job-notes/job-notes.component.ts","./src/app/Job/job-notes/job-notes.component.html","./src/app/Job/job-other/job-other.component.ts","./src/app/Job/job-other/job-other.component.html","./src/app/Job/job-preview/job-preview.component.ts","./src/app/Job/job-preview/job-preview.component.html","./src/app/Job/job-questionnaire/job-questionnaire.component.ts","./src/app/Job/job-questionnaire/job-questionnaire.component.html","./src/app/Job/job-routing.module.ts","./src/app/Job/job-skills/job-skills.component.ts","./src/app/Job/job-skills/job-skills.component.html","./src/app/Job/job-tabs/job-tabs.component.ts","./src/app/Job/job-tabs/job-tabs.component.html","./src/app/Job/job-upload/job-upload.component.ts","./src/app/Job/job-upload/job-upload.component.html","./src/app/Job/job-view-description/job-view-description.component.ts","./src/app/Job/job-view-description/job-view-description.component.html","./src/app/Job/job.module.ts","./src/app/Job/job.service.ts","./src/app/User/role.service.ts","./src/app/alert/external-action/external-action.component.ts","./src/app/alert/external-action/external-action.component.html","./src/app/alert/external.service.ts","./src/app/app-init.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auth-callback/auth-callback.component.ts","./src/app/boolean-search/additional-criteria/additional-criteria.component.ts","./src/app/boolean-search/additional-criteria/additional-criteria.component.html","./src/app/boolean-search/basic-search/basic-search.component.ts","./src/app/boolean-search/basic-search/basic-search.component.html","./src/app/boolean-search/boolean-search.component.ts","./src/app/boolean-search/boolean-search.component.html","./src/app/boolean-search/boolean-search.module.ts","./src/app/boolean-search/boolean-search.service.ts","./src/app/boolean-search/query-search/query-search.component.ts","./src/app/boolean-search/query-search/query-search.component.html","./src/app/boolean-search/suggested-keywords/suggested-keywords.component.ts","./src/app/boolean-search/suggested-keywords/suggested-keywords.component.html","./src/app/common/common.ts","./src/app/common/location/location.component.ts","./src/app/common/location/location.component.html","./src/app/common/location/location.constants.ts","./src/app/common/location/location.module.ts","./src/app/common/object-status-log/object-status-log.component.ts","./src/app/common/object-status-log/object-status-log.component.html","./src/app/company/assign-users-view/assign-users-view.component.ts","./src/app/company/assign-users-view/assign-users-view.component.html","./src/app/company/assign-users/assign-users.component.ts","./src/app/company/assign-users/assign-users.component.html","./src/app/company/company-accounting-view/company-accounting-view.component.ts","./src/app/company/company-accounting-view/company-accounting-view.component.html","./src/app/company/company-accounting/company-accounting.component.ts","./src/app/company/company-accounting/company-accounting.component.html","./src/app/company/company-card-list/company-card-list.component.ts","./src/app/company/company-card-list/company-card-list.component.html","./src/app/company/company-constants.ts","./src/app/company/company-contacts-view/company-contacts-view.component.ts","./src/app/company/company-contacts-view/company-contacts-view.component.html","./src/app/company/company-contacts/company-contacts.component.ts","./src/app/company/company-contacts/company-contacts.component.html","./src/app/company/company-details-view/company-details-view.component.ts","./src/app/company/company-details/company-basic-details.component.ts","./src/app/company/company-details/company-basic-details.component.html","./src/app/company/company-dialog/company-dialog.component.ts","./src/app/company/company-dialog/company-dialog.component.html","./src/app/company/company-documents-view/company-documents-view.component.ts","./src/app/company/company-documents-view/company-documents-view.component.html","./src/app/company/company-documents/company-documents.component.ts","./src/app/company/company-documents/company-documents.component.html","./src/app/company/company-jobsetting-view/company-jobsetting-view.component.ts","./src/app/company/company-jobsetting-view/company-jobsetting-view.component.html","./src/app/company/company-jobsetting/company-jobsetting.component.ts","./src/app/company/company-jobsetting/company-jobsetting.component.html","./src/app/company/company-list/company-list.component.ts","./src/app/company/company-list/company-list.component.html","./src/app/company/company-list/company-list.module.ts","./src/app/company/company-revenue-view/company-revenue-view.component.ts","./src/app/company/company-revenue-view/company-revenue-view.component.html","./src/app/company/company-revenue/company-revenue.component.ts","./src/app/company/company-revenue/company-revenue.component.html","./src/app/company/company-routing.module.ts","./src/app/company/company-tabs/company-tabs.component.ts","./src/app/company/company-tabs/company-tabs.component.html","./src/app/company/company-view-tabs/company-view-tabs.component.ts","./src/app/company/company-view-tabs/company-view-tabs.component.html","./src/app/company/company.module.ts","./src/app/company/company.service.ts","./src/app/constants/delete.constant.ts","./src/app/constants/genericType.ts","./src/app/constants/jobType.ts","./src/app/constants/loadingConstants.ts","./src/app/constants/page-path.ts","./src/app/constants/userRoles.constants.ts","./src/app/consultant/call-record-history/call-record-history.component.ts","./src/app/consultant/call-record-history/call-record-history.component.html","./src/app/consultant/consultant-activities/consultant-activities.component.ts","./src/app/consultant/consultant-activities/consultant-activities.component.html","./src/app/consultant/consultant-addlayout/consultant-addlayout.component.ts","./src/app/consultant/consultant-addlayout/consultant-addlayout.component.html","./src/app/consultant/consultant-calls/consultant-calls.component.ts","./src/app/consultant/consultant-calls/consultant-calls.component.html","./src/app/consultant/consultant-card-list/consultant-card-list.component.ts","./src/app/consultant/consultant-card-list/consultant-card-list.component.html","./src/app/consultant/consultant-chart/consultant-chart.component.ts","./src/app/consultant/consultant-chart/consultant-chart.component.html","./src/app/consultant/consultant-constants.ts","./src/app/consultant/consultant-credentials/consultant-credentials.component.ts","./src/app/consultant/consultant-credentials/consultant-credentials.component.html","./src/app/consultant/consultant-data.service.ts","./src/app/consultant/consultant-dialog/consultant-dialog.component.ts","./src/app/consultant/consultant-dialog/consultant-dialog.component.html","./src/app/consultant/consultant-email-logs/consultant-email-logs.component.ts","./src/app/consultant/consultant-email-logs/consultant-email-logs.component.html","./src/app/consultant/consultant-feedback/consultant-feedback.component.ts","./src/app/consultant/consultant-feedback/consultant-feedback.component.html","./src/app/consultant/consultant-fileview/consultant-fileview.component.ts","./src/app/consultant/consultant-fileview/consultant-fileview.component.html","./src/app/consultant/consultant-interview-list/consultant-interview-list.component.ts","./src/app/consultant/consultant-interview-list/consultant-interview-list.component.html","./src/app/consultant/consultant-job-list/consultant-job-list.component.ts","./src/app/consultant/consultant-job-list/consultant-job-list.component.html","./src/app/consultant/consultant-job-status-card-list/consultant-job-status-card-list.component.ts","./src/app/consultant/consultant-job-status-card-list/consultant-job-status-card-list.component.html","./src/app/consultant/consultant-job-status/consultant-job-status.component.ts","./src/app/consultant/consultant-job-status/consultant-job-status.component.html","./src/app/consultant/consultant-jobs/consultant-jobs.component.ts","./src/app/consultant/consultant-jobs/consultant-jobs.component.html","./src/app/consultant/consultant-jobs/consultantjobsfilter.pipe.ts","./src/app/consultant/consultant-list/consultant-list.component.ts","./src/app/consultant/consultant-list/consultant-list.component.html","./src/app/consultant/consultant-list/consultant-list.module.ts","./src/app/consultant/consultant-list/consultantjobstatus.pipe.ts","./src/app/consultant/consultant-notes/consultant-notes.component.ts","./src/app/consultant/consultant-notes/consultant-notes.component.html","./src/app/consultant/consultant-other/consultant-other.component.ts","./src/app/consultant/consultant-other/consultant-other.component.html","./src/app/consultant/consultant-profile/consultant-profile.component.ts","./src/app/consultant/consultant-profile/consultant-profile.component.html","./src/app/consultant/consultant-projects/consultant-projects.component.ts","./src/app/consultant/consultant-projects/consultant-projects.component.html","./src/app/consultant/consultant-qualifying-questions/consultant-qualifying-questions.component.ts","./src/app/consultant/consultant-qualifying-questions/consultant-qualifying-questions.component.html","./src/app/consultant/consultant-references/consultant-references.component.ts","./src/app/consultant/consultant-references/consultant-references.component.html","./src/app/consultant/consultant-resume/consultant-resume.component.ts","./src/app/consultant/consultant-resume/consultant-resume.component.html","./src/app/consultant/consultant-routing.module.ts","./src/app/consultant/consultant-skills/consultant-skills.component.ts","./src/app/consultant/consultant-skills/consultant-skills.component.html","./src/app/consultant/consultant-summary/consultant-summary.component.ts","./src/app/consultant/consultant-summary/consultant-summary.component.html","./src/app/consultant/consultant-tabs/consultant-tabs.component.ts","./src/app/consultant/consultant-tabs/consultant-tabs.component.html","./src/app/consultant/consultant.module.ts","./src/app/consultant/consultant.service.ts","./src/app/custom-layout/custom-layout.component.ts","./src/app/custom-layout/custom-layout.component.html","./src/app/custom-layout/custom-layout.module.ts","./src/app/dashboard/area-chart/area-chart.component.ts","./src/app/dashboard/area-chart/area-chart.component.html","./src/app/dashboard/area-chart/data.ts","./src/app/dashboard/area-spline-chart/area-spline-chart.component.ts","./src/app/dashboard/area-spline-chart/area-spline-chart.component.html","./src/app/dashboard/bar-chart/bar-chart.component.ts","./src/app/dashboard/bar-chart/bar-chart.component.html","./src/app/dashboard/basic-chart/basic-chart.component.ts","./src/app/dashboard/basic-chart/basic-chart.component.html","./src/app/dashboard/column-chart-job-statistics/column-chart-job-statistics.component.ts","./src/app/dashboard/column-chart-job-statistics/column-chart-job-statistics.component.html","./src/app/dashboard/column-chart/column-chart.component.ts","./src/app/dashboard/column-chart/column-chart.component.html","./src/app/dashboard/dashboard-routing.module.ts","./src/app/dashboard/dashboard.module.ts","./src/app/dashboard/dashboard.service.ts","./src/app/dashboard/dashboard/dashboard.component.ts","./src/app/dashboard/dashboard/dashboard.component.html","./src/app/dashboard/donut-chart/donut-chart.component.ts","./src/app/dashboard/donut-chart/donut-chart.component.html","./src/app/dashboard/job-categories-chart/job-categories-chart.component.ts","./src/app/dashboard/job-categories-chart/job-categories-chart.component.html","./src/app/dashboard/job-status-chart/job-status-chart.component.ts","./src/app/dashboard/job-status-chart/job-status-chart.component.html","./src/app/dashboard/line-chart/line-chart.component.ts","./src/app/dashboard/line-chart/line-chart.component.html","./src/app/dashboard/mobex/mobex.component.ts","./src/app/dashboard/mobex/mobex.component.html","./src/app/dashboard/spine-chart/spine-chart.component.ts","./src/app/dashboard/spine-chart/spine-chart.component.html","./src/app/directives/is-can-access.directive.ts","./src/app/enums/breadCrumbs.ts","./src/app/enums/callStatus.ts","./src/app/enums/candidateFilterName.ts","./src/app/enums/companyType.ts","./src/app/enums/consultantjobstatus.ts","./src/app/enums/dialogActions.ts","./src/app/enums/emailRequest.ts","./src/app/enums/external-action.ts","./src/app/enums/interviewDialogConstant.ts","./src/app/enums/interviewTypeIds.ts","./src/app/enums/job-status-text.ts","./src/app/enums/jobCandidate.ts","./src/app/enums/jobDialogType.ts","./src/app/enums/jobKeyWords.ts","./src/app/enums/jobType.ts","./src/app/enums/locationType.ts","./src/app/enums/lookUpValues.ts","./src/app/enums/markupType.ts","./src/app/enums/notesType.ts","./src/app/enums/resumeKeywords.ts","./src/app/enums/stepperButtonType.ts","./src/app/enums/submissionType.ts","./src/app/enums/unitsForFile.ts","./src/app/enums/userActions.ts","./src/app/enums/userRolesId.ts","./src/app/enums/valueType.ts","./src/app/enums/workOption.ts","./src/app/guards/auth.guard.ts","./src/app/guards/is-can-access-page.guard.ts","./src/app/helper/commonData.ts","./src/app/helper/errorStateMatcher.ts","./src/app/helper/phone-mask-directive.ts","./src/app/helper/two-digit-decimal-number-directive.ts","./src/app/job/job-add/job-add.component.ts","./src/app/job/job-add/job-add.component.html","./src/app/job/job-addlayout/job-addlayout.component.ts","./src/app/job/job-addlayout/job-addlayout.component.html","./src/app/job/job-candidate-card/job-candidate-card.component.ts","./src/app/job/job-candidate-card/job-candidate-card.component.html","./src/app/job/job-candidates/job-candidates.component.ts","./src/app/job/job-candidates/job-candidates.component.html","./src/app/job/job-description-card/job-description-card.component.ts","./src/app/job/job-description-card/job-description-card.component.html","./src/app/job/job-description-card/jobStatusFilter.pipe.ts","./src/app/job/job-description/job-description.component.ts","./src/app/job/job-description/job-description.component.html","./src/app/job/job-details-preview/job-details-preview.component.ts","./src/app/job/job-details-preview/job-details-preview.component.html","./src/app/job/job-details/job-details.component.ts","./src/app/job/job-details/job-details.component.html","./src/app/job/job-dialog/job-dialog.component.ts","./src/app/job/job-dialog/job-dialog.component.html","./src/app/job/job-education/job-education.component.ts","./src/app/job/job-education/job-education.component.html","./src/app/job/job-file-upload/job-file-upload.component.ts","./src/app/job/job-file-upload/job-file-upload.component.html","./src/app/job/job-fileview/job-fileview.component.ts","./src/app/job/job-fileview/job-fileview.component.html","./src/app/job/job-interview-schedule/job-interview-schedule.component.ts","./src/app/job/job-interview-schedule/job-interview-schedule.component.html","./src/app/job/job-interview/job-interview.component.ts","./src/app/job/job-interview/job-interview.component.html","./src/app/job/job-list/interfaces/job.model.ts","./src/app/job/job-list/job-create-update/job-create-update.component.ts","./src/app/job/job-list/job-create-update/Job-create-update.component.html","./src/app/job/job-list/job-create-update/job-create-update.module.ts","./src/app/job/job-list/job-list.component.ts","./src/app/job/job-list/job-list.component.html","./src/app/job/job-list/job-list.module.ts","./src/app/job/job-list/style-paginator.directive.ts","./src/app/job/job-notes/job-notes.component.ts","./src/app/job/job-notes/job-notes.component.html","./src/app/job/job-other/job-other.component.ts","./src/app/job/job-other/job-other.component.html","./src/app/job/job-preview/job-preview.component.ts","./src/app/job/job-preview/job-preview.component.html","./src/app/job/job-questionnaire/job-questionnaire.component.ts","./src/app/job/job-questionnaire/job-questionnaire.component.html","./src/app/job/job-routing.module.ts","./src/app/job/job-skills/job-skills.component.ts","./src/app/job/job-skills/job-skills.component.html","./src/app/job/job-tabs/job-tabs.component.ts","./src/app/job/job-tabs/job-tabs.component.html","./src/app/job/job-upload/job-upload.component.ts","./src/app/job/job-upload/job-upload.component.html","./src/app/job/job-view-description/job-view-description.component.ts","./src/app/job/job-view-description/job-view-description.component.html","./src/app/job/job.module.ts","./src/app/job/job.service.ts","./src/app/material.module.ts","./src/app/models/category.ts","./src/app/models/cloneJob.model.ts","./src/app/models/common.model.ts","./src/app/models/company.model.ts","./src/app/models/contact.model.ts","./src/app/models/drag-drop.model.ts","./src/app/pipes/candidatejobfilter.pipe.ts","./src/app/pipes/date-ago.pipe.ts","./src/app/pipes/null-value-replace.pipe.ts","./src/app/pipes/search.pipe.ts","./src/app/pipes/sorting.pipe.ts","./src/app/pipes/truncate.pipe.ts","./src/app/services/auth.services.ts","./src/app/services/authentication.service.ts","./src/app/services/authintercept.service.ts","./src/app/services/base.service.ts","./src/app/services/common-mat-dialog.service.ts","./src/app/services/common.service.ts","./src/app/services/consultants.service.ts","./src/app/services/dialog.service.ts","./src/app/services/loadcomponent.service.ts","./src/app/services/location.service.ts","./src/app/services/notification.service.ts","./src/app/services/signalR.service.ts","./src/app/shared-component/boolean-filter/boolean-filter.component.ts","./src/app/shared-component/boolean-filter/boolean-filter.component.html","./src/app/shared/action-dialog/action-dialog.component.ts","./src/app/shared/action-dialog/action-dialog.component.html","./src/app/shared/change-password/change-password.component.ts","./src/app/shared/change-password/change-password.component.html","./src/app/shared/core/animations/dropdown.animation.ts","./src/app/shared/core/animations/fade-in-up.animation.ts","./src/app/shared/core/animations/popover.animation.ts","./src/app/shared/core/animations/scale-in-out.animation.ts","./src/app/shared/core/animations/stagger.animation.ts","./src/app/shared/core/components/breadcrumbs/breadcrumb/breadcrumb.component.ts","./src/app/shared/core/components/breadcrumbs/breadcrumbs.component.ts","./src/app/shared/core/components/breadcrumbs/breadcrumbs.module.ts","./src/app/shared/core/components/chart/chart.component.ts","./src/app/shared/core/components/chart/chart.module.ts","./src/app/shared/core/components/config-panel/color-variables.ts","./src/app/shared/core/components/config-panel/config-panel-toggle/config-panel-toggle.component.ts","./src/app/shared/core/components/config-panel/config-panel-toggle/config-panel-toggle.component.html","./src/app/shared/core/components/config-panel/config-panel.component.ts","./src/app/shared/core/components/config-panel/config-panel.component.html","./src/app/shared/core/components/config-panel/config-panel.module.ts","./src/app/shared/core/components/highlight/highlight.directive.ts","./src/app/shared/core/components/highlight/highlight.model.ts","./src/app/shared/core/components/highlight/highlight.module.ts","./src/app/shared/core/components/highlight/highlight.service.ts","./src/app/shared/core/components/mega-menu/mega-menu.component.ts","./src/app/shared/core/components/mega-menu/mega-menu.component.html","./src/app/shared/core/components/mega-menu/mega-menu.module.ts","./src/app/shared/core/components/navigation-item/navigation-item.component.ts","./src/app/shared/core/components/navigation-item/navigation-item.component.html","./src/app/shared/core/components/navigation-item/navigation-item.module.ts","./src/app/shared/core/components/page-layout/page-layout-content.directive.ts","./src/app/shared/core/components/page-layout/page-layout-header.directive.ts","./src/app/shared/core/components/page-layout/page-layout.component.ts","./src/app/shared/core/components/page-layout/page-layout.module.ts","./src/app/shared/core/components/popover/popover-ref.ts","./src/app/shared/core/components/popover/popover.component.ts","./src/app/shared/core/components/popover/popover.component.html","./src/app/shared/core/components/popover/popover.module.ts","./src/app/shared/core/components/popover/popover.service.ts","./src/app/shared/core/components/progress-bar/progress-bar.component.ts","./src/app/shared/core/components/progress-bar/progress-bar.component.html","./src/app/shared/core/components/progress-bar/progress-bar.module.ts","./src/app/shared/core/components/scrollbar/scrollbar.component.ts","./src/app/shared/core/components/scrollbar/scrollbar.module.ts","./src/app/shared/core/components/search/search.component.ts","./src/app/shared/core/components/search/search.component.html","./src/app/shared/core/components/search/search.module.ts","./src/app/shared/core/components/secondary-toolbar/secondary-toolbar.component.ts","./src/app/shared/core/components/secondary-toolbar/secondary-toolbar.component.html","./src/app/shared/core/components/secondary-toolbar/secondary-toolbar.module.ts","./src/app/shared/core/components/share-bottom-sheet/share-bottom-sheet.component.ts","./src/app/shared/core/components/share-bottom-sheet/share-bottom-sheet.component.html","./src/app/shared/core/components/share-bottom-sheet/share-bottom-sheet.module.ts","./src/app/shared/core/components/sidebar/sidebar.component.ts","./src/app/shared/core/components/sidebar/sidebar.component.html","./src/app/shared/core/components/sidebar/sidebar.module.ts","./src/app/shared/core/components/widgets/widget-assistant/widget-assistant.component.ts","./src/app/shared/core/components/widgets/widget-assistant/widget-assistant.component.html","./src/app/shared/core/components/widgets/widget-assistant/widget-assistant.module.ts","./src/app/shared/core/components/widgets/widget-large-chart/widget-large-chart.component.ts","./src/app/shared/core/components/widgets/widget-large-chart/widget-large-chart.component.html","./src/app/shared/core/components/widgets/widget-large-chart/widget-large-chart.module.ts","./src/app/shared/core/components/widgets/widget-large-goal-chart/widget-large-goal-chart.component.ts","./src/app/shared/core/components/widgets/widget-large-goal-chart/widget-large-goal-chart.component.html","./src/app/shared/core/components/widgets/widget-large-goal-chart/widget-large-goal-chart.module.ts","./src/app/shared/core/components/widgets/widget-quick-line-chart/widget-quick-line-chart.component.ts","./src/app/shared/core/components/widgets/widget-quick-line-chart/widget-quick-line-chart.component.html","./src/app/shared/core/components/widgets/widget-quick-line-chart/widget-quick-line-chart.module.ts","./src/app/shared/core/components/widgets/widget-quick-value-center/widget-quick-value-center.component.ts","./src/app/shared/core/components/widgets/widget-quick-value-center/widget-quick-value-center.component.html","./src/app/shared/core/components/widgets/widget-quick-value-center/widget-quick-value-center.module.ts","./src/app/shared/core/components/widgets/widget-quick-value-start/widget-quick-value-start.component.ts","./src/app/shared/core/components/widgets/widget-quick-value-start/widget-quick-value-start.component.html","./src/app/shared/core/components/widgets/widget-quick-value-start/widget-quick-value-start.module.ts","./src/app/shared/core/components/widgets/widget-table/widget-table.component.ts","./src/app/shared/core/components/widgets/widget-table/widget-table.component.html","./src/app/shared/core/components/widgets/widget-table/widget-table.module.ts","./src/app/shared/core/directives/container/container.directive.ts","./src/app/shared/core/directives/container/container.module.ts","./src/app/shared/core/interfaces/config-name.model.ts","./src/app/shared/core/layout/footer/footer.component.ts","./src/app/shared/core/layout/footer/footer.component.html","./src/app/shared/core/layout/footer/footer.module.ts","./src/app/shared/core/layout/layout.component.ts","./src/app/shared/core/layout/layout.component.html","./src/app/shared/core/layout/layout.module.ts","./src/app/shared/core/layout/navigation/navigation.component.ts","./src/app/shared/core/layout/navigation/navigation.component.html","./src/app/shared/core/layout/navigation/navigation.module.ts","./src/app/shared/core/layout/quickpanel/quickpanel.component.ts","./src/app/shared/core/layout/quickpanel/quickpanel.component.html","./src/app/shared/core/layout/quickpanel/quickpanel.module.ts","./src/app/shared/core/layout/sidenav/sidenav-item/sidenav-item.component.ts","./src/app/shared/core/layout/sidenav/sidenav-item/sidenav-item.component.html","./src/app/shared/core/layout/sidenav/sidenav-item/sidenav-item.module.ts","./src/app/shared/core/layout/sidenav/sidenav.component.ts","./src/app/shared/core/layout/sidenav/sidenav.component.html","./src/app/shared/core/layout/sidenav/sidenav.module.ts","./src/app/shared/core/layout/toolbar/toolbar-notifications/toolbar-notifications-dropdown/toolbar-notifications-dropdown.component.ts","./src/app/shared/core/layout/toolbar/toolbar-notifications/toolbar-notifications-dropdown/toolbar-notifications-dropdown.component.html","./src/app/shared/core/layout/toolbar/toolbar-notifications/toolbar-notifications.component.ts","./src/app/shared/core/layout/toolbar/toolbar-notifications/toolbar-notifications.component.html","./src/app/shared/core/layout/toolbar/toolbar-notifications/toolbar-notifications.module.ts","./src/app/shared/core/layout/toolbar/toolbar-search/toolbar-search.component.ts","./src/app/shared/core/layout/toolbar/toolbar-search/toolbar-search.component.html","./src/app/shared/core/layout/toolbar/toolbar-search/toolbar-search.module.ts","./src/app/shared/core/layout/toolbar/toolbar-user/toolbar-user-dropdown/toolbar-user-dropdown.component.ts","./src/app/shared/core/layout/toolbar/toolbar-user/toolbar-user-dropdown/toolbar-user-dropdown.component.html","./src/app/shared/core/layout/toolbar/toolbar-user/toolbar-user.component.ts","./src/app/shared/core/layout/toolbar/toolbar-user/toolbar-user.component.html","./src/app/shared/core/layout/toolbar/toolbar-user/toolbar-user.module.ts","./src/app/shared/core/layout/toolbar/toolbar.component.ts","./src/app/shared/core/layout/toolbar/toolbar.component.html","./src/app/shared/core/layout/toolbar/toolbar.module.ts","./src/app/shared/core/leap-core.module.ts","./src/app/shared/core/pipes/date-tokens/date-tokens.module.ts","./src/app/shared/core/pipes/date-tokens/date-tokens.pipe.ts","./src/app/shared/core/pipes/relative-date-time/relative-date-time.module.ts","./src/app/shared/core/pipes/relative-date-time/relative-date-time.pipe.ts","./src/app/shared/core/pipes/strip-html/strip-html.module.ts","./src/app/shared/core/pipes/strip-html/strip-html.pipe.ts","./src/app/shared/core/services/config.service.ts","./src/app/shared/core/services/configs.ts","./src/app/shared/core/services/layout.service.ts","./src/app/shared/core/services/navigation.service.ts","./src/app/shared/core/services/search.service.ts","./src/app/shared/core/services/splash-screen.service.ts","./src/app/shared/core/services/style.service.ts","./src/app/shared/core/utils/check-router-childs-data.ts","./src/app/shared/core/utils/create-date-array.ts","./src/app/shared/core/utils/default-chart-options.ts","./src/app/shared/core/utils/merge-deep.ts","./src/app/shared/core/utils/track-by.ts","./src/app/shared/dialog/dialog.component.ts","./src/app/shared/dialog/dialog.component.html","./src/app/shared/drag-drop-files/drag-drop-files.component.ts","./src/app/shared/drag-drop-files/drag-drop-files.component.html","./src/app/shared/drag-drop-files/file-drag-drop.directive.ts","./src/app/shared/filters/filter-model.service.ts","./src/app/shared/filters/filters.component.ts","./src/app/shared/filters/filters.component.html","./src/app/shared/filters/models/select-dropdown-option.model.ts","./src/app/shared/global-paginator/global-paginator.component.ts","./src/app/shared/global-paginator/global-paginator.component.html","./src/app/shared/home-toolbar/home-toolbar.component.ts","./src/app/shared/home-toolbar/home-toolbar.component.html","./src/app/shared/interview-dialog/interview-dialog.component.ts","./src/app/shared/interview-dialog/interview-dialog.component.html","./src/app/shared/notes-dialog/notes-dialog.component.ts","./src/app/shared/notes-dialog/notes-dialog.component.html","./src/app/shared/notes-dialog/notes-dialog.service.ts","./src/app/shared/observable-service.ts","./src/app/shared/page-not-found/page-not-found.component.ts","./src/app/shared/page-not-found/page-not-found.component.html","./src/app/shared/password-change-dialog/password-change-dialog.component.ts","./src/app/shared/password-change-dialog/password-change-dialog.component.html","./src/app/shared/pipes/jobcandidatesfilter.pipe.ts","./src/app/shared/preview-mail/preview-mail.component.ts","./src/app/shared/preview-mail/preview-mail.component.html","./src/app/shared/shared.module.ts","./src/app/user/permission-routing.module.ts","./src/app/user/permission.module.ts","./src/app/user/role-permission/role-permission.component.ts","./src/app/user/role-permission/role-permission.component.html","./src/app/user/role-permission/rolepermission.module.ts","./src/environments/environment.ts","./src/main.ts","./src/static-data/aio-table-data.ts"],"sourcesContent":["export class GenericTypes\r\n{\r\n public static readonly DefaultResumeLastUpdated = 7;\r\n public static readonly JobToConultantSearchPageSize = 50;\r\n public static readonly DefaultPageSize = 10;\r\n public static readonly DefaultPageNumber = 1;\r\n}","export class JobTypes\r\n{\r\n public static readonly Contract = \"Contract\";\r\n public static readonly ContractToHire = \"Contract To Hire\";\r\n public static readonly Permanent = \"Permanent\";\r\n}"," export class LegalTypes\r\n{\r\n public static readonly USCitizen = \"US Citizen\";\r\n public static readonly TNVisa = \"TN Visa\";\r\n public static readonly GreeenCard = \"Green Card\";\r\n public static readonly H1B = \"H1B\";\r\n public static readonly EAD_CPT = \"EAD - CPT\";\r\n public static readonly EAD_GC = \"EAD - GC\";\r\n public static readonly EAD_H4 = \"EAD - H4\";\r\n public static readonly EAD_OPT = \"EAD - OPT\";\r\n public static readonly EAD_TN = \"EAD - TN\";\r\n public static readonly EAD_L2 = \"EAD - L2\";\r\n public static readonly CanadianCitizen = \"canadian citizen\";\r\n public static readonly EB1 = \"Eb-1\";\r\n public static readonly EB2 = \"Eb-2\";\r\n public static readonly EB3 = \"Eb-3\";\r\n public static readonly H4 = \"H4\";\r\n public static readonly J1 = \"J-1\";\r\n public static readonly J2 = \"J-2\";\r\n}","import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core'\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'\r\nimport { map, switchMap, takeUntil, withLatestFrom } from 'rxjs/operators'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { JobDialogTypes } from 'src/app/enums/jobDialogType'\r\nimport { JOB_ADD_ACTION, JOB_DELETE_ACTION, JOB_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport {\r\n BackgroundCheck,\r\n Contact,\r\n DegreeType,\r\n iJob,\r\n iJobCertification,\r\n iJobEducation,\r\n iJobInterviewType,\r\n iJobLegalType,\r\n InterviewType,\r\n JobType,\r\n LegalType,\r\n Skill,\r\n SkillLevel,\r\n User,\r\n WorkOptions,\r\n JobData,\r\n} from 'src/app/models/job.model'\r\nimport { fadeInUp400ms } from 'src/app/shared/core/animations/fade-in-up.animation'\r\nimport { JobDialogComponent } from '../job-dialog/job-dialog.component'\r\nimport { Observable, of, Subject } from 'rxjs'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { JobService } from '../job.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { Company, iCompany } from 'src/app/models/company.model'\r\nimport { forbiddenNamesValidator } from '../job-details/job-details.component'\r\nimport { iCategory, iKeyValue, iStates } from 'src/app/models/common.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { ConfigTypeId } from 'src/app/enums/valueType'\r\nimport { LookUpTypesIds } from 'src/app/enums/lookUpValues'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { CategoryValues } from 'src/app/models/category'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'\r\nimport { MatChipInputEvent } from '@angular/material/chips'\r\nimport { ActivatedRoute } from '@angular/router'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { MatDrawer } from '@angular/material/sidenav'\r\nimport { Router } from '@angular/router'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\nimport { MatSelectChange } from '@angular/material/select'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { LocationService } from 'src/app/services/location.service'\r\n@Component({\r\n selector: 'leap-job-add',\r\n templateUrl: './job-add.component.html',\r\n styleUrls: ['./job-add.component.scss'],\r\n animations: [fadeInUp400ms],\r\n})\r\nexport class JobAddComponent implements OnInit, OnDestroy, AfterViewInit {\r\n isViewOnly = false // Control for disabled state\r\n acceptFiletype = ['.doc', '.docx', '.pdf'] // Supported file types\r\n files: File[] = [] // Store selected files\r\n fileName: string\r\n jobForm: FormGroup\r\n jobDetails: FormGroup\r\n @ViewChild('booleanTextarea', { static: false }) booleanTextarea: ElementRef\r\n @ViewChild('alternateTextarea', { static: false }) alternateTextarea: ElementRef\r\n @ViewChild('sidenav') sidenav: MatDrawer\r\n private _destroy$: Subject = new Subject()\r\n job: iJob = {}\r\n jobDetail: any\r\n jobId: number\r\n expiryDate: any\r\n jobEducations: any\r\n similarTitles: Array = new Array()\r\n isShowAdvance: boolean = false\r\n booleanQuery: any\r\n alternateQuery: any\r\n loading: boolean = false\r\n typeOfItemToBeDeleted: string\r\n indexOfItemToBeDeleted: number\r\n jobSkillData: iJob = Common.activeJob\r\n deleteIconSrc = Common.RedDeleteIcon\r\n jobStatus = Common.enumJobStatuses\r\n public IsAddJobPermission: boolean\r\n education: string\r\n jobAddAction = JOB_ADD_ACTION\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobDeleteAction = JOB_DELETE_ACTION\r\n certificationArray: Array = []\r\n educationcArray: Array = []\r\n selectedEducations = []\r\n jobEducationCertificationData: iJob\r\n certifications: string\r\n locationList:any\r\n public get jobDialogType(): typeof JobDialogTypes {\r\n return JobDialogTypes\r\n }\r\n salaryDisplayOptions$: Observable = this.jobService.getLookup('SalaryDisplayTypeID') as Observable<\r\n iKeyValue[]\r\n >\r\n isFileUploaded: boolean = false\r\n jobskillArray: any[] = []\r\n softSkillNames: any[] = []\r\n reqSkillCount: number = 0\r\n skills = []\r\n skillLevels: SkillLevel[]\r\n calledFrom: string\r\n hideLocation: boolean\r\n workOptions: WorkOptions[]\r\n selectedWorkOptionID: number\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n selectedCompanyId: number\r\n jobLocation: iLocation\r\n jobTypevalue: number\r\n minBillRate = 1\r\n // travelPercent: HTMLTemplateElement\r\n @ViewChild('travelPercentage', { static: false }) travelPercent: ElementRef\r\n showSalary: boolean\r\n showBillRate: boolean\r\n jobtypes: JobType[]\r\n minStartDate: Date = new Date()\r\n minEndDate: Date = new Date()\r\n matcher = new CustomErrorStateMatcher()\r\n maxSubmissionDate: Date\r\n minDate: Date = new Date()\r\n titles: any = []\r\n companies: any = []\r\n programManager: any = []\r\n activeJob = Common.activeJob\r\n hiringManager: any = []\r\n isMSPClient: boolean\r\n selectedMspContactId: number\r\n selectedContactId: number\r\n tempHiringManager: any\r\n tempProgramManager: any\r\n industries: any = []\r\n tempCompanies: any\r\n selectedIndustryId: number\r\n categories: any = []\r\n selectedCategoryId: number\r\n selectedCategory: any\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedSkillKey: any\r\n selectedLegalTypes: number[] = []\r\n selectedLegalTypeArray: MatTableDataSource\r\n legalTypes:MatTableDataSource\r\n selectedBackgroundChecks = []\r\n workTypeID: number = 1\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n legalTypeCrtl: FormControl\r\n legaltypes: LegalType[]\r\n interviewTypeCrtl: FormControl\r\n interviewtypes: InterviewType[]\r\n selectedInterviewTypeArray: MatTableDataSource = new MatTableDataSource()\r\n backGroundCrtl: FormControl\r\n backgroundchecks: BackgroundCheck[]\r\n selectedBakGrdChkArrayItems = []\r\n selectedDegree: string\r\n degreeType: DegreeType[]\r\n isJobEdited: boolean = false\r\n selectedCertifications: Array = []\r\n selectable = true\r\n removable = true\r\n selectedCertificateForDelete: any\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n addCertificationOnBlur: boolean = true\r\n addSoftSkillOnBlur: boolean = true\r\n skip: boolean = false\r\n isLocationRequired: boolean = true\r\n isLocationFormChanged: boolean = false\r\n filterCities: any[] = []\r\n StreetAddress: string\r\n States: string\r\n City: string\r\n ZipCode: string\r\n filteredStates: iStates[] = []\r\n states: iStates[] = []\r\n jobData: JobData\r\n jobid: number\r\n isSidenavOpened = true\r\n ClientName: string\r\n ClientContactPhone: string\r\n ClientContactName: string\r\n ClientContactEmail: string\r\n isSkipBtn: boolean\r\n isTravelRequired: boolean = false\r\n IsVendorAllowed:boolean=false\r\n singleFileUpload(fileInput: HTMLInputElement) {\r\n const file = fileInput.files[0]\r\n if (file) {\r\n this.files.push(file)\r\n this.fileName = file.name\r\n }\r\n }\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private notifyService: NotificationService,\r\n private jobService: JobService,\r\n private authService: AuthenticationService,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private commonService: CommonService,\r\n private _activatedRoute: ActivatedRoute,\r\n private consultantService: ConsultantService,\r\n private _companyService: CompanyService,\r\n private locationService:LocationService\r\n ) {\r\n this.isSkipBtn = this.router?.getCurrentNavigation()?.extras?.state?.skip ?? false\r\n this.legalTypeCrtl = new FormControl()\r\n this.backGroundCrtl = new FormControl()\r\n this.interviewTypeCrtl = new FormControl()\r\n this.jobDetails = this.formBuilder.group({\r\n phone: [''],\r\n JobTitleName: ['', Validators.required],\r\n CompanyContact: [''],\r\n MspContact: [''],\r\n JobSimiliarTitleName: [''],\r\n CompanyName: [null, Validators.required],\r\n Description: ['', Validators.required],\r\n LocationID: [0],\r\n JobCode: [''],\r\n IndustryName: [''],\r\n JobCategory: ['', Validators.required],\r\n SpecializedSkill: [''],\r\n SkillLevel: [''],\r\n WorkOptionId: [],\r\n JobTypeID: ['', Validators.required],\r\n MaxBillRate: [],\r\n MinSalary: [],\r\n MaxSalary: [],\r\n // ScreenQuestion: [],\r\n AnswerHint: [],\r\n ExternalPortal: [],\r\n NoOfPosition: [],\r\n MaxSubmission: [],\r\n maxSubmission:[],\r\n NoOfHoursWeek: [],\r\n TravelRequired: [false],\r\n TravelPercentage: [null],\r\n StartDate: ['', Validators.required],\r\n EndDate: [null],\r\n ExpiryDate: [null],\r\n BackgroundCheck: [],\r\n PostedFor: ['', Validators.required],\r\n SecondaryRecruiterId: [],\r\n VendorAllowedId: [],\r\n IsVendorAllowed:[],\r\n Education: [],\r\n backGroundCrtl: [],\r\n legalTypeCrtl: [],\r\n AlternateQuery: [],\r\n BooleanQuery: [],\r\n Address: [''],\r\n Address1: [''],\r\n CreatedBy: [],\r\n StreetAddress: [],\r\n State: ['', Validators.required],\r\n City: ['', Validators.required],\r\n ZipCode: [],\r\n workTypeID: [],\r\n interviewTypeCrtl: [],\r\n JobSkills: [],\r\n SalaryDisplayTypeID: [],\r\n StateCode: [''],\r\n StateID: [''],\r\n ObjectId: [''],\r\n LocationTypeID: [''],\r\n ObjectTypeId: [''],\r\n UpdatedBy: [],\r\n FullAddress: [''],\r\n LegalTypeId: [],\r\n MinExperience: [0, Validators.required],\r\n MaxExperience: [],\r\n HiringManager:[],\r\n ProgramManager:[],\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jobService.getClients().subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobDetails.get('CompanyName').setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.job.JobId > 0) {\r\n this.selectedCompanyId = this.job.CompanyId\r\n this.companyChangeAction(this.job.CompanyId)\r\n }\r\n })\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.getLookupValues()\r\n }\r\n if (Common.lookUp != null) {\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == 'WorkOptionID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == 'WorkOptionID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n }\r\n this.jobid = this._activatedRoute.snapshot.params['id']\r\n if (this.jobid) {\r\n this.loading = true\r\n this.jobService\r\n .getJob(this.jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (JobDetails) => {\r\n this.loading = false\r\n this.jobDetail = { ...JobDetails }\r\n this.jobId = this.jobDetail?.JobId || 0\r\n this.selectedCompanyId = this.jobDetail?.CompanyId\r\n if (this.selectedCompanyId) {\r\n this.getRecruiters(this.selectedCompanyId)\r\n }\r\n if (!this.jobDetail?.WorkHours) {\r\n this.jobForm.get('NoOfHoursWeek').setValue(40)\r\n }\r\n this.similarTitles = this.jobDetail?.SimilarTitles?.split(',').map((title) => title?.trim())\r\n this.booleanQuery = this.jobDetail?.BooleanQuery\r\n this.alternateQuery = this.jobDetail?.AlternateBooleanQuery\r\n this.jobskillArray = this.jobDetail?.JobSkills\r\n this.jobEducations = this.jobDetail?.JobEducations\r\n this.selectedCertifications = this.jobDetail?.JobCertifications\r\n this.StreetAddress = this.jobDetail?.Location?.StreetAddress\r\n // this.skillLevels = this.skillLevels.filter((x) => x.Value == this.jobDetail?.SkillLevelID)\r\n this.States = this.jobDetail?.Location?.State\r\n this.City = this.jobDetail?.Location?.City\r\n this.ZipCode = this.jobDetail?.Location?.ZipCode\r\n this.JobTypeChange(this.jobDetail?.JobTypeID)\r\n this.bindFormData(JobDetails)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n console.error('Error fetching job details:', error)\r\n },\r\n })\r\n }\r\n\r\n this.jobService.GetJobCategory().subscribe((res) => {\r\n this.categories = res as iCategory[]\r\n })\r\n this.getJobIndustries()\r\n this.setJobClientsOption()\r\n this.getJobDeatils()\r\n this.jobDetails.valueChanges.subscribe({\r\n next: (data) => {\r\n Common.activeJob = data\r\n this.jobDetail = data\r\n Common.activeJob.JobCertifications = this.selectedCertifications\r\n Common.activeJob.JobEducations = this.selectedEducations\r\n },\r\n })\r\n this.isSidenavOpened = true\r\n }\r\n toggleSidenav() {\r\n // this.sidenav.toggle();\r\n // this.isSidenavOpened = this.sidenav.opened;\r\n this.isSidenavOpened = !this.isSidenavOpened\r\n }\r\n\r\n closeSidenav() {\r\n // this.sidenav.close();\r\n this.isSidenavOpened = false\r\n }\r\n ngAfterViewInit() {\r\n if (this.travelPercent) {\r\n this.travelPercent.nativeElement.style.display = 'none'\r\n }\r\n }\r\n getJobDeatils() {\r\n this.jobService\r\n .getIsJobUploaded()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (isTrue) => {\r\n this.skip = isTrue\r\n this.jobDetails.get('NoOfPosition').setValue(1)\r\n this.jobDetails.get('NoOfHoursWeek').setValue(40)\r\n this.jobDetails.get('SalaryDisplayTypeID').setValue(240)\r\n this.jobDetails.get('ExternalPortal').setValue('Confidential')\r\n },\r\n error: () => {},\r\n })\r\n\r\n this.jobService\r\n .getAddJob()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (JobDetails: any) => {\r\n Common.activeJob = JobDetails\r\n this.jobId = JobDetails?.JobId || 0\r\n this.expiryDate = JobDetails?.ExpiryDate\r\n if (JobDetails?.WorkOption) {\r\n this.onWorkOptionSet(JobDetails?.WorkOption)\r\n }\r\n this.jobDetail = JobDetails\r\n this.selectedCompanyId = this.jobDetail?.CompanyId\r\n if (this.selectedCompanyId) {\r\n this.getRecruiters(this.selectedCompanyId)\r\n }\r\n // this.similarTitles = JobDetails?.SimilarTitles?.split(',').map((title) => title?.trim())\r\n this.booleanQuery = JobDetails?.BooleanQuery\r\n this.alternateQuery = JobDetails?.AlternateBooleanQuery\r\n this.jobskillArray = JobDetails?.JobSkills\r\n this.jobEducations = JobDetails?.JobEducations\r\n this.JobTypeChange(this.jobDetail?.JobTypeID)\r\n this.bindFormData(JobDetails)\r\n this.getTextAreaRows()\r\n this.getAlternateQueryTextAreaRows()\r\n },\r\n })\r\n }\r\n getTextAreaRows(): number {\r\n const charactersPerRow = 200\r\n const rowCount = Math.ceil(this.booleanQuery?.length / charactersPerRow)\r\n return Math.max(rowCount, 1)\r\n }\r\n getAlternateQueryTextAreaRows(): number {\r\n const charactersPerRow = 200\r\n const rowCount = Math.ceil(this.alternateQuery?.length / charactersPerRow)\r\n return Math.max(rowCount, 1)\r\n }\r\n bindFormData(job: any) {\r\n const LEGAL_TYPE_ID_LIST = job?.JobLegalTypes?.map((legalType) => legalType.LegalTypeId)\r\n const INTERVIEW_TYPE_ID_LIST = job?.JobInterviewTypes?.map((legalType) => legalType.InterviewTypeId)\r\n this.similarTitles = job?.SimilarTitles ? [...job.SimilarTitles.split(',')] : this.similarTitles\r\n\r\n this.selectedCertifications = job?.JobCertifications\r\n // this.jobDetails.get('phone').setValue(job)\r\n this.jobDetails.get('JobTitleName').setValue(job?.JobTitleName || '')\r\n this.jobDetails.get('CompanyContact').setValue(job?.CompanyContact || 0)\r\n this.jobDetails.get('MspContact').setValue(job?.MspContact || 0)\r\n this.jobDetails.get('CompanyName').setValue(job?.CompanyName || '')\r\n this.jobDetails.get('Description').setValue(job?.Description || '')\r\n this.jobDetails.get('LocationID').setValue(job?.LocationID || 0)\r\n this.jobDetails.get('JobCode').setValue(job?.JobCode || '0')\r\n this.jobDetails.get('IndustryName').setValue(job?.IndustryName || '')\r\n this.jobDetails.get('JobCategory').setValue(job?.JobCategory || '')\r\n this.jobDetails.get('SpecializedSkill').setValue(job?.SpecializedSkill || 0)\r\n this.jobDetails.get('SkillLevel').setValue(job?.SkillLevel?.toString() || '')\r\n this.jobDetails.get('WorkOptionId').setValue(job?.WorkOptionId || 0)\r\n this.jobDetails.get('JobTypeID').setValue(job?.JobTypeID || 0)\r\n this.jobDetails.get('MaxBillRate').setValue(job?.MaxBillRate || 0)\r\n this.jobDetails.get('MinSalary').setValue(job?.MinSalary || 0)\r\n this.jobDetails.get('MaxSalary').setValue(job?.MaxSalary || 0)\r\n this.jobDetails.get('JobSimiliarTitleName').setValue(this.similarTitles || '')\r\n // this.jobDetails.get('ScreenQuestion').setValue(job)\r\n // this.jobDetails.get('AnswerHint').setValue(job)\r\n this.jobDetails.get('SalaryDisplayTypeID').setValue(job?.SalaryDisplayTypeID ? job?.SalaryDisplayTypeID : 239)\r\n this.jobDetails.get('NoOfPosition').setValue(job?.Positions === 0 ? 1 : job?.Positions)\r\n this.jobDetails.get('MaxSubmission').setValue(job?.MaxSubmissionCount || job?.MaxSubmission)\r\n this.jobDetails.get('MaxSubmission').setValue(job?.MaxSubmissionCount || 0)\r\n this.jobDetails\r\n .get('NoOfHoursWeek')\r\n .setValue(\r\n job?.WorkHours === 0 || job?.WorkHours === undefined || job?.WorkHours === null ? 40 : job?.WorkHours\r\n )\r\n this.jobDetails.get('TravelRequired').setValue(job?.TravelRequired || false)\r\n this.isTravelRequired = this.jobDetails.get('TravelRequired')?.value\r\n this.jobDetails.get('TravelPercentage').setValue(job?.TravelPercentage || 0)\r\n this.jobDetails.get('StartDate').setValue(job?.StartDate || '')\r\n this.jobDetails.get('EndDate').setValue(job?.EndDate || '')\r\n this.jobDetails.get('ExpiryDate').setValue(job?.ExpiryDate || '')\r\n this.jobDetails.get('BackgroundCheck').setValue([...(job?.BackgroundCheckId || [])])\r\n this.jobDetails.get('PostedFor').setValue(job?.PostedFor || '')\r\n this.jobDetails.get('SecondaryRecruiterId').setValue(job?.SecondaryRecruiterId || 0)\r\n this.jobDetails.get('IsVendorAllowed').setValue(job?.IsVendorAllowed || '')\r\n this.IsVendorAllowed=this.jobDetails.get('IsVendorAllowed')?.value\r\n this.jobDetails.get('VendorAllowedId').setValue(job?.VendorAllowedId || '')\r\n this.jobDetails.get('Education').setValue(job?.JobEducations || '')\r\n if(job?.BackgroundCheckId){\r\n this.jobDetails.get('backGroundCrtl').setValue(job?.BackgroundCheckId || 0)\r\n }else{\r\n this.companyJobSetting(this.selectedCompanyId)\r\n }\r\n this.jobDetails.get('legalTypeCrtl').setValue(LEGAL_TYPE_ID_LIST || [])\r\n this.jobDetails.get('interviewTypeCrtl').setValue(INTERVIEW_TYPE_ID_LIST || [])\r\n this.jobDetails.get('AlternateQuery').setValue(job?.AlternateBooleanQuery)\r\n this.jobDetails.get('BooleanQuery').setValue(job?.BooleanQuery)\r\n this.jobDetails.get('StreetAddress').setValue(job?.Location?.StreetAddress || '')\r\n this.jobDetails.get('City').setValue(job?.Location?.City || '')\r\n this.jobDetails.get('State').setValue(job?.Location?.State || '')\r\n this.jobDetails.get('ZipCode').setValue(job?.Location?.ZipCode || '')\r\n this.jobDetails.get('workTypeID').setValue(this.workTypeID || '')\r\n this.jobDetails.get('HiringManager').setValue(this.jobDetails.value.CompanyContact || '')\r\n this.jobDetails.get('ProgramManager').setValue(this.jobDetails.value.MspContact || '')\r\n }\r\n companyJobSetting(companyId) {\r\n if (Common.ConfigValues != null) {\r\n var backgroundChecks = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.BackgroundChecks && //backgroundChecks\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n let backgroundChecksIds: number[] = []\r\n backgroundChecksIds = backgroundChecks.split(',').map((item) => Number(item))\r\n this.jobDetails.get('backGroundCrtl').setValue(backgroundChecksIds)\r\n this.selectedBackgroundChecks = [...backgroundChecksIds]\r\n\r\n var workAuth = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.Work_Authorization && //work authorization\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n\r\n let waIds: any[] = []\r\n waIds = workAuth.split(',').map((item) => Number(item))\r\n\r\n let jobLegalData: iJobLegalType[] = []\r\n let legalTypesSelected: any[] = []\r\n for (let index = 0; index < waIds.length; index++) {\r\n legalTypesSelected.push(waIds[index])\r\n jobLegalData.push({\r\n JobId: this.jobId,\r\n LegalTypeId: waIds[index],\r\n CreatedBy: this.authService.userInfo.userID,\r\n JobLegalTypeId: 0,\r\n CreatedDate: new Date(),\r\n UpdatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n })\r\n }\r\n // Add US Citizen as default- requried\r\n legalTypesSelected.push(8)\r\n\r\n this.jobDetails.get('legalTypeCrtl').setValue(legalTypesSelected)\r\n this.selectedLegalTypes = [...legalTypesSelected]\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobSetting) => {\r\n if (jobSetting) {\r\n var maxSubmit\r\n var vendorAllowed:boolean\r\n var StreetAddress=''\r\n var jc = jobSetting\r\n .filter((option) => option?.CategoryID == this.activeJob?.JobCategoryID)\r\n .map((x) => Number(x?.CategoryID))\r\n if (jc.indexOf(this.activeJob?.JobCategoryID) > -1) {\r\n //A specific category\r\n maxSubmit = jobSetting\r\n .filter((option) => option?.CategoryID == this.activeJob?.JobCategoryID)\r\n .map((x) => x?.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option?.CategoryID == this.activeJob?.JobCategoryID)\r\n .map((x) => Boolean(x?.IsVendorAllowed))[0]\r\n } else {\r\n //All-Other category\r\n maxSubmit = jobSetting\r\n .filter((option) => option?.CategoryID == CategoryValues?.CategoryTypeID_ALL)\r\n .map((x) => x?.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option?.CategoryID == CategoryValues?.CategoryTypeID_ALL)\r\n .map((x) => Boolean(x?.IsVendorAllowed))[0]\r\n }\r\n if (maxSubmit) {\r\n if (this.jobDetails.get('MaxSubmissionCount')?.value == '') {\r\n this.jobDetails.get('MaxSubmissionCount').setValue(maxSubmit)\r\n }\r\n }\r\n if(this.jobDetails.value.MaxSubmission ===undefined || this.jobDetails.value.MaxSubmission===0 || this.jobDetails.value.MaxSubmission ==='') {\r\n maxSubmit = jobSetting[0].MaxSubmit\r\n this.jobDetails.get('MaxSubmission').setValue(maxSubmit)\r\n } \r\n if(jobSetting[0].IsVendorAllowed) {\r\n //this.jobDetails.get('VendorAllowedId').setValue(vendorAllowed)\r\n const isAllowed=jobSetting[0].IsVendorAllowed\r\n this.jobDetails.get('IsVendorAllowed').setValue(isAllowed)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n setJobClientsOption() {\r\n this.jobService\r\n .getClientsByUserId(this.authService.userInfo.userID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobDetails\r\n .get('CompanyName')\r\n .setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.activeJob?.JobId > 0) {\r\n this.companyChangeAction(this.activeJob.CompanyId)\r\n }\r\n if (this.activeJob?.CompanyId) {\r\n this._checkForMspClientForJob()\r\n }\r\n })\r\n }\r\n private _checkForMspClientForJob() {\r\n const JOB_CLIENT: Company = this.companies?.find((company) => company?.CompanyId === this.activeJob?.CompanyId)\r\n if (JOB_CLIENT?.CompanyTypeID === CompanyType.MSP || JOB_CLIENT?.MSPCompanyID !== null) {\r\n this.isMSPClient = true\r\n } else {\r\n this.isMSPClient = false\r\n }\r\n }\r\n getJobIndustries() {\r\n this.jobService\r\n .GetJobIndustry()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.industries = res as iCategory[]\r\n })\r\n }\r\n getSkillNamesArray(skillsArray) {\r\n let skillNamesArray = []\r\n skillsArray?.forEach((skill) => {\r\n skillNamesArray.push(skill?.SkillName)\r\n })\r\n return skillNamesArray\r\n }\r\n editSkill(skill, editSkillIndex) {\r\n let skillNamesArrayForEdit = [...this.jobskillArray]\r\n skillNamesArrayForEdit.splice(editSkillIndex, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillToBeEdited: skill,\r\n skillNamesArray: this.getSkillNamesArray(skillNamesArrayForEdit),\r\n method: 'Edit',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n if (editSkillIndex < 0 && !data?.formData?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n this.jobskillArray.filter((skillItem, index) => index != editSkillIndex)\r\n this.jobskillArray = [\r\n ...this.jobskillArray.slice(0, editSkillIndex),\r\n {\r\n ...skill,\r\n Experience: data?.formData?.Experience,\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n LastUsed: data?.formData?.LastUsed,\r\n SkillTypeId: 151,\r\n },\r\n ...this.jobskillArray.slice(editSkillIndex + 1),\r\n ]\r\n this.updateJobSkills(this.jobskillArray)\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n }\r\n }\r\n })\r\n }\r\n addSkill() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillNamesArray: this.getSkillNamesArray(this.jobskillArray),\r\n method: 'Add',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n this.loading = false\r\n if (typeof this.jobskillArray == 'undefined') this.jobskillArray = []\r\n this.jobskillArray?.push({\r\n JobSkillID: null,\r\n JobID: this.jobId,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: data?.formData?.Experience,\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n SkillTypeId: 151,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n Common.activeJob.JobSkills = this.jobskillArray\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n }\r\n })\r\n }\r\n updateJobSkills(skillData) {\r\n if (!this.jobSkillData) {\r\n this.jobSkillData = { JobSkills: [] }\r\n }\r\n\r\n this.jobSkillData.JobSkills.push(skillData)\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n }\r\n editSoftSkill(skill, editSkillIndex) {\r\n let skillNamesArrayForEdit = [...this.jobskillArray]\r\n skillNamesArrayForEdit.splice(editSkillIndex, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillToBeEdited: skill,\r\n skillNamesArray: this.getSkillNamesArray(skillNamesArrayForEdit),\r\n method: 'Edit',\r\n isSoftSkill: true,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n if (editSkillIndex < 0 && !data?.formData?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n this.loading = true\r\n this.jobskillArray.filter((skillItem, index) => index != editSkillIndex)\r\n this.jobskillArray = [\r\n ...this.jobskillArray.slice(0, editSkillIndex),\r\n {\r\n ...skill,\r\n SkillName: data?.formData?.SkillName,\r\n Required: false,\r\n SkillTypeId: 152,\r\n },\r\n ...this.jobskillArray.slice(editSkillIndex + 1),\r\n ]\r\n this.updateSoftSkills(this.jobskillArray)\r\n }\r\n }\r\n })\r\n }\r\n addSoftSkill(event:any): void {\r\n const input = event.target.input\r\n const value = event.target.value\r\n if (!this.jobskillArray) {\r\n this.jobskillArray = []\r\n }\r\n\r\n if ((value || '').trim()) {\r\n const existingSkill = this.jobskillArray.find(\r\n (skill) => skill.SkillName.toLowerCase() === value.trim().toLowerCase()\r\n )\r\n if (!existingSkill) {\r\n this.jobskillArray.push({\r\n JobSkillID: null,\r\n JobID: this.jobId,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: 0,\r\n SkillName: value.trim(),\r\n Required: false,\r\n SkillTypeId: 152,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n\r\n Common.activeJob.JobSkills = this.jobskillArray\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n const inputElement = document.querySelector('.softSkill') as HTMLInputElement\r\n if (inputElement) {\r\n inputElement.value = ''\r\n }\r\n this.notifyService.showSuccess('Soft skill added successfully', '')\r\n } else {\r\n this.notifyService.showError('This soft skill is already added!', '')\r\n }\r\n }\r\n }\r\n\r\n updateSoftSkills(skillData) {\r\n if (!this.jobSkillData) {\r\n this.jobSkillData = { JobSkills: [] } // Initialize if undefined\r\n }\r\n this.jobSkillData.JobSkills.push(skillData)\r\n\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n }\r\n openDeleteConfirmationDialog(\r\n templateRef: TemplateRef,\r\n typeOfItemToBeDeleted: string,\r\n deletedItemIndex: number\r\n ) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.typeOfItemToBeDeleted = typeOfItemToBeDeleted\r\n this.indexOfItemToBeDeleted = deletedItemIndex\r\n this.dialog.afterAllClosed.pipe(takeUntil(this._destroy$)).subscribe((res) => {\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n })\r\n }\r\n SoftSkillDeleteConfirmationDialog(\r\n templateRef: TemplateRef,\r\n typeOfItemToBeDeleted: string,\r\n deletedItemIndex: number\r\n ) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.typeOfItemToBeDeleted = typeOfItemToBeDeleted\r\n this.indexOfItemToBeDeleted = deletedItemIndex\r\n this.dialog.afterAllClosed.pipe(takeUntil(this._destroy$)).subscribe((res) => {\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n })\r\n }\r\n deleteItem() {\r\n switch (this.typeOfItemToBeDeleted) {\r\n // case JobDialogTypes.Questionnaire:\r\n // let tempQuestionArray = [...this.questioneArray]\r\n // tempQuestionArray.splice(this.indexOfItemToBeDeleted, 1)\r\n // this.updateJobQuestionnaire(tempQuestionArray)\r\n // break\r\n case JobDialogTypes.Skills:\r\n if (this.reqSkillCount <= 1 && this.jobskillArray[this.indexOfItemToBeDeleted]?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n let tempSkillArray = [...this.jobskillArray]\r\n tempSkillArray.splice(this.indexOfItemToBeDeleted, 1)\r\n this.updateJobSkills(tempSkillArray)\r\n }\r\n break\r\n default:\r\n this.notifyService.showError('The delete operation could not be performed', '')\r\n }\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n this.dialog.closeAll()\r\n }\r\n\r\n editEducation() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Education,\r\n educationcArray: this.educationcArray,\r\n certificateArray: this.certificationArray,\r\n formData: this.activeJob,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Education) {\r\n if (\r\n this.jobDetail?.JobId == null ||\r\n this.jobDetail.JobId == 0 ||\r\n this.jobDetail.JobId == undefined\r\n ) {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n return\r\n }\r\n let certifications = []\r\n certifications = data?.certifications\r\n this.selectedEducations = []\r\n this.selectedEducations.push({\r\n JobEductionID: data.formData.JobEducations.JobEductionID,\r\n JobID: 0,\r\n EducationID: 0,\r\n EducationName: data.formData?.JobEducations,\r\n CreatedBy: this.authService.userInfo.userID,\r\n UpdatedBy: null,\r\n UpdatedDate: null,\r\n IsActive: true,\r\n })\r\n this.jobEducationCertificationData = { JobId: Common.activeJob?.JobId }\r\n this.jobEducationCertificationData.JobEducations = this.selectedEducations\r\n this.jobEducationCertificationData.JobCertifications = certifications\r\n this.loading = true\r\n this.jobService\r\n .AddJobCertAndEdu(this.jobEducationCertificationData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '')\r\n this.bindCertification(this.activeJob?.JobId)\r\n this.bindEducation(this.activeJob?.JobId)\r\n this.jobService\r\n .getJob(this.activeJob?.JobId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.activeJob = res\r\n Common.activeJob = res\r\n })\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save education and certifications!', '')\r\n return\r\n }\r\n )\r\n }\r\n })\r\n }\r\n bindEducation(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobEducation(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.educationcArray = res as iJobEducation[]\r\n this.education = this.educationcArray.map((x) => x.EducationName).join(', ')\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n bindCertification(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobCertification(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.certificationArray = res as iJobCertification[]\r\n this.certifications = this.certificationArray.map((x) => x.CertificationName).join(', ')\r\n\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n onSelectedSkillName(cat) {\r\n this.selectedSpecializedSkillId = cat.SkillID\r\n }\r\n onSelectedSkillLevel(skillLevel) {\r\n this.selectedSkillLevelId = skillLevel.Value\r\n this.selectedSkillKey = skillLevel.Key\r\n }\r\n\r\n JobTypeChange(selectedValue) {\r\n this.jobTypevalue = selectedValue\r\n if (this.jobTypevalue !== 12) {\r\n this.jobDetails.get('EndDate').addValidators([Validators.required])\r\n } else {\r\n this.jobDetails.get('EndDate').clearValidators()\r\n }\r\n this.jobDetails.get('EndDate').updateValueAndValidity()\r\n //this.minSalary=15000;\r\n this.minBillRate = 1\r\n if (selectedValue == Common.enumJobContractType.JT_C2C) {\r\n // Contract ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = false\r\n this.jobDetails.controls['MaxSalary'].clearValidators()\r\n this.jobDetails.get('MaxSalary').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_C2H) {\r\n // Contract to hire ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = true\r\n this.jobDetails.get('MaxSalary').setValue('')\r\n this.jobDetails.get('MaxBillRate').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_PERM) {\r\n // Permanent\r\n this.showBillRate = false\r\n this.showSalary = true\r\n\r\n //this.minSalary=null;\r\n this.minBillRate = 0\r\n this.jobDetails.controls['MaxBillRate'].clearValidators()\r\n this.jobDetails.controls['MaxSalary'].clearValidators()\r\n this.jobDetails.get('MaxBillRate').setValue('')\r\n }\r\n }\r\n\r\n isFormFieldIsValid(field: string) {\r\n return (\r\n this.jobDetails.get(field).invalid &&\r\n (this.jobDetails.get(field).dirty || this.jobDetails.get(field).touched)\r\n )\r\n }\r\n\r\n startDateChangesHandler(event) {\r\n this.minEndDate = new Date(new Date(event.value).setDate(event.value.getDate() + 1))\r\n this.maxSubmissionDate = event.value.getDate()\r\n }\r\n\r\n submissionDateChangesHandler(event) {\r\n this.minDate = event.value\r\n this.minStartDate = event.value.getDate() + 1\r\n this.minEndDate = event.value.getDate() + 2\r\n }\r\n\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (this.jobDetails.get('JobTitleName').value.length > 0) {\r\n this.jobService.getJobTitles(this.jobDetails.get('JobTitleName').value).subscribe((res) => {\r\n this.titles = res\r\n })\r\n }\r\n }\r\n\r\n isJobFormFieldValid(field: string) {\r\n return (\r\n this.jobDetails.get(field).invalid &&\r\n (this.jobDetails.get(field).dirty || this.jobDetails.get(field).touched)\r\n )\r\n }\r\n\r\n onSelectedCompany(company) {\r\n this.selectedCompanyId = company.CompanyId\r\n this.companyChangeAction(this.selectedCompanyId)\r\n this.companyJobSetting(this.selectedCompanyId)\r\n this.getRecruiters(this.selectedCompanyId)\r\n const primary_recruiter = this.authService.userInfo.roles[0].roleID === UserRoleId.RECRUITER\r\n if (primary_recruiter) {\r\n const userId = this.authService.userInfo.userID\r\n this.jobDetails.get('PostedFor').setValue(userId)\r\n }\r\n this.isMSPClient = company.MSPCompanyID > 0 ? true : false\r\n this.companyChangeAction(this.selectedCompanyId)\r\n \r\n }\r\n\r\n companyChangeAction(CompanyId) {\r\n this.hiringManager = null\r\n this.programManager = null\r\n this.selectedMspContactId = 0\r\n this.selectedContactId = 0\r\n\r\n this.jobDetails.get('CompanyContact').setValue('')\r\n this.jobDetails.get('MspContact').setValue('')\r\n\r\n this.jobService.getHiringManagers(CompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n this.tempHiringManager = res as Contact[]\r\n if (this.job.CompanyContact) {\r\n this.hiringManager.forEach((item) => {\r\n if (item.FirstName + ' ' + item.LastName === this.job.CompanyContact) {\r\n this.jobDetails.get('CompanyContact').setValue(item.FirstName + ' ' + item.LastName)\r\n }\r\n })\r\n this.selectedContactId = this.job.CustomerContactId\r\n } else if (this.hiringManager.length == 1) {\r\n this.jobDetails\r\n .get('CompanyContact')\r\n .setValue(this.hiringManager[0].FirstName + ' | ' + this.hiringManager[0].EmailAddress)\r\n this.selectedContactId = this.hiringManager[0].ContactID\r\n }else{\r\n this.jobDetails.get('CompanyContact').setValue('')\r\n }\r\n })\r\n this.jobService.getProgramManager(CompanyId).subscribe((res) => {\r\n this.programManager = res as Contact[]\r\n this.tempProgramManager = res as Contact[]\r\n if (this.isMSPClient) {\r\n this.jobDetails.get('MspContact').setValue(this.programManager[0].FirstName +' '+this.programManager[0].LastName)\r\n } else this.jobDetails.get('MspContact').setValue('')\r\n })\r\n if(this.jobDetails.value.IndustryName){\r\n this.jobDetails.get('IndustryName').setValue(this.jobDetails.value.IndustryName)\r\n }else{\r\n this.jobService.getCompanyByCompanyId(CompanyId).subscribe((res) => {\r\n if (res) {\r\n let industry = this.industries.filter((x) => x.CategoryID === res.IndustryID)\r\n if (industry.length > 0) {\r\n this.jobDetails.get('IndustryName').setValue(industry[0]['Name'])\r\n this.selectedIndustryId = res.IndustryID\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n onCompanyKeyPressed(event: string): void {\r\n if (event) {\r\n this.companies = this.tempCompanies.filter((company) =>\r\n company.Name.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.companies = this.tempCompanies\r\n }\r\n }\r\n\r\n onSelectedCategory(cat) {\r\n this.selectedCategory = cat\r\n this.categorySkills(this.selectedCategory.CategoryID)\r\n }\r\n\r\n categorySkills(selectedValue) {\r\n this.jobService.GetJobSpecializedSkills(selectedValue).subscribe((res) => {\r\n this.skills = res as Skill[]\r\n })\r\n }\r\n\r\n onSelectedContact(contact) {\r\n this.selectedContactId = contact.ContactID\r\n }\r\n\r\n salaryDisplayType: any\r\n selectedSalaryDisplayType: any\r\n\r\n salaryDisplayTypeChanged(event) {\r\n this.salaryDisplayType = event.value\r\n this.salaryDisplayOptions$.subscribe((res) => {\r\n this.selectedSalaryDisplayType = res.find((x) => x.Value == this.salaryDisplayType)\r\n this.jobDetails.get('ExternalPortal').setValue(this.selectedSalaryDisplayType.Key)\r\n })\r\n }\r\n\r\n onHiringManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.hiringManager = this.tempHiringManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.hiringManager = this.tempHiringManager\r\n }\r\n }\r\n\r\n recruiterHandler(event: any) {\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != event)\r\n // Common.activeJob.RecruiterName = this.primaryRecruiters.find((x) => x.UserID == event).UserName\r\n // this.jobDetails.get('PostedFor').setValue(this.primaryRecruiters.find((x) => x.UserID == event).FirstName + ' | ' + this.primaryRecruiters.find((x) => x.UserID == event).Email);\r\n }\r\n\r\n // secondaryrecruiterHandler(event: any) {\r\n // // Common.activeJob.SecondaryRecruiter = this.secondaryRecruiters.find((x) => x.UserID == event).UserName\r\n // this.jobDetails.get('SecondaryRecruiterId').setValue(this.primaryRecruiters.find((x) => x.UserID == event).FirstName + ' | ' + this.secondaryRecruiters.find((x) => x.UserID == event).Email);\r\n // }\r\n // onSelectLegalTypes(event: { isUser Input: any; source: { value: any; selected: any } }) {\r\n // // Existing logic...\r\n // this.updateLegalTypesNames(); // Call this method to refresh the legal types\r\n // }\r\n\r\n onSelectLegalTypes(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobLegalType[] = []\r\n if (this.selectedLegalTypeArray != null) {\r\n jldata = this.selectedLegalTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.jobId,\r\n LegalTypeId: event.source.value,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.LegalTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n Common.activeJob.JobLegalTypes = jldata\r\n }\r\n\r\n onSelectInterviewType(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobInterviewType[] = []\r\n if (this.selectedInterviewTypeArray != null) {\r\n jldata = this.selectedInterviewTypeArray.data\r\n } else if (this.jobDetail != null) {\r\n jldata = this.jobDetail.JobInterviewTypes\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobInterviewTypeId: 0,\r\n JobId: this.jobId,\r\n InterviewTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.InterviewTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n onSelectBackGroundCheck(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.selectedBakGrdChkArrayItems.push(event.source.value)\r\n } else {\r\n const index: number = this.selectedBakGrdChkArrayItems.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.selectedBakGrdChkArrayItems.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job.PostedFor)\r\n this.jobService.setRecruiter(res)\r\n // this.jobForm.get('PostedFor').setValue(this.job.PostedFor)\r\n // this.jobForm.get('SecondaryRecruiterId').setValue(this.job.SecondaryRecruiterId)\r\n // this.isLoaded = true\r\n })\r\n }\r\n getLookupValues() {\r\n this.commonService.getConfig().subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getStatus().subscribe(\r\n (status) => {\r\n Common.wfStatus = status\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n this.commonService.getStates().subscribe((state) => {\r\n Common.states = state\r\n })\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n this.isJobEdited = true\r\n moveItemInArray(this.selectedCertifications, event.previousIndex, event.currentIndex)\r\n }\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.selectedCertificateForDelete = i\r\n }\r\n addCertification(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if (this.selectedCertifications === undefined) {\r\n this.selectedCertifications = []\r\n }\r\n if ((value || '').trim()) {\r\n this.selectedCertifications.push({\r\n JobCertificationID: null,\r\n JobID: 0,\r\n CertificationID: 0,\r\n CertificationName: value.trim(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n Common.activeJob.JobCertifications = this.selectedCertifications\r\n Common.activeJob.JobEducations = this.selectedEducations\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n removeCertification(keyword: any): void {\r\n this.isJobEdited = true\r\n let index = this.selectedCertifications.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.selectedCertifications.splice(index, 1)\r\n }\r\n this.dialog.closeAll()\r\n }\r\n handelEvent() {\r\n this.skip = true\r\n }\r\n\r\n onWorkOptionChange(event) {\r\n this.selectedWorkOptionID = event\r\n if (event == WorkOption.Remote) {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n this.hideLocation = true\r\n // remove validation of street address, city, state, zip code\r\n this.jobDetails.get('StreetAddress').clearValidators()\r\n this.jobDetails.get('City').clearValidators()\r\n this.jobDetails.get('State').clearValidators()\r\n this.jobDetails.get('ZipCode').clearValidators()\r\n } else if (event == WorkOption.Onsite) {\r\n this.isLocationRequired = true\r\n this.jobService.getCompanyLocations(this.selectedCompanyId, 1).subscribe((response) => {\r\n this.jobDetails.get('StreetAddress').setValue(response[0].StreetAddress)\r\n this.jobDetails.get('City').setValue(response[0].City)\r\n this.jobDetails.get('ZipCode').setValue(response[0].ZipCode)\r\n this.jobDetails.get('State').setValue(response[0].State)\r\n this.jobDetails.get('FullAddress').setValue(response[0].FullAddress)\r\n })\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n this.hideLocation = false\r\n }\r\n }\r\n\r\n onWorkOptionSet(event) {\r\n if (event == 'Remote') {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n this.hideLocation = true\r\n // remove validation of street address, city, state, zip code\r\n this.jobDetails.get('StreetAddress').clearValidators()\r\n this.jobDetails.get('City').clearValidators()\r\n this.jobDetails.get('State').clearValidators()\r\n this.jobDetails.get('ZipCode').clearValidators()\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n this.hideLocation = false\r\n }\r\n }\r\n\r\n defaultSetting() {\r\n // this.jobDetails.get('Positions').setValue(1)\r\n this.jobDetails.get('WorkHours').setValue(40)\r\n this.jobDetails.get('JobTypeID').setValue(10)\r\n this.jobDetails.get('MinRate').setValue('')\r\n this.jobDetails.get('MaxBillRate').setValue('')\r\n this.jobDetails.get('MinSalary').setValue('')\r\n this.jobDetails.get('MaxSalary').setValue('')\r\n this.JobTypeChange(10)\r\n // this.ParseJobText() // Todo: need to uncomment later\r\n\r\n this.workTypeID = 1\r\n\r\n let ltSelected: any[] = []\r\n let jldata: iJobLegalType[] = []\r\n ltSelected.push(8)\r\n jldata.push({\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n onSelectedProgramManager(contact) {\r\n this.selectedMspContactId = contact.ContactID\r\n }\r\n\r\n onMSPManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.programManager = this.tempProgramManager?.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.programManager = this.tempProgramManager\r\n }\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId, statusID, comments, userID).subscribe((result) => {\r\n result\r\n })\r\n }\r\n addLocation(jobData) {\r\n const LOCATION: iLocation = {} as iLocation\r\n LOCATION.Address1 = this.jobDetails.value.Address1 || ''\r\n LOCATION.Address = this.jobDetails.value.Address || ''\r\n LOCATION.City = this.jobDetails.value.City || ''\r\n LOCATION.CreatedBy = this.authService.userInfo.userID || 0\r\n LOCATION.CreatedDate = new Date()\r\n LOCATION.FullAddress = this.jobDetails.value.FullAddress || null\r\n ;(LOCATION.IsActive = true), (LOCATION.LocationID = 0)\r\n LOCATION.LocationTypeID = this.jobDetails.value.LocationTypeID || 0\r\n LOCATION.ObjectId = this.jobDetails.value.ObjectId || 0\r\n LOCATION.ObjectTypeId = this.jobDetails.value.ObjectTypeId || 0\r\n LOCATION.State = this.jobDetails.value.State || ''\r\n LOCATION.StreetAddress = this.jobDetails.value.StreetAddress || ''\r\n LOCATION.StateID = this.jobDetails.value.StateID || 0\r\n LOCATION.ZipCode = this.jobDetails.value.ZipCode || 0\r\n LOCATION.UpdatedBy = this.authService.userInfo.userID || null\r\n LOCATION.UpdatedDate = new Date()\r\n\r\n return this._companyService.AddLocation(LOCATION).pipe(takeUntil(this._destroy$))\r\n }\r\n\r\n onPostJob(statusId, templateRef: TemplateRef) {\r\n if (this.jobDetails.invalid) {\r\n if (this.selectedWorkOptionID != WorkOption.Remote) {\r\n this.jobDetails.markAllAsTouched()\r\n } else {\r\n this.jobDetails.get('StreetAddress').clearValidators()\r\n this.jobDetails.get('City').clearValidators()\r\n this.jobDetails.get('State').clearValidators()\r\n this.jobDetails.get('ZipCode').clearValidators()\r\n\r\n this.jobDetails.get('StreetAddress').updateValueAndValidity()\r\n this.jobDetails.get('City').updateValueAndValidity()\r\n this.jobDetails.get('State').updateValueAndValidity()\r\n this.jobDetails.get('ZipCode').updateValueAndValidity()\r\n }\r\n return\r\n }\r\n this.loading = true\r\n this.jobService\r\n .getCompanyByCompanyId(this.selectedCompanyId)\r\n .pipe(\r\n withLatestFrom(this.jobService.addJob$),\r\n switchMap(([res, jobUploadData]) => {\r\n if (!this.isSkipBtn) {\r\n return this.addLocation(jobUploadData).pipe(\r\n map((location) => {\r\n return [res, jobUploadData, location]\r\n })\r\n )\r\n } else if (this.isSkipBtn) {\r\n const jobUploadData = {\r\n location: {\r\n LocationID: this.jobDetails.value.LocationID || 0,\r\n LocationTypeID: this.jobDetails.value.LocationTypeID || 0,\r\n ObjectId: this.jobDetails.value.JobId || 0,\r\n ObjectTypeId: this.jobDetails.value.ObjectTypeId || 0,\r\n Address: '',\r\n FullAddress: '',\r\n Address1: '',\r\n StreetAddress: this.jobDetails.value.StreetAddress || '',\r\n City: this.jobDetails.value.City || '', // Corrected to this.jobDetails.City\r\n State: this.jobDetails.value.State || '',\r\n StateID: this.jobDetails.value.StateID || 0,\r\n ZipCode: this.jobDetails.value.ZipCode || 0,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n StateCode: this.jobDetails.value.StateCode || 0,\r\n },\r\n }\r\n\r\n return this.addLocation(jobUploadData).pipe(\r\n map((location) => {\r\n return [res, jobUploadData, location]\r\n })\r\n )\r\n }\r\n }),\r\n switchMap(([res, jobUploadData, location]) => {\r\n if (res) {\r\n this.ClientName = res.Name\r\n this.ClientContactPhone = res.Phone\r\n this.ClientContactEmail = res.EmailAddress\r\n\r\n let job: iJob = Common.activeJob\r\n let similarJobTitles: string\r\n if (Array.isArray(this.jobDetails.value.JobSimiliarTitleName)) {\r\n similarJobTitles = this.jobDetails.value.JobSimiliarTitleName?.toString()\r\n } else {\r\n similarJobTitles = this.jobDetails.value.JobSimiliarTitleName\r\n }\r\n this.jobDetail.value\r\n this.jobData = {\r\n job: {\r\n JobId: this.jobId || 0,\r\n JobCode: this.jobDetails.value.JobCode || '0',\r\n JobTitleID: this.jobDetails?.value?.JobTitleID || 0,\r\n JobTitleName: this.jobDetails.value.JobTitleName || '',\r\n IsDisplayExternal: this.job.IsDisplayExternal || false,\r\n SimilarTitles: similarJobTitles || '',\r\n BooleanQuery: this.jobDetails.value.BooleanQuery || '',\r\n AlternateBooleanQuery: this.jobDetails.value.AlternateQuery || '',\r\n StartDate: this.jobDetails.value.StartDate || null,\r\n EndDate: this.jobDetails.value.EndDate || null,\r\n JobTypeID: this.jobDetails.value.JobTypeID || 0,\r\n Description: this.jobDetails.value.Description || '',\r\n JobDetails: this.jobDetails.value.JobDetails || '',\r\n MaxSubmissionCount: this.jobDetails.value.MaxSubmission || 0,\r\n MaxBillRate: Number(this.jobDetails.value.MaxBillRate) || 0,\r\n MinBillRate: Number(this.jobDetails.value.MinBillRate) || 0,\r\n MaxSalary: Number(this.jobDetails.value.MaxSalary) || 0,\r\n MinSalary: Number(this.jobDetails.value.MinSalary) || 0,\r\n InterviewTypeID: this.jobDetails.value.InterviewTypeID || 0,\r\n OverTimeRequired: this.jobDetails.value.OverTimeRequired || false,\r\n OverTimeRate: this.jobDetails.value.OverTimeRate || 0,\r\n TravelRequired: this.jobDetails.value.TravelRequired ? true : false,\r\n TravelPercentage: Number(this.jobDetails.value.TravelPercentage) || 0,\r\n ExpiryDate: this.jobDetails.value.ExpiryDate || null,\r\n ClientContactEmail: this.ClientContactEmail || '',\r\n ClientContactName: this.ClientContactName || '',\r\n ClientContactPhone: this.ClientContactPhone || '',\r\n ClientName: this.ClientName || '',\r\n CustomerContactId: this.selectedContactId || 0,\r\n MspContactId: this.selectedMspContactId || 0,\r\n HiringManager:this.jobDetails.value.HiringManager || '',\r\n ProgramManager:this.jobDetails.value.MspContact||'',\r\n WorkHours: this.jobDetails.value.NoOfHoursWeek || 40,\r\n WorkTypeID: this.workTypeID || 0,\r\n PostedBy: this.authService.userInfo.userID || 0,\r\n PostedDate: new Date(),\r\n PostedFor: this.jobDetails.value.PostedFor || 0,\r\n Positions: this.jobDetails.value.NoOfPosition || 0,\r\n SecondaryRecruiterId: this.jobDetails.value.SecondaryRecruiterId || 0,\r\n IsHot: this.jobDetails.value.IsHot || false,\r\n IsVendorAllowed:this.jobDetails.value.IsVendorAllowed ?true :false,\r\n VendorAllowedId: this.jobDetails.value.VendorAllowedId ? 1 : 0,\r\n LocationID: this.jobDetails.value.LocationID || 0,\r\n BackgroundCheckId: this.jobDetails.value.backGroundCrtl.join(',') || '',\r\n IndustryID: this.selectedIndustryId || 0,\r\n JobCategoryID: this.selectedCategory.CategoryID || 0,\r\n SkillLevelID: this.selectedSkillLevelId || 0,\r\n WorkOptionId: this.jobDetails.value.WorkOptionId || 0,\r\n SalaryDisplayTypeID: this.jobDetails.value.SalaryDisplayTypeID || 0,\r\n SelectedCompanyId: this.selectedCompanyId || 0,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID || 0,\r\n SpecializedSkill: this.jobDetails.value.SpecializedSkill || '',\r\n SpecializedSkillID: this.selectedSpecializedSkillId || 0,\r\n CategoryName: this.selectedCategory.Name || '',\r\n MinExperience: this.jobDetails.value.MinExperience || 0,\r\n MaxExperience: this.jobDetails.value.MaxExperience || 0,\r\n JobStatusID:\r\n statusId === Common.enumJobStatuses.JOB_DRAFT\r\n ? Common.enumJobStatuses.JOB_DRAFT\r\n : Common.enumJobStatuses.JOB_OPEN,\r\n Location: {\r\n Address: this.jobDetails?.value?.Address || '',\r\n Address1: this.jobDetails?.value?.Address1 || '',\r\n City: this.jobDetails?.value?.City || '',\r\n\r\n CreatedBy: this.jobDetails?.value?.CreatedBy || 0,\r\n CreatedDate: this.jobDetails?.value?.CreatedDate || new Date(),\r\n FullAddress: this.jobDetails?.value?.FullAddress || '',\r\n\r\n IsActive: this.jobDetails?.value?.IsActive || true,\r\n LocationID: this.jobDetails?.value?.LocationID || 0,\r\n\r\n LocationTypeId: this.jobDetails?.value?.LocationTypeID || 0,\r\n ObjectId: this.jobDetails?.value?.ObjectId || 0,\r\n ObjectTypeId: this.jobDetails?.value?.ObjectTypeId || 0,\r\n State: this.jobDetails?.value?.State || '',\r\n StreetAddress: this.jobDetails?.value?.StreetAddress || '',\r\n StateID: this.jobDetails?.value?.StateID || 0,\r\n ZipCode: this.jobDetails?.value?.ZipCode || 0,\r\n UpdatedBy: this.authService.userInfo?.userID || 0,\r\n UpdatedDate: this.jobDetails?.value?.UpdatedDate || new Date(),\r\n },\r\n },\r\n\r\n LocationID: this.jobDetails?.value?.LocationID,\r\n jobSkills: this.jobskillArray || [],\r\n jobLegalTypes: this.selectedLegalTypeArray?.data || [],\r\n jobInterviewTypes: this.selectedInterviewTypeArray?.data || [],\r\n\r\n jobEducations: this.jobDetails.value.JobEducations || [],\r\n jobCertifications: this.selectedCertifications || [],\r\n }\r\n return this.jobService.savejobinfo(this.jobData) // Return savejobinfo observable\r\n } else {\r\n throw new Error('Company details not found')\r\n }\r\n })\r\n )\r\n .subscribe({\r\n next: (data) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job posted successfully', '')\r\n Common.activeJob.JobStatusID =\r\n statusId === Common.enumJobStatuses.JOB_DRAFT\r\n ? Common.enumJobStatuses.JOB_DRAFT\r\n : Common.enumJobStatuses.JOB_OPEN\r\n Common.activeJob.JobStatus = statusId === Common.enumJobStatuses.JOB_DRAFT ? 'Draft' : 'Open'\r\n this.updateObjectStatus(\r\n this.jobId || 0,\r\n Common.enumObjectTypes.Job,\r\n statusId,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n\r\n if (statusId === Common.enumJobStatuses.JOB_OPEN) {\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '350px',\r\n height: '100%',\r\n width: '100%',\r\n })\r\n this.router.navigate(['/jobs'])\r\n } else {\r\n const statusSet = {\r\n JobId: this.jobId || 0,\r\n JobStatusId: statusId,\r\n JobStatusName: statusId === 2 ? 'Draft' : 'Open',\r\n TranStatus: 'Success',\r\n }\r\n this.jobService.setJobCloneStatus({ ...statusSet })\r\n if (this.jobId === 0 || undefined) {\r\n this.router.navigate(['/jobs'], {\r\n state: {\r\n isDraft: true,\r\n },\r\n })\r\n } else {\r\n this.router.navigate(['/jobs'], {\r\n state: {\r\n isDraft: false,\r\n },\r\n })\r\n }\r\n }\r\n },\r\n error: (err) => {\r\n console.error('Error posting job:', err)\r\n this.loading = false\r\n this.notifyService.showError('Error posting job', '')\r\n },\r\n })\r\n }\r\n\r\n onSelectedDegree(event: MatSelectChange) {\r\n this.selectedEducations = []\r\n\r\n event.value.forEach((degreeName) => {\r\n const DEGREE = this.degreeType.find((degree) => degree.Key.toLowerCase() === degreeName.toLowerCase())\r\n\r\n if (DEGREE) {\r\n this.selectedEducations.push({\r\n JobEductionID: 0,\r\n JobID: this.jobId,\r\n EducationID: DEGREE.Value,\r\n EducationName: DEGREE.Key,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n })\r\n }\r\n })\r\n\r\n Common.activeJob.JobEducations = this.selectedEducations\r\n Common.activeJob.JobCertifications = this.selectedCertifications\r\n }\r\n\r\n removeMatChip(keyword: any, index: number): void {\r\n if (index >= 0) {\r\n this.similarTitles.splice(index, 1)\r\n }\r\n this.similarTitles = [...this.similarTitles]\r\n this.jobDetails.get('JobSimiliarTitleName').setValue(this.similarTitles.toString())\r\n }\r\n addMatChip(event: any, type: string): void {\r\n const input = event.target as HTMLInputElement\r\n const value = input.value.trim()\r\n\r\n if (value) {\r\n if (type === 'similarTitles') {\r\n this.similarTitles.push(value)\r\n this.jobDetails.get('JobSimiliarTitleName').setValue(this.similarTitles.toString())\r\n }\r\n input.value = ''\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next(false)\r\n this._destroy$.complete()\r\n this.jobService.setAddJobDetails(null)\r\n }\r\n booleanQueryResizeTextArea(): void {\r\n const booleanTextarea = this.booleanTextarea?.nativeElement\r\n booleanTextarea.style.height = 'auto'\r\n booleanTextarea.style.height = `${booleanTextarea?.scrollHeight}px`\r\n }\r\n alternateQueryResizeTextArea() {\r\n const textarea = this.alternateTextarea?.nativeElement\r\n textarea.style.height = 'auto'\r\n textarea.style.height = `${textarea?.scrollHeight}px`\r\n }\r\n\r\n travelRequiredChanged(event) {\r\n if (this.travelPercent) {\r\n if (event.value == 'true') {\r\n this.travelPercent.nativeElement.setAttribute('style', 'display: block;')\r\n this.travelPercent.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n } else {\r\n this.travelPercent.nativeElement.setAttribute('style', 'display: none;')\r\n }\r\n }\r\n this.isTravelRequired = event.value === true\r\n }\r\n\r\n applyFilterCity(city) {\r\n city = city.trim()\r\n this.consultantService\r\n .getCitySearch(city)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.filterCities = res\r\n })\r\n }\r\n\r\n removeSkill() {\r\n // this.jobskillArray = this.jobskillArray.slice(0, this.indexOfItemToBeDeleted)\r\n this.jobskillArray.splice(this.indexOfItemToBeDeleted, 1)\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n this.dialog.closeAll()\r\n }\r\n\r\n onSelectedCity(city) {\r\n this.jobDetails.patchValue({\r\n Address: city.Address,\r\n Address1: city.Address1,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n FullAddress: city.FullAddress,\r\n IsActive: true,\r\n State: city.State,\r\n City: city.City,\r\n StateCode: city.StateCode,\r\n StateID: city.StateID,\r\n ObjectId: city.ObjectId,\r\n LocationID: city.LocationID,\r\n LocationTypeID: city.LocationTypeID,\r\n ObjectTypeId: city.ObjectTypeId,\r\n UpdatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: new Date(),\r\n })\r\n }\r\n\r\n applyFilterState(state) {\r\n state = state.trim()\r\n this.consultantService\r\n .getStateSearch(state)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.filteredStates = res\r\n })\r\n }\r\n onSelectedState(state: any) {\r\n this.jobDetails.get('State').setValue(state.StateCode)\r\n }\r\n onInputChange(event: any): void {\r\n let value = event.target.value\r\n const numericValue = Number(value)\r\n if (numericValue < 0 || numericValue > 100 || isNaN(numericValue)) {\r\n event.target.value = ''\r\n }\r\n }\r\n addSoftSkillToJobSkills(skill: any) {\r\n if (skill && skill.Name) {\r\n if (skill.SkillTypeId === 151) {\r\n skill.SkillTypeId = 152\r\n }\r\n const updatedSkill = { ...skill, SkillName: skill.Name }\r\n this.jobskillArray = this.jobskillArray ?? []\r\n if (!this.jobskillArray.some((s) => s.SkillName === updatedSkill.SkillName)) {\r\n this.jobskillArray?.push({\r\n JobSkillID: null,\r\n JobID: this.jobId,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: 0,\r\n SkillName: skill.Name,\r\n Required: false,\r\n SkillTypeId: 152,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n Common.activeJob.JobSkills = this.jobskillArray\r\n\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n\r\n this.notifyService.showSuccess('Soft Skill saved successfully', '')\r\n } else {\r\n this.notifyService.showError('This skill has already been added.', '')\r\n }\r\n const inputElement = document.querySelector('.softSkill') as HTMLInputElement\r\n if (inputElement) {\r\n inputElement.value = ''\r\n }\r\n }\r\n }\r\n applyFilterSkill(filterValue: string) {\r\n const trimmedValue = filterValue.trim()\r\n if (trimmedValue.length > 0) {\r\n this.jobService\r\n .getSkillNames(trimmedValue,152)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res: any) => {\r\n this.softSkillNames = res\r\n })\r\n } else {\r\n this.softSkillNames = []\r\n }\r\n }\r\n removeRequiredSkillList(keyword: any): void {\r\n const index = this.jobskillArray.findIndex((s) => s.SkillName === keyword.SkillName)\r\n if (index >= 0) {\r\n this.jobskillArray.splice(index, 1)\r\n this.jobService.setAddJobDetails(this.jobskillArray)\r\n this.notifyService.showSuccess('Skill removed successfully', '')\r\n }\r\n }\r\n requiredSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.jobskillArray, event.previousIndex, event.currentIndex)\r\n }\r\n}\r\n","\r\n \r\n\r\n\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Job Details\r\n close\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Job Id-{{ jobId ? jobId : 0 }} Draft\r\n close\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title * \r\n \r\n \r\n Title is required\r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Customer Job Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Similar Job Titles\r\n \r\n \r\n \r\n {{ similar }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Job Category * \r\n \r\n \r\n \r\n {{ category.Name }}\r\n \r\n \r\n Category is required \r\n \r\n
\r\n
\r\n Specialized Skill\r\n \r\n \r\n \r\n {{ skill.SkillName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Minimum Experience *\r\n \r\n \r\n \r\n
\r\n
\r\n Maximum Experience\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Client Name * \r\n \r\n \r\n Client is required\r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n You should enter value from suggested ones only.\r\n \r\n \r\n
\r\n
\r\n Hiring Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Program Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Option *\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Street Address\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n City* \r\n \r\n \r\n \r\n \r\n {{ city.City }}, {{ city.StateCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n State *\r\n \r\n \r\n \r\n \r\n {{ state.StateName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Zip Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Type* \r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Job Type is Required\r\n \r\n \r\n
\r\n
\r\n Max Bill Rate/hr\r\n \r\n \r\n \r\n
\r\n
\r\n Max Annual Salary\r\n \r\n \r\n \r\n
\r\n
\r\n Salary External Portal\r\n \r\n \r\n \r\n {{ salary.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Type* \r\n \r\n Full Time\r\n    \r\n Part Time\r\n \r\n
\r\n
\r\n No Of Position *\r\n \r\n \r\n \r\n
\r\n
\r\n Max Submission\r\n \r\n \r\n \r\n
\r\n
\r\n No Of Hours/Week\r\n \r\n \r\n \r\n
\r\n
\r\n Travel Required\r\n \r\n \r\n Yes\r\n No\r\n \r\n \r\n
\r\n
\r\n Job Related Travel %\r\n \r\n \r\n \r\n
\r\n
\r\n Work Permit\r\n \r\n \r\n \r\n {{ legaltype.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Interview Type\r\n \r\n \r\n \r\n {{ interviewtype?.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Background Checks *\r\n \r\n \r\n \r\n {{ bgc.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Vendors Allowed\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Job Description *\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Professional Skills\r\n \r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n {{ skill?.SkillName }} ({{ skill?.Experience }} Yrs) \r\n \r\n edit\r\n \r\n \r\n \"Delete\r\n \r\n \r\n \r\n
\r\n -\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Soft Skills\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ soft?.SkillName }}\r\n clear\r\n \r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Boolean Query\r\n \r\n \r\n \r\n
\r\n
\r\n Alternate Query\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Education\r\n
\r\n
\r\n
Choose Degree
\r\n \r\n \r\n \r\n {{ dg.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Certification\r\n
\r\n
\r\n
Add Certifications
\r\n \r\n \r\n \r\n {{ cert.CertificationName }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Start Date*\r\n \r\n \r\n Start date is required \r\n \r\n \r\n Start date cannot be less than current date\r\n \r\n
\r\n
\r\n End Date*\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Submission Due Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Primary Recruiter *\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n Recruiter is required \r\n \r\n
\r\n
\r\n Secondary Recruiters\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Save\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this certificate?\r\n
\r\n
\r\n \r\n Delete\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this skill?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n close\r\n
\r\n
\r\n \"\"\r\n Created Job Successfully!\r\n Job ID: {{ jobId }}\r\n You can view job from landing page and edit.\r\n
\r\n
\r\n","import { Component, NgZone, OnInit, ViewChild } from '@angular/core'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from '../../shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common } from '../../common/common'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { DatePipe } from '@angular/common'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { iJob } from 'src/app/models/job.model'\r\n\r\n@Component({\r\n selector: 'job-addlayout',\r\n templateUrl: './job-addlayout.component.html',\r\n styleUrls: ['./job-addlayout.component.scss'],\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n DatePipe,\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class JobAddlayoutComponent implements OnInit {\r\n @ViewChild('stepper') public myStepper: MatStepper\r\n iShowUpload: boolean = false\r\n disableTab: boolean = false\r\n isFormEntryValid = false\r\n job: iJob = {}\r\n jobFormEventArray: number[] = []\r\n constructor(private layoutService: LayoutService, private loadComponent: LoadComponent, private ngZone: NgZone) {}\r\n ngOnInit(): void {\r\n if (Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n this.iShowUpload = true\r\n this.disableTab = false\r\n }\r\n }\r\n\r\n previousNextHandler(event) {\r\n if (event == StepperButtonType.Next) {\r\n this.ngZone.run(() => {\r\n this.myStepper.selected.completed = true\r\n this.myStepper.next()\r\n })\r\n } else if (event == StepperButtonType.Previous) this.myStepper.previous()\r\n }\r\n\r\n jobCompleted(event) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n newJobAdded(event) {\r\n this.isFormEntryValid = true\r\n this.job = Common.activeJob\r\n this.jobFormEventArray.push(event)\r\n\r\n if (Common.activeJob != null) {\r\n this.disableTab = false\r\n }\r\n }\r\n\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n ngOnDestroy() {\r\n Common.activeJob = null\r\n }\r\n\r\n isStepCompleted(step: any) {\r\n return this.jobFormEventArray.includes(step)\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n Add Job\r\n close\r\n \r\n \r\n {{ index + 1 }} \r\n {{ index + 1 }} \r\n\r\n \r\n \r\n Upload\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Other
Details
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Skills\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Certifications/
Education
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Questionnaire\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Job Details\r\n \r\n
\r\n \"Open\r\n
\r\n
\r\n
","import { H } from '@angular/cdk/keycodes';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { format } from 'date-fns';\r\nimport { CommonService } from 'src/app/services/common.service';\r\n\r\n\r\n@Component({\r\n selector: 'job-candidate-card',\r\n templateUrl: './job-candidate-card.component.html',\r\n styleUrls: ['./job-candidate-card.component.scss']\r\n})\r\nexport class JobCandidateCardComponent implements OnInit {\r\n baseFilePath: any;\r\n constructor(private commonService: CommonService) { }\r\n @Input() job: any;\r\n today = new Date().getDate().toLocaleString()\r\n ngOnInit(): void {\r\n this.baseFilePath = this.commonService.getAppSettings().then(data => {\r\n this.baseFilePath = data.filePath;\r\n })\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \"Profile\r\n
\r\n
\r\n
\r\n {{job?.ConsultantName}}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n more_vert\r\n \"bookmark\"\r\n \"dice\"\r\n
\r\n
\r\n
\r\n
\"RegionReq\"US Citizen
\r\n
\"Experience\"6 Yrs
\r\n
\"Location\"Irvane, CA
\r\n
\"Salary\"125,000/ Annum | $85/hr
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"Resume\"\r\n
\r\n Resume Last Updated\r\n {{job.UpdatedDate | date: \"dd\"}} days ago\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Ranking\"\r\n \"Contact\"\r\n \"Mail\"\r\n \"Text\"\r\n \"Download\"\r\n
\r\n
\r\n
\r\n
\r\n
","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewEncapsulation,\r\n ViewChild,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n ElementRef,\r\n QueryList,\r\n ViewChildren,\r\n} from '@angular/core'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iConsultantJob, ConsultantType } from 'src/app/models/consultant.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { Common, ConsultantJobStatuses, MenuName, PreviewDialogAction } from 'src/app/common/common'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { CandidateJobSkills, iJob } from 'src/app/models/job.model'\r\nimport { iDbResult, iMenuItem } from 'src/app/models/common.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { InterviewDialogComponent } from 'src/app/shared/interview-dialog/interview-dialog.component'\r\nimport { Subject, Subscription, combineLatest, forkJoin } from 'rxjs'\r\nimport { animate, state, style, transition, trigger } from '@angular/animations'\r\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { first, map, takeUntil } from 'rxjs/operators'\r\nimport { Company } from 'src/app/models/company.model'\r\nimport { MatSort } from '@angular/material/sort'\r\nimport { Contact, User } from './interfaces/jobConsultants.model'\r\nimport { Email, PreviewDialogCloseAction } from 'src/app/models/emailModel'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from 'src/app/consultant/consultant-dialog/consultant-dialog.component'\r\nimport { ConsultantDialogTypes, ConsultantJobStatus } from 'src/app/consultant/consultant-constants'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { DialogActions } from 'src/app/enums/dialogActions'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { CompanyDialogComponent } from 'src/app/company/company-dialog/company-dialog.component'\r\nimport { CompanyDialogTypes } from 'src/app/company/company-constants'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iAssignedUsers } from 'src/app/models/assignedUser.model'\r\nimport { CompanyList } from 'src/app/models/company-list-response'\r\nimport { PageEvent } from '@angular/material/paginator'\r\nimport { JOB_EDIT_ACTION, JOB_VIEW_ACTION } from 'src/app/enums/userActions'\r\nimport { Router } from '@angular/router'\r\n\r\n@Component({\r\n selector: 'job-candidates',\r\n templateUrl: './job-candidates.component.html',\r\n styleUrls: ['./job-candidates.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobCandidatesComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() changeData\r\n @Output() jobViewActiveTab: EventEmitter = new EventEmitter()\r\n @ViewChild(MatSort) sort: MatSort\r\n\r\n toolBarItems: iMenuItem[]\r\n menu: iMenuItem\r\n jobConsultants: iConsultantJob[] = []\r\n consultantJob: iConsultantJob\r\n job: iJob = {}\r\n public loading = false\r\n dataSource: MatTableDataSource | null\r\n selectedReasonId: number\r\n selectedReason: string\r\n isTableExpanded = false\r\n dataJobCandidateList = new MatTableDataSource()\r\n displayedJobCandidateColumns: string[] = [\r\n 'ConsultantName',\r\n 'BillRate',\r\n 'PayRate',\r\n 'Salary',\r\n 'Margin',\r\n 'RecruiterName',\r\n 'EmploymentType',\r\n 'ConsultantJobStatus',\r\n 'interviewDetails',\r\n 'candidateJobHistory',\r\n 'UpdatedBy',\r\n 'actions',\r\n ]\r\n jobView: FormGroup\r\n companyVendorID: number\r\n vendorContactId: number\r\n consultantTypeId: number\r\n recruiterId: number\r\n recruiters: User[]\r\n consultantTypes: ConsultantType[]\r\n editMode: boolean = false\r\n loadVendorView: boolean = false\r\n companies: Company[] = []\r\n contacts: Contact[] = []\r\n candidateSkills: CandidateJobSkills[] = []\r\n jobTypeID: number\r\n minimumPayrate: number = 7.25\r\n maxBillRate: number = 999\r\n isFromStatusChange: boolean = false\r\n isCandidateCardView$ = combineLatest([this.commonService.isCandidateCardView$]).pipe(map(([value]) => ({ value })))\r\n\r\n radarChart\r\n destroy$: Subject = new Subject()\r\n allCompanies: Company[]\r\n selectedMenu: iMenuItem\r\n candidateJobStartDate: Date | string\r\n candidateJobEndDate: Date | string\r\n candidateTerminationDate: Date | string\r\n startPageIndex: number = 0\r\n pageSize: number = 5\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobViewAction = JOB_VIEW_ACTION\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public dialog: MatDialog,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private jobService: JobService,\r\n private notifyService: NotificationService,\r\n private consultantService: ConsultantService,\r\n private ref: ChangeDetectorRef,\r\n private commonMatDialog: CommonMatDialogService,\r\n private _companyService: CompanyService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private router: Router\r\n ) {\r\n this.jobView = this.formBuilder.group({\r\n ClientRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.max(this.maxBillRate)(control)],\r\n ],\r\n PayRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.min(this.minimumPayrate)(control)],\r\n ],\r\n Salary: [null],\r\n ConsultantTypeId: [null, Validators.required],\r\n CompanyName: [null, Validators.required],\r\n CompanyContact: [null, Validators.required],\r\n RecruiterId: [null, Validators.required],\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.complete()\r\n }\r\n\r\n onCandidateHyperLink(consultantId, job, rowIndex?) {\r\n this.router.navigate(['/candidates'], {\r\n state: { job: job, isFromCandidateTab: true },\r\n queryParams: { consultantId: consultantId },\r\n })\r\n }\r\n\r\n public get jobTypesEnum(): typeof JobTypes {\r\n return JobTypes\r\n }\r\n\r\n public get consultantJobStatuses(): typeof ConsultantJobStatuses {\r\n return ConsultantJobStatuses\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.ref.detectChanges()\r\n this.dataJobCandidateList.sort = this.sort\r\n }\r\n\r\n private subscription: Subscription\r\n toggleTableRows() {\r\n this.isTableExpanded = !this.isTableExpanded\r\n\r\n this.dataJobCandidateList.data.forEach((row: any) => {\r\n row.isExpanded = this.isTableExpanded\r\n })\r\n this.ref.detectChanges()\r\n this.dataJobCandidateList.sort = this.sort\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((messageConsultantView) => {\r\n this.toolBarItems = this.commonService.menuItems\r\n if (Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n this.commonService.interviewSchedule$.pipe(takeUntil(this.destroy$)).subscribe((trigger) => {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n })\r\n }\r\n isValidConsultantJobData(): boolean {\r\n if (this.consultantJob.ConsultantTypeID <= 0) {\r\n return false\r\n }\r\n\r\n if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2C) {\r\n if (this.consultantJob.VendorContactID <= 0) {\r\n return false\r\n }\r\n if (this.consultantJob.VendorName == '') {\r\n return false\r\n }\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2O) {\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_1099) {\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_W2) {\r\n if (this.job.JobTypeID == 11 || this.job.JobTypeID == 12) {\r\n if (this.consultantJob.Salary <= 0) {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n if (this.consultantJob.RecruiterId <= 0) {\r\n return false\r\n }\r\n return true\r\n }\r\n openStatusChange(consultantJob, mnuItem) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n this.consultantJob = consultantJob\r\n Common.activeConsultantJob = consultantJob\r\n let dialogRef\r\n\r\n if (\r\n (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_SUBMITTED ||\r\n mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_PREVIEW) &&\r\n Common.activeJob.MaxSubmissionCount !== 0\r\n ) {\r\n const candidateSubmitCount = this.jobConsultants.filter(\r\n (candidate) => candidate.ConsultantJobStatus == ConsultantJobStatus.Submitted\r\n )?.length\r\n\r\n if (Common.activeJob.MaxSubmissionCount <= candidateSubmitCount) {\r\n this.notifyService.showWarning('Max candidate submit reached.', 'Job Candidate')\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n return\r\n }\r\n }\r\n if (\r\n this.menu.MenuCode == Common.enumMenuCode.CON_JOB_INTEW_SCHED ||\r\n this.menu.MenuCode == Common.enumMenuCode.CON_JOB_INTVW_ANOTHER\r\n ) {\r\n dialogRef = this.dialog.open(InterviewDialogComponent, {\r\n width: '800px',\r\n data: { consultantjob: this.consultantJob, menu: this.menu },\r\n })\r\n } else {\r\n if (\r\n mnuItem.MenuCode === Common.enumMenuCode.CON_JOB_PREVIEW ||\r\n mnuItem.MenuCode === Common.enumMenuCode.CON_JOB_SUBMITTED\r\n ) {\r\n dialogRef = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Candidate_Mail_Text_Edit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n },\r\n })\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_HIRED) {\r\n dialogRef = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Candidate_Duration_Date,\r\n },\r\n })\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_APRVAL_PENDG) {\r\n dialogRef = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobEdit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n isDialogForStatusChange: true,\r\n changedStatus: mnuItem.MenuCode,\r\n },\r\n })\r\n } else {\r\n dialogRef = this.dialog.open(ActionDialogComponent, {\r\n width: '400px',\r\n data: {\r\n consultantjob: this.consultantJob,\r\n menu: this.menu,\r\n },\r\n })\r\n }\r\n }\r\n\r\n dialogRef?.afterClosed().subscribe(async (result) => {\r\n if (result == null || result == undefined || result.formName === DialogActions.CLOSE) {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n } else {\r\n this.jobService.setCandidateStatus(true)\r\n if (this.menu.MenuCode == Common.enumMenuCode.CON_JOB_PREVIEW) {\r\n this.selectedReason = result.selectedReason\r\n this.setDataToForm(result?.formData)\r\n if (result?.companyVendorID) {\r\n this.companyVendorID = result?.companyVendorID\r\n }\r\n if (result?.vendorContactId) {\r\n this.vendorContactId = result?.vendorContactId\r\n }\r\n this.isFromStatusChange = false\r\n this.updateConsultantJob()\r\n if (result?.isSubmitAction) {\r\n this.menu = this.toolBarItems.find(\r\n (item) => item.MenuCode === Common.enumMenuCode.CON_JOB_SUBMITTED\r\n )\r\n this.updateProcessWorkFlow()\r\n } else {\r\n this.consultantService\r\n .getConsultantJobSkill(\r\n Common.activeConsultantJob.ConsultantID,\r\n Common.activeConsultantJob.JobID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res != null) {\r\n this.candidateSkills = res\r\n this.jobService.triggerJobLoadingConfig(true)\r\n this.commonService.saveCanvasImage(res).then(async (data) => {\r\n if (data['FileId'] != null || data['FileId'] != undefined) {\r\n await this.updateProcessWorkFlow()\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.commonService\r\n .showMailPreview()\r\n .then((previewDialogAction: PreviewDialogCloseAction) => {\r\n switch (previewDialogAction?.action) {\r\n case PreviewDialogAction.Send: {\r\n this.updateObjectStatus(\r\n previewDialogAction?.emailData,\r\n this.selectedReason\r\n )\r\n break\r\n }\r\n case PreviewDialogAction.Submit: {\r\n this.menu = this.toolBarItems.find(\r\n (item) =>\r\n item.MenuCode ===\r\n Common.enumMenuCode.CON_JOB_SUBMITTED\r\n )\r\n this.updateProcessWorkFlow()\r\n break\r\n }\r\n case PreviewDialogAction.Modify: {\r\n Common.activeConsultantJob.SummaryNote =\r\n this.selectedReason\r\n this.openStatusChange(consultantJob, mnuItem)\r\n break\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.BindJobConsultants(\r\n Common.activeJob.JobId,\r\n this.authService.userInfo.userID\r\n )\r\n })\r\n }\r\n })\r\n } else {\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.candidateSkills = null\r\n }\r\n },\r\n (err: any) => {\r\n this.jobService.triggerJobLoadingConfig(false)\r\n }\r\n )\r\n return\r\n }\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_APRVAL_PENDG) {\r\n this.selectedReason = result.selectedReason\r\n this.setDataToForm(result?.formData)\r\n if (result?.companyVendorID) {\r\n this.companyVendorID = result?.companyVendorID\r\n }\r\n if (result?.vendorContactId) {\r\n this.vendorContactId = result?.vendorContactId\r\n }\r\n let accountingManagers: iAssignedUsers[] = (await this.getAccountingManagerByCompanyId(\r\n Common.activeConsultantJob.ClientCompanyId\r\n )) as iAssignedUsers[]\r\n if (accountingManagers.length === 0) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `No Account Manager or Deputy manager assigned to ${Common?.activeJob?.CompanyName}.`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Assign',\r\n IsDangerButton: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isAssigned) => {\r\n if (isAssigned) {\r\n this.openAssignUserDialog()\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n } else if (accountingManagers?.filter((manager) => manager?.IsActive)?.length === 0) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Account Manager is inactive do you want to make it active.`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Ok',\r\n IsDangerButton: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isConfirm) => {\r\n if (isConfirm) {\r\n this.activateAccountManager(accountingManagers)\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n } else {\r\n this.updateConsultantJob()\r\n this.updateProcessWorkFlow()\r\n }\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_HIRED) {\r\n this.candidateJobStartDate = result?.formData?.StartDate\r\n this.candidateJobEndDate = result?.formData?.EndDate\r\n this.updateConsultantJob()\r\n this.updateProcessWorkFlow()\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_TERMINATE) {\r\n this.candidateTerminationDate = result?.terminationDate\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n this.updateConsultantJob()\r\n this.updateProcessWorkFlow()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n this.updateProcessWorkFlow()\r\n }\r\n }\r\n })\r\n }\r\n\r\n getAccountingManagerByCompanyId(companyId) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n this._companyService\r\n .getAccountManagersByCompanyId(companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (users: iAssignedUsers[]) => {\r\n this.loading = false\r\n if (users.length === 0) {\r\n resolve([])\r\n }\r\n resolve(users)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n reject()\r\n },\r\n })\r\n })\r\n }\r\n\r\n async activateAccountManager(usersToMakeActive: iAssignedUsers[]) {\r\n await this.getCompanyById(Common.activeConsultantJob.ClientCompanyId)\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.User_Active_Action,\r\n usersToMakeActive: usersToMakeActive,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.User_Active_Action) {\r\n const userToUpdate = usersToMakeActive.find((user) => user.UserAssignmentId == data.userAssignmentId)\r\n this.updateAccountingManager(userToUpdate)\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n }\r\n\r\n updateAccountingManager(managerToUpdate) {\r\n const user: iAssignedUsers = {\r\n UserAssignmentId: managerToUpdate?.UserAssignmentId,\r\n CompanyId: Common?.activeConsultantJob?.ClientCompanyId,\r\n UserId: managerToUpdate.UserId,\r\n CreatedBy: this.authService?.userInfo?.userID,\r\n CreatedDate: new Date(),\r\n ActiveDate: new Date(),\r\n InActiveDate: managerToUpdate?.InActiveDate,\r\n IsActive: true,\r\n UpdatedBy: this.authService?.userInfo?.userID,\r\n UpdatedDate: new Date(),\r\n }\r\n this.loading = true\r\n this._companyService\r\n .editUser(user)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.loading = false\r\n if (res == HttpStatusCode.Ok) {\r\n this.updateProcessWorkFlow()\r\n this.notifyService.showSuccess('Updated successfully!', 'User Assignment')\r\n } else {\r\n this.notifyService.showError('Failed to update!', 'User Assignment')\r\n }\r\n },\r\n (error) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n async openAssignUserDialog() {\r\n await this.getCompanyById(Common.activeConsultantJob.ClientCompanyId)\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Users,\r\n isFromJobStatus: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Users) {\r\n this.addAssignUser(data.user_list, data.company_list)\r\n } else if (data.formName === CompanyDialogTypes.No_Account_Managers) {\r\n this.addAccountingManager()\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n }\r\n\r\n get3iStaffingCompany() {\r\n return new Promise((resolve, reject) => {\r\n const filter = {\r\n Company: '',\r\n IndustryID: '',\r\n CompanyTypeId: '76',\r\n StatusID: '',\r\n PageNumber: 1,\r\n PageSize: 10,\r\n UserId: this.authService.userInfo.userID,\r\n }\r\n this._companyService\r\n .getCompanyList(filter)\r\n .pipe(first())\r\n .subscribe({\r\n next: (companyList) => {\r\n resolve(companyList[0])\r\n },\r\n error: (error) => {\r\n reject()\r\n },\r\n })\r\n })\r\n }\r\n\r\n async addAccountingManager() {\r\n const currentActiveCompany = { ...CommonData.activeCompany }\r\n const parentCompany: CompanyList = await this.get3iStaffingCompany()\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Contact,\r\n formData: null,\r\n CompanyId: parentCompany.CompanyID,\r\n isFormViewOnly: false,\r\n isManualAdd: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Contact) {\r\n if (data.formData.isLocation) {\r\n this.addAccountingManagerLocation(data.formData, parentCompany.CompanyID, currentActiveCompany)\r\n } else {\r\n this.updateContact(data.formData, parentCompany.CompanyID, currentActiveCompany)\r\n }\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this._setCommonActiveCompany(currentActiveCompany)\r\n }\r\n })\r\n }\r\n\r\n addAccountingManagerLocation(contactData, companyId, currentActiveCompany) {\r\n const location = contactData.Location\r\n location.ObjectId = companyId\r\n this._companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = null\r\n this.updateContact(contactData, companyId, currentActiveCompany, res.LocationID)\r\n }\r\n })\r\n }\r\n\r\n updateContact(contactData, companyId, currentActiveCompany, locationID?) {\r\n const contact = {\r\n FirstName: contactData.FirstName,\r\n LastName: contactData.LastName,\r\n WorkPhone: contactData.WorkPhone,\r\n EmailAddress: contactData.Email,\r\n Email: contactData.Email,\r\n LinkedinUrl: contactData.LinkedinUrl,\r\n ManagementLevelID: contactData.ManagementLevelID ? contactData.ManagementLevelID : null,\r\n ManagementLevel: contactData.ManagementLevel,\r\n DepartmentID: contactData.DepartmentID ? contactData.DepartmentID : null,\r\n DepartmentName: contactData.DepartmentName,\r\n ParentID: contactData.ParentID,\r\n TitleID: contactData.TitleID ? contactData.TitleID : null,\r\n RoleID: contactData.selectedRoleId ? contactData.selectedRoleId : null,\r\n TitleName: contactData.Title,\r\n CompanyId: companyId,\r\n LocationID: locationID ? locationID : contactData?.Location ? contactData?.Location.LocationID : null,\r\n Location: !contactData?.isLocationDeleted ? contactData?.Location : null,\r\n ContactID: contactData.ContactID,\r\n CompanyContactID: contactData.CompanyContactID,\r\n IsActive: true,\r\n ReportingManager: contactData.ReportingManager,\r\n StateCode: contactData.StateCode,\r\n Title: contactData.Title,\r\n DoB: contactData?.DoB ? contactData.DoB : null,\r\n Sex: contactData?.Sex ? contactData.Sex : 0,\r\n CellPhone: contactData?.CellPhone ? contactData.CellPhone : '',\r\n FilePath: contactData?.FilePath ? contactData.FilePath : null,\r\n CreatedBy: contactData?.CreatedBy ? contactData.CreatedBy : 0,\r\n CreatedDate: contactData?.CreatedDate ? contactData.CreatedDate : new Date(),\r\n Address: !contactData?.isLocationDeleted ? contactData?.Location?.Address : '',\r\n Address1: !contactData?.isLocationDeleted ? contactData?.Location?.Address1 : '',\r\n City: !contactData?.isLocationDeleted ? contactData?.Location?.City : '',\r\n StateID: !contactData?.isLocationDeleted ? contactData?.Location?.StateID : 0,\r\n CountryID: !contactData?.isLocationDeleted ? contactData?.Location?.CountryID : 0,\r\n ZipCode: !contactData?.isLocationDeleted ? contactData?.Location?.ZipCode : 0,\r\n UpdatedBy: contactData?.UpdatedBy ? contactData.UpdatedBy : 0,\r\n UpdatedDate: new Date(),\r\n PersonalEmailAddress: contactData?.PersonalEmailAddress ? contactData?.PersonalEmailAddress : null,\r\n }\r\n this._companyService\r\n .AddContact(contact)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((response) => {\r\n if (response?.Contact) {\r\n this.notifyService.showSuccess(response?.Message, 'Company Contact')\r\n } else {\r\n this.notifyService.showError(response?.Message, 'Company Contact')\r\n }\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this._setCommonActiveCompany(currentActiveCompany)\r\n })\r\n }\r\n\r\n private _setCommonActiveCompany(company) {\r\n CommonData.activeCompany = { ...company }\r\n }\r\n\r\n addAssignUser(user_list, company_list) {\r\n const userAssignmentList = []\r\n for (var userIndex in user_list) {\r\n if (CommonData?.activeCompany?.CompanyTypeID === CompanyType.Client) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: CommonData?.activeCompany.CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n userAssignmentList.push(userAssignment)\r\n } else if (CommonData?.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany) {\r\n for (var clientIndex in company_list) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: company_list[clientIndex].CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n userAssignmentList.push(userAssignment)\r\n }\r\n }\r\n }\r\n\r\n this._companyService\r\n .assignUsers(userAssignmentList)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res === HttpStatusCode.Created) {\r\n this.notifyService.showSuccess('User assigned successfully!', 'User Assignment')\r\n this.updateProcessWorkFlow()\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n } else {\r\n this.notifyService.showError('Failed to assign users!', 'User Assignment')\r\n }\r\n })\r\n }\r\n\r\n getCompanyById(companyId) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n this._companyService\r\n .GetCompanyByCompanyId(companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (company) => {\r\n CommonData.activeCompany = company\r\n this.loading = false\r\n resolve(true)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n reject(false)\r\n },\r\n })\r\n })\r\n }\r\n\r\n getConfigValues() {\r\n this.commonService\r\n .getConfig()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n BindJobConsultants(jobId, userId) {\r\n this.job = Common.activeJob\r\n this.jobTypeID = this.job?.JobTypeID\r\n this.loading = true\r\n this.jobService\r\n .GetJobConsultants(jobId, userId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (jclst: iConsultantJob[]) => {\r\n this.jobConsultants = [...jclst]\r\n this.dataSource = new MatTableDataSource()\r\n this.dataSource.data = this.jobConsultants\r\n this.ref.detectChanges()\r\n this.dataJobCandidateList.sort = this.sort\r\n this.dataJobCandidateList.data = this.sortData(this.jobConsultants)\r\n const PAGE_EVENT: PageEvent = {\r\n pageIndex: this.startPageIndex,\r\n pageSize: this.pageSize,\r\n length: this.jobConsultants.length,\r\n }\r\n // if (this.jobConsultants.length > 5) {\r\n // this.handlePageChange(PAGE_EVENT)\r\n // }\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value\r\n this.dataJobCandidateList.filter = filterValue.trim().toLowerCase()\r\n }\r\n\r\n onSelectedReason(e) {\r\n this.selectedReasonId = e.target.value\r\n this.selectedReason = e.target.options[e.target.options.selectedIndex].text\r\n }\r\n updateProcessWorkFlow() {\r\n return new Promise((resolve) => {\r\n this.jobService.triggerJobLoadingConfig(true)\r\n var ljob: iConsultantJob = Common.activeConsultantJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n var comment\r\n if (this.selectedReasonId > 0)\r\n comment = '#ReasonID:' + this.selectedReasonId?.toString() + '# ' + this.selectedReason?.toString()\r\n else if (this.selectedReason != '') {\r\n comment = this.selectedReason\r\n } else if (\r\n this.selectedReason === '' &&\r\n this.isThePreviousCommentFromMenu(Common?.activeConsultantJob?.SummaryNote)\r\n ) {\r\n comment = this.menu.MenuName\r\n } else {\r\n comment = Common?.activeConsultantJob?.SummaryNote\r\n }\r\n\r\n forkJoin({\r\n dBresult: this.commonService.processWorkFlow(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n ),\r\n submitStatus: this.jobService.changeJobStatusBySubmittedCount(\r\n Common.activeJob.JobId,\r\n this.authService.userInfo.userID\r\n ),\r\n })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n dbresult = result?.dBresult as iDbResult[]\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.commonService.setActiveObject(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(this.menu)\r\n Common.activeConsultantJob.ConsultantJobStatus = this.menu.MenuName\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this.getJobById(Common?.activeJob?.JobId)\r\n resolve(true)\r\n },\r\n (error) => {\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this.notifyService.showError('Unable to update status', 'UpdateProcessWorkFlow')\r\n }\r\n )\r\n })\r\n }\r\n\r\n getJobById(jobId) {\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((job) => {\r\n Common.activeJob = job\r\n this.jobService.triggerJobStatusChange()\r\n })\r\n }\r\n\r\n updateObjectStatus(emailData: Email, comments) {\r\n this.loading = true\r\n this.commonService\r\n .updateOjectStatus(\r\n Common.activeConsultantJob.ConsultantJobID,\r\n ObjectType.ConsultantJob,\r\n ConsultantJobStatuses.CON_JOB_SUBMITTED,\r\n comments,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((status) => {\r\n this.commonService\r\n .sendEmail(emailData.EmailItemID, 8, this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.loading = false\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n })\r\n })\r\n }\r\n\r\n bindConsultantJobDetails(consultantJob) {\r\n Common.activeConsultantJob = consultantJob\r\n this.consultantJob = consultantJob\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobEdit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n isDialogForStatusChange: this.isFromStatusChange,\r\n changedStatus: this.menu?.MenuCode,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.JobEdit) {\r\n this.setDataToForm(data?.formData)\r\n if (data?.companyVendorID) {\r\n this.companyVendorID = data?.companyVendorID\r\n }\r\n if (data?.vendorContactId) {\r\n this.vendorContactId = data?.vendorContactId\r\n }\r\n this.updateConsultantJob()\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n }\r\n\r\n onSelectedContact(contact) {\r\n this.vendorContactId = contact.ContactID\r\n }\r\n companyChangeAction(selectedValue) {\r\n this.consultantService\r\n .getCompanyContacts(selectedValue)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.contacts = res as Contact[]\r\n })\r\n }\r\n onCancelJobclick() {\r\n this.toggleConsultantJobDetails()\r\n if (this.isFromStatusChange) this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this.dialog.closeAll()\r\n }\r\n toggleConsultantJobDetails() {\r\n this.editMode = !this.editMode\r\n }\r\n updateConsultantJob() {\r\n const CONSULTANT_JOB = { ...Common.activeConsultantJob }\r\n this.consultantJob.PayRate = this.getValueOrDefault(this.jobView.get('PayRate').value, CONSULTANT_JOB.PayRate)\r\n this.consultantJob.BillRate = this.getValueOrDefault(\r\n this.jobView.get('ClientRate').value,\r\n CONSULTANT_JOB.BillRate\r\n )\r\n this.consultantJob.Salary = this.getValueOrDefault(this.jobView.get('Salary').value, CONSULTANT_JOB.Salary)\r\n this.consultantJob.CreatedDate = new Date()\r\n this.consultantJob.CreatedBy = this.authService.userInfo.userID\r\n this.consultantJob.IsActive = true\r\n this.consultantJob.CompanyVendorID =\r\n this.companyVendorID == undefined || this.companyVendorID == null\r\n ? CONSULTANT_JOB.CompanyVendorID\r\n ? CONSULTANT_JOB.CompanyVendorID\r\n : 0\r\n : this.companyVendorID\r\n this.consultantJob.VendorContactID =\r\n this.vendorContactId == undefined || this.vendorContactId == null\r\n ? CONSULTANT_JOB.VendorContactID\r\n ? CONSULTANT_JOB.VendorContactID\r\n : 0\r\n : this.vendorContactId\r\n this.consultantJob.ConsultantTypeID = this.getValueOrDefault(\r\n this.jobView.get('ConsultantTypeId').value,\r\n CONSULTANT_JOB.ConsultantTypeID\r\n )\r\n this.consultantJob.RecruiterId = this.getValueOrDefault(\r\n this.jobView.get('RecruiterId').value,\r\n CONSULTANT_JOB.RecruiterId\r\n )\r\n if (this.candidateJobStartDate) {\r\n this.consultantJob.JobStartDate = this.candidateJobStartDate\r\n }\r\n if (this.candidateJobEndDate) {\r\n this.consultantJob.JobEndDate = this.candidateJobEndDate\r\n }\r\n if (CONSULTANT_JOB.HireDate == null || CONSULTANT_JOB.HireDate == undefined) {\r\n this.consultantJob.HireDate = new Date()\r\n }\r\n if (CONSULTANT_JOB.TerminateDate == null || CONSULTANT_JOB.TerminateDate == undefined) {\r\n this.consultantJob.TerminateDate = this.candidateTerminationDate\r\n }\r\n this.consultantService\r\n .saveConsultantJob(this.consultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((cjResult) => {\r\n if (cjResult) {\r\n this.toggleConsultantJobDetails()\r\n this.dialog.closeAll()\r\n this.notifyService.showSuccess('successfully saved.', 'Candidate Job Details')\r\n if (this.isFromStatusChange) {\r\n this.openStatusChange(this.consultantJob, this.menu)\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n }\r\n })\r\n }\r\n editCandidateHandler(rowData, isFromStatusChange = false) {\r\n this.isFromStatusChange = isFromStatusChange\r\n this.bindConsultantJobDetails(rowData)\r\n }\r\n\r\n getValueOrDefault(value: string, defaultValue): number {\r\n return value == '' || value == null ? (defaultValue == '' ? 0 : defaultValue) : Number(value)\r\n }\r\n\r\n setDataToForm(formData) {\r\n this.jobView.get('ClientRate').setValue(formData?.BillRate)\r\n this.jobView.get('PayRate').setValue(formData?.PayRate)\r\n this.jobView.get('Salary').setValue(formData?.Salary)\r\n this.jobView.get('CompanyName').setValue(formData?.VendorName)\r\n this.jobView.get('CompanyContact').setValue(formData?.VendorContactName)\r\n this.jobView.get('RecruiterId').setValue(formData?.RecruiterId)\r\n this.jobView.get('ConsultantTypeId').setValue(formData?.ConsultantTypeID)\r\n }\r\n\r\n viewInterviewDetails(candidateDetails) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Interview_Details,\r\n candidateJobId: candidateDetails?.ConsultantJobID,\r\n candidateName: candidateDetails?.ConsultantName,\r\n candidateEmail: candidateDetails?.EmailAddress,\r\n },\r\n })\r\n }\r\n\r\n isThePreviousCommentFromMenu(menuTitle: string): boolean {\r\n if (menuTitle === MenuName.CON_JOB_APPLIED) {\r\n return true\r\n }\r\n return this.toolBarItems.filter((item) => item.MenuName === menuTitle).length ? true : false\r\n }\r\n\r\n viewCandidateJobStatusHistory(candidateDetails) {\r\n Common.activeConsultantJob = candidateDetails\r\n this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Candidate_Status_History,\r\n jobId: candidateDetails?.JobID,\r\n candidateId: candidateDetails?.ConsultantID,\r\n },\r\n })\r\n }\r\n\r\n // sortData(consultantJobList: iConsultantJob[]) {\r\n // return consultantJobList.sort((a, b) => new Date(b.CreatedDate).getTime() - new Date(a.CreatedDate).getTime())\r\n // }\r\n sortData(consultantJobList: iConsultantJob[]) {\r\n return consultantJobList.sort((a, b) => {\r\n if (a.ConsultantJobStatus === \"Rejected\" && b.ConsultantJobStatus !== \"Rejected\") {\r\n return 1; \r\n } else if (a.ConsultantJobStatus !== \"Rejected\" && b.ConsultantJobStatus === \"Rejected\") {\r\n return -1; \r\n }\r\n return new Date(b.CreatedDate).getTime() - new Date(a.CreatedDate).getTime();\r\n });\r\n }\r\n\r\n handlePageChange(event: PageEvent) {\r\n this.startPageIndex = event.pageIndex\r\n this.pageSize = event.pageSize\r\n const JOB_CONSULTANTS = [...this.jobConsultants]\r\n setTimeout(() => {\r\n this.dataJobCandidateList.data = JOB_CONSULTANTS.slice(\r\n event.pageIndex * event.pageSize,\r\n event.pageIndex * event.pageSize + event.pageSize\r\n )\r\n }, 100)\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n \r\n 0\" class=\"\">\r\n
\r\n \r\n \r\n \"Search\r\n \r\n
\r\n
\r\n
\r\n 0\"\r\n mat-table\r\n [dataSource]=\"dataJobCandidateList\"\r\n multiTemplateDataRows\r\n matSort\r\n >\r\n \r\n Name\r\n \r\n {{ element.ConsultantName }}\r\n \r\n \r\n\r\n \r\n \r\n Bill Rate\r\n \r\n \r\n {{\r\n element?.BillRate\r\n ? (element?.BillRate | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element?.BillRate | nullValueReplace)\r\n }}\r\n \r\n \r\n\r\n \r\n \r\n Pay Rate\r\n \r\n \r\n {{\r\n element?.PayRate\r\n ? (element?.PayRate | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element?.PayRate | nullValueReplace)\r\n }}\r\n \r\n \r\n\r\n \r\n \r\n Salary\r\n \r\n \r\n {{\r\n element.Salary\r\n ? (element?.Salary | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element.Salary | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n Margin\r\n \r\n {{\r\n element?.Margin\r\n ? (element?.Margin | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element?.Margin | nullValueReplace)\r\n }}\r\n \r\n \r\n\r\n \r\n Recruiter\r\n \r\n {{ element.RecruiterName | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Employment Type\r\n \r\n {{ element.ConsultantType | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Updated By\r\n \r\n {{ element.UpdatedUser | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Recruit Status\r\n \r\n \r\n \r\n \r\n {{ element.ConsultantJobStatus | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n {{ mnuItem.MenuName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Interview Details\r\n\r\n \r\n \r\n view details\r\n \r\n \r\n -\r\n \r\n \r\n \r\n\r\n \r\n \r\n Candidate
Job History
\r\n \r\n \r\n view status\r\n \r\n
\r\n\r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \"Edit\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
No Candidates found
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { JobService } from '../job.service'\r\nimport { iMenuItem, iDbResult, iStatus, iJobValidationType } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { Subject, Subscription } from 'rxjs'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { takeUntil, tap, withLatestFrom } from 'rxjs/operators'\r\nimport { JOB_DELETE_ACTION, JOB_EDIT_ACTION, JOB_VIEW_ACTION } from 'src/app/enums/userActions'\r\nimport { format } from 'date-fns'\r\nimport { JobTabsType } from 'src/app/enums/jobCandidate'\r\nimport { TranStatusSuccess } from 'src/app/models/cloneJob.model'\r\n@Component({\r\n selector: 'job-description-card',\r\n templateUrl: './job-description-card.component.html',\r\n styleUrls: ['./job-description-card.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobDescriptionCardComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private commonService: CommonService,\r\n private layoutService: LayoutService,\r\n private jobService: JobService,\r\n private loadComponent: LoadComponent,\r\n private dialog: MatDialog,\r\n private notifyService: NotificationService,\r\n private router: Router,\r\n public authService: AuthenticationService,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n // Input output\r\n\r\n @Input() job: any\r\n @Input() index: number\r\n toolBarItems: iMenuItem[] = []\r\n\r\n baseFilePath: any\r\n noLogoFilePath: string = 'assets/img/Leap-Tiger_Icons/card-icons/No-image.svg'\r\n selectValue = false\r\n selected: any\r\n selectedIcon: any\r\n url: string = 'assets/img/statusIcons/'\r\n menu: iMenuItem\r\n selectedReasonId: number\r\n selectedReason: string\r\n wfStatus: iStatus[]\r\n jobStatus = Common.enumJobStatuses\r\n private ngUnSubscribe$: Subject = new Subject()\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobDeleteAction = JOB_DELETE_ACTION\r\n jobViewAction = JOB_VIEW_ACTION\r\n selectedStatusId: number\r\n jobValidation: iJobValidationType[] = []\r\n jobClosedFromDate: string | Date\r\n destroy$: Subject = new Subject()\r\n loading: boolean = false\r\n activeTab = 0\r\n isGridClick: boolean = false\r\n\r\n changeStatus: Array<{ status: string; elementRef: any }> = [\r\n {\r\n status: 'Open',\r\n elementRef: this.url + 'green.svg',\r\n },\r\n {\r\n status: 'Cancelled',\r\n elementRef: this.url + 'blue.svg',\r\n },\r\n {\r\n status: 'Hold',\r\n elementRef: this.url + 'orange.svg',\r\n },\r\n {\r\n status: 'Closed',\r\n elementRef: this.url + 'gray.svg',\r\n },\r\n {\r\n status: 'Declined',\r\n elementRef: this.url + 'light-gray.svg',\r\n },\r\n {\r\n status: 'Draft',\r\n elementRef: this.url + 'red.svg',\r\n },\r\n ]\r\n currentStatus = { status: '', elementRef: '' }\r\n private subscription: Subscription\r\n ngOnInit(): void {\r\n this.setJobStatues()\r\n }\r\n\r\n onCandidateView() {\r\n this.router.navigate(['jobs'], {\r\n queryParams: {\r\n jobId: this.job.JobId,\r\n activeTab: 'candidate',\r\n },\r\n })\r\n this.openQuickpanel(JobTabsType.Candidate_Tab)\r\n this.removeParams()\r\n }\r\n getJobValidation() {\r\n this.jobService\r\n .GetJobValidation(this.job?.JobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n this.jobValidation = result as iJobValidationType[]\r\n })\r\n }\r\n getStatuses() {\r\n this.commonService\r\n .getStatus()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.wfStatus = res as iStatus[]\r\n })\r\n }\r\n onGridColumnClick(colVal) {\r\n let joId = colVal\r\n this.jobService\r\n .getJob(joId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeJob = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n removeParams() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((state) => {\r\n if (!state) {\r\n this.router.navigate([], {\r\n queryParams: {\r\n jobId: null,\r\n activeTab: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n }\r\n })\r\n }\r\n openQuickpanel(activeTab?) {\r\n Common.activeConsultant = null\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('job')\r\n this.commonService.setComponentData({ job: this.job, activeTab: activeTab ? activeTab : null })\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((res) => {})\r\n }\r\n openCard() {\r\n this.layoutService.closeQuickpanel()\r\n }\r\n\r\n select(pText: string, icons: string) {\r\n this.selectValue = true\r\n this.selected = pText\r\n this.selectedIcon = icons\r\n this.currentStatus.status = pText\r\n this.currentStatus.elementRef = icons\r\n }\r\n\r\n deleteJobDialogHandler(dialog: any) {\r\n this.dialog.open(dialog)\r\n }\r\n\r\n //for icon list track by\r\n trackByIconFn(index: number, item: any) {\r\n return item.id\r\n }\r\n\r\n searchCandidateFromJobHandler(job: any) {\r\n if (job.JobStatusID !== this.jobStatus.JOB_OPEN) {\r\n this.notifyService.showWarning('Cannot search as job is not open', '')\r\n } else {\r\n this.jobService\r\n .getJob(job.JobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.iJobCandidateSearch = true\r\n Common.activeJob = res\r\n // currently this method is not getting called still we have updated to new routing method\r\n this.commonService.candidateObservable$.next(false)\r\n this.router.navigate(['/candidates'], {\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n })\r\n }\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n result\r\n })\r\n }\r\n reopenJob() {\r\n this.loading = true\r\n let cloneJobObj = {\r\n jobId: Common.activeJob.JobId,\r\n userId: this.authService.userInfo.userID,\r\n }\r\n this.jobService\r\n .reopenJobStatus(cloneJobObj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result.TranStatus === TranStatusSuccess) {\r\n this.loading = false\r\n this.jobService.setJobCloneStatus({ ...result })\r\n this.notifyService.showSuccess('Job Cloned Successfully', 'Job Id' + ' ' + result.JobId)\r\n this.layoutService.closeQuickpanel()\r\n } else {\r\n this.notifyService.showError('Error While Cloning Job ', 'Job')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while Cloning Job', 'Job')\r\n }\r\n )\r\n }\r\n\r\n onSearchCandidates(job, jobStatusId) {\r\n this.commonService.candidateObservable$.next(false)\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Search candidate works for jobs in Open status only!', 'Search Candidates')\r\n return\r\n }\r\n\r\n this.router.navigate(['/candidates'], {\r\n // TODO: Need to remove copy path later\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n onApplyJob(jobId, jobStatusId) {\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Can not apply, Job is not opened!.', 'Apply Job')\r\n return\r\n }\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeJob = res\r\n Common.activeConsultantJob = {}\r\n Common.activeConsultantJob.ConsultantJobID = 0\r\n Common.activeConsultantJob.JobID = Common.activeJob.JobId\r\n Common.activeConsultant = null\r\n\r\n this.router.navigate(['/candidates/add'])\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe$.next()\r\n this.ngUnSubscribe$.complete()\r\n }\r\n setToolBarItems() {\r\n if (\r\n this.commonService?.menuItems == null ||\r\n this.commonService?.menuItems == undefined ||\r\n this.commonService?.menuItems?.length === 0\r\n ) {\r\n this.commonService\r\n .getMenuItems()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((data) => {\r\n this.commonService.menuItems = data\r\n this.setJobStatues()\r\n })\r\n } else {\r\n this.setJobStatues()\r\n }\r\n }\r\n\r\n setJobStatues() {\r\n const JOB_STATUS_ID = this.job.JobStatusId ? this.job.JobStatusId : this.job.JobStatusID\r\n this.toolBarItems = this.commonService?.menuItems?.filter(\r\n (item) =>\r\n item.ComponentID === Common.enumComponent.Job &&\r\n item.MenuTypeID == Common.enumMenuType.TOOLBAR &&\r\n item.StatusID == JOB_STATUS_ID &&\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n this.toolBarItems?.unshift({\r\n MenuID: -1,\r\n PageID: -1,\r\n ComponentID: Common.enumComponent.Job,\r\n ComponentCode: null,\r\n ComponentName: null,\r\n ComponentDescription: null,\r\n MenuItemID: -1,\r\n MenuCode: null,\r\n MenuName: this.job.JobStatus,\r\n MenuDescription: null,\r\n MenuFunction: null,\r\n MenuUrl: null,\r\n MenuIcon: null,\r\n MenuTypeID: null,\r\n MenuType: null,\r\n ParentMenuItemID: null,\r\n RoleID: null,\r\n RoleCode: null,\r\n RoleName: null,\r\n RoleDescription: null,\r\n StatusID: JOB_STATUS_ID,\r\n StatusCode: null,\r\n StatusName: this.job.JobStatus,\r\n StatusDescription: null,\r\n })\r\n this.selectedStatusId = JOB_STATUS_ID\r\n }\r\n // getJobStatusChange() {\r\n // this.jobService.jobStatusValueChange$.pipe(takeUntil(this.destroy$)).subscribe((statusId) => {\r\n // this.selectedStatusId = Common?.activeJob?.JobStatusID\r\n // this.job.JobStatus = Common?.activeJob?.JobStatus\r\n // this.job.JobStatusID = Common?.activeJob?.JobStatusID\r\n // this.setJobStatues()\r\n // })\r\n // }\r\n\r\n onJobStatusChange(mnuItem) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n if (this.menu.MenuCode == Common.enumJobStatusStrings.JOB_OPEN) {\r\n if (this.jobValidation?.length > 0) {\r\n let reqColumns = this.jobValidation\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n 'Can not change to Open, Please fill required fields: ' + reqColumns,\r\n 'Job Status'\r\n )\r\n this.setToolBarItems()\r\n return\r\n }\r\n }\r\n if (this.menu.MenuCode != Common.enumJobStatusStrings.JOB_OPEN || this.jobValidation?.length == 0) {\r\n const dialogRef = this.dialog.open(ActionDialogComponent, {\r\n data: { consultantjob: null, menu: this.menu },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == null || result == undefined) {\r\n this.setToolBarItems()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n if (result.jobClosedFromDate && this.isValidDate(new Date(result.jobClosedFromDate))) {\r\n this.jobClosedFromDate = format(new Date(result.jobClosedFromDate), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n this.JobProcessWorkFlow()\r\n }\r\n })\r\n }\r\n }\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n JobProcessWorkFlow() {\r\n var ljob: iJob = Common.activeJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n\r\n let comment = this.selectedReasonId\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : this.menu.MenuName\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n tap(() => this._getJobById(Common.activeJob.JobId))\r\n )\r\n .subscribe((result) => {\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n if (Common.enumJobStatuses.JOB_DELETE == nextStatusID) {\r\n this.notifyService.showSuccess('Record deleted successfully', 'Job Delete')\r\n this.router.navigate(['jobs']).then(() => {\r\n window.location.reload()\r\n })\r\n return\r\n }\r\n\r\n if (this.menu.MenuCode === Common.enumJobStatusStrings.JOB_CLOSE) {\r\n this._updateObjectStatusDate(\r\n this.job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Number(nextStatusID),\r\n this.selectedReason,\r\n this.authService.userInfo.userID,\r\n this.jobClosedFromDate\r\n )\r\n return\r\n }\r\n\r\n if ('JOB_CLONE' == this.menu.MenuCode) {\r\n this.reopenJob()\r\n return\r\n } else if (nextStatusID == undefined || nextStatusID == 0 || nextStatusID == 'Failed') {\r\n this.notifyService.showError('Failed: Unable to change the status!', 'Job Status')\r\n } else {\r\n this.job.JobStatusID = Number(nextStatusID)\r\n let statusname = this.wfStatus\r\n .filter((item) => item.StatusID === Number(nextStatusID))\r\n .map((x) => x.Name)\r\n\r\n Common.activeJob.JobStatusID = Number(nextStatusID)\r\n Common.activeJob.JobStatus = statusname.length > 0 ? statusname.toString() : this.menu.MenuName\r\n this.commonService.setToolBarItems(this.menu)\r\n\r\n this.notifyService.showSuccess(\r\n 'Job status successfully changed to ' + Common.activeJob.JobStatus,\r\n 'Job'\r\n )\r\n }\r\n this.setToolBarItems()\r\n })\r\n }\r\n\r\n private _updateObjectStatusDate(\r\n objectID: number,\r\n objectTypeId: number,\r\n statusID: number,\r\n comments: string,\r\n userID: number,\r\n jobClosedFromDate: string | Date\r\n ) {\r\n this.commonService\r\n .updateObjectStatusDate(objectID, objectTypeId, statusID, comments, userID, jobClosedFromDate)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job Status changed Successfully.', 'Job Status')\r\n },\r\n (error) => {\r\n this.notifyService.showSuccess('Error while changing Job Status.', 'Job Status')\r\n }\r\n )\r\n }\r\n private _getJobById(jobId: number) {\r\n this.loading = true\r\n this.jobService.getJob(jobId).subscribe({\r\n next: (job) => {\r\n this.loading = false\r\n Common.activeJob = job\r\n this.job = job\r\n this.setToolBarItems()\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n getJobFromTileView(jobId: number) {\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeJob = res\r\n // this.job = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n // this.openQuickpanel()\r\n })\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ job?.JobTitleName | titlecase | slice : 0 : 20 }}\r\n \r\n replay\r\n\r\n \r\n more_vert\r\n \r\n \r\n
\r\n
{{ job?.CompanyName }}
\r\n
\r\n Job ID: {{ job?.JobId }}\r\n \r\n
\r\n \r\n \r\n \r\n {{ job?.JobStatus }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{ job.LocationState }}, {{ job.LocationCity }}\r\n \r\n {{ '' | nullValueReplace }}\r\n \r\n \r\n \r\n\r\n \r\n Upto {{ job.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2' }}\r\n /Yearly\r\n \r\n \r\n Upto {{ job.MaxBillRate | currency : 'USD' : 'symbol-narrow' : '1.2-2' }}\r\n /Hr\r\n \r\n \r\n Upto {{ job.MaxBillRate | currency : 'USD' : 'symbol-narrow' : '1.2-2' }}\r\n /Hr\r\n OR\r\n {{\r\n job.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2'\r\n }}\r\n /Yearly\r\n \r\n \r\n \r\n {{ job?.JobType !== null ? job?.JobType : 'N/A' }}\r\n Position: {{ job?.Positions !== null ? job?.Positions : 'N/A' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n Job Status\r\n {{ toolBarItems[0].MenuName }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ mnuItem.MenuName }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Common } from 'src/app/common/common';\r\nimport { iDbResult, iMenuItem, ActiveObject, iKeyValue } from 'src/app/models/common.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n@Pipe({\r\n name: 'jobStatusFilter'\r\n})\r\n\r\nexport class JobStatusFilterPipe implements PipeTransform {\r\n constructor(\r\n\r\n public authService: AuthenticationService,\r\n ) { }\r\n transform(items: iMenuItem[], element: any): any[] {\r\n if(!items) return [];\r\n if(!element) return items;\r\n //searchText = searchText.toLowerCase();\r\n var astat\r\n var statusName\r\n astat = items.filter(\r\n item => (item.ComponentID === Common.enumComponent.Job &&\r\n item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == element.JobStatusId\r\n && item.RoleID == this.authService.userInfo.roles[0].roleID));\r\n\r\n // astat.unshift({\r\n // MenuID: -1,\r\n // PageID: -1,\r\n // ComponentID: Common.enumComponent.Job,\r\n // ComponentCode: null,\r\n // ComponentName: null,\r\n // ComponentDescription: null,\r\n // MenuItemID: -1,\r\n // MenuCode: null,\r\n // MenuName: element.JobStatus,\r\n // MenuDescription: null,\r\n // MenuFunction: null,\r\n // MenuUrl: null,\r\n // MenuIcon: 'assets/img/statusIcons/',\r\n // MenuTypeID: null,\r\n // MenuType: null,\r\n // ParentMenuItemID: null,\r\n // RoleID: null,\r\n // RoleCode: null,\r\n // RoleName: null,\r\n // RoleDescription: null,\r\n // StatusID: element.JobStatusId,\r\n // StatusCode: null,\r\n // StatusName: element.JobStatus,\r\n // StatusDescription: null,\r\n // });\r\n\r\n return astat;\r\n }\r\n // currentStatusIcon(statusId){\r\n // var url = 'assets/img/statusIcons/';\r\n // var menuIcon\r\n // if (statusId ==2) menuIcon = url+ 'red.svg'\r\n // else if (statusId ==3) menuIcon = url+ 'green.svg'\r\n // else if (statusId ==4) menuIcon = url+ 'orange.svg'\r\n // else if (statusId ==5) menuIcon = url+ 'gray.svg'\r\n // else if (statusId ==14) menuIcon = url+ 'blue.svg'\r\n // else if (statusId ==15) menuIcon = url+ 'light-gray.svg'\r\n // else if (statusId ==15) menuIcon = url+ 'light-gray.svg'\r\n // else if (statusId ==15) menuIcon = url+ 'light-gray.svg'\r\n // }\r\n \r\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef, ViewChild } from '@angular/core'\r\nimport { FormBuilder, Validators } from '@angular/forms'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Observable } from 'rxjs'\r\nimport { JobViewDescriptionComponent } from '../job-view-description/job-view-description.component'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n@Component({\r\n selector: 'job-description',\r\n templateUrl: './job-description.component.html',\r\n styleUrls: [\r\n './job-description.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n // encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms],\r\n})\r\nexport class JobDescriptionComponent implements OnInit, OnDestroy {\r\n //Inputs outputs\r\n @Input() events: Observable\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @ViewChild('jobDetailsConfirmationDialog') confirmationDialogRef: TemplateRef\r\n\r\n clickedSubmitWithoutInput: boolean = false\r\n activeJob = Common.activeJob\r\n keyData: any\r\n prevJobDesc: any\r\n isJobEdited: boolean = false\r\n public loading = false\r\n\r\n get f() {\r\n return this.jobForm.controls\r\n }\r\n constructor(\r\n public viewComponent: JobViewDescriptionComponent,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService,\r\n public dialog: MatDialog\r\n ) {}\r\n jobForm = this.formBuilder.group({\r\n Description: ['', Validators.required],\r\n })\r\n\r\n ngOnInit() {\r\n this.clickedSubmitWithoutInput = false\r\n if (Common.activeJob != null) {\r\n if (this.activeJob.Description != '' && this.activeJob.Description != undefined) {\r\n this.jobForm.get('Description').setValue(this.activeJob.Description)\r\n } else {\r\n this.ParseJobText()\r\n }\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.isJobEdited = false\r\n if (this.jobForm.valid) {\r\n this.saveJobDescription()\r\n } else {\r\n this.clickedSubmitWithoutInput = true\r\n }\r\n }\r\n saveJobDescription() {\r\n this.activeJob = Common.activeJob\r\n if (Common.activeJob.JobId != null) {\r\n this.activeJob.Description =\r\n this.jobForm.get('Description').value == undefined ? null : this.jobForm.get('Description').value\r\n this.loading = true\r\n this.jobService.AddJobDescription(this.activeJob).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n if (this.activeJob.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job description successfully saved.', '') // ToDO make 2000 as variable\r\n this.jobAdded.emit(2)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!' + err, '')\r\n }\r\n )\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clickedSubmitWithoutInput = false\r\n }\r\n\r\n ParseJobText() {\r\n this.keyData = Common.JobKeywords\r\n if (this.keyData != null) {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index]\r\n if (element.Key == 'JobDescription') {\r\n this.f.Description.setValue(element.Value)\r\n }\r\n }\r\n }\r\n }\r\n openConfirmationDialog() {\r\n this.dialog.open(this.confirmationDialogRef, {})\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n Job Description *\r\n
\r\n
\r\n \r\n \r\n Description is Required\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport { WorkOption, WorkOptionText } from 'src/app/enums/workOption'\r\nimport { InterviewType } from 'src/app/models/consultant.model'\r\nimport { iJobEducation, JobType, LegalType, User } from 'src/app/models/job.model'\r\nimport { JobService } from '../job.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { iKeyValue } from 'src/app/models/common.model'\r\nimport { ChangeDetectorRef } from '@angular/core'\r\n@Component({\r\n selector: 'leap-job-details-preview',\r\n templateUrl: './job-details-preview.component.html',\r\n styleUrls: ['./job-details-preview.component.scss'],\r\n})\r\nexport class JobDetailsPreviewComponent implements OnInit, OnChanges {\r\n @Input() jobDetails: any\r\n backgroundCheck: any\r\n backgroundCheckName: any\r\n interviewtypes: InterviewType[]\r\n interviewtypesNames: InterviewType[]\r\n legaltypes: LegalType[]\r\n legaltypesNames: LegalType[]\r\n education:iJobEducation\r\n jobtypes: JobType[]\r\n jobtypesNames: JobType[]\r\n softSkill: any[] = []\r\n professionalSkill: any[] = []\r\n recruiter: any\r\n primaryRecruiterName: any\r\n similarJobTitles: any[] = []\r\n secondaryRecruiter: any\r\n States: string = ''\r\n filteredStates: any[] = []\r\n private _destroy$: Subject = new Subject()\r\n salaryDisplayOptions$: Observable = this.jobService.getLookup('SalaryDisplayTypeID') as Observable<\r\n iKeyValue[]\r\n >\r\n constructor(private jobService: JobService, private cdr: ChangeDetectorRef) {}\r\n ngOnInit(): void {\r\n // this.jobDetails = Common.activeJob\r\n this.getSkill()\r\n }\r\n getRecruiter() {\r\n this.jobService\r\n .getRecruiter()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (recruiter: User[]) => {\r\n this.recruiter = recruiter as User[]\r\n const primaryRecruiter = this.recruiter?.filter((b) => this.jobDetails?.PostedFor === b?.UserID)\r\n if (primaryRecruiter && primaryRecruiter?.length) {\r\n this.primaryRecruiterName = `${primaryRecruiter[0]?.FirstName} | ${primaryRecruiter[0]?.UserName}`\r\n }\r\n\r\n const secoundaryRecruiter = this.recruiter?.filter(\r\n (b) => this.jobDetails?.SecondaryRecruiterId === b?.UserID\r\n )\r\n if (secoundaryRecruiter && secoundaryRecruiter.length > 0) {\r\n this.secondaryRecruiter = `${secoundaryRecruiter[0]?.FirstName} | ${secoundaryRecruiter[0]?.UserName}`\r\n }\r\n },\r\n error: () => {},\r\n })\r\n }\r\n getWorkOptionName(workOptionId: number): string {\r\n switch (workOptionId) {\r\n case WorkOption.Remote:\r\n return WorkOptionText.Remote\r\n case WorkOption.Onsite:\r\n return WorkOptionText.Onsite\r\n case WorkOption.Hybrid:\r\n return WorkOptionText.Hybrid\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.getSkill()\r\n if (changes['jobDetails'] && this.jobDetails) {\r\n if (Array.isArray(this.jobDetails?.SimilarTitles || this.jobDetails?.JobSimiliarTitleName)) {\r\n this.similarJobTitles = [...(this.jobDetails?.SimilarTitles || this.jobDetails?.JobSimiliarTitleName)]\r\n } else {\r\n this.similarJobTitles = [\r\n ...(this.jobDetails?.SimilarTitles?.split(',') ||\r\n this.jobDetails?.JobSimiliarTitleName?.split(',')),\r\n ]\r\n }\r\n\r\n this.getRecruiter()\r\n this.updateLegalTypesNames()\r\n this.updateBackgroundCheckName()\r\n this.updateInterviewTypesNames()\r\n this.updateJobTypesNames()\r\n }\r\n }\r\n private updateLegalTypesNames() {\r\n const LEGAL_TYPE_ID_LIST =\r\n this.jobDetails?.JobLegalTypes?.map((legalType) => legalType.LegalTypeId) || this.jobDetails?.legalTypeCrtl\r\n this.legaltypes = (Common.lookUp?.filter((item) => item.TypeCode == 'LegalTypeID') || [])?.map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.legaltypesNames = this.legaltypes?.filter((b) => LEGAL_TYPE_ID_LIST?.includes(b?.Value))\r\n }\r\n private updateBackgroundCheckName() {\r\n this.backgroundCheck = (Common.lookUp?.filter((item) => item.TypeCode == 'BkGrondChkID') || []).map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.backgroundCheckName = this.backgroundCheck?.filter(\r\n (c) => Array.isArray(this.jobDetails?.backGroundCrtl) && this.jobDetails?.backGroundCrtl.includes(c?.Value)\r\n )\r\n }\r\n private updateInterviewTypesNames() {\r\n const INTERVIEW_TYPE_ID_LIST =\r\n this.jobDetails?.JobInterviewTypes?.map((interviewType) => interviewType.InterviewTypeId) ||\r\n this.jobDetails?.interviewTypeCrtl\r\n this.interviewtypes = (Common.lookUp?.filter((item) => item.TypeCode == 'InterviewTypeId') || []).map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.interviewtypesNames = this.interviewtypes?.filter((b) => INTERVIEW_TYPE_ID_LIST?.includes(b?.Value))\r\n }\r\n private updateJobTypesNames() {\r\n this.jobtypes = (Common.lookUp?.filter((item) => item.TypeCode == 'JobTypelD') || []).map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.jobtypesNames = this.jobtypes?.filter((b) => this.jobDetails?.JobTypeID === b?.Value)\r\n }\r\n getSkill(): void {\r\n if (this.jobDetails?.JobSkills) {\r\n this.softSkill = []\r\n this.professionalSkill = []\r\n this.jobDetails.JobSkills.forEach((skill) => {\r\n if (skill?.SkillTypeId === 152) {\r\n this.softSkill.push(skill)\r\n } else if (\r\n skill?.SkillTypeId === 151 ||\r\n skill?.SkillTypeId === null ||\r\n skill?.SkillTypeId === undefined\r\n ) {\r\n this.professionalSkill.push(skill)\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n Job Title : \r\n {{ jobDetails?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n Job Code : {{ jobDetails?.JobCode | nullValueReplace }}\r\n
\r\n
\r\n Similar Titles:\r\n \r\n {{ title | nullValueReplace }} , \r\n \r\n \r\n {{ jobDetails?.SimilarTitles | nullValueReplace }}\r\n \r\n
\r\n
\r\n Job Category : \r\n {{ jobDetails?.JobCategory | nullValueReplace }}\r\n
\r\n
\r\n Specialized Skill : \r\n {{ jobDetails?.SpecializedSkill | nullValueReplace }}\r\n
\r\n
\r\n MinimumExperience: \r\n {{ jobDetails?.MinExperience | nullValueReplace }}\r\n
\r\n
\r\n MaximumExperience: \r\n {{ jobDetails?.MaxExperience | nullValueReplace }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Company Name : {{ jobDetails?.CompanyName | nullValueReplace }}\r\n
\r\n
\r\n Hiring Manager : {{ jobDetails?.CompanyContact | nullValueReplace }}\r\n
\r\n
\r\n Program Manager : {{ jobDetails?.MspContact | nullValueReplace }}\r\n
\r\n
\r\n Work Option : {{ getWorkOptionName(jobDetails?.WorkOptionId) }}\r\n
\r\n
\r\n
\r\n Address : {{ jobDetails?.StreetAddress | nullValueReplace }}\r\n
\r\n
\r\n City : {{ jobDetails?.City | nullValueReplace }}\r\n
\r\n
\r\n State : {{ jobDetails?.State | nullValueReplace }}\r\n
\r\n
\r\n Zip Code : \r\n {{ jobDetails?.ZipCode | nullValueReplace }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Job Type : \r\n {{ bg?.Key | nullValueReplace }}, \r\n \r\n
\r\n
\r\n Max Bill Rate : {{ jobDetails?.MaxBillRate | nullValueReplace }}\r\n
\r\n
\r\n Max Annual Salary : {{ jobDetails?.MaxSalary | nullValueReplace }}\r\n
\r\n
\r\n Salary External Portal : \r\n {{ jobDetails?.ExternalPortal | nullValueReplace }}\r\n
\r\n
\r\n Work Type : {{ jobDetails?.workTypeID == 1 ? 'Full Time' : ('Part Time' | nullValueReplace) }}\r\n
\r\n
\r\n No Of Position : {{ jobDetails?.NoOfPosition | nullValueReplace }}\r\n
\r\n
\r\n Max Submission : {{ jobDetails?.MaxSubmission | nullValueReplace }}\r\n
\r\n
\r\n No Of Hours/Week : {{ jobDetails?.NoOfHoursWeek || 40 }}\r\n
\r\n
\r\n Vendors Allowed : \r\n {{ jobDetails?.IsVendorAllowed == true ? 'Yes' : ('No' | nullValueReplace) }}\r\n
\r\n
\r\n Work Permit : \r\n {{ bg.Key | nullValueReplace }}, \r\n \r\n
\r\n
Background Checks :
\r\n
\r\n {{ bg?.Key | nullValueReplace }}, \r\n \r\n
\r\n
\r\n Interview Type : \r\n {{ bg?.Key | nullValueReplace }}, \r\n \r\n
\r\n
\r\n Travel Required : \r\n {{ jobDetails?.TravelRequired ? 'Yes' : ('No' | nullValueReplace) }}\r\n
\r\n
\r\n Job Related Travel : \r\n {{ jobDetails?.TravelPercentage || '0%' | nullValueReplace }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Description : \r\n
\r\n
\r\n Boolean Query : \r\n {{ jobDetails?.BooleanQuery | nullValueReplace }}\r\n
\r\n Alternate Boolean Query : \r\n {{ jobDetails?.AlternateQuery | nullValueReplace }}\r\n
\r\n Professional Skills : \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill NameExperience
{{ skill?.SkillName }}{{ skill?.Experience }}
\r\n
\r\n
\r\n Soft Skills : \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill Name
{{ skill?.SkillName }}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Education : \r\n \r\n {{ edu?.EducationName | nullValueReplace }}\r\n , \r\n \r\n
\r\n
\r\n Certifications : \r\n \r\n {{ cert?.CertificationName | nullValueReplace }}\r\n , \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Start Date : {{ jobDetails?.StartDate | date : 'short' | nullValueReplace }}\r\n
\r\n
\r\n End Date : {{ jobDetails?.EndDate | date : 'short' | nullValueReplace }}\r\n
\r\n
\r\n Primary Recruiter : {{ primaryRecruiterName | nullValueReplace }}\r\n
\r\n
\r\n Secondary Recruiters : \r\n {{ secondaryRecruiter | nullValueReplace }}\r\n
\r\n
\r\n Submission Due Date : \r\n {{ jobDetails?.ExpiryDate | date : 'short' | nullValueReplace }}\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, Input, TemplateRef, ViewChild } from '@angular/core'\r\nimport { FormBuilder, FormGroup, Validators, ValidatorFn, AbstractControl } from '@angular/forms'\r\nimport { Contact, iJob, Skill, SkillLevel, WorkOptions } from 'src/app/models/job.model'\r\nimport { iCategory } from 'src/app/models/common.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Common, FormLocation } from '../../common/common'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { LocationComponent } from 'src/app/common/location/location.component'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n\r\nexport function forbiddenNamesValidator(names: string[]): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n // below findIndex will check if control.value is equal to one of our options or not\r\n const index = names.findIndex((name) => {\r\n return new RegExp('^' + name + '$').test(control.value)\r\n })\r\n return index < 0 ? { forbiddenNames: { value: control.value } } : null\r\n }\r\n}\r\n@Component({\r\n selector: 'job-details',\r\n templateUrl: './job-details.component.html',\r\n styleUrls: ['./job-details.component.scss'],\r\n})\r\nexport class JobDetailsComponent implements OnInit {\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n jobForm1: FormGroup\r\n job: iJob = {}\r\n model: iJob = {}\r\n keyData: any\r\n jobLocation: iLocation\r\n selectedLocationId: number\r\n selectedCompanyId: number\r\n selectedContactId: number\r\n selectedIndustryId: number\r\n selectedCategoryId: number\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedMspContactId: number\r\n searchClientText: any\r\n programManager: any = []\r\n hiringManager: any = []\r\n contactEmail: string\r\n contactPhone: string\r\n companies: any = []\r\n titles: any = []\r\n isMSPClient: boolean\r\n isFormDataValid: boolean = false\r\n categories: any = []\r\n industries: any = []\r\n workOptions: WorkOptions[]\r\n calledFrom: string\r\n selectedWorkOptionID: number\r\n skills: any = []\r\n skillLevels: SkillLevel[]\r\n tempCompanies: any\r\n tempHiringManager: any\r\n tempProgramManager: any\r\n prevJob: any\r\n isLocationRequired: boolean = true\r\n isLocationFormChanged: boolean = false\r\n isJobEdited: boolean = false\r\n matcher = new CustomErrorStateMatcher()\r\n public loading = false\r\n public editLocationSubject: Subject = new Subject()\r\n\r\n @Input() toCheckForFormChanges: boolean = false\r\n @Input() events: Observable\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @ViewChild('jobDetailsConfirmationDialog') confirmationDialogRef: TemplateRef\r\n @ViewChild(LocationComponent) locationComponent: LocationComponent\r\n constructor(\r\n public authService: AuthenticationService,\r\n private formBuilder: FormBuilder,\r\n private companyService: CompanyService,\r\n private jobService: JobService,\r\n private commonService: CommonService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.jobForm1 = this.formBuilder.group({\r\n phone: [''],\r\n JobTitleName: ['', Validators.required],\r\n CompanyContact: [''],\r\n MspContact: [''],\r\n CompanyName: [null, Validators.required],\r\n LocationID: [0],\r\n JobCode: [''],\r\n IndustryName: [''],\r\n JobCategory: ['', Validators.required],\r\n SpecializedSkill: [''],\r\n SkillLevel: [''],\r\n WorkOptionId: [],\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.jobService.getClients().subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobForm1.get('CompanyName').setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.job.JobId > 0) {\r\n this.selectedCompanyId = this.job.CompanyId\r\n this.companyChangeAction(this.job.CompanyId)\r\n }\r\n })\r\n\r\n this.jobService.GetJobCategory().subscribe((res) => {\r\n this.categories = res as iCategory[]\r\n })\r\n this.jobService.GetJobIndustry().subscribe((res) => {\r\n this.industries = res as iCategory[]\r\n })\r\n\r\n if (Common.lookUp != null) {\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == 'WorkOptionID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n }\r\n\r\n this.commonService.getConfig().subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.job = Common.activeJob\r\n this.model = Common.activeJob\r\n if (this.job.JobId != null) {\r\n if (this.job.JobId > 0) {\r\n this.jobForm1.get('JobTitleName').setValue(this.job.JobTitleName)\r\n this.jobForm1.get('JobCode').setValue(this.job.JobCode)\r\n this.jobForm1.get('CompanyName').setValue(this.job.CompanyName)\r\n this.jobForm1.get('CompanyContact').setValue(this.job.CompanyContact)\r\n this.jobForm1.get('MspContact').setValue(this.job.MspContact)\r\n this.jobForm1.get('IndustryName').setValue(this.job.IndustryName)\r\n this.jobForm1.get('JobCategory').setValue(this.job.JobCategory)\r\n this.jobForm1.get('SkillLevel').setValue(this.job.SkillLevel)\r\n this.jobForm1.get('SpecializedSkill').setValue(this.job.SpecializedSkill)\r\n this.jobForm1.get('WorkOptionId').setValue(this.job.WorkOptionId)\r\n this.selectedWorkOptionID = this.job.WorkOptionId\r\n this.selectedCompanyId = this.job.CompanyId\r\n this.selectedContactId = this.job.CustomerContactId\r\n this.selectedMspContactId = this.job.MspContactId\r\n this.selectedIndustryId = this.job.IndustryID\r\n this.selectedCategoryId = this.job.JobCategoryID\r\n this.selectedSkillLevelId = this.job.SkillLevelID\r\n this.selectedSpecializedSkillId = this.job.SpecializedSkillID\r\n\r\n this.contactEmail = this.job.ContactEmail\r\n this.contactPhone = this.job.ContactPhone\r\n this.selectedLocationId = Number(this.job.LocationID)\r\n this.job.JobStatusID = Number(this.job.JobStatusID)\r\n\r\n this.companyChangeAction(this.selectedCompanyId)\r\n this.isMSPClient = this.job.MspContactId > 0 ? true : false\r\n\r\n this.categorySkills(this.selectedCategoryId)\r\n\r\n Common.activeJob.JobDetails = this.job.JobDetails\r\n this.jobLocation = this.job.Location\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.job.Location\r\n }\r\n }\r\n } else {\r\n this.job = Common.activeJob\r\n this.ParseJobText()\r\n }\r\n } else {\r\n Common.activeJob = this.model\r\n }\r\n }\r\n\r\n isJobFormFieldValid(field: string) {\r\n return this.jobForm1.get(field).invalid && (this.jobForm1.get(field).dirty || this.jobForm1.get(field).touched)\r\n }\r\n\r\n onSelectedIndustry(industryCatID) {\r\n this.selectedIndustryId = industryCatID\r\n }\r\n onSelectedCategory(cat) {\r\n this.selectedCategoryId = cat.CategoryID\r\n this.categorySkills(this.selectedCategoryId)\r\n }\r\n onSelectedSkillName(cat) {\r\n this.selectedSpecializedSkillId = cat.SkillID\r\n }\r\n onSelectedSkillLevel(skillLevel) {\r\n this.selectedSkillLevelId = skillLevel.Value\r\n }\r\n\r\n onSelectedCompany(company) {\r\n this.selectedCompanyId = company.CompanyId\r\n this.companyChangeAction(this.selectedCompanyId)\r\n this.isMSPClient = company.MSPCompanyID > 0 ? true : false\r\n }\r\n onSelectedContact(contact) {\r\n this.selectedContactId = contact.ContactID\r\n }\r\n onSelectedProgramManager(contact) {\r\n this.selectedMspContactId = contact.ContactID\r\n }\r\n\r\n companyChangeAction(CompanyId) {\r\n this.hiringManager = null\r\n this.programManager = null\r\n this.selectedMspContactId = 0\r\n this.selectedContactId = 0\r\n\r\n this.jobForm1.get('CompanyContact').setValue('')\r\n this.jobForm1.get('MspContact').setValue('')\r\n\r\n this.jobService.getHiringManagers(CompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n this.tempHiringManager = res as Contact[]\r\n if (this.job.CompanyContact) {\r\n this.hiringManager.forEach((item) => {\r\n if (item.FirstName + ' ' + item.LastName === this.job.CompanyContact) {\r\n this.jobForm1.get('CompanyContact').setValue(item.FirstName + ' ' + item.LastName)\r\n }\r\n })\r\n this.selectedContactId = this.job.CustomerContactId\r\n } else if (this.hiringManager.length == 1) {\r\n this.jobForm1\r\n .get('CompanyContact')\r\n .setValue(this.hiringManager[0].FirstName + ' | ' + this.hiringManager[0].EmailAddress)\r\n this.selectedContactId = this.hiringManager[0].ContactID\r\n } else {\r\n this.jobForm1.get('CompanyContact').setValue('')\r\n }\r\n })\r\n this.jobService.getProgramManager(CompanyId).subscribe((res) => {\r\n this.programManager = res as Contact[]\r\n this.tempProgramManager = res as Contact[]\r\n if (this.job.MspContact) {\r\n this.jobForm1.get('MspContact').setValue(this.job.MspContact)\r\n this.selectedMspContactId = this.job.MspContactId\r\n } else this.jobForm1.get('MspContact').setValue('')\r\n })\r\n\r\n if (this.job.IndustryName) {\r\n this.jobForm1.get('IndustryName').setValue(this.job.IndustryName)\r\n } else {\r\n this.jobService.getCompanyByCompanyId(CompanyId).subscribe((res) => {\r\n if (res) {\r\n let industry = this.industries.filter((x) => x.CategoryID === res.IndustryID)\r\n if (industry.length > 0) {\r\n this.jobForm1.get('IndustryName').setValue(industry[0]['Name'])\r\n this.selectedIndustryId = res.IndustryID\r\n }\r\n }\r\n })\r\n }\r\n }\r\n categorySkills(selectedValue) {\r\n this.jobService.GetJobSpecializedSkills(selectedValue).subscribe((res) => {\r\n this.skills = res as Skill[]\r\n })\r\n }\r\n ParseJobText() {\r\n this.keyData = Common.JobKeywords\r\n if (this.keyData != null) {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index]\r\n\r\n if (element.Key == 'ContactEmail') {\r\n let email = element.Value.trim()\r\n this.contactEmail = element.Value.trim()\r\n this.jobService.GetParseEmail(email).subscribe((loc) => {\r\n let ep = loc\r\n if (this.selectedCompanyId == 0 || this.selectedCompanyId == null) {\r\n this.selectedCompanyId = ep[0]['CompanyID']\r\n this.selectedContactId = ep[0]['ContactID']\r\n this.selectedLocationId = ep[0]['LocationID']\r\n this.jobService.getHiringManagers(this.selectedCompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n let hmName = this.hiringManager\r\n .filter((option) => option.ContactID == this.selectedContactId)\r\n .map((x) => x.FirstName + ' ' + x.LastName + ' | ' + x.EmailAddress)\r\n .toString()\r\n this.jobForm1.get('CompanyContact').setValue(hmName)\r\n })\r\n\r\n this.jobForm1.get('CompanyName').setValue(ep[0]['CompanyName'])\r\n\r\n if (\r\n this.jobForm1.get('CompanyContact').value == '' ||\r\n this.jobForm1.get('CompanyContact').value == null\r\n )\r\n this.jobForm1.get('CompanyContact').setValue(ep[0]['ContactName'])\r\n this.companyService.GetCompanyLocations(this.selectedCompanyId, 1).subscribe((res) => {\r\n this.jobLocation = res[0]\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n })\r\n }\r\n })\r\n }\r\n if (element.Key == 'JobTitle') {\r\n let title = element.Value.trim()\r\n\r\n this.jobForm1.get('JobTitleName').setValue(title)\r\n }\r\n if (element.Key == 'ContactName') {\r\n let name = element.Value.trim()\r\n if (\r\n this.jobForm1.get('CompanyContact').value == '' ||\r\n this.jobForm1.get('CompanyContact').value == null\r\n )\r\n this.jobForm1.get('CompanyContact').setValue(name)\r\n }\r\n if (element.Key == 'ContactPhone') {\r\n this.contactPhone = element.Value.trim()\r\n }\r\n if (element.Key == 'JobCode') {\r\n this.jobForm1.get('JobCode').setValue(element.Value)\r\n }\r\n if (element.Key == 'Customer') {\r\n this.jobForm1.get('CompanyName').setValue(element.Value)\r\n }\r\n if (element.Key == 'CompanyID') {\r\n this.companyChangeAction(element.Value)\r\n }\r\n }\r\n }\r\n }\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (this.jobForm1.get('JobTitleName').value.length > 0) {\r\n this.jobService.getJobTitles(this.jobForm1.get('JobTitleName').value).subscribe((res) => {\r\n this.titles = res\r\n })\r\n }\r\n }\r\n\r\n onWorkOptionChange(event) {\r\n this.selectedWorkOptionID = event\r\n if (event == WorkOption.Remote) {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n }\r\n }\r\n\r\n onCompanyKeyPressed(event: string): void {\r\n if (event) {\r\n this.companies = this.tempCompanies.filter((company) =>\r\n company.Name.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.companies = this.tempCompanies\r\n }\r\n }\r\n\r\n onHiringManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.hiringManager = this.tempHiringManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.hiringManager = this.tempHiringManager\r\n }\r\n }\r\n\r\n onMSPManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.programManager = this.tempProgramManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.programManager = this.tempProgramManager\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.isJobEdited = false\r\n this.emitEventToLocationComp(this.isJobEdited)\r\n this.jobForm1.markAllAsTouched()\r\n if (this.isLocationRequired && !CommonData.activeLocation) {\r\n this.locationComponent.markLocationFormAsTouched()\r\n this.notifyService.showError('Location is required!', 'Job Details')\r\n return\r\n } else {\r\n if (\r\n (this.jobForm1.valid && !this.isLocationRequired) ||\r\n (this.jobForm1.valid && this.locationComponent?.locationForm?.valid)\r\n ) {\r\n this.saveJobDetails()\r\n }\r\n }\r\n }\r\n\r\n saveJobDetails() {\r\n this.loading = true\r\n this.isJobEdited = false\r\n this.model = Common.activeJob\r\n this.emitEventToLocationComp(this.isJobEdited)\r\n if (this.job.JobId != null) {\r\n this.model.JobId = this.job.JobId\r\n }\r\n this.model.JobHTML = Common.activeJob.JobHTML\r\n this.model.JobDetails = Common.activeJob.JobDetails\r\n this.model.JobTitleName = this.jobForm1.get('JobTitleName').value\r\n this.model.JobCode = this.jobForm1.get('JobCode').value == undefined ? null : this.jobForm1.get('JobCode').value\r\n this.model.CompanyName =\r\n this.jobForm1.get('CompanyName').value == undefined ? null : this.jobForm1.get('CompanyName').value\r\n this.model.CompanyContact =\r\n this.jobForm1.get('CompanyContact').value == undefined ? null : this.jobForm1.get('CompanyContact').value // this.ngCompany;\r\n this.model.Description = this.job.Description\r\n this.model.WorkOptionId = Number(\r\n this.jobForm1.get('WorkOptionId').value == '' ? false : this.jobForm1.get('WorkOptionId').value\r\n )\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.LocationID =\r\n this.selectedLocationId == undefined || this.selectedLocationId == null ? 0 : this.selectedLocationId\r\n this.model.CompanyId =\r\n this.selectedCompanyId == undefined || this.selectedCompanyId == null ? 0 : this.selectedCompanyId\r\n this.model.CustomerContactId =\r\n this.selectedContactId == undefined || this.selectedContactId == null ? 0 : this.selectedContactId\r\n this.model.MspContactId =\r\n this.selectedMspContactId == undefined || this.selectedMspContactId == null ? 0 : this.selectedMspContactId\r\n this.model.ContactEmail = this.contactEmail == undefined || this.contactEmail == null ? '' : this.contactEmail\r\n this.model.ContactPhone = this.contactPhone == undefined || this.contactPhone == null ? '' : this.contactPhone\r\n\r\n this.model.IndustryID = this.selectedIndustryId ? this.selectedIndustryId : 0\r\n this.model.JobCategoryID = this.selectedCategoryId ? this.selectedCategoryId : 0\r\n this.model.SpecializedSkillID = this.selectedSpecializedSkillId ? this.selectedSpecializedSkillId : 0\r\n this.model.SkillLevelID = this.selectedSkillLevelId ? this.selectedSkillLevelId : 0\r\n\r\n if (this.model.StartDate == undefined || this.model.StartDate == null) {\r\n this.model.StartDate = null\r\n }\r\n if (this.model.EndDate == undefined || this.model.EndDate.toString() == '') {\r\n this.model.EndDate = null\r\n }\r\n\r\n if (this.model.ExpiryDate == undefined || this.model.ExpiryDate.toString() == '') {\r\n this.model.ExpiryDate = null\r\n }\r\n if (this.model.JobStatusID == undefined || this.model.JobStatusID.toString() == '') {\r\n this.model.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n }\r\n if (this.model.JobId == undefined || this.model.JobId.toString() == '') {\r\n this.model.JobId = 0\r\n }\r\n this.jobService.AddJobDescription(this.model).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n Common.activeJob.JobHTML = this.model.JobHTML\r\n this.job = this.model = result\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n if (this.isLocationRequired) this.addLocation()\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.model.JobStatusID,\r\n '',\r\n this.authService.userInfo.userID\r\n ) // ToDO 3,2 - to Enum Values\r\n this.loading = false\r\n this.notifyService.showSuccess('Job details successfully saved.', '') // ToDO make 2000 as variable\r\n this.jobAdded.emit(1)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!' + err, '')\r\n }\r\n )\r\n }\r\n\r\n emitEventToLocationComp(value: boolean) {\r\n this.editLocationSubject.next(value)\r\n }\r\n locationFormChangesHandler(event: boolean) {\r\n this.isLocationFormChanged = event\r\n }\r\n addLocation() {\r\n try {\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n CommonData.activeLocation.ObjectId = this.job.JobId\r\n CommonData.activeLocation.ObjectTypeId = 3\r\n CommonData.activeLocation.LocationID = 0\r\n CommonData.activeLocation.LocationTypeID = 0\r\n this.companyService.AddLocation(CommonData.activeLocation).subscribe((res) => {\r\n if (res) {\r\n Common.activeJob.Location = res\r\n }\r\n })\r\n } catch (ex) {\r\n this.loading = false\r\n }\r\n }\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId, statusID, comments, userID).subscribe((result) => {\r\n result\r\n })\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n onInputChange(event: any): void {\r\n let value = event.target.value\r\n const numericValue = Number(value)\r\n if (numericValue < 0 || numericValue > 100 || isNaN(numericValue)) {\r\n event.target.value = ''\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n \r\n Generals\r\n \r\n \r\n
\r\n
\r\n
\r\n Job Title * \r\n \r\n \r\n Title is required\r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Customer Job Code\r\n \r\n \r\n \r\n
\r\n
\r\n Client *\r\n \r\n \r\n Client is required\r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n You should enter value from suggested ones only.\r\n \r\n \r\n
\r\n
\r\n Hiring Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Industry\r\n \r\n \r\n \r\n {{ industry.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Program/MSP Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Work Location\r\n \r\n
\r\n\r\n
\r\n
\r\n Category *\r\n \r\n \r\n \r\n {{ category.Name }}\r\n \r\n \r\n Category is required \r\n \r\n
\r\n
\r\n Specialized Skill\r\n \r\n \r\n \r\n {{ skill.SkillName }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Experience\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Work Options\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { AfterContentInit, Component, Inject, OnDestroy, OnInit, Optional, TemplateRef, ViewChild } from '@angular/core'\r\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, Validators } from '@angular/forms'\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { JobDialogTypes } from 'src/app/enums/jobDialogType'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { LegalStatus } from 'src/app/enums/legalStatus'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { Company, iCompany } from 'src/app/models/company.model'\r\nimport {\r\n BackgroundCheck,\r\n Contact,\r\n DegreeType,\r\n iJob,\r\n iJobCertification,\r\n iJobEducation,\r\n iJobInterviewType,\r\n iJobLegalType,\r\n iJobQuestionnaire,\r\n iJobSkill,\r\n iJobTitle,\r\n InterviewType,\r\n iSkills,\r\n JobType,\r\n LegalType,\r\n Skill,\r\n SkillLevel,\r\n User,\r\n WorkOptions,\r\n} from 'src/app/models/job.model'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { forbiddenNamesValidator } from '../job-details/job-details.component'\r\nimport { JobService } from '../job.service'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { MatChipInputEvent } from '@angular/material/chips'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { first, takeUntil } from 'rxjs/operators'\r\nimport { DialogFormMethod } from 'src/app/company/company-constants'\r\nimport { LocationComponent } from 'src/app/common/location/location.component'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { FilesTypes, InputType, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { DatePipe } from '@angular/common'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iCategory, iKeyValue } from 'src/app/models/common.model'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { LocationType } from 'src/app/enums/locationType'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs'\r\nimport { LookUpTypes, LookUpTypesIds } from 'src/app/enums/lookUpValues'\r\nimport { JobKeyWords } from 'src/app/enums/jobKeyWords'\r\nimport { CategoryValues } from 'src/app/models/category'\r\nimport { ConfigTypeId } from 'src/app/enums/valueType'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\n\r\n@Component({\r\n selector: 'leap-job-dialog',\r\n templateUrl: './job-dialog.component.html',\r\n styleUrls: [\r\n './job-dialog.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n providers: [\r\n DatePipe,\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n // encapsulation: ViewEncapsulation.Emulated,\r\n})\r\nexport class JobDialogComponent implements OnInit, OnDestroy, AfterContentInit {\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n public get dialogFormType(): typeof DialogFormMethod {\r\n return DialogFormMethod\r\n }\r\n public get jobDialogType(): typeof JobDialogTypes {\r\n return JobDialogTypes\r\n }\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n public get stepperButtonType(): typeof StepperButtonType {\r\n return StepperButtonType\r\n }\r\n\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n @ViewChild(LocationComponent) locationComponent: LocationComponent\r\n @ViewChild('stepper') public addJobStepper: MatStepper\r\n\r\n constructor(\r\n public authService: AuthenticationService,\r\n private fb: FormBuilder,\r\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any,\r\n @Optional() public dialogRef: MatDialogRef,\r\n private notifyService: NotificationService,\r\n private jobService: JobService,\r\n private companyService: CompanyService,\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog,\r\n private commonService: CommonService,\r\n private router: Router\r\n ) {\r\n this.minDate = new Date()\r\n this.minStartDate = new Date()\r\n this.minEndDate = new Date()\r\n this.maxSubmissionDate = new Date()\r\n }\r\n\r\n activeJob = Common.activeJob\r\n experienceLevels = []\r\n selectedEducations: Array = []\r\n skillNames: iSkills[]\r\n selectedInterviewTypes = []\r\n method: string\r\n submitButtonText: string = 'Update'\r\n selectedLegalTypes: number[] = []\r\n dialogName: string = ''\r\n jobUploadForm: FormGroup\r\n jobDescriptionForm: FormGroup\r\n jobDetailsForm: FormGroup\r\n jobOtherForm: FormGroup\r\n jobSkillForm: FormGroup\r\n jobEducationForm: FormGroup\r\n jobQuestionnaireForm: FormGroup\r\n\r\n isSoftSkill: boolean = false\r\n jobtxt: string = ''\r\n formData: any\r\n minBillRate = 1\r\n jobEductionId: number[] = []\r\n maxFileSize = Common.maxJDFileSize\r\n maxChars = Common.maxJDCharacters\r\n inputTextLength = 0\r\n isMaxCharValidationShown = false\r\n jobHTML: string = ''\r\n public loading = false\r\n file: any = null\r\n quillEditable: boolean = false\r\n fileContent: string = ''\r\n isJobDescriptionUploaded: boolean\r\n\r\n newSkill: any = {}\r\n SkillsArray: Array = []\r\n isSkillValid: boolean = false\r\n isReqSkillPresent: boolean\r\n editSkill: boolean = false\r\n editSkillIndex: number = 0\r\n\r\n questionArray: Array = []\r\n editQuestionIndex = 0\r\n newQuestion: any = {}\r\n\r\n job: iJob = this.activeJob\r\n model: iJob = {}\r\n selectable = true\r\n removable = true\r\n jobLocation: iLocation\r\n selectedLocationId: number\r\n selectedCompanyId: number\r\n selectedContactId: number\r\n selectedIndustryId: number\r\n selectedCategoryId: number\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedMspContactId: number = 0\r\n selectedMspContactName: string = ''\r\n programManager = []\r\n hiringManager = []\r\n contactEmail: string\r\n contactPhone: string\r\n companies = []\r\n titles = []\r\n isMSPClient: boolean\r\n isFormDataValid: boolean = false\r\n categories = []\r\n industries = []\r\n workOptions: WorkOptions[]\r\n calledFrom: string = ''\r\n selectedWorkOptionID: number\r\n skills = []\r\n skillLevels: SkillLevel[]\r\n tempCompanies = []\r\n tempHiringManager = []\r\n tempProgramManager = []\r\n isLocationFormChanged: boolean = false\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n skillToBeEdited = {}\r\n questionTypeToBeAdded: number = 2 //by default new question to be added will be set to LINE TEXT\r\n jobTypevalue: number\r\n showBillRate: boolean\r\n showSalary: boolean\r\n minDate: Date = new Date()\r\n minStartDate: Date = new Date()\r\n minEndDate: Date = new Date()\r\n maxSubmissionDate: Date = new Date()\r\n legaltypes: LegalType[]\r\n interviewtypes: InterviewType[]\r\n backgroundchecks: BackgroundCheck[]\r\n jobTypes: JobType[]\r\n workTypeID: number\r\n selectedLegalTypeArray: MatTableDataSource\r\n selectedInterviewTypeArray: MatTableDataSource\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n skillNamesAlreadyPresent: string[] = []\r\n questionToBeEdited: iJobQuestionnaire\r\n travelPercent = document.getElementById('travelPercent')\r\n selectedBackgroundChecks = []\r\n isTravelRequired: boolean = false\r\n isLocationRequired: boolean = true\r\n addJobUrl: string\r\n isZipCodeRequired: boolean = false\r\n isStepperVissible: boolean\r\n questionTypes = this.jobService.getQuestionTypes()\r\n isActiveIndex: number\r\n questionType: string = ''\r\n isQuestionInputShow: boolean = false\r\n editQuestion: boolean = false\r\n iconSrcCommon = 'assets/img/Leap-Tiger_Icons/Job-Module-Icon/'\r\n ngUnsubscribe$: Subject = new Subject()\r\n degreeType: DegreeType[]\r\n selectedCertifications: Array = []\r\n selectedDegree: string[] = []\r\n isFileUploaded: boolean = false\r\n JobSkillDatasource: iJobSkill[]\r\n public editLocationSubject: Subject = new Subject()\r\n salaryDisplayOptions$: Observable = this.jobService.getLookup('SalaryDisplayTypeID') as Observable<\r\n iKeyValue[]\r\n >\r\n\r\n matcher = new CustomErrorStateMatcher()\r\n\r\n ngOnInit() {\r\n this.addJobUrl = this.route.snapshot['_routerState'].url.split('/')[2]\r\n this.isStepperVissible = this.addJobUrl == this.dialogFormType.Add ? true : false\r\n this.job = Common.activeJob\r\n this.activeJob = Common.activeJob\r\n this.dialogName = this.data?.dialogName\r\n this.isSoftSkill = this.data?.isSoftSkill\r\n this.jobTypevalue = Common.activeJob?.JobTypeID\r\n this.formData = this.data?.formData\r\n this.industries = this.data?.industries\r\n this.experienceLevels = this.data?.experienceLevels\r\n this.workOptions = this.data?.workOptions\r\n this.categories = this.data?.categories\r\n this.legaltypes = this.data?.legaltypes\r\n this.interviewtypes = this.data?.interviewtypes\r\n this.skillNamesAlreadyPresent = this.data?.skillNamesArray\r\n this.isZipCodeRequired = this.data.isZipCodeRequired\r\n this.method = this.data?.method\r\n if (\r\n this.method ==\r\n this.dialogFormType.Add.replace(this.dialogFormType.Add[0], this.dialogFormType.Add[0].toUpperCase())\r\n )\r\n this.submitButtonText = 'Add'\r\n this.backgroundchecks = this.data?.backgroundchecks\r\n this.questionToBeEdited = this.data?.questionToBeEdited\r\n this.primaryRecruiters = this.data?.primaryRecruiters\r\n this.secondaryRecruiters = this.data?.secondaryRecruiters\r\n this.jobLocation = this.data?.Location\r\n this.skillToBeEdited = this.data?.skillToBeEdited\r\n this.buildForms()\r\n if (!this.isStepperVissible) {\r\n this.bindFormData()\r\n }\r\n this.jobUploadForm.get('jobDetails').valueChanges.subscribe((data) => {\r\n this.jobHTML = data == null ? '' : data\r\n this.jobtxt = this.htmlToPlaintext(data)\r\n })\r\n\r\n this.categorySkills(Common.activeJob?.JobCategoryID)\r\n if (this.dialogName == JobDialogTypes.Details) {\r\n this.setJobClientsOption()\r\n this.getJobIndustries()\r\n }\r\n }\r\n BindRequiredSkill(jobid) {\r\n this.jobService.GetJobSkills(jobid).subscribe(\r\n (res) => {\r\n this.JobSkillDatasource = res as iJobSkill[]\r\n if (res == null || this.JobSkillDatasource.length == 0) {\r\n if (Common.JobKeywords != null) {\r\n if (Common.JobKeywords.ReqSkills != null) this.SkillsArray = Common.JobKeywords.ReqSkills\r\n }\r\n } else {\r\n this.SkillsArray = this.JobSkillDatasource\r\n }\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n setJobClientsOption() {\r\n this.jobService\r\n .getClientsByUserId(this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobDetailsForm\r\n .get('CompanyName')\r\n .setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.activeJob?.JobId > 0) {\r\n this.companyChangeAction(this.activeJob.CompanyId)\r\n }\r\n if (this.activeJob?.CompanyId) {\r\n this._checkForMspClientForJob()\r\n }\r\n })\r\n }\r\n\r\n private _checkForMspClientForJob() {\r\n const JOB_CLIENT: Company = this.companies?.find((company) => company?.CompanyId === this.activeJob?.CompanyId)\r\n if (JOB_CLIENT?.CompanyTypeID === CompanyType.MSP || JOB_CLIENT?.MSPCompanyID !== null) {\r\n this.isMSPClient = true\r\n } else {\r\n this.isMSPClient = false\r\n }\r\n }\r\n\r\n getJobExperience() {\r\n if (Common.lookUp != undefined && Common.lookUp != null) {\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.EXPLEVEL)\r\n .map((experience) => ({ Key: experience.ValueName, Value: experience.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.WORKID)\r\n .map((workOption) => ({ Key: workOption.ValueName, Value: workOption.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.DEGREEID)\r\n .map((degree) => ({ Key: degree.ValueName, Value: degree.LookupID }))\r\n this.jobTypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.JOBID)\r\n .map((jobType) => ({ Key: jobType.ValueName, Value: jobType.LookupID }))\r\n }\r\n }\r\n\r\n getJobOtherDetailsData() {\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.LEGALID)\r\n .map((legalType) => ({ Key: legalType.ValueName, Value: legalType.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.INTERVIEWID)\r\n .map((interViewType) => ({ Key: interViewType.ValueName, Value: interViewType.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.BGCHECKID)\r\n .map((bgCheck) => ({ Key: bgCheck.ValueName, Value: bgCheck.LookupID }))\r\n }\r\n }\r\n\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n this.jobService\r\n .GetRecruitUsersByCompany(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job?.PostedFor)\r\n this.jobOtherForm.get('PostedFor').setValue(this.job?.PostedFor)\r\n this.jobOtherForm.get('SecondaryRecruiterId').setValue(this.job?.SecondaryRecruiterId)\r\n const CURRENT_USER_ROLE = this.authService.getCurrentUserRole()\r\n if (CURRENT_USER_ROLE === UserRoleId.RECRUITER) {\r\n const USER_ID = this.authService.userInfo.userID\r\n this.primaryRecruiters = this.primaryRecruiters.filter((recruiter) => recruiter.UserID == USER_ID)\r\n this.jobOtherForm.get('PostedFor').patchValue(USER_ID)\r\n }\r\n })\r\n }\r\n\r\n getJobIndustries() {\r\n this.jobService\r\n .GetJobIndustry()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.industries = res as iCategory[]\r\n })\r\n }\r\n\r\n getJobCategories() {\r\n this.jobService\r\n .GetJobCategory()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.categories = res as iCategory[]\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.travelPercent = document.getElementById('travelPercent')\r\n }\r\n\r\n isJobFormFieldValid(field: string) {\r\n return (\r\n this.jobDetailsForm?.get(field).invalid &&\r\n (this.jobDetailsForm?.get(field).dirty || this.jobDetailsForm?.get(field).touched)\r\n )\r\n }\r\n\r\n isFormFieldIsValid(field: string) {\r\n return (\r\n this.jobOtherForm?.get(field)?.invalid &&\r\n (this.jobOtherForm?.get(field)?.dirty || this.jobOtherForm?.get(field)?.touched)\r\n )\r\n }\r\n\r\n onSelectedIndustry(industryCatID) {\r\n this.selectedIndustryId = industryCatID\r\n }\r\n categorySkills(selectedValue) {\r\n if (selectedValue) {\r\n this.jobService\r\n .GetJobSpecializedSkills(selectedValue)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.skills = res as Skill[]\r\n })\r\n }\r\n }\r\n onSelectedCategory(cat) {\r\n this.selectedCategoryId = cat.CategoryID\r\n this.categorySkills(this.selectedCategoryId)\r\n }\r\n onSelectedSkillName(cat) {\r\n this.selectedSpecializedSkillId = cat.SkillID\r\n this.jobDetailsForm.get('SpecializedSkillID').setValue(this.selectedSpecializedSkillId)\r\n }\r\n\r\n onSelectedCompany(company) {\r\n this.jobDetailsForm.get('CompanyId').setValue(company.CompanyId)\r\n this.selectedCompanyId = company.CompanyId\r\n this.getRecruiters(this.selectedCompanyId)\r\n this.companyChangeAction(company.CompanyId)\r\n this.isMSPClient = company.CompanyTypeID === CompanyType.MSP || company?.MSPCompanyID !== null ? true : false\r\n }\r\n onSelectedContact(contact) {\r\n this.selectedContactId = contact.ContactID\r\n this.jobDetailsForm.get('CustomerContactId').setValue(this.selectedContactId)\r\n }\r\n onSelectedProgramManager(contact) {\r\n this.selectedMspContactId = contact.ContactID\r\n this.selectedMspContactName = `${contact.FirstName} ${contact.LastName}`\r\n }\r\n\r\n applyFilterSkill(filterValue) {\r\n if (filterValue.trim().length > 0) {\r\n this.jobService\r\n .getSkillNames(filterValue, this.isSoftSkill ? 152 : 151)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n })\r\n }\r\n }\r\n\r\n locationFormChangesHandler(event: boolean) {\r\n this.isLocationFormChanged = event\r\n }\r\n\r\n companyChangeAction(CompanyId) {\r\n this.hiringManager = null\r\n this.programManager = null\r\n this.selectedMspContactId = 0\r\n this.selectedMspContactName = ''\r\n this.selectedContactId = 0\r\n\r\n this.jobDetailsForm.get('CompanyContact').setValue('')\r\n this.jobDetailsForm.get('MspContact').setValue('')\r\n\r\n this.jobService\r\n .getHiringManagers(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n this.tempHiringManager = res as Contact[]\r\n if (this.job?.CompanyContact) {\r\n this.hiringManager.forEach((item) => {\r\n if (item.FirstName + ' ' + item.LastName === this.job.CompanyContact) {\r\n this.jobDetailsForm.get('CompanyContact').setValue(item.FirstName + ' ' + item.LastName)\r\n }\r\n })\r\n this.selectedContactId = this.job.CustomerContactId\r\n this.jobDetailsForm.get('CustomerContactId').setValue(this.selectedContactId)\r\n } else if (this.hiringManager.length == 1) {\r\n this.jobDetailsForm\r\n .get('CompanyContact')\r\n .setValue(this.hiringManager[0].FirstName + ' | ' + this.hiringManager[0].EmailAddress)\r\n this.selectedContactId = this.hiringManager[0].ContactID\r\n this.jobDetailsForm.get('CustomerContactId').setValue(this.selectedContactId)\r\n } else this.jobDetailsForm.get('CompanyContact').setValue('')\r\n })\r\n this.jobService\r\n .getProgramManager(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.programManager = res as Contact[]\r\n this.tempProgramManager = res as Contact[]\r\n if (this.job?.MspContact) {\r\n this.jobDetailsForm.get('MspContact').setValue(this.job.MspContact)\r\n this.selectedMspContactId = this.job.MspContactId\r\n this.selectedMspContactName = this.job?.MspContact\r\n } else this.jobDetailsForm.get('MspContact').setValue('')\r\n })\r\n\r\n if (this.job?.IndustryName) {\r\n this.jobDetailsForm.get('IndustryName').setValue(this.job.IndustryName)\r\n } else {\r\n this.jobService\r\n .getCompanyByCompanyId(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n let industry = this.industries.filter((x) => x.CategoryID === res.IndustryID)\r\n if (industry.length > 0) {\r\n this.jobDetailsForm.get('IndustryName').setValue(industry[0]['Name'])\r\n this.selectedIndustryId = res.IndustryID\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (this.jobDetailsForm.get('JobTitleName').value.length > 0) {\r\n this.jobService\r\n .getJobTitles(this.jobDetailsForm.get('JobTitleName').value)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.titles = res as iJobTitle[]\r\n })\r\n }\r\n }\r\n\r\n onWorkOptionChange(event) {\r\n this.selectedWorkOptionID = event\r\n if (event == WorkOption.Remote) {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n }\r\n }\r\n\r\n onCompanyKeyPressed(event: string): void {\r\n if (event) {\r\n this.companies = this.tempCompanies.filter((company) =>\r\n company.Name.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.companies = this.tempCompanies\r\n }\r\n }\r\n\r\n onHiringManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.hiringManager = this.tempHiringManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.hiringManager = this.tempHiringManager\r\n }\r\n }\r\n\r\n onMSPManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.programManager = this.tempProgramManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.programManager = this.tempProgramManager\r\n }\r\n }\r\n\r\n addCertification(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.selectedCertifications.push({\r\n JobCertificationID: null,\r\n JobID: 0,\r\n CertificationID: 0,\r\n CertificationName: value.trim(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n buildForms() {\r\n this.initialDescriptionForm()\r\n this.initialOtherForm()\r\n this.initialDetailsForm()\r\n this.initialEducationForm()\r\n this.initialSkillFrom()\r\n this.initalQuestionnaireForm()\r\n this.initialUploadForm()\r\n }\r\n\r\n bindFormData() {\r\n switch (this.dialogName) {\r\n case this.jobDialogType.Description: {\r\n this.jobDescriptionForm.patchValue(this.activeJob)\r\n break\r\n }\r\n case this.jobDialogType.Other: {\r\n this.workTypeID = this.activeJob?.WorkTypeID\r\n this.jobOtherForm.patchValue(this.activeJob)\r\n this.jobOtherForm.patchValue({ WorkTypeID: this.workTypeID })\r\n this.isTravelRequired = this.job?.TravelRequired\r\n break\r\n }\r\n case this.jobDialogType.Details: {\r\n this.jobDetailsForm.patchValue(this.activeJob)\r\n this.onWorkOptionChange(this.activeJob?.WorkOptionId)\r\n this.selectedCompanyId = Common?.activeJob?.CompanyId\r\n break\r\n }\r\n case this.jobDialogType.Education: {\r\n this.jobEducationForm.patchValue(this.activeJob)\r\n this.jobService\r\n .GetJobCertification(this.activeJob?.JobId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.selectedCertifications = res as iJobCertification[]\r\n })\r\n this.selectedDegree = []\r\n this.jobEductionId = []\r\n this.activeJob?.JobEducations.forEach((element) => {\r\n this.degreeType.forEach((degree) => {\r\n if (degree?.Key == element?.EducationName) {\r\n this.selectedDegree.push(degree?.Key)\r\n this.jobEductionId.push(degree?.Value)\r\n }\r\n })\r\n })\r\n this.jobEducationForm.get('JobEducations').setValue(this.selectedDegree)\r\n break\r\n }\r\n case this.jobDialogType.Skills: {\r\n this.jobSkillForm.patchValue(this.skillToBeEdited)\r\n break\r\n }\r\n case this.jobDialogType.Questionnaire: {\r\n this.jobQuestionnaireForm.patchValue(this.questionToBeEdited)\r\n break\r\n }\r\n }\r\n }\r\n\r\n resetForm() {\r\n switch (this.dialogName) {\r\n case this.jobDialogType.Description: {\r\n this.jobDescriptionForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Other: {\r\n this.jobOtherForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Details: {\r\n this.jobDetailsForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Education: {\r\n this.jobEducationForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Skills: {\r\n this.jobSkillForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Questionnaire: {\r\n this.jobQuestionnaireForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Upload: {\r\n this.jobUploadForm.reset()\r\n }\r\n }\r\n }\r\n\r\n initialUploadForm() {\r\n this.jobUploadForm = this.fb.group({\r\n jobDetails: [''],\r\n fileUploader: ['', Validators.compose([Validators.maxLength(512), Validators.minLength(2)])],\r\n })\r\n }\r\n\r\n initialDescriptionForm(description = '') {\r\n this.jobDescriptionForm = this.fb.group({\r\n Description: [description, [Validators.required, Validators.maxLength(25000)]],\r\n })\r\n this.ParseJobDescriptionText()\r\n }\r\n\r\n initialOtherForm() {\r\n this.jobOtherForm = this.fb.group({\r\n JobTypeID: [10],\r\n MinRate: [],\r\n MaxBillRate: [''],\r\n MinSalary: [],\r\n MaxSalary: [],\r\n Positions: [1],\r\n StartDate: ['', Validators.required],\r\n EndDate: [null],\r\n ExpiryDate: [null],\r\n WorkHours: [40],\r\n IsHot: [],\r\n Notes: [''],\r\n PostedFor: ['', Validators.required],\r\n SecondaryRecruiterId: [],\r\n MaxSubmissionCount: ['', [this.maxSubmitValidator]],\r\n VendorAllowedId: [],\r\n TravelRequired: [''],\r\n TravelPercentage: [null],\r\n BackgroundCheck: [],\r\n InterviewType: [],\r\n WorkTypeID: [1, Validators.required],\r\n LegalTypeNames: [],\r\n })\r\n\r\n this.getJobOtherDetailsData()\r\n if (this.activeJob?.CompanyId > 0) {\r\n this.getRecruiters(this.activeJob?.CompanyId)\r\n }\r\n if (this.isStepperVissible) this.JobTypeChange(10)\r\n if (this.job?.BackgroundCheckId) {\r\n this.selectedBackgroundChecks = this.job.BackgroundCheckId.split(',').map(Number)\r\n }\r\n if (this.job?.InterviewTypeNames) {\r\n let interviewTypeNamesArray = this.job.InterviewTypeNames.split(',').map((interviewType) =>\r\n interviewType.trim()\r\n )\r\n this.interviewtypes.forEach((interviewType) => {\r\n if (interviewTypeNamesArray.indexOf(interviewType.Key) != -1) {\r\n this.selectedInterviewTypes.push(interviewType.Value)\r\n }\r\n })\r\n }\r\n this.selectedLegalTypes = []\r\n this.selectedLegalTypes.push(LegalStatus.USCitizen)\r\n if (this.job?.LegalTypeNames) {\r\n let legalTypesNameArray = this.job?.LegalTypeNames.split(',').map((legalType) => legalType.trim())\r\n this.legaltypes?.forEach((legalType) => {\r\n if (legalTypesNameArray.indexOf(legalType.Key) != -1) {\r\n this.selectedLegalTypes.push(legalType.Value)\r\n }\r\n })\r\n }\r\n }\r\n\r\n maxSubmitValidator(control: AbstractControl): ValidationErrors | null {\r\n const controlValue = control?.value\r\n if (controlValue === 0) return null\r\n else if (controlValue > 0 && controlValue < Common?.activeJob?.Submitted) return { maxSubmitInvalid: true }\r\n }\r\n\r\n initialDetailsForm() {\r\n this.jobDetailsForm = this.fb.group({\r\n phone: [''],\r\n JobTitleName: ['', Validators.required],\r\n CompanyContact: [''],\r\n CompanyId: [],\r\n CustomerContactId: [],\r\n MspContact: [''],\r\n CompanyName: [null, Validators.required],\r\n LocationID: [0],\r\n JobCode: [''],\r\n IndustryName: [''],\r\n JobCategory: ['', Validators.required],\r\n SpecializedSkill: [''],\r\n SpecializedSkillID: [],\r\n SkillLevel: [''],\r\n WorkOptionId: [],\r\n SalaryDisplayTypeID: [240],\r\n MinExperience: [0, Validators.required],\r\n MaxExperience: [],\r\n })\r\n\r\n this.setJobClientsOption()\r\n this.getJobCategories()\r\n this.getJobIndustries()\r\n this.getJobExperience()\r\n }\r\n\r\n initialEducationForm() {\r\n this.jobEducationForm = this.fb.group({\r\n JobCertification: [''],\r\n JobEducations: [[]],\r\n })\r\n }\r\n initialSkillFrom() {\r\n this.jobSkillForm = this.fb.group({\r\n Experience: [null, !this.isSoftSkill ? Validators.required : ''],\r\n Required: [false],\r\n SkillName: ['', Validators.required],\r\n })\r\n }\r\n\r\n initalQuestionnaireForm() {\r\n this.jobQuestionnaireForm = this.fb.group({\r\n JobQuestionId: [''],\r\n JobId: [''],\r\n Question: [''],\r\n QuestionTypeId: [''],\r\n Options: [''],\r\n CreatedDate: [''],\r\n CreatedBy: [''],\r\n UpdatedDate: [''],\r\n UpdatedBy: [''],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n editDescription() {\r\n if (this.jobDescriptionForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobDescriptionForm.value })\r\n else this.jobDescriptionForm.markAllAsTouched()\r\n }\r\n\r\n editDetails() {\r\n if (\r\n (this.jobDetailsForm.valid && !this.isLocationRequired) ||\r\n (this.jobDetailsForm.valid && this.locationComponent?.locationForm?.valid)\r\n ) {\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobDetailsForm.value,\r\n selectedMspContactId: this.selectedMspContactId,\r\n selectedMspContactName: this.selectedMspContactName,\r\n selectedReason: this.jobDetailsForm.value,\r\n })\r\n } else if (this.isLocationRequired && this.locationComponent?.locationForm?.invalid) {\r\n this.locationComponent.markLocationFormAsTouched()\r\n this.notifyService.showError('Location is required!', '')\r\n } else this.jobDetailsForm.markAllAsTouched()\r\n }\r\n\r\n editOtherDetails() {\r\n if (this.jobOtherForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobOtherForm.value })\r\n else this.jobOtherForm.markAllAsTouched()\r\n }\r\n\r\n editSkills() {\r\n if (this.jobSkillForm.valid && !this.isDuplicateSkillAdded(this.jobSkillForm.value.SkillName)) {\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobSkillForm.value })\r\n } else if (this.jobSkillForm.valid && this.isDuplicateSkillAdded(this.jobSkillForm.value.SkillName)) {\r\n this.notifyService.showWarning('Skill name is already present', '')\r\n } else this.jobSkillForm.markAllAsTouched()\r\n }\r\n\r\n isDuplicateSkillAdded(skillName) {\r\n return this.skillNamesAlreadyPresent?.indexOf(skillName) != -1 ? true : false\r\n }\r\n editEducation() {\r\n this.getId()\r\n const removedEducations = this.activeJob?.JobEducations.filter(\r\n (initial) => !this.selectedEducations.some((current) => current.EducationName === initial.EducationName)\r\n )\r\n if (this.jobEducationForm.valid)\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobEducationForm.value,\r\n certifications: this.selectedCertifications,\r\n jobEducations: this.selectedEducations,\r\n removedEducations: removedEducations,\r\n })\r\n else this.jobEducationForm.markAllAsTouched()\r\n }\r\n\r\n getId() {\r\n const selectedDegreeValues = this.jobEducationForm?.value?.JobEducations || []\r\n this.selectedEducations = []\r\n selectedDegreeValues.forEach((degreeName: string) => {\r\n const degreeTypeObj = this.degreeType.find((dt) => dt.Key === degreeName)\r\n if (degreeTypeObj) {\r\n this.selectedEducations.push({\r\n JobEductionID: degreeTypeObj.Value,\r\n JobID: this.job.JobId || 0,\r\n EducationID: degreeTypeObj.Value,\r\n EducationName: degreeName,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n })\r\n }\r\n\r\n editQuestionnaire() {\r\n if (this.jobQuestionnaireForm.valid) {\r\n if (\r\n this.method ==\r\n this.dialogFormType.Add.replace(this.dialogFormType.Add[0], this.dialogFormType.Add[0].toUpperCase())\r\n ) {\r\n this.jobQuestionnaireForm.get('QuestionTypeId').setValue(this.questionTypeToBeAdded)\r\n }\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobQuestionnaireForm.value })\r\n } else this.jobQuestionnaireForm.markAllAsTouched()\r\n }\r\n\r\n onSave() {\r\n switch (this.dialogName) {\r\n case this.jobDialogType.Description: {\r\n this.editDescription()\r\n break\r\n }\r\n case this.jobDialogType.Other: {\r\n this.editOtherDetails()\r\n break\r\n }\r\n case this.jobDialogType.Details: {\r\n this.editDetails()\r\n break\r\n }\r\n case this.jobDialogType.Education: {\r\n this.editEducation()\r\n break\r\n }\r\n case this.jobDialogType.Skills: {\r\n this.editSkills()\r\n break\r\n }\r\n case this.jobDialogType.Questionnaire: {\r\n this.editQuestionnaire()\r\n break\r\n }\r\n }\r\n }\r\n\r\n onClose() {\r\n this.resetForm()\r\n this.dialogRef.close({ formName: 'close' })\r\n }\r\n\r\n removeCertification(keyword: any): void {\r\n let index = this.selectedCertifications.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.selectedCertifications.splice(index, 1)\r\n }\r\n }\r\n\r\n JobTypeChange(selectedValue) {\r\n this.jobTypevalue = selectedValue\r\n if (this.jobTypevalue !== 12) {\r\n this.jobOtherForm.get('EndDate').addValidators([Validators.required])\r\n } else {\r\n this.jobOtherForm.get('EndDate').clearValidators()\r\n }\r\n this.jobOtherForm.get('EndDate').updateValueAndValidity()\r\n //this.minSalary=15000;\r\n this.minBillRate = 1\r\n if (selectedValue == Common.enumJobContractType.JT_C2C) {\r\n // Contract ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = false\r\n this.jobOtherForm.controls['MinSalary'].clearValidators()\r\n this.jobOtherForm.controls['MaxSalary'].clearValidators()\r\n\r\n this.jobOtherForm.get('MinSalary').setValue('')\r\n this.jobOtherForm.get('MaxSalary').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_C2H) {\r\n // Contract to hire ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = true\r\n\r\n this.jobOtherForm.get('MinSalary').setValue('')\r\n this.jobOtherForm.get('MaxSalary').setValue('')\r\n this.jobOtherForm.get('MinRate').setValue('')\r\n this.jobOtherForm.get('MaxBillRate').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_PERM) {\r\n // Permanent\r\n this.showBillRate = false\r\n this.showSalary = true\r\n this.minBillRate = 0\r\n this.jobOtherForm.controls['MaxBillRate'].clearValidators()\r\n this.jobOtherForm.controls['MaxSalary'].clearValidators()\r\n this.jobOtherForm.get('MinRate').setValue('')\r\n this.jobOtherForm.get('MaxBillRate').setValue('')\r\n }\r\n }\r\n\r\n submissionDateChangesHandler(event) {\r\n this.minDate = event.value\r\n this.minStartDate = event.value.getDate() + 1\r\n this.minEndDate = event.value.getDate() + 2\r\n }\r\n\r\n startDateChangesHandler(event) {\r\n this.minEndDate = new Date(new Date(event.value).setDate(event.value.getDate() + 1))\r\n this.maxSubmissionDate = event.value.getDate()\r\n }\r\n\r\n onSelectLegalTypes(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jobLegalTypeData: iJobLegalType[] = []\r\n jobLegalTypeData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job?.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n if (this.selectedLegalTypeArray != null) {\r\n jobLegalTypeData = this.selectedLegalTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jobLegalTypeData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jobLegalTypeData) {\r\n if (event.source.value === order.LegalTypeId) {\r\n jobLegalTypeData.splice(jobLegalTypeData.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalTypeData)\r\n }\r\n\r\n recruiterHandler(event: any) {\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != event)\r\n }\r\n\r\n travelRequiredChanged(event) {\r\n let elemt1 = document.getElementById('travelPercentage')\r\n this.isTravelRequired = event\r\n }\r\n\r\n onSelectBackGroundCheck(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.selectedBackgroundChecks.push(event.source.value)\r\n } else {\r\n const index: number = this.selectedBackgroundChecks.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.selectedBackgroundChecks.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSelectInterviewType(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let interviewTypeSelectedOptions: iJobInterviewType[] = []\r\n if (this.selectedInterviewTypeArray != null) {\r\n interviewTypeSelectedOptions = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n interviewTypeSelectedOptions.push({\r\n JobInterviewTypeId: 0,\r\n JobId: this.job.JobId,\r\n InterviewTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of interviewTypeSelectedOptions) {\r\n if (event.source.value === order.InterviewTypeId) {\r\n interviewTypeSelectedOptions.splice(interviewTypeSelectedOptions.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedInterviewTypeArray = new MatTableDataSource(interviewTypeSelectedOptions)\r\n }\r\n\r\n certificationChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.selectedCertifications, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n questionTypeSelected(questionTypeId: number) {\r\n this.jobQuestionnaireForm.reset()\r\n this.questionTypeToBeAdded = questionTypeId\r\n this.questionTypes.forEach((item) => {\r\n item.isActive = questionTypeId === item.questionTypeId ? true : false\r\n })\r\n }\r\n\r\n cancelEdit() {\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n }\r\n\r\n //stepper handlers\r\n nextStepHandler() {\r\n switch (this.addJobStepper.selectedIndex) {\r\n case 0: {\r\n this.onJobUploadSubmit()\r\n break\r\n }\r\n case 1: {\r\n if (\r\n (this.jobDetailsForm.valid && !this.isLocationRequired) ||\r\n (this.jobDetailsForm.valid && this.locationComponent?.locationForm?.valid)\r\n ) {\r\n this.saveJobDetails()\r\n } else if (this.jobDetailsForm.invalid) {\r\n this.jobDetailsForm.markAllAsTouched()\r\n } else if (this.isLocationRequired && !CommonData.activeLocation) {\r\n this.jobDetailsForm.markAllAsTouched()\r\n this.locationComponent.markLocationFormAsTouched()\r\n this.notifyService.showError('Location is required!', '')\r\n }\r\n break\r\n }\r\n case 2: {\r\n if (this.jobDescriptionForm.valid) this.saveJobDescription()\r\n else this.jobDescriptionForm.markAllAsTouched()\r\n break\r\n }\r\n case 3: {\r\n if (this.jobOtherForm.valid) this.saveJobOtherDetails()\r\n else this.jobOtherForm.markAllAsTouched()\r\n break\r\n }\r\n case 4: {\r\n if (this.jobSkillForm.valid || this.SkillsArray.length > 0) this.saveJobSkill()\r\n else this.jobSkillForm.markAllAsTouched()\r\n break\r\n }\r\n case 5: {\r\n this.saveJobEducation()\r\n break\r\n }\r\n case 6: {\r\n if (this.jobQuestionnaireForm.valid) this.saveJobQuestionnaire()\r\n else this.jobQuestionnaireForm.markAllAsTouched()\r\n break\r\n }\r\n }\r\n }\r\n\r\n previousStepHandler() {\r\n this.addJobStepper.previous()\r\n }\r\n\r\n //JOB UPLOAD SECTION\r\n jobDescKeyUpEvent(event: any) {\r\n const inputType = event.inputType\r\n if (inputType === InputType.DROP || inputType === InputType.PASTE) {\r\n if (event.target.children.length) {\r\n const hadImage = this.isInputImage(event.target.children)\r\n if (hadImage) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n }\r\n }\r\n\r\n let inputValue = this.htmlToPlaintext(event.target.innerHTML)\r\n this.inputTextLength = inputValue.length\r\n if (this.inputTextLength > this.maxChars && !this.isMaxCharValidationShown) {\r\n this.isMaxCharValidationShown = true\r\n this.notifyService.showWarning('You have reached your maximum limit of characters allowed', '')\r\n }\r\n if (this.inputTextLength <= this.maxChars) {\r\n this.isMaxCharValidationShown = false\r\n }\r\n let content = inputValue.slice(0, this.maxChars)\r\n this.jobtxt = content\r\n this.jobHTML = content == null ? '' : content\r\n }\r\n\r\n isInputImage(children) {\r\n let hadImage = false\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i]\r\n if (child.tagName === FilesTypes.IMG.toUpperCase()) {\r\n hadImage = true\r\n continue\r\n }\r\n if (child.children.length) {\r\n hadImage = this.isInputImage(child.children)\r\n if (hadImage) {\r\n break\r\n }\r\n }\r\n }\r\n return hadImage\r\n }\r\n\r\n htmlToPlaintext(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : ''\r\n }\r\n\r\n jobDescOnPaste(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n var dlen = Number(clipboardData.getData('text').length)\r\n if (dlen == 0) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n let content = clipboardData.getData('text').slice(0, this.maxChars)\r\n this.model = this.jobUploadForm.value\r\n this.model.JobDetails = content\r\n this.model.JobHTML = content\r\n }\r\n\r\n onJobUploadSubmit() {\r\n if (this.jobHTML.length == 0) {\r\n this.jobHTML = this.jobtxt\r\n }\r\n if (this.jobtxt.length > 0) {\r\n if (this.inputTextLength > this.maxChars) {\r\n this.notifyService.showError('Please reduce the JD character count to upto 25000 characters', '')\r\n } else {\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n Common.activeJob = this.model\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.activeJob = Common.activeJob\r\n if (this.activeJob.JobId != null) {\r\n if (this.job.JobId > 0) {\r\n this.activeJob = Common.activeJob\r\n this.dialogName = this.jobDialogType.Details\r\n this.bindFormData()\r\n }\r\n } else {\r\n this.ShowParsedData()\r\n }\r\n } else {\r\n Common.activeJob = this.model\r\n }\r\n }\r\n }\r\n }\r\n ShowParsedData() {\r\n var jobKeyWords = Common?.JobKeywords || []\r\n this.SkillsArray = Common?.JobKeywords?.ReqSkills || []\r\n\r\n if (jobKeyWords != null) {\r\n this.addJobStepper.next()\r\n this.initialDetailsForm()\r\n this.initialOtherForm()\r\n this.setJobsValues()\r\n\r\n try {\r\n for (let index = 0; index < jobKeyWords.length; index++) {\r\n var element = jobKeyWords[index]\r\n switch (element.Key) {\r\n case JobKeyWords.BillRate: {\r\n var regex = /[\\d|,|.|e|E|\\+]+/g\r\n var rates = element?.Value.match(regex)\r\n if (rates.length > 1) {\r\n this.jobOtherForm.get('MaxBillRate').setValue(Number(rates[1]))\r\n } else if (rates.length == 1) {\r\n this.jobOtherForm.get('MaxBillRate').setValue(Number(rates[0]))\r\n }\r\n break\r\n }\r\n case JobKeyWords.JOBTITLE: {\r\n let title = element?.Value?.trim()\r\n this.jobDetailsForm.get('JobTitleName').setValue(title)\r\n break\r\n }\r\n case JobKeyWords.InterviewTypeID: {\r\n let data = element?.Value.split(',')\r\n for (let dd of data) {\r\n this.selectedInterviewTypes.push(Number(dd))\r\n }\r\n const newSelection = ['39']\r\n this.jobOtherForm.get('InterviewType')?.setValue(this.selectedInterviewTypes)\r\n\r\n //this.selectedInterviewTypeArray = new MatTableDataSource(interviewTypeSelectedOptions)\r\n //this.jobOtherForm.get('InterviewType').setValue(18)\r\n\r\n break\r\n }\r\n case JobKeyWords.ExpiryDate: {\r\n let data = element?.Value\r\n this.jobOtherForm.get('ExpiryDate').setValue(new Date(data))\r\n\r\n break\r\n }\r\n case JobKeyWords.Positions: {\r\n let data = element?.Value?.trim()\r\n this.jobOtherForm.get('Positions').setValue(Number(data))\r\n break\r\n }\r\n case JobKeyWords.MaximumSubmission: {\r\n let data = element?.Value?.trim()\r\n this.jobOtherForm.get('MaxSubmissionCount').setValue(Number(data))\r\n break\r\n }\r\n case JobKeyWords.STARTDATE: {\r\n let data = element?.Value\r\n if (data) this.jobOtherForm.get('StartDate').setValue(new Date(data))\r\n\r\n break\r\n }\r\n case JobKeyWords.EndDate: {\r\n let data = element?.Value\r\n if (data) this.jobOtherForm.get('EndDate').setValue(new Date(data))\r\n break\r\n }\r\n\r\n case JobKeyWords.CONTACTENAME: {\r\n let name = element?.Value?.trim()\r\n if (\r\n this.jobDetailsForm.get('CompanyContact').value == '' ||\r\n this.jobDetailsForm.get('CompanyContact').value == null\r\n )\r\n this.jobDetailsForm.get('CompanyContact').setValue(name)\r\n break\r\n }\r\n case JobKeyWords.CONTACTPHONE: {\r\n this.contactPhone = element?.Value?.trim()\r\n break\r\n }\r\n case JobKeyWords.JOBECODE: {\r\n this.jobDetailsForm.get('JobCode').setValue(element.Value)\r\n break\r\n }\r\n case JobKeyWords.CUSTOMER: {\r\n if (\r\n this.selectedCompanyId != 0 &&\r\n this.selectedCompanyId != undefined &&\r\n this.selectedCompanyId != null\r\n ) {\r\n this.jobDetailsForm.get('CompanyName').setValue(element.Value)\r\n }\r\n break\r\n }\r\n case JobKeyWords.COMPANYID: {\r\n this.selectedCompanyId = Number(element?.Value)\r\n this.getRecruiters(this.selectedCompanyId)\r\n this.companyChangeAction(element.Value)\r\n this.companyService.GetCompanyLocations(this.selectedCompanyId, 1).subscribe((res) => {\r\n this.jobLocation = res[0]\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n })\r\n break\r\n }\r\n case JobKeyWords.CONTACTID: {\r\n this.selectedContactId = Number(element?.Value)\r\n\r\n this.jobService.getHiringManagers(this.selectedCompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n let hmName = this.hiringManager\r\n .filter((option) => option.ContactID == this.selectedContactId)\r\n .map((x) => x.FirstName + ' ' + x.LastName + ' | ' + x.EmailAddress)\r\n .toString()\r\n // this.jobDetailsForm.get('CompanyContact').setValue(hmName)\r\n })\r\n break\r\n }\r\n case JobKeyWords.WORK_OPTION_ID: {\r\n let workOptionId = Number(element?.Value)\r\n this.jobDetailsForm.get('WorkOptionId').setValue(workOptionId)\r\n break\r\n }\r\n case JobKeyWords.Duration: {\r\n // let duration = jobKeyWords[40].Value.trim()\r\n let duration = element.Value.trim()\r\n let x = duration.split(' - ')\r\n let startDate = x[0] || '' //duration.Substring(0, duration.IndexOf(\" - \"));\r\n let endtDate = x[1] || '' //this.getBetween(duration,duration.IndexOf(\" - \"),10);\r\n var rx = /(? 6000000) {\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', '')\r\n this.file = null\r\n return\r\n }\r\n if (!this.validateFile(fileList[0].name)) {\r\n this.notifyService.showError('Selected file format is not supported!', '')\r\n this.file = null\r\n return\r\n }\r\n }\r\n\r\n uploadJob() {\r\n this.dialog.closeAll()\r\n this.loading = true\r\n let fileReader: FileReader = new FileReader()\r\n let self = this\r\n fileReader.onloadend = function (x) {\r\n self.fileContent = fileReader.result.toString()\r\n }\r\n fileReader.readAsText(this.file)\r\n const formData = new FormData()\r\n formData.append(this.file.name, this.file)\r\n this.jobService.uploadJobFile(formData).subscribe(\r\n (event) => {\r\n if (event) {\r\n var js = {}\r\n js = event\r\n self.jobUploadForm.get('jobDetails').setValue(this.jobtxt)\r\n this.jobtxt = (js as any)?.jobtxt || ''\r\n this.jobHTML = (js as any)?.jobHTML || ''\r\n Common.JobKeywords = (js as any)?.Keys || {\r\n ReqSkills: [],\r\n JobResponse: '',\r\n }\r\n Common.JobKeywords.ReqSkills = (js as any)?.ReqSkills || []\r\n Common.JobKeywords.JobResponse = (js as any)?.JobResponse || ''\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n self.model.JobDetails = self.jobUploadForm.get('jobDetails').value\r\n if (this.model.JobHTML !== undefined && this.model.JobHTML !== null) {\r\n if (this.model.JobHTML.length > 0) Common.activeJob = this.model\r\n this.notifyService.showSuccess('Successfully uploaded!', '')\r\n this.quillEditable = true\r\n this.isJobDescriptionUploaded = true\r\n this.addJobStepper.next()\r\n this.initialDetailsForm()\r\n this.loading = false\r\n this.file = null\r\n this.isFileUploaded = true\r\n this.onJobUploadSubmit()\r\n return\r\n } else {\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.loading = false\r\n }\r\n\r\n this.loading = false\r\n return\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n }\r\n )\r\n }\r\n\r\n skipHandler() {\r\n this.isJobDescriptionUploaded = false\r\n this.addJobStepper.next()\r\n this.initialDetailsForm()\r\n }\r\n\r\n openUploadFileDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n saveJobDetails() {\r\n this.loading = true\r\n if (this.isJobDescriptionUploaded) {\r\n this.model = Common.activeJob\r\n this.job = Common.activeJob\r\n this.model.JobId = this.job?.JobId\r\n }\r\n this.model.JobHTML = Common.activeJob != null ? Common.activeJob.JobHTML : ''\r\n this.model.JobDetails = Common.activeJob != null ? Common.activeJob.JobDetails : ''\r\n this.model.JobTitleName = this.jobDetailsForm?.value?.JobTitleName\r\n this.model.JobCode =\r\n this.jobDetailsForm?.value?.JobCode == undefined ? null : this.jobDetailsForm?.value?.JobCode\r\n this.model.CompanyName =\r\n this.jobDetailsForm?.value?.CompanyName == undefined ? null : this.jobDetailsForm?.value?.CompanyName\r\n this.model.CompanyContact =\r\n this.jobDetailsForm?.value?.CompanyContact == undefined ? null : this.jobDetailsForm?.value?.CompanyContact // this.ngCompany;\r\n this.model.Description = this.jobDescriptionForm.get('Description').value\r\n this.model.WorkOptionId = Number(\r\n this.jobDetailsForm?.value?.WorkOptionId == '' ? false : this.jobDetailsForm?.value?.WorkOptionId\r\n )\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.LocationID =\r\n this.selectedLocationId == undefined || this.selectedLocationId == null ? 0 : this.selectedLocationId\r\n this.model.CompanyId = this.jobDetailsForm?.value?.CompanyId != null ? this.jobDetailsForm?.value?.CompanyId : 0\r\n this.model.CustomerContactId =\r\n this.jobDetailsForm?.value?.CustomerContactId != null ? this.jobDetailsForm?.value?.CustomerContactId : 0\r\n this.model.MspContactId = this.selectedMspContactId === 0 ? 0 : this.selectedMspContactId\r\n this.model.ContactEmail = this.contactEmail == undefined || this.contactEmail == null ? '' : this.contactEmail\r\n this.model.JobTypeID = Common.activeJob?.JobTypeID\r\n this.model.JobStatusID = Common.activeJob?.JobStatusID\r\n this.model.MspContact =\r\n this.jobDetailsForm?.value?.MspContact != null ? this.jobDetailsForm?.value?.MspContact : ''\r\n\r\n this.model.IndustryID =\r\n this.industries.filter((industry) => industry.Name == this.jobDetailsForm?.value?.IndustryName)[0]\r\n ?.CategoryID >= 0\r\n ? this.industries.filter((industry) => industry.Name == this.jobDetailsForm?.value?.IndustryName)[0]\r\n ?.CategoryID\r\n : null\r\n this.model.SpecializedSkill =\r\n this.jobDetailsForm?.value?.SpecializedSkill == null ? '' : this.jobDetailsForm?.value?.SpecializedSkill\r\n this.model.SpecializedSkillID =\r\n this.jobDetailsForm?.value?.SpecializedSkillID == null ? 0 : this.jobDetailsForm?.value?.SpecializedSkillID\r\n this.model.JobCategoryID = this.selectedCategoryId ? this.selectedCategoryId : 0\r\n this.model.SkillLevelID = this.skillLevels?.filter(\r\n (skillLevel) => skillLevel?.Key == this.jobDetailsForm?.value?.SkillLevel\r\n )[0]?.Value\r\n if (this.model.StartDate == undefined || this.model.StartDate == null) {\r\n this.model.StartDate = null\r\n }\r\n if (this.model.EndDate == undefined || this.model.EndDate.toString() == '') {\r\n this.model.EndDate = null\r\n }\r\n\r\n if (this.model?.ExpiryDate == undefined || this.model?.ExpiryDate.toString() == '') {\r\n this.model.ExpiryDate = null\r\n }\r\n if (this.model?.JobStatusID == undefined || this.model?.JobStatusID.toString() == '') {\r\n this.model.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n }\r\n if (this.model.JobId == undefined || this.model.JobId.toString() == '') {\r\n this.model.JobId = 0\r\n }\r\n this.model.SalaryDisplayTypeID = this.jobDetailsForm?.get('SalaryDisplayTypeID').value\r\n\r\n this.jobService\r\n .AddJobDescription(this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n this.activeJob = Common.activeJob\r\n Common.activeJob.JobHTML = this.model.JobHTML\r\n this.job = this.model = result\r\n this.jobLocation = this.activeJob.Location\r\n if (this.activeJob.JobId > 0) {\r\n if (this.jobDetailsForm?.value?.WorkOptionId != WorkOption.Remote) this.addLocation()\r\n this.addJobStepper.next()\r\n this.initialDescriptionForm(this.job?.Description)\r\n this.loading = false\r\n this.notifyService.showSuccess('Job details updated successfully.', '') // ToDO make 2000 as variable\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n )\r\n }\r\n\r\n addLocation() {\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n CommonData.activeLocation.ObjectId = this.job.JobId\r\n CommonData.activeLocation.ObjectTypeId = ObjectType.Job\r\n CommonData.activeLocation.LocationID = 0\r\n CommonData.activeLocation.LocationTypeID = LocationType.Secondary\r\n this.companyService.AddLocation(CommonData.activeLocation).subscribe((res) => {\r\n if (res) {\r\n Common.activeJob.Location = res\r\n }\r\n })\r\n }\r\n\r\n saveJobDescription() {\r\n this.activeJob = Common.activeJob\r\n if (Common.activeJob.JobId != null) {\r\n this.activeJob.Description =\r\n this.jobDescriptionForm.get('Description').value == undefined\r\n ? null\r\n : this.jobDescriptionForm.get('Description').value\r\n this.loading = true\r\n this.jobService.AddJobDescription(this.activeJob).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n this.job = { ...result }\r\n if (this.activeJob.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job description successfully saved.', '')\r\n this.addJobStepper.next()\r\n // this.initialOtherForm()\r\n this.setJobsValues()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!' + err, '')\r\n }\r\n )\r\n }\r\n }\r\n ParseJobDescriptionText() {\r\n let keyData = Common.JobKeywords\r\n if (keyData != null) {\r\n for (let index = 0; index < keyData.length; index++) {\r\n var element = keyData[index]\r\n if (element.Key == 'JobDescription') {\r\n this.jobDescriptionForm.get('Description').setValue(element.Value)\r\n }\r\n }\r\n }\r\n }\r\n\r\n saveJobOtherDetails() {\r\n this.loading = true\r\n let activeJob: iJob = Common.activeJob\r\n this.model = activeJob\r\n\r\n this.model.JobTypeID = this.jobOtherForm.get('JobTypeID').value\r\n this.model.MaxBillRate =\r\n this.jobOtherForm.get('MaxBillRate').value == '' ? null : Number(this.jobOtherForm.get('MaxBillRate').value)\r\n this.model.MaxSalary =\r\n this.jobOtherForm.get('MaxSalary').value == '' ? null : Number(this.jobOtherForm.get('MaxSalary').value)\r\n this.model.Positions = Number(\r\n this.jobOtherForm.get('Positions').value == '' ? 0 : this.jobOtherForm.get('Positions').value\r\n )\r\n this.model.StartDate =\r\n this.jobOtherForm.get('StartDate').value == '' ? 0 : this.jobOtherForm.get('StartDate').value\r\n this.model.EndDate = this.jobOtherForm.get('EndDate').value == '' ? 0 : this.jobOtherForm.get('EndDate').value\r\n this.model.ExpiryDate =\r\n this.jobOtherForm.get('ExpiryDate').value == '' ? 0 : this.jobOtherForm.get('ExpiryDate').value\r\n this.model.MaxSubmissionCount = Number(\r\n this.jobOtherForm.get('MaxSubmissionCount').value == ''\r\n ? null\r\n : Number(this.jobOtherForm.get('MaxSubmissionCount').value)\r\n )\r\n this.model.PostedFor =\r\n this.jobOtherForm.get('PostedFor').value == '' ? 0 : this.jobOtherForm.get('PostedFor').value\r\n this.model.SecondaryRecruiterId =\r\n this.jobOtherForm.get('SecondaryRecruiterId').value == ''\r\n ? 0\r\n : this.jobOtherForm.get('SecondaryRecruiterId').value\r\n this.model.Notes = this.jobOtherForm.get('Notes').value == '' ? '' : this.jobOtherForm.get('Notes').value\r\n this.model.IsHot = Boolean(this.jobOtherForm.get('IsHot').value)\r\n this.model.WorkHours = Number(\r\n this.jobOtherForm.get('WorkHours').value == '' ? 0 : Number(this.jobOtherForm.get('WorkHours').value)\r\n )\r\n this.model.WorkTypeID = Number(this.jobOtherForm.get('WorkTypeID').value)\r\n this.model.VendorAllowedId = Number(\r\n this.jobOtherForm.get('VendorAllowedId').value == ''\r\n ? false\r\n : this.jobOtherForm.get('VendorAllowedId').value\r\n )\r\n this.model.JobId = activeJob.JobId\r\n this.model.JobStatusID = activeJob.JobStatusID\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.BackgroundCheckId = JSON.stringify(this.selectedBackgroundChecks)\r\n this.model.TravelRequired =\r\n this.jobOtherForm.get('TravelRequired').value != null\r\n ? this.jobOtherForm.get('TravelRequired').value == 'true'\r\n ? true\r\n : false\r\n : null\r\n this.model.TravelPercentage =\r\n this.jobOtherForm.get('TravelRequired').value != null &&\r\n this.jobOtherForm.get('TravelPercentage').value != null\r\n ? this.jobOtherForm.get('TravelPercentage').value\r\n : null\r\n if (this.selectedLegalTypeArray != null) {\r\n this.model.JobLegalTypes = this.selectedLegalTypeArray.data\r\n } else {\r\n let jobLegalTypeData: iJobLegalType[] = []\r\n jobLegalTypeData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalTypeData)\r\n }\r\n if (this.selectedInterviewTypeArray != null) {\r\n this.model.JobInterviewTypes = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n this.jobService.AddJobDescription(this.model).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job other details successfully saved.', '')\r\n this.addJobStepper.next()\r\n this.initialSkillFrom()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n )\r\n }\r\n\r\n saveSkillHandler() {\r\n this.isSkillValid =\r\n this.jobSkillForm.get('Experience').value > 0 && this.jobSkillForm.get('SkillName').value.trim().length > 0\r\n ? true\r\n : false\r\n if (this.isSkillValid) {\r\n if (this.editSkill) {\r\n let skillNamesArrayForEdit = [...this.SkillsArray]\r\n skillNamesArrayForEdit.splice(this.editSkillIndex, 1)\r\n if (\r\n this.getSkillNamesArray(skillNamesArrayForEdit)?.indexOf(\r\n this.jobSkillForm.get('SkillName').value\r\n ) == -1\r\n ) {\r\n this.SkillsArray = [\r\n ...this.SkillsArray.slice(0, this.editSkillIndex),\r\n {\r\n ...this.newSkill,\r\n Experience: this.jobSkillForm.get('Experience').value,\r\n SkillName: this.jobSkillForm.get('SkillName').value,\r\n Required: this.jobSkillForm.get('Required').value,\r\n LastUsed: this.jobSkillForm.get('LastUsed').value,\r\n },\r\n ...this.SkillsArray.slice(this.editSkillIndex + 1),\r\n ]\r\n this.editSkill = false\r\n this.jobSkillForm.reset()\r\n } else {\r\n this.notifyService.showError(\r\n 'This skill already exists in the list. Please select a different skill',\r\n ''\r\n )\r\n }\r\n } else if (this.SkillsArray.length > 0) {\r\n if (!this.SkillsArray.some((item) => item.SkillName === this.jobSkillForm.get('SkillName').value)) {\r\n this.isSkillValid = false\r\n this.newSkill = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.jobSkillForm.get('Experience').value,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.jobSkillForm.get('Required').value,\r\n SkillName: this.jobSkillForm.get('SkillName').value,\r\n LastUsed: this.jobSkillForm.get('LastUsed').value,\r\n }\r\n this.SkillsArray.push(this.newSkill)\r\n this.initialSkillFrom()\r\n } else {\r\n this.notifyService.showError(\r\n 'This skill already exists in the list. Please select a different skill',\r\n ''\r\n )\r\n }\r\n } else {\r\n this.newSkill = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.jobSkillForm.get('Experience').value,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.jobSkillForm.get('Required').value,\r\n SkillName: this.jobSkillForm.get('SkillName').value,\r\n LastUsed: this.jobSkillForm.get('LastUsed').value,\r\n }\r\n this.SkillsArray.push(this.newSkill)\r\n this.jobSkillForm.reset()\r\n }\r\n } else {\r\n if (this.jobSkillForm.get('SkillName').value.trim().length <= 0) {\r\n this.notifyService.showError('Skill Name cannot be empty. Please enter valid skill', '')\r\n return\r\n } else {\r\n this.notifyService.showError('Experience cannot be less than 1. Please enter valid experience', '')\r\n return\r\n }\r\n }\r\n }\r\n\r\n getSkillNamesArray(skillsArray) {\r\n let skillNamesArray = []\r\n skillsArray?.forEach((skill) => {\r\n skillNamesArray.push(skill?.SkillName)\r\n })\r\n return skillNamesArray\r\n }\r\n\r\n saveJobSkill() {\r\n this.job = Common.activeJob\r\n if (this.job?.JobId == null || this.job?.JobId == 0 || this.job?.JobId == undefined) {\r\n this.notifyService.showError('Skills could not save!', '')\r\n return\r\n }\r\n let skillCount = 0\r\n for (let index = 0; index < this.SkillsArray.length; index++) {\r\n if (this.SkillsArray[index].SkillName != '' && this.SkillsArray[index].Experience != 0) {\r\n skillCount++\r\n }\r\n }\r\n if (skillCount < 1) {\r\n this.notifyService.showWarning('Minimum one Required skill should be added', '')\r\n return\r\n }\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue?.JobId }\r\n this.data.JobSkills = this.SkillsArray\r\n this.checkForReqSkill(this.SkillsArray)\r\n if (this.isReqSkillPresent) {\r\n this.loading = true\r\n this.jobService.AddJobSkill(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job skills successfully saved.', '')\r\n this.loading = false\r\n this.addJobStepper.next()\r\n this.initialEducationForm()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skills could not save!', '')\r\n\r\n return\r\n }\r\n )\r\n } else {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n }\r\n }\r\n\r\n editSkillInAddMode(skill, index) {\r\n this.editSkillIndex = index\r\n this.editSkill = true\r\n this.jobSkillForm.patchValue(skill)\r\n }\r\n\r\n checkForReqSkill(skillArr) {\r\n skillArr.forEach((item) => {\r\n if (item.Required) {\r\n this.isReqSkillPresent = true\r\n return\r\n }\r\n })\r\n }\r\n\r\n removeSkill(index) {\r\n if (this.SkillsArray.length > 0) this.SkillsArray.splice(index, 1)\r\n }\r\n\r\n // JOB EDUCATION SECTION\r\n\r\n addRow(id: number) {\r\n if (this.jobQuestionnaireForm.get('Question').value.length === 0) {\r\n this.notifyService.showWarning('Please enter the question', '')\r\n } else {\r\n this.questionTypeToBeAdded = id\r\n if (this.jobQuestionnaireForm.get('Question').value.length > 0) {\r\n if (this.jobQuestionnaireForm.get('Options').value != null) {\r\n if (this.editQuestion) {\r\n this.questionArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n this.questionArray[this.editQuestionIndex].Options =\r\n this.jobQuestionnaireForm.get('Options').value\r\n } else {\r\n this.newQuestion = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: this.jobQuestionnaireForm.get('Options').value,\r\n viewOptions: this.jobQuestionnaireForm.get('Options').value.split(','),\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.questionArray.push(this.newQuestion)\r\n }\r\n } else {\r\n if (this.editQuestion) {\r\n this.questionArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n } else {\r\n this.newQuestion = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: '',\r\n viewOptions: [],\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.questionArray.push(this.newQuestion)\r\n }\r\n }\r\n }\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n return true\r\n }\r\n }\r\n\r\n saveJobEducation() {\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n return\r\n }\r\n\r\n this.getId()\r\n\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n this.data.JobEducations = this.selectedEducations\r\n this.data.JobCertifications = this.selectedCertifications\r\n this.loading = true\r\n this.jobService.AddJobCertAndEdu(this.data).subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '')\r\n this.addJobStepper.next()\r\n this.initalQuestionnaireForm()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n return\r\n }\r\n )\r\n }\r\n\r\n //JOB QUETIONNAIRE SECTION\r\n saveJobQuestionnaire() {\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save!', '')\r\n return\r\n }\r\n\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n\r\n this.data.Questionnaire = this.questionArray\r\n Common.activeJob.Questionnaire = this.questionArray\r\n this.jobService.AddQuestionnaire(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job questionnaire successfully saved.', '')\r\n this.addJobStepper.next()\r\n },\r\n (err: any) => {\r\n this.notifyService.showError('Could not save!' + err, '')\r\n return\r\n }\r\n )\r\n }\r\n removeQuestion(index) {\r\n if (this.questionArray.length > 0) {\r\n this.questionArray.splice(index, 1)\r\n }\r\n }\r\n\r\n editQuestionHandler(index) {\r\n this.isQuestionInputShow = true\r\n this.editQuestion = true\r\n this.editQuestionIndex = index\r\n if (this.questionArray[index].QuestionTypeId === 2) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.questionArray[index].Question)\r\n this.questionType = 'Line Text'\r\n } else if (this.questionArray[index].QuestionTypeId === 4) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.questionArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.questionArray[index].Options)\r\n this.questionType = 'Single Select'\r\n } else {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.questionArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.questionArray[index].Options)\r\n this.questionType = 'Multi Select (Checkboxes)'\r\n }\r\n }\r\n\r\n //JOB PREVIEW SECTION\r\n saveJob(statusId, templateRef: TemplateRef) {\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n if (statusId == Common.enumJobStatuses.JOB_DRAFT) {\r\n this.notifyService.showSuccess('Job successfully saved.', '')\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n Common.activeJob.JobStatus = 'Draft'\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Common.enumJobStatuses.JOB_DRAFT,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '350px',\r\n height: '100%',\r\n width: '100%',\r\n })\r\n this.router.navigate(['/jobs'])\r\n //this.jobAdded.emit(6);\r\n return\r\n } else if (statusId == Common.enumJobStatuses.JOB_OPEN) {\r\n let vresult: any\r\n if (this.job.JobTypeID == JobTypes.Contract && this.CheckValueForZero(this.job.MaxBillRate)) {\r\n this.notifyService.showWarning('Max Bill Rate is Required', '')\r\n } else if (this.job.JobTypeID == JobTypes.Permanent && this.CheckValueForZero(this.job.MaxSalary)) {\r\n this.notifyService.showWarning('Max Salary is Required', '')\r\n } else if (\r\n this.job.JobTypeID == JobTypes.ContractToHire &&\r\n this.CheckValueForZero(this.job.MaxSalary) &&\r\n this.CheckValueForZero(this.job.MaxBillRate)\r\n ) {\r\n this.notifyService.showWarning('Max Bill Rate and Max Salary is Required', '')\r\n }\r\n this.jobService.GetJobValidation(Common.activeJob.JobId).subscribe((result) => {\r\n vresult = result\r\n if (vresult.length > 0) {\r\n let reqColums = vresult\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n 'Can not change to Open, Please fill required fields: ' + reqColums,\r\n ''\r\n )\r\n return\r\n } else {\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_OPEN\r\n Common.activeJob.JobStatus = 'Open'\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Common.enumJobStatuses.JOB_OPEN,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '350px',\r\n height: '100%',\r\n width: '100%',\r\n })\r\n this.router.navigate(['/jobs'])\r\n }\r\n })\r\n }\r\n } else {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n }\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId, statusID, comments, userID).subscribe((result) => {\r\n result\r\n })\r\n }\r\n\r\n CheckValueForZero(val) {\r\n return val == 0\r\n }\r\n\r\n JobsPageBack() {\r\n this.router.navigate(['/jobs'])\r\n }\r\n\r\n setJobsValues() {\r\n if (this.activeJob != null && this.activeJob != undefined) {\r\n if (this.activeJob.JobTypeID > 0) {\r\n this.jobOtherForm.get('JobTypeID').setValue(this.activeJob.JobTypeID)\r\n this.JobTypeChange(this.activeJob.JobTypeID)\r\n this.jobOtherForm.get('MinRate').setValue(this.activeJob.MinBillRate)\r\n this.jobOtherForm.get('MaxBillRate').setValue(this.activeJob.MaxBillRate)\r\n this.jobOtherForm.get('MinSalary').setValue(this.activeJob.MinSalary)\r\n this.jobOtherForm.get('MaxSalary').setValue(this.activeJob.MaxSalary)\r\n this.jobOtherForm.get('Positions').setValue(this.activeJob.Positions)\r\n this.jobOtherForm.get('MaxSubmissionCount').setValue(this.activeJob.MaxSubmissionCount)\r\n this.jobOtherForm.get('StartDate').setValue(this.activeJob.StartDate)\r\n this.jobOtherForm.get('EndDate').setValue(this.activeJob.EndDate)\r\n this.jobOtherForm.get('ExpiryDate').setValue(this.activeJob.ExpiryDate)\r\n this.jobOtherForm.get('PostedFor').setValue(this.activeJob.PostedFor)\r\n\r\n this.jobOtherForm.get('SecondaryRecruiterId').setValue(this.activeJob.SecondaryRecruiterId)\r\n this.jobOtherForm.get('WorkHours').setValue(this.activeJob.WorkHours)\r\n this.jobOtherForm.get('Notes').setValue(this.activeJob.Notes)\r\n this.jobOtherForm.get('VendorAllowedId').setValue(this.activeJob.VendorAllowedId)\r\n this.jobOtherForm.get('IsHot').setValue(this.activeJob.IsHot)\r\n\r\n this.workTypeID = this.activeJob.WorkTypeID\r\n this.jobService.GetJobLegalStatus(this.activeJob.JobId).subscribe((res) => {\r\n var legalType = res as iJobLegalType[]\r\n let jobLegalData: iJobLegalType[] = []\r\n let legalTypesSelected: any[] = []\r\n for (let index = 0; index < legalType.length; index++) {\r\n legalTypesSelected.push(legalType[index]['LegalTypeId'])\r\n jobLegalData.push({\r\n JobLegalTypeId: legalType[index]['JobLegalTypeId'],\r\n JobId: this.activeJob.JobId,\r\n LegalTypeId: legalType[index]['LegalTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n\r\n if (legalTypesSelected.indexOf(8) == -1) {\r\n legalTypesSelected.push(8) // US Citizen should be added to all Job\r\n jobLegalData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.activeJob.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.jobOtherForm.get('LegalTypeNames').setValue(legalTypesSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n })\r\n this.jobService.GetJobInterviewType(this.job.JobId).subscribe((res) => {\r\n var interviewType = res as iJobInterviewType[]\r\n let jobLegalData: iJobInterviewType[] = []\r\n let interviewTypeSelected: any[] = []\r\n for (let index = 0; index < interviewType.length; index++) {\r\n interviewTypeSelected.push(interviewType[index]['InterviewTypeId'])\r\n jobLegalData.push({\r\n JobInterviewTypeId: interviewType[index]['JobInterviewTypeId'],\r\n JobId: interviewType[index]['JobId'],\r\n InterviewTypeId: interviewType[index]['InterviewTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.jobOtherForm.get('InterviewType').setValue(interviewTypeSelected)\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jobLegalData)\r\n })\r\n if (this.job.BackgroundCheckId) {\r\n var backgroundCheckString = this.activeJob.BackgroundCheckId\r\n var backgroundCheckArray = new Array()\r\n backgroundCheckArray = backgroundCheckString.split(',').map(Number)\r\n this.jobOtherForm.get('BackgroundCheck').setValue(backgroundCheckArray)\r\n this.selectedBackgroundChecks = backgroundCheckArray\r\n }\r\n } else {\r\n this.defaultSetting()\r\n if (this.job) {\r\n this.companyJobSetting(this.activeJob?.CompanyId)\r\n }\r\n }\r\n }\r\n }\r\n\r\n defaultSetting() {\r\n this.jobOtherForm.get('Positions').setValue(1)\r\n this.jobOtherForm.get('WorkHours').setValue(40)\r\n this.jobOtherForm.get('JobTypeID').setValue(10)\r\n this.jobOtherForm.get('MinRate').setValue('')\r\n // this.jobOtherForm.get('MaxBillRate').setValue('')\r\n this.jobOtherForm.get('MinSalary').setValue('')\r\n this.jobOtherForm.get('MaxSalary').setValue('')\r\n this.JobTypeChange(10)\r\n\r\n this.workTypeID = 1\r\n\r\n let legalTypesSelected: any[] = []\r\n let jobLegalData: iJobLegalType[] = []\r\n legalTypesSelected.push(8)\r\n jobLegalData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job?.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n this.jobOtherForm.get('LegalTypeNames').setValue(legalTypesSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n }\r\n\r\n companyJobSetting(companyId) {\r\n if (Common.ConfigValues != null) {\r\n var backgroundChecks = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.BackgroundChecks && //backgroundChecks\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n let backgroundChecksIds: number[] = []\r\n backgroundChecksIds = backgroundChecks.split(',').map((item) => Number(item))\r\n this.jobOtherForm.get('BackgroundCheck').setValue(backgroundChecksIds)\r\n this.selectedBackgroundChecks = [...backgroundChecksIds]\r\n\r\n var workAuth = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.Work_Authorization && //work authorization\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n\r\n let waIds: any[] = []\r\n waIds = workAuth.split(',').map((item) => Number(item))\r\n\r\n let jobLegalData: iJobLegalType[] = []\r\n let legalTypesSelected: any[] = []\r\n for (let index = 0; index < waIds.length; index++) {\r\n legalTypesSelected.push(waIds[index])\r\n jobLegalData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: waIds[index],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n legalTypesSelected.push(8)\r\n this.jobOtherForm.get('LegalTypeNames').setValue(legalTypesSelected)\r\n this.selectedLegalTypes = [...legalTypesSelected]\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobSetting) => {\r\n if (jobSetting) {\r\n var maxSubmit\r\n var vendorAllowed = false\r\n var jc = jobSetting\r\n .filter((option) => option.CategoryID == this.activeJob.JobCategoryID)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.indexOf(this.activeJob.JobCategoryID) > -1) {\r\n maxSubmit = jobSetting\r\n .filter((option) => option.CategoryID == this.activeJob.JobCategoryID)\r\n .map((x) => x.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option.CategoryID == this.activeJob.JobCategoryID)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n } else {\r\n maxSubmit = jobSetting\r\n .filter((option) => option.CategoryID == CategoryValues.CategoryTypeID_ALL)\r\n .map((x) => x.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option?.CategoryID == CategoryValues.CategoryTypeID_ALL)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n }\r\n\r\n if (maxSubmit) {\r\n if (this.jobOtherForm.get('MaxSubmissionCount')?.value == '') {\r\n this.jobOtherForm.get('MaxSubmissionCount').setValue(maxSubmit)\r\n }\r\n }\r\n if (vendorAllowed) {\r\n this.jobOtherForm.get('VendorAllowedId').setValue(vendorAllowed)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n onInputChange(event: any): void {\r\n let value = event.target.value\r\n const numericValue = Number(value)\r\n if (numericValue < 0 || numericValue > 100 || isNaN(numericValue)) {\r\n event.target.value = ''\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Add Job\r\n \r\n \r\n \r\n {{ index + 1 }} \r\n {{ index + 1 }} \r\n\r\n \r\n \r\n Upload\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Details\r\n \r\n \r\n \r\n\r\n \r\n \r\n Description\r\n \r\n \r\n \r\n\r\n \r\n \r\n Other
Details
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Skills\r\n \r\n \r\n \r\n\r\n \r\n \r\n Certifications/
Education
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Questionnaire\r\n \r\n \r\n \r\n\r\n \r\n \r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Back\r\n \r\n \r\n Skip\r\n \r\n \r\n Save\r\n \r\n \r\n Open\r\n \r\n 0)\r\n \"\r\n (click)=\"nextStepHandler()\"\r\n mat-raised-button\r\n class=\"small-primary-button\"\r\n matTooltip=\"Save & Next\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n >\r\n Save & Next\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Job Details\r\n close\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n General\r\n \r\n \r\n
\r\n
\r\n
\r\n

Cut and Paste Job Details

\r\n
\r\n \r\n \r\n
\r\n

\r\n Characters Remaining: {{ inputTextLength <= maxChars ? 25000 - inputTextLength : 0 }}/{{\r\n maxChars\r\n }}\r\n

\r\n

maxChars\">\r\n Characters limit crossed\r\n

\r\n
\r\n
\r\n
\r\n OR\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Upload Job Details

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Description \r\n \r\n close\r\n \r\n
\r\n
\r\n Job Description *\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n Description is Required\r\n \r\n\r\n \r\n Only 25000 characters allowed\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Details \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
Generals
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title * \r\n \r\n \r\n Title is required\r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Customer Job Code\r\n \r\n \r\n \r\n
\r\n
\r\n Client *\r\n \r\n \r\n Client is required\r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n You should enter value from suggested ones only.\r\n \r\n \r\n
\r\n
\r\n Hiring Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Industry\r\n \r\n \r\n \r\n {{ industry.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Salary external portal \r\n \r\n info\r\n \r\n \r\n \r\n \r\n {{ salary.Key }}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Open salary/Bill rate - Displays the salary/payrate range\r\n
\r\n
\r\n Confidential- The salary is open for negotiation\r\n
\r\n
\r\n
\r\n\r\n
\r\n Program/MSP Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Work Location\r\n \r\n
\r\n
\r\n
\r\n Category *\r\n \r\n \r\n \r\n {{ category.Name }}\r\n \r\n \r\n Category is required \r\n \r\n
\r\n
\r\n Specialized Skill\r\n \r\n \r\n \r\n {{ skill.SkillName }}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Minimum Experience *\r\n \r\n \r\n \r\n
\r\n
\r\n Maximum Experience\r\n \r\n \r\n \r\n
\r\n
\r\n Work Options\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Update\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Other Details \r\n \r\n
\r\n
\r\n Generals\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Job Type *\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Job type is Required\r\n \r\n \r\n
\r\n
\r\n Max. Bill Rate/Hr \r\n \r\n \r\n \r\n
\r\n
\r\n Max. Salary/Annum \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Start Date *\r\n \r\n \r\n Start date is required \r\n \r\n \r\n Start date cannot be less than current date\r\n \r\n
\r\n
\r\n End Date*\r\n \r\n \r\n End date is required \r\n \r\n \r\n The end date cannot be before the start date\r\n \r\n
\r\n
\r\n Submission Due Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No. of Positions\r\n \r\n \r\n \r\n
\r\n
\r\n Max Submission\r\n \r\n \r\n Max. Submit Should be greater or equal to {{ activeJob?.Submitted }}.\r\n \r\n
\r\n
\r\n
\r\n Work type & other details\r\n \r\n
\r\n\r\n
\r\n
\r\n Work Type*\r\n \r\n Full Time\r\n    \r\n Part Time\r\n \r\n Work type is required\r\n \r\n \r\n
\r\n
\r\n No. of Hours/week\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n Primary Recruiter*\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n Recruiter is required \r\n \r\n
\r\n
\r\n Secondary Recruiter\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Permit\r\n \r\n \r\n \r\n {{ legaltype.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Interview Type\r\n \r\n \r\n \r\n {{ interviewtype?.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Background Checks\r\n \r\n \r\n \r\n {{ bgc.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Travel Required\r\n \r\n \r\n Yes\r\n No\r\n \r\n \r\n
\r\n
\r\n Job Related Travel %\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Vendor Allowed \r\n \r\n \r\n
\r\n
\r\n Hot Job \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Update\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Education & Certifications \r\n \r\n
\r\n
\r\n
\r\n
Choose Degree
\r\n \r\n \r\n \r\n {{ dg.Key }}\r\n \r\n \r\n \r\n\r\n
Add Certifications
\r\n \r\n \r\n \r\n {{ cert.CertificationName }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Update\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n {{ method }} Questionnaire \r\n \r\n
\r\n
\r\n Add Questionnaire\r\n \r\n
\r\n
\r\n
\r\n Choose type of Question:\r\n
\r\n \r\n \r\n \"\"\r\n \"\"\r\n {{ ques.questionTypename }}\r\n \r\n \r\n
\r\n
\r\n
\r\n Enter question\r\n \r\n \r\n \r\n \r\n Enter Options separate by ,\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n Cancel\r\n \r\n \r\n add {{ editQuestion ? 'Update' : 'Add' }}\r\n \r\n
\r\n\r\n
    0 && isStepperVissible\" class=\"question-list\">\r\n
  1. \r\n {{ i + 1 }}\r\n
    \r\n
    \r\n
    \r\n {{ question.Question }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {{ option }}\r\n
    \r\n
    \r\n \r\n {{ option }}\r\n
    \r\n
    \r\n \r\n
    \r\n Line Text\r\n Single Select\r\n Multi Select (Checkboxes)\r\n \r\n Delete\r\n \r\n
    \r\n
    \r\n
  2. \r\n
\r\n \r\n \r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n {{ method }} Skill \r\n \r\n
\r\n
\r\n
\r\n Professional Skills\r\n
\r\n \r\n Required:\r\n
\r\n
\r\n \r\n Preferred:\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{ dynamic.SkillName }} ({{ dynamic.Experience }} Yrs)\r\n \r\n edit\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Skill Name*\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n Please enter valid skill name\r\n \r\n
\r\n
\r\n Experience*\r\n \r\n \r\n Please enter valid experience\r\n \r\n
\r\n \r\n
\r\n
\r\n Required\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n close\r\n
\r\n
\r\n \"\"\r\n Created Job Successfully!\r\n Job ID: {{ activeJob?.JobId }}\r\n You can view job from landing page and edit.\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, OnInit, Output, TemplateRef } from '@angular/core';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { iJob, iJobEducation, iJobCertification, DegreeType } from 'src/app/models/job.model';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { Common } from 'src/app/common/common';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType';\r\n\r\n@Component({\r\n selector: 'job-education',\r\n templateUrl: './job-education.component.html',\r\n styleUrls: ['./job-education.component.scss']\r\n})\r\nexport class JobEducationComponent implements OnInit {\r\n public loading = false;\r\n fgEducation: FormGroup;\r\n job: iJob = {};\r\n data: iJob;\r\n selectedCertificateForDelete: any;\r\n\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public authService: AuthenticationService,\r\n private dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService, private notifyService: NotificationService) { }\r\n visible = true;\r\n selectable = true;\r\n removable = true;\r\n degreeType: DegreeType[];\r\n degreeTypeCrtl: FormControl;\r\n addCertificationOnBlur: boolean = true;\r\n selectedCertifications: Array = [];;\r\n selectedEducations: Array = [];\r\n selectedDegree: string;\r\n keyData: any;\r\n isJobEdited: boolean = false;\r\n\r\n\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n ngOnInit(): void {\r\n this.fgEducation = this.formBuilder.group({\r\n Certification: [''],\r\n Education: [''],\r\n });\r\n\r\n if (Common.lookUp != undefined && Common.lookUp != null) {\r\n this.degreeType = Common.lookUp.filter(\r\n item => (item.TypeCode == 'DegreeTypeID')).map(\r\n o => ({ Key: o.ValueName, Value: o.LookupID }));\r\n }\r\n\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob;\r\n if (this.job.JobId > 0) {\r\n this.bindEducation(this.job.JobId);\r\n this.bindCertification(this.job.JobId);\r\n }\r\n }\r\n }\r\n\r\n addCertification(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n if ((value || '').trim()) {\r\n this.selectedCertifications.push({ JobCertificationID: null, JobID: 0, CertificationID: 0, CertificationName: value.trim(), CreatedBy: this.authService.userInfo.userID });\r\n }\r\n if (input) {\r\n input.value = '';\r\n }\r\n }\r\n\r\n removeCertification(keyword: any): void {\r\n this.isJobEdited = true;\r\n let index = this.selectedCertifications.indexOf(keyword);\r\n\r\n if (index >= 0) {\r\n this.selectedCertifications.splice(index, 1);\r\n }\r\n this.dialog.closeAll();\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: \"400px\",\r\n disableClose: true,\r\n autoFocus: false\r\n });\r\n this.selectedCertificateForDelete = i;\r\n }\r\n\r\n saveJobEducation() {\r\n this.isJobEdited = true;\r\n\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n\r\n this.notifyService.showError('Could not save the Job!', '');\r\n\r\n return;\r\n }\r\n\r\n let certifications: string;\r\n let education: string;\r\n certifications = this.selectedCertifications.join(\",\");\r\n education = this.fgEducation.get('Education').value;\r\n this.selectedEducations.length = 0;\r\n this.selectedEducations.push({ JobEductionID: null, JobID: 0, EducationID: 0, EducationName: education, CreatedBy: this.authService.userInfo.userID });\r\n\r\n let dynamicValue: iJob = Common.activeJob;\r\n this.data = { JobId: dynamicValue.JobId };\r\n this.data.JobEducations = this.selectedEducations;\r\n this.data.JobCertifications = this.selectedCertifications;\r\n this.loading = true;\r\n this.jobService.AddJobCertAndEdu(this.data).subscribe\r\n (result => {\r\n this.loading = false;\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '');\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(5);\r\n },\r\n (err: any) => {\r\n this.loading = false;\r\n this.notifyService.showError(' Could not save the Job!', '');\r\n\r\n return;\r\n },\r\n\r\n );\r\n\r\n }\r\n bindEducation(jobid) {\r\n\r\n this.jobService.GetJobEducation(jobid).subscribe((res) => {\r\n this.selectedEducations = res as iJobEducation[];\r\n\r\n let educationDegreee;\r\n this.keyData = Common.JobKeywords;\r\n if (this.keyData != null) {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index];\r\n\r\n if (element.Key == \"Education\") {\r\n educationDegreee = element.Value;\r\n\r\n }\r\n }\r\n }\r\n\r\n let ltSelected: any[] = [];\r\n\r\n if (this.degreeType != null) {\r\n for (let i = 0; i < this.degreeType.length; i++) {\r\n if (this.selectedEducations.length == 0) {\r\n if (this.degreeType[i].Key == educationDegreee) {\r\n ltSelected.push(this.degreeType[i].Key)\r\n }\r\n }\r\n else {\r\n for (let j = 0; j < this.selectedEducations.length; j++) {\r\n if (this.degreeType[i].Key == this.selectedEducations[j].EducationName) {\r\n ltSelected.push(this.degreeType[i].Key)\r\n }\r\n }\r\n }\r\n }\r\n this.selectedDegree = ltSelected.join();\r\n }\r\n });\r\n }\r\n\r\n bindCertification(jobid) {\r\n this.jobService.GetJobCertification(jobid).subscribe((res) => {\r\n this.selectedCertifications = res as iJobCertification[]\r\n });\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n this.isJobEdited = true\r\n moveItemInArray(this.selectedCertifications, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n goToPrevious(){\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n}\r\n"," \r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n Add Education & certifications\r\n \r\n \r\n\r\n
\r\n
Choose Degree
\r\n \r\n \r\n \r\n {{ dg.Key }}\r\n \r\n \r\n \r\n\r\n
Add Certifications
\r\n \r\n \r\n \r\n {{ cert.CertificationName }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this certificate?\r\n
\r\n
\r\n \r\n Delete\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, ViewEncapsulation, TemplateRef, OnDestroy } from '@angular/core'\r\nimport '@angular/compiler'\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms'\r\nimport { Common } from 'src/app/common/common'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { FilesTypes, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs'\r\n\r\n@Component({\r\n selector: 'leap-job-file-upload',\r\n templateUrl: './job-file-upload.component.html',\r\n styleUrls: ['./job-file-upload.component.scss'],\r\n})\r\nexport class JobFileUploadComponent implements OnInit, OnDestroy {\r\n maxFileSize = Common.maxJDFileSize\r\n maxChars = Common.maxJDCharacters\r\n chars = 0\r\n public loading = false\r\n model: iJob = {}\r\n fileContent: string = ''\r\n isFileUploaded: boolean = false\r\n file: any = null\r\n jobHTML: string = ''\r\n jobtxt: string = ''\r\n text = ``\r\n inputTextLength = 0\r\n isMaxCharValidationShown = false\r\n uploadBoxCont = document.getElementById('uploadBox')\r\n jdUploadInput = document.getElementById('jdUploadInput')\r\n form = new FormControl(this.text)\r\n @Output() formHandler: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() skip: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n quillEditable: boolean = false\r\n destroy$: Subject = new Subject()\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService,\r\n private _route: Router,\r\n public authService: AuthenticationService\r\n ) {}\r\n validateFile(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (ext.toLowerCase() == 'doc' || ext.toLowerCase() == 'docx' || ext.toLowerCase() == 'pdf') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jobForm.get('jobDetails').valueChanges.subscribe((data) => {\r\n this.jobHTML = data == null ? '' : data\r\n this.jobtxt = this.htmlToPlaintext(data)\r\n })\r\n if (Common.activeJob) {\r\n this.jobForm.get('jobDetails').setValue(Common.activeJob?.JobDetails)\r\n this.inputTextLength = Common.activeJob?.JobDetails?.length\r\n }\r\n }\r\n htmlToPlaintext(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : ''\r\n }\r\n\r\n jobForm = this.formBuilder.group({\r\n jobDetails: ['', Validators.required],\r\n fileUploader: ['', Validators.compose([Validators.maxLength(512), Validators.minLength(2)])],\r\n })\r\n\r\n onPaste(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n var dlen = Number(clipboardData.getData('text').length)\r\n if (dlen == 0) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n let content = clipboardData.getData('text').slice(0, this.maxChars)\r\n this.model = this.jobForm.value\r\n this.model.JobDetails = content\r\n this.model.JobHTML = content\r\n }\r\n\r\n public onChange(fileList: any): void {\r\n this.jobForm.get('jobDetails').setValue('')\r\n this.file = fileList[0]\r\n if (this.file.size > 6000000) {\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', '')\r\n this.file = null\r\n return\r\n }\r\n if (!this.validateFile(fileList[0].name)) {\r\n this.notifyService.showError('Selected file format is not supported!', '')\r\n this.file = null\r\n return\r\n }\r\n }\r\n\r\n uploadJob() {\r\n // this.dialog.closeAll()\r\n this.loading = true\r\n let fileReader: FileReader = new FileReader()\r\n let self = this\r\n fileReader.onloadend = function (x) {\r\n self.fileContent = fileReader.result.toString()\r\n }\r\n fileReader.readAsText(this.file)\r\n const formData = new FormData()\r\n formData.append('JobFile', this.file)\r\n formData.append('UserId', this.authService.userInfo.userID)\r\n\r\n this.jobService\r\n .SaveJobData(formData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (event) => {\r\n if (event) {\r\n var js = {}\r\n js = event\r\n self.jobForm.get('jobDetails').setValue(this.jobtxt)\r\n this.jobtxt = js['jobtxt']\r\n this.jobHTML = js['jobHTML']\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n self.model.JobDetails = self.jobForm.get('jobDetails').value\r\n // if (this.model.JobHTML !== undefined && this.model.JobHTML !== null) {\r\n // if (this.model.JobHTML.length > 0) Common.activeJob = this.model\r\n // this.notifyService.showSuccess('Successfully uploaded!', '')\r\n this.quillEditable = true\r\n this.loading = false\r\n this.file = null\r\n this.isFileUploaded = true\r\n this.jobService.setIsJobUploaded(this.isFileUploaded)\r\n this.jobService.setAddJobDetails(event)\r\n this.onSubmit()\r\n this._route.navigate(['/jobs/addJob'])\r\n this.dialog.closeAll()\r\n return\r\n // } else {\r\n // this.notifyService.showWarning('Could not parse the file!', '')\r\n // this.loading = false\r\n // }\r\n\r\n this.loading = false\r\n return\r\n } else {\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.loading = false\r\n this.dialog.closeAll()\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.dialog.closeAll()\r\n }\r\n )\r\n }\r\n\r\n dialogCancelHandler() {\r\n this.dialog.closeAll()\r\n this.file = null\r\n }\r\n\r\n onKeyUpEvent(event: any) {\r\n const inputType = event.inputType\r\n if (inputType === 'insertFromDrop' || inputType === 'insertFromPaste') {\r\n if (event.target.children.length) {\r\n const hadImage = this.isInputImage(event.target.children)\r\n if (hadImage) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n }\r\n }\r\n\r\n let inputValue = this.htmlToPlaintext(event.target.innerHTML)\r\n this.inputTextLength = inputValue.length\r\n if (this.inputTextLength > this.maxChars && !this.isMaxCharValidationShown) {\r\n this.isMaxCharValidationShown = true\r\n this.notifyService.showWarning('You have reached your maximum limit of characters allowed', '')\r\n }\r\n if (this.inputTextLength <= this.maxChars) {\r\n this.isMaxCharValidationShown = false\r\n }\r\n let content = inputValue.slice(0, this.maxChars)\r\n this.jobtxt = content\r\n this.jobHTML = content == null ? '' : content\r\n }\r\n\r\n onSubmit() {\r\n if (this.jobHTML?.length == 0) {\r\n this.jobHTML = this.jobtxt\r\n }\r\n if (this.jobtxt?.length > 0) {\r\n if (this.inputTextLength > this.maxChars) {\r\n this.notifyService.showError('Please reduce the JD character count to upto 25000 characters', '')\r\n } else {\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n Common.activeJob = this.model\r\n this.ParseAndNext(this.model)\r\n }\r\n } else {\r\n this.formHandler.emit(0)\r\n this.jobAdded.emit(0)\r\n }\r\n }\r\n\r\n ParseAndNext(obj) {\r\n this.loading = true\r\n this.jobService.GetParseJobKeyword(obj).subscribe(\r\n (SearchResult) => {\r\n Common.JobKeywords = SearchResult\r\n this.loading = false\r\n this.formHandler.emit(0)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(0)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!' + err, '')\r\n }\r\n )\r\n }\r\n\r\n fileInfo: string\r\n onFileSelect(input: HTMLInputElement): void {\r\n function formatBytes(bytes: number): string {\r\n const UNITS = ['Bytes', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\r\n const factor = 1024\r\n let index = 0\r\n\r\n while (bytes >= factor) {\r\n bytes /= factor\r\n index++\r\n }\r\n return `${parseFloat(bytes.toFixed(2))} ${UNITS[index]}`\r\n }\r\n const file = input.files[0]\r\n this.fileInfo = `${file.name} (${formatBytes(file.size)})`\r\n }\r\n\r\n openUploadFileDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n skipButtonHandler() {\r\n this.skip.emit(true)\r\n this._route.navigate(['/jobs/addJob'], { state: { skip: true } })\r\n this.close()\r\n }\r\n\r\n isInputImage(children) {\r\n let hadImage = false\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i]\r\n if (child.tagName === FilesTypes.IMG.toUpperCase()) {\r\n hadImage = true\r\n continue\r\n }\r\n if (child.children.length) {\r\n hadImage = this.isInputImage(child.children)\r\n if (hadImage) {\r\n break\r\n }\r\n }\r\n }\r\n return hadImage\r\n }\r\n close() {\r\n this.dialog.closeAll()\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.complete()\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n Upload Job Description\r\n close\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n 0 || isFileUploaded\"\r\n class=\"small-primary-button\"\r\n mat-raised-button\r\n (click)=\"onSubmit()\"\r\n >\r\n Save & Next\r\n \r\n \r\n Skip\r\n \r\n
","import { Component, OnInit,Input,SimpleChanges } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\nimport { Common } from '../../common/common';\r\n@Component({\r\n selector: 'job-fileview',\r\n templateUrl: './job-fileview.component.html',\r\n styleUrls: ['./job-fileview.component.scss']\r\n})\r\nexport class JobFileviewComponent implements OnInit {\r\n safeHtmlContent: SafeHtml;\r\n activeJob = Common.activeJob;\r\n constructor( private sanitized: DomSanitizer) { }\r\n @Input() jobHTML;\r\n ngOnInit(): void {\r\n if (Common.activeJob!=null){\r\n this.activeJob = Common.activeJob;\r\n var htmlString = (this.activeJob.JobHTML?this.activeJob.JobHTML: this.activeJob.JobDetails?this.activeJob.JobDetails:' '); \r\n \r\n this.safeHtmlContent =this.sanitized.bypassSecurityTrustHtml(htmlString.toString()) ;\r\n // this.safeHtmlContent =(htmlString) ;\r\n console.log(\"SAFEHTML\", this.safeHtmlContent);\r\n \r\n \r\n \r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.safeHtmlContent= this.sanitized.bypassSecurityTrustHtml(changes.jobHTML.currentValue==null?'':changes.jobHTML.currentValue);\r\n \r\n }\r\n\r\n}\r\n"," \r\n\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { Common } from 'src/app/common/common';\r\nimport { iConsultant, iConsultantJob,iConsultantJobInterview } from 'src/app/models/consultant.model';\r\nimport { iInterviewSchedule, iInterview, iInterviewTimeSlot,InterviewType} from 'src/app/models/interview.model';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service';\r\nimport { iDbResult } from 'src/app/models/common.model';\r\nimport { iJob } from 'src/app/models/job.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport icClose from '@iconify/icons-ic/twotone-close';\r\nimport { ActivatedRoute } from '@angular/router';\r\n@Component({\r\n selector: 'job-interview-schedule',\r\n templateUrl: './job-interview-schedule.component.html',\r\n styleUrls: ['./job-interview-schedule.component.scss']\r\n})\r\nexport class JobInterviewScheduleComponent implements OnInit {\r\n\r\n public iConsultantJobInterview: iConsultantJobInterview[];\r\n interviewtypes: InterviewType[];\r\n\tfrmInterview: FormGroup;\r\n safeHtml:any;\r\n interviewSchedule: iInterviewSchedule={};;\r\n interview: iInterview ={};\r\n AvaillTZ1 = 'EST';\r\n AvaillTZ2 = 'EST';\r\n AvaillTZ3 = 'EST';\r\n public isScheduled: boolean = false;\r\n public isValidRequest:boolean = true;;\r\n job:iJob;\r\n consultant:iConsultant;\r\n consultantjob:iConsultantJob;\r\n availableTimeSlots: Array = [];\r\n icClose = icClose;\r\n interviewId:number;\r\n consultantJobId:number;\r\n consultantId:number;\r\n jobId:number;\r\n userId:number;\r\n roleId:Number;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private JobService:JobService,\r\n private consultantService: ConsultantService,\r\n private commonService: CommonService, \r\n private notifyService: NotificationService,\r\n public authService: AuthenticationService,\r\n private router: ActivatedRoute,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.interviewId= Number(this.router.snapshot.queryParamMap.get('intid'));\r\n this.consultantJobId= Number(this.router.snapshot.queryParamMap.get('cjid'));\r\n this.consultantId=Number( this.router.snapshot.queryParamMap.get('cid'));\r\n this.jobId= Number(this.router.snapshot.queryParamMap.get('jid'));\r\n this.userId = this.authService?.userInfo?.userID == null? 1: this.authService?.userInfo?.userID;\r\n this.roleId = this.authService?.userInfo?.roles[0]?.roleID== null? 1: this.authService.userInfo.roles[0].roleID;\r\n\r\n if (this.jobId>0 ){\r\n this.JobService.getJob(this.jobId).subscribe((jobResult) => {\r\n Common.activeJob = this.job = jobResult;\r\n this.BindJobConsultantsInterviews( this.jobId,this.userId );\r\n })\r\n }\r\n if (this.consultantId>0 ){\r\n this.consultantService.getConsultant(this.consultantId).subscribe((candidateResult) => {\r\n Common.activeConsultant = this.consultant = candidateResult as any\r\n })\r\n }\r\n if (this.consultantJobId>0 ){\r\n this.GetConsultantJob(this.consultantJobId, this.userId);\r\n }\r\n this.consultantService.getLookup(\"InterviewTypeId\").subscribe((res) => {\r\n var x = res as InterviewType[];\r\n this.interviewtypes = res as InterviewType[];\r\n \r\n }\r\n );\r\n\r\n \tthis.frmInterview = this.formBuilder.group({\r\n\t\t\tInterviewerName: [null],\r\n\t\t\tInterviewerContactNo: [null,],\r\n\t\t\tInterviewTypeId: [null, Validators.required],\r\n\t\t\tCompanyContact: [null],\r\n\t\t\tInterviewerDuration: [null],\r\n\t\t\tInterviewerLocation: [null],\r\n\t\t\tAvaillDate1: [null, Validators.required],\r\n\t\t\tAvaillTime1: [null, Validators.required],\r\n AvaillDate2: [null],\r\n\t\t\tAvaillTime2: [null],\r\n AvaillDate3: [null],\r\n\t\t\tAvaillTime3: [null],\r\n InterviewDetails: [null],\r\n Comments: [null],\r\n\r\n\t\t});\r\n }\r\n GetConsultantJob(consultantjobid, userid) {\r\n this.consultantService.GetConsultantJob(consultantjobid,userid).subscribe((consultantjobResult) => {\r\n this.consultantjob = consultantjobResult as iConsultantJob\r\n if (this.consultantjob.ConsultantJobStatusID !=19 ){\r\n this.isValidRequest = false;\r\n }\r\n else{\r\n this.isValidRequest = true;\r\n }\r\n \r\n });\r\n\r\n }\r\n BindJobConsultantsInterviews(jobid,userid) {\r\n\r\n this.JobService.GetJobInterviews(jobid,userid\r\n ).subscribe((jclst) => {\r\n\r\n this.iConsultantJobInterview = jclst as iConsultantJobInterview[]\r\n \r\n console.log(\"Get Job Consultants:\",jclst \r\n );\r\n },\r\n (err: any) => {\r\n console.log(\"Error while getiing Job Consultants\", err);\r\n },\r\n () => console.log(\"Get Job Consultants Successfull\")\r\n );\r\n }\r\n showLoc(ob) {\r\n console.log(ob);\r\n\t\t// if(ob.value == 'Face'){\r\n\t\t// \tthis.showLocation = true;\r\n // this.showVideo = false;\r\n\t\t// this.showOnline = false;\r\n\t\t// }\r\n\t\t// else if(ob.value == 'Online'){\r\n // this.showLocation = false;\r\n // this.showVideo = false;\r\n\t\t// this.showOnline = true;\r\n\t\t// }\r\n // else{\r\n // this.showLocation = false;\r\n // this.showVideo = true;\r\n\t\t// this.showOnline = false;\r\n // }\r\n }\r\n clearData(){\r\n this.frmInterview.get('InterviewTypeId').setValue('');\r\n this.frmInterview.get('InterviewerName').setValue('');\r\n this.frmInterview.get('InterviewerDuration').setValue('');\r\n this.frmInterview.get('InterviewerLocation').setValue('');\r\n this.frmInterview.get('AvaillDate1').setValue('');\r\n this.frmInterview.get('AvaillDate2').setValue('');\r\n this.frmInterview.get('AvaillDate3').setValue('');\r\n this.frmInterview.get('AvaillTime1').setValue('');\r\n this.frmInterview.get('AvaillTime2').setValue('');\r\n this.frmInterview.get('AvaillTime3').setValue('');\r\n \r\n }\r\n CombineDateAndTime(idate, time) {\r\n var combined\r\n try{\r\n var timeTokens = time.split(':');\r\n var hr = timeTokens[0];\r\n var min = timeTokens[1];\r\n var ampm = Number(hr) >= 12 ? 'PM' : 'AM';\r\n var timeString = hr + ':' + min + ':00' + ' '+ ampm// timeTokens[0]; // time.getHours() + ':' + time.getMinutes() + ':00';\r\n \r\n var year = new Date(idate).getFullYear();\r\n var month = new Date(idate).getMonth()+1 ; // Jan is 0, dec is 11\r\n var day = new Date(idate).getDate();\r\n var dateString = month + '/' + day+'/'+ year;\r\n var datec = dateString + ',' + timeString;\r\n combined = new Date(datec);\r\n return combined;\r\n }\r\n catch{\r\n return null;\r\n }\r\n \r\n\r\n \r\n};\r\n saveInterview(){\r\n this.interview.ConsultantJobID = this.consultantJobId;\r\n this.interview.InterviewerName = this.frmInterview.get('InterviewerName').value == undefined ? null : this.frmInterview.get('InterviewerName').value;\r\n this.interview.InterviewTypeID = this.frmInterview.get('InterviewTypeId').value == undefined ? null : this.frmInterview.get('InterviewTypeId').value;\r\n this.interview.Duration = this.frmInterview.get('InterviewerDuration').value == undefined ? null : this.frmInterview.get('InterviewerDuration').value;\r\n this.interview.Location = this.frmInterview.get('InterviewerLocation').value == undefined ? null : this.frmInterview.get('InterviewerLocation').value;\r\n this.interview.InterviewDetails = this.frmInterview.get('InterviewDetails').value == undefined ? null : this.frmInterview.get('InterviewDetails').value;\r\n this.interview.Comments = this.frmInterview.get('Comments').value == undefined ? null : this.frmInterview.get('Comments').value;\r\n this.interview.CreatedDate = new Date();\r\n this.interview.CreatedBy = this.userId;\r\n this.interview.IsActive = true;\r\n\r\n let timeSlot1 = this.CombineDateAndTime(this.frmInterview.get('AvaillDate1').value,this.frmInterview.get('AvaillTime1').value+\":00\" );\r\n let timeSlot2 = this.CombineDateAndTime(this.frmInterview.get('AvaillDate2').value,this.frmInterview.get('AvaillTime2').value+\":00\" );\r\n let timeSlot3 = this.CombineDateAndTime(this.frmInterview.get('AvaillDate3').value,this.frmInterview.get('AvaillTime3').value+\":00\" );\r\n\r\n\r\n\r\n if ((timeSlot1!=null)) {\r\n this.availableTimeSlots.push({ InterviewTimeSlotID:0,\r\n InterviewID: 0,\r\n InterviewDate: timeSlot1,\r\n InterviewTimeZone: this.AvaillTZ1,\r\n CreatedDate:new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true});\r\n }\r\n if ((timeSlot2!=null)) {\r\n this.availableTimeSlots.push({ InterviewTimeSlotID:0,\r\n InterviewID: 0,\r\n InterviewDate: timeSlot2,\r\n InterviewTimeZone: this.AvaillTZ2,\r\n CreatedDate:new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true});\r\n }\r\n if ((timeSlot3 !=null)) {\r\n this.availableTimeSlots.push({ InterviewTimeSlotID:0,\r\n InterviewID: 0,\r\n InterviewDate: timeSlot3,\r\n InterviewTimeZone: this.AvaillTZ3,\r\n CreatedDate:new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true});\r\n }\r\n this.interviewSchedule.Interview = this.interview;\r\n this.interviewSchedule.InterviewSlots = this.availableTimeSlots;\r\n \r\n this.consultantService.AddInterview(this.interviewSchedule).subscribe((cjResult) => {\r\n if (cjResult) {\r\n this.updateProcessWorkFlow();\r\n this.BindJobConsultantsInterviews( this.jobId,this.userId );\r\n this.isScheduled = true;\r\n this.notifyService.showSuccess('Consultant Job Interview successfully Scheduled! ' , 'Consultant Job');\r\n }\r\n }\r\n );\r\n }\r\n updateProcessWorkFlow() {\r\n \r\n var dbresult: iDbResult[];\r\n var nextStatusID;\r\n let comment = this.frmInterview.get('Comments').value == undefined ? \"None\" : this.frmInterview.get('Comments').value;\r\n\r\n this.commonService.processWorkFlow(this.consultantJobId, Common.enumObjectTypes.ConsultantJob\r\n , 41, Number(this.roleId), comment\r\n , this.userId).subscribe(result => {\r\n dbresult = result;\r\n console.log(\"result \", result, \"dbResult \", dbresult);\r\n dbresult.forEach(key => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value;\r\n });\r\n\r\n this.commonService.setActiveObject(this.consultantJobId, Common.enumObjectTypes.ConsultantJob, Common.enumComponent.ConsultantJob, \r\n Number(this.roleId), nextStatusID, 3);\r\n \r\n });\r\n \r\n \r\n\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n Candidate\r\n
\r\n {{ consultant?.FirstName }} {{ consultant?.LastName }}
\r\n {{ consultant?.Emailaddress }}\r\n
\r\n
\r\n Job Title\r\n
\r\n {{ job?.JobTitleName }}
\r\n {{ job?.CompanyName }}\r\n
\r\n\r\n
\r\n Job ID\r\n
\r\n {{ job?.JobId }}
\r\n {{ job?.JobCode }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Interviewer\r\n \r\n \r\n
\r\n
\r\n \r\n Interview Type\r\n \r\n \r\n {{ inv_type.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Duration (Hr)\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

1st Available Date and Time

\r\n
\r\n
\r\n
\r\n \r\n Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Time Zone\r\n PST \r\n MST \r\n CST \r\n EST \r\n \r\n \r\n
\r\n
\r\n
\r\n

2st Available Date and Time

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Time Zone\r\n PST \r\n MST \r\n CST \r\n EST \r\n \r\n \r\n
\r\n
\r\n
\r\n

3st Available Date and Time

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Time Zone\r\n PST \r\n MST \r\n CST \r\n EST \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Interview Details\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Recruiter Comment\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Interview successfully Scheduled!

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Sorry, No Valid data is available!\r\n
\r\n Candidate job status is in\r\n \r\n {{\r\n consultantjob?.ConsultantJobStatus == null ? 'unknown' : consultantjob?.ConsultantJobStatus\r\n }}\r\n \r\n stage. Please contact your recruiter for more information.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nexport interface PeriodicElement {\r\n candidate: string;\r\n interviewer: string;\r\n location: string;\r\n score: number;\r\n status: string;\r\n}\r\nconst ELEMENT_DATA: PeriodicElement[] = [\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n\r\n];\r\n\r\n@Component({\r\n selector: 'job-interview',\r\n templateUrl: './job-interview.component.html',\r\n styleUrls: ['./job-interview.component.scss']\r\n})\r\nexport class JobInterviewComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['candidate', 'interviewer', 'location', 'score', 'status'];\r\n dataSource = ELEMENT_DATA;\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CANDIDATE {{element.candidate}} INTERVIEWER {{element.interviewer}} LOCATION {{element.location}} SCORE {{element.score}} STATUS {{element.status}}
\r\n \r\n \r\n
","export class Job {\r\n JobId: number\r\n JobCode: string\r\n JobTitleID: string\r\n JobTitleName: string\r\n CompanyName: string\r\n Positions: number\r\n MaxBillRate: number\r\n MaxSalary: number\r\n MaxSubmissionCount: number\r\n Applied: number\r\n Pending: number\r\n Submitted: number\r\n Interview: number\r\n Hired: number\r\n SecondaryRecruiter: string\r\n SecondaryRecruiterId: number\r\n IsHot: boolean\r\n JobStatus: string\r\n PostedUser: string\r\n State: string\r\n City: string\r\n TimeSpent: string\r\n labels: any\r\n Search: string\r\n JobStatusId?: number\r\n LeapTigerMatchedCount?: number;\r\n DiceMatchedCount?: number;\r\n\r\n constructor(job) {\r\n this.JobId = job.id\r\n this.JobCode = job.JobCode\r\n this.JobTitleID = job.JobTitleID\r\n this.JobTitleName = job.JobTitleName\r\n this.CompanyName = job.CompanyName\r\n this.Positions = job.Positions\r\n this.MaxBillRate = job.MaxBillRate\r\n this.MaxSalary = job.MaxSalary\r\n this.MaxSubmissionCount = job.MaxSubmissionCount\r\n this.Applied = job.Applied\r\n this.Pending = job.Pending\r\n this.Submitted = job.Submitted\r\n this.Interview = job.Interview\r\n this.Hired = job.Hired\r\n this.JobStatus = job.JobStatus\r\n this.PostedUser = job.PostedUser\r\n this.City = job.City\r\n this.TimeSpent = job.TimeSpent\r\n this.labels = job.labels\r\n this.Search = job.Search\r\n }\r\n}\r\nexport class JobFilter {\r\n city: string\r\n state: string\r\n postedFrom: string\r\n postedTo: string\r\n jobType: string\r\n\r\n constructor(filter) {\r\n this.city = filter.city\r\n this.state = filter.state\r\n this.postedFrom = filter.postedFrom\r\n this.postedTo = filter.postedTo\r\n this.jobType = filter.jobType\r\n }\r\n}\r\n\r\nexport enum JobStatus {\r\n Draft = 2,\r\n Open = 3,\r\n Hold = 4,\r\n Closed = 5,\r\n Cancelled = 14,\r\n Declined = 15,\r\n}\r\n\r\nexport enum JobFilterNames {\r\n COMPANY = 'Company',\r\n JOB_STATUS = 'Job Status',\r\n JOB_TITLE = 'Job Title',\r\n USER = 'User',\r\n JOB_ID = 'Job ID',\r\n JOB_CODE = 'Job Code',\r\n STATE = 'State',\r\n CITY = 'City',\r\n POSTED_FROM = 'Posted From',\r\n POSTED_TO = 'Posted To',\r\n JOB_TYPE = 'Job Type',\r\n CLOSED_FROM = 'Closed From',\r\n CLOSED_TO = 'Closed To',\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core'\r\nimport { FormBuilder, FormGroup } from '@angular/forms'\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'\r\nimport { Job } from '../interfaces/job.model'\r\nimport icMoreVert from '@iconify/icons-ic/twotone-more-vert'\r\nimport icClose from '@iconify/icons-ic/twotone-close'\r\nimport icPrint from '@iconify/icons-ic/twotone-print'\r\nimport icDownload from '@iconify/icons-ic/twotone-cloud-download'\r\nimport icDelete from '@iconify/icons-ic/twotone-delete'\r\nimport icPhone from '@iconify/icons-ic/twotone-phone'\r\nimport icPerson from '@iconify/icons-ic/twotone-person'\r\nimport icMyLocation from '@iconify/icons-ic/twotone-my-location'\r\nimport icLocationCity from '@iconify/icons-ic/twotone-location-city'\r\nimport icEditLocation from '@iconify/icons-ic/twotone-edit-location'\r\n\r\n@Component({\r\n selector: 'leap-Job-create-update',\r\n templateUrl: './Job-create-update.component.html',\r\n styleUrls: ['./Job-create-update.component.scss'],\r\n})\r\nexport class JobCreateUpdateComponent implements OnInit {\r\n static id = 100\r\n\r\n form: FormGroup\r\n mode: 'create' | 'update' = 'create'\r\n\r\n icMoreVert = icMoreVert\r\n icClose = icClose\r\n\r\n icPrint = icPrint\r\n icDownload = icDownload\r\n icDelete = icDelete\r\n\r\n icPerson = icPerson\r\n icMyLocation = icMyLocation\r\n icLocationCity = icLocationCity\r\n icEditLocation = icEditLocation\r\n icPhone = icPhone\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public defaults: any,\r\n private dialogRef: MatDialogRef,\r\n private fb: FormBuilder\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.defaults) {\r\n this.mode = 'update'\r\n } else {\r\n this.defaults = {} as Job\r\n }\r\n\r\n this.form = this.fb.group({\r\n id: [JobCreateUpdateComponent.id++],\r\n imageSrc: this.defaults.imageSrc,\r\n firstName: [this.defaults.firstName || ''],\r\n lastName: [this.defaults.lastName || ''],\r\n street: this.defaults.street || '',\r\n city: this.defaults.city || '',\r\n zipcode: this.defaults.zipcode || '',\r\n phoneNumber: this.defaults.phoneNumber || '',\r\n notes: this.defaults.notes || '',\r\n })\r\n }\r\n\r\n save() {\r\n if (this.mode === 'create') {\r\n this.createJob()\r\n } else if (this.mode === 'update') {\r\n this.updateJob()\r\n }\r\n }\r\n\r\n createJob() {\r\n const Job = this.form.value\r\n\r\n if (!Job.imageSrc) {\r\n Job.imageSrc = 'assets/img/avatars/1.jpg'\r\n }\r\n\r\n this.dialogRef.close(Job)\r\n }\r\n\r\n updateJob() {\r\n const Job = this.form.value\r\n Job.id = this.defaults.id\r\n\r\n this.dialogRef.close(Job)\r\n }\r\n\r\n isCreateMode() {\r\n return this.mode === 'create'\r\n }\r\n\r\n isUpdateMode() {\r\n return this.mode === 'update'\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n

{{ form.get('firstName').value + ' ' + form.get('lastName').value }}

\r\n

New Customer

\r\n\r\n \r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n First Name\r\n \r\n\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n Street\r\n \r\n\r\n \r\n \r\n\r\n
\r\n \r\n Zipcode\r\n \r\n\r\n \r\n \r\n\r\n \r\n City\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n Phone Number\r\n \r\n\r\n \r\n \r\n\r\n \r\n Notes\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { JobCreateUpdateComponent } from './job-create-update.component';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n MatDialogModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatMenuModule,\r\n IconModule,\r\n MatDividerModule\r\n ],\r\n declarations: [JobCreateUpdateComponent],\r\n entryComponents: [JobCreateUpdateComponent],\r\n exports: [JobCreateUpdateComponent]\r\n})\r\nexport class JobCreateUpdateModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ViewEncapsulation,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n OnDestroy,\r\n TemplateRef\r\n} from '@angular/core'\r\nimport { combineLatest, forkJoin, Observable, Subject, Subscription } from 'rxjs'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router'\r\nimport { checkRouterChildsData } from '../../shared/core/utils/check-router-childs-data'\r\nimport { UntilDestroy } from '@ngneat/until-destroy'\r\nimport { filter, map, startWith, takeUntil, withLatestFrom } from 'rxjs/operators'\r\nimport { SelectionModel } from '@angular/cdk/collections'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from '../../shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator'\r\nimport { MatSort, Sort } from '@angular/material/sort'\r\nimport { TableColumn } from '../../shared/core/interfaces/table-column.interface'\r\nimport { aioTableLabels } from '../../../static-data/aio-table-data'\r\nimport { FormControl } from '@angular/forms'\r\nimport { MatSidenav } from '@angular/material/sidenav'\r\nimport { JobCacheData, JobType as JobTypeArray } from 'src/app/models/job.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { Job, JobFilterNames, JobStatus } from './interfaces/job.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { FilterObject } from 'src/app/models/common.model'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { Filter, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { JobTypes as JobType } from 'src/app/constants/jobType'\r\nimport { SubmitCountFilterEnum } from 'src/app/enums/submissionType'\r\nimport { LookUpTypes } from 'src/app/enums/lookUpValues'\r\nimport { JobStatusText } from 'src/app/enums/job-status-text'\r\nimport { JOB_ADD_ACTION } from 'src/app/enums/userActions'\r\nimport { City } from 'src/app/models/location.model'\r\nimport { format } from 'date-fns'\r\nimport { iJobClone } from 'src/app/models/cloneJob.model'\r\nimport { HubConnection, HubConnectionBuilder, LogLevel } from '@microsoft/signalr'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { HttpResponse } from '@angular/common/http'\r\nimport { iConsultantJob } from 'src/app/models/consultant.model'\r\nimport { TableVirtualScrollDataSource } from 'ng-table-virtual-scroll'\r\nimport { JobFileUploadComponent } from '../job-file-upload/job-file-upload.component'\r\n\r\n/*\r\n FIX: Added temporary id for reopened job as we don't save the status id in backend, \r\n This variable is only used in this component for job status filter. \r\n*/\r\nconst RE_OPENED_JOB_ID = -1\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'job-list',\r\n templateUrl: './job-list.component.html',\r\n styleUrls: ['./job-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class JobListComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('paginator') paginator: MatPaginator\r\n @ViewChild('EmailExistsDialog') EmailExistsDialog: TemplateRef\r\n commonServiceResp: Promise\r\n public loading = false\r\n isScrolled: boolean = false\r\n private lastScrollTop: number = 0\r\n hasMoreData: boolean = true\r\n total: any\r\n cardJobs: any\r\n selectedPageNumber: number\r\n allStates: any\r\n allCities: City[] = []\r\n defaultCities: City[] = []\r\n jobAddAction = JOB_ADD_ACTION\r\n jobCachedData: JobCacheData[] = []\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator\r\n }\r\n\r\n menuOpenStatus = {\r\n isCompanyMenuOpen: false,\r\n isJobStatusMenuOpen: false,\r\n isJobTitleMenuOpen: false,\r\n isRecruiterMenuOpen: false,\r\n }\r\n\r\n title: string = 'Leap Tiger'\r\n value: string = 'Clear me'\r\n zeroSubmission: boolean = false\r\n needMoreSubmission: boolean = false\r\n maxSubmissionReached: boolean = false\r\n uploadDialogResume: any\r\n resumeJobId: number\r\n jobDetails: any\r\n consultantAPiData: any\r\n resumeJobStatusId: number\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n isExpanded$ = combineLatest([this.commonService.isJobCardView$]).pipe(map(([value]) => ({ value })))\r\n url: string = 'assets/img/statusIcons/'\r\n\r\n changeStatus: Array<{ status: string; elementRef: any }> = [\r\n {\r\n status: 'Open',\r\n elementRef: this.url + 'green.svg',\r\n },\r\n {\r\n status: 'Cancelled',\r\n elementRef: this.url + 'blue.svg',\r\n },\r\n {\r\n status: 'Hold',\r\n elementRef: this.url + 'orange.svg',\r\n },\r\n {\r\n status: 'Closed',\r\n elementRef: this.url + 'gray.svg',\r\n },\r\n {\r\n status: 'Declined',\r\n elementRef: this.url + 'light-gray.svg',\r\n },\r\n {\r\n status: 'Draft',\r\n elementRef: this.url + 'red.svg',\r\n },\r\n ]\r\n\r\n public sortByOptions = [\r\n 'Job ID',\r\n 'Job Type',\r\n 'Bill Rate',\r\n 'Position',\r\n 'Max Submit',\r\n 'Onboarding',\r\n 'Shortlisted',\r\n 'Submitted',\r\n 'Interviewed',\r\n 'Hired',\r\n 'Status',\r\n 'Time Spend',\r\n 'Recruiter',\r\n ]\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n public searchCSearchText: string\r\n public recruitersChecked = []\r\n\r\n public statusChecked = [JobStatus.Open, JobStatus.Hold]\r\n\r\n public companySelected = []\r\n\r\n public titlesSelected = []\r\n\r\n public jobIdSearchText: string\r\n public jobCodeSearchText: string\r\n public postedFromSearchText: string\r\n public jobClosedFromSearchText: string\r\n public JobClosedToSearchText: string\r\n public postedToSearchText: string\r\n\r\n public citySearchText: string\r\n public citiesSelected = []\r\n\r\n public alltStates: any\r\n public stateSearchText: string\r\n public statesChecked = []\r\n\r\n jobTypes: JobTypeArray[]\r\n public jobTypeSelected: number[] = [10, 11, 12]\r\n public submissionTypeChecked: number[] = [1, 2, 3]\r\n public IsAddJobPermission: boolean\r\n private _destroy$: Subject = new Subject()\r\n storeJobFilter: FilterObject = {}\r\n filterValue = 'CompanyName'\r\n isDesktop$ = this.layoutService.isDesktop$\r\n isReopenedJob: number = 0\r\n myFiles: string[] = []\r\n resumeFile: File[] = []\r\n isResume: boolean = false\r\n resumeFileName: string\r\n isResumeData: boolean\r\n searchPara: {\r\n JobId: string\r\n JobCode: string\r\n Title: string\r\n Customer: string\r\n Contact: string\r\n JobStatus: string\r\n JobType: string\r\n PostFromDate: string\r\n PostToDate: string\r\n JobClosedTo: string\r\n JobClosedFrom: string\r\n JobStartDate: Date\r\n JobEndDate: Date\r\n CandidateTitle: string\r\n SkillCategory: Number\r\n SkillSpecialized: Number\r\n RecruiterId: string\r\n LocationCity: string\r\n LocationState: string\r\n SearchText: string\r\n UserId: number\r\n SortField: string\r\n SortOrder: string\r\n PageNumber: number\r\n PageSize: number\r\n IsReopened: number\r\n SubmitCountStatus: string\r\n }\r\n\r\n toolbarShadowEnabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.toolbarShadowEnabled))\r\n )\r\n\r\n layoutCtrl = new FormControl('boxed')\r\n\r\n jobs: Job[] = []\r\n data$: Observable = this.commonService.subject.asObservable()\r\n selectedJobIndex: number = 0\r\n isGridClick: boolean = false\r\n\r\n @Input()\r\n columns: TableColumn[] = [\r\n { label: 'Candidate Search/Apply', property: 'Search', type: 'button', visible: true },\r\n { label: 'JobID', property: 'JobId', type: 'text', visible: true, cssClasses: ['text-left'] },\r\n { label: 'Job Title', property: 'JobTitleName', type: 'text', visible: true, cssClasses: ['text-left'] },\r\n {\r\n label: 'Matching Percentage',\r\n property: 'MatchingPercentage',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n { label: 'Job Type', property: 'JobType', type: 'text', visible: true, cssClasses: ['text-right'] },\r\n { label: 'Bill Rate', property: 'MaxBillRate', type: 'text', visible: true, cssClasses: ['text-center'] },\r\n {\r\n label: 'Positions',\r\n property: 'Positions',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Max. Submit',\r\n property: 'MaxSubmissionCount',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n\r\n {\r\n label: 'Shortlisted',\r\n property: 'Shortlisted',\r\n type: 'text',\r\n visible: false,\r\n cssClasses: ['text-secondary', 'font-medium', 'teal-light', 'text-center'],\r\n },\r\n {\r\n label: 'Submitted',\r\n property: 'Submitted',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-purple', 'text-center'],\r\n },\r\n {\r\n label: 'Interview',\r\n property: 'Interview',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Onboarding',\r\n property: 'Onboarding',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Hired',\r\n property: 'Hired',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Speed',\r\n property: 'SubmitSpeed',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Status',\r\n property: 'JobStatus',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Posted',\r\n property: 'PostedTime',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n ]\r\n columnsFilterList: TableColumn[]\r\n @ViewChild('quickpanel', { static: true }) quickpanel: MatSidenav\r\n\r\n pageSize = 20\r\n pageNumber = 1\r\n totalLength = 0\r\n sortField: string\r\n sortOrder: string\r\n public filePath: string\r\n pageSizeOptions: number[] = [5, 10, 20, 50, 100]\r\n dataSource: TableVirtualScrollDataSource | null\r\n dataSourceForCard: MatTableDataSource | null\r\n selection = new SelectionModel(true, [])\r\n searchCtrl = new FormControl()\r\n\r\n frmCtrlCompany = new FormControl()\r\n frmCtrlJobStatus = new FormControl()\r\n frmCtrlJobTitle = new FormControl()\r\n frmCtrlRecruiter = new FormControl()\r\n frmCtrlCity = new FormControl()\r\n frmCtrlState = new FormControl()\r\n frmCtrlJobType = new FormControl()\r\n\r\n labels = aioTableLabels\r\n iPostedFrom: boolean = false\r\n subscription: Subscription\r\n isDraft: boolean = false\r\n jobFilterOptions: Filter[]\r\n\r\n public get jobStatusText(): typeof JobStatusText {\r\n return JobStatusText\r\n }\r\n private hubConnectionBuilder!: HubConnection\r\n // MatPaginator Output\r\n pageEvent: PageEvent\r\n\r\n constructor(\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private loadComponent: LoadComponent,\r\n public authService: AuthenticationService,\r\n private jobService: JobService,\r\n private dialog: MatDialog,\r\n private companyService: CompanyService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private layoutService: LayoutService,\r\n private roleService: RoleService,\r\n private filterModelService: FilterModelService,\r\n public observableService: ObservableService,\r\n public consultantService: ConsultantService\r\n ) {\r\n const data = this.router.getCurrentNavigation()\r\n this.isDraft = data?.extras?.state ? data?.extras?.state?.isDraft : false\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n this.subscription = this.loadComponent.getComponentStatus().subscribe((res) => {\r\n if (!res) {\r\n this.quickpanel.ngOnDestroy()\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n const JOB_FILTER_OPTIONS = this.filterModelService.getJobFilters()\r\n JOB_FILTER_OPTIONS.forEach((filter) => {\r\n if (\r\n filter.name === JobFilterNames.USER &&\r\n this.authService.getCurrentUserRole() !== UserRoleId.SUPER_ADMIN\r\n ) {\r\n filter.isActive = false\r\n filter.isHiddenOnUI = true\r\n }\r\n })\r\n this.jobFilterOptions = JOB_FILTER_OPTIONS\r\n this.columnsFilterList = this.columns.filter((x) => x.property != 'JobTitleName')\r\n this.filePath = Common.filePath\r\n this.setPermission()\r\n if (this.route?.snapshot?.queryParams?.jobId) {\r\n let jobId = Number(this.route?.snapshot?.queryParams?.jobId)\r\n this.jobService.getJob(jobId).subscribe((res) => {\r\n Common.activeJob = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n this.getCompanies('')\r\n this.getTitles('')\r\n this.getRecruiters()\r\n this.getStatus()\r\n this.getCities('')\r\n this.getStates()\r\n this.getJobTypes()\r\n if (!this.isDraft) {\r\n this.getJobData()\r\n this._jobDraftChanges()\r\n } else {\r\n this._jobDraftDChanges()\r\n }\r\n\r\n \r\n\r\n this.observableService.jobFilterValueChanged$.pipe(takeUntil(this._destroy$)).subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(JobFilterNames.COMPANY)) {\r\n this.companySelected = []\r\n this.companySelected = filter.get(JobFilterNames.COMPANY)\r\n } else if (filter.has(JobFilterNames.JOB_STATUS)) {\r\n this.statusChecked = [JobStatus.Open, JobStatus.Hold]\r\n this.statusChecked = filter.get(JobFilterNames.JOB_STATUS)\r\n } else if (filter.has(JobFilterNames.JOB_TITLE)) {\r\n this.titlesSelected = []\r\n this.titlesSelected = filter.get(JobFilterNames.JOB_TITLE)\r\n } else if (filter.has(JobFilterNames.USER)) {\r\n this.recruitersChecked = []\r\n this.recruitersChecked = filter.get(JobFilterNames.USER)\r\n } else if (filter.has(JobFilterNames.JOB_TYPE)) {\r\n this.jobTypeSelected = [10, 11, 12]\r\n this.jobTypeSelected = filter.get(JobFilterNames.JOB_TYPE)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobDropdownSearchTextFilterValueChanged$\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((searchText) => {\r\n if (searchText.size > 0) {\r\n if (searchText.has(JobFilterNames.COMPANY)) {\r\n this.getCompanies(searchText.get(JobFilterNames.COMPANY)).subscribe((resp) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name === JobFilterNames.COMPANY) {\r\n item.options = this.getCompanyOptions(resp)\r\n }\r\n })\r\n })\r\n } else if (searchText.has(JobFilterNames.USER)) {\r\n } else if (searchText.has(JobFilterNames.JOB_TITLE)) {\r\n this.getTitles(searchText.get(JobFilterNames.JOB_TITLE)).subscribe((resp) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name === JobFilterNames.JOB_TITLE) {\r\n item.options = this.getJobTitleOptions(resp)\r\n }\r\n })\r\n })\r\n } else {\r\n searchText.get(JobFilterNames.CITY)\r\n }\r\n }\r\n })\r\n\r\n this.observableService.jobTextBoxFilterValueChanged$.pipe(takeUntil(this._destroy$)).subscribe((searchData) => {\r\n if (searchData.size > 0) {\r\n if (searchData.has(JobFilterNames.JOB_ID)) {\r\n this.jobIdSearchText = ''\r\n this.jobIdSearchText = searchData.get(JobFilterNames.JOB_ID)\r\n } else if (searchData.has(JobFilterNames.JOB_CODE)) {\r\n this.jobCodeSearchText = ''\r\n this.jobCodeSearchText = searchData.get(JobFilterNames.JOB_CODE)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobDateChanged$.pipe(takeUntil(this._destroy$)).subscribe((searchData) => {\r\n if (searchData.size > 0) {\r\n if (searchData.has(JobFilterNames.POSTED_FROM)) {\r\n this.postedFromSearchText = ''\r\n this.postedFromSearchText = searchData.get(JobFilterNames.POSTED_FROM)\r\n }\r\n if (searchData.has(JobFilterNames.POSTED_TO)) {\r\n this.postedToSearchText = ''\r\n this.postedToSearchText = searchData.get(JobFilterNames.POSTED_TO)\r\n }\r\n if (searchData.has(JobFilterNames.CLOSED_FROM)) {\r\n this.jobClosedFromSearchText = ''\r\n this.jobClosedFromSearchText = searchData.get(JobFilterNames.CLOSED_FROM)\r\n }\r\n if (searchData.has(JobFilterNames.CLOSED_TO)) {\r\n this.JobClosedToSearchText = ''\r\n this.JobClosedToSearchText = searchData.get(JobFilterNames.CLOSED_TO)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobModuleLevelSearchChanged$.pipe(takeUntil(this._destroy$)).subscribe((searchText) => {\r\n this.searchCSearchText = searchText?.length > 0 ? searchText : ''\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobAutocompleteFilterValueChanged$\r\n .pipe(takeUntil(this._destroy$), withLatestFrom(this.observableService.stateIdOfCityValueChanges$))\r\n .subscribe(([filter, stateId]) => {\r\n if (filter.size > 0) {\r\n if (filter.has(JobFilterNames.STATE)) {\r\n if (filter.get(JobFilterNames.STATE).length == 0) {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.STATE) {\r\n item.searchText = ''\r\n }\r\n if (item.name == JobFilterNames.CITY) {\r\n item.searchText = ''\r\n item.options = item.originalOptions\r\n }\r\n })\r\n this.statesChecked = []\r\n this.citiesSelected = []\r\n } else {\r\n let filteredState = this.allStates.filter(\r\n (state) => state.StateName == filter.get(JobFilterNames.STATE).trim()\r\n )\r\n this.statesChecked = []\r\n this.statesChecked = filteredState.map((state) => state.StateID.toString())\r\n let cityAccordingToState = this.consultantService.getCitySearch(\r\n '',\r\n this.getStateAgainstName(filter.get(JobFilterNames.STATE))\r\n )\r\n cityAccordingToState.subscribe((res) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.CITY) {\r\n item.options = this.getCityOptions(res)\r\n item.originalOptions = this.getCityOptions(res)\r\n this.allCities = res\r\n }\r\n })\r\n })\r\n }\r\n } else if (filter.has(JobFilterNames.CITY)) {\r\n if (filter.get(JobFilterNames.CITY).length == 0) {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.CITY) {\r\n item.searchText = ''\r\n }\r\n })\r\n this.citiesSelected = []\r\n } else {\r\n this.citiesSelected = []\r\n this.citiesSelected.push(filter.get(JobFilterNames.CITY).trim())\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.STATE) {\r\n item.searchText = this.getStateAccordingToStateId(stateId)\r\n this.statesChecked = []\r\n this.statesChecked.push(this.getStateIdByStateName(item.searchText))\r\n }\r\n })\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n }\r\n })\r\n\r\n this.observableService.filterResetValueChanged$.pipe(takeUntil(this._destroy$)).subscribe((filterReset) => {\r\n if (filterReset) {\r\n this.companySelected = []\r\n this.statusChecked = []\r\n this.titlesSelected = []\r\n this.recruitersChecked = []\r\n this.jobIdSearchText = ''\r\n this.jobCodeSearchText = ''\r\n this.postedFromSearchText = ''\r\n this.postedToSearchText = ''\r\n this.statesChecked = []\r\n this.citiesSelected = []\r\n this.jobTypeSelected = []\r\n this.searchCSearchText = ''\r\n this.jobClosedFromSearchText = ''\r\n this.JobClosedToSearchText = ''\r\n }\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.CITY) {\r\n item.options = this.getCityOptions(this.defaultCities)\r\n item.originalOptions = this.getCityOptions(this.defaultCities)\r\n this.allCities = [...this.defaultCities]\r\n }\r\n })\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n this.observableService.updatedCitiesNamesValueChanged$\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((newCities) => {\r\n this.allCities = newCities\r\n })\r\n\r\n this.getFilterOptions()\r\n this.closePanelSubject()\r\n\r\n this.hubConnectionBuilder = new HubConnectionBuilder()\r\n .withUrl(Common.apiUrl + 'notifyUser')\r\n .configureLogging(LogLevel.Information)\r\n .build()\r\n this.hubConnectionBuilder\r\n .start()\r\n .then(() => console.log('Connection started.......!'))\r\n .catch((err) => console.log('Error while connect with server'))\r\n this.hubConnectionBuilder.on('SendJobDataToUser', (result: JobCacheData[]) => {\r\n if (this.jobCachedData && this.jobCachedData.length > 0 && result && result.length > 0) {\r\n this.jobCachedData.map((s) => {\r\n var matched = result.find((a) => a.jobId == s.jobId)\r\n if (matched) {\r\n s.diceMatchedCount = matched.diceMatchedCount\r\n s.leapTigerMatchedCount = matched.leapTigerMatchedCount\r\n }\r\n })\r\n\r\n this.jobs.forEach((j) => {\r\n const matched = this.jobCachedData.find((s) => s.jobId == j.JobId)\r\n if (matched) {\r\n j.LeapTigerMatchedCount = matched.leapTigerMatchedCount\r\n j.DiceMatchedCount = matched.diceMatchedCount\r\n }\r\n })\r\n }\r\n this.jobCachedData = result\r\n })\r\n }\r\n\r\n private _resetJobFilters() {\r\n this.companySelected = []\r\n this.statusChecked = []\r\n this.titlesSelected = []\r\n this.recruitersChecked = []\r\n this.jobIdSearchText = ''\r\n this.jobCodeSearchText = ''\r\n this.postedFromSearchText = ''\r\n this.postedToSearchText = ''\r\n this.statesChecked = []\r\n this.citiesSelected = []\r\n this.jobTypeSelected = []\r\n this.searchCSearchText = ''\r\n }\r\n\r\n getFilterOptions() {\r\n forkJoin({\r\n companyData: this.getCompanies(''),\r\n jobStatusData: this.getStatus(),\r\n jobTitleData: this.getTitles(''),\r\n recruiterData: this.getRecruiters(),\r\n cityData: this.getCities(''),\r\n stateData: this.getStates(),\r\n })\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(({ companyData, jobStatusData, jobTitleData, recruiterData, cityData, stateData }) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n this.allStates = stateData\r\n this.allCities = this.defaultCities = cityData\r\n switch (item.name) {\r\n case JobFilterNames.COMPANY:\r\n item.options = this.getCompanyOptions(companyData)\r\n item.originalOptions = this.getCompanyOptions(companyData)\r\n break\r\n case JobFilterNames.JOB_STATUS:\r\n item.options = this.getJobStatusOptions(jobStatusData)\r\n item.originalOptions = this.getJobStatusOptions(jobStatusData)\r\n item.selectedOptions = this.statusChecked\r\n break\r\n case JobFilterNames.JOB_TITLE:\r\n item.options = this.getJobTitleOptions(jobTitleData)\r\n item.originalOptions = this.getJobTitleOptions(jobTitleData)\r\n break\r\n case JobFilterNames.USER: // FORMLY RECRUITER\r\n item.options = this.getRecruiterOptions(recruiterData)\r\n item.originalOptions = this.getRecruiterOptions(recruiterData)\r\n break\r\n case JobFilterNames.STATE:\r\n item.options = this.getStateOptions(stateData)\r\n item.originalOptions = this.getStateOptions(stateData)\r\n break\r\n case JobFilterNames.CITY:\r\n item.options = this.getCityOptions(cityData)\r\n item.originalOptions = this.getCityOptions(cityData)\r\n break\r\n case JobFilterNames.JOB_TYPE:\r\n if (Common.lookUp != null) {\r\n this.jobTypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.JOBID)\r\n .map((jobType) => ({ Key: jobType.ValueName, Value: jobType.LookupID }))\r\n }\r\n item.options = this.getJobTypeOptions(this.jobTypes)\r\n item.originalOptions = this.getJobTypeOptions(this.jobTypes)\r\n item.selectedOptions = this.jobTypeSelected\r\n break\r\n default:\r\n item.options = null\r\n }\r\n })\r\n })\r\n }\r\n\r\n getCompanyOptions(allOptions: any): Option[] {\r\n let companyOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n companyOptions.push({ key: item.CompanyId, value: item.Name })\r\n })\r\n return companyOptions\r\n }\r\n getJobStatusOptions(allOptions: any): Option[] {\r\n let jobStatusOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n jobStatusOptions.push({ key: item.JobStatusId, value: item.JobStatusName })\r\n })\r\n // jobStatusOptions.push({ key: RE_OPENED_JOB_ID, value: 'Re-opened' })\r\n return jobStatusOptions\r\n }\r\n getJobTitleOptions(allOptions: any): Option[] {\r\n let jobTitleOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n jobTitleOptions.push({ key: item.JobTitleID, value: item.JobTitleName })\r\n })\r\n return jobTitleOptions\r\n }\r\n getRecruiterOptions(allOptions: any): Option[] {\r\n let recruiterOption: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n recruiterOption.push({ key: item.UserID, value: item.FirstName + ' | ' + item.UserName })\r\n })\r\n return recruiterOption\r\n }\r\n\r\n getStateOptions(allOptions: any): Option[] {\r\n let stateOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n stateOptions.push({ key: item.StateID, value: item.StateName })\r\n })\r\n return stateOptions\r\n }\r\n\r\n getCityOptions(allOptions: any) {\r\n let cityOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n cityOptions.push({ key: item.StateID, value: item.City })\r\n })\r\n return cityOptions\r\n }\r\n\r\n getJobTypeOptions(allOptions) {\r\n let jobTypeOptions: Option[] = []\r\n if (!allOptions) return jobTypeOptions\r\n allOptions.forEach((item) => {\r\n jobTypeOptions.push({ key: item.Value, value: item.Key })\r\n })\r\n return jobTypeOptions\r\n }\r\n\r\n getStateAgainstName(name: string) {\r\n let selectedStateCode = this.allStates.filter((item) => item.StateName == name)\r\n return selectedStateCode[0]?.StateCode\r\n }\r\n\r\n getStateAccordingToStateId(stateId: number): string {\r\n const STATE_NAME = this.allCities.find((item) => item.StateID === stateId)?.State\r\n return STATE_NAME ? STATE_NAME : ''\r\n }\r\n\r\n getStateIdByStateName(stateCode: string) {\r\n return this.allStates.find((state) => state.StateName === stateCode.trim())?.StateID\r\n }\r\n\r\n jobTypeConvertor(jobTypeId: number) {\r\n if (jobTypeId == Common.enumJobContractType.JT_C2C) return JobType.Contract\r\n else if (jobTypeId == Common.enumJobContractType.JT_C2H) return JobType.ContractToHire\r\n else return JobType.Permanent\r\n }\r\n\r\n setPermission() {\r\n this.roleService.getPermissionByRole(this.authService.userInfo.roles[0].roleID).subscribe(\r\n (data) => {\r\n let addJobPermit = data.filter(\r\n (item) =>\r\n item.ComponentID == Common.enumComponent.Job &&\r\n item.MenuCode == 'JOB_ADD' && // TODO: add Enum for add job -\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n if (addJobPermit?.length > 0) this.IsAddJobPermission = true\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n\r\n // onAddJob() {\r\n // Common.activeConsultant = null\r\n // Common.activeConsultantJob = null\r\n // Common.activeJob = null\r\n // Common.jobAction = 'Add'\r\n // this.router.navigate(['/jobs/add'])\r\n // }\r\n onAddNewJob() {\r\n Common.activeConsultant = null\r\n Common.activeConsultantJob = null\r\n Common.activeJob = null\r\n Common.jobAction = 'Add'\r\n // this.router.navigate(['/jobs/addJob'])\r\n this.dialog.open(JobFileUploadComponent, {\r\n width: '650px',\r\n height: '340px',\r\n })\r\n }\r\n @ViewChild(MatSort, { static: true }) sort: MatSort\r\n\r\n get visibleColumns() {\r\n return this.columns.filter((column) => column.visible).map((column) => column.property)\r\n }\r\n\r\n paginatorChange(event: any) {\r\n this.pageNumber = event.pageIndex + 1\r\n this.pageSize = event.pageSize\r\n\r\n this.getJobData()\r\n }\r\n\r\n getJobData() {\r\n this.loading = true\r\n // const jobStatusId = this.statusChecked.join(',')\r\n // if (jobStatusId.includes(RE_OPENED_JOB_ID.toString())) {\r\n // this.isReopenedJob = 1\r\n // } else {\r\n // this.isReopenedJob = 0\r\n // }\r\n this.searchPara = {\r\n JobId: this.jobIdSearchText == undefined ? null : this.jobIdSearchText,\r\n JobCode: this.jobCodeSearchText == undefined ? null : this.jobCodeSearchText,\r\n Title: this.titlesSelected.join(','),\r\n Customer: this.companySelected.join(','),\r\n Contact: null,\r\n JobStatus: this.statusChecked.filter((res) => (res as number) !== RE_OPENED_JOB_ID).toString(),\r\n IsReopened: this.isReopenedJob,\r\n\r\n JobType: this.jobTypeSelected.join(','),\r\n PostFromDate:\r\n this.postedFromSearchText == undefined || this.postedFromSearchText == ''\r\n ? null\r\n : format(new Date(this.postedFromSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n PostToDate:\r\n this.postedToSearchText == undefined || this.postedToSearchText == ''\r\n ? null\r\n : format(new Date(this.postedToSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n JobClosedFrom:\r\n this.jobClosedFromSearchText == undefined || this.jobClosedFromSearchText == ''\r\n ? null\r\n : format(new Date(this.jobClosedFromSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n JobClosedTo:\r\n this.JobClosedToSearchText == undefined || this.JobClosedToSearchText == ''\r\n ? null\r\n : format(new Date(this.JobClosedToSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n JobStartDate: null,\r\n JobEndDate: null,\r\n CandidateTitle: null,\r\n SkillCategory: null,\r\n SkillSpecialized: null,\r\n RecruiterId: this.recruitersChecked.join(','),\r\n LocationCity: this.citiesSelected.join(','),\r\n LocationState: this.statesChecked.join(','),\r\n SearchText: this.searchCSearchText,\r\n UserId: this.authService.userInfo.userID,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.pageSize,\r\n SubmitCountStatus: this.submissionTypeChecked.toString(),\r\n }\r\n // this.totalLength = 1\r\n this.jobService.getJobList(this.searchPara).subscribe(\r\n (jobs) => {\r\n jobs.forEach((j) => {\r\n const matched = this.jobCachedData.find((s) => s.jobId == j.JobId)\r\n if (matched) {\r\n j.LeapTigerMatchedCount = matched.leapTigerMatchedCount\r\n j.DiceMatchedCount = matched.diceMatchedCount\r\n }\r\n })\r\n this.commonService.subject.next(jobs)\r\n if (jobs.length > 0) {\r\n this.totalLength = jobs[0]?.TotalCount\r\n this.hasMoreData = jobs?.length\r\n // this.totalLength = this.jobs.length\r\n if (this.hasMoreData) {\r\n this.pageNumber++\r\n } else {\r\n this.notifyService.showInfo('You have reached the end of the Job list', 'Job List')\r\n }\r\n } else {\r\n // this.totalLength=this.totalLength\r\n this.notifyService.showInfo('You have reached the end of the Job list', 'Job List')\r\n }\r\n this.loading = false\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n if(jobs.length === 1){\r\n this.jobs = jobs\r\n } else {\r\n this.jobs = [...this.jobs, ...jobs]\r\n }\r\n // this.jobs = [...this.jobs, ...jobs]\r\n this.dataSource.data = this.jobs\r\n this.dataSource = new TableVirtualScrollDataSource(this.jobs)\r\n },\r\n (err: any) => {\r\n this.totalLength = 0\r\n this.loading = false\r\n }\r\n )\r\n // this.dataSource = new MatTableDataSource()\r\n // this.data$.pipe(filter(Boolean)).subscribe((jobs) => {\r\n // this.jobs = [...this.jobs, ...jobs]\r\n // this.dataSource.data = this.jobs\r\n // this.totalLength = this.jobs.length\r\n // // this.cardJobs = jobs\r\n // })\r\n }\r\n\r\n onGridColumnClick(colVal, index?) {\r\n let joId = colVal\r\n this.jobService\r\n .getJob(joId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.selectedJobIndex = index\r\n Common.activeJob = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n this.jobService.setJobCloneStatus({})\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n\r\n onChangeSubmissionCount(submission, checked) {\r\n if (checked) {\r\n if (this.submissionTypeChecked.indexOf(submission) == -1) {\r\n this.submissionTypeChecked.push(submission)\r\n }\r\n } else {\r\n this.submissionTypeChecked = this.submissionTypeChecked?.filter((item) => item !== submission)\r\n }\r\n if (submission == SubmitCountFilterEnum.ZeroSubmission) {\r\n this.zeroSubmission = !this.zeroSubmission\r\n } else if (submission == SubmitCountFilterEnum.NeedMoreSubmission) {\r\n this.needMoreSubmission = !this.needMoreSubmission\r\n } else if (submission == SubmitCountFilterEnum.MaxSubmitReached) {\r\n this.maxSubmissionReached = !this.maxSubmissionReached\r\n }\r\n\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.totalLength = 0\r\n this.paginator?.firstPage()\r\n this.getJobData()\r\n }\r\n openQuickpanel() {\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n jobId: Common.activeJob.JobId,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('job')\r\n this.commonService.setComponentData(Common.activeJob)\r\n }\r\n\r\n removeParams() {\r\n this.layoutService.quickpanelOpen$\r\n .pipe(takeUntil(this._destroy$), withLatestFrom(this.jobService.isCandidateStatusChanged$))\r\n .subscribe(([state, isStatusChanged]) => {\r\n if (!state) {\r\n if (this.isGridClick) {\r\n this.isGridClick = false\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n jobId: null,\r\n activeTab: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n if (isStatusChanged) {\r\n this.getJobData()\r\n this.jobService.setCandidateStatus(false)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n closePanelSubject() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this._destroy$)).subscribe((data) => {\r\n if (!data && this.isGridClick) {\r\n if (\r\n this.dataSource?.filteredData[this.selectedJobIndex]?.JobStatus != undefined ||\r\n this.dataSource?.filteredData[this.selectedJobIndex]?.JobStatus != null\r\n ) {\r\n this.dataSource.filteredData[this.selectedJobIndex].JobStatus = Common?.activeJob?.JobStatus\r\n this.dataSource.filteredData[this.selectedJobIndex].JobStatusId = Common?.activeJob?.JobStatusID\r\n }\r\n }\r\n })\r\n }\r\n\r\n // onApplyJob(jobId, jobStatusId) {\r\n // if (jobStatusId != 3) {\r\n // this.notifyService.showWarning('Can not apply, Job is not opened!.', 'Apply Job')\r\n // return\r\n // }\r\n // this.jobService.getJob(jobId).subscribe((res) => {\r\n // Common.activeJob = res\r\n // Common.activeConsultantJob = {}\r\n // Common.activeConsultantJob.ConsultantJobID = 0\r\n // Common.activeConsultantJob.JobID = Common.activeJob.JobId\r\n // Common.activeConsultant = null\r\n\r\n // this.router.navigate(['/candidates/add/' + jobId], { state: { isFromJobApply: true } })\r\n // })\r\n // }\r\n onApplyJob(uploadCandidate, JobId, JobStatusId) {\r\n this.resumeJobId = JobId\r\n this.resumeJobStatusId = JobStatusId\r\n this.uploadDialogResume = this.dialog.open(uploadCandidate, {\r\n width: '650px',\r\n height: '340px',\r\n disableClose: true,\r\n })\r\n }\r\n\r\n uploadResume() {\r\n this.loading = true\r\n this.dialog.closeAll()\r\n const frmData = new FormData()\r\n for (var i = 0; i < this.resumeFile.length; i++) {\r\n frmData.append('Resume', this.resumeFile[i])\r\n }\r\n const resumeLastUpdate = this.formatDate(new Date())\r\n const userId = (JSON.parse(localStorage.getItem('userinfo')) as { userID?: number }).userID\r\n\r\n frmData.append('ResumeLastUpdate', resumeLastUpdate)\r\n frmData.append('UserId', userId.toString())\r\n\r\n this.consultantService\r\n .getCandidateSaveResumeData(frmData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (event: any) => {\r\n this.resumeFile = null\r\n if (event instanceof HttpResponse) {\r\n this.loading = false\r\n if (Number(event?.body?.UploadStatus?.Code || 0) === 500 || !event?.body?.ConsultantID) {\r\n this.notifyService.showError(\r\n 'Error while parsing resume, please try again later',\r\n 'Candidate Resume'\r\n )\r\n this.uploadDialogResume.close()\r\n } else {\r\n this.resumeFile = []\r\n\r\n if (this.resumeJobStatusId != 3) {\r\n this.notifyService.showWarning('Can not apply, Job is not opened!.', 'Apply Job')\r\n return\r\n }\r\n if (event.body?.EmailAddress != null) {\r\n this.jobService.getJob(this.resumeJobId).subscribe((res) => {\r\n const email = event.body?.EmailAddress\r\n this.consultantService.GetConsultantJobIdByEmail(email, this.resumeJobId).subscribe(\r\n (data) => {\r\n if (res && (!data?.ConsultantJobID || data?.ConsultantJobID == 0)) {\r\n this.consultantAPiData = event?.body\r\n this.createConsultantJob(res, event?.body?.ConsultantID)\r\n } else {\r\n this.notifyService.showInfo(\r\n 'This candidate has been already applied for this job',\r\n 'Already Applied'\r\n )\r\n this.loading = false\r\n this.dialog.closeAll()\r\n }\r\n },\r\n (err) => {\r\n this.notifyService.showError(\r\n 'Something went wrong in applying for this job',\r\n 'Error'\r\n )\r\n this.loading = false\r\n this.dialog.closeAll()\r\n }\r\n )\r\n })\r\n } else {\r\n this.notifyService.showError(\r\n 'The resume is missing an email address. Please ensure it is included.',\r\n 'Candidate Resume'\r\n )\r\n }\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.resumeFile = null\r\n }\r\n )\r\n }\r\n createConsultantJob(jobDetails: any, ConsultantID: number) {\r\n const modelConsultantJob: iConsultantJob = {\r\n JobID: jobDetails.JobId,\r\n ConsultantJobID: 0,\r\n PayRate: null,\r\n BillRate: null,\r\n Salary: jobDetails?.Salary ? jobDetails?.Salary : 0,\r\n DateApplied: new Date(),\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n CompanyVendorID: jobDetails?.CompanyVendorID ? jobDetails.CompanyVendorID : null,\r\n VendorContactID: jobDetails?.VendorContactID ? jobDetails.VendorContactID : null,\r\n ConsultantTypeID: jobDetails?.ConsultantTypeID ? jobDetails?.ConsultantTypeID : null,\r\n RecruiterId: jobDetails?.PostedFor,\r\n ConsultantID: ConsultantID ? ConsultantID : 0,\r\n }\r\n\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantJob(modelConsultantJob)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n this.loading = false\r\n this.notifyService.showInfo('Candidate has been applied for this job', 'Applied')\r\n if (result && result != null) {\r\n this.router.navigate(['candidates/', this.resumeJobId], {\r\n state: {\r\n consultantData: this.consultantAPiData,\r\n jobId: this.resumeJobId,\r\n isAddFlow: false,\r\n isFromJobApply: true,\r\n },\r\n })\r\n }\r\n },\r\n error: (e) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while saving data', 'Consultant Job')\r\n },\r\n })\r\n }\r\n formatDate(date: Date): string {\r\n const pad = (num: number, length: number) => num.toString().padStart(length, '0')\r\n\r\n const year = date.getFullYear()\r\n const month = pad(date.getMonth() + 1, 2) // Months are 0-based\r\n const day = pad(date.getDate(), 2)\r\n const hours = pad(date.getHours(), 2)\r\n const minutes = pad(date.getMinutes(), 2)\r\n const seconds = pad(date.getSeconds(), 2)\r\n const milliseconds = pad(date.getMilliseconds(), 3)\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`\r\n }\r\n\r\n onSearchCandidates(job, jobStatusId) {\r\n this.commonService.candidateObservable$.next(false)\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Search candidate works for jobs in Open status only!', 'Search Candidates')\r\n return\r\n }\r\n this.router.navigate(['/candidates'], {\r\n // TODO: Need to remove copy path later\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n onGetCachedCandidatesCountClick(job, jobStatusId, isDiceData) {\r\n this.commonService.candidateObservable$.next(false)\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Search candidate works for jobs in Open status only!', 'Search Candidates')\r\n return\r\n }\r\n this.router.navigate(['/candidates'], {\r\n // TODO: Need to remove copy path later\r\n state: { job: job, isFromJobSearch: true, isFromCachedSearch: true, isDiceData: isDiceData },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n getMatchedCandidateCount(leapTigerCandidateCount: number, diceCandidateCount: number): number {\r\n const totalCount = (Number(leapTigerCandidateCount) + Number(diceCandidateCount)) || 0;\r\n return totalCount; // Always return the numeric count\r\n }\r\n \r\n getCandidateCountColor(count: number): string {\r\n if (count >= 100) {\r\n return 'green';\r\n } else if (count > 0 && count < 55) {\r\n return 'orange';\r\n } else {\r\n return 'red';\r\n }\r\n } \r\n\r\n onCandidatesJobStatus(job) {\r\n this.router.navigate(['candidates/candidatejobstatus'], {\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next()\r\n this._destroy$.complete()\r\n this.jobFilterOptions.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n })\r\n }\r\n\r\n //#region Private Methods\r\n\r\n private getJobTypes(): Observable {\r\n return this.jobService.getLookup('JobTypelD')\r\n }\r\n\r\n private getStatus(): Observable {\r\n return this.jobService.GetJobStatus()\r\n }\r\n\r\n private getCompanies(searchText): Observable {\r\n return this.companyService.getCompanyFilter(searchText)\r\n }\r\n\r\n private getTitles(searchText): Observable {\r\n return this.jobService.getJobTitles(searchText)\r\n }\r\n\r\n private getCities(searchText): Observable {\r\n return this.jobService.getCitySearch(searchText)\r\n }\r\n\r\n private getRecruiters(): Observable {\r\n //let para = { RoleId: Common.enumUserRoles.Recruiter, UserId: this.authService.userInfo.userID, }\r\n return this.jobService.GetRecruiterByRoleId(\r\n Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager\r\n )\r\n }\r\n\r\n isOpen() {\r\n this.commonService.isExpandedSubject.next(true)\r\n }\r\n\r\n isClose() {\r\n this.commonService.isExpandedSubject.next(false)\r\n }\r\n\r\n private getStates(): Observable {\r\n return this.commonService.getStates()\r\n }\r\n\r\n announceSortChange(sortState: Sort) {\r\n if (sortState.direction) {\r\n this.sortField = sortState.active == 'PostedTime' ? 'PostedDate' : sortState.active\r\n this.sortOrder = sortState.direction\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n }\r\n }\r\n\r\n toggleColumnVisibility(column, event) {\r\n if (column.property == 'JobTitleName') {\r\n return\r\n }\r\n event.stopPropagation()\r\n event.stopImmediatePropagation()\r\n column.visible = !column.visible\r\n }\r\n\r\n private commonServiceSetter() {\r\n this.commonServiceResp = this.commonService.getAppSettings()\r\n }\r\n\r\n private _jobDraftChanges() {\r\n this.jobService\r\n .getJobCloneStatus()\r\n .pipe(filter((job: iJobClone) => job?.hasOwnProperty('JobId') && job.JobId != null))\r\n .subscribe({\r\n next: (job: iJobClone) => {\r\n if (job.JobId) {\r\n this.pageNumber = 1\r\n this._getClonedJobById(job.JobId)\r\n }\r\n },\r\n })\r\n }\r\n private _jobDraftDChanges() {\r\n this.jobService\r\n .getJobCloneStatus()\r\n .subscribe({\r\n next: (job: iJobClone) => {\r\n if (job.JobId) {\r\n this.pageNumber = 1\r\n this._getClonedJobById(job.JobId)\r\n }\r\n },\r\n })\r\n }\r\n \r\n private _getClonedJobById(jobId) {\r\n this._resetJobFilters()\r\n this.jobIdSearchText = jobId?.toString()\r\n this.statusChecked.push(JobStatus.Draft)\r\n this.jobFilterOptions.forEach((filter) => {\r\n if (filter.name === JobFilterNames.JOB_STATUS) {\r\n filter.selectedOptions = [JobStatus.Draft]\r\n }\r\n if (filter.name === JobFilterNames.JOB_ID) {\r\n filter.searchText = this.jobIdSearchText\r\n }\r\n })\r\n this.getJobData()\r\n }\r\n\r\n toggleReopenJob(): void {\r\n this.isReopenedJob = this.isReopenedJob ? 0 : 1\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n }\r\n\r\n navigateToCandidateJobSatusPage() {\r\n this.router.navigate(['candidates/candidatejobstatus'])\r\n }\r\n onScroll(event: any): void {\r\n const scrollTop = event.target.scrollTop\r\n const scrollHeight = event.target.scrollHeight\r\n const clientHeight = event.target.clientHeight\r\n const isScrollingDown = scrollTop > this.lastScrollTop\r\n this.lastScrollTop = scrollTop\r\n\r\n if (isScrollingDown) {\r\n if (scrollTop + clientHeight >= scrollHeight - 150) {\r\n if (!this.loading && this.hasMoreData) {\r\n this.getJobData()\r\n this.isScrolled = true\r\n }\r\n }\r\n }\r\n }\r\n getResumeDetails(fileList: File[]) {\r\n // fileList.forEach((file) => {\r\n // this.resumeFile.push(file)\r\n // this.resumeFileName = file.name\r\n // this.isResume = this.resumeFileName.length > 0\r\n // })\r\n this.resumeFile = [fileList[0]]\r\n this.resumeFileName = this.resumeFile[0].name\r\n this.isResume = this.resumeFileName.length > 0\r\n this.isResumeData = false\r\n }\r\n close() {\r\n this.loading = false\r\n this.uploadDialogResume.close()\r\n this.resumeFile = []\r\n this.isResume = false\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Showing {{ jobs.length }}/{{ totalLength | number }} Jobs Results\r\n
\r\n
\r\n
\r\n
\r\n \r\n Re-Opened Job\r\n
\r\n\r\n \r\n \r\n Zero submission\r\n \r\n \r\n \r\n Need more submission\r\n \r\n \r\n \r\n Max submission reached\r\n \r\n
\r\n \r\n filter_list\r\n \r\n \r\n \r\n \r\n {{ column.label }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n add Add New Job\r\n \r\n \r\n
\r\n
\r\n
0\" (scroll)=\"onScroll($event)\">\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Apply\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Job ID\r\n \r\n \r\n {{ element?.JobId }} \r\n
\r\n {{ element?.JobCode }}\r\n \r\n
\r\n \r\n \r\n Job Title/
\r\n Company Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ element?.JobTitleName | slice : 0 : 30 }}\r\n \r\n
\r\n
\r\n replay\r\n
\r\n
\r\n {{ element?.CompanyName }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Matched
\r\n Candidates\r\n \r\n \r\n
\r\n \r\n \r\n {{\r\n getMatchedCandidateCount(\r\n element?.LeapTigerMatchedCount,\r\n element?.DiceMatchedCount\r\n ) > 100\r\n ? '100+'\r\n : getMatchedCandidateCount(\r\n element?.LeapTigerMatchedCount,\r\n element?.DiceMatchedCount\r\n )\r\n }}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Posted\r\n \r\n \r\n {{ element?.PostedTime }} \r\n
{{ element?.PostedUser }}\r\n \r\n
\r\n\r\n \r\n \r\n Job Type\r\n \r\n \r\n {{ jobTypeConvertor(element?.JobTypeId) }}\r\n \r\n \r\n \r\n \r\n Bill Rate\r\n \r\n \r\n $\r\n {{\r\n element?.JobTypeId == 10\r\n ? (element?.MaxBillRate | number : '1.2-2')\r\n : element?.JobTypeId == 11\r\n ? (element?.MaxBillRate | number : '1.2-2')\r\n : (element?.MaxSalary | number)\r\n }}\r\n \r\n \r\n \r\n \r\n Positions\r\n \r\n \r\n {{ element?.Positions }}\r\n \r\n \r\n \r\n \r\n Max.
\r\n Submit\r\n \r\n \r\n {{ element?.MaxSubmissionCount | nullValueReplace }}\r\n \r\n
\r\n\r\n \r\n \r\n Shortlisted\r\n \r\n \r\n {{ element?.Shortlisted }}\r\n \r\n \r\n \r\n \r\n Submitted\r\n info\r\n \r\n \r\n \r\n \r\n {{ element?.Submitted }}\r\n \r\n clear\r\n
\r\n 0 &&\r\n element?.Submitted >= element?.MaxSubmissionCount\r\n \"\r\n class=\"pill-body green-pill row-center center\"\r\n >\r\n \r\n {{ element?.Submitted }}\r\n \r\n check\r\n
\r\n\r\n 0\r\n \"\r\n class=\"pill-body orange-pill row-center center\"\r\n >\r\n \r\n {{ element?.Submitted }}\r\n \r\n warning\r\n
\r\n \r\n \r\n \r\n \r\n Interview\r\n \r\n \r\n {{ element?.Interview }}\r\n \r\n \r\n \r\n \r\n Onboarding\r\n \r\n \r\n {{ element?.Onboarding }}\r\n \r\n \r\n \r\n \r\n Hired\r\n \r\n \r\n 0 ? true : false\r\n }\"\r\n >{{ element?.Hired }}\r\n \r\n \r\n \r\n \r\n Speed\r\n \r\n \r\n {{ element?.SubmitSpeed }} days\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ element?.JobStatus }}\r\n \r\n \r\n \r\n \r\n \r\n Time Spent\r\n \r\n \r\n {{ element?.TimeSpent }}\r\n \r\n \r\n \r\n \r\n Recruiter\r\n \r\n \r\n {{ element?.PostedUser }}\r\n
\r\n {{ element?.PostedTime }} \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
0)\" class=\"no-data-alert\">\r\n No job were found matching your search \r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n check\r\n
\r\n Max submit reached\r\n
\r\n
\r\n
\r\n warning\r\n
\r\n Not yet reached Max submit\r\n
\r\n
\r\n
\r\n clear\r\n
\r\n No Submissions\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Upload Resume\r\n close\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n 0)\"\r\n mat-raised-button\r\n >\r\n Upload\r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ToolbarModule } from '../../shared/core/layout/toolbar/toolbar.module'\r\nimport { FooterModule } from '../../shared/core/layout/footer/footer.module'\r\nimport { JobListComponent } from './job-list.component'\r\nimport { LayoutModule } from '../../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { JobCreateUpdateModule } from './job-create-update/job-create-update.module'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatSortModule } from '@angular/material/sort'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { ContainerModule } from '../../shared/core/directives/container/container.module'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatDatepickerModule } from '@angular/material/datepicker'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle'\r\nimport { JobModule } from '../job.module'\r\nimport { MatDividerModule } from '@angular/material/divider'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { StylePaginatorDirective } from './style-paginator.directive'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { FiltersComponent } from 'src/app/shared/filters/filters.component'\r\nimport { GlobalPaginatorComponent } from 'src/app/shared/global-paginator/global-paginator.component'\r\nimport { HomeToolbarComponent } from 'src/app/shared/home-toolbar/home-toolbar.component'\r\nimport { SharedModule } from 'src/app/shared/shared.module'\r\nimport { ScrollingModule } from '@angular/cdk/scrolling'\r\nimport { TableVirtualScrollModule } from 'ng-table-virtual-scroll'\r\n@NgModule({\r\n declarations: [JobListComponent, StylePaginatorDirective, GlobalPaginatorComponent],\r\n imports: [\r\n TableVirtualScrollModule,\r\n ScrollingModule,\r\n CommonModule,\r\n ToolbarModule,\r\n FooterModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n JobCreateUpdateModule,\r\n MatSidenavModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatCheckboxModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n IconModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n ReactiveFormsModule,\r\n ContainerModule,\r\n MatSelectModule,\r\n NgxLoadingModule.forRoot({}),\r\n MatDatepickerModule,\r\n MatToolbarModule,\r\n MatInputModule,\r\n FlexLayoutModule,\r\n MatSlideToggleModule,\r\n JobModule,\r\n MatDividerModule,\r\n MatRadioModule,\r\n SharedModule,\r\n ],\r\n providers: [FiltersComponent, GlobalPaginatorComponent, HomeToolbarComponent],\r\n})\r\nexport class JobListModule {}\r\n","import {\r\n ElementRef,\r\n AfterViewInit,\r\n Directive,\r\n Host,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n ViewContainerRef,\r\n Input\r\n} from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatButton } from \"@angular/material/button\";\r\n\r\ninterface PageObject {\r\n length: number;\r\n pageIndex: number;\r\n pageSize: number;\r\n previousPageIndex: number;\r\n}\r\n@Directive({\r\n selector: '[leepStylePaginator]'\r\n})\r\nexport class StylePaginatorDirective {\r\n\r\n private _pageGapTxt = \"...\";\r\n private _rangeStart: number;\r\n private _rangeEnd: number;\r\n private _buttons = [];\r\n private _curPageObj: PageObject = {\r\n length: 0,\r\n pageIndex: 0,\r\n pageSize: 0,\r\n previousPageIndex: 0\r\n };\r\n\r\n @Input()\r\n get showTotalPages(): number {\r\n return this._showTotalPages;\r\n }\r\n set showTotalPages(value: number) {\r\n this._showTotalPages = value % 2 == 0 ? value + 1 : value;\r\n }\r\n private _showTotalPages = 2;\r\n\r\n get inc(): number {\r\n return this._showTotalPages % 2 == 0\r\n ? this.showTotalPages / 2\r\n : (this.showTotalPages - 1) / 2;\r\n }\r\n\r\n get numOfPages(): number {\r\n return this.matPag.getNumberOfPages();\r\n }\r\n\r\n get lastPageIndex(): number {\r\n return this.matPag.getNumberOfPages() - 1;\r\n }\r\n\r\n constructor(\r\n @Host() @Self() @Optional() private readonly matPag: MatPaginator,\r\n private vr: ViewContainerRef,\r\n private ren: Renderer2\r\n ) {\r\n //to rerender buttons on items per page change and first, last, next and prior buttons\r\n this.matPag.page.subscribe((e: PageObject) => {\r\n if (\r\n this._curPageObj.pageSize != e.pageSize &&\r\n this._curPageObj.pageIndex != 0\r\n ) {\r\n e.pageIndex = 0;\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n }\r\n this._curPageObj = e;\r\n\r\n this.initPageRange();\r\n });\r\n }\r\n\r\n private buildPageNumbers() {\r\n const actionContainer = this.vr.element.nativeElement.querySelector(\r\n \"div.mat-paginator-range-actions\"\r\n );\r\n const nextPageNode = this.vr.element.nativeElement.querySelector(\r\n \"button.mat-paginator-navigation-next\",\r\n \r\n );\r\n const prevButtonCount = this._buttons.length;\r\n\r\n // remove buttons before creating new ones\r\n if (this._buttons.length > 0) {\r\n this._buttons.forEach(button => {\r\n this.ren.removeChild(actionContainer, button);\r\n });\r\n //Empty state array\r\n this._buttons.length = 0;\r\n }\r\n\r\n //initialize next page and last page buttons\r\n if (this._buttons.length == 0) {\r\n let nodeArray = this.vr.element.nativeElement.childNodes[0].childNodes[0]\r\n .childNodes[2].childNodes;\r\n setTimeout(() => {\r\n for (let i = 0; i < nodeArray.length; i++) {\r\n if (nodeArray[i].nodeName === \"BUTTON\") {\r\n if (nodeArray[i].innerHTML.length > 100 && nodeArray[i].disabled) {\r\n this.ren.setStyle(\r\n nodeArray[i],\r\n \"background-color\",\r\n \"white\",\r\n \r\n );\r\n this.ren.setStyle(nodeArray[i], \"color\", \"black\");\r\n this.ren.setStyle(nodeArray[i], \"margin\", \".5%\");\r\n } else if (\r\n nodeArray[i].innerHTML.length > 100 &&\r\n !nodeArray[i].disabled\r\n ) {\r\n this.ren.setStyle(\r\n nodeArray[i],\r\n \"background-color\",\r\n \"white\"\r\n );\r\n this.ren.setStyle(nodeArray[i], \"color\", \"black\");\r\n this.ren.setStyle(nodeArray[i], \"margin\", \".5%\");\r\n } else if (nodeArray[i].disabled) {\r\n this.ren.setStyle(nodeArray[i], \"background-color\", \"#88C4F0\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n for (let i = 0; i < this.numOfPages; i++) {\r\n if (i >= this._rangeStart && i <= this._rangeEnd) {\r\n this.ren.insertBefore(\r\n actionContainer,\r\n this.createButton(i, this.matPag.pageIndex),\r\n nextPageNode\r\n );\r\n }\r\n\r\n if (i == this._rangeEnd) {\r\n this.ren.insertBefore(\r\n actionContainer,\r\n this.createButton(this._pageGapTxt, this._rangeEnd),\r\n nextPageNode\r\n );\r\n }\r\n }\r\n }\r\n\r\n private createButton(i: any, pageIndex: number): any {\r\n const linkBtn: MatButton = this.ren.createElement(\"button\");\r\n this.ren.addClass(linkBtn, \"mat-mini-fab\");\r\n this.ren.setStyle(linkBtn, \"margin\", \"1%\");\r\n // this.ren.setStyle(linkBtn,)\r\n this.ren.setStyle(linkBtn, \"background-color\", \"grey\");\r\n this.ren.setStyle(linkBtn, \"color\", \"black\");\r\n \r\n\r\n const pagingTxt = isNaN(i) ? this._pageGapTxt : +(i + 1);\r\n const text = this.ren.createText(pagingTxt + \"\");\r\n\r\n this.ren.addClass(linkBtn, \"mat-custom-page\");\r\n switch (i) {\r\n case pageIndex:\r\n this.ren.setAttribute(linkBtn, \"disabled\", \"disabled\");\r\n break;\r\n case this._pageGapTxt:\r\n let newIndex = this._curPageObj.pageIndex + this._showTotalPages;\r\n\r\n if (newIndex >= this.numOfPages) newIndex = this.lastPageIndex;\r\n\r\n if (pageIndex != this.lastPageIndex) {\r\n this.ren.listen(linkBtn, \"click\", () => {\r\n console.log(\"working: \", pageIndex);\r\n this.switchPage(newIndex);\r\n });\r\n }\r\n\r\n if (pageIndex == this.lastPageIndex) {\r\n this.ren.setAttribute(linkBtn, \"disabled\", \"disabled\");\r\n }\r\n break;\r\n default:\r\n this.ren.listen(linkBtn, \"click\", () => {\r\n this.switchPage(i);\r\n });\r\n break;\r\n }\r\n\r\n this.ren.appendChild(linkBtn, text);\r\n //Add button to private array for state\r\n this._buttons.push(linkBtn);\r\n console.log(\"buttons\", this._buttons);\r\n return linkBtn;\r\n }\r\n //calculates the button range based on class input parameters and based on current page index value. Used to render new buttons after event.\r\n private initPageRange(): void {\r\n const middleIndex = (this._rangeStart + this._rangeEnd) / 2;\r\n\r\n this._rangeStart = this.calcRangeStart(middleIndex);\r\n this._rangeEnd = this.calcRangeEnd(middleIndex);\r\n\r\n this.buildPageNumbers();\r\n }\r\n\r\n //Helper function To calculate start of button range\r\n private calcRangeStart(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex == 0 && this._rangeStart != 0:\r\n return 0;\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex - this.inc * 2\r\n : this._curPageObj.pageIndex - this.inc;\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeStart + 1;\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart > 0:\r\n return this._rangeStart - 1;\r\n default:\r\n return this._rangeStart;\r\n }\r\n }\r\n //Helpter function to calculate end of button range\r\n private calcRangeEnd(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex == 0 &&\r\n this._rangeEnd != this._showTotalPages:\r\n return this._showTotalPages - 1;\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex\r\n : this._curPageObj.pageIndex + 1;\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeEnd + 1;\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart >= 0 &&\r\n this._rangeEnd > this._showTotalPages - 1:\r\n return this._rangeEnd - 1;\r\n default:\r\n return this._rangeEnd;\r\n }\r\n }\r\n //Helper function to switch page on non first, last, next and previous buttons only.\r\n private switchPage(i: number): void {\r\n console.log(\"switch\", i);\r\n const previousPageIndex = this.matPag.pageIndex;\r\n this.matPag.pageIndex = i;\r\n this.matPag[\"_emitPageEvent\"](previousPageIndex);\r\n this.initPageRange();\r\n }\r\n //Initialize default state after view init\r\n public ngAfterViewInit() {\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n this.initPageRange();\r\n }\r\n\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, OnChanges, SimpleChanges } from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Router } from '@angular/router'\r\nimport { TableColumn } from '../../shared/core/interfaces/table-column.interface'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { ConsultantFilter } from 'src/app/consultant/consultant-list/interfaces/consultant.model'\r\nimport { FilterObject } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { NotesDialogComponent } from 'src/app/shared/notes-dialog/notes-dialog.component'\r\nimport { JobService } from '../job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { JOB_ADD_ACTION, JOB_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport { LoadingConfig } from 'src/app/constants/loadingConstants'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { NotesDialogService } from 'src/app/shared/notes-dialog/notes-dialog.service'\r\nimport { iNotes } from 'src/app/models/notes.model'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\n\r\n@Component({\r\n selector: 'job-notes',\r\n templateUrl: './job-notes.component.html',\r\n styleUrls: ['./job-notes.component.scss'],\r\n})\r\nexport class JobNotesComponent implements OnInit, OnDestroy, OnChanges {\r\n @Input() activeJob: any; // Accept the job data from the parent\r\n\r\n // activeJob = Common.activeJob\r\n notesList: any\r\n storeJobFilter: FilterObject = {}\r\n notesColumns: string[] = ['Actions', 'Comments', 'NotesTo', 'DateAdded', 'Author']\r\n jobAddAction = JOB_ADD_ACTION\r\n jobEditAction = JOB_EDIT_ACTION\r\n isLoading: boolean = false\r\n loadingConfig = LoadingConfig\r\n newNoteText: string = ''\r\n showAddNote = false;\r\n private _destroy$: Subject = new Subject()\r\n\r\n filterControls: TableColumn[] = [\r\n {\r\n label: 'Candidate Name',\r\n property: 'CandidateName',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n ]\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private jobService: JobService,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private notesDialogService: NotesDialogService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getNotes()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next()\r\n this._destroy$.complete()\r\n this.notesList = []; // Clear notes when component is destroyed\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['activeJob'] && changes['activeJob'].currentValue) {\r\n this.notesList = []; // Clear previous notes before fetching new ones\r\n this.getNotes();\r\n }\r\n }\r\n\r\n getNotes() {\r\n\r\n if (!this.activeJob || !this.activeJob.JobId) {\r\n this.notesList = [];\r\n return;\r\n }\r\n\r\n let notesRequestModel = {\r\n JobId: this.activeJob.JobId,\r\n ContactId: null,\r\n }\r\n this.notesList = []; // Clear old notes before fetching new ones\r\n\r\n this.isLoading = true\r\n\r\n this.jobService.getNotes(notesRequestModel).subscribe(\r\n (res) => {\r\n this.isLoading = false;\r\n this.notesList = Array.isArray(res) ? res : [];\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n this.notesList = [];\r\n }\r\n );\r\n }\r\n\r\n openConsultant(contactName) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n Common.activeJob = null\r\n Common.activeJobId = null\r\n this.saveConsultantFilter(contactName)\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate(['/candidates/'])\r\n }\r\n\r\n saveConsultantFilter(contactName) {\r\n var consultantPersistedFilterValue = JSON.parse(\r\n localStorage.getItem('consultantlist_FilterId_' + this.authService.userInfo.userID)\r\n )\r\n this.storeJobFilter.gridColumns = consultantPersistedFilterValue.gridColumns\r\n this.storeJobFilter.userId = Number(this.authService.userInfo.userID)\r\n this.storeJobFilter.pageName = 'consultantlist'\r\n this.storeJobFilter.filterValues = [\r\n { Key: 'sourceSearch', Value: '' },\r\n { Key: 'sourceSelected', Value: '64' },\r\n { Key: 'jobtypeText', Value: '' },\r\n { Key: 'jobtypeSelected', Value: '' },\r\n { Key: 'workStatusText', Value: '' },\r\n { Key: 'workStatusSelected', Value: '' },\r\n { Key: 'empTypeText', Value: '' },\r\n { Key: 'empTypeSelected', Value: '' },\r\n { Key: 'requiredSkills', Value: '' },\r\n { Key: 'preferredSkills', Value: '' },\r\n { Key: 'city', Value: '' },\r\n { Key: 'state', Value: '' },\r\n { Key: 'candidateName', Value: contactName },\r\n { Key: 'candidateTitle', Value: '' },\r\n { Key: 'minExperience', Value: '' },\r\n { Key: 'maxExperience', Value: '' },\r\n { Key: 'miles', Value: '' },\r\n { Key: 'lastUpdated', Value: '' },\r\n { Key: 'jobId', Value: '' },\r\n ]\r\n this.storeJobFilter.filterControls = this.filterControls\r\n localStorage.setItem(\r\n 'consultantlist_FilterId_' + this.authService.userInfo.userID,\r\n JSON.stringify(this.storeJobFilter)\r\n )\r\n }\r\n foods = [\r\n { value: 'steak-0', viewValue: 'Steak' },\r\n { value: 'pizza-1', viewValue: 'Pizza' },\r\n { value: 'tacos-2', viewValue: 'Tacos' },\r\n ]\r\n\r\n addNotes() {\r\n if (!this.newNoteText?.trim()) {\r\n return\r\n }\r\n\r\n const notesList: iNotes[] = []\r\n const note: iNotes = {\r\n NotesId: 0,\r\n ContactId: null,\r\n NotesDescription: this.newNoteText,\r\n ActionId: 200,\r\n JobId: this.activeJob.JobId,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true,\r\n }\r\n\r\n notesList.push(note)\r\n this.isLoading = true\r\n this.notesDialogService.addNotes(notesList).subscribe({\r\n next: (res) => {\r\n if (res == HttpStatusCode.Ok) {\r\n this.isLoading = false\r\n this.newNoteText = \"\"\r\n this.getNotes()\r\n this.notifyService.showSuccess('Note added successfully', 'Notes')\r\n } else {\r\n this.notifyService.showError('Error!', 'Notes')\r\n }\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Failed to add note', 'Notes')\r\n },\r\n })\r\n this.showAddNote = false; // Hide after adding\r\n\r\n }\r\n\r\n toggleAddNotes() {\r\n this.showAddNote = !this.showAddNote;\r\n }\r\n\r\n cancelAddNotes() {\r\n this.showAddNote = false; // Hide add note section\r\n this.newNoteText = ''; // Clear input\r\n }\r\n\r\n getLocalTime(utcDateString: string): string {\r\n if (!utcDateString) return '';\r\n \r\n // Ensure the string is correctly interpreted as UTC\r\n const utcDate = new Date(utcDateString + 'Z'); // Appends \"Z\" to enforce UTC interpretation\r\n \r\n // Convert to user's local timezone and format it\r\n return new Intl.DateTimeFormat(navigator.language, {\r\n year: 'numeric',\r\n month: 'short',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n //timeZoneName: 'short'\r\n }).format(utcDate);\r\n }\r\n \r\n // Function to show \"X hours ago\" correctly in local timezone\r\n getRelativeTime(utcDateString: string): string {\r\n if (!utcDateString) return '';\r\n \r\n const utcDate = new Date(utcDateString + 'Z'); // Force UTC interpretation\r\n const now = new Date();\r\n const diffMs = now.getTime() - utcDate.getTime(); // Difference in milliseconds\r\n const diffMinutes = Math.round(diffMs / 60000); // Convert to minutes\r\n \r\n if (diffMinutes < 1) return 'Just now';\r\n if (diffMinutes < 60) return `${diffMinutes} minutes ago`;\r\n \r\n const diffHours = Math.round(diffMinutes / 60);\r\n if (diffHours < 24) return `${diffHours} hours ago`;\r\n \r\n const diffDays = Math.round(diffHours / 24);\r\n return `${diffDays} days ago`;\r\n }\r\n \r\n \r\n}\r\n","\r\n
\r\n
\r\n Notes\r\n \r\n \r\n \"Add\r\n Add\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n Add a note\r\n \r\n done\r\n close\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n No Notes Found\r\n
\r\n \r\n 0\">\r\n
\r\n
\r\n
\r\n {{ note.Author }}\r\n \r\n {{ getRelativeTime(note.CreatedDate) }}\r\n \r\n
\r\n \r\n
\r\n
\r\n {{ note.NotesDescription }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { DatePipe } from '@angular/common'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { Component, EventEmitter, OnInit, Output, AfterViewInit, OnDestroy } from '@angular/core'\r\nimport { FormBuilder, Validators, FormGroup, ValidatorFn } from '@angular/forms'\r\nimport { Common } from 'src/app/common/common'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { FormControl } from '@angular/forms'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iCommments } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\n\r\nimport {\r\n iJob,\r\n LegalType,\r\n InterviewType,\r\n BackgroundCheck,\r\n JobType,\r\n User,\r\n iJobLegalType,\r\n iJobInterviewType,\r\n} from 'src/app/models/job.model'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nexport interface Stat {\r\n name: string\r\n}\r\n\r\nconst jobStartDateRangeValidator: ValidatorFn = (fg: FormGroup) => {\r\n let start = new Date() // formatDate(new Date(), 'MM/dd', 'en');;\r\n let end = fg.get('StartDate').value\r\n start.setHours(0, 0, 0, 0)\r\n if (end == '' || end == undefined) return null\r\n return start !== null && end !== null && end != '' && new Date(start) <= new Date(end)\r\n ? null\r\n : { jobStartDateRange: true }\r\n}\r\n\r\nconst BillRangeValidator: ValidatorFn = (fg: FormGroup) => {\r\n const JobTypeID = fg.get('JobTypeID').value\r\n var MinRate =\r\n fg.get('MinRate').value == undefined || fg.get('MinRate').value == null || fg.get('MinRate').value == ''\r\n ? 0\r\n : fg.get('MinRate').value\r\n var MaxBillRate =\r\n fg.get('MaxBillRate').value == undefined ||\r\n fg.get('MaxBillRate').value == null ||\r\n fg.get('MaxBillRate').value == ''\r\n ? 0\r\n : fg.get('MaxBillRate').value\r\n if (MaxBillRate == '' || MaxBillRate == undefined) return null\r\n if (JobTypeID == Common.enumJobContractType.JT_C2C || JobTypeID == Common.enumJobContractType.JT_C2H) {\r\n var x =\r\n MinRate !== null && MaxBillRate !== null && Number(MinRate) <= Number(MaxBillRate)\r\n ? null\r\n : { billRange: true }\r\n return x\r\n } else {\r\n {\r\n billRange: false\r\n }\r\n\r\n return null\r\n }\r\n}\r\n\r\nconst SalaryRangeValidator: ValidatorFn = (fg: FormGroup) => {\r\n const JobTypeID = fg.get('JobTypeID').value\r\n const MinSalary =\r\n fg.get('MinSalary').value == undefined || fg.get('MinSalary').value == null || fg.get('MinSalary').value == ''\r\n ? 0\r\n : fg.get('MinSalary').value\r\n const MaxSalary =\r\n fg.get('MaxSalary').value == undefined || fg.get('MaxSalary').value == null || fg.get('MaxSalary').value == ''\r\n ? 0\r\n : fg.get('MaxSalary').value\r\n if (MaxSalary == '' || MaxSalary == undefined) return null\r\n if (JobTypeID == Common.enumJobContractType.JT_C2H || JobTypeID == Common.enumJobContractType.JT_PERM) {\r\n var x = MinSalary !== null && MaxSalary !== null && MinSalary <= MaxSalary ? null : { salaryRange: true }\r\n return x\r\n } else {\r\n {\r\n salaryRange: false\r\n }\r\n return null\r\n }\r\n}\r\n@Component({\r\n selector: 'job-other',\r\n templateUrl: './job-other.component.html',\r\n styleUrls: ['./job-other.component.scss'],\r\n providers: [DatePipe],\r\n})\r\nexport class JobOtherComponent implements OnInit, AfterViewInit, OnDestroy {\r\n jobTypevalue: number\r\n public loading = false\r\n showBillRate: boolean\r\n showSalary: boolean\r\n myDate = new Date()\r\n jobForm: FormGroup\r\n minDate: Date = new Date()\r\n model: iJob\r\n job: iJob = {}\r\n selectedLegalTypeArray: MatTableDataSource //JobLegalType[];\r\n selectedInterviewTypeArray: MatTableDataSource\r\n selectedBakGrdChkArrayItems = []\r\n legaltypes: LegalType[]\r\n interviewtypes: InterviewType[]\r\n backgroundchecks: BackgroundCheck[]\r\n jobtypes: JobType[]\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n second: any\r\n keyData: any\r\n legalStatusCtrl = new FormControl()\r\n myselectedFoods = []\r\n legalTypeCrtl: FormControl\r\n interviewTypeCrtl: FormControl\r\n backGroundCrtl: FormControl\r\n workTypeID: number\r\n modelComments: iCommments\r\n previousNote: string\r\n jsMaxsubmit: number\r\n prevJob: any\r\n isJobEdited: boolean = false\r\n minStartDate: Date = new Date()\r\n minEndDate: Date = new Date()\r\n maxSubmissionDate: Date = new Date()\r\n isLoaded: boolean = false\r\n matcher = new CustomErrorStateMatcher()\r\n travelPercent: HTMLTemplateElement\r\n\r\n get f() {\r\n return this.jobForm.controls\r\n }\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n constructor(\r\n private commonService: CommonService,\r\n public authService: AuthenticationService,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.minDate = new Date()\r\n this.minStartDate = new Date()\r\n this.minEndDate = new Date()\r\n this.maxSubmissionDate = new Date()\r\n }\r\n visible = true\r\n selectable = true\r\n removable = true\r\n addOnBlur = true\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n minBillRate = 1\r\n //minSalary=15000;\r\n ngOnInit(): void {\r\n this.travelPercent = document.querySelector('#travelPercentage')\r\n this.travelPercent.setAttribute('style', 'display: none;')\r\n this.maxSubmissionDate = new Date()\r\n this.jobForm = this.formBuilder.group(\r\n {\r\n JobTypeID: ['', Validators.required],\r\n MinRate: [],\r\n MaxBillRate: [],\r\n MinSalary: [],\r\n MaxSalary: [],\r\n Positions: [1],\r\n StartDate: ['', Validators.required],\r\n EndDate: [null],\r\n ExpiryDate: [null],\r\n WorkHours: [40],\r\n IsHot: [],\r\n Notes: [''],\r\n PostedFor: ['', Validators.required],\r\n SecondaryRecruiterId: [],\r\n MaxSubmissionCount: [],\r\n VendorAllowedId: [],\r\n TravelRequired: [null],\r\n TravelPercentage: [null],\r\n },\r\n {\r\n validator: [jobStartDateRangeValidator, BillRangeValidator, SalaryRangeValidator],\r\n }\r\n )\r\n\r\n this.isLoaded = false\r\n this.job = Common.activeJob\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.getLookupValues()\r\n }\r\n if (this.job) {\r\n this.getRecruiters(this.job.CompanyId)\r\n }\r\n this.bindFormData()\r\n }\r\n\r\n isFormFieldIsValid(field: string) {\r\n return this.jobForm.get(field).invalid && (this.jobForm.get(field).dirty || this.jobForm.get(field).touched)\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getRecruiters(this.job.CompanyId)\r\n }\r\n\r\n travelRequiredChanged(event) {\r\n if (event.value == 'true') {\r\n this.travelPercent.setAttribute('style', 'display: block;')\r\n this.travelPercent.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n } else {\r\n this.travelPercent.setAttribute('style', 'display: none;')\r\n }\r\n }\r\n\r\n checkIfValueNew(objectKey) {\r\n if (this.jobForm.get(objectKey).value !== this.prevJob[objectKey]) {\r\n this.isJobEdited = true\r\n }\r\n }\r\n\r\n submissionDateChangesHandler(event) {\r\n this.minDate = event.value\r\n this.minStartDate = event.value.getDate() + 1\r\n this.minEndDate = event.value.getDate() + 2\r\n }\r\n\r\n startDateChangesHandler(event) {\r\n this.minEndDate = new Date(new Date(event.value).setDate(event.value.getDate() + 1))\r\n this.maxSubmissionDate = event.value.getDate()\r\n }\r\n\r\n getLookupValues() {\r\n this.commonService.getConfig().subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getStatus().subscribe(\r\n (status) => {\r\n Common.wfStatus = status\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n this.commonService.getStates().subscribe((state) => {\r\n Common.states = state\r\n })\r\n }\r\n\r\n get MaxBillRate() {\r\n return this.jobForm.get('MaxBillRate')\r\n }\r\n get MaxSalary() {\r\n return this.jobForm.get('MaxSalary')\r\n }\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n //let para = {RoleId: Common.enumUserRoles.Recruiter,UserId: this.authService.userInfo.userID,}\r\n //ToDO: Use GetCompanyRecruiters. Currenly showing all recruiters (Phase 1)\r\n //Shows recruiters & accountmanagers\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job.PostedFor)\r\n this.jobForm.get('PostedFor').setValue(this.job.PostedFor)\r\n this.jobForm.get('SecondaryRecruiterId').setValue(this.job.SecondaryRecruiterId)\r\n this.isLoaded = true\r\n })\r\n }\r\n\r\n bindFormData() {\r\n if (this.job != null && this.job != undefined) {\r\n if (this.job.JobTypeID > 0) {\r\n this.jobForm.get('JobTypeID').setValue(this.job.JobTypeID)\r\n this.JobTypeChange(this.job.JobTypeID)\r\n this.jobForm.get('MinRate').setValue(this.job.MinBillRate)\r\n this.jobForm.get('MaxBillRate').setValue(this.job.MaxBillRate)\r\n this.jobForm.get('MinSalary').setValue(this.job.MinSalary)\r\n this.jobForm.get('MaxSalary').setValue(this.job.MaxSalary)\r\n this.jobForm.get('Positions').setValue(this.job.Positions)\r\n this.jobForm.get('MaxSubmissionCount').setValue(this.job.MaxSubmissionCount)\r\n this.jobForm.get('StartDate').setValue(this.job.StartDate)\r\n this.jobForm.get('EndDate').setValue(this.job.EndDate)\r\n this.jobForm.get('ExpiryDate').setValue(this.job.ExpiryDate)\r\n this.jobForm.get('PostedFor').setValue(this.job.PostedFor)\r\n\r\n this.jobForm.get('SecondaryRecruiterId').setValue(this.job.SecondaryRecruiterId)\r\n this.jobForm.get('WorkHours').setValue(this.job.WorkHours)\r\n this.jobForm.get('Notes').setValue(this.job.Notes)\r\n this.jobForm.get('VendorAllowedId').setValue(this.job.VendorAllowedId)\r\n this.jobForm.get('IsHot').setValue(this.job.IsHot)\r\n\r\n this.previousNote = this.job.Notes\r\n this.workTypeID = this.job.WorkTypeID\r\n this.jobService.GetJobLegalStatus(this.job.JobId).subscribe((res) => {\r\n var x = res as iJobLegalType[]\r\n let jldata: iJobLegalType[] = []\r\n let ltSelected: any[] = []\r\n for (let index = 0; index < x.length; index++) {\r\n ltSelected.push(x[index]['LegalTypeId'])\r\n jldata.push({\r\n JobLegalTypeId: x[index]['JobLegalTypeId'],\r\n JobId: this.job.JobId,\r\n LegalTypeId: x[index]['LegalTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n\r\n if (ltSelected.indexOf(8) == -1) {\r\n ltSelected.push(8) // US Citizen should be added to all Job\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n })\r\n this.jobService.GetJobInterviewType(this.job.JobId).subscribe((res) => {\r\n var x = res as iJobInterviewType[]\r\n let jldata: iJobInterviewType[] = []\r\n let itSelected: any[] = []\r\n for (let index = 0; index < x.length; index++) {\r\n itSelected.push(x[index]['InterviewTypeId'])\r\n jldata.push({\r\n JobInterviewTypeId: x[index]['JobInterviewTypeId'],\r\n JobId: x[index]['JobId'],\r\n InterviewTypeId: x[index]['InterviewTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.interviewTypeCrtl = new FormControl(itSelected)\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jldata)\r\n })\r\n if (this.job.BackgroundCheckId) {\r\n var str = this.job.BackgroundCheckId\r\n var temp = new Array()\r\n temp = str.split(',').map(Number)\r\n this.backGroundCrtl = new FormControl(temp)\r\n this.selectedBakGrdChkArrayItems = temp\r\n }\r\n } else {\r\n this.defaultSetting()\r\n if (this.job) {\r\n this.companyJobSetting(this.job.CompanyId)\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.jobForm.markAllAsTouched()\r\n this.isJobEdited = false\r\n if (this.jobForm.valid) {\r\n this.saveJobDetails()\r\n }\r\n }\r\n\r\n saveJobDetails() {\r\n this.loading = true\r\n let activeJob: iJob = Common.activeJob\r\n this.model = activeJob\r\n\r\n this.model.JobTypeID = this.jobForm.get('JobTypeID').value\r\n this.model.MaxBillRate =\r\n this.jobForm.get('MaxBillRate').value == '' ? null : Number(this.jobForm.get('MaxBillRate').value)\r\n this.model.MaxSalary =\r\n this.jobForm.get('MaxSalary').value == '' ? null : Number(this.jobForm.get('MaxSalary').value)\r\n this.model.Positions = Number(\r\n this.jobForm.get('Positions').value == '' ? 0 : this.jobForm.get('Positions').value\r\n )\r\n this.model.StartDate = this.jobForm.get('StartDate').value == '' ? 0 : this.jobForm.get('StartDate').value\r\n this.model.EndDate = this.jobForm.get('EndDate').value == '' ? 0 : this.jobForm.get('EndDate').value\r\n this.model.ExpiryDate = this.jobForm.get('ExpiryDate').value == '' ? 0 : this.jobForm.get('ExpiryDate').value\r\n this.model.MaxSubmissionCount = Number(\r\n this.jobForm.get('MaxSubmissionCount').value == ''\r\n ? null\r\n : Number(this.jobForm.get('MaxSubmissionCount').value)\r\n )\r\n this.model.PostedFor = this.jobForm.get('PostedFor').value == '' ? 0 : this.jobForm.get('PostedFor').value\r\n this.model.SecondaryRecruiterId =\r\n this.jobForm.get('SecondaryRecruiterId').value == '' ? 0 : this.jobForm.get('SecondaryRecruiterId').value\r\n this.model.Notes = this.jobForm.get('Notes').value == '' ? '' : this.jobForm.get('Notes').value\r\n this.model.IsHot = Boolean(this.jobForm.get('IsHot').value)\r\n // Boolean(this.jobForm.get('IsHot').value == \"\" ? false : this.jobForm.get('IsHot').value);\r\n this.model.WorkHours = Number(\r\n this.jobForm.get('WorkHours').value == '' ? 0 : Number(this.jobForm.get('WorkHours').value)\r\n )\r\n this.model.WorkTypeID = Number(this.workTypeID)\r\n this.model.VendorAllowedId = Number(\r\n this.jobForm.get('VendorAllowedId').value == '' ? false : this.jobForm.get('VendorAllowedId').value\r\n )\r\n this.model.JobId = activeJob.JobId\r\n this.model.JobStatusID = activeJob.JobStatusID\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.BackgroundCheckId = JSON.stringify(this.selectedBakGrdChkArrayItems)\r\n this.model.TravelRequired =\r\n this.jobForm.get('TravelRequired').value != null\r\n ? this.jobForm.get('TravelRequired').value == 'true'\r\n ? true\r\n : false\r\n : null\r\n this.model.TravelPercentage =\r\n this.jobForm.get('TravelRequired').value != null && this.jobForm.get('TravelPercentage').value != null\r\n ? this.jobForm.get('TravelPercentage').value\r\n : null\r\n if (this.selectedLegalTypeArray != null) {\r\n this.model.JobLegalTypes = this.selectedLegalTypeArray.data\r\n } else {\r\n let jldata: iJobLegalType[] = []\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n if (this.selectedInterviewTypeArray != null) {\r\n this.model.JobInterviewTypes = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n this.jobService.AddJobDescription(this.model).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job other details successfully saved.', '')\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(3)\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n )\r\n }\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n public getBetween(strSource, strStart, strEnd) {\r\n if (strSource.ToLower().Contains(strStart.ToLower()) && strSource.ToLower().Contains(strEnd.ToLower())) {\r\n let Start, End\r\n Start = strSource.ToLower().IndexOf(strStart.ToLower(), 0) + strStart.Length\r\n End = strSource.ToLower().IndexOf(strEnd.ToLower(), Start)\r\n return strSource.Substring(Start, End - Start)\r\n }\r\n\r\n return ''\r\n }\r\n\r\n ParseJobText() {\r\n //let searchData = { Description: this.jDescription };\r\n var regex = /[\\d|,|.|e|E|\\+]+/g\r\n this.keyData = Common.JobKeywords\r\n try {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index]\r\n\r\n if (element.Key == 'Positions' && element.Value != '') {\r\n this.f.Positions.setValue(element.Value.match(/\\d+/)[0])\r\n }\r\n if (element.Key == 'MaximumSubmission' && element.Value != '') {\r\n this.f.MaxSubmissionCount.setValue(element.Value.match(/\\d+/)[0])\r\n }\r\n if (element.Key == 'StartDate' && element.Value != '') {\r\n if (this.f.StartDate.value == '' || this.f.StartDate.value == null)\r\n this.f.StartDate.setValue(new Date(element.Value.trim()))\r\n }\r\n if (element.Key == 'EndDate' && element.Value != '') {\r\n if (this.f.EndDate.value == '' || this.f.EndDate.value == null)\r\n this.f.EndDate.setValue(new Date(element.Value.trim()))\r\n }\r\n if (element.Key == 'Duration' && element.Value != '') {\r\n let duration = element.Value.trim()\r\n let x = duration.split(' - ')\r\n let startDate = x[0] || '' //duration.Substring(0, duration.IndexOf(\" - \"));\r\n let endtDate = x[1] || '' //this.getBetween(duration,duration.IndexOf(\" - \"),10);\r\n //var rx = /(? 1) {\r\n if (this.f.MinRate.value == '' || this.f.MinRate.value == null) {\r\n this.f.MinRate.setValue(Number(rates[0]))\r\n }\r\n if (this.f.MaxBillRate.value == '' || this.f.MaxBillRate.value == null) {\r\n this.f.MaxBillRate.setValue(Number(rates[1]))\r\n }\r\n } else if (rates.length == 1) {\r\n if (this.f.MinRate.value == '' || this.f.MinRate.value == null) {\r\n this.f.MinRate.setValue(Number(rates[0]))\r\n }\r\n if (this.f.MaxBillRate.value == '' || this.f.MaxBillRate.value == null) {\r\n this.f.MaxBillRate.setValue(Number(rates[0]))\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } catch {}\r\n }\r\n isCharDigit(n: any) {\r\n return !!n.trim() && n * 0 == 0\r\n }\r\n JobTypeChange(selectedValue) {\r\n this.jobTypevalue = selectedValue\r\n if (this.jobTypevalue !== 12) {\r\n this.jobForm.get('EndDate').addValidators([Validators.required])\r\n } else {\r\n this.jobForm.get('EndDate').clearValidators()\r\n }\r\n this.jobForm.get('EndDate').updateValueAndValidity()\r\n //this.minSalary=15000;\r\n this.minBillRate = 1\r\n if (selectedValue == Common.enumJobContractType.JT_C2C) {\r\n // Contract ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = false\r\n this.jobForm.controls['MaxSalary'].clearValidators()\r\n this.jobForm.get('MaxSalary').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_C2H) {\r\n // Contract to hire ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = true\r\n this.jobForm.get('MaxSalary').setValue('')\r\n this.jobForm.get('MaxBillRate').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_PERM) {\r\n // Permanent\r\n this.showBillRate = false\r\n this.showSalary = true\r\n\r\n //this.minSalary=null;\r\n this.minBillRate = 0\r\n this.jobForm.controls['MaxBillRate'].clearValidators()\r\n this.jobForm.controls['MaxSalary'].clearValidators()\r\n this.jobForm.get('MaxBillRate').setValue('')\r\n }\r\n }\r\n\r\n onSelectLegalTypes(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobLegalType[] = []\r\n if (this.selectedLegalTypeArray != null) {\r\n jldata = this.selectedLegalTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.LegalTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n companyJobSetting(companyId) {\r\n if (Common.ConfigValues != null) {\r\n var bgcks = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 154 && //backgroundChecks\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n let bgcksids: any[] = []\r\n bgcksids = bgcks.split(',').map((item) => Number(item))\r\n\r\n this.backGroundCrtl = new FormControl(bgcksids)\r\n this.selectedBakGrdChkArrayItems = bgcksids\r\n\r\n var wauth = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 155 && //work authorization\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n\r\n let waIds: any[] = []\r\n waIds = wauth.split(',').map((item) => Number(item))\r\n\r\n let jldata: iJobLegalType[] = []\r\n let ltSelected: any[] = []\r\n for (let index = 0; index < waIds.length; index++) {\r\n ltSelected.push(waIds[index])\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: waIds[index],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n // Add US Citizen as default- requried\r\n ltSelected.push(8)\r\n\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobcatsetting) => {\r\n if (jobcatsetting) {\r\n var maxsubmit\r\n var vendorAllowed = false\r\n var jc = jobcatsetting\r\n .filter((option) => option.CategoryID == this.job.JobCategoryID)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.indexOf(this.job.JobCategoryID) > -1) {\r\n //A specific category\r\n maxsubmit = jobcatsetting\r\n .filter((option) => option.CategoryID == this.job.JobCategoryID)\r\n .map((x) => x.MaxSubmit)\r\n vendorAllowed = jobcatsetting\r\n .filter((option) => option.CategoryID == this.job.JobCategoryID)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n } else {\r\n //All-Other category\r\n maxsubmit = jobcatsetting.filter((option) => option.CategoryID == 1312).map((x) => x.MaxSubmit)\r\n vendorAllowed = jobcatsetting\r\n .filter((option) => option.CategoryID == 1312)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n }\r\n\r\n if (maxsubmit) {\r\n if (this.jobForm.get('MaxSubmissionCount').value == '') {\r\n this.jobForm.get('MaxSubmissionCount').setValue(maxsubmit)\r\n this.jsMaxsubmit = Number(maxsubmit)\r\n }\r\n }\r\n if (vendorAllowed) {\r\n this.jobForm.get('VendorAllowedId').setValue(vendorAllowed)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n defaultSetting() {\r\n this.jobForm.get('Positions').setValue(1)\r\n this.jobForm.get('WorkHours').setValue(40)\r\n this.jobForm.get('JobTypeID').setValue(10)\r\n this.jobForm.get('MinRate').setValue('')\r\n this.jobForm.get('MaxBillRate').setValue('')\r\n this.jobForm.get('MinSalary').setValue('')\r\n this.jobForm.get('MaxSalary').setValue('')\r\n this.JobTypeChange(10)\r\n this.ParseJobText()\r\n\r\n this.workTypeID = 1\r\n\r\n let ltSelected: any[] = []\r\n let jldata: iJobLegalType[] = []\r\n ltSelected.push(8)\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n maxSubmitUpdated(event) {\r\n if (this.jsMaxsubmit > 0) {\r\n this.jobForm.get('MaxSubmissionCount').setValue(this.jsMaxsubmit * event.target.value)\r\n }\r\n }\r\n onSelectInterviewType(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobInterviewType[] = []\r\n if (this.selectedInterviewTypeArray != null) {\r\n jldata = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobInterviewTypeId: 0,\r\n JobId: this.job.JobId,\r\n InterviewTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.InterviewTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n onSelectBackGroundCheck(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.selectedBakGrdChkArrayItems.push(event.source.value)\r\n } else {\r\n const index: number = this.selectedBakGrdChkArrayItems.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.selectedBakGrdChkArrayItems.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n\r\n recruiterHandler(event: any) {\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != event)\r\n }\r\n\r\n ngOnDestroy() {\r\n this.primaryRecruiters = []\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n \r\n Generals\r\n \r\n \r\n
\r\n \r\n
\r\n Job Type *\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Job Type is Required\r\n \r\n \r\n
\r\n
\r\n Max. Bill Rate/Hr \r\n \r\n \r\n \r\n
\r\n
\r\n Max. Salary/Annum \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Start Date *\r\n \r\n \r\n Start date is required \r\n \r\n \r\n Start date cannot be less than current date\r\n \r\n
\r\n
\r\n End Date*\r\n \r\n \r\n End date is required \r\n \r\n \r\n The end date cannot be before the start date\r\n \r\n
\r\n
\r\n Submission Due Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No. of Positions\r\n \r\n \r\n \r\n
\r\n
\r\n Max Submission\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Work type & other details\r\n \r\n
\r\n\r\n
\r\n
\r\n Work Type*\r\n \r\n Full Time\r\n    \r\n Part Time\r\n \r\n
\r\n
\r\n No. of Hours/week\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Primary Recruiter*\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n Recruiter is required \r\n \r\n
\r\n
\r\n Secondary Recruiter\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Permit\r\n \r\n \r\n \r\n {{ legaltype.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Interview Type\r\n \r\n \r\n \r\n {{ interviewtype?.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Background Checks\r\n \r\n \r\n \r\n {{ bgc.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Travel Required\r\n \r\n \r\n Yes\r\n No\r\n \r\n \r\n
\r\n
\r\n Job Related Travel %\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Vendor Allowed \r\n \r\n \r\n
\r\n
\r\n Hot Job \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Router } from '@angular/router';\r\nimport { Component, OnInit, Output, EventEmitter, ChangeDetectionStrategy, TemplateRef } from \"@angular/core\";\r\nimport { Common } from 'src/app/common/common';\r\nimport { iJob, iJobSkill, iJobEducation, iJobCertification, iJobQuestionnaire, } from 'src/app/models/job.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { Observable } from 'rxjs';\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { JobTypes } from 'src/app/enums/jobType';\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType';\r\n\r\n@Component({\r\n selector: 'job-preview',\r\n templateUrl: './job-preview.component.html',\r\n styleUrls: ['./job-preview.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class JobPreviewComponent implements OnInit {\r\n\r\n displayedColumns: any[];\r\n displyEduColumns: any[];\r\n displyCertColumns: any[];\r\n job: iJob = {};\r\n showBillRate: boolean;\r\n showSalary: boolean;\r\n jobskillArray: Array = [];\r\n educationcArray: Array = [];\r\n certificationArray: Array = [];\r\n certificationArray$: Observable>;\r\n certifications: any;\r\n optionSelected: string = '';\r\n education: any;\r\n optionalSkill: any = [];\r\n questioneArray: Array = [];\r\n\r\n @Output() jobAdded: EventEmitter = new EventEmitter();\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n skills: string[];\r\n skillExperience: number[];\r\n baseFilePath: Promise;\r\n isSkillLoaded: boolean = false;\r\n constructor(public authService: AuthenticationService, private JobService: JobService, private commonService: CommonService, private router: Router, private dialog: MatDialog,\r\n private notifyService: NotificationService) { }\r\n\r\n ngOnInit(): void {\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob;\r\n if (this.job.JobId > 0) {\r\n this.BindRequiredSkill(this.job.JobId);\r\n this.bindEducation(this.job.JobId);\r\n this.bindCertification(this.job.JobId);\r\n this.bindQuestionnaire(this.job.JobId);\r\n if (this.job.JobTypeID == Common.enumJobContractType.JT_C2C) {\r\n this.showSalary = true;\r\n }\r\n\r\n else if (this.job.JobTypeID == Common.enumJobContractType.JT_PERM) {\r\n this.showBillRate = true;\r\n }\r\n }\r\n else {\r\n this.jobskillArray = Common.JobKeywords.ReqSkills;\r\n this.optionalSkill = this.jobskillArray.filter(item => item.Required == false)\r\n }\r\n }\r\n this.baseFilePath = this.commonService.getAppSettings().then(data => {\r\n this.baseFilePath = data.filePath;\r\n })\r\n\r\n }\r\n \r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId\r\n , statusID, comments, userID).subscribe(result => {\r\n result;\r\n });\r\n }\r\n\r\n saveJob(statusId, templateRef: TemplateRef) {\r\n let job: iJob = Common.activeJob;\r\n if (job.JobId > 0) {\r\n\r\n if (statusId == Common.enumJobStatuses.JOB_DRAFT) {\r\n this.notifyService.showSuccess('Job successfully saved.', '');\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_DRAFT;\r\n Common.activeJob.JobStatus = 'Draft';\r\n this.updateObjectStatus(job.JobId, Common.enumObjectTypes.Job, Common.enumJobStatuses.JOB_DRAFT, '', this.authService.userInfo.userID);\r\n this.router.navigate(['/jobs']);\r\n return;\r\n }\r\n\r\n else if (statusId == Common.enumJobStatuses.JOB_OPEN) {\r\n let vresult: any;\r\n if (this.job.JobTypeID == JobTypes.Contract && this.CheckValueForZero(this.job.MaxBillRate)) {\r\n this.notifyService.showWarning('Max Bill Rate is Required', '')\r\n } else if (this.job.JobTypeID == JobTypes.Permanent && this.CheckValueForZero(this.job.MaxSalary)) {\r\n this.notifyService.showWarning('Max Salary is Required', '')\r\n } else if (this.job.JobTypeID == JobTypes.ContractToHire && this.CheckValueForZero(this.job.MaxSalary) && this.CheckValueForZero(this.job.MaxBillRate)) {\r\n this.notifyService.showWarning('Max Bill Rate and Max Salary is Required', '')\r\n }\r\n this.JobService.GetJobValidation(Common.activeJob.JobId).subscribe(result => {\r\n vresult = result;\r\n if (vresult.length > 0) {\r\n let reqColums = vresult.map(function (val) { return val.ColumnName; }).join(',');\r\n this.notifyService.showWarning('Can not change to Open, Please fill required fields: ' + reqColums, '');\r\n return;\r\n }\r\n else {\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_OPEN;\r\n Common.activeJob.JobStatus = 'Open';\r\n this.updateObjectStatus(job.JobId, Common.enumObjectTypes.Job, Common.enumJobStatuses.JOB_OPEN, '', this.authService.userInfo.userID);\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '304px',\r\n height: '100%',\r\n width: '100%',\r\n }\r\n );\r\n this.router.navigate(['/jobs']);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n else {\r\n\r\n this.notifyService.showError('Could not save the Job!', '');\r\n\r\n }\r\n\r\n }\r\n BindRequiredSkill(jobid) {\r\n\r\n this.JobService.GetJobSkills(jobid\r\n ).subscribe((res) => {\r\n let JobSkillDatasource = res as iJobSkill[]\r\n\r\n if (res == null || JobSkillDatasource.length == 0) {\r\n this.jobskillArray = Common.JobKeywords.ReqSkills;\r\n }\r\n else {\r\n this.jobskillArray = JobSkillDatasource;\r\n this.skills = this.jobskillArray.map(x => x.SkillName)\r\n this.skillExperience = this.jobskillArray.map(x => x.MinimumExperience)\r\n this.skillExperience=this.jobskillArray.map(x=>x.MaximumExperience)\r\n this.isSkillLoaded = true;\r\n }\r\n }\r\n );\r\n }\r\n bindEducation(jobid) {\r\n this.JobService.GetJobEducation(jobid).subscribe((res) => {\r\n this.educationcArray = res as iJobEducation[]\r\n this.education = this.educationcArray.map(x => x.EducationName).join(', ');\r\n }\r\n );\r\n }\r\n\r\n bindCertification(jobid) {\r\n this.certificationArray$ = this.JobService.GetJobCertification(jobid);\r\n this.certifications = this.certificationArray$.subscribe((res) =>\r\n res.map(x => x.CertificationName).join(', ')\r\n )\r\n };\r\n\r\n bindQuestionnaire(jobid) {\r\n this.JobService.GetJobQuestionnaire(jobid).subscribe((res) => {\r\n this.questioneArray = res as iJobQuestionnaire[]\r\n }\r\n );\r\n }\r\n resetOption() {\r\n this.optionSelected = '';\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n CheckValueForZero(val) {\r\n return val == 0\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title: {{ job?.JobTitleName }}\r\n
\r\n
\r\n Job Code: {{ job?.JobCode }}\r\n
\r\n
\r\n Client Name: {{ job?.CompanyName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Hiring Manager: {{ job.CompanyContact }}\r\n
\r\n
\r\n Location Address: {{ job.Location?.City }}, {{ job.Location?.State }}\r\n
\r\n
\r\n Zipcode: {{ job.Location?.ZipCode }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Job Details\r\n \r\n
\r\n
\r\n \"Job\r\n Job Type{{ job?.JobType }}\r\n
\r\n\r\n
\r\n \"Experience\"\r\n Experience{{ job?.SkillLevel }} \r\n
\r\n
\r\n \"CTC\"\r\n \r\n Bill Rate \r\n \r\n {{ job?.MaxBillRate | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}/hr\r\n \r\n \r\n Bill Rate/Annual Salary\r\n \r\n \r\n {{ job?.MaxBillRate | currency : 'USD' : 'symbol-narrow' }}/hr,\r\n {{ job?.MaxSalary | currency : 'USD' : 'symbol-narrow' }}/yr\r\n \r\n Annual Salary \r\n \r\n {{ job?.MaxSalary | currency : 'USD' : 'symbol-narrow' }}/yr\r\n \r\n \r\n
\r\n
\r\n \"Job\r\n Job Location\r\n \r\n 0\">{{ job?.Location?.City }}\r\n\r\n 0 && job?.Location?.StateCode?.length > 0\"\r\n >,\r\n 0\" class=\"ml-1\"\r\n >{{ job?.Location?.StateCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n \"No\r\n No of Jobs{{ job.Positions }} \r\n
\r\n
\r\n
\r\n\r\n \r\n Job Description\r\n \r\n
\r\n
\r\n\r\n \r\n Other Details\r\n \r\n
\r\n
\r\n
\r\n Job Type\r\n {{ job.JobType?.length > 0 ? job.JobType : 'N/A' }}\r\n
\r\n
\r\n Job Start Date\r\n {{ job.StartDate | date }}\r\n
\r\n
\r\n Positions\r\n {{ job?.Positions }}\r\n
\r\n
\r\n Work Type\r\n {{ job.WorkTypeID == 1 ? 'Full Time' : 'Part Time' }}\r\n
\r\n
\r\n Primary Recruiter\r\n {{ job.RecruiterName?.length > 0 ? job.RecruiterName : 'N/A' }}\r\n
\r\n
\r\n Seconday Recruiter\r\n {{\r\n job.SecondaryRecruiter?.length > 0 ? job.SecondaryRecruiter : 'N/A'\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Bill Rate\r\n ${{ job.MaxBillRate }}\r\n
\r\n
\r\n Job End Date\r\n {{ job.EndDate | date }}\r\n
\r\n
\r\n Work Option\r\n {{ job.WorkOption }}\r\n
\r\n
\r\n Max. Submission\r\n {{ job?.MaxSubmissionCount ? job?.MaxSubmissionCount : 'N/A' }}\r\n
\r\n
\r\n Interview Type\r\n {{ job.InterviewTypeNames }}\r\n
\r\n
\r\n Vendor Allowed\r\n {{ job.VendorAllowedId == 1 ? 'Yes' : 'No' }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Salary/Annum\r\n {{\r\n job.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2'\r\n }}\r\n
\r\n
\r\n No. of Hrs per week\r\n {{ job.WorkHours }}\r\n
\r\n
\r\n Submission Date\r\n {{ job.ExpiryDate | date }}\r\n
\r\n
\r\n Work Permit\r\n {{ job.LegalTypeNames }}\r\n
\r\n
\r\n Background Checks\r\n {{ job.BackgroundcheckNames }}\r\n
\r\n
\r\n Hot Job\r\n {{ job.IsHot ? 'Yes' : 'No' }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Education & Certification\r\n \r\n
\r\n
\r\n Education\r\n {{ education }}\r\n
\r\n
\r\n Certifications\r\n
\r\n \r\n {{ item.CertificationName }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Professional Skills\r\n \r\n
\r\n {{ skill.SkillName }} ({{ skillExperience[i] }} Yrs)\r\n
\r\n
\r\n\r\n \r\n Questionnaire\r\n \r\n
    \r\n
  • \r\n {{ i + 1 }}\r\n
    \r\n \r\n \r\n \r\n {{ option }}\r\n \r\n \r\n
    \r\n \r\n {{ option }}\r\n \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n close\r\n
\r\n
\r\n \"\"\r\n Created Job Successfully!\r\n You can view job from landing page and edit.\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { iJobQuestionnaire } from 'src/app/models/job.model'\r\nimport { FormBuilder, FormGroup } from '@angular/forms'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n@Component({\r\n selector: 'job-questionnaire',\r\n templateUrl: './job-questionnaire.component.html',\r\n styleUrls: ['./job-questionnaire.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobQuestionnaireComponent implements OnInit {\r\n questionTypeId = 0\r\n dynamicArray: Array = []\r\n newDynamic: any = {}\r\n jobQuestionaireData: iJobQuestionnaire[]\r\n job: iJob = {}\r\n data: iJob\r\n isActiveIndex: number\r\n questionType: string = ''\r\n iconSrcCommon = 'assets/img/Leap-Tiger_Icons/Job-Module-Icon/'\r\n prevQuesArray: any\r\n isJobEdited: boolean = false\r\n editQuestion = false\r\n editQuestionIndex: number\r\n isQuestionInputShow: boolean = false\r\n jobQuestionnaireForm: FormGroup\r\n\r\n public loading = false\r\n\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n deleteQuestionIndex: any\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {}\r\n\r\n questionTypes = [\r\n {\r\n questionTypeId: 2,\r\n questionTypename: 'Line Text',\r\n iconSrc: 'lineText.svg',\r\n activeIconSrc: 'lineTextActive.svg',\r\n isActive: false,\r\n },\r\n {\r\n questionTypeId: 4,\r\n questionTypename: 'Single Select',\r\n iconSrc: 'singleSelect.svg',\r\n activeIconSrc: 'singleSelectActive.svg',\r\n isActive: false,\r\n },\r\n {\r\n questionTypeId: 5,\r\n questionTypename: 'Multi Select (Checkboxes)',\r\n iconSrc: 'multiSelect.svg',\r\n activeIconSrc: 'multiSelectActive.svg',\r\n isActive: false,\r\n },\r\n ]\r\n visible = true\r\n selectable = true\r\n removable = true\r\n addOnBlur = true\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n ngOnInit(): void {\r\n this.jobQuestionnaireForm = this.formBuilder.group({\r\n Question: [''],\r\n QuestionOptions: [],\r\n })\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n if (this.job.JobId > 0) {\r\n this.bindQuestionnaire(this.job.JobId)\r\n }\r\n }\r\n }\r\n\r\n addRow(id: number) {\r\n if (this.jobQuestionnaireForm.get('Question').value.length === 0) {\r\n this.notifyService.showWarning('Please enter the question', '')\r\n } else {\r\n this.questionTypeId = id\r\n if (this.jobQuestionnaireForm.get('Question').value.length > 0) {\r\n if (this.jobQuestionnaireForm.get('QuestionOptions').value != null) {\r\n if (this.editQuestion) {\r\n this.dynamicArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n this.dynamicArray[this.editQuestionIndex].Options =\r\n this.jobQuestionnaireForm.get('QuestionOptions').value\r\n } else {\r\n this.newDynamic = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: this.jobQuestionnaireForm.get('QuestionOptions').value,\r\n viewOptions: this.jobQuestionnaireForm.get('QuestionOptions').value?.split(','),\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n }\r\n } else {\r\n if (this.editQuestion) {\r\n this.dynamicArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n } else {\r\n this.newDynamic = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: '',\r\n viewOptions: [],\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n }\r\n }\r\n }\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n return true\r\n }\r\n }\r\n\r\n cancelEdit() {\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.deleteQuestionIndex = i\r\n }\r\n\r\n removeRow(index) {\r\n if (this.dynamicArray.length > 0) {\r\n this.dynamicArray.splice(index, 1)\r\n }\r\n this.dialog.closeAll()\r\n }\r\n\r\n bindQuestionnaire(jobid) {\r\n this.jobService.GetJobQuestionnaire(jobid).subscribe(\r\n (res) => {\r\n this.jobQuestionaireData = res as iJobQuestionnaire[]\r\n\r\n if (res == null || this.jobQuestionaireData.length == 0) {\r\n if (Common.activeJob.Questionnaire != undefined && Common.activeJob.Questionnaire != null) {\r\n this.dynamicArray = Common.activeJob.Questionnaire\r\n }\r\n } else {\r\n this.dynamicArray = this.jobQuestionaireData\r\n }\r\n },\r\n (err: any) => {},\r\n () => {}\r\n )\r\n }\r\n saveJobQuestionnaire() {\r\n this.isJobEdited = false\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save!', '')\r\n return\r\n }\r\n\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n\r\n this.data.Questionnaire = this.dynamicArray\r\n Common.activeJob.Questionnaire = this.dynamicArray\r\n this.jobService.AddQuestionnaire(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job questionnaire successfully saved.', '')\r\n this.jobAdded.emit(6)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n this.notifyService.showError('Could not save!' + err, '')\r\n return\r\n },\r\n () => console.log()\r\n )\r\n }\r\n questionTypeSelected(item: string, i: number) {\r\n this.isQuestionInputShow = true\r\n this.questionTypes.forEach((item, index) => {\r\n item.isActive = i === index ? true : false\r\n })\r\n this.questionType = item\r\n this.isActiveIndex = i\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n editQuestionHandler(index) {\r\n this.isQuestionInputShow = true\r\n this.editQuestion = true\r\n this.editQuestionIndex = index\r\n if (this.dynamicArray[index].QuestionTypeId === 2) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.dynamicArray[index].Question)\r\n this.questionType = 'Line Text'\r\n } else if (this.dynamicArray[index].QuestionTypeId === 4) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.dynamicArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.dynamicArray[index].Options)\r\n this.questionType = 'Single Select'\r\n } else {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.dynamicArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.dynamicArray[index].Options)\r\n this.questionType = 'Multi Select (Checkboxes)'\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n Add Questionnaire\r\n \r\n \r\n\r\n
\r\n Choose type of Question: \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Enter question\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Enter question\r\n \r\n \r\n
\r\n
\r\n \r\n Enter Options separate by ,\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Enter question\r\n \r\n \r\n
\r\n
\r\n \r\n Enter Options separate by ,\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
    0\" class=\"question-list\">\r\n
  1. \r\n {{i+1}}\r\n
    \r\n
    \r\n
    \r\n {{question.Question}}\r\n \"Edit\r\n
    \r\n
    \r\n {{option}}\r\n
    \r\n
    \r\n {{option}}\r\n
    \r\n
    \r\n \r\n
    \r\n \"LineLine Text\r\n \"SingleSingle Select\r\n \"MultiMulti Select (Checkboxes)\r\n \r\n
    \r\n
    \r\n
  2. \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this question?\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { NgModule } from '@angular/core'\r\nimport { RouterModule, Routes } from '@angular/router'\r\nimport { AuthGuard } from '../guards/auth.guard'\r\nimport { JobListComponent } from './job-list/job-list.component'\r\nimport { JobDialogComponent } from './job-dialog/job-dialog.component'\r\nimport { ADD_JOB_PATH, ADD_PATH } from '../constants/page-path'\r\nimport { IsCanAccessPageGuard } from '../guards/is-can-access-page.guard'\r\nimport { JobAddComponent } from './job-add/job-add.component'\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: JobListComponent,\r\n children: [],\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${ADD_PATH}`,\r\n component: JobDialogComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n {\r\n path: `${ADD_JOB_PATH}`,\r\n component: JobAddComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n {\r\n path: `${ADD_JOB_PATH}/:id`,\r\n component: JobAddComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n }\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class JobRoutingModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { FormArray, FormControl } from '@angular/forms'\r\nimport { map, startWith } from 'rxjs/operators'\r\nimport { Observable } from 'rxjs'\r\nimport { SkillLevel, SkillName, iJob } from 'src/app/models/job.model'\r\nimport { FormBuilder, FormGroup } from '@angular/forms'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { iJobSkill, iSkills } from 'src/app/models/job.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n\r\n@Component({\r\n selector: 'job-skills',\r\n templateUrl: './job-skills.component.html',\r\n styleUrls: ['./job-skills.component.scss'],\r\n})\r\nexport class JobSkillsComponent implements OnInit {\r\n public loading = false\r\n i = 0\r\n isEdit = false\r\n jobForm: FormGroup\r\n addSkill: boolean = false\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n dynamicArray: Array = []\r\n newDynamic: any = {}\r\n skillNames: iSkills[]\r\n job: iJob = {}\r\n skillName: string = ''\r\n experience: number\r\n required: boolean = false\r\n SkillLevels: SkillLevel[]\r\n isSkillNameInvalid: boolean = false\r\n isSkillExperienceInvalid: boolean = false\r\n test1 = 1\r\n displayedColumns: any[]\r\n JobSkillDatasource: iJobSkill[]\r\n isExperienceCountInvalid: boolean = false\r\n isExperienceNull: boolean = false\r\n isSkillValid: boolean = false\r\n data: iJob\r\n requiredForm = this.formBuilder.group({\r\n required: false,\r\n })\r\n filteredSkill: Observable\r\n skillCtrl = new FormControl()\r\n skills: any = []\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n editJobForm: FormGroup\r\n editArray: iJobSkill[]\r\n prevSkills: any\r\n matcher = new CustomErrorStateMatcher()\r\n\r\n isJobEdited: boolean = false\r\n @Input() events: Observable\r\n @Output() isChangeEdited = new EventEmitter()\r\n isReqSkillPresent: boolean = false\r\n deleteQuestionIndex: any\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.filteredSkill = this.skillCtrl.valueChanges.pipe(\r\n startWith(''),\r\n map((s) => (s ? this._filterSkill(s) : this.skills.slice()))\r\n )\r\n }\r\n onSearchKeyPressed(data): void {\r\n if (data.length > 0) {\r\n this.jobService.getSkills(data).subscribe((res) => {\r\n this.skills = res as SkillName[]\r\n })\r\n }\r\n }\r\n applyFilterSkill(filterValue, index: number) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n\r\n if (filterValue.length > 0) {\r\n this.jobService.getSkills(filterValue).subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n })\r\n } else {\r\n this.isSkillNameInvalid = true\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.jobForm = this.formBuilder.group({\r\n required: false,\r\n })\r\n\r\n this.editJobForm = this.formBuilder.group({\r\n editSkillsForm: this.formBuilder.array([]),\r\n })\r\n\r\n if (Common.lookUp != null) {\r\n this.SkillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'SkillLevelID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n }\r\n\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n if (this.job.JobId > 0) {\r\n this.BindRequiredSkill(this.job.JobId)\r\n } else {\r\n this.dynamicArray = Common.JobKeywords.ReqSkills\r\n }\r\n }\r\n }\r\n\r\n _filterSkill(name: string) {\r\n const filterValue = name.toLowerCase()\r\n return this.skills.filter((option) => option.toLowerCase().includes(filterValue))\r\n }\r\n\r\n BindRequiredSkill(jobid) {\r\n this.jobService.GetJobSkills(jobid).subscribe(\r\n (res) => {\r\n this.JobSkillDatasource = res as iJobSkill[]\r\n if (res == null || this.JobSkillDatasource.length == 0) {\r\n if (Common.JobKeywords != null) {\r\n if (Common.JobKeywords.ReqSkills != null) this.dynamicArray = Common.JobKeywords.ReqSkills\r\n }\r\n } else {\r\n this.dynamicArray = this.JobSkillDatasource\r\n }\r\n },\r\n (err: any) => {\r\n console.log('Error while getiing Skills', err)\r\n }\r\n )\r\n }\r\n experienceChange(event) {\r\n \r\n let val = parseInt(event.target.value)\r\n let elementId: string = event.target.attributes.id.value\r\n let index = elementId.substring(elementId.indexOf('-') + 1, elementId.length)\r\n let skill: any = document.getElementById('skillLevelId-' + index)\r\n\r\n if (val < 1) {\r\n skill.setValue(this.SkillLevels[0].Value)\r\n } else if (val >= 1 && val < 5) {\r\n skill.setValue(this.SkillLevels[1].Value)\r\n } else {\r\n skill.setValue(this.SkillLevels[2].Value)\r\n }\r\n }\r\n\r\n btnSaveSkill() {\r\n this.job = Common.activeJob\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Skills could not save!', '')\r\n return\r\n }\r\n let skillCount = 0\r\n for (let index = 0; index < this.dynamicArray.length; index++) {\r\n if (this.dynamicArray[index].SkillName != '' && this.dynamicArray[index].MinimumExperience != 0) {\r\n skillCount++\r\n }\r\n }\r\n if (skillCount < 1) {\r\n this.notifyService.showWarning('Minimum one Required skill should be added', '')\r\n return\r\n }\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n this.data.JobSkills = this.dynamicArray\r\n this.checkForReqSkill(this.dynamicArray)\r\n if (this.isReqSkillPresent) {\r\n this.loading = true\r\n this.jobService.AddJobSkill(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job skills successfully saved.', '')\r\n this.jobAdded.emit(4)\r\n this.loading = false\r\n this.previousNext.emit(StepperButtonType.Next)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skills could not save!', '')\r\n\r\n return\r\n }\r\n )\r\n } else {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n }\r\n }\r\n saveEditedSkill() {\r\n this.isEdit = false\r\n }\r\n saveSkillBtnHandler() {\r\n this.isJobEdited = false\r\n this.isChangeEdited.emit(this.isJobEdited)\r\n this.isSkillValid = this.experience > 0 && this.skillName.trim().length > 0 ? true : false\r\n if (this.isSkillValid) {\r\n if (this.dynamicArray.length > 0) {\r\n if (!this.dynamicArray.some((item) => item.SkillName === this.skillName)) {\r\n this.isSkillValid = false\r\n this.newDynamic = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.experience,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.required,\r\n SkillName: this.skillName,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n } else {\r\n this.notifyService.showError(\r\n 'This skill already exists in the list. Please select a different skill',\r\n ''\r\n )\r\n }\r\n } else {\r\n this.newDynamic = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.experience,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.required,\r\n SkillName: this.skillName,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n }\r\n } else {\r\n if (this.skillName.trim().length <= 0) {\r\n this.notifyService.showError('Skill Name cannot be empty. Please enter valid skill', '')\r\n return\r\n } else {\r\n this.notifyService.showError('Experience cannot be less than 1. Please enter valid experience', '')\r\n return\r\n }\r\n }\r\n\r\n // }\r\n this.skillName = ''\r\n this.experience = null\r\n this.required = false\r\n this.addSkill = false\r\n }\r\n editSkill() {\r\n this.isEdit = true\r\n this.addSkill = true\r\n this.bindEditSkillsFormData()\r\n }\r\n\r\n bindEditSkillsFormData() {\r\n let formGroup\r\n this.dynamicArray.forEach((item) => {\r\n formGroup = this.createEditSkillForm()\r\n formGroup.patchValue(item)\r\n })\r\n }\r\n\r\n createEditSkillForm() {\r\n return this.formBuilder.group({\r\n editSkillName: [],\r\n editSkillExperince: [],\r\n isEditSkillRequired: [],\r\n })\r\n }\r\n\r\n get editSkillsFormArray() {\r\n return this.editJobForm.get('editSkillsForm')\r\n }\r\n getEditGroup(index) {\r\n return this.editSkillsFormArray.at(index)\r\n }\r\n\r\n addRow() {\r\n if (this.experience && this.skillName) {\r\n this.isEdit = false\r\n this.addSkill = true\r\n this.newDynamic = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.experience,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.required,\r\n SkillName: this.skillName,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n this.skillName = ''\r\n this.experience = null\r\n this.required = false\r\n return true\r\n } else {\r\n this.notifyService.showError('Skill Name & Experience is Required', '')\r\n }\r\n }\r\n removeRow(index) {\r\n this.dynamicArray.splice(index, 1)\r\n this.skillName = ''\r\n this.experience = null\r\n this.required = false\r\n this.addSkill = false\r\n this.dialog.closeAll()\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.deleteQuestionIndex = i\r\n }\r\n\r\n applyFilterExperince(event: any, index) {\r\n this.isExperienceNull = event == null || event == '' ? true : false\r\n if (event !== null || event !== '') {\r\n this.isExperienceNull = false\r\n this.isExperienceCountInvalid = event > 0 ? false : true\r\n }\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n checkForReqSkill(skillArr) {\r\n skillArr.forEach((item) => {\r\n if (item.Required) {\r\n this.isReqSkillPresent = true\r\n return\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n \r\n Professional Skills\r\n
\r\n \r\n Required:\r\n
\r\n \r\n Preferred:\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ dynamic.SkillName }} ({{ dynamic.Experience }} Yrs)\r\n clear\r\n \r\n \r\n 0 && !isEdit\"\r\n class=\"add-skill-btn\"\r\n mat-raised-button\r\n matTooltip=\"Edit Skills\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"editSkill()\"\r\n >\r\n Edit Skills\r\n \r\n \r\n
\r\n
0 && isEdit\">\r\n
\r\n
\r\n
\r\n
\r\n Skill Name*\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n Please enter valid skill name\r\n \r\n
\r\n
\r\n Experience*\r\n \r\n \r\n Please enter value grater than Zero\r\n Experience is required\r\n \r\n
\r\n\r\n
\r\n
\r\n Required\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Skill Name*\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Experience*\r\n \r\n \r\n Please enter value grater than Zero\r\n Experience is required\r\n \r\n
\r\n\r\n
\r\n
\r\n Required\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this skill?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { Component, ElementRef, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'\r\nimport { Subject, Subscription, combineLatest } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common } from '../../common/common'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { ThemePalette } from '@angular/material/core'\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iDbResult, iJobValidationType, iMenuItem, iStatus } from 'src/app/models/common.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { map, takeUntil, tap } from 'rxjs/operators'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { JobCandidateTab, JobTabsType } from 'src/app/enums/jobCandidate'\r\nimport { JOB_EDIT_ACTION, JOB_VIEW_ACTION } from 'src/app/enums/userActions'\r\nimport { TranStatusSuccess } from 'src/app/models/cloneJob.model'\r\nimport { format } from 'date-fns'\r\n@Component({\r\n selector: 'job-tabs',\r\n templateUrl: './job-tabs.component.html',\r\n styleUrls: [\r\n './job-tabs.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobTabsComponent implements OnInit, OnDestroy {\r\n color: ThemePalette = 'primary'\r\n mode: ProgressSpinnerMode = 'determinate'\r\n value = 80\r\n diameter = 20\r\n isCandidateCardView$ = combineLatest([this.commonService.isCandidateCardView$]).pipe(map(([value]) => ({ value })))\r\n\r\n noLogoFilePath: string = 'assets/img/Leap-Tiger_Icons/card-icons/No-image.svg'\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n subscribe: Subscription\r\n activeJob = Common.activeJob\r\n iShowUpload: boolean = false\r\n activeTab = 0\r\n disableTab: boolean = false\r\n showTab: boolean = false\r\n job: iJob = {} as iJob\r\n editJobDetails = Common.editJobDetails\r\n editJobDesc = false\r\n isLocationShow: boolean = this.activeJob?.WorkOptionId != WorkOption.Remote\r\n jobValidation: iJobValidationType[] = []\r\n toolBarItems: iMenuItem[] = []\r\n menu: iMenuItem\r\n selectedStatusId: number\r\n selectedReasonId: number\r\n selectedReason: string\r\n wfStatus: iStatus[] = []\r\n objId: number\r\n objTypeId: number\r\n baseFilePath: Promise\r\n loading: boolean = false\r\n destroy$: Subject = new Subject()\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobViewAction = JOB_VIEW_ACTION\r\n terminationDate: string | Date\r\n jobClosedFromDate: string | Date\r\n jobId: number\r\n constructor(\r\n private jobService: JobService,\r\n public dialog: MatDialog,\r\n public authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private router: Router,\r\n private _activatedRouter: ActivatedRoute\r\n ) {}\r\n private subscription: Subscription\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData.subscribe((messageConsultantView: any) => {\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.job = Common.activeJob ? Common.activeJob : messageConsultantView\r\n this.jobId = messageConsultantView.JobId\r\n this.getStatuses()\r\n this.setToolBarItems()\r\n this.getJobValidation() // need to fetch validation of latest job which is in view\r\n }\r\n const ACTIVE_TAB = this._activatedRouter.snapshot.queryParamMap.get('activeTab')\r\n\r\n if (ACTIVE_TAB == JobCandidateTab.Navigate_Job_Candidate_tab) {\r\n this.activeTab = JobTabsType.Candidate_Tab\r\n } else if (messageConsultantView?.activeTab) {\r\n this.activeTab = JobTabsType.Candidate_Tab\r\n } else {\r\n this.activeTab = JobTabsType.Job_Edit_Tab\r\n }\r\n })\r\n\r\n if (Common.activeJob != null) {\r\n this.iShowUpload = true\r\n this.disableTab = false\r\n }\r\n\r\n this.baseFilePath = this.commonService.getAppSettings().then((data) => {\r\n this.baseFilePath = data.filePath\r\n })\r\n this.commonService.loading$.pipe(takeUntil(this.destroy$)).subscribe((loading) => {\r\n this.loading = loading\r\n })\r\n this.getJobStatusChange()\r\n this.subscribeToLoadingTrigger()\r\n this._subscribeToJobValidationTrigger()\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n }\r\n updateActiveJob(event) {\r\n this.job = event\r\n if (this.job.WorkOptionId == WorkOption.Remote) this.isLocationShow = false\r\n else this.isLocationShow = true\r\n }\r\n\r\n getJobStatusChange() {\r\n this.jobService.jobStatusValueChange$.pipe(takeUntil(this.destroy$)).subscribe((statusId) => {\r\n this.selectedStatusId = Common?.activeJob?.JobStatusID\r\n this.job.JobStatus = Common?.activeJob?.JobStatus\r\n this.job.JobStatusID = Common?.activeJob?.JobStatusID\r\n this.setJobStatues()\r\n })\r\n }\r\n getStatuses() {\r\n this.commonService\r\n .getStatus()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.wfStatus = res as iStatus[]\r\n })\r\n }\r\n onJobStatusChange(mnuItem) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n if (this.menu.MenuCode == Common.enumJobStatusStrings.JOB_OPEN) {\r\n if (this.jobValidation?.length > 0) {\r\n let reqColumns = this.jobValidation\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n 'Can not change to Open, Please fill required fields: ' + reqColumns,\r\n 'Job Status'\r\n )\r\n this.setToolBarItems()\r\n return\r\n }\r\n }\r\n if (this.menu.MenuCode != Common.enumJobStatusStrings.JOB_OPEN || this.jobValidation?.length == 0) {\r\n const dialogRef = this.dialog.open(ActionDialogComponent, {\r\n data: { consultantjob: null, menu: this.menu },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == null || result == undefined) {\r\n this.setToolBarItems()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n if (result.jobClosedFromDate && this.isValidDate(new Date(result.jobClosedFromDate))) {\r\n this.jobClosedFromDate = format(new Date(result.jobClosedFromDate), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n this.JobProcessWorkFlow()\r\n }\r\n })\r\n }\r\n }\r\n\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n\r\n getJobValidation() {\r\n const JOB_ID = Common?.activeJob?.JobId ? Common?.activeJob?.JobId : this.jobId\r\n this.jobService\r\n .GetJobValidation(JOB_ID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n this.jobValidation = result as iJobValidationType[]\r\n })\r\n }\r\n\r\n JobProcessWorkFlow() {\r\n var ljob: iJob = Common.activeJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n\r\n let comment = this.selectedReasonId\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : this.menu.MenuName\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n tap(() => this._getJobById(Common.activeJob.JobId))\r\n )\r\n .subscribe((result) => {\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n if (Common.enumJobStatuses.JOB_DELETE == nextStatusID) {\r\n this.notifyService.showSuccess('Record deleted successfully', 'Job Delete')\r\n this.router.navigate(['jobs']).then(() => {\r\n window.location.reload()\r\n })\r\n return\r\n }\r\n\r\n if (this.menu.MenuCode === Common.enumJobStatusStrings.JOB_CLOSE) {\r\n this._updateObjectStatusDate(\r\n this.job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Number(nextStatusID),\r\n this.selectedReason,\r\n this.authService.userInfo.userID,\r\n this.jobClosedFromDate\r\n )\r\n return\r\n }\r\n\r\n if ('JOB_CLONE' == this.menu.MenuCode) {\r\n this.reopenJob()\r\n return\r\n } else if (nextStatusID == undefined || nextStatusID == 0 || nextStatusID == 'Failed') {\r\n this.notifyService.showError('Failed: Unable to change the status!', 'Job Status')\r\n } else {\r\n this.job.JobStatusID = Number(nextStatusID)\r\n let statusname = this.wfStatus\r\n .filter((item) => item.StatusID === Number(nextStatusID))\r\n .map((x) => x.Name)\r\n\r\n Common.activeJob.JobStatusID = Number(nextStatusID)\r\n Common.activeJob.JobStatus = statusname.length > 0 ? statusname.toString() : this.menu.MenuName\r\n this.commonService.setToolBarItems(this.menu)\r\n\r\n this.notifyService.showSuccess(\r\n 'Job status successfully changed to ' + Common.activeJob.JobStatus,\r\n 'Job'\r\n )\r\n }\r\n this.setToolBarItems()\r\n })\r\n }\r\n reopenJob() {\r\n this.loading = true\r\n let cloneJobObj = {\r\n jobId: Common.activeJob.JobId,\r\n userId: this.authService.userInfo.userID,\r\n }\r\n this.jobService\r\n .reopenJobStatus(cloneJobObj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result.TranStatus === TranStatusSuccess) {\r\n this.loading = false\r\n this.jobService.setJobCloneStatus({ ...result })\r\n this.notifyService.showSuccess('Job Cloned Successfully', 'Job Id' + ' ' + result.JobId)\r\n this.layoutService.closeQuickpanel()\r\n this.router.navigate(['/jobs/addJob', result.JobId])\r\n } else {\r\n this.notifyService.showError('Error While Cloning Job ', 'Job')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while Cloning Job', 'Job')\r\n }\r\n )\r\n }\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n result\r\n })\r\n }\r\n setJobStatues() {\r\n this.toolBarItems = this.commonService?.menuItems?.filter(\r\n (item) =>\r\n item.ComponentID === Common.enumComponent.Job &&\r\n item.MenuTypeID == Common.enumMenuType.TOOLBAR &&\r\n item.StatusID == this.job.JobStatusID &&\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n this.toolBarItems?.unshift({\r\n MenuID: -1,\r\n PageID: -1,\r\n ComponentID: Common.enumComponent.Job,\r\n ComponentCode: null,\r\n ComponentName: null,\r\n ComponentDescription: null,\r\n MenuItemID: -1,\r\n MenuCode: null,\r\n MenuName: this.job.JobStatus,\r\n MenuDescription: null,\r\n MenuFunction: null,\r\n MenuUrl: null,\r\n MenuIcon: null,\r\n MenuTypeID: null,\r\n MenuType: null,\r\n ParentMenuItemID: null,\r\n RoleID: null,\r\n RoleCode: null,\r\n RoleName: null,\r\n RoleDescription: null,\r\n StatusID: this.job.JobStatusID,\r\n StatusCode: null,\r\n StatusName: this.job.JobStatus,\r\n StatusDescription: null,\r\n })\r\n this.selectedStatusId = this.job.JobStatusID\r\n }\r\n setToolBarItems() {\r\n if (\r\n this.commonService?.menuItems == null ||\r\n this.commonService?.menuItems == undefined ||\r\n this.commonService?.menuItems?.length === 0\r\n ) {\r\n this.commonService\r\n .getMenuItems()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((data) => {\r\n this.commonService.menuItems = data\r\n this.setJobStatues()\r\n })\r\n } else {\r\n this.setJobStatues()\r\n }\r\n }\r\n\r\n jobCompleted(event) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n setActiveTab(event) {\r\n this.activeTab = event\r\n }\r\n onTabChanged($event) {\r\n let clickedIndex = $event.index\r\n this.activeTab = clickedIndex\r\n }\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.router.navigate(['/jobs'])\r\n }\r\n\r\n isCardOpen() {\r\n this.commonService.isCardExpandedSubject.next(true)\r\n }\r\n\r\n isCardClose() {\r\n this.commonService.isCardExpandedSubject.next(false)\r\n }\r\n\r\n subscribeToLoadingTrigger() {\r\n this.jobService.jobLoadingSubjectChange$.pipe(takeUntil(this.destroy$)).subscribe((isLoading) => {\r\n this.loading = isLoading\r\n })\r\n }\r\n\r\n private _subscribeToJobValidationTrigger() {\r\n this.jobService.jobValidationTrigger$.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n this.getJobValidation()\r\n })\r\n }\r\n\r\n private _updateObjectStatusDate(\r\n objectID: number,\r\n objectTypeId: number,\r\n statusID: number,\r\n comments: string,\r\n userID: number,\r\n jobClosedFromDate: string | Date\r\n ) {\r\n this.commonService\r\n .updateObjectStatusDate(objectID, objectTypeId, statusID, comments, userID, jobClosedFromDate)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job Status changed Successfully.', 'Job Status')\r\n },\r\n (error) => {\r\n this.notifyService.showSuccess('Error while changing Job Status.', 'Job Status')\r\n }\r\n )\r\n }\r\n\r\n private _getJobById(jobId: number) {\r\n this.loading = true\r\n this.jobService.getJob(jobId).subscribe({\r\n next: (job) => {\r\n this.loading = false\r\n Common.activeJob = job\r\n this.job = job\r\n this.setToolBarItems()\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n \r\n
\r\n Job Details\r\n \r\n clear\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title: {{ job?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n Job Code: {{ job?.JobCode | nullValueReplace }}\r\n
\r\n
\r\n Location Address: {{ job.Location?.City | nullValueReplace }},\r\n {{\r\n job.Location?.State | nullValueReplace\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Hiring Manager: {{ job.CompanyContact | nullValueReplace }}\r\n
\r\n
\r\n Client Name: {{ job?.CompanyName | nullValueReplace }}\r\n
\r\n
\r\n Zipcode: {{ job.Location?.ZipCode | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0 ? (job.FillRatio | number : '1.0-0') : 0\"\r\n >
\r\n Fill Ratio\r\n
\r\n
\r\n 0 ? (job.InterviewRatio | number : '1.0-0') : 0\"\r\n >
\r\n Interview Ratio\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n Job Status\r\n {{ toolBarItems[0].MenuName }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ mnuItem.MenuName }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, ViewEncapsulation, TemplateRef } from '@angular/core'\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms'\r\nimport { Common } from 'src/app/common/common'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { FilesTypes, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\n@Component({\r\n selector: 'job-upload',\r\n templateUrl: './job-upload.component.html',\r\n styleUrls: [\r\n './job-upload.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms],\r\n})\r\nexport class JobUploadComponent implements OnInit {\r\n maxFileSize = Common.maxJDFileSize\r\n maxChars = Common.maxJDCharacters\r\n chars = 0\r\n public loading = false\r\n model: iJob = {}\r\n fileContent: string = ''\r\n isFileUploaded: boolean = false\r\n file: any = null\r\n jobHTML: string = ''\r\n jobtxt: string = ''\r\n text = ``\r\n inputTextLength = 0\r\n isMaxCharValidationShown = false\r\n uploadBoxCont = document.getElementById('uploadBox')\r\n jdUploadInput = document.getElementById('jdUploadInput')\r\n form = new FormControl(this.text)\r\n @Output() formHandler: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n quillEditable: boolean = false\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {}\r\n validateFile(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (ext.toLowerCase() == 'doc' || ext.toLowerCase() == 'docx' || ext.toLowerCase() == 'pdf') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jobForm.get('jobDetails').valueChanges.subscribe((data) => {\r\n this.jobHTML = data == null ? '' : data\r\n this.jobtxt = this.htmlToPlaintext(data)\r\n })\r\n if (Common.activeJob) {\r\n this.jobForm.get('jobDetails').setValue(Common.activeJob?.JobDetails)\r\n this.inputTextLength = Common.activeJob?.JobDetails?.length\r\n }\r\n }\r\n htmlToPlaintext(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : ''\r\n }\r\n\r\n jobForm = this.formBuilder.group({\r\n jobDetails: ['', Validators.required],\r\n fileUploader: ['', Validators.compose([Validators.maxLength(512), Validators.minLength(2)])],\r\n })\r\n\r\n onPaste(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n var dlen = Number(clipboardData.getData('text').length)\r\n if (dlen == 0) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n let content = clipboardData.getData('text').slice(0, this.maxChars)\r\n this.model = this.jobForm.value\r\n this.model.JobDetails = content\r\n this.model.JobHTML = content\r\n }\r\n\r\n public onChange(fileList: any): void {\r\n this.jobForm.get('jobDetails').setValue('')\r\n this.file = fileList[0]\r\n if (this.file.size > 6000000) {\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', '')\r\n this.file = null\r\n return\r\n }\r\n if (!this.validateFile(fileList[0].name)) {\r\n this.notifyService.showError('Selected file format is not supported!', '')\r\n this.file = null\r\n return\r\n }\r\n }\r\n\r\n uploadJob() {\r\n this.dialog.closeAll()\r\n this.loading = true\r\n let fileReader: FileReader = new FileReader()\r\n let self = this\r\n fileReader.onloadend = function (x) {\r\n self.fileContent = fileReader.result.toString()\r\n }\r\n fileReader.readAsText(this.file)\r\n const formData = new FormData()\r\n formData.append(this.file.name, this.file)\r\n this.jobService.uploadJobFile(formData).subscribe(\r\n (event) => {\r\n if (event) {\r\n var js = {}\r\n js = event\r\n self.jobForm.get('jobDetails').setValue(this.jobtxt)\r\n this.jobtxt = js['jobtxt']\r\n this.jobHTML = js['jobHTML']\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n self.model.JobDetails = self.jobForm.get('jobDetails').value\r\n if (this.model.JobHTML !== undefined && this.model.JobHTML !== null) {\r\n if (this.model.JobHTML.length > 0) Common.activeJob = this.model\r\n this.notifyService.showSuccess('Successfully uploaded!', '')\r\n this.quillEditable = true\r\n this.loading = false\r\n this.file = null\r\n this.isFileUploaded = true\r\n this.onSubmit()\r\n return\r\n } else {\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.loading = false\r\n }\r\n\r\n this.loading = false\r\n return\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n }\r\n )\r\n }\r\n\r\n dialogCancelHandler() {\r\n this.dialog.closeAll()\r\n this.file = null\r\n }\r\n\r\n onKeyUpEvent(event: any) {\r\n const inputType = event.inputType\r\n if (inputType === 'insertFromDrop' || inputType === 'insertFromPaste') {\r\n if (event.target.children.length) {\r\n const hadImage = this.isInputImage(event.target.children)\r\n if (hadImage) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n }\r\n }\r\n\r\n let inputValue = this.htmlToPlaintext(event.target.innerHTML)\r\n this.inputTextLength = inputValue.length\r\n if (this.inputTextLength > this.maxChars && !this.isMaxCharValidationShown) {\r\n this.isMaxCharValidationShown = true\r\n this.notifyService.showWarning('You have reached your maximum limit of characters allowed', '')\r\n }\r\n if (this.inputTextLength <= this.maxChars) {\r\n this.isMaxCharValidationShown = false\r\n }\r\n let content = inputValue.slice(0, this.maxChars)\r\n this.jobtxt = content\r\n this.jobHTML = content == null ? '' : content\r\n }\r\n\r\n onSubmit() {\r\n if (this.jobHTML.length == 0) {\r\n this.jobHTML = this.jobtxt\r\n }\r\n if (this.jobtxt.length > 0) {\r\n if (this.inputTextLength > this.maxChars) {\r\n this.notifyService.showError('Please reduce the JD character count to upto 25000 characters', '')\r\n } else {\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n Common.activeJob = this.model\r\n this.ParseAndNext(this.model)\r\n }\r\n } else {\r\n this.formHandler.emit(0)\r\n this.jobAdded.emit(0)\r\n }\r\n }\r\n\r\n ParseAndNext(obj) {\r\n this.loading = true\r\n this.jobService.GetParseJobKeyword(obj).subscribe(\r\n (SearchResult) => {\r\n Common.JobKeywords = SearchResult\r\n this.loading = false\r\n this.formHandler.emit(0)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(0)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!' + err, '')\r\n }\r\n )\r\n }\r\n\r\n fileInfo: string\r\n onFileSelect(input: HTMLInputElement): void {\r\n function formatBytes(bytes: number): string {\r\n const UNITS = ['Bytes', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\r\n const factor = 1024\r\n let index = 0\r\n\r\n while (bytes >= factor) {\r\n bytes /= factor\r\n index++\r\n }\r\n return `${parseFloat(bytes.toFixed(2))} ${UNITS[index]}`\r\n }\r\n const file = input.files[0]\r\n this.fileInfo = `${file.name} (${formatBytes(file.size)})`\r\n }\r\n\r\n openUploadFileDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n skipButtonHandler() {\r\n this.previousNext.emit(StepperButtonType.Next)\r\n }\r\n\r\n isInputImage(children) {\r\n let hadImage = false\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i]\r\n if (child.tagName === FilesTypes.IMG.toUpperCase()) {\r\n hadImage = true\r\n continue\r\n }\r\n if (child.children.length) {\r\n hadImage = this.isInputImage(child.children)\r\n if (hadImage) {\r\n break\r\n }\r\n }\r\n }\r\n return hadImage\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n \r\n General\r\n \r\n \r\n
\r\n
\r\n
\r\n

Cut and Paste Job Details

\r\n
\r\n \r\n \r\n
\r\n

\r\n Characters Remaining: {{ inputTextLength <= maxChars ? 25000 - inputTextLength : 0 }}/{{\r\n maxChars\r\n }}\r\n

\r\n

maxChars\">\r\n Characters limit crossed\r\n

\r\n
\r\n
\r\n \r\n OR\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Upload Job Details

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Cancel\r\n \r\n 0 || isFileUploaded\"\r\n class=\"small-primary-button\"\r\n mat-raised-button\r\n (click)=\"onSubmit()\"\r\n >\r\n Save & Next\r\n \r\n \r\n Skip\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n Upload Job Description\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Router } from '@angular/router'\r\nimport { Overlay } from '@angular/cdk/overlay'\r\nimport {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n TemplateRef,\r\n HostBinding,\r\n HostListener,\r\n ViewEncapsulation,\r\n} from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport {\r\n iJob,\r\n iJobSkill,\r\n iJobEducation,\r\n iJobCertification,\r\n iJobQuestionnaire,\r\n LegalType,\r\n BackgroundCheck,\r\n InterviewType,\r\n JobType,\r\n User,\r\n iJobLegalType,\r\n Skill,\r\n} from 'src/app/models/job.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { EMPTY, Subject, Subscription, forkJoin, of } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { JobDialogComponent } from '../job-dialog/job-dialog.component'\r\nimport { JobDialogTypes } from 'src/app/enums/jobDialogType'\r\nimport { iCategory, iKeyValue } from 'src/app/models/common.model'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { catchError, first, map, switchMap, takeUntil } from 'rxjs/operators'\r\nimport { LocationType } from 'src/app/enums/locationType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { JOB_ADD_ACTION, JOB_DELETE_ACTION, JOB_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport { Notes, iNotes } from 'src/app/models/notes.model'\r\nimport { NotesType } from 'src/app/enums/notesType'\r\n\r\n@Component({\r\n selector: 'job-view-description',\r\n templateUrl: './job-view-description.component.html',\r\n styleUrls: [\r\n './job-view-description.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobViewDescriptionComponent implements OnInit, OnDestroy {\r\n selectedCertifications = []\r\n selectedEducations = []\r\n categoriesForJob: iCategory[]\r\n industriesForJob: iCategory[]\r\n specializedSkillsForJob: Skill[]\r\n experienceLevelsForJob = []\r\n jobSkillData: iJob = Common.activeJob\r\n legalTypesRespnse: iJobLegalType[] = []\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobDeleteAction = JOB_DELETE_ACTION\r\n jobAddAction = JOB_ADD_ACTION\r\n private _destroy$: Subject = new Subject()\r\n jobIntakeCallNoteList: Notes[] = []\r\n isShowAllNotes: boolean = false\r\n\r\n constructor(\r\n public overlay: Overlay,\r\n private jobService: JobService,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n private roleService: RoleService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n public dialog: MatDialog\r\n ) {}\r\n private subscription: Subscription\r\n public loading = false\r\n job: iJob = {}\r\n activeJob = { ...Common.activeJob } // Ensures a new object reference\r\n model: iJob = {}\r\n editFlag: boolean = false\r\n maxChars = 15000\r\n jobDetails = {\r\n JobType: '',\r\n jobexperience: '',\r\n City: '',\r\n State: '',\r\n Positions: 0,\r\n }\r\n role = ''\r\n optionSelected: string = ''\r\n isChangeDetected: boolean = false\r\n jobStatus = Common.enumJobStatuses\r\n jobLocation: iLocation\r\n\r\n selectedLocationId: number\r\n selectedIndustryId: number\r\n selectedCategoryId: number\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedMspContactId: number\r\n contactEmail: string\r\n deleteIconSrc = Common.RedDeleteIcon\r\n typeOfItemToBeDeleted: string\r\n indexOfItemToBeDeleted: number\r\n\r\n @Input() showEditButton = false\r\n @Output() valueChange = new EventEmitter()\r\n isJobDetailsInEditMode: boolean = false\r\n isEditMode: boolean = true\r\n showBillRate: boolean\r\n showSalary: boolean\r\n jobCity = []\r\n professionalSkills: Array = [] as iJobSkill[]\r\n softSkills: Array = [] as iJobSkill[]\r\n reqSkillCount: number = 0\r\n educationData: iJob\r\n jobForm: FormGroup\r\n educationArray: Array = []\r\n certificationArray: Array = []\r\n skillLevels: string\r\n certifications: string\r\n education: string\r\n jobEducationCertificationData: iJob\r\n questioneArray: Array = []\r\n public editSubject: Subject = new Subject()\r\n public isJobDetailsFormEditedSubject: Subscription\r\n public IsAddJobPermission: boolean\r\n\r\n legaltypes: LegalType[]\r\n interviewtypes: InterviewType[]\r\n backgroundchecks: BackgroundCheck[]\r\n jobtypes: JobType[]\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n salaryDisplayOptionTypes: iKeyValue[]\r\n detailsWithoutApi = []\r\n isZipCodeRequired: boolean = false\r\n\r\n setPermission() {\r\n this.roleService\r\n .getPermissionByRole(this.authService.userInfo.roles[0].roleID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n let addJobPermit = data.filter(\r\n (item) =>\r\n item.ComponentID == Common.enumComponent.Job &&\r\n item.MenuCode == 'JOB_EDIT' && // TODO: add Enum for add job -\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n if (addJobPermit?.length > 0) this.IsAddJobPermission = true\r\n })\r\n }\r\n\r\n public get jobDialogType(): typeof JobDialogTypes {\r\n return JobDialogTypes\r\n }\r\n\r\n public get workOption(): typeof WorkOption {\r\n return WorkOption\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPermission()\r\n this.getLegalTypes()\r\n this.setExperienceLevel()\r\n this.getSalaryOptions()\r\n this.jobForm = this.formBuilder.group({\r\n JobTypeId: ['', Validators.required],\r\n })\r\n this.subscription = this.commonService.getComponentData\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((messageConsultantView) => {\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.loading = true\r\n this.jobSkillData = Common.activeJob\r\n this.job = { ...Common.activeJob } // Create a new reference\r\n if (Common.activeJob) {\r\n this.activeJob = { ...Common.activeJob } // Ensure reactivity\r\n this._getNotesDetails()\r\n }\r\n this.selectedLocationId = Number(this.job?.LocationID)\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n }\r\n if (this.job.JobId > 0) {\r\n this.getAllDataForView()\r\n if (this.job.JobTypeID == Common.enumJobContractType.JT_C2C) {\r\n this.showSalary = true\r\n } else if (this.job.JobTypeID == Common.enumJobContractType.JT_PERM) {\r\n this.showBillRate = true\r\n }\r\n this.loading = false\r\n }\r\n }\r\n this.isShowAllNotes = false\r\n this.jobIntakeCallNoteList = []\r\n this._getNotesDetails()\r\n })\r\n\r\n if (Common.lookUp == null) {\r\n this.commonService\r\n .getLookupValue()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n },\r\n (err: any) => {}\r\n )\r\n } else {\r\n this.experienceLevelsForJob = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n }\r\n\r\n this.jobService\r\n .GetJobCategory()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.categoriesForJob = res as iCategory[]\r\n })\r\n this.jobService\r\n .GetJobIndustry()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.industriesForJob = res as iCategory[]\r\n })\r\n this._subscribeToCandidateNotesSubject()\r\n }\r\n\r\n onApplyclick() {\r\n this.router.navigate(['/candidates/add'])\r\n }\r\n\r\n getAllDataForView() {\r\n forkJoin({\r\n requiredSkills: this.BindRequiredSkill(this.job.JobId),\r\n education: this.bindEducation(this.job.JobId),\r\n certifications: this.bindCertification(this.job.JobId),\r\n questionnaire: this.bindQuestionnaire(this.job.JobId),\r\n recruiters: this.getRecruiters(this.job.CompanyId),\r\n })\r\n .pipe(catchError((err) => EMPTY))\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(({ requiredSkills, education, certifications, questionnaire, recruiters }) => {\r\n this.professionalSkills = requiredSkills ?? []\r\n this.educationArray = education\r\n this.certificationArray = certifications\r\n this.questioneArray = questionnaire\r\n this.primaryRecruiters = recruiters\r\n })\r\n }\r\n\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job.PostedFor)\r\n })\r\n }\r\n getLegalTypes() {\r\n this.jobService\r\n .getLegalTypes()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.legalTypesRespnse = res as iJobLegalType[]\r\n })\r\n }\r\n\r\n setExperienceLevel() {\r\n if (Common.activeJob != null) {\r\n if (Common.activeJob.SkillLevelID == 182) {\r\n this.skillLevels = '0-3 years'\r\n } else if (Common.activeJob.SkillLevelID === 183) {\r\n this.skillLevels = '3-5 years'\r\n } else if (Common.activeJob.SkillLevelID === 184) {\r\n this.skillLevels = '5-8 years'\r\n } else if (Common.activeJob.SkillLevelID === 185) {\r\n this.skillLevels = 'More than 8 years'\r\n }\r\n }\r\n }\r\n\r\n onJobDescriptionEditHandler() {\r\n this.jobDetails.Positions = this.jobDetails.Positions\r\n Object.keys(this.jobDetails).map((item) => (Common.activeJob[item] = this.jobDetails[item]))\r\n this.jobService\r\n .AddJobDescription(Common.activeJob)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((result) => {\r\n if (result != null) {\r\n this.notifyService.showSuccess('Job details successfully saved.', 'Job Details')\r\n }\r\n })\r\n }\r\n\r\n BindRequiredSkill(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobSkills(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.professionalSkills = []\r\n this.softSkills = []\r\n let JobSkillDatasource = res as iJobSkill[]\r\n JobSkillDatasource.map((item) => {\r\n if (item.SkillTypeId == 152) {\r\n this.softSkills.push(item)\r\n } else {\r\n this.professionalSkills.push(item)\r\n }\r\n })\r\n this.reqSkillCount = 0\r\n this.professionalSkills?.map((item) => {\r\n if (item.Required) this.reqSkillCount++\r\n })\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n bindEducation(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobEducation(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.educationArray = res as iJobEducation[]\r\n this.education = this.educationArray.map((x) => x.EducationName).join(', ')\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n bindCertification(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobCertification(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.certificationArray = res as iJobCertification[]\r\n this.certifications = this.certificationArray.map((x) => x.CertificationName).join(', ')\r\n\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n bindQuestionnaire(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobQuestionnaire(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.questioneArray = res as iJobQuestionnaire[]\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n onJobTypeClick(jobtype) {\r\n this.jobDetails.JobType = jobtype\r\n }\r\n\r\n onJobExperienceClick(experience) {\r\n this.jobDetails.jobexperience = experience\r\n }\r\n\r\n onSelectedCityChange(city) {\r\n this.jobDetails.City = city\r\n }\r\n\r\n resetOption() {\r\n this.optionSelected = ''\r\n }\r\n\r\n applyFilterCity(city) {\r\n let stateCode = null\r\n city = city.trim()\r\n this.companyService\r\n .GetCitySearch(city, stateCode)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.jobCity = res\r\n })\r\n }\r\n newJobAdded(event) {\r\n if (event !== null) {\r\n this.job = Common.activeJob\r\n this.bindCertification(this.job.JobId)\r\n this.bindEducation(this.job.JobId)\r\n this.bindQuestionnaire(this.job.JobId)\r\n this.BindRequiredSkill(this.job.JobId)\r\n }\r\n }\r\n\r\n isChangeDetect(bool) {\r\n this.isChangeDetected = bool\r\n }\r\n\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((result) => {\r\n result\r\n })\r\n }\r\n\r\n saveJob(statusId) {\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n if (statusId == Common.enumJobStatuses.JOB_DRAFT) {\r\n this.notifyService.showSuccess('Job successfully saved.', 'Job')\r\n this.router.navigate(['/jobs'])\r\n return\r\n } else if (statusId == Common.enumJobStatuses.JOB_OPEN) {\r\n let vresult: any\r\n this.jobService\r\n .GetJobValidation(Common.activeJob.JobId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((result) => {\r\n vresult = result\r\n if (vresult.length > 0) {\r\n let reqColums = vresult\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n ' Can not change to Open, Please fill required fields: ' + reqColums,\r\n 'Job Status '\r\n )\r\n\r\n return\r\n } else {\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_OPEN\r\n Common.activeJob.JobStatus = 'Open'\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Common.enumJobStatuses.JOB_OPEN,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n this.notifyService.showSuccess('Job successfully saved.', 'Job')\r\n }\r\n })\r\n }\r\n } else {\r\n this.notifyService.showError('Could not save the Job!', 'Job ')\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.isEditMode = true\r\n Common.editJobDetails = false\r\n Common.editJobDesc = false\r\n Common.editOtherDetails = false\r\n Common.editEducations = false\r\n Common.editSkills = false\r\n Common.editQuestionnaire = false\r\n this._destroy$.next()\r\n this._destroy$.complete()\r\n }\r\n\r\n editDescription() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Description,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Description) {\r\n this.activeJob = { ...Common.activeJob } // Creates a new reference\r\n this.activeJob.Description =\r\n data?.formData?.Description == undefined ? null : data?.formData?.Description\r\n this.loading = true\r\n this.jobService\r\n .AddJobDescription(this.activeJob)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res != null) {\r\n Common.activeJob = { ...res }\r\n this.activeJob = { ...Common.activeJob }\r\n this.job = { ...this.activeJob }\r\n if (this.activeJob.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job description successfully saved.', '') // ToDO make 2000 as variable\r\n this.jobService.triggerToGetLatestJobValidation()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job description could not be saved!', '')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job description could not be saved!' + err, '')\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n editDetails() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Details,\r\n width: '1000px',\r\n industries: this.industriesForJob,\r\n experienceLevels: this.experienceLevelsForJob,\r\n categories: this.categoriesForJob,\r\n Location: this.job.Location,\r\n isZipCodeRequired: true,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Details) {\r\n this.loading = true\r\n this.model = Common.activeJob\r\n if (this.job.JobId != null) {\r\n this.model.JobId = this.job.JobId\r\n }\r\n this.model.JobCategoryID = this.categoriesForJob.filter(\r\n (category) => category.Name == data?.formData?.JobCategory\r\n )[0].CategoryID\r\n this.model.JobHTML = Common.activeJob.JobHTML\r\n this.model.JobDetails = Common.activeJob.JobDetails\r\n this.model.JobTitleName = data.formData.JobTitleName\r\n this.model.JobCode = data.formData.JobCode == undefined ? null : data.formData.JobCode\r\n this.model.CompanyName = data.formData.CompanyName == undefined ? null : data.formData.CompanyName\r\n this.model.CompanyContact =\r\n data.formData.CompanyContact == undefined ? null : data.formData.CompanyContact // this.ngCompany;\r\n this.model.Description = this.job.Description\r\n this.model.WorkOptionId = Number(\r\n data.formData.WorkOptionId == '' ? false : data.formData.WorkOptionId\r\n )\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.MinExperience = data?.formData?.MinExperience\r\n this.model.MaxExperience = data?.formData?.MaxExperience\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.LocationID =\r\n this.selectedLocationId == undefined || this.selectedLocationId == null\r\n ? 0\r\n : this.selectedLocationId\r\n this.model.CompanyId = data.formData?.CompanyId != null ? data.formData.CompanyId : 0\r\n this.model.CustomerContactId =\r\n data.formData?.CustomerContactId != null ? data.formData?.CustomerContactId : 0\r\n this.model.MspContactId = data?.selectedMspContactId === 0 ? 0 : data?.selectedMspContactId\r\n this.model.ContactEmail =\r\n this.contactEmail == undefined || this.contactEmail == null ? '' : this.contactEmail\r\n this.model.JobTypeID = Common.activeJob?.JobTypeID\r\n this.model.JobStatusID = Common.activeJob?.JobStatusID\r\n\r\n this.model.IndustryID =\r\n this.industriesForJob.filter((industry) => industry.Name == data?.formData?.IndustryName)[0]\r\n ?.CategoryID >= 0\r\n ? this.industriesForJob.filter(\r\n (industry) => industry.Name == data?.formData?.IndustryName\r\n )[0]?.CategoryID\r\n : null\r\n this.model.SpecializedSkill =\r\n data.formData.SpecializedSkill == null ? '' : data.formData.SpecializedSkill\r\n this.model.SpecializedSkillID =\r\n data.formData.SpecializedSkillID == null ? 0 : data.formData.SpecializedSkillID\r\n\r\n this.model.SkillLevel =\r\n data?.formData?.SkillLevel?.toString() != null ? data?.formData?.SkillLevel?.toString() : null\r\n\r\n this.model.SkillLevelID = this.experienceLevelsForJob.filter(\r\n (skillLevel) => skillLevel?.Key == data?.formData?.SkillLevel\r\n )[0]?.Value\r\n if (this.model.StartDate == undefined || this.model.StartDate == null) {\r\n this.model.StartDate = null\r\n }\r\n if (this.model.EndDate == undefined || this.model.EndDate.toString() == '') {\r\n this.model.EndDate = null\r\n }\r\n\r\n if (this.model.ExpiryDate == undefined || this.model.ExpiryDate.toString() == '') {\r\n this.model.ExpiryDate = null\r\n }\r\n if (this.model.JobStatusID == undefined || this.model.JobStatusID.toString() == '') {\r\n this.model.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n }\r\n if (this.model.JobId == undefined || this.model.JobId.toString() == '') {\r\n this.model.JobId = 0\r\n }\r\n this.model.SalaryDisplayTypeID = data?.formData?.SalaryDisplayTypeID\r\n this.jobService\r\n .AddJobDescription(this.model)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n this.activeJob = Common.activeJob\r\n Common.activeJob.JobHTML = this.model.JobHTML\r\n this.job = this.model = result\r\n if (data?.selectedMspContactId) {\r\n this.job.MspContact = data.selectedMspContactName\r\n }\r\n this.setExperienceLevel()\r\n let job: iJob = Common.activeJob\r\n this.jobLocation = job.Location\r\n if (job.JobId > 0) {\r\n if (data?.formData?.WorkOptionId != WorkOption.Remote) this.addLocation()\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.model.JobStatusID,\r\n '',\r\n this.authService.userInfo.userID\r\n ) // ToDO 3,2 - to Enum Values\r\n this.loading = false\r\n this.notifyService.showSuccess('Job details updated successfully.', '') // ToDO make 2000 as variable\r\n this.valueChange.emit(job)\r\n this.jobService.triggerToGetLatestJobValidation()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n addLocation() {\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n CommonData.activeLocation.ObjectId = this.job.JobId\r\n CommonData.activeLocation.ObjectTypeId = ObjectType.Job\r\n CommonData.activeLocation.LocationID = 0\r\n CommonData.activeLocation.LocationTypeID = LocationType.Secondary\r\n this.companyService\r\n .AddLocation(CommonData.activeLocation)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n Common.activeJob.Location = res\r\n }\r\n })\r\n }\r\n\r\n editOtherDetails() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Other,\r\n width: '1000px',\r\n legaltypes: this.legaltypes,\r\n interviewtypes: this.interviewtypes,\r\n backgroundchecks: this.backgroundchecks,\r\n jobtypes: this.jobtypes,\r\n primaryRecruiters: this.primaryRecruiters,\r\n secondaryRecruiters: this.secondaryRecruiters,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data?.formName == JobDialogTypes.Other) {\r\n this.loading = true\r\n this.model = Common.activeJob\r\n this.model.JobTypeID = data.formData.JobTypeID\r\n this.model.MaxBillRate =\r\n data.formData.MaxBillRate == '' || data.formData.MaxBillRate == null\r\n ? null\r\n : Number(data.formData.MaxBillRate)\r\n this.model.MaxSalary =\r\n data.formData.MaxSalary == '' || data.formData.MaxSalary == null\r\n ? null\r\n : Number(data.formData.MaxSalary)\r\n this.model.Positions = data.formData.Positions == '' ? null : Number(data.formData.Positions)\r\n this.model.StartDate = data.formData.StartDate == '' ? null : data.formData.StartDate\r\n this.model.EndDate = data.formData.EndDate == '' ? null : data.formData.EndDate\r\n this.model.ExpiryDate = data.formData.ExpiryDate == '' ? null : data.formData.ExpiryDate\r\n this.model.MaxSubmissionCount =\r\n data.formData.MaxSubmissionCount == '' ? 0 : Number(data.formData.MaxSubmissionCount)\r\n this.model.PostedFor = data.formData.PostedFor == '' ? 0 : data.formData.PostedFor\r\n this.model.SecondaryRecruiterId =\r\n data.formData.SecondaryRecruiterId == '' ? 0 : data.formData.SecondaryRecruiterId\r\n this.model.Notes = data.formData.Notes == '' ? '' : data.formData.Notes\r\n this.model.IsHot = Boolean(data.formData.IsHot)\r\n this.model.WorkHours = data.formData.WorkHours == '' ? 0 : Number(data.formData.WorkHours)\r\n this.model.VendorAllowedId = Number(\r\n data.formData.VendorAllowedId == '' ? false : data.formData.VendorAllowedId\r\n )\r\n this.model.JobId = Common.activeJob.JobId\r\n this.model.JobStatusID = Common.activeJob.JobStatusID\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.BackgroundCheckId = data.formData?.BackgroundCheck.join(',')\r\n this.model.TravelRequired =\r\n data.formData.TravelRequired != null ? data.formData.TravelRequired : null\r\n this.model.TravelPercentage =\r\n data.formData.TravelRequired == true && data.formData.TravelPercentage != null\r\n ? data.formData?.TravelPercentage\r\n : null\r\n this.model.JobLegalTypes = []\r\n this.model.JobInterviewTypes = []\r\n this.legalTypesRespnse.forEach((legalType) => {\r\n if (data.formData?.LegalTypeNames.indexOf(legalType.LookupID) !== -1) {\r\n this.model.JobLegalTypes.push({\r\n CreatedBy: this.authService.userInfo.userID,\r\n LegalTypeId: legalType.LookupID,\r\n JobId: this.job.JobId,\r\n JobLegalTypeId: 0,\r\n })\r\n }\r\n })\r\n data.formData?.InterviewType.forEach((interviewTypeID) => {\r\n this.model.JobInterviewTypes.push({\r\n CreatedBy: this.authService.userInfo.userID,\r\n InterviewTypeId: interviewTypeID,\r\n JobId: this.job?.JobId,\r\n JobInterviewTypeId: 0,\r\n })\r\n })\r\n\r\n if (this.interviewtypes) {\r\n this.model.InterviewTypeNames = this.model.JobInterviewTypes.reduce((acc, x) => {\r\n const type = this.interviewtypes.find((type) => type.Value === x.InterviewTypeId)\r\n if (type) {\r\n acc.push(type.Key)\r\n }\r\n return acc\r\n }, []).join(',')\r\n }\r\n\r\n this.model.WorkTypeID = data.formData?.WorkTypeID\r\n\r\n this.jobService\r\n .AddJobDescription(this.model)\r\n // .pipe(\r\n // switchMap((res) =>\r\n // this.jobService\r\n // .getJob(Common.activeJob.JobId)\r\n // .pipe(map((job) => ({ result: res, job: job })))\r\n // )\r\n // )\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result != null) {\r\n // Common.activeJob = result.job\r\n Common.activeJob = result\r\n this.activeJob = Common.activeJob\r\n this.job = Common.activeJob\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n this.jobService.triggerJobStatusChange()\r\n this.notifyService.showSuccess('Job other details successfully saved.', '')\r\n this.loading = false\r\n this.jobService.triggerToGetLatestJobValidation()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n editEducation() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Education,\r\n educationArray: this.educationArray,\r\n certificateArray: this.certificationArray,\r\n formData: this.activeJob,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Education) {\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n return\r\n }\r\n\r\n this.loading = true\r\n\r\n // Extract data from dialog result\r\n const certifications = data?.certifications || []\r\n this.selectedEducations = data.jobEducations || []\r\n const removedEducations = data.removedEducations || []\r\n\r\n // Prepare the final data object\r\n this.jobEducationCertificationData = { JobId: Common.activeJob?.JobId }\r\n this.jobEducationCertificationData.JobEducations = this.selectedEducations\r\n this.jobEducationCertificationData.JobCertifications = certifications\r\n\r\n // Create an observable chain\r\n let saveObservable = of(null)\r\n\r\n // Process removed educations first if any exist\r\n if (removedEducations.length > 0) {\r\n // Create an array of observables for each education to delete\r\n const deleteObservables = removedEducations.map((education) =>\r\n this.jobService.deleteEducation(education).pipe(\r\n catchError((error) => {\r\n console.error('Failed to delete education:', error)\r\n return of(null) // Continue with the chain even if one delete fails\r\n })\r\n )\r\n )\r\n\r\n // Replace the initial observable with the forkJoin result\r\n saveObservable = forkJoin(deleteObservables)\r\n }\r\n\r\n // Then proceed with saving the new data\r\n saveObservable\r\n .pipe(\r\n takeUntil(this._destroy$),\r\n switchMap(() => this.jobService.AddJobCertAndEdu(this.jobEducationCertificationData)),\r\n switchMap(() => this.jobService.getJob(this.activeJob?.JobId))\r\n )\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '')\r\n this.bindCertification(this.activeJob?.JobId)\r\n this.bindEducation(this.activeJob?.JobId)\r\n this.activeJob = res\r\n Common.activeJob = res\r\n },\r\n error: (err) => {\r\n this.loading = false\r\n this.notifyService.showError('Could not save education and certifications!', '')\r\n },\r\n })\r\n }\r\n })\r\n }\r\n\r\n editSkill(skill, editSkillIndex) {\r\n let skillNamesArrayForEdit = [...this.professionalSkills]\r\n skillNamesArrayForEdit.splice(editSkillIndex, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillToBeEdited: skill,\r\n skillNamesArray: this.getSkillNamesArray(skillNamesArrayForEdit),\r\n method: 'Edit',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n if (this.reqSkillCount <= 1 && !data?.formData?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n this.loading = true\r\n this.professionalSkills.filter((skillItem, index) => index != editSkillIndex)\r\n this.professionalSkills = [\r\n ...this.professionalSkills.slice(0, editSkillIndex),\r\n {\r\n ...skill,\r\n Experience: data?.formData?.Experience,\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n },\r\n ...this.professionalSkills.slice(editSkillIndex + 1),\r\n ]\r\n this.updateJobSkills(this.professionalSkills)\r\n }\r\n }\r\n })\r\n }\r\n\r\n addSoftSkill() {\r\n console.info('JobDialogTypes.SoftSkills', JobDialogTypes.SoftSkills)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillNamesArray: this.getSkillNamesArray(this.professionalSkills),\r\n method: 'Add',\r\n isSoftSkill: true,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n this.loading = true\r\n if (typeof this.softSkills == 'undefined') this.softSkills = []\r\n this.softSkills.push({\r\n JobSkillID: null,\r\n JobID: null,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: 0,\r\n MinimumExperience: 0,\r\n MaximumExperience: 0,\r\n SkillName: data?.formData?.SkillName,\r\n Required: false,\r\n SkillTypeId: 152,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n this.updateJobSkills(this.softSkills)\r\n }\r\n })\r\n }\r\n\r\n addSkill() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillNamesArray: this.getSkillNamesArray(this.professionalSkills),\r\n method: 'Add',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n this.loading = true\r\n if (typeof this.professionalSkills == 'undefined') this.professionalSkills = []\r\n this.professionalSkills.push({\r\n JobSkillID: null,\r\n JobID: null,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: data?.formData?.Experience || 0,\r\n MinimumExperience: data?.formData?.MinimumExperience,\r\n MaximumExperience: data?.formData?.MaximumExperience,\r\n\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n SkillTypeId: 151,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n this.updateJobSkills(this.professionalSkills)\r\n }\r\n })\r\n }\r\n\r\n getSkillNamesArray(skillsArray) {\r\n let skillNamesArray = []\r\n skillsArray?.forEach((skill) => {\r\n skillNamesArray.push(skill?.SkillName)\r\n })\r\n return skillNamesArray\r\n }\r\n\r\n deleteJobSkill(skill: iJobSkill, skillType: number) {\r\n this.loading = true\r\n if (skillType == 152) {\r\n this.softSkills = this.softSkills.filter((item) => item.JobSkillID != skill.JobSkillID)\r\n } else {\r\n this.professionalSkills = this.professionalSkills.filter((item) => item.JobSkillID != skill.JobSkillID)\r\n }\r\n // this.jobService.RemoveSkill(skill.JobSkillID.toString()).pipe(takeUntil(this._destroy$)).subscribe({\r\n // next: (res) => {\r\n // this.loading = false\r\n // this.notifyService.showSuccess('Skill deleted successfully', '')\r\n // },\r\n // error: (err: any) => {\r\n // this.loading = false\r\n // this.notifyService.showError('Skill could not be deleted!', '')\r\n // return\r\n // },\r\n // })\r\n }\r\n\r\n updateJobSkills(skillData) {\r\n this.loading = true\r\n this.jobSkillData.JobSkills = skillData\r\n this.jobService\r\n .AddJobSkill(this.jobSkillData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.detailsWithoutApi.push(this.jobSkillData.JobSkills)\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n this.BindRequiredSkill(this.job.JobId)\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skills could not save!', '')\r\n return\r\n },\r\n })\r\n }\r\n\r\n editQuestionnaire(question: iJobQuestionnaire, editQuestionIndex: number) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Questionnaire,\r\n questionToBeEdited: question,\r\n method: 'Edit',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n this.jobSkillData.Questionnaire = this.questioneArray\r\n if (data.formName === JobDialogTypes.Questionnaire) {\r\n this.questioneArray.filter((skillItem, index) => index != editQuestionIndex)\r\n this.questioneArray = [\r\n ...this.questioneArray.slice(0, editQuestionIndex),\r\n { ...data?.formData },\r\n ...this.questioneArray.slice(editQuestionIndex + 1),\r\n ]\r\n this.updateJobQuestionnaire(this.questioneArray)\r\n }\r\n })\r\n }\r\n\r\n addQuestion() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Questionnaire,\r\n method: 'Add',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Questionnaire) {\r\n if (typeof this.questioneArray == 'undefined') this.questioneArray = []\r\n this.questioneArray.push({ ...data?.formData })\r\n this.updateJobQuestionnaire(this.questioneArray)\r\n this.jobService.triggerToGetLatestJobValidation()\r\n }\r\n })\r\n }\r\n\r\n updateJobQuestionnaire(questionnaireData) {\r\n this.jobSkillData.Questionnaire = questionnaireData\r\n this.jobService\r\n .AddQuestionnaire(this.jobSkillData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job questionnaire successfully saved.', '')\r\n this.bindQuestionnaire(this.job.JobId)\r\n },\r\n (err: any) => {\r\n this.notifyService.showError('Could not save questions', '')\r\n return\r\n }\r\n )\r\n }\r\n\r\n openDeleteConfirmationDialog(\r\n templateRef: TemplateRef,\r\n typeOfItemToBeDeleted: string,\r\n deletedItemIndex: number\r\n ) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.typeOfItemToBeDeleted = typeOfItemToBeDeleted\r\n this.indexOfItemToBeDeleted = deletedItemIndex\r\n this.dialog.afterAllClosed.pipe(takeUntil(this._destroy$)).subscribe((res) => {\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n })\r\n }\r\n\r\n getSalaryOptions() {\r\n this.jobService\r\n .getLookup('SalaryDisplayTypeID')\r\n .pipe(first())\r\n .subscribe((salaryOption: iKeyValue[]) => {\r\n this.salaryDisplayOptionTypes = [...salaryOption]\r\n })\r\n }\r\n\r\n getSalaryExternalPortalText(optionSelected) {\r\n if (optionSelected === null || optionSelected === undefined || optionSelected === 0) {\r\n return 'None'\r\n }\r\n const SELECTED_OPTION = this.salaryDisplayOptionTypes?.find((option) => option?.Value === optionSelected)\r\n return SELECTED_OPTION?.Key\r\n }\r\n\r\n private _subscribeToCandidateNotesSubject() {\r\n this.jobService.candidateNotesAdded$.pipe(takeUntil(this._destroy$)).subscribe({\r\n next: () => {\r\n this._getNotesDetails()\r\n },\r\n })\r\n }\r\n\r\n private _getNotesDetails() {\r\n let notesRequestModel = {\r\n JobId: Common.activeJob.JobId,\r\n ContactId: null,\r\n }\r\n this.jobService\r\n .getNotes(notesRequestModel)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((notesList: Notes[]) => {\r\n const NOTES_LIST = notesList\r\n this.jobIntakeCallNoteList = NOTES_LIST.filter((note) => note.ActionId === NotesType.Intake_Calls).sort(\r\n (noteA, noteB) => new Date(noteB.CreatedDate).getTime() - new Date(noteA.CreatedDate).getTime()\r\n )\r\n })\r\n }\r\n\r\n deleteItem() {\r\n switch (this.typeOfItemToBeDeleted) {\r\n case JobDialogTypes.Questionnaire:\r\n let tempQuestionArray = [...this.questioneArray]\r\n tempQuestionArray.splice(this.indexOfItemToBeDeleted, 1)\r\n this.updateJobQuestionnaire(tempQuestionArray)\r\n break\r\n case JobDialogTypes.Skills:\r\n case JobDialogTypes.SoftSkills:\r\n // check if skill getting deleteed is soft skill or skills\r\n let isSoftSkill = false\r\n if (this.typeOfItemToBeDeleted === JobDialogTypes.SoftSkills) {\r\n isSoftSkill = true\r\n }\r\n if (\r\n this.reqSkillCount <= 1 &&\r\n !isSoftSkill &&\r\n this.professionalSkills[this.indexOfItemToBeDeleted]?.Required\r\n ) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n let tempSkillArray = [...(isSoftSkill ? this.softSkills : this.professionalSkills)]\r\n const skillToBeDeleted = tempSkillArray[this.indexOfItemToBeDeleted]\r\n\r\n tempSkillArray.splice(this.indexOfItemToBeDeleted, 1)\r\n // Delete Job skills\r\n this.loading = true\r\n this.jobService\r\n .deleteSkill(skillToBeDeleted)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Skill deleted successfully', '')\r\n // this.updateJobSkills(tempSkillArray)\r\n this.BindRequiredSkill(this.job.JobId)\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skill could not be deleted!', '')\r\n return\r\n },\r\n })\r\n }\r\n break\r\n default:\r\n this.notifyService.showError('The delete operation could not be performed', '')\r\n }\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n this.dialog.closeAll()\r\n }\r\n // For resetting tab index\r\n @HostBinding('tabindex') tabIndex = 8\r\n\r\n @HostListener('focus')\r\n focusHandler() {\r\n this.tabIndex = 1\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \"Job\r\n \r\n Job Type{{ job?.JobType | nullValueReplace }} \r\n \r\n
\r\n\r\n
\r\n \"Experience\"\r\n Experience\r\n {{ skillLevels | nullValueReplace }}\r\n \r\n
\r\n
\r\n \"CTC\"\r\n \r\n Bill Rate \r\n \r\n {{\r\n job?.MaxBillRate\r\n ? (job?.MaxBillRate | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxBillRate | nullValueReplace)\r\n }}{{ job?.MaxBillRate ? '/hr' : '' }}\r\n \r\n \r\n Bill Rate/Annual Salary\r\n \r\n \r\n {{\r\n job?.MaxBillRate\r\n ? (job?.MaxBillRate | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxBillRate | nullValueReplace)\r\n }}{{ job?.MaxBillRate ? '/hr' : '' }},\r\n {{\r\n job?.MaxSalary\r\n ? (job?.MaxSalary | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxSalary | nullValueReplace)\r\n }}{{ job?.MaxSalary ? '/yr' : '' }}\r\n \r\n Annual Salary \r\n \r\n {{\r\n job?.MaxSalary\r\n ? (job?.MaxSalary | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxSalary | nullValueReplace)\r\n }}{{ job?.MaxSalary ? '/yr' : '' }}\r\n \r\n \r\n
\r\n
\r\n \"Job\r\n Job Location\r\n \r\n 0\">{{\r\n job?.Location?.City | nullValueReplace\r\n }}\r\n 0 && job?.Location?.StateCode?.length > 0\">,\r\n 0\" class=\"ml-1\"\r\n >{{ job?.Location?.StateCode | nullValueReplace }}\r\n \r\n \r\n \r\n
\r\n
\r\n \"No\r\n No of Jobs{{ job?.Positions | nullValueReplace }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Job Description\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n no description available.\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n Job Details\r\n \r\n \r\n \"Edit\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Job Title\r\n {{ job?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n Client\r\n {{ job?.CompanyName | nullValueReplace }}\r\n
\r\n
\r\n Street Address\r\n \r\n {{ job?.Location?.StreetAddress | nullValueReplace }}\r\n \r\n
\r\n
\r\n Industry\r\n {{ job?.IndustryName | nullValueReplace }}\r\n
\r\n
\r\n Minimum Experience\r\n {{ job?.MinExperience | nullValueReplace }}\r\n
\r\n
\r\n Maximum Experience\r\n {{ job?.MaxExperience | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Customer Job Code\r\n {{ job?.JobCode | nullValueReplace }}\r\n
\r\n
\r\n Hiring Manager\r\n {{ job?.CompanyContact | nullValueReplace }}\r\n
\r\n
\r\n City & State\r\n \r\n {{ job?.Location?.City | nullValueReplace }},\r\n {{ job?.Location?.State | nullValueReplace }}\r\n \r\n
\r\n
\r\n Category\r\n {{ job?.JobCategory | nullValueReplace }}\r\n
\r\n
\r\n Work Option\r\n {{ job?.WorkOption | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Job ID\r\n {{ job?.JobId | nullValueReplace }}\r\n
\r\n
\r\n Program Manager\r\n {{ job?.MspContact | nullValueReplace }}\r\n
\r\n
\r\n Zip Code\r\n \r\n {{ job?.Location?.ZipCode | nullValueReplace }}\r\n \r\n
\r\n
\r\n Specialized Skill\r\n {{ job?.SpecializedSkill | nullValueReplace }}\r\n
\r\n\r\n
\r\n Salary external portal\r\n {{ getSalaryExternalPortalText(job?.SalaryDisplayTypeID) }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Other Details\r\n \r\n \r\n \"Edit\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n Job Type\r\n {{ job?.JobType | nullValueReplace }}\r\n
\r\n
\r\n Job Start Date\r\n {{\r\n job?.StartDate ? (job?.StartDate | date) : (job?.StartDate | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Positions\r\n {{ job?.Positions | nullValueReplace }}\r\n
\r\n
\r\n Work Type\r\n {{ job?.WorkTypeID == 1 ? 'Full Time' : 'Part Time' }}\r\n
\r\n
\r\n Primary Recruiter\r\n {{ job?.RecruiterName | nullValueReplace }}\r\n
\r\n
\r\n Interview Type\r\n {{ job?.InterviewTypeNames | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Bill Rate\r\n ${{ job?.MaxBillRate | nullValueReplace }}\r\n
\r\n
\r\n Job End Date\r\n {{\r\n job?.EndDate ? (job?.EndDate | date) : (job?.EndDate | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Max. Submission\r\n {{ job?.MaxSubmissionCount | nullValueReplace }}\r\n
\r\n
\r\n Secondary Recruiter\r\n {{ job?.SecondaryRecruiter | nullValueReplace }}\r\n
\r\n
\r\n Background Checks\r\n {{ job?.BackgroundcheckNames | nullValueReplace }}\r\n
\r\n
\r\n Travel Required\r\n {{\r\n job?.TravelRequired != null\r\n ? job?.TravelRequired\r\n ? 'Yes'\r\n : 'No'\r\n : (job?.TravelRequired | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Travel Percentage\r\n {{ job?.TravelPercentage | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Salary/Annum\r\n {{\r\n job?.MaxSalary\r\n ? (job?.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (job?.MaxSalary | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Submission Date\r\n {{\r\n job?.ExpiryDate ? (job?.ExpiryDate | date) : (job?.ExpiryDate | nullValueReplace)\r\n }}\r\n
\r\n
\r\n No. of Hrs per week\r\n {{ job?.WorkHours | nullValueReplace }}\r\n
\r\n
\r\n Work Permit\r\n {{ job?.LegalTypeNames | nullValueReplace }}\r\n
\r\n\r\n
\r\n Vendor Allowed\r\n {{ job?.VendorAllowedId ? 'Yes' : 'No' }}\r\n
\r\n\r\n
\r\n Hot Job\r\n {{ job?.IsHot ? 'Yes' : 'No' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Education & Certification\r\n \r\n \r\n \"Edit\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Education\r\n
\r\n 0\" #educationList>\r\n \r\n {{ education.EducationName }}\r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n Certifications\r\n
\r\n 0\" #certificationList>\r\n \r\n {{ certification.CertificationName }}\r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Professional Skills\r\n \r\n \r\n \"Add\r\n Add\r\n \r\n \r\n
\r\n \r\n
\r\n 0\" #SkillList>\r\n \r\n {{ skill.SkillName }} ({{ skill.Experience }} Yrs)\r\n \r\n \r\n \"Delete\r\n \r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Soft Skills\r\n \r\n \r\n \"Add\r\n Add\r\n \r\n \r\n
\r\n \r\n
\r\n 0\" #SkillList>\r\n \r\n {{ skill.SkillName }}\r\n \r\n \"Delete\r\n \r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this item?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner'\r\nimport { CommonModule } from '@angular/common'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { RouterModule } from '@angular/router'\r\nimport { MatFormFieldModule } from '@angular/material/form-field'\r\nimport { MatListModule } from '@angular/material/list'\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar'\r\nimport { MatRippleModule } from '@angular/material/core'\r\nimport { MatTabsModule } from '@angular/material/tabs'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatChipsModule } from '@angular/material/chips'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { MatDatepickerModule } from '@angular/material/datepicker'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { MatNativeDateModule } from '@angular/material/core'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { MatStepperModule } from '@angular/material/stepper'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { QuillModule } from 'ngx-quill'\r\nimport { JobRoutingModule } from './job-routing.module'\r\nimport { JobUploadComponent } from './job-upload/job-upload.component'\r\nimport { JobDetailsComponent } from './job-details/job-details.component'\r\nimport { JobSkillsComponent } from './job-skills/job-skills.component'\r\nimport { JobEducationComponent } from './job-education/job-education.component'\r\nimport { JobDescriptionComponent } from './job-description/job-description.component'\r\nimport { JobOtherComponent } from './job-other/job-other.component'\r\nimport { JobPreviewComponent } from './job-preview/job-preview.component'\r\nimport { JobQuestionnaireComponent } from './job-questionnaire/job-questionnaire.component'\r\nimport { JobTabsComponent } from './job-tabs/job-tabs.component'\r\nimport { LayoutModule } from '../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { JobAddlayoutComponent } from './job-addlayout/job-addlayout.component'\r\nimport { JobFileviewComponent } from './job-fileview/job-fileview.component'\r\nimport { ToastrModule } from 'ngx-toastr'\r\nimport { LocationModule } from '../common/location/location.module'\r\nimport { JobCandidatesComponent } from './job-candidates/job-candidates.component'\r\nimport { JobViewDescriptionComponent } from './job-view-description/job-view-description.component'\r\nimport { JobInterviewComponent } from './job-interview/job-interview.component'\r\nimport { JobNotesComponent } from './job-notes/job-notes.component'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { MatDialogModule } from '@angular/material/dialog'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { ActionDialogComponent } from '../shared/action-dialog/action-dialog.component'\r\nimport { ObjectStatusLogComponent } from '../common/object-status-log/object-status-log.component'\r\nimport { JobInterviewScheduleComponent } from './job-interview-schedule/job-interview-schedule.component'\r\nimport { JobDescriptionCardComponent } from './job-description-card/job-description-card.component'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { JobCandidateCardComponent } from './job-candidate-card/job-candidate-card.component'\r\nimport { SharedModule } from '../shared/shared.module'\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { HomeToolbarComponent } from '../shared/home-toolbar/home-toolbar.component'\r\nimport { OverlayModule } from '@angular/cdk/overlay'\r\nimport { FiltersComponent } from '../shared/filters/filters.component'\r\nimport { JobStatusFilterPipe } from './job-description-card/jobStatusFilter.pipe'\r\nimport { JobDialogComponent } from './job-dialog/job-dialog.component';\r\nimport { JobAddComponent } from './job-add/job-add.component';\r\nimport { JobFileUploadComponent } from './job-file-upload/job-file-upload.component'\r\nimport { JobDetailsPreviewComponent } from './job-details-preview/job-details-preview.component'\r\n\r\n@NgModule({\r\n declarations: [\r\n JobStatusFilterPipe,\r\n JobUploadComponent,\r\n JobDetailsComponent,\r\n JobSkillsComponent,\r\n JobEducationComponent,\r\n JobDescriptionComponent,\r\n JobOtherComponent,\r\n JobQuestionnaireComponent,\r\n JobPreviewComponent,\r\n JobTabsComponent,\r\n JobAddlayoutComponent,\r\n JobFileviewComponent,\r\n JobCandidatesComponent,\r\n JobViewDescriptionComponent,\r\n JobInterviewComponent,\r\n JobNotesComponent,\r\n ActionDialogComponent,\r\n ObjectStatusLogComponent,\r\n JobInterviewScheduleComponent,\r\n JobDescriptionCardComponent,\r\n JobCandidateCardComponent,\r\n JobDialogComponent,\r\n JobAddComponent,\r\n JobFileUploadComponent,\r\n JobDetailsPreviewComponent\r\n ],\r\n imports: [\r\n OverlayModule,\r\n CommonModule,\r\n MatDialogModule,\r\n LocationModule,\r\n MatProgressSpinnerModule,\r\n JobRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n MatSidenavModule,\r\n MatFormFieldModule,\r\n MatListModule,\r\n MatProgressBarModule,\r\n MatMenuModule,\r\n RouterModule,\r\n MatRippleModule,\r\n MatTabsModule,\r\n FormsModule,\r\n MatIconModule,\r\n IconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatChipsModule,\r\n SharedModule,\r\n MatDatepickerModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatNativeDateModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n FlexLayoutModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule,\r\n NgxLoadingModule.forRoot({}),\r\n ToastrModule.forRoot(),\r\n ReactiveFormsModule,\r\n QuillModule.forRoot({\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n\r\n [{ header: 1 }, { header: 2 }], // custom button values\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\r\n [{ indent: '-1' }, { indent: '+1' }], // outdent/indent\r\n [{ direction: 'rtl' }], // text direction\r\n\r\n [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\r\n [{ align: [] }],\r\n\r\n ['clean'], // remove formatting button\r\n\r\n ['link', 'image', 'video'], // link and image, video\r\n ],\r\n },\r\n }),\r\n ],\r\n exports: [JobTabsComponent, JobDescriptionCardComponent, FiltersComponent, HomeToolbarComponent, MatInputModule],\r\n providers: [JobViewDescriptionComponent, JobAddComponent],\r\n})\r\nexport class JobModule {}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http'\r\nimport { throwError as observableThrowError, Observable, BehaviorSubject } from 'rxjs'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { Common } from '../common/common'\r\nimport { iJob, iJobCertification, iJobSearch, iJobSkill, iJobTitle } from '../models/job.model'\r\nimport { map } from 'rxjs/operators'\r\nimport { iCommments } from '../models/common.model'\r\nimport { iConsultantJobStatusSearch } from '../models/consultant.model'\r\nimport * as QuestionTypeJson from '../../assets/questionTypes.json'\r\nimport { SkillKeyWord } from '../models/skill-keyword'\r\nimport { iCategory } from '../models/category'\r\nimport { iJobClone } from '../models/cloneJob.model'\r\nimport { DashboardJobStatusCountParameter } from '../models/dashboard.model'\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JobService {\r\n //common: Common = new Common();\r\n searchData: string\r\n apiUrl = Common.apiUrl\r\n private eventSource = new BehaviorSubject(null)\r\n eventSubject = this.eventSource.asObservable()\r\n private jobStatusChange$: BehaviorSubject = new BehaviorSubject(0)\r\n public jobStatusValueChange$ = this.jobStatusChange$.asObservable()\r\n private jobLoadingSubject$: BehaviorSubject = new BehaviorSubject(false)\r\n public jobLoadingSubjectChange$ = this.jobLoadingSubject$.asObservable()\r\n private _jobValidationTrigger$: BehaviorSubject = new BehaviorSubject(0)\r\n public jobValidationTrigger$ = this._jobValidationTrigger$.asObservable()\r\n public jobCloneInfo: BehaviorSubject = new BehaviorSubject(null)\r\n\r\n private isCandidateStatus$: BehaviorSubject = new BehaviorSubject(false)\r\n public isCandidateStatusChanged$ = this.isCandidateStatus$.asObservable()\r\n\r\n private _candidateNotesAddedCount$: BehaviorSubject = new BehaviorSubject(0)\r\n public candidateNotesAdded$ = this._candidateNotesAddedCount$.asObservable()\r\n \r\n private _addJob$: BehaviorSubject<{}> = new BehaviorSubject<{}>(null)\r\n public addJob$ = this._addJob$.asObservable()\r\n\r\n private _recruiter$: BehaviorSubject<[]> = new BehaviorSubject<[]>(null)\r\n public recruiter$ = this._recruiter$.asObservable()\r\n private _isJobFileUploaded$: BehaviorSubject = new BehaviorSubject(false)\r\n public isJobFileUploaded$ = this._isJobFileUploaded$.asObservable()\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n emitEvent(value: iJobCertification[]) {\r\n this.eventSource.next(value)\r\n }\r\n\r\n setCandidateStatus(isCandidateStatusChanged: boolean) {\r\n this.isCandidateStatus$.next(isCandidateStatusChanged)\r\n }\r\n\r\n onCandidateNotesAdded() {\r\n this._candidateNotesAddedCount$.next(this._candidateNotesAddedCount$.value + 1)\r\n }\r\n\r\n getJobCloneStatus() {\r\n return this.jobCloneInfo\r\n }\r\n setJobCloneStatus(iJobClone) {\r\n return this.jobCloneInfo.next(iJobClone)\r\n }\r\n\r\n getAddJob(){\r\n return this.addJob$\r\n }\r\n setAddJobDetails(addJobDetails){\r\n return this._addJob$.next(addJobDetails)\r\n }\r\n getRecruiter(){\r\n \r\n return this.recruiter$\r\n }\r\n setRecruiter(recruiter){\r\n \r\n return this._recruiter$.next(recruiter)\r\n }\r\n getIsJobUploaded(){\r\n return this.isJobFileUploaded$\r\n }\r\n setIsJobUploaded(isFileUploaded){\r\n return this._isJobFileUploaded$.next(isFileUploaded)\r\n }\r\n\r\n getJob(jobId) {\r\n var url = Common.apiUrl + 'jobs/GetJob' + '/' + encodeURIComponent(jobId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getJobList(obj: iJobSearch) {\r\n var url = Common.apiUrl + 'jobs/joblist'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n exportJobs(obj: any) {\r\n var url = Common.apiUrl + 'jobs/exportJobs'\r\n return this.http.post(url, obj, {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n responseType: 'blob',\r\n })\r\n }\r\n\r\n getRecruiters(obj: any) {\r\n var url = Common.apiUrl + 'user/GetUsers'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetCompanyRecruiters(companyId, roleId) {\r\n var url =\r\n this.apiUrl +\r\n 'Company/GetRecruiters' +\r\n '/' +\r\n encodeURIComponent(companyId) +\r\n '/' +\r\n encodeURIComponent(roleId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetRecruitUsersByCompany(companyId) {\r\n var url = this.apiUrl + 'Company/GetRecruitUsersByCompany' + '/' + encodeURIComponent(companyId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetRecruiterByRoleId(roleIds) {\r\n var url = this.apiUrl + 'Company/GetRecruiterByRoleId' + '/' + encodeURIComponent(roleIds)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n GetRoleUsers(roleId) {\r\n var url = this.apiUrl + 'Company/GetRoleUsers' + '/' + encodeURIComponent(roleId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getCitySearch(name: string, stateCode?: string) {\r\n let resObj = {\r\n name: name,\r\n stateCode: stateCode,\r\n }\r\n var url = Common.apiUrl + 'data/GetCitySearch'\r\n return this.http.post(url, resObj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getLookup(LookpText) {\r\n var url = Common.apiUrl + 'data/GetLookup' + '?LookpText=' + encodeURIComponent(LookpText)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getClients() {\r\n var url = Common.apiUrl + 'Company/GetClients'\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getClientsByUserId(userID) {\r\n var url = Common.apiUrl + 'company/GetClientsByUserId/' + userID\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getClientCompany() {\r\n var url = Common.apiUrl + 'data/GetClientCompany'\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getCompanyContacts(companyId) {\r\n var url = Common.apiUrl + 'data/GetCompanyContacts' + '?companyId=' + encodeURIComponent(companyId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getHiringManagers(companyId) {\r\n var url = Common.apiUrl + 'jobs/GetHiringManager' + '?companyId=' + encodeURIComponent(companyId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getProgramManager(companyId) {\r\n var url = Common.apiUrl + 'jobs/GetProgramManager' + '?companyId=' + encodeURIComponent(companyId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getCompanyLocations(objectid, objecttypeid) {\r\n var url =\r\n Common.apiUrl +\r\n 'data/GetCompanyLocations' +\r\n '/' +\r\n encodeURIComponent(objectid) +\r\n '/' +\r\n encodeURIComponent(objecttypeid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getSkills(title) {\r\n var url = Common.apiUrl + 'data/GetSkillName' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getSkillNames(title, skillTypeId) {\r\n var url =\r\n Common.apiUrl +\r\n 'data/GetSkillNameList/' + encodeURIComponent(title) +\r\n '/' +\r\n encodeURIComponent(skillTypeId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getAllSkills(title) {\r\n var url = Common.apiUrl + 'data/GetAllSkillName' + '?title=' + encodeURIComponent(title)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getAllCategory(title) {\r\n var url = Common.apiUrl + 'data/GetCategoryName' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n IsSkillExist(skillName) {\r\n var url = Common.apiUrl + 'data/IsSkillExist' + '?skillName=' + encodeURIComponent(skillName)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n IsCategoryExist(skillName) {\r\n var url = Common.apiUrl + 'data/IsCategoryExist' + '?categoryName=' + encodeURIComponent(skillName)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n AddSkill(obj: SkillKeyWord) {\r\n var url = Common.apiUrl + 'data/AddSkill'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n UpdateSkill(obj: SkillKeyWord) {\r\n var url = Common.apiUrl + 'data/UpdateSkill'\r\n return this.http.put(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteSkill(obj: iJobSkill) {\r\n var url = Common.apiUrl + 'Jobs/DeleteJobSkill'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n RemoveSkill(id: string) {\r\n var url = Common.apiUrl + 'data/RemoveSkill?skillId=' + encodeURIComponent(id)\r\n return this.http.delete(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddCategory(obj: iCategory) {\r\n var url = Common.apiUrl + 'data/AddCategory'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n RemoveCategory(id: string) {\r\n var url = Common.apiUrl + 'data/RemoveCategory?categoryId=' + encodeURIComponent(id)\r\n return this.http.delete(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n UpdateCategory(obj: iCategory) {\r\n var url = Common.apiUrl + 'data/UpdateCategory'\r\n return this.http.put(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n uploadJobFile(files: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/jobDescription'\r\n return this.http.post(url, files, { reportProgress: true }).pipe(catchError(this.handleError))\r\n }\r\n SaveJobData(files: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/SaveJobData'\r\n return this.http.post(url, files, { reportProgress: true }).pipe(catchError(this.handleError))\r\n }\r\n savejobinfo(files: any) {\r\n var url = Common.apiUrl + 'jobs/savejobinfo'\r\n return this.http.post(url, files, { reportProgress: true }).pipe(catchError(this.handleError))\r\n }\r\n JobCard(page: number): Observable {\r\n var url = this.apiUrl + 'Jobs/jobcard?pageNumber=' + page\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n //return this.http.get(this.apiUrl + 'Jobs/jobcard?pageNumber=' + page);\r\n }\r\n GetJobCardList(obj: iJobSearch) {\r\n var url = Common.apiUrl + 'jobs/jobcardlist'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobValidation(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobValidation' + '/' + encodeURIComponent(jobId)\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobStatus() {\r\n var url = this.apiUrl + 'Jobs/GetJobStatus'\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobCategory() {\r\n var url = this.apiUrl + 'Jobs/JobCategory'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getJobCategoryByCompany(companyId: any) {\r\n var url = Common.apiUrl + 'Company/GetJobCategory'\r\n return this.http.post(url, { CompanyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getLegalTypes() {\r\n var url = this.apiUrl + 'data/GetLegalTypes'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getBackgroundChecks() {\r\n var url = this.apiUrl + 'data/getBackgroundChecks'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n addComments(obj: iCommments) {\r\n var url = Common.apiUrl + 'data/AddComments'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobIndustry() {\r\n var url = this.apiUrl + 'Jobs/JobIndustry'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobSpecializedSkills(categoryId) {\r\n var url = this.apiUrl + 'Jobs/CategorySpecializedSkill' + '?categoryId=' + encodeURIComponent(categoryId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getJobTitles(title) {\r\n var url = this.apiUrl + 'Jobs/JobTitleSearch' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getJobTitleByJobId(jobId: number) {\r\n var url = this.apiUrl + 'Jobs/GetJobTitleFromJobId' + '/' + encodeURIComponent(jobId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobSkills(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobSkill' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDiceJobSkill(jobId, diceId) {\r\n const ENDPOINT = `${this.apiUrl}Jobs/GetDiceJobSkill/${encodeURIComponent(jobId)}/${encodeURIComponent(diceId)}`\r\n return this.http.get(ENDPOINT, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobConsultants(jobid, userid) {\r\n var url =\r\n this.apiUrl + 'Jobs/GetJobConsultants' + '/' + encodeURIComponent(jobid) + '/' + encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getConsultantJobStatusList(obj: iConsultantJobStatusSearch) {\r\n var url = Common.apiUrl + 'Consultant/GetConsultantJobStatus'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobInterviews(jobid, userid) {\r\n var url =\r\n this.apiUrl + 'Jobs/GetJobInterviews' + '/' + encodeURIComponent(jobid) + '/' + encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobSkillsConsultant(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobSkill' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http\r\n .get(url, Common.httpOptions)\r\n .pipe(map((response: Response) => response.json()))\r\n .toPromise()\r\n }\r\n GetJobEducation(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobEducation' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobCertification(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobCertification' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobInterviewType(jobid) {\r\n var url = this.apiUrl + 'Jobs/GetJobInterviewType' + '?jobId=' + encodeURIComponent(jobid)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobQuestionnaire(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobQuestionnaire' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobLegalStatus(jobid) {\r\n var url = this.apiUrl + 'Jobs/GetJobLegalStatus' + '?jobId=' + encodeURIComponent(jobid)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n ParseSkills(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/ParseSkill'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetParseJobtext(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/JobKeywordSearh'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetParseJobKeyword(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/GetParseJobKeyword'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetParseEmail(email) {\r\n var url = this.apiUrl + 'Jobs/GetParseEmail' + '?email=' + encodeURIComponent(email)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobDescription(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddJob'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobSkill(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddSkill'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobEducation(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddEducation'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddCertification(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddCertification'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteEducation(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/DeleteJobEducation'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteCertification(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/DeleteJobCertification'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobCertAndEdu(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddJobCertAndEdu'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddQuestionnaire(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddQuestionnaire'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getCompanyByCompanyId(companyId) {\r\n var url = Common.apiUrl + 'Company/GetCompanyByCompanyId'\r\n return this.http.post(url, { companyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getNotes(obj: any) {\r\n var url = Common.apiUrl + 'data/GetNotes'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n return observableThrowError(errMessage)\r\n // Use the following instead if using lite-server\r\n // return Observable.throw(err.text() || 'backend server error');\r\n }\r\n return observableThrowError(error || 'Node.js server error')\r\n }\r\n\r\n public getQuestionTypes() {\r\n return QuestionTypeJson.default.questionTypes\r\n }\r\n\r\n changeJobStatusBySubmittedCount(jobId, userId) {\r\n const endPoint =\r\n Common.apiUrl +\r\n 'Jobs/ChangeJobStatsBySubmitCount/' +\r\n encodeURIComponent(jobId) +\r\n '/' +\r\n encodeURIComponent(userId)\r\n return this.http.get(endPoint).pipe(catchError(this.handleError))\r\n }\r\n\r\n triggerJobStatusChange() {\r\n this.jobStatusChange$.next(this.jobStatusChange$.value + 1)\r\n }\r\n\r\n triggerJobLoadingConfig(isLoading: boolean) {\r\n this.jobLoadingSubject$.next(isLoading)\r\n }\r\n getInterviewDetails(candidateJobId) {\r\n const url = Common.apiUrl + `Consultant/GetInterviewList/${candidateJobId}`\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n triggerToGetLatestJobValidation() {\r\n this._jobValidationTrigger$.next(this._jobValidationTrigger$.value + 1)\r\n }\r\n reopenJobStatus(cloneJobObj) {\r\n const url = Common.apiUrl + 'jobs/CloneJob'\r\n\r\n return this.http.post(url, cloneJobObj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getCallRecords(searchPara) {\r\n\r\n const url = Common.apiUrl + 'jobs/GetCallRecords'\r\n return this.http.post(url, searchPara, Common.httpOptions).pipe(catchError(this.handleError))\r\n\r\n }\r\n\r\n getCallRecordsByCallerNumber(calleeNumber: string) {\r\n const url = Common.apiUrl + `jobs/GetCallRecordsByCallerNumber/${calleeNumber}`;\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n getParserLogs(logs: any) {\r\n const url = Common.apiUrl + `consultant/GettParserLog`;\r\n return this.http.post(url, logs).pipe(catchError(this.handleError))\r\n }\r\n\r\n saveInitialCallDetails(data) {\r\n const url = Common.apiUrl + `jobs/SaveInitialCallDetails`;\r\n return this.http.post(url, data, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getJobStatusCount(obj: DashboardJobStatusCountParameter) {\r\n var url = Common.apiUrl + 'data/GetDashboardJobStatusCount'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http'\r\nimport { throwError as observableThrowError } from 'rxjs'\r\nimport { Common } from '../common/common'\r\nimport { iMenuItem } from '../models/common.model'\r\nimport { RolePermission } from '../models/role.model'\r\nimport { catchError } from 'rxjs/internal/operators/catchError'\r\nimport { map, tap } from 'rxjs/operators'\r\nimport { CommonService } from '../services/common.service'\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoleService {\r\n searchData: string\r\n apiUrl = Common.apiUrl\r\n constructor(private http: HttpClient, private commonService: CommonService) {}\r\n\r\n getRolePermission() {\r\n var url = Common.apiUrl + 'rolePermission/GetRolePermission'\r\n return this.http.get(url, Common.httpOptions).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n saveRolePermission(obj: RolePermission[]) {\r\n var url = Common.apiUrl + 'rolePermission/SaveRolePermission'\r\n\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getPermissionByRole(roleId) {\r\n var url = Common.apiUrl + 'rolePermission/GetPermissionByRole' + '/' + encodeURIComponent(roleId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(\r\n tap((result) => this.commonService.menuItemSubject.next(result)),\r\n catchError(this.handleError)\r\n )\r\n return x\r\n }\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n return observableThrowError(errMessage)\r\n }\r\n return observableThrowError(error || 'Node.js server error')\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core'\r\nimport {\r\n ConsultantType,\r\n iConsultant,\r\n iConsultantJob,\r\n iConsultantJobInterview,\r\n iReference,\r\n} from 'src/app/models/consultant.model'\r\nimport { Common, ConsultantJobStatuses, MenuName } from 'src/app/common/common'\r\nimport { FormBuilder, Validators, FormGroup, AbstractControl, FormControl, FormArray } from '@angular/forms'\r\nimport { iDbResult, iKeyValue } from 'src/app/models/common.model'\r\nimport { JobTitle, User, iJob, iJobLegalType } from 'src/app/models/job.model'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { iReasons } from 'src/app/models/common.model'\r\nimport { ExternalService } from '../external.service'\r\nimport { switchMap, takeUntil } from 'rxjs/operators'\r\nimport { Subject, forkJoin } from 'rxjs'\r\nimport { EmailRequestTypes } from 'src/app/enums/emailRequest'\r\nimport { iInterviewSchedule, iInterview, iInterviewTimeSlot, InterviewType } from 'src/app/models/interview.model'\r\nimport { InterviewTypeId, InterviewTypeText } from 'src/app/enums/interviewTypeIds'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport icClose from '@iconify/icons-ic/twotone-close'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { ConsultantJobstatusID, CandidateJobMenuId, ConsultantJobstatusName } from 'src/app/enums/consultantjobstatus'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Email } from 'src/app/models/emailModel'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { LocationComponent } from 'src/app/common/location/location.component'\r\nimport { iContact } from 'src/app/models/contact.model'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { MarkupTypeIds, MarkupTypeNames } from 'src/app/enums/markupType'\r\nimport { JobSettingType } from 'src/app/enums/jobSettingType'\r\nimport { FilesTypes } from 'src/app/enums/unitsForFile'\r\nimport { ResumeFileType } from 'src/app/enums/resumeKeywords'\r\nimport { format } from 'date-fns'\r\nimport { LocationService } from 'src/app/services/location.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CandidateAction, CandidateStatusName } from 'src/app/enums/external-action'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iCompany } from 'src/app/models/company.model'\r\n@Component({\r\n selector: 'leap-external-action',\r\n templateUrl: './external-action.component.html',\r\n styleUrls: ['./external-action.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ExternalActionComponent implements OnInit, OnDestroy {\r\n actionId: number\r\n requestType: string\r\n consultantId: number\r\n jobId: number\r\n intid: number\r\n rqstNum: string\r\n venorRqstNum: string\r\n vendorId: number\r\n userEmail: string\r\n astat: string\r\n public consultantJob: iConsultantJob\r\n public IsCandidateDetails: boolean = false\r\n public isAlreadyApproved: boolean = false\r\n public IsApproval: boolean = false\r\n public IsReject: boolean = false\r\n public isConfirm: boolean = false\r\n public IsValid: boolean = false\r\n public IsCancel: boolean = false\r\n isOfferReject: boolean = false\r\n public isReferencePage: boolean = false\r\n job: iJob\r\n allReasons: iReasons[]\r\n statusReasons: iReasons[]\r\n selectedReasonId: number\r\n selectedReason: string\r\n public defaultSelected = 0\r\n public selection: number\r\n otherReason: string\r\n statusName: string\r\n destroy$: Subject = new Subject()\r\n\r\n public iConsultantJobInterview: iConsultantJobInterview[]\r\n interviewTypes: InterviewType[]\r\n frmInterview: FormGroup = this.formBuilder.group({\r\n InterviewerName: [null],\r\n InterviewerContactNo: [null],\r\n InterviewTypeId: [null, Validators.required],\r\n CompanyContact: [null],\r\n InterviewerDuration: [null],\r\n InterviewerLocation: [null],\r\n AvaillDate1: [null, Validators.required],\r\n AvaillTime1: [null, Validators.required],\r\n AvaillDate2: [null],\r\n AvaillTime2: [null],\r\n AvaillDate3: [null],\r\n AvaillTime3: [null],\r\n AvaillTZ1: ['EST', Validators.required],\r\n AvaillTZ2: ['EST'],\r\n AvaillTZ3: ['EST'],\r\n InterviewDetails: [null],\r\n Comments: [null],\r\n })\r\n timeZones: string[] = ['PST', 'MST', 'CST', 'EST']\r\n safeHtml: any\r\n interviewSchedule: iInterviewSchedule = {}\r\n interview: iInterview = {}\r\n AvaillTZ1 = 'EST'\r\n AvaillTZ2 = 'EST'\r\n AvaillTZ3 = 'EST'\r\n public isScheduled: boolean = false\r\n public isValidRequest: boolean = true\r\n isCandidateMailSubmitted: boolean = false\r\n interviewScheduleApproved: boolean = false\r\n isResumeUploaded: boolean = false\r\n\r\n consultant: iConsultant\r\n availableTimeSlots: Array = []\r\n InterviewSlot: Array = []\r\n icClose = icClose\r\n interviewId: number\r\n consultantJobId: number\r\n emailHtml: SafeHtml = ''\r\n userId: number\r\n roleId: Number\r\n legalTypes: iKeyValue[] = []\r\n public get locationCalledFrom(): typeof LocationCalledFrom {\r\n return LocationCalledFrom\r\n }\r\n isShowLocation: boolean = false\r\n jobLocation: iLocation\r\n locationList: any\r\n availTimeSlot: iInterviewTimeSlot[]\r\n public isValid: boolean = false\r\n public isInterview: boolean = false\r\n public isReason: boolean = false\r\n public interviewDateTime: string | Date\r\n public interviewTimeZone: string\r\n isShowMailPreview: boolean = false\r\n isCandidateSubmitted: boolean = false\r\n public get requestTypes(): typeof EmailRequestTypes {\r\n return EmailRequestTypes\r\n }\r\n public get menuIds(): typeof CandidateJobMenuId {\r\n return CandidateJobMenuId\r\n }\r\n public get ConsultantJobstatusName(): typeof ConsultantJobstatusName {\r\n return ConsultantJobstatusName\r\n }\r\n public get interviewTypeIds(): typeof InterviewTypeId {\r\n return InterviewTypeId\r\n }\r\n public get CandidateAction(): typeof CandidateAction {\r\n return CandidateAction\r\n }\r\n\r\n public get CandidateStatusNames(): typeof CandidateStatusName {\r\n return CandidateStatusName\r\n }\r\n\r\n @ViewChild(LocationComponent) locationComponent: LocationComponent\r\n filterContact: iContact[] = []\r\n selectedContactId: number\r\n interviewTypeText = InterviewTypeText\r\n\r\n recruiters: User[]\r\n consultantTypes: ConsultantType[]\r\n public get jobTypesEnum(): typeof JobTypes {\r\n return JobTypes\r\n }\r\n // variables for job edit\r\n jobEditForm: FormGroup\r\n minimumPayRate: number = 7.25\r\n maxBillRate: number = 999\r\n isPayRangeValid: boolean = false\r\n loadVendorView: boolean = false\r\n markTypeValue: number\r\n markupType = MarkupTypeIds\r\n isMandatoryInfoFilledForCandidateJob: boolean = true\r\n loading: boolean = false\r\n\r\n // variables for preview mail\r\n emailData: Email\r\n isFormattedResumeAttached: boolean = false\r\n allowedFileTypes: string[] = [FilesTypes.DOC, FilesTypes.DOCX, FilesTypes.PDF]\r\n FILE: File\r\n IsFormattedResume: boolean = false\r\n fileName = ''\r\n previewUrl: string | ArrayBuffer\r\n public get resumeFileType(): typeof ResumeFileType {\r\n return ResumeFileType\r\n }\r\n APPROVED_TEXT = 'Approved'\r\n candidateNotesFormControl: FormControl = new FormControl('', [Validators.maxLength(5000)])\r\n isMailPreviewLoading: boolean = false\r\n isValidInterview: boolean = true\r\n isInterviewRejected: boolean = false\r\n consultantData: iConsultant\r\n frmCandidateDetails: FormGroup\r\n frmCandidateReference: FormGroup\r\n consultantReference: iReference[] = []\r\n titles: JobTitle[] = []\r\n addedTitlesForReference: JobTitle[] = []\r\n companies: iCompany[] = []\r\n allCompanies: iCompany[] = []\r\n downloadUrl: string\r\n resumeFileName: string\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private notifyService: NotificationService,\r\n private _activatedRoute: ActivatedRoute,\r\n private externalService: ExternalService,\r\n private _consultantService: ConsultantService,\r\n private _commonService: CommonService,\r\n private _sanitize: DomSanitizer,\r\n private _router: Router,\r\n private locationService: LocationService,\r\n private _commonMatDialogService: CommonMatDialogService,\r\n private jobService: JobService\r\n ) {\r\n this.frmCandidateReference = this.formBuilder.group({\r\n referenceDetails: this.formBuilder.array([\r\n this.formBuilder.group({\r\n CellPhone: ['', Validators.required],\r\n Company: ['', Validators.required],\r\n JobTitle: ['', Validators.required],\r\n ReferenceFirstName: ['', Validators.required],\r\n ReferenceLastName: ['', Validators.required],\r\n EmailAddress: ['', [Validators.required, Validators.email]],\r\n }),\r\n ]),\r\n })\r\n }\r\n\r\n get referenceDetails() {\r\n return this.frmCandidateReference.get('referenceDetails') as FormArray\r\n }\r\n\r\n addReferenceDetail(): void {\r\n if (this.referenceDetails.valid) {\r\n this.referenceDetails.push(\r\n this.formBuilder.group({\r\n CellPhone: ['', Validators.required],\r\n Company: ['', Validators.required],\r\n JobTitle: ['', Validators.required],\r\n ReferenceFirstName: ['', Validators.required],\r\n ReferenceLastName: ['', Validators.required],\r\n EmailAddress: ['', [Validators.required, Validators.email]],\r\n })\r\n )\r\n } else {\r\n this.notifyService.showWarning('Please add reference details', 'Reference Error')\r\n }\r\n }\r\n\r\n removeReferenceDetail(index: number): void {\r\n if (this.referenceDetails.length > 1) {\r\n this.referenceDetails.removeAt(index)\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n }\r\n\r\n async ngOnInit() {\r\n this.getVendors()\r\n\r\n this.actionId = Number(this._activatedRoute.snapshot.queryParamMap.get('actionId'))\r\n this.requestType = this._activatedRoute.snapshot.queryParamMap.get('requesttype')\r\n this.consultantJobId = Number(this._activatedRoute.snapshot.queryParamMap.get('cjid'))\r\n this.consultantId = Number(this._activatedRoute.snapshot.queryParamMap.get('cid'))\r\n this.jobId = Number(this._activatedRoute.snapshot.queryParamMap.get('jid'))\r\n this.rqstNum = this._activatedRoute.snapshot.queryParamMap.get('rqid')\r\n this.userEmail = this._activatedRoute.snapshot.queryParamMap.get('uemail')\r\n this.venorRqstNum = this._activatedRoute.snapshot.queryParamMap.get('vrqid')\r\n this.astat = this._activatedRoute.snapshot.queryParamMap.get('astat')\r\n this.intid = Number(this._activatedRoute.snapshot.queryParamMap.get('intid'))\r\n this.userId = -1\r\n this.roleId = 1\r\n await this.getConsultant();\r\n if (this.requestType === this.requestTypes.CONSULTANT_JOB_APPOVAL_PENDING) {\r\n this.consultantJobStatusReasons(236)\r\n this.GetConsultantJob(this.consultantJobId, -1)\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_INTERVIEW_SCHEDULE) {\r\n if (this.jobId > 0) {\r\n this.loading = true\r\n this.externalService\r\n .getJob(this.jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (jobResult) => {\r\n this.loading = false\r\n Common.activeJob = this.job = jobResult\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n if (this.consultantId > 0) {\r\n this.loading = true\r\n this.externalService\r\n .getConsultant(this.consultantId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (candidateResult) => {\r\n this.loading = false\r\n Common.activeConsultant = this.consultant = candidateResult\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n if (this.consultantJobId > 0) {\r\n this.GetConsultantJob(this.consultantJobId, this.userId)\r\n }\r\n this.loading = true\r\n this.externalService\r\n .getLookup('InterviewTypeId')\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n var x = res as InterviewType[]\r\n this.interviewTypes = res as InterviewType[]\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_INTEVIEW_ACCEPT) {\r\n await this.GetInterview(this.intid)\r\n await this.GetInterviewAvailableTimeSlots(this.intid)\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_SUBMIT) {\r\n await this._getJobById(this.jobId)\r\n await this._getConsultantJobById(this.jobId, -1)\r\n this._getDataForCandidateSubmission()\r\n this.maxBillRate = Common.activeJob.MaxBillRate\r\n await this.getMinimumPayRate(\r\n this.consultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n this.consultantJob.ConsultantTypeID,\r\n this.consultantJob.BillRate,\r\n this.consultantJob.PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n })\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_OFFER_PENDING) {\r\n this.consultantJobStatusReasons(62)\r\n this.GetConsultantJob(this.consultantJobId, -1)\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_REQUEST_FORMATTED_RESUME) {\r\n this.GetConsultantJob(this.consultantJobId, -1)\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_COMPLETED_FORMATTED_RESUME) {\r\n // ToDo.. Show preview and submit page\r\n // Add formatted resume (no need to attach )\r\n\r\n this.GetConsultantJob(this.consultantJobId, -1)\r\n }\r\n this.getLegalTypes()\r\n this.getFormData()\r\n }\r\n\r\n private _getJobById(jobId: number) {\r\n this.loading = true\r\n return new Promise((resolve) => {\r\n this.externalService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((jobResult) => {\r\n Common.activeJob = this.job = jobResult\r\n this.loading = false\r\n resolve(true)\r\n })\r\n })\r\n }\r\n\r\n private _getConsultantJobById(jobId, userId) {\r\n this.loading = true\r\n return new Promise((resolve, reject) => {\r\n this.externalService\r\n .GetConsultantJobById(this.consultantJobId, userId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (consultantJob: iConsultantJob) => {\r\n this.loading = false\r\n this.isMailPreviewLoading = false\r\n\r\n this.consultantJob = consultantJob\r\n resolve(true)\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.isMailPreviewLoading = false\r\n\r\n reject(true)\r\n },\r\n })\r\n })\r\n }\r\n\r\n BindJobConsultantsInterviews(jobid, userid) {\r\n this.loading = true\r\n this.externalService\r\n .GetJobInterviews(jobid, userid)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (jclst) => {\r\n this.loading = false\r\n this.iConsultantJobInterview = jclst as iConsultantJobInterview[]\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n showCandidateDetails() {\r\n this.IsCandidateDetails = !this.IsCandidateDetails\r\n }\r\n showReject() {\r\n this.IsCancel = false\r\n this.IsReject = !this.IsReject\r\n }\r\n showApprove() {\r\n this.IsCancel = false\r\n this.IsApproval = !this.IsApproval\r\n }\r\n showConfirm() {\r\n this.IsCandidateDetails = false\r\n this.IsApproval = false\r\n this.IsReject = false\r\n this.IsCancel = false\r\n this.isConfirm = !this.isConfirm\r\n // this.isReferencePage = true\r\n }\r\n\r\n showInvalid() {\r\n this.IsValid = !this.IsValid\r\n }\r\n closePopup() {\r\n this.IsCandidateDetails = true\r\n this.IsApproval = false\r\n this.IsReject = false\r\n this.isConfirm = false\r\n // this.isReferencePage = false\r\n this.IsCancel = true\r\n }\r\n consultantJobStatusReasons(reasonTypeCode) {\r\n this.loading = true\r\n this.externalService\r\n .getAllReasons()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.allReasons = res as iReasons[]\r\n this.statusReasons = this.allReasons.filter(\r\n (item) => item.ReasonTypeID === reasonTypeCode || item.ReasonID === -1\r\n )\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n GetConsultantJob(consultantjobid, userid) {\r\n this.loading = true\r\n this.externalService\r\n .GetConsultantJob(consultantjobid, userid)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (consultantjobResult) => {\r\n this.loading = false\r\n this.consultantJob = consultantjobResult as iConsultantJob\r\n\r\n this.candidateNotesFormControl.patchValue(this.consultantJob?.SummaryNote)\r\n if (this.requestType === this.requestTypes.CONSULTANT_JOB_APPOVAL_PENDING) {\r\n if (this.consultantJob.ConsultantJobStatusID == ConsultantJobstatusID.CONSULTANT_JOB_APPROVED) {\r\n if (this.actionId == CandidateAction.Reject) {\r\n this.IsReject = true\r\n } else {\r\n this.isAlreadyApproved = true\r\n }\r\n this.IsValid = true\r\n this.IsCandidateDetails = false\r\n this.IsApproval = false\r\n this.isConfirm = false\r\n } else if (\r\n this.consultantJob.ConsultantJobStatusID !=\r\n ConsultantJobstatusID.CONSULTANT_JOB_APPOVAL_PENDING\r\n ) {\r\n this.IsValid = false\r\n this.IsCandidateDetails = false\r\n this.IsApproval = false\r\n this.IsReject = false\r\n this.isConfirm = false\r\n } else {\r\n this.IsValid = true\r\n this.IsCandidateDetails = true\r\n if (this.actionId == CandidateAction.Reject) {\r\n this.IsReject = true\r\n //Rejected\r\n } else if (this.actionId == CandidateAction.Accept) {\r\n //Approve\r\n //this.IsApproval = true;\r\n\r\n this.saveApprovalStatus(CandidateStatusName.Approved)\r\n }\r\n }\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_INTERVIEW_SCHEDULE) {\r\n this.getCompanyContacts(this.consultantJob.ClientCompanyId)\r\n if (\r\n this.consultantJob.ConsultantJobStatusID != ConsultantJobstatusID.CONSULTANT_JOB_SUBMITTED\r\n ) {\r\n this.isValidRequest = false\r\n } else {\r\n this.isValidRequest = true\r\n }\r\n if (this.actionId == CandidateAction.Reject) {\r\n this.isValidInterview = false\r\n this.consultantJobStatusReasons(59)\r\n } else if (this.actionId == CandidateAction.Accept) {\r\n this.isValidInterview = true\r\n }\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_OFFER_PENDING) {\r\n if (\r\n this.consultantJob.ConsultantJobStatusID !=\r\n ConsultantJobstatusID.CONSULTANT_JOB_OFFER_PENDING\r\n ) {\r\n this.isValidRequest = false\r\n } else {\r\n this.isValidRequest = true\r\n }\r\n if (this.actionId == CandidateAction.Reject) {\r\n this.IsReject = true\r\n //Rejected\r\n } else if (this.actionId == CandidateAction.Accept) {\r\n //Approve\r\n this.IsApproval = true\r\n }\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_REQUEST_FORMATTED_RESUME) {\r\n if (this.consultantJob.ConsultantJobStatusID == ConsultantJobstatusID.CONSULTANT_JOB_APPROVED) {\r\n if (\r\n this.consultantJob.ResumeTypeID !== this.resumeFileType?.FORMATTED ||\r\n this.consultantJob?.ResumeFileID == 0\r\n )\r\n this.isValidRequest = true\r\n else {\r\n this.isValidRequest = false\r\n }\r\n } else {\r\n this.isValidRequest = false\r\n }\r\n } else if (this.requestType === this.requestTypes.CONSULTANT_JOB_COMPLETED_FORMATTED_RESUME) {\r\n if (this.consultantJob.ConsultantJobStatus === 'Submitted') {\r\n this.isCandidateMailSubmitted = true\r\n } else {\r\n this.showCandidateMailPreview()\r\n this.isCandidateMailSubmitted = false\r\n }\r\n // this.isResumeUploaded = true\r\n } else {\r\n this.isResumeUploaded = false\r\n }\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n getConsultant() {\r\n this.loading = true\r\n return new Promise((resolve, reject) => {\r\n this.externalService\r\n .getConsultant(this.consultantId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (data) => {\r\n this.loading = false\r\n this.consultantData = data\r\n this.downloadUrl =\r\n this.consultantData?.ResumePath != null\r\n ? Common?.filePath + this.consultantData?.ResumePath\r\n : 'javascript:void(0)'\r\n this.getFileName(this.downloadUrl)\r\n this.getFormData()\r\n this.getConsultantReference();\r\n resolve(true)\r\n },\r\n error: () => {\r\n this.loading = false\r\n reject(true)\r\n },\r\n })\r\n })\r\n }\r\n getConsultantReference() {\r\n this.loading = true\r\n\r\n this.externalService\r\n .GetConsultantReference(this.consultantData.ConsultantId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (data) => {\r\n this.loading = false\r\n\r\n this.consultantReference = data as iReference[]\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n getFormData() {\r\n this.frmCandidateDetails = this.formBuilder.group({\r\n FirstName: [this.consultantData?.FirstName || '', [Validators.required]],\r\n MiddleName: [this.consultantData?.MiddleName || ''],\r\n LastName: [this.consultantData?.LastName || '', [Validators.required]],\r\n LegalTypeId: [this.consultantData?.LegalTypeId || '', [Validators.required]],\r\n EmailAddress: [this.consultantData?.Emailaddress || '', [Validators.required]],\r\n })\r\n }\r\n getLegalTypes() {\r\n this.loading = true\r\n\r\n this.jobService\r\n .getLegalTypes()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n\r\n this.legalTypes = res as iKeyValue[]\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n onSelectedReason(e) {\r\n this.selectedReasonId = e.ReasonID\r\n this.selectedReason = e.Name\r\n this.otherReason = ''\r\n }\r\n\r\n showLocation(ob) {\r\n if (ob.value == InterviewTypeId.FACE2FACE) {\r\n this.isShowLocation = true\r\n this.jobLocation = Common.activeJob.Location\r\n this.getLocationList(this.consultantJob?.ClientCompanyId)\r\n } else if (ob.value == InterviewTypeId.VIDEO) {\r\n this.isShowLocation = false\r\n } else {\r\n this.isShowLocation = false\r\n }\r\n }\r\n getLocationList(CompanyId) {\r\n this.loading = true\r\n this.externalService\r\n .GetCompanyLocations(CompanyId, 1)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.locationList = res\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n clearData() {\r\n this.frmInterview.get('InterviewTypeId').setValue('')\r\n this.frmInterview.get('InterviewerName').setValue('')\r\n this.frmInterview.get('InterviewerDuration').setValue('')\r\n this.frmInterview.get('InterviewerLocation').setValue('')\r\n this.frmInterview.get('AvaillDate1').setValue('')\r\n this.frmInterview.get('AvaillDate2').setValue('')\r\n this.frmInterview.get('AvaillDate3').setValue('')\r\n this.frmInterview.get('AvaillTime1').setValue('')\r\n this.frmInterview.get('AvaillTime2').setValue('')\r\n this.frmInterview.get('AvaillTime3').setValue('')\r\n }\r\n CombineDateAndTime(idate, time) {\r\n var combined\r\n try {\r\n var timeTokens = time.split(':')\r\n var hr = timeTokens[0]\r\n var min = timeTokens[1]\r\n var ampm = Number(hr) >= 12 ? 'PM' : 'AM'\r\n var timeString = hr + ':' + min + ':00'\r\n\r\n var year = new Date(idate).getFullYear()\r\n var month = new Date(idate).getMonth() + 1\r\n var day = new Date(idate).getDate()\r\n var dateString = month + '/' + day + '/' + year\r\n var datec = dateString + ',' + timeString\r\n combined = new Date(datec)\r\n return combined\r\n } catch {\r\n return null\r\n }\r\n }\r\n\r\n saveInterviewSchedule() {\r\n if (this.isShowLocation && this.locationComponent?.locationForm?.invalid) {\r\n this.locationComponent.markLocationFormAsTouched()\r\n return\r\n }\r\n this.interview.ConsultantJobID = this.consultantJobId\r\n this.interview.InterviewerName =\r\n this.frmInterview.get('InterviewerName').value == undefined\r\n ? null\r\n : this.frmInterview.get('InterviewerName').value\r\n this.interview.InterviewTypeID =\r\n this.frmInterview.get('InterviewTypeId').value == undefined\r\n ? null\r\n : this.frmInterview.get('InterviewTypeId').value\r\n this.interview.Duration =\r\n this.frmInterview.get('InterviewerDuration').value == undefined\r\n ? null\r\n : this.frmInterview.get('InterviewerDuration').value\r\n this.interview.Location =\r\n this.frmInterview.get('InterviewerLocation').value == undefined\r\n ? null\r\n : this.frmInterview.get('InterviewerLocation').value\r\n this.interview.InterviewDetails =\r\n this.frmInterview.get('InterviewDetails').value == undefined\r\n ? null\r\n : this.frmInterview.get('InterviewDetails').value\r\n this.interview.Comments =\r\n this.frmInterview.get('Comments').value == undefined ? null : this.frmInterview.get('Comments').value\r\n this.interview.CreatedDate = new Date()\r\n this.interview.CreatedBy = this.userId\r\n this.interview.IsActive = true\r\n\r\n let timeSlot1 = null\r\n if (this.frmInterview.get('AvaillDate1').value && this.frmInterview.get('AvaillTime1').value) {\r\n timeSlot1 = this.CombineDateAndTime(\r\n this.frmInterview.get('AvaillDate1').value,\r\n this.frmInterview.get('AvaillTime1').value + ':00'\r\n )\r\n }\r\n let timeSlot2 = null\r\n if (this.frmInterview.get('AvaillDate2').value && this.frmInterview.get('AvaillTime2').value) {\r\n timeSlot2 = this.CombineDateAndTime(\r\n this.frmInterview.get('AvaillDate2').value,\r\n this.frmInterview.get('AvaillTime2').value + ':00'\r\n )\r\n }\r\n let timeSlot3 = null\r\n if (this.frmInterview.get('AvaillDate3').value && this.frmInterview.get('AvaillTime3').value) {\r\n timeSlot3 = this.CombineDateAndTime(\r\n this.frmInterview.get('AvaillDate3').value,\r\n this.frmInterview.get('AvaillTime3').value + ':00'\r\n )\r\n }\r\n\r\n if (timeSlot1 != null) {\r\n this.availableTimeSlots.push({\r\n InterviewTimeSlotID: 0,\r\n InterviewID: 0,\r\n InterviewDate: format(new Date(timeSlot1), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n InterviewTimeZone: this.AvaillTZ1,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true,\r\n })\r\n }\r\n if (timeSlot2 != null) {\r\n this.availableTimeSlots.push({\r\n InterviewTimeSlotID: 0,\r\n InterviewID: 0,\r\n InterviewDate: format(new Date(timeSlot2), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n InterviewTimeZone: this.AvaillTZ2,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true,\r\n })\r\n }\r\n if (timeSlot3 != null) {\r\n this.availableTimeSlots.push({\r\n InterviewTimeSlotID: 0,\r\n InterviewID: 0,\r\n InterviewDate: format(new Date(timeSlot3), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n InterviewTimeZone: this.AvaillTZ3,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true,\r\n })\r\n }\r\n this.interviewSchedule.Interview = this.interview\r\n this.interviewSchedule.InterviewSlots = this.availableTimeSlots\r\n\r\n this.loading = true\r\n this.externalService\r\n .AddInterview(this.interviewSchedule)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (cjResult) => {\r\n this.loading = false\r\n if (cjResult) {\r\n this.InterviewSlot = cjResult?.InterviewSlots\r\n this.interviewScheduleApproved = true\r\n let comment =\r\n this.frmInterview.get('Comments').value == undefined\r\n ? 'None'\r\n : this.frmInterview.get('Comments').value\r\n let location = this.locationService.getCurrentLocation()\r\n if (location != null && this.interview.InterviewTypeID === InterviewTypeId.FACE2FACE) {\r\n this.interview.Location = location.FullAddress\r\n this.saveInterviewLocation(location, cjResult)\r\n } else {\r\n this.updateProcessWorkFlow(this.menuIds.CON_JOB_INTRVW_SCHEDUNG, comment)\r\n this.isScheduled = true\r\n }\r\n this.notifyService.showSuccess(\r\n 'Consultant Job Interview successfully Scheduled! ',\r\n 'Consultant Job'\r\n )\r\n }\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n saveInterviewLocation(location: iLocation, interviewDetails: iInterviewSchedule) {\r\n location.ObjectId = interviewDetails.Interview.InterviewID\r\n location.ObjectTypeId = 10\r\n location.LocationTypeID = 0\r\n location.LocationID = 0\r\n this.externalService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n this.updateProcessWorkFlow(this.menuIds.CON_JOB_INTRVW_SCHEDUNG, CandidateStatusName.Interview_Schedule)\r\n this.showSchedule()\r\n })\r\n }\r\n\r\n saveInterview(status) {\r\n if (status === CandidateStatusName.Reject) {\r\n this.updateProcessWorkFlow(CandidateJobMenuId.CON_JOB_INTRVW_REJECT, 'Candidate rejected interview date') //Rejected\r\n this.statusName = CandidateStatusName.Reject\r\n this.isInterviewRejected = true\r\n //this.toastr.success('Interview successfully Rejected! ' , 'Interview', { timeOut: Common.toastTimeout });\r\n this.showReason()\r\n this.showConfirm()\r\n } else {\r\n if (new Date(this.interviewDateTime)) {\r\n this.interview.InterviewDateTime = format(new Date(this.interviewDateTime), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n this.interview.InterviewTimeZone = this.interviewTimeZone\r\n this.interview.Comments = null\r\n this.isConfirm = true\r\n this.statusName = CandidateStatusName.Interview_Accept\r\n this.SaveInterviewDate(this.interview)\r\n this.showConfirm()\r\n }\r\n }\r\n\r\n rejectInterview() {\r\n this.updateProcessWorkFlow(CandidateJobMenuId.CON_JOB_REJECTED, 'Candidate rejected interview')\r\n this.statusName = CandidateStatusName.Reject\r\n this.isInterviewRejected = true\r\n this.showReason()\r\n this.showConfirm()\r\n }\r\n\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n\r\n saveApprovalStatus(status) {\r\n this.statusName = status\r\n\r\n if (status == ConsultantJobstatusName.CONSULTANT_JOB_REJECT) {\r\n let comment =\r\n this.selectedReasonId! > 0\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : 'None'\r\n this.updateProcessWorkFlow(this.menuIds.CON_JOB_REJECTED, comment) // reject\r\n this.showReject()\r\n this.showConfirm()\r\n } else if (status == ConsultantJobstatusName.CONSULTANT_JOB_APPROVE) {\r\n let comment\r\n const PREVIOUS_COMMENT = this.consultantJob.SummaryNote\r\n if (PREVIOUS_COMMENT === '' && this.isThePreviousCommentFromMenu(PREVIOUS_COMMENT)) {\r\n comment = this.menuIds.CON_JOB_APPROVED\r\n } else {\r\n comment = this.consultantJob?.SummaryNote\r\n }\r\n this.updateProcessWorkFlow(this.menuIds.CON_JOB_APPROVED, comment)\r\n this.showCandidateDetails()\r\n this.showConfirm()\r\n }\r\n }\r\n\r\n updateProcessWorkFlow(menuId, comment, isUpdateActiveObject = true) {\r\n return new Promise((resolve, reject) => {\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n\r\n this.loading = true\r\n this.externalService\r\n .processWorkFlow(\r\n this.consultantJobId,\r\n Common.enumObjectTypes.ConsultantJob,\r\n menuId,\r\n Number(this.roleId),\r\n comment,\r\n this.userId\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n this.loading = false\r\n dbresult = result\r\n\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n if (isUpdateActiveObject) {\r\n this.externalService.setActiveObject(\r\n this.consultantJobId,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n Number(this.roleId),\r\n nextStatusID,\r\n 3\r\n )\r\n }\r\n\r\n if (menuId === CandidateJobMenuId.CON_JOB_SUBMITTED) {\r\n this.statusName = CandidateStatusName.Submit\r\n this.isShowMailPreview = false\r\n }\r\n resolve(true)\r\n })\r\n })\r\n }\r\n\r\n GetInterview(interviewid) {\r\n this.loading = true\r\n return new Promise((resolve, reject) => {\r\n this.externalService\r\n .GeInterview(interviewid)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (jclst) => {\r\n this.loading = false\r\n this.interview = jclst[0] as iInterview\r\n if (\r\n this.interview.ConsultantJobStatusID !=\r\n ConsultantJobstatusID.CONSULTANT_JOB_INTERVIEW_SCHEDULED\r\n ) {\r\n this.isValid = false\r\n this.isInterview = false\r\n } else {\r\n this.isValid = true\r\n this.isInterview = true\r\n }\r\n if (this.actionId === CandidateAction.Reject) {\r\n this.consultantJobStatusReasons(59)\r\n this.isReason = true\r\n } else {\r\n this.isReason = false\r\n }\r\n resolve(true)\r\n },\r\n error: () => {\r\n this.loading = false\r\n reject(true)\r\n },\r\n })\r\n })\r\n }\r\n\r\n getCompanyContacts(CompanyId) {\r\n this.externalService\r\n .getCompanyContacts(CompanyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: iContact[]) => {\r\n this.filterContact = res\r\n if (Common.activeJob.CompanyContact) {\r\n const contact = res?.filter(\r\n (contact) => contact?.ContactName === Common?.activeJob?.CompanyContact\r\n )[0]\r\n this.frmInterview?.get('InterviewerName')?.setValue(contact?.ContactName)\r\n this.selectedContactId = contact?.ContactID\r\n }\r\n })\r\n }\r\n\r\n GetInterviewAvailableTimeSlots(interviewid) {\r\n this.loading = true\r\n return new Promise((resolve, reject) => {\r\n this.externalService\r\n .GeInterviewAvailableTimeSlots(interviewid)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (jclst) => {\r\n this.loading = false\r\n this.availTimeSlot = jclst as iInterviewTimeSlot[]\r\n this.interviewDateTime = this.availTimeSlot[0].InterviewDate\r\n this.interviewTimeZone = this.availTimeSlot[0].InterviewTimeZone\r\n if (this.availTimeSlot.length == 1) {\r\n this.saveInterview('accept')\r\n }\r\n resolve(true)\r\n },\r\n error: () => {\r\n this.loading = false\r\n reject(true)\r\n },\r\n })\r\n })\r\n }\r\n\r\n slotChange(event) {\r\n this.interviewDateTime = event.InterviewDate\r\n this.interviewTimeZone = event.InterviewTimeZone\r\n }\r\n showSchedule() {\r\n this.isInterview = !this.isInterview\r\n }\r\n showInterviewReject() {\r\n setTimeout(() => {\r\n this.consultantJobStatusReasons(59)\r\n }, 300)\r\n this.showReason()\r\n this.showSchedule()\r\n }\r\n showReason() {\r\n this.isReason = !this.isReason\r\n }\r\n SaveInterviewDate(interview) {\r\n this.externalService\r\n .SaveInterview(interview)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.interview = res\r\n this.updateProcessWorkFlow(\r\n CandidateJobMenuId.CON_JOB_INTRVW_ACCEPT,\r\n CandidateStatusName.Interview_Accepted\r\n ) // when Accept\r\n this.showSchedule()\r\n this.showConfirm()\r\n this.saveCandidateChanges()\r\n })\r\n }\r\n\r\n private _getDataForCandidateSubmission() {\r\n if (this.isValidConsultantJobData() != false) {\r\n this.isMandatoryInfoFilledForCandidateJob = true\r\n this.loading = true\r\n this.externalService\r\n .getConsultantJobSkill(this.consultantId, this.jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res != null) {\r\n this._commonService.saveCanvasImage(res, this.consultantJobId).then(async (data) => {\r\n if (data['FileId'] != null || data['FileId'] != undefined) {\r\n this.loading = false\r\n await this.updateProcessWorkFlow(\r\n this.menuIds.CON_JOB_PREVIEW,\r\n this.candidateNotesFormControl.value,\r\n false\r\n )\r\n this.getEmailHtml(this.consultantJobId)\r\n }\r\n })\r\n }\r\n })\r\n } else {\r\n this.showCandidateJobStatusEdit()\r\n }\r\n }\r\n\r\n onSelectedContact(contact) {\r\n this.selectedContactId = contact.ContactID\r\n }\r\n\r\n navigateToHome() {\r\n this._router.navigate([''])\r\n }\r\n\r\n private _updateObjectStatus(emailData: Email, comments) {\r\n this.loading = true\r\n this._commonService\r\n .updateOjectStatus(\r\n this.consultantJob.ConsultantJobID,\r\n ObjectType.ConsultantJob,\r\n ConsultantJobStatuses.CON_JOB_SUBMITTED,\r\n comments,\r\n -1\r\n )\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n switchMap(() => {\r\n return this._commonService.sendEmail(emailData.EmailItemID, 8, -1)\r\n })\r\n )\r\n .subscribe(\r\n () => {\r\n this.statusName = CandidateStatusName.Submit\r\n this.isShowMailPreview = false\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved.', 'Candidate Job Status')\r\n },\r\n () => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n getEmailHtml(objectID) {\r\n const objectTypeID: number = 6\r\n const statusID: number = 7\r\n this.loading = true\r\n this._commonService\r\n .getEmailContent(objectID, objectTypeID, statusID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((email: Email) => {\r\n this.isMailPreviewLoading = false\r\n this.loading = false\r\n this.emailData = email\r\n this.isShowMailPreview = true\r\n email.Body = email?.Body.replace(/\\n/g, '')\r\n if (email?.Body) this.emailHtml = this._sanitize.bypassSecurityTrustHtml(email?.Body)\r\n })\r\n }\r\n\r\n async showCandidateMailPreview() {\r\n this.isConfirm = false\r\n this.isMailPreviewLoading = true\r\n\r\n this.closeDialog()\r\n this.requestType = this.requestTypes.CONSULTANT_JOB_SUBMIT\r\n await this._getJobById(this.jobId)\r\n await this._getConsultantJobById(this.jobId, -1)\r\n this._getDataForCandidateSubmission()\r\n this.maxBillRate = Common.activeJob.MaxBillRate\r\n await this.getMinimumPayRate(\r\n this.consultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n this.consultantJob.ConsultantTypeID,\r\n this.consultantJob.BillRate,\r\n this.consultantJob.PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n })\r\n }\r\n getFileName(url: string): string {\r\n if (url === 'javascript:void(0)') {\r\n return (this.resumeFileName = 'Please attach resume file')\r\n }\r\n\r\n const lastIndex = url.lastIndexOf('\\\\')\r\n\r\n this.resumeFileName = url.substring(lastIndex + 1)\r\n\r\n return this.resumeFileName\r\n }\r\n\r\n showCandidateJobStatusEdit() {\r\n this.isMandatoryInfoFilledForCandidateJob = false\r\n this.initJobEditForm()\r\n this.getDataForCandidateJobStatusEdit()\r\n }\r\n\r\n initJobEditForm() {\r\n this.jobEditForm = this.formBuilder.group(\r\n {\r\n BillRate: [null],\r\n PayRate: [null],\r\n Salary: [null],\r\n ConsultantTypeID: [null, Validators.required],\r\n VendorName: [''],\r\n VendorContactName: [null],\r\n RecruiterId: [null, Validators.required],\r\n Margin: [{ value: 0, disabled: true }],\r\n },\r\n {\r\n validator: [this.PayRangeValidator],\r\n }\r\n )\r\n }\r\n PayRangeValidator = (fg: FormGroup) => {\r\n var PayRate =\r\n fg.get('PayRate').value == undefined || fg.get('PayRate').value == null || fg.get('PayRate').value == ''\r\n ? 0\r\n : fg.get('PayRate').value\r\n var minPayRate = this.minimumPayRate\r\n\r\n if (PayRate >= minPayRate) {\r\n this.isPayRangeValid = true\r\n\r\n return this.isPayRangeValid\r\n } else {\r\n this.isPayRangeValid = false\r\n\r\n return this.isPayRangeValid\r\n }\r\n }\r\n\r\n async onRateKeyPressed() {\r\n var ClientRate = Number(\r\n this.jobEditForm.get('BillRate').value == '' ? 0 : this.jobEditForm.get('BillRate').value\r\n )\r\n var PayRate = Number(this.jobEditForm.get('PayRate').value == '' ? 0 : this.jobEditForm.get('PayRate').value)\r\n var consultantTypeID = Number(\r\n this.jobEditForm.get('ConsultantTypeID').value == '' ? 0 : this.jobEditForm.get('ConsultantTypeID').value\r\n )\r\n await this.getMinimumPayRate(\r\n this.consultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n consultantTypeID,\r\n ClientRate,\r\n PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n this.jobEditForm.get('PayRate').markAllAsTouched()\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n })\r\n }\r\n\r\n getMinimumPayRate(companyId, jobCategoryId, consultantTypeId, billRate, payrate) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n var MarkupType\r\n var MarkupValue\r\n this.minimumPayRate = 0\r\n this.externalService\r\n .getJobCategoryByCompany(companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((jobcatsetting) => {\r\n this.loading = false\r\n if (jobcatsetting) {\r\n //A specific category\r\n var jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.length == 0) {\r\n jobCategoryId = 1312 // All - other category setting\r\n jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n }\r\n\r\n if (jc.indexOf(jobCategoryId) > -1) {\r\n if (Common.ConfigValues != null) {\r\n MarkupType = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 204 && //Markup Type\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n }\r\n\r\n if (consultantTypeId == Common.enumConsultantType.CAN_C2C) {\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.C2C)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_C2O) {\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.C2O)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_W2) {\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n }\r\n MarkupValue = isNaN(MarkupValue) ? 0 : MarkupValue\r\n const factor = 10 ** 2\r\n var minPay = billRate / (1 + MarkupValue / 100)\r\n this.minimumPayRate = Math.round(minPay * factor) / factor\r\n if (MarkupType == 202) {\r\n if (payrate < this.minimumPayRate) {\r\n this.isPayRangeValid == false\r\n } else {\r\n this.isPayRangeValid == true\r\n }\r\n } else if (MarkupType == 203) {\r\n if (payrate < this.minimumPayRate) {\r\n this.isPayRangeValid == false\r\n } else {\r\n this.isPayRangeValid == true\r\n }\r\n }\r\n resolve(\r\n isNaN(this.minimumPayRate) ||\r\n this.minimumPayRate == undefined ||\r\n this.minimumPayRate == null\r\n ? (this.minimumPayRate = 0)\r\n : this.minimumPayRate\r\n )\r\n return isNaN(this.minimumPayRate) ||\r\n this.minimumPayRate == undefined ||\r\n this.minimumPayRate == null\r\n ? (this.minimumPayRate = 0)\r\n : this.minimumPayRate\r\n } else {\r\n this.minimumPayRate = 0\r\n }\r\n }\r\n })\r\n resolve(\r\n this.minimumPayRate || this.minimumPayRate == undefined || this.minimumPayRate == null\r\n ? (this.minimumPayRate = 0)\r\n : this.minimumPayRate\r\n )\r\n return isNaN(this.minimumPayRate) || this.minimumPayRate == undefined || this.minimumPayRate == null\r\n ? (this.minimumPayRate = 0)\r\n : this.minimumPayRate\r\n })\r\n }\r\n\r\n isValidConsultantJobData(): boolean {\r\n if (this.consultantJob?.ConsultantTypeID <= 0) {\r\n return false\r\n }\r\n\r\n if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2C) {\r\n if (this.consultantJob.VendorContactID <= 0) {\r\n return false\r\n }\r\n if (this.consultantJob.VendorName == '') {\r\n return false\r\n }\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2O) {\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_1099) {\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_W2) {\r\n if (this.job.JobTypeID == 11 || this.job.JobTypeID == 12) {\r\n if (this.consultantJob.Salary <= 0) {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n if (this.consultantJob.RecruiterId <= 0) {\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n getDataForCandidateJobStatusEdit() {\r\n this.loading = true\r\n forkJoin({\r\n recruiter: this.externalService.GetRecruiterByRoleId(\r\n Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager\r\n ),\r\n consultantTypes: this._consultantService.getLookup('ConsultantTypelD'),\r\n markupType: this.externalService.getConfig(this.job?.CompanyId),\r\n })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: ({ recruiter, consultantTypes, markupType }) => {\r\n this.loading = false\r\n this.recruiters = recruiter as User[]\r\n this.consultantTypes = consultantTypes as ConsultantType[]\r\n this.markTypeValue =\r\n markupType.filter((item) => item.LookupID == JobSettingType.MarkupType)[0]?.Value ==\r\n MarkupTypeNames.Goal_Markup\r\n ? this.markupType.Goal_Markup\r\n : this.markupType.Max_Markup\r\n if (this.markTypeValue == this.markupType.Goal_Markup) {\r\n this.jobEditForm.get('PayRate').clearValidators()\r\n if (this.job.JobTypeID === JobTypes.Contract) {\r\n this.jobEditForm.get('PayRate').setValidators([Validators.required])\r\n }\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n }\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n async contractTypeChangeForJob(selectedValue) {\r\n this.jobEditForm.get('ConsultantTypeID').setValue(selectedValue)\r\n\r\n await this.getMinimumPayRate(\r\n this.consultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n this.consultantJob.ConsultantTypeID,\r\n this.consultantJob.BillRate,\r\n this.consultantJob.PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n })\r\n }\r\n\r\n submitCandidate() {\r\n this.isCandidateSubmitted = true\r\n this.updateProcessWorkFlow(CandidateJobMenuId.CON_JOB_SUBMITTED, CandidateStatusName.Submit)\r\n }\r\n\r\n submitAndEmailClient() {\r\n this._updateObjectStatus(this.emailData, CandidateStatusName.Preview_And_Submit)\r\n }\r\n\r\n saveConsultantJob() {\r\n const consultantJob: iConsultantJob = { ...this.consultantJob }\r\n\r\n consultantJob.PayRate = Number(\r\n this.jobEditForm.get('PayRate').value == '' ? 0 : this.jobEditForm.get('PayRate').value\r\n )\r\n consultantJob.BillRate = Number(\r\n this.jobEditForm.get('BillRate').value == '' ? 0 : this.jobEditForm.get('BillRate').value\r\n )\r\n consultantJob.Salary = Number(\r\n this.jobEditForm.get('Salary').value == '' ? 0 : this.jobEditForm.get('Salary').value\r\n )\r\n consultantJob.CreatedDate = new Date()\r\n consultantJob.CreatedBy = -1\r\n consultantJob.IsActive = true\r\n consultantJob.CompanyVendorID = 0\r\n consultantJob.VendorContactID = 0\r\n consultantJob.ConsultantTypeID = Number(\r\n this.jobEditForm.get('ConsultantTypeID').value == '' ? 0 : this.jobEditForm.get('ConsultantTypeID').value\r\n )\r\n consultantJob.RecruiterId = Number(\r\n this.jobEditForm.get('RecruiterId').value == '' ? 0 : this.jobEditForm.get('RecruiterId').value\r\n )\r\n\r\n this.loading = true\r\n this.externalService\r\n .saveConsultantJob(consultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (cjResult) => {\r\n if (cjResult) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved.', 'Candidate Job Status')\r\n this._getDataForCandidateSubmission()\r\n }\r\n },\r\n (error) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n get allowedTypeForInput() {\r\n let types = ''\r\n this.allowedFileTypes.forEach((type) => {\r\n types += '.' + type + ','\r\n })\r\n return types\r\n }\r\n\r\n attachFormattedResume(event, isMailPreview?) {\r\n this.FILE = event.target.files[0]\r\n if (this.allowedFileTypes.includes(this.FILE.name.split('.').pop())) {\r\n this.resumeFileName = this.FILE.name\r\n this.fileName = this.FILE.name\r\n this.IsFormattedResume = true\r\n this.downloadUrl = null\r\n // this._uploadFormattedResume(this.FILE)\r\n } else {\r\n this.notifyService.showError(\r\n `File type ${this.FILE?.name?.split('.').pop()} is not allowed.`,\r\n 'Candidate Resume'\r\n )\r\n }\r\n\r\n if (isMailPreview) {\r\n this.uploadFormattedResume()\r\n }\r\n }\r\n deleteFile() {\r\n this.FILE = null\r\n this.fileName = null\r\n }\r\n uploadFormattedResume() {\r\n this.loading = true\r\n const FORM_DATA = new FormData()\r\n FORM_DATA.append('file', this.FILE)\r\n FORM_DATA.append('consultantJobId', this.consultantJob?.ConsultantJobID?.toString())\r\n FORM_DATA.append('resumeTypeId', this.resumeFileType?.FORMATTED?.toString())\r\n FORM_DATA.append('userId', '-1')\r\n this._consultantService\r\n .uploadFormattedJobResume(FORM_DATA)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: () => {\r\n this.emailNotificationAfterFileUpload()\r\n this.isFormattedResumeAttached = true\r\n this.loading = false\r\n this.notifyService.showSuccess('Uploaded successfully.', 'Candidate Resume')\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError('Error while uploading Resume.', 'Candidate Resume')\r\n },\r\n })\r\n }\r\n saveOffer(status) {\r\n // if (status == \"reject\") {\r\n // this.updateProcessWorkFlow(46);\r\n // this.showReason();\r\n // this.showConfirm();\r\n // }\r\n // else {\r\n // this.updateProcessWorkFlow(45);\r\n // this.showOffer();\r\n // this.showConfirm();\r\n // }\r\n this.statusName = status\r\n\r\n if (status == ConsultantJobstatusName.CONSULTANT_JOB_OFFER_REJECT) {\r\n let comment =\r\n this.selectedReasonId! > 0\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : 'None'\r\n this.updateProcessWorkFlow(this.menuIds.CON_JOB_OFFER_REJECT, comment) // reject\r\n this.showReject()\r\n this.showConfirm()\r\n this.isOfferReject = true\r\n } else if (status == ConsultantJobstatusName.CONSULTANT_JOB_OFFER_ACCEPT) {\r\n this.updateProcessWorkFlow(\r\n this.menuIds.CON_JOB_OFFER_ACCEPT,\r\n ConsultantJobstatusName.CONSULTANT_JOB_APPROVE\r\n )\r\n this.showCandidateDetails()\r\n this.showConfirm()\r\n }\r\n }\r\n\r\n showCandidateNotesEditDialog(templateRef: TemplateRef) {\r\n this.candidateNotesFormControl.patchValue(this.consultantJob?.SummaryNote)\r\n this._commonMatDialogService.open({\r\n component: templateRef,\r\n data: {},\r\n })\r\n }\r\n\r\n async saveCandidateNotes() {\r\n await this.updateProcessWorkFlow(this.menuIds.CON_JOB_PREVIEW, this.candidateNotesFormControl.value)\r\n this.showCandidateMailPreview()\r\n }\r\n\r\n closeDialog() {\r\n this._commonMatDialogService.close()\r\n }\r\n\r\n isThePreviousCommentFromMenu(menuTitle: string): boolean {\r\n const TOOLBAR_ITEMS = this._commonService.menuItems\r\n if (menuTitle === MenuName.CON_JOB_APPLIED) {\r\n return true\r\n }\r\n return TOOLBAR_ITEMS?.filter((item) => item.MenuName === menuTitle).length ? true : false\r\n }\r\n\r\n updateReference() {\r\n this.isConfirm = true\r\n // this.isReferencePage = false\r\n }\r\n\r\n saveCandidateChanges() {\r\n this.saveConsultantDetails()\r\n }\r\n\r\n saveConsultantDetails() {\r\n const CONSULTANT = { ...this.consultantData }\r\n ;(CONSULTANT.Emailaddress = this.frmCandidateDetails?.get('EmailAddress')?.value),\r\n (CONSULTANT.FirstName = this.frmCandidateDetails?.get('FirstName')?.value),\r\n (CONSULTANT.LastName = this.frmCandidateDetails?.get('LastName')?.value),\r\n (CONSULTANT.MiddleName = this.frmCandidateDetails?.get('MiddleName')?.value),\r\n (CONSULTANT.LegalTypeId = this.frmCandidateDetails?.get('LegalTypeId')?.value\r\n ? this.frmCandidateDetails?.get('LegalTypeId').value\r\n : null)\r\n CONSULTANT.Contact = {}\r\n CONSULTANT.Contact.ContactID = Number(CONSULTANT?.ContactId)\r\n CONSULTANT.Contact.FirstName = CONSULTANT?.FirstName\r\n CONSULTANT.Contact.LastName = CONSULTANT?.LastName\r\n CONSULTANT.Contact.MiddleName = CONSULTANT?.MiddleName\r\n CONSULTANT.Contact.EmailAddress = CONSULTANT?.Emailaddress\r\n CONSULTANT.Contact.CellPhone = CONSULTANT?.CellPhone\r\n CONSULTANT.Contact.TitleId = CONSULTANT?.TitleId > 0 ? CONSULTANT?.TitleId : 0\r\n CONSULTANT.Contact.IsActive = true\r\n this.loading = true\r\n this.externalService\r\n .saveConsultantDetails(CONSULTANT)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: () => {\r\n this.loading = false\r\n // this.notifyService.showSuccess('Candidate Details Saved successfully.', 'Candidate Details')\r\n },\r\n error: () => {\r\n this.loading = false\r\n // this.notifyService.showError('Error while Saving Details.', 'Candidate Details')\r\n },\r\n })\r\n }\r\n\r\n SaveReferencePageChanges() {\r\n this.saveConsultantReference()\r\n this.isConfirm = !this.isConfirm\r\n // this.isReferencePage = !this.isReferencePage\r\n }\r\n saveConsultantReference() {\r\n let candidateReferenceArray: iReference[] = []\r\n\r\n this.referenceDetails.controls.forEach((formGroup: FormGroup) => {\r\n const CellPhone = formGroup.get('CellPhone').value\r\n const Company = formGroup.get('Company').value\r\n const JobTitle = formGroup.get('JobTitle').value\r\n\r\n const COMPANY_ID =\r\n this.allCompanies.find((company: iCompany) => {\r\n return company?.Name?.toLowerCase().trim() === Company?.toLowerCase()?.trim()\r\n })?.CompanyId || 0\r\n const TITLE_ID =\r\n this.addedTitlesForReference.find((title: JobTitle) => {\r\n return title?.JobTitleName?.toLowerCase().trim() === JobTitle?.toLowerCase()?.trim()\r\n })?.JobTitleID || 0\r\n\r\n const ReferenceFirstName = formGroup.get('ReferenceFirstName').value\r\n const ReferenceLastName = formGroup.get('ReferenceLastName').value\r\n const RefEmailAddress = formGroup.get('EmailAddress').value\r\n const newDynamic: iReference = {\r\n ConsultantReferenceID: this.consultantReference?.[0]?.ConsultantReferenceID || 0,\r\n ConsultantID: this.consultantData.ConsultantId || 0,\r\n Name: ReferenceFirstName + ' ' + ReferenceLastName || '',\r\n Title: JobTitle || '',\r\n CompanyName: Company || '',\r\n EmailAddress: RefEmailAddress.toString() || '',\r\n WorkPhone: this.consultantData?.WorkPhone ? this.consultantData?.WorkPhone.toString() : '',\r\n CompanyId: COMPANY_ID,\r\n TitleId: TITLE_ID,\r\n ContactId: this.consultantData.ContactId ? this.consultantData.ContactId : null,\r\n CreatedBy: 0,\r\n CellPhone: CellPhone,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n IsActive: true,\r\n }\r\n candidateReferenceArray.push(newDynamic)\r\n })\r\n let referenceData = []\r\n if (this.consultantReference.length === 0) {\r\n referenceData = [...candidateReferenceArray]\r\n } else {\r\n referenceData = [...this.consultantReference, ...candidateReferenceArray]\r\n }\r\n\r\n const data = {\r\n consultantId: this.consultantId,\r\n reference: referenceData,\r\n }\r\n this.loading = true\r\n this.externalService\r\n .saveConsultantReferenceDetails(data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: () => {\r\n this.loading = false\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n onJobTitleSelected(title) {\r\n this.addedTitlesForReference.push(title)\r\n }\r\n\r\n isReferenceFormValid(): boolean {\r\n return Object.values(this.frmCandidateReference.value).some((value) => !!value)\r\n }\r\n formatPhoneNumber() {\r\n let phoneNumberString = this.frmCandidateReference.get('CellPhone').value\r\n var cleaned = ('' + phoneNumberString).replace(/\\D/g, '')\r\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\r\n if (match) {\r\n return '(' + match[1] + ') ' + match[2] + '-' + match[3]\r\n }\r\n return null\r\n }\r\n onPastePhone(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n this.frmCandidateReference.get('CellPhone').setValue(clipboardData.toString().trim())\r\n }\r\n applyFilterTitle(title) {\r\n title = title.trim()\r\n this.externalService\r\n .jobTitleSearch(title)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n onSearchKeyPressed(): void {\r\n if (this.frmCandidateReference.get('JobTitle').value != '') {\r\n this.externalService\r\n .jobTitleSearch(this.frmCandidateReference.get('JobTitle').value)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n }\r\n applyFilterClient(client?) {\r\n if (client == undefined || client == null) client = ''\r\n this.companies = this.allCompanies?.filter((x: iCompany) =>\r\n x.Name.toLowerCase().includes(client.trim().toLowerCase())\r\n )\r\n }\r\n getVendors() {\r\n this.loading = true\r\n this.externalService\r\n .getVendors()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (vendors) => {\r\n this.loading = false\r\n this.allCompanies = vendors\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n this.applyFilterClient()\r\n }\r\n emailNotificationAfterFileUpload() {\r\n this.externalService\r\n .sendEmail(this.consultantJobId, 6, -1, 11, 'Formatted Resuem Uploaded', this.userId, -1, 18)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: () => {\r\n this.loading = false\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError('Error while sending email.', 'Email')\r\n },\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n Job Title : {{ consultantJob?.JobTitleName }}\r\n
\r\n
\r\n Client : {{ consultantJob?.ClientName }}\r\n
\r\n
\r\n Job Type : {{ consultantJob?.JobType }}\r\n
\r\n
\r\n Candidate Name : {{ consultantJob?.ConsultantName }}\r\n
\r\n
\r\n Candidate Contact :\r\n {{ consultantJob?.EmailAddress }} | {{ consultantJob?.ContactPhone }}\r\n
\r\n\r\n
\r\n Bill Rate : ${{ consultantJob?.BillRate }}\r\n
\r\n
\r\n Pay Rate : ${{ consultantJob?.PayRate }}/hr\r\n
\r\n
\r\n Salary : ${{ consultantJob?.Salary }} / annum\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Are you sure you want to Approve the candidate?

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Are you sure you want to Reject the candidate?

\r\n
\r\n Reject Reason\r\n \r\n \r\n \r\n {{ reason.Name }}\r\n \r\n \r\n \r\n \r\n Comments\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Candidate Status \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Candidate status is changed to {{ statusName }}
\r\n
\r\n An Email is sent to Data Support requesting for the Formatted Resume.\r\n
\r\n

\r\n Thank you for your timely response! We will move forward with the next steps.\r\n

\r\n
\r\n \r\n \r\n Submit\r\n \r\n  \r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Candidate status is already changed to Approved.
\r\n
\r\n An Email is sent to Data Support requesting for the Formatted Resume.\r\n
\r\n

\r\n Thank you for your timely response! We will move forward with the next steps.\r\n

\r\n
\r\n \r\n Submit\r\n \r\n  \r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Status \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Sorry, Status already changed!
\r\n

No Valid data is available/Approval link has expired.

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n You have not taken any action yet!\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n Interview Schedule \r\n
\r\n
\r\n
\r\n
\r\n Candidate : {{ consultant?.FirstName }} {{ consultant?.LastName }}\r\n \r\n
\r\n Email : {{ consultant?.Emailaddress }} \r\n
\r\n Job Title : {{ job?.JobTitleName }} \r\n
\r\n Client : {{ job?.CompanyName }} \r\n
\r\n Job ID : {{ job?.JobId }} \r\n
\r\n Job Code : {{ job?.JobCode }} \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Interviewer Name*\r\n \r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Interview Type*\r\n \r\n \r\n \r\n {{ type.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Duration (Hr)*\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Interview Location\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Interview Details\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n 1st Available Date and Time*\r\n

\r\n
\r\n
\r\n
\r\n Date*\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Time*\r\n \r\n \r\n \r\n
\r\n
\r\n Time Zone*\r\n \r\n \r\n Time Zone\r\n {{\r\n timeZone\r\n }}\r\n \r\n \r\n
\r\n
\r\n
\r\n

2nd Available Date and Time

\r\n
\r\n\r\n
\r\n
\r\n Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Time\r\n \r\n \r\n \r\n
\r\n
\r\n Time Zone\r\n \r\n \r\n Time Zone\r\n {{\r\n timeZone\r\n }}\r\n \r\n \r\n
\r\n
\r\n
\r\n

3rd Available Date and Time

\r\n
\r\n
\r\n
\r\n Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Time\r\n \r\n \r\n \r\n
\r\n
\r\n Time Zone\r\n \r\n \r\n Time Zone\r\n {{\r\n timeZone\r\n }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Schedule Interview\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Interview successfully Scheduled!

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n Sorry, No Valid data is available!\r\n
\r\n Candidate job status is in\r\n \r\n {{\r\n consultantJob?.ConsultantJobStatus == null\r\n ? 'unknown'\r\n : consultantJob?.ConsultantJobStatus\r\n }}\r\n \r\n stage. Please contact your recruiter for more information.\r\n
\r\n
\r\n
\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Candidate Status \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Candidate Interview schedule success.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Name :\r\n
\r\n\r\n
\r\n \r\n {{ consultant?.FirstName }} {{ consultant?.LastName }}\r\n
\r\n
\r\n
\r\n
\r\n Email :\r\n
\r\n\r\n
\r\n {{ consultant?.Emailaddress }} \r\n
\r\n
\r\n
\r\n
\r\n Job Title :\r\n
\r\n\r\n
\r\n {{ job?.JobTitleName }}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Client Name :\r\n
\r\n
\r\n {{ job?.CompanyName }} \r\n
\r\n
\r\n
\r\n Interview Details :\r\n
\r\n
\r\n
\r\n
\r\n Interviewer Name :\r\n
\r\n
\r\n {{ interview.InterviewerName }}\r\n
\r\n
\r\n
\r\n
\r\n Interview Type :\r\n
\r\n
\r\n \r\n {{ interviewTypeText[interview.InterviewTypeID] }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Duration (Hr) :\r\n
\r\n
\r\n {{ interview.Duration ? interview.Duration : '-' }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Interview Location :\r\n
\r\n
\r\n {{ interview.Location ? interview.Location : '-' }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Interview Details :\r\n
\r\n
\r\n {{\r\n interview.InterviewDetails\r\n ? interview.InterviewDetails\r\n : '-'\r\n }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Interview Available slot(s):\r\n
\r\n
\r\n \r\n \r\n {{ interviewSlot?.InterviewDate | date:'MMM d, yyyy h:mm a' }} {{ interviewSlot?.InterviewTimeZone }}, \r\n \r\n No available slots\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n

Are you sure want to reject the interview?

\r\n
\r\n \r\n \r\n \r\n {{ reason.Name }}\r\n \r\n \r\n \r\n \r\n Comments\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Back to Home\r\n \r\n \r\n Reject\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n \r\n Candidate status is changed to {{ statusName }}

\r\n

Thank you for your timely response! We will move forward with the next steps.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Candidate Status \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Sorry, No Valid data is available!
\r\n

\r\n Interview is already approved or rejected. Please contact your recruiter for more information.\r\n

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Leaptiger\r\n
\r\n
\r\n
INTERVIEW DETAILS
\r\n
\r\n
\r\n Interviewer Name : {{ interview?.InterviewerName | nullValueReplace }}\r\n
\r\n
\r\n Interviewer Type : \r\n {{ interview?.InterviewType | nullValueReplace }}\r\n
\r\n
\r\n Duration (Hr) : \r\n\r\n {{ interview?.Duration | nullValueReplace }}\r\n
\r\n \r\n Location : \r\n\r\n {{ interview?.Location | nullValueReplace }}\r\n
\r\n
\r\n
\r\n Please select an available time slot for your interview :\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n Other Interview Details : \r\n\r\n
{{\r\n interview?.InterviewDetails | nullValueReplace\r\n }}\r\n
\r\n\r\n
\r\n Please confirm the interview\r\n
\r\n \r\n Reject \r\n \r\n Confirm\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n

Are you sure want to reject the interview?

\r\n
\r\n \r\n \r\n \r\n {{ reason.Name }}\r\n \r\n \r\n \r\n \r\n Comments\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Back to Home\r\n \r\n \r\n Back\r\n \r\n \r\n Reject\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Candidate status is changed to {{ statusName }}
\r\n

\r\n Thank you for your timely response! We will move forward with the next steps.\r\n

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n Candidate Status \r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Sorry, No Valid data is available!
\r\n

\r\n Interview is already approved or rejected. Please contact your recruiter for more\r\n information.\r\n

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n Mail Preview \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n attach_file\r\n \r\n {{ resumeFileName }}\r\n
\r\n
\r\n edit\r\n \r\n
\r\n
\r\n
\r\n \r\n Edit Notes\r\n \r\n \r\n \r\n Submit & Email\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n \r\n Candidate status is changed to {{ statusName }}

\r\n

Thank you for your timely response! We will move forward with the next steps.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n See Mail Preview\r\n \r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Are you sure you want to accept the offer?

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Are you sure you want to Reject the offer?

\r\n
\r\n Reject Reason\r\n \r\n \r\n \r\n {{ reason.Name }}\r\n \r\n \r\n \r\n \r\n Comments\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Offer Accept\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n You have successfully\r\n {{\r\n statusName === ConsultantJobstatusName.CONSULTANT_JOB_OFFER_REJECT\r\n ? 'rejected'\r\n : 'accepted'\r\n }}\r\n the offer.\r\n
\r\n

\r\n Thank you for your timely response! We will move forward with the next steps.\r\n

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Status \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Sorry, Status already changed!
\r\n

No Valid data is available/Approval link has expired.

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n You have not taken any action yet!\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Leaptiger\r\n
\r\n
\r\n
\r\n \r\n You have Accepted the offer. Thank you!\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Upload Formatted Resume \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Candidate Name :
\r\n\r\n
\r\n {{ consultantJob?.ConsultantName }}\r\n
\r\n
\r\n
\r\n
EmailAddress :
\r\n\r\n
\r\n {{ consultantJob?.EmailAddress | nullValueReplace }}\r\n \r\n
\r\n
\r\n
\r\n
Phone :
\r\n\r\n
\r\n \r\n {{ consultantJob?.ContactPhone | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
Job Title :
\r\n\r\n
\r\n {{ consultantJob?.JobTitleName }}\r\n
\r\n
\r\n
\r\n
Client :
\r\n\r\n
\r\n {{ consultantJob?.ClientName }}\r\n
\r\n
\r\n
\r\n
Job Type :
\r\n\r\n
\r\n {{ consultantJob?.JobType }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n attach_file\r\n\r\n {{ fileName }}\r\n \r\n \"Delete\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Submit Resume\r\n \r\n  \r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Candidate Status \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n Candidate formatted resume successfully Uploaded.\r\n
\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Status \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Sorry, Status already changed!
\r\n

No Valid data is available/Already Uploaded formatted resume.

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Candidate Status\r\n
\r\n
\r\n
\r\n \r\n Candidate status is changed.\r\n \r\n
\r\n\r\n
\r\n\r\n

Thank you for your timely response! We will move forward with the next steps.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Status\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Candidate status is changed to Submitted.
\r\n

\r\n Thank you for your timely response! We will move forward with the next steps.\r\n

\r\n
\r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Candidate Job Status\r\n
\r\n
\r\n
\r\n Editing Job Status of {{ consultantJob?.ConsultantName }}.\r\n
\r\n
\r\n
\r\n
\r\n Employment Type*\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Employment Type is Required\r\n \r\n \r\n
\r\n
\r\n Bill Rate*\r\n 0\">\r\n (Max. ${{ maxBillRate }})\r\n \r\n \r\n \r\n \r\n Bill Rate is Required\r\n \r\n \r\n Bill should be less than {{ maxBillRate }}\r\n \r\n \r\n
\r\n
\r\n Pay Rate*\r\n 0\">\r\n ({{ markTypeValue == markupType.Goal_Markup ? 'Goal' : 'Min' }} ${{\r\n minimumPayRate\r\n }})\r\n \r\n \r\n \r\n \r\n Minimum pay rate is ${{ minimumPayRate }}\r\n \r\n \r\n Pay rate is Required\r\n \r\n \r\n
\r\n
\r\n Margin \r\n \r\n \r\n \r\n
\r\n \r\n Annual Salary* ({{\r\n job.MaxSalary\r\n }})\r\n \r\n \r\n \r\n \r\n Annual Salary is required\r\n \r\n \r\n
\r\n
\r\n Recruiter\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Save & Preview\r\n \r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n Candidate Job Status change\r\n close\r\n
\r\n
\r\n
Notes to Client :
\r\n
\r\n \r\n \r\n Only 5000 character allowed.\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpParams, HttpErrorResponse, HttpHeaders } from '@angular/common/http'\r\nimport { throwError as observableThrowError } from 'rxjs'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { iConsultant, iConsultantJob, iConsultantRefernceData, iConsultantResumeData } from '../models/consultant.model'\r\n\r\nimport { Common } from '../common/common'\r\nimport { map } from 'rxjs/operators'\r\nimport { iDbResult, ActiveObject } from '../models/common.model'\r\nimport { iInterviewSchedule } from 'src/app/models/consultant.model'\r\nimport { iInterview } from 'src/app/models/interview.model'\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ExternalService {\r\n searchData: string\r\n activeObject: ActiveObject = {} as ActiveObject\r\n apiUrl = Common.apiUrl\r\n constructor(private http: HttpClient) {}\r\n\r\n model: iConsultantResumeData\r\n public data\r\n\r\n httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n }\r\n\r\n setData(data) {\r\n this.data = data\r\n }\r\n\r\n getData() {\r\n let temp = this.data\r\n this.clearData()\r\n return temp\r\n }\r\n clearData() {\r\n this.data = undefined\r\n }\r\n SaveInterview(obj: iInterview) {\r\n var url = Common.apiUrl + 'external/SaveInterview'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GeInterview(interviewid) {\r\n var url = Common.apiUrl + 'external/GetInterview' + '/' + encodeURIComponent(interviewid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GeInterviewAvailableTimeSlots(interviewid) {\r\n var url = Common.apiUrl + 'external/GetInterviewAvailableTimeSlots' + '/' + encodeURIComponent(interviewid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobInterviews(jobid, userid) {\r\n var url =\r\n this.apiUrl +\r\n 'external/GetJobInterviews' +\r\n '/' +\r\n encodeURIComponent(jobid) +\r\n '/' +\r\n encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n AddInterview(obj: iInterviewSchedule) {\r\n var url = Common.apiUrl + 'external/AddInterview'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getLookup(LookpText) {\r\n var url = Common.apiUrl + 'external/GetLookup' + '?LookpText=' + encodeURIComponent(LookpText)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getJob(jobId) {\r\n var url = Common.apiUrl + 'external/GetJob' + '/' + encodeURIComponent(jobId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getConsultant(consultantId) {\r\n var url = Common.apiUrl + 'external/GetConsultant' + '/' + encodeURIComponent(consultantId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n GetConsultantJob(consultantjobid, userid) {\r\n var url =\r\n Common.apiUrl +\r\n 'external/GetConsultantJob' +\r\n '/' +\r\n encodeURIComponent(consultantjobid) +\r\n '/' +\r\n encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetCompanyLocations(objectid, objecttypeid) {\r\n var url =\r\n Common.apiUrl +\r\n 'external/GetCompanyLocations' +\r\n '/' +\r\n encodeURIComponent(objectid) +\r\n '/' +\r\n encodeURIComponent(objecttypeid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getAllReasons() {\r\n var url = Common.apiUrl + 'external/GetAllReasons'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n updateOjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n var url = Common.apiUrl + 'external/UpdateOjectStatus'\r\n let params = new HttpParams()\r\n params = params.append('objectID', objectID.toString())\r\n params = params.append('objectTypeId', objectTypeId.toString())\r\n params = params.append('statusID', statusID.toString())\r\n params = params.append('comments', comments.toString())\r\n params = params.append('userID', userID.toString())\r\n\r\n return this.http.get(url, { headers: Common.httpheaders, params: params }).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n processWorkFlow(\r\n objectID: number,\r\n objectTypeId: number,\r\n menuItemID: number,\r\n roleID: number,\r\n comments: string,\r\n userID: number\r\n ) {\r\n var url = Common.apiUrl + 'external/ProcessWorkFlow'\r\n let paras = {\r\n objectID: objectID,\r\n objectTypeId: objectTypeId,\r\n menuItemID: menuItemID,\r\n roleID: roleID,\r\n comments: comments?.toString(),\r\n userID: userID,\r\n }\r\n return this.http.post(url, paras, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n setActiveObject(\r\n objectID?: number,\r\n objectTypeID?: number,\r\n componentID?: number,\r\n roleID?: number,\r\n statusID?: number,\r\n pageID?: number\r\n ) {\r\n this.activeObject.ObjectID = objectID\r\n this.activeObject.ObjectTypeID = objectTypeID\r\n this.activeObject.ComponentID = componentID\r\n this.activeObject.RoleID = roleID\r\n this.activeObject.StatusID = statusID\r\n this.activeObject.PageID = pageID\r\n }\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n return observableThrowError(errMessage)\r\n }\r\n return observableThrowError(error || 'Node.js server error')\r\n }\r\n\r\n getConsultantJobSkill(consultantId, jobId) {\r\n var url =\r\n Common.apiUrl +\r\n 'external/GetConsultantJobSkill' +\r\n '/' +\r\n encodeURIComponent(consultantId) +\r\n '/' +\r\n encodeURIComponent(jobId)\r\n return this.http.get(url, this.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getCompanyContacts(companyId) {\r\n var url = Common.apiUrl + 'data/GetCompanyContacts' + '?companyId=' + encodeURIComponent(companyId)\r\n return this.http.get(url, this.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddLocation(location) {\r\n var url = Common.apiUrl + 'external/saveLocation'\r\n return this.http.post(url, location, this.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getConfig(companyId: number) {\r\n var url = Common.apiUrl + 'external/GetConfig'\r\n return this.http.post(url, { CompanyId: companyId }, this.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetConsultantJobById(consultantJobId, userId) {\r\n var url =\r\n this.apiUrl +\r\n 'external/GetConsultantJob' +\r\n '/' +\r\n encodeURIComponent(consultantJobId) +\r\n '/' +\r\n encodeURIComponent(userId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getJobCategoryByCompany(companyId: any) {\r\n const ENDPOINT = Common.apiUrl + 'external/GetJobCategory'\r\n return this.http\r\n .post(ENDPOINT, { CompanyId: companyId }, this.httpOptions)\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n GetRecruiterByRoleId(roleIds) {\r\n const ENDPOINT = this.apiUrl + 'external/GetRecruiterByRoleId' + '/' + encodeURIComponent(roleIds)\r\n return this.http.get(ENDPOINT, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n saveConsultantJob(consultant: iConsultantJob) {\r\n const url = Common.apiUrl + 'external/SaveConsultantJob'\r\n return this.http.post(url, consultant, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantDetails(obj) {\r\n const url = Common.apiUrl + 'external/SaveConsultantProfile'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n saveConsultantReferenceDetails(obj: iConsultantRefernceData) {\r\n var url = Common.apiUrl + 'external/saveConsultantReference'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n jobTitleSearch(title) {\r\n var url = this.apiUrl + 'external/JobTitleSearch' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getVendors() {\r\n var url = Common.apiUrl + 'external/GetVendors'\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetConsultantReference(consultantId) {\r\n var url =\r\n Common.apiUrl + 'external/GetConsultantReference' + '?consultantId=' + encodeURIComponent(consultantId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n sendEmail(\r\n objectID: number,\r\n objectTypeId: number,\r\n menuItemID: number,\r\n roleID: number,\r\n comments: string,\r\n userID: number,\r\n actionID: number,\r\n statusID:number\r\n ) {\r\n var url = Common.apiUrl + 'external/SendEmail'\r\n let paras = {\r\n objectID: objectID,\r\n objectTypeId: objectTypeId,\r\n menuItemID: menuItemID,\r\n roleID: roleID,\r\n comments: comments?.toString(),\r\n userID: userID,\r\n actionID: actionID,\r\n statusID:statusID\r\n }\r\n return this.http.post(url, paras, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n \r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Common } from './common/common';\r\n\r\n@Injectable()\r\nexport class AppInitService {\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n async Init() {\r\n const response = await this.http.get('assets/appsettings.json').toPromise().then(data => data);\r\n if (response != null) {\r\n Common.apiUrl = response[\"apiurl\"];\r\n Common.authUrl = response[\"authurl\"];\r\n Common.appSettings = response;\r\n Common.apiUrl = response['apiurl'];\r\n Common.filePath = response['filePath'];\r\n Common.environment = response['production'];\r\n Common.microsoftClientId = response['microsoftClientId'];\r\n Common.microsoftTenantId = response['microsoftTenantId'];\r\n Common.microsoftAuthority = response['microsoftAuthority'];\r\n Common.redirectUri = response['redirectUri'];\r\n Common.postLogoutRedirectUri = response['postLogoutRedirectUri'];\r\n Common.identityAuthorityUrl = response['identityAuthorityUrl'];\r\n Common.identityClientId = response['identityClientId'];\r\n Common.identityResponseType = response['identityResponseType'];\r\n Common.identityScope = response['identityScope'];\r\n Common.identityFilterProtocolClaims = response['identityFilterProtocolClaims'];\r\n Common.identityLoadUserInfo = response['identityLoadUserInfo'];\r\n Common.identityAutomaticSilentRenew = response['identityAutomaticSilentRenew'];\r\n Common.baseUrl = response[\"baseUrl\"];\r\n Common.testCalleeNumber = response[\"testCalleeNumber\"];\r\n Common.testCallerNumber = response[\"testCallerNumber\"];\r\n Common.outlookEmailReaderUrl = response[\"outlookEmailReaderUrl\"];\r\n Common.outlookEmailReaderToken = response[\"outlookEmailReaderToken\"];\r\n }\r\n return response;\r\n }\r\n}","import { NgModule } from '@angular/core'\r\nimport { RouterModule, Routes } from '@angular/router'\r\nimport { ExternalActionComponent } from './alert/external-action/external-action.component'\r\nimport { AuthGuard } from './guards/auth.guard'\r\nimport { CustomLayoutComponent } from './custom-layout/custom-layout.component'\r\nimport { PageNotFoundComponent } from './shared/page-not-found/page-not-found.component'\r\nimport { CANDIDATES_PATH, COMPANY_PATH, DASHBOARD_PATH, JOBS_PATH, ROLE_PERMISSION_PATH, CONFIGURATION_PATH } from './constants/page-path'\r\nimport { IsCanAccessPageGuard } from './guards/is-can-access-page.guard'\r\nimport { AuthCallbackComponent } from './auth-callback/auth-callback.component'\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n loadChildren: () => import('./login/login.module').then((m) => m.LoginModule),\r\n },\r\n {\r\n path: 'auth-callback',\r\n component: AuthCallbackComponent\r\n },\r\n // {\r\n // path: 'register',\r\n // loadChildren: () => import('./login/login.module').then((m) => m.LoginModule),\r\n // },\r\n {\r\n path: '',\r\n component: CustomLayoutComponent,\r\n children: [\r\n {\r\n path: `${DASHBOARD_PATH}`,\r\n loadChildren: () => import('./dashboard/dashboard.module').then((m) => m.DashboardModule),\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${COMPANY_PATH}`,\r\n loadChildren: () => import('./company/company.module').then((m) => m.CompanyModule),\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n {\r\n path: `${JOBS_PATH}`,\r\n loadChildren: () => import('./job/job.module').then((m) => m.JobModule),\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${ROLE_PERMISSION_PATH}`,\r\n loadChildren: () => import('./user/permission.module').then((m) => m.PermissionModule),\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${CONFIGURATION_PATH}`,\r\n loadChildren: () => import('./configurations/config.module').then((m) => m.ConfigModule),\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${CANDIDATES_PATH}`,\r\n loadChildren: () => import('./consultant/consultant.module').then((m) => m.ConsultantModule),\r\n canActivate: [AuthGuard],\r\n }\r\n ],\r\n },\r\n {\r\n path: 'alert',\r\n loadChildren: () => import('./alert/alert.module').then((m) => m.AlertModule),\r\n },\r\n {\r\n path: 'e-request',\r\n component: ExternalActionComponent,\r\n },\r\n\r\n {\r\n path: 'page-not-found',\r\n component: PageNotFoundComponent,\r\n },\r\n {\r\n path: '**',\r\n component: PageNotFoundComponent,\r\n },\r\n]\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, {\r\n // preloadingStrategy: PreloadAllModules,\r\n scrollPositionRestoration: 'enabled',\r\n relativeLinkResolution: 'corrected',\r\n anchorScrolling: 'enabled',\r\n }),\r\n ],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, Inject, LOCALE_ID, Renderer2 } from '@angular/core'\r\nimport { ConfigService } from '../app/shared/core/services/config.service'\r\nimport { Settings } from 'luxon'\r\nimport { DOCUMENT } from '@angular/common'\r\nimport { Platform } from '@angular/cdk/platform'\r\nimport { NavigationService } from '../app/shared/core/services/navigation.service'\r\nimport icLayers from '@iconify/icons-ic/twotone-layers'\r\nimport { LayoutService } from '../app/shared/core/services/layout.service'\r\nimport { ActivatedRoute } from '@angular/router'\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\r\nimport { SplashScreenService } from '../app/shared/core/services/splash-screen.service'\r\nimport { Style, StyleService } from '../app/shared/core/services/style.service'\r\nimport { ConfigName } from '../app/shared/core/interfaces/config-name.model'\r\nimport { filter, map, startWith } from 'rxjs/operators'\r\nimport { NavigationEnd, Router } from '@angular/router'\r\nimport { checkRouterChildsData } from '../app/shared/core/utils/check-router-childs-data'\r\nimport { CommonService } from './services/common.service'\r\nimport { Common } from './common/common'\r\n\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 {\r\n title = 'Leap Tiger'\r\n isFooterVisible$ = this.configService.config$.pipe(map((config) => config.footer.visible))\r\n isDesktop$ = this.layoutService.isDesktop$\r\n\r\n toolbarShadowEnabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.toolbarShadowEnabled))\r\n )\r\n constructor(\r\n private renderer: Renderer2,\r\n private platform: Platform,\r\n @Inject(DOCUMENT) private document: Document,\r\n @Inject(LOCALE_ID) private localeId: string,\r\n private layoutService: LayoutService,\r\n private route: ActivatedRoute,\r\n private navigationService: NavigationService,\r\n private splashScreenService: SplashScreenService,\r\n private commonService: CommonService,\r\n private configService: ConfigService,\r\n private router: Router,\r\n private styleService: StyleService\r\n ) {\r\n commonService.getAppSettings().then((value) => {\r\n Common.appSettings = value\r\n Common.apiUrl = value['apiurl']\r\n Common.filePath = value['filePath']\r\n commonService.getMessages()\r\n })\r\n\r\n Settings.defaultLocale = this.localeId\r\n\r\n if (this.platform.BLINK) {\r\n this.renderer.addClass(this.document.body, 'is-blink')\r\n }\r\n\r\n /**\r\n * Customize the template to your needs with the ConfigService\r\n * Example:\r\n * this.configService.updateConfig({\r\n * sidenav: {\r\n * title: 'Custom App',\r\n * imageUrl: '//placehold.it/100x100',\r\n * showCollapsePin: false\r\n * },\r\n * showConfigButton: false,\r\n * footer: {\r\n * visible: false\r\n * }\r\n * });\r\n */\r\n\r\n /**\r\n * Config Related Subscriptions\r\n * You can remove this if you don't need the functionality of being able to enable specific configs with queryParams\r\n * Example: example.com/?layout=apollo&style=default\r\n */\r\n this.route.queryParamMap\r\n .pipe(map((queryParamMap) => queryParamMap.has('rtl') && coerceBooleanProperty(queryParamMap.get('rtl'))))\r\n .subscribe((isRtl) => {\r\n this.document.body.dir = isRtl ? 'rtl' : 'ltr'\r\n this.configService.updateConfig({\r\n rtl: isRtl,\r\n })\r\n })\r\n\r\n this.route.queryParamMap\r\n .pipe(filter((queryParamMap) => queryParamMap.has('layout')))\r\n .subscribe((queryParamMap) => this.configService.setConfig(queryParamMap.get('layout') as ConfigName))\r\n\r\n this.route.queryParamMap\r\n .pipe(filter((queryParamMap) => queryParamMap.has('style')))\r\n .subscribe((queryParamMap) => this.styleService.setStyle(queryParamMap.get('style') as Style))\r\n\r\n // this.navigationService.items = [\r\n // {\r\n // type: 'link',\r\n // label: 'Dashboard',\r\n // route: '/dashboard',\r\n // icon: icLayers\r\n // },\r\n // {\r\n // type: 'link',\r\n // label: 'Company',\r\n // route: '/company',\r\n // icon: icLayers\r\n // },\r\n // {\r\n // type: 'link',\r\n // label: 'Jobs',\r\n // route: '/jobs',\r\n // icon: icLayers\r\n // },\r\n // {\r\n // type: 'link',\r\n // label: 'Candidates',\r\n // route: '/candidates',\r\n // icon: icLayers\r\n // },\r\n // {\r\n // type: 'link',\r\n // label: 'Report',\r\n // route: '/reports',\r\n // icon: icLayers\r\n // },\r\n // {\r\n // type: 'link',\r\n // label: 'Config',\r\n // route: '/config',\r\n // icon: icLayers\r\n // },\r\n // {\r\n // type: 'link',\r\n // label: 'Help',\r\n // route: '/help',\r\n // icon: icLayers\r\n // },\r\n // ];\r\n }\r\n}\r\n","\r\n","import { APP_INITIALIZER, NgModule } from '@angular/core'\r\nimport { PortalModule } from '@angular/cdk/portal'\r\nimport { AppRoutingModule } from './app-routing.module'\r\nimport { AppComponent } from './app.component'\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations'\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'\r\nimport { CommonModule } from '@angular/common'\r\nimport { MatChipsModule } from '@angular/material/chips'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatRippleModule } from '@angular/material/core'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MatFormFieldModule } from '@angular/material/form-field'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MsalModule } from '@azure/msal-angular'\r\nimport { PublicClientApplication } from '@azure/msal-browser'\r\nimport { environment } from 'src/environments/environment'\r\nimport { ToastrModule } from 'ngx-toastr'\r\nimport { MaterialModule } from './material.module'\r\nimport { MatDialogModule } from '@angular/material/dialog'\r\nimport { DialogComponent } from './shared/dialog/dialog.component'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { BrowserModule } from '@angular/platform-browser'\r\nimport { CustomLayoutModule } from './custom-layout/custom-layout.module'\r\nimport { CompanyModule } from './company/company.module'\r\nimport { CompanyListModule } from './company/company-list/company-list.module'\r\nimport { JobListModule } from './Job/job-list/job-list.module'\r\nimport { JobModule } from './job/job.module'\r\nimport { ConsultantListModule } from './consultant/consultant-list/consultant-list.module'\r\nimport { ConsultantModule } from './consultant/consultant.module'\r\nimport { AppInitService } from './app-init.service'\r\nimport { SharedModule } from './shared/shared.module'\r\nimport { MatSortModule } from '@angular/material/sort'\r\nimport { CoreModule } from '@angular/flex-layout'\r\nimport { AuthInterceptorService } from './services/authintercept.service'\r\nimport { QuillModule } from 'ngx-quill'\r\nimport { AuthCallbackComponent } from './auth-callback/auth-callback.component'\r\n\r\nexport function initializeApp1(appInitService: AppInitService) {\r\n return (): Promise => {\r\n return appInitService.Init()\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [AppComponent, DialogComponent, AuthCallbackComponent],\r\n imports: [\r\n MatSortModule,\r\n CommonModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n BrowserModule,\r\n ToastrModule.forRoot(),\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MaterialModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatChipsModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatRippleModule,\r\n MatFormFieldModule,\r\n MatDialogModule,\r\n QuillModule.forRoot(),\r\n\r\n\r\n CoreModule,\r\n PortalModule,\r\n NgxLoadingModule.forRoot({}),\r\n CustomLayoutModule,\r\n CompanyModule,\r\n CompanyListModule,\r\n JobModule,\r\n JobListModule,\r\n ConsultantModule,\r\n ConsultantListModule,\r\n SharedModule,\r\n\r\n\r\n MsalModule.forRoot(\r\n new PublicClientApplication({\r\n auth: {\r\n clientId: environment.microsoftClientId,\r\n authority: environment.microsoftAuthority,\r\n redirectUri: environment.redirectUri,\r\n postLogoutRedirectUri: environment.postLogoutRedirectUri,\r\n },\r\n cache: {},\r\n }),\r\n null,\r\n null\r\n ),\r\n ],\r\n exports: [\r\n MatTableModule,\r\n MatChipsModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n CommonModule,\r\n MaterialModule,\r\n MatInputModule,\r\n ],\r\n providers: [\r\n AppInitService,\r\n { provide: APP_INITIALIZER, useFactory: initializeApp1, deps: [AppInitService], multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptorService, multi: true },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { NotificationService } from '../services/notification.service';\r\nimport { Common } from '../common/common';\r\nimport { Subject } from 'rxjs';\r\nimport { UserRoleId } from '../enums/userRolesId';\r\nimport { CommonService } from '../services/common.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { iEmailReaderToken } from '../models/emailReaderToken.model';\r\nimport { AuthService } from '../services/auth.services';\r\n\r\n@Component({\r\n selector: 'app-auth-callback',\r\n template: `\r\n \r\n \r\n \r\n `,\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n debugInfo: string = '';\r\n loginDetails: any;\r\n isAuthorizedReadEmail: boolean;\r\n ipAddress: string;\r\n ipData: any;\r\n private _destroy$: Subject = new Subject();\r\n emailReaderToken: iEmailReaderToken;\r\n public loading = false;\r\n accessToken: string;\r\n refreshToken: string;\r\n email: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private auth: AuthService,\r\n private authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.log('AuthCallbackComponent constructed');\r\n }\r\n\r\n private log(message: string) {\r\n const timestamp = new Date().toISOString();\r\n const logMessage = `${timestamp}: ${message}`;\r\n this.debugInfo += logMessage + '\\n';\r\n }\r\n\r\n ngOnInit() {\r\n this.log('AuthCallbackComponent initialized');\r\n this.log(`Current URL: ${window.location.href}`);\r\n\r\n // Log all available route parameters\r\n this.route.snapshot.queryParams;\r\n this.log('Query Parameters: ' + JSON.stringify(this.route.snapshot.queryParams, null, 2));\r\n\r\n this.route.queryParams.subscribe({\r\n next: (params) => {\r\n this.log('Received query parameters');\r\n this.log('Code present: ' + !!params['code']);\r\n this.log('State present: ' + !!params['state']);\r\n\r\n const code = params['code'];\r\n const state = params['state'];\r\n\r\n if (code && state) {\r\n this.log('Starting authentication callback');\r\n this.loading = true;\r\n this.auth.handleAuthCallback(code, state).subscribe({\r\n next: (response) => {\r\n this.accessToken = response.tokens.access_token\r\n this.refreshToken = response.tokens.refresh_token\r\n this.email = response.user.email\r\n\r\n // this.accessToken = response.access_token\r\n // this.refreshToken = response.refresh_token\r\n // this.email = 'leap_recruiter@3ipeople.com'\r\n // this.email = 'amishra@3ipeople.com'\r\n\r\n this.log('Authentication successful: ' + JSON.stringify(response));\r\n this.getUserDetails();\r\n },\r\n error: (error) => {\r\n this.log('Authentication failed: ' + JSON.stringify(error));\r\n this.router.navigate(['/']);\r\n },\r\n complete: () => {\r\n this.loading = false;\r\n },\r\n });\r\n } else {\r\n this.log('Missing code or state parameters');\r\n this.router.navigate(['/']);\r\n }\r\n },\r\n error: (error) => {\r\n this.log('Error in query params subscription: ' + JSON.stringify(error));\r\n },\r\n complete: () => {\r\n this.log('Query params subscription completed');\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.log('AuthCallbackComponent destroyed');\r\n }\r\n\r\n getUserDetails() {\r\n this.loading = true;\r\n let obj = {\r\n Email: this.email,\r\n Password: 'LeapTiger@123',\r\n };\r\n this.authService.getUserDetails(obj).subscribe({\r\n next: (result) => {\r\n this.loading = false;\r\n if (result == null) {\r\n this.notifyService.showError(Common.messages['notAUser'], Common.messages['leapTigerLogin']);\r\n return;\r\n }\r\n if (result.roles.length <= 0) {\r\n this.notifyService.showError(Common.messages['userUnAssigned'], Common.messages['leapTigerLogin']);\r\n return;\r\n } else if (result.roles.length > 0) {\r\n if (\r\n result.roles[0].roleID != UserRoleId.SUPER_ADMIN &&\r\n result.roles[0].roleID != UserRoleId.RECRUITER &&\r\n result.roles[0].roleID != UserRoleId.RECRUIT_ACC_MANAGER &&\r\n result.roles[0].roleID != UserRoleId.RECRUIT_SUPPORT_TEAM\r\n ) {\r\n this.notifyService.showError(\r\n Common.messages['microsoftAuthority'],\r\n Common.messages['leapTigerLogin']\r\n );\r\n return;\r\n }\r\n if (result.roles[0].roleID == UserRoleId.RECRUITER) {\r\n this.getEmailReadToken(result.email);\r\n }\r\n this.saveUserLogin('office_365', result.userID);\r\n }\r\n localStorage.setItem('userinfo', JSON.stringify(result));\r\n this.authService.userInfo = result;\r\n this.getAccessToken();\r\n },\r\n error: (error) => {\r\n this.loading = false;\r\n this.notifyService.showError(Common.messages['userNotFound'], Common.messages['leapTigerLogin']);\r\n },\r\n });\r\n }\r\n\r\n saveUserLogin(source: string, userid: any) {\r\n const d = new Date();\r\n let text = d.toLocaleDateString() + d.toLocaleTimeString() + d.getMilliseconds();\r\n Common.sessionID = 'uid-' + userid.toString() + '-dt-' + text;\r\n\r\n if (userid != null) {\r\n let obj = {\r\n UserId: userid,\r\n SID: Common?.sessionID,\r\n Source: source,\r\n Login_Time: new Date(),\r\n Logout_Time: null,\r\n IPAddress: this.ipAddress,\r\n City: this.ipData == null ? '' : this.ipData['city'],\r\n RegionCode: this.ipData == null ? '' : this.ipData['region_code'],\r\n Region: this.ipData == null ? '' : this.ipData['region_name'],\r\n CountryCode: this.ipData == null ? '' : this.ipData['country_code'],\r\n CountryName: this.ipData == null ? '' : this.ipData['country_name'],\r\n Latitude: this.ipData == null ? null : this.ipData['latitude'],\r\n Longitude: this.ipData == null ? null : this.ipData['latitude'],\r\n };\r\n\r\n this.commonService.saveUserLog(obj).subscribe((result) => {});\r\n }\r\n }\r\n\r\n getEmailReadToken(email: string) {\r\n this.emailReaderToken = {\r\n email: email,\r\n accessToken: this.accessToken,\r\n refreshToken: this.refreshToken == undefined ? null : this.refreshToken,\r\n code: null, // code value ?\r\n };\r\n\r\n this.authService\r\n .sendEmailReaderToken(this.emailReaderToken)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (data) => {\r\n this.loading = false;\r\n },\r\n (err: any) => {\r\n this.loading = false;\r\n }\r\n );\r\n }\r\n\r\n getAccessToken() {\r\n this.loading = true;\r\n this.authService.getAccessToken().subscribe((result) => {\r\n this.loading = false;\r\n if (result.accessToken) {\r\n localStorage.setItem('access_token', result.accessToken);\r\n localStorage.setItem('refresh_token', result.refreshToken);\r\n\r\n this.router.navigate(['/dashboard']);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core'\r\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms'\r\nimport { Filter, FilterNames, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { BooleanSearchService } from '../boolean-search.service'\r\nimport { filter, first, takeUntil } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs'\r\nimport * as BooleanFilterJson from '../../../assets/boolean-filters.json'\r\nimport { BooleanFilter } from 'src/app/models/boolean.filter'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { OperatorValue } from 'src/app/company/company-constants'\r\nimport { MatSelectChange } from '@angular/material/select'\r\nimport { CandidateFilterNames } from 'src/app/enums/candidateFilterName'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { MIN_MAX_EXPERIENCE_LEVEL } from 'src/app/constants/skillExperienceLevel'\r\nimport { SkillLevel } from 'src/app/enums/skillLevels'\r\n\r\n@Component({\r\n selector: 'leap-additional-criteria',\r\n templateUrl: './additional-criteria.component.html',\r\n styleUrls: ['./additional-criteria.component.scss'],\r\n})\r\nexport class AdditionalCriteriaComponent implements OnInit, OnDestroy {\r\n advanceSearchFormGroup: FormGroup\r\n filterCriteria = ['Address', 'Name', 'LastName', 'company']\r\n public activeFilterOptions: BooleanFilter[] | Filter[] = []\r\n isFromJobSearch: boolean = false\r\n booleanFilters: BooleanFilter[] = []\r\n private _destroy: Subject = new Subject()\r\n objectOperator: OperatorValue[] = this.companyService.payRateConditions\r\n existingAdditionalFilters: any[] = []\r\n public candidateFilterOptions: Filter[] = []\r\n selectedSateCode: string\r\n distanceUnit: Option[] = [\r\n {\r\n key: 0,\r\n value: 'miles',\r\n },\r\n {\r\n key: 1,\r\n value: 'km',\r\n },\r\n ]\r\n constructor(\r\n private _formBuilder: FormBuilder,\r\n private booleanSearchService: BooleanSearchService,\r\n private companyService: CompanyService,\r\n private _consultantService: ConsultantService,\r\n private _commonService: CommonService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this._destroy.next()\r\n this._destroy.complete()\r\n }\r\n\r\n ngOnInit(): void {\r\n this._commonService.getComponentData.pipe(takeUntil(this._destroy)).subscribe({\r\n next: () => {\r\n this.booleanFilters = BooleanFilterJson.default.BooleanCandidateFilters\r\n\r\n this.booleanFilters.forEach((filter) => {\r\n if (filter.name === 'Distance') filter.searchText = '50'\r\n else if (filter.name === 'Distance Unit') filter.searchText = 'miles'\r\n })\r\n\r\n this.activeFilterOptions = this.booleanSearchService.booleanSearchFilterOptions.filter(\r\n (item) =>\r\n item.name != 'Email Address' &&\r\n item.name != 'Candidate Name'\r\n // (item.selectedOptions || item.searchText)\r\n )\r\n\r\n const UNIQUE_FILTERS = this.booleanFilters\r\n .map((booleanFilter) => {\r\n if (!this.activeFilterOptions.filter((filter) => filter?.name == booleanFilter?.name).length) {\r\n return booleanFilter\r\n }\r\n })\r\n .filter((item) => item)\r\n\r\n this.activeFilterOptions = [...this.activeFilterOptions, ...UNIQUE_FILTERS]\r\n\r\n this.activeFilterOptions.forEach((filter: BooleanFilter) => {\r\n if (filter.name === 'Distance Unit') {\r\n filter.originalOptions = this.distanceUnit\r\n }\r\n if (\r\n !filter.hasOwnProperty('placeholder') ||\r\n filter.placeholder === null ||\r\n filter.placeholder === undefined\r\n ) {\r\n filter.placeholder = this.booleanFilters.find(\r\n (booleanFilter) => booleanFilter.name === filter.name\r\n )?.placeholder\r\n }\r\n // if (filter.name === 'Source'){\r\n // debugger\r\n // }\r\n })\r\n this.initAdvanceSearchForm()\r\n },\r\n })\r\n\r\n this.booleanSearchService.additionalCriteria$.subscribe({\r\n next: (additionalFilters) => {\r\n const filterSourceName = additionalFilters.find((filter) => filter?.filterName === 'Source')\r\n this.activeFilterOptions.forEach((filter: any) => {\r\n if (filter?.name === 'Source') {\r\n filter.selectedOptions = filterSourceName?.filterValue\r\n ? filterSourceName?.filterValue\r\n : filter?.selectedOptions\r\n }\r\n })\r\n const filterWorkPermit = additionalFilters.find((filter) => filter?.filterName === 'Work Permit')\r\n this.activeFilterOptions.forEach((filter: any) => {\r\n if (filter?.name === 'Work Permit') {\r\n filter.selectedOptions = filterWorkPermit?.filterValue\r\n ? filterWorkPermit?.filterValue\r\n : filter?.selectedOptions\r\n }\r\n })\r\n this.existingAdditionalFilters = additionalFilters\r\n },\r\n })\r\n\r\n this.initAdvanceSearchForm()\r\n this.updateAdditionalCriteriaInService()\r\n this._subscribeToResetSubscriber()\r\n }\r\n\r\n initAdvanceSearchForm() {\r\n this.advanceSearchFormGroup = this._formBuilder.group({\r\n advanceSearchList: this._formBuilder.array([]),\r\n })\r\n this.booleanSearchService.isFromJobForCandidateObservable$\r\n .pipe(takeUntil(this._destroy))\r\n .subscribe((isFromJob) => {\r\n this.setSelectedOptionsForForm()\r\n this.activeFilterOptions = this.activeFilterOptions.filter(\r\n (filter) =>\r\n filter?.name != 'Required Skills' &&\r\n filter?.name != 'Preferred Skills' &&\r\n filter?.name != 'Candidate Title' &&\r\n filter?.name != 'Minimum Experience' &&\r\n filter?.name != 'Maximum Experience' &&\r\n filter?.name != 'Salary'\r\n )\r\n })\r\n }\r\n\r\n updateAdditionalCriteriaInService() {\r\n this.advanceSearchList.valueChanges.subscribe(() => {\r\n this.booleanSearchService.updateAdditionalCriteria(this.advanceSearchList.value)\r\n })\r\n }\r\n\r\n get advanceSearchList() {\r\n return this.advanceSearchFormGroup.get('advanceSearchList') as FormArray\r\n }\r\n\r\n addControl(filterNameValue?, filterValue?, operatorValue?) {\r\n this.advanceSearchList.insert(\r\n this.advanceSearchList?.controls?.length,\r\n this._formBuilder.group({\r\n filterName: new FormControl(filterNameValue ?? ''),\r\n operator: new FormControl(operatorValue ?? ''),\r\n filterValue: new FormControl(filterValue ?? ''),\r\n })\r\n )\r\n }\r\n getAvailableFilter(filterName: string) {\r\n if (filterName) {\r\n const FILTER = this.activeFilterOptions.find((filter) => filter.name === filterName)\r\n return [\r\n ...this.activeFilterOptions\r\n .map((booleanFilter) => {\r\n if (\r\n !this.advanceSearchList.controls.filter(\r\n (filter) => filter?.value.filterName == booleanFilter?.name\r\n ).length\r\n ) {\r\n return booleanFilter\r\n }\r\n })\r\n .filter((item) => item),\r\n FILTER,\r\n ]\r\n }\r\n return this.activeFilterOptions\r\n .map((booleanFilter) => {\r\n if (\r\n !this.advanceSearchList.controls.filter((filter) => filter?.value.filterName == booleanFilter?.name)\r\n .length\r\n ) {\r\n return booleanFilter\r\n }\r\n })\r\n .filter((item) => item)\r\n }\r\n\r\n getSelectedFilterTypeByName(name: string) {\r\n if (name) {\r\n return this.activeFilterOptions.find((filter: Filter) => filter?.name === name)?.type\r\n }\r\n return 'TEXTBOX'\r\n }\r\n\r\n getBooleanFilters(name: string) {\r\n return (\r\n this.activeFilterOptions.find((filter: Filter) => filter?.name === name) || {\r\n inputType: 'text',\r\n placeholder: 'Enter Value',\r\n }\r\n )\r\n }\r\n\r\n getOriginalFilterOptionsByName(name: string) {\r\n return this.activeFilterOptions.find((filter: Filter) => filter?.name === name)?.originalOptions || []\r\n }\r\n\r\n getIsShowOperatorBox(name: string) {\r\n return (\r\n (this.activeFilterOptions.find((filter: Filter | BooleanFilter) => filter?.name === name) as BooleanFilter)\r\n ?.isShowOperatorBox || false\r\n )\r\n }\r\n\r\n setSelectedOptionsForForm() {\r\n let requiredSkills = []\r\n let preferredSkills = []\r\n this.activeFilterOptions.forEach((filter: Filter) => {\r\n if (\r\n // filter?.selectedOptions?.length &&\r\n filter?.name != 'Required Skills' &&\r\n filter?.name != 'Preferred Skills' &&\r\n filter?.name != 'Candidate Title' &&\r\n filter?.name != 'Maximum Experience' &&\r\n filter?.name != 'Minimum Experience' &&\r\n filter?.name != 'Salary' &&\r\n filter?.name !== 'Distance' &&\r\n filter?.name !== 'Distance Unit' &&\r\n filter?.name !== 'City' &&\r\n filter?.name !== 'State' && \r\n filter?.name !== 'Last Resume Updated'\r\n ) {\r\n this.addControl(filter?.name, filter?.selectedOptions)\r\n } else if (\r\n filter?.name != 'Required Skills' &&\r\n filter?.name != 'Preferred Skills' &&\r\n filter?.name != 'Candidate Title' &&\r\n filter?.name != 'Maximum Experience' &&\r\n filter?.name != 'Minimum Experience' &&\r\n filter?.name != 'Salary'\r\n ) {\r\n this.addControl(filter?.name, filter.searchText)\r\n } else if (filter?.name === 'Required Skills') {\r\n requiredSkills = filter?.searchText?.split(',') || []\r\n } else if (filter?.name === 'Preferred Skills') {\r\n preferredSkills = filter?.searchText?.split(',') || []\r\n } else if (filter?.name === 'Candidate Title') {\r\n preferredSkills = filter?.searchText?.split(',') || []\r\n } else if (filter?.name === 'Maximum Experience') {\r\n preferredSkills = filter?.searchText?.split(',') || []\r\n } else if (filter?.name === 'Minimum Experience') {\r\n preferredSkills = filter?.searchText?.split(',') || []\r\n } else if (filter?.name === 'Salary') {\r\n preferredSkills = filter?.searchText?.split(',') || []\r\n }\r\n })\r\n\r\n this.booleanSearchService.requiredSkills$.pipe(first()).subscribe({\r\n next: (existingRequiredSkills) => {\r\n if (existingRequiredSkills.length > 0) {\r\n this.booleanSearchService.setRequiredSkills(existingRequiredSkills)\r\n } else {\r\n this.booleanSearchService.setRequiredSkills(requiredSkills)\r\n }\r\n },\r\n })\r\n this.booleanSearchService.preferredSkills$.pipe(first()).subscribe({\r\n next: (existingPreferredSkills) => {\r\n if (existingPreferredSkills.length > 0) {\r\n this.booleanSearchService.setPreferredSkills(existingPreferredSkills)\r\n } else {\r\n this.booleanSearchService.setPreferredSkills(preferredSkills)\r\n }\r\n },\r\n })\r\n\r\n const EXISTING_FILTER = this.existingAdditionalFilters\r\n .map((filter) => {\r\n if (\r\n !this.advanceSearchList.controls.filter(\r\n (control) =>\r\n control.value.filterName?.trim()?.toLowerCase() == filter.filterName?.trim()?.toLowerCase()\r\n ).length\r\n ) {\r\n return filter\r\n }\r\n })\r\n .filter((item) => item)\r\n\r\n EXISTING_FILTER?.forEach((filter) => {\r\n if (filter?.filterName && filter?.filterValue)\r\n this.addControl(filter.filterName, filter.filterValue, filter?.operator)\r\n })\r\n\r\n this.booleanSearchService.updateAdditionalCriteria(this.advanceSearchList.value)\r\n }\r\n\r\n resetMatOption(event: MatSelectChange, formGroup: FormGroup) {\r\n formGroup.get('filterValue').patchValue('')\r\n }\r\n\r\n private _subscribeToResetSubscriber() {\r\n this.booleanSearchService.resetBooleanFiltersSubscriber$\r\n .pipe(\r\n filter((value) => value != 0),\r\n takeUntil(this._destroy)\r\n )\r\n .subscribe({\r\n next: () => {\r\n while (this.advanceSearchList.length) {\r\n this.advanceSearchList.removeAt(0)\r\n }\r\n },\r\n })\r\n }\r\n\r\n onAutoCompleteFilterTextEntered(inputValue, filterName) {\r\n if (filterName === CandidateFilterNames.CITY) {\r\n this.filterCity(inputValue)\r\n .pipe(first())\r\n .subscribe((cities) => {\r\n const CITY_FILTER_INDEX = this.activeFilterOptions.findIndex(\r\n (filter) => filter.name == CandidateFilterNames.CITY\r\n )\r\n this.activeFilterOptions[CITY_FILTER_INDEX].options = this.getCityOptions(cities)\r\n this.activeFilterOptions[CITY_FILTER_INDEX].originalOptions = this.getCityOptions(cities)\r\n })\r\n }\r\n }\r\n filterCity(inputText: string) {\r\n let stateCode = null\r\n if (this.selectedSateCode) {\r\n stateCode = this.selectedSateCode\r\n }\r\n inputText = inputText.trim()\r\n return this._consultantService.getCitySearch(inputText, stateCode)\r\n }\r\n getCityOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions?.forEach((item) => {\r\n options.push({ key: item.StateID, value: item.City })\r\n })\r\n return options\r\n }\r\n\r\n setStateCodeByStateName(name: string) {\r\n this._commonService\r\n .getStates()\r\n .pipe(first())\r\n .subscribe((allStates) => {\r\n let selectedStateCode = allStates.filter((item) => item.StateName == name)\r\n this.selectedSateCode = selectedStateCode[0].StateCode\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ filter?.name }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{ operator.Value }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ option.value }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ option.value }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'\r\nimport { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core'\r\nimport { MatChipInputEvent } from '@angular/material/chips'\r\nimport { iSkills, JobTitle } from 'src/app/models/job.model'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { BooleanSearchService } from '../boolean-search.service'\r\nimport { filter, first, takeUntil, withLatestFrom } from 'rxjs/operators'\r\nimport { Subject, combineLatest } from 'rxjs'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\n\r\n@Component({\r\n selector: 'leap-basic-search',\r\n templateUrl: './basic-search.component.html',\r\n styleUrls: ['./basic-search.component.scss'],\r\n})\r\nexport class BasicSearchComponent implements OnInit, OnDestroy {\r\n @ViewChild('titleInput') titleInput: ElementRef\r\n @ViewChild('excludeTitleInput') excludeTitleInput: ElementRef\r\n requiredSkillList: Array = []\r\n preferredSkillList: Array = []\r\n excludedSkillList: Array = []\r\n jobTitleList: Array = []\r\n excludeJobTitleList: Array = []\r\n skillNames: iSkills[] = []\r\n titles: JobTitle[] = []\r\n isShowAdvance: boolean = false\r\n suggestedKeywordInput: string = ''\r\n destroy$: Subject = new Subject()\r\n candidateName: string = '';\r\n candidateEmailAddress: string = '';\r\n candidatePhoneno: string = '';\r\n\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n\r\n constructor(private _booleanSearchService: BooleanSearchService, private consultantService: ConsultantService, private layoutService: LayoutService,) {}\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this._booleanSearchService.requiredSkills$,\r\n this._booleanSearchService.excludedSkills$,\r\n this._booleanSearchService.preferredSkills$,\r\n this._booleanSearchService.requiredJobTitles$,\r\n this._booleanSearchService.excludedJobTitles$,\r\n this._booleanSearchService.requiredCandidateNames$\r\n ])\r\n .pipe(first())\r\n .subscribe({\r\n next: ([requiredSkills, excludedSkills, preferredSkills, jobTitles, excludeJobTitles, candidateNames]) => {\r\n this.requiredSkillList = requiredSkills.filter((skill) => skill)\r\n this.excludedSkillList = excludedSkills.filter((skill) => skill)\r\n this.preferredSkillList = preferredSkills.filter((skill) => skill)\r\n this.jobTitleList = jobTitles.filter((title) => title)\r\n this.excludeJobTitleList = excludeJobTitles.filter((title) => title)\r\n this.candidateName = candidateNames\r\n },\r\n })\r\n this._subscribeToSuggestedKeywords()\r\n this._subscribeToResetSubscriber()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n }\r\n\r\n getActiveInput(index: number) {\r\n this._booleanSearchService.setCurrentlyActiveInput(index)\r\n }\r\n\r\n requiredSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.requiredSkillList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removeRequiredSkillList(keyword: any): void {\r\n let index = this.requiredSkillList.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.requiredSkillList.splice(index, 1)\r\n this._booleanSearchService.setRequiredSkills(this.requiredSkillList)\r\n }\r\n }\r\n\r\n addRequiredSkillList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.requiredSkillList.push(value.trim())\r\n this._booleanSearchService.setRequiredSkills(this.requiredSkillList)\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n preferredSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.preferredSkillList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removePreferredSkillList(keyword: any): void {\r\n let index = this.preferredSkillList.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.preferredSkillList.splice(index, 1)\r\n this._booleanSearchService.setPreferredSkills(this.preferredSkillList)\r\n }\r\n }\r\n\r\n addPreferredSkillList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.preferredSkillList.push(value.trim())\r\n this._booleanSearchService.setPreferredSkills(this.preferredSkillList)\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n excludedSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.excludedSkillList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removeExcludedSkillList(keyword: any): void {\r\n let index = this.excludedSkillList.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.excludedSkillList.splice(index, 1)\r\n this._booleanSearchService.setExcludedSkills(this.excludedSkillList)\r\n }\r\n }\r\n\r\n addExcludedSkillList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.excludedSkillList.push(value.trim())\r\n this._booleanSearchService.setExcludedSkills(this.excludedSkillList)\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n private _subscribeToSuggestedKeywords() {\r\n this._booleanSearchService.addSuggestedKeyword$\r\n .pipe(\r\n filter((keyword) => keyword != ''),\r\n withLatestFrom(this._booleanSearchService.currentlyActiveInput$)\r\n )\r\n .subscribe(([keyword, activeInput]) => {\r\n if (activeInput === 0) {\r\n if (!this.requiredSkillList.includes(keyword)) {\r\n this.requiredSkillList.push(keyword)\r\n this._booleanSearchService.setRequiredSkills(this.requiredSkillList)\r\n }\r\n } else if (activeInput === 1) {\r\n if (!this.preferredSkillList.includes(keyword)) {\r\n this.preferredSkillList.push(keyword)\r\n this._booleanSearchService.setPreferredSkills(this.preferredSkillList)\r\n }\r\n } else {\r\n if (!this.excludedSkillList.includes(keyword)) {\r\n this.excludedSkillList.push(keyword)\r\n this._booleanSearchService.setExcludedSkills(this.excludedSkillList)\r\n }\r\n }\r\n })\r\n }\r\n\r\n jobTitleListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.jobTitleList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removeJobTitleList(keyword: string): void {\r\n const index = this.jobTitleList.indexOf(keyword)\r\n if (index >= 0) {\r\n this.jobTitleList.splice(index, 1)\r\n this._booleanSearchService.setJobTitles(this.jobTitleList)\r\n }\r\n }\r\n\r\n addJobTitleList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n\r\n if ((value || '').trim()) {\r\n this.jobTitleList.push(value.trim())\r\n this._booleanSearchService.setJobTitles(this.jobTitleList)\r\n }\r\n\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n excludeJobTitleListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.excludeJobTitleList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removeExcludeJobTitleList(keyword: string): void {\r\n const index = this.excludeJobTitleList.indexOf(keyword)\r\n if (index >= 0) {\r\n this.excludeJobTitleList.splice(index, 1)\r\n this._booleanSearchService.setExcludeJobTitles(this.excludeJobTitleList)\r\n }\r\n }\r\n\r\n addExcludeJobTitleList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n\r\n if ((value || '').trim()) {\r\n this.excludeJobTitleList.push(value.trim())\r\n this._booleanSearchService.setExcludeJobTitles(this.excludeJobTitleList)\r\n }\r\n\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n private _subscribeToResetSubscriber() {\r\n this._booleanSearchService.resetBooleanFiltersSubscriber$\r\n .pipe(\r\n filter((value) => value != 0),\r\n takeUntil(this.destroy$)\r\n )\r\n .subscribe({\r\n next: () => {\r\n this.requiredSkillList = []\r\n this.preferredSkillList = []\r\n this.excludedSkillList = []\r\n this.jobTitleList = []\r\n this.excludeJobTitleList = []\r\n this.candidateName = '';\r\n this.candidatePhoneno = '';\r\n this.candidateEmailAddress = '';\r\n },\r\n })\r\n }\r\n\r\n applyFilterTitle(title) {\r\n title = title.trim() // Remove whitespace\r\n this.consultantService\r\n .jobTitleSearch(title)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n\r\n selectedTitle(event: MatAutocompleteSelectedEvent): void {\r\n const value = event.option.value\r\n if (!this.jobTitleList.includes(value)) {\r\n this.jobTitleList.push(value)\r\n this._booleanSearchService.setJobTitles(this.jobTitleList)\r\n }\r\n event.option.deselect()\r\n\r\n if (this.titleInput) {\r\n this.titleInput.nativeElement.value = ''\r\n // this.form.get('JobTitleName').setValue('');\r\n }\r\n }\r\n\r\n selectedExcludeTitle(event: MatAutocompleteSelectedEvent): void {\r\n const value = event.option.value\r\n if (!this.excludeJobTitleList.includes(value)) {\r\n this.excludeJobTitleList.push(value)\r\n this._booleanSearchService.setExcludeJobTitles(this.excludeJobTitleList)\r\n }\r\n event.option.deselect()\r\n\r\n if (this.excludeTitleInput) {\r\n this.excludeTitleInput.nativeElement.value = ''\r\n // this.form.get('JobTitleName').setValue('');\r\n }\r\n }\r\n\r\n onCandidateNameChange(event: any){\r\n this._booleanSearchService.setCandidateNames(event);\r\n }\r\n\r\n onCandidateEmailChange(event: any){\r\n this._booleanSearchService.setCandidateEmailAddress(event);\r\n }\r\n\r\n onCandidatePhoneNumber(event: any){\r\n this._booleanSearchService.setCandidatePhonenumber(event);\r\n }\r\n\r\n moduleLevelSearch(){\r\n this._booleanSearchService.setCandidateNames(this.candidateName);\r\n // this.layoutService.closeQuickpanel();\r\n // this._booleanSearchService.toggleBooleanSearchCandidateMethod(true)\r\n // this._booleanSearchService.getDiceCandidateRecords()\r\n // this._booleanSearchService.resetPaginationForBooleanSearch()\r\n }\r\n \r\n resetModuleLevelSearchFilter() {\r\n this.candidateName = '';\r\n this._booleanSearchService.setCandidateNames(this.candidateName);\r\n }\r\n}\r\n","
Candidate Name
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n 0\"\r\n class=\"cursor-pointer w-3 h-3\"\r\n src=\"assets/img/Cross Icon.svg\"\r\n alt=\"Clear Icon\"\r\n />\r\n 0)\"\r\n class=\"cursor-pointer w-5 h-5\"\r\n src=\"assets/search-icon.svg\"\r\n alt=\"Filter Search Icon\"\r\n />\r\n \r\n
\r\n
\r\n\r\n
Email Address
\r\n\r\n \r\n\r\n\r\n
Phone No
\r\n\r\n \r\n\r\n\r\n
Job Titles
\r\n\r\n \r\n \r\n {{ title }}\r\n cancel\r\n \r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n\r\n
Required Skill
\r\n\r\n \r\n \r\n {{ required }}\r\n clear\r\n \r\n \r\n \r\n\r\n\r\n
Preferred Skill
\r\n\r\n \r\n \r\n {{ cert }}\r\n clear\r\n \r\n \r\n \r\n\r\n\r\n
Excluded Skill
\r\n\r\n \r\n \r\n {{ cert }}\r\n clear\r\n \r\n \r\n \r\n\r\n\r\n
Exclude Job Titles
\r\n\r\n \r\n \r\n {{ job }}\r\n cancel\r\n \r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n\r\n","import { Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core'\r\nimport { BooleanSearchService } from './boolean-search.service'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog'\r\nimport { ActivatedRoute } from '@angular/router'\r\nimport { ConsultantService } from '../consultant/consultant.service'\r\nimport { CommonMatDialogService } from '../services/common-mat-dialog.service'\r\nimport { CommonService } from '../services/common.service'\r\nimport { LayoutService } from '../shared/core/services/layout.service'\r\n\r\n@Component({\r\n selector: 'leap-boolean-search',\r\n templateUrl: './boolean-search.component.html',\r\n styleUrls: ['./boolean-search.component.scss'],\r\n})\r\nexport class BooleanSearchComponent implements OnInit, OnDestroy {\r\n isShowAdvanceSearch$: Observable = this.booleanSearchService.isShowAdvanceSearch$\r\n public stateSearchText: string\r\n public miles: number\r\n destroy$: Subject = new Subject()\r\n searchCriteria: any // TODO remove any\r\n isLoading: boolean = false\r\n isFromJobSearch: boolean = false\r\n requiredSkills: string[]\r\n advancedSearchText: string\r\n isShowAdvanceSearch: boolean\r\n\r\n constructor(\r\n // @Inject(MAT_DIALOG_DATA) public data: any,\r\n private booleanSearchService: BooleanSearchService,\r\n private _activatedRoute: ActivatedRoute,\r\n private _consultantService: ConsultantService,\r\n private matDialog: CommonMatDialogService,\r\n private _commonService: CommonService,\r\n private layoutService: LayoutService,\r\n ) {\r\n const JOB_ID = this._activatedRoute.snapshot.queryParamMap.get('jobId')\r\n if (JOB_ID != null) {\r\n this.isFromJobSearch = true\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.booleanSearchService.setIsSearchTextTouched(false)\r\n this.booleanSearchService.setIsFromJobValue(this.isFromJobSearch)\r\n this.booleanSearchService.requiredSkills$.subscribe((data) => {\r\n this.requiredSkills = data\r\n })\r\n\r\n this.booleanSearchService.querySearchInputText$.subscribe((text) => {\r\n this.advancedSearchText = text\r\n })\r\n\r\n this.isShowAdvanceSearch$.subscribe((isShowAdvanceSearch) => {\r\n this.isShowAdvanceSearch = isShowAdvanceSearch\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.booleanSearchService.setIsFromJobValue(false)\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n this.booleanSearchService.setValueForBooleanFilter()\r\n }\r\n\r\n toggleSearchMethod() {\r\n this.booleanSearchService.toggleSearchMethod()\r\n }\r\n\r\n resetQuerySearchText() {\r\n this.booleanSearchService.updateQuerySearchInputText('')\r\n }\r\n\r\n resetSuggestedKeywords() {\r\n this.booleanSearchService.setAddSuggestedKeyword('')\r\n this.booleanSearchService.setCurrentlyActiveInput(0)\r\n this.layoutService.closeQuickpanel()\r\n }\r\n\r\n searchDiceCandidatesFilters() {\r\n this.booleanSearchService.toggleBooleanSearchCandidateMethod(true)\r\n this.booleanSearchService.getDiceCandidateRecords()\r\n this.matDialog.close()\r\n this.booleanSearchService.resetPaginationForBooleanSearch()\r\n // this.isLoading = true\r\n }\r\n resetBooleanSearchFilter() {\r\n this.booleanSearchService.resetBooleanFilters()\r\n }\r\n\r\n closeSidePanel() {\r\n this.layoutService.closeQuickpanel()\r\n }\r\n}\r\n"," \r\n\r\n
\r\n Boolean Search\r\n close\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Search\r\n \r\n \r\n Reset\r\n \r\n \r\n Close\r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { BooleanSearchComponent } from './boolean-search.component'\r\nimport { BasicSearchComponent } from './basic-search/basic-search.component'\r\nimport { SuggestedKeywordsComponent } from './suggested-keywords/suggested-keywords.component'\r\nimport { AdditionalCriteriaComponent } from './additional-criteria/additional-criteria.component'\r\nimport { QuerySearchComponent } from './query-search/query-search.component'\r\nimport { MatFormFieldModule } from '@angular/material/form-field'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MaterialModule } from '../material.module'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { BreadcrumbsModule } from '../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { ToolbarModule } from '../shared/core/layout/toolbar/toolbar.module'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { SharedModule } from '../shared/shared.module'\r\nimport { MatChipsModule } from '@angular/material/chips'\r\n\r\n@NgModule({\r\n declarations: [\r\n BooleanSearchComponent,\r\n BasicSearchComponent,\r\n SuggestedKeywordsComponent,\r\n AdditionalCriteriaComponent,\r\n QuerySearchComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BreadcrumbsModule,\r\n BreadcrumbsModule,\r\n FlexLayoutModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n IconModule,\r\n MatChipsModule,\r\n MatAutocompleteModule,\r\n ToolbarModule,\r\n NgxLoadingModule.forRoot({}),\r\n SharedModule,\r\n ],\r\n exports: [BooleanSearchComponent, BasicSearchComponent, MatChipsModule, SuggestedKeywordsComponent],\r\n})\r\nexport class BooleanSearchModule {}\r\n","import { Injectable } from '@angular/core'\r\nimport { BehaviorSubject } from 'rxjs'\r\nimport { Filter } from '../shared/filters/models/select-dropdown-option.model'\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\r\nimport { PaginatorInformation } from '../models/paginator.model'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BooleanSearchService {\r\n booleanSearchFilterOptions: Filter[] = []\r\n private _isShowAdvanceSearch$ = new BehaviorSubject(false)\r\n public isShowAdvanceSearch$ = this._isShowAdvanceSearch$.asObservable()\r\n\r\n private _basicSearchInput$ = new BehaviorSubject([])\r\n public basicSearchInputText = this._basicSearchInput$.asObservable()\r\n\r\n private _requiredSkills$ = new BehaviorSubject([])\r\n public requiredSkills$ = this._requiredSkills$.asObservable()\r\n\r\n private _requiredCandidateNames$ = new BehaviorSubject('')\r\n public requiredCandidateNames$ = this._requiredCandidateNames$.asObservable()\r\n\r\n private _requiredCandidateEmailAddress$ = new BehaviorSubject('')\r\n public requiredCandidateEmailAddres$ = this._requiredCandidateEmailAddress$.asObservable()\r\n\r\n private _requiredCandidatePhoneno$ = new BehaviorSubject('')\r\n public requiredCandidatePhoneno$ = this._requiredCandidatePhoneno$.asObservable()\r\n\r\n private _requiredJobTitles$ = new BehaviorSubject([])\r\n public requiredJobTitles$ = this._requiredJobTitles$.asObservable()\r\n\r\n private _excludedSkills$ = new BehaviorSubject([])\r\n public excludedSkills$ = this._excludedSkills$.asObservable()\r\n\r\n private _excludedJobTitles$ = new BehaviorSubject([])\r\n public excludedJobTitles$ = this._excludedJobTitles$.asObservable()\r\n\r\n private _preferredSkills$ = new BehaviorSubject([])\r\n public preferredSkills$ = this._preferredSkills$.asObservable()\r\n\r\n private _suggestedKeywords$ = new BehaviorSubject([])\r\n public suggestedKeywords = this._suggestedKeywords$.asObservable()\r\n\r\n private _additionalCriteria$ = new BehaviorSubject([])\r\n public additionalCriteria$ = this._additionalCriteria$.asObservable()\r\n\r\n private _querySearchInputText$ = new BehaviorSubject('')\r\n public querySearchInputText$ = this._querySearchInputText$.asObservable()\r\n\r\n private _isFromJobForCandidateModule$ = new BehaviorSubject(false)\r\n public isFromJobForCandidateObservable$ = this._isFromJobForCandidateModule$.asObservable()\r\n\r\n private _isSearchTextTouched$ = new BehaviorSubject(false)\r\n public isSearchTextTouchedObservable$ = this._isSearchTextTouched$.asObservable()\r\n\r\n private _getCandidateFromBooleanSearch$ = new BehaviorSubject(0)\r\n public getCandidateFromBooleanSearch$ = this._getCandidateFromBooleanSearch$.asObservable()\r\n\r\n private _paginationInformation$ = new BehaviorSubject({ PageNumber: 1, PageSize: 50 })\r\n public paginationInformation = this._paginationInformation$.asObservable()\r\n\r\n private _currentlyActiveInput$ = new BehaviorSubject(0)\r\n public currentlyActiveInput$ = this._currentlyActiveInput$.asObservable()\r\n\r\n private _addSuggestedKeyword$ = new BehaviorSubject('')\r\n public addSuggestedKeyword$ = this._addSuggestedKeyword$.asObservable()\r\n\r\n private _isCandidateSearchedFromBooleanSearch$ = new BehaviorSubject(false)\r\n public isCandidateSearchedFromBooleanSearch$ = this._isCandidateSearchedFromBooleanSearch$.asObservable()\r\n\r\n private _resetBooleanFiltersSubscriber$ = new BehaviorSubject(0)\r\n public resetBooleanFiltersSubscriber$ = this._resetBooleanFiltersSubscriber$.asObservable()\r\n searchQuery: string\r\n\r\n constructor() {}\r\n\r\n toggleSearchMethod() {\r\n this._isShowAdvanceSearch$.next(!this._isShowAdvanceSearch$.value)\r\n }\r\n\r\n updateBasicSearchInputText(text: any[]) {\r\n this._basicSearchInput$.next(text)\r\n }\r\n\r\n updateSuggestedKeywords(keywords: any[]) {\r\n this._suggestedKeywords$.next(keywords)\r\n }\r\n\r\n updateAdditionalCriteria(criteria: any[]) {\r\n this._additionalCriteria$.next(criteria)\r\n }\r\n\r\n updateQuerySearchInputText(text: string) {\r\n this.searchQuery = text\r\n this._querySearchInputText$.next(text)\r\n }\r\n\r\n setIsFromJobValue(isFromJob: boolean) {\r\n this._isFromJobForCandidateModule$.next(isFromJob)\r\n }\r\n\r\n setIsSearchTextTouched(isTouched: boolean) {\r\n this._isSearchTextTouched$.next(isTouched)\r\n }\r\n\r\n getDiceCandidateRecords() {\r\n this._getCandidateFromBooleanSearch$.next(this._getCandidateFromBooleanSearch$.value + 1)\r\n }\r\n\r\n setDefaultValueForBooleanFilterCounter() {\r\n this._getCandidateFromBooleanSearch$.next(0)\r\n }\r\n\r\n setPaginationInformation(pageInfo: PaginatorInformation) {\r\n this._paginationInformation$.next(pageInfo)\r\n }\r\n\r\n setJobTitles(titles: string[]) {\r\n this._requiredJobTitles$.next(titles)\r\n }\r\n\r\n setCandidateNames(names: string) {\r\n this._requiredCandidateNames$.next(names)\r\n }\r\n\r\n setCandidateEmailAddress(email: string) {\r\n this._requiredCandidateEmailAddress$.next(email)\r\n }\r\n\r\n setCandidatePhonenumber(phoneno: string) {\r\n this._requiredCandidatePhoneno$.next(phoneno)\r\n }\r\n\r\n setRequiredSkills(skills: string[]) {\r\n this._requiredSkills$.next(skills)\r\n }\r\n\r\n setExcludedSkills(skills: string[]) {\r\n this._excludedSkills$.next(skills)\r\n }\r\n\r\n setExcludeJobTitles(titles: string[]) {\r\n this._excludedJobTitles$.next(titles)\r\n }\r\n\r\n setPreferredSkills(skills: string[]) {\r\n this._preferredSkills$.next(skills)\r\n }\r\n\r\n setAddSuggestedKeyword(suggestedKeyword: string) {\r\n this._addSuggestedKeyword$.next(suggestedKeyword)\r\n }\r\n\r\n setCurrentlyActiveInput(ActiveInput: number) {\r\n this._currentlyActiveInput$.next(ActiveInput)\r\n }\r\n\r\n toggleBooleanSearchCandidateMethod(isBooleanSearch: boolean) {\r\n this._isCandidateSearchedFromBooleanSearch$.next(isBooleanSearch)\r\n }\r\n\r\n resetPaginationForBooleanSearch() {\r\n this._paginationInformation$.next({ PageNumber: 1, PageSize: 50 })\r\n }\r\n\r\n resetBooleanFilters() {\r\n this.setRequiredSkills([])\r\n this.setExcludedSkills([])\r\n this.setAddSuggestedKeyword('')\r\n this.setPreferredSkills([])\r\n this.updateAdditionalCriteria([])\r\n this._resetBooleanFiltersSubscriber$.next(this._resetBooleanFiltersSubscriber$.value + 1)\r\n }\r\n\r\n setValueForBooleanFilter() {\r\n this._resetBooleanFiltersSubscriber$.next(0)\r\n }\r\n}\r\n","import { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'\r\nimport { BooleanSearchService } from '../boolean-search.service'\r\nimport { Subject, combineLatest } from 'rxjs'\r\nimport { first, takeUntil } from 'rxjs/operators'\r\n\r\n@Component({\r\n selector: 'leap-query-search',\r\n templateUrl: './query-search.component.html',\r\n styleUrls: ['./query-search.component.scss'],\r\n})\r\nexport class QuerySearchComponent implements OnInit {\r\n isUserTouched: boolean\r\n constructor(private booleanSearchService: BooleanSearchService) { }\r\n searchQuery = ''\r\n private _destroy: Subject = new Subject()\r\n @ViewChild(\"advancedSearch\") set advancedSearchRef(ref: ElementRef) {\r\n if (!!ref) {\r\n setTimeout(() => {\r\n\r\n ref.nativeElement.focus();\r\n }, 100);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n // this._resetQueryText()\r\n this.searchQuery = this.booleanSearchService.searchQuery;\r\n this.booleanSearchService.isSearchTextTouchedObservable$.subscribe(hasUserTouched => {\r\n this.isUserTouched = hasUserTouched;\r\n });\r\n combineLatest([\r\n this.booleanSearchService.requiredSkills$,\r\n this.booleanSearchService.excludedSkills$,\r\n this.booleanSearchService.preferredSkills$,\r\n ])\r\n .pipe(first())\r\n .subscribe({\r\n next: ([requiredSkills, excludedSkills, preferredSkills]) => {\r\n const REQUIRED_STRING = requiredSkills?.join(' AND ') || ''\r\n const PREFERRED_STRING = preferredSkills?.join(' OR ') || ''\r\n const EXCLUDED_STRING = excludedSkills?.join(' NOT ') || ''\r\n let stringVal = '';\r\n if (REQUIRED_STRING) {\r\n stringVal = '(' + REQUIRED_STRING + ')'\r\n }\r\n\r\n if (REQUIRED_STRING && PREFERRED_STRING) {\r\n stringVal += ' OR '\r\n stringVal += '(' + PREFERRED_STRING + ')'\r\n } else if (!REQUIRED_STRING && PREFERRED_STRING) {\r\n stringVal += '(' + PREFERRED_STRING + ')'\r\n }\r\n if (EXCLUDED_STRING && (REQUIRED_STRING || PREFERRED_STRING)) {\r\n stringVal += ' NOT '\r\n stringVal += EXCLUDED_STRING\r\n } else if (EXCLUDED_STRING && !REQUIRED_STRING && !PREFERRED_STRING) {\r\n stringVal += EXCLUDED_STRING\r\n }\r\n\r\n if (stringVal && !this.isUserTouched) {\r\n this.searchQuery = stringVal;\r\n } else if (!stringVal && !this.isUserTouched) {\r\n this.searchQuery = '';\r\n }else if(stringVal && !this.searchQuery){\r\n this.isUserTouched = false;\r\n this.searchQuery = stringVal;\r\n }\r\n this.booleanSearchService.updateQuerySearchInputText(this.searchQuery)\r\n },\r\n })\r\n }\r\n\r\n isTextTouched() {\r\n this.booleanSearchService.setIsSearchTextTouched(true);\r\n }\r\n\r\n toggleSearchMethod() {\r\n this.booleanSearchService.toggleSearchMethod()\r\n }\r\n\r\n saveQueryText(event: Event): void {\r\n let text = (event.target).value;\r\n if (!text) {\r\n this.booleanSearchService.setIsSearchTextTouched(false);\r\n }\r\n this.booleanSearchService.updateQuerySearchInputText(text)\r\n }\r\n\r\n\r\n\r\n splitSkills(input) {\r\n let requiredSkills = []\r\n let preferredSkills = []\r\n let excludedSkills = []\r\n\r\n const stringWithoutParentheses = input.replace(/[()]/g, '')\r\n\r\n let notSplit: string[] = stringWithoutParentheses.split(' NOT ')\r\n\r\n if (notSplit.length > 1) {\r\n excludedSkills = notSplit.slice(1).map((skill) => skill.split(' AND ').map((skill) => skill.trim()))\r\n }\r\n\r\n let orSplit = notSplit[0].split(' OR ')\r\n\r\n if (orSplit.length > 1) {\r\n preferredSkills = orSplit.slice(1).map((skill) => skill.trim())\r\n }\r\n\r\n requiredSkills = orSplit[0].split(' AND ').map((skill) => skill.trim())\r\n\r\n this.booleanSearchService.setRequiredSkills(requiredSkills),\r\n this.booleanSearchService.setPreferredSkills(preferredSkills),\r\n this.booleanSearchService.setExcludedSkills(excludedSkills)\r\n }\r\n private _resetQueryText() {\r\n this.booleanSearchService.resetBooleanFiltersSubscriber$.pipe(takeUntil(this._destroy)).subscribe({\r\n next: () => {\r\n this.searchQuery = ''\r\n },\r\n })\r\n }\r\n}\r\n","
\r\n

Advance Search

\r\n\r\n \r\n \r\n \r\n\r\n

\r\n \r\n

\r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { BooleanSearchService } from '../boolean-search.service'\r\n\r\n@Component({\r\n selector: 'leap-suggested-keywords',\r\n templateUrl: './suggested-keywords.component.html',\r\n styleUrls: ['./suggested-keywords.component.scss'],\r\n})\r\nexport class SuggestedKeywordsComponent implements OnInit {\r\n suggestedKeywords = ['Power Point', 'Computer Programming', 'MS-Office', 'Excel', 'Web Server']\r\n\r\n constructor(private _boolean: BooleanSearchService) {}\r\n\r\n ngOnInit(): void {}\r\n getSuggestedKeyword(keyword: any) {\r\n this._boolean.setAddSuggestedKeyword(keyword)\r\n }\r\n}\r\n","

Suggested Keywords

\r\n\r\n\r\n","import { HttpHeaders, HttpErrorResponse } from '@angular/common/http'\r\nimport { throwError as observableThrowError } from 'rxjs'\r\nimport { iUserInfo } from '../models/user.model'\r\nimport { iJob } from '../models/job.model'\r\nimport { iConfigValue, iStatus, iLookup, iStates } from '../models/common.model'\r\nimport { iConsultant, iConsultantJob } from '../models/consultant.model'\r\n\r\nenum UserRoles {\r\n SUPER_ADMIN = 1,\r\n ATS_ADMIN = 2,\r\n VMS_ADMIN = 3,\r\n User = 4,\r\n Consultant = 5,\r\n HR = 6,\r\n RecruitingManager = 7,\r\n Recruiter = 8,\r\n BusinessDevelopment = 9,\r\n DeliveryManager = 10,\r\n RecruitSupportTeam = 11,\r\n AccountingFinance = 12,\r\n HiringManager = 13,\r\n}\r\n\r\nenum JobStatuses {\r\n JOB_DRAFT = 2,\r\n JOB_OPEN = 3,\r\n JOB_HOLD = 4,\r\n JOB_CLOSED_HIRE = 5,\r\n JOB_CLOSED_NOHIRE = 6,\r\n JOB_INTERVIEWING = 7,\r\n JOB_CANCELLED = 14,\r\n JOB_DECLINED = 15,\r\n JOB_DELETE = 29,\r\n JOB_CLONE = 30,\r\n}\r\n\r\nexport enum JobStatusStrings {\r\n JOB_OPEN = 'JOB_OPEN',\r\n JOB_CLOSED = 'JOB_CLOSED',\r\n JOB_CLOSE = 'JOB_CLOSE',\r\n}\r\nenum JobContractType {\r\n JT_C2C = 10,\r\n JT_C2H = 11,\r\n JT_PERM = 12,\r\n}\r\nenum LegalTypes {\r\n LT_H1B = 5,\r\n LT_EAD_GC = 6,\r\n LT_GC = 7,\r\n LT_USC = 8,\r\n LT_TN = 9,\r\n}\r\nenum SkillLevels {\r\n JT_PERM = 12,\r\n SL_KNOW = 13,\r\n SL_PROF = 14,\r\n SL_INTER = 15,\r\n SL_ADVA = 16,\r\n SL_EXPERT = 17,\r\n}\r\nenum ObjectTypes {\r\n Company = 1,\r\n Consultant = 2,\r\n Job = 3,\r\n Resume = 4,\r\n User = 5,\r\n ConsultantJob = 6,\r\n ConsultantVerify = 7,\r\n}\r\nenum Component {\r\n HOME = 1,\r\n Company = 2,\r\n Job = 3,\r\n Consultant = 4,\r\n User = 5,\r\n ConsultantJob = 6,\r\n ConsultantVerify = 9,\r\n}\r\nenum ResumeSource {\r\n RES_SRC_LEAPTIGER = 64,\r\n RES_SRC_DICE = 65,\r\n RES_SRC_CB = 66,\r\n RES_SRC_LINKEDIN = 67,\r\n RES_SRC_MONSTER = 68,\r\n RES_SRC_GOOGLE = 69,\r\n RES_SRC_INDEED = 70,\r\n RES_SRC_GLASSDOOR = 71,\r\n RES_SRC_ZIPRECRUITER = 72,\r\n RES_SRC_Craigslist = 73,\r\n RES_SRC_USAJobs = 74,\r\n RES_SRC_Behance = 75,\r\n RES_SRC_Ladders = 76,\r\n RES_SRC_TechFetch = 77,\r\n RES_SRC_Referral = 78,\r\n RES_SRC_Hired = 79,\r\n RES_SRC_GitHub = 80,\r\n RES_SRC_Randstad = 81,\r\n RES_SRC_iHire = 82,\r\n}\r\nenum ConsultantStatuses {\r\n CAN_AVAILABLE = 31,\r\n CAN_AVAIL_LATER = 32,\r\n CAN_NOT_AVAIL = 33,\r\n}\r\nexport enum ConsultantJobStatuses {\r\n CON_JOB_APPLIED = 11,\r\n CON_JOB_MATCHED = 12,\r\n CON_JOB_REJECTED = 13,\r\n CON_JOB_SHORTLISTED = 16,\r\n CON_JOB_APRVAL_PENDG = 17,\r\n CON_JOB_APPROVED = 18,\r\n CON_JOB_SUBMITTED = 19,\r\n CON_JOB_INTEW_SCHED = 20,\r\n CON_JOB_INTEW_ACCEPT = 21,\r\n CON_JOB_INTEW_REJECT = 22,\r\n CON_JOB_OFFER_PENDG = 23,\r\n CON_JOB_OFFER_ACCEPT = 24,\r\n CON_JOB_OFFER_REJECT = 25,\r\n CON_JOB_ONBOARDING = 26,\r\n CON_JOB_HIRED = 27,\r\n CON_JOB_TERMINATE = 28,\r\n}\r\nexport enum MenuCode {\r\n CON_JOB_APPLIED = 'CON_JOB_APPLIED',\r\n CON_JOB_MATCHED = 'CON_JOB_MATCHED',\r\n CON_JOB_REJECTED = 'CON_JOB_REJECTED',\r\n CON_JOB_SHORTLISTED = 'CON_JOB_SHORTLISTED',\r\n CON_JOB_APRVAL_PENDG = 'CON_JOB_APVAL PENDNG',\r\n CON_JOB_APPROVED = 'CON_JOB_APPROVED',\r\n CON_JOB_SUBMITTED = 'CON_JOB_SUBMITTED',\r\n CON_JOB_INTEW_SCHED = 'CON_JOB_INTRVW SCHEDUNG',\r\n CON_JOB_INTEW_ACCEPT = 'CON_JOB_INTRVW ACCEPT',\r\n CON_JOB_INTEW_REJECT = 'CON_JOB_INTRVW_REJECT',\r\n CON_JOB_OFFER_PENDG = 'CON_JOB_OFFER PENDNG',\r\n CON_JOB_OFFER_ACCEPT = 'CON_JOB_OFFER_ACCEPT',\r\n CON_JOB_OFFER_REJECT = 'CON_JOB_OFFER_REJECT',\r\n CON_JOB_ONBOARDING = 'CON_JOB_ONBOARDING',\r\n CON_JOB_HIRED = 'CON_JOB_HIRED',\r\n CON_JOB_TERMINATE = 'CON_JOB_TERMINATED',\r\n CON_JOB_INTVW_ANOTHER = 'CON_JOB_INTVW_ANOTHER',\r\n CON_JOB_PREVIEW = 'CON_JOB_PREVIEW',\r\n CON_ADD = 'CANDIDATE_ADD',\r\n CON_JOB_INT_CANCEL = 'CON_JOB_INT_CANCEL',\r\n CON_JOB_WITHDRAW = 'CON_JOB_WITHDRAW',\r\n CON_JOB_HOLD = 'JOB_HOLD',\r\n CON_JOB_CLOSE = 'JOB_CLOSE',\r\n CON_JOB_CANCELLED = 'JOB_CANCELLED',\r\n CON_JOB_DECLINED = 'JOB_DECLINED',\r\n CON_JOB_DELETE = 'JOB_DELETE',\r\n CON_JOB_CLONE = 'JOB_CLONE',\r\n}\r\n\r\nexport enum MenuName {\r\n CON_JOB_APPLIED = 'Applied',\r\n}\r\n\r\nexport enum ConsultantType {\r\n CAN_C2C = 129,\r\n CAN_C2O = 130,\r\n CAN_W2 = 131,\r\n CAN_1099 = 187,\r\n}\r\nenum MenuType {\r\n TABS = 30,\r\n SIDE = 31,\r\n TOOLBAR = 32,\r\n SEARCH = 33,\r\n BUTTON = 34,\r\n DROPDOWN = 53,\r\n}\r\nexport enum ReasonTypes {\r\n ReasonJobDeleteID = 44,\r\n ReasonJobHoldID = 45,\r\n ReasonJobCancelID = 46,\r\n ReasonJobCloseID = 47,\r\n ReasonJobDeclineID = 48,\r\n ReasonJobReopenID = 49,\r\n ReasonCandidateJobRejectlD = 57,\r\n ReasonCandidateJobWithdrawID = 58,\r\n ReasonInteviewRejectID = 59,\r\n ReasonCandidateJobTerminatelID = 60,\r\n ReasonInteviewCancelID = 61,\r\n ReasonOfferRejectlD = 62,\r\n}\r\nexport class Common {\r\n static wfStatus: iStatus[]\r\n static ConfigValues: iConfigValue[]\r\n static lookUp: iLookup[]\r\n static states: iStates[]\r\n\r\n static apiUrl: string = ''\r\n static filePath: string = ''\r\n static authUrl: string = ''\r\n static appSettings: string\r\n static token: string\r\n static companyStepIndex: number = 0\r\n\r\n static editJobDesc: boolean = false\r\n static editJobDetails: boolean = false\r\n static editOtherDetails: boolean = false\r\n static editEducations: boolean = false\r\n static editSkills: boolean = false\r\n static editQuestionnaire: boolean = false\r\n\r\n static userProfile: iUserInfo\r\n static enumJobStatuses = JobStatuses\r\n static enumJobStatusStrings = JobStatusStrings\r\n static enumJobContractType = JobContractType\r\n static enumLegalTypes = LegalTypes\r\n static enumSkillLevels = SkillLevels\r\n static enumComponent = Component\r\n static enumObjectTypes = ObjectTypes\r\n static enumUserRoles = UserRoles\r\n static enumConsultantType = ConsultantType\r\n static enumResumeSource = ResumeSource\r\n static enumConsultantStatuses = ConsultantStatuses\r\n static enumConsultantJobStatuses = ConsultantJobStatuses\r\n static enumMenuType = MenuType\r\n static enumReasonTypes = ReasonTypes\r\n static enumMenuCode = MenuCode\r\n static jobAction: string\r\n static activeJob: iJob\r\n static activeJobId: Number\r\n static activeJobStatusId: Number\r\n static JobKeywords: any\r\n static iJobCandidateSearch: boolean\r\n static activeConsultant: iConsultant\r\n static parseConsultantData: iConsultant\r\n static activeConsultantJob: iConsultantJob\r\n static ResumeKeywords: any\r\n static RedDeleteIcon = 'assets/img/Leap-Tiger_Icons/Company-Module-Icon/red-delete-icon.svg'\r\n static EditIcon = 'assets/img/Leap-Tiger_Icons/Job-Module-Icon/JobEdit.svg'\r\n static maxJDFileSize = 6000000\r\n static maxJDCharacters = 25000\r\n static environment: any\r\n static microsoftClientId: any\r\n static microsoftTenantId: any\r\n static microsoftAuthority: any\r\n static redirectUri: any\r\n static postLogoutRedirectUri: any\r\n static identityAuthorityUrl: any\r\n static identityClientId: any\r\n static identityResponseType: any\r\n static identityScope: any\r\n static identityFilterProtocolClaims: any\r\n static identityLoadUserInfo: any\r\n static identityAutomaticSilentRenew: any\r\n static baseUrl: string\r\n static testCalleeNumber: string\r\n static testCallerNumber: string\r\n static outlookEmailReaderUrl: string\r\n static outlookEmailReaderToken: string\r\n static ResumeHTML: any\r\n static messages: any\r\n static index: number\r\n static sessionID: any\r\n static httpheaders: HttpHeaders = new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n })\r\n\r\n static httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n }),\r\n }\r\n\r\n static getHeaders(): HttpHeaders {\r\n this.httpheaders.append('Authorization', 'Bearer ' + `${this.token}`)\r\n return this.httpheaders\r\n }\r\n\r\n static GetNumeric(Content: string) {\r\n try {\r\n var num1 = Content.match(/\\$[1-9][\\d,]+(\\.[0-9]{1,2})?/g).toString()\r\n\r\n return parseFloat(num1)\r\n } catch (err) {\r\n return 0\r\n }\r\n }\r\n static handleError(error: HttpErrorResponse) {\r\n console.log('handleError: ', error.error.message)\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n console.log('error data service: ', errMessage)\r\n return observableThrowError(errMessage)\r\n }\r\n return observableThrowError(error || 'Angular server error')\r\n }\r\n}\r\nexport enum FormLocation {\r\n Tab = 'tab',\r\n Stepper = 'stepper',\r\n Tabs = 'tabs',\r\n StepperComp = 'stepperComp',\r\n Stepper_1 = 'stepper1',\r\n Stepper_2 = 'stepper2',\r\n Stepper_3 = 'stepper3',\r\n Stepper_4 = 'stepper4',\r\n Stepper_5 = 'stepper5',\r\n}\r\n\r\nexport enum DialogSize {\r\n Width = '750px',\r\n}\r\n\r\nexport enum PreviewDialogAction {\r\n Send = 'send',\r\n Cancel = 'cancel',\r\n Modify = 'modify',\r\n Submit = 'submit',\r\n}\r\nexport enum ReasonTypeID {\r\n Low_Rate = 1,\r\n Rare_skill = 2,\r\n Low_Priority = 3,\r\n Job_Closed_Quickly = 4,\r\n Workload = 5,\r\n Location = 6,\r\n Budget_Issue = 7,\r\n Internal_Hire = 8,\r\n Job_eliminated = 9,\r\n Short_Duration = 11,\r\n Unresponsive_Hiring_Manager = 12,\r\n Complex_Skills = 13,\r\n Higher_Rate = 80,\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core'\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { LocationType } from 'src/app/enums/locationType'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { iStates } from 'src/app/models/common.model'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport * as parser from 'parse-address'\r\nimport { Observable, Subject, Subscription } from 'rxjs'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { LocationService } from 'src/app/services/location.service'\r\nimport { LocationCalledFrom } from './location.constants'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { CommonService } from 'src/app/services/common.service'\r\n\r\n@Component({\r\n selector: 'location',\r\n templateUrl: './location.component.html',\r\n styleUrls: ['./location.component.scss'],\r\n})\r\nexport class LocationComponent implements OnInit, OnDestroy, OnChanges {\r\n locationCompanyId: number\r\n locationForm: FormGroup\r\n selectedLocationId: number\r\n cities: any\r\n selectedStateId: number\r\n states: any\r\n locationSearchText: ''\r\n searchCityText: ''\r\n searchStateText: any\r\n locationList: any\r\n location: iLocation\r\n prevLocation: any\r\n @Input() objectId\r\n @Input() objectTypeId\r\n @Input() isZipCodeRequired=false\r\n @Input() assignedLocation\r\n @Input() companyId\r\n @Input() calledFrom: string\r\n @Input() isFormViewOnly: boolean\r\n @Input() isSetLocationForEdit: boolean = false\r\n @Output() changesInLocationForm = new EventEmitter()\r\n private eventsSubscription: Subscription\r\n @Input() checkLocation: string\r\n @Input() events: Observable\r\n filteredStates: iStates[] = []\r\n state: iStates\r\n isLocationEdited: boolean = false\r\n matcher = new CustomErrorStateMatcher()\r\n destroy$: Subject = new Subject()\r\n\r\n public get locationCalledFrom(): typeof LocationCalledFrom {\r\n return LocationCalledFrom\r\n }\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private companyService: CompanyService,\r\n private locationService: LocationService,\r\n private notificationService: NotificationService,\r\n private _commonService: CommonService\r\n ) {\r\n let dateTime = new Date()\r\n this.location = {\r\n LocationID: 0,\r\n Address: '',\r\n Address1: '',\r\n StreetAddress: '',\r\n City: '',\r\n State: '',\r\n StateID: 0,\r\n ZipCode: 0,\r\n LocationTypeID: null,\r\n ObjectId: null,\r\n ObjectTypeId: null,\r\n FullAddress: '',\r\n CreatedBy: 0,\r\n CreatedDate: dateTime,\r\n UpdatedBy: 0,\r\n UpdatedDate: dateTime,\r\n IsActive: true,\r\n }\r\n this.locationForm = this.formBuilder.group({\r\n State: [null, Validators.required],\r\n City: [null, Validators.required],\r\n LocationID: [0],\r\n Address: [''],\r\n StreetAddress: ['', [Validators.required, Validators.minLength(2), Validators.maxLength(200)]],\r\n ZipCode: ['', Validators.required],\r\n })\r\n this.locationService.setCurrentLocation(null)\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.companyId?.currentValue != changes.companyId?.previousValue) {\r\n this.locationCompanyId = changes.companyId?.currentValue\r\n this.getLocationList()\r\n if (this.calledFrom == LocationCalledFrom.AddJobDetails) {\r\n this.getCompanyAllLocation()\r\n }\r\n }\r\n if (changes?.assignedLocation) {\r\n this.ngOnInit()\r\n }\r\n }\r\n isFormFieldValid(field: string) {\r\n return (\r\n this.locationForm.get(field).invalid &&\r\n (this.locationForm.get(field).dirty || this.locationForm.get(field).touched)\r\n )\r\n }\r\n markLocationFormAsTouched() {\r\n this.locationForm.controls['State'].markAsTouched()\r\n this.locationForm.controls['City'].markAsTouched()\r\n this.locationForm.controls['StreetAddress'].markAsTouched()\r\n this.locationForm.controls['ZipCode'].markAsTouched()\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.calledFrom == LocationCalledFrom.AddCandidateProfile) {\r\n this.locationForm.controls['State'].clearValidators()\r\n this.locationForm.controls['State'].updateValueAndValidity()\r\n this.locationForm.controls['City'].clearValidators()\r\n this.locationForm.controls['City'].updateValueAndValidity()\r\n this.locationForm.controls['StreetAddress'].clearValidators()\r\n this.locationForm.controls['StreetAddress'].updateValueAndValidity()\r\n this.locationForm.controls['ZipCode'].clearValidators()\r\n this.locationForm.controls['ZipCode'].updateValueAndValidity()\r\n }\r\n if (this.isFormViewOnly) {\r\n this.locationForm.disable()\r\n }\r\n CommonData.activeLocation = null\r\n this.getStatesAndCities()\r\n this.getLocationList()\r\n if (this.checkLocation == 'tabs') {\r\n this.eventsSubscription = this.events.pipe(takeUntil(this.destroy$)).subscribe((value) => {\r\n if (!value) {\r\n this.editModeHandler()\r\n } else {\r\n this.isLocationEdited = false\r\n this.changesInLocationForm.emit(this.isLocationEdited)\r\n }\r\n })\r\n }\r\n if (this.calledFrom == LocationCalledFrom.AddJobDetails && this.companyId != null) {\r\n this.getCompanyAllLocation()\r\n }\r\n this.locationForm.controls['ZipCode'].addValidators(!this.isZipCodeRequired ? [Validators.required] : [])\r\n this.locationForm.controls['ZipCode'].updateValueAndValidity({emitEvent:false})\r\n }\r\n\r\n onSelectedAddress(location) {\r\n this.selectedLocationId = location.LocationID\r\n this.selectedStateId = location.StateID\r\n this.location.LocationTypeID = location.LocationTypeID\r\n this.locationForm.get('Address').setValue(location.Address)\r\n this.locationForm.get('StreetAddress').setValue(location.StreetAddress)\r\n this.locationForm.get('City').setValue(location.City)\r\n this.locationForm.get('State').setValue(location.StateCode)\r\n this.locationForm.get('ZipCode').setValue(location.ZipCode)\r\n this.setLocation()\r\n }\r\n\r\n parseAddress(fullLocation: string) {\r\n if (fullLocation) {\r\n let fullAddress = fullLocation.replace(/[^\\w\\s]/gi, '').replace(/ +/g, ' ')\r\n let parsedAddress = parser.parseLocation(fullAddress)\r\n let index = fullAddress.indexOf(parsedAddress.city)\r\n let streetAddress = fullAddress.slice(0, index)\r\n this.locationForm.get('ZipCode').setValue('')\r\n this.locationForm.get('State').setValue('')\r\n this.locationForm.get('City').setValue('')\r\n this.locationForm.get('StreetAddress').setValue('')\r\n if (!parsedAddress?.state || !parsedAddress?.city) {\r\n this.notificationService.showError('Enter Valid Address', 'Location')\r\n return\r\n }\r\n this.locationForm.get('Address').setValue(fullAddress)\r\n this.locationForm.get('State').setValue(parsedAddress.state)\r\n this.locationForm.get('City').setValue(parsedAddress.city)\r\n this.locationForm.get('StreetAddress').setValue(streetAddress)\r\n if (parsedAddress?.zip != undefined && parsedAddress?.zip != null) {\r\n if (parsedAddress?.zip?.length === 5)\r\n this.locationForm.get('ZipCode').setValue(Number(parsedAddress.zip))\r\n }\r\n this.setLocation()\r\n } else {\r\n this.locationForm.get('Address').setValue('')\r\n this.locationForm.get('State').setValue('')\r\n this.locationForm.get('City').setValue('')\r\n this.locationForm.get('StreetAddress').setValue('')\r\n this.locationForm.get('ZipCode').setValue('')\r\n this.setLocation()\r\n }\r\n }\r\n\r\n getStatesAndCities() {\r\n this._commonService\r\n .getStates()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.filteredStates = this.states = res\r\n if (this.assignedLocation && this.isSetLocationForEdit) {\r\n this.setLocationForEdit()\r\n return\r\n }\r\n if (this.assignedLocation && this.assignedLocation.LocationID > 0) {\r\n this.setLocationForEdit()\r\n }\r\n })\r\n }\r\n applyFilterCity(searchValue: string) {\r\n let stateCode = null\r\n let stateList = this.states.filter(\r\n (x) =>\r\n x.StateCode.toLowerCase().trim() === this.state.StateCode?.toLowerCase().trim() ||\r\n x.StateName.toLowerCase().trim() === this.state.StateCode?.toLowerCase().trim()\r\n )\r\n if (stateList.length < 1) {\r\n this.selectedStateId = null\r\n this.locationForm.get('State').setValue('')\r\n } else {\r\n this.state = stateList[0]\r\n stateCode = stateList[0].StateCode\r\n this.searchStateText = this.state.StateName\r\n this.selectedStateId = this.state.StateID\r\n this.locationForm.get('State').setValue(this.state.StateName)\r\n }\r\n\r\n searchValue = searchValue.trim()\r\n this.companyService\r\n .GetCitySearch(searchValue, stateCode)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.cities = res\r\n })\r\n }\r\n\r\n filterState(searchValue: string) {\r\n this.filteredStates = []\r\n if (searchValue) {\r\n this.filteredStates = this.states.filter((x) =>\r\n x.StateName.toLowerCase().includes(searchValue.trim().toLowerCase())\r\n )\r\n } else {\r\n this.filteredStates = this.states\r\n this.locationForm.get('City').setValue(null)\r\n this.searchStateText = null\r\n this.state = null\r\n }\r\n }\r\n\r\n onSelectedCitiChange(c) {\r\n if (c.City != this.location.City) {\r\n this.selectedLocationId = null\r\n this.locationForm.get('City').setValue(c.City)\r\n this.locationForm.get('State').setValue(c.StateCode)\r\n this.setLocation()\r\n }\r\n }\r\n\r\n getLocationList() {\r\n if (this.locationCompanyId > 0) {\r\n this.objectId = this.locationCompanyId\r\n }\r\n if (this.objectId != null || this.objectId != undefined) {\r\n this.companyService\r\n .GetCompanyLocations(this.objectId, 1)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.locationList = res\r\n })\r\n }\r\n }\r\n\r\n onSelectedState(state) {\r\n if (this.selectedStateId != state.StateID) {\r\n this.selectedStateId = state.StateID\r\n this.selectedLocationId = null\r\n this.state = state\r\n this.locationForm.get('City').setValue('')\r\n this.locationForm.get('State').setValue(state.StateCode)\r\n this.cities = []\r\n }\r\n this.setLocation()\r\n }\r\n\r\n addressUpdate(searchValue: string) {\r\n let formlocation = this.locationForm.get('Address').value\r\n this.selectedLocationId = null\r\n if (formlocation === '') {\r\n this.locationService.setCurrentLocation(null)\r\n }\r\n this.parseAddress(formlocation)\r\n }\r\n\r\n streetAddressUpdate(searchValue: string) {\r\n this.locationForm.get('StreetAddress').setValue(searchValue)\r\n this.setLocation()\r\n }\r\n\r\n setLocationForEdit() {\r\n CommonData.activeLocation = this.assignedLocation\r\n Object.assign(this.location, this.assignedLocation)\r\n this.location.Address1 = this.location.Address1?.replace(/,/g, '').trim()\r\n let state = this.states.filter((x) => x.StateID === this.location.StateID)\r\n if (state.length === 0) {\r\n state = this.states.filter((x) => x.StateCode == this.location.State)\r\n }\r\n if (state.length > 0) {\r\n this.locationForm.get('State').setValue(state[0].StateCode)\r\n this.state = state[0]\r\n }\r\n this.locationForm.get('Address').setValue(this.assignedLocation.Address)\r\n this.locationForm.get('StreetAddress').setValue(this.assignedLocation.StreetAddress)\r\n this.locationForm.get('City').setValue(this.assignedLocation.City)\r\n if (this.assignedLocation?.ZipCode) {\r\n this.locationForm.get('ZipCode').setValue(Number(this.assignedLocation.ZipCode))\r\n }\r\n if (this.calledFrom === LocationCalledFrom.AddCandidateProfile) {\r\n this.locationForm.get('StreetAddress')?.setValue(this.location.Address1?.replace(/,/g, '').trim())\r\n this.locationForm.get('StateID')?.setValue(state[0]?.StateID)\r\n this.location.StateID = state[0]?.StateID\r\n if (\r\n this.location?.Address1 != null &&\r\n this.location?.State != null &&\r\n this.location?.ZipCode != null &&\r\n this.location?.City != null\r\n ) {\r\n this.location.StreetAddress = `${this.location?.Address1?.replace(/,/g, '').trim()}`\r\n this.location.FullAddress = `${this.location?.StreetAddress} ${this.location.City} ${this.location.State\r\n } ${this.location.ZipCode == 0 ? '' : this.location.ZipCode}`\r\n this.setValidLocation()\r\n }\r\n }\r\n this.locationService.setCurrentLocation(this.location)\r\n }\r\n\r\n setLocation() {\r\n let stateFormValue = this.locationForm.get('State').value\r\n let filteredStateList = this.states?.filter(\r\n (x) =>\r\n x.StateCode.toLowerCase().trim() === stateFormValue?.toLowerCase().trim() ||\r\n x.StateName.toLowerCase().trim() === stateFormValue?.toLowerCase().trim()\r\n )\r\n if (filteredStateList == undefined || filteredStateList.length < 1) {\r\n this.selectedStateId = null\r\n this.locationForm.get('State').setValue('')\r\n } else {\r\n this.state = filteredStateList[0]\r\n this.selectedStateId = this.state.StateID\r\n this.searchStateText = this.state.StateName\r\n this.locationForm.get('State').setValue(this.state.StateCode)\r\n }\r\n this.location.ObjectTypeId = this.objectTypeId\r\n this.location.ObjectId = this.objectId\r\n this.location.StreetAddress = this.locationForm.get('StreetAddress').value\r\n this.location.State = this.locationForm.get('State').value\r\n this.location.StateID = this.selectedStateId\r\n this.location.City = this.locationForm.get('City').value\r\n let zCode = this.locationForm.get('ZipCode').value\r\n if (zCode != '' && !isNaN(zCode)) {\r\n this.location.ZipCode = this.locationForm.get('ZipCode').value\r\n }\r\n this.location.IsActive = true\r\n if (this.locationForm.valid) {\r\n if (\r\n this.locationForm.get('State').value !== null &&\r\n this.locationForm.get('State').value !== '' &&\r\n this.locationForm.get('City').value !== null &&\r\n this.locationForm.get('City').value !== ''\r\n ) {\r\n this.setValidLocation()\r\n }\r\n } else {\r\n CommonData.activeLocation = null\r\n }\r\n }\r\n\r\n zipUpdate(event) {\r\n let zCode = this.locationForm.get('ZipCode').value\r\n if (zCode != '' && !isNaN(zCode) && this.location.ZipCode != parseInt(zCode)) {\r\n this.selectedLocationId = null\r\n }\r\n this.setLocation()\r\n }\r\n\r\n editModeHandler() {\r\n this.prevLocation = this.assignedLocation\r\n if (this.assignedLocation != null && this.assignedLocation) {\r\n Object.keys(this.assignedLocation).forEach((item) => {\r\n if (item === 'City' || item === 'State' || item === 'StreetAddress' || item === 'ZipCode') {\r\n if (this.assignedLocation[item] !== null || this.assignedLocation[item]) {\r\n this.checkIfValueNew(item)\r\n }\r\n }\r\n })\r\n }\r\n this.changesInLocationForm.emit(this.isLocationEdited)\r\n }\r\n\r\n checkIfValueNew(objectKey) {\r\n if (objectKey !== 'State') {\r\n if (this.locationForm.get(objectKey).value !== this.prevLocation[objectKey]) {\r\n this.isLocationEdited = true\r\n }\r\n } else {\r\n if (this.locationForm.get(objectKey).value !== this.prevLocation['StateCode']) {\r\n this.isLocationEdited = true\r\n }\r\n }\r\n }\r\n\r\n setValidLocation() {\r\n this.location.City = this.location.City == undefined || this.location.City == null ? '' : this.location.City\r\n this.location.StreetAddress =\r\n this.location.StreetAddress == undefined || this.location.StreetAddress == null\r\n ? ''\r\n : this.location.StreetAddress\r\n this.location.State = this.location.State == undefined || this.location.State == null ? '' : this.location.State\r\n this.location.ZipCode =\r\n this.location.ZipCode == undefined || this.location.ZipCode == null || isNaN(this.location.ZipCode)\r\n ? 0\r\n : this.location.ZipCode\r\n this.location.FullAddress = `${this.location.StreetAddress} ${this.location.City} ${this.location.State} ${this.location.ZipCode == 0 ? '' : this.location.ZipCode\r\n }`\r\n this.locationForm.get('Address').setValue(this.location.FullAddress)\r\n this.location.Address = this.locationForm.get('Address').value\r\n if (!this.selectedLocationId) {\r\n this.location.LocationID = 0\r\n this.location.LocationTypeID = LocationType.Secondary\r\n } else {\r\n this.location.LocationID = this.selectedLocationId\r\n }\r\n\r\n CommonData.activeLocation = this.location\r\n this.locationService.setCurrentLocation(this.location)\r\n }\r\n\r\n getCompanyAllLocation() {\r\n this.companyService\r\n .companyLocationsById(this.companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.locationList = res\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n Full Address\r\n \r\n \r\n \r\n \r\n \r\n {{ address.Address }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Street Address*\r\n \r\n \r\n \r\n Street is required \r\n \r\n
\r\n
\r\n City\r\n *\r\n \r\n \r\n \r\n \r\n {{ c.City }},{{ c.StateCode }}\r\n \r\n \r\n City is required \r\n \r\n
\r\n
\r\n State\r\n *\r\n \r\n \r\n \r\n \r\n {{ state.StateName }}\r\n \r\n \r\n State is required \r\n \r\n
\r\n
\r\n \r\n Zipcode\r\n \r\n \r\n *\r\n \r\n \r\n \r\n \r\n Zip code is required \r\n \r\n
\r\n
\r\n
\r\n
\r\n","export enum LocationCalledFrom {\r\n AddCandidateProfile = 'addCandidateProfile',\r\n AddJobDetails = 'addJobDetails',\r\n AddCompanyContacts = 'addCompanyContacts',\r\n Interview_Schedule = 'interview_schedule',\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { LocationComponent } from './location.component'\r\nimport { MatListModule } from '@angular/material/list'\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar'\r\nimport { RouterModule } from '@angular/router'\r\nimport { MatRippleModule } from '@angular/material/core'\r\nimport { MatTabsModule } from '@angular/material/tabs'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { QuillModule } from 'ngx-quill'\r\nimport { SharedModule } from 'src/app/shared/shared.module'\r\n\r\n@NgModule({\r\n declarations: [LocationComponent],\r\n imports: [\r\n SharedModule,\r\n CommonModule,\r\n MatListModule,\r\n MatProgressBarModule,\r\n RouterModule,\r\n MatRippleModule,\r\n MatTabsModule,\r\n MatIconModule,\r\n IconModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n QuillModule.forRoot({\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'],\r\n ['blockquote', 'code-block'],\r\n [{ header: 1 }, { header: 2 }],\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }],\r\n [{ indent: '-1' }, { indent: '+1' }],\r\n [{ direction: 'rtl' }],\r\n [{ size: ['small', false, 'large', 'huge'] }],\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n [{ color: [] }, { background: [] }],\r\n [{ align: [] }],\r\n ['clean'],\r\n ['link', 'image', 'video'],\r\n ],\r\n },\r\n }),\r\n ],\r\n exports: [LocationComponent],\r\n})\r\nexport class LocationModule {}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { JOB_ADD_ACTION } from 'src/app/enums/userActions';\r\n\r\n\r\n@Component({\r\n selector: 'object-status-log',\r\n templateUrl: './object-status-log.component.html',\r\n styleUrls: ['./object-status-log.component.scss']\r\n})\r\nexport class ObjectStatusLogComponent implements OnInit {\r\n searchPara: {\r\n objectId: any;\r\n objectTypeId: any;\r\n userId: any;\r\n };\r\n\r\n\r\n dataSource: MatTableDataSource | null;\r\n @Input() objectId;\r\n @Input() objectTypeId;\r\n isActiveButton: any;\r\n filterButton: string[] = ['All', 'Emails', 'Chats', 'Jobs', 'Others'];\r\n\r\n displayedColumns: string[] = ['Status'];\r\n public loading = false;\r\n jobAddAction = JOB_ADD_ACTION\r\n\r\n constructor(\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n\r\n ) { }\r\n private subscription: Subscription;\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData\r\n .subscribe(messageConsultantView => {\r\n this.loadObjectStatusLog();\r\n }\r\n );\r\n }\r\n loadObjectStatusLog() {\r\n this.loading = true;\r\n this.searchPara = {\r\n objectId: this.objectId,\r\n objectTypeId: this.objectTypeId,\r\n userId: null,\r\n };\r\n this.commonService.getObjectStatusLog(this.searchPara\r\n ).subscribe((result) => {\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.data = result;\r\n console.log(\"dataSource of object status log\", this.dataSource);\r\n this.loading = false;\r\n },\r\n (err: any) => {\r\n this.loading = false;\r\n },\r\n );\r\n }\r\n isClicked(btn: any) {\r\n this.isActiveButton = btn\r\n console.log(\"==>\", this.dataSource.data);\r\n }\r\n}"," \r\n\r\n\r\n\r\n
\r\n

Logs

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ btn }}\r\n \r\n
\r\n
\r\n \r\n From\r\n \r\n \r\n \r\n \r\n \r\n To\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n {{ element.UpdatedDate | date : 'shortTime' }}
    \r\n {{ element.UpdatedDate | date : 'd MMM, y' }} \r\n
    \r\n
    Change Status to {{ element.Status }} by {{ element.UpdatedUser }}
    \r\n
  • \r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n TemplateRef,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Router } from '@angular/router'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { CompanyService } from '../company.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { Status } from 'src/app/enums/UserStatus'\r\nimport { iUserAssignment } from 'src/app/models/userAssignment'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { COMPANY_ADD_ACTION, COMPANY_EDIT_ACTION } from 'src/app/enums/userActions'\r\n\r\n@Component({\r\n selector: 'assign-users-view',\r\n templateUrl: './assign-users-view.component.html',\r\n styleUrls: ['./assign-users-view.component.scss'],\r\n})\r\nexport class AssignUsersViewComponent implements OnInit, OnDestroy, OnChanges {\r\n activeCompany = CommonData.activeCompany\r\n ngUnSubscribe: Subject = new Subject()\r\n @ViewChild(MatPaginator) paginator: MatPaginator\r\n @Output() deleteAssignedUser: EventEmitter = new EventEmitter()\r\n @Output() editAssignedUser: EventEmitter = new EventEmitter()\r\n\r\n @Input() dialogRef: TemplateRef\r\n @Input() location: string\r\n @Input() assignedUsersList: any\r\n @Input() refreshCount: number = 0\r\n AssignedUserDisplayedColumns: string[] = ['FirstName', \"Email\", 'CompanyName', 'Roles', 'IsActive', 'Action']\r\n dataSource: any\r\n assignedUserRequestModel: { CompanyTypeId: CompanyType; CompanyId: number }\r\n users: any\r\n isLoading: boolean = false\r\n clients: iCompany[] = []\r\n companyAddAction = COMPANY_ADD_ACTION\r\n companyEditAction = COMPANY_EDIT_ACTION\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private ref: ChangeDetectorRef,\r\n private commonDialogService: CommonMatDialogService,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n private authService: AuthenticationService\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.refreshCount?.currentValue != changes.refreshCount?.previousValue) {\r\n this.getAssignedUsers()\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.location == FormLocation.Tab) {\r\n this.getStaffingCompanyUsers()\r\n this.getClients()\r\n }\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value\r\n this.dataSource.filter = filterValue.trim().toLowerCase()\r\n }\r\n\r\n delete(user) {\r\n this.deleteAssignedUser.emit(user)\r\n }\r\n edit(user) {\r\n if (this.location == 'tab') {\r\n this.editCompany()\r\n } else {\r\n this.openDialog(this.dialogRef)\r\n this.editAssignedUser.emit(user)\r\n }\r\n }\r\n\r\n getClients() {\r\n this.companyService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.clients = res\r\n }\r\n })\r\n }\r\n\r\n getStaffingCompanyUsers() {\r\n this.companyService\r\n .getStaffingCompanyUsers()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.users = res\r\n this.getAssignedUsers()\r\n }\r\n })\r\n }\r\n\r\n getAssignedUsers() {\r\n this.isLoading = true\r\n if (this.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.StaffingCompany,\r\n CompanyId: CommonData.defaultCompanyId,\r\n }\r\n this.companyService\r\n .getAssignedUsers(this.assignedUserRequestModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.assignedUsersList = res\r\n this.dataSource = new MatTableDataSource(this.assignedUsersList)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n this.isLoading = false\r\n }\r\n })\r\n } else if (this.activeCompany?.CompanyTypeID === CompanyType.Client) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.Client,\r\n CompanyId: this.activeCompany.CompanyId,\r\n }\r\n\r\n this.companyService\r\n .getAssignedUsers(this.assignedUserRequestModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.assignedUsersList = res\r\n this.dataSource = new MatTableDataSource(this.assignedUsersList)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n this.isLoading = false\r\n let matchedUser = this.users?.filter(\r\n (user) => !this.assignedUsersList.find(({ UserId }) => user.userID === UserId)\r\n )\r\n this.users = matchedUser\r\n }\r\n })\r\n } else if (this.activeCompany?.CompanyTypeID === CompanyType.Vendor) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.Vendor,\r\n CompanyId: this.activeCompany.CompanyId,\r\n }\r\n\r\n this.companyService\r\n .getAssignedUsers(this.assignedUserRequestModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.assignedUsersList = res\r\n this.dataSource = new MatTableDataSource(this.assignedUsersList)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n this.isLoading = false\r\n let matchedUser = this.users?.filter(\r\n (user) => !this.assignedUsersList.find(({ UserId }) => user.userID === UserId)\r\n )\r\n this.users = matchedUser\r\n }\r\n })\r\n }\r\n }\r\n\r\n openDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '750px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n dialogCloseHandler() {\r\n this.dialog.closeAll()\r\n }\r\n\r\n editCompany() {\r\n if (this.activeCompany) {\r\n this.router.navigate(['/company/edit'])\r\n Common.companyStepIndex = 6\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n }\r\n\r\n addUpdateUser(element?) {\r\n const dialogInstance = this.commonDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: 'users',\r\n isEdit: element ? true : false,\r\n assignedUser: element,\r\n clients: !element ? this.clients : null,\r\n users: !element ? this.users : null,\r\n assignedUsers: this.assignedUsersList,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === 'users') {\r\n if (element) this.updateAssignUser(element, data?.status, data?.reason, data?.isStatusUpdated)\r\n else this.addAssignUser(data.user_list, data.company_list)\r\n }\r\n })\r\n }\r\n\r\n addAssignUser(user_list, company_list) {\r\n const userAssignmentList = []\r\n for (var userIndex in user_list) {\r\n if (this.activeCompany?.CompanyTypeID === CompanyType.Client) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: this.activeCompany.CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n this.assignedUsersList.push(userAssignment)\r\n } else if (this.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany) {\r\n for (var clientIndex in company_list) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: company_list[clientIndex].CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n this.assignedUsersList.push(userAssignment)\r\n }\r\n }\r\n }\r\n\r\n this.companyService\r\n .assignUsers(this.assignedUsersList)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res === HttpStatusCode.Created) {\r\n this.notifyService.showSuccess('User assigned successfully!', 'User Assignment')\r\n this.getAssignedUsers()\r\n } else {\r\n this.notifyService.showError('Failed to assign users!', 'User Assignment')\r\n }\r\n })\r\n }\r\n\r\n updateAssignUser(assigningUser, status, reason, isStatusUpdated) {\r\n const user: iUserAssignment = {\r\n UserAssignmentId: assigningUser?.UserAssignmentId,\r\n CompanyId: assigningUser?.CompanyId,\r\n UserId: assigningUser?.UserId,\r\n CreatedBy: assigningUser?.CreatedBy,\r\n CreatedDate: assigningUser?.CreatedDate,\r\n ActiveDate: assigningUser?.ActiveDate,\r\n Reason: assigningUser?.Reason,\r\n InActiveDate: assigningUser?.InActiveDate,\r\n IsActive: status === Status.Active ? true : false,\r\n UpdatedBy: this.authService.userInfo.UserId,\r\n UpdatedDate: new Date(),\r\n }\r\n if (isStatusUpdated) {\r\n if (status === Status.Active) {\r\n user.ActiveDate = new Date()\r\n user.Reason = reason\r\n } else if (status === Status.InActive) {\r\n user.InActiveDate = new Date()\r\n user.Reason = reason\r\n }\r\n }\r\n\r\n this.companyService\r\n .editUser(user)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res == HttpStatusCode.Ok) {\r\n this.getAssignedUsers()\r\n this.notifyService.showSuccess('Updated successfully!', 'User Assignment')\r\n } else {\r\n this.notifyService.showError('Failed to update!', 'User Assignment')\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \"Search\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Assigned Users\r\n \r\n \r\n \r\n Assign User\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Full Name\r\n
{{ element.FirstName }} {{ element.LastName }}
\r\n
Email Address\r\n
{{ element.UserEmail }}
\r\n
Company Name\r\n
\r\n {{ element.CompanyName }}\r\n
\r\n
Role\r\n
\r\n {{ element.Roles[0].Name }}\r\n
\r\n
Status\r\n
\r\n {{ element.IsActive === true ? 'Active' : 'Inactive' }}\r\n
\r\n
\r\n Action \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No contacts data available\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, Input, TemplateRef, ViewChild, OnDestroy } from '@angular/core'\r\nimport { CompanyService } from '../company.service'\r\nimport icSearch from '@iconify/icons-ic/twotone-search'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport icEdit from '@iconify/icons-ic/twotone-edit'\r\nimport icDelete from '@iconify/icons-ic/twotone-delete'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { iUserAssignment } from 'src/app/models/userAssignment'\r\nimport { iAssigendUsersRequestModel } from 'src/app/models/assignedUsersRequest.model'\r\nimport { Status } from 'src/app/enums/UserStatus'\r\nimport { iUserInfo } from 'src/app/models/user.model'\r\nimport { iAssignedUsers } from 'src/app/models/assignedUser.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport icArrowDropDown from '@iconify/icons-ic/twotone-arrow-drop-down'\r\nimport { FormControl } from '@angular/forms'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { Router } from '@angular/router'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { MAT_SELECT_CONFIG } from '@angular/material/select'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\n\r\n@Component({\r\n selector: 'assign-users',\r\n templateUrl: './assign-users.component.html',\r\n styleUrls: ['./assign-users.component.scss'],\r\n})\r\nexport class AssignUsersComponent implements OnInit, OnDestroy {\r\n users: iUserInfo[] = []\r\n clients: any\r\n searchClientText: ''\r\n searchUserText: ''\r\n company_list: any[] = []\r\n user_list: any[] = []\r\n userAssignment: iUserAssignment\r\n userAssignmentList: any[] = []\r\n icSearch = icSearch\r\n icEdit = icEdit\r\n icDelete = icDelete\r\n assignedUsersList: iAssignedUsers[] = []\r\n activeCompany = CommonData.activeCompany\r\n editAssignedUser: boolean\r\n user: any\r\n company: any\r\n role: any\r\n statusValue: any\r\n assigninguser: any\r\n staffingCompanyType = CompanyType.StaffingCompany\r\n assignedUserRequestModel: iAssigendUsersRequestModel\r\n reason: any\r\n isStatusUpdated: boolean\r\n icArrowDropDown = icArrowDropDown\r\n dialogText: string\r\n @Input() location: any\r\n @Input() stepper: any\r\n @Output() companyAdded: EventEmitter = new EventEmitter()\r\n ngUnSubscribe: Subject = new Subject()\r\n refreshCount: number = 0\r\n\r\n @ViewChild('assignUserDialog') tempref: TemplateRef\r\n\r\n companySelected: any\r\n companySearchText: string\r\n userSearchText: string\r\n frmCtrlCompany = new FormControl()\r\n frmCtrlUser = new FormControl()\r\n allClients: any\r\n allUsers: any\r\n\r\n constructor(\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private companyService: CompanyService,\r\n private authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private dialogService: DialogService,\r\n private commonDialogService: CommonMatDialogService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.location != FormLocation.Tab) {\r\n this.createDefaultAssignedUsersObj()\r\n this.getStaffingCompanyUsers()\r\n this.getClients()\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n\r\n getClients() {\r\n this.companyService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.allClients = this.clients = res\r\n } else {\r\n }\r\n })\r\n }\r\n\r\n clearCheckBoxValues(obj) {\r\n if (obj == 'company') {\r\n this.company_list = []\r\n this.frmCtrlCompany = new FormControl(null)\r\n this.companySearchText = ''\r\n } else if (obj == 'user') {\r\n this.user_list = []\r\n this.frmCtrlUser = new FormControl(null)\r\n this.userSearchText = ''\r\n }\r\n }\r\n\r\n createDefaultAssignedUsersObj() {\r\n let dateTime = new Date()\r\n this.userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: null,\r\n UserId: null,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: dateTime,\r\n IsActive: true,\r\n }\r\n }\r\n\r\n getStaffingCompanyUsers() {\r\n this.companyService\r\n .getStaffingCompanyUsers()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.allUsers = this.users = res\r\n this.getAssignedUsers()\r\n } else {\r\n }\r\n })\r\n }\r\n\r\n getAssignedUsers() {\r\n if (this.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.StaffingCompany,\r\n CompanyId: CommonData.defaultCompanyId,\r\n }\r\n this.companyService\r\n .getAssignedUsers(this.assignedUserRequestModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.assignedUsersList = res\r\n } else {\r\n }\r\n })\r\n } else if (this.activeCompany?.CompanyTypeID === CompanyType.Client) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.Client,\r\n CompanyId: this.activeCompany.CompanyId,\r\n }\r\n\r\n this.companyService\r\n .getAssignedUsers(this.assignedUserRequestModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.assignedUsersList = res\r\n let r = this.users.filter(\r\n (elem) => !this.assignedUsersList.find(({ UserId }) => elem.userID === UserId)\r\n )\r\n this.users = r\r\n } else {\r\n }\r\n })\r\n }\r\n }\r\n\r\n reset() {\r\n this.dialog.closeAll()\r\n this.searchClientText = null\r\n this.user_list = []\r\n this.company_list = []\r\n this.userAssignmentList = []\r\n this.searchUserText = null\r\n this.assigninguser = null\r\n this.editAssignedUser = false\r\n this.dialog.closeAll()\r\n }\r\n\r\n addUsers() {\r\n if (this.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany && this.company_list.length < 1) {\r\n this.notifyService.showError('Please add atleast one company!', 'User Assignment')\r\n return\r\n }\r\n if (this.user_list.length < 1) {\r\n this.notifyService.showError('Please add atleast one user!', 'User Assignment')\r\n return\r\n }\r\n for (var userIndex in this.user_list) {\r\n if (this.activeCompany?.CompanyTypeID === CompanyType.Client) {\r\n this.createDefaultAssignedUsersObj()\r\n this.userAssignment.CompanyId = this.activeCompany.CompanyId\r\n this.userAssignment.UserId = this.user_list[userIndex].UserID\r\n this.userAssignmentList.push(this.userAssignment)\r\n } else if (this.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany) {\r\n for (var clientIndex in this.company_list) {\r\n this.createDefaultAssignedUsersObj()\r\n this.userAssignment.CompanyId = this.company_list[clientIndex].CompanyId\r\n this.userAssignment.UserId = this.user_list[userIndex].UserID\r\n this.userAssignmentList.push(this.userAssignment)\r\n }\r\n }\r\n }\r\n\r\n this.companyService\r\n .assignUsers(this.userAssignmentList)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res === HttpStatusCode.Created) {\r\n this.refreshCount++\r\n this.user_list = []\r\n this.company_list = []\r\n this.userAssignmentList = []\r\n this.notifyService.showSuccess('User assigned successfully!', 'User Assignment')\r\n this.dialog.closeAll()\r\n this.getAssignedUsers()\r\n } else {\r\n this.notifyService.showError('Failed to assign users!', 'User Assignment')\r\n }\r\n })\r\n }\r\n\r\n onSelectCompany(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.company_list.push(event.source.value)\r\n } else {\r\n const index: number = this.company_list.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.company_list.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n\r\n onUserCompany(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.user_list.push(event.source.value)\r\n } else {\r\n const index: number = this.user_list.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.user_list.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n\r\n getCompanies(searchText) {\r\n this.clients = this.allClients.filter((a) => a.Name.toLocaleLowerCase().includes(searchText))\r\n }\r\n onCompanyKeyPressed(event: KeyboardEvent): void {\r\n this.getCompanies(this.companySearchText)\r\n }\r\n\r\n onUserKeyPressed(event: KeyboardEvent) {\r\n this.getUsers(this.userSearchText)\r\n }\r\n\r\n getUsers(searchText) {\r\n this.allUsers = this.allClients.filter(\r\n (a) =>\r\n a.FirstName.toLocaleLowerCase().includes(searchText) ||\r\n a.LastName.toLocaleLowerCase().includes(searchText)\r\n )\r\n }\r\n\r\n edit(assignedUser) {\r\n this.dialogText = 'Do you want to change status ?'\r\n this.assigninguser = assignedUser\r\n this.editAssignedUser = true\r\n this.user = assignedUser.FirstName + ' ' + assignedUser.LastName\r\n this.company = assignedUser.CompanyName\r\n this.role = assignedUser.Roles[0].Name\r\n if (assignedUser.IsActive) {\r\n this.statusValue = Status.Active\r\n } else {\r\n this.statusValue = Status.InActive\r\n }\r\n if (this.location === 'tab') {\r\n this.router.navigate(['/company/edit'])\r\n Common.companyStepIndex = 6\r\n }\r\n }\r\n\r\n delete(assignedUser) {\r\n this.dialogService.open()\r\n\r\n this.dialogService.onDialogClosed().subscribe((confirmed) => {\r\n if (confirmed) {\r\n this.companyService\r\n .deleteAssignedUser(assignedUser)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.notifyService.showSuccess('Deleted successfully!', 'User Assignment')\r\n this.getAssignedUsers()\r\n } else {\r\n this.notifyService.showError('Failed to delete!', 'User Assignment')\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n update() {\r\n if (this.editAssignedUser) {\r\n this.createDefaultAssignedUsersObj()\r\n this.userAssignment.UserAssignmentId = this.assigninguser.UserAssignmentId\r\n this.userAssignment.CompanyId = this.assigninguser.CompanyId\r\n this.userAssignment.UserId = this.assigninguser.UserId\r\n this.userAssignment.CreatedBy = this.assigninguser.CreatedBy\r\n this.userAssignment.CreatedDate = this.assigninguser.CreatedDate\r\n if (this.isStatusUpdated) {\r\n if (this.statusValue === Status.Active) {\r\n this.userAssignment.ActiveDate = new Date()\r\n this.userAssignment.Reason = this.reason\r\n } else if (this.statusValue === Status.InActive) {\r\n this.userAssignment.InActiveDate = new Date()\r\n this.userAssignment.Reason = this.reason\r\n }\r\n }\r\n this.userAssignment.UpdatedBy = this.authService.userInfo.UserId\r\n this.userAssignment.UpdatedDate = new Date()\r\n if (this.statusValue === 1) {\r\n this.userAssignment.IsActive = true\r\n } else if (this.statusValue === 0) {\r\n this.userAssignment.IsActive = false\r\n }\r\n\r\n this.companyService\r\n .editUser(this.userAssignment)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res == HttpStatusCode.Ok) {\r\n this.assigninguser = null\r\n this.editAssignedUser = false\r\n this.user = ''\r\n this.company = ''\r\n this.role = ''\r\n this.statusValue = ''\r\n this.getStaffingCompanyUsers()\r\n this.createDefaultAssignedUsersObj()\r\n this.notifyService.showSuccess('Updated successfully!', 'User Assignment')\r\n this.dialog.closeAll()\r\n } else {\r\n this.notifyService.showError('Failed to update!', 'User Assignment')\r\n }\r\n })\r\n }\r\n }\r\n\r\n changeStatus(event) {\r\n this.isStatusUpdated = true\r\n this.statusValue = event\r\n }\r\n\r\n gotoPrev() {\r\n this.stepper.previous()\r\n }\r\n\r\n openDialog(templateRef: TemplateRef) {\r\n this.dialogText = 'Assign user to client'\r\n this.dialog.open(templateRef, {\r\n width: '750px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n addUpdateUser() {\r\n const dialogInstance = this.commonDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: 'users',\r\n isEdit: false,\r\n clients: this.clients,\r\n users: this.users,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === 'users') {\r\n this.user_list = data?.user_list\r\n this.company_list = data?.company_list\r\n this.addUsers()\r\n }\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
Assign User
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {{ dialogText }}\r\n \r\n close\r\n
\r\n
\r\n \r\n
\r\n Users*\r\n \r\n \r\n \r\n {{ user.FirstName }} {{ user.LastName }}\r\n \r\n \r\n \r\n User is required\r\n \r\n \r\n
\r\n
\r\n Companies*\r\n \r\n \r\n \r\n {{ client.Name }}\r\n \r\n \r\n \r\n Company is required\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n
\r\n
\r\n User\r\n \r\n \r\n \r\n
\r\n
\r\n Company\r\n \r\n \r\n \r\n
\r\n
\r\n Role\r\n \r\n \r\n \r\n
\r\n
\r\n Status\r\n \r\n \r\n Active\r\n Inactive\r\n \r\n \r\n
\r\n
\r\n Reason\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core'\r\nimport { CompanyService } from '../company.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { Router } from '@angular/router'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport {\r\n CompanyDialogTypes,\r\n ConversionGrid,\r\n OperatorValue,\r\n PaymentTerms,\r\n TenureGrid,\r\n VolumeGrid,\r\n} from '../company-constants'\r\nimport { Subject } from 'rxjs'\r\nimport { first, switchMap, takeUntil } from 'rxjs/operators'\r\nimport { CompanyType, CompanyTypeNames } from 'src/app/enums/companyType'\r\nimport { TypeOfVariable } from 'src/app/consultant/consultant-constants'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { iKeyValue } from 'src/app/models/common.model'\r\nimport { iBurdenRate } from 'src/app/models/company.model'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { ConfigTypeId, ValueType } from 'src/app/enums/valueType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { COMPANY_ADD_ACTION, COMPANY_DELETE_ACTION, COMPANY_EDIT_ACTION } from 'src/app/enums/userActions'\r\n\r\n@Component({\r\n selector: 'company-accounting-view',\r\n templateUrl: './company-accounting-view.component.html',\r\n styleUrls: ['./company-accounting-view.component.scss'],\r\n})\r\nexport class CompanyAccountingViewComponent implements OnInit, OnChanges, OnDestroy {\r\n cycles: any = []\r\n activeCompany = CommonData.activeCompany\r\n /** contact table Data */\r\n AccountValueDisplayedColumns: string[] = ['invoiceCycle', 'paymentTerms', 'vmsFee', 'action']\r\n\r\n volumeDisplayedColumns: string[] = ['FromValue', 'ToValue', 'Value', 'Default', 'Action']\r\n tenureDisplayColumn: string[] = ['FromValue', 'ToValue', 'Value', 'Action']\r\n conversionDisplayColumn: string[] = ['FromValue', 'ToValue', 'Value', 'Action']\r\n burdenRateColumn: string[] = ['EmploymentType', 'PayRateRange', 'BurdenRate', 'Year', 'Action']\r\n\r\n @Input() dialogRef: TemplateRef\r\n @Input() location: string\r\n @Input() refresh: number = 0\r\n\r\n @Output() updateAccount: EventEmitter = new EventEmitter()\r\n @Output() deleteAccount: EventEmitter = new EventEmitter()\r\n @Output() updatedVolumeArray: EventEmitter<[]> = new EventEmitter<[]>()\r\n\r\n deleteIconSrc = Common.RedDeleteIcon\r\n editIconSrc = Common.EditIcon\r\n accountDataSource = new MatTableDataSource([])\r\n volumeArray: any\r\n tenureArray: any\r\n conversionArray: any\r\n volumeDataSource = new MatTableDataSource([])\r\n tenureDataSource = new MatTableDataSource([])\r\n conversionDataSource = new MatTableDataSource([])\r\n burdenRateArray: iBurdenRate[] = []\r\n burdenRateDataSource: MatTableDataSource = new MatTableDataSource([])\r\n accountsValue = {\r\n invoiceCycle: null,\r\n paymentTerms: null,\r\n vmsFee: null,\r\n }\r\n volumeArrayData: any[]\r\n isLoading: boolean = false\r\n isAddAccountingEnabled: boolean = true\r\n isDefaultSelectedForVolume: boolean = false\r\n\r\n newVolume = new VolumeGrid()\r\n\r\n newTenure = new TenureGrid()\r\n\r\n newConversion = new ConversionGrid()\r\n accountingPaymentTerms: PaymentTerms[] = []\r\n private _destroy$: Subject = new Subject()\r\n private _employeeTypes: iKeyValue[] = []\r\n public get companyTypeId(): typeof CompanyType {\r\n return CompanyType\r\n }\r\n\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n objectOperator: OperatorValue[] = this.companyService.payRateConditions\r\n companyAddAction = COMPANY_ADD_ACTION\r\n companyEditAction = COMPANY_EDIT_ACTION\r\n companyDeleteAction = COMPANY_DELETE_ACTION\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private ref: ChangeDetectorRef,\r\n private notifyService: NotificationService,\r\n private dialogService: DialogService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private authService: AuthenticationService,\r\n private consultantService: ConsultantService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next(false)\r\n this._destroy$.complete()\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.location === FormLocation.Tab) {\r\n this.getAcctCategory()\r\n this.getPaymentTerms()\r\n }\r\n this.getEmployeeTypes()\r\n if (CommonData.activeCompany.CompanyTypeID == CompanyType.StaffingCompany) {\r\n this.getCompanyBurdenRate()\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes &&\r\n changes.refresh?.currentValue &&\r\n changes.refresh?.currentValue > 0 &&\r\n changes.refresh?.currentValue != changes.refresh?.previousValue\r\n ) {\r\n this.getPaymentTerms()\r\n this.getAcctCategory()\r\n if (CommonData.activeCompany.CompanyTypeID == CompanyType.StaffingCompany) {\r\n this.getCompanyBurdenRate()\r\n }\r\n }\r\n }\r\n\r\n getAcctCategory() {\r\n this.isLoading = true\r\n this.ref.detectChanges()\r\n this.companyService\r\n .getAcctCategory()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.cycles = res\r\n if (this.cycles) {\r\n this.volumeArray = []\r\n this.tenureArray = []\r\n this.conversionArray = []\r\n this.conversionDataSource = null\r\n this.companyService\r\n .GetCompanyAccounting(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n let invoiceCycle = this.cycles.find(\r\n (x) => x.CategoryID === res.Accounts?.InvoiceCycle\r\n )\r\n if (invoiceCycle) {\r\n this.accountsValue.invoiceCycle = invoiceCycle\r\n }\r\n let paymentTerms = this.accountingPaymentTerms.find(\r\n (x) => x.CategoryID === res.Accounts?.PaymentTerms\r\n )\r\n if (paymentTerms) {\r\n this.accountsValue.paymentTerms = paymentTerms\r\n }\r\n this.accountsValue.vmsFee = res.Accounts?.VmsFee\r\n this.isAddAccountingEnabled = Object.values(this.accountsValue).every((val) => {\r\n if (!val) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n })\r\n res.AllAccounting?.forEach((element) => {\r\n if (element.AccountingTypeID === 137) {\r\n this.volumeArray.push(element)\r\n } else if (element.AccountingTypeID === 138) {\r\n this.tenureArray.push(element)\r\n } else if (element.AccountingTypeID === 140) {\r\n this.conversionArray.push(element)\r\n }\r\n })\r\n\r\n if (this.volumeArray?.length) {\r\n this.isDefaultSelectedForVolume = this.volumeArray.filter(\r\n (volume) => volume.IsDefault\r\n ).length\r\n ? false\r\n : true\r\n this.updatedVolumeArray.emit(this.volumeArray)\r\n } else {\r\n this.isDefaultSelectedForVolume = false\r\n this.updatedVolumeArray.emit([])\r\n }\r\n\r\n this.volumeArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n this.tenureArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n this.conversionArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n // this.volumeArrayData = [...this.volumeArray]\r\n this.accountDataSource = Object.values(this.accountsValue).every((x) => x === null)\r\n ? new MatTableDataSource([])\r\n : new MatTableDataSource([...[this.accountsValue]])\r\n\r\n let newVolumeData = [...this.volumeArray]\r\n let volume = newVolumeData.slice()\r\n this.volumeDataSource.data = volume\r\n\r\n let newTenureData = [...this.tenureArray]\r\n let tenure = newTenureData.slice()\r\n this.tenureDataSource.data = tenure\r\n\r\n this.conversionDataSource = new MatTableDataSource([...this.conversionArray])\r\n let newConversionData = [...this.conversionArray]\r\n let conversion = newConversionData.slice()\r\n this.conversionDataSource.data = conversion\r\n\r\n this.isLoading = false\r\n this.ref.detectChanges()\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Accounting')\r\n }\r\n )\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Accounting')\r\n }\r\n )\r\n }\r\n\r\n getPaymentTerms() {\r\n this.companyService\r\n .getPaymentTerms()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.accountingPaymentTerms = res as PaymentTerms[]\r\n })\r\n }\r\n\r\n getCompanyBurdenRate() {\r\n this.companyService\r\n .getCompanyBurdenRate(CommonData.activeCompany.CompanyId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((burdenRate: iBurdenRate[]) => {\r\n this.burdenRateArray = burdenRate\r\n this.burdenRateArray.forEach((rate) => {\r\n rate.Value = JSON.parse(rate.Value)\r\n })\r\n this.burdenRateDataSource.data = this.burdenRateArray\r\n })\r\n }\r\n\r\n getOperator(key) {\r\n return this.objectOperator.find((operator) => operator?.Key === key)?.Value\r\n }\r\n\r\n delete(value) {\r\n if (value.AccountingTypeID === 137) {\r\n if (value?.IsDefault) {\r\n this.notifyService.showError(\r\n 'Cannot delete the volume discount as Default option is set. Please unselect default to proceed with delete.',\r\n 'Company Accounting'\r\n )\r\n } else {\r\n this.deleteAccountData(value)\r\n }\r\n } else if (value.AccountingTypeID === 138) {\r\n this.deleteAccountData(value)\r\n } else if (value.AccountingTypeID === 140) {\r\n this.deleteAccountData(value)\r\n }\r\n }\r\n\r\n deleteAccountData(value) {\r\n this.dialogService.open()\r\n this.dialogService\r\n .onDialogClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (confirmed) => {\r\n if (confirmed) {\r\n this.companyService\r\n .deleteCompanyAccounting(value.CompanyAccountingID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.getAcctCategory()\r\n this.notifyService.showSuccess('Deleted successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Failed To delete!', 'Company Accounting')\r\n }\r\n })\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Accounting')\r\n }\r\n )\r\n }\r\n\r\n edit(value) {\r\n if (this.location == 'tab') {\r\n this.editCompany()\r\n } else {\r\n this.openDialog(this.dialogRef)\r\n if (value.AccountingTypeID === 137) {\r\n this.updateAccount.emit(value)\r\n } else if (value.AccountingTypeID === 138) {\r\n this.updateAccount.emit(value)\r\n } else if (value.AccountingTypeID === 140) {\r\n this.updateAccount.emit(value)\r\n } else {\r\n this.updateAccount.emit(value)\r\n }\r\n }\r\n }\r\n\r\n editInvoiceData(data?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Accounting,\r\n cycles: this.cycles,\r\n formData: data,\r\n paymentTerms: this.accountingPaymentTerms,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Accounting) {\r\n this.accountsValue.invoiceCycle = data.formData.invoiceCycle\r\n this.accountsValue.paymentTerms = data.formData.paymentTerms\r\n this.accountsValue.vmsFee = data.formData.vmsFee\r\n this.updateInvoiceData()\r\n }\r\n })\r\n }\r\n\r\n editVolume(data?) {\r\n const i = this.volumeArray.indexOf(data)\r\n const editArray = [...this.volumeArray]\r\n editArray.splice(i, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.VolumeDiscount,\r\n formData: data ?? data,\r\n volumeArray: data ? editArray : this.volumeArray,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.VolumeDiscount) {\r\n this.newVolume.from = data.formData.FromValue\r\n this.newVolume.to = data.formData.ToValue\r\n this.newVolume.volume = data.formData.Value\r\n this.newVolume.createdDate = data.formData.CreatedDate\r\n this.newVolume.CompanyAccountingID = data.formData.CompanyAccountingID\r\n this.newVolume.IsDefault = data?.formData?.IsDefault ? data?.formData?.IsDefault : null\r\n this.updateVolumeData()\r\n }\r\n })\r\n }\r\n\r\n editTenure(data?) {\r\n const i = this.tenureArray.indexOf(data)\r\n const editArray = [...this.tenureArray]\r\n editArray.splice(i, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Tenure,\r\n formData: data ?? data,\r\n tenureArray: data ? editArray : this.tenureArray,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Tenure) {\r\n this.newTenure.from = data.formData.FromValue\r\n this.newTenure.to = data.formData.ToValue\r\n this.newTenure.tenure = data.formData.Value\r\n this.newTenure.createdDate = data.formData.CreatedDate\r\n this.newTenure.CompanyAccountingID = data.formData.CompanyAccountingID\r\n this.updateTenure()\r\n }\r\n })\r\n }\r\n\r\n editConversion(data?) {\r\n const i = this.conversionArray.indexOf(data)\r\n const editArray = [...this.conversionArray]\r\n editArray.splice(i, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: 'conversion',\r\n formData: data ?? data,\r\n conversionArray: data ? editArray : this.conversionArray,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === 'conversion') {\r\n this.newConversion.from = data.formData.FromValue\r\n this.newConversion.to = data.formData.ToValue\r\n this.newConversion.conversion = data.formData.Value\r\n this.newConversion.createdDate = data.formData.CreatedDate\r\n this.newConversion.CompanyAccountingID = data.formData.CompanyAccountingID\r\n this.updateConversion()\r\n }\r\n })\r\n }\r\n editBurdenRate(index?, element?) {\r\n let editArray = []\r\n if (typeof index === TypeOfVariable.Number) {\r\n editArray = [...this.burdenRateArray]\r\n editArray.splice(index, 1)\r\n }\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Burden_Rate,\r\n formData: typeof index === TypeOfVariable.Number ? element.Value : null,\r\n burdenRateArray: typeof index === TypeOfVariable.Number ? editArray : this.burdenRateArray,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Burden_Rate) {\r\n let ConfigValue = {} as iBurdenRate\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.burdenRateArray[index].UpdatedDate = new Date()\r\n this.burdenRateArray[index].UpdatedBy = this.authService?.userInfo?.userID\r\n this.burdenRateArray[index].Value = JSON.stringify(data.formData)\r\n this.burdenRateArray[index].LookupID = data?.formData?.employmentTypeId\r\n const config = {\r\n Configs: [\r\n {\r\n ConfigValueID: this.burdenRateArray[index]?.ConfigValueID,\r\n },\r\n ],\r\n }\r\n this.burdenRateArray[index].ConfigValueID = 0\r\n ConfigValue = this.burdenRateArray[index]\r\n this.deleteAndAddNewBurdenRecord(config, ConfigValue)\r\n } else {\r\n ; (ConfigValue.ConfigValueID = 0),\r\n (ConfigValue.Value = JSON.stringify(data?.formData)),\r\n (ConfigValue.LookupID = data?.formData?.employmentTypeId),\r\n (ConfigValue.ValueTypeID = ValueType.JSON),\r\n (ConfigValue.ObjectTypeID = ObjectType.Company),\r\n (ConfigValue.ObjectID = CommonData.activeCompany.CompanyId),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.CreatedBy = this.authService?.userInfo?.userID),\r\n (ConfigValue.UpdatedBy = this.authService?.userInfo?.userID),\r\n (ConfigValue.ConfigTypeID = ConfigTypeId.Burden_Rate)\r\n this.saveCompanyBurdenRate(ConfigValue)\r\n }\r\n }\r\n })\r\n }\r\n\r\n updateInvoiceData() {\r\n let accountsdata = {\r\n invoiceCycle: this.accountsValue.invoiceCycle ? this.accountsValue.invoiceCycle.CategoryID : null,\r\n paymentTerms: this.accountsValue.paymentTerms ? this.accountsValue.paymentTerms.CategoryID : null,\r\n vmsFee: this.accountsValue.vmsFee,\r\n }\r\n let rq = {\r\n CompanyId: CommonData.activeCompany.CompanyId,\r\n Accounts: accountsdata,\r\n AllAccounting: null,\r\n }\r\n this.companyService\r\n .SaveCompanyAccountConfig(rq)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res) {\r\n this.isAddAccountingEnabled = false\r\n this.getAcctCategory()\r\n this.ref.detectChanges()\r\n this.notifyService.showSuccess('Account Config saved successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Account Config failed to save!', 'Company Accounting')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Accounting')\r\n }\r\n )\r\n }\r\n\r\n updateVolumeData() {\r\n const companyAccounting = {\r\n CompanyAccountingID: this.newVolume.CompanyAccountingID,\r\n CompanyID: CommonData.activeCompany.CompanyId,\r\n AccountingTypeID: 137,\r\n FromValue: this.newVolume.from,\r\n ToValue: this.newVolume.to,\r\n Value: this.newVolume.volume,\r\n IsDefault: this.newVolume?.IsDefault,\r\n CreatedBy: 0,\r\n CreatedDate: this.newVolume.createdDate,\r\n UpdatedBy: 0,\r\n UpdatedDate: this.newVolume.createdDate,\r\n IsActive: true,\r\n }\r\n\r\n this.companyService\r\n .saveCompanyAccounting(companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res) {\r\n this.getAcctCategory()\r\n this.ref.detectChanges()\r\n this.notifyService.showSuccess('Volume discount type added successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Volume discount type failed to save!', 'Company Accounting')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Accounting')\r\n }\r\n )\r\n }\r\n\r\n updateTenure() {\r\n const companyAccounting = {\r\n CompanyAccountingID: this.newTenure.CompanyAccountingID,\r\n CompanyID: CommonData.activeCompany.CompanyId,\r\n AccountingTypeID: 138,\r\n FromValue: this.newTenure.from,\r\n ToValue: this.newTenure.to,\r\n Value: this.newTenure.tenure,\r\n CreatedBy: 0,\r\n CreatedDate: this.newTenure.createdDate,\r\n UpdatedBy: 0,\r\n UpdatedDate: this.newTenure.createdDate,\r\n IsActive: true,\r\n }\r\n\r\n this.companyService\r\n .saveCompanyAccounting(companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res) {\r\n this.getAcctCategory()\r\n this.ref.detectChanges()\r\n this.notifyService.showSuccess(\r\n 'Long term tenure discount type added successfully!',\r\n 'Company Accounting'\r\n )\r\n } else {\r\n this.notifyService.showError(\r\n 'Long term tenure discount type failed to save!',\r\n 'Company Accounting'\r\n )\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Accounting')\r\n }\r\n )\r\n }\r\n\r\n updateConversion() {\r\n const companyAccounting = {\r\n CompanyAccountingID: this.newConversion.CompanyAccountingID,\r\n CompanyID: CommonData.activeCompany.CompanyId,\r\n AccountingTypeID: 140,\r\n FromValue: this.newConversion.from,\r\n ToValue: this.newConversion.to,\r\n Value: this.newConversion.conversion,\r\n CreatedBy: 0,\r\n CreatedDate: this.newConversion.createdDate,\r\n UpdatedBy: 0,\r\n UpdatedDate: this.newConversion.createdDate,\r\n IsActive: true,\r\n }\r\n\r\n this.companyService\r\n .saveCompanyAccounting(companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res) {\r\n this.getAcctCategory()\r\n this.ref.detectChanges()\r\n this.notifyService.showSuccess('Conversion fee added successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Conversion fee failed to save!', 'Company Accounting')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Accounting')\r\n }\r\n )\r\n }\r\n\r\n dialogCloseHandler() {\r\n this.dialog.closeAll()\r\n }\r\n\r\n editCompany() {\r\n if (this.activeCompany) {\r\n this.router.navigate(['/company/edit'])\r\n Common.companyStepIndex = 3\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n }\r\n\r\n openDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '750px',\r\n autoFocus: false,\r\n disableClose: true,\r\n })\r\n }\r\n\r\n getEmployeeTypeText(typeId) {\r\n return this._employeeTypes?.find((type) => type?.Value == typeId)?.Key\r\n }\r\n\r\n getEmployeeTypes() {\r\n this.consultantService\r\n .getLookup('ConsultantTypelD')\r\n .pipe(first())\r\n .subscribe((types: iKeyValue[]) => {\r\n this._employeeTypes = types\r\n })\r\n }\r\n\r\n saveCompanyBurdenRate(burdenRate) {\r\n this.isLoading = true\r\n const BURDEN_RATE = {\r\n Configs: [burdenRate],\r\n }\r\n this.companyService\r\n .addUpdateCompanyBurdenRate(BURDEN_RATE)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n this.getCompanyBurdenRate()\r\n this.isLoading = false\r\n this.notifyService.showSuccess('Burden Rate added successfully!', 'Company Accounting')\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while adding Burden Rate.', 'Company Accounting')\r\n },\r\n })\r\n }\r\n\r\n deleteAndAddNewBurdenRecord(recordToDelete, recordToAdd) {\r\n this.isLoading = true\r\n const BURDEN_RATE = {\r\n Configs: [recordToAdd],\r\n }\r\n this.companyService\r\n .deleteCompanyBurdenRate(recordToDelete)\r\n .pipe(\r\n switchMap(() => this.companyService.addUpdateCompanyBurdenRate(BURDEN_RATE)),\r\n takeUntil(this._destroy$)\r\n )\r\n .subscribe({\r\n next: (res) => {\r\n this.getCompanyBurdenRate()\r\n this.notifyService.showSuccess('Burden Rate Updated successfully!', 'Company Accounting')\r\n this.isLoading = false\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while updating Burden Rate.', 'Company Accounting')\r\n },\r\n })\r\n }\r\n\r\n deleteBurdenRate(burdenRate) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Are you sure, Do you want to delete burden rate data.`,\r\n Header: `Delete Burden Rate`,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n this.isLoading = true\r\n if (data) {\r\n const config = {\r\n Configs: [\r\n {\r\n ConfigValueID: burdenRate.ConfigValueID,\r\n },\r\n ],\r\n }\r\n this.companyService\r\n .deleteCompanyBurdenRate(config)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n this.getCompanyBurdenRate()\r\n this.notifyService.showSuccess('Burden Rate deleted successfully!', 'Company Accounting')\r\n this.isLoading = false\r\n },\r\n error: (error) => {\r\n this.notifyService.showError('Error while deleting Burden Rate.', 'Company Accounting')\r\n this.isLoading = false\r\n },\r\n })\r\n } else {\r\n this.isLoading = false\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n Accounting\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Invoice Cycle\r\n {{ element.invoiceCycle ? element.invoiceCycle.Name : '' }}\r\n Payment Terms\r\n {{ element.paymentTerms?.Name ? element.paymentTerms?.Name : '' }}\r\n VMS Fee %\r\n {{ element.vmsFee != null ? element.vmsFee : '' }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Volume Discount Type\r\n warning\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Volume Discount Type\r\n warning\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Revenue From(in Million $)\r\n \r\n {{ element.FromValue | number : '1.0' : 'en-US' }}\r\n \r\n Revenue To(in Million $)\r\n \r\n {{ element.ToValue | number : '1.0' : 'en-US' }}\r\n Default\r\n -\r\n \r\n \r\n Volume Discount %\r\n {{ element.Value }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Long Term Tenure Discount\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Month From\r\n {{ element.FromValue }}\r\n Month To\r\n {{ element.ToValue }}\r\n Tenure Discount %\r\n {{ element.Value }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Conversion Fee\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Duration Days From\r\n {{ element.FromValue }}\r\n Duration Days To\r\n {{ element.ToValue }}\r\n Conversion Fee %\r\n {{ element.Value }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n \r\n
\r\n \r\n Burden Rate \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Employment Type\r\n {{ getEmployeeTypeText(element.Value.employmentTypeId) }}\r\n Pay Rate Range $\r\n {{ getOperator(element.Value.operator) }} {{ element.Value.payrate | currency : 'USD' }}\r\n Burden Rate %\r\n {{ element.Value?.burdenRate ? element.Value.burdenRate : '' }}\r\n Year\r\n {{ element.Value?.year | nullValueReplace }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n NgZone,\r\n TemplateRef,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n} from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { iCompanyAccounting } from 'src/app/models/company-accounting'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport { CompanyService } from '../company.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogTypes, ConversionGrid, PaymentTerms, TenureGrid, VolumeGrid } from '../company-constants'\r\nimport { FormLocation } from 'src/app/common/common'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { iBurdenRate } from 'src/app/models/company.model'\r\nimport { Subject } from 'rxjs'\r\nimport { ConfigTypeId, ValueType } from 'src/app/enums/valueType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { LoadingConfig } from '../../constants/loadingConstants'\r\n\r\n@Component({\r\n selector: 'company-accounting',\r\n templateUrl: './company-accounting.component.html',\r\n styleUrls: ['./company-accounting.component.scss'],\r\n})\r\nexport class CompanyAccountingComponent implements OnInit, OnDestroy {\r\n linkUsable = false\r\n companyAccounting: iCompanyAccounting\r\n volumeArray: Array = []\r\n volumeArrayData: any\r\n newVolume: VolumeGrid = new VolumeGrid()\r\n\r\n tenureArray: Array = []\r\n newTenure: TenureGrid = new TenureGrid()\r\n tenureArrayData: any\r\n\r\n conversionArray: Array = []\r\n newConversion: ConversionGrid = new ConversionGrid()\r\n conversionArrayData: any\r\n isEdit: boolean\r\n\r\n cycles: any = []\r\n accounts = {\r\n invoiceCycle: null,\r\n paymentTerms: null,\r\n vmsFee: null,\r\n }\r\n accountsArrayData: any = []\r\n accountsValue = {\r\n invoiceCycle: null,\r\n paymentTerms: null,\r\n vmsFee: null,\r\n }\r\n activeCompany = CommonData.activeCompany\r\n volumeIndex: any\r\n tenureIndex: any\r\n conversionIndex: any\r\n invoiceCycle: any\r\n paymentTerms: any\r\n invoiceCycleSearchText: ''\r\n paymentTermsSearchText: ''\r\n isAddAccountingEnabled: boolean = true\r\n editTenure: boolean\r\n editVolume: boolean\r\n editConversion: boolean\r\n editConversionArray: Array = []\r\n editTenureArray: Array = []\r\n editVolumeArray: Array = []\r\n refreshCount = 0\r\n accountingPaymentTerms: PaymentTerms[] = []\r\n isLoadingPaymentTerms: boolean = false\r\n burdenRateArray: iBurdenRate[] = []\r\n private _destroy$: Subject = new Subject()\r\n loadingConfig = LoadingConfig\r\n\r\n @Input() stepper: any\r\n @Input() location: any\r\n @Output() companyAdded: EventEmitter = new EventEmitter()\r\n public get companyTypeId(): typeof CompanyType {\r\n return CompanyType\r\n }\r\n\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n public dialog: MatDialog,\r\n private dialogService: DialogService,\r\n private notifyService: NotificationService,\r\n private ngZone: NgZone,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private cd: ChangeDetectorRef,\r\n private authService: AuthenticationService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.createDefaultCompanyAccountObj()\r\n this.addAccountingButtonHandler()\r\n if (this.location !== FormLocation.Tab) {\r\n this.getPaymentTerms()\r\n this.getAccountCycles()\r\n this.getAcctCategory()\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._destroy$.next(false)\r\n this._destroy$.complete()\r\n }\r\n\r\n getPaymentTerms() {\r\n this.isLoadingPaymentTerms = true\r\n this.companyService\r\n .getPaymentTerms()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.accountingPaymentTerms = res as PaymentTerms[]\r\n this.isLoadingPaymentTerms = false\r\n })\r\n }\r\n\r\n getAcctCategory() {\r\n this.companyService\r\n .getAcctCategory()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.cycles = res\r\n if (this.cycles) {\r\n this.volumeArray = []\r\n this.tenureArray = []\r\n this.conversionArray = []\r\n this.companyService\r\n .GetCompanyAccounting(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n let invoiceCycle = this.cycles.find((x) => x.CategoryID === res.Accounts?.InvoiceCycle)\r\n if (invoiceCycle) {\r\n this.accountsValue.invoiceCycle = invoiceCycle\r\n }\r\n let paymentTerms = this.accountingPaymentTerms.find(\r\n (x) => x.CategoryID === res.Accounts?.PaymentTerms\r\n )\r\n if (paymentTerms) {\r\n this.accountsValue.paymentTerms = paymentTerms\r\n }\r\n this.accountsValue.vmsFee = res.Accounts?.VmsFee\r\n res.AllAccounting?.forEach((element) => {\r\n if (element.AccountingTypeID === 137) {\r\n this.volumeArray.push(element)\r\n } else if (element.AccountingTypeID === 138) {\r\n this.tenureArray.push(element)\r\n } else if (element.AccountingTypeID === 140) {\r\n this.conversionArray.push(element)\r\n }\r\n })\r\n\r\n this.volumeArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n this.tenureArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n this.conversionArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n })\r\n }\r\n })\r\n }\r\n\r\n addAccountingButtonHandler() {\r\n this.companyService\r\n .GetCompanyAccounting(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n let invoiceCycle = this.cycles.find((x) => x.CategoryID === res.Accounts?.InvoiceCycle)\r\n if (invoiceCycle) {\r\n this.accountsValue.invoiceCycle = invoiceCycle\r\n }\r\n let paymentTerms = this.cycles.find((x) => x.CategoryID === res.Accounts?.PaymentTerms)\r\n if (paymentTerms) {\r\n this.accountsValue.paymentTerms = paymentTerms\r\n }\r\n this.accountsValue.vmsFee = res.Accounts?.VmsFee\r\n this.isAddAccountingEnabled = Object.values(this.accountsValue).every((val) => {\r\n if (!val) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n })\r\n })\r\n }\r\n\r\n selectedInvoiceCycle(invoiceCycle) {\r\n this.accounts.invoiceCycle = invoiceCycle\r\n }\r\n\r\n selectedPaymentTerms(paymentTerms) {\r\n this.accounts.paymentTerms = paymentTerms\r\n }\r\n\r\n resetAccounting() {\r\n this.accounts.invoiceCycle = null\r\n this.accounts.paymentTerms = null\r\n this.accounts.vmsFee = null\r\n this.paymentTermsSearchText = null\r\n this.invoiceCycleSearchText = null\r\n }\r\n\r\n resetObject(obj, value) {\r\n Object.keys(obj).forEach(function (index) {\r\n obj[index] = value\r\n })\r\n }\r\n\r\n addAcct() {\r\n if (!this.accounts.invoiceCycle && !this.accounts.paymentTerms) {\r\n this.notifyService.showError('Please add invoice cycle or payment terms!', 'Company Accounting')\r\n return\r\n }\r\n let accountsdata = {\r\n invoiceCycle: this.accounts.invoiceCycle ? this.accounts.invoiceCycle.CategoryID : null,\r\n paymentTerms: this.accounts.paymentTerms ? this.accounts.paymentTerms.CategoryID : null,\r\n vmsFee: this.accounts.vmsFee,\r\n }\r\n let rq = {\r\n CompanyId: CommonData.activeCompany.CompanyId,\r\n Accounts: accountsdata,\r\n AllAccounting: null,\r\n }\r\n this.companyService\r\n .SaveCompanyAccountConfig(rq)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n Object.assign(this.accountsValue, this.accounts)\r\n this.accounts = {\r\n invoiceCycle: null,\r\n paymentTerms: null,\r\n vmsFee: null,\r\n }\r\n this.invoiceCycleSearchText = null\r\n this.paymentTermsSearchText = null\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess('Account Config saved successfully!', 'Company Accounting')\r\n this.isAddAccountingEnabled = false\r\n } else {\r\n this.notifyService.showError('Account Config failed to save!', 'Company Accounting')\r\n }\r\n })\r\n }\r\n\r\n createDefaultCompanyAccountObj() {\r\n this.companyAccounting = {\r\n CompanyAccountingID: 0,\r\n CompanyID: CommonData.activeCompany?.CompanyId,\r\n AccountingTypeID: 0,\r\n FromValue: null,\r\n ToValue: null,\r\n Value: null,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 0,\r\n IsActive: true,\r\n }\r\n }\r\n\r\n resetAcct() {\r\n this.dialog.closeAll()\r\n }\r\n resetVol() {\r\n this.dialog.closeAll()\r\n this.companyAccounting = null\r\n this.editVolume = false\r\n this.resetObject(this.newVolume, null)\r\n }\r\n\r\n resetTenure() {\r\n this.dialog.closeAll()\r\n this.companyAccounting = null\r\n this.editTenure = false\r\n this.resetObject(this.newTenure, null)\r\n }\r\n\r\n resetConversion() {\r\n this.dialog.closeAll()\r\n this.companyAccounting = null\r\n this.editConversion = false\r\n this.resetObject(this.newConversion, null)\r\n }\r\n\r\n addVol() {\r\n if (\r\n this.newVolume.from == null ||\r\n this.newVolume.from == undefined ||\r\n this.newVolume.to == undefined ||\r\n this.newVolume.to == null ||\r\n this.newVolume.volume == undefined ||\r\n this.newVolume.volume == null\r\n ) {\r\n this.notifyService.showError('Please add all the values!', 'Company Accounting')\r\n return\r\n }\r\n if (this.newVolume.from >= this.newVolume.to) {\r\n this.notifyService.showError('REVENUE TO must be greater that REVENUE FROM!', 'Company Accounting')\r\n return\r\n }\r\n if (this.newVolume.from % 1 != 0 || this.newVolume.to % 1 != 0) {\r\n this.notifyService.showError('Please give only integer value!', 'Company Accounting')\r\n return\r\n }\r\n if (this.editVolume) {\r\n this.companyAccounting.FromValue = this.newVolume?.from\r\n this.companyAccounting.ToValue = this.newVolume?.to\r\n this.companyAccounting.Value = this.newVolume?.volume\r\n this.companyAccounting.IsDefault = this.newVolume?.IsDefault\r\n\r\n this.companyService\r\n .saveCompanyAccounting(this.companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.createDefaultCompanyAccountObj()\r\n this.resetObject(this.newVolume, null)\r\n this.editVolume = false\r\n this.volumeIndex = null\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess(\r\n 'Volume discount type updated successfully!',\r\n 'Company Accounting'\r\n )\r\n } else {\r\n this.notifyService.showError('Volume discount type failed to update!', 'Company Accounting')\r\n }\r\n })\r\n } else {\r\n this.companyAccounting = {\r\n CompanyAccountingID: 0,\r\n CompanyID: CommonData.activeCompany.CompanyId,\r\n AccountingTypeID: 137,\r\n FromValue: this.newVolume.from,\r\n ToValue: this.newVolume.to,\r\n Value: this.newVolume.volume,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n IsDefault: this.newVolume.IsDefault,\r\n }\r\n\r\n this.companyService\r\n .saveCompanyAccounting(this.companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.createDefaultCompanyAccountObj()\r\n this.resetObject(this.newVolume, null)\r\n this.editConversion = false\r\n this.volumeIndex = null\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess('Volume discount type added successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Volume discount type failed to save!', 'Company Accounting')\r\n }\r\n })\r\n }\r\n return true\r\n }\r\n\r\n addTen() {\r\n if (\r\n this.newTenure.from == null ||\r\n this.newTenure.from == undefined ||\r\n this.newTenure.to == undefined ||\r\n this.newTenure.to == null ||\r\n this.newTenure.tenure == undefined ||\r\n this.newTenure.tenure == null\r\n ) {\r\n this.notifyService.showError('Please add all the values!', 'Company Accounting')\r\n return\r\n }\r\n if (this.newTenure.from >= this.newTenure.to) {\r\n this.notifyService.showError('MONTH TO must be greater that MONTH FROM!', 'Company Accounting')\r\n return\r\n }\r\n if (this.newTenure.from % 1 != 0 || this.newTenure.to % 1 != 0) {\r\n this.notifyService.showError('Please give only integer value!', 'Company Accounting')\r\n return\r\n }\r\n if (this.editTenure) {\r\n let overlap = false\r\n this.editTenureArray.forEach((element) => {\r\n if (this.newTenure.from >= element.FromValue && this.newTenure.from < element.ToValue) {\r\n this.notifyService.showError('MONTH FROM is overlaping with other value!', 'Company Accounting')\r\n overlap = true\r\n return\r\n }\r\n if (this.newTenure.to > element.FromValue && this.newTenure.to < element.ToValue) {\r\n this.notifyService.showError('MONTH TO is overlaping with other value!', 'Company Accounting')\r\n overlap = true\r\n return\r\n }\r\n })\r\n if (overlap) {\r\n return\r\n }\r\n this.companyAccounting.FromValue = this.newTenure.from\r\n this.companyAccounting.ToValue = this.newTenure.to\r\n this.companyAccounting.Value = this.newTenure.tenure\r\n this.companyService\r\n .saveCompanyAccounting(this.companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.createDefaultCompanyAccountObj()\r\n this.resetObject(this.newTenure, null)\r\n this.editTenure = false\r\n this.tenureIndex = null\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess(\r\n 'Long term tenure discount updated successfully!',\r\n 'Company Accounting'\r\n )\r\n } else {\r\n this.notifyService.showError(\r\n 'Long term tenure discount failed to update!',\r\n 'Company Accounting'\r\n )\r\n }\r\n })\r\n } else {\r\n let overlap = false\r\n this.tenureArray.forEach((element) => {\r\n if (this.newTenure.from >= element.FromValue && this.newTenure.from < element.ToValue) {\r\n this.notifyService.showError('MONTH FROM is overlaping with other value!', 'Company Accounting')\r\n overlap = true\r\n return\r\n }\r\n if (this.newTenure.to >= element.FromValue && this.newTenure.to < element.ToValue) {\r\n this.notifyService.showError('MONTH TO is overlaping with other value!', 'Company Accounting')\r\n overlap = true\r\n return\r\n }\r\n })\r\n if (overlap) {\r\n return\r\n }\r\n this.companyAccounting = {\r\n CompanyAccountingID: 0,\r\n CompanyID: CommonData.activeCompany.CompanyId,\r\n AccountingTypeID: 138,\r\n FromValue: this.newTenure.from,\r\n ToValue: this.newTenure.to,\r\n Value: this.newTenure.tenure,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n\r\n this.companyService\r\n .saveCompanyAccounting(this.companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.createDefaultCompanyAccountObj()\r\n this.tenureArray.push(res)\r\n this.resetObject(this.newTenure, null)\r\n this.editTenure = false\r\n this.tenureIndex = null\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess(\r\n 'Long term tenure discount saved successfully!',\r\n 'Company Accounting'\r\n )\r\n } else {\r\n this.notifyService.showError('Long term tenure discount failed to save!', 'Company Accounting')\r\n }\r\n })\r\n }\r\n return true\r\n }\r\n\r\n addCon() {\r\n if (\r\n this.newConversion.from == null ||\r\n this.newConversion.from == undefined ||\r\n this.newConversion.to == undefined ||\r\n this.newConversion.to == null ||\r\n this.newConversion.conversion == undefined ||\r\n this.newConversion.conversion == null\r\n ) {\r\n this.notifyService.showError('Please add all the value!', 'Company Accounting')\r\n return\r\n }\r\n if (this.newConversion.from >= this.newConversion.to) {\r\n this.notifyService.showError('MONTH TO must be greater that MONTH FROM!', 'Company Accounting')\r\n return\r\n }\r\n if (this.newConversion.from % 1 != 0 || this.newConversion.to % 1 != 0) {\r\n this.notifyService.showError('Please give only integer value!', 'Company Accounting')\r\n return\r\n }\r\n let isOverlap = false\r\n if (this.editConversion) {\r\n this.editConversionArray.forEach((element) => {\r\n if (this.newConversion.from >= element.FromValue && this.newConversion.from < element.ToValue) {\r\n this.notifyService.showError('MONTH FROM is overlaping with other value!', 'Company Accounting')\r\n isOverlap = true\r\n return\r\n }\r\n if (this.newConversion.to > element.FromValue && this.newConversion.to < element.ToValue) {\r\n this.notifyService.showError('MONTH TO is overlaping with other value!', 'Company Accounting')\r\n isOverlap = true\r\n return\r\n }\r\n })\r\n if (isOverlap) {\r\n return\r\n }\r\n this.companyAccounting.FromValue = this.newConversion.from\r\n this.companyAccounting.ToValue = this.newConversion.to\r\n this.companyAccounting.Value = this.newConversion.conversion\r\n\r\n this.companyService\r\n .saveCompanyAccounting(this.companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.createDefaultCompanyAccountObj()\r\n this.resetObject(this.newConversion, null)\r\n this.editConversion = false\r\n this.conversionIndex = null\r\n this.notifyService.showSuccess('Conversion fee updated successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Conversion fee failed to update!', 'Company Accounting')\r\n }\r\n })\r\n } else {\r\n if (this.conversionArray.length > 0) {\r\n this.conversionArray.forEach((item) => {\r\n if (this.newConversion.from >= item.FromValue && this.newConversion.from < item.ToValue) {\r\n this.notifyService.showError('MONTH FROM is overlaping with other value!', 'Company Accounting')\r\n isOverlap = true\r\n return\r\n }\r\n if (this.newConversion.to >= item.FromValue && this.newConversion.to < item.ToValue) {\r\n this.notifyService.showError('MONTH TO is overlaping with other value!', 'Company Accounting')\r\n isOverlap = true\r\n return\r\n }\r\n })\r\n }\r\n if (isOverlap) {\r\n return\r\n }\r\n this.companyAccounting = {\r\n CompanyAccountingID: 0,\r\n CompanyID: CommonData.activeCompany.CompanyId,\r\n AccountingTypeID: 140,\r\n FromValue: this.newConversion.from,\r\n ToValue: this.newConversion.to,\r\n Value: this.newConversion.conversion,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n\r\n this.companyService\r\n .saveCompanyAccounting(this.companyAccounting)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.createDefaultCompanyAccountObj()\r\n this.resetObject(this.newConversion, null)\r\n this.conversionArray.push(res)\r\n this.editConversion = false\r\n this.conversionIndex = null\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess('Conversion fee saved successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Conversion fee failed to save!', 'Company Accounting')\r\n }\r\n })\r\n }\r\n return true\r\n }\r\n\r\n editAccountingData(value) {\r\n if (value.AccountingTypeID === 137) {\r\n this.editVolume = true\r\n this.companyAccounting = value\r\n this.editVolumeArray = this.volumeArray.map((obj) => ({ ...obj }))\r\n let index = this.volumeArray.indexOf(value, 0)\r\n this.editVolumeArray.splice(index, 1)\r\n this.newVolume.from = this.companyAccounting.FromValue\r\n this.newVolume.to = this.companyAccounting.ToValue\r\n this.newVolume.volume = this.companyAccounting.Value\r\n } else if (value.AccountingTypeID === 138) {\r\n this.editTenure = true\r\n this.companyAccounting = value\r\n this.editTenureArray = this.tenureArray.map((obj) => ({ ...obj }))\r\n let index = this.tenureArray.indexOf(value, 0)\r\n this.editTenureArray.splice(index, 1)\r\n this.newTenure.from = this.companyAccounting.FromValue\r\n this.newTenure.to = this.companyAccounting.ToValue\r\n this.newTenure.tenure = this.companyAccounting.Value\r\n } else if (value.AccountingTypeID === 140) {\r\n this.editConversion = true\r\n this.companyAccounting = value\r\n this.editConversionArray = this.conversionArray.map((obj) => ({\r\n ...obj,\r\n }))\r\n let index = this.conversionArray.indexOf(value, 0)\r\n this.editConversionArray.splice(index, 1)\r\n this.newConversion.from = this.companyAccounting.FromValue\r\n this.newConversion.to = this.companyAccounting.ToValue\r\n this.newConversion.conversion = this.companyAccounting.Value\r\n } else {\r\n this.accounts.invoiceCycle = value.invoiceCycle\r\n this.accounts.paymentTerms = value.paymentTerms\r\n this.invoiceCycleSearchText = value.invoiceCycle.Name\r\n this.paymentTermsSearchText = value.paymentTerms.Name\r\n this.accounts.vmsFee = value.vmsFee\r\n }\r\n }\r\n\r\n deleteAccountingData(value) {\r\n this.dialogService.open()\r\n this.dialogService\r\n .onDialogClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((confirmed) => {\r\n if (confirmed) {\r\n if (this.companyAccounting?.CompanyAccountingID === value.CompanyAccountingID) {\r\n this.notifyService.showError('Cannot Delete.Please save or reset value!', 'Company Accounting')\r\n return\r\n }\r\n this.companyService\r\n .deleteCompanyAccounting(value.CompanyAccountingID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess('Deleted successfully!', 'Company Accounting')\r\n } else {\r\n this.notifyService.showError('Failed To delete!', 'Company Accounting')\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n gotoNext() {\r\n this.companyAdded.emit(3)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.next()\r\n })\r\n }\r\n gotoPrev() {\r\n this.stepper.previous()\r\n }\r\n\r\n openDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '750px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n openAccountingDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Accounting,\r\n cycles: this.cycles,\r\n paymentTerms: this.accountingPaymentTerms,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Accounting) {\r\n this.accounts.invoiceCycle = data.formData.invoiceCycle\r\n this.accounts.paymentTerms = data.formData.paymentTerms\r\n this.accounts.vmsFee = data.formData.vmsFee\r\n this.addAcct()\r\n }\r\n })\r\n }\r\n\r\n openVolumeDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.VolumeDiscount,\r\n volumeArray: this.volumeArray,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.VolumeDiscount) {\r\n this.newVolume.from = data?.formData?.FromValue\r\n this.newVolume.to = data?.formData?.ToValue\r\n this.newVolume.volume = data?.formData?.Value\r\n if (this.volumeArray.length === 0) {\r\n this.newVolume.IsDefault = true\r\n } else {\r\n this.newVolume.IsDefault = data?.formData?.IsDefault\r\n }\r\n this.addVol()\r\n }\r\n })\r\n }\r\n\r\n openTenureDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Tenure,\r\n tenureArray: this.tenureArray,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Tenure) {\r\n this.newTenure.from = data.formData.FromValue\r\n this.newTenure.to = data.formData.ToValue\r\n this.newTenure.tenure = data.formData.Value\r\n this.addTen()\r\n }\r\n })\r\n }\r\n\r\n openConversionDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Conversion,\r\n conversionArray: this.conversionArray,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Conversion) {\r\n this.newConversion.from = data.formData.FromValue\r\n this.newConversion.to = data.formData.ToValue\r\n this.newConversion.conversion = data.formData.Value\r\n this.addCon()\r\n }\r\n })\r\n }\r\n\r\n getAccountCycles() {\r\n this.companyService\r\n .getAcctCategory()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.cycles = res\r\n })\r\n }\r\n addBurdenRate() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Burden_Rate,\r\n burdenRateArray: [],\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Burden_Rate) {\r\n let ConfigValue = {} as iBurdenRate\r\n ;(ConfigValue.ConfigValueID = 0),\r\n (ConfigValue.Value = JSON.stringify(data?.formData)),\r\n (ConfigValue.LookupID = data?.formData?.employmentTypeID),\r\n (ConfigValue.ValueTypeID = ValueType.JSON),\r\n (ConfigValue.ObjectTypeID = ObjectType.Company),\r\n (ConfigValue.ObjectID = CommonData.activeCompany.CompanyId),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.CreatedBy = this.authService?.userInfo?.userID),\r\n (ConfigValue.UpdatedBy = this.authService?.userInfo?.userID),\r\n (ConfigValue.ConfigTypeID = ConfigTypeId.Burden_Rate)\r\n this.saveCompanyBurdenRate(ConfigValue)\r\n }\r\n })\r\n }\r\n saveCompanyBurdenRate(burdenRate) {\r\n this.isLoadingPaymentTerms = true\r\n const BURDEN_RATE = {\r\n Configs: [burdenRate],\r\n }\r\n this.companyService\r\n .addUpdateCompanyBurdenRate(BURDEN_RATE)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n this.refreshCount++\r\n this.isLoadingPaymentTerms = false\r\n },\r\n error: (error) => {\r\n this.isLoadingPaymentTerms = false\r\n },\r\n })\r\n }\r\n\r\n updateVolumeArray(volumeArray) {\r\n this.volumeArray = [...volumeArray]\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n \r\n \r\n Add Accounting\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Add BurdenRate\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Accounting
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Long Term Tenure Discount
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Conversion Fee
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Burden Rate
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { ChangeDetectorRef, Component, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { Status } from 'src/app/enums/UserStatus'\r\nimport { iUserAssignment } from 'src/app/models/userAssignment'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CompanyService } from '../company.service'\r\nimport { first, switchMap, takeUntil, tap } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CompanyType, CompanyTypeNames } from 'src/app/enums/companyType'\r\nimport { COMPANY_ADD_ACTION } from 'src/app/enums/userActions'\r\n\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyDialogTypes } from '../company-constants'\r\nimport { LoadingConfig } from 'src/app/constants/loadingConstants'\r\n\r\n@Component({\r\n selector: 'company-card-list',\r\n templateUrl: './company-card-list.component.html',\r\n styleUrls: ['./company-card-list.component.scss'],\r\n})\r\nexport class CompanyCardListComponent implements OnInit {\r\n constructor(\r\n private commonDialogService: CommonMatDialogService,\r\n private authService: AuthenticationService,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n private ref: ChangeDetectorRef\r\n ) {}\r\n\r\n filePath: any\r\n @Input() company: any\r\n @Input() index: number\r\n clients: iCompany[] = []\r\n users: any\r\n loadingConfig = LoadingConfig\r\n assignedUsersList: any = []\r\n companyAddAction = COMPANY_ADD_ACTION\r\n ngUnSubscribe: Subject = new Subject()\r\n isLoading: boolean = false\r\n activeCompany = CommonData.activeCompany\r\n @Input() location: string\r\n companyTypeId: number\r\n assignedUserRequestModel: { CompanyTypeId: CompanyType; CompanyId: number }\r\n documentTypes: any\r\n companyDocs: any\r\n\r\n ngOnInit(): void {\r\n this.filePath = Common.filePath\r\n this.getAssignedUsers()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n getClients() {\r\n this.isLoading = true\r\n this.companyService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.isLoading = false\r\n if (res) {\r\n this.clients = res\r\n }\r\n })\r\n }\r\n getCompanyById(CompanyID) {\r\n this.isLoading = true\r\n this.companyService\r\n .GetCompanyByCompanyId(CompanyID)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (company) => {\r\n this.isLoading = false\r\n CommonData.activeCompany = company\r\n this.activeCompany = company\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n },\r\n })\r\n }\r\n\r\n addUpdateUser() {\r\n this.isLoading = true\r\n if (this.company.CompanyType === CompanyTypeNames.Client) {\r\n this.companyTypeId = CompanyType.Client\r\n } else if (this.company.CompanyType === CompanyTypeNames.Vendor) {\r\n this.companyTypeId = CompanyType.Vendor\r\n } else if (this.company.CompanyType === CompanyTypeNames.StaffingCompany) {\r\n this.companyTypeId = CompanyType.StaffingCompany\r\n } else if (this.company.CompanyType === CompanyTypeNames.MSP) {\r\n this.companyTypeId = CompanyType.MSP\r\n } else {\r\n this.companyTypeId = CompanyType.Others\r\n }\r\n\r\n this.getStaffingCompanyUsers()\r\n .pipe(first())\r\n .subscribe(() => {\r\n this.isLoading = false\r\n\r\n this.getClients()\r\n const dialogInstance = this.commonDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Users,\r\n isEdit: false,\r\n clients: null,\r\n users: this.users,\r\n assignedUsers: this.assignedUsersList,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Users) {\r\n this.addAssignUser(data.user_list, data.company_list)\r\n }\r\n })\r\n })\r\n }\r\n getStaffingCompanyUsers() {\r\n this.isLoading = true\r\n return this.companyService.getStaffingCompanyUsers().pipe(\r\n takeUntil(this.ngUnSubscribe),\r\n tap((res) => {\r\n this.users = res\r\n }),\r\n switchMap(() => {\r\n return this.getAssignedUsers()\r\n })\r\n )\r\n }\r\n addAssignUser(user_list, company_list) {\r\n const userAssignmentList = []\r\n for (var userIndex in user_list) {\r\n if (this.companyTypeId === CompanyType.Client) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: this.company.CompanyID,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n this.assignedUsersList.push(userAssignment)\r\n } else if (this.companyTypeId === CompanyType.StaffingCompany) {\r\n for (var clientIndex in company_list) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: this.company.CompanyID,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n this.assignedUsersList.push(userAssignment)\r\n }\r\n }\r\n }\r\n this.companyService\r\n .assignUsers(this.assignedUsersList)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res === HttpStatusCode.Created) {\r\n this.notifyService.showSuccess('User assigned successfully!', 'User Assignment')\r\n } else {\r\n this.notifyService.showError('Failed to assign users!', 'User Assignment')\r\n }\r\n })\r\n }\r\n\r\n updateAssignUser(assigningUser, status, reason, isStatusUpdated) {\r\n const user: iUserAssignment = {\r\n UserAssignmentId: assigningUser?.UserAssignmentId,\r\n CompanyId: assigningUser?.CompanyId,\r\n UserId: assigningUser?.UserId,\r\n CreatedBy: assigningUser?.CreatedBy,\r\n CreatedDate: assigningUser?.CreatedDate,\r\n ActiveDate: assigningUser?.ActiveDate,\r\n Reason: assigningUser?.Reason,\r\n InActiveDate: assigningUser?.InActiveDate,\r\n IsActive: status === Status.Active ? true : false,\r\n UpdatedBy: this.authService.userInfo.UserId,\r\n UpdatedDate: new Date(),\r\n }\r\n if (isStatusUpdated) {\r\n if (status === Status.Active) {\r\n user.ActiveDate = new Date()\r\n user.Reason = reason\r\n } else if (status === Status.InActive) {\r\n user.InActiveDate = new Date()\r\n user.Reason = reason\r\n }\r\n }\r\n\r\n this.companyService\r\n .editUser(user)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res == HttpStatusCode.Ok) {\r\n this.getAssignedUsers()\r\n this.notifyService.showSuccess('Updated successfully!', 'User Assignment')\r\n } else {\r\n this.notifyService.showError('Failed to update!', 'User Assignment')\r\n }\r\n })\r\n }\r\n\r\n getAssignedUsers() {\r\n if (this.companyTypeId === CompanyType.StaffingCompany) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.StaffingCompany,\r\n CompanyId: this.company.CompanyID,\r\n }\r\n return this.companyService.getAssignedUsers(this.assignedUserRequestModel).pipe(\r\n takeUntil(this.ngUnSubscribe),\r\n tap((res) => (this.assignedUsersList = res))\r\n )\r\n } else if (this.companyTypeId === CompanyType.Client) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.Client,\r\n CompanyId: this.company.CompanyID,\r\n }\r\n\r\n return this.companyService.getAssignedUsers(this.assignedUserRequestModel).pipe(\r\n takeUntil(this.ngUnSubscribe),\r\n tap((res) => {\r\n this.isLoading = false\r\n this.assignedUsersList = res\r\n let matchedUser = this.users?.filter(\r\n (user) => !this.assignedUsersList.find(({ UserId }) => user.userID === UserId)\r\n )\r\n this.users = matchedUser\r\n })\r\n )\r\n } else if (this.companyTypeId === CompanyType.Vendor) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.Vendor,\r\n CompanyId: this.company.CompanyID,\r\n }\r\n return this.companyService.getAssignedUsers(this.assignedUserRequestModel).pipe(\r\n takeUntil(this.ngUnSubscribe),\r\n tap((res) => {\r\n this.assignedUsersList = res\r\n this.isLoading = false\r\n let matchedUser = this.users?.filter(\r\n (user) => !this.assignedUsersList.find(({ UserId }) => user.userID === UserId)\r\n )\r\n this.users = matchedUser\r\n })\r\n )\r\n }\r\n }\r\n\r\n openDocumentDialog() {\r\n this.isLoading = true\r\n this.companyService.GetDocumentType().subscribe((res) => {\r\n this.isLoading = false\r\n this.documentTypes = res\r\n\r\n const dialogInstance = this.commonDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Add_Documents,\r\n companyDocs: this.companyDocs,\r\n documentTypes: this.documentTypes,\r\n companyId: this.company.CompanyID,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Add_Documents) {\r\n const document = new FormData()\r\n this.saveDocument(data.document)\r\n }\r\n })\r\n })\r\n }\r\n\r\n saveDocument(document) {\r\n this.isLoading = true\r\n this.companyService.UploadCompanyDocuments(document).subscribe((res) => {\r\n if (res) {\r\n this.isLoading = false\r\n this.getCompanyDocuments()\r\n this.notifyService.showSuccess('Successfully uploaded!', 'Company Documents')\r\n } else {\r\n this.isLoading = false\r\n this.notifyService.showError('Could not parse the file!', 'Company Documents')\r\n }\r\n })\r\n }\r\n getCompanyDocuments() {\r\n this.companyService.GetDocuments(this.company?.CompanyID).subscribe((res) => {\r\n this.companyDocs = res\r\n })\r\n }\r\n}\r\n"," \r\n \r\n\r\n
\r\n
\r\n \r\n\r\n \r\n {{ company.CompanyName | slice : 0 : 20 }}\r\n 0 || company?.City?.length > 0\"\r\n src=\"assets/img/Leap-Tiger_Icons/Candidate-Card-Icon/location.svg\"\r\n alt=\"location icon\"\r\n />\r\n {{ company.City }}\r\n 0 && company?.City?.length > 0\" class=\"mr-1\">,{{ company.StateName }}\r\n \r\n
\r\n
\r\n \r\n \r\n more_vert\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \"\"Industry:\r\n \r\n {{ company?.IndustryName | nullValueReplace }}\r\n \r\n \r\n \"\"Markup Type:\r\n Max_Markup \r\n \r\n \"\"Employee Range:\r\n \r\n {{ company?.EmployeeRange | nullValueReplace }}\r\n \r\n \r\n \"\"Revenue:\r\n 2.5 Million \r\n \r\n Company Type:\r\n\r\n {{ company?.CompanyType | nullValueReplace }} \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \"AddAdd Documents\r\n \r\n\r\n","export class Revenue {\r\n year: number\r\n revenue: number\r\n companyRevenueID: number\r\n createdDate: number\r\n assetValue: number\r\n}\r\nexport class VolumeGrid {\r\n from?: number\r\n to?: number\r\n volume?: number\r\n CompanyAccountingID?: number\r\n createdDate?: Date\r\n IsDefault?: boolean\r\n}\r\nexport class TenureGrid {\r\n from: number\r\n to: number\r\n tenure: number\r\n CompanyAccountingID: number\r\n createdDate: Date\r\n}\r\n\r\nexport class AccountGrids {\r\n ToValue?: number\r\n FromValue?: number\r\n Value?: number\r\n IsDefault?: boolean\r\n}\r\n\r\nexport class ConversionGrid {\r\n from: number\r\n to: number\r\n conversion: number\r\n CompanyAccountingID: number\r\n createdDate: Date\r\n}\r\n\r\nexport class DynamicGrid {\r\n from: String\r\n to: String\r\n per: String\r\n}\r\nexport class SkillGrid {\r\n min: String\r\n max: String\r\n cat: String\r\n}\r\n\r\nexport interface LegalType {\r\n LookupID: number\r\n ValueName: string\r\n}\r\n\r\nexport enum CompanyDialogTypes {\r\n Accounting = 'accounting',\r\n VolumeDiscount = 'volumeDiscount',\r\n Tenure = 'tenure',\r\n Conversion = 'conversion',\r\n Revenue = 'revenue',\r\n Contact = 'contact',\r\n Add_Documents = 'add-documents',\r\n Job_General_Settings = 'job-general-settings',\r\n Job_Category_Settings = 'job-category-settings',\r\n Company = 'company',\r\n Users = 'users',\r\n Burden_Rate = 'burden-rate',\r\n No_Account_Managers = 'no-managers',\r\n User_Active_Action = 'user-active-action',\r\n Salary_Range = 'salary-range',\r\n}\r\n\r\nexport class PaymentTerms {\r\n CategoryID: number\r\n CategoryTypeID: number\r\n CreatedBy: number\r\n CreatedDate: Date\r\n Description: string\r\n IsActive: boolean\r\n Name: string\r\n UpdatedBy: string | null\r\n UpdatedDate: Date | null\r\n}\r\n\r\nexport enum ContactAddType {\r\n Upload = 'upload',\r\n Manual = 'manual',\r\n}\r\n\r\nexport enum DialogFormMethod {\r\n Add = 'add',\r\n Update = 'update',\r\n}\r\n\r\nexport interface OperatorValue {\r\n Key: string\r\n Value: string\r\n Label: string\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core'\r\nimport { CompanyService } from '../company.service'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs'\r\nimport { CompanyDialogTypes, ContactAddType } from '../company-constants'\r\nimport { LocationService } from 'src/app/services/location.service'\r\nimport { Delete_Successfully } from 'src/app/constants/delete.constant'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { Contact } from 'src/app/models/contact.model'\r\nimport {\r\n COMPANY_ADD_ACTION,\r\n COMPANY_DELETE_ACTION,\r\n COMPANY_EDIT_ACTION,\r\n COMPANY_VIEW_ACTION,\r\n} from 'src/app/enums/userActions'\r\nimport { TableVirtualScrollDataSource } from 'ng-table-virtual-scroll'\r\n\r\n@Component({\r\n selector: 'company-contacts-view',\r\n templateUrl: './company-contacts-view.component.html',\r\n styleUrls: ['./company-contacts-view.component.scss'],\r\n})\r\nexport class CompanyContactsViewComponent implements OnInit, OnDestroy, OnChanges {\r\n @ViewChild('paginator') paginator: MatPaginator\r\n\r\n @Input() mode: string\r\n @Input() location: string\r\n @Input() refreshCount: number\r\n activeCompany = CommonData.activeCompany\r\n deleteIconSrc = Common.RedDeleteIcon\r\n editIconSrc = Common.EditIcon\r\n filePath: string\r\n /** contact table Data */\r\n contactDisplayedColumns: string[] = [\r\n 'FirstNameTitle',\r\n 'IsAppAccess',\r\n 'Email',\r\n 'DepartmentName',\r\n 'ReportingManager',\r\n 'Location',\r\n 'ManagementLevel',\r\n 'Action',\r\n ]\r\n dataSource: TableVirtualScrollDataSource\r\n contactsList: Contact[]\r\n isLoadingContact: boolean\r\n\r\n ngUnSubscribe: Subject = new Subject()\r\n companyAddAction = COMPANY_ADD_ACTION\r\n companyEditAction = COMPANY_EDIT_ACTION\r\n companyDeleteAction = COMPANY_DELETE_ACTION\r\n companyViewAction = COMPANY_VIEW_ACTION\r\n\r\n constructor(\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private companyService: CompanyService,\r\n private ref: ChangeDetectorRef,\r\n private commonMatDialog: CommonMatDialogService,\r\n private notifyService: NotificationService,\r\n private locationService: LocationService\r\n ) {}\r\n\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n public get contactAddType(): typeof ContactAddType {\r\n return ContactAddType\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filePath = Common.filePath\r\n this.layoutService._quickpanelOpenSubject.subscribe((res) => {\r\n if (!res) {\r\n this.loadComponent.createComponent('')\r\n }\r\n })\r\n if (this.location === FormLocation.Tab) {\r\n this.getClientContacts()\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes.refreshCount?.currentValue > 0 &&\r\n changes.refreshCount?.currentValue != changes.refreshCount?.previousValue\r\n ) {\r\n this.getClientContacts()\r\n }\r\n }\r\n getClientContacts() {\r\n this.isLoadingContact = true\r\n this.companyService\r\n .GetContactsByClient(this.activeCompany.CompanyId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.isLoadingContact = false\r\n this.contactsList = res\r\n this.dataSource = new TableVirtualScrollDataSource(this.contactsList)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n })\r\n }\r\n\r\n customFilterPredicate(): (data: any, filter: string) => boolean {\r\n const filterFunction = (data: any, filter: string): boolean => {\r\n const searchString = filter.trim().toLowerCase()\r\n const fullName = `${data.FirstName} ${data.LastName}`.toLowerCase()\r\n return (\r\n data.FirstName.toLowerCase().includes(searchString) ||\r\n data.LastName.toLowerCase().includes(searchString) ||\r\n fullName.includes(searchString) ||\r\n data.Roles.some((role: any) => role.Name.toLowerCase().includes(searchString))\r\n )\r\n }\r\n return filterFunction\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase()\r\n if (filterValue) {\r\n this.dataSource.filter = filterValue\r\n this.dataSource.filterPredicate = this.customFilterPredicate()\r\n } else {\r\n this.dataSource.filter = ''\r\n this.dataSource.filterPredicate = this.customFilterPredicate()\r\n }\r\n }\r\n\r\n openContactDialog(isViewOnly, contact?) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Contact,\r\n formData: isViewOnly ? contact : contact ? contact : null,\r\n CompanyId: CommonData.activeCompany.CompanyId,\r\n isFormViewOnly: isViewOnly,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Contact) {\r\n if (data?.uploadContactsFile) {\r\n this.uploadContacts(data.uploadContactsFile)\r\n } else {\r\n if (data.formData.isLocation) {\r\n this.addLocation(data.formData)\r\n } else {\r\n this.updateContact(data.formData)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n uploadContacts(uploadContactsFile) {\r\n if (uploadContactsFile) {\r\n this.isLoadingContact = true\r\n const file = uploadContactsFile\r\n let csv = new FormData()\r\n csv.append(file.name, file)\r\n csv.append('companyID', this.activeCompany.CompanyId.toString())\r\n const reader = new FileReader()\r\n reader.onload = () => reader.result\r\n reader.readAsDataURL(file)\r\n this.companyService\r\n .uploadContacts(csv)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.isLoadingContact = false\r\n if (res) {\r\n this.getClientContacts()\r\n this.notifyService.showSuccess(res, 'Company Contact')\r\n } else {\r\n this.notifyService.showError('Could not parse the file!', 'Company Contact')\r\n }\r\n })\r\n }\r\n }\r\n\r\n addLocation(contactData) {\r\n const location = contactData.Location\r\n location.ObjectId = this.activeCompany.CompanyId\r\n this.companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = null\r\n this.updateContact(contactData, res.LocationID)\r\n }\r\n })\r\n }\r\n\r\n getLinkedinURL(linkedinUrl) {\r\n return linkedinUrl?.length > 0 ? linkedinUrl : 'javascript:void(0)'\r\n }\r\n\r\n updateContact(contactData, locationID?) {\r\n const contact = {\r\n FirstName: contactData.FirstName,\r\n LastName: contactData.LastName,\r\n WorkPhone: contactData.WorkPhone,\r\n EmailAddress: contactData.Email,\r\n Email: contactData.Email,\r\n LinkedinUrl: contactData.LinkedinUrl,\r\n ManagementLevelID: contactData.ManagementLevelID ? contactData.ManagementLevelID : null,\r\n ManagementLevel: contactData.ManagementLevel,\r\n DepartmentID: contactData.DepartmentID ? contactData.DepartmentID : null,\r\n DepartmentName: contactData.DepartmentName,\r\n ParentID: contactData.ParentID,\r\n TitleID: contactData.TitleID ? contactData.TitleID : null,\r\n RoleID: contactData.selectedRoleId ? contactData.selectedRoleId : null,\r\n TitleName: contactData.Title,\r\n CompanyId: this.activeCompany.CompanyId,\r\n LocationID: locationID ? locationID : contactData?.Location ? contactData?.Location.LocationID : null,\r\n Location: !contactData?.isLocationDeleted ? contactData?.Location : null,\r\n ContactID: contactData.ContactID,\r\n CompanyContactID: contactData.CompanyContactID,\r\n IsActive: true,\r\n ReportingManager: contactData.ReportingManager,\r\n StateCode: contactData.StateCode,\r\n Title: contactData.Title,\r\n DoB: contactData?.DoB ? contactData.DoB : null,\r\n Sex: contactData?.Sex ? contactData.Sex : 0,\r\n CellPhone: contactData?.CellPhone ? contactData.CellPhone : '',\r\n FilePath: contactData?.FilePath ? contactData.FilePath : null,\r\n CreatedBy: contactData?.CreatedBy ? contactData.CreatedBy : 0,\r\n CreatedDate: contactData?.CreatedDate ? contactData.CreatedDate : new Date(),\r\n Address: !contactData?.isLocationDeleted ? contactData?.Location?.Address : '',\r\n Address1: !contactData?.isLocationDeleted ? contactData?.Location?.Address1 : '',\r\n City: !contactData?.isLocationDeleted ? contactData?.Location?.City : '',\r\n StateID: !contactData?.isLocationDeleted ? contactData?.Location?.StateID : 0,\r\n CountryID: !contactData?.isLocationDeleted ? contactData?.Location?.CountryID : 0,\r\n ZipCode: !contactData?.isLocationDeleted ? contactData?.Location?.ZipCode : 0,\r\n UpdatedBy: contactData?.UpdatedBy ? contactData.UpdatedBy : 0,\r\n UpdatedDate: new Date(),\r\n PersonalEmailAddress: contactData?.PersonalEmailAddress ? contactData?.PersonalEmailAddress : null,\r\n }\r\n if (contactData?.isLocationDeleted) {\r\n this.deleteLocation(contactData?.Location)\r\n }\r\n this.companyService\r\n .AddContact(contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((response) => {\r\n if (response?.Contact) {\r\n this.notifyService.showSuccess(response?.Message, 'Company Contact')\r\n this.getClientContacts()\r\n } else {\r\n this.notifyService.showError(response?.Message, 'Company Contact')\r\n }\r\n })\r\n }\r\n\r\n deleteLocation(location) {\r\n if (location !== null) {\r\n this.locationService\r\n .deleteLocation(location)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {},\r\n (error) => {}\r\n )\r\n }\r\n }\r\n\r\n deleteContact(contact) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Are you sure you want to delete this contact?`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Ok',\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.companyService\r\n .DeleteContact(contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res == Delete_Successfully) {\r\n this.deleteLocation(contact?.Location)\r\n this.getClientContacts()\r\n this.notifyService.showSuccess('Deleted Successfully!', 'Company Contact')\r\n } else {\r\n this.notifyService.showError(res, 'Company Contact')\r\n }\r\n })\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
Contact Details
\r\n
\r\n \r\n
\r\n \r\n \r\n \"Search\r\n \r\n
\r\n
\r\n \"\"\r\n Contacts\r\n \r\n \r\n \r\n \r\n Add Contact\r\n \r\n \r\n \r\n \r\n \"Search\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ element.FirstName }} {{ element.LastName }}
\r\n \r\n {{ element?.Roles[0]?.Name }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Application Access\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Rep. Manager\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Name & Role\r\n {{ element?.Roles?.length !== 0 ? 'Yes' : 'No' }}\r\n Contact\r\n
\r\n 0\r\n ? 'assets/img/Leap-Tiger_Icons/Company-Module-Icon/call-blue.svg'\r\n : 'assets/img/Leap-Tiger_Icons/Company-Module-Icon/call-icon.svg'\r\n \"\r\n alt=\"call\"\r\n matTooltip=\"{{ element.WorkPhone }}\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n \r\n 0\r\n ? 'assets/img/Leap-Tiger_Icons/Company-Module-Icon/email-blue.svg'\r\n : 'assets/img/Leap-Tiger_Icons/Company-Module-Icon/email-icon.svg'\r\n \"\r\n alt=\"email\"\r\n matTooltip=\"{{ element.Email }}\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n \r\n\r\n 0 ? '_blank' : ''\"\r\n >\r\n \r\n \r\n
\r\n
\r\n Dept\r\n \r\n {{ element.DepartmentName }}\r\n \r\n {{ element.ReportingManager }}\r\n Location\r\n {{ element.Location.City }}\r\n Level\r\n {{ element.ManagementLevel }}\r\n \r\n Action \r\n \r\n \r\n \r\n \r\n \r\n \r\n visibility\r\n \r\n
\r\n
\r\n \r\n No Contacts available\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Output,\r\n EventEmitter,\r\n TemplateRef,\r\n Input,\r\n NgZone,\r\n ViewEncapsulation,\r\n OnDestroy,\r\n} from '@angular/core'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyService } from '../company.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { UnitsForFile, FilesTypes } from 'src/app/enums/unitsForFile'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { CompanyDialogTypes, ContactAddType } from '../company-constants'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { MatStepper } from '@angular/material/stepper'\r\n@Component({\r\n selector: 'company-contacts',\r\n templateUrl: './company-contacts.component.html',\r\n styleUrls: ['./company-contacts.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CompanyContactsComponent implements OnInit, OnDestroy {\r\n activeCompany = CommonData.activeCompany\r\n image: FormData\r\n imageSrc: string | ArrayBuffer\r\n filePath: string\r\n defaultContactId = CommonData.defaultContactId\r\n isAddingContact: boolean\r\n\r\n @Input() stepper: MatStepper\r\n @Input() locationPlace: string\r\n @Output() companyAdded: EventEmitter = new EventEmitter()\r\n\r\n addType: string[] = ['upload', 'manual']\r\n\r\n addContactType: string = 'manual'\r\n uploadContactsFile: File\r\n goToNextStep: boolean = false\r\n isCandidateInEditMode: boolean = false\r\n isDuplicateWorkMail: boolean = false\r\n isDuplicatePersonalMail: boolean = false\r\n refreshCount: number = 0\r\n templateRef: TemplateRef\r\n url: string\r\n ngUnSubscribe: Subject = new Subject()\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get fileTypes(): typeof FilesTypes {\r\n return FilesTypes\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n public get contactAddType(): typeof ContactAddType {\r\n return ContactAddType\r\n }\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n public dialog: MatDialog,\r\n private notifyService: NotificationService,\r\n private ngZone: NgZone,\r\n private commonMatDialog: CommonMatDialogService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.activeCompany = CommonData.activeCompany\r\n this.filePath = Common.filePath\r\n }\r\n\r\n ngOnDestroy() {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n\r\n uploadContacts() {\r\n if (this.uploadContactsFile) {\r\n this.isAddingContact = true\r\n const file = this.uploadContactsFile\r\n let csv = new FormData()\r\n csv.append(file.name, file)\r\n csv.append('companyID', CommonData.activeCompany.CompanyId.toString())\r\n const reader = new FileReader()\r\n reader.onload = () => reader.result\r\n reader.readAsDataURL(file)\r\n this.companyService\r\n .uploadContacts(csv)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.isAddingContact = false\r\n if (res) {\r\n this.refreshCount++\r\n this.notifyService.showSuccess(res, 'Company Contact')\r\n this.addContactType = 'manual'\r\n } else {\r\n this.notifyService.showError('Could not parse the file!', 'Company Contact')\r\n }\r\n },\r\n () => {\r\n this.isAddingContact = false\r\n this.notifyService.showError('Could not parse the file!', 'Company Contact')\r\n }\r\n )\r\n }\r\n }\r\n\r\n processFileCsv(files: FileList) {\r\n if (files && files.length > 0) {\r\n this.uploadContactsFile = files[0]\r\n } else {\r\n this.notifyService.showError('No data found.', 'Company Contact')\r\n return\r\n }\r\n }\r\n\r\n gotoPrev() {\r\n this.stepper.previous()\r\n }\r\n\r\n gotoNext() {\r\n this.companyAdded.emit(1)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n\r\n this.stepper.next()\r\n })\r\n }\r\n\r\n getCompanyContactUploadSample() {\r\n this.companyService\r\n .getCompanyContactUploadSample()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n const a = document.createElement('a')\r\n const objectURL = URL.createObjectURL(data)\r\n a.href = objectURL\r\n a.download = 'Contact_Sample_Export'\r\n a.click()\r\n URL.revokeObjectURL(objectURL)\r\n this.notifyService.showSuccess('Download Successfully', 'Contact Export')\r\n },\r\n () => {\r\n this.notifyService.showError('Error in exporting data', 'Contact Export')\r\n }\r\n )\r\n }\r\n\r\n openContactDialog() {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Contact,\r\n CompanyId: CommonData.activeCompany.CompanyId,\r\n isManualAdd: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Contact) {\r\n if (data.formData.isLocation) {\r\n this.addLocation(data?.formData)\r\n } else {\r\n this.updateContact(data?.formData)\r\n }\r\n }\r\n })\r\n }\r\n\r\n addLocation(contactData) {\r\n const location = contactData.Location\r\n location.ObjectId = CommonData.activeCompany.CompanyId\r\n this.companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = null\r\n this.updateContact(contactData, res.LocationID)\r\n }\r\n })\r\n }\r\n\r\n updateContact(contactData, locationID?) {\r\n const contact = {\r\n FirstName: contactData.FirstName,\r\n LastName: contactData.LastName,\r\n WorkPhone: contactData.WorkPhone,\r\n EmailAddress: contactData.Email,\r\n Email: contactData.Email,\r\n LinkedinUrl: contactData.LinkedinUrl,\r\n ManagementLevelID: contactData.ManagementLevelID ? contactData.ManagementLevelID : null,\r\n ManagementLevel: contactData.ManagementLevel,\r\n DepartmentID: contactData.DepartmentID ? contactData.DepartmentID : null,\r\n DepartmentName: contactData.DepartmentName,\r\n ParentID: contactData.ParentID,\r\n TitleID: contactData.TitleID ? contactData.TitleID : null,\r\n RoleID: contactData.selectedRoleId ? contactData.selectedRoleId : null,\r\n TitleName: contactData.Title,\r\n CompanyId: CommonData.activeCompany.CompanyId,\r\n LocationID: !contactData?.isLocationDeleted || locationID ? locationID : null,\r\n Location: contactData?.Location ? contactData?.Location : null,\r\n ContactID: contactData.ContactID,\r\n CompanyContactID: contactData.CompanyContactID,\r\n IsActive: true,\r\n ReportingManager: contactData.ReportingManager,\r\n StateCode: contactData.StateCode,\r\n Title: contactData.Title,\r\n DoB: contactData?.DoB ? contactData.DoB : null,\r\n Sex: contactData?.Sex ? contactData.Sex : 0,\r\n CellPhone: contactData?.CellPhone ? contactData.CellPhone : '',\r\n FilePath: contactData?.FilePath ? contactData.FilePath : null,\r\n CreatedBy: contactData?.CreatedBy ? contactData.CreatedBy : 0,\r\n CreatedDate: contactData?.CreatedDate ? contactData.CreatedDate : new Date(),\r\n Address: contactData?.Location?.Address ? contactData.Location.Address : '',\r\n Address1: contactData?.Location?.Address1 ? contactData.Location.Address1 : '',\r\n City: contactData?.Location?.City ? contactData.Location.City : '',\r\n StateID: contactData?.Location?.StateID ? contactData.Location.StateID : 0,\r\n CountryID: contactData?.Location?.CountryID ? contactData.Location.CountryID : 0,\r\n ZipCode: contactData?.Location?.ZipCode ? contactData.Location.ZipCode : 0,\r\n UpdatedBy: contactData?.UpdatedBy ? contactData.UpdatedBy : 0,\r\n UpdatedDate: new Date(),\r\n PersonalEmailAddress: contactData?.PersonalEmailAddress ? contactData?.PersonalEmailAddress : null,\r\n }\r\n\r\n this.companyService\r\n .AddContact(contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((response) => {\r\n if (response?.Contact) {\r\n this.refreshCount++\r\n this.notifyService.showSuccess(response?.Message, 'Company Contact')\r\n } else {\r\n this.notifyService.showError(response?.Message, 'Company Contact')\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Contact
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ contactType === contactAddType.Upload ? 'Upload File' : 'Manual' }}\r\n \r\n \r\n \r\n Add Contact\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Download Sample File \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { MatSnackBar } from '@angular/material/snack-bar'\r\nimport { Router } from '@angular/router'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CompanyService } from '../company.service'\r\n\r\n@Component({\r\n selector: 'company-details-view',\r\n templateUrl: './company-details-view.component.html',\r\n styleUrls: ['./company-details-view.component.scss'],\r\n})\r\nexport class CompanyDetailsViewComponent implements OnInit {\r\n activeCompany: any\r\n sicCodes: any\r\n activeSicCode: string\r\n companyTypes: any\r\n activeCompanyTypeName: string\r\n employeeRange: any\r\n activeEmployeeRange: string\r\n filePath: string\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private _snackBar: MatSnackBar\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.filePath = Common.filePath + CommonData.activeCompanyLogo\r\n\r\n this.activeCompany = CommonData.activeCompany\r\n console.log(this.activeCompany, 'active company on details view component')\r\n console.log(this.filePath, 'filepath')\r\n }\r\n\r\n getSicCode() {\r\n this.companyService.GetSicCodes().subscribe((res) => {\r\n this.sicCodes = res\r\n if (this.sicCodes) {\r\n if (this.activeCompany && this.activeCompany.SicCodeID != null) {\r\n let sicCodes = this.sicCodes.filter((x) => x.CategoryID === this.activeCompany.SicCodeID)\r\n if (sicCodes.length > 0) {\r\n this.activeSicCode = sicCodes[0]['Name'] + '(' + sicCodes[0]['Description'] + ')'\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n getCompanyTypes() {\r\n this.companyService.GetCompanyType().subscribe((res) => {\r\n this.companyTypes = res\r\n if (this.companyTypes) {\r\n if (this.activeCompany && this.activeCompany.CompanyTypeID != null) {\r\n let companyType = this.companyTypes.filter((x) => x.CategoryID === this.activeCompany.CompanyTypeID)\r\n if (companyType.length > 0) {\r\n this.activeCompanyTypeName = companyType[0]['Name']\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n getEmployeeRange() {\r\n this.companyService.GetEmployeeRange().subscribe((res) => {\r\n this.employeeRange = res\r\n if (this.employeeRange) {\r\n if (this.activeCompany && this.activeCompany.EmployeeRangeID != null) {\r\n let empRange = this.employeeRange.filter((x) => x.LookupID === this.activeCompany.EmployeeRangeID)\r\n if (empRange.length > 0) {\r\n this.activeEmployeeRange = empRange[0]['ValueCode']\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n editCompany() {\r\n if (this.activeCompany) {\r\n Common.companyStepIndex = 0\r\n this.router.navigate(['/company/edit'])\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n }\r\n\r\n copyPhoneNumber() {\r\n var copyText = document.getElementById('phoneNo')\r\n var textArea = document.createElement('textarea')\r\n textArea.value = copyText.textContent\r\n document.body.appendChild(textArea)\r\n textArea.select()\r\n document.execCommand('Copy')\r\n textArea.remove()\r\n this.openSnackBarForPhone()\r\n }\r\n\r\n copyEmail() {\r\n var copyText = document.getElementById('email')\r\n var textArea = document.createElement('textarea')\r\n textArea.value = copyText.textContent\r\n document.body.appendChild(textArea)\r\n textArea.select()\r\n document.execCommand('Copy')\r\n textArea.remove()\r\n this.openSnackBarForEmail()\r\n }\r\n\r\n openSnackBarForPhone() {\r\n this._snackBar.open('Phone number copied succsessfully', 'Ok', { duration: 3000 })\r\n }\r\n\r\n openSnackBarForEmail() {\r\n this._snackBar.open('Email copied succsessfully', 'Ok', { duration: 3000 })\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core'\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport icClose from '@iconify/icons-ic/twotone-close'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { CompanyService } from '../company.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { MatSelect } from '@angular/material/select'\r\nimport { MatOption } from '@angular/material/core'\r\nimport { UnitsForFile, FilesTypes } from 'src/app/enums/unitsForFile'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { LoadingConfig } from 'src/app/constants/loadingConstants'\r\nimport { first } from 'rxjs/operators'\r\n\r\n@Component({\r\n selector: 'company-basic-details',\r\n templateUrl: './company-basic-details.component.html',\r\n styleUrls: [\r\n './company-basic-details.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CompanyBasicDetailsComponent implements OnInit {\r\n @ViewChild('vendorCategoriesSelect') vendorCategoriesSelect: MatSelect\r\n companyModel: any\r\n industries: any\r\n model: any = {}\r\n companyTypes: any\r\n status: any\r\n companyName: string\r\n selectedSicCode: any\r\n companyForm: FormGroup\r\n selectedIndustryID: any\r\n selectedStatID: any\r\n selectedCompanyTypeID: any\r\n activeCompany: any\r\n isEdit: boolean = false\r\n selectedStateId: any\r\n selectedStateCode: any\r\n sicSearchText: ''\r\n searchIndustryText: ''\r\n searchStatusText: ''\r\n searchCompanyTypeText: ''\r\n sicCodes: any\r\n imageSrc: string | ArrayBuffer\r\n image: FormData\r\n employeeRange: any\r\n searchEmployeeRange: ''\r\n selectedEmployeeRangeId: any\r\n isCompanyTypeSet: boolean = false\r\n showCompanyStatus: boolean = false\r\n isCompanyVisible: boolean\r\n isCompanyContactVisible: boolean = false\r\n isCompanyRevenueVisible: boolean\r\n isAddLocation: boolean\r\n companyId: number\r\n headQuarterLoc: iLocation\r\n disabled = true\r\n newCompanyToBeAdded: boolean\r\n isHqPresent: boolean\r\n isUseMSP: boolean\r\n isMSPPresent: boolean\r\n mspList: any\r\n selectedMSP: any\r\n searchMSP: ''\r\n showMSPCheckBox: boolean\r\n isCompanyEdit: boolean\r\n isImageChanged: boolean\r\n venderCategories = []\r\n vendorEthnicity = []\r\n\r\n vendorCategoryValue = []\r\n vendorEthnicityValue: number // for NONE option\r\n allVendorCategoriesSelected: boolean = false\r\n locationElement: any\r\n otherDetailsSection: any\r\n loadingConfig = LoadingConfig\r\n isLoading: boolean = false\r\n\r\n @Input() stepper: any\r\n logo: any\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get fileTypes(): typeof FilesTypes {\r\n return FilesTypes\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n public authService: AuthenticationService,\r\n private ngZone: NgZone\r\n ) {\r\n this.companyForm = this.formBuilder.group({\r\n Name: ['', [Validators.required]],\r\n Phone: ['', [Validators.pattern(/^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/), Validators.required]],\r\n DomainName: ['', [Validators.required]],\r\n Address: [''],\r\n WebSite: [''],\r\n Description: [''],\r\n statName: [''],\r\n CompanyType: [''],\r\n IndustryName: [''],\r\n employeeRange: [''],\r\n SicName: [''],\r\n mspName: [''],\r\n State: [null],\r\n City: [null],\r\n ZipCode: [0],\r\n IsDrugFree: [null],\r\n HasHarasment: [null],\r\n HasNonDiscrimination: [null],\r\n HasCriminalBGCheck: [null],\r\n })\r\n }\r\n @Output() companyAdded: EventEmitter = new EventEmitter()\r\n\r\n icClose = icClose\r\n\r\n ngOnInit(): void {\r\n this.locationElement = document.querySelector('#locationElement')\r\n this.locationElement.setAttribute('style', 'display: none;')\r\n this.otherDetailsSection = document.querySelector('#otherDetailsSection')\r\n this.otherDetailsSection.setAttribute('style', 'display: none;')\r\n this.isCompanyVisible = true\r\n this.activeCompany = CommonData.activeCompany\r\n this.getCompanyModel()\r\n this.getCompanyTypes()\r\n this.getStatus()\r\n this.getSicCode()\r\n this.getIndustries()\r\n this.getEmployeeRange()\r\n this.getMSPs()\r\n this.getVendorCategoriesGroup()\r\n this.getVendorEthnicityGroup()\r\n\r\n if (CommonData.activeCompanyLogo) {\r\n this.imageSrc = Common.filePath + CommonData.activeCompanyLogo\r\n }\r\n\r\n if (\r\n CommonData.activeCompany != null &&\r\n CommonData.activeCompany != undefined &&\r\n CommonData.activeCompany.CompanyId > 0\r\n ) {\r\n this.setClientValueForEdit()\r\n this.companyId = CommonData.activeCompany.CompanyId\r\n this.headQuarterLocation()\r\n this.isEdit = true\r\n } else {\r\n this.companyId = 0\r\n this.newCompanyToBeAdded = true\r\n }\r\n }\r\n\r\n headQuarterLocation() {\r\n this.companyService.GetCompanyHeadQuarterLoc(this.companyId, 1, 149).subscribe((res) => {\r\n if (res) {\r\n this.headQuarterLoc = res as iLocation\r\n CommonData.activeLocation = this.headQuarterLoc\r\n this.isHqPresent = true\r\n this.isAddLocation = true\r\n }\r\n })\r\n }\r\n\r\n getEmployeeRange() {\r\n this.companyService.GetEmployeeRange().subscribe((res) => {\r\n this.employeeRange = res\r\n })\r\n }\r\n\r\n getMSPs() {\r\n this.companyService.getMSPS().subscribe((res) => {\r\n this.mspList = res\r\n })\r\n }\r\n\r\n onSelectedMSP(msp) {\r\n this.selectedMSP = msp.CompanyId\r\n }\r\n\r\n getVendorCategoriesGroup() {\r\n this.companyService.getVendorCategoriesGroup().subscribe((res) => {\r\n this.venderCategories = res\r\n })\r\n }\r\n\r\n getVendorEthnicityGroup() {\r\n this.companyService.getVendorEthnicity().subscribe((res) => {\r\n this.vendorEthnicity = res\r\n })\r\n }\r\n\r\n setClientValueForEdit() {\r\n this.companyForm.get('Name').setValue(this.activeCompany.Name)\r\n this.companyForm.get('Phone').setValue(this.activeCompany.Phone)\r\n this.companyForm.get('DomainName').setValue(this.activeCompany.WebSite)\r\n this.companyForm.get('Description').setValue(this.activeCompany.Description)\r\n this.companyForm.get('Address').setValue(this.activeCompany.Address)\r\n this.companyForm.get('City').setValue(this.activeCompany.City)\r\n this.companyForm.get('ZipCode').setValue(this.activeCompany.ZipCode)\r\n this.selectedIndustryID = this.activeCompany.IndustryID\r\n this.selectedStatID = this.activeCompany.CompanyStatusID\r\n this.selectedCompanyTypeID = this.activeCompany.CompanyTypeID\r\n this.selectedStateId = this.activeCompany.StateId\r\n this.selectedSicCode = this.activeCompany.SicCodeID\r\n this.selectedEmployeeRangeId = this.activeCompany.EmployeeRangeID\r\n this.selectedMSP = this.activeCompany.MSPCompanyID\r\n this.companyForm.get('IndustryName').setValue(this.activeCompany.IndustryName)\r\n this.searchIndustryText = this.activeCompany.IndustryName\r\n this.companyForm.get('employeeRange').setValue(this.activeCompany.EmployeeRange)\r\n this.searchEmployeeRange = this.activeCompany.EmployeeRange\r\n this.companyForm.get('mspName').setValue(this.activeCompany.MspName)\r\n if (this.activeCompany.MspName) {\r\n this.isUseMSP = true\r\n this.isMSPPresent = true\r\n this.searchMSP = this.activeCompany.MspName\r\n } else {\r\n this.isUseMSP = false\r\n this.isMSPPresent = false\r\n }\r\n if (this.activeCompany.Location) {\r\n this.isHqPresent = true\r\n this.isAddLocation = true\r\n }\r\n if (this.activeCompany.CompanyTypeID != null) {\r\n if (this.activeCompany.CompanyTypeID === CompanyType.Client) {\r\n this.showCompanyStatus = true\r\n this.showMSPCheckBox = true\r\n if (this.activeCompany.MSPCompanyID) {\r\n this.companyForm.controls['mspName'].setValidators([Validators.required])\r\n }\r\n } else if (this.activeCompany.CompanyTypeID === CompanyType.Vendor) {\r\n this.showCompanyStatus = true\r\n this.vendorCategoryValue = this.activeCompany.VendorCategoryID.split(',').map((str) => Number(str))\r\n this.vendorEthnicityValue =\r\n this.activeCompany.VendorEthinicityID == 0 ? null : Number(this.activeCompany.VendorEthinicityID)\r\n this.companyForm.controls['mspName'].clearValidators()\r\n this.companyForm.get('IsDrugFree').setValue(this.activeCompany.IsDrugFreeWorkPlace)\r\n this.companyForm.get('HasHarasment').setValue(this.activeCompany.HasHarasmentPolicy)\r\n this.companyForm.get('HasNonDiscrimination').setValue(this.activeCompany.HasNonDiscriminationPolicy)\r\n this.companyForm.get('HasCriminalBGCheck').setValue(this.activeCompany.HasCriminalBackgroudCheck)\r\n } else {\r\n this.showCompanyStatus = false\r\n this.showMSPCheckBox = false\r\n this.companyForm.controls['mspName'].clearValidators()\r\n }\r\n this.companyForm.controls['mspName'].updateValueAndValidity()\r\n this.companyForm.get('CompanyType').setValue(this.activeCompany.CompanyTypeName)\r\n this.searchCompanyTypeText = this.activeCompany.CompanyTypeName\r\n this.isCompanyTypeSet = true\r\n }\r\n if (this.activeCompany.CompanyStatusID != null) {\r\n this.companyForm.get('statName').setValue(this.activeCompany.CompanyStatus)\r\n this.searchStatusText = this.activeCompany.CompanyStatus\r\n }\r\n this.companyForm.get('SicName').setValue(this.activeCompany.SicCodeName)\r\n this.sicSearchText = this.activeCompany.SicCodeName\r\n }\r\n\r\n onSelectedEmployeeRange(emoloyeeRange) {\r\n this.selectedEmployeeRangeId = emoloyeeRange.LookupID\r\n }\r\n\r\n getCompanyModel() {\r\n this.companyModel = {\r\n CompanyId: 0,\r\n Name: '',\r\n Phone: '',\r\n EmailAddress: '',\r\n Fax: '',\r\n Address: '',\r\n Address1: '',\r\n City: '',\r\n StateId: null,\r\n StateCode: '',\r\n ZipCode: null,\r\n ZipCode1: null,\r\n Dunnumber: '',\r\n FederalTaxId: '',\r\n LegalStructureId: null,\r\n RegisteredStateId: null,\r\n RegisteredState: '',\r\n WebSite: '',\r\n NewsLink: '',\r\n EmployeeRangeID: null,\r\n Description: '',\r\n IsActive: true,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n VendorCategoryID: null,\r\n VendorEthinicityID: null,\r\n IsDrugFreeWorkPlace: null,\r\n HasHarasmentPolicy: null,\r\n HasNonDiscriminationPolicy: null,\r\n HasCriminalBackgroudCheck: null,\r\n }\r\n }\r\n\r\n getIndustries() {\r\n this.companyService.GetJobIndustry().subscribe((res) => {\r\n this.industries = res\r\n })\r\n }\r\n\r\n getCompanyTypes() {\r\n this.companyService.GetCompanyType().subscribe((res) => {\r\n this.companyTypes = res\r\n })\r\n }\r\n\r\n getStatus() {\r\n this.companyService.getStatusCategory().subscribe((res) => {\r\n this.status = res\r\n })\r\n }\r\n\r\n getSicCode() {\r\n this.companyService.GetSicCodes().subscribe((res) => {\r\n this.sicCodes = res\r\n })\r\n }\r\n\r\n onSelectedIndustry(industry) {\r\n this.selectedIndustryID = industry.CategoryID\r\n }\r\n\r\n onSelectedstat(stat) {\r\n this.selectedStatID = stat.CategoryID\r\n }\r\n\r\n onSelectedCompanyType(companyType) {\r\n this.otherDetailsSection.setAttribute('style', 'display: none;')\r\n this.selectedCompanyTypeID = companyType.CategoryID\r\n if (this.selectedCompanyTypeID === CompanyType.Client) {\r\n this.showCompanyStatus = true\r\n this.showMSPCheckBox = true\r\n } else if (this.selectedCompanyTypeID === CompanyType.Vendor) {\r\n this.showCompanyStatus = true\r\n this.showMSPCheckBox = false\r\n this.selectedStatID = null\r\n this.searchMSP = ''\r\n this.companyForm.get('mspName').setValue('')\r\n this.otherDetailsSection.setAttribute('style', 'display: block;')\r\n this.otherDetailsSection.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n this.isUseMSP = false\r\n this.companyForm.controls['mspName'].clearValidators()\r\n this.selectedMSP = null\r\n this.companyForm.controls['mspName'].updateValueAndValidity()\r\n } else if (this.selectedCompanyTypeID === CompanyType.StaffingCompany) {\r\n this.isLoading = true\r\n const filter = {\r\n Company: '',\r\n IndustryID: '',\r\n CompanyTypeId: CompanyType.StaffingCompany.toString(), // staffing company Type\r\n StatusID: '',\r\n PageNumber: 1,\r\n PageSize: 10,\r\n UserId: this.authService.userInfo.userID,\r\n }\r\n this.companyService\r\n .getCompanyList(filter)\r\n .pipe(first())\r\n .subscribe({\r\n next: (companyList) => {\r\n this.isLoading = false\r\n if (companyList?.length > 0) {\r\n this.notifyService.showWarning('There can be only one Staffing company', 'Company Type')\r\n this.companyForm.get('CompanyType').patchValue(null)\r\n } else {\r\n this.companyForm.get('CompanyTypeID').setValue(companyType?.CategoryID)\r\n }\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n },\r\n })\r\n this._removeMspNameValidation()\r\n } else {\r\n this._removeMspNameValidation()\r\n }\r\n }\r\n\r\n private _removeMspNameValidation() {\r\n this.showCompanyStatus = false\r\n this.selectedStatID = null\r\n this.showMSPCheckBox = false\r\n this.searchMSP = ''\r\n this.companyForm.get('mspName').setValue('')\r\n this.isUseMSP = false\r\n this.companyForm.controls['mspName'].clearValidators()\r\n this.selectedMSP = null\r\n this.companyForm.controls['mspName'].updateValueAndValidity()\r\n }\r\n\r\n toggleAllVendorCategoriesSelection() {\r\n if (this.allVendorCategoriesSelected) {\r\n this.vendorCategoriesSelect.options.forEach((item: MatOption) => item.select())\r\n } else {\r\n this.vendorCategoriesSelect.options.forEach((item: MatOption) => item.deselect())\r\n }\r\n }\r\n vendorCategoriesOptionClick() {\r\n let newStatus = true\r\n this.vendorCategoriesSelect.options.forEach((item: MatOption) => {\r\n if (!item.selected) {\r\n newStatus = false\r\n }\r\n })\r\n this.allVendorCategoriesSelected = newStatus\r\n }\r\n\r\n onSelectedSic(sicCode) {\r\n this.selectedSicCode = sicCode.CategoryID\r\n }\r\n\r\n processFile(imageInput: any) {\r\n if (imageInput[0]) {\r\n this.isImageChanged = true\r\n this.logo = imageInput[0]\r\n }\r\n }\r\n\r\n uploadLogo() {\r\n if (this.logo) {\r\n this.image = new FormData()\r\n this.image.append(this.logo.name, this.logo)\r\n if (this.logo.size > 6000000) {\r\n this.notifyService.showError('Please upload file below 6 MB!', 'Company Details')\r\n } else {\r\n const reader = new FileReader()\r\n reader.onload = (e) => (this.imageSrc = reader.result)\r\n reader.readAsDataURL(this.logo)\r\n this.dialog.closeAll()\r\n }\r\n }\r\n }\r\n\r\n resetImage() {\r\n this.image = null\r\n this.imageSrc = null\r\n this.logo = null\r\n }\r\n\r\n onSubmit() {\r\n if (this.companyForm.invalid) {\r\n this.companyForm.markAllAsTouched()\r\n return\r\n }\r\n if (this.isAddLocation) {\r\n if (!CommonData.activeLocation) {\r\n this.notifyService.showError('Location is invalid!', 'Company Details')\r\n return\r\n }\r\n }\r\n var str = this.companyForm.get('Phone').value\r\n let newVal = str.replace('+1', '')\r\n newVal = newVal.replace(/\\D/g, '')\r\n if (newVal.length <= 6) {\r\n newVal = newVal.substring(0, newVal.length - 1)\r\n }\r\n if (newVal.length === 0) {\r\n newVal = ''\r\n } else if (newVal.length <= 3) {\r\n newVal = newVal.replace(/^(\\d{0,3})/, '($1)')\r\n } else if (newVal.length <= 6) {\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})/, '($1) $2')\r\n } else if (newVal.length <= 10) {\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(\\d{0,4})/, '($1) $2-$3')\r\n } else {\r\n newVal = newVal.substring(newVal.length - 10)\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(\\d{0,4})/, '($1) $2-$3')\r\n }\r\n this.companyForm.get('Phone').setValue(newVal)\r\n if (this.companyForm.valid) {\r\n if (\r\n CommonData.activeCompany != null &&\r\n CommonData.activeCompany != undefined &&\r\n CommonData.activeCompany.CompanyId > 0\r\n ) {\r\n this.companyModel.CompanyId = this.activeCompany.CompanyId\r\n this.isCompanyEdit = true\r\n } else {\r\n this.companyModel.CompanyId = 0\r\n }\r\n this.companyModel.Name = this.companyForm.get('Name').value\r\n this.companyModel.Phone = this.companyForm.get('Phone').value\r\n this.companyModel.WebSite = this.companyForm.get('DomainName').value\r\n this.companyModel.Description = this.companyForm.get('Description').value\r\n this.companyModel.Address = this.companyForm.get('Address').value\r\n this.companyModel.IsActive = true\r\n this.companyModel.StateCode = this.selectedStateCode == undefined ? null : this.selectedStateCode\r\n this.companyModel.StateId = this.selectedStateId == undefined ? null : this.selectedStateId\r\n this.companyModel.EmployeeRangeID =\r\n this.selectedEmployeeRangeId == undefined ? null : this.selectedEmployeeRangeId\r\n this.companyModel.City = this.companyForm.get('City').value\r\n this.companyModel.ZipCode = this.companyForm.get('ZipCode').value\r\n this.companyModel.IndustryID = this.selectedIndustryID == undefined ? null : this.selectedIndustryID\r\n this.companyModel.CompanyStatusID = this.selectedStatID == undefined ? null : this.selectedStatID\r\n this.companyModel.SicCodeID = this.selectedSicCode == undefined ? null : this.selectedSicCode\r\n this.companyModel.CompanyTypeID =\r\n this.selectedCompanyTypeID == undefined ? null : this.selectedCompanyTypeID\r\n this.companyModel.InvoiceCycleTypeID =\r\n CommonData?.activeCompany?.InvoiceCycleTypeID == undefined\r\n ? null\r\n : CommonData?.activeCompany?.InvoiceCycleTypeID\r\n this.companyModel.PaymentTermsTypeID =\r\n CommonData?.activeCompany?.PaymentTermsTypeID == undefined\r\n ? null\r\n : CommonData?.activeCompany?.PaymentTermsTypeID\r\n this.companyModel.VMSFees =\r\n CommonData?.activeCompany?.VMSFees == undefined ? null : CommonData?.activeCompany?.VMSFees\r\n this.companyModel.MSPCompanyID = this.selectedMSP == undefined ? null : this.selectedMSP\r\n this.companyModel.CreatedDate = new Date()\r\n this.companyModel.CreatedBy = this.authService.userInfo.userID\r\n this.companyModel.VendorCategoryID =\r\n this.selectedCompanyTypeID === CompanyType.Vendor && this.vendorCategoryValue?.length > 0\r\n ? this.vendorCategoryValue?.join()\r\n : null\r\n this.companyModel.VendorEthinicityID =\r\n this.selectedCompanyTypeID === CompanyType.Vendor && this.vendorEthnicityValue != 0\r\n ? this.vendorEthnicityValue?.toString()\r\n : null\r\n this.companyModel.IsDrugFreeWorkPlace =\r\n this.selectedCompanyTypeID === CompanyType.Vendor ? this.companyForm.get('IsDrugFree').value : null\r\n this.companyModel.HasHarasmentPolicy =\r\n this.selectedCompanyTypeID === CompanyType.Vendor ? this.companyForm.get('HasHarasment').value : null\r\n this.companyModel.HasNonDiscriminationPolicy =\r\n this.selectedCompanyTypeID === CompanyType.Vendor\r\n ? this.companyForm.get('HasNonDiscrimination').value\r\n : null\r\n this.companyModel.HasCriminalBackgroudCheck =\r\n this.selectedCompanyTypeID === CompanyType.Vendor\r\n ? this.companyForm.get('HasCriminalBGCheck').value\r\n : null\r\n\r\n this.companyService.AddCompany(this.companyModel).subscribe(\r\n (res) => {\r\n if (res.StatusCode == HttpStatusCode.Ok) {\r\n this.activeCompany = CommonData.activeCompany = res.Company\r\n if (CommonData.activeLocation) {\r\n this.addLocation()\r\n }\r\n if (this.image && this.isImageChanged) {\r\n this.image.append('companyId', CommonData.activeCompany.CompanyId.toString())\r\n this.companyService.uploadCompanyLogo(this.image).subscribe((res) => {\r\n this.imageSrc = null\r\n this.isImageChanged = false\r\n this.logo = null\r\n this.imageSrc = Common.filePath + res\r\n CommonData.activeCompanyLogo = res\r\n })\r\n }\r\n if (this.isCompanyEdit) {\r\n this.companyAdded.emit(0)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n\r\n this.stepper.next()\r\n })\r\n this.notifyService.showSuccess('Company updated successfully!', 'Company Details')\r\n this.isCompanyEdit = false\r\n } else {\r\n this.notifyService.showSuccess('Company created successfully!', 'Company Details')\r\n this.companyAdded.emit(0)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n\r\n this.stepper.next()\r\n })\r\n }\r\n } else if (res.StatusCode == HttpStatusCode.BadRequest) {\r\n if (!this.isCompanyEdit) {\r\n this.notifyService.showError(res.Message, 'Company Details')\r\n }\r\n } else {\r\n if (this.isCompanyEdit) {\r\n this.notifyService.showError('Company updation failed!', 'Company Details')\r\n this.isCompanyEdit = false\r\n } else {\r\n this.notifyService.showError('Company creation failed!', 'Company Details')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.notifyService.showError('Error saving data', 'Company Details')\r\n }\r\n )\r\n }\r\n }\r\n\r\n addLocation() {\r\n CommonData.activeLocation.LocationTypeID = 149\r\n CommonData.activeLocation.ObjectId = this.activeCompany.CompanyId\r\n this.companyService.AddLocation(CommonData.activeLocation).subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = res as iLocation\r\n }\r\n })\r\n }\r\n\r\n showLocation() {\r\n this.isAddLocation = !this.isAddLocation\r\n if (this.isAddLocation) {\r\n this.locationElement.setAttribute('style', 'display: block;')\r\n this.locationElement.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n } else {\r\n this.locationElement.setAttribute('style', 'display: none;')\r\n }\r\n }\r\n\r\n useMSP() {\r\n this.isUseMSP = !this.isUseMSP\r\n if (this.isUseMSP) {\r\n this.companyForm.controls['mspName'].setValidators([Validators.required])\r\n } else {\r\n this.companyForm.controls['mspName'].clearValidators()\r\n this.companyForm.controls['mspName'].setValue(null)\r\n this.selectedMSP = null\r\n }\r\n this.companyForm.controls['mspName'].updateValueAndValidity()\r\n }\r\n\r\n openUploadImageDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n dialogCloseHandler() {\r\n this.dialog.closeAll()\r\n this.logo = null\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
General
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Company Logo\r\n
\r\n
\r\n \r\n
\r\n
\r\n \"Logo\"\r\n
\r\n \r\n Delete\r\n \r\n \r\n Update Logo\r\n \r\n
\r\n
\r\n
\r\n Company Name*\r\n \r\n \r\n \r\n Company name is required\r\n \r\n \r\n
\r\n
\r\n Domain Name*\r\n \r\n \r\n \r\n Domain name is required\r\n \r\n \r\n
\r\n
\r\n Phone Number*\r\n \r\n \r\n \r\n Phone number is required\r\n \r\n \r\n
\r\n
\r\n Industry\r\n \r\n \r\n \r\n \r\n {{ industry.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n SIC Code\r\n \r\n \r\n \r\n \r\n {{ sicCode.Name }}({{ sicCode.Description }})\r\n \r\n \r\n \r\n
\r\n
\r\n Company Type\r\n \r\n 0 && activeCompany.CompanyTypeID != null\"\r\n matInput\r\n placeholder=\"Type here\"\r\n type=\"text\"\r\n maxlength=\"200\"\r\n [tabindex]=\"6\"\r\n matInput\r\n formControlName=\"CompanyType\"\r\n [(ngModel)]=\"searchCompanyTypeText\"\r\n [matAutocomplete]=\"autoCompanyType\"\r\n readonly\r\n />\r\n \r\n \r\n \r\n {{ companyType.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Status\r\n \r\n \r\n \r\n \r\n {{ stat.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Employee Range\r\n \r\n \r\n \r\n \r\n {{ eRange.ValueCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Select MSP*\r\n \r\n \r\n \r\n \r\n {{ msp.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Description\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
Headquarter Details
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
Other Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Vendor Categories\r\n \r\n \r\n
\r\n Select All\r\n
\r\n \r\n {{ category.Name }}\r\n \r\n \r\n
\r\n
\r\n
\r\n Owners Ethnicity (51% + ownership only)\r\n \r\n \r\n None\r\n \r\n {{ ethnicity.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Workplace Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Does your business support a Drug Free workplace?
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
Does your business have a Harassment policy?
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n Does your business have a non-discrimination policy?\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n Do you perform criminal background checks on each employee before hiring?\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Upload Company Logo\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, ElementRef, Inject, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'\r\nimport { BehaviorSubject, Observable, Subject, forkJoin, of } from 'rxjs'\r\nimport { first, switchMap, takeUntil } from 'rxjs/operators'\r\nimport { Common } from 'src/app/common/common'\r\nimport { CompanyType, CompanyTypeNames } from 'src/app/enums/companyType'\r\nimport { MarkupTypeIds, MarkupTypeNames } from 'src/app/enums/markupType'\r\nimport { MarkupValues } from 'src/app/enums/markupValues'\r\nimport { UnitsForFile, FilesTypes } from 'src/app/enums/unitsForFile'\r\nimport { Status } from 'src/app/enums/UserStatus'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { iKeyValue, iStatus } from 'src/app/models/common.model'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { LocationService } from 'src/app/services/location.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport {\r\n AccountGrids,\r\n CompanyDialogTypes,\r\n ContactAddType,\r\n DialogFormMethod,\r\n LegalType,\r\n OperatorValue,\r\n} from '../company-constants'\r\nimport { CompanyService } from '../company.service'\r\nimport { iRole } from 'src/app/models/user.model'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { Interview_Schedule } from 'src/app/enums/interviewDialogConstant'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { CategoryValues, JobCategorySetting, iCategory } from 'src/app/models/category'\r\nimport { JobTitle } from 'src/app/models/job.model'\r\nimport { JobSettingType } from 'src/app/enums/jobSettingType'\r\n\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { iBurdenRate, iCompany } from 'src/app/models/company.model'\r\nimport { LoadingConfig } from 'src/app/constants/loadingConstants'\r\nimport { StaffingCompanyUsers } from 'src/app/models/staffing-company-user.model'\r\nimport { iAssignedUsers } from 'src/app/models/assignedUser.model'\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete'\r\nimport { DOCUMENT } from '@angular/common'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { MatCheckboxChange } from '@angular/material/checkbox'\r\n@Component({\r\n selector: 'leap-company-dialog',\r\n templateUrl: './company-dialog.component.html',\r\n styleUrls: ['./company-dialog.component.scss'],\r\n})\r\nexport class CompanyDialogComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private fb: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n @Inject(DOCUMENT) private _document,\r\n public dialogRef: MatDialogRef,\r\n private notifyService: NotificationService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private companyService: CompanyService,\r\n private locationService: LocationService,\r\n private consultantService: ConsultantService,\r\n private _authService: AuthenticationService\r\n ) {}\r\n\r\n accountingForm: FormGroup\r\n volumeForm: FormGroup\r\n tenureForm: FormGroup\r\n conversionForm: FormGroup\r\n revenueForm: FormGroup\r\n contactForm: FormGroup\r\n documentForm: FormGroup\r\n jobGeneralForm: FormGroup\r\n jobCategoryForm: FormGroup\r\n companyForm: FormGroup\r\n burdenRateForm: FormGroup\r\n yearRageError: boolean = false\r\n isLoading: boolean = false\r\n displaySalary: boolean\r\n action: string = DialogFormMethod.Add\r\n method: string = 'Add'\r\n submitButtonText: string = 'Add'\r\n isFormViewOnly: boolean\r\n ngUnsubscribe$: Subject = new Subject()\r\n currentYear: number = new Date().getFullYear()\r\n clientName: string\r\n consultantTypes: iKeyValue[] = []\r\n objectOperator: OperatorValue[] = this.companyService.payRateConditions\r\n isAccessToApplicationDisable: boolean = false\r\n loadingConfig = LoadingConfig\r\n markupTypeId = MarkupTypeIds\r\n isLowerSubmissionChecked: boolean = false;\r\n accInvoice = new FormControl('');\r\n accPayment = new FormControl('');\r\n DPtext = new FormControl('');\r\n RPText = new FormControl('');\r\n MLText = new FormControl('');\r\n roleText = new FormControl('');\r\n docSearchText = new FormControl('');\r\n categorySearchText = new FormControl('');\r\n industry = new FormControl('');\t\r\n sicName = new FormControl('');\t\r\n companyTypeText = new FormControl('');\r\n searchStatusText = new FormControl('');\r\n employeeRangeText = new FormControl('');\r\n searchMSP = new FormControl('');\r\n UserFilterSearch = new FormControl('');\r\n CompanySearchFilter = new FormControl('');\r\n\r\n dialogName: string\r\n public get dialogType(): typeof CompanyDialogTypes {\r\n return CompanyDialogTypes\r\n }\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get fileTypes(): typeof FilesTypes {\r\n return FilesTypes\r\n }\r\n\r\n public get locationCalledFrom(): typeof LocationCalledFrom {\r\n return LocationCalledFrom\r\n }\r\n\r\n public get contactAddType(): typeof ContactAddType {\r\n return ContactAddType\r\n }\r\n\r\n public get dialogFormType(): typeof DialogFormMethod {\r\n return DialogFormMethod\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n formData: any\r\n cycles\r\n paymentTerms\r\n volumeArray: AccountGrids[] = []\r\n tenureArray: AccountGrids[] = []\r\n conversionArray: AccountGrids[] = []\r\n revenueArray: [] = []\r\n filterTitles$: BehaviorSubject = new BehaviorSubject([])\r\n dParts: [] = []\r\n reportingManager: [] = []\r\n mLevels: [] = []\r\n roles: iRole[] = []\r\n addType: string[] = [ContactAddType.Upload, ContactAddType.Manual]\r\n contactAddMethod: string = ContactAddType.Upload\r\n uploadContactsFile\r\n isDefaultOptionDisable: boolean = false\r\n\r\n documentTypes: DocumentType[] = []\r\n uploadDialog: MatDialogRef\r\n file: File\r\n document: FormData\r\n selectedDocumentType: iCategory\r\n companyDocs = []\r\n isDocumentSelected: boolean = false\r\n\r\n markupTypeEnum: number[] = []\r\n markTypeValue: number\r\n markupType = MarkupTypeNames\r\n backgroundChecks: any[] = []\r\n filteredBackgroundChecks: any[]\r\n legalTypes: LegalType[] = []\r\n filteredLegalTypes: LegalType[] = []\r\n bg_list: number[] = []\r\n work_list: number[] = []\r\n pendingApprovalVal: number\r\n lowerSubmissionWithdrawlCount: boolean = false\r\n\r\n isAddLocation: boolean\r\n accessToApplication: boolean = false\r\n\r\n categories: iCategory[] = []\r\n jobCategoryList: [] = []\r\n isDuplicateWorkMail: boolean = false\r\n isDuplicatePersonalMail: boolean = false\r\n\r\n industries: [] = [] // need to create interface\r\n activeCompany: any\r\n sicCodes: [] = []\r\n companyTypes: [] = []\r\n employeeRange: [] = []\r\n status: iStatus[] = []\r\n mspList: [] = []\r\n isHqPresent: boolean = false\r\n headQuarterLoc: iLocation\r\n logo: File\r\n image = new FormData()\r\n imageSrc: string | ArrayBuffer\r\n isVendorOptionsVisible: boolean = false\r\n showMSPCheckBox: boolean = false\r\n showCompanyStatus: boolean = false\r\n isUseMSP: boolean = false\r\n isMSPPresent: boolean = false\r\n vendorEthnicityValue = 0\r\n vendorCategoryValue: [] = []\r\n venderCategories: [] = []\r\n vendorEthnicity: [] = []\r\n\r\n staffingCompanyType = CompanyType.StaffingCompany\r\n editAssignedUser: boolean = false\r\n user_list: StaffingCompanyUsers[] = []\r\n company_list = []\r\n clients = []\r\n users: StaffingCompanyUsers[] = []\r\n user: string\r\n company: string\r\n role: string\r\n statusValue\r\n reason: string\r\n dialogTextForAssignUser: string = 'Assign user to client'\r\n assigningUser\r\n isStatusUpdated: boolean = false\r\n isContactManualAddOnly = false\r\n isShowClientName: boolean = false\r\n isUserDialogForJobStatus: boolean = false\r\n assignedUserList: iAssignedUsers[] = []\r\n assignedUserFormControl: FormControl = new FormControl('', [Validators.required])\r\n userAssignedList: iAssignedUsers[] = []\r\n clientCompanyType = CompanyType.Client\r\n\r\n burdenRateArray: iBurdenRate[] = []\r\n companyTypeValues$: Observable\r\n @Output()\r\n dialogData\r\n @Output() closeDialog\r\n isFormViewDisable: boolean = false\r\n ngOnInit(): void {\r\n if (this.data?.dialogName === CompanyDialogTypes.Contact) {\r\n this.getCompanyById(this.data?.CompanyId)\r\n if (this.data.calledFor === Interview_Schedule) {\r\n this.clientName = Common.activeJob?.CompanyName\r\n this.isShowClientName = true\r\n }\r\n } else {\r\n this.activeCompany = CommonData?.activeCompany\r\n }\r\n this.dialogName = this.data?.dialogName\r\n this.cycles = this.data?.cycles\r\n this.paymentTerms = this.data?.paymentTerms\r\n this.formData = this.data?.formData\r\n this.companyService\r\n .getConfig(CommonData?.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.markTypeValue =\r\n res.filter((item) => item.LookupID == JobSettingType.MarkupType)[0]?.Value ==\r\n this.markupType.Max_Markup\r\n ? this.markupTypeId.Max_Markup\r\n : this.markupTypeId.Goal_Markup\r\n })\r\n this.volumeArray = this.data?.volumeArray\r\n if (this.volumeArray?.length) {\r\n this.isDefaultOptionDisable = this.volumeArray?.filter((volume) => volume?.IsDefault).length ? true : false\r\n }\r\n this.tenureArray = this.data?.tenureArray\r\n this.conversionArray = this.data?.conversionArray\r\n this.revenueArray = this.data?.revenueArray\r\n this.dParts = this.data?.dParts\r\n this.reportingManager = this.data?.reportingManager\r\n this.mLevels = this.data?.mLevels\r\n if (this.data?.roles) this.roles = this.data?.roles\r\n if (this.roles?.length == 0) {\r\n if (CommonData?.activeCompany?.CompanyTypeID)\r\n this.companyService\r\n .GetRolesbyCompanyType(CommonData?.activeCompany?.CompanyTypeID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res: iRole[]) => {\r\n this.roles = res\r\n })\r\n }\r\n this.documentTypes = this.data?.documentTypes\r\n this.companyDocs = this.data?.companyDocs\r\n this.backgroundChecks = this.data?.backgroundChecks\r\n this.filteredBackgroundChecks = this.backgroundChecks\r\n this.legalTypes = this.data?.legalTypes\r\n this.filteredLegalTypes = this.legalTypes\r\n this.markupTypeEnum = this.data?.markupTypeEnum\r\n this.categories = this.data?.categories\r\n this.burdenRateArray = this.data?.burdenRateArray\r\n if (this.categories?.length) {\r\n const allIndex = this.categories.findIndex(\r\n (category) => category?.CategoryID === CategoryValues.CategoryTypeID_ALL\r\n )\r\n this.categories.unshift(this.categories.splice(allIndex, 1)[0])\r\n }\r\n\r\n this.jobCategoryList = this.data?.jobCategoryList\r\n this.editAssignedUser = this.data?.isEdit\r\n this.users = this.data?.users\r\n this.clients = this.data?.clients\r\n this.isFormViewOnly = this.data?.isFormViewOnly\r\n if (this.formData) {\r\n this.action = DialogFormMethod.Update\r\n this.method = 'Edit'\r\n this.submitButtonText = 'Update'\r\n this.contactAddMethod = ContactAddType.Manual\r\n }\r\n this.buildForms()\r\n if (\r\n this.activeCompany?.CompanyTypeID != CompanyType.Vendor &&\r\n this.activeCompany?.CompanyTypeID != CompanyType.Client &&\r\n this.dialogName === CompanyDialogTypes.Accounting\r\n ) {\r\n this.accountingForm.get('vmsFee').setValidators([Validators.required])\r\n this.accountingForm.get('vmsFee').updateValueAndValidity()\r\n }\r\n if (this.formData?.Location) this.isAddLocation = true\r\n this.bindFormData()\r\n if (this.dialogName === CompanyDialogTypes.Company) {\r\n this.getDataForCompanyEdit()\r\n this.setClientValueForEdit()\r\n }\r\n if (this.editAssignedUser) {\r\n this.editAssignUser(this.data?.assignedUser)\r\n }\r\n if (this.data?.isManualAdd) {\r\n this.isContactManualAddOnly = true\r\n this.contactAddMethod = ContactAddType.Manual\r\n }\r\n if (this.data?.assignedUsers?.length) {\r\n this.userAssignedList = this.data?.assignedUsers\r\n }\r\n if (this.data?.isFormViewOnly) {\r\n this._disableForm()\r\n this.isFormViewDisable = true\r\n }\r\n }\r\n\r\n public get markupTypeNames(): typeof MarkupTypeNames {\r\n return MarkupTypeNames\r\n }\r\n\r\n public get companyType(): typeof CompanyType {\r\n return CompanyType\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n buildForms() {\r\n switch (this.dialogName) {\r\n case CompanyDialogTypes.Accounting: {\r\n this.initAccountForm()\r\n break\r\n }\r\n case CompanyDialogTypes.VolumeDiscount: {\r\n this.initVolumeForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Tenure: {\r\n this.initTenureForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Conversion: {\r\n this.initConversionForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Revenue: {\r\n this.initRevenueForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Contact: {\r\n this.initContactForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Add_Documents: {\r\n this.initDocumentForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_General_Settings: {\r\n this.initJobGenForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_Category_Settings: {\r\n this.initJobCategoryForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Company: {\r\n this.initCompanyForm()\r\n break\r\n }\r\n case CompanyDialogTypes.Burden_Rate: {\r\n this.initBurdenRateForm()\r\n this.consultantService\r\n .getLookup('ConsultantTypelD')\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((types: iKeyValue[]) => {\r\n this.consultantTypes = types\r\n })\r\n break\r\n }\r\n case CompanyDialogTypes.Users: {\r\n this.isUserDialogForJobStatus = this.data?.isFromJobStatus\r\n this.getStaffingCompanyUsers()\r\n break\r\n }\r\n case CompanyDialogTypes.User_Active_Action: {\r\n this.assignedUserList = this.data?.usersToMakeActive\r\n break\r\n }\r\n }\r\n }\r\n\r\n bindFormData() {\r\n switch (this.dialogName) {\r\n case CompanyDialogTypes.Accounting: {\r\n this.accountingForm.patchValue(this.formData)\r\n break\r\n }\r\n case CompanyDialogTypes.VolumeDiscount: {\r\n this.volumeForm.patchValue(this.formData)\r\n break\r\n }\r\n case CompanyDialogTypes.Tenure: {\r\n this.tenureForm.patchValue(this.formData)\r\n break\r\n }\r\n case CompanyDialogTypes.Conversion: {\r\n this.conversionForm.patchValue(this.formData)\r\n break\r\n }\r\n case CompanyDialogTypes.Revenue: {\r\n this.revenueForm.patchValue(this.formData)\r\n break\r\n }\r\n case CompanyDialogTypes.Contact: {\r\n this.contactForm.patchValue(this.formData)\r\n if (this.formData?.Roles.length > 0) {\r\n this.accessToApplication = true\r\n this.contactForm.get('Roles').setValue(this.formData.Roles[0]?.Name)\r\n }\r\n if (this.formData?.Location) this.locationService.setCurrentLocation(this.formData?.Location)\r\n if (this.isFormViewOnly) {\r\n this.contactForm.disable()\r\n }\r\n break\r\n }\r\n case CompanyDialogTypes.Job_General_Settings: {\r\n this.bindGenJobForm(this.formData)\r\n break\r\n }\r\n case CompanyDialogTypes.Job_Category_Settings: {\r\n this.jobCategoryForm.patchValue(this.formData)\r\n break\r\n }\r\n case CompanyDialogTypes.Company: {\r\n this.companyForm.patchValue(this.activeCompany)\r\n this.setCompanyFormByType()\r\n break\r\n }\r\n case CompanyDialogTypes.Burden_Rate: {\r\n this.burdenRateForm.patchValue(this.data?.formData)\r\n break\r\n }\r\n }\r\n }\r\n\r\n _disableForm() {\r\n switch (this.dialogName) {\r\n case CompanyDialogTypes.Accounting: {\r\n this.accountingForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.VolumeDiscount: {\r\n this.volumeForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Tenure: {\r\n this.tenureForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Conversion: {\r\n this.conversionForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Revenue: {\r\n this.revenueForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Contact: {\r\n this.contactForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Add_Documents: {\r\n this.documentForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_General_Settings: {\r\n this.jobGeneralForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_Category_Settings: {\r\n this.jobCategoryForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Company: {\r\n this.companyForm.disable()\r\n break\r\n }\r\n case CompanyDialogTypes.Burden_Rate: {\r\n this.burdenRateForm.disable()\r\n break\r\n }\r\n }\r\n }\r\n\r\n resetForm() {\r\n switch (this.dialogName) {\r\n case CompanyDialogTypes.Accounting: {\r\n this.accountingForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.VolumeDiscount: {\r\n this.volumeForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Tenure: {\r\n this.tenureForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Conversion: {\r\n this.conversionForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Revenue: {\r\n this.revenueForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Contact: {\r\n this.contactForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Add_Documents: {\r\n this.documentForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_General_Settings: {\r\n this.jobGeneralForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_Category_Settings: {\r\n this.jobCategoryForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Company: {\r\n this.companyForm.reset()\r\n break\r\n }\r\n case CompanyDialogTypes.Burden_Rate: {\r\n this.burdenRateForm.reset()\r\n break\r\n }\r\n }\r\n }\r\n\r\n initAccountForm() {\r\n this.accountingForm = this.fb.group({\r\n invoiceCycle: this.fb.group({\r\n Name: ['', Validators.required],\r\n CategoryID: [''],\r\n CategoryTypeID: [''],\r\n CreatedBy: [''],\r\n CreatedDate: [''],\r\n Description: [''],\r\n IsActive: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [''],\r\n }),\r\n paymentTerms: this.fb.group({\r\n Name: ['', Validators.required],\r\n CategoryID: [''],\r\n CategoryTypeID: [''],\r\n CreatedBy: [''],\r\n CreatedDate: [''],\r\n Description: [''],\r\n IsActive: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [''],\r\n }),\r\n vmsFee: [''],\r\n })\r\n }\r\n initBurdenRateForm() {\r\n this.burdenRateForm = this.fb.group({\r\n employmentType: [''],\r\n employmentTypeId: ['', Validators.required],\r\n payrate: ['', Validators.required],\r\n operator: ['', Validators.required],\r\n burdenRate: ['', Validators.required],\r\n year: ['', [Validators.required, Validators.maxLength(4), this.yearValidator]],\r\n })\r\n }\r\n dateValidator(control) {\r\n const value = control.value\r\n const currentDate = new Date().getDate()\r\n if (value > currentDate) {\r\n return { greaterThanCurrentYear: true }\r\n }\r\n }\r\n\r\n yearValidator(control) {\r\n const value = control.value\r\n const currentYear = new Date().getFullYear()\r\n if (value && value > currentYear) {\r\n return { greaterThanCurrentYear: true }\r\n }\r\n if (value && (isNaN(value) || value < 1900 || value > currentYear)) {\r\n return { invalidYear: true }\r\n }\r\n return null\r\n }\r\n\r\n initVolumeForm() {\r\n this.volumeForm = this.fb.group({\r\n AccountingTypeID: [137],\r\n CompanyAccountingID: [0],\r\n CompanyID: [''],\r\n CreatedBy: [0],\r\n IsDefault: [null],\r\n CreatedDate: [new Date()],\r\n FromValue: ['', Validators.required],\r\n ToValue: ['', Validators.required],\r\n Value: ['', Validators.required],\r\n IsActive: [true],\r\n UpdatedBy: [0],\r\n UpdatedDate: [new Date()],\r\n })\r\n }\r\n\r\n initTenureForm() {\r\n this.tenureForm = this.fb.group({\r\n AccountingTypeID: [138],\r\n CompanyAccountingID: [0],\r\n CompanyID: [''],\r\n CreatedBy: [0],\r\n CreatedDate: [new Date()],\r\n FromValue: ['', Validators.required],\r\n ToValue: ['', Validators.required],\r\n Value: ['', Validators.required],\r\n IsActive: [true],\r\n UpdatedBy: [0],\r\n UpdatedDate: [new Date()],\r\n })\r\n }\r\n\r\n initConversionForm() {\r\n this.conversionForm = this.fb.group({\r\n AccountingTypeID: [140],\r\n CompanyAccountingID: [0],\r\n CompanyID: [''],\r\n CreatedBy: [0],\r\n CreatedDate: [new Date()],\r\n FromValue: ['', Validators.required],\r\n ToValue: ['', Validators.required],\r\n Value: ['', Validators.required],\r\n IsActive: [true],\r\n UpdatedBy: [0],\r\n UpdatedDate: [new Date()],\r\n })\r\n }\r\n\r\n initRevenueForm() {\r\n this.revenueForm = this.fb.group({\r\n AssetValue: [''],\r\n CompanyID: [''],\r\n CompanyRevenueID: [0],\r\n CreatedBy: [0],\r\n CreatedDate: [new Date()],\r\n IsActive: [''],\r\n Revenue: ['', Validators.required],\r\n UpdatedBy: [0],\r\n UpdatedDate: [new Date()],\r\n Year: ['', Validators.required],\r\n })\r\n }\r\n\r\n initContactForm() {\r\n this.contactForm = this.fb.group({\r\n FirstName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z]+$/)]],\r\n LastName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z]+$/)]],\r\n WorkPhone: ['', [Validators.pattern(/^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/)]],\r\n Email: new FormControl('', {\r\n validators: [\r\n Validators.pattern(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/),\r\n Validators.required,\r\n ],\r\n asyncValidators: [\r\n this.companyService.contactEmailValidator(this.formData?.ContactID ? this.formData.ContactID : -1),\r\n ], //-1 for new contact creation contactID\r\n }),\r\n PersonalEmailAddress: new FormControl('', {\r\n validators: [\r\n Validators.pattern(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/),\r\n ],\r\n asyncValidators: [\r\n this.companyService.contactEmailValidator(this.formData?.ContactID ? this.formData.ContactID : -1),\r\n ], //-1 for new contact creation contactID\r\n }),\r\n LinkedinUrl: [''],\r\n Title: [''],\r\n TitleID: [0],\r\n DepartmentName: [''],\r\n ReportingManager: [''],\r\n Roles: [''],\r\n StateCode: [''],\r\n CompanyContactID: [0],\r\n CompanyID: [0],\r\n ContactID: [0],\r\n DepartmentID: [0],\r\n FilePath: [''],\r\n ManagementLevel: [''],\r\n ManagementLevelID: [0],\r\n ParentID: [0],\r\n Location: [null],\r\n selectedRoleId: [null],\r\n isLocation: [false],\r\n DoB: [''],\r\n Sex: [0],\r\n CellPhone: ['', [Validators.pattern(/^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/)]],\r\n CreatedBy: [''],\r\n CreatedDate: [new Date()],\r\n UpdatedBy: [0],\r\n isLocationDeleted: [false],\r\n })\r\n }\r\n\r\n initDocumentForm() {\r\n this.documentForm = this.fb.group({\r\n description: [''],\r\n type: ['', Validators.required],\r\n })\r\n }\r\n\r\n initJobGenForm() {\r\n this.jobGeneralForm = this.fb.group({\r\n jobConfigMarkupTypeValue: ['', Validators.required],\r\n pendingApprovalVal: ['', Validators.required],\r\n days: [''],\r\n work_list: [[8], Validators.required],\r\n bg_list: ['', Validators.required],\r\n salaryRange: ['', [Validators.required]],\r\n Value: [false],\r\n })\r\n }\r\n\r\n initJobCategoryForm() {\r\n this.jobCategoryForm = this.fb.group({\r\n CompanyJobCategorySettingID: [0],\r\n CompanyID: [CommonData.activeCompany.CompanyID],\r\n CategoryID: [null],\r\n CategoryName: ['', Validators.required],\r\n MaxSubmit: [null],\r\n IsVendorAllowed: [true],\r\n displaySalary: [false],\r\n CreatedDate: [new Date()],\r\n CreatedBy: [Common.userProfile.userID],\r\n UpdatedBy: [Common.userProfile.userID],\r\n UpdatedDate: [new Date()],\r\n IsActive: [true],\r\n C2C: this.fb.group({\r\n CategoryMarkupID: [0],\r\n CompanyJobCategorySettingID: [0],\r\n LookupTypeID: [MarkupValues.C2C],\r\n Value: [null],\r\n CreatedDate: [new Date()],\r\n CreatedBy: [Common.userProfile.userID],\r\n UpdatedDate: [new Date()],\r\n UpdatedBy: [Common.userProfile.userID],\r\n IsActive: [true],\r\n }),\r\n C2O: this.fb.group({\r\n CategoryMarkupID: [0],\r\n CompanyJobCategorySettingID: [0],\r\n LookupTypeID: [MarkupValues.C20],\r\n Value: [null],\r\n CreatedDate: [new Date()],\r\n CreatedBy: [Common.userProfile.userID],\r\n UpdatedDate: [new Date()],\r\n UpdatedBy: [Common.userProfile.userID],\r\n IsActive: [true],\r\n }),\r\n W2: this.fb.group({\r\n CategoryMarkupID: [0],\r\n CompanyJobCategorySettingID: [0],\r\n LookupTypeID: [MarkupValues.W2],\r\n Value: [null],\r\n CreatedDate: [new Date()],\r\n CreatedBy: [Common.userProfile.userID],\r\n UpdatedDate: [new Date()],\r\n UpdatedBy: [Common.userProfile.userID],\r\n IsActive: [true],\r\n }),\r\n // DS: this.fb.group({\r\n // CategoryMarkupID: [0],\r\n // CompanyJobCategorySettingID: [0],\r\n // LookupTypeID: [MarkupValues.DS],\r\n // Value: [null],\r\n // CreatedDate: [new Date()],\r\n // CreatedBy: [Common.userProfile.userID],\r\n // UpdatedDate: [new Date()],\r\n // UpdatedBy: [Common.userProfile.userID],\r\n // IsActive: [true],\r\n // }),\r\n })\r\n }\r\n\r\n initCompanyForm() {\r\n this.companyForm = this.fb.group({\r\n Name: [null, [Validators.required]],\r\n Phone: [null, [Validators.pattern(/^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/), Validators.required]],\r\n WebSite: [null, [Validators.required]],\r\n Address: [null],\r\n Description: [null],\r\n statName: [null],\r\n CompanyType: [null],\r\n IndustryName: [null],\r\n EmployeeRange: [null],\r\n SicName: [null],\r\n MspName: [null],\r\n State: [null],\r\n City: [null],\r\n ZipCode: [0],\r\n IsDrugFree: [null],\r\n HasHarasment: [null],\r\n HasNonDiscrimination: [null],\r\n HasCriminalBGCheck: [null],\r\n IndustryID: [null],\r\n CompanyStatusID: [null],\r\n CompanyStatus: [null],\r\n CompanyTypeID: [null],\r\n StateId: [null],\r\n SicCodeID: [null],\r\n EmployeeRangeID: [null],\r\n MSPCompanyID: [null],\r\n SicCodeName: [null],\r\n isImageChanged: [null],\r\n isUseMSP: [null],\r\n VendorCategoryID: [null],\r\n CompanyId: [null],\r\n CreatedBy: [null],\r\n CreatedDate: [null],\r\n Dunnumber: [null],\r\n EmailAddress: [null],\r\n Fax: [null],\r\n FederalTaxId: [null],\r\n LegalStructureId: [null],\r\n UpdatedDate: [new Date()],\r\n RegisteredState: [null],\r\n RegisteredStateId: [null],\r\n UpdatedBy: [null],\r\n Location: [null],\r\n })\r\n }\r\n\r\n onSelectedIndustry(industry) {\r\n this.companyForm.get('IndustryID').setValue(industry.CategoryID)\r\n }\r\n\r\n onSelectedSic(sicCode) {\r\n this.companyForm.get('SicCodeID').setValue(sicCode.CategoryID)\r\n }\r\n\r\n setCompanyFormByType(shouldDisableInput = true) {\r\n if (this.companyForm.get('CompanyTypeID').value === CompanyType.Client) {\r\n this.showCompanyStatus = true\r\n this.showMSPCheckBox = true\r\n this.isVendorOptionsVisible = false\r\n } else if (this.companyForm.get('CompanyTypeID').value === CompanyType.Vendor) {\r\n this.isVendorOptionsVisible = true\r\n this.showCompanyStatus = true\r\n this.showMSPCheckBox = false\r\n this.companyForm.get('CompanyStatusID').setValue(null)\r\n this.companyForm.get('MspName').setValue('')\r\n } else {\r\n this.showCompanyStatus = false\r\n this.companyForm.get('CompanyStatusID').setValue(null)\r\n this.showMSPCheckBox = false\r\n this.isVendorOptionsVisible = false\r\n this.companyForm.get('MspName').setValue('')\r\n }\r\n // if (\r\n // shouldDisableInput &&\r\n // (this.companyForm.get('CompanyTypeID').value != null ||\r\n // this.companyForm.get('CompanyTypeID').value != undefined)\r\n // ) {\r\n // this.companyForm.get('CompanyType').disable()\r\n // } else {\r\n // this.companyTypeValues$ = this.companyService.GetCompanyType()\r\n // }\r\n this.companyTypeValues$ = this.companyService.GetCompanyType()\r\n }\r\n\r\n onSelectedEmployeeRange(eRange) {\r\n this.companyForm.get('EmployeeRangeID').setValue(eRange.LookupID)\r\n }\r\n\r\n onSelectedStat(stat) {\r\n this.companyForm.get('CompanyStatusID').setValue(stat.CategoryID)\r\n }\r\n\r\n onSelectedMSP(msp) {\r\n this.companyForm.get('MSPCompanyID').setValue(msp.CompanyId)\r\n }\r\n\r\n useMSP() {\r\n this.isUseMSP = !this.isUseMSP\r\n if (this.isUseMSP) {\r\n this.isUseMSP = true\r\n if (this.mspList.length == 0) this.getMsp()\r\n this.companyForm.controls['MspName'].setValidators([Validators.required])\r\n } else {\r\n this.isUseMSP = false\r\n this.companyForm.controls['MspName'].clearValidators()\r\n }\r\n this.companyForm.get('isUseMSP').setValue(this.isUseMSP)\r\n this.companyForm.controls['MspName'].updateValueAndValidity()\r\n }\r\n\r\n getDataForCompanyEdit() {\r\n if (CommonData.activeCompanyLogo) {\r\n this.imageSrc = Common.filePath + CommonData.activeCompanyLogo\r\n }\r\n this.companyService\r\n .GetJobIndustry()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.industries = res\r\n })\r\n this.companyService\r\n .GetSicCodes()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.sicCodes = res\r\n })\r\n this.companyService\r\n .GetEmployeeRange()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.employeeRange = res\r\n })\r\n this.companyService\r\n .getStatusCategory()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.status = res\r\n })\r\n if (this.activeCompany?.Location != null) {\r\n this.headQuarterLocation()\r\n }\r\n }\r\n\r\n changeStatus(event) {\r\n this.isStatusUpdated = true\r\n this.statusValue = event\r\n }\r\n\r\n editAssignUser(assignedUser) {\r\n this.dialogTextForAssignUser = 'Do you want to change status ?'\r\n this.assigningUser = assignedUser\r\n this.editAssignedUser = true\r\n this.user = assignedUser.FirstName + ' ' + assignedUser.LastName\r\n this.company = assignedUser.CompanyName\r\n this.role = assignedUser.Roles[0].Name\r\n if (assignedUser.IsActive) {\r\n this.statusValue = Status.Active\r\n } else {\r\n this.statusValue = Status.InActive\r\n }\r\n }\r\n\r\n processFilecsv(files: FileList) {\r\n if (files && files.length > 0) {\r\n this.uploadContactsFile = files[0]\r\n } else {\r\n this.notifyService.showError('No data found.', 'Company Contact')\r\n return\r\n }\r\n }\r\n\r\n getMsp() {\r\n this.companyService\r\n .getMSPS()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.mspList = res\r\n })\r\n }\r\n displaySalaryExternalPortal() {\r\n \r\n this.displaySalary = true\r\n \r\n\r\n }\r\n getVendorCategoriesGroup() {\r\n this.companyService\r\n .getVendorCategoriesGroup()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.venderCategories = res\r\n })\r\n }\r\n\r\n getVendorEthnicityGroup() {\r\n this.companyService\r\n .getVendorEthnicity()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.vendorEthnicity = res\r\n })\r\n }\r\n\r\n headQuarterLocation() {\r\n this.companyService\r\n .GetCompanyHeadQuarterLoc(this.activeCompany.CompanyId, 1, 149)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.headQuarterLoc = res as iLocation\r\n CommonData.activeLocation = this.headQuarterLoc\r\n this.isHqPresent = true\r\n this.isAddLocation = true\r\n this.locationService.setCurrentLocation(this.headQuarterLoc)\r\n }\r\n })\r\n }\r\n\r\n setClientValueForEdit() {\r\n if (this.activeCompany.MspName) {\r\n this.isUseMSP = true\r\n this.isMSPPresent = true\r\n this.getMsp()\r\n this.companyForm.get('MspName').setValue(this.activeCompany.MspName)\r\n } else {\r\n this.isUseMSP = false\r\n this.isMSPPresent = false\r\n }\r\n if (this.activeCompany.Location) {\r\n this.isHqPresent = true\r\n this.isAddLocation = true\r\n }\r\n if (this.activeCompany.CompanyTypeID != null) {\r\n if (this.activeCompany.CompanyTypeID === CompanyType.Client) {\r\n this.showCompanyStatus = true\r\n this.showMSPCheckBox = true\r\n if (this.activeCompany.MSPCompanyID) {\r\n this.companyForm.controls['MspName'].setValidators([Validators.required])\r\n }\r\n } else if (this.activeCompany.CompanyTypeID === CompanyType.Vendor) {\r\n this.showCompanyStatus = true\r\n this.isVendorOptionsVisible = true\r\n this.getVendorEthnicityGroup()\r\n this.getVendorCategoriesGroup()\r\n this.vendorCategoryValue = this.activeCompany?.VendorCategoryID?.split(',').map((str) => Number(str)) //added null check as vendor category is not a mandatory field\r\n this.vendorEthnicityValue =\r\n this.activeCompany.VendorEthinicityID == 0 ? null : Number(this.activeCompany.VendorEthinicityID)\r\n this.companyForm.controls['MspName'].clearValidators()\r\n this.companyForm.get('IsDrugFree').setValue(this.activeCompany.IsDrugFreeWorkPlace)\r\n this.companyForm.get('HasHarasment').setValue(this.activeCompany.HasHarasmentPolicy)\r\n this.companyForm.get('HasNonDiscrimination').setValue(this.activeCompany.HasNonDiscriminationPolicy)\r\n this.companyForm.get('HasCriminalBGCheck').setValue(this.activeCompany.HasCriminalBackgroudCheck)\r\n } else {\r\n this.showCompanyStatus = false\r\n this.showMSPCheckBox = false\r\n this.companyForm.controls['MspName'].clearValidators()\r\n }\r\n this.companyForm.controls['MspName'].updateValueAndValidity()\r\n this.companyForm.get('CompanyType').setValue(this.activeCompany.CompanyTypeName)\r\n }\r\n if (this.activeCompany.CompanyStatusID != null) {\r\n this.companyForm.get('CompanyStatus').setValue(this.activeCompany.CompanyStatus)\r\n }\r\n }\r\n\r\n onSelectedDepartmentType(dpart) {\r\n this.contactForm.get('DepartmentID').setValue(dpart.CategoryID)\r\n this.contactForm.get('DepartmentName').setValue(dpart.Name)\r\n }\r\n\r\n filterTitle(titleValue) {\r\n titleValue = titleValue.trim()\r\n if (titleValue == '') {\r\n this.contactForm.get('TitleID').setValue(null)\r\n this.contactForm.get('Title').setValue(null)\r\n }\r\n this.companyService\r\n .jobTitleSearch(titleValue)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res: JobTitle[]) => {\r\n this.filterTitles$.next(res)\r\n })\r\n }\r\n\r\n trackByForTitleFilter(title) {\r\n return title.JobTitleName\r\n }\r\n\r\n onSelectedManagementLevel(mlevel) {\r\n this.contactForm.get('ManagementLevel').setValue(mlevel.Name)\r\n this.contactForm.get('ManagementLevelID').setValue(mlevel.CategoryID)\r\n }\r\n onSelectedTitle(title) {\r\n this.contactForm.get('TitleID').setValue(title.JobTitleID)\r\n this.contactForm.get('Title').setValue(title.JobTitleName)\r\n }\r\n onSelectedManager(rp) {\r\n this.contactForm.get('ParentID').setValue(rp.ContactID)\r\n this.contactForm.get('ReportingManager').setValue(rp.FirstName + ' ' + rp.LastName)\r\n }\r\n onSelectedRole(role) {\r\n this.contactForm.get('selectedRoleId').setValue(role.RoleID)\r\n }\r\n showLocation() {\r\n this.isAddLocation = !this.isAddLocation\r\n }\r\n\r\n showAccessToApplication() {\r\n this.accessToApplication = !this.accessToApplication\r\n if (this.accessToApplication) {\r\n this.contactForm.get('Roles').addValidators(Validators.required)\r\n } else this.contactForm.get('Roles').clearValidators()\r\n this.contactForm.get('Roles').updateValueAndValidity()\r\n if (this.roles.length == 0) {\r\n this.companyService.GetRolesbyCompanyType(CommonData.activeCompany.CompanyTypeID).subscribe((res: []) => {\r\n this.roles = res\r\n })\r\n }\r\n }\r\n\r\n selectedCategory(cat) {\r\n this.jobCategoryForm.get('CategoryID').setValue(cat.CategoryID)\r\n this.jobCategoryForm.get('CategoryName').setValue(cat.Name)\r\n }\r\n\r\n selectedPaymentTerms(paymentTerms) {\r\n this.accountingForm.get('paymentTerms').patchValue(paymentTerms)\r\n }\r\n selectedInvoiceCycle(invoiceCycle) {\r\n this.accountingForm.get('invoiceCycle').patchValue(invoiceCycle)\r\n }\r\n\r\n bindGenJobForm(jobCategory) {\r\n if (jobCategory != null && jobCategory != undefined) {\r\n this.jobGeneralForm.get('pendingApprovalVal').setValue(jobCategory[0] === 'Yes' ? 1 : 2)\r\n this.pendingApprovalVal = this.jobGeneralForm.get('pendingApprovalVal').value\r\n\r\n this.jobGeneralForm.get('days').setValue(Number(jobCategory[3]))\r\n this.legalTypes.forEach((type) => {\r\n if (jobCategory[2].split(',').includes(type?.ValueName)) {\r\n this.work_list.push(type.LookupID)\r\n }\r\n })\r\n if (!this.work_list.includes(8)) {\r\n this.work_list.push(8)\r\n }\r\n this.jobGeneralForm.get('work_list').setValue(this.work_list)\r\n this.jobGeneralForm.get('salaryRange').setValue(Number(jobCategory[5]))\r\n this.backgroundChecks.forEach((item: any) => {\r\n if (jobCategory[1].split(',').includes(item?.ValueName)) {\r\n this.bg_list.push(item.LookupID)\r\n }\r\n })\r\n this.jobGeneralForm.get('bg_list').setValue(this.bg_list)\r\n this.jobGeneralForm\r\n .get('jobConfigMarkupTypeValue')\r\n .setValue(\r\n jobCategory[4] == this.markupType.Max_Markup\r\n ? this.markupTypeId.Max_Markup\r\n : this.markupTypeId.Goal_Markup\r\n )\r\n if (jobCategory[4] == this.markupType.Max_Markup) {\r\n this.jobGeneralForm.get('salaryRange').addValidators([Validators.min(0)])\r\n this.jobGeneralForm.get('salaryRange').updateValueAndValidity()\r\n } else {\r\n this.jobGeneralForm.get('salaryRange').clearValidators()\r\n this.jobGeneralForm.get('salaryRange').updateValueAndValidity()\r\n }\r\n this.jobGeneralForm.get('Value').setValue(jobCategory[6])\r\n this.lowerSubmissionWithdrawlCount = jobCategory[6]\r\n }\r\n }\r\n\r\n onChangeMarkUpType(markupType) {\r\n this.markTypeValue = markupType\r\n this.jobGeneralForm.get('jobConfigMarkupTypeValue').setValue(markupType)\r\n this.jobCategoryForm.get('Value').setValue(this.lowerSubmissionWithdrawlCount)\r\n if (markupType == MarkupTypeIds.Max_Markup) {\r\n this.jobGeneralForm.get('salaryRange').addValidators([Validators.min(0)])\r\n this.jobGeneralForm.get('salaryRange').updateValueAndValidity()\r\n } else {\r\n this.jobGeneralForm.get('salaryRange').clearValidators()\r\n this.jobGeneralForm.get('salaryRange').updateValueAndValidity()\r\n }\r\n }\r\n\r\n openDialog(dialogTemplateRef) {\r\n this.uploadDialog = this.commonMatDialogService.open({\r\n component: dialogTemplateRef,\r\n data: {\r\n width: '500px',\r\n },\r\n })\r\n }\r\n\r\n onSelectedDocument(document) {\r\n this.documentForm.get('type').setValue(document.Name)\r\n this.selectedDocumentType = document\r\n }\r\n readFile(fileList: FileList) {\r\n if (fileList[0].size > 6000000) {\r\n this.notifyService.showError('PLEASE SELECT FILE LESS THAN 6 MB!', 'Company Documents')\r\n return\r\n }\r\n if (!this.validateFile(fileList[0].name)) {\r\n this.notifyService.showError('Selected file format is not supported!', 'Company Documents')\r\n return\r\n } else {\r\n this.file = fileList[0]\r\n }\r\n this.document = new FormData()\r\n this.document.append(fileList[0].name, fileList[0])\r\n }\r\n saveDocument() {\r\n if (!this.selectedDocumentType || !this.document) {\r\n this.notifyService.showError('Please select both document and document type!', 'Company Documents')\r\n return\r\n }\r\n let sameDocumentTypeAndName = this.companyDocs?.find(\r\n (x) => x.CategoryName === this.selectedDocumentType.Name && x.FileName === this.file.name\r\n )\r\n if (sameDocumentTypeAndName) {\r\n this.notifyService.showError('Cannot add same document for same document type!', 'Company Documents')\r\n return\r\n }\r\n this.document.append('selectedDocumentType', this.selectedDocumentType.CategoryID.toString())\r\n this.document.append('description', this.documentForm.get('description').value)\r\n const COMPANY_ID = this.activeCompany?.CompanyId ? this.activeCompany?.CompanyId : this.data?.companyId\r\n this.document.append('companyId', COMPANY_ID)\r\n if (this.documentForm.valid)\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n document: this.document,\r\n })\r\n else this.documentForm.markAllAsTouched()\r\n }\r\n closeUploadDialog() {\r\n this.document = null\r\n this.file = null\r\n this.logo = null\r\n this.isDocumentSelected = true\r\n this.uploadContactsFile = null\r\n this.uploadDialog?.close()\r\n }\r\n validateFile(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (\r\n ext.toLowerCase() == 'doc' ||\r\n ext.toLowerCase() == 'docx' ||\r\n ext.toLowerCase() == 'pdf' ||\r\n ext.toLowerCase() == 'txt'\r\n ) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n processFile(imageInput: any) {\r\n if (imageInput[0]) {\r\n this.companyForm.get('isImageChanged').setValue(true)\r\n this.logo = imageInput[0]\r\n }\r\n }\r\n\r\n uploadLogo() {\r\n if (this.logo) {\r\n this.image = new FormData()\r\n this.image.append(this.logo.name, this.logo)\r\n if (this.logo.size > 6000000) {\r\n this.notifyService.showError('Please upload file below 6 MB!', 'Company Details')\r\n } else {\r\n const reader = new FileReader()\r\n reader.onload = (e) => (this.imageSrc = reader.result)\r\n reader.readAsDataURL(this.logo)\r\n this.uploadDialog?.close()\r\n }\r\n }\r\n }\r\n\r\n resetImage() {\r\n this.image = null\r\n this.imageSrc = null\r\n this.logo = null\r\n }\r\n\r\n // for saving account data\r\n addAcct() {\r\n if (this.accountingForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.accountingForm.value })\r\n else this.accountingForm.markAllAsTouched()\r\n }\r\n\r\n // for saving volume\r\n addVol() {\r\n let fromValue = this.volumeForm.get('FromValue').value\r\n let toValue = this.volumeForm.get('ToValue').value\r\n if (this.volumeForm.valid && !this.checkForOverlapping(this.volumeArray, fromValue, toValue))\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.volumeForm.value })\r\n else this.volumeForm.markAllAsTouched()\r\n }\r\n\r\n // for saving tenure\r\n addTen() {\r\n let fromValue = this.tenureForm.get('FromValue').value\r\n let toValue = this.tenureForm.get('ToValue').value\r\n if (this.tenureForm.valid && !this.checkForOverlapping(this.tenureArray, fromValue, toValue))\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.tenureForm.value })\r\n else this.tenureForm.markAllAsTouched()\r\n }\r\n\r\n // for saving conversion\r\n addCon() {\r\n let fromValue = this.conversionForm.get('FromValue').value\r\n let toValue = this.conversionForm.get('ToValue').value\r\n if (this.conversionForm.valid && !this.checkForOverlapping(this.conversionArray, fromValue, toValue))\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.conversionForm.value })\r\n else this.conversionForm.markAllAsTouched()\r\n }\r\n\r\n // for saving revenue\r\n addRev() {\r\n if (this.revenueForm.get('Year').value < 1900 || this.revenueForm.get('Year').value > 3000) {\r\n this.notifyService.showError('Year is invalid.Year must be between 1900 to 3000!', 'Company Revenue')\r\n return\r\n }\r\n if (\r\n this.revenueForm.get('Year').value % 1 != 0 ||\r\n this.revenueForm.get('Revenue').value % 1 != 0 ||\r\n this.revenueForm.get('AssetValue').value % 1 != 0\r\n ) {\r\n this.notifyService.showError('Please give only integer value!', 'Company Revenue')\r\n return\r\n }\r\n\r\n let overlap = false\r\n var sameYear = this.revenueArray.find((x: any) => x.Year === this.revenueForm.get('Year').value)\r\n if (sameYear) {\r\n this.notifyService.showError('Same Year is already added!', 'Company Revenue')\r\n overlap = true\r\n return\r\n }\r\n\r\n if (this.revenueForm.valid && !overlap)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.revenueForm.value })\r\n else this.revenueForm.markAllAsTouched()\r\n }\r\n\r\n // for saving contact\r\n addContact() {\r\n var str = this.contactForm.get('WorkPhone').value\r\n let newVal = str?.replace('+1', '')\r\n newVal = newVal?.replace(/\\D/g, '')\r\n if (newVal?.length <= 6) {\r\n newVal = newVal.substring(0, newVal.length - 1)\r\n }\r\n if (newVal?.length === 0) {\r\n newVal = ''\r\n } else if (newVal?.length <= 3) {\r\n newVal = newVal?.replace(/^(\\d{0,3})/, '($1)')\r\n } else if (newVal?.length <= 6) {\r\n newVal = newVal?.replace(/^(\\d{0,3})(\\d{0,3})/, '($1) $2')\r\n } else if (newVal?.length <= 10) {\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(\\d{0,4})/, '($1) $2-$3')\r\n } else {\r\n newVal = newVal?.substring(newVal.length - 10)\r\n newVal = newVal?.replace(/^(\\d{0,3})(\\d{0,3})(\\d{0,4})/, '($1) $2-$3')\r\n }\r\n this.contactForm.get('WorkPhone').setValue(newVal)\r\n let location = this.locationService.getCurrentLocation()\r\n if (this.contactForm.get('Location').value?.LocationID !== location?.LocationID) {\r\n if (location) {\r\n this.contactForm.get('isLocation').setValue(true)\r\n this.contactForm.get('Location').setValue(location)\r\n } else {\r\n this.contactForm.get('isLocation').setValue(false)\r\n }\r\n }\r\n if (this.contactForm.get('Location').value && location === null) {\r\n this.contactForm.get('isLocationDeleted').setValue(true)\r\n }\r\n if (this.formData) {\r\n if (this.formData?.Email == this.contactForm.get('Email').value) {\r\n this.contactForm.get('Email').clearAsyncValidators()\r\n this.contactForm.get('Email').updateValueAndValidity()\r\n }\r\n if (this.formData?.PersonalEmailAddress == this.contactForm.get('PersonalEmailAddress').value) {\r\n this.contactForm.get('PersonalEmailAddress').clearAsyncValidators()\r\n this.contactForm.get('PersonalEmailAddress').updateValueAndValidity()\r\n }\r\n }\r\n if (this.contactForm.valid) {\r\n this.dialogRef.close({ formName: 'contact', formData: this.contactForm.value })\r\n } else {\r\n this.contactForm.markAllAsTouched()\r\n }\r\n }\r\n\r\n // for saving general job settings\r\n addGenJob() {\r\n if (this.jobGeneralForm.valid)\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobGeneralForm.value,\r\n work_List: this.jobGeneralForm.get('work_list').value,\r\n bg_list: this.jobGeneralForm.get('bg_list').value,\r\n })\r\n else this.jobGeneralForm.markAllAsTouched()\r\n }\r\n\r\n // for saving category job settings\r\n addCategoryJob() {\r\n if (!this.jobCategoryForm.get('CategoryName').value) {\r\n this.notifyService.showError('Job Category cannot be null!', 'Company Job Setting')\r\n return\r\n }\r\n const categoryID = this.categories.filter(\r\n (category) => category?.Name === this.jobCategoryForm.get('CategoryName')?.value\r\n )[0]?.CategoryID\r\n if (categoryID != null || categoryID != undefined) {\r\n this.jobCategoryForm.get('CategoryID').setValue(categoryID)\r\n }\r\n const isJobCatAlreadyAdded = this.jobCategoryList.find(\r\n (category: JobCategorySetting) => category.CategoryName === this.jobCategoryForm.get('CategoryName').value\r\n )\r\n const isAllCategorySelected = this.jobCategoryList.filter(\r\n (category: JobCategorySetting) => category.CategoryID === CategoryValues.CategoryTypeID_ALL\r\n ).length\r\n ? true\r\n : false\r\n\r\n if (\r\n !isAllCategorySelected &&\r\n this.jobCategoryForm.get('CategoryID').value == CategoryValues.CategoryTypeID_ALL &&\r\n this.jobCategoryList.length\r\n ) {\r\n this.notifyService.showError(\r\n 'You need to remove other categories before adding All category option!',\r\n 'Company Job Setting'\r\n )\r\n return\r\n }\r\n if (isJobCatAlreadyAdded) {\r\n this.notifyService.showError('Job Category is already added!', 'Company Job Setting')\r\n return\r\n }\r\n // will need in future\r\n // if (\r\n // !this.jobCategoryForm.get('C2C.Value').value &&\r\n // !this.jobCategoryForm.get('C2O.Value').value &&\r\n // !this.jobCategoryForm.get('W2.Value').value\r\n // ) {\r\n // this.notifyService.showError('Please add at least one of C2C ,C2O or W2!', 'Company Job Setting')\r\n // return\r\n // }\r\n // if (this.jobCategoryForm.get('MaxSubmit').value && this.jobCategoryForm.get('MaxSubmit').value % 1 != 0) {\r\n // this.notifyService.showError('Please give only integer value!', 'Company Job Setting')\r\n // return\r\n // }\r\n if (this.jobCategoryForm.valid)\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobCategoryForm.value,\r\n })\r\n else this.jobCategoryForm.markAllAsTouched()\r\n }\r\n\r\n // for saving company\r\n addCompany() {\r\n let location = this.locationService.getCurrentLocation()\r\n if (location != null) {\r\n this.companyForm.get('Location').setValue(location)\r\n }\r\n const COMPANY_TYPE = this.companyForm.get('CompanyType').value\r\n if (COMPANY_TYPE !== CompanyTypeNames.Client || (COMPANY_TYPE === CompanyTypeNames.Client && !this.isUseMSP)) {\r\n this.companyForm.controls['MspName'].setValue('')\r\n this.companyForm.controls['MSPCompanyID'].setValue(null)\r\n\r\n const mspNameControl = this.companyForm.controls['MspName']\r\n mspNameControl.clearValidators()\r\n mspNameControl.updateValueAndValidity()\r\n }\r\n // else if (COMPANY_TYPE === CompanyTypeNames.Client && !this.isUseMSP) {\r\n // this.companyForm.controls['MspName'].setValue('')\r\n // this.companyForm.controls['MSPCompanyID'].setValue(null)\r\n\r\n // const mspNameControl = this.companyForm.controls['MspName']\r\n // mspNameControl.clearValidators()\r\n // mspNameControl.updateValueAndValidity()\r\n // }\r\n\r\n if (this.companyForm.valid)\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.companyForm.value,\r\n image: this.image,\r\n isVendorOptionsVisible: this.isVendorOptionsVisible,\r\n vendorEthnicityValue: this.vendorEthnicityValue ? this.vendorEthnicityValue?.toString() : null,\r\n vendorCategoryValue: this.vendorCategoryValue?.length ? this.vendorCategoryValue : null,\r\n })\r\n else this.companyForm.markAllAsTouched()\r\n }\r\n addBurdenRate() {\r\n if (this.burdenRateForm.valid) {\r\n let overlap = false\r\n this.burdenRateArray.forEach((burdenRate: any) => {\r\n if (!overlap) {\r\n if (\r\n burdenRate.Value?.employmentTypeId === this.burdenRateForm.get('employmentTypeId').value &&\r\n burdenRate.Value?.operator === this.burdenRateForm.get('operator').value &&\r\n burdenRate.Value?.year === this.burdenRateForm.get('year').value\r\n ) {\r\n overlap = true\r\n }\r\n }\r\n })\r\n if (overlap) {\r\n this.notifyService.showWarning(\r\n `Burden rate record is overlapping with other record.`,\r\n `Company Accounting`\r\n )\r\n return\r\n }\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.burdenRateForm.value,\r\n })\r\n } else {\r\n this.burdenRateForm.markAllAsTouched()\r\n }\r\n }\r\n\r\n employeeTypeSelected() {\r\n const selectedId = this.burdenRateForm.get('employmentTypeId')?.value\r\n if (selectedId) {\r\n this.burdenRateForm\r\n .get('employmentType')\r\n .setValue(this.consultantTypes?.find((type) => type?.Value === selectedId)?.Key)\r\n }\r\n }\r\n\r\n addNewAccountingManager() {\r\n this.dialogRef.close({ formName: this.dialogName })\r\n }\r\n\r\n activateAccountManager() {\r\n if (this.assignedUserFormControl.valid) {\r\n this.dialogRef.close({ formName: this.dialogName, userAssignmentId: this.assignedUserFormControl.value })\r\n } else {\r\n this.assignedUserFormControl.markAllAsTouched()\r\n }\r\n }\r\n\r\n onSave() {\r\n switch (this.dialogName) {\r\n case CompanyDialogTypes.Accounting: {\r\n this.addAcct()\r\n break\r\n }\r\n case CompanyDialogTypes.VolumeDiscount: {\r\n this.addVol()\r\n break\r\n }\r\n case CompanyDialogTypes.Tenure: {\r\n this.addTen()\r\n break\r\n }\r\n case CompanyDialogTypes.Conversion: {\r\n this.addCon()\r\n break\r\n }\r\n case CompanyDialogTypes.Revenue: {\r\n this.addRev()\r\n break\r\n }\r\n case CompanyDialogTypes.Contact: {\r\n this.addContact()\r\n break\r\n }\r\n case CompanyDialogTypes.Add_Documents: {\r\n this.saveDocument()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_General_Settings: {\r\n this.addGenJob()\r\n break\r\n }\r\n case CompanyDialogTypes.Job_Category_Settings: {\r\n this.addCategoryJob()\r\n break\r\n }\r\n case CompanyDialogTypes.Company: {\r\n this.addCompany()\r\n break\r\n }\r\n case CompanyDialogTypes.Burden_Rate: {\r\n this.addBurdenRate()\r\n break\r\n }\r\n case CompanyDialogTypes.No_Account_Managers: {\r\n this.addNewAccountingManager()\r\n break\r\n }\r\n case CompanyDialogTypes.User_Active_Action: {\r\n this.activateAccountManager()\r\n break\r\n }\r\n }\r\n }\r\n\r\n onClose() {\r\n this.resetForm()\r\n this.dialogRef.close({ action: 'close' })\r\n }\r\n\r\n uploadContacts() {\r\n this.dialogRef.close({ formName: 'contact', uploadContactsFile: this.uploadContactsFile })\r\n this.closeUploadDialog()\r\n }\r\n\r\n addUser() {\r\n if (this.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany && this.company_list.length < 1) {\r\n this.notifyService.showError('Please add atleast one company!', 'User Assignment')\r\n return\r\n }\r\n if (this.user_list.length < 1) {\r\n this.notifyService.showError('Please add atleast one user!', 'User Assignment')\r\n return\r\n }\r\n this.dialogRef.close({ formName: this.dialogName, user_list: this.user_list, company_list: this.company_list })\r\n }\r\n\r\n updateAssignUser() {\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n isStatusUpdated: this.isStatusUpdated,\r\n status: this.statusValue,\r\n reason: this.reason,\r\n })\r\n }\r\n getCompanyById(CompanyID) {\r\n this.isLoading = true\r\n this.companyService\r\n .GetCompanyByCompanyId(CompanyID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: (company) => {\r\n this.isLoading = false\r\n CommonData.activeCompany = company\r\n this.activeCompany = company\r\n if (this.dialogName === CompanyDialogTypes.Contact) {\r\n if (\r\n this.activeCompany?.CompanyTypeID === CompanyType.Client &&\r\n this.activeCompany?.MspName != null &&\r\n this.activeCompany?.MSPCompanyID != null\r\n ) {\r\n this.isAccessToApplicationDisable = true\r\n }\r\n }\r\n this.getDataForAddContact()\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n },\r\n })\r\n }\r\n\r\n getDataForAddContact() {\r\n forkJoin({\r\n reportingManager: this.companyService.GetContactsByClient(this.activeCompany.CompanyId),\r\n mLevels: this.companyService.GetManagementLevel(),\r\n dParts: this.companyService.GetDepartmentType(),\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(({ reportingManager, mLevels, dParts }) => {\r\n this.reportingManager = reportingManager\r\n this.mLevels = mLevels\r\n this.dParts = dParts\r\n })\r\n if (this.activeCompany.CompanyTypeID) {\r\n if (this.activeCompany.CompanyTypeID == 75) return // Temporarily disabling for Clients (Hiring Manger/Program Manager).\r\n this.companyService\r\n .GetRolesbyCompanyType(this.activeCompany.CompanyTypeID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res: []) => {\r\n this.roles = res\r\n })\r\n }\r\n }\r\n\r\n getStaffingCompanyUsers() {\r\n this.isLoading = true\r\n this.companyService\r\n .getStaffingCompanyUsers()\r\n .pipe(\r\n takeUntil(this.ngUnsubscribe$),\r\n switchMap((users) => {\r\n return forkJoin([of(users), this.companyService.getCompanyActiveClients()])\r\n })\r\n )\r\n .subscribe(\r\n ([res, clients]) => {\r\n this.clients = clients as []\r\n this.isLoading = false\r\n if (res) {\r\n if (this.isUserDialogForJobStatus) {\r\n this.users = res.filter((user) => {\r\n return user.Roles.some((role) => role.RoleID == 7)\r\n })\r\n } else {\r\n if (CommonData?.activeCompany?.CompanyTypeID !== CompanyType.StaffingCompany) {\r\n const ASSIGNED_USER_IDS = this.userAssignedList.map((user) => user.UserId)\r\n if (ASSIGNED_USER_IDS) {\r\n this.users = res.filter((user) => {\r\n return !ASSIGNED_USER_IDS.includes(user.UserID)\r\n })\r\n } else {\r\n this.users = res\r\n }\r\n } else {\r\n this.users = res\r\n }\r\n }\r\n }\r\n if (this.users.length === 0) {\r\n this.dialogName = CompanyDialogTypes.No_Account_Managers\r\n }\r\n },\r\n (error) => {\r\n this.isLoading = false\r\n }\r\n )\r\n }\r\n\r\n checkForOverlapping(tableDataSource: any, min, max) {\r\n let overlap = false\r\n let start = ''\r\n let end = ''\r\n if (this.dialogName == CompanyDialogTypes.VolumeDiscount) {\r\n start = 'Revenue From'\r\n end = 'Revenue To'\r\n } else if (this.dialogName == CompanyDialogTypes.Conversion) {\r\n start = 'Duration Days From'\r\n end = 'Duration Days To'\r\n } else {\r\n start = 'Month From'\r\n end = 'Month To'\r\n }\r\n let maxofToValue = tableDataSource.map((item) => item.ToValue)\r\n maxofToValue = Math.max(...maxofToValue)\r\n if (\r\n (!(min < tableDataSource[0]?.FromValue && max < tableDataSource[0]?.FromValue) ||\r\n !(min > maxofToValue && max > maxofToValue)) &&\r\n min < tableDataSource[0]?.FromValue &&\r\n max > maxofToValue &&\r\n tableDataSource.length > 0\r\n ) {\r\n overlap = true\r\n this.notifyService.showError('Invalid Values', 'Company Accounting')\r\n } else {\r\n tableDataSource.forEach((element) => {\r\n if (min >= max) {\r\n this.notifyService.showError(`${end} must be greater that ${start}!`, 'Company Accounting')\r\n overlap = true\r\n return overlap\r\n }\r\n if (min % 1 != 0 || max % 1 != 0) {\r\n this.notifyService.showError('Please give only integer value!', 'Company Accounting')\r\n overlap = true\r\n return overlap\r\n }\r\n if (element.FromValue <= min && element.ToValue >= min) {\r\n this.notifyService.showError(`${start} is overlaping with other value!`, 'Company Accounting')\r\n overlap = true\r\n return overlap\r\n }\r\n if (element.FromValue <= max && element.ToValue >= max) {\r\n this.notifyService.showError(`${end} is overlaping with other value!`, 'Company Accounting')\r\n overlap = true\r\n return overlap\r\n }\r\n })\r\n }\r\n return overlap\r\n }\r\n\r\n onUserSelectedForStaffingCompany(event: Event, trigger: MatAutocompleteTrigger, user: StaffingCompanyUsers) {\r\n const SELECTED_USER: StaffingCompanyUsers = user\r\n if (this.user_list.find((user) => user.UserID === SELECTED_USER.UserID)) {\r\n const USER_TO_REMOVE = this.user_list.findIndex((user) => user.UserID === SELECTED_USER.UserID)\r\n this.user_list.splice(USER_TO_REMOVE, 1)\r\n } else {\r\n this.user_list.push(SELECTED_USER)\r\n }\r\n const USER_FILTER_INPUT_BOX = this._document.getElementById('UserFilterSearch') as HTMLInputElement\r\n USER_FILTER_INPUT_BOX.value = ''\r\n event.stopPropagation()\r\n trigger.openPanel()\r\n }\r\n\r\n onUserSelected(user: StaffingCompanyUsers) {\r\n this.user_list = []\r\n this.user_list.push(user)\r\n }\r\n\r\n onCompanySelected(event: Event, trigger: MatAutocompleteTrigger, company: iCompany) {\r\n const SELECTED_COMPANY: iCompany = company\r\n if (this.company_list.find((company: iCompany) => company.CompanyId == SELECTED_COMPANY.CompanyId)) {\r\n const COMPANY_TO_REMOVE = this.company_list.findIndex(\r\n (company: iCompany) => company.CompanyId == SELECTED_COMPANY.CompanyId\r\n )\r\n this.company_list.splice(COMPANY_TO_REMOVE, 1)\r\n } else {\r\n this.company_list.push(SELECTED_COMPANY)\r\n }\r\n const COMPANY_FILTER_INPUT_BOX = this._document.getElementById('CompanySearchFilter') as HTMLInputElement\r\n COMPANY_FILTER_INPUT_BOX.value = ''\r\n event.stopPropagation()\r\n trigger.openPanel()\r\n }\r\n\r\n removeCompany(company: iCompany) {\r\n const SELECTED_COMPANY: iCompany = company\r\n const COMPANY_TO_REMOVE = this.company_list.findIndex(\r\n (company: iCompany) => company.CompanyId == SELECTED_COMPANY.CompanyId\r\n )\r\n this.company_list.splice(COMPANY_TO_REMOVE, 1)\r\n }\r\n\r\n removeUser(user: StaffingCompanyUsers) {\r\n const SELECTED_USER = user\r\n const USER_TO_REMOVE = this.user_list.findIndex((user) => user.UserID === SELECTED_USER.UserID)\r\n this.user_list.splice(USER_TO_REMOVE, 1)\r\n }\r\n\r\n get selectedCompanies(): string {\r\n return this.company_list?.map((company: iCompany) => company.Name).join(',')\r\n }\r\n\r\n get selectedCompanyUsers(): string {\r\n return this.user_list?.map((user) => `${user.FirstName} | ${user.Email} | ${user.Roles[0]?.Name}`).join(',')\r\n }\r\n onSelectedCompanyType(companyType) {\r\n if (companyType.CategoryID === CompanyType.StaffingCompany) {\r\n this.isLoading = true\r\n const filter = {\r\n Company: '',\r\n IndustryID: '',\r\n CompanyTypeId: CompanyType.StaffingCompany.toString(), // staffing company Type\r\n StatusID: '',\r\n PageNumber: 1,\r\n PageSize: 10,\r\n UserId: this._authService.userInfo.userID,\r\n }\r\n this.companyService\r\n .getCompanyList(filter)\r\n .pipe(first())\r\n .subscribe({\r\n next: (companyList) => {\r\n this.isLoading = false\r\n if (companyList?.length > 0) {\r\n this.notifyService.showWarning('There can be only one Staffing company', 'Company Type')\r\n this.companyForm.get('CompanyType').patchValue(null)\r\n } else {\r\n this.companyForm.get('CompanyTypeID').setValue(companyType?.CategoryID)\r\n }\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n },\r\n })\r\n } else {\r\n this.companyForm.get('CompanyTypeID').setValue(companyType?.CategoryID)\r\n }\r\n this.setCompanyFormByType(false)\r\n }\r\n onDropdownFilterKeyPressed(searchText: any) {\r\n this.filteredBackgroundChecks = this.backgroundChecks.filter((filteredBackgroundChecks: any) => {\r\n if (filteredBackgroundChecks.ValueName.toLowerCase().includes(searchText.trim().toLowerCase())) {\r\n return filteredBackgroundChecks\r\n }\r\n })\r\n }\r\n onDropdownFilterLegalType(searchText: any) {\r\n this.filteredLegalTypes = this.legalTypes.filter((type) => {\r\n if (type.ValueName.trim().toLowerCase().includes(searchText.toLowerCase())) {\r\n return type\r\n }\r\n })\r\n }\r\n\r\n onBackgroundCheckAdded(lookupID) {\r\n if(this.bg_list.includes(lookupID)) {\r\n const BG_CHECK_INDEX = this.bg_list.indexOf(lookupID)\r\n this.bg_list.splice(BG_CHECK_INDEX, 2)\r\n } else {\r\n this.bg_list.push(lookupID)\r\n }\r\n this.jobGeneralForm.get('bg_list').patchValue(this.bg_list)\r\n }\r\n onLegalCheckAdded(lookupID) {\r\n if (this.work_list.includes(lookupID)) {\r\n const BG_CHECK_INDEX = this.work_list.indexOf(lookupID)\r\n this.work_list.splice(BG_CHECK_INDEX, 2)\r\n } else {\r\n this.work_list.push(lookupID)\r\n }\r\n this.jobGeneralForm.get('work_list').patchValue(this.work_list)\r\n }\r\n onLowerSubmissionWithdrawalCountChange(event: MatCheckboxChange): void {\r\n this.lowerSubmissionWithdrawlCount = event.checked;\r\n this.jobGeneralForm.get('Value').setValue(event.checked);\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n {{ method }} Accounting \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Invoice Cycle*\r\n \r\n \r\n \r\n \r\n {{ cycle.Name }}\r\n \r\n \r\n \r\n Invoice cycle is required\r\n \r\n \r\n
\r\n
\r\n
\r\n Payment Terms*\r\n \r\n \r\n \r\n \r\n {{ paymentTerm.Name }}\r\n \r\n \r\n \r\n Payment terms is required\r\n \r\n \r\n
\r\n
\r\n VMS Fee %*\r\n \r\n \r\n \r\n VMS fee % is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ method }} Volume Discount Type \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Revenue From (in Million $)*\r\n \r\n \r\n \r\n Revenue from is required\r\n \r\n \r\n
\r\n
\r\n Revenue To (in Million $)*\r\n \r\n \r\n \r\n Revenue to is required\r\n \r\n \r\n
\r\n
\r\n Volume Discount %*\r\n \r\n \r\n \r\n Volume discount is required\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Default\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{ method }} Long Term Tenure Discount
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Month From*\r\n \r\n \r\n \r\n Range from is required\r\n \r\n \r\n
\r\n
\r\n Month To*\r\n \r\n \r\n \r\n Range to is required\r\n \r\n \r\n
\r\n
\r\n Tenure Discount %*\r\n \r\n \r\n \r\n Tenure discount % is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ method }} Conversion Fee \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Duration Days From*\r\n \r\n \r\n \r\n Duration days from is required\r\n \r\n \r\n
\r\n
\r\n Duration Days To*\r\n \r\n \r\n \r\n Duration days to is required\r\n \r\n \r\n
\r\n
\r\n Conversion Fee %*\r\n \r\n \r\n \r\n Conversion fee % is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ method }} Revenue \r\n\r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Year*\r\n \r\n \r\n \r\n \r\n Year is required\r\n \r\n \r\n Year must be less than current year\r\n \r\n \r\n \r\n
\r\n
\r\n Revenue(in Million $)*\r\n \r\n \r\n \r\n Revenue is required\r\n \r\n \r\n
\r\n
\r\n Asset Value(in Million $)\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ isFormViewOnly ? 'Contact View' : method + ' Contact' }}\r\n
\r\n close\r\n
\r\n
\r\n \r\n \r\n \r\n {{ contactType === contactAddType.Upload ? 'Upload File' : 'Manual' }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Contact adding for Client Name : \r\n {{ clientName }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n First Name*\r\n \r\n \r\n \r\n First name is required\r\n \r\n \r\n Only alphabets are accepted.\r\n \r\n \r\n
\r\n
\r\n Last Name*\r\n \r\n \r\n \r\n Last name is required\r\n \r\n \r\n Only alphabets are accepted.\r\n \r\n \r\n
\r\n
\r\n Work Phone No\r\n \r\n \r\n \r\n
\r\n
\r\n Mobile No\r\n \r\n \r\n \r\n
\r\n
\r\n Work Email ID*\r\n \r\n \r\n \r\n Work Email is required\r\n \r\n \r\n Work email is already present\r\n \r\n \r\n
\r\n
\r\n Personal Email ID\r\n \r\n \r\n \r\n Personal Email is already used\r\n \r\n \r\n
\r\n
\r\n Title\r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Department\r\n \r\n \r\n \r\n \r\n {{ dpart.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Reporting Person\r\n \r\n \r\n \r\n \r\n {{ rp.FirstName }} {{ rp.LastName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Management Level\r\n \r\n \r\n \r\n \r\n {{ mlevel.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Linkedin Profile Link\r\n \r\n \r\n \r\n
\r\n
\r\n {{ isFormViewOnly ? 'Role' : 'Select Role'\r\n }}*\r\n \r\n \r\n \r\n \r\n {{ role.Name }}\r\n \r\n \r\n \r\n Role is required\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Access to Application\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n Add Documents \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Document is required\r\n \r\n
\r\n
\r\n Document Type*\r\n \r\n \r\n \r\n \r\n {{ cycle.Name }}\r\n \r\n \r\n \r\n Document type is required\r\n \r\n \r\n
\r\n
\r\n Description\r\n \r\n \r\n \r\n 499\">\r\n Description length cannot be more than 500 characters\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Upload Document\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Upload\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ method }} General Setting \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Hold To Close Days\r\n \r\n \r\n \r\n
\r\n
\r\n Background Check*\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ type.ValueName }}\r\n
\r\n \r\n Background check is required\r\n \r\n
\r\n
\r\n
\r\n Work Authorization*\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ type.ValueName }}\r\n
\r\n \r\n Work authorization is required\r\n \r\n
\r\n
\r\n
\r\n Approval Pending Check*\r\n \r\n Yes\r\n No\r\n \r\n \r\n Approval Pending Check is required\r\n \r\n
\r\n
\r\n Markup Type*\r\n \r\n \r\n {{ markupType[markupTypeId[markupValue]] }}\r\n \r\n \r\n Markup Type is required\r\n \r\n
\r\n
\r\n \r\n RCP (%)*\r\n help\r\n \r\n \r\n \r\n \r\n Salary range is required.\r\n \r\n \r\n Negative value not allowed.\r\n \r\n \r\n
\r\n
\r\n \r\n Lower Submission Withdrawal Count\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ method }} Category Setting \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Category*\r\n \r\n \r\n \r\n \r\n {{ cat.Name }}\r\n \r\n \r\n \r\n Job category is required\r\n \r\n \r\n
\r\n
\r\n Vendor Allowed*\r\n \r\n Yes\r\n    \r\n No\r\n \r\n
\r\n\r\n
\r\n Max Submit\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n W2\r\n {{\r\n markTypeValue == markupTypeId.Max_Markup\r\n ? markupTypeNames.Max_Markup\r\n : markupTypeNames.Goal_Markup\r\n }}\r\n %\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n C2C\r\n {{\r\n markTypeValue == markupTypeId.Max_Markup\r\n ? markupTypeNames.Max_Markup\r\n : markupTypeNames.Goal_Markup\r\n }}\r\n %\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n C2O\r\n {{\r\n markTypeValue == markupTypeId.Max_Markup\r\n ? markupTypeNames.Max_Markup\r\n : markupTypeNames.Goal_Markup\r\n }}\r\n %\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Display Salary on External Portal\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Edit Company \r\n close\r\n
\r\n
\r\n
\r\n Company Logo\r\n
\r\n
\r\n \r\n
\r\n
\r\n \"Logo\"\r\n
\r\n \r\n Delete\r\n \r\n \r\n Update Logo\r\n \r\n
\r\n
\r\n
\r\n Company Name*\r\n \r\n \r\n \r\n Company name is required\r\n \r\n \r\n
\r\n
\r\n Domain Name*\r\n \r\n \r\n \r\n Domain name is required\r\n \r\n \r\n
\r\n
\r\n Phone Number*\r\n \r\n \r\n \r\n Phone number is required\r\n \r\n \r\n
\r\n
\r\n Industry\r\n \r\n \r\n \r\n \r\n {{ industry.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n SIC Code\r\n \r\n \r\n \r\n \r\n {{ sicCode.Name }}({{ sicCode.Description }})\r\n \r\n \r\n \r\n
\r\n
\r\n Company Type\r\n \r\n \r\n \r\n \r\n {{ companyType.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Status\r\n \r\n \r\n \r\n \r\n {{ stat.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Employee Range\r\n \r\n \r\n \r\n \r\n {{ eRange.ValueCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Select MSP*\r\n \r\n \r\n \r\n \r\n {{ msp.Name }}\r\n \r\n \r\n \r\n This field is required\r\n \r\n \r\n
\r\n
\r\n
\r\n Description\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Other Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Vendor Categories\r\n \r\n \r\n \r\n {{ category.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Owners Ethnicity (51% + ownership only)\r\n \r\n \r\n None\r\n \r\n {{ ethnicity.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Workplace Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Does your business support a Drug Free workplace?
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
Does your business have a Harassment policy?
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
Does your business have a non-discrimination policy?
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n Do you perform criminal background checks on each employee before hiring?\r\n
\r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ dialogTextForAssignUser }}\r\n \r\n close\r\n
\r\n
\r\n \r\n
\r\n Users*\r\n \r\n \r\n \r\n {{ user?.FirstName }}\r\n cancel\r\n \r\n \r\n \r\n \r\n {{ user?.FirstName }} |\r\n {{ user?.Email }} |\r\n {{ user?.Roles[0]?.Name }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Companies*\r\n \r\n \r\n \r\n {{ company?.Name }}\r\n cancel\r\n \r\n \r\n \r\n \r\n {{ client.Name }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n User\r\n \r\n \r\n \r\n
\r\n
\r\n Company\r\n \r\n \r\n \r\n
\r\n
\r\n Role\r\n \r\n \r\n \r\n
\r\n
\r\n Status\r\n \r\n \r\n Active\r\n Inactive\r\n \r\n \r\n
\r\n
\r\n Reason\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n\r\n
\r\n Upload Company Logo\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Upload Contact CSV File\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ method }} Burden Rate \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Employment Type*\r\n \r\n \r\n \r\n {{ type.Key }}\r\n \r\n \r\n \r\n Employment Type is Required\r\n \r\n \r\n
\r\n
\r\n Burden Rate %\r\n \r\n \r\n Burden Rate % is required \r\n \r\n
\r\n
\r\n PayRate Range $*\r\n Condition\r\n \r\n \r\n {{ operator.Value }}\r\n \r\n Condition is required\r\n \r\n
\r\n
\r\n Value\r\n \r\n \r\n\r\n \r\n Pay Rate Value is required\r\n \r\n \r\n
\r\n
\r\n Year*\r\n \r\n \r\n Year is required \r\n \r\n Year is Invalid.\r\n \r\n \r\n Year should be less than current year.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n No Accounting Manager\r\n close\r\n
\r\n
\r\n No Accounting managers found, Do you want to create one?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Activate Account Manager\r\n close\r\n
\r\n
\r\n
\r\n Select Account Manager to change status as Active\r\n
\r\n
\r\n \r\n \r\n \r\n {{ user?.FirstName }} {{ user?.LastName }}\r\n \r\n User is Required.\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n SimpleChanges,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n TemplateRef,\r\n} from '@angular/core'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { Router } from '@angular/router'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport { CompanyService } from '../company.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { CompanyDialogTypes } from '../company-constants'\r\nimport { COMPANY_ADD_ACTION, COMPANY_DELETE_ACTION, COMPANY_EDIT_ACTION } from 'src/app/enums/userActions'\r\n\r\n@Component({\r\n selector: 'company-documents-view',\r\n templateUrl: './company-documents-view.component.html',\r\n styleUrls: ['./company-documents-view.component.scss'],\r\n})\r\nexport class CompanyDocumentsViewComponent implements OnInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator\r\n @Input() location: string\r\n @Input() dialogRef: TemplateRef\r\n @Input() companyDocs: any\r\n @Output() deleteDoc: EventEmitter = new EventEmitter()\r\n dataSource: any\r\n deleteIconSrc = Common.RedDeleteIcon\r\n documentDisplayColumn = ['FileName', 'CategoryName', 'Action']\r\n isLoading: boolean = false\r\n documentTypes: DocumentType[] = []\r\n companyAddAction = COMPANY_ADD_ACTION\r\n companyDeleteAction = COMPANY_DELETE_ACTION\r\n companyEditAction = COMPANY_EDIT_ACTION\r\n constructor(\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private ref: ChangeDetectorRef,\r\n private dialogService: DialogService,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n private commonMatDialogService: CommonMatDialogService\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.companyDocs?.currentValue) {\r\n this.dataSource = new MatTableDataSource(changes.companyDocs?.currentValue)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n } else {\r\n this.dataSource = new MatTableDataSource()\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dataSource = new MatTableDataSource(this.companyDocs)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n if (this.location == FormLocation.Tab) {\r\n this.getCompanyDocs()\r\n this.getDocumentsTypes()\r\n }\r\n }\r\n\r\n getCompanyDocs() {\r\n // if (!this.companyDocs) {\r\n this.isLoading = true\r\n this.companyService.GetDocuments(CommonData.activeCompany.CompanyId).subscribe(\r\n (res) => {\r\n this.isLoading = false\r\n this.companyDocs = res\r\n this.dataSource = new MatTableDataSource(this.companyDocs)\r\n },\r\n (error) => {\r\n this.isLoading = false\r\n }\r\n )\r\n // }\r\n }\r\n\r\n getDocumentsTypes() {\r\n this.companyService.GetDocumentType().subscribe((res: []) => {\r\n this.documentTypes = res\r\n })\r\n }\r\n\r\n delete(doc) {\r\n const index = this.companyDocs.indexOf(doc, 0)\r\n this.dialogService.open()\r\n\r\n this.dialogService.onDialogClosed().subscribe((confirmed) => {\r\n if (confirmed) {\r\n if (doc.CompanyCertificationId > 0) {\r\n this.companyService.deleteCompanyDocument(doc).subscribe((res) => {\r\n if (res) {\r\n this.getCompanyDocs()\r\n this.notifyService.showSuccess('Deleted successfully!', 'Company Documents')\r\n } else {\r\n this.notifyService.showError('Document failed to delete!', 'Company Documents')\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n editCompany() {\r\n this.router.navigate(['/company/edit'])\r\n Common.companyStepIndex = 4\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n openDocumentDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Add_Documents,\r\n companyDocs: this.companyDocs,\r\n documentTypes: this.documentTypes,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Add_Documents) {\r\n const document = new FormData()\r\n this.saveDocument(data.document)\r\n }\r\n })\r\n }\r\n\r\n saveDocument(document) {\r\n this.companyService.UploadCompanyDocuments(document).subscribe((res) => {\r\n if (res) {\r\n this.getCompanyDocs()\r\n this.notifyService.showSuccess('Successfully uploaded!', 'Company Documents')\r\n } else {\r\n this.notifyService.showError('Could not parse the file!', 'Company Documents')\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n Documents\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Name\r\n {{ element.FileName }}\r\n Document Type\r\n {{ element.CategoryName }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No Documents available\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n ElementRef,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n TemplateRef,\r\n NgZone,\r\n} from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport { CompanyService } from '../company.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport icDelete from '@iconify/icons-ic/twotone-delete'\r\nimport icSearch from '@iconify/icons-ic/twotone-search'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { FormLocation } from 'src/app/common/common'\r\nimport { UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogTypes } from '../company-constants'\r\n\r\n@Component({\r\n selector: 'company-documents',\r\n templateUrl: './company-documents.component.html',\r\n styleUrls: ['./company-documents.component.scss'],\r\n})\r\nexport class CompanyDocumentsComponent implements OnInit {\r\n icDelete = icDelete\r\n icSearch = icSearch\r\n\r\n documentTypes: any\r\n docSearchText = ''\r\n description: string\r\n document: any\r\n activeCompany = CommonData.activeCompany\r\n selectedDocumentType: any\r\n companyDocs: any\r\n isEdit: boolean\r\n companyCertificationId: any\r\n file: any\r\n loading: boolean = false\r\n uploadDialog: any\r\n formDialog: any\r\n isAddingDocument = false\r\n\r\n @ViewChild('inputDocument', { static: false })\r\n InputVar: ElementRef\r\n @ViewChild('addDocumentsDialog') tempref: TemplateRef\r\n\r\n @Input() stepper: any\r\n @Input() location: any\r\n @Output() companyAdded: EventEmitter = new EventEmitter()\r\n vendor = CompanyType.Vendor\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n public dialog: MatDialog,\r\n private dialogService: DialogService,\r\n private notifyService: NotificationService,\r\n private ngZone: NgZone,\r\n private commonMatDialogService: CommonMatDialogService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (this.location != FormLocation.Tab) {\r\n this.companyService.GetDocumentType().subscribe((res) => {\r\n this.documentTypes = res\r\n this.getCompanyDocuments()\r\n })\r\n }\r\n }\r\n\r\n getCompanyDocuments() {\r\n this.isAddingDocument = true\r\n this.companyService.GetDocuments(this.activeCompany?.CompanyId).subscribe((res) => {\r\n this.companyDocs = res\r\n this.isAddingDocument = false\r\n })\r\n }\r\n\r\n delete(doc: any) {\r\n this.dialogService.open()\r\n\r\n this.dialogService.onDialogClosed().subscribe((confirmed) => {\r\n if (confirmed) {\r\n if (doc.CompanyCertificationId > 0) {\r\n this.companyService.deleteCompanyDocument(doc).subscribe((res) => {\r\n if (res) {\r\n this.getCompanyDocuments()\r\n this.notifyService.showSuccess('Deleted successfully!', 'Company Documents')\r\n } else {\r\n this.notifyService.showError('Document failed to delete!', 'Company Documents')\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n gotoNext() {\r\n this.companyAdded.emit(4)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n\r\n this.stepper.next()\r\n })\r\n }\r\n gotoPrev() {\r\n this.stepper.previous()\r\n }\r\n\r\n openDocumentDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Add_Documents,\r\n companyDocs: this.companyDocs,\r\n documentTypes: this.documentTypes,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Add_Documents) {\r\n const document = new FormData()\r\n this.saveDocument(data.document)\r\n }\r\n })\r\n }\r\n\r\n saveDocument(document) {\r\n this.companyService.UploadCompanyDocuments(document).subscribe((res) => {\r\n if (res) {\r\n this.getCompanyDocuments()\r\n this.notifyService.showSuccess('Successfully uploaded!', 'Company Documents')\r\n } else {\r\n this.notifyService.showError('Could not parse the file!', 'Company Documents')\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Documents
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n TemplateRef,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n SimpleChanges,\r\n OnChanges,\r\n OnDestroy,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n Renderer2,\r\n} from '@angular/core'\r\nimport { CompanyService } from '../company.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table'\r\nimport { MarkupTypeIds } from 'src/app/enums/markupType'\r\nimport { JobConfigType } from 'src/app/enums/jobConfigType'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { JobSettingType } from 'src/app/enums/jobSettingType'\r\nimport { ValueType } from 'src/app/enums/valueType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iCategory } from 'src/app/models/common.model'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport { Observable, Subject, forkJoin } from 'rxjs'\r\nimport { LegalType } from 'src/app/models/job.model'\r\nimport { CompanyDialogTypes } from '../company-constants'\r\nimport { CategoryValues, JobCategorySetting } from 'src/app/models/category'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { COMPANY_ADD_ACTION, COMPANY_DELETE_ACTION, COMPANY_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport { TypeOfVariable } from 'src/app/consultant/consultant-constants'\r\n\r\n@Component({\r\n selector: 'company-jobsetting-view',\r\n templateUrl: './company-jobsetting-view.component.html',\r\n styleUrls: ['./company-jobsetting-view.component.scss'],\r\n})\r\nexport class CompanyJobsettingViewComponent implements OnInit, OnChanges, OnDestroy {\r\n activeCompany = CommonData.activeCompany\r\n deleteIconSrc = Common.RedDeleteIcon\r\n editIconSrc = Common.EditIcon\r\n @Input() location: string\r\n @Input() dialogRef: TemplateRef\r\n @Input() jobCategoryList: any\r\n @Input() configChanged: any\r\n @Output() updatejobCategory: EventEmitter = new EventEmitter()\r\n @Output() deletejobCategory: EventEmitter = new EventEmitter()\r\n @ViewChild('jobSettingTable') matTable: MatTable\r\n private destroy$: Subject = new Subject()\r\n @ViewChildren('bgChecks', { read: ElementRef }) viewChildren: QueryList\r\n dataSource = new MatTableDataSource([])\r\n configDataSource = new MatTableDataSource([])\r\n jobPercentageDataSource = new MatTableDataSource([])\r\n configdata: any\r\n configDataTest: any = []\r\n changeConfig: boolean\r\n markupType = MarkupTypeIds\r\n isJobConfigLoading: boolean = false\r\n isJobSettingLoading: boolean = false\r\n vendor = CompanyType.Vendor\r\n clientCompanyType = CompanyType.Client\r\n filterValue: string\r\n\r\n @Input() refresh: number = 0\r\n @Input() categories: iCategory[]\r\n isAddGenSettingEnabled: boolean = true\r\n\r\n jobCategoryDisplayColumn = ['CategoryName', 'MaxSubmit', 'W2', 'C2C', 'C2O', 'IsVendorAllowed', 'Action']\r\n\r\n jobPercentageRangeColumn = ['salary', 'Action']\r\n jobConfigColumn = [\r\n 'ApprovalCheck',\r\n 'BackgroundCheck',\r\n 'WorkAuthorization',\r\n 'NoOfDays',\r\n 'MarkupType',\r\n 'RCP',\r\n 'Action',\r\n ]\r\n @Input() legalTypes: any\r\n @Input() backgroundChecks: any\r\n markupTypeEnum: any\r\n isAllCategorySelected: boolean = false\r\n salaryRangeArray: any = []\r\n companyAddAction = COMPANY_ADD_ACTION\r\n companyEditAction = COMPANY_EDIT_ACTION\r\n companyDeleteAction = COMPANY_DELETE_ACTION\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n private dialog: MatDialog,\r\n private cd: ChangeDetectorRef,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private notifyService: NotificationService,\r\n private dialogService: DialogService,\r\n private renderer: Renderer2\r\n ) {}\r\n\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n ngOnInit(): void {\r\n if (this.location == FormLocation.Tab) {\r\n this.getDataForJobSettings()\r\n }\r\n this.getJobCategory()\r\n this.getConfig()\r\n this.markupTypeEnum = Object.keys(this.markupType).filter(Number)\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes &&\r\n changes.refresh?.currentValue &&\r\n changes.refresh?.currentValue > 0 &&\r\n changes.refresh?.currentValue != changes.refresh?.previousValue\r\n ) {\r\n this.getJobCategory()\r\n this.getConfig()\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n }\r\n\r\n getCategories() {\r\n return this.companyService.GetAllJobCategories() as Observable\r\n }\r\n\r\n getDataForJobSettings() {\r\n forkJoin({\r\n legalTypes: this.getLegalTypes(),\r\n backgroundCheck: this.getBackgroundChecks(),\r\n categories: this.getCategories(),\r\n })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(({ legalTypes, backgroundCheck, categories }) => {\r\n this.legalTypes = legalTypes\r\n this.backgroundChecks = backgroundCheck\r\n this.categories = categories\r\n })\r\n }\r\n\r\n getJobCategory() {\r\n this.isJobSettingLoading = true\r\n this.companyService\r\n .GetJobCategory(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (jobCategory: JobCategorySetting[]) => {\r\n if (jobCategory) {\r\n this.isAllCategorySelected = jobCategory.filter(\r\n (category) => category.CategoryID === CategoryValues.CategoryTypeID_ALL\r\n ).length\r\n ? true\r\n : false\r\n this.jobCategoryList = [...jobCategory]\r\n this.isJobSettingLoading = false\r\n let newData = [...jobCategory]\r\n let data = newData.slice()\r\n this.dataSource.data = data\r\n this.cd.detectChanges()\r\n }\r\n },\r\n (error) => {\r\n this.isJobSettingLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company Job Category')\r\n }\r\n )\r\n }\r\n\r\n setJobCategory(JobData) {\r\n this.isJobSettingLoading = false\r\n let newData = [...JobData]\r\n let data = newData.slice()\r\n this.dataSource.data = data\r\n }\r\n\r\n tableDataHandler(data) {\r\n if (data.length > 0) {\r\n let temp = []\r\n let result = new Array(5)\r\n data.forEach((item) => {\r\n if (item.LookupID === JobSettingType.CandidateApprovalNeeded) {\r\n result[0] = item.Value === 'true' ? 'Yes' : 'No'\r\n } else if (item.LookupID === JobSettingType.BakgroundCheck) {\r\n result[1] = item.Value\r\n } else if (item.LookupID === JobSettingType.WorkAuthorizarion) {\r\n result[2] = item.Value\r\n } else if (item.LookupID === JobSettingType.DaysToCloseFromHoldToClose) {\r\n result[3] = item.Value\r\n } else if (item.LookupID === JobSettingType.MarkupType) {\r\n result[4] = item.Value\r\n } else if (item.LookupID === JobSettingType.SALARY_RANGE_PERCENTAGE) {\r\n if (item.Value !== TypeOfVariable.NaN) result[5] = Number(item.Value)\r\n else result[5] = 0\r\n } else if (item.LookupID === JobSettingType.LOWER_SUBMISSION_WITHDRAWAL_COUNT) {\r\n result[6] = item.Value === 'true' ? true : false\r\n }\r\n })\r\n temp.push(result)\r\n\r\n return temp\r\n }\r\n }\r\n\r\n getLegalTypes() {\r\n return this.companyService.getLegalTypes() as Observable\r\n }\r\n\r\n getBackgroundChecks() {\r\n return this.companyService.getBackgroundChecks() as Observable\r\n }\r\n\r\n getConfig() {\r\n this.isJobConfigLoading = true\r\n this.companyService\r\n .getConfig(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res) {\r\n if (res.length > 0) this.isAddGenSettingEnabled = false\r\n this.isJobConfigLoading = false\r\n this.configDataSource.data = this.tableDataHandler(res)\r\n this.cd.detectChanges()\r\n }\r\n },\r\n (error) => {\r\n this.isJobConfigLoading = false\r\n this.notifyService.showError('Error while getting data', 'Company General Settings')\r\n }\r\n )\r\n }\r\n\r\n delete(value) {\r\n this.deletejobCategory.emit(value)\r\n }\r\n\r\n dialogCloseHandler() {\r\n this.dialog.closeAll()\r\n }\r\n\r\n editGenJob(data?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Job_General_Settings,\r\n backgroundChecks: this.backgroundChecks,\r\n formData: data,\r\n legalTypes: this.legalTypes,\r\n markupTypeEnum: this.markupTypeEnum,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Job_General_Settings) {\r\n this.addConfig(data)\r\n }\r\n })\r\n }\r\n\r\n addConfig(data) {\r\n const configList = []\r\n if (data.formData.jobConfigMarkupTypeValue) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = 'true'\r\n ConfigValue.LookupID = 263\r\n ConfigValue.ValueTypeID = ValueType.Number\r\n ConfigValue.ObjectID = this.activeCompany?.CompanyId\r\n ;(ConfigValue.ObjectTypeID = ObjectType.Company),\r\n (ConfigValue.ObjectID = this.activeCompany?.CompanyId),\r\n (ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId),\r\n (ConfigValue.CreatedBy = Common.userProfile.userID),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.UpdatedBy = Common.userProfile.userID),\r\n configList.push(ConfigValue)\r\n }\r\n if (data.formData.pendingApprovalVal === 1) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = 'true'\r\n ConfigValue.LookupID = 263\r\n ConfigValue.ValueTypeID = ValueType.boolean\r\n ConfigValue.ObjectTypeID = ObjectType.Company\r\n ConfigValue.ObjectID = this.activeCompany?.CompanyId\r\n ;(ConfigValue.ObjectID = this.activeCompany?.CompanyId),\r\n (ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId),\r\n (ConfigValue.CreatedBy = Common.userProfile.userID),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.UpdatedBy = Common.userProfile.userID),\r\n configList.push(ConfigValue)\r\n }\r\n if (data.formData.pendingApprovalVal === 2) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = 'false'\r\n ConfigValue.LookupID = JobSettingType.CandidateApprovalNeeded\r\n ConfigValue.ValueTypeID = ValueType.boolean\r\n ConfigValue.ObjectTypeID = ObjectType.Company\r\n ConfigValue.ObjectID = this.activeCompany?.CompanyId\r\n ;(ConfigValue.ObjectID = this.activeCompany?.CompanyId),\r\n (ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId),\r\n (ConfigValue.CreatedBy = Common.userProfile.userID),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.UpdatedBy = Common.userProfile.userID),\r\n configList.push(ConfigValue)\r\n }\r\n if (data.formData.days) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = data.formData.days.toString()\r\n ConfigValue.LookupID = JobSettingType.DaysToCloseFromHoldToClose\r\n ConfigValue.ValueTypeID = ValueType.Number\r\n ConfigValue.ObjectTypeID = ObjectType.Company\r\n ;(ConfigValue.ObjectID = this.activeCompany?.CompanyId),\r\n (ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId),\r\n (ConfigValue.CreatedBy = Common.userProfile.userID),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.UpdatedBy = Common.userProfile.userID),\r\n configList.push(ConfigValue)\r\n }\r\n if (data.bg_list && data.bg_list.length > 0) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = data.bg_list.toString()\r\n ConfigValue.LookupID = JobSettingType.BakgroundCheck\r\n ConfigValue.ValueTypeID = ValueType.Text\r\n ConfigValue.ObjectTypeID = ObjectType.Company\r\n ;(ConfigValue.ObjectID = this.activeCompany?.CompanyId),\r\n (ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId),\r\n (ConfigValue.CreatedBy = Common.userProfile.userID),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.UpdatedBy = Common.userProfile.userID),\r\n configList.push(ConfigValue)\r\n }\r\n if (data.work_List && data.work_List.length > 0) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = data.work_List.toString()\r\n ConfigValue.LookupID = JobSettingType.WorkAuthorizarion\r\n ConfigValue.ValueTypeID = ValueType.Text\r\n ConfigValue.ObjectTypeID = ObjectType.Company\r\n ;(ConfigValue.ObjectID = this.activeCompany?.CompanyId),\r\n (ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId),\r\n (ConfigValue.CreatedBy = Common.userProfile.userID),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.UpdatedBy = Common.userProfile.userID),\r\n configList.push(ConfigValue)\r\n }\r\n if (data.formData?.hasOwnProperty('salaryRange')) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = data.formData.salaryRange.toString()\r\n ConfigValue.LookupID = JobSettingType.SALARY_RANGE_PERCENTAGE\r\n ConfigValue.ValueTypeID = ValueType.Number\r\n ConfigValue.ObjectTypeID = ObjectType.Company\r\n ;(ConfigValue.ObjectID = this.activeCompany?.CompanyId),\r\n (ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId),\r\n (ConfigValue.CreatedBy = Common.userProfile.userID),\r\n (ConfigValue.CreatedDate = new Date()),\r\n (ConfigValue.IsActive = true),\r\n (ConfigValue.UpdatedDate = new Date()),\r\n (ConfigValue.UpdatedBy = Common.userProfile.userID),\r\n configList.push(ConfigValue)\r\n }\r\n if (data.formData?.hasOwnProperty('Value')) {\r\n const ConfigValue: any = {}\r\n ConfigValue.Value = data.formData.Value ? 'true' : 'false'\r\n ConfigValue.LookupID = JobSettingType.LOWER_SUBMISSION_WITHDRAWAL_COUNT\r\n ConfigValue.ValueTypeID = ValueType.boolean\r\n ConfigValue.ObjectID = this.activeCompany?.CompanyId\r\n ConfigValue.ObjectTypeID = ObjectType.Company\r\n ConfigValue.ConfigTypeID = JobSettingType.JobSettingTypeId\r\n ConfigValue.CreatedBy = Common.userProfile.userID\r\n ConfigValue.CreatedDate = new Date()\r\n ConfigValue.IsActive = true\r\n ConfigValue.UpdatedDate = new Date()\r\n ConfigValue.UpdatedBy = Common.userProfile.userID\r\n configList.push(ConfigValue)\r\n }\r\n let rq = {\r\n Configs: configList,\r\n }\r\n if (rq.Configs.length < 1) {\r\n this.notifyService.showError('Add at least one value!', 'Company Job Setting')\r\n return\r\n }\r\n this.companyService\r\n .AddConfigValue(rq)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.getConfig()\r\n if (res) {\r\n this.notifyService.showSuccess('Configuration added successfully!', 'Company Job Setting')\r\n } else {\r\n this.notifyService.showError('Configuration failed to add!', 'Company Job Setting')\r\n }\r\n })\r\n }\r\n\r\n editCategorySettings(data?) {\r\n if (data) {\r\n const i = this.jobCategoryList.findIndex((x) => x.CategoryName === data.CategoryName)\r\n var editArray = [...this.jobCategoryList]\r\n editArray.splice(i, 1)\r\n }\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Job_Category_Settings,\r\n formData: data,\r\n categories: this.categories,\r\n jobCategoryList: data ? editArray : this.jobCategoryList,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Job_Category_Settings) {\r\n this.addJobCategoryData(data)\r\n }\r\n })\r\n }\r\n\r\n deleteJC(jobCategory) {\r\n this.dialogService.open()\r\n\r\n this.dialogService.onDialogClosed().subscribe((confirmed) => {\r\n if (confirmed) {\r\n this.companyService\r\n .deleteJobCategory(jobCategory.CompanyJobCategorySettingID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.getJobCategory()\r\n this.notifyService.showSuccess('Job Category deleted successfully!', 'Company Job Setting')\r\n } else {\r\n this.notifyService.showError('Job Category failed to delete!', 'Company Job Setting')\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n addJobCategoryData(jobCategory) {\r\n const markUpList = []\r\n markUpList.push(jobCategory.formData.C2C)\r\n markUpList.push(jobCategory.formData.C2O)\r\n markUpList.push(jobCategory.formData.W2)\r\n const JobCategory = {\r\n CompanyJobCategorySettingID: jobCategory.formData.CompanyJobCategorySettingID,\r\n CompanyID: this.activeCompany.CompanyId,\r\n CategoryID: jobCategory.formData.CategoryID,\r\n MaxSubmit: jobCategory.formData.MaxSubmit,\r\n IsVendorAllowed: jobCategory.formData.IsVendorAllowed,\r\n CreatedBy: jobCategory.formData.CreatedBy,\r\n CreatedDate: jobCategory.formData.CreatedDate,\r\n UpdatedBy: Common.userProfile.userID,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n let rq = {\r\n JobCategory: JobCategory,\r\n CategoryMarkups: markUpList,\r\n }\r\n\r\n this.companyService\r\n .AddJobCategory(rq)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.getJobCategory()\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess('Job Category added successfully!', 'Company Job Setting')\r\n } else {\r\n this.notifyService.showError('Job Category failed to add!', 'Company Job Setting')\r\n }\r\n })\r\n }\r\n\r\n // addUpdateSalaryRange() {\r\n // const dialogInstance = this.commonMatDialogService.open({\r\n // component: CompanyDialogComponent,\r\n // data: {\r\n // dialogName: CompanyDialogTypes.Salary_Range,\r\n // },\r\n // })\r\n // dialogInstance.afterClosed().subscribe((data) => {\r\n // const rangeOfSalary = data.salaryRange\r\n // this.salaryRangeArray.push({ salary: rangeOfSalary })\r\n // this.jobPercentageDataSource.data = [...this.salaryRangeArray]\r\n // })\r\n // }\r\n\r\n addUpdateSalaryRange(salary?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Salary_Range,\r\n formData: salary ?? null,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Salary_Range) {\r\n if (salary) {\r\n this.jobPercentageDataSource.data[0].salary = data.salaryRange\r\n } else {\r\n const rangeOfSalary = data.salaryRange\r\n this.salaryRangeArray.push({ salary: rangeOfSalary })\r\n this.jobPercentageDataSource.data = [...this.salaryRangeArray]\r\n }\r\n }\r\n })\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value.trim()\r\n this.filterValue = filterValue\r\n if (this.filterValue != null && this.filterValue != undefined) {\r\n this.viewChildren.forEach((Element: any) => {\r\n if (\r\n Element?.nativeElement?.innerText\r\n ?.trim()\r\n ?.toLowerCase()\r\n ?.includes(this.filterValue?.toLowerCase()) &&\r\n this.filterValue != ''\r\n ) {\r\n this.renderer?.addClass(Element.nativeElement, 'addClass')\r\n } else {\r\n this.renderer?.removeClass(Element.nativeElement, 'addClass')\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Add General Setting\r\n \r\n \r\n \r\n \r\n Add Job Category Setting\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
General Setting
\r\n
\r\n
\r\n
\r\n
\r\n
General Setting
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n RCPhelp\r\n \r\n \r\n {{ element[5] | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Approval Check\r\n \r\n {{ element[0] | nullValueReplace }}\r\n \r\n Background Check\r\n \r\n \r\n {{ bgCheck }},\r\n \r\n \r\n Work Authorization\r\n \r\n {{ element[2] | nullValueReplace }}\r\n \r\n Hold To close days\r\n \r\n {{ element[3] | nullValueReplace }}\r\n \r\n Markup Type\r\n \r\n {{ element[4] | nullValueReplace }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
Job Category Setting
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Job Category Setting\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Job Category\r\n {{ element?.CategoryName }}\r\n Max Submit\r\n {{ element?.MaxSubmit | nullValueReplace }}\r\n W2 Markup\r\n {{ element.W2?.Value != null ? element.W2?.Value + '%' : (element.W2?.Value | nullValueReplace) }}\r\n C2C Markup\r\n {{\r\n element.C2C?.Value != null ? element.C2C?.Value + '%' : (element.C2C?.Value | nullValueReplace)\r\n }}\r\n C2O Markup\r\n {{\r\n element.C2O?.Value != null ? element.C2O?.Value + '%' : (element.C2O?.Value | nullValueReplace)\r\n }}\r\n Vendor Allowed\r\n {{ element.IsVendorAllowed == true ? 'Yes' : 'No' }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n NgZone,\r\n TemplateRef,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n} from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CategoryValues, iCategory } from 'src/app/models/category'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport { CompanyService } from '../company.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MarkupTypeIds } from 'src/app/enums/markupType'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { JobSettingType } from 'src/app/enums/jobSettingType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { ValueType } from 'src/app/enums/valueType'\r\nimport { MarkupValues } from 'src/app/enums/markupValues'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { FormControl } from '@angular/forms'\r\nimport { CompanyJobsettingViewComponent } from '../company-jobsetting-view/company-jobsetting-view.component'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { CompanyDialogTypes, DynamicGrid, LegalType, SkillGrid } from '../company-constants'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs'\r\nimport { MatStepper } from '@angular/material/stepper'\r\n@Component({\r\n selector: 'company-jobsetting',\r\n templateUrl: './company-jobsetting.component.html',\r\n styleUrls: ['./company-jobsetting.component.scss'],\r\n})\r\nexport class CompanyJobsettingComponent implements OnInit, OnDestroy {\r\n dynamicArray: Array = []\r\n\r\n skillArray: Array = []\r\n\r\n isAddGenSettingEnabled: boolean = true\r\n visible = true\r\n selectable = true\r\n removable = true\r\n addOnBlur = true\r\n activeCompany = CommonData.activeCompany\r\n categories: iCategory[]\r\n legalTypes: LegalType[]\r\n backgroundChecks: any\r\n JobCategory: any\r\n Markup: any\r\n ConfigValue: any\r\n categorySearchText: string = ''\r\n days: any\r\n work_list: any[] = []\r\n Value: boolean = false\r\n bg_list: any[] = []\r\n markupTypeEnum: any\r\n jobConfigMarkupTypeValue: any\r\n markupType = MarkupTypeIds\r\n staffingCompanyType = CompanyType.StaffingCompany\r\n clientCompanyType = CompanyType.Client\r\n vendor = CompanyType.Vendor\r\n\r\n MarkupValue = {\r\n C2C: null,\r\n C2O: null,\r\n W2: null,\r\n }\r\n\r\n workList = new FormControl()\r\n markUpList: Array = []\r\n configList: Array = []\r\n maxNoSubmit: any\r\n jobCategoryList: any\r\n isEditJC: boolean = false\r\n vendorAllowed: any\r\n pendingApprovalVal: any\r\n configdata: any\r\n changeConfig: boolean = false\r\n isJobCatAlreadyAdded: any\r\n selectedJobCategory: any\r\n refreshCount: number = 0\r\n destroy$: Subject = new Subject()\r\n isAllCategorySelected: boolean = false\r\n\r\n @Input() stepper: MatStepper\r\n @Output() companyAdded: EventEmitter = new EventEmitter()\r\n @ViewChild(CompanyJobsettingViewComponent) companyJobSettingViewCompany: CompanyJobsettingViewComponent\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n public dialog: MatDialog,\r\n private dialogService: DialogService,\r\n private notifyService: NotificationService,\r\n private ngZone: NgZone,\r\n private cd: ChangeDetectorRef,\r\n private commonMatDialogService: CommonMatDialogService\r\n ) {}\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeCompany = CommonData.activeCompany\r\n this.markupTypeEnum = Object.keys(this.markupType).filter(Number)\r\n this.setDefaultJobCategory()\r\n this.setDefaultMarkUp()\r\n this.setDefaultConfigValue()\r\n this.getCategories()\r\n this.getLegalTypes()\r\n this.getBackgroundChecks()\r\n this.getConfig()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.next()\r\n }\r\n getJobCategory() {\r\n this.companyService\r\n .GetJobCategory(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((jobCategoryList) => {\r\n if (jobCategoryList) {\r\n this.isAllCategorySelected = jobCategoryList.filter(\r\n (category) => category.CategoryID === CategoryValues.CategoryTypeID_ALL\r\n ).length\r\n ? true\r\n : false\r\n this.jobCategoryList = [...jobCategoryList]\r\n }\r\n })\r\n }\r\n\r\n getConfig() {\r\n this.companyService\r\n .getConfig(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res.length > 0) {\r\n this.configdata = res\r\n this.isAddGenSettingEnabled = false\r\n }\r\n })\r\n }\r\n\r\n setDefaultConfigValue() {\r\n this.ConfigValue = {\r\n ConfigValueID: 0,\r\n ObjectTypeID: 0,\r\n ObjectID: this.activeCompany?.CompanyId,\r\n ConfigTypeID: JobSettingType.JobSettingTypeId,\r\n LookupID: null,\r\n ValueTypeID: null,\r\n Value: null,\r\n CreatedBy: Common.userProfile.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: null,\r\n UpdatedDate: null,\r\n IsActive: true,\r\n }\r\n }\r\n\r\n setDefaultMarkUp() {\r\n this.Markup = {\r\n CategoryMarkupID: 0,\r\n CompanyJobCategorySettingID: 0,\r\n LookupTypeID: null,\r\n Value: null,\r\n CreatedBy: Common.userProfile.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: null,\r\n UpdatedDate: null,\r\n IsActive: true,\r\n }\r\n }\r\n\r\n setDefaultJobCategory() {\r\n this.JobCategory = {\r\n CompanyJobCategorySettingID: 0,\r\n CompanyID: this.activeCompany?.CompanyId,\r\n CategoryID: null,\r\n MarkupType: null,\r\n MaxSubmit: null,\r\n IsVendorAllowed: true,\r\n CreatedBy: Common.userProfile.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: null,\r\n UpdatedDate: null,\r\n IsActive: true,\r\n }\r\n }\r\n\r\n getCategories() {\r\n this.companyService\r\n .GetAllJobCategories()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.categories = res as iCategory[]\r\n if (this.categories) {\r\n this.getJobCategory()\r\n }\r\n })\r\n }\r\n\r\n getLegalTypes() {\r\n this.companyService\r\n .getLegalTypes()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: LegalType[]) => {\r\n this.legalTypes = res\r\n })\r\n }\r\n\r\n getBackgroundChecks() {\r\n this.companyService\r\n .getBackgroundChecks()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.backgroundChecks = res\r\n })\r\n }\r\n\r\n onValueChange(val) {\r\n this.vendorAllowed = val\r\n if (val === 2) {\r\n this.JobCategory.IsVendorAllowed = false\r\n } else {\r\n this.JobCategory.IsVendorAllowed = true\r\n }\r\n }\r\n\r\n deleteJC(jobCategory) {\r\n this.dialogService.open()\r\n\r\n this.dialogService\r\n .onDialogClosed()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((confirmed) => {\r\n if (confirmed) {\r\n if (\r\n this.isEditJC &&\r\n this.JobCategory.CompanyJobCategorySettingID == jobCategory.CompanyJobCategorySettingID\r\n ) {\r\n this.notifyService.showError('Cannot Delete.Please save or reset value!', 'Company Job Setting')\r\n return\r\n }\r\n this.companyService\r\n .deleteJobCategory(jobCategory.CompanyJobCategorySettingID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.getJobCategory()\r\n this.refreshCount++\r\n this.notifyService.showSuccess(\r\n 'Job Category deleted successfully!',\r\n 'Company Job Setting'\r\n )\r\n } else {\r\n this.notifyService.showError('Job Category failed to delete!', 'Company Job Setting')\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n testChange(event) {\r\n console.log(event)\r\n }\r\n editJC(jobCategory) {\r\n if (Array.isArray(jobCategory)) {\r\n this.pendingApprovalVal = jobCategory[0] === 'Yes' ? 1 : 2\r\n this.days = jobCategory[3]\r\n this.backgroundChecks.forEach((item) => {\r\n if (jobCategory[1].split(',').includes(item.ValueName)) {\r\n this.bg_list.push(item.LookupID)\r\n }\r\n })\r\n\r\n this.legalTypes.forEach((item) => {\r\n if (jobCategory[2].split(',').includes(item.ValueName)) {\r\n this.work_list.push(item.LookupID)\r\n }\r\n })\r\n this.jobConfigMarkupTypeValue = jobCategory[4] == 'Max Markup' ? 202 : 203\r\n console.log(this.jobConfigMarkupTypeValue, 'markup type')\r\n this.companyJobSettingViewCompany.getConfig()\r\n }\r\n this.isEditJC = true\r\n this.markUpList = []\r\n if (jobCategory.C2C) {\r\n this.markUpList.push(jobCategory.C2C)\r\n this.MarkupValue.C2C = jobCategory.C2C.Value\r\n }\r\n if (jobCategory.C2O) {\r\n this.markUpList.push(jobCategory.C2O)\r\n this.MarkupValue.C2O = jobCategory.C2O.Value\r\n }\r\n if (jobCategory.W2) {\r\n this.markUpList.push(jobCategory.W2)\r\n this.MarkupValue.W2 = jobCategory.W2.Value\r\n }\r\n this.refreshCount++\r\n this.JobCategory = {\r\n CompanyJobCategorySettingID: jobCategory.CompanyJobCategorySettingID,\r\n CompanyID: this.activeCompany.CompanyId,\r\n CategoryID: jobCategory.CategoryID,\r\n MaxSubmit: jobCategory.MaxSubmit,\r\n IsVendorAllowed: jobCategory.IsVendorAllowed,\r\n CreatedBy: jobCategory.CreatedBy,\r\n CreatedDate: jobCategory.CreatedDate,\r\n UpdatedBy: Common.userProfile.userID,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n this.maxNoSubmit = jobCategory.MaxSubmit\r\n this.categorySearchText = jobCategory.CategoryName\r\n if (jobCategory.IsVendorAllowed != null) {\r\n this.vendorAllowed = jobCategory.IsVendorAllowed ? 1 : 2\r\n } else {\r\n this.vendorAllowed = null\r\n }\r\n this.selectedJobCategory = {\r\n Name: jobCategory.CategoryName,\r\n }\r\n }\r\n\r\n selectedCategory(cat) {\r\n this.selectedJobCategory = cat\r\n this.JobCategory.CategoryID = cat.CategoryID\r\n }\r\n\r\n onPendingApproval(val) {\r\n this.pendingApprovalVal = val\r\n }\r\n\r\n markupTypeChange(markupValue) {\r\n this.jobConfigMarkupTypeValue = markupValue\r\n }\r\n\r\n addJobCategory() {\r\n // will need\r\n // if (!this.MarkupValue.C2C && !this.MarkupValue.C2O && !this.MarkupValue.W2) {\r\n // this.notifyService.showError('Please add atleast one of C2C ,C2O or W2!', 'Company Job Setting')\r\n // return\r\n // }\r\n // if (this.maxNoSubmit && this.maxNoSubmit % 1 != 0) {\r\n // this.notifyService.showError('Please give only integer value!', 'Company Job Setting')\r\n // return\r\n // }\r\n if (this.maxNoSubmit) {\r\n this.JobCategory.MaxSubmit = this.maxNoSubmit\r\n }\r\n if (!this.isEditJC) {\r\n this.Markup.LookupTypeID = MarkupValues.C2C\r\n this.Markup.Value = this.MarkupValue.C2C\r\n this.markUpList.push(this.Markup)\r\n this.setDefaultMarkUp()\r\n this.Markup.LookupTypeID = MarkupValues.C20\r\n this.Markup.Value = this.MarkupValue.C2O\r\n this.markUpList.push(this.Markup)\r\n this.setDefaultMarkUp()\r\n\r\n this.Markup.LookupTypeID = MarkupValues.W2\r\n this.Markup.Value = this.MarkupValue.W2\r\n this.markUpList.push(this.Markup)\r\n this.setDefaultMarkUp()\r\n } else {\r\n this.markUpList.forEach((x) => {\r\n if (x.LookupTypeID == MarkupValues.C2C) {\r\n x.Value = this.MarkupValue.C2C\r\n }\r\n if (x.LookupTypeID == MarkupValues.C20) {\r\n x.Value = this.MarkupValue.C2O\r\n }\r\n if (x.LookupTypeID == MarkupValues.W2) {\r\n x.Value = this.MarkupValue.W2\r\n }\r\n })\r\n }\r\n let rq = {\r\n JobCategory: this.JobCategory,\r\n CategoryMarkups: this.markUpList,\r\n }\r\n this.companyService\r\n .AddJobCategory(rq)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.resetJobCategory()\r\n this.getJobCategory()\r\n this.refreshCount++\r\n this.cd.detectChanges()\r\n this.notifyService.showSuccess('Job Category added successfully!', 'Company Job Setting')\r\n } else {\r\n this.markUpList = []\r\n this.notifyService.showError('Job Category failed to add!', 'Company Job Setting')\r\n }\r\n })\r\n }\r\n\r\n resetJobCategory() {\r\n this.dialog.closeAll()\r\n this.isEditJC = false\r\n this.markUpList = []\r\n this.setDefaultMarkUp()\r\n this.setDefaultJobCategory()\r\n this.MarkupValue = {\r\n C2C: null,\r\n C2O: null,\r\n W2: null,\r\n }\r\n this.categorySearchText = ''\r\n this.maxNoSubmit = null\r\n this.vendorAllowed = null\r\n this.selectedJobCategory = null\r\n this.isJobCatAlreadyAdded = false\r\n this.JobCategory.IsVendorAllowed = null\r\n }\r\n\r\n resetConfig() {\r\n this.dialog.closeAll()\r\n this.pendingApprovalVal = null\r\n this.days = null\r\n this.bg_list = []\r\n this.work_list = []\r\n this.Value = false\r\n this.jobConfigMarkupTypeValue = null\r\n this.setDefaultConfigValue()\r\n }\r\n\r\n addConfig() {\r\n if (this.days != null && this.days % 1 != 0) {\r\n this.notifyService.showError('Please give only integer value!', 'Company Job Setting')\r\n return\r\n }\r\n if (this.jobConfigMarkupTypeValue) {\r\n this.ConfigValue.Value = 'true'\r\n this.ConfigValue.LookupID = 263\r\n this.ConfigValue.ValueTypeID = ValueType.Number\r\n this.ConfigValue.ObjectTypeID = this.activeCompany?.CompanyID\r\n this.configList.push(this.ConfigValue)\r\n this.setDefaultConfigValue()\r\n }\r\n if (this.pendingApprovalVal === 1) {\r\n this.ConfigValue.Value = 'true'\r\n this.ConfigValue.LookupID = 263\r\n this.ConfigValue.ValueTypeID = ValueType.boolean\r\n this.ConfigValue.ObjectTypeID = this.activeCompany?.CompanyID\r\n this.configList.push(this.ConfigValue)\r\n this.setDefaultConfigValue()\r\n }\r\n if (this.pendingApprovalVal === 2) {\r\n this.ConfigValue.Value = 'false'\r\n this.ConfigValue.LookupID = JobSettingType.CandidateApprovalNeeded\r\n this.ConfigValue.ValueTypeID = ValueType.boolean\r\n this.ConfigValue.ObjectTypeID = ObjectType.Company\r\n this.configList.push(this.ConfigValue)\r\n this.setDefaultConfigValue()\r\n }\r\n if (this.days) {\r\n this.ConfigValue.Value = this.days.toString()\r\n this.ConfigValue.LookupID = JobSettingType.DaysToCloseFromHoldToClose\r\n this.ConfigValue.ValueTypeID = ValueType.Number\r\n this.ConfigValue.ObjectTypeID = ObjectType.Company\r\n this.configList.push(this.ConfigValue)\r\n this.setDefaultConfigValue()\r\n }\r\n if (this.bg_list && this.bg_list.length > 0) {\r\n this.ConfigValue.Value = this.bg_list.toString()\r\n this.ConfigValue.LookupID = JobSettingType.BakgroundCheck\r\n this.ConfigValue.ValueTypeID = ValueType.Text\r\n this.ConfigValue.ObjectTypeID = ObjectType.Company\r\n this.configList.push(this.ConfigValue)\r\n this.setDefaultConfigValue()\r\n }\r\n if (this.work_list && this.work_list.length > 0) {\r\n this.ConfigValue.Value = this.work_list.toString()\r\n this.ConfigValue.LookupID = JobSettingType.WorkAuthorizarion\r\n this.ConfigValue.ValueTypeID = ValueType.Text\r\n this.ConfigValue.ObjectTypeID = ObjectType.Company\r\n this.configList.push(this.ConfigValue)\r\n this.setDefaultConfigValue()\r\n }\r\n if (this.Value) {\r\n this.ConfigValue.Value = this.Value ? 'true' : 'false'\r\n this.ConfigValue.LookupID = JobSettingType.LOWER_SUBMISSION_WITHDRAWAL_COUNT\r\n this.ConfigValue.ValueTypeID = ValueType.boolean\r\n this.ConfigValue.ObjectTypeID = ObjectType.Company\r\n this.configList.push(this.ConfigValue)\r\n this.setDefaultConfigValue()\r\n }\r\n let rq = {\r\n Configs: this.configList,\r\n }\r\n if (rq.Configs.length < 1) {\r\n this.notifyService.showError('Add atleast one value!', 'Company Job Setting')\r\n return\r\n }\r\n this.companyService\r\n .AddConfigValue(rq)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.changeConfig = !this.changeConfig\r\n this.days = undefined\r\n this.bg_list = []\r\n this.work_list = []\r\n this.Value = false\r\n this.pendingApprovalVal = null\r\n this.jobConfigMarkupTypeValue = null\r\n this.getConfig()\r\n this.configList = []\r\n this.setDefaultConfigValue()\r\n this.dialog.closeAll()\r\n this.refreshCount++\r\n this.notifyService.showSuccess('Configuration added successfully!', 'Company Job Setting')\r\n } else {\r\n this.notifyService.showError('Configuration failed to add!', 'Company Job Setting')\r\n }\r\n })\r\n }\r\n\r\n openDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '750px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n openGenJobSettings() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Job_General_Settings,\r\n backgroundChecks: this.backgroundChecks,\r\n legalTypes: this.legalTypes,\r\n markupTypeEnum: this.markupTypeEnum,\r\n Value: this.Value,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Job_General_Settings) {\r\n this.jobConfigMarkupTypeValue = data.formData.jobConfigMarkupTypeValue\r\n this.pendingApprovalVal = data.formData.pendingApprovalVal\r\n this.days = data.formData.days\r\n this.bg_list = data.bg_list\r\n this.work_list = data.work_List\r\n this.Value = data.formData.Value\r\n this.addConfig()\r\n }\r\n })\r\n }\r\n\r\n openCategoryJobSettings() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Job_Category_Settings,\r\n categories: this.categories,\r\n jobCategoryList: this.jobCategoryList,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Job_Category_Settings) {\r\n this.setDefaultJobCategory()\r\n this.JobCategory.CategoryName = data?.formData?.CategoryName\r\n this.JobCategory.CategoryID = data.formData?.CategoryID\r\n this.JobCategory.IsVendorAllowed = data.formData?.IsVendorAllowed\r\n this.MarkupValue.C2C = data.formData.C2C?.Value\r\n this.MarkupValue.C2O = data.formData.C2O?.Value\r\n this.MarkupValue.W2 = data.formData.W2?.Value\r\n this.maxNoSubmit = data.formData.MaxSubmit\r\n this.addJobCategory()\r\n }\r\n })\r\n }\r\n\r\n gotoNext() {\r\n this.companyAdded.emit(5)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.next()\r\n })\r\n }\r\n gotoPrev() {\r\n this.stepper.previous()\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Next\r\n \r\n \r\n Finish\r\n \r\n
\r\n","import { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'\r\nimport { BehaviorSubject, combineLatest, forkJoin, Observable, ReplaySubject, Subject, Subscription } from 'rxjs'\r\nimport { Customer } from './interfaces/customer.model'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\n\r\nimport { Router } from '@angular/router'\r\nimport { UntilDestroy } from '@ngneat/until-destroy'\r\nimport { filter, first, map, takeUntil } from 'rxjs/operators'\r\nimport { SelectionModel } from '@angular/cdk/collections'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from '../../shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { MatSort, Sort } from '@angular/material/sort'\r\nimport { TableColumn } from '../../shared/core/interfaces/table-column.interface'\r\nimport { aioTableLabels } from '../../../static-data/aio-table-data'\r\nimport { FormControl } from '@angular/forms'\r\nimport { MatSidenav } from '@angular/material/sidenav'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { FilterObject } from 'src/app/models/common.model'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Filter, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { COMPANY_ADD_ACTION } from 'src/app/enums/userActions'\r\nimport { TableVirtualScrollDataSource } from 'ng-table-virtual-scroll'\r\nexport interface State {\r\n StateId: number\r\n StateName: string\r\n}\r\nexport interface City {\r\n city: string\r\n}\r\nenum CompanyFilterNames {\r\n COMPANY = 'Company',\r\n TYPE = 'Type',\r\n STATUS = 'Status',\r\n INDUSTRY = 'Industry',\r\n LOCATION = 'Location',\r\n}\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'company-list',\r\n templateUrl: './company-list.component.html',\r\n styleUrls: ['./company-list.component.scss'],\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class CompanyListComponent implements OnInit, OnDestroy {\r\n public states: State[]\r\n public statuses: any\r\n public companyTypes: any\r\n public industries: any\r\n public industrySearchList: any\r\n public companyTypeFilterList: any\r\n public statusFilterList: any\r\n public companyFilterOptions: Filter[]\r\n public jobStatusFilterOptions = []\r\n public TypeFilterOption = []\r\n public StatusFilterOptions = []\r\n public IndustryFilterOptions = []\r\n public selectedCompany = []\r\n public isCompanyCardViewSubject = new BehaviorSubject(false)\r\n ngUnSubscribe: Subject = new Subject()\r\n public isCompanyCardView$: Observable = this.isCompanyCardViewSubject.asObservable()\r\n isExpanded$ = combineLatest([this.isCompanyCardView$]).pipe(map(([value]) => ({ value })))\r\n filterValue = 'CompanyName'\r\n isDesktop$ = this.layoutService.isDesktop$\r\n searchPara: {\r\n Company: any\r\n Location: any\r\n IndustryID: any\r\n CompanyTypeId: any\r\n StatusID: any\r\n SortField: any\r\n SortOrder: any\r\n PageNumber: any\r\n PageSize: any\r\n UserId: any\r\n SearchText: string\r\n }\r\n\r\n layoutCtrl = new FormControl('boxed')\r\n subject$: ReplaySubject = new ReplaySubject(1)\r\n data$: Observable = this.subject$.asObservable()\r\n companyAddAction = COMPANY_ADD_ACTION\r\n\r\n @Input()\r\n columns: TableColumn[] = [\r\n { label: 'Image', property: 'image', type: 'image', visible: true },\r\n {\r\n label: 'Company Name',\r\n property: 'CompanyName',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Type',\r\n property: 'CompanyType',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Status',\r\n property: 'CompanyStatus',\r\n type: 'text',\r\n visible: false,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'City, State (HQ)',\r\n property: 'City',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center', 'Align-center'],\r\n },\r\n {\r\n label: 'Industry',\r\n property: 'IndustryName',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Employees',\r\n property: 'EmployeeRange',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Revenue(M)',\r\n property: 'Revenue',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Markup Type',\r\n property: 'MarkupType',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Open Jobs',\r\n property: 'OpenJobs',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'teal-light', 'text-center'],\r\n },\r\n {\r\n label: 'Active Hires',\r\n property: 'ActiveHire',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-purple', 'text-center'],\r\n },\r\n {\r\n label: 'Active Contacts',\r\n property: 'Contacts',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n { label: 'Actions', property: 'action', type: 'button', visible: true },\r\n ]\r\n\r\n columnsFilterList: TableColumn[]\r\n selectedIndustries = []\r\n companySelected = []\r\n\r\n selectedTypes = []\r\n selectedStatues = []\r\n @ViewChild('quickpanel', { static: true }) quickpanel: MatSidenav\r\n @ViewChild('fileAttr', { static: true }) fileAttribute: ElementRef\r\n pageSize = 50\r\n pageNumber = 1\r\n totalLength = 0\r\n sortField: string\r\n sortOrder: string\r\n public filePath: string\r\n pageSizeOptions: number[] = [5, 10, 20, 50]\r\n dataSource: TableVirtualScrollDataSource | null\r\n selection = new SelectionModel(true, [])\r\n searchCtrl = new FormControl()\r\n frmCtrlCompany = new FormControl()\r\n frmCtrlCompanyType = new FormControl()\r\n frmCtrlStatus = new FormControl()\r\n frmCtrlIndustry = new FormControl()\r\n\r\n companies: any[] = []\r\n\r\n companySearchText: string\r\n industrySearchText: string\r\n companyTypeSearchText: string\r\n locationSearchText: string\r\n statusSearchText: string\r\n labels = aioTableLabels\r\n\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n\r\n companyFilter: FilterObject = {}\r\n comp: boolean = true\r\n subscription: Subscription\r\n isLoading: boolean\r\n isScrolled: boolean = false\r\n private lastScrollTop: number = 0\r\n hasMoreData: boolean = true\r\n companyCard: any\r\n selectedCompanyType: any\r\n selectedCompanyIndustry: any\r\n selectedCompanyStatus: any\r\n companyModuleLevelSearchText: string\r\n private unsubscribeCompanyFilters$: Subject = new Subject()\r\n\r\n openQuickpanel() {\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('company')\r\n this.commonService.setComponentData(CommonData.activeCompany)\r\n }\r\n addCompany() {\r\n this.router.navigate(['company/add'])\r\n }\r\n\r\n @ViewChild('paginator') paginator: MatPaginator\r\n @ViewChild(MatSort, { static: true }) sort: MatSort\r\n InputVar: ElementRef\r\n constructor(\r\n public authService: AuthenticationService,\r\n private companyService: CompanyService,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private notifyService: NotificationService,\r\n public filterModelService: FilterModelService,\r\n public commonService: CommonService,\r\n private observableService: ObservableService\r\n ) {\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n\r\n this.subscription = this.loadComponent.getComponentStatus().subscribe((res) => {\r\n if (!res.loadComponent) {\r\n this.quickpanel.ngOnDestroy()\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.getCompanyData()\r\n this.observableService.companyFilterValueChanged$\r\n .pipe(takeUntil(this.unsubscribeCompanyFilters$))\r\n .subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CompanyFilterNames.COMPANY)) {\r\n this.companySelected = []\r\n this.companySelected = filter.get(CompanyFilterNames.COMPANY)\r\n } else if (filter.has(CompanyFilterNames.TYPE)) {\r\n this.selectedTypes = []\r\n this.selectedTypes = filter.get(CompanyFilterNames.TYPE)\r\n } else if (filter.has(CompanyFilterNames.INDUSTRY)) {\r\n this.selectedIndustries = []\r\n this.selectedIndustries = filter.get(CompanyFilterNames.INDUSTRY)\r\n } else {\r\n this.selectedStatues = []\r\n this.selectedStatues = filter.get(CompanyFilterNames.STATUS)\r\n }\r\n this.paginator?.firstPage()\r\n this.companies = []\r\n this.pageNumber = 1\r\n this.getCompanyData()\r\n }\r\n })\r\n\r\n this.observableService.companyTextBoxFilterValueChanged$\r\n .pipe(takeUntil(this.unsubscribeCompanyFilters$))\r\n .subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CompanyFilterNames.LOCATION)) {\r\n this.locationSearchText = ''\r\n this.locationSearchText = filter.get(CompanyFilterNames.LOCATION)\r\n }\r\n this.paginator?.firstPage()\r\n this.companies = []\r\n this.pageNumber = 1\r\n this.getCompanyData()\r\n }\r\n })\r\n\r\n this.observableService.companyModuleLevelSearchChanged$\r\n .pipe(takeUntil(this.unsubscribeCompanyFilters$))\r\n .subscribe((searchText) => {\r\n this.companyModuleLevelSearchText = searchText?.length > 0 ? searchText : ''\r\n this.paginator?.firstPage()\r\n this.companies = []\r\n this.pageNumber = 1\r\n this.getCompanyData()\r\n })\r\n\r\n this.observableService.filterResetValueChanged$\r\n .pipe(takeUntil(this.unsubscribeCompanyFilters$))\r\n .subscribe((filterReset) => {\r\n if (filterReset) {\r\n this.companySelected = []\r\n this.selectedTypes = []\r\n this.selectedIndustries = []\r\n this.selectedStatues = []\r\n this.locationSearchText = ''\r\n this.companyModuleLevelSearchText = ''\r\n this.paginator?.firstPage()\r\n this.companies = []\r\n this.pageNumber = 1\r\n this.companyFilterOptions.forEach((filter) => {\r\n filter.options = filter.originalOptions\r\n })\r\n this.getCompanyData()\r\n }\r\n })\r\n\r\n this.columnsFilterList = this.columns.filter((x) => x.property != 'CompanyName')\r\n this.filePath = Common.filePath\r\n this.getStatesAndCities()\r\n this.companyFilterOptions = this.filterModelService.getCompanyFilters()\r\n this.getFilterOptions()\r\n }\r\n\r\n getFilterOptions() {\r\n forkJoin({\r\n companyData: this.getCompanies(''),\r\n statusData: this.getStatus(),\r\n typeData: this.getCompanyTypes(),\r\n industryData: this.getIndustries(),\r\n }).subscribe(({ companyData, statusData, typeData, industryData }) => {\r\n this.companyFilterOptions.forEach((item) => {\r\n switch (item.name) {\r\n case CompanyFilterNames.COMPANY:\r\n item.options = this.getCompanyOptions(companyData)\r\n item.originalOptions = this.getCompanyOptions(companyData)\r\n item.selectedOptions = []\r\n break\r\n case CompanyFilterNames.TYPE:\r\n item.options = this.getOptions(typeData)\r\n item.originalOptions = this.getOptions(typeData)\r\n break\r\n case CompanyFilterNames.STATUS:\r\n item.options = this.getOptions(statusData)\r\n item.originalOptions = this.getOptions(statusData)\r\n break\r\n case CompanyFilterNames.INDUSTRY:\r\n item.options = this.getOptions(industryData)\r\n item.originalOptions = this.getOptions(industryData)\r\n break\r\n default:\r\n item.options = null\r\n }\r\n })\r\n })\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columns.filter((column) => column.visible).map((column) => column.property)\r\n }\r\n\r\n getCompanyOptions(allOptions: any): Option[] {\r\n let companyOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n companyOptions.push({ key: item.CompanyId, value: item.Name })\r\n })\r\n return companyOptions\r\n }\r\n\r\n getOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n options.push({ key: item.CategoryID, value: item.Name })\r\n })\r\n return options\r\n }\r\n\r\n isOpen() {\r\n this.isCompanyCardViewSubject.next(true)\r\n }\r\n\r\n isClose() {\r\n this.isCompanyCardViewSubject.next(false)\r\n }\r\n\r\n getCompanyData() {\r\n this.searchPara = {\r\n Company: this.companySelected.join(','),\r\n Location: this.locationSearchText,\r\n IndustryID: this.selectedIndustries.join(','),\r\n CompanyTypeId: this.selectedTypes.join(','),\r\n StatusID: this.selectedStatues.join(','),\r\n SortField: this.sortField,\r\n SortOrder: this.sortOrder,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.pageSize,\r\n UserId: this.authService.userInfo.userID,\r\n SearchText: this.companyModuleLevelSearchText,\r\n }\r\n\r\n // this.totalLength = 1\r\n this.isLoading = true\r\n this.companyService\r\n .getCompanyList(this.searchPara)\r\n .pipe(takeUntil(this.unsubscribeCompanyFilters$))\r\n .subscribe(\r\n (companies) => {\r\n this.subject$.next(companies)\r\n this.isLoading = false\r\n if (companies?.length > 0) {\r\n this.companyCard = companies\r\n\r\n this.totalLength = companies[0]?.TotalCount\r\n this.hasMoreData = this.companyCard.length < this.totalLength\r\n if (this.hasMoreData) {\r\n this.pageNumber++\r\n } else {\r\n this.notifyService.showInfo('You have reached the end of the Company list', 'Company List')\r\n }\r\n } else {\r\n this.notifyService.showInfo('You have reached the end of the Company list', 'Company List')\r\n }\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n //TODO:if UI issue occurse in table use below dataSource\r\n this.companies = [...this.companies, ...companies]\r\n this.dataSource.data = this.companies\r\n this.dataSource = new TableVirtualScrollDataSource(this.companies)\r\n },\r\n (err: any) => {\r\n this.totalLength = 0\r\n }\r\n )\r\n // this.dataSource = new MatTableDataSource()\r\n // this.data$.pipe(filter(Boolean)).subscribe((companies) => {\r\n //\r\n // this.companies = [...this.companies ,...companies]\r\n // this.dataSource.data = this.companies\r\n // })\r\n }\r\n\r\n getStatesAndCities() {\r\n this.commonService.getStates().subscribe((res) => {\r\n this.states = res as State[]\r\n })\r\n }\r\n\r\n getStatus(): Observable {\r\n return this.companyService.getStatusCategory()\r\n }\r\n\r\n getCompanyTypes(): Observable {\r\n return this.companyService.GetCompanyType()\r\n }\r\n\r\n getIndustries(): Observable {\r\n return this.companyService.getIndustries()\r\n }\r\n\r\n getCompanies(searchText): Observable {\r\n return this.companyService.getCompanyFilter(searchText)\r\n }\r\n\r\n changePage(event) {\r\n this.pageSize = event.pageSize\r\n this.pageNumber = event.pageIndex + 1\r\n this.getCompanyData()\r\n }\r\n\r\n announceSortChange(sortState: Sort) {\r\n if (sortState.direction) {\r\n this.sortField = sortState.active\r\n this.sortOrder = sortState.direction\r\n this.pageNumber = 1\r\n this.getCompanyData()\r\n }\r\n }\r\n\r\n updateCompany(company) {\r\n this.isLoading = true\r\n this.companyService.GetCompanyByCompanyId(company.CompanyID).subscribe({\r\n next: (res) => {\r\n if (res) {\r\n CommonData.activeCompany = res\r\n CommonData.activeCompanyLogo = company.imageSrc\r\n this.openQuickpanel()\r\n }\r\n this.isLoading = false\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n },\r\n })\r\n }\r\n\r\n toggleColumnVisibility(column, event) {\r\n if (column.property == 'CompanyName') {\r\n return\r\n }\r\n event.stopPropagation()\r\n event.stopImmediatePropagation()\r\n column.visible = !column.visible\r\n }\r\n\r\n trackByProperty(index: number, column: TableColumn) {\r\n return column.property\r\n }\r\n\r\n uploadCompanyList(files: FileList) {\r\n this.isLoading = true\r\n const file: File = files[0]\r\n let csv = new FormData()\r\n csv.append(file.name, file)\r\n const reader = new FileReader()\r\n reader.onload = (e) => reader.result\r\n reader.readAsDataURL(file)\r\n this.companyService.uploadCompanies(csv).subscribe((res) => {\r\n this.isLoading = false\r\n if (res) {\r\n this.notifyService.showSuccess(res, 'Company List')\r\n this.InputVar.nativeElement.value = ''\r\n } else {\r\n this.notifyService.showError('Could not parse the file!', 'Company List')\r\n this.InputVar.nativeElement.value = ''\r\n }\r\n this.getCompanyData()\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n this.unsubscribeCompanyFilters$.next()\r\n this.unsubscribeCompanyFilters$.unsubscribe()\r\n this.companyFilterOptions.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n })\r\n CommonData.activeCompany = null\r\n }\r\n onScroll(event: any): void {\r\n const scrollTop = event.target.scrollTop\r\n const scrollHeight = event.target.scrollHeight\r\n const clientHeight = event.target.clientHeight\r\n const isScrollingDown = scrollTop > this.lastScrollTop\r\n this.lastScrollTop = scrollTop\r\n\r\n if (isScrollingDown) {\r\n if (scrollTop + clientHeight >= scrollHeight - 100) {\r\n if (!this.isLoading && this.hasMoreData) {\r\n this.getCompanyData()\r\n this.isScrolled = true\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n Showing {{companies.length}}/{{ totalLength | number }} Companies Results\r\n
\r\n
\r\n \r\n filter_list\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n add Add Company\r\n \r\n
\r\n
\r\n
0\" class=\"company-table-container\">\r\n
0\" fxLayoutGap=\"20px grid\">\r\n
\r\n \r\n
\r\n
\r\n
0\" class=\"table-container-company px-3\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ column.label }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{\r\n column.property == 'City'\r\n ? row[column.property] + ', ' + row['StateCode']\r\n : row[column.property]\r\n }}\r\n \r\n \r\n
\r\n
\r\n \r\n {{ row[column.property] }}\r\n \r\n
\r\n\r\n
\r\n MSP - {{ row.MSPCompany }}\r\n
\r\n
\r\n \r\n -\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
No company were found matching your search
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {{ column.label }}\r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ToolbarModule } from '../../shared/core/layout/toolbar/toolbar.module'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { FooterModule } from '../../shared/core/layout/footer/footer.module'\r\nimport { CompanyListComponent } from './company-list.component'\r\nimport { LayoutModule } from '../../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\n\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatSortModule } from '@angular/material/sort'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { ContainerModule } from '../../shared/core/directives/container/container.module'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { CompanyCardListComponent } from '../company-card-list/company-card-list.component'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { MatDividerModule } from '@angular/material/divider'\r\nimport { FiltersComponent } from 'src/app/shared/filters/filters.component'\r\nimport { SharedModule } from '../../shared/shared.module'\r\nimport { ScrollingModule } from '@angular/cdk/scrolling'\r\nimport { TableVirtualScrollModule } from 'ng-table-virtual-scroll'\r\n@NgModule({\r\n declarations: [CompanyListComponent, CompanyCardListComponent],\r\n imports: [\r\n ScrollingModule,\r\n TableVirtualScrollModule,\r\n CommonModule,\r\n ToolbarModule,\r\n MatToolbarModule,\r\n FooterModule,\r\n LayoutModule,\r\n SharedModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n MatSidenavModule,\r\n FlexLayoutModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatCheckboxModule,\r\n MatIconModule,\r\n MatDividerModule,\r\n MatCardModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n IconModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n ReactiveFormsModule,\r\n ContainerModule,\r\n MatSelectModule,\r\n NgxLoadingModule.forRoot({}),\r\n ],\r\n exports: [CompanyCardListComponent],\r\n providers: [FiltersComponent],\r\n})\r\nexport class CompanyListModule {}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n Input,\r\n ViewChild,\r\n TemplateRef,\r\n ChangeDetectorRef,\r\n SimpleChanges,\r\n OnChanges,\r\n OnDestroy,\r\n} from '@angular/core'\r\nimport { CompanyService } from '../company.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Router } from '@angular/router'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport { Revenue } from '../company-constants'\r\nimport { iRevenue } from 'src/app/models/revenue.model'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { COMPANY_ADD_ACTION, COMPANY_DELETE_ACTION, COMPANY_EDIT_ACTION } from 'src/app/enums/userActions'\r\n\r\n@Component({\r\n selector: 'company-revenue-view',\r\n templateUrl: './company-revenue-view.component.html',\r\n styleUrls: ['./company-revenue-view.component.scss'],\r\n // encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CompanyRevenueViewComponent implements OnInit, OnChanges, OnDestroy {\r\n activeCompany = CommonData.activeCompany\r\n ngUnsubscribe$: Subject = new Subject()\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator\r\n\r\n @Input() dialogRef: TemplateRef\r\n @Input() location: string\r\n @Input() refresh: number\r\n @Output() editRevenue: EventEmitter = new EventEmitter()\r\n @Output() deleteRevenue: EventEmitter = new EventEmitter()\r\n dataSource: any\r\n @Input() revenueList: iRevenue[]\r\n isLoading: boolean\r\n deleteIconSrc = Common.RedDeleteIcon\r\n editIconSrc = Common.EditIcon\r\n companyAddAction = COMPANY_ADD_ACTION\r\n companyEditAction = COMPANY_EDIT_ACTION\r\n companyDeleteAction = COMPANY_DELETE_ACTION\r\n\r\n newRevenue = new Revenue()\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private dialogService: DialogService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private loadComponent: LoadComponent,\r\n private ref: ChangeDetectorRef,\r\n private notifyService: NotificationService\r\n ) { }\r\n /** contact table Data */\r\n revenueDisplayedColumns: string[] = ['Year', 'Revenue', 'AssetValue', 'Action']\r\n\r\n ngOnInit(): void {\r\n this.dataSource = new MatTableDataSource(this.revenueList)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n if (this.location === FormLocation.Tab) this.getRevenue()\r\n }\r\n\r\n public get locationType(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes &&\r\n changes.refresh?.currentValue &&\r\n changes.refresh?.currentValue > 0 &&\r\n changes.refresh?.currentValue != changes.refresh?.previousValue\r\n ) {\r\n this.getRevenue()\r\n }\r\n if (\r\n changes &&\r\n changes?.revenueList != null &&\r\n changes.revenueList?.currentValue != changes.revenueList?.previousValue\r\n ) {\r\n this.dataSource = new MatTableDataSource(this.revenueList)\r\n this.ref.detectChanges()\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n getRevenue() {\r\n this.isLoading = true\r\n this.companyService\r\n .GetCompanyRevenue(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.isLoading = false\r\n if (res != null || res != undefined) {\r\n this.revenueList = res\r\n this.dataSource = new MatTableDataSource(this.revenueList)\r\n this.ref.detectChanges()\r\n this.dataSource.paginator = this.paginator\r\n }\r\n })\r\n }\r\n\r\n delete(revenue) {\r\n this.dialogService.open()\r\n\r\n this.dialogService.onDialogClosed().subscribe((confirmed) => {\r\n if (confirmed) {\r\n if (revenue.CompanyRevenueID > 0) {\r\n this.companyService\r\n .deleteCompanyRevenue(revenue.CompanyRevenueID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res != null || res != undefined) {\r\n this.getRevenue()\r\n this.notifyService.showSuccess('Revenue deleted successfully!', 'Company Revenue')\r\n } else {\r\n this.notifyService.showError('Revenue failed to delete!', 'Company Revenue')\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n edit(revenue) {\r\n if (this.location == 'tab') {\r\n this.editCompany()\r\n } else {\r\n this.openDialog(this.dialogRef)\r\n this.editRevenue.emit(revenue)\r\n }\r\n }\r\n\r\n editFormHandler(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {})\r\n }\r\n\r\n dialogCloseHandler() {\r\n this.dialog.closeAll()\r\n }\r\n\r\n editCompany() {\r\n if (this.activeCompany) {\r\n this.router.navigate(['/company/edit'])\r\n Common.companyStepIndex = 2\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n }\r\n\r\n openDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '750px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n openRevenueDialog(data?) {\r\n const i = this.revenueList.indexOf(data)\r\n const editArray = [...this.revenueList]\r\n editArray.splice(i, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: 'revenue',\r\n formData: data ?? data,\r\n revenueArray: data ? editArray : this.revenueList,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === 'revenue') {\r\n this.newRevenue.assetValue = data.formData.AssetValue == \"\" ? null : data.formData.AssetValue\r\n this.newRevenue.companyRevenueID = data.formData.CompanyRevenueID\r\n this.newRevenue.createdDate = data.formData.CreatedDate\r\n this.newRevenue.year = data.formData.Year\r\n this.newRevenue.revenue = data.formData.Revenue\r\n this.updateRevenue()\r\n }\r\n })\r\n }\r\n\r\n updateRevenue() {\r\n const companyRevenueModel = {\r\n CompanyRevenueID: this.newRevenue.companyRevenueID,\r\n CompanyID: this.activeCompany.CompanyId,\r\n Year: this.newRevenue.year,\r\n Revenue: this.newRevenue.revenue,\r\n AssetValue: this.newRevenue.assetValue,\r\n CreatedBy: 0,\r\n CreatedDate: this.newRevenue.createdDate,\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n this.companyService\r\n .saveCompanyRevenue(companyRevenueModel)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res != null || res != undefined) {\r\n this.getRevenue()\r\n this.notifyService.showSuccess('Revenue saved successfully!', 'Company Revenue')\r\n } else {\r\n this.notifyService.showError('Revenue failed to save!', 'Company Revenue')\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n Revenue\r\n \r\n \r\n \r\n Add Revenue\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Year\r\n {{ element.Year }}\r\n Revenue($M)\r\n {{ element.Revenue | number : '1.0' : 'en-US' }}\r\n Asset Value($M)\r\n {{ element.AssetValue | number : '1.0' : 'en-US' }}\r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No revenue data available\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { iCompanyRevenue } from 'src/app/models/company-revenue.model'\r\nimport { iRevenue } from 'src/app/models/revenue.model'\r\nimport { DialogService } from 'src/app/services/dialog.service'\r\nimport { CompanyService } from '../company.service'\r\nimport icEdit from '@iconify/icons-ic/twotone-edit'\r\nimport icDelete from '@iconify/icons-ic/twotone-delete'\r\nimport icPhone from '@iconify/icons-ic/twotone-phone'\r\nimport icMail from '@iconify/icons-ic/twotone-mail'\r\nimport icSearch from '@iconify/icons-ic/twotone-search'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { Revenue } from '../company-constants'\r\nimport { FormLocation } from 'src/app/common/common'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\n@Component({\r\n selector: 'company-revenue',\r\n templateUrl: './company-revenue.component.html',\r\n styleUrls: ['./company-revenue.component.scss'],\r\n})\r\nexport class CompanyRevenueComponent implements OnInit, AfterContentChecked {\r\n ngUnsubscribe$: Subject = new Subject()\r\n isEdit = false\r\n editIndex: any\r\n model: iRevenue\r\n isYearValid = false\r\n yearMessage = ''\r\n companyRevenueModel: iCompanyRevenue\r\n revenueList: Array = []\r\n activeCompany = CommonData.activeCompany\r\n revenueListHasData: boolean\r\n icSearch = icSearch\r\n icPhone = icPhone\r\n icMail = icMail\r\n icEdit = icEdit\r\n icDelete = icDelete\r\n currentYear: number = new Date().getFullYear()\r\n refreshCount: number = 0\r\n revenueForm: FormGroup\r\n newRevenue = new Revenue()\r\n\r\n @ViewChild('revenueDialog') tempref: TemplateRef\r\n @Input() stepper: any\r\n @Input() location: any\r\n @Output() companyAdded: EventEmitter = new EventEmitter()\r\n\r\n constructor(\r\n private companyService: CompanyService,\r\n public dialog: MatDialog,\r\n private dialogService: DialogService,\r\n private notifyService: NotificationService,\r\n private ngZone: NgZone,\r\n private changeDetectorRefs: ChangeDetectorRef,\r\n private fb: FormBuilder,\r\n private commonMatDialogService: CommonMatDialogService\r\n ) {\r\n this.currentYear = new Date().getFullYear()\r\n this.revenueForm = this.fb.group({\r\n year: ['', Validators.required, Validators.max(this.currentYear)],\r\n revenue: ['', Validators.required],\r\n assetValue: [''],\r\n })\r\n }\r\n\r\n public get locationType(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createDefaultModel()\r\n if (this.location !== 'tab') this.getRevenue()\r\n }\r\n\r\n ngAfterContentChecked() {\r\n this.changeDetectorRefs.detectChanges()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n getRevenue() {\r\n this.companyService\r\n .GetCompanyRevenue(this.activeCompany?.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res != null || res != undefined) {\r\n this.revenueList = res\r\n }\r\n })\r\n }\r\n\r\n createDefaultModel() {\r\n let dateTime = new Date()\r\n this.model = {\r\n Year: null,\r\n Revenue: null,\r\n AssetValue: null,\r\n }\r\n }\r\n\r\n reset() {\r\n this.revenueForm.reset\r\n this.revenueForm.markAsUntouched\r\n this.dialog.closeAll()\r\n this.createDefaultModel()\r\n this.isEdit = false\r\n }\r\n addRevenue() {\r\n this.companyRevenueModel = {\r\n CompanyRevenueID: 0,\r\n CompanyID: this.activeCompany.CompanyId,\r\n Year: this.newRevenue.year,\r\n Revenue: this.newRevenue.revenue,\r\n AssetValue: this.newRevenue.assetValue,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n this.companyService\r\n .saveCompanyRevenue(this.companyRevenueModel)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res != null || res != undefined) {\r\n this.getRevenue()\r\n this.refreshCount++\r\n this.notifyService.showSuccess('Revenue saved successfully!', 'Company Revenue')\r\n } else {\r\n this.notifyService.showError('Revenue failed to save!', 'Company Revenue')\r\n }\r\n })\r\n }\r\n\r\n edit(revenue: any) {\r\n const editData = { year: revenue.Year, revenue: revenue.Revenue, assetValue: revenue.AssetValue }\r\n this.revenueForm.patchValue(editData)\r\n this.isEdit = true\r\n this.companyRevenueModel = revenue\r\n Object.assign(this.model, revenue)\r\n }\r\n\r\n delete(event: any) {\r\n this.dialogService.open()\r\n\r\n this.dialogService.onDialogClosed().subscribe((confirmed) => {\r\n if (confirmed) {\r\n if (this.isEdit && this.companyRevenueModel.CompanyRevenueID == event.revenue.CompanyRevenueID) {\r\n this.notifyService.showError('Cannot Delete.Please save or reset value!', 'Company Revenue')\r\n return\r\n }\r\n if (event.revenue.CompanyRevenueID > 0) {\r\n this.companyService\r\n .deleteCompanyRevenue(event.revenue.CompanyRevenueID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res != null || res != undefined) {\r\n this.getRevenue()\r\n // this.companyRevenueViewComponent.getRevenue()\r\n this.refreshCount++\r\n this.notifyService.showSuccess('Revenue deleted successfully!', 'Company Revenue')\r\n } else {\r\n this.notifyService.showError('Revenue failed to delete!', 'Company Revenue')\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n gotoNext() {\r\n this.ngZone.run(() => {\r\n this.companyAdded.emit(2)\r\n this.stepper.selected.completed = true\r\n\r\n this.stepper.next()\r\n })\r\n }\r\n gotoPrev() {\r\n this.stepper.previous()\r\n }\r\n\r\n openDialog(templateRef: TemplateRef) {\r\n this.revenueForm.markAsUntouched()\r\n this.revenueForm.reset()\r\n this.dialog.open(templateRef, {\r\n width: '750px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n openRevenueDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: 'revenue',\r\n revenueArray: this.revenueList,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === 'revenue') {\r\n this.newRevenue.assetValue = data.formData.AssetValue\r\n this.newRevenue.companyRevenueID = data.formData.CompanyRevenueID\r\n this.newRevenue.createdDate = data.formData.CreatedDate\r\n this.newRevenue.year = data.formData.Year\r\n this.newRevenue.revenue = data.formData.Revenue\r\n this.addRevenue()\r\n }\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
Revenue
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { RouterModule, Routes } from '@angular/router'\r\nimport { CompanyListComponent } from './company-list/company-list.component'\r\nimport { CompanyTabsComponent } from './company-tabs/company-tabs.component'\r\nimport { AuthGuard } from '../guards/auth.guard'\r\nimport { ADD_PATH, EDIT_PATH } from '../constants/page-path'\r\nimport { IsCanAccessPageGuard } from '../guards/is-can-access-page.guard'\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: CompanyListComponent,\r\n children: [],\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${ADD_PATH}`,\r\n component: CompanyTabsComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n {\r\n path: `${EDIT_PATH}`,\r\n component: CompanyTabsComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class CompanyRoutingModule { }\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { Subscription } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { Common } from 'src/app/common/common'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { NavigationEnd, Router } from '@angular/router'\r\nimport { filter } from 'rxjs/operators'\r\n\r\n@Component({\r\n selector: 'company-tabs',\r\n templateUrl: './company-tabs.component.html',\r\n styleUrls: [\r\n './company-tabs.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n})\r\nexport class CompanyTabsComponent implements OnInit, OnDestroy {\r\n subscribe: Subscription\r\n activeCompany = CommonData.activeCompany\r\n defaultCompanyId = CommonData.defaultCompanyId\r\n staffingCompanyType = CompanyType.StaffingCompany\r\n client = CompanyType.Client\r\n vendor = CompanyType.Vendor\r\n companyEventArray: any = []\r\n activeTab = 0\r\n selectedIndex = Common.companyStepIndex\r\n\r\n @ViewChild('stepper') private myStepper: MatStepper\r\n isEdit: boolean = false\r\n\r\n constructor(\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private router: Router,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event: NavigationEnd) => {\r\n if (event.url.split('/')[2] === 'edit') {\r\n this.isEdit = true\r\n } else if (event.url.split('/')[2] === 'add') {\r\n CommonData.activeCompany = null\r\n CommonData.activeCompanyLogo = null\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeCompany = CommonData.activeCompany\r\n }\r\n newCompanyAdded(event) {\r\n this.activeCompany = CommonData.activeCompany\r\n this.companyEventArray.push(event)\r\n }\r\n\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectedIndex = this.myStepper.selectedIndex\r\n this.cd.detectChanges()\r\n }\r\n\r\n ngOnDestroy() {\r\n CommonData.activeCompany = null\r\n CommonData.activeCompanyLogo = null\r\n Common.companyStepIndex = 0\r\n this.isEdit = false\r\n }\r\n\r\n isStepCompleted(step) {\r\n if (this.isEdit) {\r\n this.companyEventArray = []\r\n for (let i = 0; i < this.selectedIndex; i++) {\r\n this.companyEventArray.push(i)\r\n }\r\n }\r\n return this.companyEventArray.includes(step)\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n Add Company\r\n Edit Company -> {{ activeCompany?.Name }}\r\n close\r\n
\r\n\r\n \r\n {{ index + 1 }} \r\n\r\n \r\n \r\n Company
Details
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Contacts\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Revenue\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Accounting\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Documents\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Job Setting\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Assign
\r\n Users\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { Subject, Subscription } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { CompanyService } from '../company.service'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { iCompanyAccounting } from 'src/app/models/company-accounting'\r\nimport { iAssigendUsersRequestModel } from 'src/app/models/assignedUsersRequest.model'\r\nimport { iAssignedUsers } from 'src/app/models/assignedUser.model'\r\nimport { iUserInfo } from 'src/app/models/user.model'\r\nimport { MatSnackBar } from '@angular/material/snack-bar'\r\nimport { Router } from '@angular/router'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { CompanyJobsettingComponent } from '../company-jobsetting/company-jobsetting.component'\r\nimport { CompanyAccountingComponent } from '../company-accounting/company-accounting.component'\r\nimport { MatFormFieldDefaultOptions, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CompanyDialogComponent } from '../company-dialog/company-dialog.component'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { iBackGroundCheck } from 'src/app/models/common.model'\r\nimport { COMPANY_EDIT_ACTION, COMPANY_VIEW_ACTION } from 'src/app/enums/userActions'\r\n\r\n@Component({\r\n selector: 'company-view-tabs',\r\n templateUrl: './company-view-tabs.component.html',\r\n styleUrls: ['./company-view-tabs.component.scss'],\r\n providers: [\r\n CompanyJobsettingComponent,\r\n CompanyAccountingComponent,\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class CompanyViewTabsComponent implements OnInit, OnDestroy, OnChanges {\r\n activeCompany: any\r\n contactsList: any[] = []\r\n reportingManager: any[] = []\r\n staffingCompanyType = CompanyType.StaffingCompany\r\n clientCompanyType = CompanyType.Client\r\n vendor = CompanyType.Vendor\r\n cycles: any = []\r\n\r\n accountsValue = {\r\n invoiceCycle: null,\r\n paymentTerms: null,\r\n vmsFee: null,\r\n }\r\n accountValues = {}\r\n volumeArray: Array = []\r\n tenureArray: Array = []\r\n conversionArray: Array = []\r\n assignedUserRequestModel: iAssigendUsersRequestModel\r\n assignedUsersList: iAssignedUsers[] = []\r\n users: iUserInfo[] = []\r\n revenueList: any\r\n companyDocs: any\r\n jobCategoryList: any\r\n configdata: any\r\n volumeArrayData: iCompanyAccounting[]\r\n tenureArrayData: iCompanyAccounting[]\r\n conversionArrayData: iCompanyAccounting[]\r\n filePath: string\r\n activeTab: number = 0\r\n disableTab: boolean = false\r\n companyDomain: string = ''\r\n\r\n isLoading: boolean = false\r\n backgroundChecks: iBackGroundCheck[]\r\n companyEditAction = COMPANY_EDIT_ACTION\r\n companyViewAction = COMPANY_VIEW_ACTION\r\n\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n ngUnsubscribe$: Subject = new Subject()\r\n\r\n constructor(\r\n private router: Router,\r\n private _snackBar: MatSnackBar,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private companyService: CompanyService,\r\n private commonService: CommonService,\r\n private jobSettingComponent: CompanyJobsettingComponent,\r\n private accountingComponent: CompanyAccountingComponent,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private notifyService: NotificationService\r\n ) {}\r\n private subscription: Subscription\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((data) => {\r\n this.activeCompany = data\r\n this.companyDomain = '//' + this.activeCompany.WebSite\r\n if (CommonData.activeCompanyLogo) this.filePath = Common.filePath + CommonData.activeCompanyLogo\r\n })\r\n this.getClientContacts()\r\n this.getAcctCategory()\r\n this.getAssignedUsers()\r\n this.getRevenue()\r\n this.getCompanyDocuments()\r\n this.getJobCategory()\r\n this.getBackgroundChecks()\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {}\r\n\r\n getClientContacts() {\r\n this.companyService\r\n .GetContactsByClient(this.activeCompany.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n Object.assign(this.contactsList, res)\r\n Object.assign(this.reportingManager, res)\r\n })\r\n }\r\n\r\n editCompany() {\r\n if (this.activeCompany) {\r\n this.router.navigate(['/company/edit'])\r\n Common.companyStepIndex = 0\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n }\r\n\r\n getAcctCategory() {\r\n this.companyService\r\n .getAcctCategory()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.cycles = res\r\n if (this.cycles) {\r\n this.volumeArray = []\r\n this.tenureArray = []\r\n this.conversionArray = []\r\n\r\n this.companyService\r\n .GetCompanyAccounting(this.activeCompany.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n let iC = this.cycles.find((x) => x.CategoryID === res.Accounts.InvoiceCycle)\r\n if (iC) {\r\n this.accountsValue.invoiceCycle = iC\r\n }\r\n let pT = this.cycles.find((x) => x.CategoryID === res.Accounts.PaymentTerms)\r\n if (pT) {\r\n this.accountsValue.paymentTerms = pT\r\n }\r\n this.accountsValue.vmsFee = res.Accounts.VmsFee\r\n\r\n res.AllAccounting.forEach((element) => {\r\n if (element.AccountingTypeID === 137) {\r\n this.volumeArray.push(element)\r\n } else if (element.AccountingTypeID === 138) {\r\n this.tenureArray.push(element)\r\n } else if (element.AccountingTypeID === 140) {\r\n this.conversionArray.push(element)\r\n }\r\n })\r\n\r\n this.volumeArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n this.tenureArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n this.conversionArray.sort((a, b) => {\r\n return a.FromValue - b.FromValue\r\n })\r\n this.volumeArrayData = [...this.volumeArray]\r\n this.tenureArrayData = [...this.tenureArray]\r\n this.conversionArrayData = [...this.conversionArray]\r\n })\r\n }\r\n })\r\n }\r\n\r\n getAssignedUsers() {\r\n if (this.activeCompany.CompanyTypeID === CompanyType.StaffingCompany) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.StaffingCompany,\r\n CompanyId: CommonData.defaultCompanyId,\r\n }\r\n this.companyService\r\n .getAssignedUsers(this.assignedUserRequestModel)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.assignedUsersList = res\r\n } else {\r\n }\r\n })\r\n } else if (this.activeCompany.CompanyTypeID === CompanyType.Client) {\r\n this.assignedUserRequestModel = {\r\n CompanyTypeId: CompanyType.Client,\r\n CompanyId: this.activeCompany.CompanyId,\r\n }\r\n\r\n this.companyService\r\n .getAssignedUsers(this.assignedUserRequestModel)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.assignedUsersList = res\r\n let r = this.users.filter(\r\n (elem) => !this.assignedUsersList.find(({ UserId }) => elem.userID === UserId)\r\n )\r\n this.users = r\r\n } else {\r\n }\r\n })\r\n }\r\n }\r\n ngAfterViewInit() {\r\n this.activeCompany = CommonData.activeCompany\r\n }\r\n getRevenue() {\r\n this.companyService\r\n .GetCompanyRevenue(this.activeCompany.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res != null || res != undefined) {\r\n this.revenueList = res\r\n }\r\n })\r\n }\r\n\r\n getCompanyDocuments() {\r\n this.companyService\r\n .GetDocuments(this.activeCompany.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.companyDocs = res\r\n })\r\n }\r\n\r\n getJobCategory() {\r\n this.companyService\r\n .GetJobCategory(this.activeCompany.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.jobCategoryList = res\r\n }\r\n })\r\n }\r\n\r\n getConfig() {\r\n this.companyService\r\n .getConfig(this.activeCompany.CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.configdata = res\r\n }\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.filePath = null\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n copyPhoneNumber() {\r\n var copyText = document.getElementById('phoneNo')\r\n var textArea = document.createElement('textarea')\r\n textArea.value = copyText.textContent\r\n document.body.appendChild(textArea)\r\n textArea.select()\r\n document.execCommand('Copy')\r\n textArea.remove()\r\n this.openSnackBarForPhone()\r\n }\r\n\r\n copyEmail() {\r\n var copyText = document.getElementById('email')\r\n var textArea = document.createElement('textarea')\r\n textArea.value = copyText.textContent\r\n document.body.appendChild(textArea)\r\n textArea.select()\r\n document.execCommand('Copy')\r\n textArea.remove()\r\n this.openSnackBarForEmail()\r\n }\r\n openSnackBarForPhone() {\r\n this._snackBar.open('Phone number copied succsessfully', 'Ok', { duration: 3000 })\r\n }\r\n\r\n openSnackBarForEmail() {\r\n this._snackBar.open('Email copied succsessfully', 'Ok', { duration: 3000 })\r\n }\r\n\r\n deleteJC(jobCategory) {\r\n this.jobSettingComponent.deleteJC(jobCategory)\r\n }\r\n\r\n deleteAV(value) {\r\n this.accountingComponent.deleteAccountingData(value)\r\n }\r\n\r\n onTabChanged($event) {\r\n let clickedIndex = $event.index\r\n this.activeTab = clickedIndex\r\n }\r\n\r\n getBackgroundChecks() {\r\n this.companyService\r\n .getBackgroundChecks()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.backgroundChecks = res as iBackGroundCheck[]\r\n })\r\n }\r\n openViewCompanyDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: 'company',\r\n isFormViewOnly: true,\r\n },\r\n })\r\n }\r\n openEditCompanyDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: 'company',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((data) => {\r\n if (data.formName === 'company') {\r\n const companyModel = {\r\n CompanyId: this.activeCompany.CompanyId,\r\n EmailAddress: data.formData.EmailAddress,\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n RegisteredStateId: null,\r\n RegisteredState: data.formData.RegisteredState ? data.formData.RegisteredState : '',\r\n NewsLink: data.formData.NewsLink ? data.formData.NewsLink : '',\r\n LegalStructureId: null,\r\n FederalTaxId: data.formData.FederalTaxId ? data.formData.FederalTaxId : '',\r\n Fax: data.formData.Fax ? data.formData.Fax : '',\r\n Name: data.formData.Name,\r\n Phone: data.formData.Phone,\r\n WebSite: data.formData.WebSite,\r\n Description: data.formData.Description,\r\n Address: data.formData.Address,\r\n IsActive: true,\r\n Location: data.formData.Location,\r\n StateCode: data.formData.StateId ? data.formData.StateId : null, //TODO\r\n StateId: data.formData.StateId ? data.formData.StateId : null, //TODO\r\n EmployeeRangeID: data.formData.EmployeeRangeID,\r\n City: data.formData.City,\r\n ZipCode: data.formData.ZipCode,\r\n IndustryID: data.formData.IndustryID,\r\n CompanyStatusID: data.formData.CompanyStatusID,\r\n SicCodeID: data.formData.SicCodeID,\r\n CompanyTypeID: data.formData.CompanyTypeID,\r\n InvoiceCycleTypeID:\r\n CommonData?.activeCompany?.InvoiceCycleTypeID == undefined\r\n ? null\r\n : CommonData?.activeCompany?.InvoiceCycleTypeID,\r\n PaymentTermsTypeID:\r\n CommonData?.activeCompany?.PaymentTermsTypeID == undefined\r\n ? null\r\n : CommonData?.activeCompany?.PaymentTermsTypeID,\r\n VMSFees:\r\n CommonData?.activeCompany?.VMSFees == undefined ? null : CommonData?.activeCompany?.VMSFees,\r\n MSPCompanyID: data.formData.MSPCompanyID,\r\n CreatedDate: data.formData.CreatedDate,\r\n CreatedBy: data.formData.CreatedBy,\r\n VendorCategoryID:\r\n data.isVendorOptionsVisible &&\r\n data?.vendorCategoryValue &&\r\n data.vendorCategoryValue.length > 0\r\n ? data?.vendorCategoryValue?.join()\r\n : null,\r\n VendorEthinicityID:\r\n data.isVendorOptionsVisible &&\r\n data?.vendorEthnicityValue &&\r\n data.vendorEthnicityValue.length > 0\r\n ? data?.vendorEthnicityValue\r\n : null,\r\n IsDrugFreeWorkPlace: data.isVendorOptionsVisible ? data.formData.IsDrugFree : null,\r\n HasHarasmentPolicy: data.isVendorOptionsVisible ? data.formData.HasHarasment : null,\r\n HasNonDiscriminationPolicy: data.isVendorOptionsVisible\r\n ? data.formData.HasNonDiscrimination\r\n : null,\r\n HasCriminalBackgroudCheck: data.isVendorOptionsVisible\r\n ? data.formData.HasCriminalBGCheck\r\n : null,\r\n PersonalEmailAddress: data?.formData?.PersonalEmailAddress\r\n ? data.formData?.PersonalEmailAddress\r\n : null,\r\n }\r\n if (data.formData.Location) this.addLocation(data.formData.Location)\r\n if (data.formData.isImageChanged) this.saveCompanyLogo(data.image)\r\n this.saveCompanyData(companyModel)\r\n }\r\n })\r\n }\r\n\r\n addLocation(location) {\r\n location.LocationTypeID = 149\r\n location.ObjectId = this.activeCompany.CompanyId\r\n this.companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = res\r\n }\r\n })\r\n }\r\n\r\n saveCompanyLogo(image) {\r\n if (image) {\r\n image.append('companyId', CommonData.activeCompany.CompanyId.toString())\r\n this.companyService\r\n .uploadCompanyLogo(image)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n CommonData.activeCompanyLogo = res\r\n this.filePath = Common.filePath + CommonData.activeCompanyLogo\r\n })\r\n }\r\n }\r\n\r\n saveCompanyData(companyModel) {\r\n const isCompanyEdit = true\r\n this.isLoading = true\r\n this.companyService\r\n .AddCompany(companyModel)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (res) => {\r\n this.isLoading = false\r\n this.activeCompany = CommonData.activeCompany = res.Company\r\n if (isCompanyEdit) {\r\n this.notifyService.showSuccess('Company details updated!', 'Company Details')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error saving data', 'Company Details')\r\n }\r\n )\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ activeCompany?.Name | slice : 0 : 18 }}\r\n \r\n {{ activeCompany?.Location?.City\r\n }} 0 &&\r\n activeCompany?.Location?.City?.length > 0\r\n \"\r\n >,\r\n {{ activeCompany?.Location?.StateName }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n visibility\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Industry:\r\n {{\r\n activeCompany?.IndustryName ? activeCompany?.IndustryName : 'N/A'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n Company Type:\r\n {{\r\n activeCompany?.CompanyTypeName ? activeCompany?.CompanyTypeName : 'N/A'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n Markup Type:\r\n {{\r\n activeCompany?.MarkupType ? activeCompany?.MarkupType : 'N/A'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n SIC Code:\r\n {{\r\n activeCompany?.SicCodeName ? activeCompany?.SicCodeName : 'N/A'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n Employee Range:\r\n {{\r\n activeCompany?.EmployeeRange ? activeCompany?.EmployeeRange : 'N/A'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n Revenue:\r\n {{ activeCompany?.Revenue ? activeCompany?.Revenue : 'N/A' }}\r\n \r\n \r\n 0\" class=\"row-start start\">\r\n \r\n \r\n MSP Name:\r\n {{ activeCompany?.MspName ? activeCompany?.MspName : 'N/A' }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Location\r\n \r\n {{\r\n activeCompany?.Location?.Address ? activeCompany?.Location?.Address : 'N/A'\r\n }}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n Phone\r\n {{\r\n activeCompany?.Phone?.length > 0 ? '+' + activeCompany?.Phone : 'N/A'\r\n }}\r\n
\r\n
\r\n 0\"\r\n src=\"assets/img/Leap-Tiger_Icons/Candidate-Module-Icon/copyToClipBoardIcon.svg\"\r\n class=\"mb-2\"\r\n matTooltip=\"Copy to Clipboard\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"copyPhoneNumber()\"\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Email\r\n {{\r\n activeCompany?.EmailAddress?.length > 0 ? activeCompany?.EmailAddress : 'N/A'\r\n }}\r\n \r\n \r\n 0\"\r\n src=\"assets/img/Leap-Tiger_Icons/Candidate-Module-Icon/copyToClipBoardIcon.svg\"\r\n matTooltip=\"Copy to Clipboard\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"copyEmail()\"\r\n />\r\n
\r\n
\r\n \r\n
\r\n Description\r\n {{\r\n activeCompany?.Description?.length > 0 ? activeCompany?.Description : 'N/A'\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\n\r\nimport { CompanyRoutingModule } from './company-routing.module'\r\nimport { MatListModule } from '@angular/material/list'\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar'\r\nimport { RouterModule } from '@angular/router'\r\nimport { MatRippleModule } from '@angular/material/core'\r\nimport { MatTabsModule } from '@angular/material/tabs'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { MatStepperModule } from '@angular/material/stepper'\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { QuillModule } from 'ngx-quill'\r\nimport { CompanyBasicDetailsComponent } from './company-details/company-basic-details.component'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { CompanyContactsComponent } from './company-contacts/company-contacts.component'\r\nimport { CompanyRevenueComponent } from './company-revenue/company-revenue.component'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { CompanyAccountingComponent } from './company-accounting/company-accounting.component'\r\nimport { CompanyDocumentsComponent } from './company-documents/company-documents.component'\r\nimport { CompanyJobsettingComponent } from './company-jobsetting/company-jobsetting.component'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { CompanyTabsComponent } from './company-tabs/company-tabs.component'\r\nimport { AssignUsersComponent } from './assign-users/assign-users.component'\r\nimport { LocationModule } from '../common/location/location.module'\r\nimport { SharedModule } from '../shared/shared.module'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\n\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { LayoutModule } from '../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { ContainerModule } from 'src/app/shared/core/directives/container/container.module'\r\nimport { ToolbarModule } from 'src/app/shared/core/layout/toolbar/toolbar.module'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { FooterModule } from 'src/app/shared/core/layout/footer/footer.module'\r\nimport { CompanyViewTabsComponent } from './company-view-tabs/company-view-tabs.component'\r\nimport { CompanyContactsViewComponent } from './company-contacts-view/company-contacts-view.component'\r\nimport { CompanyDetailsViewComponent } from './company-details-view/company-details-view.component'\r\nimport { CompanyRevenueViewComponent } from './company-revenue-view/company-revenue-view.component'\r\nimport { CompanyAccountingViewComponent } from './company-accounting-view/company-accounting-view.component'\r\nimport { CompanyDocumentsViewComponent } from './company-documents-view/company-documents-view.component'\r\nimport { CompanyJobsettingViewComponent } from './company-jobsetting-view/company-jobsetting-view.component'\r\nimport { AssignUsersViewComponent } from './assign-users-view/assign-users-view.component'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatDatepickerModule } from '@angular/material/datepicker'\r\nimport { MatBadgeModule } from '@angular/material/badge'\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { MatSliderModule } from '@angular/material/slider'\r\nimport { CompanyDialogComponent } from './company-dialog/company-dialog.component'\r\nimport { MatChipsModule } from '@angular/material/chips'\r\nimport { ScrollingModule } from '@angular/cdk/scrolling'\r\nimport { TableVirtualScrollModule } from 'ng-table-virtual-scroll'\r\n\r\n@NgModule({\r\n declarations: [\r\n CompanyBasicDetailsComponent,\r\n CompanyContactsComponent,\r\n CompanyRevenueComponent,\r\n CompanyAccountingComponent,\r\n CompanyDocumentsComponent,\r\n CompanyJobsettingComponent,\r\n CompanyTabsComponent,\r\n AssignUsersComponent,\r\n CompanyViewTabsComponent,\r\n CompanyContactsViewComponent,\r\n CompanyDetailsViewComponent,\r\n CompanyRevenueViewComponent,\r\n CompanyAccountingViewComponent,\r\n CompanyDocumentsViewComponent,\r\n CompanyJobsettingViewComponent,\r\n AssignUsersViewComponent,\r\n CompanyDialogComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n CompanyRoutingModule,\r\n CommonModule,\r\n MatCardModule,\r\n MatListModule,\r\n MatSliderModule,\r\n MatStepperModule,\r\n MatProgressBarModule,\r\n RouterModule,\r\n MatRippleModule,\r\n MatBadgeModule,\r\n MatTabsModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatDatepickerModule,\r\n MatIconModule,\r\n IconModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n FlexLayoutModule,\r\n MatTableModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n LocationModule,\r\n SharedModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n ContainerModule,\r\n ToolbarModule,\r\n MatToolbarModule,\r\n MatPaginatorModule,\r\n FooterModule,\r\n MatChipsModule,\r\n NgxLoadingModule.forRoot({}),\r\n QuillModule.forRoot({\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'],\r\n ['blockquote', 'code-block'],\r\n\r\n [{ header: 1 }, { header: 2 }],\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }],\r\n [{ indent: '-1' }, { indent: '+1' }],\r\n [{ direction: 'rtl' }],\r\n\r\n [{ size: ['small', false, 'large', 'huge'] }],\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ color: [] }, { background: [] }],\r\n [{ align: [] }],\r\n\r\n ['clean'],\r\n\r\n ['link', 'image', 'video'],\r\n ],\r\n },\r\n }),\r\n TableVirtualScrollModule,\r\n ScrollingModule,\r\n ],\r\n exports: [CompanyTabsComponent, CompanyViewTabsComponent],\r\n})\r\nexport class CompanyModule {}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { catchError, map, shareReplay } from 'rxjs/operators'\r\nimport { Common } from '../common/common'\r\nimport { BaseService } from '../services/base.service'\r\nimport { AbstractControl, AsyncValidatorFn, ValidationErrors } from '@angular/forms'\r\nimport { Observable, of } from 'rxjs'\r\nimport { CommonData } from '../helper/commonData'\r\nimport { OperatorValue } from './company-constants'\r\n\r\nconst httpTextOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'text/plain',\r\n accept: 'application/json',\r\n }),\r\n}\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CompanyService extends BaseService {\r\n constructor(private http: HttpClient) {\r\n super()\r\n }\r\n public payRateConditions: OperatorValue[] = [\r\n { Key: '0', Value: '<', Label: 'Less than' },\r\n { Key: '1', Value: '>', Label: 'Greater than' },\r\n { Key: '2', Value: '<=', Label: 'Less than or equal to' },\r\n { Key: '3', Value: '>=', Label: 'Greater than or equal to' },\r\n { Key: '4', Value: '==', Label: 'Equal to' },\r\n ]\r\n\r\n uploadCompanies(files: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/companyUpload'\r\n return this.http.post(url, files).pipe(catchError(this.handleError))\r\n }\r\n\r\n UploadCompanyDocuments(files: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/companydocument'\r\n return this.http.post(url, files).pipe(catchError(this.handleError))\r\n }\r\n\r\n uploadContacts(files: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/UploadCsv'\r\n return this.http.post(url, files).pipe(catchError(this.handleError))\r\n }\r\n\r\n uploadCompanyLogo(img: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/companyLogo'\r\n\r\n return this.http.post(url, img).pipe(catchError(this.handleError))\r\n }\r\n\r\n saveClientVendor(obj: any) {\r\n var url = Common.apiUrl + 'Company/saveClientVendor'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(Common.handleError))\r\n }\r\n\r\n getClientVendors(CompanyId) {\r\n var url = Common.apiUrl + 'Company/getClientVendors'\r\n return this.http.post(url, { CompanyId: CompanyId }, httpOptions).pipe(catchError(Common.handleError))\r\n }\r\n\r\n GetCompanyType() {\r\n var url = Common.apiUrl + 'company/CompanyType'\r\n\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteClientVendor(clientvenderCustomModel) {\r\n var url = Common.apiUrl + 'Company/DeleteClientVendor'\r\n return this.http.post(url, clientvenderCustomModel, httpOptions).pipe(catchError(Common.handleError))\r\n }\r\n\r\n GetEmployeeRange() {\r\n var url = Common.apiUrl + 'data/GetEmployeeRange'\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n\r\n getMSPS() {\r\n var url = Common.apiUrl + 'company/GetMSPs'\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n\r\n CompanyFilter(obj) {\r\n var url = Common.apiUrl + 'company/GetFilteredCompany'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobIndustry() {\r\n var url = Common.apiUrl + 'Jobs/JobIndustry'\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n\r\n getCompanyList(obj) {\r\n var url = Common.apiUrl + 'company/GetCompanyList'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getStatusCategory() {\r\n var url = Common.apiUrl + 'company/StatusCategory'\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetSicCodes() {\r\n var url = Common.apiUrl + 'company/GetSicCode'\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n\r\n getCompanyFilter(title) {\r\n var url = Common.apiUrl + 'data/GetCompanyFilter' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getIndustries() {\r\n var url = Common.apiUrl + 'jobs/JobIndustry'\r\n\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddCompany(obj: any) {\r\n var url = Common.apiUrl + 'Company/saveCompany'\r\n\r\n return this.http.post(url, obj).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetContactsByClient(companyId) {\r\n var url = Common.apiUrl + 'Company/GetContactsByClient'\r\n return this.http.post(url, { companyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetCompanyLocations(objectid, objecttypeid) {\r\n var url =\r\n Common.apiUrl +\r\n 'data/GetCompanyLocations' +\r\n '/' +\r\n encodeURIComponent(objectid) +\r\n '/' +\r\n encodeURIComponent(objecttypeid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n GetCompanyHeadQuarterLoc(objectid, objecttypeid, locationTypeId) {\r\n var url =\r\n Common.apiUrl +\r\n 'data/GetCompanyHeadQuarterLoc' +\r\n '/' +\r\n encodeURIComponent(objectid) +\r\n '/' +\r\n encodeURIComponent(objecttypeid) +\r\n '/' +\r\n encodeURIComponent(locationTypeId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n GetTitle() {\r\n var url = Common.apiUrl + 'Company/GetTitle'\r\n return this.http.get(url, httpOptions).pipe(shareReplay(1), catchError(this.handleError))\r\n }\r\n\r\n GetManagementLevel() {\r\n var url = Common.apiUrl + 'Company/GetManagementLevel'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDepartmentType() {\r\n var url = Common.apiUrl + 'Company/GetDepartmentType'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetCitySearch(name, stateCode) {\r\n let resObj = {\r\n name: name,\r\n stateCode: stateCode,\r\n }\r\n var url = Common.apiUrl + 'data/GetCitySearch'\r\n return this.http.post(url, resObj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddContact(obj: any) {\r\n var url = Common.apiUrl + 'Company/saveContact'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getCompanyContactUploadSample() {\r\n var url = Common.apiUrl + 'Company/GetCompanyContactUploadSample'\r\n return this.http\r\n .get(url, {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n responseType: 'blob',\r\n })\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n getCompanyUploadSample() {\r\n var url = Common.apiUrl + 'Company/GetCompanyUploadSample'\r\n\r\n return this.http\r\n .get(url, {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n responseType: 'blob',\r\n })\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n AddLocation(obj: any) {\r\n var url = Common.apiUrl + 'Company/saveLocation'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n DeleteContact(obj: any) {\r\n var url = Common.apiUrl + 'Company/DeleteContact'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteCompanyRevenue(CompanyRevenueID) {\r\n var url = Common.apiUrl + 'company/DeleteCompanyRevenue'\r\n return this.http.post(url, { CompanyId: CompanyRevenueID }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n saveCompanyRevenue(obj: any) {\r\n var url = Common.apiUrl + 'company/SaveCompanyRevenue'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetCompanyRevenue(companyId) {\r\n var url = Common.apiUrl + 'company/GetCompanyRevenue'\r\n return this.http.post(url, { CompanyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetRolesbyCompanyType(companyTypeId) {\r\n var url = Common.apiUrl + 'Company/GetRoles' + '/' + encodeURIComponent(companyTypeId)\r\n var roles = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return roles\r\n }\r\n\r\n GetCompanyByCompanyId(companyId) {\r\n var url = Common.apiUrl + 'Company/GetCompanyByCompanyId'\r\n return this.http.post(url, { companyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getVendorCategoriesGroup() {\r\n var url = Common.apiUrl + 'company/GetVendorCategoryGroup'\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getVendorEthnicity() {\r\n var url = Common.apiUrl + 'company/GetVendorEthnicityGroup'\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getAcctCategory() {\r\n var url = Common.apiUrl + 'company/AccountCategory'\r\n\r\n var accountingCycles = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return accountingCycles\r\n }\r\n\r\n getPaymentTerms() {\r\n var url = Common.apiUrl + 'company/GetPaymentTerms'\r\n\r\n var paymentTerm = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return paymentTerm\r\n }\r\n\r\n GetCompanyAccounting(companyId) {\r\n var url = Common.apiUrl + 'company/GetCompanyAccounting'\r\n return this.http.post(url, { CompanyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n SaveCompanyAccountConfig(obj: any) {\r\n var url = Common.apiUrl + 'company/SaveCompanyAccountConfig'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n saveCompanyAccounting(obj: any) {\r\n var url = Common.apiUrl + 'company/SaveCompanyAccounts'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteCompanyAccounting(companyAccountingID) {\r\n var url = Common.apiUrl + 'company/DeleteCompanyAccounting'\r\n return this.http\r\n .post(url, { CompanyId: companyAccountingID }, httpOptions)\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobCategory(companyId: any) {\r\n var url = Common.apiUrl + 'Company/GetJobCategory'\r\n return this.http.post(url, { CompanyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getConfig(companyId: any) {\r\n var url = Common.apiUrl + 'Company/GetConfig'\r\n return this.http.post(url, { CompanyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetAllJobCategories() {\r\n var url = Common.apiUrl + 'Company/GetAllJobCategories'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getLegalTypes() {\r\n var url = Common.apiUrl + 'data/GetLegalTypes'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getBackgroundChecks() {\r\n var url = Common.apiUrl + 'data/getBackgroundChecks'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n deleteJobCategory(CompanyJobCategorySettingID) {\r\n var url = Common.apiUrl + 'Company/deleteJobCategory'\r\n return this.http\r\n .post(url, { CompanyId: CompanyJobCategorySettingID }, httpOptions)\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n AddJobCategory(obj: any) {\r\n var url = Common.apiUrl + 'Company/saveJobCategory'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddConfigValue(obj: any) {\r\n var url = Common.apiUrl + 'Company/AddConfigValue'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDocuments(companyId) {\r\n var url = Common.apiUrl + 'Company/GetCompanyDocuments'\r\n return this.http.post(url, { companyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDocumentType() {\r\n var url = Common.apiUrl + 'Company/GetDocumentType'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n deleteCompanyDocument(doc: any) {\r\n var url = Common.apiUrl + 'company/DeleteCompanyDocument'\r\n return this.http.post(url, doc, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getStaffingCompanyUsers() {\r\n var url = Common.apiUrl + 'company/GetStaffingCompanyUsers'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getClients() {\r\n var url = Common.apiUrl + 'company/GetClients'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n assignUsers(obj: any) {\r\n var url = Common.apiUrl + 'UserAssignment/Users'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getAssignedUsers(assignedUserRequestModel) {\r\n var url = Common.apiUrl + 'UserAssignment/AssignedUsers'\r\n return this.http.post(url, assignedUserRequestModel, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n editUser(userAssignment) {\r\n var url = Common.apiUrl + 'UserAssignment/UserUpdate'\r\n return this.http.post(url, userAssignment, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteAssignedUser(assignedUser) {\r\n var url = Common.apiUrl + 'UserAssignment/UserAssignedDelete'\r\n return this.http.post(url, assignedUser, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n jobTitleSearch(title) {\r\n var url = Common.apiUrl + 'Jobs/JobTitleSearch' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n isCompanyContactExist(companyId, contactId, email) {\r\n var url = Common.apiUrl + 'company/IsCompanyContactExist'\r\n let params = new HttpParams()\r\n params = params.append('email', email)\r\n params = params.append('contactId', contactId)\r\n params = params.append('companyId', companyId)\r\n return this.http.get(url, { params: params }).pipe(catchError(this.handleError))\r\n }\r\n\r\n contactEmailValidator(contactId): AsyncValidatorFn {\r\n return (absControl: AbstractControl): Observable => {\r\n if (absControl?.value?.length > 0) {\r\n const ACTIVE_COMPANY_ID = CommonData?.activeCompany?.CompanyId\r\n ? CommonData?.activeCompany?.CompanyId\r\n : 0\r\n return this.isCompanyContactExist(ACTIVE_COMPANY_ID, contactId, absControl.value).pipe(\r\n map((res: any) => (res?.IsValid ? null : { emailExist: true }))\r\n )\r\n } else return of(null)\r\n }\r\n }\r\n companyLocationsById(CompanyId) {\r\n var url = Common.apiUrl + `company/GetCompanyLocations/${CompanyId}`\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n\r\n addUpdateCompanyBurdenRate(burdenRate) {\r\n const endPoint = Common.apiUrl + `company/AddCompanyBudenConfig`\r\n return this.http.post(endPoint, burdenRate)\r\n }\r\n\r\n deleteCompanyBurdenRate(config) {\r\n const endPoint = Common.apiUrl + `Company/DeleteCompanyBudenConfig`\r\n return this.http.post(endPoint, config, { responseType: 'text' })\r\n }\r\n\r\n getCompanyBurdenRate(companyId) {\r\n const endPoint = Common.apiUrl + `Company/GetCompanyBudenConfig`\r\n return this.http.post(endPoint, { CompanyId: companyId })\r\n }\r\n\r\n getAccountManagersByCompanyId(companyId) {\r\n const endPoint = Common.apiUrl + `Company/GetClientAccountManagersByCompany/${companyId}`\r\n return this.http.get(endPoint)\r\n }\r\n\r\n getCompanyActiveClients() {\r\n const endPoint = Common.apiUrl + `company/GetActiveClients`\r\n return this.http.get(endPoint)\r\n }\r\n}\r\n","export const Delete_Successfully = 'Delete Sucessfully'\r\n","export class GenericTypes\r\n{\r\n public static readonly DefaultResumeLastUpdated = 7;\r\n public static readonly JobToConultantSearchPageSize = 50;\r\n public static readonly DefaultPageSize = 10;\r\n public static readonly DefaultPageNumber = 1;\r\n}","export class JobTypes\r\n{\r\n public static readonly Contract = \"C\";\r\n public static readonly ContractToHire = \"C2H\";\r\n public static readonly Permanent = \"P\";\r\n}","export const LoadingConfig = { backdropBorderRadius: '3px' }\r\n","export const DASHBOARD_PATH = 'dashboard'\r\nexport const COMPANY_PATH = 'company'\r\nexport const JOBS_PATH = 'jobs'\r\nexport const CANDIDATES_PATH = 'candidates'\r\nexport const ADD_PATH = 'add'\r\nexport const ADD_JOB_PATH = 'addJob'\r\nexport const CANDIDATE_ADD_PARAM_ID = ':id'\r\nexport const CANDIDATE_JOB_STATUS_PATH = 'candidatejobstatus'\r\nexport const EDIT_PATH = 'edit'\r\nexport const ROLE_PERMISSION_PATH = 'rolepermission'\r\nexport const CONFIGURATION_PATH = 'configurations'\r\nexport const JOB_CANDIDATE_PATH = 'job'\r\nexport const CONSULTANT_CALLS_PATH = 'calls'\r\nexport const EMAIL_PARSER_LOG='parserlog'\r\n","export const USER_ROLES = {\r\n SUPER_ADMIN: 'SUPER_ADMIN',\r\n ATS_ADMIN: 'ATS_ADMIN',\r\n VMS_ADMIN: 'VMS_ADMIN',\r\n USER: 'USER',\r\n CONSULTANT: 'CONSULTANT',\r\n HR: 'HR',\r\n RECRUIT_ACC_MANAGER: 'RECRUIT_ACC_MANAGER',\r\n RECRUITER: 'RECRUITER',\r\n BUSINESS_DEVELOPMENT: 'BUSINESS_DEVELOPMENT',\r\n DELIVERY_MANAGER: 'DELIVERY_MANAGER',\r\n RECRUIT_SUPPORT_TEAM: 'RECRUIT_SUPPORT_TEAM',\r\n FINANCE_ACCOUNTING: 'FINANCE_ACCOUNTING',\r\n HIRING_MANAGER: 'HIRING_MANAGER',\r\n COMPANY_ADMIN: 'COMPANY_ADMIN',\r\n OTHER: 'OTHER',\r\n CLIENT_EXE_ADMIN: 'CLIENT_EXE_ADMIN',\r\n VENDOR_EXE_ADMIN: 'VENDOR_EXE_ADMIN',\r\n PROGRAM_MANAGER: 'PROGRAM_MANAGER',\r\n}\r\n\r\nexport const ADMIN_ROLES_LIST = [USER_ROLES.SUPER_ADMIN]\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { CallRecordSearchParameter } from 'src/app/models/calls.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { Common } from 'src/app/common/common';\r\nimport { ConsultantService } from '../consultant.service';\r\n@Component({\r\n selector: 'app-call-record-history',\r\n templateUrl: './call-record-history.component.html',\r\n styleUrls: ['./call-record-history.component.scss']\r\n})\r\nexport class CallRecordHistoryComponent implements OnInit {\r\n\r\n callRecords: any[] = [];\r\n consultantData: any;\r\n jobId: string;\r\n candidateName: string = '';\r\n totalCallDuration: number = 0;\r\n totalCallDurationOutbound: number = 0;\r\n totalCallDurationInbound: number = 0;\r\n numberOfMissedCalls: number = 0;\r\n jobstatusID: number;\r\n ConsultantID: number;\r\n DiceId: string;\r\n CallSearchPara:CallRecordSearchParameter\r\n constructor(\r\n private jobService: JobService,\r\n private consultantService: ConsultantService,\r\n public authService: AuthenticationService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n\r\n\r\n ) {\r\n this.consultantData = data.consultantData;\r\n this.jobId = data.jobId;\r\n this.jobstatusID = data.jobStatusID;\r\n this.ConsultantID = data.ConsultantID\r\n this.DiceId = data.DiceId;\r\n }\r\n\r\n ngOnInit(): void {\r\n let callerNumber = this.authService.userInfo.phoneNumber\r\n let calleeNumber\r\n if (Common.testCalleeNumber !=null) // call Test Mode\r\n calleeNumber = Common.testCalleeNumber\r\n\r\n this.CallSearchPara = {\r\n CallRecordId: 0,\r\n CallerUserId: this.authService.userInfo.userID,\r\n CallStartTime: this.addDays(new Date(), -1),\r\n CallerNumber:callerNumber,\r\n JobId:Number(this.jobId) ,\r\n CalleeContactId: null,\r\n CalleeNumber: calleeNumber,\r\n CalleeEmail: null,\r\n CallStatusId: null,//Dialed\r\n CallTypeID: null,//Outbound\r\n CreatedDate:new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n IsActive: true\r\n }\r\n\r\n\r\n this.showCallHistory(this.CallSearchPara);\r\n }\r\n addDays(date: Date, days: number): Date {\r\n let result = new Date(date);\r\n result.setDate(date.getDate() + days);\r\n return result;\r\n}\r\n calculateCallMetrics(): void {\r\n this.candidateName = this.consultantData.FirstName + \" \" + this.consultantData.LastName;\r\n \r\n this.callRecords.forEach(record => {\r\n // if (record.calleeNumber == '+16789610444') {\r\n // record['callerName'] = 'Jigar K';\r\n // record['calleeName'] = this.consultantData.FirstName + \" \" + this.consultantData.LastName;\r\n\r\n // } else {\r\n // record['callerName'] = this.consultantData.FirstName + \" \" + this.consultantData.LastName;\r\n // record['calleeName'] = 'Jigar K';\r\n // }\r\n\r\n\r\n this.totalCallDuration += record.duration;\r\n if (record.callType === 'user_out') {\r\n this.totalCallDurationOutbound += record.duration;\r\n } else if (record.callType === 'user_in') {\r\n this.totalCallDurationInbound += record.duration;\r\n }\r\n\r\n if (record.callType === 'missed' || record.duration == 0) {\r\n this.numberOfMissedCalls++;\r\n }\r\n });\r\n }\r\n\r\n\r\n sortCallRecordsByStartDate(): void {\r\n this.callRecords.sort((a, b) => {\r\n return new Date(b.startDateTime).getTime() - new Date(a.startDateTime).getTime();\r\n });\r\n }\r\n showCallHistory(searchPara) {\r\n // to be se caller number\r\n this.consultantService.getCallRecords(searchPara).subscribe((e: any[]) => {\r\n this.callRecords = e;\r\n this.sortCallRecordsByStartDate();\r\n this.calculateCallMetrics();\r\n });\r\n }\r\n}","
\r\n

Call Record History

\r\n
\r\n

Candidate Name: {{ candidateName }}

\r\n

Total Call Duration: {{ totalCallDuration }} seconds

\r\n

Total Call Duration (Outbound): {{ totalCallDurationOutbound }} seconds

\r\n

Total Call Duration (Inbound): {{ totalCallDurationInbound }} seconds

\r\n

Number of Missed Calls: {{ numberOfMissedCalls }}

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CallerCalleeDuration (sec)Caller NumberCallee NumberJobCall time startCall time end
{{record.CalleeName}}{{record.CallerName}}{{ record.duration }}{{ record.CallerNumber }}{{ record.CalleeNumber }}{{record.JobId}}{{record.StartDateTime | date:'M/d/yy, h:mm:ss a'}}{{record.EndDateTime | date:'M/d/yy, h:mm:ss a'}}
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonService } from 'src/app/services/common.service';\r\n\r\n@Component({\r\n selector: 'consultant-activities',\r\n templateUrl: './consultant-activities.component.html',\r\n styleUrls: ['./consultant-activities.component.scss']\r\n})\r\nexport class ConsultantActivitiesComponent implements OnInit {\r\n searchPara: {\r\n objectId: any;\r\n objectTypeId: any;\r\n userId: any;\r\n };\r\n // objectId: number;\r\n // objectTypeId: number;\r\n dataSource: MatTableDataSource | null;\r\n @Input() consultantSource: any;\r\n @Input() objectId;\r\n @Input() objectTypeId;\r\n isActiveButton:any;\r\n filterButton: string[] = ['All', 'Emails', 'Chats', 'Jobs', 'Others'];\r\n\r\n displayedColumns: string[] = ['Status'];\r\n public loading = false;\r\n\r\n constructor(\r\n private commonService: CommonService,\r\n\r\n ) { }\r\n private subscription: Subscription;\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData\r\n .subscribe(messageConsultantView => {\r\n this.loadObjectStatusLog();\r\n }\r\n );\r\n }\r\n loadObjectStatusLog() {\r\n this.loading = true;\r\n this.searchPara = {\r\n objectId: this.objectId,\r\n objectTypeId: this.objectTypeId,\r\n userId: null,\r\n };\r\n this.commonService.getObjectStatusLog(this.searchPara\r\n ).subscribe((result) => {\r\n this.dataSource = new MatTableDataSource();\r\n this.dataSource.data = result;\r\n this.loading = false;\r\n },\r\n (err: any) => {\r\n this.loading = false;\r\n },\r\n );\r\n }\r\n isClicked(btn: any){\r\n this.isActiveButton = btn\r\n console.log(\"==>\",this.dataSource.data);\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n Activities\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n From\r\n \r\n \r\n \r\n \r\n \r\n To\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n
    \r\n
  • \r\n
    {{element.UpdatedDate | date:'shortTime' }}
    {{element.UpdatedDate | date:'d MMM, y' }}
    \r\n
    Change Status to {{element.Status}} by {{element.UpdatedUser}}
    \r\n
  • \r\n
\r\n
\r\n","import { Component, AfterViewInit, OnInit, ViewChild, OnDestroy } from '@angular/core'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from '../../shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common } from '../../common/common'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { EMPTY, forkJoin, Subject, Subscription } from 'rxjs'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { ConsultantType, iConsultant, iConsultantResumeProject } from 'src/app/models/consultant.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { iJob, iSkills, JobTitle } from 'src/app/models/job.model'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { catchError, takeUntil } from 'rxjs/operators'\r\nimport { MatSidenav } from '@angular/material/sidenav'\r\nimport Quill from 'quill'\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'\r\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeUrl } from '@angular/platform-browser'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { Company, iCompany } from 'src/app/models/company.model'\r\nimport { ConsultantDialogTypes, DialogHeader, TypeOfVariable } from '../consultant-constants'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { iKeyValue, iStates } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { format } from 'date-fns'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { UploadResumeResponse } from 'src/app/models/resume.model'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { CANDIDATES_PATH } from 'src/app/constants/page-path'\r\nimport { JobTypes } from 'src/app/Constants/jobs'\r\nimport { JobCandidateTab } from 'src/app/enums/jobCandidate'\r\ninterface Project {\r\n clientName: string\r\n jobTitle: string\r\n startDate: Date\r\n endDate: Date\r\n cityStateCode: string\r\n description: string\r\n id: number\r\n editMode?: boolean\r\n}\r\n\r\n@Component({\r\n selector: 'consultant-addlayout',\r\n templateUrl: './consultant-addlayout.component.html',\r\n styleUrls: ['./consultant-addlayout.component.scss'],\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class ConsultantAddlayoutComponent implements OnInit, AfterViewInit, OnDestroy {\r\n projectsForm: FormGroup\r\n consultantProjectForm: FormGroup\r\n consultantSkillForm: FormGroup\r\n public iframeSrc: SafeResourceUrl | string\r\n downloadResume: string\r\n fileType: string = ''\r\n consultantSoftSkillForm: FormGroup\r\n consultantEducationForm: FormGroup\r\n consultantCertificateForm: FormGroup\r\n @ViewChild('stepper', { static: false }) private myStepper: MatStepper\r\n @ViewChild('sidenav') public sidenav: MatSidenav\r\n @ViewChild('skillPaginator', { static: false }) skillPaginator: MatPaginator\r\n ngUnsubscribe$: Subject = new Subject()\r\n isFormViewDisable: boolean = false\r\n subscribe: Subscription\r\n activeConsultant = Common.activeConsultant\r\n iShowUpload: boolean = false\r\n activeTab = 0\r\n selectedStep = 0\r\n disableTab: boolean = false\r\n consultant: iConsultant\r\n activeJob: iJob\r\n consultantHeaderText: string\r\n activeConsultantId: string\r\n consultantData: any\r\n applyJobId: number\r\n isAddFlow: boolean = true\r\n isFromAddCandidate: boolean\r\n // safeHtmlContent: SafeHtml = ''\r\n isResumeAvailable: boolean = false\r\n isShowResume: boolean = true\r\n safeHtmlContent: SafeHtml | null = null\r\n consultantResumeProjectData: iConsultantResumeProject[] = []\r\n degreeOption$ = this.consultantService.getLookup('DegreeTypeID')\r\n candidateSkillsTableData: MatTableDataSource\r\n allCompanies: iCompany[] | Company[] = []\r\n companies: iCompany[] | Company[] = []\r\n states: iStates[] = []\r\n candidateSkills: any = []\r\n candidateSoftSkills: any = []\r\n skillNames = []\r\n candidateEducation = []\r\n candidateCertification = []\r\n public loading = false\r\n workExperienceArray: iConsultantResumeProject[] = []\r\n selectedProject: any = null\r\n currentYear: number = new Date().getFullYear()\r\n editIndexProject: number | null = null\r\n editIndexSkill: number | null = null\r\n editIndexSoftSkill: number | null = null\r\n editIndexEducation: number | null = null\r\n editIndexCertifaction: number | null = null\r\n inShowDescription = false\r\n isShowDescription: boolean = false\r\n legalTypes: iKeyValue[]\r\n jobTypes: iKeyValue[]\r\n isshowPulsingIcon: boolean = false\r\n showDescriptionRow: boolean = false\r\n showVisibleDiscription: boolean = false\r\n showVisibleDescription: number | null = null\r\n skillNamesFilter: iSkills[] = []\r\n skillNameArray: string[] = []\r\n titles: JobTitle[] = []\r\n candidateProjectDescription: string\r\n consultantTypes: any\r\n modelConsultant: iConsultant\r\n newLocation: iLocation\r\n\r\n ///\r\n educationEditIndex: number = 0\r\n educationCertification: number = 0\r\n filterCities: any[] = []\r\n\r\n ///\r\n\r\n actionTitle: string = ''\r\n consultantEventArray: any[] = []\r\n constructor(\r\n private sanitized: DomSanitizer,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private consultantsService: ConsultantsService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private commonService: CommonService,\r\n private _consultantDataService: ConsultantDataService,\r\n private fb: FormBuilder,\r\n private sanitizer: DomSanitizer,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private authService: AuthenticationService,\r\n private consultantService: ConsultantService,\r\n private notifyService: NotificationService,\r\n private commonMatDialog: CommonMatDialogService,\r\n private companyService: CompanyService\r\n ) {\r\n const data = this.router.getCurrentNavigation()\r\n if (!data?.extras?.state?.consultantData) {\r\n this.router.navigate([CANDIDATES_PATH])\r\n }\r\n\r\n let uploadStatus = data?.extras?.state?.consultantData?.UploadStatus\r\n if (uploadStatus?.Status === \"RESUME_EXISTS\")\r\n this.notifyService.showError(\"Resume already exists and less than 3 months old\",\"Resume\")\r\n\r\n this.consultantData = data?.extras?.state?.consultantData\r\n\r\n this.applyJobId = data?.extras?.state?.jobId\r\n const filePath = Common.filePath + data?.extras?.state?.consultantData?.FileInfo?.Path\r\n this.downloadResume = filePath\r\n if (filePath != null) {\r\n this.setFilePath(filePath)\r\n }\r\n this.isAddFlow = data?.extras.state?.isAddFlow\r\n this.isFromAddCandidate = data?.extras.state?.isFromAddCandidate\r\n this.consultantResumeProjectData = data?.extras?.state?.consultantData?.ConsultantResumeProject\r\n this.candidateSkills = data?.extras?.state?.consultantData?.ConsultantResumeSkills\r\n this.candidateSoftSkills = data?.extras?.state?.consultantData?.ConsultantResumeSkills\r\n this.candidateCertification = data?.extras?.state?.consultantData?.ConsultantCertifications\r\n this.candidateEducation = data?.extras?.state?.consultantData?.ConsultantEducations\r\n this.candidateProjectDescription = data?.extras?.state?.consultantData?.ConsultantResumeProject?.Description\r\n Common.activeConsultant = data?.extras?.state?.consultantData\r\n }\r\n ngOnInit(): void {\r\n this.activeConsultantId = this.route.snapshot.paramMap.get('id')\r\n this.consultant = Common.activeConsultant\r\n this.activeJob = Common.activeJob\r\n if (this.activeConsultantId && this.activeJob) {\r\n this.consultantHeaderText = 'Link to Job ' + this.activeConsultantId + ' | ' + this.activeJob.JobTitleName\r\n }\r\n if (Common.activeConsultant != null) {\r\n this.iShowUpload = true\r\n this.disableTab = false\r\n }\r\n this.consultantsService.getConsultantEditActiveTab().subscribe((res) => {\r\n this.activeTab = res\r\n })\r\n if (Common.activeConsultantJob) {\r\n if (Common.activeJob) this.actionTitle = 'Job you are applying for ' + Common.activeJob.JobTitleName\r\n }\r\n this.consultantCompleted()\r\n this.resumeDrawerChanges()\r\n\r\n this.projectsForm = this.fb.group({\r\n projectsValue: this.fb.array(this.getProjectsControls()),\r\n })\r\n this.loadResume()\r\n this.initProjectForm()\r\n this.initSkillForm()\r\n this.initSoftSkillForm()\r\n this.initEducationForm()\r\n this.initCertificateForm()\r\n this.getAllCompanies()\r\n this.getDataForEditConsultant()\r\n this.sortSkilsData()\r\n }\r\n\r\n loadResume(): void {\r\n if (this.consultantData?.ResumeHTML) {\r\n this.safeHtmlContent = this.sanitizer.bypassSecurityTrustHtml(this.consultantData?.ResumeHTML)\r\n this.isResumeAvailable = true\r\n }\r\n }\r\n\r\n isResumeShow() {\r\n this.isShowResume = !this.isShowResume\r\n }\r\n\r\n initProjectForm() {\r\n this.consultantProjectForm = this.fb.group({\r\n ConsultantResumeID: [''],\r\n JobTitleId: [''],\r\n ClientName: ['', Validators.required],\r\n ProjectName: [''],\r\n City: [''],\r\n State: [''],\r\n StateCode: [''],\r\n DurationTo: [''],\r\n Duration: [''],\r\n ExperienceNumber: [''],\r\n ExperienceTypeId: [''],\r\n Description: [''],\r\n CreatedDate: [''],\r\n CreatedBy: [''],\r\n ConsultantResumeProjectId: [''],\r\n UpdatedDate: [''],\r\n UpdatedBy: [''],\r\n IsCurrentlyWorking: [false],\r\n IsActive: [''],\r\n ConsultantResume: [''],\r\n JobTitleName: ['', Validators.required],\r\n Country: [''],\r\n linenoDuration: [''],\r\n tempClientName: [''],\r\n linenoTitle: [''],\r\n linenoLocation: [''],\r\n linenoClientName: [''],\r\n DurationFrom: [''],\r\n })\r\n }\r\n initSkillForm() {\r\n this.consultantSkillForm = this.fb.group({\r\n SkillName: ['', Validators.required],\r\n Experience: [''],\r\n Required: [''],\r\n JobSkillLevelID: [''],\r\n JobSkillLevel: [''],\r\n CandidateExperience: ['', Validators.required],\r\n Lastused: ['', [Validators.required, Validators.max(this.currentYear), Validators.min(1970)]],\r\n CandidateSkillLevelID: ['', Validators.required],\r\n Rank: [''],\r\n SkillID: [''],\r\n })\r\n }\r\n initSoftSkillForm() {\r\n this.consultantSoftSkillForm = this.fb.group({\r\n SkillName: ['', Validators.required],\r\n // Experience: [''],\r\n Required: [''],\r\n JobSkillLevelID: [''],\r\n JobSkillLevel: [''],\r\n CandidateExperience: ['', Validators.required],\r\n // Lastused: ['', [Validators.required,Validators.max(this.currentYear), Validators.min(1970)]],\r\n CandidateSkillLevelID: ['', Validators.required],\r\n Rank: [''],\r\n SkillID: [''],\r\n })\r\n }\r\n\r\n initEducationForm() {\r\n this.consultantEducationForm = this.fb.group({\r\n ConsultantID: [''],\r\n Name: [''],\r\n DegreeTypeID: ['', Validators.required],\r\n DegreeTypeName: ['', Validators.required],\r\n Organization: [''],\r\n Location: [''],\r\n Year: ['', Validators.max(this.currentYear)],\r\n KeyWord: [''],\r\n CreatedBy: [''],\r\n CreatedDate: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [new Date()],\r\n IsActive: [''],\r\n ConsultantEducationID: [''],\r\n Url: [''],\r\n })\r\n }\r\n\r\n initCertificateForm() {\r\n this.consultantCertificateForm = this.fb.group({\r\n ConsultantCertificationID: [''],\r\n ConsultantID: [''],\r\n CertificationID: [''],\r\n CertificateNumber: [''],\r\n CertificationName: ['', Validators.required],\r\n Year: [''],\r\n Organization: [''],\r\n Location: [''],\r\n Url: [''],\r\n CreatedBy: [''],\r\n CreatedDate: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [new Date()],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n get projectsValue(): FormArray {\r\n return this.projectsForm.get('projectsValue') as FormArray\r\n }\r\n\r\n getProjectsControls() {\r\n // Replace this with actual data fetching logic\r\n return (this.consultantData?.NewProjects || []).map((project) =>\r\n this.fb.group({\r\n ClientName: [project.ClientName],\r\n JobTitle: [project.JobTitle],\r\n startDate: [project.DurationFrom],\r\n endDate: [project.DurationTo],\r\n City: [project.City],\r\n State: [project.State],\r\n Description: [project.Description],\r\n editMode: [false],\r\n })\r\n )\r\n }\r\n\r\n consultantCompleted() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n consultantSaved(event) {\r\n if (this.consultantEventArray && this.consultantEventArray.length) {\r\n if (this.consultantEventArray.indexOf(event) < 0) {\r\n this.consultantEventArray.push(event)\r\n }\r\n } else {\r\n this.consultantEventArray.push(event)\r\n }\r\n this.selectedStep = event + 1\r\n if (Common.activeConsultant != null) {\r\n this.disableTab = false\r\n }\r\n }\r\n onTabChanged($event) {\r\n let clickedIndex = $event.index\r\n this.activeTab = clickedIndex\r\n }\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n ngOnDestroy() {\r\n Common.activeConsultant = null\r\n Common.ResumeHTML = null\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n IsStepCompleted(step) {\r\n return this.consultantEventArray.includes(step)\r\n }\r\n ngAfterViewInit() {\r\n this.selectedStep = this.myStepper?.selectedIndex\r\n }\r\n\r\n onClose() {\r\n this.commonService.candidateObservable$.next(false)\r\n if (!this.isFromAddCandidate) {\r\n this.router.navigate(['jobs'], {\r\n queryParams: {\r\n jobId: this.applyJobId,\r\n activeTab: JobCandidateTab.Navigate_Job_Candidate_tab,\r\n },\r\n })\r\n } else {\r\n this.router.navigate(['candidates'])\r\n }\r\n }\r\n\r\n resumeDrawerChanges() {\r\n this._consultantDataService.resumeDrawerSubjectChanges$\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((isOpen) => {\r\n if (isOpen && !this.sidenav?.opened) {\r\n this.sidenav?.toggle()\r\n this.setIsResumeDrawerOpenStatus(this.sidenav?.opened)\r\n }\r\n })\r\n }\r\n\r\n setIsResumeDrawerOpenStatus(isOpen: boolean) {\r\n this._consultantDataService.setIsResumeDrawerOpenSubject(isOpen)\r\n }\r\n\r\n editProject(project, index?) {\r\n let DescriptionProjectIndex = null\r\n this.showDescriptionFiled(project, DescriptionProjectIndex)\r\n this.consultantProjectForm.patchValue({\r\n ConsultantResumeID: project.ConsultantResumeID,\r\n JobTitleId: project.JobTitleId,\r\n ClientName: project.ClientName,\r\n ProjectName: project.ProjectName,\r\n City: project.City,\r\n StateCode: project.StateCode,\r\n State: project.State,\r\n DurationTo: project.DurationTo ? new Date(project.DurationTo).toISOString().substring(0, 10) : '',\r\n Duration: project.Duration,\r\n // ExperienceNumber: project.ExperienceNumber,\r\n ExperienceTypeId: project.ExperienceTypeId,\r\n Description: project.Description,\r\n CreatedDate: project.CreatedDate,\r\n CreatedBy: project.CreatedBy,\r\n ConsultantResumeProjectId: project.ConsultantResumeProjectId,\r\n UpdatedDate: project.UpdatedDate,\r\n UpdatedBy: project.UpdatedBy,\r\n IsCurrentlyWorking: project.IsCurrentlyWorking,\r\n IsActive: project.IsActive,\r\n ConsultantResume: project.ConsultantResume,\r\n JobTitleName: project.JobTitleName,\r\n Country: project.Country,\r\n linenoDuration: project.linenoDuration,\r\n tempClientName: project.tempClientName,\r\n linenoTitle: project.linenoTitle,\r\n linenoLocation: project.linenoLocation,\r\n linenoClientName: project.linenoClientName,\r\n DurationFrom: project.DurationFrom ? new Date(project.DurationFrom).toISOString().substring(0, 10) : '',\r\n })\r\n\r\n this.editIndexProject = index\r\n project.editMode = true\r\n setTimeout(() => {\r\n const editorElement = document.querySelector(`#quill-editor-${project.id}`)\r\n\r\n if (editorElement) {\r\n const quillEditor = new Quill(editorElement, {\r\n theme: 'snow',\r\n })\r\n quillEditor.root.innerHTML = project.Description || ''\r\n quillEditor.on('text-change', () => {\r\n project.Description = quillEditor.root.innerHTML\r\n })\r\n }\r\n })\r\n }\r\n editSkill(Skill: any, index: number) {\r\n this.editIndexSkill = index\r\n this.consultantSkillForm.patchValue({\r\n SkillName: Skill?.SkillName,\r\n Experience: Skill?.Experience,\r\n Lastused: Skill.Lastused,\r\n })\r\n }\r\n\r\n editSoftSkill(Skill: any, index: number) {\r\n this.editIndexSoftSkill = index\r\n this.consultantSoftSkillForm.patchValue({\r\n SkillName: Skill.SkillName,\r\n // Experience: Skill?.Experience,\r\n // Lastused: Skill.Lastused,\r\n })\r\n }\r\n\r\n editEducation(index?) {\r\n this.educationEditIndex = index\r\n this.editIndexEducation = index\r\n this.consultantEducationForm.patchValue(this.candidateEducation[index])\r\n }\r\n\r\n editCertifications(index?) {\r\n this.educationCertification = index\r\n this.editIndexCertifaction = index\r\n this.consultantCertificateForm.patchValue(this.candidateCertification[index])\r\n }\r\n showDescription(index: number) {\r\n if (this.editIndexProject === index) {\r\n this.editIndexProject = null\r\n } else {\r\n this.editIndexProject = index\r\n }\r\n }\r\n\r\n toggleDescription(index: number) {\r\n if (this.editIndexProject === index) {\r\n this.isShowDescription = !this.isShowDescription\r\n } else {\r\n this.editIndexProject = index\r\n this.isShowDescription = true\r\n }\r\n }\r\n\r\n updateSkill(index) {\r\n this.editIndexSkill = null\r\n let updateSkill = this.consultantSkillForm.value\r\n\r\n const newSkill = {\r\n ConsultantResumeSkillId: this.candidateSkills[index]?.ConsultantResumeSkillID,\r\n ConsultantResumeID: this.consultantData.ConsultantResumeID,\r\n SkillId: this.candidateSkills[index]?.SkillId,\r\n SkillLevelId: this.candidateSkills[index]?.SkillLevelId,\r\n SkillTypeId: 151,\r\n Experience: updateSkill?.Experience,\r\n Score: this.candidateSkills[index]?.Score,\r\n Lastused: updateSkill?.Lastused || null,\r\n CreatedDate: this.candidateSkills[index]?.CreatedDate\r\n ? this.candidateSkills[index]?.CreatedDate\r\n : new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: this.candidateSkills[index]?.UpdatedDate,\r\n UpdatedBy: this.candidateSkills[index]?.UpdatedBy,\r\n IsActive: this.candidateSkills[index]?.IsActive,\r\n SkillName: updateSkill?.SkillName,\r\n SkillLevel: this.candidateSkills[index]?.SkillLevel?.toString(),\r\n Version: this.candidateSkills[index]?.Version,\r\n }\r\n this.candidateSkills[index] = newSkill\r\n this.addUpdateCandidateSkills(index)\r\n }\r\n\r\n addUpdateCandidateSkills(index?) {\r\n this.candidateSkills.forEach((skill) => {\r\n skill['ConsultantResumeID'] = this.consultantData.ConsultantResumeID\r\n })\r\n let data\r\n if (typeof index === TypeOfVariable.Number) {\r\n data = {\r\n ConsultantResumeID: this.consultantData.ConsultantResumeID,\r\n RequiredSkills: [this.candidateSkills[index]],\r\n }\r\n } else {\r\n data = {\r\n ConsultantResumeID: this.consultantData.ConsultantResumeID,\r\n RequiredSkills: [...this.candidateSkills],\r\n }\r\n }\r\n this.loading = true\r\n this.consultantService.AddResumeSkill(data).subscribe({\r\n next: (candidateSkills: any) => {\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.candidateSkills[index] = candidateSkills[0]\r\n } else {\r\n this.candidateSkills = [...candidateSkills]\r\n }\r\n this.notifyService.showSuccess(\"Skill updated successfully\",\"Skill\")\r\n this.sortSkilsData()\r\n },\r\n error:()=>{\r\n this.loading=false\r\n this.notifyService.showError(\"Error while updating skill\",\"Skill\")\r\n }\r\n })\r\n }\r\n\r\n updateSoftSkill(index) {\r\n this.editIndexSoftSkill = null\r\n let updateSkill = this.consultantSoftSkillForm.value\r\n const newSoftSkill = {\r\n ConsultantResumeSkillId: this.candidateSkills[index]?.ConsultantResumeSkillID,\r\n ConsultantResumeID: this.consultantData.ConsultantResumeID,\r\n SkillId: this.candidateSkills[index]?.SkillId,\r\n SkillLevelId: 14,\r\n SkillTypeId: 152,\r\n Experience: 2,\r\n Score: this.candidateSkills[index]?.Score,\r\n Lastused: updateSkill.Lastused || null,\r\n CreatedDate: this.candidateSkills[index]?.CreatedDate\r\n ? this.candidateSkills[index]?.CreatedDate\r\n : new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: this.candidateSkills[index]?.UpdatedDate,\r\n UpdatedBy: this.candidateSkills[index]?.UpdatedBy,\r\n IsActive: this.candidateSkills[index]?.IsActive,\r\n SkillName: updateSkill?.SkillName,\r\n SkillLevel: this.candidateSkills[index]?.SkillLevel,\r\n Version: this.candidateSkills[index]?.Version,\r\n }\r\n this.candidateSkills[index] = newSoftSkill\r\n this.addUpdateCandidateSkills(index)\r\n }\r\n\r\n updateEducation(index?) {\r\n this.editIndexEducation = null\r\n let updateEducation = this.consultantEducationForm.value\r\n this.addOrupdateEduactionData(updateEducation, index)\r\n }\r\n\r\n updateProject(project, index) {\r\n this.editIndexProject = null\r\n let consultantProject = this.consultantProjectForm.value\r\n this.addOrUpdateProjectData(consultantProject, index)\r\n }\r\n\r\n updateCertification(index) {\r\n this.editIndexCertifaction = null\r\n let updateCertification = this.consultantCertificateForm.value\r\n this.addOrUpdateCertificaitonData(updateCertification, index)\r\n }\r\n\r\n addProjectData(index?) {\r\n if (typeof index === TypeOfVariable.Number) {\r\n var editArray = [...this.consultantResumeProjectData]\r\n editArray.splice(index, 1)\r\n }\r\n const dialogInstance = this.commonMatDialogService?.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes?.Project,\r\n formData: this.consultantResumeProjectData[index] || null,\r\n allCompanies: this.allCompanies,\r\n states: this.states,\r\n projectsArray: typeof index == TypeOfVariable.Number ? editArray : this.consultantResumeProjectData,\r\n width: '40vw',\r\n isAddFlow: false,\r\n isHideFiled: true,\r\n safeHtmlContent: this.safeHtmlContent,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Project) {\r\n this.addOrUpdateProjectData(data?.formData)\r\n }\r\n })\r\n }\r\n\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n\r\n calculateExperience(from, to) {\r\n const statYear = new Date(from).getFullYear()\r\n const startMonth = new Date(from).getMonth()\r\n const endYear = new Date(to).getFullYear()\r\n const endMonth = new Date(to).getMonth()\r\n let years = endYear - statYear\r\n let month = endMonth - startMonth\r\n if (month < 0) {\r\n years--\r\n month += 12\r\n }\r\n return `${years}.${month}`\r\n }\r\n\r\n saveProjectData() {\r\n this.loading = true\r\n const data = {\r\n consultantResumeID: this.consultantData?.ConsultantResumeID,\r\n projects: this.consultantResumeProjectData,\r\n }\r\n this.consultantService\r\n .AddProjects(data)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: () => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate projects')\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving project data!', 'Candidate projects')\r\n },\r\n })\r\n }\r\n\r\n addSkillData(element?) {\r\n if (element) {\r\n var skillIndex = this.candidateSkills.findIndex((x) => x.SkillName === element.SkillName)\r\n var editArray = [...this.candidateSkills]\r\n editArray.splice(skillIndex, 1)\r\n }\r\n this.skillNames = []\r\n this.candidateSkills?.forEach((item) => {\r\n this.skillNames.push(item.SkillName)\r\n })\r\n const dialogInstance = this.commonMatDialogService?.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes?.Skill,\r\n formData: element ? element : null,\r\n skillArray: element ? editArray : this.candidateSkills,\r\n skillNameArray: this.skillNames,\r\n width: '40vw',\r\n isAddFlow: false,\r\n isTechnicalSkill: true,\r\n isHideFiled: true,\r\n safeHtmlContent: this.safeHtmlContent,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Skill) {\r\n this.candidateSkills?.forEach(\r\n (skill) => (skill.ConsultantResumeID = Common?.activeConsultant?.ConsultantResumeID)\r\n )\r\n if (element && this.candidateSkills[skillIndex]?.ConsultantResumeSkillID) {\r\n const skill = {\r\n SkillID: data.skillId,\r\n ConsultantResumeID: this.consultantData?.ConsultantResumeID,\r\n SkillName: data.formData.SkillName,\r\n Version: '',\r\n Experience: data.formData.CandidateExperience,\r\n CandidateExperience: data.formData.CandidateExperience,\r\n SkillLevelId: data.formData.CandidateSkillLevelID,\r\n SkillTypeId: 151,\r\n Lastused: data.formData?.LastUsed ? data.formData?.LastUsed : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n ConsultantResumeSkillID: this.candidateSkills[skillIndex]?.ConsultantResumeSkillID,\r\n CandidateSkillLevelID: data.formData?.CandidateSkillLevelID,\r\n }\r\n this.saveSkillsData(skill, skillIndex)\r\n } else {\r\n const newSkill = {\r\n SkillID: data.skillId,\r\n ConsultantResumeID: this.consultantData?.ConsultantResumeID,\r\n SkillName: data.formData.SkillName,\r\n Version: '',\r\n Experience: data.formData.CandidateExperience,\r\n CandidateExperience: data.formData.CandidateExperience,\r\n SkillTypeId: 151,\r\n SkillLevelId: data.formData.CandidateSkillLevelID,\r\n Lastused: data.formData?.LastUsed ? data.formData?.LastUsed : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n ConsultantResumeSkillID: 0,\r\n } // Candidate New Skill\r\n this.candidateSkills.push(newSkill)\r\n\r\n this.saveSkillsData(newSkill)\r\n }\r\n }\r\n })\r\n }\r\n addSoftSkillData(element?) {\r\n if (element) {\r\n var skillIndex = this.candidateSoftSkills.findIndex((x) => x.Name === element.Name)\r\n var editArray = [...this.candidateSoftSkills]\r\n editArray.splice(skillIndex, 1)\r\n }\r\n this.skillNames = []\r\n this.candidateSoftSkills?.forEach((item) => {\r\n this.skillNames.push(item.Name)\r\n })\r\n const dialogInstance = this.commonMatDialogService?.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes?.Skill,\r\n formData: element ? element : null,\r\n skillArray: element ? editArray : this.candidateSoftSkills,\r\n skillNameArray: this.skillNames,\r\n width: '40vw',\r\n isAddFlow: false,\r\n isHideFiled: true,\r\n isSoftSkill: true,\r\n safeHtmlContent: this.safeHtmlContent,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Skill) {\r\n this.candidateSoftSkills?.forEach(\r\n (skill) => (skill.ConsultantResumeID = this.consultantData?.ConsultantResumeID)\r\n )\r\n if (element && this.candidateSoftSkills[skillIndex]?.ConsultantResumeSkillID) {\r\n const skill = {\r\n SkillID: data.skillId,\r\n ConsultantResumeID: this.consultantData?.ConsultantResumeID,\r\n SkillName: data.formData.SkillName,\r\n Version: '',\r\n Experience: 2,\r\n CandidateExperience: data.formData.CandidateExperience,\r\n SkillLevelId: 14,\r\n SkillTypeId: 152,\r\n Lastused: data.formData?.Lastused ? data.formData?.Lastused : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n ConsultantResumeSkillID: this.candidateSoftSkills[skillIndex]?.ConsultantResumeSkillID,\r\n CandidateSkillLevelID: data.formData?.CandidateSkillLevelID,\r\n }\r\n this.saveSkillsData(skill, skillIndex)\r\n } else {\r\n const newSkill = {\r\n SkillID: data.skillId,\r\n ConsultantResumeID: this.consultantData?.ConsultantResumeID,\r\n SkillName: data.formData.SkillName,\r\n Version: '',\r\n Experience: 2,\r\n CandidateExperience: data.formData.CandidateExperience,\r\n SkillLevelId: 14,\r\n Lastused: data.formData?.Lastused ? data.formData?.Lastused : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n ConsultantResumeSkillID: 0,\r\n SkillTypeId: 152,\r\n } // Candidate New Skill\r\n this.candidateSoftSkills.push(newSkill)\r\n\r\n this.saveSkillsData(newSkill)\r\n }\r\n }\r\n })\r\n }\r\n\r\n saveSkillsData(candidateSkill, index?) {\r\n const data = {\r\n ConsultantResumeID: this.consultantData?.ConsultantResumeID,\r\n RequiredSkills: [candidateSkill],\r\n }\r\n this.loading = true\r\n this.consultantService\r\n .AddResumeSkill(data)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: () => {\r\n this.loading = false\r\n this.sortSkilsData()\r\n if (typeof index == TypeOfVariable.Number) {\r\n this.candidateSkills[index].SkillName = candidateSkill.SkillName\r\n this.candidateSkills[index].LastUsed = candidateSkill.LastUsed\r\n this.candidateSkills[index].SkillTypeId = candidateSkill.SkillTypeId\r\n this.candidateSkills[index].Experience = candidateSkill.CandidateExperience\r\n this.candidateSkills[index].CandidateExperience = candidateSkill.CandidateExperience\r\n this.candidateSkills[index].ConsultantResumeID = this.consultantData.ConsultantResumeID\r\n this.candidateSkills[index].CandidateSkillLevelID = candidateSkill.CandidateSkillLevelID\r\n }\r\n // else {\r\n // this.candidateSkills?.unshift(candidateSkill)\r\n // }\r\n // this.getSummaryData()\r\n if (this.candidateSkills > 5) this.candidateSkillsTableData.paginator = this.skillPaginator\r\n this.skillNames = this.candidateSkills?.forEach((item) => {\r\n this.skillNames.push(item.SkillName)\r\n })\r\n this._consultantDataService.triggerPercentageCalculation()\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate skills')\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving skill data!', 'Candidate skills')\r\n },\r\n })\r\n }\r\n\r\n addEducation(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Education,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidateEducation[index] : null,\r\n width: '40vw',\r\n isAddFlow: false,\r\n isHideFiled: true,\r\n safeHtmlContent: this.safeHtmlContent,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Education) {\r\n this.addOrupdateEduactionData(data.formData)\r\n }\r\n })\r\n }\r\n\r\n addCertification(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Certificate,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidateCertification[index] : null,\r\n width: '40vw',\r\n isAddFlow: false,\r\n isHideFiled: true,\r\n safeHtmlContent: this.safeHtmlContent,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Certificate) {\r\n this.addOrUpdateCertificaitonData(data.formData)\r\n }\r\n })\r\n }\r\n\r\n savaEducationCertificateData(formName) {\r\n this.loading = true\r\n if (formName === ConsultantDialogTypes.Certificate) {\r\n var dataConsultantCredentialsCertificate = {\r\n ConsultantID: this.consultantData?.ConsultantID || 0,\r\n ConsultantCertification: this.candidateCertification,\r\n }\r\n } else if (formName === ConsultantDialogTypes.Education) {\r\n var dataConsultantCredentialsEducations = {\r\n ConsultantID: this.consultantData?.ConsultantID || 0,\r\n ConsultantEducation: this.candidateEducation,\r\n }\r\n }\r\n this.consultantService\r\n .SaveConsulatantCredentials(\r\n formName === ConsultantDialogTypes.Certificate\r\n ? dataConsultantCredentialsCertificate\r\n : dataConsultantCredentialsEducations\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: () => {\r\n this.loading = false\r\n this.notifyService.showSuccess(\r\n 'Successfully saved!',\r\n formName === ConsultantDialogTypes.Certificate ? 'Certificate' : 'Education'\r\n )\r\n this._consultantDataService.triggerPercentageCalculation()\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError(\r\n 'Error saving data',\r\n formName === ConsultantDialogTypes.Certificate ? 'Certificate' : 'Education'\r\n )\r\n return\r\n },\r\n })\r\n }\r\n\r\n editConsultant() {\r\n Common.activeConsultant.CellPhone = this.consultantData.PhoneNumber\r\n Common.activeConsultant.Emailaddress = this.consultantData.EmailAddress\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Consultant,\r\n width: '40vw',\r\n consultantTypes: this.consultantTypes,\r\n legalTypes: this.legalTypes,\r\n jobTypes: this.jobTypes,\r\n allCompanies: this.allCompanies,\r\n isHide: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Consultant) {\r\n this.saveProfile(data)\r\n }\r\n // if (data?.newSkill) {\r\n // this.saveNewSkills(data?.newSkill)\r\n // }\r\n // if (data?.newProject) {\r\n // this.saveNewProjects(data?.newProject)\r\n // }\r\n })\r\n }\r\n\r\n saveProfile(data) {\r\n this.loading = true\r\n\r\n const formData = new FormData()\r\n formData.append('file', data.formData.ResumeFile)\r\n formData.append('firstName', data.formData.FirstName)\r\n formData.append('lastName', data.formData.LastName)\r\n formData.append('emailaddress', data.formData.Emailaddress)\r\n formData.append('phone', data.formData.CellPhone)\r\n formData.append('titleId', data.formData.JobTitleID > 0 ? data.formData.JobTitleID.toString() : '0')\r\n formData.append('resumeText', data.formData.resumeTxt)\r\n formData.append('resumeHTML', data.formData.resumeHTML)\r\n formData.append('experience', data.formData.Experience)\r\n formData.append('userId', this.authService.userInfo.userID)\r\n formData.append('consultantId', this.consultantData.ConsultantID.toString())\r\n\r\n this._buildConsultantModelData(data)\r\n if (!data?.isResumeChanged) {\r\n if (data?.newLocation) this.addLocation(data.consultantLocation, data.newLocation, data)\r\n else {\r\n this.saveConsultantProfileData(this.modelConsultant, data)\r\n }\r\n } else {\r\n const formData = new FormData()\r\n formData.append('file', data.formData.ResumeFile)\r\n formData.append('consultantId', this.consultantData.ConsultantID.toString())\r\n formData.append('userId', this.authService.userInfo.userID)\r\n\r\n this.consultantService\r\n .saveConsultantResume(formData)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (res: UploadResumeResponse) => {\r\n this.consultantData.ConsultantResumeID = res?.ConsultantResumeID\r\n this.consultantData.ResumeFile = res?.File\r\n Common.ResumeHTML = res?.ResumeHTML\r\n this.consultant = this.consultantData\r\n\r\n if (data?.newLocation) this.addLocation(data?.consultantLocation, data.newLocation, data)\r\n else this.saveConsultantProfileData(this.modelConsultant, data)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n }\r\n\r\n private _buildConsultantModelData(data: any) {\r\n this.modelConsultant = {} as iConsultant\r\n this.modelConsultant.Location = {} as iLocation\r\n ;(this.modelConsultant.ContactId = this.consultantData.ContactID),\r\n (this.modelConsultant.ConsultantId = this.consultantData.ConsultantId),\r\n (this.modelConsultant.FirstName = data.formData.FirstName),\r\n (this.modelConsultant.MiddleName = data.formData.MiddleName),\r\n (this.modelConsultant.LastName = data.formData.LastName),\r\n (this.modelConsultant.Emailaddress = data.formData.Emailaddress),\r\n // this.modelConsultant.PersonalEmailAddress : null,\r\n (this.modelConsultant.TitleId = this.consultantData.TitleID),\r\n (this.modelConsultant.CandidateTitle = data?.formData?.CandidateTitle),\r\n (this.modelConsultant.Dob = this.consultantData.DoB),\r\n (this.modelConsultant.Sex = this.consultantData.Sex),\r\n (this.modelConsultant.HomePhone = this.consultantData.HomePhone),\r\n (this.modelConsultant.WorkPhone = this.consultantData.WorkPhone),\r\n (this.modelConsultant.CellPhone = data?.formData?.CellPhone),\r\n (this.modelConsultant.Address1 = data?.newLocation?.Address1),\r\n (this.modelConsultant.StreetAddress = data?.newLocation?.StreetAddress),\r\n (this.modelConsultant.City = data?.newLocation?.City),\r\n (this.modelConsultant.StateID = data?.newLocation?.StateID),\r\n (this.modelConsultant.StateCode = data?.newLocation?.State),\r\n // (this.modelConsultant.StateName = data?.newLocat?ion.StateName),\r\n (this.modelConsultant.CountryID = data?.newLocation?.CountryID),\r\n (this.modelConsultant.ZipCode = data?.newLocation?.ZipCode),\r\n (this.modelConsultant.AlienNo = this.consultantData.AlienNo),\r\n (this.modelConsultant.AlienExpiryDate = this.consultantData.AlienExpiryDate),\r\n (this.modelConsultant.YoutubeUrl = this.consultantData.YoutubeUrl),\r\n (this.modelConsultant.StackUrl = this.consultantData.StackUrl),\r\n (this.modelConsultant.GitHubUrl = this.consultantData.GitHubUrl),\r\n (this.modelConsultant.LinkedinUrl = this.consultantData.LinkedinUrl),\r\n (this.modelConsultant.Relocate = this.consultantData.Relocate),\r\n (this.modelConsultant.ExpectedPayRate =\r\n data?.formData?.ExpectedPayRate != '' ? data?.formData?.ExpectedPayRate : null),\r\n (this.modelConsultant.ExpectedSalary =\r\n data?.formData?.ExpectedSalary != '' ? data?.formData?.ExpectedSalary : null),\r\n (this.modelConsultant.AvailableId = this.consultantData.AvailableId),\r\n (this.modelConsultant.Availability = this.consultantData.Availability),\r\n (this.modelConsultant.AvailableDate = this.consultantData.AvailableDate),\r\n (this.modelConsultant.EthnicityId = this.consultantData.EthnicityId),\r\n (this.modelConsultant.Disabled = this.consultantData.Disabled),\r\n (this.modelConsultant.ResumeSourceID = this.consultantData.ResumeSourceID),\r\n (this.modelConsultant.InitialSourceTypeID = this.consultantData.InitialSourceTypeID),\r\n (this.modelConsultant.SourceTypeID = this.consultantData.SourceTypeID),\r\n (this.modelConsultant.SourceID = this.consultantData.SourceID),\r\n (this.modelConsultant.Source = this.consultantData.Source),\r\n (this.modelConsultant.ImageUrl = this.consultantData.ImageUrl),\r\n (this.modelConsultant.ResumeFileId = this.consultantData.ResumeFileId),\r\n (this.modelConsultant.ResumePath = this.consultantData.ResumePath),\r\n (this.modelConsultant.Experience = data?.formData?.Experience),\r\n (this.modelConsultant.LegalTypeId = this.consultantData.LegalTypeId),\r\n (this.modelConsultant.LegalStatus = this.consultantData.LegalStatus),\r\n (this.modelConsultant.ConsultantTypeId = data?.formData?.ConsultantTypeId.join(',')),\r\n (this.modelConsultant.JobTypeId = data?.formData?.JobTypeId.join(',')),\r\n (this.modelConsultant.JobType = data?.formData?.JobType),\r\n (this.modelConsultant.SpecializedSkill = this.consultantData.SpecializedSkill),\r\n (this.modelConsultant.Education = this.consultantData.Education),\r\n (this.modelConsultant.VerificationStatusID = this.consultantData.VerificationStatusID),\r\n (this.modelConsultant.ConsultantResumeID = this.consultantData.ConsultantResumeID),\r\n (this.modelConsultant.ResumeLastUpdate = this.consultantData.ResumeLastUpdate),\r\n (this.modelConsultant.Comment = this.consultantData.Comment),\r\n (this.modelConsultant.CompanyVendorID = this.consultantData.CompanyVendorID),\r\n (this.modelConsultant.VendorContactID = this.consultantData.VendorContactID),\r\n (this.modelConsultant.RecruiterId = this.consultantData.RecruiterId),\r\n (this.modelConsultant.ResumeDate = this.consultantData.ResumeDate),\r\n (this.modelConsultant.CreatedBy = this.consultantData.CreatedBy),\r\n (this.modelConsultant.CreatedDate = this.consultantData.CreatedDate),\r\n (this.modelConsultant.UpdatedBy = this.consultantData.UpdatedBy),\r\n (this.modelConsultant.UpdatedDate = this.consultantData.UpdatedDate),\r\n (this.modelConsultant.IsActive = this.consultantData.IsActive),\r\n (this.modelConsultant.LocationID = data?.newLocation?.LocationID),\r\n (this.modelConsultant.Location.FullAddress = data?.newLocation?.FullAddress),\r\n (this.modelConsultant.ConsultantMetaData = this.consultantData.ConsultantMetaData),\r\n (this.modelConsultant.VendorCompany = data?.formData?.VendorCompany),\r\n (this.modelConsultant.VendorContact = data?.formData?.VendorContact),\r\n (this.modelConsultant.VendorEmailaddress = data?.formData?.vendorEmailAddress),\r\n (this.modelConsultant.VendorWorkPhone = data?.formData?.vendorWorkPhone),\r\n (this.modelConsultant.Contact = {\r\n ContactID: this.consultantData.ContactID,\r\n FirstName: data?.formData?.FirstName,\r\n LastName: data?.formData?.LastName,\r\n MiddleName: data?.formData?.MiddleName,\r\n EmailAddress: data?.formData?.Emailaddress,\r\n CellPhone: data?.formData?.CellPhone,\r\n TitleId: data?.formData?.TitleId,\r\n IsActive: data?.formData?.IsActive,\r\n })\r\n }\r\n\r\n saveConsultantProfileData(data, formData) {\r\n this.consultantService\r\n .saveConsultantProfile(data)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (res) => {\r\n this._handleSaveProfile(res, formData)\r\n },\r\n (error) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n addLocation(consultantLocation, newLocation, data) {\r\n try {\r\n this.loading = true\r\n if (\r\n JSON.stringify(consultantLocation) === JSON.stringify(newLocation) ||\r\n newLocation.StreetAddress == null\r\n ) {\r\n this.consultantService\r\n .saveConsultantProfile(this.modelConsultant)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this._handleSaveProfile(res, data)\r\n })\r\n this.loading = false\r\n return\r\n } else {\r\n let location = newLocation\r\n if (location == null) {\r\n location = consultantLocation\r\n }\r\n\r\n location.ObjectId = this.consultantData?.ContactID ? this.consultantData?.ContactID : null\r\n location.ObjectTypeId = 8\r\n location.LocationTypeID = this.consultant?.Location?.LocationTypeID\r\n ? this.consultant?.Location?.LocationTypeID\r\n : 149\r\n this.companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (res: iLocation) => {\r\n if (res) {\r\n this.loading = false\r\n this.consultantData.Location = res\r\n this.consultant.Location = res\r\n this.newLocation = res\r\n this.modelConsultant.Location = res\r\n this.modelConsultant.LocationID = res.LocationID\r\n this.consultantService\r\n .saveConsultantProfile(this.modelConsultant)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this._handleSaveProfile(res, data)\r\n })\r\n this.loading = false\r\n return\r\n } else {\r\n this.loading = false\r\n return false\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n return false\r\n }\r\n )\r\n return false\r\n }\r\n } catch (ex) {\r\n this.loading = false\r\n this.notifyService.showError('Error While saving', 'Candidate Profile')\r\n return false\r\n }\r\n }\r\n\r\n private _handleSaveProfile(res, data) {\r\n this.loading = true\r\n this.consultantService\r\n .GetConsultantFromEmail(data.formData.Emailaddress)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: (candidates: any) => {\r\n {\r\n if (candidates && candidates?.ContactId != this.consultantData.ContactID) {\r\n this.loading = false\r\n this.notifyService.showError('Email Already Exist!', 'Candidate Email')\r\n } else if (res != false && res?.ContactId != 0) {\r\n this.consultantData.FirstName = res?.FirstName\r\n this.consultantData.LastName = res?.LastName\r\n this.consultantData.MiddleName = res?.MiddleName\r\n this.consultantData.PhoneNumber = res?.CellPhone\r\n this.consultantData.EmailAddress = res?.Emailaddress\r\n this.consultantData.Location.FullAddress = res?.Location?.Address\r\n this.consultantData.City = res?.Location?.City\r\n this.consultantData.StateCode = res?.Location?.StateCode\r\n this.consultantData.Experience = res?.Experience\r\n this.consultantData.JobType = res?.JobType\r\n this.consultantData.CandidateTitle = data?.formData?.CandidateTitle\r\n this.consultantData.ExpectedPayRate = res?.ExpectedPayRate\r\n this.consultantData.ExpectedSalary = res?.ExpectedSalary\r\n this.consultantData.JobTypeId = res?.JobTypeId\r\n this.consultantData.YoutubeUrl = res?.YoutubeUrl\r\n this.consultantData.LinkedinUrl = res?.LinkedinUrl\r\n this.consultantData.GitHubUrl = res?.GitHubUrl\r\n this.consultantData.ConsultantType = res?.ConsultantType\r\n this.consultantData.ConsultantTypeId = res?.ConsultantTypeId\r\n this.consultantData.VendorContact = data?.formData?.VendorContact\r\n this.consultantData.VendorContactId = data?.formData?.VendorContactID\r\n this.consultantData.VendorEmailaddress = data?.formData?.vendorEmailAddress\r\n this.consultantData.VendorWorkPhone = data?.formData?.vendorWorkPhone\r\n this.consultantData.VendorCompany = data?.formData?.VendorCompany\r\n this.loading = false\r\n this.notifyService.showSuccess('Candidate profile saved sucessfully', 'Candidate Profile')\r\n Common.activeConsultant = this.consultantData\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(\r\n 'Error while saving data. Please try again later.',\r\n 'Candidate Profile'\r\n )\r\n }\r\n }\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError(\r\n 'Error while saving data. Please try again later.',\r\n 'Candidate Profile'\r\n )\r\n },\r\n })\r\n }\r\n\r\n editAllProjectData(project) {\r\n project.forEach((project) => {\r\n project.editMode = true\r\n })\r\n\r\n project.editMode = true\r\n project?.forEach((project) => {\r\n this.consultantProjectForm.patchValue({\r\n ClientName: project.ClientName,\r\n JobTitleName: project.JobTitleName,\r\n DurationFrom: project.DurationFrom ? new Date(project.DurationFrom).toISOString().substring(0, 10) : '',\r\n DurationTo: project.DurationTo ? new Date(project.DurationTo).toISOString().substring(0, 10) : '',\r\n City: project.City,\r\n State: project.StateCode,\r\n Description: project?.Description,\r\n })\r\n setTimeout(() => {\r\n const editorElement = document.querySelector(`#quill-editor-${project.id}`)\r\n\r\n if (editorElement) {\r\n const quillEditor = new Quill(editorElement, {\r\n theme: 'snow',\r\n })\r\n quillEditor.root.innerHTML = project.Description || ''\r\n\r\n // Update project description when content changes\r\n quillEditor.on('text-change', () => {\r\n project.Description = quillEditor.root.innerHTML\r\n })\r\n }\r\n })\r\n })\r\n }\r\n\r\n showPulsingIcon(index: number) {\r\n if (this.editIndexProject === index) {\r\n this.isshowPulsingIcon = true\r\n this.showDescriptionRow = true\r\n setTimeout(() => {\r\n this.isshowPulsingIcon = false\r\n }, 10) // Match the duration of the pulsing animation\r\n } else {\r\n // Show the new row and set readOnly to true\r\n this.editIndexProject = index\r\n this.isShowDescription = true // Set readOnly to true when showing a new row\r\n this.isshowPulsingIcon = false // Hide the pulsing icon initially\r\n this.showDescriptionRow = false\r\n }\r\n }\r\n\r\n showDescriptionFiled(project, index?): void {\r\n if (project !== null) {\r\n if (this.showVisibleDescription === index) {\r\n this.showVisibleDescription = null\r\n } else {\r\n this.showVisibleDescription = index\r\n }\r\n if (this.showVisibleDescription === index) {\r\n this.consultantProjectForm.patchValue({\r\n Description: project.Description,\r\n })\r\n }\r\n }\r\n }\r\n\r\n applyFilterSkill(filterValue: string) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n this.consultantService\r\n .getSkills(filterValue)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n this.skillNames = this.skillNames?.filter((item) => this.skillNameArray?.indexOf(item.Name) == -1)\r\n })\r\n }\r\n\r\n applyFilterTitle(title) {\r\n title = title.trim() // Remove whitespace\r\n this.consultantService\r\n .jobTitleSearch(title)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n degreeSelected(event: Event, degreeOptions: iKeyValue[]) {\r\n const DEGREE_NAME = degreeOptions.find(\r\n (degree) => Number(degree.Value) === Number((event.target as HTMLInputElement).value)\r\n ).Key\r\n this.consultantEducationForm.get('DegreeTypeName').setValue(DEGREE_NAME)\r\n }\r\n addOrupdateEduactionData(updateEducation, index?) {\r\n if (typeof index == TypeOfVariable.Number) {\r\n this.candidateEducation[index].Name = updateEducation.Name\r\n this.candidateEducation[index].DegreeTypeID = Number(updateEducation.DegreeTypeID)\r\n this.candidateEducation[index].DegreeTypeName = updateEducation.DegreeTypeName\r\n this.candidateEducation[index].Location = updateEducation.Location || null\r\n this.candidateEducation[index].Year = updateEducation.Year\r\n this.candidateEducation[index].Url = updateEducation.Url || ''\r\n this.candidateEducation[index].Organization = updateEducation.Organization || ''\r\n this.candidateEducation[index].ConsultantID = this.consultantData?.ConsultantID\r\n this.candidateEducation[index].ConsultantEducationID = updateEducation.ConsultantEducationID\r\n this.candidateEducation[index].IsActive = true\r\n ;(this.candidateEducation[index].UpdatedBy = this.authService.userInfo.userID),\r\n (this.candidateEducation[index].UpdatedDate = new Date())\r\n } else {\r\n const newEducation = {\r\n ConsultantEducationID: 0,\r\n ConsultantID: this.consultantData?.ConsultantID || 0,\r\n Name: updateEducation.Name,\r\n DegreeTypeID: Number(updateEducation.DegreeTypeID),\r\n DegreeTypeName: updateEducation.DegreeTypeName,\r\n Organization: updateEducation.Organization,\r\n Location: updateEducation.Location ? updateEducation.Location : null,\r\n Year: updateEducation.Year ? updateEducation.Year : null,\r\n Url: updateEducation.Url ? updateEducation.Url : null,\r\n KeyWord: '',\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.candidateEducation.push(newEducation)\r\n }\r\n this.savaEducationCertificateData(ConsultantDialogTypes.Education)\r\n }\r\n\r\n addOrUpdateCertificaitonData(updateCertification, index?) {\r\n if (typeof index == TypeOfVariable.Number) {\r\n this.candidateCertification[index].CertificationName = updateCertification.CertificationName\r\n this.candidateCertification[index].CertificateNumber = updateCertification.CertificateNumber\r\n this.candidateCertification[index].Organization = updateCertification.Organization\r\n this.candidateCertification[index].Year = updateCertification.Year\r\n this.candidateCertification[index].Url = updateCertification.Url\r\n this.candidateCertification[index].Location = updateCertification.Location\r\n this.candidateCertification[index].ConsultantID = this.consultantData?.ConsultantID\r\n this.candidateCertification[index].ConsultantCertificationID = updateCertification.ConsultantCertificationID\r\n this.candidateCertification[index].IsActive = true\r\n ;(this.candidateCertification[index].UpdatedBy = this.authService.userInfo.userID),\r\n (this.candidateCertification[index].UpdatedDate = new Date())\r\n } else {\r\n const newCertificate = {\r\n ConsultantCertificationID: 0,\r\n ConsultantID: this.consultantData.ConsultantID || 0,\r\n CertificationName: updateCertification.CertificationName,\r\n CertificateNumber: updateCertification.CertificateNumber,\r\n Organization: updateCertification.Organization,\r\n Location: updateCertification.Location ? updateCertification.Location : null,\r\n Year: updateCertification.Year ? updateCertification.Year : null,\r\n Url: updateCertification.Url ? updateCertification.Url : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.candidateCertification.push(newCertificate)\r\n }\r\n this.savaEducationCertificateData(ConsultantDialogTypes.Certificate)\r\n }\r\n\r\n addOrUpdateProjectData(consultantProject, index?) {\r\n const durationFrom = new Date(consultantProject?.DurationFrom)\r\n let durationTo\r\n if (consultantProject?.IsCurrentlyWorking) {\r\n durationTo = 'Present'\r\n } else {\r\n const date = new Date(consultantProject?.DurationTo)\r\n durationTo = `${date.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${date.getFullYear()}`\r\n }\r\n\r\n const duration = `${durationFrom.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${durationFrom.getFullYear()} - ${durationTo}`\r\n\r\n let experience\r\n if (!consultantProject.IsCurrentlyWorking) {\r\n experience = this.calculateExperience(consultantProject?.DurationFrom, consultantProject?.DurationTo)\r\n } else {\r\n experience = this.calculateExperience(consultantProject?.DurationFrom, new Date())\r\n }\r\n let projectFrom = null\r\n if (this.isValidDate(new Date(consultantProject?.DurationFrom))) {\r\n projectFrom = format(new Date(consultantProject?.DurationFrom), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n let projectTo = null\r\n if (!consultantProject?.IsCurrentlyWorking || consultantProject?.DurationTo) {\r\n if (this.isValidDate(new Date(consultantProject?.DurationTo))) {\r\n projectTo = format(new Date(consultantProject?.DurationTo), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n }\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.consultantResumeProjectData[index].ClientName = consultantProject?.ClientName\r\n this.consultantResumeProjectData[index].JobTitleName = consultantProject?.JobTitleName\r\n // this.consultantResumeProjectData[index].JobTitleId = data.formData?.JobTitleID\r\n this.consultantResumeProjectData[index].DurationFrom = projectFrom\r\n this.consultantResumeProjectData[index].DurationTo = projectTo\r\n this.consultantResumeProjectData[index].City = consultantProject?.City\r\n this.consultantResumeProjectData[index].State = consultantProject?.State\r\n this.consultantResumeProjectData[index].StateCode = consultantProject?.StateCode\r\n this.consultantResumeProjectData[index].Description = consultantProject?.Description\r\n this.consultantResumeProjectData[index].IsCurrentlyWorking = consultantProject?.IsCurrentlyWorking\r\n this.consultantResumeProjectData[index].Duration = duration\r\n // this.consultantResumeProjectData[index].ExperienceNumber = experience\r\n } else {\r\n let _consultantResumeId = 0\r\n if (this.consultantData) {\r\n _consultantResumeId =\r\n this.consultantData.ConsultantResumeID > 0 ? this.consultantData.ConsultantResumeID : 0\r\n }\r\n const newProject = {\r\n ConsultantResumeProjectId: 0,\r\n ConsultantResumeID: _consultantResumeId,\r\n JobTitleId: null,\r\n JobTitleName: consultantProject?.JobTitleName,\r\n ClientName: consultantProject?.ClientName,\r\n City: consultantProject?.City,\r\n State: consultantProject?.State, \r\n StateCode: consultantProject?.StateCode, \r\n ProjectName: null,\r\n DurationFrom: projectFrom,\r\n DurationTo: projectTo,\r\n Duration: duration,\r\n IsCurrentlyWorking: consultantProject?.IsCurrentlyWorking,\r\n ExperienceNumber: null,\r\n ExperienceTypeId: null,\r\n Description: consultantProject?.Description,\r\n CreatedBy: this.authService.userInfo.userID,\r\n }\r\n this.consultantResumeProjectData.push(newProject)\r\n }\r\n\r\n this.saveProjectData()\r\n }\r\n\r\n getAllCompanies() {\r\n this.consultantService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res: iCompany[]) => {\r\n this.allCompanies = res\r\n })\r\n }\r\n applyFilterClient(client?) {\r\n if (client == undefined || client == null) client = ''\r\n this.companies = (this.allCompanies as any[])?.filter((x) =>\r\n x.Name.toLowerCase().includes(client.trim().toLowerCase())\r\n ) as any\r\n }\r\n\r\n onSelectedCity(city) {\r\n this.consultantProjectForm.get('State').setValue(city.State)\r\n this.consultantProjectForm.get('StateCode').setValue(city.StateCode)\r\n }\r\n\r\n applyFilterCity(city) {\r\n city = city.trim() // Remove whitespace\r\n this.consultantService\r\n .getCitySearch(city)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.filterCities = res\r\n })\r\n }\r\n cancelEditSkill() {\r\n this.editIndexSkill = null\r\n }\r\n cancelEditSoftSkill() {\r\n this.editIndexSoftSkill = null\r\n }\r\n\r\n cancelEditProject() {\r\n this.editIndexProject = null\r\n this.showDescriptionFiled(null, this.editIndexProject)\r\n }\r\n\r\n cancelEditEducation() {\r\n this.editIndexEducation = null\r\n }\r\n cancelEditCertification() {\r\n this.editIndexCertifaction = null\r\n }\r\n\r\n deleteProjectModel(projectIndex: number): void {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure you want to delete this project?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.deleteProject(projectIndex)\r\n }\r\n })\r\n }\r\n\r\n deleteProject(projectIndex: number): void {\r\n const project = this.consultantResumeProjectData[projectIndex]\r\n\r\n this.loading = true\r\n this.consultantService\r\n .deleteProject(project)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: () => {\r\n this.loading = false\r\n this.consultantResumeProjectData.splice(projectIndex, 1)\r\n this.notifyService.showSuccess('Project deleted successfully', 'Candidate project')\r\n },\r\n error: (err) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while deleting project', 'Candidate project')\r\n },\r\n })\r\n }\r\n\r\n deleteSkillModel(skillIndex: number): void {\r\n // const skill = this.candidateSkills[skillIndex]\r\n\r\n // if (skill.ConsultantResumeSkillId == null || skill.ConsultantResumeSkillId == '') {\r\n // this.notifyService.showWarning('Cannot delete job skill without an ID', 'Candidate Skill')\r\n // return\r\n // }\r\n\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure you want to delete this skill?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.deleteSkill(skillIndex)\r\n }\r\n })\r\n }\r\n\r\n deleteSkill(skillIndex: number): void {\r\n const skill = this.candidateSkills[skillIndex]\r\n\r\n this.loading = true\r\n this.consultantService\r\n .deleteSkill(skill)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: () => {\r\n this.candidateSkills.splice(skillIndex, 1)\r\n this.loading = false\r\n this.notifyService.showSuccess('Record deleted successfully!', 'Candidate skills')\r\n },\r\n error: (err) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while deleting!', 'Candidate skills')\r\n },\r\n })\r\n }\r\n\r\n deleteSoftSkillModel(skillSoftIndex: number): void {\r\n // const skill = this.candidateSkills[skillSoftIndex]\r\n\r\n // if (skill.ConsultantResumeSkillId == null || skill.ConsultantResumeSkillId == '') {\r\n // this.notifyService.showWarning('Cannot delete job skill without an ID', 'Candidate Skill')\r\n // return\r\n // }\r\n\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure you want to delete this soft skill?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((confirm) => {\r\n if (confirm) {\r\n this.deleteSoftSkill(skillSoftIndex)\r\n }\r\n })\r\n }\r\n\r\n deleteSoftSkill(skillSoftIndex: number): void {\r\n const skill = this.candidateSkills[skillSoftIndex]\r\n\r\n this.loading = true\r\n this.consultantService\r\n .deleteSkill(skill)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: () => {\r\n this.candidateSkills.splice(skillSoftIndex, 1)\r\n this.loading = false\r\n this.notifyService.showSuccess('Record deleted successfully!', 'Candidate skills')\r\n },\r\n error: (err) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while deleting!', 'Candidate skills')\r\n },\r\n })\r\n }\r\n\r\n deleteEducationModel(Educationindex) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this education?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.deleteEducation(Educationindex)\r\n }\r\n })\r\n }\r\n\r\n deleteEducation(Educationindex) {\r\n let Education = this.candidateEducation[Educationindex]\r\n this.loading = true\r\n this.consultantService\r\n .deleteEducation(Education)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: (result) => {\r\n this.candidateEducation.splice(Educationindex, 1)\r\n this.loading = false\r\n this.notifyService.showSuccess('Education deleted successfully!', 'Education')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Education')\r\n },\r\n })\r\n }\r\n deleteCretificateModel(Certificateindex) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this certificate?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.deleteCertificate(Certificateindex)\r\n }\r\n })\r\n }\r\n\r\n deleteCertificate(Certificateindex) {\r\n let Certificate = this.candidateCertification[Certificateindex]\r\n this.loading = true\r\n this.consultantService\r\n .deleteCertificate(Certificate)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe({\r\n next: (result) => {\r\n this.candidateCertification.splice(Certificateindex, 1)\r\n this.loading = false\r\n this.notifyService.showSuccess('Certificate deleted successfully!', 'Certificate')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Certificate')\r\n },\r\n })\r\n }\r\n\r\n getDataForEditConsultant() {\r\n forkJoin({\r\n legalTypes: this.consultantService.getLookup('LegalTypeID'),\r\n jobTypeId: this.consultantService.getLookup('JobTypelD'),\r\n consultantTypes: this.consultantService.getLookup('ConsultantTypelD'),\r\n venders: this.consultantService.getVendors(),\r\n })\r\n .pipe(\r\n takeUntil(this.ngUnsubscribe$),\r\n catchError((err) => EMPTY)\r\n )\r\n .subscribe(({ legalTypes, jobTypeId, consultantTypes, venders }) => {\r\n this.legalTypes = legalTypes as iKeyValue[]\r\n this.jobTypes = jobTypeId as iKeyValue[]\r\n this.consultantTypes = consultantTypes as ConsultantType[]\r\n this.allCompanies = venders as Company[]\r\n })\r\n }\r\n\r\n //older one\r\n // sortSkilsData() {\r\n // this.candidateSkills = (this.candidateSkills as any[])?.sort((skillA, skillB) => {\r\n // return this.compare(skillA.SkillName.toLowerCase(), skillB.SkillName.toLowerCase(), true)\r\n // })\r\n // this.candidateSoftSkills = (this.candidateSoftSkills as any[])?.sort((skillA, skillB) => {\r\n // return this.compare(skillA.SkillName.toLowerCase(), skillB.SkillName.toLowerCase(), true)\r\n // })\r\n // }\r\n //new one\r\n sortSkilsData() {\r\n const uniqueSkillNames = new Set();\r\n this.candidateSkills = (this.candidateSkills as any[])?.filter((skillA) => {\r\n if (uniqueSkillNames.has(skillA.SkillName.toLowerCase())) {\r\n return false; \r\n }\r\n uniqueSkillNames.add(skillA.SkillName.toLowerCase());\r\n return true;\r\n }).sort((skillA, skillB) => {\r\n return this.compare(skillA.SkillName.toLowerCase(), skillB.SkillName.toLowerCase(), true);\r\n });\r\n uniqueSkillNames.clear();\r\n this.candidateSoftSkills = (this.candidateSoftSkills as any[])?.filter((skillA) => {\r\n if (uniqueSkillNames.has(skillA.SkillName.toLowerCase())) {\r\n return false;\r\n }\r\n uniqueSkillNames.add(skillA.SkillName.toLowerCase());\r\n return true;\r\n }).sort((skillA, skillB) => {\r\n return this.compare(skillA.SkillName.toLowerCase(), skillB.SkillName.toLowerCase(), true);\r\n });\r\n }\r\n \r\n compare(a: number | string, b: number | string, isAsc: boolean) {\r\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1)\r\n }\r\n setFilePath(filePath: string) {\r\n this.downloadResume = filePath\r\n if (filePath) {\r\n this.fileType = filePath.split('.').pop().toLowerCase()\r\n if (this.fileType === 'pdf') {\r\n this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(filePath)\r\n } else if (this.fileType === 'docx') {\r\n this.iframeSrc = filePath\r\n } else {\r\n this.iframeSrc = null\r\n }\r\n } else {\r\n this.iframeSrc = null\r\n }\r\n }\r\n jobTypeConvertor(jobTypeId: string) {\r\n let jobTypeArray = jobTypeId?.split(',').map((item) => {\r\n if (Number(item) == Common.enumJobContractType.JT_C2C) return JobTypes.Contract\r\n else if (Number(item) == Common.enumJobContractType.JT_C2H) return JobTypes.ContractToHire\r\n else return JobTypes.Permanent\r\n })\r\n return jobTypeArray?.join(', ')\r\n }\r\n roundExperience(value: number): number {\r\n return Math.round(value)\r\n }\r\n\r\n isCurrentlyWorkingHandler() {\r\n this.consultantProjectForm\r\n .get('IsCurrentlyWorking')\r\n .setValue(!this.consultantProjectForm.get('IsCurrentlyWorking').value)\r\n if (!this.consultantProjectForm.get('IsCurrentlyWorking').value) {\r\n this.consultantProjectForm.get('DurationTo').addValidators([Validators.required])\r\n } else {\r\n this.consultantProjectForm.get('DurationTo').clearValidators()\r\n this.consultantProjectForm.get('DurationTo').setValue(null)\r\n }\r\n this.consultantProjectForm.get('DurationTo').updateValueAndValidity()\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Projects

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Client NameJob TitleStart dateEnd dateCityState CodeActions
\r\n
\r\n \r\n {{ showVisibleDescription === i ? 'remove' : 'add' }}\r\n \r\n {{\r\n project?.ClientName | nullValueReplace\r\n }}\r\n
\r\n
\r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ project?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n {{\r\n project?.DurationFrom\r\n ? (project?.DurationFrom | date : 'MMM yyyy')\r\n : (project?.DurationFrom | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n
\r\n \r\n Currently working here!\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{\r\n project?.DurationTo\r\n ? (project?.DurationTo | date : 'MMM yyyy')\r\n : (project?.DurationTo | nullValueReplace)\r\n }}\r\n \r\n {{ project?.City | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n {{ city.City }}, {{ city.StateCode }}\r\n \r\n \r\n \r\n {{ project?.StateCode | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Skills

\r\n
\r\n
\r\n
\r\n

Technical Skills

\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Skill NameExperience (Year)Last WorkedActions
\r\n {{ Skill.SkillName | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n {{ Skill.Experience | nullValueReplace }}\r\n \r\n \r\n \r\n {{ Skill.Lastused | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Soft Skills

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{ skill.SkillName | nullValueReplace }}\r\n \r\n edit\r\n \r\n \r\n save\r\n \r\n \r\n cancel\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Education

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
DegreeNameOrganizationYearActions
\r\n {{ Educations.DegreeTypeName | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ Educations.Name | nullValueReplace }}\r\n \r\n \r\n \r\n {{ Educations.Organization | nullValueReplace }}\r\n \r\n \r\n \r\n {{ Educations.Year | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Certification

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
NameOrganizationCredential IDYearActions
\r\n {{ Certifications.CertificationName | nullValueReplace }}\r\n \r\n \r\n \r\n {{ Certifications.Organization | nullValueReplace }}\r\n \r\n \r\n \r\n {{ Certifications.CertificateNumber | nullValueReplace }}\r\n \r\n \r\n \r\n {{ Certifications.Year | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs';\r\nimport { TableColumn } from 'src/app/shared/core/interfaces/table-column.interface';\r\nimport { Consultant } from '../Consultant-list/interfaces/consultant.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Sort } from '@angular/material/sort';\r\nimport { ConsultantService } from '../consultant.service';\r\nimport { first, takeUntil } from 'rxjs/operators';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { BooleanSearchService } from 'src/app/boolean-search/boolean-search.service';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { Common } from 'src/app/common/common';\r\nimport { Subject } from 'rxjs';\r\nimport { PaginatorInformation } from 'src/app/models/paginator.model';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { CallRecordHistoryComponent } from '../call-record-history/call-record-history.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { iCallRecords } from 'src/app/models/calls.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { CallSource, CallStatus, CallType } from 'src/app/enums/callStatus';\r\n\r\n@Component({\r\n selector: 'app-consultant-calls',\r\n templateUrl: './consultant-calls.component.html',\r\n styleUrls: ['./consultant-calls.component.scss']\r\n})\r\nexport class ConsultantCallsComponent implements OnInit, OnDestroy {\r\n calls: any[] = [];\r\n isLoading: boolean;\r\n consultantList: any;\r\n pageSize = 10\r\n pageNumber = 1\r\n totalLength: number\r\n sortField: string\r\n sortOrder: string\r\n public filePath: string = ''\r\n jobId: number;\r\n pageSizeOptions: number[] = [5, 10, 20, 50]\r\n dataSource: MatTableDataSource | null\r\n private ngUnSubscribe$: Subject = new Subject()\r\n callRecord:iCallRecords\r\n isFromJobSearch: true;\r\n callRecords: any[] = [];\r\n JobList: any[] = [];\r\n jobDetails: any;\r\n jobCallRecords: any[];\r\n ;\r\n constructor(\r\n private consultantService: ConsultantService,\r\n private notifyService: NotificationService,\r\n private booleanSearchService: BooleanSearchService,\r\n private commonService: CommonService,\r\n private jobService: JobService,\r\n private dialog: MatDialog,\r\n public authService: AuthenticationService,\r\n ) { }\r\n\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n\r\n columns: TableColumn[] = [\r\n {\r\n label: 'FirstName',\r\n property: 'FirstName',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'MatchPercentage',\r\n property: 'MatchPercentage',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Specialized Skills',\r\n property: 'SpecializedSkill',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Call Type',\r\n property: 'CallType',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n }\r\n\r\n ]\r\n\r\n get visibleColumns() {\r\n return this.columns.filter((column) => column.visible).map((column) => column.property)\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getJobList();\r\n }\r\n\r\n expantItem(job, item) {\r\n item.toggle();\r\n this.jobDetails = job;\r\n this.jobId = job.JobId;\r\n this._getBooleanSearchCandidate(this.jobId);\r\n\r\n }\r\n\r\n changePage(event) {\r\n this.pageSize = event.pageSize\r\n this.pageNumber = event.pageIndex + 1\r\n const PAGE_INFORMATION: PaginatorInformation = { PageNumber: this.pageNumber, PageSize: this.pageSize }\r\n this._getBooleanSearchCandidate(this.jobId);\r\n }\r\n\r\n announceSortChange(sortState: Sort) {\r\n if (sortState.direction) {\r\n this.sortField = sortState.active\r\n this.sortOrder = sortState.direction\r\n }\r\n\r\n }\r\n\r\n private getDiceOrCachedCandidates(jobId) {\r\n var searchCriteria: any =\r\n {\r\n \"CandidateTitle\": \"\",\r\n \"CandidateDataSource\": 65,\r\n \"RequiredSkills\": [\"Angular\"],\r\n \"PreferredSkills\": [],\r\n \"ExcludedSkills\": [],\r\n \"MinimumExperience\": 0,\r\n \"MaximumExperience\": 0,\r\n \"LastUpdated\": 7,\r\n \"StateName\": \"Georgia\",\r\n \"JobId\": jobId,\r\n \"Distance\": 50,\r\n \"DistanceUnit\": \"\",\r\n \"UserId\": 100,\r\n \"LegalStatus\": \"\",\r\n \"PageNumber\": this.pageNumber,\r\n \"PageSize\": this.pageSize,\r\n \"SortField\": null,\r\n \"SortOrder\": null,\r\n \"Zipcode\": 0,\r\n \"SearchText\": \"\",\r\n \"JobTitle\": \"\",\r\n \"City\": \"Atlanta\",\r\n \"Salary\": {}\r\n }\r\n return this.consultantService.getCachedCandidates(searchCriteria);\r\n }\r\n\r\n private _getBooleanSearchCandidate(jobId) {\r\n this.isLoading = true\r\n this.getDiceOrCachedCandidates(jobId)\r\n .pipe(first(), takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (diceCandidates) => {\r\n this.dataSource = new MatTableDataSource()\r\n this.consultantList = diceCandidates\r\n if (this.consultantList && this.consultantList.length > 0) {\r\n this.totalLength = this.consultantList[0]?.TotalCount\r\n }\r\n this.isLoading = false;\r\n let callerNumber = this.authService.userInfo.phoneNumber;\r\n this.getCallRecordsByCallerNumber(callerNumber);\r\n },\r\n (err) => {\r\n if (err.status === 500) {\r\n this.isLoading = false\r\n this.notifyService.showError(\r\n 'Please contact administrator to configure the redis server',\r\n 'redis server'\r\n )\r\n } else {\r\n this.isLoading = false\r\n }\r\n }\r\n )\r\n }\r\n\r\n private getJobList() {\r\n const searchPara = { \"JobId\": null, \"JobCode\": null, \"Title\": \"\", \"Customer\": \"\", \"Contact\": null, \"JobStatus\": \"3,4\", \"IsReopened\": 0, \"JobType\": \"10,11,12\", \"PostFromDate\": null, \"PostToDate\": null, \"JobClosedFrom\": null, \"JobClosedTo\": null, \"JobStartDate\": null, \"JobEndDate\": null, \"CandidateTitle\": null, \"SkillCategory\": null, \"SkillSpecialized\": null, \"RecruiterId\": \"\", \"LocationCity\": \"\", \"LocationState\": \"\", \"UserId\": 100, \"SortField\": null, \"SortOrder\": null, \"PageNumber\": 1, \"PageSize\": 10, \"SubmitCountStatus\": \"1,2,3\" };\r\n\r\n this.jobService.getJobList(searchPara).subscribe(jobs => {\r\n this.JobList = jobs;\r\n });\r\n }\r\n\r\n onGridColumnClick(consultantId, consultantJob?, rowIndex?) {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe$.next()\r\n this.ngUnSubscribe$.complete()\r\n }\r\n\r\n getCallRecordsByCallerNumber(callerNumber: string) {\r\n this.isLoading = true;\r\n this.callRecord = {\r\n CallRecordId: 0,\r\n CallerUserId: null,\r\n CallStartTime: null,\r\n CallerNumber:callerNumber,\r\n JobId: this.jobId,\r\n CalleeContactId: null,\r\n CalleeNumber: null,\r\n CalleeEmail: null,\r\n CallStatusId: null,//Dialed\r\n CallTypeID: null,//Outbound\r\n CreatedDate:new Date(),\r\n CreatedBy: null,\r\n IsActive: true\r\n }\r\n\r\n this.consultantService.getCallRecordsByCallerNumber(this.callRecord).subscribe((res: any[]) => {\r\n this.isLoading = false;\r\n console.log(res);\r\n if (res) {\r\n this.jobCallRecords = res.filter(s => s.JobId == this.jobId);\r\n }\r\n this.consultantList.forEach(e => {\r\n let matchedCandidates = this.jobCallRecords.filter(a => (e.ConsultantID != 0 && a.ConsultantId == e.ConsultantID) || e.DiceId == a.DiceId);\r\n if (matchedCandidates.some(s => s.JobStatusId > 3)) {\r\n } else {\r\n e['CallType'] = 'Cold call'\r\n }\r\n });\r\n // filter data here \r\n this.dataSource.data = this.consultantList\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n showCallHistoryData() {\r\n // to be se caller number\r\n let callerNumber = this.authService.userInfo.phoneNumber\r\n this.jobService.getCallRecords(callerNumber).subscribe((e: any[]) => {\r\n this.callRecords = e.filter(s=>s.jobId != null);\r\n this.sortCallRecordsByStartDate();\r\n });\r\n }\r\n sortCallRecordsByStartDate(): void {\r\n this.callRecords.sort((a, b) => {\r\n return new Date(b.startDateTime).getTime() - new Date(a.startDateTime).getTime();\r\n });\r\n }\r\n\r\n openTeams(e, cellPhoneNumber: string) {\r\n const isTeamsInstalled = this.isMicrosoftTeamsInstalled()\r\n\r\n if (isTeamsInstalled) {\r\n window.location.href = 'msteams://'\r\n } else {\r\n this.makeCall(e, cellPhoneNumber)\r\n }\r\n }\r\n\r\n isMicrosoftTeamsInstalled() {\r\n return /Teams/i.test(navigator.userAgent)\r\n }\r\n\r\n makeCall(e, calleeNumber: string) {\r\n // to be set callers number\r\n let callerNumber = this.authService.userInfo.phoneNumber;\r\n if (Common.testCalleeNumber !=null) // call Test Mode\r\n calleeNumber = Common.testCalleeNumber\r\n\r\n this.callRecord = {\r\n CallRecordId: 0,\r\n CallerUserId: this.authService.userInfo.userID,\r\n CallStartTime: new Date(),\r\n CallerNumber:callerNumber,\r\n JobId: this.jobId,\r\n CalleeContactId: null,\r\n CalleeNumber: calleeNumber,\r\n CalleeEmail: null,\r\n CallStatusId: CallStatus.Dialed,//Dialed\r\n CallTypeID: CallType.Outbound,//Outbound\r\n CallSourceId: CallSource.Teams,\r\n CreatedDate:new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n IsActive: true\r\n }\r\n\r\n this.consultantService.saveInitialCallDetails(this.callRecord).subscribe(s => {\r\n });\r\n window.location.href = `tel:${calleeNumber}`\r\n }\r\n\r\n showCallHistory(e: any) {\r\n console.log(e);\r\n let dialogRef = this.dialog.open(CallRecordHistoryComponent, {\r\n width: '1200px',\r\n data: {\r\n consultantData: e, jobId: this.jobId,\r\n jobStatusID: this.jobDetails.JobStatusId\r\n },\r\n });\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n {{ item.JobId }}\r\n \r\n keyboard_arrow_down\r\n keyboard_arrow_up\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Showing {{ totalLength | number }} Candidates\r\n Results\r\n
\r\n\r\n\r\n
\r\n
0\" class=\"consultant-table-container\"\r\n [ngClass]=\"{ 'overflow-x-hidden': true }\">\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Name & Skills\r\n \r\n \r\n \r\n \r\n \r\n {{ element.FirstName | titlecase }}\r\n {{ element.LastName | titlecase }}\r\n \r\n \r\n {{ element.CandidateTitle | titlecase | slice : 0 : 30\r\n }}\r\n \r\n \r\n \r\n \r\n 0\">Match %\r\n \r\n
0\">{{ element?.MatchPercentage }}%
\r\n
\r\n Call Type\r\n \r\n
{{ element?.CallType }}\r\n \r\n \r\n \r\n
\r\n
\r\n Action\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
No candidate were found matching your search\r\n
\r\n
\r\n\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit, Renderer2 } from '@angular/core'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { CandidateDataSource } from 'src/app/enums/candidateDataSource'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Observable, Subject, Subscription, forkJoin } from 'rxjs'\r\nimport { iConsultant, iConsultantInfo, iConsultantResumeProject } from 'src/app/models/consultant.model'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { JobCandidateTab } from 'src/app/enums/jobCandidate'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { CANDIDATE_ADD_ACTION } from 'src/app/enums/userActions'\r\nimport { ConsultantDialogTypes, TypeOfVariable } from '../consultant-constants'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { iStates } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { format } from 'date-fns'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { LoadingConfig } from 'src/app/constants/loadingConstants'\r\n\r\n@Component({\r\n selector: 'consultant-card-list',\r\n templateUrl: './consultant-card-list.component.html',\r\n styleUrls: ['./consultant-card-list.component.scss'],\r\n})\r\nexport class ConsultantCardListComponent implements OnInit {\r\n baseFilePath: any\r\n diceSourceTypeValue = CandidateDataSource.Dice\r\n leapTigerSourceTypeValue = CandidateDataSource.Leaptiger\r\n isImgError: boolean = false\r\n showMoreSkills: boolean = false\r\n allCompanies: iCompany[] = []\r\n states: iStates[] = []\r\n loadingConfig = LoadingConfig\r\n selectedCandidateIndex: number = 0\r\n activeConsultant: iConsultant\r\n jobId: number = Number(Common.activeJobId)\r\n isGridClick: boolean = false\r\n isResumeSkillId: boolean = false\r\n isFromJobSearch: boolean = false\r\n jobDetails: any\r\n isFromCandidateTab: boolean = false\r\n isDiceCandidate: boolean = false\r\n workExperienceArray: iConsultantResumeProject[] = []\r\n\r\n matchedPercentage: number = 0\r\n @Input() candidate: any\r\n public loading = false\r\n candidateProject: iConsultantResumeProject[] = []\r\n candidateinfo: iConsultantInfo = {}\r\n isCandidateDataEditable$: Observable = this.consultantDataService.isCandidateDataEditable$\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n consultantResumeProjectData: iConsultantResumeProject[] = []\r\n jobSkills: [] = []\r\n private subscription: Subscription\r\n consultant: iConsultant\r\n @Input() isFromApplyJob: boolean = false\r\n candidateSkills: any = []\r\n skillNames = []\r\n\r\n private ngUnSubscribe$: Subject = new Subject()\r\n constructor(\r\n private commonService: CommonService,\r\n private consultantService: ConsultantService,\r\n private loadComponent: LoadComponent,\r\n private layoutService: LayoutService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private _renderer2: Renderer2,\r\n private consultantDataService: ConsultantDataService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n public authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private jobService: JobService\r\n ) {\r\n this.isCandidateDataEditable$ = this.consultantDataService.isCandidateDataEditable$\r\n }\r\n\r\n ngOnInit(): void {\r\n this.baseFilePath = Common.filePath\r\n\r\n if (this.candidate?.ConsultantResumeID == null) {\r\n this.isResumeSkillId = true\r\n }\r\n // this.getSummaryData()\r\n }\r\n\r\n onGridColumnClick(consultantId, consultantJob?, rowIndex?) {\r\n this.selectedCandidateIndex = rowIndex\r\n\r\n if (\r\n consultantJob?.hasOwnProperty('DiceId') &&\r\n consultantJob.DiceId != null &&\r\n (consultantId == null || consultantId == undefined || consultantId == 0)\r\n ) {\r\n this.onGridDiceColumnClick(consultantJob.DiceId, consultantJob)\r\n } else {\r\n this.consultantService\r\n .getConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n Common.activeConsultant = res\r\n this.activeConsultant = res\r\n Common.activeJobId = this.jobId\r\n this.matchedPercentage = consultantJob?.MatchPercentage\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n }\r\n\r\n onGridDiceColumnClick(consultantId, consultantJob?) {\r\n this.consultantService\r\n .getDiceConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n Common.activeConsultant = res\r\n this.activeConsultant = res\r\n Common.activeJobId = this.jobId\r\n this.matchedPercentage = consultantJob?.MatchPercentage\r\n this.openQuickpanel(true, consultantId)\r\n this.removeParams()\r\n })\r\n }\r\n\r\n openQuickpanel(isDiceCandidate?, diceId?) {\r\n if (isDiceCandidate) {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: diceId,\r\n isDice: true,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant')\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n matchedPercentage: this.matchedPercentage,\r\n diceId: diceId,\r\n isDice: true,\r\n isFromCandidateTab: this.isFromCandidateTab,\r\n })\r\n } else {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: Common.activeConsultant.ConsultantId,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant')\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n matchedPercentage: this.matchedPercentage,\r\n isFromCandidateTab: this.isFromCandidateTab,\r\n })\r\n }\r\n }\r\n removeParams() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((state) => {\r\n if (!state) {\r\n if (this.isGridClick) {\r\n this.commonService.candidateObservable$.next(true)\r\n if (this.isFromCandidateTab) {\r\n this.router.navigate(['jobs'], {\r\n queryParams: {\r\n jobId: Common.activeJob.JobId,\r\n activeTab: JobCandidateTab.Navigate_Job_Candidate_tab,\r\n },\r\n })\r\n } else {\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: null,\r\n isDice: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n }\r\n this.isGridClick = false\r\n this.isFromCandidateTab = false\r\n const script = document.getElementById('vonage-cdn')\r\n if (script) this._renderer2.removeChild(document.body, script)\r\n const vonageContainer = document.getElementsByClassName('vonage-dialer-container')[0]\r\n if (vonageContainer?.innerHTML) vonageContainer.innerHTML = ''\r\n }\r\n }\r\n })\r\n }\r\n\r\n imgScrGet(imgsrc: string): string {\r\n if (imgsrc) return this.baseFilePath + imgsrc\r\n }\r\n\r\n onImageError() {\r\n this.isImgError = true\r\n }\r\n\r\n openTeams(cellPhoneNumber: number) {\r\n const isTeamsInstalled = this.isMicrosoftTeamsInstalled()\r\n\r\n if (isTeamsInstalled) {\r\n window.location.href = 'msteams://'\r\n } else {\r\n this.makeCall(cellPhoneNumber)\r\n }\r\n }\r\n\r\n isMicrosoftTeamsInstalled() {\r\n return /Teams/i.test(navigator.userAgent)\r\n }\r\n\r\n makeCall(cellPhoneNumber: number) {\r\n window.location.href = `tel:${cellPhoneNumber}`\r\n }\r\n\r\n addEditProjectData(index?) {\r\n this.loading = true\r\n this.consultantService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res: iCompany[]) => {\r\n this.loading = false\r\n this.allCompanies = res\r\n\r\n if (typeof index === TypeOfVariable.Number) {\r\n var editArray = [...this.consultantResumeProjectData]\r\n editArray.splice(index, 1)\r\n }\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Project,\r\n formData: this.consultantResumeProjectData[index],\r\n allCompanies: this.allCompanies,\r\n states: this.states,\r\n consultantId: this.candidate.ConsultantID,\r\n candidate: this.candidate,\r\n isCardCandidate: true,\r\n projectsArray:\r\n typeof index == TypeOfVariable.Number ? editArray : this.consultantResumeProjectData,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Project) {\r\n const durationFrom = new Date(data?.formData?.DurationFrom)\r\n let durationTo\r\n if (data?.formData?.IsCurrentlyWorking) {\r\n durationTo = 'Present'\r\n } else {\r\n const date = new Date(data?.formData?.DurationTo)\r\n durationTo = `${date.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${date.getFullYear()}`\r\n }\r\n\r\n const duration = `${durationFrom.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${durationFrom.getFullYear()} - ${durationTo}`\r\n\r\n let experience\r\n if (!data.formData.IsCurrentlyWorking) {\r\n experience = this.calculateExperience(\r\n data?.formData?.DurationFrom,\r\n data?.formData?.DurationTo\r\n )\r\n } else {\r\n experience = this.calculateExperience(data?.formData?.DurationFrom, new Date())\r\n }\r\n let projectFrom = null\r\n if (this.isValidDate(new Date(data.formData?.DurationFrom))) {\r\n projectFrom = format(new Date(data.formData?.DurationFrom), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n let projectTo = null\r\n if (!data.formData?.IsCurrentlyWorking) {\r\n if (this.isValidDate(new Date(data.formData?.DurationTo))) {\r\n projectTo = format(new Date(data.formData?.DurationTo), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n }\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.consultantResumeProjectData[index].ClientName = data.formData?.ClientName\r\n this.consultantResumeProjectData[index].JobTitleName = data.formData?.JobTitleName\r\n this.consultantResumeProjectData[index].DurationFrom = projectFrom\r\n this.consultantResumeProjectData[index].DurationTo = projectTo\r\n this.consultantResumeProjectData[index].City = data.formData?.City\r\n this.consultantResumeProjectData[index].State = data.formData?.State\r\n this.consultantResumeProjectData[index].Description = data.formData?.Description\r\n this.consultantResumeProjectData[index].IsCurrentlyWorking =\r\n data.formData?.IsCurrentlyWorking\r\n this.consultantResumeProjectData[index].Duration = duration\r\n this.consultantResumeProjectData[index].ExperienceNumber = experience\r\n } else {\r\n let _consultantResumeId = 0\r\n if (this.candidate) {\r\n _consultantResumeId =\r\n this.candidate?.ConsultantResumeID > 0 ? this.candidate?.ConsultantResumeID : 0\r\n }\r\n const newProject = {\r\n ConsultantResumeProjectId: 0,\r\n ConsultantResumeID: _consultantResumeId,\r\n JobTitleId: null,\r\n JobTitleName: data.formData?.JobTitleName,\r\n ClientName: data.formData?.ClientName,\r\n City: data.formData?.City,\r\n State: data.formData?.State,\r\n ProjectName: null,\r\n DurationFrom: projectFrom,\r\n DurationTo: projectTo,\r\n Duration: duration,\r\n IsCurrentlyWorking: data.formData?.IsCurrentlyWorking,\r\n ExperienceNumber: experience,\r\n ExperienceTypeId: null,\r\n Description: data.formData?.Description,\r\n CreatedBy: this.authService.userInfo.userID,\r\n }\r\n this.consultantResumeProjectData.push(newProject)\r\n }\r\n this.saveProjectData()\r\n }\r\n })\r\n })\r\n }\r\n\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n calculateExperience(from, to) {\r\n const statYear = new Date(from).getFullYear()\r\n const startMonth = new Date(from).getMonth()\r\n const endYear = new Date(to).getFullYear()\r\n const endMonth = new Date(to).getMonth()\r\n let years = endYear - statYear\r\n let month = endMonth - startMonth\r\n if (month < 0) {\r\n years--\r\n month += 12\r\n }\r\n return `${years}.${month}`\r\n }\r\n\r\n getSummaryData(DiceId?) {\r\n let summaryDataAPI\r\n if (this.isDiceCandidate) {\r\n const DICE_CANDIDATE_ID = this.candidate?.diceId\r\n summaryDataAPI = forkJoin({\r\n candidateSummary: this.consultantService.GetDiceConsultantSummary(DICE_CANDIDATE_ID),\r\n candidateProject: this.consultantService.GetDiceConsultantResumeProjects(DICE_CANDIDATE_ID),\r\n })\r\n } else {\r\n summaryDataAPI = forkJoin({\r\n candidateSummary: this.consultantService.GetConsultantSummary(\r\n this.candidate?.ConsultantID,\r\n this.isFromApplyJob ? this.jobId : 0\r\n ),\r\n\r\n candidateProject: this.consultantService.GetConsultantResumeProjects(\r\n this.candidate?.ConsultantResumeID\r\n ),\r\n })\r\n }\r\n if (this.candidate?.ConsultantResumeID != null) {\r\n summaryDataAPI.pipe(takeUntil(this.ngUnSubscribe$)).subscribe(({ candidateSummary, candidateProject }) => {\r\n this.loading = false\r\n this.candidateSkills = candidateSummary?.SkillInfo\r\n this.consultantResumeProjectData = candidateProject as iConsultantResumeProject[]\r\n })\r\n }\r\n }\r\n saveProjectData() {\r\n this.loading = true\r\n const data = {\r\n consultantResumeID: this.candidate?.ConsultantResumeID,\r\n projects: this.consultantResumeProjectData,\r\n }\r\n this.consultantService\r\n .AddProjects(data)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate projects')\r\n this.workExperienceArray = [...this.consultantResumeProjectData]\r\n this.consultantDataService.triggerPercentageCalculation()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving project data!', 'Candidate projects')\r\n }\r\n )\r\n }\r\n\r\n addEditSkillData(element?) {\r\n if (element) {\r\n var skillIndex = this.candidateSkills.findIndex((x) => x.SkillName === element.SkillName)\r\n var editArray = [...this.candidateSkills]\r\n editArray.splice(skillIndex, 1)\r\n }\r\n this.skillNames = []\r\n this.candidateSkills?.forEach((item) => {\r\n this.skillNames.push(item.SkillName)\r\n })\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Skill,\r\n formData: element ? element : null,\r\n skillArray: element ? editArray : this.candidateSkills,\r\n skillNameArray: this.skillNames,\r\n consultantId: this.candidate.ConsultantID,\r\n candidate: this.candidate,\r\n isCardCandidate: true,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Skill) {\r\n this.candidateSkills?.forEach(\r\n (skill) => (skill.ConsultantResumeID = this.candidate?.ConsultantResumeID)\r\n )\r\n\r\n const newSkill = {\r\n SkillID: data.skillId,\r\n ConsultantResumeID: this.candidate.ConsultantResumeID,\r\n SkillName: data.formData.SkillName,\r\n Version: '',\r\n Experience: data.formData.CandidateExperience,\r\n CandidateExperience: data.formData.CandidateExperience,\r\n SkillLevelId: data.formData.CandidateSkillLevelID,\r\n LastUsed: data.formData?.LastUsed ? data.formData?.LastUsed : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n ConsultantResumeSkillID: 0,\r\n } // Candidate New Skill\r\n this.saveSkillsData(newSkill)\r\n }\r\n })\r\n }\r\n\r\n saveSkillsData(candidateSkill, index?) {\r\n const data = {\r\n ConsultantResumeID: this.candidate.ConsultantResumeID,\r\n RequiredSkills: [candidateSkill],\r\n }\r\n this.loading = true\r\n this.consultantService\r\n .AddResumeSkill(data)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n if (typeof index == TypeOfVariable.Number) {\r\n this.candidateSkills[index].SkillName = candidateSkill.SkillName\r\n this.candidateSkills[index].LastUsed = candidateSkill.LastUsed\r\n this.candidateSkills[index].Experience = candidateSkill.CandidateExperience\r\n this.candidateSkills[index].CandidateExperience = candidateSkill.CandidateExperience\r\n this.candidateSkills[index].ConsultantResumeID = Common.activeConsultant.ConsultantResumeID\r\n this.candidateSkills[index].CandidateSkillLevelID = candidateSkill.CandidateSkillLevelID\r\n } else {\r\n this.candidateSkills.unshift(candidateSkill)\r\n }\r\n this.getSummaryData()\r\n\r\n this.skillNames = this.candidateSkills.forEach((item) => {\r\n this.skillNames.push(item.SkillName)\r\n })\r\n this.consultantDataService.triggerPercentageCalculation()\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate skills')\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving skill data!', 'Candidate skills')\r\n }\r\n )\r\n }\r\n}\r\n"," \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \"Profile\r\n \r\n \r\n \r\n {{\r\n candidate && candidate.FirstName && candidate.LastName\r\n ? candidate.FirstName[0] + candidate.LastName[0]\r\n : candidate && candidate.FirstName\r\n ? candidate.FirstName[0]\r\n : candidate && candidate.LastName\r\n ? candidate.LastName[0]\r\n : ''\r\n }}\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ candidate?.FirstName }} {{ candidate?.LastName | titlecase | slice : 0 : 10 }}\r\n
\r\n \r\n {{ candidate?.CandidateTitle | titlecase | slice : 0 : 25 | nullValueReplace }}\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n more_vert\r\n
\r\n
\r\n
\r\n
\r\n \"RegionReq\"\r\n {{ candidate?.LegalStatus | nullValueReplace }}\r\n
\r\n
\r\n \"Experience\"\r\n {{ candidate?.Experience | nullValueReplace }} Yrs\r\n
\r\n
\r\n \r\n {{ candidate?.City }}, {{ candidate?.StateCode | nullValueReplace }}\r\n {{\r\n candidate?.City | nullValueReplace\r\n }}\r\n {{\r\n candidate?.StateCode | nullValueReplace\r\n }}\r\n
\r\n
\r\n \r\n {{ candidate?.ExpectedSalary | number }}/Annum\r\n {{ candidate?.ExpectedPayRate | number : '1.2-2' }}/hr\r\n
\r\n
\r\n
0\">\r\n
\r\n \r\n {{ skill }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \"Resume\"\r\n
\r\n Resume Last Updated\r\n {{ candidate.LastUpdateTime }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \"Text\"\r\n \"Download\"\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \"AddAdd Skills\r\n \r\n \r\n\r\n \r\n \r\n \"AddWork Experience\r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpHeaders, HttpRequest } from '@angular/common/http';\r\nimport { Chart, registerables } from 'chart.js';\r\nimport { Common } from 'src/app/common/common';\r\nimport { ConsultantService } from \"../consultant.service\";\r\nimport { HttpResponse } from '@angular/common/http';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nexport class ImageModel {\r\n //bytesImage:any;\r\n\r\n base64Image: any;\r\n imageName: string;\r\n fileName: string;\r\n objectId: Number;\r\n}\r\n@Component({\r\n selector: 'consultant-chart',\r\n templateUrl: './consultant-chart.component.html',\r\n styleUrls: ['./consultant-chart.component.scss']\r\n})\r\n\r\nexport class ConsultantChartComponent implements OnInit {\r\n canvas: any;\r\n ctx: any;\r\n imageSrc: string | ArrayBuffer;\r\n imageUrl: string;\r\n consultant: any;\r\n job: any\r\n candidateSkills: any[];\r\n public loading = false;\r\n imgFormData: FormData;\r\n imageData: ImageModel = new ImageModel();\r\n rChart:any\r\n constructor(\r\n private consultantService: ConsultantService,\r\n private notifyService: NotificationService,\r\n ) {\r\n Chart.register(...registerables);\r\n\r\n\r\n }\r\n skillDisplayedColumns: string[] = [\r\n \"SkillName\",\r\n \"JobExperience\",\r\n \"CandidateExperience\",\r\n \"CandidateSkillLevel\",\r\n ];\r\n ngAfterViewInit() {\r\n this.imageUrl = document.getElementsByTagName('canvas')[0].toDataURL();\r\n }\r\n ngOnInit(): void {\r\n this.getGraphData();\r\n\r\n }\r\n getGraphData() {\r\n /* test Data */\r\n let consultantId = 465;\r\n let jobId = 100124;\r\n\r\n this.consultantService\r\n .getConsultantJobSkill(consultantId,\r\n jobId\r\n )\r\n .subscribe((res) => {\r\n if (res != null) {\r\n\r\n this.candidateSkills = res;\r\n this.generateGraph(res);\r\n } else {\r\n this.candidateSkills = null;\r\n }\r\n (this.loading = false),\r\n (err: any) => {\r\n this.loading = false;\r\n console.log(err);\r\n };\r\n });\r\n }\r\n generateGraph(data) {\r\n\r\n var jobData = data.map(x => x.JobExperience);\r\n var candidateData = data.map(x => x.CandidateExperience);\r\n var label = data.map(x => x.SkillName);\r\n\r\n const backgroundcolor = [];\r\n const labels = ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange', 'Black', 'Brown', 'New'];\r\n let i;\r\n for (i = 0; i < labels.length; i++) {\r\n const r = Math.floor(Math.random() * 255);\r\n const g = Math.floor(Math.random() * 255);\r\n const b = Math.floor(Math.random() * 255);\r\n backgroundcolor.push('rgba(' + r + ',' + g + ',' + b + ',0.0)')\r\n }\r\n\r\n var canvas: any = document.getElementById(\"myChart\");\r\n Chart.defaults.font.family = \"arial\";\r\n Chart.defaults.font.size = 20;\r\n Chart.defaults.color = \"black\";\r\n Chart.defaults.plugins.legend.position = \"bottom\";\r\n //chart code\r\n var marksData = {\r\n labels: label,\r\n position: 'bottom',\r\n datasets: [\r\n {\r\n data: jobData,\r\n label: \"Job Experience\",\r\n fills: false,\r\n borderWidth: 2,\r\n backgroundColor: backgroundcolor,\r\n strokeColor: \"rgba(253,253,253,255)\",\r\n borderColor: \"rgba(63,122,162,255)\",\r\n fillColor: \"rgba(151,187,205,0.2)\",\r\n\r\n pointBackgroundColor: '#fff',\r\n pointRadius: 2,\r\n pointHitRadius: 2,\r\n pointBorderWidth: 1,\r\n pointBorderColor: \"rgba(63,122,162,255)\",\r\n pointStyle: \"circle\",\r\n legend:{\r\n backgroundColor: 'rgba(253,253,253,255)',\r\n strokeColor: \"rgba(253,253,253,255)\",\r\n borderColor: \"rgba(63,122,162,255)\",\r\n fillColor: \"rgba(151,187,205,0.2)\",\r\n }\r\n },\r\n {\r\n data: candidateData,\r\n label: \"Candidate Experience\",\r\n fills: false,\r\n borderWidth: 2,\r\n backgroundColor: backgroundcolor,\r\n\r\n strokeColor: \"rgba(151,187,205,1)\",\r\n borderColor: \"rgba(200,0,0,0.6)\",\r\n pointBackgroundColor: '#fff',\r\n pointRadius: 2,\r\n pointHitRadius: 2,\r\n pointBorderWidth: 1,\r\n pointBorderColor: \"rgba(200,0,0,0.6)\",\r\n pointStyle: \"circle\",\r\n\r\n }\r\n ]\r\n\r\n };\r\n\r\n var options = {\r\n scaleOverride: true,\r\n scaleStepWidth: 1,\r\n scaleStartValue: 0,\r\n legend: { position: 'bottom'},\r\n backgroundColor: '#cccccc',\r\n plugins: {\r\n title: {\r\n display: false,\r\n text: \"CAPABILITY ANALYSIS\",\r\n color: \"#F93\",\r\n height: 30,\r\n\r\n },\r\n legend: {\r\n display: true, \r\n labels: {\r\n color: 'black',\r\n // This more specific font property overrides the global property\r\n font: {\r\n size: 10\r\n }\r\n }\r\n }\r\n\r\n },\r\n\r\n scaleLineWidth: 16,\r\n scaleLineColor: \"#EEEEEE\",\r\n responsive: false,\r\n maintainAspectRatio: true,\r\n scales: {\r\n \r\n r: {\r\n pointLabels: {\r\n display: true // Hides the labels around the radar chart\r\n },\r\n\r\n ticks: {\r\n beginAtZero: true,\r\n min: 1,\r\n max: 10,\r\n stepSize: 4,\r\n font: {\r\n size: 16\r\n }\r\n },\r\n \r\n \r\n }\r\n }\r\n \r\n\r\n };\r\n\r\n // this.rChart = new Chart(canvas, {\r\n // type: 'radar',\r\n // data: marksData,\r\n // options: options\r\n // });\r\n\r\n\r\n\r\n }\r\n sendCandidateProfile() {\r\n\r\n let consultantjobId = 11;\r\n let userId = 1;\r\n this.consultantService.profileSkillChart(consultantjobId, Common.enumObjectTypes.ConsultantJob, 0, '', userId, 8, 19).subscribe(result => {\r\n this.notifyService.showSuccess('Email sent successfully!', 'Chart email');\r\n\r\n });\r\n\r\n }\r\n saveCanvasImage() {\r\n \r\n var imgData = new ImageModel();\r\n const base64Canvas = document.getElementsByTagName('canvas')[0].toDataURL(\"image/png\").split(';base64,')[1];\r\n imgData.base64Image = base64Canvas;\r\n imgData.objectId = 11;\r\n imgData.fileName = imgData.objectId.toString() + '.png';\r\n imgData.imageName = imgData.objectId.toString() + '.png';\r\n\r\n this.consultantService.uploadConsultantJobChart(imgData).subscribe((res) => {\r\n if (res instanceof HttpResponse) {\r\n var fileId = res.body[\"FileId\"];\r\n var dbPath = res.body[\"Path\"];\r\n if (fileId) {\r\n alert('Saved picture');\r\n\r\n }\r\n\r\n }\r\n this.loading = false;\r\n },\r\n (err: any) => {\r\n this.loading = false;\r\n\r\n\r\n }\r\n )\r\n }\r\n\r\n\r\n getJpegBytes(canvas) {\r\n return new Promise((resolve, reject) => {\r\n const fileReader = new FileReader()\r\n\r\n fileReader.addEventListener('loadend', function () {\r\n if (this.error) {\r\n reject(this.error)\r\n } else {\r\n //\r\n resolve(this.result)\r\n\r\n }\r\n })\r\n\r\n canvas.toBlob(blob => fileReader.readAsArrayBuffer(blob), 'image/jpeg')\r\n })\r\n }\r\n getBase64Image(img) {\r\n\r\n var canvas1 = document.getElementById('myChart') as HTMLCanvasElement;;\r\n var du1 = canvas1.toDataURL('image/jpeg', 1);\r\n var du2 = canvas1.toDataURL(\"image/jpeg\").split(';base64,')[1];\r\n var fullQuality = canvas1.toDataURL('image/jpeg', 1.0);\r\n var mediumQuality = canvas1.toDataURL('image/jpeg', 0.5);\r\n var lowQuality = canvas1.toDataURL('image/jpeg', 0.1);\r\n\r\n var b1 = canvas1.toDataURL('image/jpeg', 1.0).replace(\"image/png\", \"image/octet-stream\");\r\n var ctx = canvas1.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n const m1 = canvas1.toDataURL(\"image/png\");\r\n var imgData = canvas1.toDataURL();\r\n\r\n\r\n\r\n\r\n var canvas = document.createElement(\"canvas\");\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n const s1 = canvas.toDataURL(\"image/png\");\r\n var imgData = canvas.toDataURL();\r\n\r\n var v2 = document.getElementsByTagName('canvas')[0].toDataURL();\r\n //var dataURL = canvas.toDataURL(\"image/png\");\r\n var v1 = canvas.toDataURL('image/jpeg', 0.5);\r\n var dataURL = canvas.toDataURL(\"image/jpeg\").split(';base64,')[1];\r\n\r\n\r\n return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");\r\n }\r\n\r\n\r\n downloadCanvas(event) {\r\n var anchor = event.target;\r\n // get the canvas\r\n anchor.href = document.getElementsByTagName('canvas')[0].toDataURL();\r\n var abc = document.getElementsByTagName('canvas')[0].toDataURL();\r\n anchor.download = \"test.png\";\r\n const HttpUploadOptions = {\r\n headers: new HttpHeaders({ \"Content-Type\": \"multipart/form-data\" })\r\n }\r\n var url_base64jp = document.getElementsByTagName('canvas')[0].toDataURL();\r\n let formData = new FormData();\r\n formData.append('image', url_base64jp);\r\n var url = Common.apiUrl + 'api/FileUploader/candidateskillschart';\r\n const uploadReq = new HttpRequest('POST', url, JSON.stringify(formData), {\r\n reportProgress: true,\r\n \r\n });\r\n \r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n\r\n\r\nsave Graph\r\n\r\n\r\n\r\n\r\nSEND PROFILE\r\n\r\n\r\n
\r\n
\r\n DOWNLOAD THIS\r\n
\r\n\r\n
\r\n

\r\n Skills\r\n \r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Skill Name{{ element.SkillName }}Job Exp.{{ element.JobExperience | number: \"1.1-1\" }}Candidate Exp.\r\n {{ element.CandidateExperience | number: \"1.1-1\" }}\r\n Skill Rating\r\n {{ element.CandidateSkillLevel }}\r\n
\r\n \r\n No data found\r\n
\r\n
\r\n \r\n","export enum ConsultantDialogTypes {\r\n Education = 'education',\r\n Certificate = 'certificate',\r\n Patent = 'patent',\r\n Award = 'award',\r\n Publication = 'publication',\r\n Training = 'training',\r\n Project = 'project',\r\n Skill = 'skill',\r\n Reference = 'reference',\r\n Consultant = 'consultant',\r\n JobEdit = 'job-edit',\r\n Delete = 'delete',\r\n Vendor = 'vendor',\r\n VendorContact = 'vendorContact',\r\n JobStatus = 'jobStatus',\r\n Candidate_Card = 'candidate-card',\r\n Candidate_Mail_Text_Edit = 'candidate-mail-text-edit',\r\n Resume_Reference = 'resume-reference',\r\n Interview_Details = 'interview-details',\r\n Candidate_Duration_Date = 'Duration',\r\n Candidate_Status_History = \"candidate-status-history\"\r\n}\r\n\r\nexport enum DialogHeader {\r\n DeleteHeader = 'Delete Confirmation',\r\n SaveHeader = 'Save Confirmation',\r\n Delete = 'Delete',\r\n}\r\nexport interface Contact {\r\n ContactID: number\r\n ContactName: string\r\n}\r\nexport interface User {\r\n UserID: number\r\n UserName: string\r\n}\r\n\r\nexport enum TypeOfVariable {\r\n Number = 'number',\r\n String = 'string',\r\n Any = 'any',\r\n NaN = 'NaN'\r\n}\r\n\r\nexport class Resume {\r\n ConsultantID: number\r\n ConsultantResumeID: number\r\n CreatedBy: number\r\n CreatedDate: Date\r\n IsActive: boolean\r\n Projects: []\r\n ResumeLastUpdatedDate: Date\r\n ResumeText: String\r\n UpdatedBy: number\r\n UpdatedDate: Date\r\n}\r\n\r\nexport interface iConsultantSearch {\r\n SourceID?: string\r\n SourceTypeID?: number\r\n}\r\n\r\nexport enum ConsultantJobAction {\r\n Matched = 'Matched',\r\n Shortlist = 'Shortlist',\r\n Reject = 'Reject',\r\n Submit = 'Submit',\r\n Interview_Schedule = 'Interview Schedule',\r\n Withdraw = 'Withdraw',\r\n Preview = 'Preview & Submit',\r\n Approval_Pending = 'Approval pending',\r\n Approve = 'Approve',\r\n}\r\n\r\nexport enum ConsultantJobStatus {\r\n Shortlisted = 'Shortlisted',\r\n Rejected = 'Rejected',\r\n Withdrawn = 'Withdrew',\r\n Interview_Schedule = 'Interview Scheduled',\r\n Submitted = 'Submitted',\r\n Approval_Pending = 'Approval Pending',\r\n Approved = 'Approved',\r\n Preview = 'Preview & Submit',\r\n}\r\nexport enum SkillSortingOptions {\r\n Name = 'name',\r\n Rating = 'rating',\r\n CandidateExp = 'candidateExperience',\r\n JobExp = 'jobExperience',\r\n LastWorked = 'lastWorked',\r\n Rank = 'rank',\r\n MatchPercentage = 'matchPercentage',\r\n CandidateSkillLevel = 'candidateSkillLevel',\r\n}\r\n\r\nexport enum LinkType {\r\n Call = 'call',\r\n Mail = 'mail',\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n NgZone,\r\n TemplateRef,\r\n OnDestroy,\r\n Renderer2,\r\n} from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport { Router } from '@angular/router'\r\nimport {\r\n iConsultant,\r\n iConsultantEducation,\r\n iConsultantCertification,\r\n iConsultantCredentials,\r\n iConsultantEducationDatum,\r\n} from 'src/app/models/consultant.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport icAdd from '@iconify/icons-ic/twotone-add'\r\nimport icDelete from '@iconify/icons-ic/twotone-delete'\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { ConsultantDialogTypes } from '../consultant-constants'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\n\r\n@Component({\r\n selector: 'consultant-credentials',\r\n styleUrls: ['./consultant-credentials.component.scss'],\r\n templateUrl: './consultant-credentials.component.html',\r\n})\r\nexport class ConsultantCredentialsComponent implements OnInit, OnDestroy {\r\n public loading = false\r\n frmConsultant: FormGroup\r\n icAdd = icAdd\r\n icDelete = icDelete\r\n showEducationCards: boolean = false\r\n consulantEducation: iConsultantEducation[]\r\n arrayEducation: Array = []\r\n educationListArray: any = []\r\n newEducation: iConsultantEducation = {}\r\n dataEducation: iConsultantEducationDatum\r\n candidateEducation: any\r\n editEducationDialog: any\r\n education: any\r\n isEducationEdit: boolean = false\r\n educationIndexInEditMode: number\r\n\r\n educationDegreeTypeID: number\r\n educationName: string = ''\r\n educationYear: number\r\n educationOrganization: string = ''\r\n educationLocation: string = ''\r\n educationUrl: string = ''\r\n isEditEducation: boolean = false\r\n editEducationIndex: number\r\n\r\n consultantCertificationID: number\r\n certificationName: string = ''\r\n certificationYear: number\r\n certificationOrganization: string = ''\r\n certificateNumber: string = ''\r\n certificationUrl: string\r\n isEditCertification: boolean = false\r\n editCertificationIndex: number\r\n certificationListArray: any = []\r\n consulantCertification: iConsultantCertification[]\r\n arrayCertification: Array = []\r\n newCertification: iConsultantCertification = {}\r\n dataCertification: iConsultantCertification\r\n ngUnSubscribe: Subject = new Subject()\r\n\r\n dataConsultantCredentials: iConsultantCredentials\r\n consultant: iConsultant = {}\r\n currentYear: number = new Date().getFullYear()\r\n /** Save end exit button visiblity status */\r\n isSaveandExitVisible$: boolean\r\n deleteIconSrc = Common.RedDeleteIcon\r\n editIconSrc = Common.EditIcon\r\n educationColumnNames = ['DegreeTypeName', 'Name', 'Organization', 'Location', 'Url', 'Year']\r\n educationColumnWithExpand = [...this.educationColumnNames, 'Action']\r\n certificationColumnNames = ['Name', 'Organization', 'CertificateID', 'Year', 'Action']\r\n\r\n @Input() stepper: MatStepper\r\n activeConsultantId$: number\r\n isResumeDrawerOpen: boolean = false\r\n\r\n consultantEducationForm = this.fb.group({\r\n educationDegreeTypeID: ['', Validators.required],\r\n educationName: ['', Validators.required],\r\n educationYear: [''],\r\n educationOrganization: [''],\r\n educationLocation: [''],\r\n educationUrl: [''],\r\n })\r\n consultantCertificateForm = this.fb.group({\r\n ConsultantCertificationID: [''],\r\n CertificationName: ['', Validators.required],\r\n Year: ['', Validators.required],\r\n Organization: ['', Validators.required],\r\n Url: [''],\r\n CertificateNumber: [''],\r\n })\r\n @Output() consultantActiveTab: EventEmitter = new EventEmitter()\r\n EducationDataSource: MatTableDataSource\r\n CertificationDataSource: MatTableDataSource\r\n minDate: Date = new Date()\r\n\r\n constructor(\r\n private notifyService: NotificationService,\r\n public authService: AuthenticationService,\r\n private router: Router,\r\n private consultantService: ConsultantService,\r\n private consultantsService: ConsultantsService,\r\n private dialog: MatDialog,\r\n private ngZone: NgZone,\r\n private fb: FormBuilder,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private _renderer: Renderer2,\r\n private _consultantDataService: ConsultantDataService\r\n ) {\r\n this.minDate = new Date()\r\n }\r\n\r\n ngOnInit(): void {\r\n this.consultant = Common.activeConsultant\r\n this.frmConsultant = new FormGroup({})\r\n if (this.consultant != null && this.consultant != undefined) {\r\n if (this.consultant.ConsultantId > 0) {\r\n this.BindEducation(this.consultant.ConsultantId)\r\n this.BindCertification(this.consultant.ConsultantId)\r\n }\r\n }\r\n /** get Save and Exit button status */\r\n this.consultantsService\r\n .getConsultantSaveAndExitButtonStatus()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.isSaveandExitVisible$ = res\r\n })\r\n /** get Active consultant id */\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.activeConsultantId$ = res\r\n })\r\n this._subscribeForResumeDrawerChanges()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n\r\n BindEducation(consultantId) {\r\n this.consultantService\r\n .GetConsultantEducation(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.consulantEducation = res as iConsultantEducation[]\r\n var parsedEducation = Common.parseConsultantData?.ConsultantEducation\r\n\r\n if (this.consulantEducation.length !== 0) {\r\n /* show saved skills from previous resumes*/\r\n this.arrayEducation = this.consulantEducation\r\n }\r\n\r\n if (parsedEducation != undefined && parsedEducation != null) {\r\n /* append if parsed new skills*/\r\n parsedEducation.forEach((pEducation) => {\r\n var isEdu = this.consulantEducation.findIndex(\r\n (edu) => edu?.DegreeTypeID === pEducation?.DegreeTypeID\r\n )\r\n if (isEdu == -1) {\r\n pEducation.ConsultantID = consultantId\r\n this.arrayEducation.push(pEducation)\r\n }\r\n })\r\n }\r\n this.EducationDataSource = new MatTableDataSource(this.arrayEducation)\r\n this.educationListArray = this.EducationDataSource\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n BindCertification(consultantId) {\r\n this.consultantService\r\n .GetConsultantCertification(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.consulantCertification = res as iConsultantCertification[]\r\n var parsedCertification = Common.parseConsultantData?.ConsultantCertification\r\n\r\n\r\n\r\n \r\n if (this.consulantCertification.length !== 0) {\r\n /* show saved certificate from previous resumes*/\r\n this.arrayCertification = this.consulantCertification\r\n }\r\n if (parsedCertification != undefined && parsedCertification != null) {\r\n /* append if parsed new certificate*/\r\n parsedCertification.forEach((pCertificate) => {\r\n var isCert= this.consulantCertification.findIndex(\r\n (cert) => cert?.CertificationID === pCertificate?.CertificationID\r\n )\r\n if (isCert == -1) {\r\n pCertificate.ConsultantID = consultantId\r\n this.arrayCertification.push(pCertificate)\r\n }\r\n })\r\n }\r\n\r\n this.CertificationDataSource = new MatTableDataSource(this.arrayCertification)\r\n this.certificationListArray = this.CertificationDataSource\r\n\r\n\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n\r\n addEducationHandler(element: any) {\r\n this.consultantEducationForm.patchValue(element)\r\n if (!this.isEducationEdit) {\r\n this.educationListArray.push(element)\r\n this.showEducationCards = true\r\n } else {\r\n this.educationListArray[this.educationIndexInEditMode] = element\r\n this.isEducationEdit = false\r\n }\r\n this.arrayEducation = []\r\n this.addEducationRow()\r\n }\r\n\r\n openEditMode(education, index) {\r\n this.isEducationEdit = true\r\n this.educationIndexInEditMode = index\r\n this.arrayEducation = []\r\n this.arrayEducation.push(education)\r\n }\r\n\r\n bindEducationData() {\r\n this.educationDegreeTypeID = this.consultantEducationForm.get('educationDegreeTypeID').value\r\n this.educationName = this.consultantEducationForm.get('educationName').value\r\n this.educationYear = this.consultantEducationForm.get('educationYear').value\r\n this.educationOrganization = this.consultantEducationForm.get('educationOrganization').value\r\n this.educationUrl = this.consultantEducationForm.get('educationUrl').value\r\n this.educationLocation = this.consultantEducationForm.get('educationLocation').value\r\n }\r\n\r\n addEducationRow() {\r\n if (this.consultantEducationForm.valid) {\r\n if (this.isEditEducation) {\r\n this.EducationDataSource = new MatTableDataSource(this.arrayEducation)\r\n } else {\r\n this.newEducation = {\r\n ConsultantEducationID: 0,\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n Name: this.educationName,\r\n DegreeTypeID: this.educationDegreeTypeID,\r\n DegreeTypeName: '',\r\n Organization: this.educationOrganization,\r\n Location: this.educationLocation ? this.educationLocation : null,\r\n Year: this.educationYear ? this.educationYear : null,\r\n Url: this.educationUrl,\r\n KeyWord: '',\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.arrayEducation.push(this.newEducation)\r\n this.dialog.closeAll()\r\n this.EducationDataSource = new MatTableDataSource(this.arrayEducation)\r\n }\r\n this.educationDegreeTypeID = null\r\n this.educationName = ''\r\n this.educationOrganization = ''\r\n this.educationYear = null\r\n this.educationLocation = ''\r\n this.educationUrl = ''\r\n this.isEditEducation = false\r\n return true\r\n } else {\r\n this.consultantEducationForm.markAllAsTouched()\r\n }\r\n }\r\n\r\n removeEducationRow(index) {\r\n if (this.arrayEducation.length == 1) {\r\n this.arrayEducation.splice(index, 1)\r\n this.dialog.closeAll()\r\n this.EducationDataSource = new MatTableDataSource(this.arrayEducation)\r\n // this.addEducationRow()\r\n } else {\r\n this.arrayEducation.splice(index, 1)\r\n this.dialog.closeAll()\r\n this.EducationDataSource = new MatTableDataSource(this.arrayEducation)\r\n }\r\n this.educationDegreeTypeID = null\r\n this.educationName = ''\r\n this.educationOrganization = ''\r\n this.educationYear = null\r\n this.educationLocation = ''\r\n this.educationUrl = ''\r\n this.isEditEducation = false\r\n }\r\n\r\n bindCertificateData() {\r\n this.consultantCertificationID = this.consultantCertificateForm.get('ConsultantCertificationID').value\r\n this.certificationName = this.consultantCertificateForm.get('CertificationName').value\r\n this.certificationYear = this.consultantCertificateForm.get('Year').value\r\n this.certificationOrganization = this.consultantCertificateForm.get('Organization').value\r\n this.certificationUrl = this.consultantCertificateForm.get('Url').value\r\n this.certificateNumber = this.consultantCertificateForm.get('CertificateNumber').value\r\n }\r\n\r\n addCertificationRow() {\r\n if (this.consultantCertificateForm.valid) {\r\n this.bindCertificateData()\r\n if (this.isEditCertification) {\r\n this.arrayCertification[this.editCertificationIndex].CertificationName = this.certificationName\r\n this.arrayCertification[this.editCertificationIndex].CertificateNumber = this.certificateNumber\r\n this.arrayCertification[this.editCertificationIndex].Year = this.certificationYear\r\n this.arrayCertification[this.editCertificationIndex].Organization = this.certificationOrganization\r\n this.arrayCertification[this.editCertificationIndex].Url = this.certificationUrl\r\n this.dialog.closeAll()\r\n this.CertificationDataSource = new MatTableDataSource(this.arrayCertification)\r\n } else {\r\n this.newCertification = {\r\n ConsultantCertificationID: 0,\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n CertificationName: this.certificationName,\r\n CertificateNumber: this.certificateNumber,\r\n Organization: this.certificationOrganization,\r\n Location: null,\r\n Year: this.certificationYear,\r\n Url: this.certificationUrl,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.arrayCertification.push(this.newCertification)\r\n this.dialog.closeAll()\r\n this.CertificationDataSource = new MatTableDataSource(this.arrayCertification)\r\n }\r\n this.consultantCertificationID = null\r\n this.certificationYear = null\r\n this.certificationName = ''\r\n this.certificateNumber = ''\r\n this.certificationOrganization = ''\r\n this.certificationUrl = ''\r\n this.isEditCertification = false\r\n return true\r\n } else {\r\n this.consultantCertificateForm.markAllAsTouched()\r\n }\r\n }\r\n removeCertificationRow(index) {\r\n if (this.arrayCertification.length == 1) {\r\n this.arrayCertification.splice(index, 1)\r\n this.dialog.closeAll()\r\n this.CertificationDataSource = new MatTableDataSource(this.arrayCertification)\r\n // this.addCertificationRow()\r\n } else {\r\n this.arrayCertification.splice(index, 1)\r\n this.dialog.closeAll()\r\n this.CertificationDataSource = new MatTableDataSource(this.arrayCertification)\r\n }\r\n this.consultantCertificationID = null\r\n this.certificationYear = null\r\n this.certificationName = null\r\n this.certificationOrganization = null\r\n this.certificateNumber = null\r\n this.certificationUrl = null\r\n this.isEditCertification = false\r\n }\r\n\r\n saveCredentials() {\r\n if (this.arrayEducation.length === 0) {\r\n this.notifyService.showError('Please add at least 1 Education detail!', 'Educations and Certifications')\r\n return\r\n }\r\n this.loading = true\r\n this.dataConsultantCredentials = {\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n ConsultantEducation: this.arrayEducation,\r\n ConsultantCertification: this.arrayCertification,\r\n }\r\n this.consultantService\r\n .SaveConsulatantCredentials(this.dataConsultantCredentials)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.consultantActiveTab.emit(4)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.editable = true\r\n this.stepper.selected.completed = true\r\n this.stepper.next()\r\n })\r\n this.notifyService.showSuccess('Successfully saved!', 'Educations and Certifications')\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Educations and Certifications')\r\n return\r\n }\r\n )\r\n\r\n Common.activeJob = null\r\n }\r\n\r\n saveAndExit() {\r\n this.saveCredentials()\r\n }\r\n\r\n resetEduForm() {\r\n this.consultantEducationForm.reset()\r\n }\r\n\r\n resetCertForm() {\r\n this.consultantCertificateForm.reset()\r\n }\r\n\r\n openDialog(templateRef) {\r\n const dialogRef = this.dialog.open(templateRef, {\r\n width: '700px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n addEditEducation(index?) {\r\n this._disableClickForBody()\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Education,\r\n formData: typeof index == 'number' ? this.arrayEducation[index] : null,\r\n hasBackdrop: this.isResumeDrawerOpen ? false : true,\r\n isAddFlow: true,\r\n },\r\n })\r\n\r\n if (this.isResumeDrawerOpen) {\r\n const resumeContainerWidth = document.getElementById('resume-container')?.clientWidth\r\n const screenWidth = window.screen.width\r\n const dialogLeftPosition = (screenWidth - resumeContainerWidth) / 100\r\n\r\n dialogInstance.updatePosition({\r\n left: `${dialogLeftPosition + 1}%`,\r\n })\r\n }\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n this._enableClickForBody()\r\n if (data.formName === ConsultantDialogTypes.Education) {\r\n if (typeof index == 'number') {\r\n this.arrayEducation[index] = data.formData\r\n } else {\r\n const newEducation = {\r\n ConsultantEducationID: 0,\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n Name: data.formData.Name,\r\n DegreeTypeID: data.formData.DegreeTypeID,\r\n DegreeTypeName: data.formData.DegreeTypeName,\r\n Organization: data.formData.Organization,\r\n Location: data.formData.Location ? data.formData.Location : null,\r\n Year: data.formData.Year ? data.formData.Year : null,\r\n Url: data.formData.Url ? data.formData.Url : null,\r\n KeyWord: '',\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.arrayEducation.push(newEducation)\r\n }\r\n this.EducationDataSource = new MatTableDataSource(this.arrayEducation)\r\n this.saveData('Educations')\r\n }\r\n })\r\n }\r\n\r\n saveData(formName) {\r\n this.loading = true\r\n this.dataConsultantCredentials = {\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n ConsultantEducation: this.arrayEducation,\r\n ConsultantCertification: this.arrayCertification,\r\n }\r\n this.consultantService\r\n .SaveConsulatantCredentials(this.dataConsultantCredentials)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', formName)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', formName)\r\n return\r\n }\r\n )\r\n }\r\n\r\n addEditCertification(index?) {\r\n this._disableClickForBody()\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Certificate,\r\n formData: typeof index == 'number' ? this.arrayCertification[index] : null,\r\n hasBackdrop: this.isResumeDrawerOpen ? false : true,\r\n isAddFlow: true,\r\n },\r\n })\r\n\r\n if (this.isResumeDrawerOpen) {\r\n const resumeContainerWidth = document.getElementById('resume-container')?.clientWidth\r\n const screenWidth = window.screen.width\r\n const dialogLeftPosition = (screenWidth - resumeContainerWidth) / 100\r\n\r\n dialogInstance.updatePosition({\r\n left: `${dialogLeftPosition + 1}%`,\r\n })\r\n }\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n this._enableClickForBody()\r\n if (data.formName === ConsultantDialogTypes.Certificate) {\r\n if (typeof index == 'number') {\r\n this.arrayCertification[index] = data.formData\r\n } else {\r\n const newCertificate = {\r\n ConsultantCertificationID: 0,\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n CertificationName: data.formData.CertificationName,\r\n CertificateNumber: data.formData.CertificateNumber,\r\n Organization: data.formData.Organization,\r\n Location: data.formData.Location ? data.formData.Location : null,\r\n Year: data.formData.Year ? data.formData.Year : null,\r\n Url: data.formData.Url ? data.formData.Url : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.arrayCertification.push(newCertificate)\r\n }\r\n this.CertificationDataSource = new MatTableDataSource(this.arrayCertification)\r\n this.saveData('Certificates')\r\n }\r\n })\r\n }\r\n\r\n goToprev() {\r\n this.stepper.previous()\r\n }\r\n\r\n openEducationConfirmationDialog(educationToDeleteIndex) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Are you sure you want to delete this education?`,\r\n Header: 'Delete',\r\n ButtonText: 'Delete',\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isConfirm) => {\r\n if (isConfirm) {\r\n this.removeEducationRow(educationToDeleteIndex)\r\n }\r\n })\r\n }\r\n openCertificateConfirmationDialog(certificateToDeleteIndex) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Are you sure you want to delete this certificate?`,\r\n Header: 'Delete',\r\n ButtonText: 'Delete',\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isConfirm) => {\r\n if (isConfirm) {\r\n this.removeCertificationRow(certificateToDeleteIndex)\r\n }\r\n })\r\n }\r\n goToPrevious() {\r\n this.stepper.previous()\r\n }\r\n\r\n private _disableClickForBody() {\r\n this._renderer.setStyle(document.body, 'pointer-events', 'none')\r\n }\r\n\r\n private _enableClickForBody() {\r\n this._renderer.removeStyle(document.body, 'pointer-events')\r\n }\r\n\r\n private _subscribeForResumeDrawerChanges() {\r\n this._consultantDataService.isResumeDrawerIsOpenSubject$\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((isOpen: boolean) => {\r\n this.isResumeDrawerOpen = isOpen\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Add Education \r\n\r\n close\r\n
\r\n
\r\n
\r\n
\r\n Degree*\r\n \r\n \r\n Masters\r\n Bachelors\r\n High School\r\n Vocational School \r\n Other School \r\n \r\n \r\n Degree is required\r\n \r\n \r\n
\r\n
\r\n Name\r\n \r\n \r\n \r\n \r\n \r\n Degree name is required\r\n \r\n \r\n
\r\n
\r\n Year \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Organization \r\n \r\n \r\n \r\n
\r\n
\r\n Location\r\n \r\n \r\n \r\n
\r\n
\r\n URL Link\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ isEditEducation ? 'Update' : 'Add' }}\r\n \r\n \r\n Cancel\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Education
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ column == 'DegreeTypeName' ? 'Degree' : column }}\r\n {{ element[column] }}Action\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Add Certificate \r\n close\r\n
\r\n
\r\n
\r\n
\r\n Name*\r\n \r\n \r\n \r\n Certificate name is required\r\n \r\n \r\n
\r\n
\r\n Year\r\n *\r\n \r\n \r\n \r\n \r\n Year is required\r\n \r\n \r\n
\r\n\r\n
\r\n Organization\r\n *\r\n \r\n \r\n \r\n \r\n Organization is required\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Credential ID\r\n \r\n \r\n \r\n
\r\n
\r\n URL Link\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ isEditCertification ? 'Update' : 'Add' }}\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Certification
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n {{ element.CertificationName }}\r\n Organization\r\n {{ element.Organization }}\r\n Certificate ID\r\n {{ element.CertificateNumber }}\r\n Year\r\n {{ element.Year }}\r\n Action\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n
\r\n
\r\n \r\n Save & Next\r\n \r\n \r\n
\r\n \r\n
\r\n","import { Injectable } from '@angular/core'\r\nimport { BehaviorSubject } from 'rxjs'\r\nimport { Resume } from './consultant-constants'\r\n\r\n@Injectable()\r\nexport class ConsultantDataService {\r\n constructor() {}\r\n\r\n private diceCandidateResume$: BehaviorSubject = new BehaviorSubject(null)\r\n private profileCompletePercentage$: BehaviorSubject = new BehaviorSubject(0)\r\n private mandatoryFieldsForProfile$: BehaviorSubject = new BehaviorSubject(0)\r\n private complectedProfileFields$: BehaviorSubject = new BehaviorSubject(0)\r\n private calculatePercentage$: BehaviorSubject = new BehaviorSubject(0)\r\n private resumeDrawerSubject$: BehaviorSubject = new BehaviorSubject(false)\r\n public resumeDrawerSubjectChanges$ = this.resumeDrawerSubject$.asObservable()\r\n private isResumeDrawerIsOpen$: BehaviorSubject = new BehaviorSubject(false)\r\n public isResumeDrawerIsOpenSubject$ = this.isResumeDrawerIsOpen$.asObservable()\r\n\r\n // Handling Edit state for dice candidate\r\n private _isCandidateDataEditable$: BehaviorSubject = new BehaviorSubject(false)\r\n public isCandidateDataEditable$ = this._isCandidateDataEditable$.asObservable()\r\n\r\n setDiceCandidateResume(resume) {\r\n this.diceCandidateResume$.next(resume)\r\n }\r\n\r\n getDiceCandidateResume() {\r\n return this.diceCandidateResume$.asObservable()\r\n }\r\n\r\n addMandatoryFields(fields) {\r\n this.mandatoryFieldsForProfile$.next(fields)\r\n }\r\n\r\n addComplectedProfileFields(fields) {\r\n this.complectedProfileFields$.next(fields)\r\n }\r\n\r\n getProfileCompletePercentage() {\r\n return this.profileCompletePercentage$.asObservable()\r\n }\r\n\r\n resetProfileSubject() {\r\n this.profileCompletePercentage$.next(0)\r\n }\r\n\r\n calculatePercentage() {\r\n return this.calculatePercentage$.asObservable()\r\n }\r\n\r\n triggerPercentageCalculation() {\r\n this.calculatePercentage$.next(this.calculatePercentage$.getValue() + 1)\r\n }\r\n\r\n calculateProfileComplectedPercentage() {\r\n let percentage = (this.complectedProfileFields$.value / this.mandatoryFieldsForProfile$.value) * 100\r\n percentage = Math.round(percentage)\r\n this.profileCompletePercentage$.next(percentage)\r\n }\r\n\r\n setResumeDrawerSubject(value: boolean) {\r\n this.resumeDrawerSubject$.next(value)\r\n }\r\n\r\n setIsResumeDrawerOpenSubject(isOpen: boolean) {\r\n this.isResumeDrawerIsOpen$.next(isOpen)\r\n }\r\n\r\n setEditStateForCandidate(isCanEdit: boolean) {\r\n this._isCandidateDataEditable$.next(isCanEdit)\r\n }\r\n}\r\n","import { HttpResponse, HttpStatusCode } from '@angular/common/http'\r\nimport { Component, Inject, OnDestroy, OnInit, Renderer2 } from '@angular/core'\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n ValidationErrors,\r\n ValidatorFn,\r\n Validators,\r\n} from '@angular/forms'\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Common, MenuCode } from 'src/app/common/common'\r\nimport { ConsultantType as CONSULTANT_TYPE } from 'src/app/common/common'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { DialogFormMethod } from 'src/app/company/company-constants'\r\nimport { FilesTypes, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { iKeyValue, iMenuItem, iStates } from 'src/app/models/common.model'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { ConsultantType, iConsultant, iConsultantJob, iConsultantResumeProject } from 'src/app/models/consultant.model'\r\nimport { Contact, iContact } from 'src/app/models/contact.model'\r\nimport { iJob, iSkills, JobTitle, JobType, User } from 'src/app/models/job.model'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { LocationService } from 'src/app/services/location.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { ConsultantDialogTypes } from '../consultant-constants'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { ResumeKeywords } from 'src/app/enums/resumeKeywords'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { ActivatedRoute } from '@angular/router'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CompanyType, CompanyTypeNames } from 'src/app/enums/companyType'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { MarkupTypeIds, MarkupTypeNames } from 'src/app/enums/markupType'\r\nimport { JobSettingType } from 'src/app/enums/jobSettingType'\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { InterviewDetails } from 'src/app/models/interview-details'\r\nimport { InterviewTypeText, InterviewTypeId } from 'src/app/enums/interviewTypeIds'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { animate, state, style, transition, trigger } from '@angular/animations'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\n\r\n@Component({\r\n selector: 'leap-consultant-dialog',\r\n templateUrl: './consultant-dialog.component.html',\r\n styleUrls: ['./consultant-dialog.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class ConsultantDialogComponent implements OnInit, OnDestroy {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n private fb: FormBuilder,\r\n public route: ActivatedRoute,\r\n private consultantService: ConsultantService,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private locationService: LocationService,\r\n private jobService: JobService,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private renderer: Renderer2,\r\n private _sanitizer: DomSanitizer,\r\n private _consultantDataService: ConsultantDataService\r\n ) {\r\n this.minStartDate = new Date()\r\n this.minEndDate = new Date()\r\n this.userRoleId = authService.getCurrentUserRole()\r\n }\r\n\r\n public get dialogTypes(): typeof ConsultantDialogTypes {\r\n return ConsultantDialogTypes\r\n }\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get fileTypes(): typeof FilesTypes {\r\n return FilesTypes\r\n }\r\n\r\n public get locationCalledFrom(): typeof LocationCalledFrom {\r\n return LocationCalledFrom\r\n }\r\n\r\n public get jobTypesEnum(): typeof JobTypes {\r\n return JobTypes\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n public get interviewTypeIds(): typeof InterviewTypeId {\r\n return InterviewTypeId\r\n }\r\n\r\n public get candidateStatusTypes(): typeof MenuCode {\r\n return MenuCode\r\n }\r\n\r\n public get UserRoleIds(): typeof UserRoleId {\r\n return UserRoleId\r\n }\r\n\r\n getCompanyTypes() {\r\n this.companyService\r\n .GetCompanyType()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.companyTypes = res\r\n })\r\n }\r\n\r\n ngUnSubscribe: Subject = new Subject()\r\n consultantEducationForm: FormGroup\r\n consultantCertificateForm: FormGroup\r\n consultantPatentForm: FormGroup\r\n consultantPublicationForm: FormGroup\r\n consultantTrainingForm: FormGroup\r\n consultantAwardForm: FormGroup\r\n consultantProjectForm: FormGroup\r\n consultantSkillForm: FormGroup\r\n consultantReferenceForm: FormGroup\r\n consultantForm: FormGroup\r\n jobEditForm: FormGroup\r\n vendorForm: FormGroup\r\n vendorContactForm: FormGroup\r\n candidateJobStatusForm: FormGroup\r\n durationForm: FormGroup\r\n activeCompanyId: number\r\n clickedNewFrom: string\r\n statusFilter: iMenuItem[] = []\r\n jobStatusId: number\r\n\r\n dialogName: string\r\n action: string = DialogFormMethod.Add\r\n method: string = 'Add'\r\n submitButtonText: string = 'Add'\r\n uploadingDialog: any\r\n formData: any\r\n loading: boolean = false\r\n currentYear: number = new Date().getFullYear()\r\n degreeOption$ = this.consultantService.getLookup('DegreeTypeID')\r\n skillLevelOption$ = this.consultantService.getLookup('SkillLevelID')\r\n projectsArray: iConsultantResumeProject[] = []\r\n states: iStates[] = []\r\n allCompanies: iCompany[] = []\r\n filteredStates: iStates[] = []\r\n filterCities: any[] = []\r\n titles: JobTitle[] = []\r\n companies: iCompany[] = []\r\n minProjectEndDate: Date\r\n\r\n skillArray: iSkills[] = []\r\n skillNames: iSkills[] = []\r\n skillNameArray: string[] = []\r\n contactsList: iContact[] = []\r\n\r\n consultant: iConsultant\r\n imageSrc: string | ArrayBuffer\r\n changedImageSrc: string | ArrayBuffer\r\n imageInfo: string\r\n isResumeBlank: boolean = false\r\n isResumeUploaded: boolean = false\r\n isImageUploaded: boolean = false\r\n ResumeInfo: string\r\n imagefile: File\r\n imgFrmData: FormData\r\n companyTypes: any\r\n isCalledFromStepper: boolean = false\r\n vendorModel: any = {}\r\n contact: any = {}\r\n activeCompany: iCompany\r\n selectedCompanyTypeID: number = 74\r\n SKILL_ID: number\r\n\r\n searchCompanyTypeText: string = 'Vendor'\r\n consultantStatus: string\r\n isImageChanged: boolean = false\r\n file: any\r\n consultantLocation: iLocation = {} as iLocation\r\n filePath: string\r\n public editLocationSubject: Subject = new Subject()\r\n consultantTypes: ConsultantType[]\r\n availableConsultantTypes: ConsultantType[]\r\n legalTypes: iKeyValue[]\r\n genericButtonValue = [\r\n { Value: true, viewValue: 'Yes' },\r\n { Value: false, viewValue: 'No' },\r\n ]\r\n loadVendorView: boolean = false\r\n jobTypeId: number\r\n contacts: Contact[]\r\n jobTypes: JobType\r\n isJobTypePermanent: boolean\r\n isJobTypeContract: boolean\r\n isJobTypeC2H: boolean\r\n minimumPayRate: number = 7.25\r\n maxBillRate: number = 999\r\n isPayRangeValid: boolean = false\r\n job: iJob = Common.activeJob\r\n recruiters: User[] = []\r\n companyVendorID: number\r\n vendorContactId: number\r\n deleteMethod: string\r\n resetFormInput: boolean\r\n resumeName: string\r\n isResumeChanged: boolean = false\r\n resumeLastUpdatedDate: Date\r\n candidateNewProjects: iConsultantResumeProject[] = []\r\n candidateProjectNames: string[] = []\r\n candidateNewSkills: iSkills[] = []\r\n candidateSkillNames: string[] = []\r\n candidate: iConsultant\r\n employmentType: string[] = []\r\n\r\n markTypeValue: number\r\n markupType = MarkupTypeIds\r\n candidateNotesFormControl: FormControl = new FormControl('', [Validators.maxLength(25000)])\r\n isConsultantDialogVisible: boolean = true\r\n activeConsultantJob: iConsultantJob = {} as iConsultantJob\r\n sourceTypes: iKeyValue[]\r\n safeHtmlContent: SafeHtml = ''\r\n isResumeAvailable: boolean = false\r\n isAddFlow: boolean = false\r\n isTechnicalSkill: boolean\r\n isSoftSkill: boolean\r\n interviewDetailsData: InterviewDetails[]\r\n candidateName: string\r\n candidateEmail: string\r\n interviewTypeText = InterviewTypeText\r\n minStartDate: Date = new Date()\r\n minEndDate: Date = new Date()\r\n matcher = new CustomErrorStateMatcher()\r\n isFormViewDisable: boolean = false\r\n consultantTypeId: number\r\n columnNames = ['UpdatedDate', 'ClientRate', 'PayRate', 'UpdatedBy', 'Status']\r\n expandedElement: any | null\r\n columnNamesWithExpand = [...this.columnNames, 'expand']\r\n candidateHistoryDataSource: MatTableDataSource = new MatTableDataSource()\r\n userRoleId: number\r\n isDialogForStatusChange: boolean = false\r\n changedStatus: string\r\n isHideFiled: boolean = false\r\n isHide: boolean = false\r\n safeHtmlContentResume: SafeHtml | null = null\r\n\r\n ngOnInit(): void {\r\n this.isCalledFromStepper = this.route.snapshot['_routerState'].url.split('/')[2] == 'add' ? true : false\r\n this.dialogName = this.data?.dialogName\r\n this.isAddFlow = this.data?.isAddFlow\r\n this.isTechnicalSkill = this.data?.isTechnicalSkill\r\n this.isSoftSkill = this.data?.isSoftSkill\r\n this.isHide = this.data?.isHide\r\n this.buildForms()\r\n this.formData = this.data?.formData\r\n this.states = this.data?.states\r\n this.projectsArray = this.data?.projectsArray\r\n this.skillArray = this.data?.skillArray\r\n this.skillNameArray = this.data?.skillNameArray\r\n this.isHideFiled = this.data?.isHideFiled\r\n this.safeHtmlContentResume = this.data?.safeHtmlContent\r\n this.contactsList = this.data?.contactsList\r\n this.consultantTypes = this.availableConsultantTypes = this.data?.consultantTypes\r\n this.legalTypes = this.data?.legalTypes\r\n this.contacts = this.data?.contacts\r\n this.jobTypes = this.data?.jobTypes\r\n this.deleteMethod = this.data?.deleteMethod\r\n this.resumeLastUpdatedDate = this.data?.resumeUpdateDate\r\n this.candidateNewSkills = this.data?.newSkills\r\n this.candidateNewProjects = this.data?.newProject\r\n this.candidate = this.data?.consultant\r\n this.isDialogForStatusChange = this.data?.isDialogForStatusChange\r\n this.changedStatus = this.data?.changedStatus\r\n if (this.candidateNewProjects) {\r\n this.candidateProjectNames = this.candidateNewProjects\r\n .map((project) => {\r\n if (project?.ProjectName != null) return project?.ProjectName\r\n })\r\n .slice(0, 4)\r\n .filter((projectName) => projectName != null || projectName != undefined)\r\n }\r\n if (this.candidateNewSkills) {\r\n this.candidateSkillNames = this.candidateNewSkills\r\n .map((skill) => {\r\n if (skill?.Name != null) return skill?.Name\r\n })\r\n .filter((skillName) => skillName != null || skillName != undefined)\r\n }\r\n if (this.formData) {\r\n this.action = DialogFormMethod.Update\r\n this.method = 'Edit'\r\n this.submitButtonText = 'Update'\r\n }\r\n if (this.candidate) {\r\n if (this.candidate?.ConsultantTypeId.includes(CONSULTANT_TYPE.CAN_W2.toString())) {\r\n this.employmentType.push('W2')\r\n }\r\n if (this.candidate?.ConsultantTypeId.includes(CONSULTANT_TYPE.CAN_C2C.toString())) {\r\n this.employmentType.push('C2C')\r\n }\r\n }\r\n this.bindFormData()\r\n if (this.dialogName == ConsultantDialogTypes.Interview_Details) {\r\n this.getInterviewDetails(this.data?.candidateJobId)\r\n this.candidateName = this.data?.candidateName\r\n this.candidateEmail = this.data?.candidateEmail\r\n this.job = Common.activeJob\r\n }\r\n if (this.data?.isFormViewOnly) {\r\n this._disableForms()\r\n this.isFormViewDisable = true\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n\r\n buildForms() {\r\n switch (this.dialogName) {\r\n case ConsultantDialogTypes.Education: {\r\n if (!this.isAddFlow) {\r\n this.consultant = Common.activeConsultant\r\n this.BindResume(Common?.activeConsultant?.ConsultantId)\r\n }\r\n this.initEducationForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Certificate: {\r\n if (!this.isAddFlow) {\r\n this.consultant = Common.activeConsultant\r\n this.BindResume(Common?.activeConsultant?.ConsultantId)\r\n }\r\n this.initCertificateForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Project: {\r\n this.getCompaniesAndState()\r\n if (!this.isAddFlow) {\r\n if (this.data.isCardCandidate) {\r\n this.consultant = this.data.candidate\r\n const CONSULTANT_ID = this.data.consultantId\r\n this.BindResume(CONSULTANT_ID)\r\n } else {\r\n this.consultant = Common?.activeConsultant\r\n this.BindResume(Common?.activeConsultant?.ConsultantId)\r\n }\r\n }\r\n this.initProjectForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Skill: {\r\n if (!this.isAddFlow) {\r\n if (this.data.isCardCandidate) {\r\n this.consultant = this.data.candidate\r\n const CONSULTANT_ID = this.data.consultantId\r\n this.BindResume(CONSULTANT_ID)\r\n } else {\r\n this.consultant = Common.activeConsultant\r\n this.BindResume(Common?.activeConsultant?.ConsultantId)\r\n }\r\n }\r\n this.initSkillForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Reference: {\r\n if (!this.isAddFlow) {\r\n this.consultant = Common.activeConsultant\r\n this.BindResume(Common.activeConsultant.ConsultantId)\r\n }\r\n this.initReferenceForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Vendor: {\r\n this.initVendorForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Patent: {\r\n this.initPatententForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Award: {\r\n this.initAwardForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Publication: {\r\n this.initPublicationForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Training: {\r\n this.initTrainingForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.VendorContact: {\r\n this.consultantTypeId = this.data?.consultantTypeId\r\n this.initVendorContactForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.JobStatus: {\r\n this.initCandidateJobStatusForm()\r\n break\r\n }\r\n case ConsultantDialogTypes.Consultant: {\r\n if (this.isHide) {\r\n this.initStandAloneConsultantForm()\r\n } else {\r\n this.initConsultantForm()\r\n }\r\n this.consultant = Common.activeConsultant\r\n this.consultantLocation = Common?.activeConsultant?.Location\r\n this.filePath = Common.filePath\r\n if (Common?.activeConsultant?.ImageUrl) {\r\n this.imageSrc = this.filePath + Common.activeConsultant.ImageUrl\r\n }\r\n if (this.consultantForm?.get('ResumeFile') != null) {\r\n if (this.consultant?.ResumePath != null && this.consultant?.ResumePath != undefined)\r\n this.consultantForm?.get('ResumeFile').setValue(this.filePath + this.consultant?.ResumePath)\r\n }\r\n this.resumeName = Common?.activeConsultant?.ResumePath?.split('\\\\')[1]\r\n this.getRecruiters()\r\n this.consultantService\r\n .getLookup('ResumeSourceID')\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.sourceTypes = res as iKeyValue[]\r\n })\r\n break\r\n }\r\n case ConsultantDialogTypes.JobEdit:\r\n case ConsultantDialogTypes.Candidate_Mail_Text_Edit: {\r\n this.activeConsultantJob = Common.activeConsultantJob\r\n this.job = Common.activeJob\r\n this.maxBillRate = Common.activeJob.MaxBillRate\r\n this.initJobEditForm()\r\n this.getCompanyMarkUpValue()\r\n this.getRecruiters()\r\n if (\r\n this.activeConsultantJob.ConsultantTypeID === Common.enumConsultantType.CAN_C2C ||\r\n this.activeConsultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2O\r\n ) {\r\n this.getVendors()\r\n }\r\n if (this.activeConsultantJob.CompanyVendorID) {\r\n this.companyChangeAction(this.activeConsultantJob.CompanyVendorID)\r\n }\r\n if (Number(Common.activeJob?.MaxBillRate) > 0) {\r\n this.maxBillRate = Common.activeJob.MaxBillRate\r\n } else {\r\n this.maxBillRate = null\r\n this.jobEditForm.get('BillRate').clearValidators()\r\n this.jobEditForm.get('BillRate').updateValueAndValidity()\r\n }\r\n if (this.dialogName === ConsultantDialogTypes.Candidate_Mail_Text_Edit) {\r\n this.isConsultantDialogVisible = false\r\n }\r\n if (this.job.JobTypeID === JobTypes.Contract) {\r\n this.jobEditForm.get('BillRate').clearValidators()\r\n this.jobEditForm.get('BillRate').updateValueAndValidity()\r\n this.jobEditForm.get('PayRate').clearValidators()\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n }\r\n break\r\n }\r\n case ConsultantDialogTypes.Candidate_Duration_Date: {\r\n this.initCandidateDurationForm()\r\n this.activeConsultantJob = Common.activeConsultantJob\r\n const ACTIVE_JOB = Common.activeJob\r\n this.durationForm.get('StartDate').setValue(ACTIVE_JOB?.StartDate)\r\n this.durationForm.get('EndDate').setValue(ACTIVE_JOB?.EndDate)\r\n break\r\n }\r\n case ConsultantDialogTypes.Candidate_Status_History: {\r\n this.activeConsultantJob = Common.activeConsultantJob\r\n this.job = Common.activeJob\r\n this.getCandidateJobHistory(this.data?.jobId, this.data?.candidateId)\r\n break\r\n }\r\n }\r\n }\r\n\r\n async bindFormData() {\r\n switch (this.dialogName) {\r\n case ConsultantDialogTypes.Education: {\r\n this.consultantEducationForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Certificate: {\r\n this.consultantCertificateForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Patent: {\r\n this.consultantPatentForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Publication: {\r\n this.consultantPublicationForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Training: {\r\n this.consultantTrainingForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Award: {\r\n this.consultantAwardForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Project: {\r\n this.consultantProjectForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Skill: {\r\n this.consultantSkillForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.Reference: {\r\n this.consultantReferenceForm.patchValue(this.formData)\r\n break\r\n }\r\n case ConsultantDialogTypes.JobStatus: {\r\n this.jobTypeId = this.formData?.JobTypeID\r\n if (this.jobTypeId == this.jobTypesEnum.Permanent) {\r\n this.candidateJobStatusForm.controls['PayRate'].clearValidators()\r\n this.candidateJobStatusForm.controls['BillRate'].clearValidators()\r\n this.candidateJobStatusForm.controls['PayRate'].updateValueAndValidity()\r\n this.candidateJobStatusForm.controls['BillRate'].updateValueAndValidity()\r\n } else {\r\n this.candidateJobStatusForm.controls['Salary'].clearValidators()\r\n this.candidateJobStatusForm.controls['Salary'].updateValueAndValidity()\r\n }\r\n this.candidateJobStatusForm.patchValue(this.formData)\r\n this.jobStatusId = this.formData.ConsultantJobStatusID\r\n await this.getJobByID(Common.activeConsultantJob.JobID).then((job) => {\r\n this.job = job\r\n Common.activeJob = job\r\n if (Number(Common.activeJob?.MaxBillRate) > 0) {\r\n this.maxBillRate = Common.activeJob.MaxBillRate\r\n } else {\r\n this.maxBillRate = null\r\n this.candidateJobStatusForm.get('BillRate').clearValidators()\r\n this.candidateJobStatusForm.get('BillRate').updateValueAndValidity()\r\n }\r\n })\r\n await this.getMinimumPayRate(\r\n Common.activeConsultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n Common.activeConsultantJob.ConsultantTypeID,\r\n Common.activeConsultantJob.BillRate,\r\n Common.activeConsultantJob.PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n this.candidateJobStatusForm.get('PayRate').updateValueAndValidity()\r\n })\r\n if (this.formData != null) {\r\n let consultantTypeids\r\n if (this.formData.ConsultantTypeID != null) consultantTypeids = this.formData.ConsultantTypeID\r\n this.consultantTypeChange(consultantTypeids)\r\n this.candidateJobStatusForm.get('ConsultantTypeID').setValue(consultantTypeids)\r\n }\r\n break\r\n }\r\n case ConsultantDialogTypes.VendorContact: {\r\n this.activeCompany = this.formData\r\n break\r\n }\r\n case ConsultantDialogTypes.Consultant: {\r\n if (Common.activeConsultant?.VendorCompany?.length > 0)\r\n this.activeCompany = this.allCompanies?.filter(\r\n (item) => item.Name == Common.activeConsultant?.VendorCompany\r\n )[0]\r\n this.consultantForm.patchValue(Common.activeConsultant)\r\n this.consultantForm.get('JobTitleName').setValue(Common?.activeConsultant?.CandidateTitle)\r\n if (Common.activeConsultant?.ResumeDate != null)\r\n this.consultantForm.get('ResumeDate').setValue(Common.activeConsultant?.ResumeDate)\r\n else this.consultantForm.get('ResumeDate').setValue(new Date().toISOString())\r\n if (Common.activeConsultantJob?.JobID > 0) {\r\n this.showConsultantJobData()\r\n } else {\r\n this.showConsultantTypeData()\r\n }\r\n if (Common.activeConsultant?.VendorCompany) {\r\n this.companyChangeAction(Common?.activeConsultant?.CompanyVendorId)\r\n }\r\n this.consultantForm\r\n .get('LegalTypeId')\r\n .setValue(Common.activeConsultant.LegalTypeId === 0 ? '' : Common.activeConsultant.LegalTypeId)\r\n\r\n this.consultantForm\r\n .get('Experience')\r\n .setValue(\r\n Common.activeConsultant.Experience === 0 || Common.activeConsultant.Experience === null\r\n ? ''\r\n : Math.round(Common?.activeConsultant?.Experience)\r\n )\r\n\r\n this.consultantForm\r\n .get('ExpectedPayRate')\r\n .setValue(\r\n Common.activeConsultant.ExpectedPayRate === 0 ||\r\n Common.activeConsultant.ExpectedPayRate === null\r\n ? ''\r\n : Common.activeConsultant.ExpectedPayRate\r\n )\r\n this.consultantForm\r\n .get('ExpectedSalary')\r\n .setValue(\r\n Common.activeConsultant.ExpectedSalary === 0 || Common.activeConsultant.ExpectedSalary === null\r\n ? ''\r\n : Common.activeConsultant.ExpectedSalary\r\n )\r\n this.consultantForm\r\n .get('JobTypeId')\r\n .setValue(\r\n Common.activeConsultant.JobTypeId && Common.activeConsultant.JobTypeId?.length\r\n ? Common.activeConsultant.JobTypeId.split(',').map(Number)\r\n : ''\r\n )\r\n this.consultantForm.patchValue(this.formData)\r\n\r\n break\r\n }\r\n case ConsultantDialogTypes.JobEdit:\r\n case ConsultantDialogTypes.Candidate_Mail_Text_Edit: {\r\n if (this.formData != null && this.formData != undefined) this.jobEditForm.patchValue(this.formData)\r\n await this.getMinimumPayRate(\r\n Common.activeConsultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n Common.activeConsultantJob.ConsultantTypeID,\r\n Common.activeConsultantJob.BillRate,\r\n Common.activeConsultantJob.PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n this.jobEditForm\r\n .get('PayRate')\r\n .setValidators([Validators.required, Validators.min(this.minimumPayRate)])\r\n }\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n })\r\n this.validControlView(Common.activeJob.JobTypeID, Common.activeConsultantJob.ConsultantTypeID)\r\n if (Common?.activeConsultantJob?.SummaryNote) {\r\n this.candidateNotesFormControl.setValue(Common?.activeConsultantJob?.SummaryNote)\r\n }\r\n break\r\n }\r\n }\r\n }\r\n\r\n private _disableForms() {\r\n switch (this.dialogName) {\r\n case ConsultantDialogTypes.Education: {\r\n this.consultantEducationForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Certificate: {\r\n this.consultantCertificateForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Patent: {\r\n this.consultantPatentForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Publication: {\r\n this.consultantPublicationForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Training: {\r\n this.consultantTrainingForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Award: {\r\n this.consultantAwardForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Project: {\r\n this.consultantProjectForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Skill: {\r\n this.consultantSkillForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Reference: {\r\n this.consultantReferenceForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Consultant: {\r\n this.consultantForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.JobEdit:\r\n case ConsultantDialogTypes.Candidate_Mail_Text_Edit: {\r\n this.jobEditForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Vendor: {\r\n this.vendorForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.VendorContact: {\r\n this.vendorContactForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.JobStatus: {\r\n this.candidateJobStatusForm.disable()\r\n break\r\n }\r\n case ConsultantDialogTypes.Candidate_Duration_Date: {\r\n this.durationForm.disable()\r\n break\r\n }\r\n }\r\n }\r\n\r\n resetForm() {\r\n switch (this.dialogName) {\r\n case ConsultantDialogTypes.Education: {\r\n this.consultantEducationForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Certificate: {\r\n this.consultantCertificateForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Patent: {\r\n this.consultantPatentForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Publication: {\r\n this.consultantPublicationForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Training: {\r\n this.consultantTrainingForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Award: {\r\n this.consultantAwardForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Project: {\r\n this.consultantProjectForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Skill: {\r\n this.consultantSkillForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Reference: {\r\n this.consultantReferenceForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Consultant: {\r\n this.consultantForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.JobEdit:\r\n case ConsultantDialogTypes.Candidate_Mail_Text_Edit: {\r\n this.jobEditForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Vendor: {\r\n this.vendorForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.VendorContact: {\r\n this.vendorContactForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.JobStatus: {\r\n this.candidateJobStatusForm.reset()\r\n break\r\n }\r\n case ConsultantDialogTypes.Candidate_Duration_Date: {\r\n this.durationForm.reset()\r\n break\r\n }\r\n }\r\n }\r\n\r\n initEducationForm() {\r\n this.consultantEducationForm = this.fb.group({\r\n ConsultantID: [''],\r\n Name: [''],\r\n DegreeTypeID: ['', Validators.required],\r\n DegreeTypeName: ['', Validators.required],\r\n Organization: [''],\r\n Location: [''],\r\n Year: ['', Validators.max(this.currentYear)],\r\n KeyWord: [''],\r\n CreatedBy: [''],\r\n CreatedDate: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [new Date()],\r\n IsActive: [''],\r\n ConsultantEducationID: [''],\r\n Url: [''],\r\n })\r\n }\r\n\r\n initCertificateForm() {\r\n this.consultantCertificateForm = this.fb.group({\r\n ConsultantCertificationID: [''],\r\n ConsultantID: [''],\r\n CertificationID: [''],\r\n CertificateNumber: [''],\r\n CertificationName: ['', Validators.required],\r\n Year: [''],\r\n Organization: [''],\r\n Location: [''],\r\n Url: [''],\r\n CreatedBy: [''],\r\n CreatedDate: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [new Date()],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n initProjectForm() {\r\n this.consultantProjectForm = this.fb.group({\r\n ConsultantResumeID: [''],\r\n JobTitleId: [''],\r\n ClientName: ['', Validators.required],\r\n ProjectName: [''],\r\n City: [''],\r\n State: [''],\r\n StateCode: [''],\r\n DurationTo: [''],\r\n Duration: [''],\r\n ExperienceNumber: [''],\r\n ExperienceTypeId: [''],\r\n Description: [''],\r\n CreatedDate: [''],\r\n CreatedBy: [''],\r\n ConsultantResumeProjectId: [''],\r\n UpdatedDate: [''],\r\n UpdatedBy: [''],\r\n IsCurrentlyWorking: [false],\r\n IsActive: [''],\r\n ConsultantResume: [''],\r\n JobTitleName: ['', Validators.required],\r\n Country: [''],\r\n linenoDuration: [''],\r\n tempClientName: [''],\r\n linenoTitle: [''],\r\n linenoLocation: [''],\r\n linenoClientName: [''],\r\n DurationFrom: [''],\r\n })\r\n }\r\n\r\n initSkillForm() {\r\n this.consultantSkillForm = this.fb.group({\r\n SkillName: ['', Validators.required],\r\n JobExperience: [''],\r\n Required: [''],\r\n JobSkillLevelID: [''],\r\n JobSkillLevel: [''],\r\n CandidateExperience: ['', Validators.required],\r\n LastUsed: ['', [Validators.max(this.currentYear)]],\r\n CandidateSkillLevelID: ['', Validators.required],\r\n Rank: [''],\r\n SkillID: [''],\r\n })\r\n if (this.isSoftSkill) {\r\n this.consultantSkillForm.get('CandidateExperience')?.clearValidators()\r\n this.consultantSkillForm.get('CandidateExperience')?.updateValueAndValidity()\r\n this.consultantSkillForm.get('LastUsed')?.clearValidators()\r\n this.consultantSkillForm.get('LastUsed')?.updateValueAndValidity()\r\n this.consultantSkillForm.get('CandidateSkillLevelID')?.clearValidators()\r\n this.consultantSkillForm.get('CandidateSkillLevelID')?.updateValueAndValidity()\r\n }\r\n }\r\n\r\n initReferenceForm() {\r\n this.consultantReferenceForm = this.fb.group({\r\n CompanyName: [''],\r\n ConsultantID: [''],\r\n ConsultantReferenceID: [''],\r\n CreatedBy: [''],\r\n CreatedDate: [new Date()],\r\n EmailAddress: ['', Validators.email],\r\n IsActive: [true],\r\n Name: [''],\r\n Title: [''],\r\n WorkPhone: [''],\r\n CellPhone: [''],\r\n CompanyId: [''],\r\n JobTitle: [''],\r\n ContactId: [''],\r\n })\r\n }\r\n\r\n initVendorForm() {\r\n this.vendorForm = this.fb.group({\r\n Name: ['', Validators.required],\r\n Phone: ['', [Validators.pattern(/^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/), Validators.required]],\r\n WebSite: ['', [Validators.required]],\r\n CompanyType: [''],\r\n })\r\n this.getCompanyTypes()\r\n this.selectedCompanyTypeID = CompanyType.Vendor\r\n this.searchCompanyTypeText = CompanyTypeNames.Vendor\r\n }\r\n\r\n initPatententForm() {\r\n this.consultantPatentForm = this.fb.group({\r\n ConsultantID: [Common.activeConsultant.ConsultantId, Validators.required],\r\n PatentName: ['', Validators.required],\r\n PatentNumber: ['', Validators.required],\r\n CreatedDate: [new Date()],\r\n UpdatedDate: [new Date()],\r\n CreatedBy: [this.authService.userInfo.userID],\r\n UpdatedBy: [this.authService.userInfo.userID],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n initPublicationForm() {\r\n this.consultantPublicationForm = this.fb.group({\r\n ConsultantID: [Common.activeConsultant.ConsultantId, Validators.required],\r\n PublicationName: ['', Validators.required],\r\n Subject: [''],\r\n PublicationDate: [''],\r\n Publisher: [''],\r\n CreatedDate: [new Date()],\r\n UpdatedDate: [new Date()],\r\n CreatedBy: [this.authService.userInfo.userID],\r\n UpdatedBy: [this.authService.userInfo.userID],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n initTrainingForm() {\r\n this.consultantTrainingForm = this.fb.group({\r\n ConsultantID: [Common.activeConsultant.ConsultantId, Validators.required],\r\n TrainingName: ['', Validators.required],\r\n Description: [''],\r\n TrainingType: [''],\r\n Category: [''],\r\n Level: [''],\r\n StartDate: [''],\r\n EndDate: [''],\r\n Location: [''],\r\n Duration: [''],\r\n CreatedDate: [new Date()],\r\n CreatedBy: [this.authService.userInfo.userID],\r\n UpdatedBy: [this.authService.userInfo.userID],\r\n UpdatedDate: [new Date()],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n initAwardForm() {\r\n this.consultantAwardForm = this.fb.group({\r\n ConsultantID: [Common.activeConsultant.ConsultantId, Validators.required],\r\n AwardName: ['', Validators.required],\r\n Organization: [''],\r\n Year: [''],\r\n Location: [''],\r\n Description: [''],\r\n CreatedDate: [],\r\n UpdatedDate: [new Date()],\r\n CreatedBy: [this.authService.userInfo.userID],\r\n UpdatedBy: [this.authService.userInfo.userID],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n initVendorContactForm() {\r\n this.vendorContactForm = this.fb.group({\r\n FirstName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z]+$/)]],\r\n LastName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z]+$/)]],\r\n WorkPhone: ['', [Validators.pattern(/^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/), Validators.required]],\r\n EmailAddress: new FormControl('', {\r\n validators: [\r\n Validators.pattern(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/),\r\n Validators.required,\r\n this._isSameEmailLikeCandidate(),\r\n ],\r\n }),\r\n })\r\n\r\n if (this.consultantTypeId === CONSULTANT_TYPE.CAN_C2O) {\r\n this.vendorContactForm.get('EmailAddress').clearValidators()\r\n this.vendorContactForm\r\n .get('EmailAddress')\r\n .setValidators([\r\n Validators.pattern(/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/),\r\n Validators.required,\r\n ])\r\n this.vendorContactForm.get('EmailAddress').updateValueAndValidity()\r\n }\r\n }\r\n\r\n initCandidateJobStatusForm() {\r\n this.candidateJobStatusForm = this.fb.group({\r\n BillRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.max(this.maxBillRate)(control)],\r\n ],\r\n PayRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.min(this.minimumPayRate)(control)],\r\n ],\r\n ConsultantTypeID: ['', Validators.required],\r\n Salary: ['', Validators.required],\r\n VendorContactName: [''],\r\n VendorContactID: [0],\r\n VendorCompanyId: [''],\r\n VendorName: [''],\r\n MenuCode: [''],\r\n ConsultantJobStatusID: [''],\r\n })\r\n this.consultantService.getLookup('ConsultantTypelD').subscribe((res) => {\r\n this.availableConsultantTypes = this.consultantTypes = res as ConsultantType[]\r\n })\r\n this.statusFilter = this.commonService.menuItems\r\n }\r\n\r\n initConsultantForm() {\r\n this.consultantForm = this.fb.group({\r\n ConsultantId: [''],\r\n ContactId: [''],\r\n FirstName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z'-\\s]+$/)]],\r\n MiddleName: [null, Validators.pattern(/^[a-zA-Z'-\\s]+$/)],\r\n LastName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z'-\\s]+$/)]],\r\n Emailaddress: ['', Validators.required],\r\n TitleId: [null],\r\n CandidateTitle: [''],\r\n DoB: [null],\r\n Sex: [null],\r\n HomePhone: [null],\r\n WorkPhone: [null],\r\n CellPhone: [''],\r\n Address: [null],\r\n StreetAddress: [null],\r\n City: [null],\r\n StateID: [null],\r\n StateCode: [null],\r\n StateName: [null],\r\n CountryID: [null],\r\n ZipCode: [null],\r\n AlienNo: [null],\r\n AlienExpiryDate: [null],\r\n YoutubeUrl: [null],\r\n StackUrl: [null],\r\n GitHubUrl: [null],\r\n LinkedinUrl: [null],\r\n Relocate: [true],\r\n ExpectedPayRate: [''],\r\n ExpectedSalary: [''],\r\n AvailableId: [''],\r\n Availability: [''],\r\n AvailableDate: [null],\r\n EthnicityId: [null],\r\n Disabled: [null],\r\n ResumeSourceID: ['', Validators.required],\r\n SourceID: [''],\r\n Source: [''],\r\n ImageUrl: [null],\r\n ResumeFileId: [0],\r\n ResumeFile: [''],\r\n ResumePath: [null],\r\n Experience: [''],\r\n LegalTypeId: ['', Validators.required],\r\n LegalStatus: [''],\r\n ConsultantType: [null],\r\n JobTypeId: ['', Validators.required],\r\n JobType: [''],\r\n JobTitleName: [''],\r\n JobTitleID: [''],\r\n SpecializedSkill: [''],\r\n Education: [''],\r\n VerificationStatusId: [''],\r\n VerificationStatus: [''],\r\n ConsultantResumeID: [],\r\n ResumeLastUpdate: [''],\r\n Comment: [null],\r\n VendorContactID: [0],\r\n RecruiterId: [null],\r\n CreatedBy: [1],\r\n CreatedDate: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [new Date()],\r\n IsActive: [true],\r\n LocationID: [null],\r\n Location: {\r\n LocationID: [0],\r\n LocationTypeID: [0],\r\n ObjectId: [0],\r\n ObjectTypeId: [0],\r\n Address: [''],\r\n Address1: [''],\r\n StreetAddress: [''],\r\n City: [''],\r\n StateID: [0],\r\n ZipCode: [0],\r\n CreatedDate: [''],\r\n CreatedBy: [1],\r\n UpdatedDate: [new Date()],\r\n UpdatedBy: [0],\r\n IsActive: [true],\r\n FullAddress: [null],\r\n StateCode: [''],\r\n State: [''],\r\n },\r\n ConsultantMetaData: [''],\r\n resumeTxt: [''],\r\n resumeHTML: [''],\r\n resumeId: [''],\r\n fileAttr: ['Choose Resume'],\r\n expPayRate: [''],\r\n expSalary: [''],\r\n ConsultantTypeId: ['', Validators.required],\r\n VendorCompany: [''],\r\n VendorContact: [''],\r\n CompanyVendorID: [0],\r\n VendorName: [''],\r\n ResumeDate: [new Date()],\r\n })\r\n }\r\n\r\n initStandAloneConsultantForm() {\r\n this.consultantForm = this.fb.group({\r\n ConsultantId: [''],\r\n ContactId: [''],\r\n FirstName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z'-\\s]+$/)]],\r\n MiddleName: [null, Validators.pattern(/^[a-zA-Z'-\\s]+$/)],\r\n LastName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z'-\\s]+$/)]],\r\n Emailaddress: ['', Validators.required],\r\n TitleId: [null],\r\n CandidateTitle: [''],\r\n DoB: [null],\r\n Sex: [null],\r\n HomePhone: [null],\r\n WorkPhone: [null],\r\n CellPhone: [''],\r\n Address: [null],\r\n StreetAddress: [null],\r\n City: [null],\r\n StateID: [null],\r\n StateCode: [null],\r\n StateName: [null],\r\n CountryID: [null],\r\n ZipCode: [null],\r\n AlienNo: [null],\r\n AlienExpiryDate: [null],\r\n YoutubeUrl: [null],\r\n StackUrl: [null],\r\n GitHubUrl: [null],\r\n LinkedinUrl: [null],\r\n Relocate: [true],\r\n ExpectedPayRate: [null],\r\n ExpectedSalary: [null],\r\n AvailableId: [''],\r\n Availability: [''],\r\n AvailableDate: [null],\r\n EthnicityId: [null],\r\n Disabled: [null],\r\n ResumeSourceID: [''],\r\n SourceID: [''],\r\n Source: [''],\r\n ImageUrl: [null],\r\n ResumeFileId: [0],\r\n ResumeFile: [''],\r\n ResumePath: [null],\r\n Experience: [''],\r\n LegalTypeId: [''],\r\n LegalStatus: [''],\r\n ConsultantType: [null],\r\n JobTypeId: [''],\r\n JobType: [''],\r\n JobTitleName: [''],\r\n JobTitleID: [''],\r\n SpecializedSkill: [''],\r\n Education: [''],\r\n VerificationStatusId: [''],\r\n VerificationStatus: [''],\r\n ConsultantResumeID: [],\r\n ResumeLastUpdate: [''],\r\n Comment: [null],\r\n VendorContactID: [0],\r\n RecruiterId: [null],\r\n CreatedBy: [1],\r\n CreatedDate: [''],\r\n UpdatedBy: [''],\r\n UpdatedDate: [new Date()],\r\n IsActive: [true],\r\n LocationID: [null],\r\n Location: {\r\n LocationID: [0],\r\n LocationTypeID: [0],\r\n ObjectId: [0],\r\n ObjectTypeId: [0],\r\n Address: [''],\r\n Address1: [''],\r\n StreetAddress: [''],\r\n City: [''],\r\n StateID: [0],\r\n ZipCode: [0],\r\n CreatedDate: [''],\r\n CreatedBy: [1],\r\n UpdatedDate: [new Date()],\r\n UpdatedBy: [0],\r\n IsActive: [true],\r\n FullAddress: [null],\r\n StateCode: [''],\r\n State: [''],\r\n },\r\n ConsultantMetaData: [''],\r\n resumeTxt: [''],\r\n resumeHTML: [''],\r\n resumeId: [''],\r\n fileAttr: ['Choose Resume'],\r\n expPayRate: [''],\r\n expSalary: [''],\r\n ConsultantTypeId: [''],\r\n VendorCompany: [''],\r\n VendorContact: [''],\r\n vendorEmailAddress: [''],\r\n vendorWorkPhone: [''],\r\n CompanyVendorID: [0],\r\n VendorName: [''],\r\n ResumeDate: [new Date()],\r\n })\r\n }\r\n\r\n initJobEditForm() {\r\n this.jobEditForm = this.fb.group(\r\n {\r\n BillRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.max(this.maxBillRate)(control)],\r\n ],\r\n PayRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.min(this.minimumPayRate)(control)],\r\n ],\r\n Salary: [null],\r\n ConsultantTypeID: [null, Validators.required],\r\n VendorName: ['', Validators.required],\r\n VendorContactName: [null, Validators.required],\r\n RecruiterId: [null, Validators.required],\r\n Margin: [{ value: 0, disabled: true }],\r\n },\r\n {\r\n validator: [this.PayRangeValidator],\r\n }\r\n )\r\n }\r\n initCandidateDurationForm() {\r\n this.durationForm = this.fb.group({\r\n StartDate: [null, Validators.required],\r\n EndDate: [null, Validators.required],\r\n })\r\n if (Common.activeJob.JobTypeID === JobTypes.Permanent) {\r\n this.durationForm.get('EndDate').clearValidators()\r\n this.durationForm.get('EndDate').updateValueAndValidity()\r\n }\r\n }\r\n\r\n private _isSameEmailLikeCandidate(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const CONTROL_VALUE = control.value\r\n if (control.value === Common.activeConsultant.Emailaddress) {\r\n return { sameEmail: true }\r\n }\r\n return null\r\n }\r\n }\r\n\r\n addAsyncValidatorToVenderEmail(inputValue) {\r\n if (inputValue !== Common.activeConsultant.Emailaddress && this.vendorContactForm.get('EmailAddress').valid) {\r\n this.vendorContactForm\r\n .get('EmailAddress')\r\n .addAsyncValidators(\r\n this.companyService.contactEmailValidator(\r\n Common.activeConsultant?.CompanyVendorID ? Common.activeConsultant.CompanyVendorID : -1\r\n )\r\n )\r\n this.vendorContactForm.get('EmailAddress').updateValueAndValidity()\r\n } else {\r\n this.vendorContactForm.get('EmailAddress').clearAsyncValidators()\r\n this.vendorContactForm.get('EmailAddress').updateValueAndValidity()\r\n }\r\n }\r\n\r\n getCompanyMarkUpValue() {\r\n this.companyService\r\n .getConfig(this.job?.CompanyId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.markTypeValue =\r\n res.filter((item) => item.LookupID == JobSettingType.MarkupType)[0]?.Value ==\r\n MarkupTypeNames.Goal_Markup\r\n ? this.markupType.Goal_Markup\r\n : this.markupType.Max_Markup\r\n if (this.markTypeValue == this.markupType.Goal_Markup) {\r\n this.jobEditForm.get('PayRate').clearValidators()\r\n if (this.job.JobTypeID === JobTypes.Contract) {\r\n this.jobEditForm.get('PayRate').setValidators([Validators.required])\r\n }\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n }\r\n })\r\n }\r\n\r\n getJobByID(jobId) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (job) => {\r\n this.loading = false\r\n resolve(job)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n reject(error)\r\n },\r\n })\r\n })\r\n }\r\n\r\n addNewVendor() {\r\n this.clickedNewFrom = this.dialogName\r\n this.dialogName = this.dialogTypes.Vendor\r\n this.initVendorForm()\r\n }\r\n\r\n addVendorContact() {\r\n this.clickedNewFrom = this.dialogName\r\n this.dialogName = this.dialogTypes.VendorContact\r\n this.consultantTypeId = Number(this.consultantForm.get('ConsultantTypeId').value)\r\n this.initVendorContactForm()\r\n }\r\n\r\n openStatusChange(menuItem) {\r\n this.candidateJobStatusForm.get('MenuCode').setValue(menuItem)\r\n }\r\n\r\n getVendors() {\r\n this.loading = true\r\n this.consultantService\r\n .getVendors()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((vendors) => {\r\n this.loading = false\r\n this.allCompanies = vendors\r\n })\r\n this.applyFilterClient()\r\n }\r\n getCompaniesAndState() {\r\n this.loading = true\r\n this.consultantService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res: iCompany[]) => {\r\n this.loading = false\r\n this.allCompanies = res\r\n })\r\n this.commonService\r\n .getStates()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res: iStates[]) => {\r\n this.loading = false\r\n this.states = res\r\n })\r\n }\r\n\r\n saveVendor() {\r\n if (this.vendorForm.valid) {\r\n if (this.isCalledFromStepper)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.vendorForm.value })\r\n else this.saveVendorForConsultant()\r\n } else this.vendorForm.markAllAsTouched()\r\n }\r\n\r\n saveCandidateJobStatus() {\r\n if (this.candidateJobStatusForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.candidateJobStatusForm.value })\r\n else this.candidateJobStatusForm.markAllAsTouched()\r\n }\r\n\r\n saveVendorContact() {\r\n if (this.vendorContactForm.valid) {\r\n if (this.isCalledFromStepper)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.vendorContactForm.value })\r\n else this.saveContactForConsultant()\r\n } else this.vendorContactForm.markAllAsTouched()\r\n }\r\n\r\n saveVendorForConsultant() {\r\n this.vendorModel.Name = this.vendorForm.get('Name').value\r\n this.vendorModel.WebSite = this.vendorForm.get('WebSite').value\r\n this.vendorModel.Phone = this.vendorForm.get('Phone').value\r\n this.vendorModel.CompanyId = 0 //for creating new company sending 0 as company ID\r\n this.vendorModel.CreatedBy = this.authService.userInfo.userID\r\n this.vendorModel.CreatedDate = new Date()\r\n this.vendorModel.IsActive = true\r\n this.vendorModel.CompanyTypeID = this.selectedCompanyTypeID\r\n\r\n this.companyService\r\n .AddCompany(this.vendorModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res.StatusCode == HttpStatusCode.Ok) {\r\n this.loading = true\r\n this.consultantService\r\n .getVendors()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((vendors) => {\r\n this.loading = false\r\n this.allCompanies = vendors\r\n this.notifyService.showSuccess('Vendor created successfully!', '')\r\n })\r\n this.applyFilterClient()\r\n this.onSelectedCompany(res.Company)\r\n if (this.clickedNewFrom == this.dialogTypes.Consultant) {\r\n this.consultantForm.get('VendorCompany').setValue(res.Company.Name)\r\n this.consultantForm.get('CompanyVendorID').setValue(res?.Company.CompanyId)\r\n } else if (this.clickedNewFrom == this.dialogTypes.JobStatus)\r\n this.candidateJobStatusForm.get('VendorName').setValue(res.Company.Name)\r\n this.cancelVendorHandler()\r\n } else if (res.StatusCode == HttpStatusCode.BadRequest) {\r\n this.notifyService.showError(res.Message, '')\r\n }\r\n })\r\n }\r\n\r\n saveContactForConsultant() {\r\n this.contact.FirstName = this.vendorContactForm.get('FirstName').value\r\n this.contact.LastName = this.vendorContactForm.get('LastName').value\r\n this.contact.WorkPhone = this.vendorContactForm.get('WorkPhone').value\r\n this.contact.EmailAddress = this.vendorContactForm.get('EmailAddress')?.value\r\n this.contact.CompanyId =\r\n this.activeCompany?.CompanyId && this.activeCompany?.CompanyId > 0\r\n ? this.activeCompany.CompanyId\r\n : this.activeCompanyId\r\n ;(this.contact.ContactId = 0), //for saving new contact\r\n (this.contact.CreatedBy = this.authService.userInfo.userID),\r\n (this.contact.CreatedDate = new Date()),\r\n (this.contact.IsActive = true), // default true for new contacts\r\n this.companyService\r\n .AddContact(this.contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res?.Contact != null) {\r\n this.notifyService.showSuccess(res.Message, '')\r\n this.companyChangeAction(this.activeCompanyId)\r\n this.onSelectedContact(res?.Contact)\r\n if (this.clickedNewFrom == this.dialogTypes.Consultant) {\r\n this.consultantForm\r\n .get('VendorContact')\r\n .setValue(res?.Contact.FirstName + ' ' + res?.Contact.LastName)\r\n this.consultantForm.get('VendorContactID').setValue(res?.Contact?.ContactID)\r\n } else if (this.clickedNewFrom == this.dialogTypes.JobStatus)\r\n this.candidateJobStatusForm\r\n .get('VendorContactName')\r\n .setValue(res?.Contact.FirstName + ' ' + res?.Contact.LastName)\r\n this.cancelVendorHandler()\r\n this.onFocus()\r\n } else {\r\n this.notifyService.showError(res.Message, '')\r\n }\r\n })\r\n }\r\n\r\n onFocus() {\r\n setTimeout(() => {\r\n var elem = this.renderer.selectRootElement('#ConsultantTypeId', true)\r\n elem.focus()\r\n }, 0)\r\n }\r\n\r\n cancelVendorHandler() {\r\n this.resetForm()\r\n this.dialogName = this.clickedNewFrom\r\n }\r\n\r\n // Saving and validating data before submitting\r\n addEducation() {\r\n if (this.consultantEducationForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantEducationForm.value })\r\n else this.consultantEducationForm.markAllAsTouched()\r\n }\r\n\r\n addCertificate() {\r\n if (this.consultantCertificateForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantCertificateForm.value })\r\n else this.consultantCertificateForm.markAllAsTouched()\r\n }\r\n\r\n addPatent() {\r\n if (this.consultantPatentForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantPatentForm.value })\r\n else this.consultantPatentForm.markAllAsTouched()\r\n }\r\n\r\n addPublication() {\r\n if (this.consultantPublicationForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantPublicationForm.value })\r\n else this.consultantPublicationForm.markAllAsTouched()\r\n }\r\n\r\n addTraining() {\r\n if (this.consultantTrainingForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantTrainingForm.value })\r\n else this.consultantTrainingForm.markAllAsTouched()\r\n }\r\n\r\n addAward() {\r\n if (this.consultantAwardForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantAwardForm.value })\r\n else this.consultantAwardForm.markAllAsTouched()\r\n }\r\n\r\n addSkill() {\r\n let overlap = false\r\n const SKILL_ID =\r\n this.skillNames?.find(\r\n (skill: iSkills) =>\r\n skill.Name?.trim()?.toLowerCase() ===\r\n this.consultantSkillForm.get('SkillName')?.value?.trim()?.toLowerCase()\r\n )?.SkillID || 0\r\n this.skillArray?.forEach((skill: iSkills) => {\r\n if (this.consultantSkillForm.get('SkillName').value.toLowerCase() == skill.SkillName?.toLowerCase()) {\r\n overlap = true\r\n this.notifyService.showWarning('This skill name already exist.', 'Candidate Skill')\r\n return\r\n }\r\n })\r\n if (this.consultantSkillForm.valid && !overlap)\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.consultantSkillForm.value,\r\n skillId: SKILL_ID,\r\n })\r\n else this.consultantSkillForm.markAllAsTouched()\r\n }\r\n\r\n addProject() {\r\n if (!this.consultantProjectForm.get('IsCurrentlyWorking').value)\r\n this.consultantProjectForm.get('DurationTo').addValidators(Validators.required)\r\n this.consultantProjectForm.get('DurationFrom').addValidators(Validators.required)\r\n this.consultantProjectForm.get('DurationFrom').updateValueAndValidity()\r\n this.consultantProjectForm.get('DurationTo').updateValueAndValidity()\r\n if (this.consultantProjectForm.valid) {\r\n const isCurrentlyWorkingPresent: boolean[] = []\r\n this.projectsArray.forEach((item) => {\r\n isCurrentlyWorkingPresent.push(item.IsCurrentlyWorking ? item.IsCurrentlyWorking : false)\r\n })\r\n // if (\r\n // isCurrentlyWorkingPresent.filter((item) => item == true).length >= 1 &&\r\n // this.consultantProjectForm.get('IsCurrentlyWorking').value\r\n // ) {\r\n // this.notifyService.showWarning('There is one project already working currently', 'Candidate projects')\r\n // return\r\n // }\r\n if (!this.consultantProjectForm.get('IsCurrentlyWorking').value) {\r\n if (\r\n new Date(this.consultantProjectForm.get('DurationTo')?.value) <\r\n new Date(this.consultantProjectForm.get('DurationFrom')?.value)\r\n ) {\r\n this.notifyService.showWarning('Start date should be before end date', 'Consultant Project')\r\n }\r\n }\r\n let overlap = false\r\n this.projectsArray.forEach((project) => {\r\n let projectDurationFrom = new Date(project.DurationFrom)\r\n let projectDurationTo = new Date(project.DurationTo)\r\n let currentProjectDurationFrom = this.consultantProjectForm.get('DurationFrom')?.value\r\n ? new Date(this.consultantProjectForm.get('DurationFrom')?.value)\r\n : null // current project start\r\n let currentProjectDurationTo = this.consultantProjectForm.get('DurationTo')?.value\r\n ? new Date(this.consultantProjectForm.get('DurationTo')?.value)\r\n : null // current project end\r\n\r\n if (!overlap) {\r\n if (project.IsCurrentlyWorking) {\r\n if (\r\n projectDurationFrom <= currentProjectDurationTo ||\r\n projectDurationFrom <= currentProjectDurationFrom\r\n ) {\r\n overlap = true\r\n }\r\n } else if (this.consultantProjectForm.get('IsCurrentlyWorking').value) {\r\n if (\r\n !(projectDurationFrom <= currentProjectDurationFrom) ||\r\n !(projectDurationTo <= currentProjectDurationFrom)\r\n ) {\r\n overlap = true\r\n }\r\n } else if (\r\n projectDurationFrom <= currentProjectDurationTo &&\r\n projectDurationTo >= currentProjectDurationFrom\r\n ) {\r\n overlap = true\r\n }\r\n }\r\n })\r\n\r\n if (overlap) {\r\n this.notifyService.showWarning('Overlapping Date Ranges', 'Consultant Project')\r\n // return\r\n }\r\n\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantProjectForm.value })\r\n } else this.consultantProjectForm.markAllAsTouched()\r\n }\r\n\r\n addReference() {\r\n if (this.consultantReferenceForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.consultantReferenceForm.value })\r\n else this.consultantReferenceForm.markAllAsTouched()\r\n }\r\n\r\n async addConsultant() {\r\n if (this.consultantForm.invalid) {\r\n this.consultantForm.markAllAsTouched()\r\n return\r\n }\r\n const isValidEmail = await this.checkValidEmail(this.consultantForm.get('Emailaddress')?.value)\r\n if (isValidEmail) {\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.consultantForm.value,\r\n imgFrmData: this.imgFrmData,\r\n consultantLocation: this.consultantLocation,\r\n newLocation: this.locationService.getCurrentLocation(),\r\n isResumeChanged: this.isResumeChanged,\r\n newSkill: this.consultant?.NewSkills,\r\n newProject: this.consultant?.NewProjects,\r\n })\r\n } else {\r\n this.notifyService.showError(\r\n 'The email address is already associated with another profile',\r\n 'Profile already exists'\r\n )\r\n }\r\n }\r\n\r\n degreeSelected(degree) {\r\n this.consultantEducationForm.get('DegreeTypeName').setValue(degree.Key)\r\n }\r\n applyFilterClient(client?) {\r\n if (client == undefined || client == null) client = ''\r\n this.companies = this.data.allCompanies?.filter((x: iCompany) =>\r\n x.Name.toLowerCase().includes(client.trim().toLowerCase())\r\n )\r\n }\r\n\r\n applyFilterVendor(vendor) {\r\n if (vendor == undefined || vendor == null) vendor = ''\r\n this.companies = this.allCompanies?.filter((x: iCompany) =>\r\n x?.Name?.toLowerCase()?.includes(vendor?.trim()?.toLowerCase())\r\n )\r\n }\r\n\r\n applyFilterTitle(title) {\r\n title = title.trim() // Remove whitespace\r\n this.consultantService\r\n .jobTitleSearch(title)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n\r\n applyFilterCity(city) {\r\n city = city.trim() // Remove whitespace\r\n this.consultantService\r\n .getCitySearch(city)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.filterCities = res\r\n })\r\n }\r\n\r\n applyFilterState(state) {\r\n state = state.trim() // Remove whitespace\r\n this.filteredStates = this.states?.filter((option: iStates) =>\r\n option.StateName.toLowerCase().includes(state.toLowerCase())\r\n )\r\n }\r\n\r\n applyFilterSkill(filterValue: string) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n this.consultantService\r\n .getSkills(filterValue)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n this.skillNames = this.skillNames?.filter((item) => this.skillNameArray?.indexOf(item.Name) == -1)\r\n })\r\n }\r\n\r\n onSelectedCity(city) {\r\n this.consultantProjectForm.get('State').setValue(city.State)\r\n this.consultantProjectForm.get('StateCode').setValue(city.StateCode)\r\n }\r\n\r\n isCurrentlyWorkingHandler() {\r\n this.consultantProjectForm\r\n .get('IsCurrentlyWorking')\r\n .setValue(!this.consultantProjectForm.get('IsCurrentlyWorking').value)\r\n if (!this.consultantProjectForm.get('IsCurrentlyWorking').value) {\r\n this.consultantProjectForm.get('DurationTo').addValidators([Validators.required])\r\n } else {\r\n this.consultantProjectForm.get('DurationTo').clearValidators()\r\n this.consultantProjectForm.get('DurationTo').setValue(null)\r\n }\r\n this.consultantProjectForm.get('DurationTo').updateValueAndValidity()\r\n }\r\n\r\n onCompanySelect(company) {\r\n this.consultantReferenceForm.get('CompanyId').setValue(company.CompanyId)\r\n }\r\n\r\n onContactSelect(contact) {\r\n this.consultantReferenceForm.get('EmailAddress').setValue(contact.Email)\r\n this.consultantReferenceForm.get('WorkPhone').setValue(contact.WorkPhone)\r\n this.consultantReferenceForm.get('JobTitle').setValue(contact.Title)\r\n this.consultantReferenceForm.get('ContactId').setValue(contact.ContactId)\r\n this.consultantReferenceForm.get('CellPhone').setValue(contact.Phone)\r\n }\r\n\r\n openUploadingDialog(templateRef) {\r\n this.uploadingDialog = this.commonMatDialogService.open({\r\n component: templateRef,\r\n data: {\r\n width: '500px',\r\n },\r\n })\r\n }\r\n\r\n closeUploadingDialog(changedImageSrc?) {\r\n if (changedImageSrc != null) this.imageSrc = this.changedImageSrc\r\n this.uploadingDialog?.close()\r\n }\r\n\r\n resetImage() {\r\n this.isImageUploaded = false\r\n this.imageInfo = ''\r\n this.imageSrc = null\r\n this.imagefile = null\r\n this.consultantForm.get('ImageUrl').setValue(null)\r\n }\r\n\r\n onSearchKeyPressed(): void {\r\n if (this.consultantForm.get('JobTitleName').value != '') {\r\n this.consultantService\r\n .getJobTitles(this.consultantForm.get('JobTitleName').value)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n }\r\n onPastePhone(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n this.consultantForm.get('CellPhone').setValue(clipboardData.toString().trim())\r\n }\r\n\r\n onChangeResume(files): void {\r\n this.file = files[0]\r\n if (files.length === 0) {\r\n return\r\n }\r\n this.consultantForm.get('ResumeFile').setValue(this.file)\r\n this.consultantForm.get('fileAttr').setValue(this.file.name)\r\n this.isResumeChanged = true\r\n if (Common.activeConsultant.ConsultantId > 0) {\r\n this.loading = false\r\n return\r\n }\r\n Common.ResumeHTML = null\r\n Common.activeConsultant = null\r\n Common.ResumeKeywords = null\r\n\r\n if (this.file.size > 6000000) {\r\n this.isResumeUploaded = false\r\n this.file = null\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', 'Candidate Resume')\r\n this.loading = false\r\n Common.ResumeKeywords = null\r\n return\r\n }\r\n if (!this.validateResumeType(files[0].name)) {\r\n this.isResumeUploaded = false\r\n this.file = null\r\n this.notifyService.showError('Selected file format is not supported!', 'Candidate Resume')\r\n this.loading = false\r\n return\r\n }\r\n }\r\n\r\n validateResumeType(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (ext.toLowerCase() == 'doc' || ext.toLowerCase() == 'docx' || ext.toLowerCase() == 'pdf') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n onSelectProfileImage(imageInput: any) {\r\n if (imageInput[0]) {\r\n const reader = new FileReader()\r\n this.isImageChanged = true\r\n const file: File = imageInput[0]\r\n reader.onload = (e) => {\r\n this.imagefile = file\r\n this.imgFrmData = new FormData()\r\n this.imageInfo = imageInput[0].name\r\n this.imgFrmData.append(imageInput[0].name, imageInput[0])\r\n this.isImageUploaded = true\r\n this.changedImageSrc = reader.result\r\n this.closeUploadingDialog(this.changedImageSrc)\r\n }\r\n reader.readAsDataURL(file)\r\n }\r\n }\r\n\r\n onResumeUpload() {\r\n this.consultantForm.get('fileAttr').setValue('Choose Resume')\r\n this.isResumeUploaded = true\r\n this.isResumeBlank = false\r\n this.ResumeInfo = this.file.name\r\n this.parseCandidateBasicInfo()\r\n }\r\n\r\n parseCandidateBasicInfo() {\r\n this.consultant = Common.activeConsultant\r\n this.loading = true\r\n const formData = new FormData()\r\n this.uploadingDialog?.close()\r\n try {\r\n formData.append('file', this.consultantForm.get('ResumeFile').value)\r\n if (Common.activeConsultantJob != null) {\r\n formData.append('jobid', Common.activeConsultantJob.JobID.toString())\r\n }\r\n\r\n this.consultantService\r\n .getCandidateBasicInfo(formData)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (event) => {\r\n if (event instanceof HttpResponse) {\r\n if (event.body == null) {\r\n this.notifyService.showWarning('Error:', 'Resume upload')\r\n this.loading = false\r\n return\r\n }\r\n let parsedCandidateInfo: iConsultant = event.body['ConsultantInfo']\r\n let parsedCandidateResume = event.body['ResumeHTML']\r\n let parsedCandidateResumeKeys = event.body['Keys']\r\n this.consultant.NewSkills = event.body['NewSkills']\r\n this.consultant.NewProjects = event.body['NewProjects']\r\n this.consultantLocation = {} as iLocation\r\n let location: iLocation\r\n\r\n if (parsedCandidateResumeKeys != null) {\r\n let dataResumeKeywords = parsedCandidateResumeKeys\r\n let parsedCandidate: iConsultant = {} as iConsultant\r\n parsedCandidate.Location = {} as iLocation\r\n for (let index = 0; index < dataResumeKeywords.length; index++) {\r\n var element = dataResumeKeywords[index]\r\n switch (element?.Key) {\r\n case ResumeKeywords.CandidateName: {\r\n let fullName = element.Value.trim().replace(/[^a-zA-Z ]/g, '')\r\n let firstName\r\n let middleNames\r\n let lastName\r\n\r\n var names = fullName.split(' ')\r\n if (names.length > 2) {\r\n firstName = names[0]\r\n parsedCandidate.FirstName = names[0]\r\n middleNames = names.slice(1, -1).join(' ')\r\n parsedCandidate.MiddleName = names.slice(1, -1).join(' ')\r\n lastName = names[names.length - 1]\r\n parsedCandidate.LastName = names[names.length - 1]\r\n } else if (names.length < 2) {\r\n firstName = names[0]\r\n parsedCandidate.FirstName = names[0]\r\n } else {\r\n firstName = names[0]\r\n parsedCandidate.FirstName = names[0]\r\n lastName = names[names.length - 1]\r\n parsedCandidate.LastName = names[names.length - 1]\r\n }\r\n break\r\n }\r\n case ResumeKeywords.FirstName: {\r\n parsedCandidate.FirstName = element.Value.replace(/[^a-zA-Z ]/g, '')\r\n break\r\n }\r\n case ResumeKeywords.LastName: {\r\n parsedCandidate.LastName = element.Value.replace(/[^a-zA-Z ]/g, '')\r\n break\r\n }\r\n case ResumeKeywords.MiddleName: {\r\n parsedCandidate.LastName = element.Value.replace(/[^a-zA-Z ]/g, '')\r\n break\r\n }\r\n case ResumeKeywords.Email: {\r\n parsedCandidate.Emailaddress = element.Value\r\n break\r\n }\r\n case ResumeKeywords.Phone: {\r\n let phone = element.Value.toString().trim()\r\n phone = this.formatPhoneNumber(phone)\r\n parsedCandidate.CellPhone = phone\r\n break\r\n }\r\n case ResumeKeywords.AddressLine1: {\r\n if (element.Value.trim() != '') {\r\n parsedCandidate.Location.Address1 = element.Value\r\n break\r\n }\r\n }\r\n case ResumeKeywords.City: {\r\n parsedCandidate.Location.City = element.Value\r\n break\r\n }\r\n case ResumeKeywords.State: {\r\n parsedCandidate.Location.State = element.Value\r\n break\r\n }\r\n case ResumeKeywords.StateCode: {\r\n parsedCandidate.Location.StateCode = element.Value\r\n break\r\n }\r\n case ResumeKeywords.Zipcode: {\r\n parsedCandidate.ZipCode = element.Value\r\n break\r\n }\r\n case ResumeKeywords.YouTube: {\r\n parsedCandidate.YoutubeUrl = element.Value\r\n break\r\n }\r\n case ResumeKeywords.GitHub: {\r\n parsedCandidate.GitHubUrl = element.Value\r\n break\r\n }\r\n case ResumeKeywords.Linkedin: {\r\n parsedCandidate.LinkedinUrl = element.Value\r\n break\r\n }\r\n case ResumeKeywords.StackOverFlow: {\r\n parsedCandidate.StackUrl = element.Value\r\n break\r\n }\r\n }\r\n }\r\n if (\r\n parsedCandidate?.FirstName.toLowerCase() ==\r\n this.consultant.FirstName.toLowerCase() &&\r\n parsedCandidate?.LastName.toLowerCase() == this.consultant.LastName.toLowerCase() &&\r\n parsedCandidate?.Emailaddress.toLowerCase() ==\r\n this.consultant.Emailaddress.toLowerCase()\r\n ) {\r\n this.consultantForm.get('FirstName').setValue(parsedCandidate?.FirstName)\r\n this.consultantForm.get('LastName').setValue(parsedCandidate?.LastName)\r\n this.consultantForm.get('MiddleName').setValue(parsedCandidate?.MiddleName)\r\n this.consultantForm.get('Emailaddress').setValue(parsedCandidate?.Emailaddress)\r\n this.consultantForm.get('CellPhone').setValue(parsedCandidate?.CellPhone)\r\n this.consultantLocation.Address1 = parsedCandidate?.Address1\r\n this.consultantLocation.City = parsedCandidate?.Location?.City\r\n this.consultantLocation.StateCode = parsedCandidate?.Location?.State\r\n this.consultantLocation.ZipCode = parsedCandidate?.Location?.ZipCode\r\n this.consultantForm.get('YoutubeUrl').setValue(parsedCandidate?.YoutubeUrl)\r\n this.consultantForm.get('GitHubUrl').setValue(parsedCandidate?.GitHubUrl)\r\n this.consultantForm.get('LinkedinUrl').setValue(parsedCandidate?.LinkedinUrl)\r\n this.consultantForm.get('StackUrl').setValue(parsedCandidate?.StackUrl)\r\n Common.activeConsultant = parsedCandidateInfo\r\n Common.ResumeHTML = parsedCandidateResume\r\n Common.ResumeKeywords = parsedCandidateResumeKeys\r\n this.consultantForm.get('resumeTxt').setValue(event.body['Resumetxt'])\r\n this.consultantForm.get('resumeHTML').setValue(event.body['ResumeHTML'])\r\n this.consultantForm.get('resumeId').setValue(event.body['ConsultantResumeID'])\r\n this.consultantForm.get('ResumeDate').setValue(event.body['ResumeDate'])\r\n } else {\r\n this.notifyService.showWarning(\r\n `Please upload resume of ${Common?.activeConsultant?.FirstName} ${Common?.activeConsultant?.LastName}`,\r\n 'Candidate Resume'\r\n )\r\n this.isResumeUploaded = false\r\n this.ResumeInfo = null\r\n this.resetFormInput = !this.resetFormInput\r\n this.consultant.NewSkills = null\r\n this.consultant.NewProjects = null\r\n }\r\n\r\n this.loading = false\r\n } else {\r\n this.notifyService.showWarning(\r\n 'Could not parsed Candidate Name and Emailaddress!',\r\n 'Resume upload'\r\n )\r\n this.loading = false\r\n }\r\n\r\n this.loading = false\r\n }\r\n },\r\n (err: any) => {\r\n this.notifyService.showWarning('Resume upload Error:' + err, 'Search')\r\n this.loading = false\r\n }\r\n )\r\n } catch (err: any) {\r\n this.loading = false\r\n }\r\n }\r\n\r\n formatPhoneNumber(phoneNumberString) {\r\n var cleaned = ('' + phoneNumberString).replace(/\\D/g, '')\r\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\r\n if (match) {\r\n return '(' + match[1] + ') ' + match[2] + '-' + match[3]\r\n }\r\n return null\r\n }\r\n\r\n onSelectedTitleId(title) {\r\n this.consultantForm.get('JobTitleID').setValue(title.JobTitleID)\r\n this.consultantForm.get('CandidateTitle').setValue(title.JobTitleName)\r\n this.consultantForm.get('TitleId').setValue(title.JobTitleID)\r\n }\r\n\r\n jobTypeHandler(jobTypeId: string) {\r\n this.availableConsultantTypes = this.consultantTypes\r\n let jobTypeArray = jobTypeId.split(',').map(Number)\r\n if (jobTypeArray.length == 1) {\r\n if (jobTypeArray.includes(this.jobTypesEnum.ContractToHire)) {\r\n this.isJobTypeC2H = true\r\n this.isJobTypePermanent = true\r\n this.isJobTypeContract = true\r\n } else if (jobTypeArray.includes(this.jobTypesEnum.Contract)) {\r\n this.isJobTypeContract = true\r\n this.isJobTypePermanent = false\r\n this.isJobTypeC2H = false\r\n this.consultantForm.get('ExpectedSalary').setValue(null)\r\n } else if (jobTypeArray.includes(this.jobTypesEnum.Permanent)) {\r\n this.isJobTypePermanent = true\r\n this.isJobTypeContract = false\r\n this.isJobTypeC2H = false\r\n this.availableConsultantTypes = this.consultantTypes?.filter(\r\n (x) => x.Value == Common.enumConsultantType.CAN_W2\r\n )\r\n this.consultantForm.get('ExpectedPayRate').setValue(null)\r\n }\r\n } else {\r\n this.isJobTypeC2H = true\r\n this.isJobTypePermanent = true\r\n this.isJobTypeContract = true\r\n }\r\n }\r\n\r\n contractTypeChange(selectedValue) {\r\n this.loadVendorView = false\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumConsultantType.CAN_C2C) > -1) {\r\n this.loadVendorView = true\r\n }\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumConsultantType.CAN_C2O) > -1) {\r\n this.loadVendorView = true\r\n }\r\n }\r\n\r\n consultantTypeChange(selectedValue) {\r\n this.loadVendorView = false\r\n if (selectedValue == Common.enumConsultantType.CAN_C2C || selectedValue == Common.enumConsultantType.CAN_C2O) {\r\n this.loadVendorView = true\r\n this.getVendors()\r\n }\r\n }\r\n\r\n onSelectedCompany(company) {\r\n this.activeCompany = company\r\n this.activeCompanyId = company.CompanyId\r\n if (this.dialogName == this.dialogTypes.Consultant) {\r\n this.consultantForm.get('CompanyVendorID').setValue(company?.CompanyId)\r\n this.consultantForm.get('VendorContactID').setValue(0)\r\n this.consultantForm.get('VendorContact').setValue('')\r\n this.consultantForm.get('vendorEmailAddress').setValue(company?.EmailAddress)\r\n this.consultantForm.get('vendorWorkPhone').setValue(company?.Phone)\r\n } else if (this.dialogName == this.dialogTypes.JobStatus) {\r\n this.candidateJobStatusForm.get('VendorCompanyId').setValue(company?.CompanyId)\r\n this.candidateJobStatusForm.get('VendorContactID').setValue(0)\r\n this.candidateJobStatusForm.get('VendorContactName').setValue('')\r\n }\r\n this.companyChangeAction(company.CompanyId)\r\n }\r\n\r\n companyChangeAction(selectedValue) {\r\n this.consultantService.getCompanyContacts(selectedValue).subscribe((res) => {\r\n this.contacts = res as Contact[]\r\n })\r\n }\r\n\r\n onSelectedContact(contact) {\r\n if (this.dialogName == this.dialogTypes.Consultant)\r\n this.consultantForm.get('VendorContactID').setValue(contact.ContactID)\r\n else if (this.dialogName == this.dialogTypes.JobStatus)\r\n this.candidateJobStatusForm.get('VendorContactID').setValue(contact.ContactID)\r\n this.vendorContactId = contact.ContactID\r\n }\r\n\r\n showConsultantJobData() {\r\n let consultantJob = Common.activeConsultantJob\r\n this.consultantForm.get('expPayRate').setValue(consultantJob.PayRate)\r\n\r\n let jobTypeids = Common.activeJob.JobTypeID.toString()\r\n .split(',')\r\n .map((item) => Number(item))\r\n this.jobTypeHandler(jobTypeids?.toString())\r\n this.consultantForm.get('JobTypeId').setValue(jobTypeids.map(Number))\r\n let consultantTypeids\r\n if (consultantJob.ConsultantTypeID == null) consultantTypeids = Common.enumConsultantType.CAN_W2.toString()\r\n else consultantTypeids = consultantJob.ConsultantTypeID\r\n consultantTypeids = consultantTypeids\r\n .toString()\r\n .split(',')\r\n .map((item) => Number(item))\r\n this.contractTypeChange(consultantTypeids.toString())\r\n this.consultantForm.get('ConsultantTypeId').setValue(Number(consultantTypeids))\r\n\r\n this.consultantForm.get('CompanyVendorID').setValue(consultantJob?.CompanyVendorID)\r\n this.consultantForm.get('VendorContactID').setValue(consultantJob?.VendorContactID)\r\n if (consultantJob?.VendorName) {\r\n this.consultantForm.get('VendorName').setValue(consultantJob?.VendorName)\r\n }\r\n this.consultantForm.get('VendorContact').setValue(consultantJob?.VendorContactName)\r\n }\r\n showConsultantTypeData() {\r\n let consultant = Common.activeConsultant\r\n if (consultant.JobTypeId == null) consultant.JobTypeId = Common.enumJobContractType.JT_C2C.toString()\r\n let jobTypeids = consultant.JobTypeId.split(',').map((item) => Number(item))\r\n this.jobTypeHandler(consultant.JobTypeId.toString())\r\n this.consultantForm.get('JobTypeId').setValue(jobTypeids)\r\n if (consultant.ConsultantTypeId == null)\r\n consultant.ConsultantTypeId = Common.enumConsultantType.CAN_W2.toString()\r\n let consultantTypeids = consultant.ConsultantTypeId.toString()\r\n .split(',')\r\n .map((item) => Number(item))\r\n\r\n this.contractTypeChange(consultantTypeids.toString())\r\n this.consultantForm.get('ConsultantTypeId').setValue(consultantTypeids)\r\n }\r\n\r\n getRecruiters() {\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if(this.authService.userInfo.roles[0].roleID == 8){\r\n this.recruiters = (res as User[]).filter((recruiter: User) => recruiter.UserID === this.authService.userInfo.userID);\r\n } else{\r\n this.recruiters = res as User[]\r\n }\r\n })\r\n this.consultantService.getLookup('ConsultantTypelD').subscribe((consultantTypes: ConsultantType[]) => {\r\n if (Common?.activeJob?.JobTypeID === JobTypes.Permanent) {\r\n this.consultantTypes = consultantTypes.filter((type) => type.Value === CONSULTANT_TYPE.CAN_W2)\r\n } else {\r\n this.consultantTypes = consultantTypes\r\n }\r\n })\r\n }\r\n\r\n PayRangeValidator = (fg: FormGroup) => {\r\n var PayRate =\r\n fg.get('PayRate').value == undefined || fg.get('PayRate').value == null || fg.get('PayRate').value == ''\r\n ? 0\r\n : fg.get('PayRate').value\r\n var minPayRate = this.minimumPayRate\r\n\r\n if (PayRate >= minPayRate) {\r\n this.isPayRangeValid = true\r\n\r\n return this.isPayRangeValid\r\n } else {\r\n this.isPayRangeValid = false\r\n\r\n return this.isPayRangeValid\r\n }\r\n }\r\n\r\n async contractTypeChangeForJob(selectedValue) {\r\n this.jobEditForm.get('ConsultantTypeID').setValue(selectedValue)\r\n this.consultantTypeChange(selectedValue)\r\n this.validControlView(this.job.JobTypeID, selectedValue)\r\n await this.getMinimumPayRate(\r\n Common.activeConsultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n selectedValue,\r\n this.jobEditForm.get('BillRate').value,\r\n this.jobEditForm.get('PayRate').value\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n this.jobEditForm.get('PayRate').clearValidators()\r\n if (\r\n (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) &&\r\n this.markTypeValue != this.markupType.Goal_Markup\r\n ) {\r\n this.jobEditForm\r\n .get('PayRate')\r\n .setValidators([Validators.required, Validators.min(this.minimumPayRate)])\r\n }\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n })\r\n }\r\n\r\n startDateSelected() {\r\n const startDate: Date = new Date(this.consultantProjectForm.get('DurationFrom')?.value)\r\n this.minProjectEndDate = startDate\r\n }\r\n\r\n onContactKeyPressed(event: KeyboardEvent): void {\r\n this.vendorContactId = 0\r\n }\r\n\r\n onCompanyKeyPressed(client): void {\r\n this.companyVendorID = 0\r\n this.companies = this.allCompanies?.filter((x: iCompany) =>\r\n x.Name.toLowerCase().includes(client.trim().toLowerCase())\r\n )\r\n }\r\n\r\n onSelectedVenderCompany(company) {\r\n this.companyVendorID = company.CompanyId\r\n this.companyChangeAction(company.CompanyId)\r\n this.vendorContactId = 0\r\n this.jobEditForm.get('VendorContactName').setValue('')\r\n }\r\n\r\n async onRateKeyPressed() {\r\n if (\r\n this.dialogName === ConsultantDialogTypes.JobEdit ||\r\n this.dialogName === ConsultantDialogTypes.Candidate_Mail_Text_Edit\r\n ) {\r\n var ClientRate = Number(\r\n this.jobEditForm.get('BillRate').value == '' ? 0 : this.jobEditForm.get('BillRate').value\r\n )\r\n var PayRate = Number(\r\n this.jobEditForm.get('PayRate').value == '' ? 0 : this.jobEditForm.get('PayRate').value\r\n )\r\n var consultantTypeID = Number(\r\n this.jobEditForm.get('ConsultantTypeID').value == ''\r\n ? 0\r\n : this.jobEditForm.get('ConsultantTypeID').value\r\n )\r\n await this.getMinimumPayRate(\r\n Common.activeConsultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n consultantTypeID,\r\n ClientRate,\r\n PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n if (\r\n (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) &&\r\n this.markTypeValue != this.markupType.Goal_Markup\r\n ) {\r\n this.jobEditForm\r\n .get('PayRate')\r\n .setValidators([Validators.required, Validators.min(this.minimumPayRate)])\r\n }\r\n this.jobEditForm.get('PayRate').markAllAsTouched()\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n })\r\n } else {\r\n var ClientRate = Number(\r\n this.candidateJobStatusForm.get('BillRate').value == ''\r\n ? 0\r\n : this.candidateJobStatusForm.get('BillRate').value\r\n )\r\n var PayRate = Number(\r\n this.candidateJobStatusForm.get('PayRate').value == ''\r\n ? 0\r\n : this.candidateJobStatusForm.get('PayRate').value\r\n )\r\n var consultantTypeID = Number(\r\n this.candidateJobStatusForm.get('ConsultantTypeID').value == ''\r\n ? 0\r\n : this.candidateJobStatusForm.get('ConsultantTypeID').value\r\n )\r\n await this.getMinimumPayRate(\r\n Common.activeConsultantJob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n consultantTypeID,\r\n ClientRate,\r\n PayRate\r\n ).then((value: number) => {\r\n this.minimumPayRate = value\r\n this.candidateJobStatusForm.get('PayRate').markAllAsTouched()\r\n this.candidateJobStatusForm.get('PayRate').updateValueAndValidity()\r\n })\r\n }\r\n }\r\n getMinimumPayRate(companyId, jobCategoryId, consultantTypeId, billRate, payrate) {\r\n return new Promise((resolve, reject) => {\r\n var MarkupType\r\n var MarkupValue\r\n this.minimumPayRate = 0\r\n this.jobService\r\n .getJobCategoryByCompany(companyId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((jobcatsetting) => {\r\n if (jobcatsetting) {\r\n //A specific category\r\n var jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.length == 0) {\r\n jobCategoryId = 1312 // All - other category setting\r\n jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n }\r\n\r\n if (jc.indexOf(jobCategoryId) > -1) {\r\n if (Common.ConfigValues != null) {\r\n MarkupType = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 204 && //Markup Type\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n }\r\n\r\n if (consultantTypeId == Common.enumConsultantType.CAN_C2C) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.C2C)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_C2O) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.C2O)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_W2) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n }\r\n MarkupValue = isNaN(MarkupValue) ? 0 : MarkupValue\r\n const factor = 10 ** 2\r\n var minPay = billRate / (1 + MarkupValue / 100)\r\n this.minimumPayRate = Math.round(minPay * factor) / factor\r\n if (MarkupType == 202) {\r\n //Max Markup\r\n //if the recruiter tries to enter a pay rate less than minimumPayRate, system should throw a validation\r\n if (payrate < this.minimumPayRate) {\r\n this.isPayRangeValid = false\r\n } else {\r\n this.isPayRangeValid = true\r\n }\r\n } else if (MarkupType == 203) {\r\n //Goal_Markup\r\n //if the recruiter tries to enter a pay rate less than minimumPayRate, display as suggestion to recruiter (not required to throw validation error)\r\n if (payrate < this.minimumPayRate) {\r\n this.isPayRangeValid = false\r\n } else {\r\n this.isPayRangeValid = true\r\n }\r\n }\r\n resolve(\r\n isNaN(this.minimumPayRate) ||\r\n this.minimumPayRate == undefined ||\r\n this.minimumPayRate == null\r\n ? (this.minimumPayRate = 0)\r\n : this.minimumPayRate\r\n )\r\n return isNaN(this.minimumPayRate) ||\r\n this.minimumPayRate == undefined ||\r\n this.minimumPayRate == null\r\n ? (this.minimumPayRate = 0)\r\n : this.minimumPayRate\r\n } else {\r\n this.minimumPayRate = 0\r\n }\r\n }\r\n resolve(\r\n this.minimumPayRate || this.minimumPayRate == undefined || this.minimumPayRate == null\r\n ? (this.minimumPayRate = 0)\r\n : this.minimumPayRate\r\n )\r\n })\r\n\r\n // return isNaN(this.minimumPayRate) || this.minimumPayRate == undefined || this.minimumPayRate == null\r\n // ? (this.minimumPayRate = 0)\r\n // : this.minimumPayRate\r\n })\r\n }\r\n\r\n validControlView(jobTypeId, consultantTypeId) {\r\n if (jobTypeId == Common.enumJobContractType.JT_C2C) {\r\n // Contract -Billrate, Payrate required. Salary NOT required\r\n\r\n this.jobEditForm.controls['PayRate'].addValidators([\r\n Validators.required,\r\n Validators.min(this.minimumPayRate),\r\n ])\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n\r\n this.jobEditForm.controls['BillRate'].addValidators([Validators.required])\r\n this.jobEditForm.get('BillRate').updateValueAndValidity()\r\n\r\n this.jobEditForm.get('Salary').setValue('')\r\n this.jobEditForm.get('Salary').setErrors(null)\r\n this.jobEditForm.controls['Salary'].clearValidators()\r\n this.jobEditForm.get('Salary').updateValueAndValidity()\r\n } else if (jobTypeId == Common.enumJobContractType.JT_C2H) {\r\n // Contract to Hire - // Billrate, Payrate, Salary required\r\n\r\n this.jobEditForm.controls['PayRate'].addValidators([\r\n Validators.required,\r\n Validators.min(this.minimumPayRate),\r\n ])\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n\r\n this.jobEditForm.controls['BillRate'].addValidators([Validators.required])\r\n this.jobEditForm.get('BillRate').updateValueAndValidity()\r\n\r\n this.jobEditForm.controls['Salary'].addValidators([Validators.required])\r\n this.jobEditForm.get('Salary').updateValueAndValidity()\r\n } else if (jobTypeId == Common.enumJobContractType.JT_PERM) {\r\n // Permanent - Salary required. Billrate, Payrate are not reuired\r\n this.jobEditForm.get('PayRate').setValue('')\r\n this.jobEditForm.get('BillRate').setValue('')\r\n\r\n this.jobEditForm.controls['PayRate'].clearValidators()\r\n this.jobEditForm.controls['BillRate'].clearValidators()\r\n\r\n this.jobEditForm.get('PayRate').setErrors(null)\r\n this.jobEditForm.get('BillRate').setErrors(null)\r\n\r\n this.jobEditForm.get('PayRate').updateValueAndValidity()\r\n this.jobEditForm.get('BillRate').updateValueAndValidity()\r\n\r\n //Salary required\r\n this.jobEditForm.controls['Salary'].addValidators([Validators.required])\r\n this.jobEditForm.get('Salary').updateValueAndValidity()\r\n }\r\n\r\n /* consultantType */\r\n\r\n if (consultantTypeId == Common.enumConsultantType.CAN_W2) {\r\n this.jobEditForm.get('VendorName').setValue('')\r\n this.jobEditForm.get('VendorContactName').setValue('')\r\n\r\n this.jobEditForm.controls['VendorName'].clearValidators()\r\n this.jobEditForm.controls['VendorContactName'].clearValidators()\r\n\r\n this.jobEditForm.get('VendorName').setErrors(null)\r\n this.jobEditForm.get('VendorContactName').setErrors(null)\r\n\r\n this.jobEditForm.get('VendorName').updateValueAndValidity()\r\n this.jobEditForm.get('VendorContactName').updateValueAndValidity()\r\n\r\n this.loadVendorView = false\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_C2C) {\r\n this.jobEditForm.controls['VendorName'].addValidators([Validators.required])\r\n this.jobEditForm.controls['VendorContactName'].addValidators([Validators.required])\r\n\r\n this.jobEditForm.get('VendorName').updateValueAndValidity()\r\n this.jobEditForm.get('VendorContactName').updateValueAndValidity()\r\n this.loadVendorView = true\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_C2O) {\r\n this.jobEditForm.get('VendorName').setValue('')\r\n this.jobEditForm.get('VendorContactName').setValue('')\r\n\r\n this.jobEditForm.controls['VendorName'].clearValidators()\r\n this.jobEditForm.controls['VendorContactName'].clearValidators()\r\n\r\n this.jobEditForm.get('VendorName').setErrors(null)\r\n this.jobEditForm.get('VendorContactName').setErrors(null)\r\n\r\n this.jobEditForm.get('VendorName').updateValueAndValidity()\r\n this.jobEditForm.get('VendorContactName').updateValueAndValidity()\r\n this.loadVendorView = false\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_1099) {\r\n this.jobEditForm.get('VendorName').setValue('')\r\n this.jobEditForm.get('VendorContactName').setValue('')\r\n\r\n this.jobEditForm.controls['VendorName'].clearValidators()\r\n this.jobEditForm.controls['VendorContactName'].clearValidators()\r\n\r\n this.jobEditForm.get('VendorName').setErrors(null)\r\n this.jobEditForm.get('VendorContactName').setErrors(null)\r\n\r\n this.jobEditForm.get('VendorName').updateValueAndValidity()\r\n this.jobEditForm.get('VendorContactName').updateValueAndValidity()\r\n this.loadVendorView = false\r\n }\r\n }\r\n\r\n saveJob() {\r\n if (this.jobEditForm.valid) {\r\n Common.activeConsultantJob.PayRate = this.jobEditForm.get('PayRate').value\r\n Common.activeConsultantJob.BillRate = this.jobEditForm.get('BillRate').value\r\n Common.activeConsultantJob.Salary = this.jobEditForm.get('Salary').value\r\n Common.activeConsultantJob.CompanyVendorID = this.companyVendorID\r\n ? this.companyVendorID\r\n : Common.activeConsultantJob.CompanyVendorID\r\n Common.activeConsultantJob.VendorContactID = this.vendorContactId\r\n ? this.vendorContactId\r\n : Common.activeConsultantJob.VendorContactID\r\n Common.activeConsultantJob.ConsultantTypeID = this.jobEditForm.get('ConsultantTypeID').value\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobEditForm.value,\r\n companyVendorID: this.companyVendorID,\r\n vendorContactId: this.vendorContactId,\r\n selectedReason: this.candidateNotesFormControl.value,\r\n })\r\n } else {\r\n this.jobEditForm.markAllAsTouched()\r\n }\r\n }\r\n\r\n checkValidEmail(email) {\r\n // this.loading = true\r\n return new Promise((resolve) => {\r\n this.consultantService\r\n .GetConsultantFromEmail(email)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n // this.loading = false\r\n if (result?.length > 0) {\r\n const contactId = result[0]?.ContactId\r\n if (contactId != Common.activeConsultant.ContactId) {\r\n // consultant is trying to update it's email which is already present in DB\r\n resolve(false)\r\n } else {\r\n resolve(true)\r\n }\r\n } else {\r\n resolve(true)\r\n }\r\n },\r\n (error) => {\r\n // this.loading = false\r\n }\r\n )\r\n })\r\n }\r\n\r\n saveMailTextWithJobStatusDetails() {\r\n if (this.jobEditForm.valid && this.candidateNotesFormControl.valid) {\r\n Common.activeConsultantJob.PayRate = this.jobEditForm.get('PayRate').value\r\n Common.activeConsultantJob.BillRate = this.jobEditForm.get('BillRate').value\r\n Common.activeConsultantJob.Salary = this.jobEditForm.get('Salary').value\r\n Common.activeConsultantJob.CompanyVendorID = this.companyVendorID\r\n ? this.companyVendorID\r\n : Common.activeConsultantJob.CompanyVendorID\r\n Common.activeConsultantJob.VendorContactID = this.vendorContactId\r\n ? this.vendorContactId\r\n : Common.activeConsultantJob.VendorContactID\r\n Common.activeConsultantJob.ConsultantTypeID = this.jobEditForm.get('ConsultantTypeID').value\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobEditForm.value,\r\n companyVendorID: this.companyVendorID,\r\n vendorContactId: this.vendorContactId,\r\n selectedReason: this.candidateNotesFormControl.value,\r\n isSubmitAction: this.activeConsultantJob.isMSPSetForClientCompany,\r\n })\r\n } else {\r\n this.jobEditForm.markAllAsTouched()\r\n this.candidateNotesFormControl.markAllAsTouched()\r\n }\r\n }\r\n\r\n BindResume(ConsultantID) {\r\n this.loading = true\r\n this.consultantService\r\n .GetResume(ConsultantID)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n if (result != null && result != '') {\r\n this.isResumeAvailable = true\r\n let htmlString = result\r\n this.safeHtmlContent = this._sanitizer.bypassSecurityTrustHtml(htmlString?.toString())\r\n this.loading = false\r\n } else {\r\n this.loading = false\r\n this.pullDiceResume()\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n pullDiceResume() {\r\n if (\r\n this.safeHtmlContent != '' &&\r\n this.safeHtmlContent != undefined &&\r\n (this.consultant.SourceID == '' || this.consultant.SourceID == null)\r\n ) {\r\n return\r\n }\r\n this.loading = true\r\n const searchPara: any = {}\r\n searchPara.SourceID = this.consultant.SourceID\r\n searchPara.SourceTypeID = Number(this.consultant?.SourceTypeID)\r\n this.safeHtmlContent = ''\r\n this.consultantService\r\n .ConsultantDiceSearch(searchPara)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (candidatesList) => {\r\n if (candidatesList && candidatesList[0] != null) {\r\n this.isResumeAvailable = true\r\n this.loading = false\r\n this.safeHtmlContent = this._sanitizer.bypassSecurityTrustHtml(\r\n candidatesList[0]?.Resumes[0]?.ResumeText\r\n )\r\n Common.activeConsultant.Emailaddress = candidatesList[0]?.Contact?.EmailAddress\r\n Common.activeConsultant.CellPhone = candidatesList[0]?.Contact?.CellPhone\r\n Common.activeConsultant.ResumePath = candidatesList[0]?.FileInfo?.Path\r\n this.consultant.ResumePath = candidatesList[0]?.FileInfo?.Path\r\n this._consultantDataService.setDiceCandidateResume(candidatesList[0]?.Resumes[0])\r\n } else {\r\n this.loading = false\r\n this.isResumeAvailable = false\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n getInterviewDetails(candidateJobId: number) {\r\n this.loading = true\r\n this.jobService\r\n .getInterviewDetails(candidateJobId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (interviewDetails: InterviewDetails[]) => {\r\n this.loading = false\r\n this.interviewDetailsData = interviewDetails\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n private _saveCandidateDuration() {\r\n if (this.durationForm.invalid) {\r\n this.durationForm.markAllAsTouched()\r\n } else {\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.durationForm.value,\r\n })\r\n }\r\n }\r\n\r\n // Save And Close Method\r\n onSave() {\r\n switch (this.dialogName) {\r\n case ConsultantDialogTypes.Education: {\r\n this.addEducation()\r\n break\r\n }\r\n case ConsultantDialogTypes.Certificate: {\r\n this.addCertificate()\r\n break\r\n }\r\n case ConsultantDialogTypes.Patent: {\r\n this.addPatent()\r\n break\r\n }\r\n case ConsultantDialogTypes.Training: {\r\n this.addTraining()\r\n break\r\n }\r\n case ConsultantDialogTypes.Publication: {\r\n this.addPublication()\r\n break\r\n }\r\n case ConsultantDialogTypes.Award: {\r\n this.addAward()\r\n break\r\n }\r\n case ConsultantDialogTypes.Project: {\r\n this.addProject()\r\n break\r\n }\r\n case ConsultantDialogTypes.Skill: {\r\n this.addSkill()\r\n break\r\n }\r\n case ConsultantDialogTypes.Reference: {\r\n if (!this.consultantReferenceForm.dirty) this.onClose()\r\n else this.addReference()\r\n break\r\n }\r\n case ConsultantDialogTypes.Consultant: {\r\n this.addConsultant()\r\n break\r\n }\r\n case ConsultantDialogTypes.JobEdit: {\r\n this.saveJob()\r\n break\r\n }\r\n case ConsultantDialogTypes.Delete: {\r\n this.dialogRef.close({ formName: this.dialogName })\r\n break\r\n }\r\n case ConsultantDialogTypes.Vendor: {\r\n this.saveVendor()\r\n break\r\n }\r\n case ConsultantDialogTypes.VendorContact: {\r\n this.saveVendorContact()\r\n break\r\n }\r\n case ConsultantDialogTypes.JobStatus: {\r\n this.saveCandidateJobStatus()\r\n break\r\n }\r\n case ConsultantDialogTypes.Candidate_Card: {\r\n this.dialogRef.close({ formName: this.dialogName })\r\n break\r\n }\r\n case ConsultantDialogTypes.Candidate_Mail_Text_Edit: {\r\n this.saveMailTextWithJobStatusDetails()\r\n break\r\n }\r\n case ConsultantDialogTypes.Candidate_Duration_Date: {\r\n this._saveCandidateDuration()\r\n break\r\n }\r\n }\r\n }\r\n\r\n onClose() {\r\n this.resetForm()\r\n this.dialogRef.close({ formName: 'close' })\r\n }\r\n startDateChangesHandler(event) {\r\n const startDate = new Date(event?.value)\r\n startDate.setDate(startDate.getDate() + 1)\r\n this.minEndDate = startDate\r\n }\r\n\r\n getCandidateJobHistory(jobId, candidateId) {\r\n this.consultantService\r\n .getCandidateJobHistory(jobId, candidateId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.candidateHistoryDataSource.data = res as any\r\n })\r\n }\r\n\r\n get isAllValuesAreNull() {\r\n return this.candidateHistoryDataSource.filteredData.every(\r\n (data) => data.BillRate === null && data.PayRate === null && data.Margin === null\r\n )\r\n }\r\n onProjectDateChange() {\r\n const isCurrentlyWorkingPresent: boolean[] = []\r\n this.projectsArray.forEach((item) => {\r\n isCurrentlyWorkingPresent.push(item.IsCurrentlyWorking ? item.IsCurrentlyWorking : false)\r\n })\r\n if (\r\n isCurrentlyWorkingPresent.filter((item) => item == true).length >= 1 &&\r\n this.consultantProjectForm.get('IsCurrentlyWorking').value\r\n ) {\r\n this.notifyService.showWarning('There is one project already working currently', 'Candidate projects')\r\n return\r\n }\r\n if (!this.consultantProjectForm.get('IsCurrentlyWorking').value) {\r\n if (\r\n new Date(this.consultantProjectForm.get('DurationTo')?.value) <\r\n new Date(this.consultantProjectForm.get('DurationFrom')?.value)\r\n ) {\r\n this.notifyService.showWarning('Start date should be before end date', 'Consultant Project')\r\n }\r\n }\r\n let overlap = false\r\n this.projectsArray.forEach((project) => {\r\n let projectDurationFrom = new Date(project.DurationFrom)\r\n let projectDurationTo = new Date(project.DurationTo)\r\n let currentProjectDurationFrom = this.consultantProjectForm.get('DurationFrom')?.value\r\n ? new Date(this.consultantProjectForm.get('DurationFrom')?.value)\r\n : null // current project start\r\n let currentProjectDurationTo = this.consultantProjectForm.get('DurationTo')?.value\r\n ? new Date(this.consultantProjectForm.get('DurationTo')?.value)\r\n : null // current project end\r\n\r\n if (!overlap) {\r\n if (project.IsCurrentlyWorking) {\r\n if (\r\n projectDurationFrom <= currentProjectDurationTo ||\r\n projectDurationFrom <= currentProjectDurationFrom\r\n ) {\r\n overlap = true\r\n }\r\n } else if (this.consultantProjectForm.get('IsCurrentlyWorking').value) {\r\n if (\r\n !(projectDurationFrom <= currentProjectDurationFrom) ||\r\n !(projectDurationTo <= currentProjectDurationFrom)\r\n ) {\r\n overlap = true\r\n }\r\n } else if (\r\n projectDurationFrom <= currentProjectDurationTo &&\r\n projectDurationTo >= currentProjectDurationFrom\r\n ) {\r\n overlap = true\r\n }\r\n }\r\n })\r\n\r\n if (overlap) {\r\n this.notifyService.showWarning('Overlapping Date Ranges', 'Consultant Project')\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n {{ method }} Education \r\n\r\n close\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Degree*\r\n \r\n \r\n {{ degree.Key }}\r\n \r\n \r\n Degree is required\r\n \r\n \r\n
\r\n
\r\n Name \r\n \r\n \r\n \r\n
\r\n
\r\n Year \r\n \r\n \r\n\r\n \r\n \r\n Year must be less than current year\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Organization \r\n \r\n \r\n \r\n
\r\n
\r\n Location\r\n \r\n \r\n \r\n
\r\n
\r\n URL Link\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n {{ method }} Certificate \r\n close\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Name*\r\n \r\n \r\n \r\n Certificate name is required\r\n \r\n \r\n
\r\n
\r\n Year \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Organization \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Credential ID\r\n \r\n \r\n \r\n
\r\n
\r\n URL Link\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n {{ method }} Project \r\n\r\n close\r\n
\r\n \r\n
\r\n
\r\n
\r\n Client Name*\r\n \r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n Client name is required\r\n \r\n \r\n
\r\n
\r\n Job Title*\r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n Job title is required\r\n \r\n \r\n
\r\n
\r\n Currently working here?\r\n
\r\n
\r\n Duration Start*\r\n \r\n \r\n \r\n \r\n Start date is required\r\n \r\n Invalid Date\r\n \r\n \r\n
\r\n
\r\n Duration End*\r\n \r\n \r\n \r\n \r\n End date is required\r\n \r\n Invalid Date\r\n \r\n \r\n
\r\n
\r\n City\r\n \r\n \r\n \r\n \r\n {{ city.City }}, {{ city.StateCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n State\r\n \r\n \r\n \r\n \r\n {{ state.StateName }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Description\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n {{ method }} {{ isSoftSkill ? 'Soft' : isTechnicalSkill ? 'Technical' : '' }} Skill \r\n\r\n close\r\n
\r\n \r\n
\r\n
\r\n
\r\n Skill Name*\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n Skill name is required\r\n \r\n \r\n
\r\n
\r\n Candidate Experience (Yrs)*\r\n \r\n \r\n \r\n Experience is required\r\n \r\n \r\n
\r\n
\r\n Skill Rating*\r\n \r\n \r\n {{ skillLevel.Key }}\r\n \r\n Please Select Skill Rating.\r\n \r\n
\r\n
\r\n Last Worked (yyyy)\r\n \r\n \r\n \r\n \r\n Last Worked Year must be less than current year\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n {{ method }} Reference \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Company Name\r\n \r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Full Name\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Job Title\r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Email Address\r\n \r\n \r\n \r\n Enter valid email address\r\n \r\n \r\n
\r\n
\r\n Work Phone\r\n \r\n \r\n \r\n
\r\n
\r\n Cell Phone\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Edit Candidate \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
Upload
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Upload Resume*\r\n \r\n
\r\n\r\n
\r\n Upload Profile Picture\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n
\r\n \r\n Delete\r\n \r\n \r\n Update Logo\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
General
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n First Name*\r\n \r\n \r\n \r\n First name is required\r\n \r\n \r\n No special characters allowed.\r\n \r\n \r\n
\r\n
\r\n Last Name*\r\n \r\n \r\n \r\n Last name is required\r\n \r\n \r\n No special characters allowed.\r\n \r\n \r\n
\r\n
\r\n Middle Name\r\n \r\n \r\n \r\n No special characters allowed.\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Job Title\r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Experience\r\n \r\n \r\n \r\n
\r\n
\r\n Contact Number*\r\n \r\n \r\n \r\n Contact number is required\r\n \r\n \r\n
\r\n
\r\n Email Address*\r\n \r\n \r\n \r\n Email is required\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
Personal Details
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Linkedin\r\n \r\n \r\n \r\n
\r\n
\r\n GitHub\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Youtube Links\r\n \r\n \r\n \r\n
\r\n
\r\n Stack Overflow\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n Upload Resume\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n Upload Profile Picture\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Candidate Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Preferred Job Type *\r\n \r\n \r\n \r\n \r\n {{ type.Key }}\r\n \r\n \r\n \r\n Job type is required\r\n \r\n \r\n
\r\n
\r\n Expected Pay Rate/Hr\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Expected Salary/Annum\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Work Permit * \r\n \r\n \r\n \r\n {{ type.Key }}\r\n \r\n \r\n \r\n Work permit is required\r\n \r\n \r\n
\r\n
\r\n Open to Relocation\r\n \r\n \r\n \r\n {{ con.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
Employment Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Employment Type *\r\n \r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Employment type is required\r\n \r\n \r\n
\r\n
\r\n \r\n Vendor\r\n \r\n add Add\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Contact\r\n \r\n add Add\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ contact.ContactName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Resume Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Source * \r\n \r\n \r\n \r\n {{ sourceType.Key }}\r\n \r\n \r\n \r\n Source of the resume is required\r\n \r\n \r\n
\r\n
\r\n \r\n Recruiter\r\n \r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Resume Date\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Add Vendor \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Vendor/Company Name*\r\n \r\n \r\n \r\n Company name is required\r\n \r\n \r\n
\r\n
\r\n Domain*\r\n \r\n \r\n \r\n Domain is required\r\n \r\n \r\n
\r\n
\r\n Phone Number*\r\n \r\n \r\n \r\n Phone no is required\r\n \r\n \r\n
\r\n
\r\n Company Type\r\n \r\n \r\n \r\n \r\n {{ companyType.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{\r\n activeCompany?.Name?.length > 0 ? 'Add Vendor Contact for ' + activeCompany?.Name : 'Add Vendor Contact'\r\n }}\r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n First Name*\r\n \r\n \r\n \r\n First name is required\r\n \r\n \r\n Only alphabets are accepted.\r\n \r\n \r\n
\r\n
\r\n Last Name*\r\n \r\n \r\n \r\n Last name is required\r\n \r\n \r\n Only alphabets are accepted.\r\n \r\n \r\n
\r\n
\r\n Work Phone No*\r\n \r\n \r\n \r\n Work phone no is required\r\n \r\n \r\n
\r\n
\r\n Work Email ID*\r\n \r\n \r\n \r\n Work email ID is required\r\n \r\n \r\n Work email is already present\r\n \r\n \r\n Work email is overlapping with candidate email.\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Edit Candidate Job Status \r\n close\r\n
\r\n
\r\n
\r\n Editing Job Status of {{ formData?.ConsultantName }}.\r\n
\r\n
\r\n \r\n
\r\n Client Rate* 0\">\r\n (Max. ${{ maxBillRate }})\r\n \r\n \r\n \r\n Bill Rate is Required\r\n \r\n \r\n Bill should be less than {{ maxBillRate }}\r\n \r\n \r\n
\r\n
\r\n Pay Rate* 0\">\r\n ({{ markTypeValue == markupType.Goal_Markup ? 'Goal' : 'Min' }} ${{\r\n minimumPayRate\r\n }})\r\n \r\n \r\n \r\n Minimum pay rate is ${{ minimumPayRate }}\r\n \r\n \r\n Pay rate is Required\r\n \r\n \r\n
\r\n
\r\n Annual Salary*\r\n \r\n \r\n \r\n Annual Salary is required\r\n \r\n \r\n
\r\n
\r\n Consultant Type * \r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Job type is required\r\n \r\n \r\n
\r\n
\r\n Status\r\n \r\n \r\n \r\n {{ status.MenuName }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Vendor\r\n \r\n add Add\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Contact\r\n \r\n add Add\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ contact.ContactName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n {{ 'Are you sure you want to delete this ' + deleteMethod + '?' }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Duplicate Candidate Found\r\n close\r\n
\r\n \r\n
\r\n
\r\n
\r\n badge\r\n
\r\n Full name:\r\n {{ candidate?.FirstName }} {{ candidate?.LastName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Last Resume updated:\r\n {{ resumeLastUpdatedDate | dateAgo }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Email Id:\r\n {{ candidate?.Emailaddress }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Contact No:\r\n {{ candidate?.CellPhone }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Employment type:\r\n {{ employmentType?.join(', ') }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Job Status change\r\n close\r\n
\r\n
\r\n
\r\n Editing Job Status of {{ activeConsultantJob?.ConsultantName }}.\r\n
\r\n
Candidate Details :
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Interview Details \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ candidateName }}
\r\n
{{ candidateEmail }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title :\r\n
\r\n
\r\n {{ job?.JobTitleName }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Client Name :\r\n
\r\n
\r\n {{ job?.CompanyName }}\r\n
\r\n
\r\n
\r\n 1\" class=\"field-subtitle\"\r\n >{{ i + 1 }}{{ i == 0 ? 'st' : 'nd' }} Interview Details :\r\n Interview Details :\r\n
\r\n
\r\n
\r\n Interviewer Name :\r\n
\r\n
\r\n {{ detail.InterviewerName }}\r\n
\r\n
\r\n
\r\n
\r\n Interview Type :\r\n
\r\n
\r\n \r\n {{ interviewTypeText[detail.InterviewTypeID] }}\r\n
\r\n
\r\n
\r\n
\r\n Duration (Hr) :\r\n
\r\n
\r\n {{ detail.Duration | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Interview Location :\r\n
\r\n
\r\n {{ detail.Location | nullValueReplace }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Interview Details :\r\n
\r\n
\r\n \r\n {{ detail.InterviewDetails | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Close\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n Resume Reference \r\n
\r\n
\r\n No resume found.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
Recruiter Notes :
\r\n
\r\n \r\n \r\n \r\n {{\r\n candidateNotesFormControl?.errors?.maxlength ? 'Only 25000 character allowed.' : 'Notes is required'\r\n }}\r\n \r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n Jobs\r\n close\r\n
\r\n
\r\n
\r\n Editing Job Status of {{ activeConsultantJob?.ConsultantName }}.\r\n
\r\n
\r\n
\r\n Employment Type*\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Employment Type is Required\r\n \r\n \r\n
\r\n
\r\n Bill Rate*\r\n 0\">\r\n (Max. ${{ maxBillRate }})\r\n \r\n \r\n \r\n \r\n Bill Rate is Required\r\n \r\n \r\n Bill should be less than {{ maxBillRate }}\r\n \r\n \r\n
\r\n
\r\n Pay Rate*\r\n 0\">\r\n ({{ markTypeValue == markupType.Goal_Markup ? 'Goal' : 'Min' }} ${{\r\n minimumPayRate\r\n }})\r\n \r\n \r\n \r\n \r\n Minimum pay rate is ${{ minimumPayRate }}\r\n \r\n \r\n Pay rate is Required\r\n \r\n \r\n
\r\n
\r\n Margin \r\n \r\n \r\n \r\n
\r\n
\r\n Annual Salary* ({{\r\n job.MaxSalary\r\n }})\r\n \r\n \r\n \r\n \r\n Annual Salary is required\r\n \r\n \r\n
\r\n
\r\n Recruiter\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n Vendor*\r\n \r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n Vendor Name is Required\r\n \r\n \r\n
\r\n
\r\n Contact*\r\n \r\n \r\n \r\n {{ contact.ContactName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n Vendor Contact is Required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Update\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Duration\r\n close\r\n
\r\n
\r\n
\r\n Candidate Name : {{ activeConsultantJob?.ConsultantName }}.\r\n
\r\n\r\n
Please select candidate job duration
\r\n\r\n
\r\n
\r\n Start Date *\r\n \r\n \r\n \r\n Start date is required\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n End Date*\r\n \r\n \r\n \r\n End date is required\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Job Transaction\r\n close\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Job IdTitleClient RatePay RateRecruiterStatus
{{ activeConsultantJob?.JobID | nullValueReplace }}\r\n
\r\n {{ activeConsultantJob?.ClientName | nullValueReplace }}\r\n
\r\n
{{ activeConsultantJob.BillRate | nullValueReplace }}{{ activeConsultantJob?.PayRate | nullValueReplace }}{{ activeConsultantJob?.RecruiterName | nullValueReplace }}{{ activeConsultantJob?.ConsultantJobStatus | nullValueReplace }}
\r\n\r\n
\r\n Recent Job Transaction \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
Date{{ row.UpdatedDate | nullValueReplace }}Client Rate\r\n {{ row.BillRate | currency : 'USD' : 'symbol-narrow' : '1.0-0' | nullValueReplace }}\r\n Pay Rate\r\n {{ row.PayRate | currency : 'USD' : 'symbol-narrow' : '1.0-0' | nullValueReplace }}\r\n Updated by{{ row.UpdatedBy | nullValueReplace }}Status{{ row.Status | nullValueReplace }}\r\n \r\n keyboard_arrow_down\r\n keyboard_arrow_up\r\n \r\n \r\n \r\n 0\"> {{ element?.Comment }} \r\n \r\n No Comments Available.\r\n \r\n \r\n
\r\n \r\n
No Data available
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Patent\r\n close\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Patent Name*\r\n \r\n \r\n \r\n Patent name is required\r\n \r\n \r\n
\r\n
\r\n Patent Number*\r\n \r\n \r\n \r\n Patent Number is required\r\n \r\n \r\n
\r\n \r\n
\r\n IsActive*\r\n Active\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Award\r\n close\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Award Name*\r\n \r\n \r\n \r\n Award name is required\r\n \r\n \r\n
\r\n
\r\n Organization*\r\n \r\n \r\n \r\n Organization is required\r\n \r\n \r\n
\r\n
\r\n Year*\r\n \r\n \r\n \r\n Year is required\r\n \r\n \r\n
\r\n
\r\n Location*\r\n \r\n \r\n \r\n Location is required\r\n \r\n \r\n
\r\n
\r\n Description*\r\n \r\n \r\n \r\n Description is required\r\n \r\n \r\n
\r\n \r\n
\r\n IsActive*\r\n Active\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Publication\r\n close\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Publication Name*\r\n \r\n \r\n \r\n Publication name is required\r\n \r\n \r\n
\r\n
\r\n Subject*\r\n \r\n \r\n \r\n Subject is required\r\n \r\n \r\n
\r\n
\r\n Publication Date*\r\n \r\n \r\n \r\n \r\n \r\n PublicationDate is required\r\n \r\n \r\n
\r\n
\r\n Publisher*\r\n \r\n \r\n \r\n Publisher is required\r\n \r\n \r\n
\r\n \r\n
\r\n IsActive*\r\n Active\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Candidate Training\r\n close\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Training Name*\r\n \r\n \r\n \r\n Training name is required\r\n \r\n \r\n
\r\n
\r\n Description*\r\n \r\n \r\n \r\n Description is required\r\n \r\n \r\n
\r\n
\r\n TrainingType*\r\n \r\n \r\n \r\n TrainingType is required\r\n \r\n \r\n
\r\n
\r\n Category*\r\n \r\n \r\n \r\n Category is required\r\n \r\n \r\n
\r\n
\r\n Level*\r\n \r\n \r\n \r\n Level is required\r\n \r\n \r\n
\r\n
\r\n StartDate*\r\n \r\n \r\n \r\n \r\n\r\n \r\n StartDate is required\r\n \r\n \r\n
\r\n
\r\n EndDate*\r\n \r\n \r\n \r\n \r\n\r\n \r\n EndDate is required\r\n \r\n \r\n
\r\n
\r\n Location*\r\n \r\n \r\n \r\n Location is required\r\n \r\n \r\n
\r\n
\r\n Duration*\r\n \r\n \r\n \r\n Duration is required\r\n \r\n \r\n
\r\n \r\n
\r\n IsActive\r\n Active\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit } from '@angular/core'\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs'\r\nimport { fadeInUp400ms } from 'src/app/shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from 'src/app/shared/core/animations/stagger.animation'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { Filter, ModuleNames, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { TableVirtualScrollDataSource } from 'ng-table-virtual-scroll'\r\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'\r\nimport { Common } from 'src/app/common/common'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { forkJoin, Subject } from 'rxjs'\r\nimport { EmailLogsFilterNames } from 'src/app/enums/candidateFilterName'\r\nimport { ADMIN_ROLES_LIST } from 'src/app/constants/userRoles.constants'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\n@Component({\r\n selector: 'leap-consultant-email-logs',\r\n templateUrl: './consultant-email-logs.component.html',\r\n styleUrls: ['./consultant-email-logs.component.scss'],\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [CdkVirtualScrollViewport],\r\n})\r\nexport class ConsultantEmailLogsComponent implements OnInit, OnDestroy {\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n private ngUnSubscribe$: Subject = new Subject()\r\n public get moduleNames(): typeof ModuleNames {\r\n return ModuleNames\r\n }\r\n candidateDataSource: TableVirtualScrollDataSource = new TableVirtualScrollDataSource()\r\n displayedColumns: string[] = [\r\n 'logId',\r\n 'candidateName',\r\n 'VendorEmail',\r\n 'recruiterName',\r\n 'sourceFormat',\r\n 'sourceName',\r\n 'parsingTime',\r\n 'receivedTime',\r\n 'updatedTime',\r\n 'status',\r\n 'resume',\r\n 'parsingComments',\r\n ]\r\n sortField: string\r\n sortOrder: string\r\n filePath = Common.filePath\r\n isLoading: boolean = false\r\n private lastScrollTop: number = 0\r\n hasMoreData: boolean = true\r\n PageNumber = 1\r\n PageSize = 20\r\n candidateNameSearchText: string\r\n candidateEmailSearchText: string\r\n UserEmailSearchText: string\r\n searchSearchText: string\r\n candidateEmailLogFilterOptions: Filter[]\r\n parserLogs: any[] = []\r\n dataSource: TableVirtualScrollDataSource | null\r\n totalLength: number\r\n pageNumber: number = 1\r\n public statusSelected = []\r\n toDateSearchText: string\r\n fromDateSearchText: string\r\n constructor(\r\n private filterModelService: FilterModelService,\r\n private jobService: JobService,\r\n public authService: AuthenticationService,\r\n private observableService: ObservableService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getFilterOption()\r\n this.candidateEmailLogFilterOptions = this.filterModelService.getEmailLogFilters()\r\n\r\n this.observableService.emailLogDateChanged$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((searchData) => {\r\n if (searchData.size > 0) {\r\n if (searchData.has(EmailLogsFilterNames.To_Date)) {\r\n this.toDateSearchText = ''\r\n this.toDateSearchText = searchData.get(EmailLogsFilterNames.To_Date)\r\n }\r\n if (searchData.has(EmailLogsFilterNames.From_Date)) {\r\n this.fromDateSearchText = ''\r\n this.fromDateSearchText = searchData.get(EmailLogsFilterNames.From_Date)\r\n }\r\n }\r\n this.pageNumber = 1\r\n this.parserLogs = []\r\n this.getParserLog()\r\n })\r\n this.observableService.emailLogsModuleLevelSearchChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((searchText) => {\r\n this.searchSearchText = searchText?.length > 0 ? searchText : ''\r\n this.pageNumber = 1\r\n this.parserLogs = []\r\n this.getParserLog()\r\n })\r\n // this.observableService.emailLogsDropdownSearchTextFilterValueChanged$\r\n // .pipe(takeUntil(this.ngUnSubscribe$))\r\n // .subscribe((searchText) => {\r\n // if (searchText.size > 0) {\r\n // if (searchText.has(EmailLogsFilterNames.Status)) {\r\n // searchText.get(EmailLogsFilterNames.Status)\r\n // }\r\n // }\r\n // this.pageNumber = 1\r\n // this.parserLogs = []\r\n // this.getParserLog()\r\n // })\r\n this.observableService.emailLogsTextBoxFilterValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((searchData) => {\r\n // if (searchData.has(EmailLogsFilterNames.)) {\r\n // this.candidateNameSearchText = searchData.get(EmailLogsFilterNames.Candidate_Email)\r\n // }\r\n if (searchData.has(EmailLogsFilterNames.Candidate_Email)) {\r\n this.candidateEmailSearchText = searchData.get(EmailLogsFilterNames.Candidate_Email)\r\n }\r\n // if (searchData.has(EmailLogsFilterNames.Recruiter_Email)) {\r\n // this.UserEmailSearchText = searchData.get(EmailLogsFilterNames.Recruiter_Email)\r\n // }\r\n this.pageNumber = 1\r\n this.parserLogs = []\r\n this.getParserLog()\r\n })\r\n // this.observableService.emailLogsFilterValueChanged$\r\n // .pipe(takeUntil(this.ngUnSubscribe$))\r\n // .subscribe((searchData) => {\r\n //\r\n // // if (searchData.has(EmailLogsFilterNames.)) {\r\n // // this.candidateNameSearchText = searchData.get(EmailLogsFilterNames.Candidate_Email)\r\n // // }\r\n // // if (searchData.has(EmailLogsFilterNames.Candidate_Email)) {\r\n // // this.candidateEmailSearchText = searchData.get(EmailLogsFilterNames.Candidate_Email)\r\n // // }\r\n // if (searchData.has(EmailLogsFilterNames.Recruiter_Email)) {\r\n // this.UserEmailSearchText = searchData.get(EmailLogsFilterNames.Recruiter_Email).join(',')\r\n // // this.UserEmailSearchText = searchData.get(EmailLogsFilterNames.Recruiter_Email)\r\n // }\r\n // this.pageNumber = 1\r\n // this.parserLogs = []\r\n // this.getParserLog()\r\n // })\r\n\r\n this.observableService.emailLogsFilterValueChanged$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((filter) => {\r\n if (filter.has(EmailLogsFilterNames.Recruiter_Email)) {\r\n this.UserEmailSearchText = filter.get(EmailLogsFilterNames.Recruiter_Email).join(',')\r\n // this.UserEmailSearchText = searchData.get(EmailLogsFilterNames.Recruiter_Email)\r\n }\r\n if (filter.size > 0) {\r\n if (filter.has(EmailLogsFilterNames.Status)) {\r\n this.statusSelected = []\r\n this.statusSelected = filter.get(EmailLogsFilterNames.Status)\r\n }\r\n // else if (filter.has(JobFilterNames.JOB_STATUS)) {\r\n // this.statusChecked = [JobStatus.Open, JobStatus.Hold]\r\n // this.statusChecked = filter.get(JobFilterNames.JOB_STATUS)\r\n // } else if (filter.has(JobFilterNames.JOB_TITLE)) {\r\n // this.titlesSelected = []\r\n // this.titlesSelected = filter.get(JobFilterNames.JOB_TITLE)\r\n // } else if (filter.has(JobFilterNames.USER)) {\r\n // this.recruitersChecked = []\r\n // this.recruitersChecked = filter.get(JobFilterNames.USER)\r\n // } else if (filter.has(JobFilterNames.JOB_TYPE)) {\r\n // this.jobTypeSelected = [10, 11, 12]\r\n // this.jobTypeSelected = filter.get(JobFilterNames.JOB_TYPE)\r\n // }\r\n }\r\n this.pageNumber = 1\r\n this.parserLogs = []\r\n this.getParserLog()\r\n })\r\n this.observableService.filterResetValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((filterReset) => {\r\n if (filterReset) {\r\n this.UserEmailSearchText = ''\r\n this.candidateEmailSearchText = ''\r\n this.searchSearchText = ''\r\n this.fromDateSearchText = ''\r\n this.toDateSearchText = ''\r\n this.statusSelected = []\r\n }\r\n this.getStatusOptions()\r\n this.pageNumber = 1\r\n this.parserLogs = []\r\n this.getParserLog()\r\n })\r\n this.getParserLog()\r\n }\r\n getParserLog() {\r\n this.isLoading = true\r\n const emailLogs = {\r\n Type: '',\r\n Source: '',\r\n SourceInput: '',\r\n UserId: this.authService.userInfo.userID,\r\n CandidateName: this.searchSearchText ? this.searchSearchText : '',\r\n CandidateEmail: this.candidateEmailSearchText ? this.candidateEmailSearchText : '',\r\n UserEmail: this.UserEmailSearchText ? this.UserEmailSearchText : '',\r\n StatusId:\r\n this.statusSelected && this.statusSelected.length > 0\r\n ? this.statusSelected.length === 1\r\n ? this.statusSelected\r\n .map((status) => {\r\n console.log(status)\r\n\r\n if (status === 1) {\r\n return '1'\r\n } else if (status === 2) {\r\n return '0'\r\n } else {\r\n return '-1'\r\n }\r\n })\r\n .join(',')\r\n : '-1'\r\n : '-1',\r\n // StatusId: this.statusSelected.length > 0 ? this.statusSelected.length > 1? '-1': this.statusSelected\r\n // .map((status) => {\r\n // if (status === 1) {\r\n // return '1'\r\n // }\r\n // else if (status === 2) {\r\n // return '0'\r\n // }\r\n // else {\r\n // return '-1'\r\n // }\r\n // }).join(',') : '-1',\r\n Status: '',\r\n IsVendorResume: false,\r\n VendorEmailadress: null,\r\n RequestRecievedDate: null,\r\n EmailReceivedFromDate: null,\r\n EmailReceivedToDate: null,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.PageSize,\r\n LogFromDate: this.fromDateSearchText ? this.fromDateSearchText : null,\r\n LogToDate: this.toDateSearchText ? this.toDateSearchText : null,\r\n }\r\n this.jobService\r\n .getParserLogs(emailLogs)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe({\r\n next: (logs: CandidateResume[]) => {\r\n this.isLoading = false\r\n // this.candidateDataSource.data = logs\r\n\r\n if (logs && logs.length > 0) {\r\n this.totalLength = logs[0]?.TotalCount // Update total length\r\n this.hasMoreData = this.parserLogs.length < this.totalLength\r\n if (this.hasMoreData) {\r\n this.pageNumber++\r\n } else {\r\n this.notifyService.showInfo(\r\n 'You have reached the end of the Email Parser Logs',\r\n 'Email Parser Logs'\r\n )\r\n }\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n this.parserLogs = [...this.parserLogs, ...logs]\r\n this.dataSource.data = this.parserLogs\r\n this.dataSource = new TableVirtualScrollDataSource(this.parserLogs)\r\n }\r\n },\r\n error: () => {\r\n this.isLoading = false\r\n },\r\n })\r\n }\r\n announceSortChange(sortState: { active: string; direction: string }) {\r\n // // Announce sort change if needed\r\n // console.log(`Sorted by: ${sortState.active}, direction: ${sortState.direction}`);\r\n }\r\n onScroll(event: any): void {\r\n const scrollTop = event.target.scrollTop\r\n const scrollHeight = event.target.scrollHeight\r\n const clientHeight = event.target.clientHeight\r\n const isScrollingDown = scrollTop > this.lastScrollTop\r\n this.lastScrollTop = scrollTop\r\n if (isScrollingDown) {\r\n if (scrollTop + clientHeight >= scrollHeight - 150) {\r\n if (!this.isLoading && this.hasMoreData) {\r\n this.getParserLog()\r\n }\r\n }\r\n }\r\n }\r\n getRecruiters() {\r\n return this.jobService.GetRecruiterByRoleId(\r\n Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager\r\n )\r\n }\r\n getRecruiterOptions(allOptions: any): Option[] {\r\n let recruiterOption: Option[] = []\r\n allOptions?.forEach((item) => {\r\n recruiterOption.push({ key: item.UserID, value: item.FirstName + ' | ' + item.UserName })\r\n })\r\n return recruiterOption\r\n }\r\n getStatusOptions(): Option[] {\r\n let options = [\r\n { key: 1, value: 'Success', label: 'Success' },\r\n { key: 2, value: 'Failed', label: 'Failed' },\r\n ]\r\n let StatusOption: Option[] = []\r\n options?.forEach((item) => {\r\n StatusOption.push({ key: item.key, value: item.value })\r\n })\r\n return StatusOption\r\n }\r\n getFilterOption() {\r\n forkJoin({\r\n recruiter: this.getRecruiters(),\r\n }).subscribe(({ recruiter }) => {\r\n this.candidateEmailLogFilterOptions.forEach((item) => {\r\n switch (item.name) {\r\n case EmailLogsFilterNames.Recruiter_Email: {\r\n item.options = []\r\n item.isDisabled = this._isUserIsAdmin()\r\n item.options = this.getRecruiterOptions(recruiter)\r\n item.originalOptions = this.getRecruiterOptions(recruiter)\r\n break\r\n }\r\n\r\n case EmailLogsFilterNames.Status: {\r\n //TODO:Add options for status\r\n\r\n item.options = []\r\n item.isDisabled = this._isUserIsAdmin()\r\n item.options = this.getStatusOptions()\r\n item.originalOptions = this.getStatusOptions()\r\n break\r\n }\r\n }\r\n })\r\n })\r\n }\r\n\r\n resetFilters() {\r\n this.candidateEmailLogFilterOptions?.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n if (item.name === EmailLogsFilterNames.Recruiter_Email) {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n item.options = []\r\n item.originalOptions = []\r\n }\r\n })\r\n this.getFilterOption()\r\n this.pageNumber = 1\r\n this.parserLogs = []\r\n this.getParserLog()\r\n }\r\n private _isUserIsAdmin(): boolean {\r\n const USER_INFO = this.authService?.userInfo\r\n return !USER_INFO.roles.filter((role) => {\r\n if (ADMIN_ROLES_LIST.includes(role.code)) return role\r\n }).length\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe$.next()\r\n this.ngUnSubscribe$.complete()\r\n }\r\n getFileName(filePath: string): string {\r\n if (filePath) {\r\n const fileName = filePath?.split('\\\\').pop()?.split('/').pop() ?? ''\r\n const nameWithoutExtension = fileName?.split('.').slice(0, -1).join('.')\r\n\r\n return nameWithoutExtension\r\n }\r\n }\r\n formatTime(time: string): string {\r\n if (!time) return ''\r\n const timeParts = time.split(':')\r\n\r\n if (timeParts.length >= 2) {\r\n const minutes = timeParts[0]\r\n const seconds = timeParts[1]\r\n return `${minutes.replace('m', '')}:${seconds.replace('s', '')}`\r\n }\r\n return time\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n Showing {{ parserLogs.length }} / {{ totalLength | number }} Parser Logs Results\r\n \r\n \r\n \r\n Log ID\r\n \r\n {{ element?.ID | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Candidate Name\r\n \r\n \r\n \r\n \r\n {{ element.CandidateName | nullValueReplace }}\r\n \r\n {{ element.CandidateEmail | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n Vendor Name\r\n \r\n \r\n \r\n \r\n {{ element.VendorName | nullValueReplace }}\r\n \r\n {{ element.VendorEmailadress | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n Recruiter\r\n \r\n \r\n \r\n \r\n {{ element.UserName | nullValueReplace }}\r\n \r\n {{ element.UserEmail | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n Source Format\r\n \r\n {{ element?.SourceFormat | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Source Name\r\n \r\n {{ element?.SourceTypeName | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Parsing Time (Min:Sec)\r\n \r\n {{ formatTime(element?.TotalTimeTaken) | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Received Date / Time\r\n \r\n {{ element?.RequestRecievedDate | date : 'yyyy-MM-dd HH:mm' | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Updated Date / Time\r\n \r\n {{ element?.CreatedDate | date : 'yyyy-MM-dd HH:mm' | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Resume\r\n \r\n \r\n \r\n \r\n\r\n \r\n Status\r\n \r\n \r\n {{ element?.IsParsed ? 'Success' : ('Failed' | nullValueReplace) }}\r\n \r\n \r\n \r\n\r\n \r\n Parsing Comments\r\n \r\n {{ element?.Status | nullValueReplace }}\r\n \r\n \r\n\r\n \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 { ThemePalette } from '@angular/material/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\nimport { Common } from 'src/app/common/common';\r\n\r\n@Component({\r\n selector: 'consultant-feedback',\r\n templateUrl: './consultant-feedback.component.html',\r\n styleUrls: ['./consultant-feedback.component.scss']\r\n})\r\nexport class ConsultantFeedbackComponent implements OnInit {\r\n color: ThemePalette = 'primary';\r\n mode: ProgressSpinnerMode = 'determinate';\r\n value = 70;\r\n bufferValue = 75;\r\n feedbackCardArray = [1,2,3]\r\n\r\n public loading = false;\r\n @Input() consultantSource: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n console.log(this.consultantSource, \"###\");\r\n \r\n }\r\n\r\n}\r\n"," \r\n\r\n\r\n\r\n\r\n
\r\n
\r\n Feedback\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n 4\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n 5\r\n \r\n \r\n 124\r\n
\r\n\r\n
\r\n 4\r\n \r\n 34\r\n 45\r\n
\r\n\r\n
\r\n 3\r\n \r\n 65\r\n 67\r\n
\r\n\r\n
\r\n 2\r\n \r\n 4\r\n 5\r\n
\r\n\r\n
\r\n 1\r\n \r\n 55\r\n 9\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Communication\r\n
\r\n
\r\n \r\n \r\n \r\n Leaderhip\r\n
\r\n
\r\n \r\n \r\n \r\n Teamwork\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Agile Project Manager\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{consultantSource.CandidateTitle }}\r\n
\r\n
\r\n
\r\n
\r\n chevron_left\r\n chevron_right\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Communication\r\n
\r\n
\r\n \r\n \r\n \r\n Leaderhip\r\n
\r\n
\r\n \r\n \r\n \r\n Teamwork\r\n
\r\n
\r\n
\r\n

\r\n In publishing and graphic design, Lorem ipsum is a placeholder\r\n text commonly used to demonstrate the visual\r\n form of a document or a typeface without relying on\r\n meaningful content. In publishing and graphic design,\r\n Lorem ipsum is a placeholder text commonly used to demonstrate\r\n the visual form of a document or a typeface without relying on meaningful content.\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n 29 Jan 2022\r\n \r\n By Interview\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit,Input,SimpleChanges } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\nimport { Common } from '../../common/common';\r\nimport { ConsultantService } from '../consultant.service';\r\nexport interface iConsultantSearch {\r\n SourceID?: string;\r\n SourceTypeID?: number;\r\n\r\n}\r\n@Component({\r\n selector: 'consultant-fileview',\r\n templateUrl: './consultant-fileview.component.html',\r\n styleUrls: ['./consultant-fileview.component.scss']\r\n})\r\nexport class ConsultantFileviewComponent implements OnInit {\r\n\r\n safeHtmlContent: SafeHtml;\r\n htmlString:string;\r\n public loading = false;\r\n searchPara: iConsultantSearch;\r\n consultant: any = {};\r\n constructor( private sanitized: DomSanitizer,\r\n private consultantService: ConsultantService, ) { }\r\n @Input() resumeHTML;\r\n ngOnInit(): void {\r\n \r\n if (Common.activeConsultant!=null){ \r\n this.consultant = Common.activeConsultant;\r\n if (Common.ResumeHTML==null && Common.ResumeHTML==\"\"){\r\n this.safeHtmlContent = this.sanitized.bypassSecurityTrustHtml(Common.ResumeHTML);\r\n console.log(\"hatemlsodiu\", this.safeHtmlContent)\r\n }\r\n // else{\r\n \r\n // this.BindResume(this.consultant.ConsultantId);\r\n // }\r\n \r\n \r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.safeHtmlContent= this.sanitized.bypassSecurityTrustHtml(changes.resumeHTML.currentValue==null?'':changes.resumeHTML.currentValue);\r\n //this.highLight();\r\n }\r\n BindResume(ConsultantID) {\r\n this.consultantService.GetResume(ConsultantID)\r\n .subscribe((result) => {\r\n\r\n if (result!=null && result != ''){\r\n let htmlString = result;\r\n this.safeHtmlContent = this.sanitized.bypassSecurityTrustHtml(htmlString.toString());\r\n }\r\n else{\r\n this.pullDiceResume();\r\n }\r\n\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n },\r\n () => console.log(\"\")\r\n );\r\n }\r\n sanitizeHTML(str: string) {\r\n return this.sanitized.bypassSecurityTrustHtml(str);\r\n }\r\n pullDiceResume() {\r\n //this.activeTab = activeTab;\r\n try {\r\n\r\n if (this.safeHtmlContent != \"\" && (this.consultant.SourceID == \"\" || this.consultant.SourceID == null)) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.searchPara = {};\r\n this.searchPara.SourceID = this.consultant.SourceID;\r\n this.searchPara.SourceTypeID = Number(this.consultant.SourceTypeID);\r\n this.safeHtmlContent=\"\";\r\n this.consultantService.ConsultantDiceSearch(this.searchPara)\r\n .subscribe((resultCandidateslist) => {\r\n \r\n this.safeHtmlContent = this.sanitizeHTML(resultCandidateslist[0].Resumes[0].ResumeText);\r\n \r\n //this.downloadUrl = Common.apiUrl + \"consultant/downloadfile/\" + resultCandidateslist[0].FileInfo.FileId.toString() + \"/\";\r\n //this.linkUsable = true;\r\n //console.log(resultCandidateslist)\r\n //this.toastr.success('Resume downloaded!', 'Resume', { timeOut: Common.toastTimeout });\r\n this.loading = false;\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n //this.toastr.warning('Resume download Error:' + err, 'Search', { timeOut: Common.toastTimeout });\r\n this.loading = false;\r\n },\r\n () => console.log(\"\")\r\n );\r\n }\r\n catch (Error) {\r\n console.log(Error.message);\r\n //this.toastr.warning('Resume download Error:' + Error, 'Search', { timeOut: Common.toastTimeout });\r\n this.loading = false;\r\n }\r\n }\r\n highLight(){\r\n let searchWordsArray = [];\r\n let dataResumeKeywords = [];\r\n let dataResumeSkills = [];\r\n let dataResumeProjects = [];\r\n let dataResumeClientName = [];\r\n if (Common.ResumeKeywords != null && Common.ResumeKeywords != undefined) {\r\n dataResumeKeywords = Common.ResumeKeywords;\r\n for (let index = 0; index < dataResumeKeywords.length; index++) {\r\n var element = dataResumeKeywords[index];\r\n if (element.key == \"CandidateName\") {\r\n const fullName = element.value.trim();\r\n const idx = fullName.lastIndexOf(' ');\r\n const firstName = idx !== -1 ? fullName.substring(0, idx) : fullName;\r\n const lastName = idx !== -1 ? fullName.substring(idx + 1) : '';\r\n if (fullName.length>0){searchWordsArray.push(fullName);}\r\n if (firstName.length>0){ searchWordsArray.push(firstName);}\r\n if (lastName.length>0){searchWordsArray.push(lastName);}\r\n }\r\n if (element.Key == \"Email\") {\r\n if (element.value.length>0){searchWordsArray.push(element.value);}\r\n \r\n }\r\n if (element.key == \"Phone\") {\r\n if (element.value.length>0){searchWordsArray.push(element.value);}\r\n }\r\n if (element.key == \"Linkedin\") {\r\n if (element.value.length>0){searchWordsArray.push(element.value);}\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n searchWordsArray.forEach(element => {\r\n \r\n var repWith = '' + element + '';\r\n this.htmlString = this.replaceAll(this.htmlString, element,repWith)\r\n });\r\n \r\n this.safeHtmlContent = this.sanitized.bypassSecurityTrustHtml(this.htmlString);\r\n }\r\n\r\n public replaceAll(content, find,replaceMask) {\r\n var regEx = new RegExp(find, \"ig\");\r\n return content.replace(regEx, replaceMask);;\r\n\r\n}\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'consultant-interview-list',\r\n templateUrl: './consultant-interview-list.component.html',\r\n styleUrls: ['./consultant-interview-list.component.scss']\r\n})\r\nexport class ConsultantInterviewListComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

consultant-interview-list works!

\r\n","import { HttpResponse } from '@angular/common/http'\r\nimport { Component, Input, OnInit, Renderer2, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core'\r\nimport { MatSort, Sort } from '@angular/material/sort'\r\nimport { Observable, ReplaySubject, Subject, Subscription, combineLatest, forkJoin } from 'rxjs'\r\nimport {\r\n filter,\r\n first,\r\n map,\r\n startWith, takeUntil, withLatestFrom\r\n} from 'rxjs/operators'\r\nimport { Common } from 'src/app/common/common'\r\nimport { TableColumn } from 'src/app/shared/core/interfaces/table-column.interface'\r\nimport { JobTypes as JobTypeIds } from 'src/app/enums/jobType'\r\nimport { JobTypes } from 'src/app/constants/jobType'\r\nimport { iConsultantSearch } from '../consultant-constants'\r\nimport { CandidateDataSource } from 'src/app/enums/candidateDataSource'\r\nimport { Filter, ModuleNames, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { FilterObject, iDbResult, iMenuItem } from 'src/app/models/common.model'\r\nimport { iJob, iJobLegalType, iJobSkill } from 'src/app/models/job.model'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { MatSidenav } from '@angular/material/sidenav'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { NavigationEnd, Router, ActivatedRoute, NavigationStart } from '@angular/router'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { GenericTypes } from 'src/app/Constants/genericType'\r\nimport { LegalTypes } from 'src/app/Constants/legalTypes'\r\nimport { AvailablityStatus } from 'src/app/enums/availablityStatus'\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs'\r\nimport { CandidateFilterNames } from 'src/app/enums/candidateFilterName'\r\nimport { LegalStatus } from 'src/app/enums/legalStatus'\r\nimport { CANDIDATE_ADD_ACTION } from 'src/app/enums/userActions'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iConsultantJob, iConsultant } from 'src/app/models/consultant.model'\r\nimport { City } from 'src/app/models/location.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { checkRouterChildsData } from 'src/app/shared/core/utils/check-router-childs-data'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { aioTableLabels } from 'src/static-data/aio-table-data'\r\nimport { Consultant } from '../consultant-list/interfaces/consultant.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { fadeInUp400ms } from 'src/app/shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from 'src/app/shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { BooleanSearchService } from 'src/app/boolean-search/boolean-search.service'\r\nimport { PaginatorInformation } from 'src/app/models/paginator.model'\r\nimport { BooleanFilter } from 'src/app/models/boolean.filter'\r\nimport * as BooleanFilterJson from '../../../assets/boolean-filters.json'\r\nimport { SignalrService } from 'src/app/services/signalR.service'\r\n\r\n@Component({\r\n selector: 'leap-consultant-job-list',\r\n templateUrl: './consultant-job-list.component.html',\r\n styleUrls: ['./consultant-job-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class ConsultantJobListComponent implements OnInit {\r\n searchCriteria: iConsultantSearch\r\n public requiredSkillSearchText: string\r\n public preferredSkillSearchText: string\r\n public candidateNameSearchText: string\r\n public candidatTitleSearchText: string\r\n public minExp: number\r\n public maxExp: number\r\n public miles: number\r\n public lastUpdated: number\r\n public jobIdSearchText: string\r\n\r\n public sourceSearchText: string\r\n public selectedSources = [CandidateDataSource.Leaptiger]\r\n public allSources: any\r\n public sources: any = []\r\n public sourcesFilterOptions: any = []\r\n public candidateFilterOptions: Filter[]\r\n\r\n public jobTypeSearchText: string\r\n public selectedJobType = []\r\n public allJobTypes: any\r\n public allCandidateTypes: any\r\n public jobTypes: any = []\r\n\r\n public workAuthSearchText: string\r\n public selectedWorkAuth = []\r\n public allWorkAuth: any\r\n public workAuthorizations: any = []\r\n public alltStates: any = []\r\n public stateSearchText: string\r\n\r\n public employmentTypeSearchText: string\r\n public availablityId: number\r\n public selEmploymentType = []\r\n public availEmploymentTypes: any\r\n public employmentTypes: any = []\r\n public sourceFilterOptions = []\r\n\r\n showEmploymentType: boolean = false\r\n showCandidateName: boolean = false\r\n showJobType: boolean = false\r\n showCandidateTitle: boolean = false\r\n showMinExperience: boolean = false\r\n showMaxExperience: boolean = false\r\n showMiles: boolean = false\r\n showLastUpdated: boolean = false\r\n showJobId: boolean = false\r\n isJobCandidateSearch: boolean = false\r\n public citySearchText: string\r\n public cities: any = []\r\n state: any\r\n\r\n storeJobFilter: FilterObject = {}\r\n diceSourceTypeValue = CandidateDataSource.Dice\r\n leapTigerSourceTypeValue = CandidateDataSource.Leaptiger\r\n isDesktop$ = this.layoutService.isDesktop$\r\n searchPara: {\r\n JobId: any\r\n JobCode: any\r\n Title: any\r\n Customer: any\r\n Contact: any\r\n JobStatus: any\r\n JobType: any\r\n PostFromDate: any\r\n PostToDate: any\r\n JobStartDate: any\r\n JobEndDate: any\r\n CandidateTitle: any\r\n SkillCategory: any\r\n SkillSpecialized: any\r\n RecruiterId: any\r\n LocationCity: any\r\n LocationState: any\r\n UserId: any\r\n SortField: any\r\n SortOrder: any\r\n PageNumber: any\r\n PageSize: any\r\n EmailAddress: any\r\n }\r\n candidateEmailSearchText: string = ''\r\n activeJob: iJob = {}\r\n jobId: number = 0\r\n toolBarItems: iMenuItem[]\r\n menu: iMenuItem\r\n consultantjob: iConsultantJob\r\n consultantList: any\r\n modelConsultantJob: iConsultantJob\r\n allStates: any = []\r\n uploadDialog: any\r\n myFiles: string[] = []\r\n reqWorkAuthForJobSearch: iJobLegalType[] = []\r\n private ngUnSubscribe$: Subject = new Subject()\r\n isGridClick: boolean = false\r\n\r\n skills: iJobSkill[] = []\r\n jobDetails: any\r\n toolbarShadowEnabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.toolbarShadowEnabled))\r\n )\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n\r\n /**\r\n * Simulating a service with HTTP that returns Observables\r\n * You probably want to remove this and do all requests in a service with HTTP\r\n */\r\n consultants: Consultant[]\r\n activeConsultant: iConsultant\r\n subject$: ReplaySubject = new ReplaySubject(1)\r\n data$: Observable = this.subject$.asObservable()\r\n\r\n public get JobTypeIds(): typeof JobTypeIds {\r\n return JobTypeIds\r\n }\r\n\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n\r\n public get moduleNames(): typeof ModuleNames {\r\n return ModuleNames\r\n }\r\n\r\n @Input()\r\n columns: TableColumn[] = [\r\n { label: 'Image', property: 'image', type: 'image', visible: true },\r\n {\r\n label: 'FirstName',\r\n property: 'FirstName',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'MatchPercentage',\r\n property: 'MatchPercentage',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Employment Type',\r\n property: 'CandidateType',\r\n type: 'text',\r\n visible: false,\r\n cssClasses: ['text-left'],\r\n },\r\n\r\n {\r\n label: 'Experience',\r\n property: 'Experience',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Work Permit',\r\n property: 'LegalStatus',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium'],\r\n },\r\n {\r\n label: 'City ',\r\n property: 'City',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium'],\r\n },\r\n {\r\n label: 'Willing To Relocate',\r\n property: 'Relocate',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium'],\r\n },\r\n {\r\n label: 'Open for',\r\n property: 'JobType',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Exp. Pay Rate',\r\n property: 'ExpectedPayRate',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'teal-light'],\r\n },\r\n {\r\n label: 'Last Resume Updated',\r\n property: 'LastUpdate',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'teal-light'],\r\n },\r\n {\r\n label: 'Time',\r\n property: 'Time',\r\n type: 'text',\r\n visible: false,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Source',\r\n property: 'Source',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Specialized Skills',\r\n property: 'SpecializedSkill',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n ]\r\n\r\n columnsFilterList: TableColumn[]\r\n resumUploadColumns: string[] = ['FileName', 'UploadStatus', 'UploadComment']\r\n resumeData: any\r\n isResumeData: boolean\r\n @ViewChild('quickpanel', { static: true }) quickpanel: MatSidenav\r\n pageSize = 10\r\n pageNumber = 1\r\n totalLength: number\r\n sortField: string\r\n sortOrder: string\r\n public filePath: string = ''\r\n pageSizeOptions: number[] = [5, 10, 20, 50]\r\n dataSource: MatTableDataSource | null\r\n\r\n labels = aioTableLabels\r\n subscription: Subscription\r\n selectedReasonId: number\r\n selectedReason: string\r\n isLoading: boolean\r\n candidateSource: CandidateDataSource\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n isExpanded$ = combineLatest([this.commonService.isJobCardView$]).pipe(map(([value]) => ({ value })))\r\n public IsAddCandidatePermission: boolean\r\n resetFilterSubscriber: Subscription\r\n allCities: City[] = []\r\n defaultCities: City[] = []\r\n candidateModuleLevelSearchText: string\r\n isFromJobSearch: boolean = false\r\n matchedPercentage: number = 0\r\n\r\n isOpen() {\r\n this.commonService.isExpandedSubject.next(true)\r\n }\r\n\r\n isClose() {\r\n this.commonService.isExpandedSubject.next(false)\r\n }\r\n\r\n onAddCandidate() {\r\n Common.activeConsultantJob = null\r\n Common.activeConsultant = null\r\n Common.activeJob = null\r\n this.router.navigate(['candidates/add'])\r\n }\r\n @ViewChild('paginator') paginator: MatPaginator\r\n @ViewChild(MatSort, { static: true }) sort: MatSort\r\n /** is Show consultant summay visible on load */\r\n isShowConsultantSummaryOnLoad: boolean\r\n /** Active consultant id */\r\n activeConsultantId: number\r\n isFromApplyFlow: boolean = false\r\n candidateName: string = ''\r\n selectedCandidateIndex: number = 0\r\n loaded = false\r\n\r\n constructor(\r\n private consultantsService: ConsultantsService,\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private loadComponent: LoadComponent,\r\n public authService: AuthenticationService,\r\n private consultantService: ConsultantService,\r\n private router: Router,\r\n private dialog: MatDialog,\r\n private layoutService: LayoutService,\r\n private route: ActivatedRoute,\r\n public filterModelService: FilterModelService,\r\n private roleService: RoleService,\r\n public observableService: ObservableService,\r\n private jobService: JobService,\r\n private _renderer2: Renderer2,\r\n private _commonMatDialogService: CommonMatDialogService,\r\n private booleanSearchService: BooleanSearchService,\r\n public signalRService: SignalrService\r\n\r\n ) {\r\n this.subscription = this.loadComponent\r\n .getComponentStatus()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n if (!res) {\r\n this.quickpanel.ngOnDestroy()\r\n }\r\n })\r\n\r\n this.loaded = false\r\n const data = this.router.getCurrentNavigation()\r\n this.isFromJobSearch = data?.extras?.state ? data?.extras?.state?.isFromJobSearch : false\r\n this.isFromApplyFlow = data?.extras?.state?.isFromApplyFlow ? data?.extras?.state?.isFromApplyFlow : false\r\n this.candidateName = data?.extras?.state?.candidateName ? data?.extras?.state?.candidateName : ''\r\n\r\n setTimeout(() => {\r\n this.loaded = true\r\n }, 100)\r\n }\r\n\r\n ngOnInit() {\r\n this.router.events\r\n .pipe(filter((f) => f instanceof NavigationStart && f.url.search('candidates') > -1))\r\n .subscribe((s) => {\r\n this.loaded = false\r\n const data = this.router.getCurrentNavigation()\r\n setTimeout(() => {\r\n this.loaded = true\r\n }, 100)\r\n })\r\n Common.activeJob = null\r\n this.filePath = Common.filePath\r\n this.setPermission()\r\n this.route.queryParams\r\n .pipe(withLatestFrom(this.commonService.candidateObservable), takeUntil(this.ngUnSubscribe$))\r\n .subscribe(([params, externalObsValue]) => {\r\n if (externalObsValue) {\r\n return\r\n }\r\n if (this.route?.snapshot?.queryParams?.jobId) {\r\n this.jobId = Number(this.route?.snapshot?.queryParams?.jobId)\r\n this.jobService\r\n .getJob(this.jobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((job) => {\r\n Common.activeJob = job\r\n this.jobDetails = job\r\n this.showJobCriteria()\r\n })\r\n this.candidateFilterOptions = this.filterModelService.getCandidateFilters()\r\n this.getFilterOptions()\r\n } else {\r\n this.jobDetails = history.state?.job\r\n\r\n this.totalLength = 0\r\n this.resetSearchFilters()\r\n if (this.isFromApplyFlow) {\r\n this.candidateModuleLevelSearchText = this.candidateName\r\n if (this.candidateName != null || this.candidateName != '') {\r\n const searchText: Map = new Map().set(\r\n ModuleNames.CANDIDATE,\r\n this.candidateName\r\n )\r\n this.observableService.addToModuleLevelSearch(searchText)\r\n }\r\n }\r\n this.isJobCandidateSearch = false\r\n this.isLoading = true\r\n this.consultantsService\r\n .getShowConsultantSummaryOnLoad()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n this.isLoading = false\r\n this.isShowConsultantSummaryOnLoad = res\r\n })\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n this.isLoading = false\r\n this.activeConsultantId = res\r\n })\r\n this.modelConsultantJob = {}\r\n this.toolBarItems = this.commonService.menuItems\r\n this.columnsFilterList = this.columns.filter((x) => x.property != 'FirstName')\r\n this.getConsultantData()\r\n }\r\n })\r\n this.filterChangeSubscriber()\r\n this._subscribeToDiceResults()\r\n this._updateRowValue()\r\n this._subscribeToGetBooleanCandidateObs()\r\n }\r\n\r\n filterChangeSubscriber() {\r\n this.observableService.candidateAutocompleteFilterValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$), withLatestFrom(this.observableService.stateIdOfCityValueChanges$))\r\n .subscribe(([filter, stateId]) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateFilterNames.STATE)) {\r\n if (filter.get(CandidateFilterNames.STATE).length == 0) {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.STATE) {\r\n item.searchText = ''\r\n }\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.searchText = ''\r\n item.options = item.originalOptions\r\n }\r\n })\r\n this.stateSearchText = ''\r\n this.citySearchText = ''\r\n } else {\r\n this.stateSearchText = filter.get(CandidateFilterNames.STATE)\r\n let cityAccordingToState = this.consultantService.getCitySearch(\r\n '',\r\n this.getStateAgainstName(filter.get(CandidateFilterNames.STATE))\r\n )\r\n cityAccordingToState.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((res) => {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.options = this.getCityOptions(res)\r\n item.originalOptions = this.getCityOptions(res)\r\n this.allCities = res\r\n }\r\n })\r\n })\r\n }\r\n } else if (filter.has(CandidateFilterNames.CITY)) {\r\n if (filter.get(CandidateFilterNames.CITY).length == 0) {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.searchText = ''\r\n }\r\n })\r\n this.citySearchText = ''\r\n } else {\r\n this.citySearchText = filter.get(CandidateFilterNames.CITY)\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.STATE) {\r\n item.searchText = this.getStateAccordingToStateId(stateId)\r\n this.stateSearchText = this.getStateCodeByStateId(stateId)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n })\r\n\r\n this.observableService.candidateModuleLevelSearchChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((searchText) => {\r\n this.candidateModuleLevelSearchText = searchText?.length > 0 ? searchText : ''\r\n this.paginator?.firstPage()\r\n this.getConsultantData()\r\n })\r\n\r\n this.observableService.candidateTextBoxFilterValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateFilterNames.CANDIDATE_NAME)) {\r\n this.candidateNameSearchText = ''\r\n this.candidateNameSearchText = filter.get(CandidateFilterNames.CANDIDATE_NAME)\r\n } else if (filter.has(CandidateFilterNames.LAST_RESUME_UPDATED)) {\r\n this.lastUpdated = 0\r\n this.lastUpdated = Number(filter.get(CandidateFilterNames.LAST_RESUME_UPDATED))\r\n } else if (filter.has(CandidateFilterNames.REQUIRED_SKILLS)) {\r\n this.requiredSkillSearchText = ''\r\n this.requiredSkillSearchText = filter.get(CandidateFilterNames.REQUIRED_SKILLS)\r\n } else if (filter.has(CandidateFilterNames.CANDIDATE_EMAIL)) {\r\n this.candidateEmailSearchText = ''\r\n this.candidateEmailSearchText = filter.get(CandidateFilterNames.CANDIDATE_EMAIL)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.getConsultantData()\r\n })\r\n this.observableService.candidateFilterValueChanged$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateFilterNames.SOURCE)) {\r\n this.selectedSources = [CandidateDataSource.Leaptiger]\r\n this.selectedSources = filter.get(CandidateFilterNames.SOURCE)\r\n } else if (filter.has(CandidateFilterNames.WORK_PERMIT)) {\r\n this.selectedWorkAuth = []\r\n this.selectedWorkAuth = filter.get(CandidateFilterNames.WORK_PERMIT)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n // this.getConsultantData() need to enable later to get automatic data on checkbox click\r\n })\r\n\r\n this.resetFilterSubscriber = this.observableService.filterResetValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((filterReset) => {\r\n this.getDefaultCandidateData(filterReset)\r\n this.setDefaultCitiesForCityFilter()\r\n })\r\n this.observableService.resetCandidateFilterValueChange$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((change) => {\r\n this.getDefaultCandidateData(change)\r\n })\r\n\r\n this.candidateFilterOptions = this.filterModelService.getCandidateFilters()\r\n this.getFilterOptions()\r\n if (this.route?.snapshot?.queryParams?.consultantId) {\r\n const IS_DICE = this.route.snapshot.queryParamMap.get('isDice')\r\n if (IS_DICE) {\r\n this.onGridDiceColumnClick(this.route?.snapshot?.queryParams?.consultantId)\r\n } else {\r\n this.onGridColumnClick(this.route?.snapshot?.queryParams?.consultantId)\r\n }\r\n }\r\n this.observableService.updatedCitiesNamesValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((newCities) => {\r\n this.allCities = newCities\r\n })\r\n }\r\n\r\n getDefaultCandidateData(isFilterReset) {\r\n let anyFilterApplied =\r\n this.selectedSources?.length > 0 ||\r\n this.selectedWorkAuth?.length > 0 ||\r\n this.candidateNameSearchText?.length > 0 ||\r\n this.requiredSkillSearchText?.length > 0 ||\r\n this.lastUpdated > 0 ||\r\n this.citySearchText?.length > 0 ||\r\n this.stateSearchText?.length > 0 ||\r\n this.candidateModuleLevelSearchText?.length > 0 ||\r\n this.candidateEmailSearchText?.length > 0\r\n this.selectedSources = []\r\n this.selectedWorkAuth = []\r\n this.candidateNameSearchText = ''\r\n this.requiredSkillSearchText = ''\r\n this.lastUpdated = 0\r\n this.citySearchText = ''\r\n this.stateSearchText = ''\r\n this.candidateModuleLevelSearchText = ''\r\n this.candidateEmailSearchText = ''\r\n if (isFilterReset) {\r\n if (this.jobId > 0) {\r\n this.jobId = 0\r\n this.isJobCandidateSearch = false\r\n this.commonService.candidateObservable$.next(false)\r\n this.router.navigate(['/candidates'], {\r\n skipLocationChange: false,\r\n })\r\n return\r\n }\r\n if (anyFilterApplied) {\r\n this.paginator?.firstPage()\r\n this.getConsultantData()\r\n }\r\n }\r\n }\r\n\r\n setDefaultCitiesForCityFilter() {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.options = this.getCityOptions(this.defaultCities)\r\n item.originalOptions = this.getCityOptions(this.defaultCities)\r\n this.allCities = [...this.defaultCities]\r\n }\r\n })\r\n }\r\n\r\n resetSearchFilters() {\r\n this.selectedSources = []\r\n this.selectedWorkAuth = []\r\n this.candidateNameSearchText = ''\r\n this.requiredSkillSearchText = ''\r\n this.lastUpdated = 0\r\n this.citySearchText = ''\r\n this.stateSearchText = ''\r\n this.candidateModuleLevelSearchText = ''\r\n this.candidateEmailSearchText = ''\r\n this.preferredSkillSearchText = ''\r\n }\r\n\r\n getFilterOptions() {\r\n forkJoin({\r\n sourceData: this.getSources(),\r\n workPermitData: this.getWorkAuthorization(),\r\n stateData: this.getStates(),\r\n cityData: this.applyFilterCity(''),\r\n })\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(({ sourceData, workPermitData, stateData, cityData }) => {\r\n this.allStates = stateData\r\n this.allCities = this.defaultCities = cityData\r\n this.candidateFilterOptions.forEach((item) => {\r\n switch (item.name) {\r\n case CandidateFilterNames.SOURCE:\r\n sourceData = sourceData.filter(\r\n (source) =>\r\n source.Value === CandidateDataSource.Leaptiger ||\r\n source.Value === CandidateDataSource.Dice\r\n ) // TODO: Need to remove filter later when want to show all source options\r\n item.options = []\r\n item.selectedOptions = this.selectedSources\r\n item.options = this.getOptions(sourceData)\r\n item.originalOptions = this.getOptions(sourceData)\r\n if (this.isFromJobSearch) {\r\n this.observableService.checkForBooleanFilters()\r\n }\r\n break\r\n case CandidateFilterNames.WORK_PERMIT:\r\n item.options = []\r\n item.options = this.getOptions(workPermitData)\r\n item.originalOptions = this.getOptions(workPermitData)\r\n break\r\n case CandidateFilterNames.STATE:\r\n item.options = []\r\n item.options = this.getStateOptions(stateData)\r\n item.originalOptions = this.getStateOptions(stateData)\r\n break\r\n case CandidateFilterNames.CITY:\r\n item.options = []\r\n item.options = this.getCityOptions(cityData)\r\n item.originalOptions = this.getCityOptions(cityData)\r\n break\r\n default:\r\n item.options = null\r\n }\r\n })\r\n })\r\n }\r\n\r\n getOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions.forEach((item) => {\r\n options.push({ key: item.Value, value: item.Key })\r\n })\r\n return options\r\n }\r\n\r\n getStateAgainstName(name: string) {\r\n let selectedStateCode = this.allStates.filter((item) => item.StateName == name)\r\n return selectedStateCode[0].StateCode\r\n }\r\n\r\n getStateOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions.forEach((item) => {\r\n options.push({ key: item.StateID, value: item.StateName })\r\n })\r\n return options\r\n }\r\n\r\n getCityOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions?.forEach((item) => {\r\n options.push({ key: item.StateID, value: item.City })\r\n })\r\n return options\r\n }\r\n\r\n getStateAccordingToStateId(stateId: number): string {\r\n const STATE_NAME = this.allCities.find((item) => item.StateID === stateId)?.State\r\n return STATE_NAME ? STATE_NAME : ''\r\n }\r\n\r\n getStateCodeByStateId(stateId: number): string {\r\n const STATE_CODE = this.allCities.find((item) => item.StateID === stateId)?.StateCode\r\n return STATE_CODE ? STATE_CODE : ''\r\n }\r\n\r\n getStateNameFromCode(stateCode: string) {\r\n let stateName = ''\r\n this.allStates.forEach((item) => {\r\n if (item.StateCode.toLowerCase() == stateCode.toLowerCase()) {\r\n stateName = item.StateName\r\n }\r\n })\r\n return stateName\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columns.filter((column) => column.visible).map((column) => column.property)\r\n }\r\n setPermission() {\r\n this.isLoading = true\r\n this.roleService\r\n .getPermissionByRole(this.authService.userInfo.roles[0].roleID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (data) => {\r\n this.isLoading = false\r\n let addCandidatePermit = data.filter(\r\n (item) =>\r\n item.ComponentID == Common.enumComponent.Consultant &&\r\n item.MenuCode == 'CANDIDATE_ADD' && // TODO: add Enum for add job -\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n if (addCandidatePermit?.length > 0) this.IsAddCandidatePermission = true\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isShowConsultantSummaryOnLoad && this.router.url === '/candidates') {\r\n if (this.activeConsultantId !== 0) {\r\n this.onGridColumnClick(this.activeConsultantId)\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.getSources()\r\n }\r\n\r\n async showJobCriteria() {\r\n if (this.jobDetails.JobId != 0) {\r\n this.showLastUpdated = true\r\n this.candidateSource = CandidateDataSource.All\r\n this.isJobCandidateSearch = true\r\n this.pageSize = GenericTypes.JobToConultantSearchPageSize\r\n this.citySearchText = this.jobDetails?.Location?.City\r\n this.stateSearchText = this.jobDetails?.Location?.State\r\n this.lastUpdated = GenericTypes.DefaultResumeLastUpdated\r\n this.availablityId = AvailablityStatus.Available\r\n this.showJobId = true\r\n this.jobIdSearchText = this.jobDetails?.JobId?.toString()\r\n const legalTypes = await this.jobService.GetJobLegalStatus(this.jobId).toPromise()\r\n this.reqWorkAuthForJobSearch = legalTypes as iJobLegalType[]\r\n this.selectedWorkAuth = this.reqWorkAuthForJobSearch.map((item) => item.LegalTypeId)\r\n if (this.jobDetails.LegalTypeNames) {\r\n let legaltypeList = this.jobDetails.LegalTypeNames.split(',')\r\n this.getlegalTypes(legaltypeList)\r\n }\r\n }\r\n this.selectedSources.push(CandidateDataSource.Dice)\r\n\r\n this.isLoading = true\r\n this.consultantService\r\n .GetJobSkills(this.jobDetails.JobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (result: any[]) => {\r\n this.isLoading = false\r\n this.skills = result\r\n this.requiredSkillSearchText = this.skills\r\n .filter((option) => option.Required == true)\r\n .map((x) => x.SkillName)\r\n .join(',')\r\n this.preferredSkillSearchText = this.skills\r\n .filter((option) => option.Required == false)\r\n .map((x) => x.SkillName)\r\n .join(',')\r\n this.candidateFilterOptions.forEach((item) => {\r\n switch (item.name) {\r\n case CandidateFilterNames.REQUIRED_SKILLS:\r\n item.searchText = this.requiredSkillSearchText\r\n break\r\n case CandidateFilterNames.CITY:\r\n item.searchText = this.citySearchText\r\n break\r\n case CandidateFilterNames.STATE:\r\n item.searchText = this.stateSearchText\r\n break\r\n case CandidateFilterNames.WORK_PERMIT:\r\n item.selectedOptions = [...new Set(this.selectedWorkAuth.map(Number))]\r\n break\r\n case CandidateFilterNames.SOURCE:\r\n item.selectedOptions = this.selectedSources\r\n break\r\n }\r\n })\r\n if (this.isFromJobSearch) {\r\n this.observableService.checkForBooleanFilters()\r\n }\r\n if (this.jobId > 0 && (!this.requiredSkillSearchText || this.requiredSkillSearchText === '')) {\r\n this.notifyService.showError('Required skill is mandatory for search!', 'Consultant')\r\n return\r\n }\r\n this.getConsultantData()\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting Candidates!', 'Consultant')\r\n }\r\n )\r\n }\r\n\r\n exportCandidates() {\r\n this.isLoading = true\r\n this.consultantService\r\n .exportConsultant(this.searchCriteria)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (consultants) => {\r\n this.isLoading = false\r\n if (consultants) {\r\n const a = document.createElement('a')\r\n const objectURL = URL.createObjectURL(consultants)\r\n a.href = objectURL\r\n a.download = 'Consultant'\r\n a.click()\r\n URL.revokeObjectURL(objectURL)\r\n this.notifyService.showSuccess('Download Successfully', 'Candidate')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error in fetching data', 'Candidate')\r\n }\r\n )\r\n }\r\n exportDiceCandidates() {\r\n this.isLoading = true\r\n this.consultantService\r\n .exportDiceConsultant(this.searchCriteria)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (consultants) => {\r\n this.isLoading = false\r\n if (consultants) {\r\n const a = document.createElement('a')\r\n const objectURL = URL.createObjectURL(consultants)\r\n a.href = objectURL\r\n a.download = 'Consultant'\r\n a.click()\r\n URL.revokeObjectURL(objectURL)\r\n this.notifyService.showSuccess('Download Successfully', 'Candidate')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error in fetching data', 'Candidate')\r\n }\r\n )\r\n }\r\n\r\n getlegalTypes(legaltypeList) {\r\n legaltypeList = legaltypeList.map((s) => s.trim())\r\n let greenCard = legaltypeList.includes(LegalTypes.GreeenCard)\r\n if (greenCard) {\r\n this.selectedWorkAuth.push(LegalStatus.GreenCard.toString())\r\n }\r\n let usCitizen = legaltypeList.includes(LegalTypes.USCitizen)\r\n if (usCitizen) {\r\n this.selectedWorkAuth.push(LegalStatus.USCitizen.toString())\r\n }\r\n let h1b = legaltypeList.includes(LegalTypes.H1B)\r\n if (h1b) {\r\n this.selectedWorkAuth.push(LegalStatus.H1B.toString())\r\n }\r\n let tnVisa = legaltypeList.includes(LegalTypes.TNVisa)\r\n if (tnVisa) {\r\n this.selectedWorkAuth.push(LegalStatus.TN_Visa.toString())\r\n }\r\n let ead_cpt = legaltypeList.includes(LegalTypes.EAD_CPT)\r\n if (ead_cpt) {\r\n this.selectedWorkAuth.push(LegalStatus.CPT_EAD.toString())\r\n }\r\n let ead_gc = legaltypeList.includes(LegalTypes.EAD_GC)\r\n if (ead_gc) {\r\n this.selectedWorkAuth.push(LegalStatus.GC_EAD.toString())\r\n }\r\n let ead_h4 = legaltypeList.includes(LegalTypes.EAD_H4)\r\n if (ead_h4) {\r\n this.selectedWorkAuth.push(LegalStatus.H4_EAD.toString())\r\n }\r\n let ead_opt = legaltypeList.includes(LegalTypes.EAD_OPT)\r\n if (ead_opt) {\r\n this.selectedWorkAuth.push(LegalStatus.OPT_EAD.toString())\r\n }\r\n let ead_tn = legaltypeList.includes(LegalTypes.EAD_TN)\r\n if (ead_tn) {\r\n this.selectedWorkAuth.push(LegalStatus.TN_EAD.toString())\r\n }\r\n let ead_l2 = legaltypeList.includes(LegalTypes.EAD_L2)\r\n if (ead_l2) {\r\n this.selectedWorkAuth.push(LegalStatus.L2_EAD.toString())\r\n }\r\n let eb1 = legaltypeList.includes(LegalTypes.EB1)\r\n if (eb1) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_EB1.toString())\r\n }\r\n let eb2 = legaltypeList.includes(LegalTypes.EB2)\r\n if (eb2) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_EB2.toString())\r\n }\r\n let eb3 = legaltypeList.includes(LegalTypes.EB3)\r\n if (eb3) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_EB3.toString())\r\n }\r\n let h4 = legaltypeList.includes(LegalTypes.H4)\r\n if (h4) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_H4.toString())\r\n }\r\n let j1 = legaltypeList.includes(LegalTypes.J1)\r\n if (j1) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_J1.toString())\r\n }\r\n let j2 = legaltypeList.includes(LegalTypes.J2)\r\n if (j2) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_J2.toString())\r\n }\r\n this.selectedWorkAuth = [...new Set(this.selectedWorkAuth.map(Number))]\r\n }\r\n\r\n openStatusChange(consultatjob, mnuItem, i) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n this.consultantjob = consultatjob\r\n Common.activeConsultantJob = consultatjob\r\n\r\n const dialogRef = this.dialog.open(ActionDialogComponent, {\r\n width: '400px',\r\n data: { consultantjob: this.consultantjob, menu: this.menu },\r\n })\r\n\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n if (result == null || result == undefined) {\r\n this.getConsultantData()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n this.updateConsultantJob()\r\n }\r\n })\r\n }\r\n\r\n updateConsultantJob() {\r\n this.modelConsultantJob.JobID = this.activeJob.JobId\r\n this.modelConsultantJob.ConsultantID = Common.activeConsultantJob.ConsultantID\r\n this.modelConsultantJob.PayRate = Common.activeConsultantJob.PayRate\r\n this.modelConsultantJob.BillRate = Common.activeConsultantJob.BillRate\r\n this.modelConsultantJob.Salary = Common.activeConsultantJob.Salary\r\n this.modelConsultantJob.DateApplied = new Date()\r\n this.modelConsultantJob.CreatedDate = new Date()\r\n this.modelConsultantJob.CreatedBy = this.authService.userInfo.userID\r\n this.modelConsultantJob.IsActive = true\r\n this.modelConsultantJob.CompanyVendorID = Common.activeConsultantJob.CompanyVendorID\r\n this.modelConsultantJob.VendorContactID = Common.activeConsultantJob.VendorContactID\r\n this.modelConsultantJob.ConsultantTypeID = Common.activeConsultantJob.ConsultantTypeID\r\n this.modelConsultantJob.RecruiterId = this.authService.userInfo.userID\r\n Common.activeConsultantJob = this.modelConsultantJob\r\n this.consultantService\r\n .saveConsultantJob(this.modelConsultantJob)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((cjResult) => {\r\n if (cjResult) {\r\n Common.activeConsultantJob = cjResult\r\n this.updateProcessWorkFlow()\r\n }\r\n })\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n try {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n result\r\n this.updateProcessWorkFlow()\r\n })\r\n } catch {}\r\n }\r\n\r\n updateProcessWorkFlow() {\r\n var ljob: iConsultantJob = Common.activeConsultantJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n let comment = this.selectedReasonId\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : this.menu.MenuName\r\n\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n this.commonService.setActiveObject(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(this.menu)\r\n\r\n Common.activeConsultantJob.ConsultantJobStatus = this.menu.MenuName\r\n\r\n this.notifyService.showSuccess(\r\n 'Consultant Job status successfully changed to ' + Common.activeConsultantJob.ConsultantJobStatus,\r\n 'Consultant Job'\r\n )\r\n })\r\n }\r\n\r\n getConsultantData() {\r\n try {\r\n if (this.minExp && this.minExp % 1 != 0) {\r\n this.notifyService.showError('MINIMUM EXPERIENCE: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n if (this.maxExp && this.maxExp % 1 != 0) {\r\n this.notifyService.showError('MINIMUM EXPERIENCE: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n if (this.lastUpdated && this.lastUpdated % 1 != 0) {\r\n this.notifyService.showError('LAST RESUME UPDATED: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n if (this.miles && this.miles % 1 != 0) {\r\n this.notifyService.showError('DISTANCE RADIUS: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n\r\n if (this.jobIdSearchText && this.jobIdSearchText != '') {\r\n if (Number(this.jobIdSearchText) % 1 != 0) {\r\n this.notifyService.showError('JOB ID: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n }\r\n if (\r\n this.jobId > 0 &&\r\n (!this.requiredSkillSearchText || this.requiredSkillSearchText === '') &&\r\n this.isJobCandidateSearch\r\n ) {\r\n this.notifyService.showError('Required skill is mandatory for search!', 'Consultant')\r\n return\r\n }\r\n if (this.selectedSources.length === 0) {\r\n this.candidateSource = CandidateDataSource.Leaptiger\r\n this.selectedSources.push(this.candidateSource)\r\n } else if (this.selectedSources.length > 1) {\r\n this.candidateSource = CandidateDataSource.All\r\n } else {\r\n this.candidateSource = this.selectedSources[0]\r\n }\r\n this.searchCriteria = {\r\n CandidateDataSource: this.candidateSource,\r\n ConsultantId: null,\r\n JobId: Number(this.jobIdSearchText),\r\n RequiredSkills:\r\n this.requiredSkillSearchText != undefined ? this.requiredSkillSearchText.split(',') : null,\r\n PrefferedSkills:\r\n this.preferredSkillSearchText != undefined ? this.preferredSkillSearchText.split(',') : null,\r\n CandidateName: this.candidateNameSearchText,\r\n CandidateType: this.selEmploymentType.join(','),\r\n CandidateStatusId: '-1',\r\n PostedFrom: null,\r\n PostedTo: null,\r\n CandidateTitle: this.candidatTitleSearchText,\r\n RecruiterId: 0,\r\n City: this.citySearchText,\r\n StateCode: this.stateSearchText,\r\n Zipcode: 0,\r\n Education: null,\r\n LegalStatus: this.selectedWorkAuth.join(','),\r\n MinimumExperience: this.minExp == 0 ? null : this.minExp,\r\n MaximumExperience: this.maxExp == 0 ? null : this.maxExp,\r\n JobType: this.selectedJobType.join(','),\r\n Location: null,\r\n LocationMiles: this.miles == 0 ? null : this.miles,\r\n UserId: null,\r\n SourceTypeID: this.candidateSource,\r\n LastUpdated: this.lastUpdated == 0 ? null : this.lastUpdated,\r\n Availability: this.availablityId ? this.availablityId : null,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.pageSize,\r\n IsJobCandidateSearch: this.isJobCandidateSearch,\r\n SearchText: this.candidateModuleLevelSearchText,\r\n EmailAddress: this.candidateEmailSearchText,\r\n } as any\r\n\r\n this.totalLength = 1\r\n // this.isLoading = true\r\n this.dataSource = new MatTableDataSource()\r\n this._createBooleanSearchParams()\r\n this._getBooleanSearchCandidate()\r\n return\r\n\r\n this.consultantService\r\n .getDiceCandidates({})\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (consultants) => {\r\n this.subject$.next(consultants)\r\n if (consultants && consultants.length > 0) {\r\n this.isLoading = false\r\n this.consultantList = consultants\r\n this.totalLength = consultants[0].TotalCount\r\n } else {\r\n this.isLoading = false\r\n this.totalLength = 0\r\n this.consultantList = []\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showWarning('Error in fetching data' + err, 'Candidate search')\r\n }\r\n )\r\n this.dataSource = new MatTableDataSource()\r\n\r\n this.data$.pipe(filter(Boolean), takeUntil(this.ngUnSubscribe$)).subscribe((consultants) => {\r\n this.consultants = consultants\r\n this.dataSource.data = consultants\r\n })\r\n } catch (err: any) {\r\n this.isLoading = false\r\n this.notifyService.showWarning('Error in fetching data' + err, 'Candidate search')\r\n }\r\n }\r\n\r\n jobTypeConvertor(jobTypeId: string) {\r\n let jobTypeArray = jobTypeId?.split(',').map((item) => {\r\n if (Number(item) == Common.enumJobContractType.JT_C2C) return JobTypes.Contract\r\n else if (Number(item) == Common.enumJobContractType.JT_C2H) return JobTypes.ContractToHire\r\n else return JobTypes.Permanent\r\n })\r\n return jobTypeArray?.join(', ')\r\n }\r\n\r\n onGridColumnClick(consultantId, consultantJob?, rowIndex?) {\r\n this.selectedCandidateIndex = rowIndex\r\n if (\r\n consultantJob?.hasOwnProperty('DiceId') &&\r\n consultantJob.DiceId != null &&\r\n (consultantId == null || consultantId == undefined || consultantId == 0)\r\n ) {\r\n this.onGridDiceColumnClick(consultantJob.DiceId, consultantJob)\r\n } else {\r\n this.consultantService\r\n .getConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n Common.activeConsultant = res\r\n this.activeConsultant = res\r\n Common.activeJobId = this.jobId\r\n this.matchedPercentage = consultantJob?.MatchPercentage\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n }\r\n\r\n isSalaryVisible(jobTypeIds: string) {\r\n let jobTypeArray = jobTypeIds?.split(',').map(Number)\r\n if (jobTypeArray?.includes(JobTypeIds.Permanent) || jobTypeArray?.includes(JobTypeIds.ContractToHire))\r\n return true\r\n return false\r\n }\r\n\r\n isPayRateVisible(jobTypeIds: string) {\r\n let jobTypeArray = jobTypeIds?.split(',').map(Number)\r\n if (jobTypeArray?.includes(JobTypeIds.Contract) || jobTypeArray?.includes(JobTypeIds.ContractToHire))\r\n return true\r\n return false\r\n }\r\n openQuickpanel(isDiceCandidate?, diceId?) {\r\n if (isDiceCandidate) {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: diceId,\r\n isDice: true,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant')\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n matchedPercentage: this.matchedPercentage,\r\n diceId: diceId,\r\n isDice: true,\r\n })\r\n } else {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: Common.activeConsultant.ConsultantId,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant')\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n matchedPercentage: this.matchedPercentage,\r\n })\r\n }\r\n }\r\n\r\n onCallClick(consultantId, consultantJob?) {\r\n this.consultantService\r\n .getConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n Common.activeConsultant = res\r\n this.activeConsultant = res\r\n Common.activeJobId = this.jobId\r\n this.openQuickPanelWithVonage()\r\n this.removeParams()\r\n })\r\n }\r\n\r\n openQuickPanelWithVonage() {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: Common.activeConsultant.ConsultantId,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant', 92)\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n isCallClick: true,\r\n })\r\n }\r\n\r\n removeParams() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((state) => {\r\n if (!state) {\r\n if (this.isGridClick) {\r\n this.commonService.candidateObservable$.next(true)\r\n this.isGridClick = false\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: null,\r\n isDice: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n const script = document.getElementById('vonage-cdn')\r\n if (script) this._renderer2.removeChild(document.body, script)\r\n const vonageContainer = document.getElementsByClassName('vonage-dialer-container')[0]\r\n if (vonageContainer?.innerHTML) vonageContainer.innerHTML = ''\r\n }\r\n }\r\n })\r\n }\r\n\r\n getStates(): Observable {\r\n return this.commonService.getStates()\r\n }\r\n\r\n getEmploymentTypes() {\r\n this.consultantService\r\n .getLookup('ConsultantTypelD')\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n this.availEmploymentTypes = res\r\n this.employmentTypes = res\r\n })\r\n }\r\n\r\n getSources(): Observable {\r\n return this.consultantService.getLookup('ResumeSourceID')\r\n }\r\n\r\n getWorkAuthorization(): Observable {\r\n return this.consultantService.getLookup('LegalTypeID')\r\n }\r\n\r\n applyFilterCity(searchValue: string): Observable {\r\n let stateCode = null\r\n if (this.state) {\r\n stateCode = this.state.StateCode\r\n }\r\n searchValue = searchValue.trim()\r\n return this.consultantService.getCitySearch(searchValue, stateCode)\r\n }\r\n\r\n changePage(event) {\r\n this.pageSize = event.pageSize\r\n this.pageNumber = event.pageIndex + 1\r\n const PAGE_INFORMATION: PaginatorInformation = { PageNumber: this.pageNumber, PageSize: this.pageSize }\r\n this.booleanSearchService.setPaginationInformation(PAGE_INFORMATION)\r\n this.booleanSearchService.isCandidateSearchedFromBooleanSearch$.pipe(first()).subscribe({\r\n next: (isFromBooleanSearch) => {\r\n if (isFromBooleanSearch) {\r\n this._getBooleanSearchCandidate()\r\n } else {\r\n this.getConsultantData()\r\n }\r\n },\r\n })\r\n }\r\n\r\n announceSortChange(sortState: Sort) {\r\n if (sortState.direction) {\r\n this.sortField = sortState.active\r\n this.sortOrder = sortState.direction\r\n this.getConsultantData()\r\n }\r\n }\r\n\r\n toggleColumnVisibility(column, event) {\r\n if (column.property == 'FirstName') {\r\n return\r\n }\r\n event.stopPropagation()\r\n event.stopImmediatePropagation()\r\n column.visible = !column.visible\r\n }\r\n\r\n trackByProperty(index: number, column: TableColumn) {\r\n return column.property\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe$.next()\r\n this.ngUnSubscribe$.complete()\r\n this.candidateFilterOptions.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n })\r\n this._resetBooleanFilters()\r\n }\r\n private _resetBooleanFilters() {\r\n this.observableService.clearModuleLevelTextForCandidate()\r\n this.booleanSearchService.setDefaultValueForBooleanFilterCounter()\r\n this.booleanSearchService.setRequiredSkills([])\r\n this.booleanSearchService.setPreferredSkills([])\r\n this.booleanSearchService.setExcludedSkills([])\r\n this.booleanSearchService.setAddSuggestedKeyword('')\r\n this.booleanSearchService.setCurrentlyActiveInput(0)\r\n this.booleanSearchService.isCandidateSearchedFromBooleanSearch$.pipe(first()).subscribe({\r\n next: (isBooleanSearch) => {\r\n if (isBooleanSearch) {\r\n this.booleanSearchService.toggleBooleanSearchCandidateMethod(false)\r\n }\r\n },\r\n })\r\n }\r\n\r\n closeUploadDialog() {\r\n this.isLoading = false\r\n this.uploadDialog.close()\r\n this.myFiles = []\r\n this.isResumeData = false\r\n }\r\n openBulkUploadDialog(templateRef) {\r\n this.uploadDialog = this.dialog.open(templateRef, {\r\n width: '650px',\r\n height: '79vh',\r\n })\r\n }\r\n getFileDetails(e) {\r\n for (var i = 0; i < e.target.files.length; i++) {\r\n this.myFiles.push(e.target.files[i])\r\n }\r\n this.isResumeData = false\r\n }\r\n\r\n uploadFiles() {\r\n this.isResumeData = false\r\n this.isLoading = true\r\n const frmData = new FormData()\r\n\r\n for (var i = 0; i < this.myFiles.length; i++) {\r\n frmData.append('fileUpload', this.myFiles[i])\r\n }\r\n this.signalRService.setProgressReport(1);\r\n\r\n this.consultantService\r\n .bulkResumeUploadNew(frmData, this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (event) => {\r\n if (event instanceof HttpResponse) {\r\n this.isLoading = false\r\n this.myFiles = []\r\n this.resumeData = event.body\r\n this.isResumeData = true\r\n if (this.resumeData?.length > 0)\r\n this.notifyService.showSuccess('Successfully uploaded!', 'Candidate resumes')\r\n else {\r\n this.notifyService.showError('Error', 'Error on parsing')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.myFiles = null\r\n this.notifyService.showWarning('Resume upload Error:', 'Candidate profile')\r\n }\r\n )\r\n }\r\n\r\n private _subscribeToDiceResults() {\r\n // this.booleanSearchService.diceCandidateResult$\r\n // .pipe(\r\n // filter((result) => (result?.length ? true : false)),\r\n // takeUntil(this.ngUnSubscribe$)\r\n // )\r\n // .subscribe((diceCandidates: []) => {\r\n // this.consultantList = diceCandidates\r\n // this.totalLength = this.consultantList[0]?.TotalCount\r\n // this.dataSource.data = diceCandidates\r\n // })\r\n }\r\n onGridDiceColumnClick(consultantId, consultantJob?) {\r\n this.consultantService\r\n .getDiceConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n Common.activeConsultant = res\r\n this.activeConsultant = res\r\n Common.activeJobId = this.jobId\r\n this.matchedPercentage = consultantJob?.MatchPercentage\r\n this.openQuickpanel(true, consultantId)\r\n this.removeParams()\r\n })\r\n }\r\n\r\n private _updateRowValue() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((data) => {\r\n if (!data && this.isGridClick) {\r\n if (\r\n this.dataSource?.filteredData[this.selectedCandidateIndex]?.ConsultantID == undefined ||\r\n this.dataSource?.filteredData[this.selectedCandidateIndex]?.ConsultantID == null ||\r\n this.dataSource?.filteredData[this.selectedCandidateIndex]?.ConsultantID == 0\r\n ) {\r\n this.dataSource.filteredData[this.selectedCandidateIndex].ConsultantID =\r\n Common?.activeConsultant?.ConsultantId\r\n }\r\n }\r\n })\r\n }\r\n\r\n private _getBooleanSearchCandidate() {\r\n this.isLoading = true\r\n combineLatest([\r\n this.booleanSearchService.additionalCriteria$,\r\n this.commonService.getStates(),\r\n this.booleanSearchService.paginationInformation,\r\n this.booleanSearchService.requiredSkills$,\r\n this.booleanSearchService.excludedSkills$,\r\n this.booleanSearchService.preferredSkills$,\r\n this.booleanSearchService.isShowAdvanceSearch$,\r\n this.booleanSearchService.querySearchInputText$,\r\n ])\r\n .pipe(first())\r\n\r\n .subscribe(\r\n ([\r\n additionalCriteria,\r\n states,\r\n pageInformation,\r\n requiredSkills,\r\n excludedSkills,\r\n preferredSkills,\r\n isAdvanceSearch,\r\n querySearchInputText,\r\n ]) => {\r\n const REQUIRED_SKILLS = requiredSkills.length ? [...requiredSkills] : []\r\n const PREFERRED_SKILLS = preferredSkills.length ? [...preferredSkills] : []\r\n const EXCLUDED_SKILLS = excludedSkills.length ? [...excludedSkills] : []\r\n const CITY = additionalCriteria.find((criteria) => criteria.filterName === 'City')\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'City').filterValue\r\n : ''\r\n const LAST_RESUME_UPDATED = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Last Resume Updated'\r\n )\r\n ? parseInt(\r\n additionalCriteria.find((criteria) => criteria.filterName === 'Last Resume Updated')\r\n .filterValue\r\n )\r\n : 0\r\n const MINIMUM_EXPERIENCE = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Minimum Experience'\r\n )\r\n ? parseInt(\r\n additionalCriteria.find((criteria) => criteria.filterName === 'Minimum Experience')\r\n .filterValue\r\n )\r\n : 0\r\n\r\n const MAXIMUM_EXPERIENCE = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Maximum Experience'\r\n )\r\n ? parseInt(\r\n additionalCriteria.find((criteria) => criteria.filterName === 'Maximum Experience')\r\n .filterValue\r\n )\r\n : 0\r\n const JOB_TITLE = additionalCriteria.find((criteria) => criteria.filterName === 'Job Title')\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'Job Title').filterValue\r\n : ''\r\n\r\n const sourceCriteria = additionalCriteria.find((criteria) => criteria.filterName === 'Source')\r\n let CANDIDATE_DATA_SOURCE: number = 0\r\n\r\n if (sourceCriteria) {\r\n if (sourceCriteria.filterValue?.includes(64) && sourceCriteria.filterValue?.includes(65)) {\r\n CANDIDATE_DATA_SOURCE = -1\r\n } else if (sourceCriteria.filterValue?.length === 1) {\r\n CANDIDATE_DATA_SOURCE = sourceCriteria?.filterValue[0]\r\n }\r\n }\r\n\r\n const SALARY_VALUE = additionalCriteria.find((criteria) => criteria.filterName === 'Salary')\r\n ? parseInt(additionalCriteria.find((criteria) => criteria.filterName === 'Salary').filterValue)\r\n : 0\r\n let SALARY\r\n if (SALARY_VALUE != 0) {\r\n SALARY = SALARY_VALUE\r\n }\r\n const OPERATOR = additionalCriteria.find((criteria) => criteria.filterName === 'Salary')\r\n\r\n const STATE_NAME = additionalCriteria.find((criteria) => criteria.filterName === 'State')\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'State').filterValue\r\n : ''\r\n let stateCode = ''\r\n if (STATE_NAME) {\r\n stateCode = states.find((state) => state.StateName === STATE_NAME)\r\n ? states.find((state) => state.StateName === STATE_NAME).StateCode\r\n : ''\r\n }\r\n const CANDIDATE_TITLE = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Candidate Title'\r\n )\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'Candidate Title').filterValue\r\n : ''\r\n\r\n const JOB_ID = Common?.activeJob?.JobId || 0\r\n let searchCriteria = {}\r\n\r\n if (isAdvanceSearch) {\r\n searchCriteria = {\r\n CandidateTitle: CANDIDATE_TITLE,\r\n CandidateDataSource: CANDIDATE_DATA_SOURCE,\r\n SearchText: querySearchInputText,\r\n StateName: STATE_NAME,\r\n MinimumExperience: MINIMUM_EXPERIENCE,\r\n MaximumExperience: MAXIMUM_EXPERIENCE,\r\n LastUpdated: LAST_RESUME_UPDATED,\r\n JobId: JOB_ID,\r\n PageNumber: pageInformation.PageNumber,\r\n PageSize: pageInformation.PageSize,\r\n Zipcode: 0,\r\n JobTitle: JOB_TITLE,\r\n City: CITY,\r\n Salary: {\r\n salary: SALARY,\r\n operator: OPERATOR?.operator,\r\n },\r\n }\r\n } else {\r\n searchCriteria = {\r\n CandidateTitle: CANDIDATE_TITLE,\r\n CandidateDataSource: CANDIDATE_DATA_SOURCE,\r\n RequiredSkills: REQUIRED_SKILLS,\r\n PreferredSkills: PREFERRED_SKILLS,\r\n ExcludedSkills: EXCLUDED_SKILLS,\r\n MinimumExperience: MINIMUM_EXPERIENCE,\r\n MaximumExperience: MAXIMUM_EXPERIENCE,\r\n LastUpdated: LAST_RESUME_UPDATED,\r\n StateName: STATE_NAME,\r\n JobId: JOB_ID,\r\n PageNumber: pageInformation.PageNumber,\r\n PageSize: pageInformation.PageSize,\r\n Zipcode: 0,\r\n SearchText: querySearchInputText,\r\n JobTitle: JOB_TITLE,\r\n City: CITY,\r\n Salary: {\r\n salary: SALARY,\r\n operator: OPERATOR?.operator,\r\n },\r\n }\r\n }\r\n\r\n this.consultantService\r\n .getDiceCandidates(searchCriteria)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (diceCandidates) => {\r\n this.consultantList! = diceCandidates\r\n if (this.consultantList && this.consultantList.length > 0) {\r\n this.totalLength = this.consultantList[0]?.TotalCount\r\n }\r\n this.dataSource.data = diceCandidates\r\n this.isLoading = false\r\n },\r\n (err) => {\r\n this.isLoading = false\r\n }\r\n )\r\n }\r\n )\r\n }\r\n\r\n private _subscribeToGetBooleanCandidateObs() {\r\n this.booleanSearchService.getCandidateFromBooleanSearch$\r\n .pipe(\r\n filter((value) => value != 0),\r\n takeUntil(this.ngUnSubscribe$)\r\n )\r\n .subscribe({\r\n next: () => {\r\n this._getBooleanSearchCandidate()\r\n },\r\n })\r\n }\r\n existingAdditionalFilters: any[]\r\n booleanFilters: BooleanFilter[] = BooleanFilterJson.default.BooleanCandidateFilters\r\n\r\n private _createBooleanSearchParams() {\r\n let activeFilterOptions = this.booleanSearchService.booleanSearchFilterOptions.filter(\r\n (item) =>\r\n item.name != 'Work Permit' &&\r\n item.name != 'Last Resume Updated' &&\r\n item.name != 'Email Address' &&\r\n item.name != 'Candidate Name'\r\n // (item.selectedOptions || item.searchText)\r\n )\r\n const UNIQUE_FILTERS = this.booleanFilters\r\n .map((booleanFilter) => {\r\n if (!activeFilterOptions.filter((filter) => filter?.name == booleanFilter?.name).length) {\r\n return booleanFilter\r\n }\r\n })\r\n .filter((item) => item)\r\n\r\n activeFilterOptions = [...activeFilterOptions, ...UNIQUE_FILTERS]\r\n\r\n let additionalCriteria = []\r\n\r\n activeFilterOptions.map((filter) => {\r\n if (filter?.isActive) {\r\n if (filter?.name === 'Source') {\r\n additionalCriteria.push({\r\n filterName: 'Source',\r\n operator: '',\r\n filterValue: [64],\r\n })\r\n } else if (filter?.name === 'Required Skills') {\r\n let skills = filter?.searchText?.split(',')\r\n this.booleanSearchService.setRequiredSkills(skills)\r\n } else if (filter?.name === 'State') {\r\n {\r\n additionalCriteria.push({\r\n filterName: 'State',\r\n operator: '',\r\n filterValue: filter?.searchText,\r\n })\r\n }\r\n } else if (filter?.name === 'City') {\r\n additionalCriteria.push({\r\n filterName: 'City',\r\n operator: '',\r\n filterValue: filter?.searchText,\r\n })\r\n }\r\n }\r\n })\r\n\r\n this.booleanSearchService.updateAdditionalCriteria(additionalCriteria)\r\n }\r\n\r\n getPercentageClass(percentage: number): string {\r\n if (percentage >= 80) {\r\n return 'high-percentage';\r\n } else if (percentage >= 50) {\r\n return 'medium-percentage';\r\n } else {\r\n return 'low-percentage';\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n Showing {{ totalLength | number }} Candidates Results\r\n
\r\n
\r\n {{ totalLength | number }} Candidate(s) Matched for the job {{ jobDetails?.JobTitleName }} ({{\r\n jobId\r\n }}),\r\n {{ jobDetails?.CompanyName }}.\r\n \r\n
\r\n
\r\n 0\"\r\n (click)=\"exportDiceCandidates()\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n matTooltip=\"Export Candidates to CSV\"\r\n >\r\n \r\n \r\n \r\n filter_list\r\n \r\n \r\n \r\n \r\n {{ column.label }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n 0\"\r\n class=\"consultant-table-container\"\r\n [ngClass]=\"{ 'overflow-x-hidden': expand.value }\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n [src]=\"filePath + row['ImageUrl']\"\r\n class=\"candidate-profile-image\"\r\n />\r\n {{\r\n row['FirstName'][0] + (row['LastName'][0] ? row['LastName'][0] : '')\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Name & Skills\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ element.FirstName | titlecase }}\r\n {{ element.LastName | titlecase }}\r\n \r\n \r\n {{ element.CandidateTitle | titlecase | slice : 0 : 30 }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">Match %\r\n \r\n \r\n
0\">\r\n \r\n {{ element?.MatchPercentage }}%\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Employment
\r\n Type\r\n \r\n \r\n \r\n \r\n {{ element.CandidateType }}\r\n \r\n \r\n
\r\n \r\n \r\n Experience
\r\n (In years)\r\n \r\n \r\n \r\n \r\n {{ element.Experience }}\r\n \r\n \r\n
\r\n \r\n \r\n Work
\r\n Permit\r\n \r\n \r\n \r\n 0\"\r\n src=\"assets/img/Leap-Tiger_Icons/Candidate-Module-Icon/work-permit.svg\"\r\n alt=\"work permit icon\"\r\n />\r\n {{ element.LegalStatus }}\r\n \r\n \r\n
\r\n\r\n \r\n \r\n Location\r\n \r\n \r\n \r\n \r\n
\r\n {{ element.City }}, {{ element.StateCode }}\r\n
\r\n
\r\n {{ element.City }}\r\n
\r\n
\r\n {{ element.StateCode }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Willing To
\r\n Relocate\r\n \r\n \r\n {{ element.Relocate == true ? 'Yes' : 'No' }}\r\n \r\n
\r\n \r\n \r\n Job Type\r\n \r\n \r\n {{ jobTypeConvertor(element?.JobTypeId) }}\r\n \r\n \r\n \r\n \r\n Expected
\r\n Pay Rate\r\n \r\n\r\n \r\n \r\n 0\">\r\n {{ element?.ExpectedSalary | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}\r\n \r\n 0 &&\r\n isPayRateVisible(element?.JobTypeId) &&\r\n element?.ExpectedPayRate > 0\r\n \"\r\n >|\r\n 0\">\r\n {{ element?.ExpectedPayRate | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Time Spent
\r\n (Calls)\r\n \r\n \r\n \r\n \r\n 0.5 hrs\r\n \r\n \r\n
\r\n\r\n \r\n Source\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Resume
\r\n Last Updated\r\n \r\n \r\n
\r\n {{ element.LastUpdateTime }}\r\n
\r\n \r\n
\r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \"Text\"\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
No candidate were found matching your search
\r\n
\r\n\r\n
0\">\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n Upload Bulk Resumes\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
* {{ file.name }}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Resume{{ element.FileName }}Status\r\n \r\n {{ element.UploadStatus }}\r\n \r\n \r\n {{ element.UploadStatus }}\r\n \r\n Commment\r\n {{ element.UploadComment }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { CANDIDATE_ADD_ACTION, CANDIDATE_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport { Common } from 'src/app/common/common'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { ConsultantDialogTypes } from '../consultant-constants'\r\nimport { iConsultantJob, iConsultantJobStatusSearch } from 'src/app/models/consultant.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { iDbResult } from 'src/app/models/common.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { JobTypes as JobType } from 'src/app/constants/jobType'\r\n\r\n@Component({\r\n selector: 'leap-consultant-job-status-card-list',\r\n templateUrl: './consultant-job-status-card-list.component.html',\r\n styleUrls: ['./consultant-job-status-card-list.component.scss'],\r\n})\r\nexport class ConsultantJobStatusCardListComponent implements OnInit {\r\n @Input() candidate: any\r\n filePath = Common.filePath\r\n menu: any = {}\r\n modelConsultantJob: iConsultantJob = {}\r\n isLoading: boolean = false\r\n totalLength: number = 0\r\n candidateList: iConsultantJob[] = []\r\n destroy$: Subject = new Subject()\r\n searchCriteria: iConsultantJobStatusSearch\r\n candidateSearchText: string = ''\r\n candidateEmailSearchText: string = ''\r\n candidateSearchJobId: string = ''\r\n candidateVenderSearchText: string = ''\r\n selectedStatusId: string = ''\r\n jobTitlesSelected: number[] = []\r\n recruiterSelected: number[] = []\r\n customersSelected: number[] = []\r\n customersContactSelected: number[] = []\r\n pageSizeOptions: number[] = [5, 10, 20, 50]\r\n pageSize: number = 10\r\n pageNumber: number = 1\r\n sortField: string\r\n sortOrder: string\r\n isFromJob: boolean = false\r\n jobTitleAllOptions: Option[] = []\r\n\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n candidateJobStatusEditAction = CANDIDATE_EDIT_ACTION\r\n isCandidateDataEditable$: Observable = this.consultantDataService.isCandidateDataEditable$\r\n\r\n constructor(\r\n private consultantDataService: ConsultantDataService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private authService: AuthenticationService,\r\n private consultantService: ConsultantService,\r\n private commonService: CommonService,\r\n private notifyService: NotificationService,\r\n private jobService: JobService\r\n ) {}\r\n\r\n public get jobTypesId(): typeof JobTypes {\r\n return JobTypes\r\n }\r\n ngOnInit(): void {\r\n console.log(this.candidate, 'new data ')\r\n }\r\n getInitials(name: string): string {\r\n const names = name.split(' ')\r\n let initials = ''\r\n if (names.length > 0) {\r\n initials += names[0][0]\r\n }\r\n if (names.length > 1) {\r\n initials += names[names.length - 1][0]\r\n }\r\n return initials.toUpperCase()\r\n }\r\n\r\n openTeams(data: any) {}\r\n jobTypeConvertor(jobTypeId: number) {\r\n switch (jobTypeId) {\r\n case Common.enumJobContractType.JT_C2C:\r\n return JobType.Contract\r\n case Common.enumJobContractType.JT_C2H:\r\n return JobType.ContractToHire\r\n case Common.enumJobContractType.JT_PERM:\r\n return JobType.Permanent\r\n }\r\n }\r\n onEditJobStatus(consultant) {\r\n Common.activeConsultantJob = consultant\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobStatus,\r\n formData: consultant,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formData != null) {\r\n this.menu = data.formData?.MenuCode\r\n this.modelConsultantJob.JobID = consultant.JobID\r\n this.modelConsultantJob.ConsultantJobID = consultant.ConsultantJobID\r\n this.modelConsultantJob.ConsultantID = consultant.ConsultantID\r\n this.modelConsultantJob.PayRate = data.formData?.PayRate ? data.formData?.PayRate : consultant?.PayRate\r\n this.modelConsultantJob.BillRate = data.formData?.BillRate\r\n ? data.formData?.BillRate\r\n : consultant?.BillRate\r\n this.modelConsultantJob.Salary = data.formData?.Salary ? data.formData?.Salary : consultant?.Salary\r\n this.modelConsultantJob.UpdatedDate = new Date()\r\n this.modelConsultantJob.UpdatedBy = this.authService.userInfo.userID\r\n this.modelConsultantJob.IsActive = true\r\n this.modelConsultantJob.CompanyVendorID = data.formData?.VendorCompanyId\r\n ? data.formData.VendorCompanyId\r\n : 0\r\n this.modelConsultantJob.VendorContactID = data.formData?.VendorContactID\r\n ? data.formData.VendorContactID\r\n : 0\r\n this.modelConsultantJob.ConsultantTypeID = data.formData?.ConsultantTypeID\r\n ? data.formData.ConsultantTypeID\r\n : 0\r\n this.modelConsultantJob.RecruiterId = this.authService.userInfo.userID\r\n Common.activeConsultantJob = this.modelConsultantJob\r\n this.isLoading = true\r\n this.consultantService\r\n .saveConsultantJob(this.modelConsultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((cjResult) => {\r\n if (cjResult) {\r\n Common.activeConsultantJob = cjResult\r\n if (data.formData?.MenuCode && data.formData.MenuCode.MenuItemID != -1)\r\n this.updateProcessWorkFlow()\r\n else {\r\n this.isLoading = false\r\n this.getData()\r\n this.notifyService.showSuccess('Candidate job status updated successfully', '')\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n updateProcessWorkFlow() {\r\n var ljob: iConsultantJob = this.modelConsultantJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n let comment = this.menu?.MenuName\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n this.isLoading = false\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n this.commonService.setActiveObject(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(this.menu)\r\n Common.activeConsultantJob.ConsultantJobStatus = this.menu.MenuName\r\n this.notifyService.showSuccess('Candidate job status updated successfully', '')\r\n })\r\n this.getData()\r\n }\r\n\r\n getData() {\r\n this.isLoading = true\r\n this.searchCriteria = {\r\n ConsultantId: null,\r\n JobId: this.candidateSearchJobId.length != 0 ? this.candidateSearchJobId : '',\r\n JobTypeId: '',\r\n EmailAddress: this.candidateEmailSearchText ? this.candidateEmailSearchText : null,\r\n CandidateName: this.candidateSearchText ? this.candidateSearchText : null,\r\n CandidateType: null,\r\n CandidateTypeId: '',\r\n CandidateStatusId: this.selectedStatusId ? this.selectedStatusId : '',\r\n PostedFrom: null,\r\n PostedTo: null,\r\n CandidateTitle:\r\n this.jobTitlesSelected.length > 0\r\n ? this.jobTitlesSelected.map((x) => this.getJobTitleByID(x)).join(',')\r\n : '',\r\n RecruiterId: this.recruiterSelected?.length != 0 ? this.recruiterSelected?.map(Number).join(',') : '',\r\n City: null,\r\n StateCode: null,\r\n Zipcode: 0,\r\n LegalStatus: null,\r\n UserId: null,\r\n LastUpdated: null,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.pageSize,\r\n SearchText: this.candidateSearchText ? this.candidateSearchText : '',\r\n LegalTypeId: null,\r\n ClientContactId: this.customersContactSelected.length != 0 ? this.customersContactSelected.join(',') : null,\r\n ClientCompanyId: this.customersSelected.length != 0 ? this.customersSelected.join(',') : null,\r\n VendorCompanyId: this.candidateVenderSearchText ? this.candidateVenderSearchText : null,\r\n JobTitle:\r\n this.jobTitlesSelected.length > 0\r\n ? this.jobTitlesSelected.map((x) => this.getJobTitleByID(x)).join(',')\r\n : '',\r\n }\r\n this.jobService\r\n .getConsultantJobStatusList(this.searchCriteria)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (candidateList: iConsultantJob[]) => {\r\n this.isLoading = false\r\n this.candidateList = [...candidateList]\r\n if (candidateList.length === 0) {\r\n this.totalLength = 0\r\n } else this.totalLength = candidateList[0].TotalCount\r\n },\r\n (error) => {\r\n this.isLoading = false\r\n }\r\n )\r\n }\r\n getJobTitleByID(jobID: number) {\r\n return this.jobTitleAllOptions.filter((item) => item.key == jobID)[0]?.value.trim()\r\n }\r\n}\r\n","\r\n\r\n \r\n
\r\n
\r\n \r\n {{ getInitials(candidate.ConsultantName) }}\r\n \r\n
\r\n
\r\n
\r\n {{ candidate?.ConsultantName | titlecase | slice : 0 : 20 }}\r\n
\r\n
\r\n
\r\n {{ candidate?.JobID }} - {{ candidate?.JobTitleName }}\r\n
\r\n
\r\n {{ candidate?.ClientContactName\r\n }},\r\n {{ candidate?.ClientName }}\r\n
\r\n
\r\n Job Type : \r\n {{ jobTypeConvertor(candidate?.JobTypeID) }}\r\n
\r\n
\r\n Client Rate : \r\n $\r\n \r\n {{\r\n candidate?.BillRate\r\n ? (candidate?.BillRate | number : '1.2-2')\r\n : (candidate?.BillRate | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Pay Rate/Annual Salary : \r\n\r\n \r\n ${{\r\n candidate?.Salary\r\n ? (candidate?.Salary | number : '1.2-2')\r\n : (candidate?.Salary | nullValueReplace)\r\n }}\r\n \r\n ${{\r\n candidate?.PayRate\r\n ? (candidate?.PayRate | number : '1.2-2')\r\n : (candidate?.PayRate | nullValueReplace)\r\n }}\r\n \r\n ${{\r\n candidate?.PayRate\r\n ? (candidate?.PayRate | number : '1.2-2')\r\n : (candidate?.PayRate | nullValueReplace)\r\n }}\r\n |\r\n {{ candidate?.Salary ? (candidate?.Salary | number : '1.2-2') : '' }}\r\n \r\n \r\n
\r\n
\r\n Margin : \r\n ${{\r\n candidate?.Margin\r\n ? (candidate?.Margin | number : '1.2-2')\r\n : (candidate?.Margin | nullValueReplace)\r\n }}\r\n \r\n
\r\n
\r\n Recruiter : \r\n {{ candidate?.RecruiterName }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Status : \r\n {{ candidate.ConsultantJobStatus }}\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \"Text\"\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'\r\nimport { Subject, combineLatest, forkJoin } from 'rxjs'\r\nimport { filter, map, takeUntil } from 'rxjs/operators'\r\nimport { TableColumn } from 'src/app/shared/core/interfaces/table-column.interface'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { Filter, ModuleNames, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { Consultant } from '../Consultant-list/interfaces/consultant.model'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { iConsultantJob, iConsultantJobStatusSearch } from 'src/app/models/consultant.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { Common, ConsultantJobStatuses } from 'src/app/common/common'\r\nimport { fadeInUp400ms } from 'src/app/shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from 'src/app/shared/core/animations/stagger.animation'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { CandidateJobFilterNames } from 'src/app/enums/candidateFilterName'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { Sort } from '@angular/material/sort'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { Contact } from 'src/app/models/contact.model'\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { GenericTypes } from 'src/app/constants/genericType'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { iDbResult, iMenuItem } from 'src/app/models/common.model'\r\nimport { JobTypes as JobType } from 'src/app/constants/jobType'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { ConsultantDialogTypes } from '../consultant-constants'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { ADMIN_ROLES_LIST } from 'src/app/constants/userRoles.constants'\r\nimport {\r\n CANDIDATE_ADD_ACTION,\r\n CANDIDATE_EDIT_ACTION,\r\n COMPANY_ADD_ACTION,\r\n COMPANY_EDIT_ACTION,\r\n} from 'src/app/enums/userActions'\r\nimport { TableVirtualScrollDataSource } from 'ng-table-virtual-scroll'\r\n\r\n@Component({\r\n selector: 'leap-consultant-job-status',\r\n templateUrl: './consultant-job-status.component.html',\r\n styleUrls: ['./consultant-job-status.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class ConsultantJobStatusComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private filterModelService: FilterModelService,\r\n private commonService: CommonService,\r\n private jobService: JobService,\r\n private observableService: ObservableService,\r\n private router: Router,\r\n private notifyService: NotificationService,\r\n private roleService: RoleService,\r\n private route: ActivatedRoute,\r\n public authService: AuthenticationService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private consultantService: ConsultantService\r\n ) {\r\n this.getFilterOption()\r\n }\r\n\r\n public get JobTypeId(): typeof JobTypes {\r\n return JobTypes\r\n }\r\n\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n\r\n public get moduleNames(): typeof ModuleNames {\r\n return ModuleNames\r\n }\r\n\r\n public get jobTypesId(): typeof JobTypes {\r\n return JobTypes\r\n }\r\n\r\n selectedCustomerContactList: Option[] = []\r\n customerList: Option[] = []\r\n isLoading: boolean = false\r\n candidateJobStatusOptions: Filter[] = this.filterModelService.getJobStatusFilters()\r\n isExpanded$ = combineLatest([this.commonService.isJobCardView$]).pipe(map(([value]) => ({ value })))\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n editIcon = Common.EditIcon\r\n statusNameArray: string[] = []\r\n jobTitleNameArray: string[] = []\r\n totalLength: number = 0\r\n candidateDataSource: MatTableDataSource = new MatTableDataSource()\r\n candidateList: iConsultantJob[] = []\r\n pageSizeOptions: number[] = [5, 10, 20, 50]\r\n pageSize: number = 20\r\n pageNumber: number = 1\r\n statusFilter: iMenuItem[] = []\r\n jobTitleAllOptions: Option[] = []\r\n searchCriteria: iConsultantJobStatusSearch\r\n modelConsultantJob: iConsultantJob = {}\r\n filePath = Common.filePath\r\n menu: any = {}\r\n columns: TableColumn[] = [\r\n { label: 'Candidate Name', property: 'candidate-name', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Type', property: 'type', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Job Contact', property: 'job-contact', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Job Type', property: 'job-type', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Client Rate', property: 'client-rate', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Pay Rate', property: 'pay-rate', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Margin', property: 'margin', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Status', property: 'status', type: 'text', cssClasses: ['text-left'], visible: true },\r\n // will need\r\n // { label: 'Icon', property: 'icon', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Recruiter', property: 'recruiter', type: 'text', cssClasses: ['text-left'], visible: true },\r\n { label: 'Edit', property: 'edit', type: 'text', cssClasses: ['text-left'], visible: true },\r\n ]\r\n statusFilterArray: iMenuItem[] = []\r\n destroy$: Subject = new Subject()\r\n candidateSearchText: string = ''\r\n candidateEmailSearchText: string = ''\r\n candidateSearchJobId: string = ''\r\n candidateVenderSearchText: string = ''\r\n titleOptions: Option[] = []\r\n\r\n jobId: number = 0\r\n jobDetails: iJob = {}\r\n isJobCandidateSearch: boolean = false\r\n IsAddCandidatePermission: boolean\r\n jobStatusId: string = ''\r\n candidateTitle: string = ''\r\n selectedStatusId: string = ''\r\n jobTitlesSelected: number[] = []\r\n recruiterSelected: number[] = []\r\n customersSelected: number[] = []\r\n customersContactSelected: number[] = []\r\n sortField: string\r\n sortOrder: string\r\n isFromJob: boolean = false\r\n candidateJobStatusAddAction = CANDIDATE_ADD_ACTION\r\n candidateJobStatusEditAction = CANDIDATE_EDIT_ACTION\r\n private lastScrollTop: number = 0\r\n hasMoreData: boolean = true\r\n ngOnInit(): void {\r\n this.setPermission()\r\n this.commonService.menuItem$.subscribe((data) => {\r\n const menuitems = data?.filter((item) => item.ComponentCode == 'ConsultantJob')\r\n const uniqueStatusValue: iMenuItem[] = Object.values(\r\n menuitems.reduce((acc, item) => {\r\n if (!acc[item.StatusName]) {\r\n acc[item.StatusName] = item\r\n }\r\n return acc\r\n }, {})\r\n )\r\n this.statusFilter = [...uniqueStatusValue]\r\n })\r\n Common.activeJob = null\r\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe((params) => {\r\n if (params?.jobId) {\r\n this.isFromJob = true\r\n this.jobId = Number(params.jobId)\r\n this.jobService\r\n .getJob(this.jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((job) => {\r\n this.jobDetails = job\r\n this.showCandidatesCriteria()\r\n })\r\n this.candidateJobStatusOptions = this.filterModelService.getJobStatusFilters()\r\n } else {\r\n this.isFromJob = false\r\n this.jobDetails = history.state?.job\r\n this.totalLength = 0\r\n this.isJobCandidateSearch = false\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n })\r\n this.filterChanges()\r\n this.jobTitleChangesSubscriber()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.complete()\r\n this.candidateJobStatusOptions.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n if (item.name === CandidateJobFilterNames.Customer_Contact) {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n item.options = []\r\n item.originalOptions = []\r\n }\r\n })\r\n }\r\n\r\n showCandidatesCriteria() {\r\n if (this.jobDetails.JobId != 0) {\r\n this.isJobCandidateSearch = true\r\n this.pageSize = GenericTypes.DefaultPageSize\r\n this.candidateSearchJobId = this.jobDetails?.JobId?.toString()\r\n this.candidateEmailSearchText = this.jobDetails?.ContactEmail\r\n this.candidateTitle = this.jobDetails?.JobTitleName\r\n this.customerList = this.customerList?.filter((item) => item.key == this.jobDetails?.CompanyId)\r\n this.customersSelected.push(this.jobDetails?.CompanyId)\r\n this.jobService\r\n .getCompanyContacts(this.jobDetails?.CompanyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((contact: Contact[]) => {\r\n contact.map((item) =>\r\n this.selectedCustomerContactList.push({\r\n key: item.ContactID,\r\n value: item.FirstName + ' ' + item.LastName,\r\n })\r\n )\r\n })\r\n this.customersContactSelected.push(this.jobDetails?.CustomerContactId)\r\n this.selectedStatusId = ConsultantJobStatuses.CON_JOB_SUBMITTED.toString()\r\n this.statusFilterArray = this.statusFilter.filter(\r\n (item) => item.StatusID == ConsultantJobStatuses.CON_JOB_SUBMITTED\r\n )\r\n this.statusSelectedNames(this.statusFilterArray)\r\n this.jobService\r\n .getJobTitleByJobId(this.jobDetails.JobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((title: any[]) => {\r\n this.jobTitlesSelected.push(title[0].JobTitleID)\r\n this.titleOptions.push({ key: title[0].JobTitleID, value: title[0].JobTitleName })\r\n })\r\n this.candidateJobStatusOptions.forEach((item) => {\r\n \r\n switch (item.name) {\r\n case CandidateJobFilterNames.Job_Title:\r\n item.options = []\r\n item.options = this.titleOptions\r\n item.originalOptions = this.titleOptions\r\n item.selectedOptions = this.jobTitlesSelected\r\n break\r\n case CandidateJobFilterNames.Job_ID:\r\n item.searchText = this.candidateSearchJobId\r\n break\r\n case CandidateJobFilterNames.USER:\r\n item.selectedOptions = this.recruiterSelected?.map(Number)\r\n break\r\n case CandidateJobFilterNames.Email_Address:\r\n item.searchText = this.candidateEmailSearchText\r\n break\r\n case CandidateJobFilterNames.Customers:\r\n item.options = []\r\n item.options = this.customerList\r\n item.originalOptions = this.customerList\r\n item.selectedOptions = this.customersSelected\r\n break\r\n case CandidateJobFilterNames.Customer_Contact:\r\n item.options = []\r\n item.options = this.selectedCustomerContactList\r\n item.originalOptions = this.selectedCustomerContactList\r\n item.selectedOptions = this.customersContactSelected\r\n break\r\n case CandidateJobFilterNames.Vendors:\r\n item.searchText = this.candidateVenderSearchText\r\n break\r\n }\r\n })\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n }\r\n\r\n resetFilters() {\r\n this.candidateJobStatusOptions.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n if (item.name === CandidateJobFilterNames.Customer_Contact) {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n item.options = []\r\n item.originalOptions = []\r\n }\r\n })\r\n this.getFilterOption()\r\n this.statusNameArray = []\r\n this.candidateEmailSearchText = ''\r\n this.candidateSearchJobId = ''\r\n this.candidateSearchText = ''\r\n this.selectedStatusId = ''\r\n this.candidateTitle = ''\r\n this.jobTitlesSelected = []\r\n this.candidateVenderSearchText = ''\r\n this.recruiterSelected = []\r\n this.customersContactSelected = []\r\n this.customersSelected = []\r\n if (this.isFromJob) {\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n jobId: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n }\r\n }\r\n\r\n setPermission() {\r\n this.roleService\r\n .getPermissionByRole(this.authService.userInfo.roles[0].roleID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((data) => {\r\n let addCandidatePermit = data.filter((item) => {\r\n item.ComponentID == Common.enumComponent.Consultant &&\r\n item.MenuCode == Common.enumMenuCode.CON_ADD &&\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n })\r\n if (addCandidatePermit?.length > 0) {\r\n this.IsAddCandidatePermission = true\r\n }\r\n })\r\n }\r\n\r\n isOpen() {\r\n this.commonService.isExpandedSubject.next(true)\r\n }\r\n\r\n isClose() {\r\n this.commonService.isExpandedSubject.next(false)\r\n }\r\n\r\n onEditJobStatus(consultant) {\r\n Common.activeConsultantJob = consultant\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobStatus,\r\n formData: consultant,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formData != null) {\r\n this.menu = data.formData?.MenuCode\r\n this.modelConsultantJob.JobID = consultant.JobID\r\n this.modelConsultantJob.ConsultantJobID = consultant.ConsultantJobID\r\n this.modelConsultantJob.ConsultantID = consultant.ConsultantID\r\n this.modelConsultantJob.PayRate = data.formData?.PayRate ? data.formData?.PayRate : consultant?.PayRate\r\n this.modelConsultantJob.BillRate = data.formData?.BillRate\r\n ? data.formData?.BillRate\r\n : consultant?.BillRate\r\n this.modelConsultantJob.Salary = data.formData?.Salary ? data.formData?.Salary : consultant?.Salary\r\n this.modelConsultantJob.UpdatedDate = new Date()\r\n this.modelConsultantJob.UpdatedBy = this.authService.userInfo.userID\r\n this.modelConsultantJob.IsActive = true\r\n this.modelConsultantJob.CompanyVendorID = data.formData?.VendorCompanyId\r\n ? data.formData.VendorCompanyId\r\n : 0\r\n this.modelConsultantJob.VendorContactID = data.formData?.VendorContactID\r\n ? data.formData.VendorContactID\r\n : 0\r\n this.modelConsultantJob.ConsultantTypeID = data.formData?.ConsultantTypeID\r\n ? data.formData.ConsultantTypeID\r\n : 0\r\n this.modelConsultantJob.RecruiterId = this.authService.userInfo.userID\r\n Common.activeConsultantJob = this.modelConsultantJob\r\n this.isLoading = true\r\n this.consultantService\r\n .saveConsultantJob(this.modelConsultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((cjResult) => {\r\n if (cjResult) {\r\n Common.activeConsultantJob = cjResult\r\n if (data.formData?.MenuCode && data.formData.MenuCode.MenuItemID != -1)\r\n this.updateProcessWorkFlow()\r\n else {\r\n this.isLoading = false\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n this.notifyService.showSuccess('Candidate job status updated successfully', '')\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n updateProcessWorkFlow() {\r\n var ljob: iConsultantJob = this.modelConsultantJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n let comment = this.menu?.MenuName\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n this.isLoading = false\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n this.commonService.setActiveObject(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(this.menu)\r\n Common.activeConsultantJob.ConsultantJobStatus = this.menu.MenuName\r\n this.notifyService.showSuccess('Candidate job status updated successfully', '')\r\n })\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columns.filter((column) => column.visible).map((column) => column.property)\r\n }\r\n\r\n filterChanges() {\r\n this.observableService.candidateJobModuleLevelSearchChanged$.pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (filter) => {\r\n this.candidateSearchText = filter\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n },\r\n })\r\n this.observableService.candidateJobTextBoxFilterValueChanged$.pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateJobFilterNames.Email_Address)) {\r\n this.candidateEmailSearchText = ''\r\n this.candidateEmailSearchText = filter.get(CandidateJobFilterNames.Email_Address)\r\n let regex = new RegExp('[a-z0-9]+@[a-z]+.[a-z]{2,3}')\r\n if (regex.test(this.candidateEmailSearchText)) {\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n } else {\r\n this.notifyService.showWarning('Enter valid Email', 'Candidate Search')\r\n this.candidateEmailSearchText = ''\r\n }\r\n }\r\n if (filter.has(CandidateJobFilterNames.Job_ID)) {\r\n this.candidateSearchJobId = ''\r\n this.candidateSearchJobId = filter.get(CandidateJobFilterNames.Job_ID)\r\n let regex = new RegExp('^[0-9]*$')\r\n if (regex.test(this.candidateSearchJobId)) {\r\n this.jobTitlesSelected.push(Number(this.candidateSearchJobId.toString()))\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n } else {\r\n this.notifyService.showWarning('Enter valid Job Id', 'Candidate Search')\r\n this.candidateSearchJobId = ''\r\n }\r\n }\r\n if (filter.has(CandidateJobFilterNames.Vendors)) {\r\n this.candidateVenderSearchText = ''\r\n this.candidateVenderSearchText = filter.get(CandidateJobFilterNames.Vendors)\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n }\r\n },\r\n })\r\n this.observableService.candidateJobFilterValueChanged$.pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateJobFilterNames.Job_Title)) {\r\n this.jobTitlesSelected = []\r\n this.jobTitlesSelected = filter.get(CandidateJobFilterNames.Job_Title)\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n if (filter.has(CandidateJobFilterNames.Customers)) {\r\n this.customersSelected = []\r\n this.customersSelected = filter.get(CandidateJobFilterNames.Customers)\r\n if (this.customersSelected.length === 0) {\r\n this.candidateJobStatusOptions.forEach((item) => {\r\n if (item.name === CandidateJobFilterNames.Customer_Contact) {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n item.options = []\r\n item.originalOptions = []\r\n }\r\n })\r\n } else {\r\n this.jobService\r\n .getCompanyContacts(this.customersSelected[this.customersSelected.length - 1])\r\n .subscribe((contact: Contact[]) => {\r\n this.candidateJobStatusOptions.forEach((item) => {\r\n switch (item.name) {\r\n case CandidateJobFilterNames.Customer_Contact: {\r\n item.options = []\r\n item.options = this.getCustomerContactOption(contact)\r\n item.originalOptions = this.getCustomerContactOption(contact)\r\n }\r\n }\r\n })\r\n })\r\n }\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n if (filter.has(CandidateJobFilterNames.USER)) {\r\n this.recruiterSelected = []\r\n this.recruiterSelected = filter.get(CandidateJobFilterNames.USER)\r\n this.getData()\r\n }\r\n if (filter.has(CandidateJobFilterNames.Customer_Contact)) {\r\n this.customersContactSelected = []\r\n this.customersContactSelected = filter.get(CandidateJobFilterNames.Customer_Contact)\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n }\r\n },\r\n })\r\n this.observableService.filterResetValueChanged$.pipe(takeUntil(this.destroy$)).subscribe((filterReset) => {\r\n this.resetFilters()\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n })\r\n }\r\n\r\n getJobTitleByID(jobID: number) {\r\n return this.jobTitleAllOptions.filter((item) => item.key == jobID)[0]?.value.trim()\r\n }\r\n\r\n getData() {\r\n this.isLoading = true\r\n this.searchCriteria = {\r\n ConsultantId: null,\r\n JobId: this.candidateSearchJobId.length != 0 ? this.candidateSearchJobId : '',\r\n JobTypeId: '',\r\n EmailAddress: this.candidateEmailSearchText ? this.candidateEmailSearchText : null,\r\n CandidateName: this.candidateSearchText ? this.candidateSearchText : null,\r\n CandidateType: null,\r\n CandidateTypeId: '',\r\n CandidateStatusId: this.selectedStatusId ? this.selectedStatusId : '',\r\n PostedFrom: null,\r\n PostedTo: null,\r\n CandidateTitle:\r\n this.jobTitlesSelected.length > 0\r\n ? this.jobTitlesSelected.map((x) => this.getJobTitleByID(x)).join(',')\r\n : '',\r\n RecruiterId: this.recruiterSelected?.length != 0 ? this.recruiterSelected?.map(Number).join(',') : '',\r\n City: null,\r\n StateCode: null,\r\n Zipcode: 0,\r\n LegalStatus: null,\r\n UserId: null,\r\n LastUpdated: null,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.pageSize,\r\n SearchText: this.candidateSearchText ? this.candidateSearchText : '',\r\n LegalTypeId: null,\r\n ClientContactId: this.customersContactSelected.length != 0 ? this.customersContactSelected.join(',') : null,\r\n ClientCompanyId: this.customersSelected.length != 0 ? this.customersSelected.join(',') : null,\r\n VendorCompanyId: this.candidateVenderSearchText ? this.candidateVenderSearchText : null,\r\n JobTitle:\r\n this.jobTitlesSelected.length > 0\r\n ? this.jobTitlesSelected.map((x) => this.getJobTitleByID(x)).join(',')\r\n : '',\r\n }\r\n this.jobService\r\n .getConsultantJobStatusList(this.searchCriteria)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (candidateList: iConsultantJob[]) => {\r\n this.isLoading = false\r\n if (candidateList && candidateList.length > 0) {\r\n this.totalLength = candidateList[0]?.TotalCount // Update total length\r\n this.hasMoreData = this.candidateList.length < this.totalLength\r\n if (this.hasMoreData) {\r\n this.pageNumber++\r\n // this.isScrolled=false\r\n } else {\r\n this.notifyService.showInfo(\r\n 'You have reached the end of the candidate job status list',\r\n 'Candidate List'\r\n )\r\n }\r\n this.candidateList = [...this.candidateList, ...candidateList]\r\n this.candidateDataSource.data = this.candidateList\r\n this.candidateDataSource = new TableVirtualScrollDataSource(this.candidateList)\r\n }\r\n // this.candidateList = [...candidateList]\r\n // this.candidateDataSource = new MatTableDataSource(candidateList)\r\n // if (candidateList.length === 0) {\r\n // this.totalLength = 0\r\n // } else this.totalLength = candidateList[0].TotalCount\r\n },\r\n (error) => {\r\n this.isLoading = false\r\n }\r\n )\r\n }\r\n\r\n onAddCandidate() {\r\n Common.activeConsultantJob = null\r\n Common.activeConsultant = null\r\n Common.activeJob = null\r\n this.router.navigate(['candidates/add'])\r\n }\r\n\r\n getJobTitleOptions(allOptions): Option[] {\r\n let options: Option[] = []\r\n allOptions?.forEach((item) => {\r\n options.push({ key: item.JobTitleID, value: item.JobTitleName })\r\n })\r\n this.jobTitleAllOptions = options\r\n return options\r\n }\r\n\r\n getRecruiters() {\r\n return this.jobService.GetRecruiterByRoleId(\r\n Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager\r\n )\r\n }\r\n\r\n getRecruiterOptions(allOptions: any): Option[] {\r\n let recruiterOption: Option[] = []\r\n allOptions?.forEach((item) => {\r\n recruiterOption.push({ key: item.UserID, value: item.FirstName + ' | ' + item.UserName })\r\n })\r\n return recruiterOption\r\n }\r\n\r\n getCustomersOptions(allOptions: iCompany[]): Option[] {\r\n let customerOption: Option[] = []\r\n allOptions?.forEach((item) => {\r\n customerOption.push({ key: item.CompanyId, value: item.Name })\r\n })\r\n this.customerList = customerOption\r\n return customerOption\r\n }\r\n\r\n getCustomerContactOption(allOptions: Contact[]): Option[] {\r\n let contacts: Option[] = []\r\n allOptions?.forEach((item) => {\r\n contacts.push({ key: item.ContactID, value: item.FirstName + ' ' + item.LastName })\r\n })\r\n return contacts\r\n }\r\n\r\n getFilterOption() {\r\n forkJoin({\r\n jobTitle: this.jobService.getJobTitles(''),\r\n recruiter: this.getRecruiters(),\r\n customers: this.jobService.getClients(),\r\n }).subscribe(({ jobTitle, recruiter, customers }) => {\r\n this.candidateJobStatusOptions.forEach((item) => {\r\n \r\n switch (item.name) {\r\n case CandidateJobFilterNames.Job_Title: {\r\n item.options = []\r\n item.options = this.getJobTitleOptions(jobTitle)\r\n item.originalOptions = this.getJobTitleOptions(jobTitle)\r\n break\r\n }\r\n case CandidateJobFilterNames.USER: {\r\n item.options = []\r\n item.isDisabled = this._isUserIsAdmin()\r\n item.options = this.getRecruiterOptions(recruiter)\r\n item.originalOptions = this.getRecruiterOptions(recruiter)\r\n break\r\n }\r\n case CandidateJobFilterNames.Recruiter: {\r\n item.options = []\r\n item.isDisabled = this._isUserIsAdmin()\r\n item.options = this.getRecruiterOptions(recruiter)\r\n item.originalOptions = this.getRecruiterOptions(recruiter)\r\n break\r\n }\r\n case CandidateJobFilterNames.Customers: {\r\n item.options = []\r\n item.options = this.getCustomersOptions(customers as iCompany[])\r\n item.originalOptions = this.getCustomersOptions(customers as iCompany[])\r\n break\r\n }\r\n }\r\n })\r\n })\r\n }\r\n\r\n isStatusChecked(status) {\r\n return this.statusFilterArray.includes(status)\r\n }\r\n\r\n statusSelectedNames(statusArray) {\r\n let nameArray = statusArray.map((status) => status.StatusName)\r\n this.statusNameArray = nameArray\r\n }\r\n\r\n statusChangeFilter(status) {\r\n if (this.statusFilterArray.includes(status)) {\r\n const i = this.statusFilterArray.indexOf(status)\r\n this.statusFilterArray.splice(i, 1)\r\n } else {\r\n this.statusFilterArray.push(status)\r\n }\r\n if (this.statusFilterArray.length > 0) {\r\n this.selectedStatusId = this.statusFilterArray.map((status) => status?.StatusID.toString()).join(', ')\r\n } else {\r\n this.selectedStatusId = ''\r\n }\r\n this.statusSelectedNames(this.statusFilterArray)\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n\r\n changePage(event) {\r\n this.pageSize = event.pageSize\r\n this.pageNumber = event.pageIndex + 1\r\n this.getData()\r\n }\r\n\r\n announceSortChange(sortState: Sort) {\r\n if (sortState.direction) {\r\n this.sortField = sortState.active\r\n this.sortOrder = sortState.direction\r\n this.pageNumber = 1\r\n this.candidateList = []\r\n this.getData()\r\n }\r\n }\r\n\r\n jobTypeConvertor(jobTypeId: number) {\r\n switch (jobTypeId) {\r\n case Common.enumJobContractType.JT_C2C:\r\n return JobType.Contract\r\n case Common.enumJobContractType.JT_C2H:\r\n return JobType.ContractToHire\r\n case Common.enumJobContractType.JT_PERM:\r\n return JobType.Permanent\r\n }\r\n }\r\n\r\n jobTitleChangesSubscriber() {\r\n this.observableService.jobTitleUpdatedFilterValueChanged$\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n filter((titles) => titles.length != 0)\r\n )\r\n .subscribe((titles: Option[]) => {\r\n this.jobTitleAllOptions = titles\r\n })\r\n }\r\n\r\n private _isUserIsAdmin(): boolean {\r\n const USER_INFO = this.authService?.userInfo\r\n return !USER_INFO.roles.filter((role) => {\r\n if (ADMIN_ROLES_LIST.includes(role.code)) return role\r\n }).length\r\n }\r\n onScroll(event: any): void {\r\n const scrollTop = event.target.scrollTop\r\n const scrollHeight = event.target.scrollHeight\r\n const clientHeight = event.target.clientHeight\r\n const isScrollingDown = scrollTop > this.lastScrollTop\r\n this.lastScrollTop = scrollTop\r\n\r\n if (isScrollingDown) {\r\n if (scrollTop + clientHeight >= scrollHeight - 250) {\r\n if (!this.isLoading && this.hasMoreData) {\r\n this.getData()\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n Showing {{candidateList?.length}}/{{ totalLength | number }} Candidate(s) Results\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Selected Status: \r\n {{ statusNameArray.join(', ') }}\r\n \r\n
\r\n \r\n Select Status\r\n {{\r\n this.trigger.menuOpen ? 'expand_less' : 'expand_more'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n add Add Candidate\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"consultant-table-container\"\r\n [ngClass]=\"{ 'overflow-x-hidden': expand.value }\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Candidate Name\r\n \r\n
\r\n \r\n {{ element?.ConsultantName }}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n Type\r\n \r\n {{ element?.ConsultantType | nullValueReplace }} \r\n \r\n \r\n\r\n \r\n Job, Contact\r\n \r\n
\r\n
\r\n {{ element?.JobID }} - {{ element?.JobTitleName }}\r\n
\r\n
\r\n {{ element?.ClientContactName\r\n }},\r\n {{ element?.ClientName }}\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n Job Type\r\n \r\n {{ jobTypeConvertor(element?.JobTypeID) }}\r\n \r\n \r\n\r\n \r\n Client Rate\r\n \r\n ${{\r\n element?.BillRate\r\n ? (element?.BillRate | number : '1.2-2')\r\n : (element?.BillRate | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Pay Rate/Annual Salary\r\n \r\n \r\n ${{\r\n element?.Salary\r\n ? (element?.Salary | number : '1.2-2')\r\n : (element?.Salary | nullValueReplace)\r\n }}\r\n \r\n ${{\r\n element?.PayRate\r\n ? (element?.PayRate | number : '1.2-2')\r\n : (element?.PayRate | nullValueReplace)\r\n }}\r\n \r\n ${{\r\n element?.PayRate\r\n ? (element?.PayRate | number : '1.2-2')\r\n : (element?.PayRate | nullValueReplace)\r\n }}\r\n |\r\n {{ element?.Salary ? (element?.Salary | number : '1.2-2') : '' }}\r\n \r\n \r\n \r\n\r\n \r\n Margin\r\n \r\n ${{\r\n element?.Margin\r\n ? (element?.Margin | number : '1.2-2')\r\n : (element?.Margin | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n Status\r\n \r\n {{ element?.ConsultantJobStatus }} \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n Recruiter\r\n \r\n
\r\n {{ element?.RecruiterName }} \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
No candidate were found matching your search
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewEncapsulation, TemplateRef } from '@angular/core'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iConsultantJob, ConsultantType } from 'src/app/models/consultant.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { iConsultant } from 'src/app/models/consultant.model'\r\nimport { iDbResult, iMenuItem } from 'src/app/models/common.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { InterviewDialogComponent } from 'src/app/shared/interview-dialog/interview-dialog.component'\r\nimport { Subscription } from 'rxjs'\r\nimport { animate, state, style, transition, trigger } from '@angular/animations'\r\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { HttpResponse } from '@angular/common/http'\r\nimport { Chart, registerables } from 'chart.js'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { iCompanyVendor } from 'src/app/models/company.model'\r\nimport { CANDIDATE_EDIT_ACTION } from 'src/app/enums/userActions'\r\nexport interface DialogData {\r\n consultantjob: iConsultantJob\r\n menu: iMenuItem\r\n}\r\nexport interface User {\r\n UserID: number\r\n UserName: string\r\n}\r\nexport interface Contact {\r\n ContactID: number\r\n ContactName: string\r\n}\r\nexport class ImageModel {\r\n base64Image: any\r\n imageName: string\r\n fileName: string\r\n objectId: Number\r\n}\r\n// @Component({\r\n// selector: 'consultant-jobs',\r\n// templateUrl: './consultant-jobs.component.html',\r\n// styleUrls: ['./consultant-jobs.component.scss'],\r\n// animations: [\r\n// trigger('detailExpand', [\r\n// state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n// state('expanded', style({ height: '*' })),\r\n// transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n// ]),\r\n// ],\r\n// })\r\n@Component({\r\n selector: 'consultant-jobs',\r\n templateUrl: './consultant-jobs.component.html',\r\n styleUrls: ['./consultant-jobs.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class ConsultantJobsComponent implements OnInit {\r\n // @Input() consultantSource: any;\r\n @Input() changeData\r\n toolBarItems: iMenuItem[]\r\n menu: iMenuItem\r\n jobConsultants: iConsultantJob[]\r\n consultantjob: iConsultantJob\r\n consulantant: iConsultant = {}\r\n public loading = false\r\n dataSource: MatTableDataSource | null\r\n selectedReasonId: number\r\n selectedReason: string\r\n isTableExpanded = false\r\n dataJobCandidateList = new MatTableDataSource()\r\n displayedJobCandidateColumns: string[] = [\r\n 'JobTitleName',\r\n 'BillRate',\r\n 'PayRate',\r\n 'Salary',\r\n 'Margin',\r\n 'RecruiterName',\r\n 'ConsultantJobStatus',\r\n 'actions',\r\n ] //['id', 'name', 'age', 'address', 'actions'];\r\n jobView: FormGroup\r\n companyVendorID: number\r\n vendorContactId: number\r\n consultantTypeId: number\r\n recruiterId: number\r\n recruiters: User[]\r\n consultantTypes: ConsultantType[]\r\n editMode: boolean = false\r\n loadVendorView: boolean = false\r\n jobsArray = [1, 2, 3, 4]\r\n companies: any = []\r\n contacts: any = []\r\n rChart: any\r\n statusFilterArray: any[] = []\r\n minimumPayrate: number = 7.25\r\n payRange: Boolean\r\n job: iJob = {}\r\n imgUrl = 'assets/img/Leap-Tiger_Icons/Candidate-Module-Icon/'\r\n noLogoFilePath: string = 'assets/img/Leap-Tiger_Icons/card-icons/No-image.svg'\r\n baseFilePath: Promise\r\n candidateEditAction = CANDIDATE_EDIT_ACTION\r\n recruiStatus: any = {\r\n Shortlisted: this.imgUrl + 'Shortlist.svg',\r\n 'Approval pending': this.imgUrl + 'Approval Pending.svg',\r\n Approved: this.imgUrl + 'Approved.svg',\r\n Submitted: this.imgUrl + 'Submit.svg',\r\n Submit: this.imgUrl + 'Submit.svg',\r\n 'Interview Schedule': this.imgUrl + 'Interview Schedule.svg',\r\n 'On Hold': this.imgUrl + 'On Hold.svg',\r\n Reject: this.imgUrl + 'Reject.svg',\r\n Rejected: this.imgUrl + 'Reject.svg',\r\n Terminate: this.imgUrl + 'Reject.svg',\r\n Withdraw: this.imgUrl + 'Withdraw.svg',\r\n Withdrew: this.imgUrl + 'Withdraw.svg',\r\n Hired: this.imgUrl + 'Hired.svg',\r\n Onboarding: this.imgUrl + 'Onboarding.svg',\r\n }\r\n\r\n profileCardMenu: any = [\r\n { name: 'View Job', img: this.imgUrl + 'View Job.svg' },\r\n { name: 'Assign Job', img: this.imgUrl + 'Assign Job.svg' },\r\n { name: 'Delete', img: this.imgUrl + 'Delete.svg' },\r\n ]\r\n\r\n @Input() consultantSource: any\r\n @Output() jobViewActiveTab: EventEmitter = new EventEmitter()\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public dialog: MatDialog,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private notifyService: NotificationService,\r\n private consultantService: ConsultantService,\r\n private jobService: JobService\r\n ) {\r\n Chart.register(...registerables)\r\n this.jobView = this.formBuilder.group({\r\n ClientRate: [null, Validators.required],\r\n PayRate: [null],\r\n Salary: [null],\r\n ConsultantTypeId: [null, Validators.required],\r\n CompanyName: [null, Validators.required],\r\n CompanyContact: [null, Validators.required],\r\n RecruiterId: [null, Validators.required],\r\n })\r\n }\r\n private subscription: Subscription\r\n toggleTableRows() {\r\n this.isTableExpanded = !this.isTableExpanded\r\n\r\n this.dataJobCandidateList.data.forEach((row: any) => {\r\n row.isExpanded = this.isTableExpanded\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData.subscribe((messageConsultantView) => {\r\n this.toolBarItems = this.commonService.menuItems\r\n this.statusFilterArray = this.toolBarItems\r\n .map((item) => item.MenuName)\r\n .filter((item, index, arr) => arr.indexOf(item) === index)\r\n .sort()\r\n if (Common.activeConsultant != null) {\r\n this.consulantant = Common.activeConsultant\r\n this.loadConsultantJobs(Common.activeConsultant.ConsultantId, this.authService.userInfo.userID)\r\n }\r\n })\r\n this.baseFilePath = this.commonService.getAppSettings().then((data) => {\r\n this.baseFilePath = data.filePath\r\n })\r\n }\r\n isValidConsultantJobData(): boolean {\r\n if (this.consultantjob.ConsultantTypeID <= 0) {\r\n this.notifyService.showError('Employment Type is required', 'Consultant Job')\r\n return false\r\n }\r\n\r\n if (\r\n this.consultantjob.ConsultantTypeID == Common.enumConsultantType.CAN_C2C ||\r\n this.consultantjob.ConsultantTypeID == Common.enumConsultantType.CAN_C2O\r\n ) {\r\n if (this.consultantjob.VendorContactID <= 0) {\r\n this.notifyService.showError('Vendor contact is required ', 'Consultant Job')\r\n return false\r\n }\r\n if (this.consultantjob.VendorName == '') {\r\n this.notifyService.showError('Vendor is required ', 'Consultant Job')\r\n return false\r\n }\r\n }\r\n if (this.consultantjob.BillRate <= 0) {\r\n this.notifyService.showError('Bill Rate is required', 'Consultant Job')\r\n return false\r\n }\r\n if (this.consultantjob.PayRate <= 0) {\r\n this.notifyService.showError('Pay Rate is required', 'Consultant Job')\r\n return false\r\n }\r\n return true\r\n }\r\n openStatusChange(consultatjob, mnuItem) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n this.consultantjob = consultatjob\r\n Common.activeConsultantJob = consultatjob\r\n\r\n if (this.isValidConsultantJobData() == false) {\r\n this.loadConsultantJobs(Common.activeConsultant.ConsultantId, this.authService.userInfo.userID)\r\n return\r\n }\r\n let dialogRef\r\n if (this.menu.MenuCode == 'CON_JOB_INTRVW SCHEDUNG' || this.menu.MenuCode == 'CON_JOB_INTVW_ANOTHER') {\r\n dialogRef = this.dialog.open(InterviewDialogComponent, {\r\n width: '650px',\r\n height: '79vh',\r\n data: { consultantjob: this.consultantjob, menu: this.menu },\r\n })\r\n } else {\r\n dialogRef = this.dialog.open(ActionDialogComponent, {\r\n width: '400px',\r\n data: { consultantjob: this.consultantjob, menu: this.menu },\r\n })\r\n }\r\n // const dialogRef = this.dialog.open(ActionDialogComponent, {\r\n // width: '250px',\r\n // data: {consultantjob: this.consultantjob , menu: this.menu},\r\n // });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == null || result == undefined) {\r\n this.loadConsultantJobs(Common.activeConsultant.ConsultantId, this.authService.userInfo.userID)\r\n } else {\r\n if (this.menu.MenuCode == 'CON_JOB_INTRVW SCHEDUNG' || this.menu.MenuCode == 'CON_JOB_INTVW_ANOTHER') {\r\n this.jobViewActiveTab.emit(3)\r\n return\r\n } else if (this.menu.MenuCode == 'CON_JOB_SUBMITTED') {\r\n this.consultantService\r\n .getConsultantJobSkill(\r\n Common.activeConsultantJob.ConsultantID,\r\n Common.activeConsultantJob.JobID\r\n )\r\n .subscribe((res) => {\r\n if (res != null) {\r\n this.generateGraph(res)\r\n } else {\r\n }\r\n ;(this.loading = false),\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n })\r\n return\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n this.updateProcessWorkFlow()\r\n }\r\n }\r\n })\r\n }\r\n loadConsultantJobs(consultantId, userid) {\r\n this.loading = true\r\n this.consultantService.GetConsultantJobs(consultantId, userid).subscribe(\r\n (jclst) => {\r\n this.jobConsultants = jclst as iConsultantJob[]\r\n this.dataSource = new MatTableDataSource()\r\n this.dataSource.data = this.jobConsultants\r\n\r\n this.dataJobCandidateList.data = this.jobConsultants\r\n\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n onSelectedReason(e) {\r\n this.selectedReasonId = e.target.value\r\n this.selectedReason = e.target.options[e.target.options.selectedIndex].text\r\n }\r\n updateProcessWorkFlow() {\r\n var ljob: iConsultantJob = Common.activeConsultantJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n let comment = this.selectedReasonId\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : this.menu.MenuName\r\n this.loading = true\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .subscribe((result) => {\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n this.loading = false\r\n this.commonService.setActiveObject(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(this.menu)\r\n\r\n Common.activeConsultantJob.ConsultantJobStatus = this.menu.MenuName\r\n this.loadConsultantJobs(Common.activeConsultant.ConsultantId, this.authService.userInfo.userID)\r\n this.notifyService.showSuccess(\r\n 'Consultant Job status successfully changed to ' + Common.activeConsultantJob.ConsultantJobStatus,\r\n 'Consultant Job'\r\n )\r\n })\r\n }\r\n\r\n // onEditJobclick(jc) {\r\n\r\n // this.consultantjob = jc;\r\n // this.jobView.get('ClientRate').setValue(this.consultantjob.BillRate);\r\n // this.jobView.get('PayRate').setValue(this.consultantjob.PayRate);\r\n // this.jobView.get('Salary').setValue(this.consultantjob.Salary);\r\n // this.jobView.get('CompanyName').setValue(this.consultantjob.VendorName);\r\n // this.jobView.get('CompanyContact').setValue(this.consultantjob.VendorContactName);\r\n // this.jobView.get('RecruiterId').setValue(this.consultantjob.RecruiterId);\r\n // this.jobView.get('ConsultantTypeId').setValue(this.consultantjob.ConsultantTypeID);\r\n // this.vendorContactId = this.consultantjob.VendorContactID;\r\n // this.companyVendorID = this.consultantjob.CompanyVendorID;\r\n // // this.ConsulatantService.GetConsultantJobInfo(consulantjobId,Common.userProfile.UserID).\r\n // // subscribe((res) => {\r\n // // this.consultantjob = res as iConsultantJob;\r\n // // }\r\n // // );\r\n\r\n // this.getRecruiters();\r\n // this.consultantService.getLookup(\"ConsultantTypelD\").subscribe((res) => {\r\n // this.consultantTypes = res as ConsultantType[];\r\n // this.toggleConsultantJobDetails();\r\n // });\r\n\r\n // }\r\n\r\n onSelectedComapny(company) {\r\n this.companyVendorID = company.CompanyVendorID\r\n this.companyChangeAction(company.CompanyID)\r\n this.vendorContactId = 0\r\n this.jobView.get('CompanyContact').setValue('')\r\n }\r\n onCompanyKeyPressed(event: KeyboardEvent): void {\r\n this.companyVendorID = 0\r\n }\r\n onContactKeyPressed(event: KeyboardEvent): void {\r\n this.vendorContactId = 0\r\n }\r\n onSelectedContact(contact) {\r\n this.vendorContactId = contact.ContactID\r\n }\r\n companyChangeAction(selectedValue) {\r\n this.consultantService.getCompanyContacts(selectedValue).subscribe((res) => {\r\n this.contacts = res as Contact[]\r\n })\r\n }\r\n getRecruiters() {\r\n //let para = {RoleId: Common.enumUserRoles.Recruiter,UserId: this.authService.userInfo.userID,}\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .subscribe((res) => {\r\n this.recruiters = res as User[]\r\n })\r\n }\r\n onInterviewclick() {}\r\n onCancelJobclick() {\r\n this.toggleConsultantJobDetails()\r\n this.dialog.closeAll()\r\n }\r\n toggleConsultantJobDetails() {\r\n this.editMode = !this.editMode\r\n }\r\n updateConsultantJob() {\r\n this.consultantjob.PayRate = Number(\r\n this.jobView.get('PayRate').value == '' ? 0 : this.jobView.get('PayRate').value\r\n )\r\n this.consultantjob.BillRate = Number(\r\n this.jobView.get('ClientRate').value == '' ? 0 : this.jobView.get('ClientRate').value\r\n )\r\n this.consultantjob.Salary = Number(\r\n this.jobView.get('Salary').value == '' ? 0 : this.jobView.get('Salary').value\r\n )\r\n this.consultantjob.CreatedDate = new Date()\r\n this.consultantjob.CreatedBy = this.authService.userInfo.userID\r\n this.consultantjob.IsActive = true\r\n this.consultantjob.CompanyVendorID = this.companyVendorID == undefined ? 0 : this.companyVendorID\r\n this.consultantjob.VendorContactID = this.vendorContactId == undefined ? 0 : this.vendorContactId\r\n this.consultantjob.ConsultantTypeID = Number(\r\n this.jobView.get('ConsultantTypeId').value == '' ? 0 : this.jobView.get('ConsultantTypeId').value\r\n )\r\n this.consultantjob.RecruiterId = Number(\r\n this.jobView.get('RecruiterId').value == '' ? 0 : this.jobView.get('RecruiterId').value\r\n )\r\n this.consultantService.saveConsultantJob(this.consultantjob).subscribe((cjResult) => {\r\n if (cjResult) {\r\n this.loadConsultantJobs(Common.activeConsultant.ConsultantId, this.authService.userInfo.userID)\r\n this.toggleConsultantJobDetails()\r\n this.dialog.closeAll()\r\n this.notifyService.showSuccess('successfully saved.', 'Candidate Job Details')\r\n }\r\n })\r\n }\r\n generateGraph(data) {\r\n try {\r\n this.loading = true\r\n var jobData = data.map((x) => x.JobExperience)\r\n var candidateData = data.map((x) => x.CandidateExperience)\r\n var label = data.map((x) => x.SkillName)\r\n\r\n const backgroundcolor = []\r\n const labels = ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange', 'Black', 'Brown', 'New']\r\n let i\r\n for (i = 0; i < labels.length; i++) {\r\n const r = Math.floor(Math.random() * 255)\r\n const g = Math.floor(Math.random() * 255)\r\n const b = Math.floor(Math.random() * 255)\r\n backgroundcolor.push('rgba(' + r + ',' + g + ',' + b + ',0.0)')\r\n }\r\n\r\n var canvas: any = document.getElementById('myChart')\r\n Chart.defaults.font.family = 'arial'\r\n Chart.defaults.font.size = 20\r\n Chart.defaults.color = 'black'\r\n Chart.defaults.plugins.legend.position = 'bottom'\r\n //chart code\r\n var marksData = {\r\n labels: label,\r\n position: 'bottom',\r\n datasets: [\r\n {\r\n data: jobData,\r\n label: 'Job Experience',\r\n fills: false,\r\n borderWidth: 2,\r\n backgroundColor: backgroundcolor,\r\n strokeColor: 'rgba(253,253,253,255)',\r\n borderColor: 'rgba(63,122,162,255)',\r\n fillColor: 'rgba(151,187,205,0.2)',\r\n\r\n pointBackgroundColor: '#fff',\r\n pointRadius: 2,\r\n pointHitRadius: 2,\r\n pointBorderWidth: 1,\r\n pointBorderColor: 'rgba(63,122,162,255)',\r\n pointStyle: 'circle',\r\n legend: {\r\n backgroundColor: 'rgba(253,253,253,255)',\r\n strokeColor: 'rgba(253,253,253,255)',\r\n borderColor: 'rgba(63,122,162,255)',\r\n fillColor: 'rgba(151,187,205,0.2)',\r\n },\r\n },\r\n {\r\n data: candidateData,\r\n label: 'Candidate Experience',\r\n fills: false,\r\n borderWidth: 2,\r\n backgroundColor: backgroundcolor,\r\n\r\n strokeColor: 'rgba(151,187,205,1)',\r\n borderColor: 'rgba(200,0,0,0.6)',\r\n pointBackgroundColor: '#fff',\r\n pointRadius: 2,\r\n pointHitRadius: 2,\r\n pointBorderWidth: 1,\r\n pointBorderColor: 'rgba(200,0,0,0.6)',\r\n pointStyle: 'circle',\r\n },\r\n ],\r\n }\r\n\r\n var options = {\r\n scaleOverride: true,\r\n scaleStepWidth: 1,\r\n scaleStartValue: 0,\r\n legend: { position: 'bottom' },\r\n backgroundColor: '#cccccc',\r\n plugins: {\r\n title: {\r\n display: false,\r\n text: 'CAPABILITY ANALYSIS',\r\n color: '#F93',\r\n height: 30,\r\n },\r\n legend: {\r\n display: true,\r\n labels: {\r\n color: 'black',\r\n // This more specific font property overrides the global property\r\n font: {\r\n size: 10,\r\n },\r\n },\r\n },\r\n },\r\n\r\n scaleLineWidth: 16,\r\n scaleLineColor: '#EEEEEE',\r\n responsive: false,\r\n maintainAspectRatio: true,\r\n scales: {\r\n r: {\r\n pointLabels: {\r\n display: true, // Hides the labels around the radar chart\r\n },\r\n\r\n ticks: {\r\n beginAtZero: true,\r\n min: 1,\r\n max: 10,\r\n stepSize: 4,\r\n font: {\r\n size: 0,\r\n },\r\n },\r\n },\r\n },\r\n }\r\n\r\n // this.rChart = new Chart(canvas, {\r\n // type: 'radar',\r\n // data: marksData,\r\n // options: options\r\n // });\r\n\r\n requestAnimationFrame(() => {\r\n setTimeout(() => {\r\n // At this point, the page rendering has been updated with the\r\n // `drawImage` result (or a later frame's result, see below).\r\n this.loading = false\r\n this.saveCanvasImage()\r\n }, 2000)\r\n })\r\n } catch (ex) {\r\n this.loading = false\r\n this.notifyService.showError('unable to create graph: ' + ex, 'Chart Generation')\r\n }\r\n }\r\n\r\n saveCanvasImage() {\r\n this.loading = true\r\n var imgData = new ImageModel()\r\n const base64Canvas = document.getElementsByTagName('canvas')[0].toDataURL('image/png').split(';base64,')[1]\r\n imgData.base64Image = base64Canvas\r\n imgData.objectId = Common.activeConsultantJob.ConsultantJobID\r\n imgData.fileName = imgData.objectId.toString() + '.png'\r\n imgData.imageName = imgData.objectId.toString() + '.png'\r\n\r\n this.consultantService.uploadConsultantJobChart(imgData).subscribe(\r\n (res) => {\r\n if (res instanceof HttpResponse) {\r\n var fileId = res.body['FileId']\r\n if (fileId) {\r\n this.updateProcessWorkFlow()\r\n this.rChart.destroy()\r\n }\r\n }\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('unable to save graph: ' + err, 'SaveCanvasImage')\r\n }\r\n )\r\n }\r\n\r\n editCandidateHandler(rowData, templateRef: TemplateRef) {\r\n this.bindConsultantJobDetails(rowData, templateRef)\r\n }\r\n bindConsultantJobDetails(jc, templateRef) {\r\n this.consultantjob = jc\r\n this.jobView.get('ClientRate').setValue(this.consultantjob.BillRate)\r\n this.jobView.get('PayRate').setValue(this.consultantjob.PayRate)\r\n this.jobView.get('Salary').setValue(this.consultantjob.Salary)\r\n this.jobView.get('CompanyName').setValue(this.consultantjob.VendorName)\r\n this.jobView.get('CompanyContact').setValue(this.consultantjob.VendorContactName)\r\n this.jobView.get('RecruiterId').setValue(this.consultantjob.RecruiterId)\r\n\r\n this.vendorContactId = this.consultantjob.VendorContactID\r\n this.companyVendorID = this.consultantjob.CompanyVendorID\r\n this.minimumPayrate = this.getMinimumPayRate(\r\n this.consultantjob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n this.consultantjob.ConsultantTypeID,\r\n this.consultantjob.BillRate,\r\n this.consultantjob.PayRate\r\n )\r\n this.getRecruiters()\r\n this.consultantService.getLookup('ConsultantTypelD').subscribe((res) => {\r\n this.consultantTypes = res as ConsultantType[]\r\n this.jobView.get('ConsultantTypeId').setValue(this.consultantjob.ConsultantTypeID)\r\n this.contractTypeChange(this.consultantjob.ConsultantTypeID)\r\n })\r\n this.jobService.getJob(this.consultantjob.JobID).subscribe((res) => {\r\n this.job = res\r\n\r\n this.toggleConsultantJobDetails()\r\n this.dialog.open(templateRef, {})\r\n })\r\n }\r\n onRateKeyPressed() {\r\n //this.getMinimumPayRate(this.job.CompanyId,this.consultantjob.ConsultantTypeID,this.consultantjob.PayRate)\r\n var ClientRate = Number(this.jobView.get('ClientRate').value == '' ? 0 : this.jobView.get('ClientRate').value)\r\n var PayRate = Number(this.jobView.get('PayRate').value == '' ? 0 : this.jobView.get('PayRate').value)\r\n var consultantTypeID = Number(\r\n this.jobView.get('ConsultantTypeId').value == '' ? 0 : this.jobView.get('ConsultantTypeId').value\r\n )\r\n this.minimumPayrate = this.getMinimumPayRate(\r\n this.consultantjob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n consultantTypeID,\r\n ClientRate,\r\n PayRate\r\n )\r\n }\r\n getMinimumPayRate(companyId, jobCategoryId, consultantTypeId, billRate, payrate) {\r\n var MarkupType\r\n var MarkupValue\r\n this.minimumPayrate = 0\r\n // var jobCategoryId = this.job.JobCategoryID\r\n // var billRate = Number(this.jobView.get('ClientRate').value == \"\" ? 0 : this.jobView.get('ClientRate').value)//;\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobcatsetting) => {\r\n if (jobcatsetting) {\r\n //A specific category\r\n var jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.length == 0) {\r\n jobCategoryId = 1312 // All - other category setting\r\n jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n }\r\n\r\n if (jc.indexOf(jobCategoryId) > -1) {\r\n //MarkupType = jobcatsetting.filter(option => option.CategoryID == jobCategoryId).map(x => x.MarkupType);\r\n\r\n if (Common.ConfigValues != null) {\r\n MarkupType = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 204 && //Markup Type\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n }\r\n\r\n if (consultantTypeId == Common.enumConsultantType.CAN_C2C) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_C2O) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_W2) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n }\r\n const factor = 10 ** 2\r\n var minPay = billRate / (1 + MarkupValue / 100)\r\n this.minimumPayrate = Math.round(minPay * factor) / factor\r\n if (MarkupType == 202) {\r\n //Max Markup\r\n //if the recruiter tries to enter a pay rate less than minimumPayrate, system should throw a validation\r\n // this.payRange ==true;\r\n if (payrate < this.minimumPayrate) {\r\n this.notifyService.showError(\r\n 'Payrate should be greatte than ' + this.minimumPayrate.toString(),\r\n 'Pay Rate'\r\n )\r\n this.payRange == true\r\n }\r\n } else if (MarkupType == 203) {\r\n //Goal_Markup\r\n //if the recruiter tries to enter a pay rate less than minimumPayrate, display as suggestion to recruiter (not required to throw validation error)\r\n //\r\n if (payrate < this.minimumPayrate) {\r\n this.notifyService.showInfo(\r\n 'Payrate should be greatte than ' + this.minimumPayrate.toString(),\r\n 'Pay Rate'\r\n )\r\n this.payRange == false\r\n }\r\n }\r\n this.jobView.controls['PayRate'].addValidators([\r\n Validators.required,\r\n Validators.min(this.minimumPayrate),\r\n ])\r\n this.jobView.get('PayRate').updateValueAndValidity()\r\n return isNaN(this.minimumPayrate) || this.minimumPayrate == undefined || this.minimumPayrate == null\r\n ? (this.minimumPayrate = 0)\r\n : this.minimumPayrate\r\n } else {\r\n this.minimumPayrate = 0\r\n }\r\n }\r\n })\r\n return isNaN(this.minimumPayrate) || this.minimumPayrate == undefined || this.minimumPayrate == null\r\n ? (this.minimumPayrate = 0)\r\n : this.minimumPayrate\r\n }\r\n contractTypeChange(selectedValue) {\r\n this.consultantTypeId = selectedValue\r\n\r\n if (selectedValue == Common.enumConsultantType.CAN_C2C || selectedValue == Common.enumConsultantType.CAN_C2O) {\r\n // Contract to Owner\r\n this.consultantService.getVendorCompany().subscribe((res) => {\r\n this.companies = res as iCompanyVendor[]\r\n })\r\n this.jobView.controls['CompanyName'].addValidators([Validators.required])\r\n this.jobView.controls['CompanyContact'].addValidators([Validators.required])\r\n this.jobView.get('CompanyName').updateValueAndValidity()\r\n this.jobView.get('CompanyContact').updateValueAndValidity()\r\n this.loadVendorView = true\r\n } else if (selectedValue == Common.enumConsultantType.CAN_W2) {\r\n // Permanent\r\n this.vendorContactId = 0\r\n this.companyVendorID = 0\r\n this.jobView.get('CompanyName').setValue('')\r\n this.jobView.get('CompanyContact').setValue('')\r\n this.loadVendorView = false\r\n\r\n this.jobView.controls['CompanyName'].clearValidators()\r\n this.jobView.controls['CompanyContact'].clearValidators()\r\n\r\n this.jobView.get('CompanyName').setErrors(null)\r\n this.jobView.get('CompanyName').updateValueAndValidity()\r\n\r\n this.jobView.get('CompanyContact').setErrors(null)\r\n this.jobView.get('CompanyContact').updateValueAndValidity()\r\n }\r\n this.minimumPayrate = this.getMinimumPayRate(\r\n this.consultantjob.ClientCompanyId,\r\n this.job.JobCategoryID,\r\n this.consultantTypeId,\r\n this.consultantjob.BillRate,\r\n this.consultantjob.PayRate\r\n )\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n Jobs\r\n
\r\n
\r\n \r\n Status Filter\r\n \r\n \r\n \r\n {{ status }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \"image\"\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{ job.JobTitleName }} \r\n {{ job.ClientName }}\r\n {{ job.LocationCity }}, {{ job.LocationState }}\r\n
\r\n\r\n \r\n \r\n Assigned by {{ job.RecruiterName }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ mnuItem.MenuName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Bill Rate: {{ job.BillRate | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}\r\n Pay rate: {{ job.PayRate | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}\r\n Salary: {{ job.Salary | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}\r\n Margin: {{ job.Margin | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n {{ stat.ConsultantJobStatus }}\r\n {{\r\n stat.UpdatedDate | date : 'dd/MM/yyyy hh:mm a'\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n \r\n
\r\n Jobs\r\n close\r\n
\r\n
\r\n \r\n
\r\n
\r\n Employment Type*\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Employment Type is Required\r\n \r\n \r\n
\r\n
\r\n Bill Rate*\r\n \r\n \r\n \r\n Bill Rate is Required\r\n \r\n \r\n
\r\n
\r\n Pay Rate (Minimum pay rate is ${{ minimumPayrate }})\r\n \r\n \r\n Minimum pay rate is ${{ minimumPayrate }}\r\n \r\n Minimum pay rate is ${{ minimumPayrate }} \r\n \r\n Pay rate is Required\r\n \r\n \r\n
\r\n
\r\n Annual Salary\r\n \r\n \r\n \r\n
\r\n
\r\n Recruiter*\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n Recruiter is Required\r\n \r\n \r\n
\r\n
\r\n Vendor*\r\n \r\n \r\n\r\n \r\n Vendor Name is Required\r\n \r\n \r\n \r\n {{ company.CompanyName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Contact*\r\n \r\n \r\n\r\n \r\n Vendor Contact is Required\r\n \r\n\r\n \r\n \r\n {{ contact.ContactName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n Update\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Common } from 'src/app/common/common';\r\nimport { iDbResult, iMenuItem, ActiveObject, iKeyValue } from 'src/app/models/common.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n@Pipe({\r\n name: 'ConsultantJobsFilter'\r\n})\r\n\r\nexport class ConsultantJobsFilterPipe implements PipeTransform {\r\n constructor(\r\n\r\n public authService: AuthenticationService,\r\n ) { }\r\n transform(items: iMenuItem[], element: any): any[] {\r\n if(!items) return [];\r\n if(!element) return items;\r\n//searchText = searchText.toLowerCase();\r\nvar astat\r\nvar statusName\r\n\r\n// if (element.ConsultantJobStatusID==16){\r\n// if ( Common.ConfigValues !=null){\r\n// //let ajob= Common.activeConsultantJob\r\n// var apvlReq = Common.ConfigValues.filter(option => option.ObjectTypeID == 1 \r\n// && option.ConfigTypeID ==161 //JobSettingTypeID\r\n// && option.LookupID ==153 //CandidateApprovalNeeded \r\n// && option.ObjectID == element.ClientCompanyId //companyID\r\n// ).map(x => x.Value).toString();\r\n\r\n// if (apvlReq==\"true\") {\r\n// astat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n// && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == element.ConsultantJobStatusID\r\n// && item.RoleID == this.authService.userInfo.roles[0].roleID\r\n// && item.MenuItemID != 40\r\n// ));\r\n \r\n// }\r\n// else{\r\n// astat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n// && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == element.ConsultantJobStatusID\r\n// && item.RoleID == this.authService.userInfo.roles[0].roleID\r\n// && item.MenuItemID != 38 ));\r\n// } \r\n// }\r\n// //statusID =18\r\n// }\r\n// else{\r\n// astat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n// && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == element.ConsultantJobStatusID\r\n// && item.RoleID == this.authService.userInfo.roles[0].roleID));\r\n \r\n// }\r\n//TO DO: uncomment above and remove below when we use approval pending\r\nastat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == element.ConsultantJobStatusID\r\n && item.RoleID == this.authService.userInfo.roles[0].roleID));\r\nif ( Common.wfStatus!=null){\r\n statusName = Common.wfStatus.find(a => a.StatusID ==element.ConsultantJobStatusID )?.Name;\r\n}\r\n\r\n\r\nastat.unshift({\r\n MenuID: -1,\r\n PageID: -1,\r\n ComponentID: 3,\r\n ComponentCode: null,\r\n ComponentName: null,\r\n ComponentDescription: null,\r\n MenuItemID: -1,\r\n MenuCode: element.ConsultantJobStatusID.toString(),\r\n MenuName:statusName,\r\n MenuDescription: null,\r\n MenuFunction: null,\r\n MenuUrl: null,\r\n MenuIcon: null,\r\n MenuTypeID: null,\r\n MenuType: null,\r\n ParentMenuItemID: null,\r\n RoleID: null,\r\n RoleCode: null,\r\n RoleName: null,\r\n RoleDescription: null,\r\n StatusID: element.ConsultantJobStatusID,\r\n StatusCode: null,\r\n StatusName: statusName,\r\n StatusDescription: null,\r\n }); \r\n \r\n return astat;\r\n }\r\n \r\n}","import { HttpResponse } from '@angular/common/http'\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core'\r\nimport { MatSort, Sort } from '@angular/material/sort'\r\nimport { Observable, ReplaySubject, Subject, Subscription, combineLatest, forkJoin } from 'rxjs'\r\nimport { filter, first, map, startWith, takeUntil, withLatestFrom } from 'rxjs/operators'\r\nimport { Common } from 'src/app/common/common'\r\nimport { TableColumn } from 'src/app/shared/core/interfaces/table-column.interface'\r\nimport { JobTypes as JobTypeIds } from 'src/app/enums/jobType'\r\nimport { JobTypes } from 'src/app/constants/jobType'\r\nimport { iConsultantSearch } from '../consultant-constants'\r\nimport { CandidateDataSource } from 'src/app/enums/candidateDataSource'\r\nimport { Filter, ModuleNames, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { FilterObject, iDbResult, iKeyValue, iMenuItem } from 'src/app/models/common.model'\r\nimport { iJob, iJobLegalType, iJobSkill, iJobTitle } from 'src/app/models/job.model'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { MatSidenav } from '@angular/material/sidenav'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { NavigationEnd, Router, ActivatedRoute, NavigationStart } from '@angular/router'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { GenericTypes } from 'src/app/Constants/genericType'\r\nimport { LegalTypes } from 'src/app/Constants/legalTypes'\r\nimport { AvailablityStatus } from 'src/app/enums/availablityStatus'\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs'\r\nimport { CandidateFilterNames } from 'src/app/enums/candidateFilterName'\r\nimport { LegalStatus } from 'src/app/enums/legalStatus'\r\nimport { CANDIDATE_ADD_ACTION } from 'src/app/enums/userActions'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iConsultantJob, iConsultant } from 'src/app/models/consultant.model'\r\nimport { City } from 'src/app/models/location.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { checkRouterChildsData } from 'src/app/shared/core/utils/check-router-childs-data'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { aioTableLabels } from 'src/static-data/aio-table-data'\r\nimport { Consultant } from '../consultant-list/interfaces/consultant.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { fadeInUp400ms } from 'src/app/shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from 'src/app/shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { BooleanSearchService } from 'src/app/boolean-search/boolean-search.service'\r\nimport { PaginatorInformation } from 'src/app/models/paginator.model'\r\nimport { BooleanFilter } from 'src/app/models/boolean.filter'\r\nimport * as BooleanFilterJson from '../../../assets/boolean-filters.json'\r\nimport { UntilDestroy } from '@ngneat/until-destroy'\r\nimport { FiltersComponent } from 'src/app/shared/filters/filters.component'\r\nimport { JobCandidateTab } from 'src/app/enums/jobCandidate'\r\nimport { SignalrService } from 'src/app/services/signalR.service'\r\nimport { CallRecordHistoryComponent } from '../call-record-history/call-record-history.component'\r\nimport { iCallRecords } from 'src/app/models/calls.model'\r\nimport { CallSource, CallStatus, CallType } from 'src/app/enums/callStatus'\r\nimport { FilesTypes, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { TableVirtualScrollDataSource } from 'ng-table-virtual-scroll'\r\nimport { E } from '@angular/cdk/keycodes'\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'consultant-list',\r\n templateUrl: './consultant-list.component.html',\r\n styleUrls: ['./consultant-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class ConsultantListComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n searchCriteria: iConsultantSearch\r\n public requiredSkillSearchText: string\r\n public preferredSkillSearchText: string\r\n public candidateNameSearchText: string\r\n public candidatTitleSearchText: string\r\n public minExp: number\r\n public maxExp: number\r\n public miles: number\r\n public lastUpdated: number\r\n public jobIdSearchText: string\r\n\r\n public sourceSearchText: string\r\n public selectedSources = [CandidateDataSource.Leaptiger]\r\n public allSources: any\r\n public sources: any = []\r\n public sourcesFilterOptions: any = []\r\n public candidateFilterOptions: Filter[]\r\n\r\n public jobTypeSearchText: string\r\n public selectedJobType = []\r\n public allJobTypes: any\r\n public allCandidateTypes: any\r\n public jobTypes: any = []\r\n\r\n public workAuthSearchText: string\r\n public selectedWorkAuth = []\r\n public titlesSelected = []\r\n public allWorkAuth: any\r\n public workAuthorizations: any = []\r\n public alltStates: any = []\r\n public stateSearchText: string\r\n\r\n public employmentTypeSearchText: string\r\n public availablityId: number\r\n public selEmploymentType = []\r\n public availEmploymentTypes: any\r\n public employmentTypes: any = []\r\n public sourceFilterOptions = []\r\n\r\n showEmploymentType: boolean = false\r\n showCandidateName: boolean = false\r\n showJobType: boolean = false\r\n showCandidateTitle: boolean = false\r\n showMinExperience: boolean = false\r\n showMaxExperience: boolean = false\r\n showMiles: boolean = false\r\n showLastUpdated: boolean = false\r\n showJobId: boolean = false\r\n isJobCandidateSearch: boolean = false\r\n public citySearchText: string\r\n public cities: any = []\r\n state: any\r\n callRecord: iCallRecords\r\n\r\n storeJobFilter: FilterObject = {}\r\n diceSourceTypeValue = CandidateDataSource.Dice\r\n leapTigerSourceTypeValue = CandidateDataSource.Leaptiger\r\n careerBuilderSourceTypeValue = CandidateDataSource.CareerBuilder\r\n\r\n isDesktop$ = this.layoutService.isDesktop$\r\n searchPara: {\r\n JobId: any\r\n JobCode: any\r\n Title: any\r\n Customer: any\r\n Contact: any\r\n JobStatus: any\r\n JobType: any\r\n PostFromDate: any\r\n PostToDate: any\r\n JobStartDate: any\r\n JobEndDate: any\r\n CandidateTitle: any\r\n SkillCategory: any\r\n SkillSpecialized: any\r\n RecruiterId: any\r\n LocationCity: any\r\n LocationState: any\r\n UserId: any\r\n SortField: any\r\n SortOrder: any\r\n PageNumber: any\r\n PageSize: any\r\n EmailAddress: any\r\n }\r\n candidateEmailSearchText: string = ''\r\n activeJob: iJob = {}\r\n jobId: number = 0\r\n toolBarItems: iMenuItem[]\r\n menu: iMenuItem\r\n consultantjob: iConsultantJob\r\n consultantList: any[] = []\r\n modelConsultantJob: iConsultantJob\r\n allStates: any = []\r\n legalTypeData: iKeyValue[] = []\r\n uploadDialog: any\r\n uploadDialogResume: any\r\n myFiles: string[] = []\r\n resumeFile: File[] = []\r\n\r\n reqWorkAuthForJobSearch: iJobLegalType[] = []\r\n private ngUnSubscribe$: Subject = new Subject()\r\n isGridClick: boolean = false\r\n\r\n skills: iJobSkill[] = []\r\n jobDetails: any\r\n toolbarShadowEnabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.toolbarShadowEnabled))\r\n )\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n\r\n /**\r\n * Simulating a service with HTTP that returns Observables\r\n * You probably want to remove this and do all requests in a service with HTTP\r\n */\r\n consultants: Consultant[]\r\n activeConsultant: iConsultant\r\n subject$: ReplaySubject = new ReplaySubject(1)\r\n data$: Observable = this.subject$.asObservable()\r\n\r\n public get JobTypeIds(): typeof JobTypeIds {\r\n return JobTypeIds\r\n }\r\n\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n private getTitles(searchText): Observable {\r\n return this.jobService.getJobTitles(searchText)\r\n }\r\n public get moduleNames(): typeof ModuleNames {\r\n return ModuleNames\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n @Input()\r\n columns: TableColumn[] = [\r\n { label: 'Image', property: 'image', type: 'image', visible: true },\r\n {\r\n label: 'FirstName',\r\n property: 'FirstName',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'MatchPercentage',\r\n property: 'MatchPercentage',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Employment Type',\r\n property: 'CandidateType',\r\n type: 'text',\r\n visible: false,\r\n cssClasses: ['text-left'],\r\n },\r\n\r\n {\r\n label: 'Experience',\r\n property: 'Experience',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Work Permit',\r\n property: 'LegalStatus',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium'],\r\n },\r\n {\r\n label: 'City ',\r\n property: 'City',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium'],\r\n },\r\n {\r\n label: 'Willing To Relocate',\r\n property: 'Relocate',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium'],\r\n },\r\n {\r\n label: 'Open for',\r\n property: 'JobType',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Exp. Pay Rate',\r\n property: 'ExpectedPayRate',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'teal-light'],\r\n },\r\n {\r\n label: 'Last Resume Updated',\r\n property: 'LastUpdate',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'teal-light'],\r\n },\r\n {\r\n label: 'Time',\r\n property: 'Time',\r\n type: 'text',\r\n visible: false,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Source',\r\n property: 'Source',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n {\r\n label: 'Specialized Skills',\r\n property: 'SpecializedSkill',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n ]\r\n\r\n columnsFilterList: TableColumn[]\r\n resumUploadColumns: string[] = ['FileName', 'UploadStatus', 'UploadComment']\r\n resumeData: any\r\n isResumeData: boolean\r\n @ViewChild('quickpanel', { static: true }) quickpanel: MatSidenav\r\n pageSize = 50\r\n pageNumber = 1\r\n isScrolled: boolean = false\r\n totalLength: number\r\n sortField: string\r\n sortOrder: string\r\n public filePath: string = ''\r\n // pageSizeOptions: number[] = [5, 10, 20, 50]\r\n dataSource: TableVirtualScrollDataSource | null\r\n\r\n labels = aioTableLabels\r\n subscription: Subscription\r\n selectedReasonId: number\r\n selectedReason: string\r\n isLoading: boolean\r\n private lastScrollTop: number = 0\r\n candidateSource: CandidateDataSource\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n isExpanded$ = combineLatest([this.commonService.isJobCardView$]).pipe(map(([value]) => ({ value })))\r\n public IsAddCandidatePermission: boolean\r\n resetFilterSubscriber: Subscription\r\n allCities: City[] = []\r\n defaultCities: City[] = []\r\n candidateModuleLevelSearchText: string\r\n isFromJobSearch: boolean = false\r\n isFromCachedSearch: boolean = false\r\n isDiceData: boolean = false\r\n matchedPercentage: number = 0\r\n jobSearch: iJobTitle\r\n hasMoreData: boolean = true\r\n isResume: boolean = false\r\n resumeFileName: string\r\n existingAdditionalFilters: any[]\r\n booleanFilters: BooleanFilter[] = BooleanFilterJson.default.BooleanCandidateFilters\r\n\r\n public get fileTypes(): typeof FilesTypes {\r\n return FilesTypes\r\n }\r\n\r\n isOpen() {\r\n this.commonService.isExpandedSubject.next(true)\r\n }\r\n\r\n isClose() {\r\n this.commonService.isExpandedSubject.next(false)\r\n }\r\n\r\n onAddCandidate() {\r\n Common.activeConsultantJob = null\r\n Common.activeConsultant = null\r\n Common.activeJob = null\r\n this.router.navigate(['candidates/add'])\r\n }\r\n @ViewChild('paginator') paginator: MatPaginator\r\n @ViewChild(MatSort, { static: true }) sort: MatSort\r\n /** is Show consultant summay visible on load */\r\n isShowConsultantSummaryOnLoad: boolean\r\n /** Active consultant id */\r\n activeConsultantId: number\r\n isFromApplyFlow: boolean = false\r\n candidateName: string = ''\r\n selectedCandidateIndex: number = 0\r\n initialLoaded: boolean = false\r\n private isConsultantOpen: boolean = false\r\n loaded = false\r\n isFromCandidateTab: boolean = false\r\n @ViewChild(FiltersComponent, { static: true }) _filterComponent: FiltersComponent\r\n isBooleanSearch: boolean = false\r\n constructor(\r\n private consultantsService: ConsultantsService,\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private loadComponent: LoadComponent,\r\n public authService: AuthenticationService,\r\n private consultantService: ConsultantService,\r\n private router: Router,\r\n private dialog: MatDialog,\r\n private layoutService: LayoutService,\r\n private route: ActivatedRoute,\r\n public filterModelService: FilterModelService,\r\n private roleService: RoleService,\r\n public observableService: ObservableService,\r\n private jobService: JobService,\r\n private _renderer2: Renderer2,\r\n private _commonMatDialogService: CommonMatDialogService,\r\n private booleanSearchService: BooleanSearchService,\r\n public signalRService: SignalrService\r\n ) {\r\n this.subscription = this.loadComponent\r\n .getComponentStatus()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n if (!res) {\r\n this.quickpanel.ngOnDestroy()\r\n }\r\n })\r\n this.loaded = false\r\n const data = this.router.getCurrentNavigation()\r\n this.isFromJobSearch = data?.extras?.state ? data?.extras?.state?.isFromJobSearch : false\r\n this.jobSearch = data?.extras?.state ? data?.extras?.state?.job : ''\r\n this.isFromCachedSearch = data?.extras?.state ? data?.extras?.state?.isFromCachedSearch : false\r\n this.isDiceData = data?.extras?.state ? data?.extras?.state?.isDiceData : false\r\n this.isFromApplyFlow = data?.extras?.state?.isFromApplyFlow ? data?.extras?.state?.isFromApplyFlow : false\r\n this.isFromCandidateTab = data?.extras?.state?.isFromCandidateTab\r\n ? data?.extras?.state?.isFromCandidateTab\r\n : false\r\n this.candidateName = data?.extras?.state?.candidateName ? data?.extras?.state?.candidateName : ''\r\n setTimeout(() => {\r\n this.loaded = true\r\n }, 100)\r\n }\r\n\r\n ngOnInit() {\r\n this.initialLoaded = true\r\n this.router.events\r\n .pipe(filter((f) => f instanceof NavigationStart && f.url.search('candidates') > -1))\r\n .subscribe((s) => {\r\n this.loaded = false\r\n const data = this.router.getCurrentNavigation()\r\n setTimeout(() => {\r\n this.loaded = true\r\n }, 100)\r\n })\r\n // Common.activeJob = null\r\n this.filePath = Common.filePath\r\n this.setPermission()\r\n this.route.queryParams\r\n .pipe(withLatestFrom(this.commonService.candidateObservable), takeUntil(this.ngUnSubscribe$))\r\n .subscribe(([params, externalObsValue]) => {\r\n if (externalObsValue) {\r\n return\r\n }\r\n if (this.route?.snapshot?.queryParams?.jobId) {\r\n this.jobId = Number(this.route?.snapshot?.queryParams?.jobId)\r\n this.jobService\r\n .getJob(this.jobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((job) => {\r\n Common.activeJob = job\r\n this.jobDetails = job\r\n this.showJobCriteria()\r\n })\r\n this.candidateFilterOptions = this.filterModelService.getCandidateFilters()\r\n this.getFilterOptions()\r\n } else {\r\n this.jobDetails = history.state?.job\r\n this.isFromJobSearch = false\r\n this.totalLength = 0\r\n this.resetSearchFilters()\r\n if (this.isFromApplyFlow) {\r\n this.isFromJobSearch = true\r\n this.candidateModuleLevelSearchText = this.candidateName\r\n if (this.candidateName != null || this.candidateName != '') {\r\n const searchText: Map = new Map().set(\r\n ModuleNames.CANDIDATE,\r\n this.candidateName\r\n )\r\n this.observableService.addToModuleLevelSearch(searchText)\r\n }\r\n }\r\n this.isJobCandidateSearch = false\r\n this.isFromCachedSearch = false\r\n this.isDiceData = false\r\n this.isLoading = true\r\n this.consultantsService\r\n .getShowConsultantSummaryOnLoad()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n this.isLoading = false\r\n this.isShowConsultantSummaryOnLoad = res\r\n })\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n this.isLoading = false\r\n this.activeConsultantId = res\r\n })\r\n this.modelConsultantJob = {}\r\n this.toolBarItems = this.commonService.menuItems\r\n this.columnsFilterList = this.columns.filter((x) => x.property != 'FirstName')\r\n this.consultantList = []\r\n this.pageNumber = 1\r\n this.getConsultantData()\r\n }\r\n })\r\n this.filterChangeSubscriber()\r\n this._subscribeToDiceResults()\r\n this._updateRowValue()\r\n this._subscribeToGetBooleanCandidateObs()\r\n this.booleanSearchService.setIsFromJobValue(this.isFromJobSearch)\r\n }\r\n\r\n filterChangeSubscriber() {\r\n this.observableService.candidateAutocompleteFilterValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$), withLatestFrom(this.observableService.stateIdOfCityValueChanges$))\r\n .subscribe(([filter, stateId]) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateFilterNames.STATE)) {\r\n if (filter.get(CandidateFilterNames.STATE).length == 0) {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.STATE) {\r\n item.searchText = ''\r\n }\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.searchText = ''\r\n item.options = item.originalOptions\r\n }\r\n })\r\n this.stateSearchText = ''\r\n this.citySearchText = ''\r\n } else {\r\n this.stateSearchText = filter.get(CandidateFilterNames.STATE)\r\n let cityAccordingToState = this.consultantService.getCitySearch(\r\n '',\r\n this.getStateAgainstName(filter.get(CandidateFilterNames.STATE))\r\n )\r\n cityAccordingToState.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((res) => {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.options = this.getCityOptions(res)\r\n item.originalOptions = this.getCityOptions(res)\r\n this.allCities = res\r\n }\r\n })\r\n })\r\n }\r\n } else if (filter.has(CandidateFilterNames.CITY)) {\r\n if (filter.get(CandidateFilterNames.CITY).length == 0) {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.searchText = ''\r\n }\r\n })\r\n this.citySearchText = ''\r\n } else {\r\n this.citySearchText = filter.get(CandidateFilterNames.CITY)\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.STATE) {\r\n item.searchText = this.getStateAccordingToStateId(stateId)\r\n this.stateSearchText = this.getStateCodeByStateId(stateId)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n })\r\n\r\n this.observableService.candidateModuleLevelSearchChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((searchText) => {\r\n this.candidateModuleLevelSearchText = searchText?.length > 0 ? searchText : ''\r\n this.paginator?.firstPage()\r\n\r\n this.consultantList = []\r\n this.pageNumber = 1\r\n this.getConsultantData()\r\n })\r\n\r\n this.observableService.candidateTextBoxFilterValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateFilterNames.CANDIDATE_NAME)) {\r\n this.candidateNameSearchText = ''\r\n this.candidateNameSearchText = filter.get(CandidateFilterNames.CANDIDATE_NAME)\r\n } else if (filter.has(CandidateFilterNames.LAST_RESUME_UPDATED)) {\r\n this.lastUpdated = 0\r\n this.lastUpdated = Number(filter.get(CandidateFilterNames.LAST_RESUME_UPDATED))\r\n } else if (filter.has(CandidateFilterNames.REQUIRED_SKILLS)) {\r\n this.requiredSkillSearchText = ''\r\n this.requiredSkillSearchText = filter.get(CandidateFilterNames.REQUIRED_SKILLS)\r\n } else if (filter.has(CandidateFilterNames.CANDIDATE_EMAIL)) {\r\n this.candidateEmailSearchText = ''\r\n this.candidateEmailSearchText = filter.get(CandidateFilterNames.CANDIDATE_EMAIL)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n\r\n this.consultantList = []\r\n this.pageNumber = 1\r\n this.getConsultantData()\r\n })\r\n this.observableService.candidateFilterValueChanged$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(CandidateFilterNames.SOURCE)) {\r\n this.selectedSources = [CandidateDataSource.Leaptiger]\r\n this.selectedSources = filter.get(CandidateFilterNames.SOURCE)\r\n } else if (filter.has(CandidateFilterNames.WORK_PERMIT)) {\r\n this.selectedWorkAuth = []\r\n this.selectedWorkAuth = filter.get(CandidateFilterNames.WORK_PERMIT)\r\n } else if (filter.has(CandidateFilterNames.JOB_TITLE)) {\r\n this.titlesSelected = []\r\n this.titlesSelected = filter.get(CandidateFilterNames.JOB_TITLE)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.consultantList = []\r\n this.pageNumber = 1\r\n this.getConsultantData() // need to enable later to get automatic data on checkbox click\r\n })\r\n this.observableService.candidateDropdownSearchTextFilterValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((searchText) => {\r\n if (searchText.size > 0) {\r\n if (searchText.has(CandidateFilterNames.JOB_TITLE)) {\r\n this.getTitles(searchText.get(CandidateFilterNames.JOB_TITLE)).subscribe((resp) => {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name === CandidateFilterNames.JOB_TITLE) {\r\n item.options = this.getJobTitleOptions(resp)\r\n }\r\n })\r\n })\r\n }\r\n }\r\n })\r\n this.resetFilterSubscriber = this.observableService.filterResetValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((filterReset) => {\r\n this.getDefaultCandidateData(filterReset)\r\n this.setDefaultCitiesForCityFilter()\r\n })\r\n this.observableService.resetCandidateFilterValueChange$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((change) => {\r\n this.getDefaultCandidateData(change)\r\n })\r\n\r\n this.candidateFilterOptions = this.filterModelService.getCandidateFilters()\r\n this.getFilterOptions()\r\n if (this.route?.snapshot?.queryParams?.consultantId) {\r\n this.isConsultantOpen = true;\r\n const IS_DICE = this.route.snapshot.queryParamMap.get('isDice')\r\n if (IS_DICE) {\r\n this.onGridDiceColumnClick(this.route?.snapshot?.queryParams?.consultantId)\r\n } else {\r\n this.onGridColumnClick(this.route?.snapshot?.queryParams?.consultantId)\r\n }\r\n }\r\n this.observableService.updatedCitiesNamesValueChanged$\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((newCities) => {\r\n this.allCities = newCities\r\n })\r\n }\r\n\r\n getDefaultCandidateData(isFilterReset) {\r\n let anyFilterApplied =\r\n this.selectedSources?.length > 0 ||\r\n this.selectedWorkAuth?.length > 0 ||\r\n this.candidateNameSearchText?.length > 0 ||\r\n this.requiredSkillSearchText?.length > 0 ||\r\n this.lastUpdated > 0 ||\r\n this.citySearchText?.length > 0 ||\r\n this.stateSearchText?.length > 0 ||\r\n this.candidateModuleLevelSearchText?.length > 0 ||\r\n this.candidateEmailSearchText?.length > 0\r\n this.selectedSources = []\r\n this.selectedWorkAuth = []\r\n this.candidateNameSearchText = ''\r\n this.requiredSkillSearchText = ''\r\n this.lastUpdated = 0\r\n this.citySearchText = ''\r\n this.stateSearchText = ''\r\n this.candidateModuleLevelSearchText = ''\r\n this.candidateEmailSearchText = ''\r\n if (isFilterReset) {\r\n if (this.jobId > 0) {\r\n this.jobId = 0\r\n this.isJobCandidateSearch = false\r\n this.commonService.candidateObservable$.next(false)\r\n this.router.navigate(['/candidates'], {\r\n skipLocationChange: false,\r\n })\r\n return\r\n }\r\n if (anyFilterApplied) {\r\n this.paginator?.firstPage()\r\n this.consultantList = []\r\n this.pageNumber = 1\r\n this.getConsultantData()\r\n }\r\n }\r\n }\r\n\r\n setDefaultCitiesForCityFilter() {\r\n this.candidateFilterOptions.forEach((item) => {\r\n if (item.name == CandidateFilterNames.CITY) {\r\n item.options = this.getCityOptions(this.defaultCities)\r\n item.originalOptions = this.getCityOptions(this.defaultCities)\r\n this.allCities = [...this.defaultCities]\r\n }\r\n })\r\n }\r\n\r\n resetSearchFilters() {\r\n this.selectedSources = []\r\n this.selectedWorkAuth = []\r\n this.candidateNameSearchText = ''\r\n this.requiredSkillSearchText = ''\r\n this.lastUpdated = 0\r\n this.citySearchText = ''\r\n this.stateSearchText = ''\r\n this.candidateModuleLevelSearchText = ''\r\n this.candidateEmailSearchText = ''\r\n this.preferredSkillSearchText = ''\r\n this.candidateFilterOptions = [...this.filterModelService.getCandidateFilters()]\r\n // this._filterComponent.detectChangesInFilters()\r\n }\r\n\r\n getFilterOptions() {\r\n forkJoin({\r\n sourceData: this.getSources(),\r\n workPermitData: this.getWorkAuthorization(),\r\n stateData: this.getStates(),\r\n cityData: this.applyFilterCity(''),\r\n jobTitleData: this.getTitles(''),\r\n })\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(({ sourceData, workPermitData, stateData, cityData, jobTitleData }) => {\r\n this.allStates = stateData\r\n this.legalTypeData = workPermitData\r\n this.allCities = this.defaultCities = cityData\r\n this.candidateFilterOptions.forEach((item) => {\r\n switch (item.name) {\r\n case CandidateFilterNames.SOURCE:\r\n sourceData = sourceData.filter(\r\n (source) =>\r\n source.Value === CandidateDataSource.Leaptiger ||\r\n source.Value === CandidateDataSource.Dice ||\r\n source.Value === CandidateDataSource.CareerBuilder\r\n ) // TODO: Need to remove filter later when want to show all source options\r\n item.options = []\r\n item.selectedOptions = this.selectedSources\r\n item.options = this.getOptions(sourceData)\r\n item.originalOptions = this.getOptions(sourceData)\r\n if (this.isFromJobSearch) {\r\n this.observableService.checkForBooleanFilters()\r\n }\r\n break\r\n case CandidateFilterNames.WORK_PERMIT:\r\n item.options = []\r\n item.options = this.getOptions(workPermitData)\r\n item.originalOptions = this.getOptions(workPermitData)\r\n break\r\n case CandidateFilterNames.JOB_TITLE:\r\n item.options = this.getJobTitleOptions(jobTitleData)\r\n item.originalOptions = this.getJobTitleOptions(jobTitleData)\r\n break\r\n case CandidateFilterNames.STATE:\r\n item.options = []\r\n item.options = this.getStateOptions(stateData)\r\n item.originalOptions = this.getStateOptions(stateData)\r\n break\r\n case CandidateFilterNames.CITY:\r\n item.options = []\r\n item.options = this.getCityOptions(cityData)\r\n item.originalOptions = this.getCityOptions(cityData)\r\n break\r\n default:\r\n item.options = null\r\n }\r\n })\r\n })\r\n }\r\n\r\n getOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions.forEach((item) => {\r\n options.push({ key: item.Value, value: item.Key })\r\n })\r\n return options\r\n }\r\n\r\n getStateAgainstName(name: string) {\r\n let selectedStateCode = this.allStates.filter((item) => item.StateName == name)\r\n return selectedStateCode[0].StateCode\r\n }\r\n\r\n getStateOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions.forEach((item) => {\r\n options.push({ key: item.StateID, value: item.StateName })\r\n })\r\n return options\r\n }\r\n\r\n getCityOptions(allOptions: any): Option[] {\r\n let options: Option[] = []\r\n allOptions?.forEach((item) => {\r\n options.push({ key: item.StateID, value: item.City })\r\n })\r\n return options\r\n }\r\n\r\n getStateAccordingToStateId(stateId: number): string {\r\n const STATE_NAME = this.allCities.find((item) => item.StateID === stateId)?.State\r\n return STATE_NAME ? STATE_NAME : ''\r\n }\r\n\r\n getStateCodeByStateId(stateId: number): string {\r\n const STATE_CODE = this.allCities.find((item) => item.StateID === stateId)?.StateCode\r\n return STATE_CODE ? STATE_CODE : ''\r\n }\r\n\r\n getStateNameFromCode(stateCode: string) {\r\n let stateName = ''\r\n this.allStates.forEach((item) => {\r\n if (item.StateCode.toLowerCase() == stateCode.toLowerCase()) {\r\n stateName = item.StateName\r\n }\r\n })\r\n return stateName\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columns.filter((column) => column.visible).map((column) => column.property)\r\n }\r\n setPermission() {\r\n this.isLoading = true\r\n this.roleService\r\n .getPermissionByRole(this.authService.userInfo.roles[0].roleID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (data) => {\r\n this.isLoading = false\r\n let addCandidatePermit = data.filter(\r\n (item) =>\r\n item.ComponentID == Common.enumComponent.Consultant &&\r\n item.MenuCode == 'CANDIDATE_ADD' && // TODO: add Enum for add job -\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n if (addCandidatePermit?.length > 0) this.IsAddCandidatePermission = true\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isShowConsultantSummaryOnLoad && this.router.url === '/candidates') {\r\n if (this.activeConsultantId !== 0) {\r\n this.onGridColumnClick(this.activeConsultantId)\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.getSources()\r\n }\r\n\r\n async showJobCriteria() {\r\n if (this.jobDetails.JobId != 0) {\r\n this.showLastUpdated = true\r\n this.candidateSource = CandidateDataSource.All\r\n this.isJobCandidateSearch = true\r\n this.pageSize = GenericTypes.JobToConultantSearchPageSize\r\n this.citySearchText = this.jobDetails?.Location?.City\r\n this.stateSearchText = this.jobDetails?.Location?.State\r\n this.lastUpdated = GenericTypes.DefaultResumeLastUpdated\r\n this.availablityId = AvailablityStatus.Available\r\n this.showJobId = true\r\n this.jobIdSearchText = this.jobDetails?.JobId?.toString()\r\n const legalTypes = await this.jobService.GetJobLegalStatus(this.jobId).toPromise()\r\n this.reqWorkAuthForJobSearch = legalTypes as iJobLegalType[]\r\n this.selectedWorkAuth = this.reqWorkAuthForJobSearch.map((item) => item.LegalTypeId)\r\n if (this.jobDetails?.LegalTypeNames) {\r\n let legaltypeList = this.jobDetails?.LegalTypeNames.split(',')\r\n this.getlegalTypes(legaltypeList)\r\n }\r\n }\r\n this.selectedSources.push(CandidateDataSource.Dice)\r\n\r\n this.isLoading = true\r\n this.consultantService\r\n .GetJobSkills(this.jobDetails.JobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (result: any[]) => {\r\n this.isLoading = false\r\n this.skills = result\r\n this.requiredSkillSearchText = this.skills\r\n .filter((option) => option.Required == true)\r\n .map((x) => x.SkillName)\r\n .join(',')\r\n this.preferredSkillSearchText = this.skills\r\n .filter((option) => option.Required == false || option.Required == null)\r\n .map((x) => x.SkillName)\r\n .join(',')\r\n this.candidateFilterOptions.forEach((item) => {\r\n switch (item.name) {\r\n case CandidateFilterNames.REQUIRED_SKILLS:\r\n item.searchText = this.requiredSkillSearchText\r\n break\r\n case CandidateFilterNames.CITY:\r\n item.searchText = this.citySearchText\r\n break\r\n case CandidateFilterNames.STATE:\r\n item.searchText = this.stateSearchText\r\n break\r\n case CandidateFilterNames.WORK_PERMIT:\r\n item.selectedOptions = [...new Set(this.selectedWorkAuth.map(Number))]\r\n break\r\n case CandidateFilterNames.SOURCE:\r\n item.selectedOptions = this.selectedSources\r\n break\r\n case CandidateFilterNames.PREFERRED_SKILLS:\r\n item.searchText = this.preferredSkillSearchText\r\n break\r\n case CandidateFilterNames.LAST_RESUME_UPDATED:\r\n item.searchText = this.lastUpdated?.toString()\r\n break\r\n }\r\n })\r\n if (this.isFromJobSearch) {\r\n this.observableService.checkForBooleanFilters()\r\n }\r\n if (this.jobId > 0 && (!this.requiredSkillSearchText || this.requiredSkillSearchText === '')) {\r\n this.notifyService.showError('Required skill is mandatory for search!', 'Consultant')\r\n return\r\n }\r\n this.getConsultantData()\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error while getting Candidates!', 'Consultant')\r\n }\r\n )\r\n }\r\n\r\n exportCandidates() {\r\n this.isLoading = true\r\n this.consultantService\r\n .exportConsultant(this.searchCriteria)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (consultants) => {\r\n this.isLoading = false\r\n if (consultants) {\r\n const a = document.createElement('a')\r\n const objectURL = URL.createObjectURL(consultants)\r\n a.href = objectURL\r\n a.download = 'Consultant'\r\n a.click()\r\n URL.revokeObjectURL(objectURL)\r\n this.notifyService.showSuccess('Download Successfully', 'Candidate')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error in fetching data', 'Candidate')\r\n }\r\n )\r\n }\r\n exportDiceCandidates() {\r\n this.isLoading = true\r\n this.consultantService\r\n .exportDiceConsultant(this.searchCriteria)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (consultants) => {\r\n this.isLoading = false\r\n if (consultants) {\r\n const a = document.createElement('a')\r\n const objectURL = URL.createObjectURL(consultants)\r\n a.href = objectURL\r\n a.download = 'Consultant'\r\n a.click()\r\n URL.revokeObjectURL(objectURL)\r\n this.notifyService.showSuccess('Download Successfully', 'Candidate')\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Error in fetching data', 'Candidate')\r\n }\r\n )\r\n }\r\n\r\n getlegalTypes(legaltypeList) {\r\n legaltypeList = legaltypeList.map((s) => s.trim())\r\n let greenCard = legaltypeList.includes(LegalTypes.GreeenCard)\r\n if (greenCard) {\r\n this.selectedWorkAuth.push(LegalStatus.GreenCard.toString())\r\n }\r\n let usCitizen = legaltypeList.includes(LegalTypes.USCitizen)\r\n if (usCitizen) {\r\n this.selectedWorkAuth.push(LegalStatus.USCitizen.toString())\r\n }\r\n let h1b = legaltypeList.includes(LegalTypes.H1B)\r\n if (h1b) {\r\n this.selectedWorkAuth.push(LegalStatus.H1B.toString())\r\n }\r\n let tnVisa = legaltypeList.includes(LegalTypes.TNVisa)\r\n if (tnVisa) {\r\n this.selectedWorkAuth.push(LegalStatus.TN_Visa.toString())\r\n }\r\n let ead_cpt = legaltypeList.includes(LegalTypes.EAD_CPT)\r\n if (ead_cpt) {\r\n this.selectedWorkAuth.push(LegalStatus.CPT_EAD.toString())\r\n }\r\n let ead_gc = legaltypeList.includes(LegalTypes.EAD_GC)\r\n if (ead_gc) {\r\n this.selectedWorkAuth.push(LegalStatus.GC_EAD.toString())\r\n }\r\n let ead_h4 = legaltypeList.includes(LegalTypes.EAD_H4)\r\n if (ead_h4) {\r\n this.selectedWorkAuth.push(LegalStatus.H4_EAD.toString())\r\n }\r\n let ead_opt = legaltypeList.includes(LegalTypes.EAD_OPT)\r\n if (ead_opt) {\r\n this.selectedWorkAuth.push(LegalStatus.OPT_EAD.toString())\r\n }\r\n let ead_tn = legaltypeList.includes(LegalTypes.EAD_TN)\r\n if (ead_tn) {\r\n this.selectedWorkAuth.push(LegalStatus.TN_EAD.toString())\r\n }\r\n let ead_l2 = legaltypeList.includes(LegalTypes.EAD_L2)\r\n if (ead_l2) {\r\n this.selectedWorkAuth.push(LegalStatus.L2_EAD.toString())\r\n }\r\n let eb1 = legaltypeList.includes(LegalTypes.EB1)\r\n if (eb1) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_EB1.toString())\r\n }\r\n let eb2 = legaltypeList.includes(LegalTypes.EB2)\r\n if (eb2) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_EB2.toString())\r\n }\r\n let eb3 = legaltypeList.includes(LegalTypes.EB3)\r\n if (eb3) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_EB3.toString())\r\n }\r\n let h4 = legaltypeList.includes(LegalTypes.H4)\r\n if (h4) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_H4.toString())\r\n }\r\n let j1 = legaltypeList.includes(LegalTypes.J1)\r\n if (j1) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_J1.toString())\r\n }\r\n let j2 = legaltypeList.includes(LegalTypes.J2)\r\n if (j2) {\r\n this.selectedWorkAuth.push(LegalStatus.LT_J2.toString())\r\n }\r\n this.selectedWorkAuth = [...new Set(this.selectedWorkAuth.map(Number))]\r\n }\r\n\r\n openStatusChange(consultatjob, mnuItem, i) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n this.consultantjob = consultatjob\r\n Common.activeConsultantJob = consultatjob\r\n\r\n const dialogRef = this.dialog.open(ActionDialogComponent, {\r\n width: '400px',\r\n data: { consultantjob: this.consultantjob, menu: this.menu },\r\n })\r\n\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n if (result == null || result == undefined) {\r\n this.getConsultantData()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n this.updateConsultantJob()\r\n }\r\n })\r\n }\r\n\r\n updateConsultantJob() {\r\n this.modelConsultantJob.JobID = this.activeJob.JobId\r\n this.modelConsultantJob.ConsultantID = Common.activeConsultantJob.ConsultantID\r\n this.modelConsultantJob.PayRate = Common.activeConsultantJob.PayRate\r\n this.modelConsultantJob.BillRate = Common.activeConsultantJob.BillRate\r\n this.modelConsultantJob.Salary = Common.activeConsultantJob.Salary\r\n this.modelConsultantJob.DateApplied = new Date()\r\n this.modelConsultantJob.CreatedDate = new Date()\r\n this.modelConsultantJob.CreatedBy = this.authService.userInfo.userID\r\n this.modelConsultantJob.IsActive = true\r\n this.modelConsultantJob.CompanyVendorID = Common.activeConsultantJob.CompanyVendorID\r\n this.modelConsultantJob.VendorContactID = Common.activeConsultantJob.VendorContactID\r\n this.modelConsultantJob.ConsultantTypeID = Common.activeConsultantJob.ConsultantTypeID\r\n this.modelConsultantJob.RecruiterId = this.authService.userInfo.userID\r\n Common.activeConsultantJob = this.modelConsultantJob\r\n this.consultantService\r\n .saveConsultantJob(this.modelConsultantJob)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((cjResult) => {\r\n if (cjResult) {\r\n Common.activeConsultantJob = cjResult\r\n this.updateProcessWorkFlow()\r\n }\r\n })\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n try {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n result\r\n this.updateProcessWorkFlow()\r\n })\r\n } catch {}\r\n }\r\n\r\n updateProcessWorkFlow() {\r\n var ljob: iConsultantJob = Common.activeConsultantJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n let comment = this.selectedReasonId\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : this.menu.MenuName\r\n\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n this.commonService.setActiveObject(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(this.menu)\r\n\r\n Common.activeConsultantJob.ConsultantJobStatus = this.menu.MenuName\r\n\r\n this.notifyService.showSuccess(\r\n 'Consultant Job status successfully changed to ' + Common.activeConsultantJob.ConsultantJobStatus,\r\n 'Consultant Job'\r\n )\r\n })\r\n }\r\n\r\n getConsultantData() {\r\n try {\r\n if (this.minExp && this.minExp % 1 != 0) {\r\n this.notifyService.showError('MINIMUM EXPERIENCE: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n if (this.maxExp && this.maxExp % 1 != 0) {\r\n this.notifyService.showError('MINIMUM EXPERIENCE: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n if (this.lastUpdated && this.lastUpdated % 1 != 0) {\r\n this.notifyService.showError('LAST RESUME UPDATED: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n if (this.miles && this.miles % 1 != 0) {\r\n this.notifyService.showError('DISTANCE RADIUS: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n\r\n if (this.jobIdSearchText && this.jobIdSearchText != '') {\r\n if (Number(this.jobIdSearchText) % 1 != 0) {\r\n this.notifyService.showError('JOB ID: Please give only integer value!', 'Consultant')\r\n return\r\n }\r\n }\r\n if (\r\n this.jobId > 0 &&\r\n (!this.requiredSkillSearchText || this.requiredSkillSearchText === '') &&\r\n this.isJobCandidateSearch\r\n ) {\r\n this.notifyService.showError('Required skill is mandatory for search!', 'Consultant')\r\n return\r\n }\r\n if (this.selectedSources.length === 0) {\r\n this.candidateSource = CandidateDataSource.Leaptiger\r\n this.selectedSources.push(this.candidateSource)\r\n } else if (this.selectedSources.length > 1) {\r\n this.candidateSource = CandidateDataSource.All\r\n } else {\r\n this.candidateSource = this.selectedSources[0]\r\n }\r\n this.searchCriteria = {\r\n CandidateDataSource: this.candidateSource,\r\n ConsultantId: null,\r\n JobId: Number(this.jobIdSearchText),\r\n RequiredSkills:\r\n this.requiredSkillSearchText != undefined ? this.requiredSkillSearchText.split(',') : null,\r\n PrefferedSkills:\r\n this.preferredSkillSearchText != undefined ? this.preferredSkillSearchText.split(',') : null,\r\n CandidateName: this.candidateNameSearchText,\r\n CandidateType: this.selEmploymentType.join(','),\r\n CandidateStatusId: '-1',\r\n PostedFrom: null,\r\n PostedTo: null,\r\n CandidateTitle: this.candidatTitleSearchText,\r\n RecruiterId: 0,\r\n City: this.citySearchText ? this.citySearchText : '',\r\n StateCode: this.stateSearchText,\r\n Zipcode: 0,\r\n Education: null,\r\n LegalStatus: this.selectedWorkAuth.join(','),\r\n MinimumExperience: this.minExp == 0 ? null : this.minExp,\r\n MaximumExperience: this.maxExp == 0 ? null : this.maxExp,\r\n JobType: this.selectedJobType.join(','),\r\n Location: null,\r\n LocationMiles: this.miles == 0 ? null : this.miles,\r\n UserId: null,\r\n SourceTypeID: this.candidateSource,\r\n LastUpdated: this.lastUpdated == 0 ? null : this.lastUpdated,\r\n Availability: this.availablityId ? this.availablityId : null,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.pageSize,\r\n IsJobCandidateSearch: this.isJobCandidateSearch,\r\n SearchText: this.candidateModuleLevelSearchText,\r\n EmailAddress: this.candidateEmailSearchText,\r\n } as any\r\n\r\n this.totalLength = 0\r\n // this.isLoading = true\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n this._createBooleanSearchParams()\r\n this._getBooleanSearchCandidate()\r\n // this.booleanSearchService.booleanSearchFilterOptions = this.candidateFilterOptions\r\n // console.log(this.booleanSearchService.booleanSearchFilterOptions)\r\n // this.openBooleanSearch();\r\n return\r\n } catch (err: any) {\r\n this.isLoading = false\r\n this.notifyService.showWarning('Error in fetching data' + err, 'Candidate search')\r\n }\r\n }\r\n\r\n jobTypeConvertor(jobTypeId: string) {\r\n let jobTypeArray = jobTypeId?.split(',').map((item) => {\r\n if (Number(item) == Common.enumJobContractType.JT_C2C) return JobTypes.Contract\r\n else if (Number(item) == Common.enumJobContractType.JT_C2H) return JobTypes.ContractToHire\r\n else return JobTypes.Permanent\r\n })\r\n return jobTypeArray?.join(', ')\r\n }\r\n\r\n onGridColumnClick(consultantId, consultantJob?, rowIndex?) {\r\n this.selectedCandidateIndex = rowIndex\r\n if (\r\n consultantJob?.hasOwnProperty('DiceId') &&\r\n consultantJob.DiceId != null &&\r\n (consultantId == null || consultantId == undefined || consultantId == 0)\r\n ) {\r\n this.onGridDiceColumnClick(consultantJob.DiceId, consultantJob)\r\n } else {\r\n this.consultantService\r\n .getConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n Common.activeConsultant = res\r\n this.activeConsultant = res\r\n Common.activeJobId = this.jobId\r\n this.matchedPercentage = consultantJob?.MatchPercentage\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n }\r\n\r\n isSalaryVisible(jobTypeIds: string) {\r\n let jobTypeArray = jobTypeIds?.split(',').map(Number)\r\n if (jobTypeArray?.includes(JobTypeIds.Permanent) || jobTypeArray?.includes(JobTypeIds.ContractToHire))\r\n return true\r\n return false\r\n }\r\n\r\n isPayRateVisible(jobTypeIds: string) {\r\n let jobTypeArray = jobTypeIds?.split(',').map(Number)\r\n if (jobTypeArray?.includes(JobTypeIds.Contract) || jobTypeArray?.includes(JobTypeIds.ContractToHire))\r\n return true\r\n return false\r\n }\r\n\r\n openQuickpanel(isDiceCandidate?, diceId?) {\r\n if (isDiceCandidate) {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: diceId,\r\n isDice: true,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant')\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n matchedPercentage: this.matchedPercentage,\r\n diceId: diceId,\r\n isDice: true,\r\n isFromCandidateTab: this.isFromCandidateTab,\r\n })\r\n } else {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: Common.activeConsultant.ConsultantId,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant')\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n matchedPercentage: this.matchedPercentage,\r\n isFromCandidateTab: this.isFromCandidateTab,\r\n })\r\n }\r\n }\r\n //TODO : UNCOMMENT AND ADD BELOW FUNCTION IN HTML\r\n //onCallClick(element.ConsultantID, element)\r\n // onCallClick(consultantId, consultantJob?) {\r\n // this.consultantService\r\n // .getConsultant(consultantId)\r\n // .pipe(takeUntil(this.ngUnSubscribe$))\r\n // .subscribe((res) => {\r\n // Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n // Common.activeConsultant = res\r\n // this.activeConsultant = res\r\n // Common.activeJobId = this.jobId\r\n // this.openQuickPanelWithVonage()\r\n // this.removeParams()\r\n // })\r\n // }\r\n\r\n openTeams(e, cellPhoneNumber: number) {\r\n const isTeamsInstalled = this.isMicrosoftTeamsInstalled()\r\n\r\n if (isTeamsInstalled) {\r\n window.location.href = 'msteams://'\r\n } else {\r\n this.makeCall(e, cellPhoneNumber.toString())\r\n }\r\n }\r\n\r\n isMicrosoftTeamsInstalled() {\r\n return /Teams/i.test(navigator.userAgent)\r\n }\r\n\r\n makeCall(e, calleeNumber: string) {\r\n // to be set callers number\r\n\r\n let callerNumber = this.authService.userInfo.phoneNumber\r\n\r\n if (Common.testCalleeNumber != null)\r\n // call Test Mode\r\n calleeNumber = Common.testCalleeNumber\r\n\r\n // to be set callee number\r\n // let saveInitialData = {\r\n // calleeNumber : calleeNumber.toString(),\r\n // callerNumber: callerNumber,\r\n // jobId: this.jobId,\r\n // consultantId: e.ConsultantID,\r\n // diceId: e.DiceId,\r\n // jobStatusId: this.jobDetails.JobStatusID\r\n // }\r\n this.callRecord = {\r\n CallRecordId: 0,\r\n CallerUserId: this.authService.userInfo.userID,\r\n CallStartTime: new Date(),\r\n CallerNumber: callerNumber,\r\n JobId: this.jobId,\r\n CalleeContactId: null,\r\n CalleeNumber: calleeNumber,\r\n CalleeEmail: null,\r\n CallStatusId: CallStatus.Dialed, //Dialed\r\n CallTypeID: CallType.Outbound, //Outbound\r\n CallSourceId: CallSource.Teams,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n\r\n window.location.href = `tel:${calleeNumber}`\r\n }\r\n\r\n showCallHistory(e: any) {\r\n let dialogRef = this.dialog.open(CallRecordHistoryComponent, {\r\n width: '1200px',\r\n data: { consultantData: e, jobId: this.jobId, jobStatusID: this.jobDetails.JobStatusID },\r\n })\r\n }\r\n\r\n openQuickPanelWithVonage() {\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: Common.activeConsultant.ConsultantId,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant', 92)\r\n this.commonService.setComponentData({\r\n isFromJobSearch: this.isFromJobSearch,\r\n job: this.jobDetails,\r\n isCallClick: true,\r\n })\r\n }\r\n\r\n removeParams() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((state) => {\r\n if (!state) {\r\n if (this.isGridClick) {\r\n this.commonService.candidateObservable$.next(true)\r\n if (this.isFromCandidateTab) {\r\n this.router.navigate(['jobs'], {\r\n queryParams: {\r\n jobId: Common.activeJob.JobId,\r\n activeTab: JobCandidateTab.Navigate_Job_Candidate_tab,\r\n },\r\n })\r\n } else {\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n consultantId: null,\r\n isDice: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n }\r\n this.isGridClick = false\r\n this.isFromCandidateTab = false\r\n const script = document.getElementById('vonage-cdn')\r\n if (script) this._renderer2.removeChild(document.body, script)\r\n const vonageContainer = document.getElementsByClassName('vonage-dialer-container')[0]\r\n if (vonageContainer?.innerHTML) vonageContainer.innerHTML = ''\r\n }\r\n }\r\n })\r\n }\r\n\r\n getStates(): Observable {\r\n return this.commonService.getStates()\r\n }\r\n\r\n getEmploymentTypes() {\r\n this.consultantService\r\n .getLookup('ConsultantTypelD')\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n this.availEmploymentTypes = res\r\n this.employmentTypes = res\r\n })\r\n }\r\n\r\n getSources(): Observable {\r\n return this.consultantService.getLookup('ResumeSourceID')\r\n }\r\n\r\n getWorkAuthorization(): Observable {\r\n return this.consultantService.getLookup('LegalTypeID')\r\n }\r\n\r\n applyFilterCity(searchValue: string): Observable {\r\n let stateCode = null\r\n if (this.state) {\r\n stateCode = this.state.StateCode\r\n }\r\n searchValue = searchValue.trim()\r\n return this.consultantService.getCitySearch(searchValue, stateCode)\r\n }\r\n\r\n changePage(event) {\r\n this.pageSize = event.pageSize\r\n this.pageNumber = event.pageIndex + 1\r\n const PAGE_INFORMATION: PaginatorInformation = { PageNumber: this.pageNumber, PageSize: this.pageSize }\r\n this.booleanSearchService.setPaginationInformation(PAGE_INFORMATION)\r\n this.booleanSearchService.isCandidateSearchedFromBooleanSearch$.pipe(first()).subscribe({\r\n next: (isFromBooleanSearch) => {\r\n if (isFromBooleanSearch) {\r\n this._getBooleanSearchCandidate()\r\n } else {\r\n this.getConsultantData()\r\n }\r\n },\r\n })\r\n }\r\n\r\n announceSortChange(sortState: Sort) {\r\n if (sortState.direction) {\r\n this.sortField = sortState.active\r\n this.sortOrder = sortState.direction\r\n this.pageNumber = 1\r\n this.consultantList = []\r\n this.getConsultantData()\r\n }\r\n }\r\n\r\n toggleColumnVisibility(column, event) {\r\n if (column.property == 'FirstName') {\r\n return\r\n }\r\n event.stopPropagation()\r\n event.stopImmediatePropagation()\r\n column.visible = !column.visible\r\n }\r\n\r\n trackByProperty(index: number, column: TableColumn) {\r\n return column.property\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe$.next()\r\n this.ngUnSubscribe$.complete()\r\n this.candidateFilterOptions?.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n })\r\n this._resetBooleanFilters()\r\n this.booleanSearchService.setIsFromJobValue(this.isFromJobSearch)\r\n }\r\n private _resetBooleanFilters() {\r\n this.observableService.clearModuleLevelTextForCandidate()\r\n this.booleanSearchService.setDefaultValueForBooleanFilterCounter()\r\n this.booleanSearchService.setRequiredSkills([])\r\n this.booleanSearchService.setPreferredSkills([])\r\n this.booleanSearchService.setExcludedSkills([])\r\n this.booleanSearchService.setAddSuggestedKeyword('')\r\n this.booleanSearchService.setCurrentlyActiveInput(0)\r\n this.booleanSearchService.updateQuerySearchInputText('')\r\n this.booleanSearchService.resetPaginationForBooleanSearch()\r\n this.booleanSearchService.isCandidateSearchedFromBooleanSearch$.pipe(first()).subscribe({\r\n next: (isBooleanSearch) => {\r\n if (isBooleanSearch) {\r\n this.booleanSearchService.toggleBooleanSearchCandidateMethod(false)\r\n }\r\n },\r\n })\r\n }\r\n private _booleanValueChange() {\r\n this.booleanSearchService.isCandidateSearchedFromBooleanSearch$.pipe(first()).subscribe({\r\n next: (isBooleanSearch) => {\r\n if (isBooleanSearch) {\r\n this.isBooleanSearch = isBooleanSearch\r\n this.booleanSearchService.toggleBooleanSearchCandidateMethod(!isBooleanSearch)\r\n }\r\n },\r\n })\r\n }\r\n closeUploadDialog() {\r\n this.isLoading = false\r\n this.uploadDialog.close()\r\n this.myFiles = []\r\n this.isResumeData = false\r\n }\r\n openBulkUploadDialog(templateRef) {\r\n this.uploadDialog = this.dialog.open(templateRef, {\r\n width: '650px',\r\n height: '79vh',\r\n })\r\n }\r\n getFileDetails(e) {\r\n for (var i = 0; i < e.target.files.length; i++) {\r\n this.myFiles.push(e.target.files[i])\r\n }\r\n this.isResumeData = false\r\n }\r\n\r\n uploadFiles() {\r\n this.isResumeData = false\r\n this.isLoading = true\r\n const frmData = new FormData()\r\n\r\n for (var i = 0; i < this.myFiles.length; i++) {\r\n frmData.append('fileUpload', this.myFiles[i])\r\n }\r\n this.signalRService.setProgressReport(1)\r\n this.consultantService\r\n .bulkResumeUploadNew(frmData, this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (event) => {\r\n this.isLoading = false\r\n this.uploadDialog.close()\r\n this.myFiles = []\r\n this.isResumeData = false\r\n if (event instanceof HttpResponse) {\r\n this.isLoading = false\r\n this.myFiles = []\r\n }\r\n },\r\n (err: any) => {\r\n this.isLoading = false\r\n this.myFiles = null\r\n }\r\n )\r\n }\r\n\r\n private _subscribeToDiceResults() {\r\n // this.booleanSearchService.diceCandidateResult$\r\n // .pipe(\r\n // filter((result) => (result?.length ? true : false)),\r\n // takeUntil(this.ngUnSubscribe$)\r\n // )\r\n // .subscribe((diceCandidates: []) => {\r\n // this.consultantList = diceCandidates\r\n // this.totalLength = this.consultantList[0]?.TotalCount\r\n // this.dataSource.data = diceCandidates\r\n // })\r\n }\r\n onGridDiceColumnClick(consultantId, consultantJob?) {\r\n this.consultantService\r\n .getDiceConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = consultantJob ? consultantJob : null\r\n Common.activeConsultant = res\r\n this.activeConsultant = res\r\n Common.activeJobId = this.jobId\r\n this.matchedPercentage = consultantJob?.MatchPercentage\r\n this.openQuickpanel(true, consultantId)\r\n this.removeParams()\r\n })\r\n }\r\n\r\n private _updateRowValue() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((data) => {\r\n if (!data && this.isGridClick) {\r\n if (\r\n this.dataSource?.filteredData[this.selectedCandidateIndex]?.ConsultantID == undefined ||\r\n this.dataSource?.filteredData[this.selectedCandidateIndex]?.ConsultantID == null ||\r\n this.dataSource?.filteredData[this.selectedCandidateIndex]?.ConsultantID == 0\r\n ) {\r\n this.dataSource?.filteredData[this.selectedCandidateIndex]?.ConsultantID ==\r\n Common?.activeConsultant?.ConsultantId\r\n }\r\n }\r\n })\r\n }\r\n onScroll(event: any): void {\r\n const scrollTop = event.target.scrollTop\r\n const scrollHeight = event.target.scrollHeight\r\n const clientHeight = event.target.clientHeight\r\n const isScrollingDown = scrollTop > this.lastScrollTop\r\n this.lastScrollTop = scrollTop\r\n\r\n if (isScrollingDown) {\r\n if (scrollTop + clientHeight >= scrollHeight - 250) {\r\n if (!this.isLoading && this.hasMoreData) {\r\n this._getBooleanSearchCandidate()\r\n this.isScrolled = true\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _getBooleanSearchCandidate() {\r\n this._booleanValueChange()\r\n this.isLoading = true\r\n combineLatest([\r\n this.booleanSearchService.additionalCriteria$,\r\n this.commonService.getStates(),\r\n this.booleanSearchService.paginationInformation,\r\n this.booleanSearchService.requiredSkills$,\r\n this.booleanSearchService.excludedSkills$,\r\n this.booleanSearchService.requiredJobTitles$,\r\n this.booleanSearchService.excludedJobTitles$,\r\n this.booleanSearchService.preferredSkills$,\r\n this.booleanSearchService.isShowAdvanceSearch$,\r\n this.booleanSearchService.querySearchInputText$,\r\n this.booleanSearchService.requiredCandidateNames$,\r\n this.booleanSearchService.requiredCandidateEmailAddres$,\r\n this.booleanSearchService.requiredCandidatePhoneno$,\r\n ])\r\n .pipe(first())\r\n .subscribe(\r\n ([\r\n additionalCriteria,\r\n states,\r\n pageInformation,\r\n requiredSkills,\r\n excludedSkills,\r\n requiredJobTitles,\r\n excludedJobTitles,\r\n preferredSkills,\r\n isAdvanceSearch,\r\n querySearchInputText,\r\n requiredCandidatNames,\r\n requiredCandidaEmailaddress,\r\n requiredCandidatePhoneno,\r\n ]) => {\r\n this.booleanSearchService.booleanSearchFilterOptions = this.candidateFilterOptions\r\n const REQUIRED_SKILLS = requiredSkills.length\r\n ? [...requiredSkills]\r\n : this.requiredSkillSearchText\r\n ? this.requiredSkillSearchText.split(',').map((subSkill) => subSkill.trim())\r\n : []\r\n const PREFERRED_SKILLS = preferredSkills.length\r\n ? [...preferredSkills]\r\n : this.preferredSkillSearchText\r\n ? this.preferredSkillSearchText.split(',').map((subSkill) => subSkill.trim())\r\n : []\r\n this.booleanSearchService.setPreferredSkills(PREFERRED_SKILLS)\r\n const EXCLUDED_SKILLS = excludedSkills.length ? [...excludedSkills] : []\r\n const REQUIRED_JOB_TITLES = requiredJobTitles.length ? [...requiredJobTitles] : []\r\n const EXCLUDED_JOB_TITLES = excludedJobTitles.length ? [...excludedJobTitles] : []\r\n const CITY = this.citySearchText ? this.citySearchText : ''\r\n // const CITY = additionalCriteria.find((criteria) => criteria.filterName === 'City')?.length\r\n // ? additionalCriteria.find((criteria) => criteria.filterName === 'City').filterValue\r\n // : ''\r\n\r\n const LAST_RESUME_UPDATED = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Last Resume Updated'\r\n )\r\n ? parseInt(\r\n additionalCriteria.find((criteria) => criteria.filterName === 'Last Resume Updated')\r\n .filterValue\r\n )\r\n : 0\r\n const MINIMUM_EXPERIENCE = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Minimum Experience'\r\n )\r\n ? parseInt(\r\n additionalCriteria.find((criteria) => criteria.filterName === 'Minimum Experience')\r\n .filterValue\r\n )\r\n : 0\r\n\r\n const DISTANCE = additionalCriteria.find((criteria) => criteria.filterName === 'Distance')\r\n ? parseInt(\r\n additionalCriteria.find((criteria) => criteria.filterName === 'Distance').filterValue\r\n )\r\n : 50\r\n const DISTANCE_UNIT = additionalCriteria.find((criteria) => criteria.filterName === 'Distance Unit')\r\n ?.length\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'Distance Unit').filterValue\r\n : ''\r\n\r\n const LEGAL_STATUS = additionalCriteria.find((criteria) => criteria.filterName === 'Work Permit')\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'Work Permit').filterValue\r\n : []\r\n\r\n const MAXIMUM_EXPERIENCE = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Maximum Experience'\r\n )\r\n ? parseInt(\r\n additionalCriteria.find((criteria) => criteria.filterName === 'Maximum Experience')\r\n .filterValue\r\n )\r\n : 0\r\n const JOB_TITLE = additionalCriteria.find((criteria) => criteria.filterName === 'Job Title')\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'Job Title').filterValue\r\n : ''\r\n const sourceCriteria = additionalCriteria.find((criteria) => criteria.filterName === 'Source')\r\n\r\n let CANDIDATE_DATA_SOURCE: number\r\n\r\n if (sourceCriteria && !this.isFromJobSearch) {\r\n if (\r\n sourceCriteria.filterValue?.includes(CandidateDataSource.Leaptiger) &&\r\n sourceCriteria.filterValue?.includes(CandidateDataSource.Dice) &&\r\n sourceCriteria.filterValue?.includes(CandidateDataSource.CareerBuilder)\r\n ) {\r\n CANDIDATE_DATA_SOURCE = CandidateDataSource.All\r\n } else if (sourceCriteria.filterValue?.length === 1) {\r\n CANDIDATE_DATA_SOURCE = sourceCriteria?.filterValue[0]\r\n }\r\n } else {\r\n if (this.isFromJobSearch) {\r\n CANDIDATE_DATA_SOURCE = CandidateDataSource.All\r\n } else {\r\n CANDIDATE_DATA_SOURCE = CandidateDataSource.Leaptiger\r\n }\r\n }\r\n\r\n const SALARY_VALUE = additionalCriteria.find((criteria) => criteria.filterName === 'Salary')\r\n ? parseInt(additionalCriteria.find((criteria) => criteria.filterName === 'Salary').filterValue)\r\n : 0\r\n let SALARY\r\n if (SALARY_VALUE != 0) {\r\n SALARY = SALARY_VALUE\r\n }\r\n const OPERATOR = additionalCriteria.find((criteria) => criteria.filterName === 'Salary')\r\n\r\n const STATE_NAME = this.stateSearchText ? this.stateSearchText : ''\r\n // const STATE_NAME = additionalCriteria.find((criteria) => criteria.filterName === 'State')\r\n // ? additionalCriteria.find((criteria) => criteria.filterName === 'State').filterValue\r\n // : ''\r\n let stateCode = ''\r\n if (STATE_NAME) {\r\n stateCode = states.find((state) => state.StateName === STATE_NAME)\r\n ? states.find((state) => state.StateName === STATE_NAME).StateCode\r\n : ''\r\n }\r\n const CANDIDATE_TITLE = additionalCriteria.find(\r\n (criteria) => criteria.filterName === 'Candidate Title'\r\n )\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'Candidate Title').filterValue\r\n : ''\r\n const SORT_FIELD = additionalCriteria.find((criteria) => criteria.filterName === 'Sort Field')\r\n ? additionalCriteria.find((criteria) => criteria.filterName === 'Sort Field').filterValue\r\n : ''\r\n\r\n let JOB_ID\r\n if (this.isFromJobSearch) {\r\n JOB_ID = Common?.activeJob?.JobId\r\n } else {\r\n JOB_ID = 0\r\n }\r\n\r\n let searchCriteria = {}\r\n\r\n this.candidateNameSearchText = requiredCandidatNames\r\n ? requiredCandidatNames\r\n : this.candidateNameSearchText\r\n this.candidateEmailSearchText = requiredCandidaEmailaddress\r\n ? requiredCandidaEmailaddress\r\n : this.candidateEmailSearchText\r\n\r\n if (isAdvanceSearch) {\r\n searchCriteria = {\r\n CandidateTitle: this.isFromJobSearch ? this.jobSearch?.JobTitleName : CANDIDATE_TITLE,\r\n EmailAddress: this.candidateEmailSearchText\r\n ? this.candidateEmailSearchText\r\n : this.candidateModuleLevelSearchText,\r\n candidateName: this.candidateNameSearchText ? this.candidateNameSearchText : '',\r\n CandidateDataSource: CANDIDATE_DATA_SOURCE,\r\n SearchText: querySearchInputText,\r\n StateName: STATE_NAME.trim(),\r\n Phoneno: requiredCandidatePhoneno ? requiredCandidatePhoneno : '',\r\n MinimumExperience: MINIMUM_EXPERIENCE,\r\n MaximumExperience: MAXIMUM_EXPERIENCE,\r\n LastUpdated: this.lastUpdated == 0 ? null : this.lastUpdated,\r\n JobId: JOB_ID,\r\n PageNumber: pageInformation.PageNumber,\r\n PageSize: pageInformation.PageSize,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n Zipcode: 0,\r\n Distance: DISTANCE ? DISTANCE : 50,\r\n UserId: this.authService.userInfo.userID,\r\n DistanceUnit: DISTANCE_UNIT ? DISTANCE_UNIT : 'miles',\r\n LegalStatus: LEGAL_STATUS?.join(',') || '',\r\n JobTitle: this.isFromJobSearch ? this.jobSearch?.JobTitleName : JOB_TITLE,\r\n\r\n City: CITY ? CITY : '',\r\n Salary: {\r\n salary: SALARY ? SALARY : 0,\r\n operator: OPERATOR?.operator,\r\n },\r\n }\r\n } else {\r\n searchCriteria = {\r\n CandidateTitle: this.isFromJobSearch ? this.jobSearch?.JobTitleName : CANDIDATE_TITLE,\r\n candidateName: this.candidateNameSearchText\r\n ? this.candidateNameSearchText\r\n : this.candidateModuleLevelSearchText,\r\n EmailAddress: this.candidateEmailSearchText ? this.candidateEmailSearchText : '',\r\n CandidateDataSource: CANDIDATE_DATA_SOURCE,\r\n RequiredSkills: REQUIRED_SKILLS,\r\n PreferredSkills: PREFERRED_SKILLS,\r\n ExcludedSkills: EXCLUDED_SKILLS,\r\n Phoneno: requiredCandidatePhoneno ? requiredCandidatePhoneno : '',\r\n RequiredJobTitles: REQUIRED_JOB_TITLES,\r\n ExcludedJobTitles: EXCLUDED_JOB_TITLES,\r\n MinimumExperience: MINIMUM_EXPERIENCE,\r\n MaximumExperience: MAXIMUM_EXPERIENCE,\r\n LastUpdated: this.lastUpdated == 0 ? null : this.lastUpdated,\r\n StateName: STATE_NAME.trim(),\r\n JobId: JOB_ID,\r\n Distance: DISTANCE ? DISTANCE : 50,\r\n DistanceUnit: DISTANCE_UNIT ? DISTANCE_UNIT : 'miles',\r\n UserId: this.authService.userInfo.userID,\r\n LegalStatus: LEGAL_STATUS?.join(',') || '',\r\n PageNumber: this.pageNumber,\r\n PageSize: pageInformation.PageSize,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n Zipcode: 0,\r\n SearchText: '',\r\n JobTitle: this.isBooleanSearch ? JOB_TITLE : this.titlesSelected,\r\n City: CITY ? CITY : '',\r\n Salary: {\r\n salary: SALARY ? SALARY : 0,\r\n operator: OPERATOR?.operator,\r\n },\r\n }\r\n }\r\n\r\n if (this.isFromCachedSearch) {\r\n searchCriteria['CandidateDataSource'] = this.isDiceData\r\n ? CandidateDataSource.Dice || CandidateDataSource.CareerBuilder\r\n : CandidateDataSource.Leaptiger\r\n }\r\n this.getDiceOrCachedCandidates(searchCriteria)\r\n .pipe(first(), takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (diceCandidates) => {\r\n this.isBooleanSearch = false\r\n // this.totalLength = 0\r\n // this.consultantList = diceCandidates\r\n if (diceCandidates && diceCandidates.length > 0) {\r\n this.totalLength = diceCandidates[0]?.TotalCount // Update total length\r\n this.hasMoreData = this.consultantList.length < this.totalLength\r\n if (this.hasMoreData) {\r\n this.pageNumber++\r\n // this.isScrolled=false\r\n } else {\r\n this.notifyService.showInfo(\r\n 'You have reached the end of the candidate list',\r\n 'Candidate List'\r\n )\r\n }\r\n this.consultantList = [...this.consultantList, ...diceCandidates]\r\n this.dataSource.data = this.consultantList\r\n this.dataSource = new TableVirtualScrollDataSource(this.consultantList)\r\n }\r\n this.isLoading = false\r\n this.booleanSearchService.booleanSearchFilterOptions = this.candidateFilterOptions\r\n // console.log(this.booleanSearchService.booleanSearchFilterOptions)\r\n if (this.initialLoaded && !this.isConsultantOpen) {\r\n this.initialLoaded = false\r\n this.openBooleanSearch()\r\n }\r\n },\r\n (err) => {\r\n if (err.status === 500) {\r\n this.isLoading = false\r\n this.isBooleanSearch = false\r\n this.notifyService.showError(\r\n 'Please contact administrator to configure the redis server',\r\n 'redis server'\r\n )\r\n } else {\r\n this.isLoading = false\r\n }\r\n }\r\n )\r\n }\r\n )\r\n }\r\n\r\n private getDiceOrCachedCandidates(searchCriteria) {\r\n return this.isFromCachedSearch\r\n ? this.consultantService.getCachedCandidates(searchCriteria)\r\n : this.consultantService.getDiceCandidates(searchCriteria)\r\n }\r\n\r\n private _subscribeToGetBooleanCandidateObs() {\r\n this.booleanSearchService.getCandidateFromBooleanSearch$\r\n .pipe(\r\n filter((value) => value != 0),\r\n takeUntil(this.ngUnSubscribe$)\r\n )\r\n .subscribe({\r\n next: () => {\r\n this.isFromCachedSearch = false\r\n\r\n this.consultantList = []\r\n this.pageNumber = 1\r\n this._getBooleanSearchCandidate()\r\n this.paginator?.firstPage()\r\n },\r\n })\r\n }\r\n\r\n private _createBooleanSearchParams() {\r\n let activeFilterOptions = this.booleanSearchService.booleanSearchFilterOptions.filter(\r\n (item) =>\r\n item.name != 'Last Resume Updated' && item.name != 'Email Address' && item.name != 'Candidate Name'\r\n // (item.selectedOptions || item.searchText)\r\n )\r\n const UNIQUE_FILTERS = this.booleanFilters\r\n .map((booleanFilter) => {\r\n if (!activeFilterOptions.filter((filter) => filter?.name == booleanFilter?.name).length) {\r\n return booleanFilter\r\n }\r\n })\r\n .filter((item) => item)\r\n\r\n activeFilterOptions = [...activeFilterOptions, ...UNIQUE_FILTERS]\r\n\r\n let additionalCriteria = []\r\n\r\n activeFilterOptions.map((filter) => {\r\n if (filter?.isActive) {\r\n if (filter?.name === 'Source') {\r\n let CANDIDATE_DATA_SOURCE_ID = []\r\n filter.selectedOptions.map((id) => {\r\n CANDIDATE_DATA_SOURCE_ID.push(id)\r\n })\r\n additionalCriteria.push({\r\n filterName: 'Source',\r\n operator: '',\r\n filterValue: this.isFromJobSearch\r\n ? [\r\n CandidateDataSource.Dice,\r\n CandidateDataSource.Leaptiger,\r\n CandidateDataSource.CareerBuilder,\r\n ]\r\n : CANDIDATE_DATA_SOURCE_ID.length === 0\r\n ? [CandidateDataSource.Leaptiger]\r\n : CANDIDATE_DATA_SOURCE_ID.includes(64) &&\r\n CANDIDATE_DATA_SOURCE_ID.includes(65) &&\r\n CANDIDATE_DATA_SOURCE_ID.includes(66)\r\n ? [CandidateDataSource.All]\r\n : CANDIDATE_DATA_SOURCE_ID,\r\n })\r\n } else if (filter?.name === 'Required Skills') {\r\n let skills = filter?.searchText?.split(',')\r\n this.booleanSearchService.setRequiredSkills(skills)\r\n } else if (filter?.name === 'State' && (filter?.searchText || this.stateSearchText)) {\r\n {\r\n additionalCriteria.push({\r\n filterName: 'State',\r\n operator: '',\r\n filterValue: this.stateSearchText ? this.stateSearchText : '',\r\n })\r\n }\r\n } else if (filter?.name === 'Last Resume Updated' && (filter?.searchText || this.lastUpdated)) {\r\n {\r\n additionalCriteria.push({\r\n filterName: 'Last Resume Updated',\r\n operator: '',\r\n filterValue: this.lastUpdated ? this.lastUpdated : '',\r\n })\r\n }\r\n } else if (filter?.name === 'City' && (filter?.searchText || this.citySearchText)) {\r\n additionalCriteria.push({\r\n filterName: 'City',\r\n operator: '',\r\n filterValue: this.citySearchText ? this.citySearchText : '',\r\n })\r\n }\r\n }\r\n })\r\n this.booleanSearchService.updateAdditionalCriteria(additionalCriteria)\r\n }\r\n handleMissingImage(event, row) {\r\n row['imageError'] = true\r\n ;(event.target as HTMLImageElement).style.display = 'none'\r\n }\r\n\r\n getLegalTypeNameById(legalTypeId: number) {\r\n return this.legalTypeData?.find((legalType) => Number(legalType.Value) === legalTypeId)?.Key || ''\r\n }\r\n\r\n uploadCandidateResume(uploadCandidate) {\r\n this.uploadDialogResume = this.dialog.open(uploadCandidate, {\r\n width: '650px',\r\n height: '330px',\r\n disableClose: true,\r\n })\r\n }\r\n close() {\r\n this.isLoading = false\r\n this.uploadDialogResume.close()\r\n this.resumeFile = []\r\n this.isResume = false\r\n }\r\n getResumeDetails(fileList: File[]) {\r\n // fileList.forEach((file) => {\r\n // this.resumeFile.push(file)\r\n // this.resumeFileName = file.name\r\n // this.isResume = this.resumeFileName.length > 0\r\n // })\r\n this.resumeFile = [fileList[0]]\r\n this.resumeFileName = this.resumeFile[0].name\r\n this.isResume = this.resumeFileName.length > 0\r\n this.isResumeData = false\r\n }\r\n\r\n uploadResume() {\r\n this.isLoading = true\r\n this.dialog.closeAll()\r\n const frmData = new FormData()\r\n for (var i = 0; i < this.resumeFile.length; i++) {\r\n frmData.append('Resume', this.resumeFile[i])\r\n }\r\n //TODO: Need to change date and user id\r\n const resumeLastUpdate = this.formatDate(new Date())\r\n const userId = (JSON.parse(localStorage.getItem('userinfo')) as { userID?: number }).userID\r\n\r\n frmData.append('ResumeLastUpdate', resumeLastUpdate)\r\n frmData.append('UserId', userId.toString())\r\n\r\n this.consultantService\r\n .getCandidateSaveResumeData(frmData)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe({\r\n next: (event: any) => {\r\n this.resumeFile = null\r\n if (event instanceof HttpResponse) {\r\n this.isLoading = false\r\n if (Number(event?.body?.UploadStatus?.Code || 0) === 500 || !event?.body?.ConsultantID) {\r\n this.notifyService.showError(\r\n 'Error while parsing resume, please try again later',\r\n 'Candidate Resume'\r\n )\r\n this.uploadDialogResume.close()\r\n } else {\r\n this.resumeFile = []\r\n if (event?.body?.EmailAddress != null) {\r\n this.router.navigate(['candidates/', event?.body?.ConsultantID], {\r\n state: {\r\n consultantData: event?.body,\r\n isAddFlow: false,\r\n isFromAddCandidate: true,\r\n },\r\n })\r\n } else {\r\n this.notifyService.showError(\r\n 'The resume is missing an email address. Please ensure it is included.',\r\n 'Candidate Resume'\r\n )\r\n }\r\n }\r\n }\r\n },\r\n error: () => {\r\n this.isLoading = false\r\n this.resumeFile = null\r\n this.notifyService.showError(\r\n 'Error while parsing resume, please try again later',\r\n 'Candidate Resume'\r\n )\r\n },\r\n })\r\n }\r\n\r\n formatDate(date: Date): string {\r\n const pad = (num: number, length: number) => num.toString().padStart(length, '0')\r\n\r\n const year = date.getFullYear()\r\n const month = pad(date.getMonth() + 1, 2) // Months are 0-based\r\n const day = pad(date.getDate(), 2)\r\n const hours = pad(date.getHours(), 2)\r\n const minutes = pad(date.getMinutes(), 2)\r\n const seconds = pad(date.getSeconds(), 2)\r\n const milliseconds = pad(date.getMilliseconds(), 3)\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`\r\n }\r\n getJobTitleOptions(allOptions: any): Option[] {\r\n let jobTitleOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n jobTitleOptions.push({ key: item.JobTitleID, value: item.JobTitleName })\r\n })\r\n return jobTitleOptions\r\n }\r\n\r\n getPercentageClass(percentage: number): string {\r\n if (percentage >= 80) {\r\n return 'high-percentage'\r\n } else if (percentage >= 50) {\r\n return 'medium-percentage'\r\n } else {\r\n return 'low-percentage'\r\n }\r\n }\r\n\r\n openBooleanSearch() {\r\n this.layoutService.openQuickpanel()\r\n this.commonService.setComponentData({})\r\n this.loadComponent.createComponent('boolean', Number(35))\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Showing {{ consultantList.length }} / {{ totalLength | number }} Candidates Results\r\n
\r\n\r\n
\r\n {{ totalLength | number }} Candidate(s) Matched for the job {{ jobDetails?.JobTitleName }} ({{\r\n jobId\r\n }}),\r\n {{ jobDetails?.CompanyName }}.\r\n \r\n
\r\n
\r\n 0\"\r\n (click)=\"exportDiceCandidates()\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n matTooltip=\"Export Candidates to CSV\"\r\n >\r\n \r\n \r\n \r\n filter_list\r\n \r\n \r\n \r\n \r\n {{ column.label }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n add Add Candidate\r\n \r\n \r\n \r\n
\r\n
\r\n 0\"\r\n class=\"consultant-table-container\"\r\n [ngClass]=\"{ 'overflow-x-hidden': expand.value }\"\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 &&\r\n !row['imageError']\r\n \"\r\n [src]=\"row['imageError'] ?? filePath + row['ImageUrl']\"\r\n class=\"candidate-profile-image\"\r\n (error)=\"handleMissingImage($event, row)\"\r\n />\r\n {{\r\n row['FirstName'] && row['LastName']\r\n ? row['FirstName'][0] + row['LastName'][0]\r\n : row['FirstName'] && !row['LastName']\r\n ? row['FirstName'][0]\r\n : ''\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Name & Skills\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ element.FirstName | titlecase }}\r\n {{ element.LastName | titlecase }}\r\n \r\n \r\n {{ element.CandidateTitle | titlecase | slice : 0 : 30 }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">Match %\r\n \r\n \r\n
0\">\r\n \r\n {{ element?.MatchPercentage }}%\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Employment
\r\n Type\r\n \r\n \r\n \r\n \r\n {{ element.CandidateType | nullValueReplace }}\r\n \r\n \r\n
\r\n \r\n \r\n Experience
\r\n (In years)\r\n \r\n \r\n \r\n \r\n {{ element.Experience | nullValueReplace }}\r\n \r\n \r\n
\r\n \r\n \r\n Work
\r\n Permit\r\n \r\n \r\n \r\n 0\"\r\n src=\"assets/img/Leap-Tiger_Icons/Candidate-Module-Icon/work-permit.svg\"\r\n alt=\"work permit icon\"\r\n />\r\n {{ getLegalTypeNameById(element.LegalTypeID) | nullValueReplace }}\r\n \r\n \r\n
\r\n\r\n \r\n \r\n Location\r\n \r\n \r\n \r\n \r\n
\r\n {{ element.City }}, {{ element.StateCode }}\r\n
\r\n
\r\n {{ element.City }}\r\n
\r\n
\r\n {{ element.StateCode }}\r\n
\r\n
\r\n {{ '' | nullValueReplace }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n Willing To
\r\n Relocate\r\n \r\n \r\n {{ element.Relocate == true ? 'Yes' : 'No' }}\r\n \r\n
\r\n \r\n \r\n Job Type\r\n \r\n \r\n {{ jobTypeConvertor(element?.JobTypeId) | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n Expected
\r\n Pay Rate\r\n \r\n\r\n \r\n \r\n 0\"\r\n >\r\n {{ element?.ExpectedSalary | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}\r\n \r\n 0 &&\r\n isPayRateVisible(element?.JobTypeId) &&\r\n element?.ExpectedPayRate > 0\r\n \"\r\n >|\r\n 0\"\r\n >\r\n {{\r\n element?.ExpectedPayRate | currency : 'USD' : 'symbol-narrow' : '1.0-0'\r\n }}\r\n \r\n {{\r\n '' | nullValueReplace\r\n }}\r\n \r\n \r\n
\r\n \r\n \r\n Time Spent
\r\n (Calls)\r\n \r\n \r\n \r\n \r\n 0.5 hrs\r\n \r\n \r\n
\r\n\r\n \r\n \r\n Source\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Resume
\r\n Last Updated\r\n \r\n \r\n
\r\n {{ element.LastUpdateTime | nullValueReplace }}\r\n
\r\n \r\n
\r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
No candidate were found matching your search
\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Upload Bulk Resumes\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
* {{ file.name }}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Resume{{ element.FileName }}Status\r\n \r\n {{ element.UploadStatus }}\r\n \r\n \r\n {{ element.UploadStatus }}\r\n \r\n Commment\r\n {{ element.UploadComment }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n Upload Resume\r\n close\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n 0)\"\r\n mat-raised-button\r\n >\r\n Upload\r\n \r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ToolbarModule } from '../../shared/core/layout/toolbar/toolbar.module'\r\nimport { FooterModule } from '../../shared/core/layout/footer/footer.module'\r\nimport { ConsultantListComponent } from './consultant-list.component'\r\nimport { LayoutModule } from '../../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatSortModule } from '@angular/material/sort'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { ContainerModule } from '../../shared/core/directives/container/container.module'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { ConsultantJobStatusFilterPipe } from './consultantjobstatus.pipe'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { JobCreateUpdateModule } from 'src/app/Job/job-list/job-create-update/job-create-update.module'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { MatDatepickerModule } from '@angular/material/datepicker'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle'\r\nimport { JobModule } from 'src/app/job/job.module'\r\nimport { MatDividerModule } from '@angular/material/divider'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { ConsultantCardListComponent } from '../consultant-card-list/consultant-card-list.component'\r\nimport { FiltersComponent } from 'src/app/shared/filters/filters.component'\r\nimport { PortalModule } from '@angular/cdk/portal'\r\nimport { SharedModule } from 'src/app/shared/shared.module'\r\nimport { ConsultantJobListComponent } from '../consultant-job-list/consultant-job-list.component'\r\nimport { ScrollingModule } from '@angular/cdk/scrolling'\r\nimport { TableVirtualScrollModule } from 'ng-table-virtual-scroll'\r\n\r\n@NgModule({\r\n declarations: [\r\n ConsultantListComponent,\r\n ConsultantCardListComponent,\r\n ConsultantJobStatusFilterPipe,\r\n ConsultantJobListComponent,\r\n ],\r\n imports: [\r\n TableVirtualScrollModule,\r\n ScrollingModule,\r\n CommonModule,\r\n ToolbarModule,\r\n FooterModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n JobCreateUpdateModule,\r\n MatSidenavModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatCheckboxModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n IconModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n ReactiveFormsModule,\r\n ContainerModule,\r\n MatSelectModule,\r\n NgxLoadingModule.forRoot({}),\r\n MatDatepickerModule,\r\n MatToolbarModule,\r\n MatInputModule,\r\n FlexLayoutModule,\r\n MatSlideToggleModule,\r\n JobModule,\r\n PortalModule,\r\n MatDividerModule,\r\n MatRadioModule,\r\n /////\r\n CommonModule,\r\n ToolbarModule,\r\n FooterModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n MatSidenavModule,\r\n\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatAutocompleteModule,\r\n IconModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n ReactiveFormsModule,\r\n ContainerModule,\r\n MatSelectModule,\r\n SharedModule,\r\n ],\r\n providers: [FiltersComponent],\r\n})\r\nexport class ConsultantListModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Common } from 'src/app/common/common';\r\nimport { iDbResult, iMenuItem, ActiveObject, iKeyValue } from 'src/app/models/common.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n@Pipe({\r\n name: 'ConsultantJobStatusFilter'\r\n})\r\n\r\nexport class ConsultantJobStatusFilterPipe implements PipeTransform {\r\n constructor(\r\n\r\n public authService: AuthenticationService,\r\n ) { }\r\n transform(items: iMenuItem[], statusID: number): any[] {\r\n if(!items) return [];\r\n if(!statusID) return items;\r\n//searchText = searchText.toLowerCase();\r\nvar astat\r\nvar statusName\r\n\r\nif (statusID==16){\r\n //Shortlisted\r\n}\r\nelse{\r\n astat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == statusID\r\n && item.RoleID == this.authService.userInfo.roles[0].roleID));\r\n \r\n}\r\n\r\nif ( Common.wfStatus!=null){\r\n statusName = Common.wfStatus.find(a => a.StatusID ==statusID )?.Name;\r\n}\r\n\r\n\r\nastat.unshift({\r\n MenuID: -1,\r\n PageID: -1,\r\n ComponentID: 3,\r\n ComponentCode: null,\r\n ComponentName: null,\r\n ComponentDescription: null,\r\n MenuItemID: -1,\r\n MenuCode: statusID.toString(),\r\n MenuName:statusName,\r\n MenuDescription: null,\r\n MenuFunction: null,\r\n MenuUrl: null,\r\n MenuIcon: null,\r\n MenuTypeID: null,\r\n MenuType: null,\r\n ParentMenuItemID: null,\r\n RoleID: null,\r\n RoleCode: null,\r\n RoleName: null,\r\n RoleDescription: null,\r\n StatusID: statusID,\r\n StatusCode: null,\r\n StatusName: statusName,\r\n StatusDescription: null,\r\n }); \r\n \r\n return astat;\r\n }\r\n \r\n}","import { Component, Input, OnInit } from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Router } from '@angular/router'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { FilterObject } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { NotesDialogComponent } from 'src/app/shared/notes-dialog/notes-dialog.component'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { CANDIDATE_ADD_ACTION, CANDIDATE_EDIT_ACTION } from 'src/app/enums/userActions'\r\n\r\n@Component({\r\n selector: 'consultant-notes',\r\n templateUrl: './consultant-notes.component.html',\r\n styleUrls: ['./consultant-notes.component.scss'],\r\n})\r\nexport class ConsultantNotesComponent implements OnInit {\r\n activeConsultant = Common.activeConsultant\r\n notesList: any\r\n storeJobFilter: FilterObject = {}\r\n @Input() consultantSource: any\r\n notesColumns: string[] = ['Author', 'Actions', 'JobCode', 'DateAdded', 'Comments']\r\n loading: boolean = false\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private consultantService: ConsultantService,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private notifyService: NotificationService,\r\n private authService: AuthenticationService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getNotes()\r\n }\r\n\r\n openJob(jobCode) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n Common.activeConsultant = null\r\n this.saveJobFilter(jobCode)\r\n this.router.navigate(['/jobs/'])\r\n }\r\n\r\n saveJobFilter(jobCode) {\r\n var jobPersistedFilterValue = JSON.parse(\r\n localStorage.getItem('joblist_FilterId_' + this.authService.userInfo.userID)\r\n )\r\n this.storeJobFilter.userId = Number(this.authService.userInfo.userID)\r\n this.storeJobFilter.pageName = 'joblist'\r\n this.storeJobFilter.filterControls = jobPersistedFilterValue.filterControls\r\n this.storeJobFilter.filterValues = [\r\n { Key: 'companySearch', Value: '' },\r\n { Key: 'company', Value: '' },\r\n { Key: 'statusSearch', Value: '' },\r\n { Key: 'status', Value: '' },\r\n { Key: 'titleSearch', Value: '' },\r\n { Key: 'title', Value: '' },\r\n { Key: 'recruiterSearch', Value: '' },\r\n { Key: 'recruiter', Value: '' },\r\n { Key: 'jobId', Value: '' },\r\n { Key: 'jobCode', Value: jobCode },\r\n { Key: 'postedFrom', Value: '' },\r\n { Key: 'postedTo', Value: '' },\r\n { Key: 'citySearch', Value: '' },\r\n { Key: 'city', Value: '' },\r\n { Key: 'stateSearch', Value: '' },\r\n { Key: 'states', Value: '' },\r\n { Key: 'jobtype', Value: '' },\r\n ]\r\n this.storeJobFilter.gridColumns = jobPersistedFilterValue.gridColumns\r\n localStorage.setItem(\r\n 'joblist_FilterId_' + this.authService.userInfo.userID,\r\n JSON.stringify(this.storeJobFilter)\r\n )\r\n }\r\n\r\n addNotes() {\r\n let dialogRef = this.dialog.open(NotesDialogComponent, {\r\n width: '800px',\r\n disableClose: true,\r\n data: { activeContact: this.activeConsultant, activeJob: null },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.getNotes()\r\n this.notifyService.showSuccess('Notes added successfully!', 'Notes')\r\n }\r\n })\r\n }\r\n\r\n getNotes() {\r\n let notesRequestModel = {\r\n JobId: null,\r\n ContactId: this.activeConsultant.ContactId,\r\n }\r\n this.loading = true\r\n this.consultantService.getNotes(notesRequestModel).subscribe(\r\n (res) => {\r\n this.loading = false\r\n this.notesList = res\r\n },\r\n (error) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n Notes\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \"Nothing\r\n Nothing Found\r\n Reference site about Lorem Ipsum, giving information on its origins.\r\n
\r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Author\r\n
\r\n {{ element.Author }}\r\n
\r\n
Actions\r\n
\r\n {{ element.ActionName }}\r\n
\r\n
Job Code\r\n \r\n {{ element.JobCode }} | {{ element.JobTitle }}\r\n \r\n Date Added\r\n
\r\n {{ element.CreatedDate + 'Z' | date : 'medium' }}\r\n
\r\n
Comments\r\n
\r\n

{{ element.NotesDescription }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, Input, NgZone, OnDestroy } from '@angular/core'\r\nimport { Validators, FormGroup, FormBuilder, FormControlName } from '@angular/forms'\r\nimport { iConsultantJob, iConsultant, ConsultantType } from 'src/app/models/consultant.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { Common, MenuName } from 'src/app/common/common'\r\nimport { ConsultantType as ConsultantTypeIds } from 'src/app/common/common'\r\nimport { iKeyValue } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { IConsultantMetaData } from 'src/app/models/consultantMetaData'\r\nimport { ConsultantDialogTypes, Contact, User } from '../consultant-constants'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { switchMap, takeUntil } from 'rxjs/operators'\r\nimport { Subject, forkJoin, of } from 'rxjs'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\n\r\n@Component({\r\n selector: 'consultant-other',\r\n templateUrl: './consultant-other.component.html',\r\n styleUrls: ['./consultant-other.component.scss'],\r\n})\r\nexport class ConsultantOtherComponent implements OnInit, OnDestroy {\r\n genericButtonValue = [\r\n { Value: true, viewValue: 'Yes' },\r\n { Value: false, viewValue: 'No' },\r\n ]\r\n public loading = false\r\n frmConsultant: FormGroup\r\n jobTypes: iKeyValue[]\r\n availabilities: iKeyValue[]\r\n sourceTypes: iKeyValue[]\r\n parseConsultant: iConsultant\r\n modelConsultant: iConsultant = {}\r\n modelConsultantJob: iConsultantJob = {}\r\n consultantTypes: ConsultantType[]\r\n availableConsultantTypes: ConsultantType[]\r\n recruiters: User[]\r\n SelectedAvailableId: number\r\n vendorContactId: number = 0\r\n vendorCompanyId: number = 0\r\n consultantjobId: number = 0\r\n companies: any = []\r\n contacts: any = []\r\n jobid: number = 0\r\n loadVendorView: boolean = false\r\n jobTypeId: FormControlName\r\n allCompanies: any\r\n consultantMetaData: IConsultantMetaData\r\n activeCompany = CommonData.activeCompany\r\n activeVendorId: number\r\n isConsultantJobAlreadySaved: boolean = false\r\n private _destroy$: Subject = new Subject()\r\n\r\n public get companyType(): typeof CompanyType {\r\n return CompanyType\r\n }\r\n\r\n @Input() stepper: any\r\n @Output() consultantActiveTab: EventEmitter = new EventEmitter()\r\n /** Save end exit button visiblity status */\r\n isSaveandExitVisible$: boolean\r\n /** active consultant id */\r\n activeConsultantId$: number\r\n legalTypes: iKeyValue[]\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private notifyService: NotificationService,\r\n public authService: AuthenticationService,\r\n private consultantService: ConsultantService,\r\n private companyService: CompanyService,\r\n private commonService: CommonService,\r\n private consultantsService: ConsultantsService,\r\n private ngZone: NgZone,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private _activatedRouter: ActivatedRoute\r\n ) {\r\n this.frmConsultant = this.formBuilder.group({\r\n jobTypeId: [''],\r\n relocate: [false],\r\n expPayRate: [''],\r\n expSalary: [''],\r\n jobtype: [''],\r\n consultantTypeId: [''],\r\n legalTypeId: [8],\r\n vendorCompany: [''],\r\n vendorContact: [''],\r\n comments: [''],\r\n interviewInPipeline: [null],\r\n legalTypeName: [''],\r\n ResumeSourceID: [''],\r\n RecruiterId: [null],\r\n ResumeDate: [new Date()],\r\n })\r\n\r\n this._getRequiredDataForOtherDetails()\r\n }\r\n private _getRequiredDataForOtherDetails() {\r\n forkJoin({\r\n legalTypeIds: this.consultantService\r\n .getLookup('LegalTypeID'),\r\n jobTypeIds: this.consultantService\r\n .getLookup('JobTypelD'),\r\n consultantTypeIds: this.consultantService\r\n .getLookup('ConsultantTypelD'),\r\n resumeSourceIds: this.consultantService\r\n .getLookup('ResumeSourceID')\r\n }).pipe(takeUntil(this._destroy$)).subscribe(({ legalTypeIds, jobTypeIds, consultantTypeIds, resumeSourceIds }) => {\r\n this.legalTypes = legalTypeIds as iKeyValue[]\r\n this.jobTypes = jobTypeIds as iKeyValue[]\r\n this.availableConsultantTypes = this.consultantTypes = consultantTypeIds as ConsultantType[]\r\n this.sourceTypes = resumeSourceIds as iKeyValue[]\r\n if (Common.activeJob != null && this._activatedRouter.snapshot.params?.id != null) {\r\n this.frmConsultant.get('jobTypeId').disable()\r\n if (Common.activeJob.JobTypeID === JobTypes.Permanent) {\r\n this.availableConsultantTypes = this.availableConsultantTypes.filter((type) => type.Value === ConsultantTypeIds.CAN_W2)\r\n }\r\n }\r\n })\r\n }\r\n\r\n getRecruiters() {\r\n this.consultantService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.recruiters = res as User[]\r\n const CURRENT_USER_ROLE = this.authService.getCurrentUserRole()\r\n if (CURRENT_USER_ROLE === UserRoleId.RECRUITER) {\r\n const USER_ID = this.authService.userInfo.userID;\r\n this.recruiters = this.recruiters.filter((recruiter) => recruiter.UserID === USER_ID);\r\n this.frmConsultant.get('RecruiterId').patchValue(USER_ID);\r\n }\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.getAllVendors()\r\n this.getRecruiters()\r\n if (Common.activeConsultantJob != null) {\r\n this.jobid = Common.activeConsultantJob.JobID\r\n }\r\n if (Common.activeConsultantJob != null) {\r\n this.jobid = Common.activeConsultantJob.JobID\r\n this.modelConsultantJob.ConsultantJobID = Common.activeConsultantJob.ConsultantJobID\r\n }\r\n if (Common.activeConsultant != null && Common.activeConsultant != undefined) {\r\n this.modelConsultant = Common.activeConsultant\r\n this.parseConsultant = Common.activeConsultant\r\n }\r\n if (Common.activeConsultant != null) {\r\n if (Common.activeConsultant.ConsultantId > 0) {\r\n if (this.modelConsultant.ConsultantTypeId != null) {\r\n this.bindFormData()\r\n } else {\r\n this.bindParsedData()\r\n }\r\n }\r\n }\r\n\r\n /** get Save and Exit button status */\r\n this.consultantsService\r\n .getConsultantSaveAndExitButtonStatus()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.isSaveandExitVisible$ = res\r\n })\r\n /** get Active consultant id */\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.activeConsultantId$ = res\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next()\r\n this._destroy$.complete()\r\n }\r\n\r\n openVendorDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Vendor,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Vendor) {\r\n let vendorModel = {}\r\n vendorModel['Name'] = data.formData.Name\r\n vendorModel['WebSite'] = data.formData.WebSite\r\n vendorModel['Phone'] = data.formData.Phone\r\n vendorModel['CompanyTypeID'] = CompanyType.Vendor\r\n vendorModel['CompanyID'] = 0 //for creating new company sending 0 as company ID\r\n vendorModel['CreatedBy'] = this.authService.userInfo.userID\r\n vendorModel['CreatedDate'] = new Date()\r\n vendorModel['IsActive'] = true\r\n this.loading = true\r\n this.companyService\r\n .AddCompany(vendorModel)\r\n .pipe(\r\n takeUntil(this._destroy$),\r\n switchMap((res) => {\r\n return forkJoin([of(res), this.consultantService.getVendors()])\r\n })\r\n )\r\n .subscribe(\r\n ([res, allCompanies]) => {\r\n if (res.StatusCode == HttpStatusCode.Ok) {\r\n this.loading = false\r\n this.activeVendorId = res.Company.CompanyId\r\n this.onSelectedComapny(res.Company)\r\n this.notifyService.showSuccess('Vendor created successfully!', '')\r\n this.allCompanies = allCompanies\r\n this.onCompanyKeyPressed('')\r\n this.frmConsultant.get('vendorCompany').setValue(res.Company.Name)\r\n this.vendorCompanyId = res?.Company?.CompanyId\r\n } else if (res.StatusCode == HttpStatusCode.BadRequest) {\r\n this.loading = false\r\n this.notifyService.showError(res.Message, '')\r\n }\r\n },\r\n () => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n openVendorContactDialog() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.VendorContact,\r\n formData: this.activeCompany,\r\n consultantTypeId: Number(this.frmConsultant.get('consultantTypeId').value),\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.VendorContact) {\r\n let contact = {}\r\n contact['FirstName'] = data.formData.FirstName\r\n contact['LastName'] = data.formData.LastName\r\n contact['WorkPhone'] = data.formData.WorkPhone\r\n contact['EmailAddress'] = data.formData.EmailAddress\r\n contact['CompanyId'] = this.activeVendorId\r\n this.loading = true\r\n this.companyService\r\n .AddContact(contact)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res?.Contact != null) {\r\n this.loading = false\r\n this.notifyService.showSuccess(res.Message, '')\r\n this.companyChangeAction(this.activeCompany.CompanyId)\r\n this.frmConsultant\r\n .get('vendorContact')\r\n .setValue(data.formData.FirstName + ' ' + data.formData.LastName)\r\n this.vendorContactId = res?.Contact?.ContactID\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(res.Message, '')\r\n }\r\n },\r\n () => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n JobTypeChange(selectedValue) {\r\n var divPayRate = document.getElementById('divExpRate')\r\n var divSalary = document.getElementById('divExpSalary')\r\n this.availableConsultantTypes = this.consultantTypes\r\n if (divPayRate) divPayRate.style.display = 'none'\r\n if (divSalary) divSalary.style.display = 'none'\r\n\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumJobContractType.JT_PERM) > -1) {\r\n // Permanent`\r\n this.availableConsultantTypes = this.consultantTypes?.filter(\r\n (x) => x.Value == Common.enumConsultantType.CAN_W2\r\n )\r\n if (divSalary) divSalary.style.display = 'block'\r\n }\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumJobContractType.JT_C2C) > -1) {\r\n this.availableConsultantTypes = this.consultantTypes\r\n if (divPayRate) divPayRate.style.display = 'block'\r\n }\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumJobContractType.JT_C2H) > -1) {\r\n // Contract to hire ID (lookup)\r\n this.availableConsultantTypes = this.consultantTypes\r\n if (divPayRate) divPayRate.style.display = 'block'\r\n if (divSalary) divSalary.style.display = 'block'\r\n }\r\n }\r\n contractTypeChange(selectedValue) {\r\n this.loadVendorView = false\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumConsultantType.CAN_C2C) > -1) {\r\n this.loadVendorView = true\r\n }\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumConsultantType.CAN_C2O) > -1) {\r\n this.loadVendorView = true\r\n }\r\n }\r\n\r\n getAllVendors() {\r\n this.consultantService\r\n .getVendors()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.allCompanies = res\r\n })\r\n }\r\n onCompanyKeyPressed(filterValue: string): void {\r\n this.vendorCompanyId = 0\r\n this.companies = this.allCompanies?.filter((x) =>\r\n x?.Name?.toLowerCase()?.includes(filterValue?.trim()?.toLowerCase())\r\n )\r\n }\r\n onContactKeyPressed(event: KeyboardEvent): void {\r\n this.vendorContactId = 0\r\n }\r\n onSelectedComapny(company) {\r\n this.activeCompany = company\r\n this.vendorCompanyId = company.CompanyId\r\n this.companyChangeAction(company.CompanyId)\r\n this.vendorContactId = 0\r\n this.frmConsultant.get('vendorContact').setValue('')\r\n }\r\n onSelectedContact(contact) {\r\n this.vendorContactId = contact.ContactID\r\n }\r\n companyChangeAction(selectedValue) {\r\n this.activeVendorId = selectedValue\r\n this.consultantService\r\n .getCompanyContacts(selectedValue)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.contacts = res as Contact[]\r\n })\r\n }\r\n onSubmit() {\r\n this.frmConsultant.get('legalTypeId').addValidators(Validators.required)\r\n this.frmConsultant.get('legalTypeId').updateValueAndValidity()\r\n this.frmConsultant.get('consultantTypeId').addValidators(Validators.required)\r\n this.frmConsultant.get('consultantTypeId').updateValueAndValidity()\r\n this.frmConsultant.get('jobTypeId').addValidators(Validators.required)\r\n this.frmConsultant.get('jobTypeId').updateValueAndValidity()\r\n this.frmConsultant.get('ResumeSourceID').addValidators(Validators.required)\r\n this.frmConsultant.get('ResumeSourceID').updateValueAndValidity()\r\n this.frmConsultant.markAllAsTouched()\r\n if (this.frmConsultant.valid) {\r\n this.saveOther()\r\n }\r\n }\r\n saveOther() {\r\n this.loading = true\r\n this.modelConsultant = Common.activeConsultant\r\n\r\n this.modelConsultant.ConsultantTypeId =\r\n this.frmConsultant.get('consultantTypeId').value == ''\r\n ? ''\r\n : this.frmConsultant.get('consultantTypeId').value.toString()\r\n this.modelConsultant.Relocate = this.frmConsultant.get('relocate').value\r\n this.modelConsultant.ExpectedPayRate =\r\n this.frmConsultant.get('expPayRate').value == '' ? null : this.frmConsultant.get('expPayRate').value\r\n this.modelConsultant.ExpectedSalary =\r\n this.frmConsultant.get('expSalary').value == '' ? null : this.frmConsultant.get('expSalary').value\r\n this.modelConsultant.Comment = this.frmConsultant.get('comments').value\r\n this.modelConsultant.JobTypeId = this.frmConsultant.get('jobTypeId').value.toString()\r\n this.modelConsultant.CreatedBy = this.authService.userInfo.userID\r\n this.modelConsultant.InterviewInPipeline = this.frmConsultant.get('interviewInPipeline').value\r\n this.modelConsultant.LegalTypeId = this.frmConsultant.get('legalTypeId').value\r\n this.modelConsultant.CurrentLocation = this.modelConsultant.City + '' + this.modelConsultant.StateCode\r\n this.modelConsultant.CompanyVendorID = this.vendorCompanyId\r\n this.modelConsultant.VendorContactID = this.vendorContactId\r\n this.modelConsultant.RecruiterId = this.frmConsultant.get('RecruiterId')?.value\r\n this.modelConsultant.InitialSourceTypeID =\r\n this.modelConsultant.InitialSourceTypeID == 0 || this.modelConsultant.InitialSourceTypeID == null\r\n ? this.frmConsultant.get('ResumeSourceID')?.value\r\n : this.modelConsultant.InitialSourceTypeID\r\n this.modelConsultant.ResumeSourceID = this.frmConsultant.get('ResumeSourceID')?.value\r\n this.modelConsultant.ResumeDate = this.frmConsultant.get('ResumeDate')?.value\r\n\r\n this.consultantService\r\n .saveConsultantDetails(this.modelConsultant)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n Common.activeConsultant = result\r\n\r\n Common.activeConsultant.ResumeProjects = this.parseConsultant.ResumeProjects\r\n Common.activeConsultant.ResumeSkills = this.parseConsultant.ResumeSkills\r\n Common.activeConsultant.Education = this.parseConsultant.Education\r\n Common.activeConsultant.ResumeKeywords = this.parseConsultant.ResumeKeywords\r\n Common.activeConsultant.ConsultantResumeID = this.parseConsultant.ConsultantResumeID\r\n Common.activeConsultant.ResumeFile = this.parseConsultant.ResumeFile\r\n\r\n if (Common.activeConsultantJob != null && !this.isConsultantJobAlreadySaved) {\r\n if (Common.activeConsultantJob.ConsultantJobID >= 0) {\r\n this.updateConsultantJob()\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate other details')\r\n this.consultantActiveTab.emit(1)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.selected.editable = true\r\n this.stepper.next()\r\n })\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n this.notifyService.showError('Error saving data', 'Candidate other details')\r\n this.loading = false\r\n }\r\n )\r\n }\r\n updateConsultantJob(): boolean {\r\n try {\r\n if (Common.activeConsultantJob != null) {\r\n if (Common.activeConsultantJob.JobID > 0) {\r\n this.loading = true\r\n this.modelConsultantJob.JobID = Common.activeConsultantJob.JobID\r\n this.modelConsultantJob.ConsultantID = Common.activeConsultant.ConsultantId\r\n this.modelConsultantJob.PayRate =\r\n this.frmConsultant.get('expPayRate').value == ''\r\n ? null\r\n : this.frmConsultant.get('expPayRate').value\r\n this.modelConsultantJob.Salary =\r\n this.frmConsultant.get('expSalary').value == ''\r\n ? null\r\n : this.frmConsultant.get('expSalary').value\r\n\r\n this.modelConsultantJob.DateApplied = new Date()\r\n this.modelConsultantJob.CreatedDate = new Date()\r\n this.modelConsultantJob.CreatedBy = this.authService.userInfo.userID\r\n this.modelConsultantJob.IsActive = true\r\n this.modelConsultantJob.CompanyVendorID = this.vendorCompanyId\r\n this.modelConsultantJob.VendorContactID = this.vendorContactId\r\n this.modelConsultantJob.VendorName = this.frmConsultant.get('vendorCompany').value\r\n this.modelConsultantJob.VendorContactName = this.frmConsultant.get('vendorContact').value\r\n this.modelConsultantJob.RecruiterId = this.frmConsultant.get('RecruiterId').value\r\n this.modelConsultantJob.ConsultantTypeID =\r\n this.frmConsultant.get('consultantTypeId').value == ''\r\n ? 0\r\n : Number(this.frmConsultant.get('consultantTypeId').value)\r\n Common.activeConsultantJob = this.modelConsultantJob\r\n this.consultantService\r\n .saveConsultantJob(this.modelConsultantJob)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((cjResult) => {\r\n if (cjResult) {\r\n this.isConsultantJobAlreadySaved = true\r\n Common.activeConsultantJob = cjResult\r\n\r\n this.updateObjectStatus(\r\n Common.activeConsultantJob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumConsultantJobStatuses.CON_JOB_APPLIED,\r\n MenuName.CON_JOB_APPLIED,\r\n this.authService.userInfo.userID\r\n )\r\n\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully applied !', 'Candidate Job')\r\n this.consultantActiveTab.emit(1)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.selected.editable = true\r\n this.stepper.next()\r\n })\r\n\r\n return true\r\n }\r\n })\r\n }\r\n }\r\n } catch {\r\n this.loading = false\r\n return false\r\n }\r\n }\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((result) => {\r\n result\r\n })\r\n }\r\n\r\n bindFormData() {\r\n let consultant = Common.activeConsultant\r\n this.frmConsultant.get('relocate').setValue(consultant.Relocate)\r\n this.frmConsultant.get('expPayRate').setValue(consultant.ExpectedPayRate)\r\n this.frmConsultant.get('expSalary').setValue(consultant.ExpectedSalary)\r\n this.frmConsultant.get('comments').setValue(consultant.Comment)\r\n this.frmConsultant.get('legalTypeId').setValue(consultant.LegalTypeId === 0 ? '' : consultant.LegalTypeId)\r\n this.vendorCompanyId = Number(consultant.CompanyVendorID)\r\n this.vendorContactId = Number(consultant.VendorContactID)\r\n this.frmConsultant.get('vendorCompany').setValue(consultant.VendorCompany)\r\n this.frmConsultant.get('vendorContact').setValue(consultant.VendorContact)\r\n let consultantMetaData: IConsultantMetaData\r\n if (Common.activeConsultant.ConsultantMetaData) {\r\n consultantMetaData = JSON.parse(Common.activeConsultant.ConsultantMetaData)\r\n this.frmConsultant.get('interviewInPipeline').setValue(consultantMetaData.InterviewInPipeline)\r\n }\r\n\r\n if (this.jobid > 0) {\r\n // Apply to a Job\r\n this.showConsultantJobData()\r\n } else {\r\n this.showConsultantTypeData()\r\n }\r\n this.frmConsultant.get('legalTypeId').markAsUntouched()\r\n }\r\n showConsultantJobData() {\r\n let cj = Common.activeConsultantJob\r\n this.frmConsultant.get('expPayRate').setValue(cj.PayRate)\r\n this.frmConsultant.get('expSalary').setValue(cj.Salary)\r\n\r\n let jobTypeIds = Common?.activeJob?.JobTypeID?.toString()\r\n ?.split(',')\r\n ?.map((item) => Number(item))\r\n this.JobTypeChange(jobTypeIds?.toString())\r\n this.frmConsultant.get('jobTypeId').setValue(jobTypeIds)\r\n let consultantTypeIds\r\n if (cj.ConsultantTypeID == null) consultantTypeIds = Common.enumConsultantType.CAN_W2.toString()\r\n else consultantTypeIds = cj.ConsultantTypeID\r\n consultantTypeIds = consultantTypeIds\r\n .toString()\r\n .split(',')\r\n .map((item) => Number(item))\r\n this.contractTypeChange(consultantTypeIds?.toString())\r\n this.frmConsultant.get('consultantTypeId').setValue(consultantTypeIds)\r\n\r\n this.vendorCompanyId = cj.CompanyVendorID\r\n this.vendorContactId = cj.VendorContactID\r\n this.frmConsultant.get('vendorCompany').setValue(cj.VendorName)\r\n this.frmConsultant.get('vendorContact').setValue(cj.VendorContactName)\r\n }\r\n showConsultantTypeData() {\r\n let consultant = Common.activeConsultant\r\n if (consultant.JobTypeId == null) consultant.JobTypeId = Common.enumJobContractType.JT_C2C.toString()\r\n let jobTypeids = consultant.JobTypeId.split(',').map((item) => Number(item))\r\n\r\n this.JobTypeChange(consultant.JobTypeId.toString())\r\n this.frmConsultant.get('jobTypeId').setValue(jobTypeids)\r\n if (consultant.ConsultantTypeId == null)\r\n consultant.ConsultantTypeId = Common.enumConsultantType.CAN_W2.toString()\r\n let consultantTypeIds = consultant.ConsultantTypeId.toString()\r\n .split(',')\r\n .map((item) => Number(item))\r\n\r\n this.contractTypeChange(consultantTypeIds.toString())\r\n this.frmConsultant.get('consultantTypeId').setValue(consultantTypeIds)\r\n }\r\n bindParsedData() {\r\n if (this.jobid > 0) {\r\n // Apply to a Job\r\n this.showConsultantJobData()\r\n } else {\r\n this.showConsultantTypeData()\r\n }\r\n }\r\n goToPrevious() {\r\n this.stepper.previous()\r\n }\r\n}\r\n"," \r\n\r\n
\r\n
\r\n
Candidate Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Preferred Job Type * \r\n \r\n \r\n \r\n {{ type.Key }}\r\n \r\n \r\n \r\n Job type is required\r\n \r\n \r\n
\r\n
\r\n Expected Pay Rate/Hr\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Expected Salary/Annum\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Work Permit * \r\n \r\n \r\n \r\n {{ legalType.Key }}\r\n \r\n \r\n \r\n Work permit is required\r\n \r\n \r\n
\r\n
\r\n Open to Relocation\r\n \r\n \r\n \r\n {{ con.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
Employment Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Employment Type * \r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Employment type is required\r\n \r\n \r\n
\r\n
\r\n \r\n Vendor\r\n \r\n add Add\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Contact\r\n \r\n add Add\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ contact.ContactName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Resume Details
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Source * \r\n \r\n \r\n \r\n {{ sourceType.Key }}\r\n \r\n \r\n \r\n Source is required.\r\n \r\n \r\n
\r\n
\r\n \r\n Recruiter\r\n \r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Resume Date\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n TemplateRef,\r\n Input,\r\n ViewChild,\r\n NgZone,\r\n OnDestroy,\r\n} from '@angular/core'\r\nimport { iConsultant, iConsultantJob } from 'src/app/models/consultant.model'\r\nimport { iContact } from 'src/app/models/contact.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { Router } from '@angular/router'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { Validators, FormBuilder, FormGroup } from '@angular/forms'\r\nimport { HttpResponse } from '@angular/common/http'\r\nimport { Common } from 'src/app/common/common'\r\nimport { iKeyValue } from 'src/app/models/common.model'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { EMPTY, Subject } from 'rxjs'\r\nimport { FilesTypes, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { LocationService } from 'src/app/services/location.service'\r\nimport { ResumeKeywords } from 'src/app/enums/resumeKeywords'\r\nimport { catchError, map, switchMap, takeUntil } from 'rxjs/operators'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { ConsultantDialogTypes } from '../consultant-constants'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { JobTitle } from 'src/app/models/job.model'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\n\r\n@Component({\r\n selector: 'consultant-profile',\r\n templateUrl: './consultant-profile.component.html',\r\n styleUrls: ['./consultant-profile.component.scss'],\r\n})\r\nexport class ConsultantProfileComponent implements OnInit, OnDestroy {\r\n consultant: iConsultant = {}\r\n parseConsultantData: iConsultant = {}\r\n modelContact: iContact\r\n modelConsultant: iConsultant\r\n modelConsultantJob: iConsultantJob\r\n selectedJobTitleId: number\r\n filePath: string\r\n titles: JobTitle[] = []\r\n frmConsultant: FormGroup\r\n iEmailExists: boolean\r\n legaltypes: iKeyValue[]\r\n resumeHTML: string\r\n resumeTxt: string\r\n resumeId: number = 0\r\n consultantjobId: number = 0\r\n resumeDate: string\r\n consultantId: number\r\n contactId: number\r\n jobId: number\r\n consultantLocation: iLocation = { LocationID: 0, LocationTypeID: 0, ObjectId: 0, ObjectTypeId: 0 }\r\n imageSrc: string | ArrayBuffer\r\n imgFrmData: FormData\r\n public loading = false\r\n @Input() stepper: MatStepper\r\n @Output() consultantActiveTab: EventEmitter = new EventEmitter()\r\n /** Save end exit button visiblity status */\r\n isSaveandExitVisible$: boolean\r\n /** active consultant id */\r\n activeConsultantId$: number\r\n ResumeInfo: string\r\n isResumeUploaded: boolean = false\r\n imageInfo: string\r\n isImageUploaded: boolean = false\r\n imagefile: File = null\r\n file: File = null\r\n isEmailExists: boolean = false\r\n isLocationFormChanged: boolean = false\r\n isResumeBlank: boolean\r\n isEditUrl: string\r\n isEmailOverRide: boolean = false\r\n isFromApplyJob: boolean = false\r\n isDisableButtons: boolean = false\r\n\r\n public editLocationSubject: Subject = new Subject()\r\n @Input() location: string\r\n @ViewChild('EmailExistsDialog') EmailExistsDialog: TemplateRef\r\n destroy$: Subject = new Subject()\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get fileTypes(): typeof FilesTypes {\r\n return FilesTypes\r\n }\r\n\r\n public get locationCalledFrom(): typeof LocationCalledFrom {\r\n return LocationCalledFrom\r\n }\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n private formBuilder: FormBuilder,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private consultantService: ConsultantService,\r\n private consultantsService: ConsultantsService,\r\n private router: Router,\r\n private ngZone: NgZone,\r\n private locationService: LocationService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private jobService: JobService,\r\n private _consultantDataService: ConsultantDataService\r\n ) {\r\n this.frmConsultant = this.formBuilder.group({\r\n firstName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z'-\\s]+$/)]],\r\n lastName: ['', [Validators.required, Validators.pattern(/^[a-zA-Z'-\\s]+$/)]],\r\n middleName: ['', Validators.pattern(/^[a-zA-Z'-\\s]+$/)],\r\n phone: ['', [Validators.pattern(/^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/), Validators.required]],\r\n email: ['', [Validators.pattern(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/), Validators.required]],\r\n jobTitleName: [''], // ,Disabled temporarily Validators.required]\r\n profile: [''],\r\n ResumeFile: ['', Validators.required],\r\n fileAttr: ['Choose Resume', Validators.required],\r\n experience: [''],\r\n linkedin: [''],\r\n github: [''],\r\n youtubechannel: [''],\r\n stackoverflow: [''],\r\n })\r\n this.isFromApplyJob = history?.state?.isFromJobApply ? history?.state?.isFromJobApply : false\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filePath = Common.filePath\r\n this.modelContact = {}\r\n this.modelConsultant = {}\r\n this.modelConsultantJob = {}\r\n this.jobId = Common?.activeConsultantJob?.JobID\r\n this.bindFormData()\r\n /** get Save and Exit button status */\r\n this.consultantsService\r\n .getConsultantSaveAndExitButtonStatus()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.isSaveandExitVisible$ = res\r\n })\r\n /** get Active consultant id */\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.activeConsultantId$ = res\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.complete()\r\n }\r\n\r\n onSelectProfileImage(imageInput: any) {\r\n if (imageInput[0]) {\r\n const file: File = imageInput[0]\r\n this.imagefile = file\r\n this.imgFrmData = new FormData()\r\n this.imageInfo = imageInput[0].name\r\n this.imgFrmData.append(imageInput[0].name, imageInput[0])\r\n const reader = new FileReader()\r\n this.isImageUploaded = true\r\n reader.readAsDataURL(file)\r\n }\r\n }\r\n\r\n dialogSaveHandler() {\r\n this.dialog.closeAll()\r\n const reader = new FileReader()\r\n this.isImageUploaded = true\r\n reader.onload = (e) => (this.imageSrc = reader.result)\r\n reader.readAsDataURL(this.imagefile)\r\n }\r\n\r\n dialogCancelHandler() {\r\n this.dialog.closeAll()\r\n }\r\n\r\n resetImage() {\r\n this.isImageUploaded = false\r\n this.imageInfo = ''\r\n this.imageSrc = null\r\n this.imagefile = null\r\n }\r\n\r\n bindFormData() {\r\n if (Common.activeConsultant != null && Common.activeConsultant != undefined) {\r\n this.consultant = Common.activeConsultant\r\n this.modelConsultant = Common.activeConsultant\r\n }\r\n if (this.consultant.ConsultantId != null) {\r\n if (this.consultant.ConsultantId > 0) {\r\n this.contactId = Common.activeConsultant.ContactId\r\n this.consultant = Common.activeConsultant\r\n this.consultantId = this.consultant.ConsultantId\r\n this.frmConsultant.get('firstName').setValue(this.consultant?.FirstName)\r\n this.frmConsultant.get('lastName').setValue(this.consultant?.LastName)\r\n this.frmConsultant.get('middleName').setValue(this.consultant?.MiddleName)\r\n this.frmConsultant.get('phone').setValue(this.consultant?.CellPhone)\r\n if (this.validateEmail(this.consultant?.Emailaddress))\r\n this.frmConsultant.get('email').setValue(this.consultant?.Emailaddress)\r\n this.frmConsultant.get('jobTitleName').setValue(this.consultant?.CandidateTitle)\r\n this.frmConsultant.get('experience').setValue(this.consultant?.Experience)\r\n this.frmConsultant.get('linkedin').setValue(this.consultant?.LinkedinUrl)\r\n this.frmConsultant.get('github').setValue(this.consultant?.GitHubUrl)\r\n this.frmConsultant.get('youtubechannel').setValue(this.consultant?.YoutubeUrl)\r\n this.frmConsultant.get('stackoverflow').setValue(this.consultant?.StackUrl)\r\n this.selectedJobTitleId = this.consultant?.TitleId\r\n this.imageSrc = this.consultant?.ImageUrl != null ? this.filePath + this.consultant?.ImageUrl : null\r\n if (this.frmConsultant.get('ResumeFile') != null) {\r\n if (this.consultant?.ResumePath != null && this.consultant?.ResumePath != undefined)\r\n this.frmConsultant.get('ResumeFile').setValue(this.filePath + this.consultant?.ResumePath)\r\n }\r\n this.consultantLocation = this.consultant?.Location\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.consultant?.Location\r\n }\r\n }\r\n if (Common.activeConsultantJob != null && Common.activeConsultantJob != undefined) {\r\n this.modelConsultantJob.ConsultantJobID = Common.activeConsultantJob?.ConsultantJobID\r\n }\r\n }\r\n }\r\n\r\n public onChangeResume(files): void {\r\n this.file = files[0]\r\n\r\n if (files.length === 0) {\r\n return\r\n }\r\n this.frmConsultant.get('ResumeFile').setValue(this.file)\r\n this.frmConsultant.get('fileAttr').setValue(this.file.name)\r\n if (this.consultant?.ConsultantId > 0) {\r\n this.loading = false\r\n return\r\n }\r\n Common.ResumeHTML = null\r\n Common.activeConsultant = null\r\n Common.ResumeKeywords = null\r\n this.consultant = null\r\n\r\n if (this.file.size > 6000000) {\r\n this.isResumeUploaded = false\r\n this.file = null\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', 'Job upload')\r\n this.loading = false\r\n Common.ResumeKeywords = null\r\n return\r\n }\r\n if (!this.validateResumeType(files[0].name)) {\r\n this.isResumeUploaded = false\r\n this.file = null\r\n this.notifyService.showError('Selected file format is not supported!', 'Job upload')\r\n this.loading = false\r\n return\r\n }\r\n }\r\n\r\n onResumeUpload() {\r\n this.frmConsultant.get('fileAttr').setValue('Choose Resume')\r\n this.isResumeUploaded = true\r\n this.isResumeBlank = false\r\n this.ResumeInfo = this.file.name\r\n this.dialog.closeAll()\r\n this.parseCandidateBasicInfo()\r\n }\r\n\r\n parseCandidateBasicInfo() {\r\n this.loading = true\r\n const formData = new FormData()\r\n this.isDisableButtons = false\r\n let candidateId\r\n\r\n formData.append('file', this.frmConsultant.get('ResumeFile').value)\r\n if (Common.activeConsultantJob != null) {\r\n formData.append('jobid', Common.activeConsultantJob.JobID.toString())\r\n\r\n this.consultantService\r\n .getCandidateBasicInfo(formData)\r\n .pipe(\r\n switchMap((res) => {\r\n const changeJobStatus$ = this.jobService.changeJobStatusBySubmittedCount(\r\n Common.activeConsultantJob.JobID,\r\n this.authService.userInfo.userID\r\n )\r\n\r\n return changeJobStatus$.pipe(\r\n catchError((err) => EMPTY),\r\n map((result) => ({ parseCandidate: res, submitResult: result }))\r\n )\r\n }),\r\n takeUntil(this.destroy$)\r\n )\r\n .subscribe((result) => {\r\n if (result.parseCandidate) {\r\n if (result.parseCandidate.type != 0) {\r\n this.loading = false\r\n this.saveParseCandidateInfo(result.parseCandidate)\r\n }\r\n } else {\r\n this.notifyService.showWarning('Resume upload Error:', 'Search')\r\n this.loading = false\r\n this.frmConsultant.get('fileAttr').setValue('Choose Resume')\r\n this.isResumeUploaded = false\r\n this.isResumeBlank = true\r\n this.ResumeInfo = null\r\n }\r\n })\r\n } else {\r\n this.consultantService\r\n .getCandidateBasicInfo(formData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (event) => {\r\n this.saveParseCandidateInfo(event)\r\n },\r\n (err: any) => {\r\n this.notifyService.showWarning('Resume upload Error:' + err, 'Search')\r\n this.loading = false\r\n this.frmConsultant.get('fileAttr').setValue('Choose Resume')\r\n this.isResumeUploaded = false\r\n this.isResumeBlank = true\r\n this.ResumeInfo = null\r\n }\r\n )\r\n }\r\n }\r\n\r\n saveParseCandidateInfo(event) {\r\n if (event instanceof HttpResponse) {\r\n let candidateId\r\n if (event.body == null) {\r\n this.notifyService.showWarning('Error:', 'Resume upload')\r\n this.loading = false\r\n return\r\n }\r\n this.resumeTxt = event?.body['Resumetxt']\r\n this.resumeHTML = event?.body['ResumeHTML']\r\n this.resumeId = event?.body['ConsultantResumeID']\r\n\r\n this.resumeDate = event?.body['ResumeDate']\r\n this.consultantjobId = event?.body['ConsultantJobID']\r\n Common.ResumeHTML = event?.body['ResumeHTML']\r\n Common.ResumeKeywords = event?.body['Keys']\r\n this._consultantDataService.setResumeDrawerSubject(true)\r\n\r\n if (Common.ResumeKeywords != null) {\r\n Common.activeConsultant = {}\r\n this.modelConsultant = {}\r\n this.modelConsultant.Contact = {}\r\n this.consultant = {}\r\n this.parseConsultantData = {}\r\n this.parseConsultantData.ResumeProjects = event.body['ConsultantResumeProject']\r\n this.parseConsultantData.ResumeSkills = event.body['ConsultantResumeSkills']\r\n this.parseConsultantData.ConsultantEducation = event.body['ConsultantEducations']\r\n this.parseConsultantData.ConsultantCertification = event.body['ConsultantCertifications']\r\n this.parseConsultantData.ResumeKeywords = event?.body['Keys']\r\n this.parseConsultantData.ConsultantResumeID = event?.body['ConsultantResumeID']\r\n this.parseConsultantData.NewProjects = event?.body['NewProjects']\r\n this.parseConsultantData.NewSkills = event?.body['NewSkills']\r\n this.parseConsultantData.ResumeDate = event?.body['ResumeDate']\r\n this.parseConsultantData.ConsultantInfo = event?.body['ConsultantInfo']\r\n candidateId = event?.body['ConsultantID']\r\n Common.parseConsultantData = this.parseConsultantData\r\n\r\n let dataResumeKeywords = Common.ResumeKeywords\r\n for (let index = 0; index < dataResumeKeywords.length; index++) {\r\n var element = dataResumeKeywords[index]\r\n switch (element?.Key) {\r\n case ResumeKeywords.CandidateName: {\r\n let fullName = element.Value.replace(/[^a-zA-Z ]/g, '')\r\n let firstName\r\n let middleNames\r\n let lastName\r\n\r\n var names = fullName.split(' ')\r\n if (names.length > 2) {\r\n firstName = names[0]\r\n middleNames = names.slice(1, -1).join(' ')\r\n lastName = names[names.length - 1]\r\n } else if (names.length < 2) {\r\n firstName = names[0]\r\n } else {\r\n firstName = names[0]\r\n lastName = names[names.length - 1]\r\n }\r\n this.frmConsultant.get('firstName').setValue(firstName)\r\n this.frmConsultant.get('lastName').setValue(lastName)\r\n this.frmConsultant.get('middleName').setValue(middleNames)\r\n break\r\n }\r\n case ResumeKeywords.FirstName: {\r\n this.frmConsultant.get('firstName').setValue(element.Value.replace(/[^a-zA-Z ]/g, ''))\r\n break\r\n }\r\n case ResumeKeywords.LastName: {\r\n this.frmConsultant.get('lastName').setValue(element.Value.replace(/[^a-zA-Z ]/g, ''))\r\n break\r\n }\r\n case ResumeKeywords.MiddleName: {\r\n this.frmConsultant.get('middleName').setValue(element.Value.replace(/[^a-zA-Z ]/g, ''))\r\n break\r\n }\r\n case ResumeKeywords.Email: {\r\n this.frmConsultant.get('email').setValue(element.Value)\r\n break\r\n }\r\n case ResumeKeywords.Phone: {\r\n let phone = element?.Value.toString()\r\n phone = this.formatPhoneNumber(phone)\r\n this.frmConsultant.get('phone').setValue(phone)\r\n break\r\n }\r\n case ResumeKeywords.AddressLine1: {\r\n if (element?.Value != '')\r\n this.consultantLocation.Address1 = element.Value?.replace(/,/g, '').trim()\r\n break\r\n }\r\n case ResumeKeywords.YouTube: {\r\n this.frmConsultant.get('youtubechannel').setValue(element.Value)\r\n break\r\n }\r\n case ResumeKeywords.GitHub: {\r\n this.frmConsultant.get('github').setValue(element.Value)\r\n break\r\n }\r\n case ResumeKeywords.Linkedin: {\r\n this.frmConsultant.get('linkedin').setValue(element.Value)\r\n break\r\n }\r\n case ResumeKeywords.StackOverFlow: {\r\n this.frmConsultant.get('stackoverflow').setValue(element.Value)\r\n break\r\n }\r\n case ResumeKeywords.Experience: {\r\n this.frmConsultant.get('experience').setValue(element.Value)\r\n break\r\n }\r\n case ResumeKeywords.JobTitle: {\r\n this.frmConsultant.get('jobTitleName').setValue(element.Value)\r\n break\r\n }\r\n case ResumeKeywords.JobTitleId: {\r\n this.selectedJobTitleId = element.Value\r\n break\r\n }\r\n case ResumeKeywords.City: {\r\n if (element?.Value != '') this.consultantLocation.City = element.Value\r\n break\r\n }\r\n case ResumeKeywords.State: {\r\n if (element?.Value != '') this.consultantLocation.State = element.Value\r\n break\r\n }\r\n case ResumeKeywords.Zipcode: {\r\n if (element?.Value != '') this.consultantLocation.ZipCode = element.Value\r\n break\r\n }\r\n }\r\n this.consultantLocation = { ...this.consultantLocation }\r\n }\r\n this.checkForApplyCandidateFlow(candidateId)\r\n } else {\r\n this.notifyService.showWarning('Could not parsed Candidate Name and Email address!', 'Resume upload')\r\n this.loading = false\r\n }\r\n\r\n this.loading = false\r\n }\r\n }\r\n\r\n checkForApplyCandidateFlow(candidateId) {\r\n if (this.isFromApplyJob) {\r\n const email = this.frmConsultant.get('email').value\r\n if (email) {\r\n this.consultantService\r\n .GetConsultantFromEmail(email)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n if (result) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n width: '400px',\r\n dialogName: ConsultantDialogTypes.Candidate_Card,\r\n newSkills: this.parseConsultantData?.NewSkills,\r\n newProject: this.parseConsultantData?.NewProjects,\r\n resumeUpdateDate: this.parseConsultantData?.ResumeDate,\r\n consultant: this.parseConsultantData?.ConsultantInfo,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe(async (data) => {\r\n if (data?.formName === ConsultantDialogTypes.Candidate_Card) {\r\n if (this.parseConsultantData?.NewSkills?.length) {\r\n await this.saveNewSkills(\r\n this.parseConsultantData?.NewSkills,\r\n this.parseConsultantData?.ConsultantInfo?.ConsultantResumeID\r\n )\r\n }\r\n if (this.parseConsultantData?.NewProjects?.length) {\r\n await this.saveNewProjects(\r\n this.parseConsultantData?.NewProjects,\r\n this.parseConsultantData?.ConsultantInfo?.ConsultantResumeID\r\n )\r\n }\r\n this.commonService.candidateObservable$.next(false)\r\n this.router.navigate(['/candidates'], {\r\n state: {\r\n job: Common.activeJob,\r\n isFromJobSearch: true,\r\n isFromApplyFlow: true,\r\n candidateName: `${this.parseConsultantData?.ConsultantInfo?.FirstName} ${this.parseConsultantData?.ConsultantInfo?.LastName}`,\r\n },\r\n queryParams: { consultantId: candidateId },\r\n })\r\n } else {\r\n this.isDisableButtons = true\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n saveNewSkills(newSkills, consultantResumeID) {\r\n return new Promise((resolve, reject) => {\r\n newSkills.forEach((skill) => {\r\n skill['ConsultantResumeID'] = consultantResumeID\r\n })\r\n\r\n const data = {\r\n ConsultantResumeID: consultantResumeID,\r\n RequiredSkills: newSkills,\r\n }\r\n this.consultantService\r\n .AddResumeSkill(data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n resolve(true)\r\n })\r\n })\r\n }\r\n\r\n saveNewProjects(newProject, consultantResumeID) {\r\n return new Promise((resolve, reject) => {\r\n newProject.forEach((project) => {\r\n project['ConsultantResumeID'] = consultantResumeID\r\n })\r\n const data = {\r\n consultantResumeID: consultantResumeID,\r\n RequiredProject: newProject,\r\n }\r\n this.consultantService\r\n .AddProjects(data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n resolve(true)\r\n })\r\n })\r\n }\r\n\r\n validateProfileFile(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (\r\n ext.toLowerCase() == FilesTypes.JPG ||\r\n ext.toLowerCase() == FilesTypes.JPEG ||\r\n ext.toLowerCase() == FilesTypes.PNG\r\n ) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n openUploadImageDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n onOverWriteResume() {\r\n this.isEmailOverRide = true\r\n this.dialog.closeAll()\r\n this.saveProfile()\r\n }\r\n\r\n validateResumeType(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (\r\n ext.toLowerCase() == FilesTypes.DOC ||\r\n ext.toLowerCase() == FilesTypes.DOCX ||\r\n ext.toLowerCase() == FilesTypes.PDF\r\n ) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n onSubmit() {\r\n this.loading = false\r\n this.isEmailExists = false\r\n var emailAddress = this.frmConsultant.get('email').value\r\n this.frmConsultant.markAllAsTouched()\r\n if (this.frmConsultant.valid) {\r\n if (this.isEmailOverRide && Common.activeConsultant.Emailaddress == emailAddress) {\r\n // will check if email form field is change if it is changed then only we will check for email.\r\n this.saveProfile()\r\n return\r\n }\r\n this.consultantService\r\n .GetConsultantFromEmail(emailAddress)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n if (result == null || result.length <= 0) {\r\n /* Emailaddress NOT exists */\r\n this.isEmailExists = false\r\n this.contactId = 0\r\n this.consultantId = 0\r\n this.resumeId = 0\r\n } else {\r\n /* Emailaddress exists */\r\n this.isEmailExists = true\r\n this.contactId = result[0]?.ContactId\r\n this.consultantId = result[0]?.ConsultantId\r\n this.resumeId = result[0]?.ConsultantResumeID\r\n }\r\n\r\n if (this.jobId > 0 && this.consultantId > 0) {\r\n // Check Candidate already applied to a job\r\n this.consultantService\r\n .GetConsultantJobIdByEmail(emailAddress, this.jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((cj) => {\r\n if (cj?.ConsultantJobID > 0) {\r\n Common.activeConsultantJob.ConsultantJobID = cj?.ConsultantJobID\r\n }\r\n })\r\n }\r\n if (this.isEmailExists == false) {\r\n // [add candidate] option and new email\r\n this.saveProfile()\r\n } else {\r\n // to override email\r\n this.dialog.open(this.EmailExistsDialog, {})\r\n }\r\n })\r\n this.isResumeBlank = false\r\n } else {\r\n if (\r\n this.frmConsultant.get('ResumeFile').value == null ||\r\n this.frmConsultant.get('ResumeFile').value == ''\r\n ) {\r\n this.notifyService.showError('Resume is required!', 'Candidate Profile')\r\n this.isResumeBlank = true\r\n }\r\n this.frmConsultant.markAllAsTouched()\r\n window.scrollTo(0, 0)\r\n this.loading = false\r\n }\r\n }\r\n // }\r\n onClose() {\r\n this.consultantsService.showConsultantSummaryOnLoad.next(true)\r\n this.commonService.candidateObservable$.next(false)\r\n this.router.navigate(['/candidates'])\r\n }\r\n\r\n addLocation(): boolean {\r\n var location = this.locationService.getCurrentLocation()\r\n if (location == null) {\r\n // return if location fields are null and not invoking API\r\n return\r\n }\r\n this.loading = true\r\n CommonData.activeLocation = location\r\n CommonData.activeLocation.ObjectId = this.consultant.ContactId\r\n CommonData.activeLocation.ObjectTypeId = 8\r\n CommonData.activeLocation.LocationTypeID = 149\r\n this.companyService\r\n .AddLocation(CommonData.activeLocation)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res) {\r\n this.loading = false\r\n Common.activeConsultant.Location = res\r\n } else {\r\n this.loading = false\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not save address' + err, 'Location')\r\n }\r\n )\r\n }\r\n\r\n saveProfile() {\r\n this.loading = true\r\n const formData = new FormData()\r\n formData.append('file', this.frmConsultant.get('ResumeFile').value)\r\n formData.append('firstName', this.frmConsultant.get('firstName').value)\r\n formData.append('lastName', this.frmConsultant.get('lastName').value)\r\n formData.append('emailaddress', this.frmConsultant.get('email').value)\r\n formData.append('phone', this.frmConsultant.get('phone').value)\r\n formData.append('titleId', this.selectedJobTitleId > 0 ? this.selectedJobTitleId.toString() : '0')\r\n formData.append('resumeText', this.resumeTxt)\r\n formData.append('resumeHTML', this.resumeHTML)\r\n formData.append(\r\n 'experience',\r\n this.frmConsultant.get('experience').value == '' ? null : this.frmConsultant.get('experience').value\r\n )\r\n formData.append('userId', this.authService.userInfo.userID)\r\n\r\n this.modelConsultant = Common.activeConsultant\r\n this.modelConsultant.FirstName = this.frmConsultant.get('firstName').value\r\n this.modelConsultant.LastName = this.frmConsultant.get('lastName').value\r\n this.modelConsultant.Emailaddress = this.frmConsultant.get('email').value\r\n this.modelConsultant.MiddleName = this.frmConsultant.get('middleName').value\r\n this.modelConsultant.CellPhone = this.frmConsultant.get('phone').value\r\n this.modelConsultant.Contact = {}\r\n this.modelConsultant.Contact.ContactID =\r\n this.contactId == null || this.contactId == undefined ? 0 : Number(this.contactId)\r\n this.modelConsultant.Contact.FirstName = this.frmConsultant.get('firstName').value\r\n this.modelConsultant.Contact.LastName = this.frmConsultant.get('lastName').value\r\n this.modelConsultant.Contact.MiddleName = this.frmConsultant.get('middleName').value\r\n this.modelConsultant.Contact.EmailAddress = this.frmConsultant.get('email').value\r\n this.modelConsultant.Contact.CellPhone = this.frmConsultant.get('phone').value\r\n this.modelConsultant.Contact.TitleId = this.selectedJobTitleId > 0 ? this.selectedJobTitleId : 0\r\n this.modelConsultant.Contact.IsActive = true\r\n this.modelConsultant.Experience =\r\n this.frmConsultant.get('experience').value == '' ? null : this.frmConsultant.get('experience').value\r\n this.modelConsultant.LinkedinUrl = this.frmConsultant.get('linkedin').value\r\n this.modelConsultant.GitHubUrl = this.frmConsultant.get('github').value\r\n this.modelConsultant.YoutubeUrl = this.frmConsultant.get('youtubechannel').value\r\n this.modelConsultant.StackUrl = this.frmConsultant.get('stackoverflow').value\r\n\r\n if (this.consultant.ConsultantResumeID > 0) {\r\n this.saveProfilePicture()\r\n this.addLocation()\r\n this.consultantService\r\n .saveConsultantProfile(this.modelConsultant)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n Common.activeConsultant = res\r\n Common.activeConsultant.ConsultantResumeID = res.ConsultantResumeID\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate profile')\r\n this.consultantActiveTab.emit(0)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.next()\r\n this.stepper.selected.editable = false\r\n })\r\n })\r\n this.loading = false\r\n return\r\n } else {\r\n this.consultantService\r\n .uploadConsultantResume(formData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (event) => {\r\n if (event instanceof HttpResponse) {\r\n Common.activeConsultant = event?.body['ConsultantInfo']\r\n Common.activeConsultant.ConsultantResumeID = event?.body['ConsultantResumeID']\r\n Common.activeConsultant.ResumeFile = this.frmConsultant.get('ResumeFile').value\r\n Common.activeConsultant.ResumeProjects = this.parseConsultantData.ResumeProjects\r\n Common.activeConsultant.ResumeSkills = this.parseConsultantData.ResumeSkills\r\n Common.activeConsultant.ConsultantEducation = this.parseConsultantData.ConsultantEducation\r\n Common.activeConsultant.ConsultantCertification= this.parseConsultantData.ConsultantCertification\r\n Common.activeConsultant.ResumeKeywords = this.parseConsultantData.ResumeKeywords\r\n Common.parseConsultantData = Common.activeConsultant\r\n\r\n this.consultant = Common.activeConsultant\r\n this.consultantId = this.consultant.ConsultantId\r\n this.loading = false\r\n\r\n this.saveProfilePicture()\r\n this.addLocation()\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate profile')\r\n this.consultantActiveTab.emit(0)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.next()\r\n this.stepper.selected.editable = false\r\n })\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Resume upload Error:', 'Candidate profile')\r\n }\r\n )\r\n }\r\n }\r\n saveProfilePicture() {\r\n if (this.imgFrmData) {\r\n this.loading = true\r\n this.imgFrmData.set(\r\n 'contactId',\r\n this.consultant?.ContactId ? this.consultant?.ContactId?.toString() : String(0)\r\n )\r\n this.imgFrmData.set(\r\n 'consultantId',\r\n this.consultant?.ConsultantId ? this.consultant?.ConsultantId?.toString() : String(0)\r\n )\r\n\r\n this.consultantService\r\n .uploadProfilePicture(this.imgFrmData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res instanceof HttpResponse) {\r\n var fileId = res.body['FileId']\r\n var dbPath = res.body['Path']\r\n if (fileId) {\r\n this.imageSrc = this.filePath + dbPath\r\n this.consultant.ImageUrl = this.filePath + dbPath\r\n Common.activeConsultant.ImageUrl = dbPath\r\n }\r\n }\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Profile picture upload error!!' + err, 'Candidate profile')\r\n }\r\n )\r\n }\r\n }\r\n onSelectedTitleId(title) {\r\n this.selectedJobTitleId = title.JobTitleID\r\n }\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (this.frmConsultant.get('jobTitleName').value != '') {\r\n this.consultantService\r\n .getJobTitles(this.frmConsultant.get('jobTitleName').value)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n }\r\n\r\n onPastePhone(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n this.frmConsultant.get('phone').setValue(clipboardData.toString().trim())\r\n }\r\n formatPhoneNumber(phoneNumberString) {\r\n var cleaned = ('' + phoneNumberString).replace(/\\D/g, '')\r\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\r\n if (match) {\r\n return '(' + match[1] + ') ' + match[2] + '-' + match[3]\r\n }\r\n return null\r\n }\r\n validateEmail(email) {\r\n const regularExpression =\r\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n return regularExpression.test(String(email)?.toLowerCase())\r\n }\r\n locationFormChangesHandler(event: boolean) {\r\n this.isLocationFormChanged = event\r\n }\r\n}\r\n"," \r\n\r\n
\r\n
\r\n
Upload
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Upload Resume*\r\n \r\n
\r\n
\r\n\r\n
\r\n Upload Profile Picture\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n
\r\n \r\n \r\n Update Logo\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
General
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n First Name*\r\n \r\n \r\n \r\n First name is required\r\n \r\n \r\n No special characters allowed.\r\n \r\n \r\n
\r\n
\r\n Last Name*\r\n \r\n \r\n \r\n Last name is required\r\n \r\n \r\n No special characters allowed.\r\n \r\n \r\n
\r\n
\r\n Middle Name\r\n \r\n \r\n \r\n No special characters allowed.\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Job Title\r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Experience\r\n \r\n \r\n \r\n
\r\n
\r\n Contact Number*\r\n \r\n \r\n \r\n Contact number is required\r\n \r\n \r\n
\r\n
\r\n Email Address*\r\n \r\n \r\n \r\n Email is required\r\n \r\n
\r\n Email already exists\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Personal Details
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Linkedin\r\n \r\n \r\n \r\n
\r\n
\r\n GitHub\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Youtube Links\r\n \r\n \r\n \r\n
\r\n
\r\n Stack Overflow\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n Upload Profile Picture\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n Upload Resume\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n Confirmation \r\n close\r\n
\r\n
\r\n
\r\n The email-address already exists. Do you want to overwrite it?\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Save & Next\r\n \r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n Input,\r\n NgZone,\r\n TemplateRef,\r\n OnDestroy,\r\n Renderer2,\r\n} from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport { iConsultant, iResumeProjectDummy, iConsultantResumeProject } from 'src/app/models/consultant.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport icAdd from '@iconify/icons-ic/twotone-add'\r\nimport icDelete from '@iconify/icons-ic/twotone-delete'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { MatDatepicker } from '@angular/material/datepicker'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { iStates } from 'src/app/models/common.model'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { animate, state, style, transition, trigger } from '@angular/animations'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { ConsultantDialogTypes, TypeOfVariable } from '../consultant-constants'\r\nimport { format } from 'date-fns'\r\nimport { JobTitle } from 'src/app/models/job.model'\r\nimport { City } from 'src/app/models/location.model'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { DomSanitizer } from '@angular/platform-browser'\r\nimport { CommonService } from 'src/app/services/common.service'\r\n@Component({\r\n selector: 'consultant-projects',\r\n styleUrls: ['./consultant-projects.component.scss'],\r\n templateUrl: './consultant-projects.component.html',\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class ConsultantProjectsComponent implements OnInit, OnDestroy {\r\n public loading = false\r\n consultant: iConsultant = {}\r\n icAdd = icAdd\r\n icDelete = icDelete\r\n dynamicArray: Array = []\r\n consulantResumeProjectData: iConsultantResumeProject[]\r\n data: iResumeProjectDummy\r\n titles: JobTitle[]\r\n allCompanies: iCompany[]\r\n companies: iCompany[]\r\n states: iStates[]\r\n cities: City[] = []\r\n\r\n isEditProject: boolean = false\r\n projectActiveIndex: number\r\n\r\n isCurrentlyWorking: boolean = false\r\n filteredStates: iStates[]\r\n State: iStates\r\n filteredCity: City[]\r\n deleteIconSrc = Common.RedDeleteIcon\r\n editIconSrc = Common.EditIcon\r\n @Input() stepper: MatStepper\r\n @Output() consultantActiveTab: EventEmitter = new EventEmitter()\r\n /** Save end exit button visiblity status */\r\n isSaveandExitVisible$: boolean\r\n /** active consultant id */\r\n activeConsultantId$: number\r\n @ViewChild('PROJECT_STEP') tempref: TemplateRef\r\n @ViewChild('projectDuration') datePickerElement = MatDatepicker\r\n columnNames = ['Title', 'Company', 'Location', 'Start & End Date', 'Duration', 'Action']\r\n columnNamesWithExpand = [...this.columnNames, 'expand']\r\n expandedElement: any | null\r\n\r\n ngUnSubscribe: Subject = new Subject()\r\n\r\n dataSource: MatTableDataSource\r\n deleteProjectIndex: number\r\n isResumeDrawerOpen: boolean = false\r\n constructor(\r\n private notifyService: NotificationService,\r\n private consultantService: ConsultantService,\r\n public authService: AuthenticationService,\r\n private consultantsService: ConsultantsService,\r\n private dialog: MatDialog,\r\n private ngZone: NgZone,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private _renderer: Renderer2,\r\n private _consultantDataService: ConsultantDataService,\r\n private _domSanitizer: DomSanitizer,\r\n private commonService: CommonService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.consultant = Common.activeConsultant\r\n this.getAllCompanies()\r\n this.GetStates()\r\n\r\n if (this.consultant != null && this.consultant != undefined) {\r\n if (this.consultant.ConsultantId > 0) {\r\n this.BindProject(this.consultant.ConsultantResumeID)\r\n }\r\n }\r\n\r\n /** get Save and Exit button status */\r\n this.consultantsService\r\n .getConsultantSaveAndExitButtonStatus()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.isSaveandExitVisible$ = res\r\n })\r\n /** get Active consultant id */\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.activeConsultantId$ = res\r\n })\r\n this._subscribeForResumeDrawerChanges()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n getAllCompanies() {\r\n this.consultantService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.allCompanies = res\r\n })\r\n }\r\n GetCities() {\r\n this.consultantService\r\n .getCities()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.cities = res as City[]\r\n })\r\n }\r\n GetStates() {\r\n this.commonService\r\n .getStates()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.states = res as iStates[]\r\n this.filteredStates = res as iStates[]\r\n })\r\n }\r\n\r\n private getDuration(array: iConsultantResumeProject[]) {\r\n array.forEach((item) => {\r\n if (item.ExperienceNumber <= 0 || item.ExperienceNumber == null) {\r\n var start_date\r\n var end_date\r\n if (item.DurationFrom != null) {\r\n start_date = new Date(item.DurationFrom)\r\n if (item.DurationTo != null) end_date = new Date(item.DurationTo)\r\n else end_date = new Date()\r\n var diff_date = end_date - start_date\r\n var num_years = diff_date / 31536000000\r\n item.ExperienceNumber = Number(num_years.toFixed(1))\r\n }\r\n }\r\n })\r\n }\r\n\r\n saveProjects() {\r\n if (this.dynamicArray.length === 0) {\r\n this.notifyService.showError('Please add at least 1 project!', 'Candidate projects')\r\n return\r\n }\r\n this.loading = true\r\n this.data = {\r\n consultantResumeID: Common.activeConsultant?.ConsultantResumeID,\r\n projects: this.dynamicArray,\r\n }\r\n this.consultantService\r\n .AddProjects(this.data)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate projects')\r\n this.consultantActiveTab.emit(2)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.selected.editable = true\r\n this.stepper.next()\r\n })\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving project data!', 'Candidate projects')\r\n }\r\n )\r\n }\r\n BindProject(consultantResumeId) {\r\n this.loading = true\r\n this.consultantService\r\n .GetConsultantResumeProjects(consultantResumeId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.loading = false\r\n this.consulantResumeProjectData = res as iConsultantResumeProject[]\r\n if (res == null || this.consulantResumeProjectData.length == 0) {\r\n if (\r\n Common.activeConsultant.ResumeProjects != undefined &&\r\n Common.activeConsultant.ResumeProjects != null\r\n ) {\r\n this.dynamicArray = Common.activeConsultant.ResumeProjects\r\n this.dataSource = new MatTableDataSource(Common.activeConsultant.ResumeProjects)\r\n }\r\n } else {\r\n this.loading = false\r\n this.dynamicArray = this.consulantResumeProjectData\r\n this.dataSource = new MatTableDataSource(this.consulantResumeProjectData)\r\n }\r\n })\r\n }\r\n\r\n removeRow(index) {\r\n if (this.dynamicArray.length == 0) {\r\n } else {\r\n this.dynamicArray.splice(index, 1)\r\n this.dataSource = new MatTableDataSource(this.dynamicArray)\r\n this.dialog.closeAll()\r\n }\r\n }\r\n\r\n applyFilterClient(filterValue: string) {\r\n this.companies = this.allCompanies?.filter((company) =>\r\n company.Name?.toLowerCase()?.includes(filterValue?.trim()?.toLowerCase())\r\n )\r\n }\r\n applyFilterTitle(filterValue: string) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n this.consultantService\r\n .jobTitleSearch(filterValue)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.titles = res as JobTitle[]\r\n })\r\n }\r\n applyFilterCity(searchValue: string) {\r\n searchValue = searchValue.trim() // Remove whitespace\r\n this.consultantService\r\n .getCitySearch(searchValue)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.cities = res\r\n })\r\n }\r\n\r\n applyFilterState(searchValue: string) {\r\n searchValue = searchValue.trim() // Remove whitespace\r\n this.filteredStates = this.states.filter((option) =>\r\n option?.StateName?.toLowerCase()?.includes(searchValue?.toLowerCase())\r\n )\r\n }\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (event.key != '') {\r\n this.consultantService\r\n .jobTitleSearch(event.key)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.titles = res as JobTitle[]\r\n })\r\n }\r\n }\r\n getTitle(jobTitleId: number) {\r\n return this.titles.find((title) => title.JobTitleId === jobTitleId).JobTitleName\r\n }\r\n\r\n goToPrev() {\r\n this.stepper.previous()\r\n }\r\n\r\n // will need\r\n // saveProjectData() {\r\n // this.loading = true\r\n // this.data = {\r\n // consultantResumeID: Common.activeConsultant?.ConsultantResumeID,\r\n // projects: this.dynamicArray,\r\n // }\r\n // this.consultantService\r\n // .AddProjects(this.data)\r\n // .pipe(takeUntil(this.ngUnSubscribe))\r\n // .subscribe(\r\n // (result) => {\r\n // this.loading = false\r\n // this.dataSource = new MatTableDataSource(this.dynamicArray)\r\n // this.notifyService.showSuccess('Successfully saved!', 'Candidate projects')\r\n // },\r\n // (err: any) => {\r\n // this.loading = false\r\n // this.notifyService.showError('Error saving project data!', 'Candidate projects')\r\n // }\r\n // )\r\n // }\r\n\r\n openDialog(templateRef) {\r\n const dialogRef = this.dialog.open(templateRef, {\r\n width: '700px',\r\n disableClose: true,\r\n autoFocus: false,\r\n hasBackdrop: false,\r\n })\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.deleteProjectIndex = i\r\n }\r\n\r\n addEditProjectData(index?) {\r\n if (typeof index === TypeOfVariable.Number) {\r\n var editArray = [...this.dynamicArray]\r\n editArray.splice(index, 1)\r\n }\r\n this._disableClickForBody()\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Project,\r\n formData: this.dynamicArray[index],\r\n allCompanies: this.allCompanies,\r\n states: this.states,\r\n projectsArray: typeof index === TypeOfVariable.Number ? editArray : this.dynamicArray,\r\n hasBackdrop: this.isResumeDrawerOpen ? false : true,\r\n isAddFlow: true,\r\n },\r\n })\r\n if (this.isResumeDrawerOpen) {\r\n const resumeContainerWidth = document.getElementById('resume-container')?.clientWidth\r\n const screenWidth = window.screen.width\r\n const dialogLeftPosition = (screenWidth - resumeContainerWidth) / 100\r\n dialogInstance.updatePosition({\r\n left: `${dialogLeftPosition + 1}%`,\r\n })\r\n }\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n this._enableClickForBody()\r\n if (data.formName === ConsultantDialogTypes.Project) {\r\n const durationFrom = new Date(data.formData.DurationFrom)\r\n let durationTo\r\n if (data.formData.IsCurrentlyWorking) {\r\n durationTo = 'Present'\r\n } else {\r\n const date = new Date(data.formData.DurationTo)\r\n durationTo = `${date.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${date.getFullYear()}`\r\n }\r\n\r\n const duration = `${durationFrom.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${durationFrom.getFullYear()} - ${durationTo}`\r\n\r\n let experience\r\n if (!data.formData.IsCurrentlyWorking) {\r\n experience = this.calculateExperience(data.formData.DurationFrom, data.formData.DurationTo)\r\n } else {\r\n experience = this.calculateExperience(data.formData.DurationFrom, new Date())\r\n }\r\n let projectFrom = null\r\n if (this.isValidDate(new Date(data.formData?.DurationFrom))) {\r\n projectFrom = format(new Date(data.formData?.DurationFrom), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n let projectTo = null\r\n if (!data.formData?.IsCurrentlyWorking) {\r\n if (this.isValidDate(new Date(data.formData?.DurationTo))) {\r\n projectTo = format(new Date(data.formData?.DurationTo), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n }\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.dynamicArray[index].ClientName = data.formData.ClientName\r\n this.dynamicArray[index].JobTitleName = data.formData.JobTitleName\r\n this.dynamicArray[index].DurationFrom = projectFrom\r\n this.dynamicArray[index].DurationTo = projectTo\r\n this.dynamicArray[index].City = data.formData.City\r\n this.dynamicArray[index].State = data.formData.State\r\n this.dynamicArray[index].Description = data.formData.Description\r\n this.dynamicArray[index].IsCurrentlyWorking = data.formData.IsCurrentlyWorking\r\n this.dynamicArray[index].Duration = duration\r\n this.dynamicArray[index].ExperienceNumber = experience\r\n } else {\r\n let _consultantResumeId = 0\r\n if (Common.activeConsultant) {\r\n _consultantResumeId =\r\n Common.activeConsultant.ConsultantResumeID > 0\r\n ? Common.activeConsultant.ConsultantResumeID\r\n : 0\r\n }\r\n const newProject = {\r\n ConsultantResumeProjectId: 0,\r\n ConsultantResumeId: _consultantResumeId,\r\n JobTitleId: null,\r\n JobTitleName: data.formData.JobTitleName,\r\n ClientName: data.formData.ClientName,\r\n City: data.formData.City,\r\n State: data.formData.State,\r\n ProjectName: null,\r\n DurationFrom: projectFrom,\r\n DurationTo: projectTo,\r\n Duration: duration,\r\n IsCurrentlyWorking: data.formData.IsCurrentlyWorking,\r\n ExperienceNumber: experience,\r\n ExperienceTypeId: null,\r\n Description: data.formData.Description,\r\n CreatedBy: this.authService.userInfo.userID,\r\n }\r\n this.dynamicArray.push(newProject)\r\n }\r\n this.dataSource.data = this.dynamicArray\r\n this.dataSource.data.slice()\r\n }\r\n })\r\n }\r\n\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n\r\n calculateExperience(from, to) {\r\n const statYear = new Date(from).getFullYear()\r\n const startMonth = new Date(from).getMonth()\r\n const endYear = new Date(to).getFullYear()\r\n const endMonth = new Date(to).getMonth()\r\n let years = endYear - statYear\r\n let month = endMonth - startMonth\r\n if (month < 0) {\r\n years--\r\n month += 12\r\n }\r\n if (years === 0 && month === 0) return Number(0)\r\n return `${years}.${month}`\r\n }\r\n\r\n saveProjectDataFromDialog() {\r\n this.loading = true\r\n const data = {\r\n consultantResumeID: Common.activeConsultant?.ConsultantResumeID,\r\n projects: this.dynamicArray,\r\n }\r\n this.consultantService\r\n .AddProjects(data)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate projects')\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving project data!', 'Candidate projects')\r\n }\r\n )\r\n }\r\n\r\n private _disableClickForBody() {\r\n this._renderer.setStyle(document.body, 'pointer-events', 'none')\r\n }\r\n\r\n private _enableClickForBody() {\r\n this._renderer.removeStyle(document.body, 'pointer-events')\r\n }\r\n\r\n private _subscribeForResumeDrawerChanges() {\r\n this._consultantDataService.isResumeDrawerIsOpenSubject$\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((isOpen: boolean) => {\r\n this.isResumeDrawerOpen = isOpen\r\n })\r\n }\r\n\r\n sanitizeText(text) {\r\n return this._domSanitizer.bypassSecurityTrustHtml(text)\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
Experience
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Title\r\n \r\n {{\r\n element.JobTitleName?.length > 25\r\n ? (element.JobTitleName | slice : 0 : 25) + '...'\r\n : element.JobTitleName\r\n }}\r\n \r\n Company\r\n \r\n {{ element.ClientName }}\r\n \r\n Location\r\n \r\n {{\r\n element?.City | nullValueReplace\r\n }}\r\n 0\">{{ element?.City }}\r\n 0 && element?.State?.length > 0\">, \r\n 0\">{{ element?.State }}\r\n \r\n Duration\r\n \r\n {{\r\n element?.ExperienceNumber && element?.ExperienceNumber != 0\r\n ? element?.ExperienceNumber + ' Yrs'\r\n : (element?.ExperienceNumber | nullValueReplace)\r\n }}\r\n \r\n Start & End Date\r\n \r\n {{ element?.Duration }}\r\n \r\n \r\n {{ element?.DurationFrom | date : 'MMM YYYY' }} -\r\n {{ element?.DurationTo | date : 'MMM YYYY' }}\r\n \r\n Action\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n keyboard_arrow_down\r\n keyboard_arrow_up\r\n \r\n \r\n \r\n 0\"\r\n [innerHTML]=\"sanitizeText(element?.Description)\"\r\n >\r\n \r\n \r\n No Description available for this Project.\r\n \r\n \r\n
\r\n
No data available
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this project?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport { iKeyValue } from 'src/app/models/common.model'\r\nimport { iConsultant } from 'src/app/models/consultant.model'\r\nimport { IConsultantMetaData, IGenericReasonvalue, IConsultantMetaDataPayRate } from 'src/app/models/consultantMetaData'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { Guid } from 'guid-typescript'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iStates } from 'src/app/models/common.model'\r\nimport { Subscription } from 'rxjs'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { CANDIDATE_EDIT_ACTION } from 'src/app/enums/userActions'\r\n@Component({\r\n selector: 'consultant-qualifying-questions',\r\n templateUrl: './consultant-qualifying-questions.component.html',\r\n styleUrls: ['./consultant-qualifying-questions.component.scss'],\r\n})\r\nexport class ConsultantQualifyingQuestionsComponent implements OnInit {\r\n public loading = false\r\n consultantMetaData: IConsultantMetaData = {}\r\n consultantReasonvalue: IGenericReasonvalue = {}\r\n consultantPayValues: IConsultantMetaDataPayRate = {}\r\n modelConsultant: iConsultant\r\n consultant: iConsultant\r\n ConsultantMetaDataId: string\r\n backgroundCheckCompliance?: boolean\r\n currentLocation: string\r\n successStory?: string\r\n interviewInPipeline?: boolean\r\n lookingForChange?: boolean\r\n skills?: string\r\n expectedAnnualPayRate?: number\r\n expectedHourlyPayRate?: number\r\n\r\n isEditMode: boolean = false\r\n jobTypeIds?: any[] = []\r\n jobtypes: iKeyValue[]\r\n locationArray = []\r\n jobTypeArray: iKeyValue[] = [\r\n { Key: '10', Value: 'Contract' },\r\n { Key: '11', Value: 'Contract to Hire' },\r\n { Key: '12', Value: 'Permanent' },\r\n ]\r\n genericButtonValue = [\r\n { Value: true, viewValue: 'Yes' },\r\n { Value: false, viewValue: 'No' },\r\n ]\r\n state: iStates\r\n states: any\r\n cities: any\r\n @Input() consultantSource: any\r\n private subscription: Subscription\r\n candidateEditAction = CANDIDATE_EDIT_ACTION\r\n\r\n constructor(\r\n private consultantService: ConsultantService,\r\n private notifyService: NotificationService,\r\n public authService: AuthenticationService,\r\n private companyService: CompanyService,\r\n public commonService: CommonService\r\n ) //ConsultantMetaDataId = Guid.create()\r\n { }\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData.subscribe((messageConsultantView) => {\r\n if (Common.activeConsultant != null && Common.activeConsultant != undefined) {\r\n this.consultant = Common.activeConsultant\r\n this.getStates()\r\n if (Common.activeConsultant.ConsultantMetaData) {\r\n this.consultantMetaData = JSON.parse(Common.activeConsultant.ConsultantMetaData)\r\n this.lookingForChange = this.consultantMetaData.LookingForChange ? true : false\r\n this.currentLocation =\r\n this.consultantMetaData.CurrentLocation != 'nullnull'\r\n ? this.consultantMetaData.CurrentLocation\r\n : this.consultant?.Location?.Address\r\n this.backgroundCheckCompliance = this.consultantMetaData.BackgroundCheckCompliance.Value\r\n ? true\r\n : false\r\n this.interviewInPipeline = this.consultantMetaData.InterviewInPipeline ? true : false\r\n this.expectedAnnualPayRate = this.consultantMetaData.PayRate.ExpectedAnnualPayRate\r\n this.expectedHourlyPayRate = this.consultantMetaData.PayRate.ExpectedHourlyPayRate\r\n this.successStory = this.consultantMetaData.SuccessStory\r\n\r\n this.consultantService.getLookup('JobTypelD').subscribe((res) => {\r\n this.jobtypes = res as iKeyValue[]\r\n this.jobTypeIds = this.consultantMetaData.JobTypeIds?.split(', ')\r\n })\r\n } else {\r\n this.currentLocation = this.consultant?.Location?.Address\r\n this.backgroundCheckCompliance = this.consultant?.BackgroundCheckCompliance\r\n this.interviewInPipeline = this.consultant?.InterviewInPipeline\r\n this.expectedAnnualPayRate = this.consultant?.ExpectedSalary\r\n this.expectedHourlyPayRate = this.consultant?.ExpectedPayRate\r\n this.successStory = this.consultant?.SuccessStory\r\n this.jobTypeIds = this.consultant?.JobType?.split(', ')\r\n }\r\n }\r\n })\r\n }\r\n getStates() {\r\n this.commonService.getStates().subscribe((res) => {\r\n this.states = res\r\n })\r\n }\r\n applyFilterCity(searchValue: string) {\r\n let stateCode = null\r\n searchValue = searchValue.trim() // Remove whitespace\r\n this.companyService.GetCitySearch(searchValue, stateCode).subscribe((res) => {\r\n this.cities = res\r\n })\r\n }\r\n onSelectedCitiChange(c) {\r\n this.currentLocation = c.City + ', ' + c.StateCode\r\n }\r\n JobTypeChange(selectedValue) {\r\n var divPayRate = document.getElementById('divExpRate')\r\n var divSalary = document.getElementById('divExpSalary')\r\n\r\n divPayRate.style.display = 'none'\r\n divSalary.style.display = 'none'\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumJobContractType.JT_C2C) > -1) {\r\n divPayRate.style.display = 'block'\r\n }\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumJobContractType.JT_C2H) > -1) {\r\n // Contract to hire ID (lookup)\r\n divPayRate.style.display = 'block'\r\n divSalary.style.display = 'block'\r\n }\r\n if (selectedValue.split(',').map(Number).indexOf(Common.enumJobContractType.JT_PERM) > -1) {\r\n // Permanent\r\n divSalary.style.display = 'block'\r\n }\r\n }\r\n\r\n cancelEditMode() {\r\n this.isEditMode = false\r\n }\r\n\r\n updateQualifyingQuestions() {\r\n this.saveQualifyingQuestions()\r\n }\r\n saveQualifyingQuestions() {\r\n this.loading = true\r\n this.modelConsultant = Common.activeConsultant\r\n this.modelConsultant.UpdatedBy = this.authService.userInfo.userID\r\n //{\"ConsultantMetaDataId\":\"3a7a8796-9d7a-4656-a1b4-f70c7880f271\",\"CurrentLocation\":\"nullnull\",\"JobTypeIds\":\"12\",\"PayRate\":{\"ExpectedHourlyPayRate\":0.0,\"ExpectedAnnualPayRate\":10000.0},\"BackgroundCheckCompliance\":{\"Value\":null,\"Reason\":null},\"SuccessStory\":null,\"InterviewInPipeline\":null,\"LookingForChange\":null}\r\n\r\n this.consultantReasonvalue.Value = this.backgroundCheckCompliance ? true : false\r\n this.consultantPayValues.ExpectedHourlyPayRate = this.expectedHourlyPayRate\r\n this.consultantPayValues.ExpectedAnnualPayRate = this.expectedAnnualPayRate\r\n //this.consultantReasonvalue.Reason ='';\r\n this.consultantMetaData.ConsultantMetaDataId =\r\n this.ConsultantMetaDataId == undefined ? Guid.create().toString() : this.ConsultantMetaDataId\r\n this.consultantMetaData.LookingForChange = this.lookingForChange ? true : false\r\n this.consultantMetaData.BackgroundCheckCompliance = this.consultantReasonvalue\r\n this.consultantMetaData.InterviewInPipeline = this.interviewInPipeline ? true : false\r\n this.consultantMetaData.PayRate = this.consultantPayValues\r\n this.consultantMetaData.JobTypeIds = this.jobTypeIds?.toString()\r\n this.consultantMetaData.SuccessStory = this.successStory\r\n this.consultantMetaData.CurrentLocation = this.currentLocation\r\n this.modelConsultant.ConsultantMetaData = JSON.stringify(this.consultantMetaData)\r\n\r\n this.consultantService.saveConsultantQualifyingQuestions(this.modelConsultant).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Successfully saved!', 'Consultant Qualifying Questions')\r\n this.isEditMode = false\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n this.notifyService.showError('Error saving data', 'Consultant Qualifying Questions')\r\n this.loading = false\r\n }\r\n )\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n Qualifying Questions\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n Looking For change?*\r\n {{ lookingForChange | nullValueReplace }}\r\n \r\n \r\n \r\n {{ buttonValue.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n Current Location\r\n {{ currentLocation | nullValueReplace }}\r\n\r\n \r\n \r\n \r\n \r\n {{ c.City }}, {{ c.StateCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n Do you have any offers/Interview in pipeline ?\r\n {{ interviewInPipeline | nullValueReplace }}\r\n \r\n \r\n \r\n {{ buttonValue.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n Background Check Compliance?\r\n {{\r\n backgroundCheckCompliance | nullValueReplace\r\n }}\r\n \r\n \r\n \r\n {{ buttonValue.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n Job Type*\r\n {{ jobTypeIds | nullValueReplace }}\r\n \r\n \r\n \r\n {{ jt.Value }}\r\n \r\n \r\n \r\n
\r\n
\r\n Expected Annual Pay Rate\r\n {{ expectedAnnualPayRate | nullValueReplace }}\r\n \r\n \r\n \r\n
\r\n
\r\n Expected Hourly Pay Rate\r\n {{ expectedHourlyPayRate | nullValueReplace }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, Input, TemplateRef, OnDestroy, Renderer2 } from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { iConsultant, iConsultantRefernceData, iConsultantReference } from 'src/app/models/consultant.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { FormBuilder, Validators } from '@angular/forms'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { ConsultantDialogTypes } from '../consultant-constants'\r\nimport { JobTitle } from 'src/app/models/job.model'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { JobCandidateTab } from 'src/app/enums/jobCandidate'\r\n\r\n@Component({\r\n selector: 'consultant-references',\r\n templateUrl: './consultant-references.component.html',\r\n styleUrls: ['./consultant-references.component.scss'],\r\n})\r\nexport class ConsultantReferencesComponent implements OnInit, OnDestroy {\r\n public loading = false\r\n jobId: number = 0\r\n // frmConsultant: FormGroup\r\n data: iConsultantRefernceData\r\n consultantReference: iConsultantReference[]\r\n dynamicArray: Array = []\r\n newDynamic: any = {}\r\n JobTitle: string\r\n visible = true\r\n selectable = true\r\n removable = true\r\n addOnBlur = true\r\n deleteIconSrc = Common.RedDeleteIcon\r\n editIconSrc = Common.EditIcon\r\n // activeConsultant: iConsultant;\r\n consultant: iConsultant = {}\r\n @Input() stepper: any\r\n @Output() consultantActiveTab: EventEmitter = new EventEmitter()\r\n /** Save end exit button visiblity status */\r\n isSaveandExitVisible$: boolean\r\n /** active consultant id */\r\n activeConsultantId$: number\r\n allCompanies: any\r\n companies: any\r\n titles: JobTitle[]\r\n contactsList: any[] = []\r\n companyModel: any\r\n contact: any\r\n\r\n refCompanyName: string = ''\r\n refName: string = ''\r\n refJobTitle: string = ''\r\n refEmail: string = ''\r\n refWorkPhone: string = ''\r\n refCellPhone: string = ''\r\n refCompanyId: number\r\n refContactId: number\r\n isEditReference: boolean = false\r\n editRefIndex: number\r\n referenceColumnName = ['Name', 'CompanyName', 'Email', 'Phone', 'Action']\r\n referenceDataSource: MatTableDataSource\r\n deleteReferenceIndex: number\r\n isResumeDrawerOpen: boolean = false\r\n isApplyFlow: boolean = false\r\n\r\n ngUnSubscribe: Subject = new Subject()\r\n\r\n frmConsultant = this.fb.group({\r\n refCompanyName: ['', Validators.required],\r\n refName: ['', Validators.required],\r\n refJobTitle: ['', Validators.required],\r\n refEmail: ['', Validators.required],\r\n refWorkPhone: ['', Validators.required],\r\n refCellPhone: [''],\r\n })\r\n constructor(\r\n private layoutService: LayoutService,\r\n private notifyService: NotificationService,\r\n private consultantService: ConsultantService,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private loadComponent: LoadComponent,\r\n private consultantsService: ConsultantsService,\r\n private router: Router,\r\n private companyService: CompanyService,\r\n private dialog: MatDialog,\r\n private fb: FormBuilder,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private _renderer: Renderer2,\r\n private _consultantDataService: ConsultantDataService,\r\n private _activatedRouter: ActivatedRoute\r\n ) {\r\n if (this._activatedRouter.snapshot.params?.id != null) {\r\n this.isApplyFlow = true\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createDefaultContactObj()\r\n this.getCompanyModel()\r\n this.getAllCompanies()\r\n this.consultant = Common.activeConsultant\r\n this.jobId = Common?.activeConsultantJob?.JobID\r\n if (this.consultant != null && this.consultant != undefined) {\r\n if (this.consultant.ConsultantId > 0) {\r\n this.BindReference(this.consultant.ConsultantId)\r\n }\r\n }\r\n /** get Save and Exit button status */\r\n this.consultantsService\r\n .getConsultantSaveAndExitButtonStatus()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.isSaveandExitVisible$ = res\r\n })\r\n /** get Active consultant id */\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.activeConsultantId$ = res\r\n })\r\n this._subscribeForResumeDrawerChanges()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n }\r\n\r\n BindReference(consultantId) {\r\n this.consultantService\r\n .GetConsultantReference(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.consultantReference = res as iConsultantReference[]\r\n if (res == null || this.consultantReference.length == 0) {\r\n if (\r\n Common.activeConsultant.ConsultantReference != undefined &&\r\n Common.activeConsultant.ConsultantReference != null\r\n ) {\r\n this.dynamicArray = Common.activeConsultant.ConsultantReference\r\n this.referenceDataSource = new MatTableDataSource(this.dynamicArray)\r\n }\r\n } else {\r\n this.dynamicArray = this.consultantReference\r\n this.referenceDataSource = new MatTableDataSource(this.dynamicArray)\r\n }\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n addRow() {\r\n this.frmConsultant.markAllAsTouched()\r\n if (this.frmConsultant.valid) {\r\n if (this.isEditReference) {\r\n this.dynamicArray[this.editRefIndex].CompanyName = this.frmConsultant.get('refCompanyName').value\r\n this.dynamicArray[this.editRefIndex].Name = this.frmConsultant.get('refName').value\r\n this.dynamicArray[this.editRefIndex].Title = this.frmConsultant.get('refJobTitle').value\r\n this.dynamicArray[this.editRefIndex].EmailAddress = this.frmConsultant.get('refEmail').value\r\n this.dynamicArray[this.editRefIndex].WorkPhone = this.frmConsultant.get('refWorkPhone').value\r\n this.dynamicArray[this.editRefIndex].CellPhone = this.frmConsultant.get('refCellPhone').value\r\n this.dialog.closeAll()\r\n this.referenceDataSource = new MatTableDataSource(this.dynamicArray)\r\n } else {\r\n this.newDynamic = {\r\n ConsultantReferenceID: null,\r\n ConsultantID: this.consultant?.ConsultantId > 0 ? this.consultant?.ConsultantId : null,\r\n Name: this.frmConsultant.get('refName').value,\r\n Title: this.frmConsultant.get('refJobTitle').value,\r\n CompanyName: this.frmConsultant.get('refCompanyName').value,\r\n EmailAddress: this.frmConsultant.get('refEmail').value,\r\n WorkPhone: this.frmConsultant.get('refWorkPhone').value,\r\n CompanyId: this.refCompanyId,\r\n TitleId: 0,\r\n ContactId: this.refContactId,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n IsActive: true,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n this.dialog.closeAll()\r\n this.referenceDataSource = new MatTableDataSource(this.dynamicArray)\r\n }\r\n\r\n this.refCompanyName = ''\r\n this.refName = ''\r\n this.refJobTitle = ''\r\n this.refEmail = ''\r\n this.refWorkPhone = ''\r\n this.refCellPhone = ''\r\n this.refCompanyId = null\r\n this.refContactId = null\r\n this.isEditReference = false\r\n return true\r\n }\r\n }\r\n removeRow(index) {\r\n if (this.dynamicArray.length == 1) {\r\n this.dynamicArray.splice(index, 1)\r\n this.referenceDataSource = new MatTableDataSource(this.dynamicArray)\r\n } else {\r\n this.dynamicArray.splice(index, 1)\r\n this.referenceDataSource = new MatTableDataSource(this.dynamicArray)\r\n this.dialog.closeAll()\r\n }\r\n }\r\n\r\n resetForm() {\r\n this.refCompanyName = ''\r\n this.refName = ''\r\n this.refJobTitle = ''\r\n this.refEmail = ''\r\n this.refWorkPhone = ''\r\n this.refCellPhone = ''\r\n }\r\n\r\n saveReference() {\r\n this.data = {\r\n consultantId: this.consultant.ConsultantId,\r\n reference: this.dynamicArray,\r\n }\r\n\r\n for (let index = 0; index < this.dynamicArray.length; index++) {\r\n var fullName = this.dynamicArray[index].Name.split(' ')\r\n var firstName = fullName[0]\r\n var lastName = fullName[fullName.length - 1]\r\n\r\n this.contact.FirstName = firstName\r\n this.contact.LastName = lastName\r\n this.contact.CellPhone = this.dynamicArray[index].CellPhone\r\n this.contact.WorkPhone = this.dynamicArray[index].WorkPhone\r\n this.contact.EmailAddress = this.dynamicArray[index].EmailAddress\r\n this.contact.Title = this.dynamicArray[index].Title\r\n\r\n this.companyModel.companyID = this.dynamicArray[index].CompanyId\r\n\r\n if (this.dynamicArray[index].CompanyId == 0) {\r\n this.companyModel.WebSite = 'www.' + new Date().toString() + '.com'\r\n this.companyModel.Name = this.dynamicArray[index].CompanyName\r\n this.companyModel.Phone = this.dynamicArray[index].WorkPhone\r\n this.companyModel.Description = null\r\n this.companyModel.Address = null\r\n this.companyModel.IsActive = true\r\n this.companyModel.StateCode = null\r\n this.companyModel.StateId = null\r\n this.companyModel.EmployeeRangeID = null\r\n this.companyModel.City = null\r\n this.companyModel.ZipCode = null\r\n this.companyModel.IndustryID = null\r\n this.companyModel.CompanyStatusID = 79 //<-Prospect. TODO: use enum value\r\n this.companyModel.SicCodeID = null\r\n this.companyModel.CompanyTypeID = CompanyType.Client\r\n this.companyModel.MSPCompanyID = null\r\n this.companyModel.CreatedDate = new Date()\r\n this.companyModel.CreatedBy = this.authService.userInfo.userID\r\n this.companyService\r\n .AddCompany(this.companyModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (this.dynamicArray[index].ContactId == 0) {\r\n this.contact.CompanyId = res.CompanyId\r\n this.companyService\r\n .AddContact(this.contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.notifyService.showSuccess('Contact added!', 'Contact')\r\n },\r\n (err) => {\r\n this.notifyService.showError('Error Adding data', 'Contact')\r\n }\r\n )\r\n }\r\n })\r\n } else {\r\n if (this.dynamicArray[index].ContactId == 0) {\r\n this.contact.CompanyId = this.dynamicArray[index].CompanyId\r\n this.companyService\r\n .AddContact(this.contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.notifyService.showSuccess('Contact added!', 'Contact')\r\n },\r\n (err) => {\r\n this.notifyService.showError('Error Adding data', 'Contact')\r\n }\r\n )\r\n }\r\n }\r\n }\r\n\r\n this.consultantService\r\n .saveConsultantReference(this.data)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate Reference')\r\n this.consultantActiveTab.emit(5)\r\n this.commonService.candidateObservable$.next(false)\r\n if (this.isApplyFlow) {\r\n this.router.navigate(['/jobs'], {\r\n queryParams: {\r\n jobId: this.jobId,\r\n activeTab: JobCandidateTab.Navigate_Job_Candidate_tab,\r\n },\r\n })\r\n } else {\r\n this.router.navigate(['/candidates'])\r\n }\r\n },\r\n (err: any) => {\r\n alert(\"Error: Couldn't Save Data!!\")\r\n return\r\n }\r\n )\r\n }\r\n\r\n goToPrevious() {\r\n this.stepper.previous()\r\n }\r\n onPastePhone(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n this.frmConsultant.get('phone').setValue(clipboardData.toString().trim())\r\n }\r\n\r\n getAllCompanies() {\r\n this.consultantService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.allCompanies = res\r\n })\r\n }\r\n applyFilterClient(filterValue: string) {\r\n this.companies = this.allCompanies.filter((x) =>\r\n x.Name.toLowerCase().includes(filterValue.trim().toLowerCase())\r\n )\r\n }\r\n applyFilterTitle(filterValue: string) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n this.consultantService\r\n .jobTitleSearch(filterValue)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.titles = res as JobTitle[]\r\n })\r\n }\r\n getClientContacts(CompanyId) {\r\n this.companyService\r\n .GetContactsByClient(CompanyId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.contactsList = res\r\n })\r\n }\r\n onCompanySelect(company) {\r\n this.getClientContacts(company.CompanyId)\r\n this.refCompanyId = company.CompanyId\r\n }\r\n onContactSelect(contact) {\r\n this.refEmail = contact.Email\r\n this.refWorkPhone = contact.WorkPhone\r\n this.refCellPhone = contact.Phone\r\n this.refJobTitle = contact.Title\r\n this.refContactId = contact.ContactId\r\n }\r\n getCompanyModel() {\r\n this.companyModel = {\r\n CompanyId: 0,\r\n Name: '',\r\n Phone: '',\r\n EmailAddress: '',\r\n Fax: '',\r\n Address: '',\r\n Address1: '',\r\n City: '',\r\n StateId: null,\r\n StateCode: '',\r\n ZipCode: null,\r\n ZipCode1: null,\r\n Dunnumber: '',\r\n FederalTaxId: '',\r\n LegalStructureId: null,\r\n RegisteredStateId: null,\r\n RegisteredState: '',\r\n WebSite: '',\r\n NewsLink: '',\r\n EmployeeRangeID: null,\r\n Description: '',\r\n IsActive: true,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n }\r\n }\r\n createDefaultContactObj() {\r\n this.contact = {\r\n ContactID: 0,\r\n FirstName: '',\r\n MiddleName: '',\r\n LastName: '',\r\n EmailAddress: '',\r\n ImageId: 0,\r\n TitleId: 0,\r\n DoB: null,\r\n Sex: 0,\r\n HomePhone: '',\r\n WorkPhone: '',\r\n CellPhone: '',\r\n LinkedinUrl: '',\r\n ManagementLevelID: null,\r\n ParentID: null,\r\n DepartmentID: null,\r\n FilePath: null,\r\n LocationID: null,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n Address1: '',\r\n Address2: '',\r\n City: '',\r\n StateID: 0,\r\n CountryID: 0,\r\n CompanyContactID: 0,\r\n ZipCode: 0,\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n CompanyId: 1,\r\n }\r\n }\r\n\r\n onGridColumnClick(consultantId) {\r\n this.consultantService\r\n .getConsultant(consultantId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = null\r\n //Common.activeJob = null;\r\n Common.activeConsultant = res\r\n this.consultant = res\r\n //this.consultant.emit(res);\r\n this.openQuickpanel()\r\n })\r\n }\r\n openQuickpanel() {\r\n //Common.activeJob = null;\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('consultant')\r\n this.commonService.setComponentData(Common.activeConsultant)\r\n }\r\n\r\n editRefHandler(index, templateRef) {\r\n this.openDialog(templateRef)\r\n this.editRefIndex = index\r\n this.isEditReference = true\r\n this.refCompanyName = this.dynamicArray[index].CompanyName\r\n this.refName = this.dynamicArray[index].Name\r\n this.refJobTitle = this.dynamicArray[index].Title\r\n this.refEmail = this.dynamicArray[index].EmailAddress\r\n this.refWorkPhone = this.dynamicArray[index].WorkPhone\r\n this.refCellPhone = this.dynamicArray[index].CellPhone\r\n }\r\n\r\n openDialog(templateRef) {\r\n this.frmConsultant.markAsUntouched\r\n const dialogRef = this.dialog.open(templateRef, {\r\n width: '700px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.deleteReferenceIndex = i\r\n }\r\n\r\n addEditReferencesData(i?) {\r\n this._disableClickForBody()\r\n if (typeof i === 'number') this.editRefIndex = i\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Reference,\r\n formData: this.dynamicArray[i],\r\n contactsList: this.contactsList,\r\n allCompanies: this.allCompanies,\r\n hasBackdrop: this.isResumeDrawerOpen ? false : true,\r\n isAddFlow: true,\r\n },\r\n })\r\n if (this.isResumeDrawerOpen) {\r\n const resumeContainerWidth = document.getElementById('resume-container')?.clientWidth\r\n const screenWidth = window.screen.width\r\n const dialogLeftPosition = (screenWidth - resumeContainerWidth) / 100\r\n\r\n dialogInstance.updatePosition({\r\n left: `${dialogLeftPosition + 1}%`,\r\n })\r\n }\r\n\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n this._enableClickForBody()\r\n if (data.formName === ConsultantDialogTypes.Reference) {\r\n if (typeof i === 'number') {\r\n this.dynamicArray[i].CompanyName = data.formData?.CompanyName\r\n this.dynamicArray[i].Name = data.formData?.Name\r\n this.dynamicArray[i].Title = data.formData?.Title\r\n this.dynamicArray[i].EmailAddress = data.formData?.EmailAddress\r\n this.dynamicArray[i].WorkPhone = data.formData?.WorkPhone\r\n this.dynamicArray[i].CellPhone = data.formData?.CellPhone\r\n } else {\r\n const newReference = {\r\n ConsultantReferenceID: null,\r\n ConsultantID: this.consultant?.ConsultantId > 0 ? this.consultant?.ConsultantId : null,\r\n Name: data.formData?.Name,\r\n Title: data.formData?.Title,\r\n CompanyName: data.formData?.CompanyName,\r\n EmailAddress: data.formData?.EmailAddress,\r\n WorkPhone: data.formData?.WorkPhone,\r\n CellPhone: data.formData?.CellPhone,\r\n CompanyId: data.formData?.CompanyId,\r\n TitleId: 0,\r\n ContactId: data.formData?.ContactId,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n IsActive: true,\r\n }\r\n this.dynamicArray.push(newReference)\r\n }\r\n this.saveReferenceData()\r\n }\r\n })\r\n }\r\n\r\n saveReferenceData() {\r\n this.data = {\r\n consultantId: this.consultant.ConsultantId,\r\n reference: this.dynamicArray,\r\n }\r\n\r\n for (let index = 0; index < this.dynamicArray.length; index++) {\r\n var fullName = this.dynamicArray[index].Name.split(' ')\r\n var firstName = fullName[0]\r\n var lastName = fullName[fullName.length - 1]\r\n\r\n this.contact.FirstName = firstName\r\n this.contact.LastName = lastName\r\n this.contact.CellPhone = this.dynamicArray[index].CellPhone\r\n this.contact.WorkPhone = this.dynamicArray[index].WorkPhone\r\n this.contact.EmailAddress = this.dynamicArray[index].EmailAddress\r\n this.contact.Title = this.dynamicArray[index].Title\r\n\r\n this.companyModel.companyID = this.dynamicArray[index]?.CompanyId ? this.dynamicArray[index]?.CompanyId : 0\r\n\r\n if (this.dynamicArray[index].CompanyId == 0) {\r\n this.companyModel.WebSite = 'www.' + new Date().toString() + '.com'\r\n this.companyModel.Name = this.dynamicArray[index].CompanyName\r\n this.companyModel.Phone = this.dynamicArray[index].WorkPhone\r\n this.companyModel.Description = null\r\n this.companyModel.Address = null\r\n this.companyModel.IsActive = true\r\n this.companyModel.StateCode = null\r\n this.companyModel.StateId = null\r\n this.companyModel.EmployeeRangeID = null\r\n this.companyModel.City = null\r\n this.companyModel.ZipCode = null\r\n this.companyModel.IndustryID = null\r\n this.companyModel.CompanyStatusID = 79 //<-Prospect. TODO: use enum value\r\n this.companyModel.SicCodeID = null\r\n this.companyModel.CompanyTypeID = CompanyType.Client\r\n this.companyModel.MSPCompanyID = null\r\n this.companyModel.CreatedDate = new Date()\r\n this.companyModel.CreatedBy = this.authService.userInfo.userID\r\n this.companyService\r\n .AddCompany(this.companyModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (this.dynamicArray[index].ContactId == 0) {\r\n this.contact.CompanyId = res.CompanyId\r\n if (\r\n this.dynamicArray[index]?.CellPhone &&\r\n this.dynamicArray[index]?.EmailAddress &&\r\n this.dynamicArray[index]?.WorkPhone\r\n ) {\r\n this.companyService\r\n .AddContact(this.contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.notifyService.showSuccess('Contact added!', 'Contact')\r\n },\r\n (err) => {\r\n this.notifyService.showError('Error Adding data', 'Contact')\r\n }\r\n )\r\n }\r\n }\r\n })\r\n } else {\r\n if (this.dynamicArray[index].ContactId == 0) {\r\n this.contact.CompanyId = this.dynamicArray[index].CompanyId\r\n if (\r\n this.dynamicArray[index]?.CellPhone &&\r\n this.dynamicArray[index]?.EmailAddress &&\r\n this.dynamicArray[index]?.WorkPhone\r\n ) {\r\n this.companyService\r\n .AddContact(this.contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.notifyService.showSuccess('Contact added!', 'Contact')\r\n },\r\n (err) => {\r\n this.notifyService.showError('Error Adding data', 'Contact')\r\n }\r\n )\r\n }\r\n }\r\n }\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantReference(this.data)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.referenceDataSource = new MatTableDataSource(this.dynamicArray)\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate Reference')\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Candidate Reference')\r\n }\r\n )\r\n }\r\n }\r\n private _disableClickForBody() {\r\n this._renderer.setStyle(document.body, 'pointer-events', 'none')\r\n }\r\n private _enableClickForBody() {\r\n this._renderer.removeStyle(document.body, 'pointer-events')\r\n }\r\n private _subscribeForResumeDrawerChanges() {\r\n this._consultantDataService.isResumeDrawerIsOpenSubject$\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((isOpen: boolean) => {\r\n this.isResumeDrawerOpen = isOpen\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
References
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n Add Reference \r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Company Name*\r\n \r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n Company name is required\r\n \r\n \r\n
\r\n\r\n
\r\n Full Name*\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }}\r\n \r\n \r\n \r\n Full name is required\r\n \r\n \r\n
\r\n\r\n
\r\n Job Title*\r\n \r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n Title is required\r\n \r\n \r\n
\r\n\r\n
\r\n Email Address*\r\n \r\n \r\n \r\n Email is required\r\n \r\n \r\n
\r\n
\r\n Work Phone*\r\n \r\n \r\n\r\n \r\n Work phone is required\r\n \r\n \r\n
\r\n
\r\n Cell Phone\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Name\r\n {{ element.Name }}\r\n Company Name\r\n {{ element.CompanyName }}\r\n Email\r\n {{ element.EmailAddress }}\r\n Phone\r\n {{ element.WorkPhone }}\r\n Action\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n No data available\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Preview\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this reference?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core'\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { Subject, Subscription } from 'rxjs'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nAnimationEffect\r\nimport { ActivatedRoute } from '@angular/router'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { first, takeUntil } from 'rxjs/operators'\r\nimport { iConsultantSearch } from '../consultant-constants'\r\nimport { CANDIDATE_ADD_ACTION } from 'src/app/enums/userActions'\r\n\r\n@Component({\r\n selector: 'consultant-resume',\r\n templateUrl: './consultant-resume.component.html',\r\n styleUrls: ['./consultant-resume.component.scss'],\r\n})\r\nexport class ConsultantResumeComponent implements OnInit, OnDestroy {\r\n consultant: any = {}\r\n safeHtmlContent: SafeHtml\r\n htmlString: string\r\n public loading = false\r\n downloadUrl: string\r\n isEditMode: any\r\n isEditUrl: string\r\n @ViewChild('pdfTable') pdfTable: ElementRef\r\n\r\n @Input() consultantSource: any\r\n @Input() location: string\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n searchPara: iConsultantSearch\r\n ngUnsubscribe$: Subject = new Subject()\r\n isResumeAvailable: boolean = false\r\n constructor(\r\n private sanitized: DomSanitizer,\r\n private consultantService: ConsultantService,\r\n public commonService: CommonService,\r\n public route: ActivatedRoute,\r\n public notificationService: NotificationService,\r\n private consultantDataService: ConsultantDataService\r\n ) {}\r\n\r\n private subscription: Subscription\r\n pdfData: any\r\n ngOnInit(): void {\r\n this.isEditUrl = this.route.snapshot['_routerState'].url.split('/')[2]\r\n if (this.isEditUrl == 'edit') {\r\n this.isEditMode = true\r\n } else {\r\n this.isEditMode = false\r\n }\r\n if (this.location == 'tabs' || this.isEditMode) {\r\n const IS_DICE_CANDIDATE = this.route.snapshot.queryParamMap.get('isDice')\r\n if (IS_DICE_CANDIDATE) {\r\n this._searchDiceResume()\r\n } else {\r\n this.consultant = this.consultantSource\r\n this.BindResume(this.consultantSource?.ConsultantId)\r\n }\r\n } else {\r\n this.safeHtmlContent = this.sanitized.bypassSecurityTrustHtml(Common?.ResumeHTML?.toString())\r\n this.isResumeAvailable = true\r\n }\r\n this.downloadUrl =\r\n this.consultant?.ResumePath != null ? Common?.filePath + this.consultant?.ResumePath : 'javascript:void(0)'\r\n this.resumeChanges()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.consultantDataService.setDiceCandidateResume(null)\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n BindResume(ConsultantID) {\r\n this.loading = true\r\n this.consultantService\r\n .GetResume(ConsultantID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (result) => {\r\n if (result != null && result != '') {\r\n this.isResumeAvailable = true\r\n let htmlString = result\r\n this.htmlString = result?.toString()\r\n this.safeHtmlContent = this.sanitized.bypassSecurityTrustHtml(htmlString?.toString())\r\n this.loading = false\r\n this.pdfData = htmlString\r\n } else {\r\n this.loading = false\r\n this.pullDiceResume()\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n sanitizeHTML(str: string) {\r\n return this.sanitized.bypassSecurityTrustHtml(str)\r\n }\r\n pullDiceResume() {\r\n try {\r\n if (\r\n this.safeHtmlContent != '' &&\r\n this.safeHtmlContent != undefined &&\r\n (this.consultant.SourceID == '' || this.consultant.SourceID == null)\r\n ) {\r\n return\r\n }\r\n\r\n this.loading = true\r\n this.searchPara = {}\r\n this.searchPara.SourceID = this.consultant.SourceID\r\n this.searchPara.SourceTypeID = Number(this.consultant?.SourceTypeID)\r\n this.safeHtmlContent = ''\r\n this.consultantService\r\n .ConsultantDiceSearch(this.searchPara)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (candidatesList) => {\r\n if (candidatesList && candidatesList[0] != null) {\r\n this.isResumeAvailable = true\r\n this.loading = false\r\n this.safeHtmlContent = this.sanitizeHTML(candidatesList[0]?.Resumes[0]?.ResumeText)\r\n Common.activeConsultant.Emailaddress = candidatesList[0]?.Contact?.EmailAddress\r\n Common.activeConsultant.CellPhone = candidatesList[0]?.Contact?.CellPhone\r\n Common.activeConsultant.ResumePath = candidatesList[0]?.FileInfo?.Path\r\n this.consultant.ResumePath = candidatesList[0]?.FileInfo?.Path\r\n this.downloadUrl =\r\n this.consultant.ResumePath != null\r\n ? Common.filePath + this.consultant?.ResumePath\r\n : 'javascript:void(0)' //for keeping the user on the same page without refreshing\r\n this.consultantDataService.setDiceCandidateResume(candidatesList[0]?.Resumes[0])\r\n } else {\r\n this.loading = false\r\n this.isResumeAvailable = false\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n } catch (Error) {\r\n this.loading = false\r\n }\r\n }\r\n\r\n public downloadAsPDF() {\r\n if (this.downloadUrl == 'javascript:void(0)') {\r\n this.notificationService.showError('Download URL not available for DICE candidates', '')\r\n }\r\n }\r\n resumeChanges() {\r\n this.consultantDataService.resumeDrawerSubjectChanges$\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((isOpen) => {\r\n if (isOpen) {\r\n if (this.location == FormLocation.Tabs || this.isEditMode) {\r\n this.consultant = this.consultantSource\r\n this.BindResume(this.consultantSource?.ConsultantId)\r\n } else {\r\n this.safeHtmlContent = this.sanitized.bypassSecurityTrustHtml(Common?.ResumeHTML?.toString())\r\n this.isResumeAvailable = true\r\n }\r\n this.downloadUrl =\r\n this.consultant?.ResumePath != null\r\n ? Common?.filePath + this.consultant?.ResumePath\r\n : 'javascript:void(0)'\r\n }\r\n })\r\n }\r\n\r\n private _searchDiceResume() {\r\n this.loading = true\r\n const DICE_CANDIDATE_ID = this.route.snapshot.queryParamMap.get('consultantId')\r\n this.consultantService\r\n .SearchDiceConsultantById(DICE_CANDIDATE_ID)\r\n .pipe(first())\r\n .subscribe({\r\n next: (candidatesList: any) => {\r\n if (candidatesList && candidatesList.Resumes[0] != null) {\r\n this.isResumeAvailable = true\r\n this.loading = false\r\n this.safeHtmlContent = this.sanitizeHTML(candidatesList?.Resumes[0]?.ResumeText)\r\n Common.activeConsultant.Emailaddress = candidatesList?.Contact?.EmailAddress\r\n Common.activeConsultant.CellPhone = candidatesList?.Contact?.CellPhone\r\n // Common.activeConsultant.ResumePath = candidatesList?.FileInfo?.Path\r\n // this.consultant.ResumePath = candidatesList?.FileInfo?.Path\r\n this.downloadUrl =\r\n this.consultant.ResumePath != null\r\n ? Common.filePath + this.consultant?.ResumePath\r\n : 'javascript:void(0)' //for keeping the user on the same page without refreshing\r\n this.consultantDataService.setDiceCandidateResume(candidatesList?.Resumes[0])\r\n this._getConsultantByDiceId(DICE_CANDIDATE_ID)\r\n } else {\r\n this.loading = false\r\n this.isResumeAvailable = false\r\n }\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.isResumeAvailable = false\r\n },\r\n })\r\n }\r\n\r\n private _getConsultantByDiceId(diceId) {\r\n this.consultantService\r\n .getDiceConsultant(diceId)\r\n .pipe(first())\r\n .subscribe({\r\n next: (consultant) => {\r\n Common.activeConsultant = consultant\r\n },\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n \r\n
\r\n Resume\r\n
\r\n \r\n \r\n Download Resume\r\n \r\n \r\n
\r\n \r\n
No resume found.
\r\n
\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { RouterModule, Routes } from '@angular/router'\r\nimport { AuthGuard } from '../guards/auth.guard'\r\nimport { ConsultantListComponent } from './consultant-list/consultant-list.component'\r\nimport { ConsultantAddlayoutComponent } from './consultant-addlayout/consultant-addlayout.component'\r\nimport { ConsultantJobStatusComponent } from './consultant-job-status/consultant-job-status.component'\r\nimport { IsCanAccessPageGuard } from '../guards/is-can-access-page.guard'\r\nimport { ADD_PATH, CANDIDATE_ADD_PARAM_ID, CANDIDATE_JOB_STATUS_PATH, CONSULTANT_CALLS_PATH, EMAIL_PARSER_LOG, JOB_CANDIDATE_PATH } from '../constants/page-path'\r\nimport { ConsultantJobListComponent } from './consultant-job-list/consultant-job-list.component'\r\nimport { ConsultantCallsComponent } from './consultant-calls/consultant-calls.component'\r\nimport { ConsultantEmailLogsComponent } from './consultant-email-logs/consultant-email-logs.component'\r\n\r\nconst routes: Routes = [\r\n {\r\n path: `${ADD_PATH}`,\r\n component: ConsultantAddlayoutComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n{\r\n path:`${EMAIL_PARSER_LOG}`,\r\n component:ConsultantEmailLogsComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n\r\n },\r\n {\r\n path: `${CANDIDATE_JOB_STATUS_PATH}`,\r\n component: ConsultantJobStatusComponent,\r\n children: [],\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${JOB_CANDIDATE_PATH}`,\r\n component: ConsultantJobListComponent,\r\n children: [],\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${CONSULTANT_CALLS_PATH}`,\r\n component: ConsultantCallsComponent,\r\n children: [],\r\n //canActivate: [AuthGuard],\r\n },\r\n {\r\n path: '',\r\n component: ConsultantListComponent,\r\n children: [],\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${CANDIDATE_ADD_PARAM_ID}`,\r\n component: ConsultantAddlayoutComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n }\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class ConsultantRoutingModule {}\r\n","import {\r\n Component,\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n NgZone,\r\n TemplateRef,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n} from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\n\r\nimport { iConsultant, iResumeSkillDummy, iResumeSkill } from 'src/app/models/consultant.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iSkills } from 'src/app/models/skill.model'\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { PreviewMailComponent } from 'src/app/shared/preview-mail/preview-mail.component'\r\n@Component({\r\n selector: 'consultant-skills',\r\n templateUrl: './consultant-skills.component.html',\r\n styleUrls: ['./consultant-skills.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ConsultantSkillsComponent implements OnInit, OnDestroy {\r\n public loading = false\r\n frmConsultant: FormGroup\r\n dynamicArray: iResumeSkill[] = []\r\n consulantSkillData: iResumeSkill[]\r\n newDynamic: any = {}\r\n ConsultantResumeID?: number\r\n consultant: iConsultant = {}\r\n data: iResumeSkillDummy\r\n loader3: boolean\r\n JobTitle: string\r\n isErrorInSave: boolean = false\r\n isSaveSucess: boolean = false\r\n skillDetails: any\r\n displayedColumns: any\r\n skillNames: iSkills[]\r\n currentYear: number = new Date().getFullYear()\r\n @Input() stepper: any\r\n @Output() consultantActiveTab: EventEmitter = new EventEmitter()\r\n /** Save end exit button visiblity status */\r\n isSaveandExitVisible$: boolean\r\n /** active consultant id */\r\n activeConsultantId$: number\r\n skillNameArray: any = []\r\n deleteSkillIndex: number = 0\r\n isSkillsAdded: boolean\r\n destroy$: Subject = new Subject()\r\n newSkillAdded: boolean = false\r\n errorMatcher = new CustomErrorStateMatcher()\r\n skillsToDeleteIndexArray: number[] = []\r\n isShowDeleteSkillCheckbox: boolean = false\r\n deleteIconSrc = Common.RedDeleteIcon\r\n private dialogRef: MatDialogRef\r\n duplicateSkillIndex: number[] = []\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private fb: FormBuilder,\r\n private notifyService: NotificationService,\r\n private consultantService: ConsultantService,\r\n public authService: AuthenticationService,\r\n private consultantsService: ConsultantsService,\r\n private commonMatDialog: CommonMatDialogService,\r\n private ngZone: NgZone\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.frmConsultant = this.fb.group({\r\n skillList: this.fb.array([]),\r\n })\r\n this.currentYear = new Date().getFullYear()\r\n this.consultant = Common.activeConsultant\r\n if (this.consultant != null && this.consultant != undefined) {\r\n if (this.consultant.ConsultantId > 0) {\r\n this.BindSkill(Common.activeConsultant.ConsultantId)\r\n }\r\n } else {\r\n this.isSkillsAdded = true\r\n }\r\n\r\n /** get Save and Exit button status */\r\n this.consultantsService\r\n .getConsultantSaveAndExitButtonStatus()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.isSaveandExitVisible$ = res\r\n })\r\n /** get Active consultant id */\r\n this.consultantsService\r\n .getActiveConsultantId()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.activeConsultantId$ = res\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.complete()\r\n }\r\n\r\n get skills() {\r\n return this.frmConsultant.get('skillList') as FormArray\r\n }\r\n\r\n addSkill() {\r\n this.skills.insert(\r\n 0,\r\n this.fb.group({\r\n SkillName: ['', Validators.required],\r\n Experience: [''],\r\n LastWorked: [\r\n null,\r\n Validators.max[this.currentYear],\r\n Validators.min[1900],\r\n Validators.minLength[4],\r\n Validators.maxLength[4],\r\n ],\r\n })\r\n )\r\n }\r\n\r\n applyFilterSkill(filterValue: string) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n this.consultantService\r\n .getSkills(filterValue)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n this.skillNames = this.skillNames?.filter((item) => this.skillNameArray.indexOf(item.Name) == -1)\r\n })\r\n }\r\n BindSkill(consultantId) {\r\n this.loading = true\r\n this.consultantService\r\n .GetConsultantSkilllsByConsultantId(consultantId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res: []) => {\r\n this.consulantSkillData = res as iResumeSkill[]\r\n var parsedSkills = Common.activeConsultant.ResumeSkills\r\n if (this.consulantSkillData.length !== 0) {\r\n /* show saved skills from previous resumes*/\r\n this.dynamicArray = this.consulantSkillData\r\n }\r\n\r\n if (parsedSkills != undefined && parsedSkills != null) {\r\n /* append if parsed new skills*/\r\n parsedSkills.forEach((pSkill) => {\r\n var isSkill = this.consulantSkillData?.findIndex(\r\n (skill) =>\r\n skill?.SkillName?.toLowerCase().trim() === pSkill?.SkillName?.toLowerCase()?.trim()\r\n ) // true\r\n if (isSkill == -1) {\r\n this.dynamicArray.push(pSkill)\r\n }\r\n })\r\n this.dynamicArray.map((skill) => {\r\n this.skills.push(\r\n this.fb.group({\r\n SkillName: [skill.SkillName, Validators.required],\r\n Experience: [skill.Experience],\r\n LastWorked: [\r\n skill.Lastused,\r\n Validators.max[this.currentYear],\r\n Validators.min[1900],\r\n Validators.minLength[4],\r\n Validators.maxLength[4],\r\n ],\r\n })\r\n )\r\n })\r\n }\r\n this.dynamicArray.forEach((item) => {\r\n this.skillNameArray.push(item.SkillName)\r\n })\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while getting Skills', 'Consultant Skill')\r\n }\r\n )\r\n }\r\n\r\n btnSaveSkill() {\r\n if (this.skills.length === 0) {\r\n this.notifyService.showError('Please add a skill!', 'Candidate skill')\r\n return\r\n }\r\n if (this.skills.length > 0 && this.skills.value[0]?.SkillName === '') {\r\n this.notifyService.showError('Please add last skill value', 'Candidate Skills')\r\n return\r\n }\r\n if (this.newSkillAdded) {\r\n this.newDynamic = {\r\n skillId: 0,\r\n SkillName: this.skills?.value[0]?.SkillName,\r\n version: '',\r\n Experience: this.skills?.value[0]?.Experience,\r\n skillLevelId: 0,\r\n Lastused: this.skills?.value[0]?.LastWorked,\r\n CreatedBy: this.authService.userInfo.userID,\r\n }\r\n this.dynamicArray.unshift(this.newDynamic)\r\n }\r\n this.dynamicArray.map((skill, i) => {\r\n skill.SkillName = this.skills?.value[i]?.SkillName\r\n skill.Experience = this.skills?.value[i]?.Experience\r\n skill.Lastused = this.skills?.value[i]?.LastWorked\r\n })\r\n this.dynamicArray.forEach((item) => {\r\n item.CreatedBy = this.authService?.userInfo?.userID\r\n this.skillNameArray.push(item.SkillName)\r\n })\r\n this.data = {\r\n ConsultantResumeID: Common.activeConsultant.ConsultantResumeID,\r\n RequiredSkills: this.dynamicArray,\r\n }\r\n let skillNamesToBeSaved = this.skills.value\r\n ?.map((item) => {\r\n return item?.SkillName?.toLowerCase()\r\n })\r\n .filter((skill) => skill != undefined || skill != null)\r\n let isDuplicateSkill = skillNamesToBeSaved?.some((item, index) => {\r\n return skillNamesToBeSaved?.indexOf(item?.toLowerCase()) != index\r\n })\r\n const duplicateIndices = this.skills?.value?.reduce((acc, curr, index) => {\r\n const skillName = curr?.SkillName?.toLowerCase()\r\n if (skillName) {\r\n if (!acc[skillName]) {\r\n acc[skillName] = [index]\r\n } else {\r\n acc[skillName].push(index)\r\n }\r\n }\r\n return acc\r\n }, {})\r\n this.duplicateSkillIndex = []\r\n this.duplicateSkillIndex =\r\n (Object.values(duplicateIndices)?.filter((indices: []) => indices?.length > 1)[0] as number[]) || []\r\n if (this.frmConsultant.invalid) {\r\n this.frmConsultant.markAllAsTouched()\r\n } else if (!isDuplicateSkill) {\r\n this.loading = true\r\n if (this.data !== null || this.dynamicArray !== undefined) {\r\n this.consultantService\r\n .AddResumeSkill(this.data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.isSaveSucess = true\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate skills')\r\n this.consultantActiveTab.emit(3)\r\n this.ngZone.run(() => {\r\n this.stepper.selected.completed = true\r\n this.stepper.selected.editable = true\r\n this.stepper.next()\r\n })\r\n },\r\n (err: any) => {\r\n this.notifyService.showError('Error saving skill data!', 'Candidate skills')\r\n this.loading = false\r\n this.isErrorInSave = true\r\n this.isSaveSucess = false\r\n }\r\n )\r\n } else {\r\n this.notifyService.showError('Skill is required!!', 'Candidate skills')\r\n }\r\n } else {\r\n this.notifyService.showError('Please remove duplicate skill names before saving', 'Candidate Skills')\r\n }\r\n }\r\n\r\n addRow() {\r\n this.isSkillsAdded = false\r\n if (this.dynamicArray.length > 0) {\r\n if (this.skills?.value[0]?.SkillName === '') {\r\n this.notifyService.showError('Please add previous skill value', 'Candidate Skills')\r\n return\r\n }\r\n }\r\n this.addSkill()\r\n this.newSkillAdded = true\r\n }\r\n\r\n removeRow(index) {\r\n this.dynamicArray.splice(index, 1)\r\n if (this.skills.length == 0) {\r\n this.isSkillsAdded = true\r\n }\r\n this.skills.removeAt(index)\r\n this.dialog.closeAll()\r\n }\r\n\r\n goToPrevious() {\r\n this.stepper.previous()\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.deleteSkillIndex = i\r\n }\r\n\r\n toggleMultipleSkillDeletion() {\r\n this.isShowDeleteSkillCheckbox = !this.isShowDeleteSkillCheckbox\r\n this.skillsToDeleteIndexArray = []\r\n }\r\n\r\n addRemoveSkillIndexToDelete(skillToDeleteIndex: number) {\r\n if (!this.skillsToDeleteIndexArray.includes(skillToDeleteIndex)) {\r\n this.skillsToDeleteIndexArray.push(skillToDeleteIndex)\r\n } else {\r\n this.skillsToDeleteIndexArray = [\r\n ...this.skillsToDeleteIndexArray.filter((skillIndex) => skillIndex != skillToDeleteIndex),\r\n ]\r\n }\r\n }\r\n\r\n deleteAllSKills() {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: 'Are you sure you want to delete all skills?',\r\n Header: 'Confirmation',\r\n ButtonText: 'Delete',\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.skills.clear()\r\n this.isShowDeleteSkillCheckbox = false\r\n this.notifyService.showSuccess('Successfully Deleted All Skills.', 'Candidate Skills')\r\n }\r\n })\r\n }\r\n\r\n deleteSelectedSkills() {\r\n if (this.skillsToDeleteIndexArray.length === 0) {\r\n this.notifyService.showError('Please Select Skills delete', 'Candidate Skills')\r\n } else {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Are you sure you want to delete ${this.skillsToDeleteIndexArray.length} skills?`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Delete',\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.skills.controls = this.skills.controls.filter(\r\n (_, index) => !this.skillsToDeleteIndexArray.includes(index)\r\n )\r\n this.skillsToDeleteIndexArray = []\r\n this.isShowDeleteSkillCheckbox = false\r\n this.notifyService.showSuccess('Successfully Deleted Selected Skills.', 'Candidate Skills')\r\n }\r\n })\r\n }\r\n }\r\n}\r\n"," \r\n\r\n
\r\n
\r\n
Add Skills
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n add\r\n Add More\r\n \r\n \r\n \"delete\"\r\n close\r\n {{\r\n !isShowDeleteSkillCheckbox ? 'Delete Multiple Skill' : 'Close Multiple Skill Deletion'\r\n }}\r\n \r\n\r\n
\r\n
\r\n \r\n \"delete\"\r\n Delete All Skills\r\n \r\n \r\n \"delete\"\r\n Delete Selected Skills\r\n \r\n
\r\n
\r\n
\r\n
\r\n
No data available
\r\n
\r\n \r\n
0\" class=\"grid grid-cols-3 gap-3 flex-1\">\r\n Skill Name*\r\n Experience (Years)\r\n Last Worked (yyyy)\r\n
\r\n
0\" formArrayName=\"skillList\" class=\"consultant-stepper-container mb-2\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n Skill name is required\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n remove\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this skill?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n OnChanges,\r\n Sanitizer,\r\n SecurityContext,\r\n} from '@angular/core'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport {\r\n iCertificate,\r\n iConsultant,\r\n iConsultantCertification,\r\n iConsultantEducation,\r\n iConsultantInfo,\r\n iConsultantReference,\r\n iConsultantResumeProject,\r\n} from 'src/app/models/consultant.model'\r\nimport { iConsultantPatent } from 'src/app/models/patent.model'\r\nimport { iConsultantPublication } from 'src/app/models/publication.model'\r\nimport { iConsultantTraining } from 'src/app/models/training.model'\r\nimport { iConsultantAward } from 'src/app/models/award.model'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Observable, Subject, Subscription, forkJoin, of } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iStates } from 'src/app/models/common.model'\r\nimport { Company, iCompany } from 'src/app/models/company.model'\r\nimport { Contact, iContact } from 'src/app/models/contact.model'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { ConsultantDialogTypes, DialogHeader, SkillSortingOptions, TypeOfVariable } from '../consultant-constants'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iSkills, JobTitle } from 'src/app/models/job.model'\r\nimport { Sort } from '@angular/material/sort'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { format } from 'date-fns'\r\nimport {\r\n CANDIDATE_ADD_ACTION,\r\n CANDIDATE_DELETE_ACTION,\r\n CANDIDATE_EDIT_ACTION,\r\n CANDIDATE_VIEW_ACTION,\r\n} from 'src/app/enums/userActions'\r\nimport Quill from 'quill'\r\nimport { DomSanitizer } from '@angular/platform-browser'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nconst today = new Date()\r\nconst month = today.getMonth()\r\nconst year = today.getFullYear()\r\n@Component({\r\n selector: 'consultant-summary',\r\n templateUrl: './consultant-summary.component.html',\r\n styleUrls: ['./consultant-summary.component.scss'],\r\n})\r\nexport class ConsultantSummaryComponent implements OnInit, OnDestroy, OnChanges {\r\n consultantReference: iConsultantReference[]\r\n showEditButton = false\r\n campaignOne = new FormGroup({\r\n start: new FormControl(new Date(year, month, 13)),\r\n end: new FormControl(new Date(year, month, 16)),\r\n })\r\n campaignTwo = new FormGroup({\r\n start: new FormControl(new Date(year, month, 15)),\r\n end: new FormControl(new Date(year, month, 19)),\r\n })\r\n\r\n public get skillSortingOptions(): typeof SkillSortingOptions {\r\n return SkillSortingOptions\r\n }\r\n\r\n @ViewChild('workExperiencePaginator', { static: false }) workExperiencePaginator: MatPaginator\r\n @ViewChild('skillPaginator', { static: false }) skillPaginator: MatPaginator\r\n @ViewChild('certificatePaginator', { static: false }) certificatePaginator: MatPaginator\r\n @Input() isFromApplyJob: boolean = false\r\n @Input() isShortListed: boolean\r\n @Input() isFromCandidateTab: boolean = false\r\n jobId: number = Number(Common.activeJobId)\r\n candidateProject: iConsultantResumeProject[] = []\r\n candidateSkills: any = []\r\n candidateSoftSkills: any = []\r\n candidateSkillsTableData: MatTableDataSource\r\n candidateEducation = []\r\n candidateCertification = []\r\n candidatePatent = []\r\n candidateIndustry = []\r\n candidateinfo: iConsultantInfo = {}\r\n consultant: iConsultant\r\n ExpectedPayRate: number\r\n ExpectedPayRateperAnum: number\r\n public loading = false\r\n consultantResumeProjectData: iConsultantResumeProject[] = []\r\n workExperienceArray: iConsultantResumeProject[] = []\r\n certificationArray: iCertificate[]\r\n editIconSrc = Common.EditIcon\r\n deleteIconSrc = Common.RedDeleteIcon\r\n isReferenceEditMode: boolean = false\r\n states: iStates[] = []\r\n allCompanies: iCompany[] = []\r\n contact = new Contact()\r\n companyModel = new Company()\r\n contactsList: iContact[] = []\r\n skillNames = []\r\n jobSkills: [] = []\r\n candidateViewAction = CANDIDATE_VIEW_ACTION\r\n candidateEditAction = CANDIDATE_EDIT_ACTION\r\n candidateDeleteAction = CANDIDATE_DELETE_ACTION\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n isCandidateDataEditable$: Observable = this.consultantDataService.isCandidateDataEditable$\r\n patentsData: iConsultantPatent[] = []\r\n awardsData: iConsultantAward[] = []\r\n publicationsData: iConsultantPublication[] = []\r\n trainingData: iConsultantTraining[] = []\r\n consultantProjectForm: FormGroup\r\n editIndexProject: number | null = null\r\n showVisibleDescription: number | null = null\r\n companies: iCompany[] | Company[] = []\r\n titles: JobTitle[] = []\r\n filterCities: any[] = []\r\n consultantData: any\r\n consultantSkillForm: FormGroup\r\n editIndexSkill: number | null = null\r\n skillNameArray: string[] = []\r\n currentYear: number = new Date().getFullYear()\r\n errorMatcher = new CustomErrorStateMatcher()\r\n duplicateSkillIndex: number[] = []\r\n skillLevelOption$ = this.consultantService.getLookup('SkillLevelID')\r\n isFormViewDisable: boolean = false\r\n jobCandidate = false\r\n constructor(\r\n private consultantService: ConsultantService,\r\n public commonService: CommonService,\r\n private loadComponent: LoadComponent,\r\n private layoutService: LayoutService,\r\n private router: Router,\r\n private consultantsService: ConsultantsService,\r\n private ref: ChangeDetectorRef,\r\n public authService: AuthenticationService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private notifyService: NotificationService,\r\n private companyService: CompanyService,\r\n private jobService: JobService,\r\n private commonMatDialog: CommonMatDialogService,\r\n private consultantDataService: ConsultantDataService,\r\n private _activatedRoute: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private sanitize: DomSanitizer\r\n ) {\r\n this.isCandidateDataEditable$ = this.consultantDataService.isCandidateDataEditable$\r\n }\r\n private subscription: Subscription\r\n ngUnSubscribe: Subject = new Subject()\r\n\r\n /** project Data */\r\n projectDisplayedColumns: string[] = ['JobTitleName', 'LastWorked', 'TotalExperience', 'ClientName']\r\n // /** Skills Data */\r\n skillDisplayedColumns: string[] = ['SkillName', 'LastUsed', 'CandidateExperience', 'CandidateSkillLevel', 'Action']\r\n jobSkillDisplayedColumns: string[] = [\r\n 'SkillName',\r\n 'LastUsed',\r\n 'JobExperience',\r\n 'CandidateExperience',\r\n 'CandidateSkillLevel',\r\n 'MatchPercentage',\r\n 'Action',\r\n ]\r\n // /** Industry Data */\r\n industryDisplayedColumns: string[] = ['Industry', 'LastWorked', 'ExperienceNumber', 'ClientName']\r\n // /** Education Data */\r\n educationDisplayedColumns: string[] = ['Name', 'Year', 'Location', 'Organization']\r\n // /** Certification Data */\r\n certificationDisplayedColumns: string[] = ['Name', 'Year', 'Location', 'Organization']\r\n isDiceCandidate: boolean = false\r\n isFromJobSearch: boolean = false\r\n\r\n ngOnInit(): void {\r\n this.jobCandidate = false\r\n this.initProjectForm()\r\n this.initSkillForm()\r\n this.subscription = this.commonService.getComponentData\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((messageConsultantView: any) => {\r\n this.isFromJobSearch = messageConsultantView.isFromJobSearch\r\n\r\n if (Common.activeConsultant != null && Common.activeConsultant != undefined) {\r\n this.consultant = Common.activeConsultant\r\n\r\n if (history.state?.JobId > 0) {\r\n this.jobId = history.state?.JobId\r\n }\r\n this.jobId = isNaN(Number(Common.activeJobId)) ? 0 : Number(Common.activeJobId)\r\n const IS_DICE = messageConsultantView?.isDice\r\n if (IS_DICE) {\r\n this.isDiceCandidate = true\r\n } else {\r\n this.isDiceCandidate = false\r\n }\r\n this.isFromCandidateTab = false\r\n if (messageConsultantView?.isFromCandidateTab) {\r\n this.isFromCandidateTab = true\r\n // this.jobService\r\n // .GetJobSkills(Common?.activeJob?.JobId)\r\n // .pipe(takeUntil(this.ngUnSubscribe))\r\n // .subscribe({\r\n // next: (skills: []) => {\r\n // this.jobSkills = skills\r\n // },\r\n // })\r\n this.jobId = Common?.activeJob?.JobId\r\n this.jobCandidate = true\r\n this.getSummaryData()\r\n this.consultantService\r\n .getConsultantJobSkill(this.consultant.ConsultantId, Common?.activeJob?.JobId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (skills: []) => {\r\n this.jobSkills = skills\r\n },\r\n })\r\n } else {\r\n this.isFromCandidateTab = false\r\n this.jobCandidate = false\r\n }\r\n if (this.jobId > 0) {\r\n const IS_DICE = messageConsultantView?.isDice\r\n this.isDiceCandidate = IS_DICE\r\n const getSkillsObservable = IS_DICE\r\n ? this.jobService.GetDiceJobSkill(this.jobId, messageConsultantView?.diceId)\r\n : this.jobService.GetJobSkills(this.jobId)\r\n\r\n getSkillsObservable.pipe(takeUntil(this.ngUnSubscribe)).subscribe({\r\n next: (skills: []) => {\r\n if (skills) {\r\n this.jobSkills = skills\r\n this.getSummaryData(messageConsultantView?.diceId)\r\n }\r\n },\r\n error: (err) => {\r\n this.notifyService.showError('Error while getting job skills', 'Skills')\r\n },\r\n })\r\n }\r\n if (this.jobId === 0) {\r\n this.getSummaryData(messageConsultantView?.diceId)\r\n }\r\n \r\n }\r\n })\r\n this.getCompaniesAndState()\r\n this.getClientContacts(CommonData?.activeCompany?.CompanyId)\r\n // if (this.data?.isFormViewOnly) {\r\n // this._disableForms()\r\n // this.isFormViewDisable = true\r\n // }\r\n }\r\n getRequiredJobSkills() {\r\n this.consultantService\r\n .getConsultantJobSkill(this.consultant.ConsultantId, Common?.activeJob?.JobId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (skills: []) => {\r\n this.jobSkills = skills\r\n },\r\n })\r\n }\r\n initProjectForm() {\r\n this.consultantProjectForm = this.fb.group({\r\n ConsultantResumeID: [''],\r\n JobTitleId: [''],\r\n ClientName: ['', Validators.required],\r\n ProjectName: [''],\r\n City: [''],\r\n State: [''],\r\n StateCode: [''],\r\n DurationTo: [''],\r\n Duration: [''],\r\n ExperienceNumber: [''],\r\n ExperienceTypeId: [''],\r\n Description: [''],\r\n CreatedDate: [''],\r\n CreatedBy: [''],\r\n ConsultantResumeProjectId: [''],\r\n UpdatedDate: [''],\r\n UpdatedBy: [''],\r\n IsCurrentlyWorking: [false],\r\n IsActive: [''],\r\n ConsultantResume: [''],\r\n JobTitleName: ['', Validators.required],\r\n Country: [''],\r\n linenoDuration: [''],\r\n tempClientName: [''],\r\n linenoTitle: [''],\r\n linenoLocation: [''],\r\n linenoClientName: [''],\r\n DurationFrom: ['', Validators.required],\r\n })\r\n }\r\n initSkillForm() {\r\n this.consultantSkillForm = this.fb.group({\r\n SkillName: ['', Validators.required],\r\n Experience: [''],\r\n JobExperience: [''],\r\n Required: [''],\r\n JobSkillLevelID: [''],\r\n JobSkillLevel: [''],\r\n CandidateExperience: ['', Validators.required],\r\n CandidateSkillLevel: ['', Validators.required],\r\n Lastused: ['', [Validators.max(this.currentYear), Validators.min(1970)]],\r\n CandidateSkillLevelID: ['', Validators.required],\r\n Rank: [''],\r\n SkillID: [''],\r\n MatchPercentage: [''],\r\n })\r\n }\r\n ngOnChanges(): void {\r\n if (this.isShortListed) {\r\n const CONSULTANT_ID = this._activatedRoute?.snapshot?.queryParams?.consultantId\r\n this.getSummaryData(CONSULTANT_ID)\r\n }\r\n }\r\n getSummaryData(diceId?) {\r\n this.editIndexSkill = null\r\n this.loading = true\r\n let summaryDataAPI\r\n if (this.isDiceCandidate) {\r\n const DICE_CANDIDATE_ID = diceId\r\n summaryDataAPI = forkJoin({\r\n candidateSummary: this.consultantService.GetDiceConsultantSummary(DICE_CANDIDATE_ID),\r\n candidateEducation: this.consultantService.GetDiceConsultantEducation(DICE_CANDIDATE_ID),\r\n candidateCertification: this.consultantService.GetDiceConsultantCertification(DICE_CANDIDATE_ID),\r\n candidateReference: of([]), // this.consultantService.GetDiceConsultantReference(this.consultant.ConsultantId), need to have DICE api for this\r\n candidateProject: this.consultantService.GetDiceConsultantResumeProjects(DICE_CANDIDATE_ID),\r\n // candidatePatent: this.consultantService.getConsultantPatents(DICE_CANDIDATE_ID),\r\n // candidateAward: this.consultantService.getConsultantAwards(DICE_CANDIDATE_ID),\r\n // candidatePublication: this.consultantService.getConsultantPublications(DICE_CANDIDATE_ID),\r\n // candidateTraining: this.consultantService.getConsultantTrainings(DICE_CANDIDATE_ID),\r\n })\r\n } else {\r\n summaryDataAPI = forkJoin({\r\n candidateSummary: this.consultantService.GetConsultantSummary(\r\n this.consultant?.ConsultantId,\r\n this.jobCandidate ? this.jobId : this.isFromApplyJob ? 0 : this.jobId\r\n ),\r\n candidateEducation: this.consultantService.GetConsultantEducation(this.consultant.ConsultantId),\r\n candidateCertification: this.consultantService.GetConsultantCertification(this.consultant.ConsultantId),\r\n candidateReference: this.consultantService.GetConsultantReference(this.consultant.ConsultantId),\r\n candidateProject: this.consultantService.GetConsultantResumeProjects(\r\n this.consultant?.ConsultantResumeID\r\n ),\r\n candidatePatent: this.consultantService.getConsultantPatents(this.consultant.ConsultantId),\r\n candidateAward: this.consultantService.getConsultantAwards(this.consultant.ConsultantId),\r\n candidatePublication: this.consultantService.getConsultantPublications(this.consultant.ConsultantId),\r\n candidateTraining: this.consultantService.getConsultantTrainings(this.consultant.ConsultantId),\r\n })\r\n }\r\n\r\n summaryDataAPI\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n ({\r\n candidateSummary,\r\n candidateEducation,\r\n candidateCertification,\r\n candidateReference,\r\n candidateProject,\r\n candidatePatent,\r\n candidateAward,\r\n candidatePublication,\r\n candidateTraining,\r\n }) => {\r\n this.loading = false\r\n this.candidateinfo = candidateSummary?.ConsultantInfo\r\n this.candidateProject = candidateSummary?.ProjectInfo\r\n this.candidateIndustry = candidateSummary?.IndustryInfo\r\n this.candidateSkills = candidateSummary?.SkillInfo\r\n this.filterJobRequiredSkills()\r\n this.candidateEducation = candidateEducation as iConsultantEducation[]\r\n this.candidateCertification = candidateCertification as iConsultantCertification[]\r\n this.certificationArray = [...this.candidateCertification]\r\n this.consultantReference = candidateReference as iConsultantReference[]\r\n this.consultantResumeProjectData = candidateProject as iConsultantResumeProject[]\r\n this.workExperienceArray = [...this.consultantResumeProjectData]\r\n this.patentsData = candidatePatent\r\n this.awardsData = candidateAward\r\n this.publicationsData = candidatePublication\r\n this.trainingData = candidateTraining\r\n this.ref.detectChanges()\r\n this.calculateCVPercentage()\r\n // this.pageChangeForWorkExp({ pageIndex: 0, pageSize: 5 })\r\n }\r\n )\r\n }\r\n\r\n filterJobRequiredSkills() {\r\n if (this.isFromJobSearch) {\r\n this.jobSkillDisplayedColumns = this.jobSkillDisplayedColumns.filter((data) => {\r\n return data !== 'CandidateSkillLevel'\r\n })\r\n }\r\n if (this.isFromApplyJob) {\r\n const sortedData = this.candidateSkills?.sort((a, b) => {\r\n return this.compare(a.SkillName.toLowerCase(), b.SkillName.toLowerCase(), true)\r\n })\r\n this.candidateSkillsTableData = new MatTableDataSource(sortedData)\r\n this.candidateSkills = sortedData\r\n } else if (this.jobId > 0 || this.isFromCandidateTab) {\r\n const jobRequiredSkillIDs = this.jobSkills.map((skill: iSkills) => {\r\n if (skill.Required) return skill.SkillID\r\n })\r\n\r\n const jobPreferredSkillIDs = this.jobSkills.map((skill: iSkills) => {\r\n if (!skill.Required) return skill.SkillID\r\n })\r\n const candidateSkills = [...this.candidateSkills]\r\n\r\n const reqSkill = []\r\n const pefSkill = []\r\n // const jobRequiredSkillName = this.jobSkills.map((skill: iSkills) => {\r\n // if (skill.Required) {\r\n // reqSkill.push(skill)\r\n // return skill.SkillName.toLowerCase()\r\n // }\r\n // })\r\n if (this.isDiceCandidate || this.isFromCandidateTab) {\r\n this.jobSkills.map((skill: iSkills) => {\r\n if (skill.Required) {\r\n reqSkill.push(skill)\r\n } else {\r\n pefSkill.push(skill)\r\n }\r\n })\r\n // this.candidateSkills?.forEach((skill) => {\r\n // if (jobRequiredSkillName.includes(skill.SkillName)) {\r\n // skill.Required = true\r\n // reqSkill.push(skill)\r\n // }\r\n // })\r\n } else {\r\n this.candidateSkills?.forEach((skill) => {\r\n if (jobRequiredSkillIDs.includes(skill.SkillID)) {\r\n skill.Required = true\r\n reqSkill.push(skill)\r\n } else if (jobPreferredSkillIDs.includes(skill.SkillID)) {\r\n skill.Required = false\r\n pefSkill.push(skill)\r\n }\r\n })\r\n }\r\n\r\n const jobSkillDataTable = reqSkill.concat(pefSkill)\r\n jobSkillDataTable.forEach((skill) => {})\r\n this.candidateSkillsTableData = new MatTableDataSource(jobSkillDataTable)\r\n this.candidateSkills = jobSkillDataTable\r\n } else {\r\n const sortedData = this.candidateSkills?.sort((a, b) => {\r\n return this.compare(a.SkillName.toLowerCase(), b.SkillName.toLowerCase(), true)\r\n })\r\n this.candidateSkillsTableData = new MatTableDataSource(sortedData)\r\n this.candidateSkills = sortedData\r\n }\r\n setTimeout(() => {\r\n this.candidateSkillsTableData.paginator = this.skillPaginator\r\n }, 100)\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe.next()\r\n this.ngUnSubscribe.complete()\r\n this.editIndexSkill = null\r\n }\r\n getCompaniesAndState() {\r\n this.consultantService\r\n .getClients()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res: iCompany[]) => {\r\n this.allCompanies = res\r\n })\r\n this.commonService\r\n .getStates()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res: iStates[]) => {\r\n this.states = res\r\n })\r\n }\r\n\r\n getClientContacts(CompanyId) {\r\n this.companyService\r\n .GetContactsByClient(CompanyId)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.contactsList = res\r\n })\r\n }\r\n\r\n pageChangeForWorkExp(event) {\r\n setTimeout(() => {\r\n const experience = [...this.consultantResumeProjectData]\r\n this.workExperienceArray = experience?.slice(\r\n event.pageIndex * event.pageSize,\r\n event.pageIndex * event.pageSize + event.pageSize\r\n )\r\n }, 100)\r\n }\r\n\r\n pageChangeForCetifications(event) {\r\n this.certificationArray = this.candidateCertification?.slice(\r\n event.pageIndex * event.pageSize,\r\n event.pageIndex * event.pageSize + event.pageSize\r\n )\r\n }\r\n\r\n onEditConsultant(tabId) {\r\n this.closeQuickpanel()\r\n this.consultantsService.activeConsultantId.next(this.candidateinfo.ConsultantID)\r\n this.consultantsService.consultantEditActiveTabSubject.next(tabId)\r\n this.consultantsService.consultantSaveAndExitButtonStatusSubject.next(true)\r\n this.router.navigate(['candidates/edit/' + this.candidateinfo.ConsultantID])\r\n }\r\n\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n addEditEducation(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Education,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidateEducation[index] : null,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Education) {\r\n if (typeof index == TypeOfVariable.Number) {\r\n this.candidateEducation[index].Name = data.formData.Name\r\n this.candidateEducation[index].DegreeTypeID = data.formData.DegreeTypeID\r\n this.candidateEducation[index].DegreeTypeName = data.formData.DegreeTypeName\r\n this.candidateEducation[index].Location = data.formData.Location\r\n this.candidateEducation[index].Year = data.formData.Year\r\n this.candidateEducation[index].Url = data.formData.Url\r\n this.candidateEducation[index].Organization = data.formData.Organization\r\n this.candidateEducation[index].ConsultantID = Common.activeConsultant?.ConsultantId\r\n this.candidateEducation[index].ConsultantEducationID = data.formData.ConsultantEducationID\r\n this.candidateEducation[index].IsActive = true\r\n ;(this.candidateEducation[index].UpdatedBy = this.authService.userInfo.userID),\r\n (this.candidateEducation[index].UpdatedDate = new Date())\r\n } else {\r\n const newEducation = {\r\n ConsultantEducationID: 0,\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n Name: data.formData.Name,\r\n DegreeTypeID: data.formData.DegreeTypeID,\r\n DegreeTypeName: data.formData.DegreeTypeName,\r\n Organization: data.formData.Organization,\r\n Location: data.formData.Location ? data.formData.Location : null,\r\n Year: data.formData.Year ? data.formData.Year : null,\r\n Url: data.formData.Url ? data.formData.Url : null,\r\n KeyWord: '',\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.candidateEducation.push(newEducation)\r\n }\r\n this.savaEducationCertificateData(ConsultantDialogTypes.Education)\r\n }\r\n })\r\n }\r\n\r\n addEditCertification(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Certificate,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidateCertification[index] : null,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Certificate) {\r\n if (typeof index == TypeOfVariable.Number) {\r\n this.candidateCertification[index].CertificationName = data.formData.CertificationName\r\n this.candidateCertification[index].CertificateNumber = data.formData.CertificateNumber\r\n this.candidateCertification[index].Organization = data.formData.Organization\r\n this.candidateCertification[index].Year = data.formData.Year\r\n this.candidateCertification[index].Url = data.formData.Url\r\n this.candidateCertification[index].Location = data.formData.Location\r\n this.candidateCertification[index].ConsultantID = this.consultant.ConsultantId\r\n this.candidateCertification[index].ConsultantCertificationID =\r\n data.formData.ConsultantCertificationID\r\n this.candidateCertification[index].IsActive = true\r\n ;(this.candidateCertification[index].UpdatedBy = this.authService.userInfo.userID),\r\n (this.candidateCertification[index].UpdatedDate = new Date())\r\n } else {\r\n const newCertificate = {\r\n ConsultantCertificationID: 0,\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n CertificationName: data.formData.CertificationName,\r\n CertificateNumber: data.formData.CertificateNumber,\r\n Organization: data.formData.Organization,\r\n Location: data.formData.Location ? data.formData.Location : null,\r\n Year: data.formData.Year ? data.formData.Year : null,\r\n Url: data.formData.Url ? data.formData.Url : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n }\r\n this.candidateCertification.push(newCertificate)\r\n }\r\n this.savaEducationCertificateData(ConsultantDialogTypes.Certificate)\r\n }\r\n })\r\n }\r\n\r\n removeEducation(index, array) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this education?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.loading = true\r\n this.consultantService\r\n .deleteEducation(array[index])\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Education deleted successfully!', 'Education')\r\n this.getSummaryData()\r\n this.consultantDataService.triggerPercentageCalculation()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Education')\r\n return\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n removeCertificate(index, array) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this certificate?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.loading = true\r\n this.consultantService\r\n .deleteCertificate(array[index])\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Certificate deleted successfully!', 'Certificate')\r\n this.getSummaryData()\r\n this.consultantDataService.triggerPercentageCalculation()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Certificate')\r\n return\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n savaEducationCertificateData(formName) {\r\n this.loading = true\r\n if (formName === ConsultantDialogTypes.Certificate) {\r\n var dataConsultantCredentialsCertificate = {\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n ConsultantCertification: this.candidateCertification,\r\n }\r\n } else if (formName === ConsultantDialogTypes.Education) {\r\n var dataConsultantCredentialsEducations = {\r\n ConsultantID: Common.activeConsultant != null ? Common.activeConsultant.ConsultantId : 0,\r\n ConsultantEducation: this.candidateEducation,\r\n }\r\n }\r\n this.consultantService\r\n .SaveConsulatantCredentials(\r\n formName === ConsultantDialogTypes.Certificate\r\n ? dataConsultantCredentialsCertificate\r\n : dataConsultantCredentialsEducations\r\n )\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess(\r\n 'Successfully saved!',\r\n formName === ConsultantDialogTypes.Certificate ? 'Certificate' : 'Education'\r\n )\r\n this.getSummaryData()\r\n this.consultantDataService.triggerPercentageCalculation()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(\r\n 'Error saving data',\r\n formName === ConsultantDialogTypes.Certificate ? 'Certificate' : 'Education'\r\n )\r\n return\r\n }\r\n )\r\n }\r\n\r\n compare(a: number | string, b: number | string, isAsc: boolean) {\r\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1)\r\n }\r\n\r\n sortSkills(sort: Sort) {\r\n const data = [...this.candidateSkills]\r\n if (!sort.active || sort.direction === '') {\r\n this.candidateSkillsTableData.data = data\r\n return\r\n }\r\n\r\n this.candidateSkillsTableData.data = data.sort((a, b) => {\r\n const isAsc = sort.direction === 'asc'\r\n switch (sort.active) {\r\n case SkillSortingOptions.Name:\r\n return this.compare(a.SkillName.toLowerCase(), b.SkillName.toLowerCase(), isAsc)\r\n case SkillSortingOptions.JobExp:\r\n return this.compare(a.JobExperience, b.JobExperience, isAsc)\r\n case SkillSortingOptions.CandidateExp:\r\n return this.compare(a.CandidateExperience, b.CandidateExperience, isAsc)\r\n case SkillSortingOptions.MatchPercentage:\r\n return this.compare(a.MatchPercentage, b.MatchPercentage, isAsc)\r\n case SkillSortingOptions.CandidateSkillLevel:\r\n return this.compare(a.CandidateSkillLevel.toLowerCase(), b.CandidateSkillLevel.toLowerCase(), isAsc)\r\n case SkillSortingOptions.LastWorked:\r\n return this.compare(a.LastUsed, b.LastUsed, isAsc)\r\n default:\r\n return 0\r\n }\r\n })\r\n setTimeout(() => {\r\n this.candidateSkillsTableData.paginator = this.skillPaginator\r\n }, 100)\r\n }\r\n\r\n addEditProjectData(index?) {\r\n if (typeof index === TypeOfVariable.Number) {\r\n var editArray = [...this.consultantResumeProjectData]\r\n editArray.splice(index, 1)\r\n }\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Project,\r\n formData: this.consultantResumeProjectData[index],\r\n allCompanies: this.allCompanies,\r\n states: this.states,\r\n projectsArray: typeof index == TypeOfVariable.Number ? editArray : this.consultantResumeProjectData,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Project) {\r\n const durationFrom = new Date(data?.formData?.DurationFrom)\r\n let durationTo\r\n if (data?.formData?.IsCurrentlyWorking) {\r\n durationTo = 'Present'\r\n } else {\r\n const date = new Date(data?.formData?.DurationTo)\r\n durationTo = `${date.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${date.getFullYear()}`\r\n }\r\n\r\n const duration = `${durationFrom.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${durationFrom.getFullYear()} - ${durationTo}`\r\n\r\n let experience\r\n if (!data.formData.IsCurrentlyWorking) {\r\n experience = this.calculateExperience(data?.formData?.DurationFrom, data?.formData?.DurationTo)\r\n } else {\r\n experience = this.calculateExperience(data?.formData?.DurationFrom, new Date())\r\n }\r\n let projectFrom = null\r\n if (this.isValidDate(new Date(data.formData?.DurationFrom))) {\r\n projectFrom = format(new Date(data.formData?.DurationFrom), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n let projectTo = null\r\n if (!data.formData?.IsCurrentlyWorking) {\r\n if (this.isValidDate(new Date(data.formData?.DurationTo))) {\r\n projectTo = format(new Date(data.formData?.DurationTo), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n }\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.consultantResumeProjectData[index].ClientName = data.formData?.ClientName\r\n this.consultantResumeProjectData[index].JobTitleName = data.formData?.JobTitleName\r\n // this.consultantResumeProjectData[index].JobTitleId = data.formData?.JobTitleID\r\n this.consultantResumeProjectData[index].DurationFrom = projectFrom\r\n this.consultantResumeProjectData[index].DurationTo = projectTo\r\n this.consultantResumeProjectData[index].City = data.formData?.City\r\n this.consultantResumeProjectData[index].State = data.formData?.State\r\n this.consultantResumeProjectData[index].Description = data.formData?.Description\r\n this.consultantResumeProjectData[index].IsCurrentlyWorking = data.formData?.IsCurrentlyWorking\r\n this.consultantResumeProjectData[index].Duration = duration\r\n this.consultantResumeProjectData[index].ExperienceNumber = experience\r\n } else {\r\n let _consultantResumeId = 0\r\n if (Common.activeConsultant) {\r\n _consultantResumeId =\r\n Common.activeConsultant.ConsultantResumeID > 0\r\n ? Common.activeConsultant.ConsultantResumeID\r\n : 0\r\n }\r\n const newProject = {\r\n ConsultantResumeProjectId: 0,\r\n ConsultantResumeID: _consultantResumeId,\r\n JobTitleId: null,\r\n JobTitleName: data.formData?.JobTitleName,\r\n ClientName: data.formData?.ClientName,\r\n City: data.formData?.City,\r\n State: data.formData?.State,\r\n ProjectName: null,\r\n DurationFrom: projectFrom,\r\n DurationTo: projectTo,\r\n Duration: duration,\r\n IsCurrentlyWorking: data.formData?.IsCurrentlyWorking,\r\n ExperienceNumber: experience,\r\n ExperienceTypeId: null,\r\n Description: data.formData?.Description,\r\n CreatedBy: this.authService.userInfo.userID,\r\n }\r\n this.consultantResumeProjectData.push(newProject)\r\n }\r\n this.saveProjectData()\r\n }\r\n })\r\n }\r\n\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n\r\n calculateExperience(from, to) {\r\n const statYear = new Date(from).getFullYear()\r\n const startMonth = new Date(from).getMonth()\r\n const endYear = new Date(to).getFullYear()\r\n const endMonth = new Date(to).getMonth()\r\n let years = endYear - statYear\r\n let month = endMonth - startMonth\r\n if (month < 0) {\r\n years--\r\n month += 12\r\n }\r\n return `${years}.${month}`\r\n }\r\n\r\n saveProjectData() {\r\n this.loading = true\r\n const data = {\r\n consultantResumeID: Common.activeConsultant?.ConsultantResumeID,\r\n projects: this.consultantResumeProjectData,\r\n }\r\n this.consultantService\r\n .AddProjects(data)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate projects')\r\n this.workExperienceArray = [...this.consultantResumeProjectData]\r\n this.consultantDataService.triggerPercentageCalculation()\r\n this.pageChangeForWorkExp({ pageIndex: 0, pageSize: 5 })\r\n this.getSummaryData()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving project data!', 'Candidate projects')\r\n }\r\n )\r\n }\r\n\r\n addEditSkillData(element?) {\r\n if (element) {\r\n var skillIndex = this.candidateSkills.findIndex((x) => x.SkillName === element.SkillName)\r\n var editArray = [...this.candidateSkills]\r\n editArray.splice(skillIndex, 1)\r\n }\r\n this.skillNames = []\r\n this.candidateSkills?.forEach((item) => {\r\n this.skillNames.push(item.SkillName)\r\n })\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Skill,\r\n formData: element ? element : null,\r\n skillArray: element ? editArray : this.candidateSkills,\r\n skillNameArray: this.skillNames,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Skill) {\r\n this.candidateSkills?.forEach(\r\n (skill) => (skill.ConsultantResumeID = Common.activeConsultant.ConsultantResumeID)\r\n )\r\n if (element && this.candidateSkills[skillIndex]?.ConsultantResumeSkillID) {\r\n const skill = {\r\n SkillID: data.skillId,\r\n ConsultantResumeID: Common.activeConsultant.ConsultantResumeID,\r\n SkillName: data.formData.SkillName,\r\n Version: '',\r\n Experience: data.formData.CandidateExperience,\r\n CandidateExperience: data.formData.CandidateExperience,\r\n SkillLevelId: data.formData.CandidateSkillLevelID,\r\n Lastused: data.formData?.LastUsed ? data.formData?.LastUsed : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n ConsultantResumeSkillID: this.candidateSkills[skillIndex]?.ConsultantResumeSkillID,\r\n CandidateSkillLevelID: data.formData?.CandidateSkillLevelID,\r\n ClientExperience: data.formData.JobExperience || 0,\r\n }\r\n this.saveSkillsData(skill, skillIndex)\r\n } else {\r\n const newSkill = {\r\n SkillID: data.skillId,\r\n ConsultantResumeID: Common.activeConsultant.ConsultantResumeID,\r\n SkillName: data.formData.SkillName,\r\n Version: '',\r\n Experience: data.formData.CandidateExperience,\r\n CandidateExperience: data.formData.CandidateExperience,\r\n SkillLevelId: data.formData.CandidateSkillLevelID,\r\n LastUsed: data.formData?.LastUsed ? data.formData?.LastUsed : null,\r\n CreatedBy: this.authService.userInfo.userID,\r\n ConsultantResumeSkillID: 0,\r\n ClientExperience: data.formData.JobExperience || 0,\r\n } // Candidate New Skill\r\n this.saveSkillsData(newSkill)\r\n }\r\n }\r\n })\r\n }\r\n\r\n saveSkillsData(candidateSkill, index?) {\r\n const data = {\r\n ConsultantResumeID: Common.activeConsultant.ConsultantResumeID,\r\n RequiredSkills: [candidateSkill],\r\n }\r\n this.loading = true\r\n this.consultantService\r\n .AddResumeSkill(data)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n if (typeof index == TypeOfVariable.Number) {\r\n this.candidateSkills[index].SkillName = candidateSkill.SkillName\r\n this.candidateSkills[index].LastUsed = candidateSkill.LastUsed\r\n this.candidateSkills[index].Experience = candidateSkill.CandidateExperience\r\n this.candidateSkills[index].CandidateExperience = candidateSkill.CandidateExperience\r\n this.candidateSkills[index].ConsultantResumeID = Common.activeConsultant.ConsultantResumeID\r\n this.candidateSkills[index].CandidateSkillLevelID = candidateSkill.CandidateSkillLevelID\r\n } else {\r\n this.candidateSkills?.unshift(candidateSkill)\r\n }\r\n this.getSummaryData()\r\n if (this.candidateSkills > 5) this.candidateSkillsTableData.paginator = this.skillPaginator\r\n this.skillNames = this.candidateSkills?.forEach((item) => {\r\n this.skillNames.push(item.SkillName)\r\n })\r\n this.consultantDataService.triggerPercentageCalculation()\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate skills')\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving skill data!', 'Candidate skills')\r\n }\r\n )\r\n }\r\n\r\n addEditReferencesData(i?) {\r\n if (typeof i === TypeOfVariable.Number) this.isReferenceEditMode = true\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Reference,\r\n formData: this.consultantReference[i],\r\n contactsList: this.contactsList,\r\n allCompanies: this.allCompanies,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Reference) {\r\n if (this.isReferenceEditMode) {\r\n this.consultantReference[i].CompanyName = data.formData?.CompanyName\r\n this.consultantReference[i].Name = data.formData?.Name\r\n this.consultantReference[i].Title = data.formData?.Title\r\n this.consultantReference[i].EmailAddress = data.formData?.EmailAddress\r\n this.consultantReference[i].WorkPhone = data.formData?.WorkPhone\r\n this.consultantReference[i].CellPhone = data.formData?.CellPhone\r\n } else {\r\n const newReference = {\r\n ConsultantReferenceID: 0,\r\n ConsultantID: this.consultant?.ConsultantId > 0 ? this.consultant?.ConsultantId : null,\r\n Name: data.formData?.Name,\r\n Title: data.formData?.Title,\r\n CompanyName: data.formData?.CompanyName,\r\n EmailAddress: data.formData?.EmailAddress,\r\n WorkPhone: data.formData?.WorkPhone,\r\n CellPhone: data.formData?.CellPhone,\r\n CompanyId: data.formData?.CompanyId,\r\n TitleId: 0,\r\n ContactId: data.formData?.ContactId,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n IsActive: true,\r\n }\r\n this.consultantReference.push(newReference)\r\n }\r\n this.saveReferenceData()\r\n }\r\n })\r\n }\r\n\r\n removeReference(reference) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this reference?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.loading = true\r\n this.consultantService\r\n .deleteReference(reference)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Reference deleted successfully!', 'Reference')\r\n this.getSummaryData()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Reference')\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n saveReferenceData() {\r\n const data = {\r\n consultantId: this.consultant.ConsultantId,\r\n reference: this.consultantReference,\r\n }\r\n\r\n if (!this.isReferenceEditMode) {\r\n const ReferenceLastData = this.consultantReference[this.consultantReference.length - 1]\r\n var fullName = ReferenceLastData?.Name.split(' ')\r\n var firstName = fullName[0]\r\n var lastName = fullName[fullName.length - 1]\r\n this.createDefaultContactObj()\r\n this.contact.FirstName = firstName\r\n this.contact.LastName = lastName\r\n this.contact.CellPhone = ReferenceLastData?.CellPhone\r\n this.contact.WorkPhone = ReferenceLastData?.WorkPhone\r\n this.contact.EmailAddress = ReferenceLastData?.EmailAddress\r\n this.contact.Title = ReferenceLastData?.Title\r\n this.companyModel.companyID = ReferenceLastData?.CompanyId\r\n\r\n if (this.companyModel.companyID == 0) {\r\n this.companyModel.WebSite = 'www.' + new Date().toString() + '.com'\r\n this.companyModel.Name = ReferenceLastData.CompanyName\r\n this.companyModel.Phone = ReferenceLastData.WorkPhone\r\n this.companyModel.Description = null\r\n this.companyModel.Address = null\r\n this.companyModel.IsActive = true\r\n this.companyModel.StateCode = null\r\n this.companyModel.StateId = null\r\n this.companyModel.EmployeeRangeID = null\r\n this.companyModel.City = null\r\n this.companyModel.ZipCode = null\r\n this.companyModel.IndustryID = null\r\n this.companyModel.companyID = 0\r\n this.companyModel.CompanyStatusID = 79 //<-Prospect. TODO: use enum value\r\n this.companyModel.SicCodeID = null\r\n this.companyModel.CompanyTypeID = CompanyType.Client\r\n this.companyModel.MSPCompanyID = null\r\n this.companyModel.CreatedDate = new Date()\r\n this.companyModel.CreatedBy = this.authService.userInfo.userID\r\n this.companyService\r\n .AddCompany(this.companyModel)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n if (res.StatusCode == HttpStatusCode.BadRequest) {\r\n this.notifyService.showError(res.Message, 'Contact')\r\n } else if (ReferenceLastData.ContactId == 0) {\r\n this.contact.CompanyId = res.CompanyId\r\n this.companyService\r\n .AddContact(this.contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.notifyService.showSuccess('Contact added!', 'Contact')\r\n },\r\n (err) => {\r\n this.notifyService.showError('Error Adding data', 'Contact')\r\n }\r\n )\r\n }\r\n })\r\n } else {\r\n if (this.companyModel.companyID !== 0) {\r\n this.contact.CompanyId = ReferenceLastData.CompanyId\r\n this.companyService\r\n .AddContact(this.contact)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (res) => {\r\n this.notifyService.showSuccess('Contact added!', 'Contact')\r\n },\r\n (err) => {\r\n this.notifyService.showError('Error Adding data', 'Contact')\r\n }\r\n )\r\n }\r\n }\r\n }\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantReference(data)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess(\r\n this.isReferenceEditMode ? 'Reference updated!' : 'Reference added!',\r\n 'Candidate Reference'\r\n )\r\n this.getSummaryData()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Candidate Reference')\r\n }\r\n )\r\n this.isReferenceEditMode = false\r\n }\r\n\r\n createDefaultContactObj() {\r\n this.contact = {\r\n ContactID: 0,\r\n FirstName: '',\r\n MiddleName: '',\r\n LastName: '',\r\n EmailAddress: '',\r\n ImageId: 0,\r\n TitleId: 0,\r\n DoB: null,\r\n Sex: 0,\r\n HomePhone: '',\r\n WorkPhone: '',\r\n CellPhone: '',\r\n LinkedinUrl: '',\r\n ManagementLevelID: null,\r\n ParentID: null,\r\n DepartmentID: null,\r\n FilePath: null,\r\n LocationID: null,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n Address1: '',\r\n Address2: '',\r\n City: '',\r\n StateID: 0,\r\n CountryID: 0,\r\n CompanyContactID: 0,\r\n ZipCode: 0,\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n CompanyId: 1,\r\n }\r\n }\r\n\r\n createDefaultCompanyModel() {\r\n this.companyModel = {\r\n companyID: 0,\r\n Name: '',\r\n Phone: '',\r\n EmailAddress: '',\r\n Fax: '',\r\n Address: '',\r\n Address1: '',\r\n City: '',\r\n StateId: null,\r\n StateCode: '',\r\n ZipCode: null,\r\n ZipCode1: null,\r\n Dunnumber: '',\r\n FederalTaxId: '',\r\n LegalStructureId: null,\r\n RegisteredStateId: null,\r\n RegisteredState: '',\r\n WebSite: '',\r\n NewsLink: '',\r\n EmployeeRangeID: null,\r\n Description: '',\r\n IsActive: true,\r\n CreatedBy: 0,\r\n CreatedDate: new Date(),\r\n UpdatedBy: 0,\r\n UpdatedDate: new Date(),\r\n IndustryID: null,\r\n CompanyStatusID: null,\r\n CompanyTypeID: null,\r\n MSPCompanyID: null,\r\n SicCodeID: null,\r\n }\r\n }\r\n\r\n deleteSkillModel(skill) {\r\n if (skill.ConsultantResumeSkillID == null || skill.ConsultantResumeSkillID == '') {\r\n this.notifyService.showWarning('Cannot Delete job skill', 'Candidate Skill')\r\n return\r\n }\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this skill?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.deleteSkill(skill)\r\n }\r\n })\r\n }\r\n deleteProjectModel(projectIndex) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this project?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.deleteProject(this.workExperienceArray[projectIndex])\r\n }\r\n })\r\n }\r\n\r\n deleteProject(project) {\r\n this.loading = true\r\n this.consultantService\r\n .deleteProject(project)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: () => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Project deleted Successfully', 'Candidate project')\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError('Error while deleting project', 'Candidate project')\r\n },\r\n })\r\n }\r\n\r\n deleteSkill(skill) {\r\n this.loading = true\r\n this.consultantService\r\n .deleteSkill(skill)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n var i = this.candidateSkills.findIndex((x) => x.SkillName === skill.SkillName)\r\n this.candidateSkills.splice(i, 1)\r\n this.filterJobRequiredSkills()\r\n this.consultantDataService.triggerPercentageCalculation()\r\n this.loading = false\r\n this.notifyService.showSuccess('Record deleted Successfully!', 'Candidate skills')\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while deleting!', 'Candidate skills')\r\n },\r\n })\r\n }\r\n deleteEducationModel(education) {\r\n if (education.ConsultantEducationID == null || education.ConsultantEducationID == '') {\r\n this.notifyService.showWarning('Cannot Delete Education', 'Candidate Skill')\r\n return\r\n }\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Delete,\r\n deleteMethod: ConsultantDialogTypes.Education,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Delete) {\r\n this.deleteEducation(education)\r\n }\r\n })\r\n }\r\n deleteEducation(skill) {\r\n this.consultantService\r\n .deleteSkill(skill)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n var i = this.candidateSkills.findIndex((x) => x.SkillName === skill.SkillName)\r\n this.candidateSkills.splice(i, 1)\r\n this.filterJobRequiredSkills()\r\n this.consultantDataService.triggerPercentageCalculation()\r\n this.notifyService.showSuccess('Record deleted Successfully!', 'Candidate skills')\r\n },\r\n error: (error) => {\r\n this.notifyService.showError('Error while deleting!', 'Candidate skills')\r\n },\r\n })\r\n }\r\n calculateCVPercentage() {\r\n this.consultantDataService.resetProfileSubject()\r\n this.consultantDataService\r\n .calculatePercentage()\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n const requiredFields = [\r\n 'FirstName',\r\n 'LastName',\r\n 'Emailaddress',\r\n 'CellPhone',\r\n 'LegalTypeId',\r\n 'ConsultantTypeId',\r\n 'SkillLength',\r\n 'ProjectLength',\r\n 'EducationLength',\r\n 'ImageUrl',\r\n 'ResumePath',\r\n ]\r\n let requiredSkillCount = requiredFields.length\r\n let complectedSkillCount = 0\r\n Object.keys(Common.activeConsultant).forEach((key) => {\r\n if (requiredFields.includes(key)) {\r\n if (Common.activeConsultant[key]) {\r\n complectedSkillCount += 1\r\n }\r\n }\r\n })\r\n if (this.candidateSkills?.length > 0) complectedSkillCount += 1\r\n if (this.candidateEducation?.length > 0) complectedSkillCount += 1\r\n if (this.consultantResumeProjectData?.length > 0) complectedSkillCount += 1\r\n this.consultantDataService.addMandatoryFields(requiredSkillCount)\r\n this.consultantDataService.addComplectedProfileFields(complectedSkillCount)\r\n this.consultantDataService.calculateProfileComplectedPercentage()\r\n },\r\n })\r\n }\r\n projectViewOnly(index) {\r\n if (typeof index === TypeOfVariable.Number) {\r\n var editArray = [...this.consultantResumeProjectData]\r\n editArray.splice(index, 1)\r\n }\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Project,\r\n formData: this.consultantResumeProjectData[index],\r\n allCompanies: this.allCompanies,\r\n states: this.states,\r\n projectsArray: editArray,\r\n isAddFlow: true,\r\n isFormViewOnly: true,\r\n },\r\n })\r\n }\r\n\r\n addEditPatent(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Patent,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidatePatent[index] : null,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Patent) {\r\n this.addConsultantPatent([data?.formData])\r\n }\r\n })\r\n }\r\n\r\n addEditAward(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Award,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidatePatent[index] : null,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Award) {\r\n this.addConsultantAward([data?.formData])\r\n }\r\n })\r\n }\r\n\r\n addEditPublication(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Publication,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidatePatent[index] : null,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Publication) {\r\n this.addConsultantPublication([data?.formData])\r\n }\r\n })\r\n }\r\n\r\n addEditTraining(index?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Training,\r\n formData: typeof index == TypeOfVariable.Number ? this.candidatePatent[index] : null,\r\n width: '80vw',\r\n isAddFlow: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Training) {\r\n this.addConsultantTraining([data?.formData])\r\n }\r\n })\r\n }\r\n\r\n addConsultantTraining(Training) {\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantTraining(Training)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Training added successfully!', 'Training')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Training')\r\n },\r\n })\r\n }\r\n\r\n addConsultantAward(Award) {\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantAwards(Award)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Award added successfully!', 'Award')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Award')\r\n },\r\n })\r\n }\r\n\r\n addConsultantPublication(Publication) {\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantPublication(Publication)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Publication added successfully!', 'Publication')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Publication')\r\n },\r\n })\r\n }\r\n\r\n addConsultantPatent(Patent) {\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantPatent(Patent)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Patent added successfully!', 'Patent')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Patent')\r\n },\r\n })\r\n }\r\n\r\n deleteConsultantPatentModel(Patent) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this Patent?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n // console.log('Deleted')\r\n this.deleteConsultantPatent(Patent)\r\n }\r\n })\r\n }\r\n\r\n deleteConsultantPatent(Patentindex) {\r\n let Patent = this.patentsData[Patentindex]\r\n this.loading = true\r\n this.consultantService\r\n .deleteConsultantPatent(Patent)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Patent deleted successfully!', 'Patent')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Training')\r\n },\r\n })\r\n }\r\n\r\n deleteConsultantAwardModel(Award) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this Award?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n // console.log('Deleted')\r\n this.deleteConsultantAward(Award)\r\n }\r\n })\r\n }\r\n\r\n deleteConsultantAward(Awardindex) {\r\n let Award = this.awardsData[Awardindex]\r\n this.loading = true\r\n this.consultantService\r\n .deleteConsultantAward(Award)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Award deleted successfully!', 'Award')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Training')\r\n },\r\n })\r\n }\r\n\r\n deleteConsultantPublicationModel(Publication) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this Publication?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n // console.log('Deleted')\r\n this.deleteConsultantPublication(Publication)\r\n }\r\n })\r\n }\r\n\r\n deleteConsultantPublication(Publicationindex) {\r\n let Publication = this.publicationsData[Publicationindex]\r\n this.loading = true\r\n this.consultantService\r\n .deleteConsultantPublication(Publication)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Publication deleted successfully!', 'Publication')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Training')\r\n },\r\n })\r\n }\r\n\r\n deleteConsultantTrainingModel(Training) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to delete this Training?',\r\n Header: DialogHeader.DeleteHeader,\r\n ButtonText: DialogHeader.Delete,\r\n IsDangerButton: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n // console.log('Deleted')\r\n this.deleteConsultantTraining(Training)\r\n }\r\n })\r\n }\r\n\r\n deleteConsultantTraining(Trainingindex) {\r\n let Training = this.trainingData[Trainingindex]\r\n this.loading = true\r\n this.consultantService\r\n .deleteConsultantTraining(Training)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe({\r\n next: (result) => {\r\n this.getSummaryData()\r\n this.loading = false\r\n this.notifyService.showSuccess('Training deleted successfully!', 'Training')\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error saving data', 'Training')\r\n },\r\n })\r\n }\r\n\r\n showDescriptionFiled(project, index?): void {\r\n if (project !== null) {\r\n if (this.showVisibleDescription === index) {\r\n this.showVisibleDescription = null\r\n } else {\r\n this.showVisibleDescription = index\r\n }\r\n if (this.showVisibleDescription === index) {\r\n this.consultantProjectForm.patchValue({\r\n Description: project.Description,\r\n })\r\n }\r\n }\r\n }\r\n\r\n applyFilterClient(client?) {\r\n if (client == undefined || client == null) client = ''\r\n this.companies = (this.allCompanies as any[])?.filter((x) =>\r\n x.Name.toLowerCase().includes(client.trim().toLowerCase())\r\n ) as any\r\n }\r\n applyFilterTitle(title) {\r\n title = title.trim() // Remove whitespace\r\n this.consultantService\r\n .jobTitleSearch(title)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res: JobTitle[]) => {\r\n this.titles = res\r\n })\r\n }\r\n applyFilterCity(city) {\r\n city = city.trim() // Remove whitespace\r\n this.consultantService\r\n .getCitySearch(city)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.filterCities = res\r\n })\r\n }\r\n onSelectedCity(city) {\r\n this.consultantProjectForm.get('State').setValue(city.State)\r\n this.consultantProjectForm.get('StateCode').setValue(city.StateCode)\r\n }\r\n editProject(project, index?) {\r\n let DescriptionProjectIndex = null\r\n this.showDescriptionFiled(project, DescriptionProjectIndex)\r\n this.consultantProjectForm.patchValue({\r\n ConsultantResumeID: project.ConsultantResumeID,\r\n JobTitleId: project.JobTitleId,\r\n ClientName: project.ClientName,\r\n ProjectName: project.ProjectName,\r\n City: project.City,\r\n State: project.State,\r\n StateCode: project.StateCode,\r\n DurationTo: project.DurationTo ? new Date(project.DurationTo).toISOString().substring(0, 10) : '',\r\n Duration: project.Duration,\r\n ExperienceNumber: project.ExperienceNumber,\r\n ExperienceTypeId: project.ExperienceTypeId,\r\n Description: project.Description,\r\n CreatedDate: project.CreatedDate,\r\n CreatedBy: project.CreatedBy,\r\n ConsultantResumeProjectId: project.ConsultantResumeProjectId,\r\n UpdatedDate: project.UpdatedDate,\r\n UpdatedBy: project.UpdatedBy,\r\n IsCurrentlyWorking: project.IsCurrentlyWorking,\r\n IsActive: project.IsActive,\r\n ConsultantResume: project.ConsultantResume,\r\n JobTitleName: project.JobTitleName,\r\n Country: project.Country,\r\n linenoDuration: project.linenoDuration,\r\n tempClientName: project.tempClientName,\r\n linenoTitle: project.linenoTitle,\r\n linenoLocation: project.linenoLocation,\r\n linenoClientName: project.linenoClientName,\r\n DurationFrom: project.DurationFrom ? new Date(project.DurationFrom).toISOString().substring(0, 10) : '',\r\n })\r\n\r\n this.editIndexProject = index\r\n project.editMode = true\r\n setTimeout(() => {\r\n const editorElement = document.querySelector(`#quill-editor-${project.id}`)\r\n\r\n if (editorElement) {\r\n const quillEditor = new Quill(editorElement, {\r\n theme: 'snow',\r\n })\r\n quillEditor.root.innerHTML = project.Description || ''\r\n quillEditor.on('text-change', () => {\r\n project.Description = quillEditor.root.innerHTML\r\n })\r\n }\r\n })\r\n }\r\n cancelEditProject() {\r\n this.editIndexProject = null\r\n this.showDescriptionFiled(null, this.editIndexProject)\r\n }\r\n updateProject(project, index) {\r\n this.editIndexProject = null\r\n let consultantProject = this.consultantProjectForm.value\r\n this.addOrUpdateProjectData(consultantProject, index)\r\n }\r\n addOrUpdateProjectData(consultantProject, index?) {\r\n // const ClientName = this.consultantProjectForm?.get('ClientName')?.value;\r\n // const JobTitleName = this.consultantProjectForm?.get('JobTitleName')?.value;\r\n // const DurationFrom = this.consultantProjectForm?.get('DurationFrom')?.value;\r\n // const DurationTo = this.consultantProjectForm?.get('DurationTo')?.value;\r\n // const City = this.consultantProjectForm?.get('City')?.value;\r\n // const State = this.consultantProjectForm?.get('State')?.value;\r\n\r\n // if (!ClientName || !JobTitleName || DurationFrom || DurationTo) {\r\n // this.editIndexProject = index\r\n // return;\r\n // }\r\n\r\n const durationFrom = new Date(consultantProject?.DurationFrom)\r\n let durationTo\r\n if (consultantProject?.IsCurrentlyWorking) {\r\n durationTo = 'Present'\r\n } else {\r\n const date = new Date(consultantProject?.DurationTo)\r\n durationTo = `${date.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${date.getFullYear()}`\r\n }\r\n\r\n const duration = `${durationFrom.toLocaleString('default', {\r\n month: 'short',\r\n })}, ${durationFrom.getFullYear()} - ${durationTo}`\r\n\r\n let experience\r\n if (!consultantProject.IsCurrentlyWorking) {\r\n experience = this.calculateExperience(consultantProject?.DurationFrom, consultantProject?.DurationTo)\r\n } else {\r\n experience = this.calculateExperience(consultantProject?.DurationFrom, new Date())\r\n }\r\n let projectFrom = null\r\n if (this.isValidDate(new Date(consultantProject?.DurationFrom))) {\r\n projectFrom = format(new Date(consultantProject?.DurationFrom), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n let projectTo = null\r\n if (!consultantProject?.IsCurrentlyWorking || consultantProject?.DurationTo) {\r\n if (this.isValidDate(new Date(consultantProject?.DurationTo))) {\r\n projectTo = format(new Date(consultantProject?.DurationTo), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n }\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.consultantResumeProjectData[index].ClientName = consultantProject?.ClientName\r\n this.consultantResumeProjectData[index].JobTitleName = consultantProject?.JobTitleName\r\n // this.consultantResumeProjectData[index].JobTitleId = data.formData?.JobTitleID\r\n this.consultantResumeProjectData[index].DurationFrom = projectFrom\r\n this.consultantResumeProjectData[index].DurationTo = projectTo\r\n this.consultantResumeProjectData[index].City = consultantProject?.City\r\n this.consultantResumeProjectData[index].State = consultantProject?.State\r\n this.consultantResumeProjectData[index].StateCode = consultantProject?.StateCode\r\n this.consultantResumeProjectData[index].Description = consultantProject?.Description\r\n this.consultantResumeProjectData[index].IsCurrentlyWorking = consultantProject?.IsCurrentlyWorking\r\n this.consultantResumeProjectData[index].Duration = duration\r\n // this.consultantResumeProjectData[index].ExperienceNumber = experience\r\n } else {\r\n let _consultantResumeId = 0\r\n if (this.consultantData) {\r\n _consultantResumeId =\r\n this.consultantData.ConsultantResumeID > 0 ? this.consultantData.ConsultantResumeID : 0\r\n }\r\n const newProject = {\r\n ConsultantResumeProjectId: 0,\r\n ConsultantResumeID: _consultantResumeId,\r\n JobTitleId: null,\r\n JobTitleName: consultantProject?.JobTitleName,\r\n ClientName: consultantProject?.ClientName,\r\n City: consultantProject?.City,\r\n State: consultantProject?.State,\r\n StateCode: consultantProject?.StateCode,\r\n ProjectName: null,\r\n DurationFrom: projectFrom,\r\n DurationTo: projectTo,\r\n Duration: duration,\r\n IsCurrentlyWorking: consultantProject?.IsCurrentlyWorking,\r\n ExperienceNumber: null,\r\n ExperienceTypeId: null,\r\n Description: consultantProject?.Description,\r\n CreatedBy: this.authService.userInfo.userID,\r\n }\r\n this.consultantResumeProjectData.push(newProject)\r\n }\r\n\r\n this.saveProjectData()\r\n }\r\n getDescription(description) {\r\n return this.sanitize.sanitize(SecurityContext.HTML, description)\r\n }\r\n\r\n applyFilterSkill(filterValue: string) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n this.consultantService\r\n .getSkills(filterValue)\r\n .pipe(takeUntil(this.ngUnSubscribe))\r\n .subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n this.skillNames = this.skillNames?.filter((item) => this.skillNameArray?.indexOf(item.Name) == -1)\r\n })\r\n }\r\n\r\n editSkill(Skill: any, index: number) {\r\n this.editIndexSkill = index\r\n\r\n this.consultantSkillForm.patchValue({\r\n SkillName: Skill?.SkillName,\r\n Experience: Skill?.CandidateExperience,\r\n CandidateExperience: Skill?.CandidateExperience,\r\n CandidateSkillLevelID: Skill?.CandidateSkillLevelID,\r\n MatchPercentage: Skill?.MatchPercentage,\r\n CandidateSkillLevel: Skill?.CandidateSkillLevel,\r\n Lastused: Skill.LastUsed,\r\n JobExperience: Skill?.JobExperience,\r\n })\r\n }\r\n\r\n updateSkill(index) {\r\n this.editIndexSkill = null\r\n\r\n const skillName = this.consultantSkillForm?.get('SkillName')?.value\r\n const candidateExperience = this.consultantSkillForm?.get('CandidateExperience')?.value\r\n // const candidateSkillLevelID = this.consultantSkillForm?.get('CandidateSkillLevelID')?.value;\r\n\r\n if (!skillName || !candidateExperience) {\r\n this.editIndexSkill = index\r\n return\r\n }\r\n let updateSkill = this.consultantSkillForm.value\r\n const skill = this.skillNames.find((skill) => skill.SkillName === updateSkill?.SkillName)\r\n const skillID = skill?.SkillID || 0\r\n\r\n const newSkill = {\r\n ConsultantResumeSkillID: this.candidateSkills[index]?.ConsultantResumeSkillID\r\n ? this.candidateSkills[index]?.ConsultantResumeSkillID\r\n : 0,\r\n ConsultantResumeID: Common?.activeConsultant?.ConsultantResumeID\r\n ? Common?.activeConsultant?.ConsultantResumeID\r\n : 0,\r\n SkillID: skillID,\r\n SkillLevelId: updateSkill?.CandidateSkillLevelID,\r\n CandidateSkillLevelID: updateSkill?.CandidateSkillLevelID,\r\n CandidateExperience: updateSkill?.CandidateExperience,\r\n SkillTypeId: 151,\r\n Experience: updateSkill?.CandidateExperience,\r\n Score: this.candidateSkills[index]?.Score,\r\n LastUsed: updateSkill?.Lastused,\r\n CreatedDate: this.candidateSkills[index]?.CreatedDate\r\n ? this.candidateSkills[index]?.CreatedDate\r\n : new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: this.candidateSkills[index]?.UpdatedDate,\r\n UpdatedBy: this.candidateSkills[index]?.UpdatedBy,\r\n IsActive: this.candidateSkills[index]?.IsActive ? this.candidateSkills[index]?.IsActive : undefined,\r\n SkillName: updateSkill?.SkillName,\r\n SkillLevel: this.candidateSkills[index]?.JobSkillLevel,\r\n Version: this.candidateSkills[index]?.Version,\r\n }\r\n this.candidateSkills[index] = newSkill\r\n this.addUpdateCandidateSkills(index)\r\n }\r\n cancelEditSkill() {\r\n this.editIndexSkill = null\r\n }\r\n addUpdateCandidateSkills(index?) {\r\n this.candidateSkills.forEach((skill) => {\r\n skill['ConsultantResumeID'] = this.candidateSkills[index]?.ConsultantResumeID\r\n })\r\n let data\r\n if (typeof index === TypeOfVariable.Number) {\r\n data = {\r\n ConsultantResumeID: this.candidateSkills[index]?.ConsultantResumeID,\r\n RequiredSkills: [this.candidateSkills[index]],\r\n }\r\n } else {\r\n data = {\r\n ConsultantResumeID: this.candidateSkills[index]?.ConsultantResumeID,\r\n RequiredSkills: [...this.candidateSkills],\r\n }\r\n }\r\n this.loading = true\r\n this.consultantService.AddResumeSkill(data).subscribe({\r\n next: (candidateSkills: any) => {\r\n this.loading = false\r\n\r\n if (typeof index === TypeOfVariable.Number) {\r\n this.candidateSkills[index] = candidateSkills\r\n } else {\r\n this.candidateSkills = [...candidateSkills]\r\n }\r\n this.notifyService.showSuccess('Skill saved successfully', 'Skill')\r\n this.sortSkilsData()\r\n this.getSummaryData()\r\n if(this.isFromJobSearch || this.isFromCandidateTab){\r\n this.getRequiredJobSkills();\r\n }\r\n },\r\n error: () => {\r\n this.loading = false\r\n this.notifyService.showError('Error while saving skill', 'Skill')\r\n },\r\n })\r\n }\r\n sortSkilsData() {\r\n this.candidateSkills = (this.candidateSkills as any[])?.sort((skillA, skillB) => {\r\n return this.compare(skillA?.SkillName?.toLowerCase(), skillB?.SkillName?.toLowerCase(), true)\r\n })\r\n this.candidateSoftSkills = (this.candidateSoftSkills as any[])?.sort((skillA, skillB) => {\r\n return this.compare(skillA?.SkillName?.toLowerCase(), skillB?.SkillName?.toLowerCase(), true)\r\n })\r\n }\r\n isCurrentlyWorkingHandler() {\r\n this.consultantProjectForm\r\n .get('IsCurrentlyWorking')\r\n .setValue(!this.consultantProjectForm.get('IsCurrentlyWorking').value)\r\n if (!this.consultantProjectForm.get('IsCurrentlyWorking').value) {\r\n this.consultantProjectForm.get('DurationTo').addValidators([Validators.required])\r\n } else {\r\n this.consultantProjectForm.get('DurationTo').clearValidators()\r\n this.consultantProjectForm.get('DurationTo').setValue(null)\r\n }\r\n this.consultantProjectForm.get('DurationTo').updateValueAndValidity()\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n\r\n
\r\n
\r\n Work Experience\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
No data available
\r\n \r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Client NameJob TitleStart dateEnd dateCityState CodeActions
\r\n
\r\n \r\n {{ showVisibleDescription === i ? 'remove' : 'add' }}\r\n \r\n {{ project?.ClientName | nullValueReplace }}\r\n
\r\n
\r\n \r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n
\r\n {{ project?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n \r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n {{\r\n project?.DurationFrom\r\n ? (project?.DurationFrom | date : 'MMM yyyy')\r\n : (project?.DurationFrom | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n Present \r\n \r\n {{\r\n project?.DurationTo\r\n ? (project?.DurationTo | date : 'MMM yyyy')\r\n : (project?.DurationTo | nullValueReplace)\r\n }}\r\n \r\n \r\n
\r\n \r\n Currently working here!\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ project?.City | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n {{ city.City }}, {{ city.StateCode }}\r\n \r\n \r\n \r\n {{ project?.StateCode | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Industry\r\n
\r\n
\r\n \r\n
No data available
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n dynamic?.Industry.length ? dynamic?.Industry : 'Industry Name'\r\n }}\r\n {{\r\n dynamic?.ClientName.length > 0 ? dynamic?.ClientName : 'Client Name'\r\n }}\r\n {{\r\n dynamic?.LastWorked?.length > 0\r\n ? (dynamic?.LastWorked | date : 'MMM yyyy')\r\n : 'Last Worked Date'\r\n }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Skills\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
No data available
\r\n \r\n
\r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill NameLast WorkedCandidate ExperienceClient Experience RequiredMatched PercentageActions
\r\n {{ Skill.SkillName | nullValueReplace\r\n }}star\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n Skill name is required\r\n \r\n \r\n \r\n {{ Skill.LastUsed | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n Skill.CandidateExperience\r\n ? (Skill.CandidateExperience | number : '1.1-1')\r\n : (Skill.CandidateExperience | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n Experience is required\r\n \r\n \r\n \r\n {{\r\n Skill.JobExperience\r\n ? (Skill.JobExperience | number : '1.1-1')\r\n : (Skill.JobExperience | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n Experience is required\r\n \r\n \r\n \r\n \r\n {{\r\n Skill.MatchPercentage\r\n ? (Skill.MatchPercentage | number : '1.1-1')\r\n : (Skill.MatchPercentage | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n \r\n Percentage is Required\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Certifications\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
No data available
\r\n
0\">\r\n
\r\n \r\n\r\n
\r\n
\r\n {{ dynamic?.CertificationName }}\r\n 0\">{{\r\n dynamic?.Organization\r\n }}\r\n {{\r\n dynamic?.CertificateNumber\r\n }}\r\n 0\">{{\r\n dynamic?.Url\r\n }}\r\n 0\">{{ dynamic?.Year }}\r\n
\r\n \r\n \r\n \r\n \r\n \"Delete\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n Education\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
No data available
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n {{ dynamic?.DegreeTypeName }}, \r\n 0\">{{ dynamic?.Name }}, \r\n 0\">{{ dynamic?.Organization }}, \r\n 0\">{{ dynamic?.Location }}, \r\n 0\">{{ dynamic?.Year }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \"Delete\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n References\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n No data available\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{ dynamic?.Name }}\r\n {{ dynamic?.Title }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {{ dynamic?.CompanyName }}\r\n \r\n \r\n \r\n {{ dynamic?.EmailAddress }}\r\n \r\n
\r\n
\r\n \r\n \r\n Work: +{{ dynamic?.WorkPhone }}\r\n \r\n \r\n \r\n Personal: +{{ dynamic?.CellPhone }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n Patents\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Patent Name{{ element.PatentName | nullValueReplace }}Patent Number{{ element.PatentNumber | nullValueReplace }}\r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
No data available
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n Awards\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Award Name{{ element.AwardName | nullValueReplace }}Organization{{ element.Organization | nullValueReplace }}Year{{ element.Year | nullValueReplace }}\r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
No data available
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n Publications\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Publication Name{{ element.PublicationName | nullValueReplace }}Subject{{ element.Subject | nullValueReplace }}Publication Date{{ element.PublicationDate | date : 'MMM yyyy' }}\r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
No data available
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n Training\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Training Name{{ element.TrainingName | nullValueReplace }}Description{{ element.Description | nullValueReplace }}Training Type{{ element.TrainingType | nullValueReplace }}Category{{ element.Category | nullValueReplace }}Level{{ element.Level | nullValueReplace }}\r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
No data available
\r\n
\r\n\r\n \r\n
\r\n","import { Component, OnDestroy, OnInit, Renderer2, ViewEncapsulation } from '@angular/core'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { EMPTY, Observable, Subject, Subscription, forkJoin } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common, ConsultantJobStatuses, MenuName, PreviewDialogAction } from '../../common/common'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { ThemePalette } from '@angular/material/core'\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner'\r\nimport { ConsultantType, iConsultant, iConsultantJob } from 'src/app/models/consultant.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { ConsultantsService } from 'src/app/services/consultants.service'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { ConsultantService } from '../consultant.service'\r\nimport { MatSnackBar } from '@angular/material/snack-bar'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from '../consultant-dialog/consultant-dialog.component'\r\nimport { HttpResponse, HttpStatusCode } from '@angular/common/http'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { catchError, first, retry, takeUntil, tap } from 'rxjs/operators'\r\nimport {\r\n ConsultantDialogTypes,\r\n ConsultantJobAction,\r\n ConsultantJobStatus,\r\n LinkType,\r\n Resume,\r\n iConsultantSearch,\r\n} from '../consultant-constants'\r\nimport { CandidateDataSource } from 'src/app/enums/candidateDataSource'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { iDbResult, iMenuItem } from 'src/app/models/common.model'\r\nimport { ConsultantDataService } from '../consultant-data.service'\r\nimport { iKeyValue } from 'src/app/models/common.model'\r\nimport { Company } from 'src/app/models/company.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { InterviewDialogComponent } from 'src/app/shared/interview-dialog/interview-dialog.component'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { Email, PreviewDialogCloseAction } from 'src/app/models/emailModel'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { UploadResumeResponse } from 'src/app/models/resume.model'\r\nimport { WorkOptionText } from 'src/app/enums/workOption'\r\nimport { NotesDialogService } from 'src/app/shared/notes-dialog/notes-dialog.service'\r\nimport { iContact } from 'src/app/models/contact.model'\r\nimport { NotesType } from 'src/app/enums/notesType'\r\nimport { iNotes } from 'src/app/models/notes.model'\r\nimport { NotesAction } from 'src/app/models/notes-action.model'\r\nimport { DialogActions } from 'src/app/enums/dialogActions'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { CompanyDialogComponent } from 'src/app/company/company-dialog/company-dialog.component'\r\nimport { CompanyDialogTypes } from 'src/app/company/company-constants'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { iAssignedUsers } from 'src/app/models/assignedUser.model'\r\nimport { CompanyList } from 'src/app/models/company-list-response'\r\nimport {\r\n CANDIDATE_ADD_ACTION,\r\n CANDIDATE_APPROVE_ACTION,\r\n CANDIDATE_EDIT_ACTION,\r\n CANDIDATE_VIEW_ACTION,\r\n} from 'src/app/enums/userActions'\r\nimport { BooleanSearchService } from 'src/app/boolean-search/boolean-search.service'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\ndeclare global {\r\n interface Window {\r\n VonageDialer: any\r\n }\r\n}\r\n@Component({\r\n selector: 'consultant-tabs',\r\n templateUrl: './consultant-tabs.component.html',\r\n styleUrls: [\r\n './consultant-tabs.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class ConsultantTabsComponent implements OnInit, OnDestroy {\r\n color: ThemePalette = 'primary'\r\n mode: ProgressSpinnerMode = 'determinate'\r\n value = 70\r\n diameter = 20\r\n imageSrc: string | ArrayBuffer\r\n subscribe: Subscription\r\n activeConsultant: iConsultant\r\n softSkillImage: number[] = [1, 2, 3, 4, 5]\r\n consultant: iConsultant\r\n parseConsultant: iConsultant\r\n iShowUpload: boolean = false\r\n activeTab = 0\r\n disableTab: boolean = false\r\n public cvCompleted: number\r\n modelConsultant: iConsultant\r\n loading: boolean = false\r\n filePath: string\r\n newLocation: iLocation\r\n isFromJobSearch: boolean = false\r\n isCandidateShortListed: boolean = false\r\n isCandidateSubmitted: boolean = false\r\n isCandidateInterviewScheduled: boolean = false\r\n isCandidateWithdrawn: boolean = false\r\n isCandidateRejected: boolean = false\r\n showDisabledToolTip: boolean = false\r\n isFromCandidateTab: boolean = false\r\n isMailPreview: boolean = false\r\n consultantJobStatus: string = ConsultantJobAction.Matched\r\n destroy$: Subject = new Subject()\r\n isDiceResumeLoading: boolean = false\r\n consultantTypes\r\n legalTypes: iKeyValue[]\r\n jobTypes: iKeyValue[]\r\n modelConsultantJob: iConsultantJob\r\n allCompanies: Company[]\r\n consultantJob: iConsultantJob\r\n\r\n isDiceCandidate: boolean = false\r\n jobDetail: iJob\r\n matMenu: iMenuItem[]\r\n jobCandidateList: iConsultantJob[] = []\r\n public get consultantJobAction(): typeof ConsultantJobAction {\r\n return ConsultantJobAction\r\n }\r\n public get workOptionText(): typeof WorkOptionText {\r\n return WorkOptionText\r\n }\r\n public get linkType(): typeof LinkType {\r\n return LinkType\r\n }\r\n public get UserRoleId(): typeof UserRoleId {\r\n return UserRoleId\r\n }\r\n diceCandidateResume: Resume\r\n isShortListed: boolean = false\r\n profileCompletePercentage: number = 0\r\n searchPara: iConsultantSearch\r\n matchedPercentage: number = 0\r\n isFromCallClick: boolean = false\r\n isFromApplyJob: boolean = false\r\n VonageDialer: any\r\n\r\n selectedReasonId: number = 0\r\n selectedReason: string = ''\r\n currentMenuItem: iMenuItem = {} as iMenuItem\r\n selectedAction: string = ''\r\n selectedCompanyVendorID: number = 0\r\n selectedVendorContactID: number = 0\r\n candidateViewAction = CANDIDATE_VIEW_ACTION\r\n candidateEditAction = CANDIDATE_EDIT_ACTION\r\n candidateAddAction = CANDIDATE_ADD_ACTION\r\n candidateApproveAction = CANDIDATE_APPROVE_ACTION\r\n isDiceRecordFromBooleanSearch: boolean = false\r\n isCandidateDataEditable$: Observable = this.consultantDataService.isCandidateDataEditable$\r\n currentUserRoleId: number = this.authService.userInfo.roles[0].roleID\r\n\r\n constructor(\r\n private _snackBar: MatSnackBar,\r\n public commonService: CommonService,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private consultantsService: ConsultantsService,\r\n private consultantService: ConsultantService,\r\n private router: Router,\r\n private _activatedRoute: ActivatedRoute,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private companyService: CompanyService,\r\n private consultantDataService: ConsultantDataService,\r\n private jobService: JobService,\r\n private notesDialogService: NotesDialogService,\r\n private _renderer2: Renderer2,\r\n private booleanSearchService: BooleanSearchService\r\n ) {\r\n this.isCandidateDataEditable$ = this.consultantDataService.isCandidateDataEditable$\r\n }\r\n private subscription: Subscription\r\n candidateMatchingPercentage$: Observable\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData.subscribe((messageConsultantView: any) => {\r\n Common.activeConsultantJob = null\r\n this.jobDetail = Common.activeJob\r\n this.isShortListed = false\r\n if (messageConsultantView?.isCallClick) {\r\n this.isFromCallClick = true\r\n const script = this._renderer2.createElement('script')\r\n script.setAttribute('id', 'vonage-cdn')\r\n script.setAttribute('data-provider', 'uc')\r\n script.setAttribute('data-autoload', 'false')\r\n script.setAttribute('src', 'https://apps.gunify.vonage.com/cti/common/vonage.dialer.sdk.js')\r\n this._renderer2.appendChild(document.body, script)\r\n script.onload = () => {\r\n this.VonageDialer = window?.VonageDialer\r\n this.openVonageDialer()\r\n }\r\n } else {\r\n this.isFromCallClick = false\r\n }\r\n this.isFromApplyJob = false\r\n if (messageConsultantView?.isFromApplyJob) {\r\n this.isFromApplyJob = true\r\n }\r\n\r\n const IS_DICE = messageConsultantView?.isDice\r\n if (IS_DICE) {\r\n this.isDiceRecordFromBooleanSearch = true\r\n } else {\r\n this.isDiceRecordFromBooleanSearch = false\r\n }\r\n this.isCandidateRejected = false\r\n this.isMailPreview = false\r\n this.isCandidateShortListed = false\r\n this.isCandidateSubmitted = false\r\n this.isCandidateInterviewScheduled = false\r\n this.isCandidateWithdrawn = false\r\n this.showDisabledToolTip = false\r\n this.isFromJobSearch = false\r\n this.isFromCandidateTab = false\r\n this.consultantJobStatus = ConsultantJobAction.Matched\r\n\r\n this.matchedPercentage = 0 // re-assigning variable as this component never destroys\r\n this.showDisabledToolTip = false\r\n if (messageConsultantView?.matchedPercentage && messageConsultantView?.isFromJobSearch) {\r\n this.matchedPercentage = messageConsultantView?.matchedPercentage\r\n }\r\n if (messageConsultantView?.job && messageConsultantView?.isFromJobSearch) {\r\n this.isFromJobSearch = true\r\n this.setCandidateStatus(messageConsultantView?.job?.JobId)\r\n } else if (this._activatedRoute.snapshot.queryParams['jobId'] != null) {\r\n this.isFromJobSearch = true\r\n this.setCandidateStatus(Number(this._activatedRoute.snapshot.queryParams['jobId']))\r\n }\r\n if (messageConsultantView?.isFromJobSearch) {\r\n // TODO need to create a API for DICE candidate\r\n // this.candidateMatchingPercentage$ = this.consultantService.getCandidateMatchingPercentage(\r\n // messageConsultantView?.job?.JobId,\r\n // Common.activeConsultant.ConsultantId\r\n // )\r\n }\r\n if (messageConsultantView?.isFromCandidateTab) {\r\n this.isFromCandidateTab = true\r\n } else {\r\n this.isFromCandidateTab = false\r\n }\r\n this.matMenu = this.commonService.menuItems\r\n if (Common.activeConsultant != null && Common.activeConsultant != undefined) {\r\n this.consultant = Common.activeConsultant\r\n this.parseConsultant = Common.activeConsultant\r\n if (this.consultant.ResumeSourceID == CandidateDataSource.Dice) {\r\n this.isDiceCandidate = true\r\n this.consultantDataService\r\n .getDiceCandidateResume()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((resume) => {\r\n this.diceCandidateResume = resume\r\n })\r\n }\r\n this.imageSrc = this.consultant.ImageUrl != null ? Common.filePath + this.consultant.ImageUrl : null\r\n this.activeTab = 0\r\n this.consultantDataService.setDiceCandidateResume(null)\r\n this.profileCompletePercentage = 0\r\n this.consultantDataService.resetProfileSubject()\r\n this.consultantDataService.getProfileCompletePercentage().subscribe((percentage) => {\r\n this.profileCompletePercentage = percentage\r\n })\r\n }\r\n if (this.notesActions?.length === 0) this.getActionsOnUserRole()\r\n if (this.jobs?.length === 0) this.getFilteredJobs()\r\n })\r\n this.filePath = Common.filePath\r\n if (Common.activeConsultant != null) {\r\n this.iShowUpload = true\r\n this.disableTab = false\r\n }\r\n this.getDataForEditConsultant()\r\n this.commonService.interviewSchedule$.subscribe((data) => {\r\n if (data) {\r\n this.isCandidateInterviewScheduled = true\r\n this.isCandidateRejected = true\r\n this.isCandidateWithdrawn = true\r\n }\r\n })\r\n this.commonService.loading$.pipe(takeUntil(this.destroy$)).subscribe((loading) => {\r\n this.loading = loading\r\n })\r\n }\r\n\r\n setCandidateStatus(jobId) {\r\n this.loading = true\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((job: iJob) => {\r\n this.jobDetail = Common.activeJob = job\r\n this.jobService\r\n .GetJobConsultants(this.jobDetail?.JobId, this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.destroy$), retry(2))\r\n .subscribe((candidateList: iConsultantJob[]) => {\r\n this.loading = false\r\n this.jobCandidateList = candidateList\r\n let job = this.jobCandidateList.find(\r\n (candidate) => candidate.ConsultantID === Common.activeConsultant.ConsultantId\r\n )\r\n Common.activeConsultantJob = job\r\n this.consultantJob = job\r\n if (this.isDiceRecordFromBooleanSearch && (job === null || job === undefined)) {\r\n this.consultantDataService.setEditStateForCandidate(true)\r\n this._isDiceCandidateRejected(this._getDiceCandidateId(), this.jobDetail.JobId)\r\n } else {\r\n this.consultantDataService.setEditStateForCandidate(false)\r\n }\r\n switch (job?.ConsultantJobStatus) {\r\n case ConsultantJobStatus.Rejected: {\r\n this.isCandidateRejected = true\r\n this.showDisabledToolTip = true\r\n break\r\n }\r\n case ConsultantJobStatus.Shortlisted: {\r\n this.consultantJobStatus = ConsultantJobAction.Shortlist\r\n this.isCandidateShortListed = true\r\n break\r\n }\r\n case ConsultantJobStatus.Submitted:\r\n case ConsultantJobStatus.Preview: {\r\n this.consultantJobStatus = ConsultantJobAction.Submit\r\n this.isCandidateSubmitted = true\r\n break\r\n }\r\n case ConsultantJobStatus.Interview_Schedule: {\r\n this.consultantJobStatus = ConsultantJobAction.Submit\r\n this.isCandidateInterviewScheduled = true\r\n this.isCandidateRejected = true\r\n this.isCandidateWithdrawn = true\r\n break\r\n }\r\n case ConsultantJobStatus.Withdrawn: {\r\n this.consultantJobStatus = ConsultantJobAction.Submit\r\n this.isCandidateRejected = true\r\n this.isCandidateWithdrawn = true\r\n this.isCandidateInterviewScheduled = true\r\n break\r\n }\r\n case ConsultantJobStatus.Approval_Pending: {\r\n this.consultantJobStatus = ConsultantJobAction.Approval_Pending\r\n break\r\n }\r\n case ConsultantJobStatus.Approved: {\r\n this.consultantJobStatus = ConsultantJobStatus.Approved\r\n break\r\n }\r\n }\r\n })\r\n })\r\n }\r\n\r\n getDataForEditConsultant() {\r\n forkJoin({\r\n legalTypes: this.consultantService.getLookup('LegalTypeID'),\r\n jobTypeId: this.consultantService.getLookup('JobTypelD'),\r\n consultantTypes: this.consultantService.getLookup('ConsultantTypelD'),\r\n venders: this.consultantService.getVendors(),\r\n })\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n catchError((err) => EMPTY)\r\n )\r\n .subscribe(({ legalTypes, jobTypeId, consultantTypes, venders }) => {\r\n this.legalTypes = legalTypes as iKeyValue[]\r\n this.jobTypes = jobTypeId as iKeyValue[]\r\n this.consultantTypes = consultantTypes as ConsultantType[]\r\n this.allCompanies = venders as Company[]\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n Common.activeConsultantJob = null\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n const script = document.getElementById('vonage-cdn')\r\n if (script) {\r\n this._renderer2.removeChild(document.body, script)\r\n }\r\n }\r\n getActiveConsultant(event) {\r\n this.consultant = event\r\n }\r\n jobCompleted(event) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n setActiveTab(event) {\r\n this.activeTab = event\r\n }\r\n onTabChanged($event) {\r\n let clickedIndex = $event.index\r\n this.activeTab = clickedIndex\r\n this.consultant.Emailaddress = Common.activeConsultant.Emailaddress\r\n this.consultant.CellPhone = Common.activeConsultant.CellPhone\r\n }\r\n closeQuickpanel() {\r\n this.consultantsService.showConsultantSummaryOnLoad.next(false)\r\n this.consultantsService.activeConsultantId.next(0)\r\n this.consultantsService.consultantSaveAndExitButtonStatusSubject.next(false)\r\n this.consultantsService.consultantEditActiveTabSubject.next(0)\r\n\r\n this.layoutService.closeQuickpanel()\r\n // this.loadComponent.createComponent('')\r\n }\r\n onEditConsultant(tabId) {\r\n this.consultantService\r\n .getConsultant(this.consultant.ConsultantId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n Common.activeConsultantJob = null\r\n Common.activeConsultant = res\r\n this.closeQuickpanelforEdit()\r\n this.consultantsService.activeConsultantId.next(Common.activeConsultant.ConsultantId)\r\n this.consultantsService.consultantEditActiveTabSubject.next(tabId)\r\n this.consultantsService.consultantSaveAndExitButtonStatusSubject.next(true)\r\n this.router.navigate(['candidates/edit/' + Common.activeConsultant.ConsultantId])\r\n })\r\n }\r\n\r\n getActiveJob() {\r\n this.loading = true\r\n this.jobService\r\n .GetJobConsultants(this.jobDetail?.JobId, this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((candidateList: iConsultantJob[]) => {\r\n this.loading = false\r\n this.jobCandidateList = [...candidateList]\r\n let job = this.jobCandidateList.find(\r\n (candidate) => candidate.ConsultantID === Common.activeConsultant.ConsultantId\r\n )\r\n Common.activeConsultantJob = job\r\n })\r\n }\r\n\r\n closeQuickpanelforEdit() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n copyPhoneNumber() {\r\n var copyText = document.getElementById('phoneNo')\r\n var textArea = document.createElement('textarea')\r\n textArea.value = copyText.textContent\r\n document.body.appendChild(textArea)\r\n textArea.select()\r\n document.execCommand('Copy')\r\n textArea.remove()\r\n this.openSnackBarForPhone()\r\n }\r\n\r\n copyEmail() {\r\n var copyText = document.getElementById('email')\r\n var textArea = document.createElement('textarea')\r\n textArea.value = copyText.textContent\r\n document.body.appendChild(textArea)\r\n textArea.select()\r\n document.execCommand('Copy')\r\n textArea.remove()\r\n this.openSnackBarForEmail()\r\n }\r\n\r\n openSnackBarForPhone() {\r\n this._snackBar.open('Phone number copied successfully', 'Ok', { duration: 3000 })\r\n }\r\n\r\n openSnackBarForEmail() {\r\n this._snackBar.open('Email copied successfully', 'Ok', { duration: 3000 })\r\n }\r\n\r\n consultantViewOnly() {\r\n this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Consultant,\r\n consultantTypes: this.consultantTypes,\r\n legalTypes: this.legalTypes,\r\n jobTypes: this.jobTypes,\r\n allCompanies: this.allCompanies,\r\n isFormViewOnly: true,\r\n },\r\n })\r\n }\r\n\r\n editConsultant() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Consultant,\r\n consultantTypes: this.consultantTypes,\r\n legalTypes: this.legalTypes,\r\n jobTypes: this.jobTypes,\r\n allCompanies: this.allCompanies,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.Consultant) {\r\n this.saveProfile(data)\r\n }\r\n if (data?.newSkill) {\r\n this.saveNewSkills(data?.newSkill)\r\n }\r\n if (data?.newProject) {\r\n this.saveNewProjects(data?.newProject)\r\n }\r\n })\r\n }\r\n\r\n saveNewSkills(newSkills) {\r\n newSkills.forEach((skill) => {\r\n skill['ConsultantResumeID'] = Common.activeConsultant.ConsultantResumeID\r\n })\r\n\r\n const data = {\r\n ConsultantResumeID: Common.activeConsultant.ConsultantResumeID,\r\n RequiredSkills: newSkills,\r\n }\r\n this.consultantService\r\n .AddResumeSkill(data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {})\r\n }\r\n\r\n saveNewProjects(newProject) {\r\n newProject.forEach((project) => {\r\n project['ConsultantResumeID'] = Common.activeConsultant.ConsultantResumeID\r\n })\r\n const data = {\r\n consultantResumeID: Common.activeConsultant?.ConsultantResumeID,\r\n RequiredProject: newProject,\r\n }\r\n this.consultantService\r\n .AddProjects(data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {})\r\n }\r\n\r\n updateObjectStatus(emailData: Email, comments) {\r\n this.loading = true\r\n this.commonService\r\n .updateOjectStatus(\r\n Common.activeConsultantJob.ConsultantJobID,\r\n ObjectType.ConsultantJob,\r\n ConsultantJobStatuses.CON_JOB_SUBMITTED,\r\n comments,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((status) => {\r\n this.commonService\r\n .sendEmail(emailData.EmailItemID, 8, this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.loading = false\r\n this.consultantJobStatus = ConsultantJobAction.Submit\r\n this.showDisabledToolTip = true\r\n this.isCandidateSubmitted = true\r\n })\r\n })\r\n }\r\n\r\n saveProfile(data) {\r\n this.loading = true\r\n const formData = new FormData()\r\n formData.append('file', data.formData.ResumeFile)\r\n formData.append('firstName', data.formData.FirstName)\r\n formData.append('lastName', data.formData.LastName)\r\n formData.append('emailaddress', data.formData.Emailaddress)\r\n formData.append('phone', data.formData.CellPhone)\r\n formData.append('titleId', data.formData.JobTitleID > 0 ? data.formData.JobTitleID.toString() : '0')\r\n formData.append('resumeText', data.formData.resumeTxt)\r\n formData.append('resumeHTML', data.formData.resumeHTML)\r\n formData.append('experience', data.formData.Experience == '' ? null : data.formData.Experience)\r\n formData.append('userId', this.authService.userInfo.userID)\r\n formData.append('consultantId', Common.activeConsultant.ConsultantId.toString())\r\n\r\n this.modelConsultant = Common.activeConsultant\r\n this.modelConsultant.Location = data.newLocation ? data.newLocation : Common.activeConsultant.Location\r\n this.modelConsultant.Contact = {}\r\n this.modelConsultant.Contact.ContactID = Number(data.formData.ContactId)\r\n this.modelConsultant.Contact.FirstName = data.formData.FirstName\r\n this.modelConsultant.Contact.LastName = data.formData.LastName\r\n this.modelConsultant.Contact.MiddleName = data.formData.MiddleName\r\n this.modelConsultant.Contact.EmailAddress = data.formData.Emailaddress\r\n this.modelConsultant.Contact.CellPhone = data.formData.CellPhone\r\n this.modelConsultant.Contact.TitleId = data.formData.TitleId > 0 ? data.formData.TitleId : 0\r\n this.modelConsultant.Contact.IsActive = true\r\n this.modelConsultant.Experience = Number(data.formData.Experience)\r\n this.modelConsultant.LinkedinUrl = data.formData.LinkedinUrl\r\n this.modelConsultant.GitHubUrl = data.formData.GitHubUrl\r\n this.modelConsultant.YoutubeUrl = data.formData.YoutubeUrl\r\n this.modelConsultant.StackUrl = data.formData.StackUrl\r\n this.modelConsultant.CandidateTitle = data.formData.JobTitleName\r\n this.modelConsultant.UpdatedDate = new Date()\r\n this.modelConsultant.UpdatedBy = this.authService.userInfo.userID\r\n this.modelConsultant.ResumePath = data.formData.ResumePath\r\n\r\n if (!data?.isResumeChanged) {\r\n if (data.imgFrmData) this.saveProfilePicture(data.imgFrmData)\r\n if (data?.newLocation) this.addLocation(data.consultantLocation, data.newLocation, data)\r\n else {\r\n this.saveConsultantProfileData(this.modelConsultant, data)\r\n }\r\n } else {\r\n const formData = new FormData()\r\n formData.append('file', data.formData.ResumeFile)\r\n formData.append('consultantId', Common.activeConsultant.ConsultantId.toString())\r\n formData.append('userId', this.authService.userInfo.userID)\r\n this.consultantService\r\n .saveConsultantResume(formData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res: UploadResumeResponse) => {\r\n Common.activeConsultant.ConsultantResumeID = res?.ConsultantResumeID\r\n Common.activeConsultant.ResumeFile = res?.File\r\n Common.ResumeHTML = res?.ResumeHTML\r\n this.consultant = Common.activeConsultant\r\n\r\n if (data?.imgFrmData) this.saveProfilePicture(data.imgFrmData)\r\n if (data?.newLocation) this.addLocation(data?.consultantLocation, data.newLocation, data)\r\n else this.saveConsultantProfileData(this.modelConsultant, data)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n }\r\n\r\n saveProfilePicture(imgFrmData) {\r\n if (imgFrmData) {\r\n this.loading = true\r\n imgFrmData.append('contactId', this.consultant.ContactId?.toString())\r\n imgFrmData.append('consultantId', this.consultant.ConsultantId?.toString())\r\n\r\n this.consultantService\r\n .uploadProfilePicture(imgFrmData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res instanceof HttpResponse) {\r\n var fileId = res.body['FileId']\r\n var dbPath = res.body['Path']\r\n if (fileId) {\r\n this.imageSrc = this.filePath + dbPath\r\n this.consultant.ImageUrl = this.filePath + dbPath\r\n Common.activeConsultant.ImageUrl = dbPath\r\n }\r\n this.consultantDataService.triggerPercentageCalculation()\r\n }\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n }\r\n\r\n addLocation(consultantLocation, newLocation, data) {\r\n try {\r\n this.loading = true\r\n if (\r\n JSON.stringify(consultantLocation) === JSON.stringify(newLocation) ||\r\n newLocation.StreetAddress == null\r\n ) {\r\n this.consultantService\r\n .saveConsultantProfile(this.modelConsultant)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this._handleSaveProfile(res, data)\r\n })\r\n this.loading = false\r\n return\r\n } else {\r\n let location = newLocation\r\n if (location == null) {\r\n location = consultantLocation\r\n }\r\n\r\n location.ObjectId = this.consultant?.ContactId ? this.consultant?.ContactId : null\r\n location.ObjectTypeId = 8\r\n location.LocationTypeID = this.consultant?.Location?.LocationTypeID\r\n ? this.consultant?.Location?.LocationTypeID\r\n : 149\r\n this.companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res: iLocation) => {\r\n if (res) {\r\n this.loading = false\r\n Common.activeConsultant.Location = res\r\n this.consultant.Location = res\r\n this.newLocation = res\r\n this.modelConsultant.Location = res\r\n this.modelConsultant.LocationID = res.LocationID\r\n this.consultantService\r\n .saveConsultantProfile(this.modelConsultant)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this._handleSaveProfile(res, data)\r\n })\r\n this.loading = false\r\n return\r\n } else {\r\n this.loading = false\r\n return false\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n return false\r\n }\r\n )\r\n return false\r\n }\r\n } catch (ex) {\r\n this.loading = false\r\n this.notifyService.showError('Error While saving', 'Candidate Profile')\r\n return false\r\n }\r\n }\r\n\r\n private _handleSaveProfile(res, data) {\r\n this.consultantService\r\n .GetConsultantFromEmail(data.formData.Emailaddress)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((candidates: any) => {\r\n if (candidates && candidates.ContactId != Common.activeConsultant.ContactId) {\r\n this.loading = false\r\n this.notifyService.showError('Email Already Exist!', 'Candidate Email')\r\n } else if (res != false && res.ContactId != 0) {\r\n Common.activeConsultant = res\r\n this.consultant = res\r\n Common.activeConsultant.ConsultantResumeID = res.ConsultantResumeID\r\n this.loading = false\r\n this.saveOtherDetails(data)\r\n this.consultantDataService.triggerPercentageCalculation()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(\r\n 'Error while saving data. Please try again later.',\r\n 'Candidate Profile'\r\n )\r\n }\r\n })\r\n }\r\n\r\n jobSearchCandidateAction(action) {\r\n let menu: iMenuItem\r\n this.selectedAction = action\r\n\r\n this.currentMenuItem = menu = this.matMenu.find((item) => item.MenuName === action)\r\n let dialogRef\r\n\r\n if (\r\n (menu.MenuCode == Common.enumMenuCode.CON_JOB_SUBMITTED ||\r\n menu.MenuCode == Common.enumMenuCode.CON_JOB_PREVIEW) &&\r\n Common.activeJob.MaxSubmissionCount !== 0\r\n ) {\r\n const candidateSubmitCount = this.jobCandidateList.filter(\r\n (candidate) => candidate.ConsultantJobStatus == ConsultantJobStatus.Submitted\r\n )?.length\r\n if (Common.activeJob?.MaxSubmissionCount <= candidateSubmitCount) {\r\n this.notifyService.showWarning('Max candidate submit reached.', 'Job Candidate')\r\n return\r\n }\r\n }\r\n if (\r\n menu.MenuCode == Common.enumMenuCode.CON_JOB_INTEW_SCHED ||\r\n menu.MenuCode == Common.enumMenuCode.CON_JOB_INTVW_ANOTHER\r\n ) {\r\n dialogRef = this.commonMatDialogService.open({\r\n component: InterviewDialogComponent,\r\n data: { width: '800px', consultantjob: this.jobDetail, menu: menu },\r\n })\r\n } else {\r\n if (\r\n menu.MenuCode == Common.enumMenuCode.CON_JOB_PREVIEW ||\r\n menu.MenuCode == Common.enumMenuCode.CON_JOB_SUBMITTED\r\n ) {\r\n dialogRef = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Candidate_Mail_Text_Edit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n },\r\n })\r\n } else if (menu.MenuCode == Common.enumMenuCode.CON_JOB_APRVAL_PENDG) {\r\n dialogRef = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobEdit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n isDialogForStatusChange: true,\r\n changedStatus: this.currentMenuItem.MenuCode,\r\n },\r\n })\r\n } else {\r\n dialogRef = this.commonMatDialogService.open({\r\n component: ActionDialogComponent,\r\n data: { consultantjob: this.jobDetail, menu: menu },\r\n })\r\n }\r\n }\r\n dialogRef.afterClosed().subscribe(async (data) => {\r\n if (data != null && data.formName !== DialogActions.CLOSE) {\r\n this.selectedReason = data?.selectedReason\r\n this.selectedReasonId = Number(data?.selectedReasonId)\r\n if (\r\n data?.data == ConsultantJobStatus.Interview_Schedule &&\r\n action == ConsultantJobAction.Interview_Schedule\r\n ) {\r\n this.setCandidateStatus(Common.activeJob.JobId)\r\n return\r\n } else if (action == ConsultantJobAction.Preview) {\r\n this.loading = true\r\n if (data?.companyVendorID) {\r\n this.selectedCompanyVendorID = data?.companyVendorID\r\n }\r\n if (data?.vendorContactId) {\r\n this.selectedVendorContactID = data?.vendorContactId\r\n }\r\n this.updateConsultantJob(data?.formData)\r\n if (data?.isSubmitAction) {\r\n const submitMenu = this.matMenu.find(\r\n (item) => item.MenuCode === Common.enumMenuCode.CON_JOB_SUBMITTED\r\n )\r\n this.updateProcessWorkFlow(submitMenu)\r\n } else {\r\n this.consultantService\r\n .getConsultantJobSkill(\r\n Common.activeConsultantJob.ConsultantID,\r\n Common.activeConsultantJob.JobID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res != null) {\r\n this.commonService.saveCanvasImage(res).then(async (imageData) => {\r\n if (imageData['FileId'] != null || imageData['FileId'] != undefined) {\r\n this.loading = false\r\n await this.updateProcessWorkFlow()\r\n this.commonService\r\n .showMailPreview()\r\n .then((previewDialogAction: PreviewDialogCloseAction) => {\r\n switch (previewDialogAction?.action) {\r\n case PreviewDialogAction.Send: {\r\n this.updateObjectStatus(\r\n previewDialogAction?.emailData,\r\n data?.selectedReason\r\n )\r\n break\r\n }\r\n case PreviewDialogAction.Submit: {\r\n const submitMenu = this.matMenu.find(\r\n (item) =>\r\n item.MenuCode ===\r\n Common.enumMenuCode.CON_JOB_SUBMITTED\r\n )\r\n this.updateProcessWorkFlow(submitMenu)\r\n break\r\n }\r\n case PreviewDialogAction.Modify: {\r\n Common.activeConsultantJob.SummaryNote =\r\n data?.selectedReason\r\n this.jobSearchCandidateAction(\r\n ConsultantJobAction.Preview\r\n )\r\n break\r\n }\r\n case PreviewDialogAction.Cancel: {\r\n }\r\n }\r\n return\r\n })\r\n .catch((err) => {\r\n this.loading = false\r\n return\r\n })\r\n }\r\n })\r\n } else {\r\n this.loading = false\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n return\r\n }\r\n } else if (action == ConsultantJobAction.Shortlist) {\r\n //Leap-82, Leap-83, Leap-84\r\n if (\r\n this.consultant.ResumeSourceID == CandidateDataSource.Dice ||\r\n this.isDiceRecordFromBooleanSearch\r\n ) {\r\n this.isShortListed = true\r\n this.pullDiceResume()\r\n this.consultantDataService\r\n .getDiceCandidateResume()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((resume) => {\r\n this.diceCandidateResume = resume\r\n })\r\n }\r\n this.createConsultantJob(true)\r\n } else if (action == ConsultantJobAction.Submit) {\r\n this.consultantJobStatus = ConsultantJobAction.Submit\r\n this.showDisabledToolTip = true\r\n this.isCandidateSubmitted = true\r\n this.updateProcessWorkFlow()\r\n } else if (action === ConsultantJobAction.Approval_Pending) {\r\n this.selectedReason = data?.selectedReason\r\n let accountingManagers: iAssignedUsers[] = (await this.getAccountingManagerByCompanyId(\r\n Common.activeConsultantJob.ClientCompanyId\r\n )) as iAssignedUsers[]\r\n if (accountingManagers.length === 0) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `No Account Manager or Deputy manager assigned to ${Common?.activeJob?.CompanyName}.`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Assign',\r\n IsDangerButton: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isAssigned) => {\r\n if (isAssigned) {\r\n this.openAssignUserDialog()\r\n } else {\r\n this.setCandidateStatus(Common.activeJob.JobId)\r\n }\r\n })\r\n } else if (accountingManagers?.filter((manager) => manager?.IsActive)?.length === 0) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Account Manager is inactive do you want to make it active.`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Ok',\r\n IsDangerButton: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isConfirm) => {\r\n if (isConfirm) {\r\n this.activateAccountManager(accountingManagers)\r\n }\r\n })\r\n } else {\r\n this.updateConsultantJob(data?.formData)\r\n this.updateProcessWorkFlow()\r\n }\r\n } else if (action === ConsultantJobAction.Approve) {\r\n this.updateProcessWorkFlow()\r\n } else if (action === ConsultantJobAction.Reject) {\r\n const IS_DICE_CANDIDATE = this._activatedRoute.snapshot.queryParamMap.get('isDice')\r\n if (IS_DICE_CANDIDATE) {\r\n const DICE_CANDIDATE_ID = this._getDiceCandidateId()\r\n this._rejectDiceCandidate(DICE_CANDIDATE_ID, this.jobDetail?.JobId)\r\n } else {\r\n if (Common.activeConsultantJob === undefined || Common.activeConsultantJob === null) {\r\n this.createConsultantJob(true)\r\n } else {\r\n this.updateProcessWorkFlow()\r\n }\r\n }\r\n }\r\n // if (Common.activeConsultantJob) {\r\n // this.updateProcessWorkFlow(Number(data?.selectedReasonId), data?.selectedReason, menu, action)\r\n // } else {\r\n // this.createConsultantJob(true, Number(data?.selectedReasonId), data?.selectedReason, menu, action)\r\n // }\r\n }\r\n })\r\n }\r\n async openAssignUserDialog() {\r\n await this.getCompanyById(Common.activeConsultantJob.ClientCompanyId)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Users,\r\n isFromJobStatus: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Users) {\r\n this.addAssignUser(data.user_list, data.company_list)\r\n } else if (data.formName === CompanyDialogTypes.No_Account_Managers) {\r\n this.addAccountingManager()\r\n } else {\r\n this.setCandidateStatus(Common.activeJob.JobId)\r\n }\r\n })\r\n }\r\n\r\n get3iStaffingCompany() {\r\n return new Promise((resolve, reject) => {\r\n const filter = {\r\n Company: '',\r\n IndustryID: '',\r\n CompanyTypeId: '76',\r\n StatusID: '',\r\n PageNumber: 1,\r\n PageSize: 10,\r\n UserId: this.authService.userInfo.userID,\r\n }\r\n this.companyService\r\n .getCompanyList(filter)\r\n .pipe(first())\r\n .subscribe({\r\n next: (companyList) => {\r\n resolve(companyList[0])\r\n },\r\n error: (error) => {\r\n reject()\r\n },\r\n })\r\n })\r\n }\r\n\r\n async addAccountingManager() {\r\n const currentActiveCompany = { ...CommonData.activeCompany }\r\n const parentCompany: CompanyList = await this.get3iStaffingCompany()\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Contact,\r\n formData: null,\r\n CompanyId: parentCompany.CompanyID,\r\n isFormViewOnly: false,\r\n isManualAdd: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Contact) {\r\n if (data.formData.isLocation) {\r\n this.addAccountingManagerLocation(data.formData, parentCompany.CompanyID, currentActiveCompany)\r\n } else {\r\n this.updateContact(data.formData, parentCompany.CompanyID, currentActiveCompany)\r\n }\r\n } else {\r\n this.setCandidateStatus(Common.activeJob.JobId)\r\n this._setCommonActiveCompany(currentActiveCompany)\r\n }\r\n })\r\n }\r\n\r\n addAccountingManagerLocation(contactData, companyId, currentActiveCompany) {\r\n const location = contactData.Location\r\n location.ObjectId = companyId\r\n this.companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = null\r\n this.updateContact(contactData, companyId, currentActiveCompany, res.LocationID)\r\n }\r\n })\r\n }\r\n\r\n updateContact(contactData, companyId, currentActiveCompany, locationID?) {\r\n const contact = {\r\n FirstName: contactData.FirstName,\r\n LastName: contactData.LastName,\r\n WorkPhone: contactData.WorkPhone,\r\n EmailAddress: contactData.Email,\r\n Email: contactData.Email,\r\n LinkedinUrl: contactData.LinkedinUrl,\r\n ManagementLevelID: contactData.ManagementLevelID ? contactData.ManagementLevelID : null,\r\n ManagementLevel: contactData.ManagementLevel,\r\n DepartmentID: contactData.DepartmentID ? contactData.DepartmentID : null,\r\n DepartmentName: contactData.DepartmentName,\r\n ParentID: contactData.ParentID,\r\n TitleID: contactData.TitleID ? contactData.TitleID : null,\r\n RoleID: contactData.selectedRoleId ? contactData.selectedRoleId : null,\r\n TitleName: contactData.Title,\r\n CompanyId: companyId,\r\n LocationID: locationID ? locationID : contactData?.Location ? contactData?.Location.LocationID : null,\r\n Location: !contactData?.isLocationDeleted ? contactData?.Location : null,\r\n ContactID: contactData.ContactID,\r\n CompanyContactID: contactData.CompanyContactID,\r\n IsActive: true,\r\n ReportingManager: contactData.ReportingManager,\r\n StateCode: contactData.StateCode,\r\n Title: contactData.Title,\r\n DoB: contactData?.DoB ? contactData.DoB : null,\r\n Sex: contactData?.Sex ? contactData.Sex : 0,\r\n CellPhone: contactData?.CellPhone ? contactData.CellPhone : '',\r\n FilePath: contactData?.FilePath ? contactData.FilePath : null,\r\n CreatedBy: contactData?.CreatedBy ? contactData.CreatedBy : 0,\r\n CreatedDate: contactData?.CreatedDate ? contactData.CreatedDate : new Date(),\r\n Address: !contactData?.isLocationDeleted ? contactData?.Location?.Address : '',\r\n Address1: !contactData?.isLocationDeleted ? contactData?.Location?.Address1 : '',\r\n City: !contactData?.isLocationDeleted ? contactData?.Location?.City : '',\r\n StateID: !contactData?.isLocationDeleted ? contactData?.Location?.StateID : 0,\r\n CountryID: !contactData?.isLocationDeleted ? contactData?.Location?.CountryID : 0,\r\n ZipCode: !contactData?.isLocationDeleted ? contactData?.Location?.ZipCode : 0,\r\n UpdatedBy: contactData?.UpdatedBy ? contactData.UpdatedBy : 0,\r\n UpdatedDate: new Date(),\r\n PersonalEmailAddress: contactData?.PersonalEmailAddress ? contactData?.PersonalEmailAddress : null,\r\n }\r\n this.companyService\r\n .AddContact(contact)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((response) => {\r\n if (response?.Contact) {\r\n this.notifyService.showSuccess(response?.Message, 'Company Contact')\r\n } else {\r\n this.notifyService.showError(response?.Message, 'Company Contact')\r\n }\r\n this.setCandidateStatus(Common.activeJob.JobId)\r\n this._setCommonActiveCompany(currentActiveCompany)\r\n })\r\n }\r\n\r\n private _setCommonActiveCompany(company) {\r\n CommonData.activeCompany = { ...company }\r\n }\r\n\r\n async activateAccountManager(usersToMakeActive: iAssignedUsers[]) {\r\n await this.getCompanyById(Common.activeConsultantJob.ClientCompanyId)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.User_Active_Action,\r\n usersToMakeActive: usersToMakeActive,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.User_Active_Action) {\r\n const userToUpdate = usersToMakeActive.find((user) => user.UserAssignmentId == data.userAssignmentId)\r\n this.updateAccountingManager(userToUpdate)\r\n }\r\n })\r\n }\r\n\r\n addAssignUser(user_list, company_list) {\r\n const userAssignmentList = []\r\n for (var userIndex in user_list) {\r\n if (CommonData?.activeCompany?.CompanyTypeID === CompanyType.Client) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: CommonData?.activeCompany.CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n userAssignmentList.push(userAssignment)\r\n } else if (CommonData?.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany) {\r\n for (var clientIndex in company_list) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: company_list[clientIndex].CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n userAssignmentList.push(userAssignment)\r\n }\r\n }\r\n }\r\n\r\n this.companyService\r\n .assignUsers(userAssignmentList)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res === HttpStatusCode.Created) {\r\n this.notifyService.showSuccess('User assigned successfully!', 'User Assignment')\r\n this.updateProcessWorkFlow()\r\n this.setCandidateStatus(Common.activeJob.JobId)\r\n } else {\r\n this.notifyService.showError('Failed to assign users!', 'User Assignment')\r\n }\r\n })\r\n }\r\n\r\n getCompanyById(companyId) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n this.companyService\r\n .GetCompanyByCompanyId(companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (company) => {\r\n CommonData.activeCompany = company\r\n this.loading = false\r\n resolve(true)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n reject(false)\r\n },\r\n })\r\n })\r\n }\r\n\r\n getAccountingManagerByCompanyId(companyId) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n this.companyService\r\n .getAccountManagersByCompanyId(companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (users: iAssignedUsers[]) => {\r\n this.loading = false\r\n if (users.length === 0) {\r\n resolve([])\r\n }\r\n resolve(users)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n reject()\r\n },\r\n })\r\n })\r\n }\r\n\r\n updateAccountingManager(managerToUpdate) {\r\n const user: iAssignedUsers = {\r\n UserAssignmentId: managerToUpdate?.UserAssignmentId,\r\n CompanyId: Common?.activeConsultantJob?.ClientCompanyId,\r\n UserId: managerToUpdate.UserId,\r\n CreatedBy: this.authService?.userInfo?.userID,\r\n CreatedDate: new Date(),\r\n ActiveDate: new Date(),\r\n InActiveDate: managerToUpdate?.InActiveDate,\r\n IsActive: true,\r\n UpdatedBy: this.authService?.userInfo?.userID,\r\n UpdatedDate: new Date(),\r\n }\r\n this.loading = true\r\n this.companyService\r\n .editUser(user)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.loading = false\r\n if (res == HttpStatusCode.Ok) {\r\n this.updateProcessWorkFlow()\r\n this.notifyService.showSuccess('Updated successfully!', 'User Assignment')\r\n } else {\r\n this.notifyService.showError('Failed to update!', 'User Assignment')\r\n }\r\n },\r\n (error) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n pullDiceResume() {\r\n this.isDiceResumeLoading = true\r\n this.searchPara = {}\r\n this.searchPara.SourceID = this.consultant.SourceID\r\n this.searchPara.SourceTypeID = Number(this.consultant.SourceTypeID)\r\n if (this.isDiceRecordFromBooleanSearch) {\r\n this.searchPara.SourceID = this._getDiceCandidateId()\r\n this.searchPara.SourceTypeID = CandidateDataSource.Dice\r\n }\r\n this.consultantService\r\n .ConsultantDiceSearch(this.searchPara)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (resultCandidateslist) => {\r\n this.isDiceResumeLoading = false\r\n if (\r\n resultCandidateslist &&\r\n resultCandidateslist[0] != null &&\r\n resultCandidateslist[0]?.Resumes[0]?.ResumeText\r\n ) {\r\n if (resultCandidateslist[0].Contact?.EmailAddress != '')\r\n Common.activeConsultant.Emailaddress = resultCandidateslist[0].Contact?.EmailAddress\r\n if (resultCandidateslist[0].Contact?.CellPhone != '')\r\n Common.activeConsultant.CellPhone = resultCandidateslist[0].Contact?.CellPhone\r\n Common.activeConsultant.ResumePath = resultCandidateslist[0].FileInfo?.Path\r\n this.consultant.ResumePath = resultCandidateslist[0].FileInfo?.Path\r\n this.consultantDataService.setDiceCandidateResume(resultCandidateslist[0]?.Resumes[0])\r\n }\r\n },\r\n (error) => {\r\n this.isDiceResumeLoading = false\r\n }\r\n )\r\n }\r\n\r\n isValidConsultantJobData(): boolean {\r\n if (Common.activeConsultantJob.ConsultantTypeID <= 0) {\r\n return false\r\n }\r\n\r\n if (Common.activeConsultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2C) {\r\n if (Common.activeConsultantJob.VendorContactID <= 0) {\r\n return false\r\n }\r\n if (Common.activeConsultantJob.VendorName == '') {\r\n return false\r\n }\r\n if (Common.activeConsultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.jobDetail.JobTypeID == 10 || this.jobDetail.JobTypeID == 11) {\r\n if (Common.activeConsultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (Common.activeConsultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2O) {\r\n if (Common.activeConsultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.jobDetail.JobTypeID == 10 || this.jobDetail.JobTypeID == 11) {\r\n if (Common.activeConsultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (Common.activeConsultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_1099) {\r\n if (Common.activeConsultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.jobDetail.JobTypeID == 10 || this.jobDetail.JobTypeID == 11) {\r\n if (Common.activeConsultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (Common.activeConsultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_W2) {\r\n if (this.jobDetail.JobTypeID == 11 || this.jobDetail.JobTypeID == 12) {\r\n if (Common.activeConsultantJob.Salary <= 0) {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n if (Common.activeConsultantJob.RecruiterId <= 0) {\r\n this.notifyService.showError('Recruiter is required', 'Consultant Job')\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n createConsultantJob(isUpdateWorkflow = false) {\r\n const modelConsultantJob: iConsultantJob = {\r\n JobID: this.jobDetail.JobId,\r\n ConsultantJobID: Common.activeConsultantJob?.ConsultantJobID,\r\n PayRate: Common?.activeConsultantJob?.PayRate ? Common?.activeConsultantJob?.PayRate : 0,\r\n BillRate: Common?.activeConsultantJob?.BillRate ? Common?.activeConsultantJob?.BillRate : 0,\r\n Salary: Common?.activeConsultantJob?.Salary ? Common?.activeConsultantJob?.Salary : 0,\r\n DateApplied: new Date(),\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n CompanyVendorID: Common?.activeConsultantJob?.CompanyVendorID\r\n ? Common?.activeConsultantJob?.CompanyVendorID\r\n : null,\r\n VendorContactID: Common?.activeConsultantJob?.VendorContactID\r\n ? Common?.activeConsultantJob?.VendorContactID\r\n : null,\r\n ConsultantTypeID: Common?.activeConsultantJob?.ConsultantTypeID\r\n ? Common?.activeConsultantJob?.ConsultantTypeID\r\n : null,\r\n RecruiterId: this.authService.userInfo.userID,\r\n ConsultantID: Common?.activeConsultant?.ConsultantId ? Common?.activeConsultant?.ConsultantId : 0,\r\n }\r\n\r\n this.loading = true\r\n const IS_DICE_CANDIDATE = this._activatedRoute.snapshot.queryParamMap.get('isDice')\r\n if (IS_DICE_CANDIDATE) {\r\n const DICE_CANDIDATE_ID = this._getDiceCandidateId()\r\n modelConsultantJob.DiceId = DICE_CANDIDATE_ID\r\n this.consultantService\r\n .SaveDiceConsultantJob(modelConsultantJob)\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n tap(() => this._getConsultantByDiceId(DICE_CANDIDATE_ID))\r\n )\r\n .subscribe({\r\n next: (result) => {\r\n this.loading = false\r\n if (result) {\r\n Common.activeConsultantJob = result\r\n /// change\r\n const CONSULTANT_ID = result?.ConsultantID\r\n this.router.navigate([], {\r\n relativeTo: this._activatedRoute,\r\n queryParams: {\r\n consultantId: CONSULTANT_ID,\r\n isDice: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n if (isUpdateWorkflow) this.updateProcessWorkFlow()\r\n }\r\n if (IS_DICE_CANDIDATE) this.booleanSearchService.getDiceCandidateRecords()\r\n },\r\n error: (e) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while saving data', 'Consultant Job')\r\n },\r\n })\r\n } else {\r\n this.consultantService\r\n .saveConsultantJob(modelConsultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n this.loading = false\r\n if (result) {\r\n Common.activeConsultantJob = result\r\n if (isUpdateWorkflow) this.updateProcessWorkFlow()\r\n }\r\n this.closeQuickpanel()\r\n },\r\n error: (e) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while saving data', 'Consultant Job')\r\n },\r\n })\r\n }\r\n }\r\n\r\n private _getDiceCandidateId() {\r\n return this._activatedRoute.snapshot.queryParamMap.get('consultantId')\r\n }\r\n\r\n updateConsultantJob(data, iSFromSubmit?, action?) {\r\n const modelConsultantJob: iConsultantJob = Common.activeConsultantJob\r\n modelConsultantJob.PayRate = Number(data?.PayRate == '' ? 0 : data?.PayRate)\r\n modelConsultantJob.BillRate = Number(data?.BillRate == '' ? 0 : data?.BillRate)\r\n modelConsultantJob.Salary = Number(data?.Salary == '' ? 0 : data?.Salary)\r\n modelConsultantJob.CreatedDate = new Date()\r\n modelConsultantJob.CreatedBy = this.authService.userInfo.userID\r\n modelConsultantJob.IsActive = true\r\n modelConsultantJob.CompanyVendorID =\r\n this.selectedCompanyVendorID == null || this.selectedCompanyVendorID == undefined\r\n ? modelConsultantJob.CompanyVendorID\r\n : this.selectedCompanyVendorID\r\n modelConsultantJob.VendorContactID =\r\n this.selectedVendorContactID == null || this.selectedVendorContactID == undefined\r\n ? modelConsultantJob.VendorContactID\r\n : this.selectedVendorContactID\r\n modelConsultantJob.ConsultantTypeID = Number(data?.ConsultantTypeID == '' ? 0 : data?.ConsultantTypeID)\r\n modelConsultantJob.RecruiterId = Number(data?.RecruiterId == '' ? 0 : data?.RecruiterId)\r\n\r\n this.consultantService\r\n .saveConsultantJob(modelConsultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n if (iSFromSubmit) this.jobSearchCandidateAction(action)\r\n this.notifyService.showSuccess('Successfully Saved.', 'Candidate Job Details')\r\n },\r\n error: (error) => {\r\n this.notifyService.showError('Error while saving', 'Candidate Job Details')\r\n },\r\n })\r\n }\r\n\r\n updateProcessWorkFlow(menu?: iMenuItem) {\r\n return new Promise((resolve) => {\r\n var job: iConsultantJob = Common.activeConsultantJob\r\n var dbResult: iDbResult[]\r\n var nextStatusID\r\n var comment\r\n let menuItem\r\n if (menu != undefined || menu != null) {\r\n menuItem = menu\r\n } else {\r\n menuItem = this.currentMenuItem\r\n }\r\n if (this.selectedReasonId > 0)\r\n comment = '#ReasonID:' + this.selectedReasonId?.toString() + '# ' + this.selectedReason?.toString()\r\n else if (this.selectedReason != '') {\r\n comment = this.selectedReason\r\n } else if (\r\n this.selectedReason === '' &&\r\n this.isThePreviousCommentFromMenu(Common?.activeConsultantJob?.SummaryNote)\r\n ) {\r\n comment = this.currentMenuItem.MenuName\r\n } else {\r\n comment = Common?.activeConsultantJob?.SummaryNote\r\n }\r\n this.loading = true\r\n\r\n forkJoin({\r\n dBresult: this.commonService.processWorkFlow(\r\n job.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n menuItem.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n ),\r\n submitStatus: this.jobService.changeJobStatusBySubmittedCount(\r\n Common.activeJob.JobId,\r\n this.authService.userInfo.userID\r\n ),\r\n })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n dbResult = result?.dBresult as iDbResult[]\r\n dbResult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n this.loading = false\r\n this.commonService.setActiveObject(\r\n job.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(menuItem)\r\n this.setCandidateStatus(job?.JobID)\r\n resolve(true)\r\n },\r\n })\r\n })\r\n }\r\n\r\n saveOtherDetails(data) {\r\n this.loading = true\r\n this.modelConsultant.ConsultantTypeId = data.formData.ConsultantTypeId.toString()\r\n this.modelConsultant.Relocate = data.formData.Relocate\r\n this.modelConsultant.ExpectedPayRate = Number(data.formData.ExpectedPayRate)\r\n this.modelConsultant.ExpectedSalary = Number(data.formData.ExpectedSalary)\r\n this.modelConsultant.Comment = data.formData.Comment\r\n // this.modelConsultant.JobTypeId = data?.formData?.JobTypeId?.join(', ')\r\n const jobTypeId = data?.formData?.JobTypeId\r\n const jobTypeIdArray = Array.isArray(jobTypeId) ? jobTypeId : [jobTypeId]\r\n this.modelConsultant.JobTypeId = jobTypeIdArray.join(',')\r\n this.modelConsultant.CreatedBy = data.formData.CreatedBy\r\n this.modelConsultant.InterviewInPipeline = data.formData.InterviewInPipeline\r\n this.modelConsultant.LegalTypeId = data.formData.LegalTypeId\r\n this.modelConsultant.CurrentLocation = data.formData.CurrentLocation\r\n this.modelConsultant.VendorCompany = data.formData?.VendorCompany\r\n ? data.formData?.VendorCompany\r\n : Common.activeConsultant?.VendorCompany\r\n this.modelConsultant.CompanyVendorID = data?.formData?.CompanyVendorID\r\n ? data?.formData?.CompanyVendorID\r\n : Common.activeConsultant?.CompanyVendorID\r\n this.modelConsultant.VendorContact = data?.formData?.VendorContact\r\n ? data?.formData?.VendorContact\r\n : Common.activeConsultant?.VendorContact\r\n this.modelConsultant.VendorContactID = data.formData?.VendorContactID\r\n ? data?.formData?.VendorContactID\r\n : Common.activeConsultant?.VendorContactID\r\n this.modelConsultant.RecruiterId = data.formData?.RecruiterId\r\n ? data?.formData?.RecruiterId\r\n : Common.activeConsultant?.RecruiterId\r\n this.modelConsultant.ResumeSourceID = data.formData?.ResumeSourceID\r\n ? data?.formData?.ResumeSourceID\r\n : Common.activeConsultant?.ResumeSourceID\r\n this.modelConsultant.ResumeDate = data.formData?.ResumeDate\r\n ? data?.formData?.ResumeDate\r\n : Common.activeConsultant?.ResumeDate\r\n\r\n this.consultantService\r\n .saveConsultantDetails(this.modelConsultant)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.getConsultant(Common.activeConsultant.ConsultantId)\r\n\r\n if (Common.activeConsultantJob != null) {\r\n if (Common.activeConsultantJob.ConsultantJobID >= 0) {\r\n this.saveConsultantJob(data)\r\n }\r\n } else {\r\n this.notifyService.showSuccess('Successfully saved!', 'Candidate Profile')\r\n }\r\n },\r\n error: (e) => {\r\n this.loading = false\r\n this.notifyService.showError('Error While saving', 'Candidate Profile')\r\n },\r\n })\r\n }\r\n\r\n saveConsultantJob(data) {\r\n this.modelConsultantJob = {}\r\n this.modelConsultantJob.JobID = Common.activeConsultantJob?.JobID\r\n this.modelConsultantJob.ConsultantID = Common.activeConsultant.ConsultantId\r\n this.modelConsultantJob.PayRate = data.formData.ExpectedPayRate\r\n this.modelConsultantJob.Salary = data.formData.ExpectedSalary\r\n this.modelConsultantJob.DateApplied = new Date()\r\n this.modelConsultantJob.CreatedDate = new Date()\r\n this.modelConsultantJob.CreatedBy = this.authService.userInfo.userID\r\n this.modelConsultantJob.IsActive = true\r\n this.modelConsultantJob.CompanyVendorID = data.formData.CompanyVendorID\r\n this.modelConsultantJob.VendorContactID = data.formData.VendorContactID\r\n this.modelConsultantJob.VendorName = data.formData.VendorName\r\n this.modelConsultantJob.VendorContactName = data.formData.VendorContactName\r\n this.modelConsultantJob.ConsultantTypeID = data?.formData?.ConsultantTypeId\r\n this.consultantService\r\n .saveConsultantJob(this.modelConsultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n Common.activeConsultantJob = res\r\n },\r\n })\r\n }\r\n\r\n getConsultant(consultantId) {\r\n this.consultantService\r\n .getConsultant(consultantId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n Common.activeConsultant = res\r\n this.consultant = res\r\n Common.activeConsultant.ResumeProjects = this.parseConsultant.ResumeProjects\r\n Common.activeConsultant.ResumeSkills = this.parseConsultant.ResumeSkills\r\n Common.activeConsultant.Education = this.parseConsultant.Education\r\n Common.activeConsultant.ResumeKeywords = this.parseConsultant.ResumeKeywords\r\n Common.activeConsultant.ConsultantResumeID = this.parseConsultant.ConsultantResumeID\r\n Common.activeConsultant.ResumeFile = this.parseConsultant.ResumeFile\r\n }\r\n })\r\n }\r\n\r\n editJob(iSFromSubmit?, action?) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobEdit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n isDialogForStatusChange: iSFromSubmit ? true : false,\r\n changedStatus: this.currentMenuItem.MenuCode,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.JobEdit) {\r\n if (data?.companyVendorID) {\r\n this.selectedCompanyVendorID = data?.companyVendorID\r\n }\r\n if (data?.vendorContactId) {\r\n this.selectedVendorContactID = data?.vendorContactId\r\n }\r\n if (action === ConsultantJobAction.Preview) {\r\n iSFromSubmit = false\r\n }\r\n this.updateConsultantJob(data.formData, iSFromSubmit, action)\r\n }\r\n })\r\n }\r\n\r\n saveConsultantProfileData(data, formData) {\r\n this.consultantService\r\n .saveConsultantProfile(data)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n this._handleSaveProfile(res, formData)\r\n },\r\n (error) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n openVonageDialer() {\r\n const searchContactables = (query, callback) => {\r\n callback([\r\n {\r\n // provider: 'acme', // for showing image svg\r\n id: '123',\r\n label: `${Common?.activeConsultant?.FirstName} ${Common?.activeConsultant?.LastName}`,\r\n type: 'contact',\r\n typeLabel: 'Contact',\r\n phoneNumber: `${Common?.activeConsultant?.CellPhone}`,\r\n phoneType: 'Mobile',\r\n },\r\n ])\r\n }\r\n this.VonageDialer.init(\r\n {\r\n features: {\r\n contactsProvider: true,\r\n openContact: true,\r\n openActivity: 'acme',\r\n eventsHistory: true,\r\n },\r\n },\r\n (dialer) => {\r\n if (Common?.activeConsultant?.CellPhone) dialer.setOnSearchContactables(searchContactables)\r\n dialer.setOnDialerEvent((event) => {\r\n switch (event.type) {\r\n case 'CALL_START': {\r\n break\r\n }\r\n case 'CALL_ANSWER': {\r\n break\r\n }\r\n case 'CALL_END': {\r\n this.loading = true\r\n event['ConsultantId'] = Common.activeConsultant.ConsultantId\r\n if (this.jobDetail?.JobId) event['JobId'] = this.jobDetail?.JobId\r\n this.consultantService.saveVonageCallDetails(event).subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n },\r\n error: (e) => {\r\n this.loading = false\r\n },\r\n })\r\n break\r\n }\r\n default: {\r\n // this.debugLog('Unhandled event', event)\r\n }\r\n }\r\n })\r\n }\r\n )\r\n }\r\n\r\n jobs: Array = []\r\n selected_jobs: Array = []\r\n filteredNotesAction: NotesAction[] = []\r\n notes: string\r\n actionId: string\r\n notesActions: NotesAction[] = []\r\n selected_contacts: Array = []\r\n notesList: iNotes[] = []\r\n notesObj: iNotes = {} as iNotes\r\n getFilteredJobs() {\r\n this.notesDialogService\r\n .getFilteredJobs(null)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.jobs = res\r\n })\r\n }\r\n\r\n getActionsOnUserRole() {\r\n this.notesDialogService\r\n .getActionsOnUserRole(this.authService.userInfo.roles[0].roleID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: NotesAction[]) => {\r\n this.filteredNotesAction = this.notesActions = res\r\n })\r\n }\r\n onSelectedJobsChanges(event) {\r\n if (this.selected_jobs.length === 0) {\r\n this.actionId = null\r\n }\r\n }\r\n applyJobFilter(searchValue) {\r\n this.notesDialogService\r\n .getFilteredJobs(searchValue)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.jobs = res\r\n })\r\n }\r\n\r\n notesOnJobAndCandidates(event) {\r\n if (event) {\r\n if (this.selected_jobs.length > 0 && this.selected_contacts.length > 0) {\r\n this.filteredNotesAction = this.notesActions.filter((x) => x.LookupID !== NotesType.General)\r\n } else if (this.selected_jobs.length == 0 && this.selected_contacts.length > 0) {\r\n this.filteredNotesAction = this.notesActions.filter((x) => x.LookupID === NotesType.General)\r\n } else if (this.selected_jobs.length > 0 && this.selected_contacts.length === 0) {\r\n this.filteredNotesAction = this.notesActions.filter(\r\n (x) => x.LookupID === NotesType.General || x.LookupID === NotesType.Intake_Calls\r\n )\r\n }\r\n }\r\n }\r\n\r\n resetNotes() {\r\n this.notes = ''\r\n this.actionId = ''\r\n this.selected_jobs = []\r\n }\r\n saveNotes() {\r\n if (!this.actionId) {\r\n this.notifyService.showError('Please select a Action.', 'Notes')\r\n return\r\n }\r\n if (!this.notes) {\r\n this.notifyService.showError('Notes cannot be empty.', 'Notes')\r\n return\r\n }\r\n this.getNotesList()\r\n if (this.notesList.length > 0) {\r\n this.loading = true\r\n this.notesDialogService.addNotes(this.notesList).subscribe(\r\n (res) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Notes added successfully!', 'Notes')\r\n this.resetNotes()\r\n this.activeTab = 4\r\n },\r\n (error) => {\r\n this.loading = false\r\n this.notifyService.showError('Error!', 'Notes')\r\n }\r\n )\r\n }\r\n }\r\n getNotesList() {\r\n if (this.selected_contacts.length < 1 && this.selected_jobs.length < 1) {\r\n this.notifyService.showError('Please select atleast a job or a contact.', 'Notes')\r\n return\r\n }\r\n this.selected_contacts.push(Common?.activeConsultant as any)\r\n if (this.selected_contacts.length > 0 && this.selected_jobs.length > 0) {\r\n if (Common?.activeConsultant) {\r\n this.selected_contacts.forEach((contact) => {\r\n this.selected_jobs.forEach((job) => {\r\n this.notesObj.ContactId = Common?.activeConsultant?.ContactId\r\n this.notesObj.JobId = job.JobId\r\n this.notesObj.ActionId = Number(this.actionId)\r\n this.notesObj.NotesDescription = this.notes\r\n this.notesObj.CreatedBy = this.authService.userInfo.userID\r\n this.notesObj.NotesId = 0\r\n this.notesObj.IsActive = true\r\n this.notesObj.CreatedDate = new Date()\r\n this.notesObj.UpdatedBy = null\r\n this.notesObj.UpdatedDate = null\r\n this.notesList.push(this.notesObj)\r\n this.createDefaultNotesObj()\r\n })\r\n })\r\n } else {\r\n this.selected_contacts.forEach((contact) => {\r\n this.selected_jobs.forEach((job) => {\r\n this.notesObj.ContactId = contact.ContactID\r\n this.notesObj.JobId = job.JobId\r\n this.notesObj.ActionId = Number(this.actionId)\r\n this.notesObj.NotesDescription = this.notes\r\n this.notesObj.CreatedBy = this.authService.userInfo.userID\r\n this.notesObj.NotesId = 0\r\n this.notesObj.IsActive = true\r\n this.notesObj.CreatedDate = new Date()\r\n this.notesObj.UpdatedBy = null\r\n this.notesObj.UpdatedDate = null\r\n this.notesList.push(this.notesObj)\r\n this.createDefaultNotesObj()\r\n })\r\n })\r\n }\r\n } else if (this.selected_contacts.length > 0 && this.selected_jobs.length < 1) {\r\n if (Common?.activeConsultant) {\r\n this.selected_contacts.forEach((contact) => {\r\n this.notesObj.ContactId = Common?.activeConsultant?.ContactId\r\n this.notesObj.JobId = null\r\n this.notesObj.ActionId = Number(this.actionId)\r\n this.notesObj.NotesDescription = this.notes\r\n this.notesObj.CreatedBy = this.authService.userInfo.userID\r\n this.notesObj.NotesId = 0\r\n this.notesObj.IsActive = true\r\n this.notesObj.CreatedDate = new Date()\r\n this.notesObj.UpdatedBy = null\r\n this.notesObj.UpdatedDate = null\r\n this.notesList.push(this.notesObj)\r\n this.createDefaultNotesObj()\r\n })\r\n } else {\r\n this.selected_contacts.forEach((contact) => {\r\n this.notesObj.ContactId = contact.ContactID\r\n this.notesObj.JobId = null\r\n this.notesObj.ActionId = Number(this.actionId)\r\n this.notesObj.NotesDescription = this.notes\r\n this.notesObj.CreatedBy = this.authService.userInfo.userID\r\n this.notesObj.NotesId = 0\r\n this.notesObj.IsActive = true\r\n this.notesObj.CreatedDate = new Date()\r\n this.notesObj.UpdatedBy = null\r\n this.notesObj.UpdatedDate = null\r\n this.notesList.push(this.notesObj)\r\n this.createDefaultNotesObj()\r\n })\r\n }\r\n } else if (this.selected_contacts.length < 1 && this.selected_jobs.length > 0) {\r\n this.selected_jobs.forEach((job) => {\r\n this.notesObj.ContactId = null\r\n this.notesObj.JobId = job.JobId\r\n this.notesObj.ActionId = Number(this.actionId)\r\n this.notesObj.NotesDescription = this.notes\r\n this.notesObj.CreatedBy = this.authService.userInfo.userID\r\n this.notesObj.NotesId = 0\r\n this.notesObj.IsActive = true\r\n this.notesObj.CreatedDate = new Date()\r\n this.notesObj.UpdatedBy = null\r\n this.notesObj.UpdatedDate = null\r\n this.notesList.push(this.notesObj)\r\n this.createDefaultNotesObj()\r\n })\r\n } else {\r\n this.notifyService.showError('Notes List is null.', 'Notes')\r\n this.notesList = []\r\n }\r\n }\r\n createDefaultNotesObj() {\r\n this.notesObj = {\r\n NotesId: 0,\r\n ContactId: null,\r\n NotesDescription: null,\r\n ActionId: null,\r\n JobId: null,\r\n CreatedBy: null,\r\n CreatedDate: new Date(),\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true,\r\n }\r\n }\r\n\r\n handleAnchorClick(url, linkType?) {\r\n if (url === undefined || url === null || url === '') {\r\n return\r\n } else {\r\n switch (linkType) {\r\n case LinkType.Call: {\r\n const link = `tel:${url}`\r\n window.open(link, '_self')\r\n break\r\n }\r\n case LinkType.Mail: {\r\n const link = `mailto:${url}`\r\n window.open(link, '_self')\r\n break\r\n }\r\n default: {\r\n window.open(url, '_blank')\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n isThePreviousCommentFromMenu(menuTitle: string): boolean {\r\n if (menuTitle === MenuName.CON_JOB_APPLIED) {\r\n return true\r\n }\r\n return this.matMenu.filter((item) => item.MenuName === menuTitle).length ? true : false\r\n }\r\n\r\n private _getConsultantByDiceId(diceId) {\r\n this.consultantService\r\n .getDiceConsultant(diceId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (consultant) => {\r\n Common.activeConsultant = consultant\r\n },\r\n })\r\n }\r\n\r\n private _rejectDiceCandidate(diceCandidateId: string, jobId: number) {\r\n this.loading = true\r\n this.consultantService.rejectDiceCandidate(diceCandidateId, jobId).subscribe({\r\n next: () => {\r\n this.isCandidateRejected = true\r\n this.showDisabledToolTip = true\r\n this.loading = false\r\n this.closeQuickpanel()\r\n this.booleanSearchService.getDiceCandidateRecords()\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n private _isDiceCandidateRejected(diceId: string, jobId: number) {\r\n this.loading = true\r\n this.consultantService.isDiceCandidateRejected(diceId, jobId).subscribe({\r\n next: (isRejected) => {\r\n this.loading = false\r\n if (isRejected) {\r\n this.isCandidateRejected = true\r\n this.showDisabledToolTip = true\r\n }\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n Vonage Dialer\r\n \r\n close\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Notes\r\n
\r\n
\r\n \r\n Jobs\r\n \r\n \r\n Search Jobs\r\n \r\n \r\n \r\n {{ job.JobCode }}|{{ job.JobTitle }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Action\r\n \r\n \r\n {{ notesAction.ValueName }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Notes\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ (consultant?.FirstName?.[0] || '') }} {{ (consultant?.LastName?.[0] || '') }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n visibility\r\n \r\n close\r\n
\r\n
\r\n {{ consultant?.FirstName }} {{ consultant?.LastName }} \r\n
\r\n
{{ consultant?.CandidateTitle }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ consultant?.LegalStatus | nullValueReplace }}\r\n
\r\n
\r\n \r\n {{ consultant?.Experience | nullValueReplace }} {{ consultant?.Experience ? 'Yrs' : '' }}\r\n
\r\n
\r\n \r\n \r\n {{ consultant?.Location?.City | nullValueReplace }}\r\n \r\n ,\r\n {{\r\n consultant?.Location?.StateCode | nullValueReplace\r\n }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{\r\n consultant?.ExpectedSalary\r\n ? (consultant?.ExpectedSalary | currency : 'USD' : 'symbol-narrow' : '1.0-0')\r\n : (consultant?.ExpectedSalary | nullValueReplace)\r\n }}\r\n {{ consultant?.ExpectedSalary ? '/ Annum' : '' }}\r\n \r\n | \r\n \r\n {{\r\n consultant?.ExpectedPayRate\r\n ? (consultant?.ExpectedPayRate | currency : 'USD' : 'symbol-narrow' : '1.0-0')\r\n : (consultant?.ExpectedPayRate | nullValueReplace)\r\n }}\r\n {{ consultant?.ExpectedPayRate ? '/hr' : '' }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{ consultant?.LegalStatus | nullValueReplace }}\r\n
\r\n
\r\n done\r\n
\r\n \r\n \r\n
\r\n question_mark\r\n
\r\n \r\n
\r\n \r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ consultant?.Experience | nullValueReplace }}\r\n {{ consultant?.Experience ? 'Yrs' : '' }}\r\n
= jobDetail?.Experience; else wrongTickExp\">\r\n done\r\n
\r\n \r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ consultant?.Location?.City | nullValueReplace }}\r\n \r\n ,\r\n {{\r\n consultant?.Location?.StateCode | nullValueReplace\r\n }}\r\n \r\n
\r\n\r\n \r\n done\r\n
\r\n \r\n \r\n
\r\n question_mark\r\n
\r\n \r\n
\r\n \r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{\r\n consultant?.ExpectedSalary\r\n ? (consultant?.ExpectedSalary | currency : 'USD' : 'symbol-narrow' : '1.0-0')\r\n : (consultant?.ExpectedSalary | nullValueReplace)\r\n }}\r\n {{ consultant?.ExpectedSalary ? '/ Annum' : '' }}\r\n \r\n | \r\n \r\n {{\r\n consultant?.ExpectedPayRate\r\n ? (consultant?.ExpectedPayRate | currency : 'USD' : 'symbol-narrow' : '1.0-0')\r\n : (consultant?.ExpectedPayRate | nullValueReplace)\r\n }}\r\n {{ consultant?.ExpectedPayRate ? '/hr' : '' }}\r\n \r\n \r\n\r\n = consultant?.ExpectedSalary &&\r\n jobDetail?.MaxBillRate >= consultant?.ExpectedPayRate;\r\n else notMatched\r\n \"\r\n >\r\n done\r\n
\r\n\r\n \r\n close\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n question_mark\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
0 && !isFromJobSearch\" class=\"column-start\">\r\n
Professional Skills
\r\n
\r\n \r\n {{ skill }}\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n {{\r\n isFromJobSearch ? 'Candidate Matching Percentage' : 'Profile Completion'\r\n }}\r\n
\r\n \r\n \r\n {{ isFromJobSearch ? matchedPercentage : profileCompletePercentage }}%\r\n
\r\n Last Updated {{ consultant?.UpdatedDate | dateAgo }}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n Resume\r\n
\r\n\r\n
\r\n Last Updated {{ diceCandidateResume?.ResumeLastUpdatedDate | dateAgo }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n Phone\r\n \r\n {{ consultant?.CellPhone | nullValueReplace }}\r\n \r\n
\r\n
\r\n 0\"\r\n src=\"assets/img/Leap-Tiger_Icons/Candidate-Module-Icon/copyToClipBoardIcon.svg\"\r\n matTooltip=\"Copy to Clipboard\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"copyPhoneNumber()\"\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Email\r\n {{\r\n consultant?.Emailaddress?.length > 0\r\n ? (consultant?.Emailaddress | slice : 0 : 35)\r\n : (consultant?.Emailaddress | nullValueReplace)\r\n }}\r\n \r\n \r\n 0\"\r\n src=\"assets/img/Leap-Tiger_Icons/Candidate-Module-Icon/copyToClipBoardIcon.svg\"\r\n matTooltip=\"Copy to Clipboard\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"copyEmail()\"\r\n />\r\n
\r\n
\r\n \r\n
\r\n
Job Title
\r\n
\r\n \r\n {{ jobDetail?.JobTitleName }} - {{ jobDetail?.JobId }} \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n Job Status\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ jobDetail?.JobTitleName }} ({{ jobDetail?.JobId }}),\r\n {{ jobDetail?.CompanyName }}.\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ consultantJobAction.Shortlist }}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ consultantJobAction.Approval_Pending }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ consultantJobAction.Interview_Schedule }}\r\n \r\n \r\n \r\n \r\n {{ consultantJobAction.Withdraw }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ consultantJobAction.Approve }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ consultantJobAction.Preview }}\r\n \r\n \r\n {{ consultantJobAction.Submit }}\r\n \r\n \r\n \r\n \r\n \r\n {{ consultantJobAction.Reject }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core'\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner'\r\nimport { CommonModule } from '@angular/common'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { RouterModule } from '@angular/router'\r\nimport { MatFormFieldModule } from '@angular/material/form-field'\r\nimport { MatListModule } from '@angular/material/list'\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar'\r\nimport { MatRippleModule } from '@angular/material/core'\r\nimport { MatTabsModule } from '@angular/material/tabs'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatChipsModule } from '@angular/material/chips'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { MatDatepickerModule } from '@angular/material/datepicker'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { MatNativeDateModule } from '@angular/material/core'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { QuillModule } from 'ngx-quill'\r\nimport { ConsultantRoutingModule } from './consultant-routing.module'\r\nimport { LayoutModule } from '../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { ToastrModule } from 'ngx-toastr'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { MatSortModule } from '@angular/material/sort'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { ContainerModule } from '../shared/core/directives/container/container.module'\r\nimport { ToolbarModule } from '../shared/core/layout/toolbar/toolbar.module'\r\nimport { FooterModule } from '../shared/core/layout/footer/footer.module'\r\nimport { ConsultantProjectsComponent } from './consultant-projects/consultant-projects.component'\r\nimport { ConsultantSkillsComponent } from './consultant-skills/consultant-skills.component'\r\nimport { ConsultantReferencesComponent } from './consultant-references/consultant-references.component'\r\nimport { ConsultantProfileComponent } from './consultant-profile/consultant-profile.component'\r\nimport { ConsultantAddlayoutComponent } from './consultant-addlayout/consultant-addlayout.component'\r\nimport { ConsultantFileviewComponent } from './consultant-fileview/consultant-fileview.component'\r\nimport { ConsultantOtherComponent } from './consultant-other/consultant-other.component'\r\nimport { ConsultantCredentialsComponent } from './consultant-credentials/consultant-credentials.component'\r\nimport { ConsultantTabsComponent } from './consultant-tabs/consultant-tabs.component'\r\nimport { ConsultantSummaryComponent } from './consultant-summary/consultant-summary.component'\r\nimport { LocationModule } from '../common/location/location.module'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { SharedModule } from '../shared/shared.module'\r\nimport { MatDialogModule } from '@angular/material/dialog'\r\nimport { MatStepperModule } from '@angular/material/stepper'\r\nimport { CdkAccordionModule } from '@angular/cdk/accordion'\r\nimport { MatExpansionModule } from '@angular/material/expansion'\r\nimport { ConsultantJobsComponent } from './consultant-jobs/consultant-jobs.component'\r\nimport { ConsultantResumeComponent } from './consultant-resume/consultant-resume.component'\r\nimport { ConsultantJobsFilterPipe } from './consultant-jobs/consultantjobsfilter.pipe'\r\nimport { InterviewDialogComponent } from '../shared/interview-dialog/interview-dialog.component'\r\nimport { ConsultantInterviewListComponent } from './consultant-interview-list/consultant-interview-list.component'\r\nimport { ConsultantChartComponent } from './consultant-chart/consultant-chart.component'\r\nimport { ConsultantQualifyingQuestionsComponent } from './consultant-qualifying-questions/consultant-qualifying-questions.component'\r\nimport { ConsultantNotesComponent } from './consultant-notes/consultant-notes.component'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { MatSliderModule } from '@angular/material/slider'\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar'\r\nimport { ConsultantActivitiesComponent } from './consultant-activities/consultant-activities.component'\r\nimport { ConsultantFeedbackComponent } from './consultant-feedback/consultant-feedback.component'\r\nimport { FiltersComponent } from '../shared/filters/filters.component'\r\nimport { ConsultantDialogComponent } from './consultant-dialog/consultant-dialog.component'\r\nimport { ConsultantDataService } from './consultant-data.service'\r\nimport { ConsultantJobStatusComponent } from './consultant-job-status/consultant-job-status.component'\r\nimport { JobCandidatesFilterPipe } from '../shared/pipes/jobcandidatesfilter.pipe'\r\nimport { ConsultantJobListComponent } from './consultant-job-list/consultant-job-list.component'\r\nimport { ConsultantJobStatusCardListComponent } from './consultant-job-status-card-list/consultant-job-status-card-list.component'\r\nimport { CallRecordHistoryComponent } from './call-record-history/call-record-history.component'\r\nimport { ConsultantCallsComponent } from './consultant-calls/consultant-calls.component';\r\nimport { ConsultantEmailLogsComponent } from './consultant-email-logs/consultant-email-logs.component'\r\nimport { NgxDocViewerModule } from 'ngx-doc-viewer'\r\nimport { TableVirtualScrollModule } from 'ng-table-virtual-scroll'\r\nimport { ScrollingModule } from '@angular/cdk/scrolling'\r\n\r\n@NgModule({\r\n declarations: [\r\n ConsultantJobsFilterPipe,\r\n ConsultantProfileComponent,\r\n ConsultantProjectsComponent,\r\n ConsultantSkillsComponent,\r\n ConsultantReferencesComponent,\r\n ConsultantAddlayoutComponent,\r\n ConsultantFileviewComponent,\r\n ConsultantOtherComponent,\r\n ConsultantCredentialsComponent,\r\n ConsultantTabsComponent,\r\n ConsultantSummaryComponent,\r\n ConsultantJobsComponent,\r\n ConsultantResumeComponent,\r\n InterviewDialogComponent,\r\n ConsultantInterviewListComponent,\r\n ConsultantChartComponent,\r\n ConsultantQualifyingQuestionsComponent,\r\n ConsultantNotesComponent,\r\n ConsultantActivitiesComponent,\r\n ConsultantFeedbackComponent,\r\n ConsultantDialogComponent,\r\n ConsultantJobStatusComponent,\r\n ConsultantJobStatusCardListComponent,\r\n CallRecordHistoryComponent,\r\n ConsultantCallsComponent,\r\n ConsultantEmailLogsComponent,\r\n ],\r\n imports: [\r\n TableVirtualScrollModule,\r\n ScrollingModule,\r\n CommonModule,\r\n MatDialogModule,\r\n LocationModule,\r\n MatProgressSpinnerModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatSidenavModule,\r\n MatFormFieldModule,\r\n MatListModule,\r\n MatProgressBarModule,\r\n MatMenuModule,\r\n RouterModule,\r\n MatRippleModule,\r\n MatTabsModule,\r\n FormsModule,\r\n MatIconModule,\r\n IconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatChipsModule,\r\n SharedModule,\r\n MatDatepickerModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatNativeDateModule,\r\n MatButtonModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule,\r\n FlexLayoutModule,\r\n MatSliderModule,\r\n MatDialogModule,\r\n CommonModule,\r\n FormsModule,\r\n IconModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatTooltipModule,\r\n MatToolbarModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n MatButtonModule,\r\n MatSnackBarModule,\r\n ConsultantRoutingModule,\r\n LocationModule,\r\n MatCardModule,\r\n CdkAccordionModule,\r\n MatExpansionModule,\r\n NgxLoadingModule.forRoot({}),\r\n ToastrModule.forRoot(),\r\n QuillModule.forRoot({\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n\r\n [{ header: 1 }, { header: 2 }], // custom button values\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\r\n [{ indent: '-1' }, { indent: '+1' }], // outdent/indent\r\n [{ direction: 'rtl' }], // text direction\r\n\r\n [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\r\n [{ align: [] }],\r\n\r\n ['clean'], // remove formatting button\r\n\r\n ['link', 'image', 'video'], // link and image, video\r\n ],\r\n },\r\n }),\r\n SharedModule,\r\n MatIconModule,\r\n ContainerModule,\r\n ToolbarModule,\r\n FooterModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n NgxDocViewerModule,\r\n ],\r\n exports: [ConsultantTabsComponent, FiltersComponent],\r\n providers: [ConsultantDataService, JobCandidatesFilterPipe],\r\n})\r\nexport class ConsultantModule {}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpParams, HttpErrorResponse, HttpHeaders, HttpRequest } from '@angular/common/http'\r\nimport {\r\n iInterviewSchedule,\r\n iConsultant,\r\n iResumeSkillDummy,\r\n iResumeProjectDummy,\r\n iConsultantEducationDatum,\r\n iConsultantEduandCertdummy,\r\n iConsultantRefernceData,\r\n iConsultantJob,\r\n iConsultantCredentials,\r\n iConsultantSearch,\r\n iInsurance,\r\n iCertificate,\r\n iInterview,\r\n iConsultantCertification,\r\n iConsultantEducation,\r\n} from 'src/app/models/consultant.model'\r\nimport { Observable, throwError as observableThrowError, of } from 'rxjs'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { iConsultantResumeData } from '../models/consultant.model'\r\nimport { iLocation } from '../models/location.model'\r\nimport { iContact } from '../models/contact.model'\r\nimport { Common } from '../common/common'\r\nimport { iDbResult } from '../models/common.model'\r\nimport { map } from 'rxjs/operators'\r\nimport { AbstractControl, AsyncValidatorFn, ValidationErrors } from '@angular/forms'\r\nimport { VonageCallDetails } from '../models/vonageCall.model'\r\nimport { DiceConsultant } from '../models/booleanSearch.model'\r\nimport { iCallRecords } from '../models/calls.model'\r\nimport { iConsultantTraining } from '../models/training.model'\r\nimport { iConsultantPublication } from '../models/publication.model'\r\nimport { iConsultantAward } from '../models/award.model'\r\nimport { iConsultantPatent } from '../models/patent.model'\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConsultantService {\r\n\r\n searchData: string\r\n apiUrl = Common.apiUrl\r\n constructor(private http: HttpClient) { }\r\n\r\n model: iConsultantResumeData\r\n public data\r\n\r\n setData(data) {\r\n this.data = data\r\n }\r\n\r\n getData() {\r\n let temp = this.data\r\n this.clearData()\r\n return temp\r\n }\r\n clearData() {\r\n this.data = undefined\r\n }\r\n getConsultantList(obj: iConsultantSearch) {\r\n var url = Common.apiUrl + 'Candidate/GetCandidates'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n exportConsultant(consultantSearchparams: any) {\r\n var url = Common.apiUrl + 'Candidate/ExportConsultant'\r\n return this.http.post(url, consultantSearchparams, {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n responseType: 'blob',\r\n })\r\n }\r\n exportDiceConsultant(consultantSearchparams: any) {\r\n var url = Common.apiUrl + 'Candidate/ExportDiceConsultant'\r\n return this.http.post(url, consultantSearchparams, {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n responseType: 'blob',\r\n })\r\n }\r\n\r\n tempUploadResume(userId: string) {\r\n var url = Common.apiUrl + 'Candidate/BulkUpload'\r\n return this.http.post(url + \"/\" + userId, null, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getLookup(LookpText) {\r\n var url = Common.apiUrl + 'data/GetLookup' + '?LookpText=' + encodeURIComponent(LookpText)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getCitySearch(name: string, stateCode?: string) {\r\n let resObj = {\r\n name: name,\r\n stateCode: stateCode,\r\n }\r\n var url = Common.apiUrl + 'data/GetCitySearch'\r\n return this.http.post(url, resObj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getStateSearch(name: string, countryCode?: string) {\r\n let resObj = {\r\n name: name,\r\n countryCode: countryCode, // Optional, similar to stateCode in your city search\r\n }\r\n const url = Common.apiUrl + 'data/GetStateSearch'; // Use the appropriate API endpoint for states\r\n return this.http.post(url, resObj, httpOptions).pipe(catchError(this.handleError));\r\n }\r\n\r\n\r\n\r\n GetJobSkills(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobSkill' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getJobTitles(title) {\r\n var url = this.apiUrl + 'Jobs/JobTitleSearch' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n uploadConsultantResume(obj) {\r\n var url = Common.apiUrl + 'api/FileUploader/UploadConsultantResume'\r\n const uploadReq = new HttpRequest('POST', url, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n bulkResumeUpload(obj) {\r\n var url = Common.apiUrl + 'api/FileUploader/BulkResumeUpload'\r\n const uploadReq = new HttpRequest('POST', url, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n bulkResumeUploadNew(obj, userId) {\r\n var url = Common.apiUrl + 'api/FileUploader/BulkResumeUploadNew/'\r\n const uploadReq = new HttpRequest('POST', url + userId, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n saveConsultantResume(obj) {\r\n const endPoint = Common.apiUrl + 'api/FileUploader/UploadResume'\r\n return this.http.post(endPoint, obj)\r\n }\r\n // getConsultantAwards(obj){\r\n // var url = Common.apiUrl + 'Consultant/GetConsultantAwards'\r\n // return this.http.get(url, obj).pipe(catchError(this.handleError))\r\n // }\r\n getConsultantAwards(diceCandidateId) {\r\n const ENDPOINT = `${Common.apiUrl}Consultant/GetConsultantAwards/${diceCandidateId}`\r\n return this.http.get(ENDPOINT, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n // getConsultantPatents(obj){\r\n // var url = Common.apiUrl + 'Consultant/GetConsultantPatents'\r\n // return this.http.get(url, obj).pipe(catchError(this.handleError))\r\n // }\r\n getConsultantPatents(diceCandidateId) {\r\n const ENDPOINT = `${Common.apiUrl}Consultant/GetConsultantPatents/${diceCandidateId}`\r\n return this.http.get(ENDPOINT, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n // getConsultantTrainings(obj){\r\n // var url = Common.apiUrl + 'Consultant/GetConsultantTrainings'\r\n // return this.http.get(url, obj).pipe(catchError(this.handleError))\r\n // }\r\n getConsultantTrainings(diceCandidateId) {\r\n const ENDPOINT = `${Common.apiUrl}Consultant/GetConsultantTrainings/${diceCandidateId}`\r\n return this.http.get(ENDPOINT, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n // getConsultantPublications(obj){\r\n // var url = Common.apiUrl + 'Consultant/GetConsultantPublications'\r\n // return this.http.get(url, obj).pipe(catchError(this.handleError))\r\n // } \r\n getConsultantPublications(diceCandidateId) {\r\n const ENDPOINT = `${Common.apiUrl}Consultant/GetConsultantPublications/${diceCandidateId}`\r\n return this.http.get(ENDPOINT, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantAwards(consultant: iConsultantAward) {\r\n const url = Common.apiUrl + 'Consultant/SaveConsultantAwards'\r\n return this.http.post(url, consultant, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantPatent(consultant: iConsultantPatent) {\r\n const url = Common.apiUrl + 'Consultant/SaveConsultantPatent'\r\n return this.http.post(url, consultant, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantPublication(consultant: iConsultantPublication) {\r\n const url = Common.apiUrl + 'Consultant/SaveConsultantPublication'\r\n return this.http.post(url, consultant, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantTraining(consultant: iConsultantTraining) {\r\n const url = Common.apiUrl + 'Consultant/SaveConsultantTraining'\r\n return this.http.post(url, consultant, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteConsultantAward(award: iConsultantAward) {\r\n var url = Common.apiUrl + 'Consultant/DeleteConsultantAward'\r\n return this.http.post(url, award, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteConsultantPublication(publication: iConsultantPublication) {\r\n var url = Common.apiUrl + 'Consultant/DeleteConsultantPublication'\r\n return this.http.post(url, publication, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteConsultantTraining(training: iConsultantTraining) {\r\n var url = Common.apiUrl + 'Consultant/DeleteConsultantTraining'\r\n return this.http.post(url, training, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteConsultantPatent(obj) {\r\n var url = Common.apiUrl + 'Consultant/DeleteConsultantPatent'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantProfile(obj) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsultantProfile'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantDetails(obj: iConsultant) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsultantDetails'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantQualifyingQuestions(obj: iConsultant) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsultantQualifyingQuestions'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getVendorCompany() {\r\n var url = Common.apiUrl + 'data/GetVendorCompany'\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getCompanyContacts(companyId) {\r\n var url = Common.apiUrl + 'data/GetCompanyContacts' + '?companyId=' + encodeURIComponent(companyId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getContactById(contactId: number) {\r\n const endpoint = `${Common.apiUrl}data/GetContactById/${contactId}`\r\n return this.http.get(endpoint).pipe(catchError(this.handleError))\r\n }\r\n getRecruiters(obj: any) {\r\n var url = Common.apiUrl + 'user/GetUsers'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetRecruiterByRoleId(roleIds) {\r\n var url = this.apiUrl + 'Company/GetRecruiterByRoleId' + '/' + encodeURIComponent(roleIds)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getSkills(title) {\r\n var url = Common.apiUrl + 'data/GetSkillName' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getCompanyFilter(title) {\r\n var url = Common.apiUrl + 'data/GetCompanyFilter' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getClients() {\r\n var url = Common.apiUrl + 'company/GetClients'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getVendors() {\r\n var url = Common.apiUrl + 'company/GetVendors'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getCities() {\r\n var url = Common.apiUrl + 'data/GetCity'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n jobTitleSearch(title) {\r\n var url = this.apiUrl + 'Jobs/JobTitleSearch' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n ResumeUpload(obj) {\r\n var url = Common.apiUrl + 'api/FileUploader/ResumeUpload'\r\n const uploadReq = new HttpRequest('POST', url, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n uploadConsultantJobChart(obj) {\r\n var url = Common.apiUrl + 'api/FileUploader/UploadConsultantJobChart'\r\n const uploadReq = new HttpRequest('POST', url, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n uploadProfilePicture(obj) {\r\n var url = Common.apiUrl + 'api/FileUploader/uploadProfilePicture'\r\n const uploadReq = new HttpRequest('POST', url, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n getCandidateBasicInfo(obj) {\r\n var url = Common.apiUrl + 'api/FileUploader/GetCandidateInfo'\r\n const uploadReq = new HttpRequest('POST', url, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n getCandidateSaveResumeData(obj) {\r\n var url = Common.apiUrl + 'api/fileuploader/SaveCandidateResumeData'\r\n const uploadReq = new HttpRequest('POST', url, obj)\r\n return this.http.request(uploadReq)\r\n }\r\n\r\n profileSkillChart(\r\n objectID: number,\r\n objectTypeId: number,\r\n menuItemID: number,\r\n comments: string,\r\n userID: number,\r\n actionID: Number,\r\n statusID: number\r\n ) {\r\n var url = Common.apiUrl + 'Consultant/ProfileSkillChart'\r\n let params = new HttpParams()\r\n params = params.append('objectID', objectID.toString())\r\n params = params.append('objectTypeId', objectTypeId.toString())\r\n params = params.append('menuItemID', menuItemID.toString())\r\n params = params.append('comments', comments.toString())\r\n params = params.append('userID', userID.toString())\r\n params = params.append('actionID', actionID.toString())\r\n params = params.append('statusID', statusID.toString())\r\n\r\n return this.http.get(url, { headers: Common.httpheaders, params: params }).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n\r\n AddInterview(obj: iInterviewSchedule) {\r\n var url = Common.apiUrl + 'Consultant/AddInterview'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddResumeSkill(obj: iResumeSkillDummy) {\r\n var url = Common.apiUrl + 'Consultant/AddResumeSkill'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddProjects(obj: iResumeProjectDummy) {\r\n var url = Common.apiUrl + 'Consultant/AddResumeProject'\r\n\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n saveConsultantJob(consultant: iConsultantJob) {\r\n const url = Common.apiUrl + 'Consultant/SaveConsultantJob'\r\n return this.http.post(url, consultant, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetConsultantNames(search) {\r\n var url = Common.apiUrl + 'Consultant/ConsultantNames/' + encodeURIComponent(search)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetConsultantJobs(consultantid, userid) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantJobs' +\r\n '/' +\r\n encodeURIComponent(consultantid) +\r\n '/' +\r\n encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n // GetConsultantJobInfo(consultantjobid, userid) {\r\n // var url = Common.apiUrl + \"Consultant/GetConsultantJobInfo\"\r\n // + \"/\" + encodeURIComponent(consultantjobid)\r\n // + \"/\" + encodeURIComponent(userid)\r\n // var x = this.http\r\n // .get(url, Common.httpOptions)\r\n // .pipe(catchError(this.handleError));\r\n // return x;\r\n // }\r\n DownloadResume(fileId) {\r\n var url = Common.apiUrl + 'FileUploader/downloadfile' + '/' + encodeURIComponent(fileId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetConsultantSummary(consultantId, jobId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantSummary' +\r\n '/' +\r\n encodeURIComponent(consultantId) +\r\n '/' +\r\n encodeURIComponent(jobId)\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDiceConsultantSummary(diceCandidateId) {\r\n const ENDPOINT = `${Common.apiUrl}Consultant/GetDiceConsultantSummary/${diceCandidateId}`\r\n return this.http.get(ENDPOINT, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getConsultantJobSkill(consultantId, jobId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantJobSkill' +\r\n '/' +\r\n encodeURIComponent(consultantId) +\r\n '/' +\r\n encodeURIComponent(jobId)\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetGetConsultantJobDetails(consultantJobId, userId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantJobDetails' +\r\n '/' +\r\n encodeURIComponent(consultantJobId) +\r\n '/' +\r\n encodeURIComponent(userId)\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetConsultantJobIdByEmail(emailaddress, jobId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantJobIdByEmail' +\r\n '/' +\r\n encodeURIComponent(emailaddress) +\r\n '/' +\r\n encodeURIComponent(jobId)\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GeInterview(interviewid) {\r\n var url = Common.apiUrl + 'Consultant/GetInterview' + '/' + encodeURIComponent(interviewid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GeInterviewAvailableTimeSlots(interviewid) {\r\n var url = Common.apiUrl + 'Consultant/GetInterviewAvailableTimeSlots' + '/' + encodeURIComponent(interviewid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n SaveInterview(obj: iInterview) {\r\n var url = Common.apiUrl + 'Consultant/SaveInterview'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetConsultantJob(consultantjobid, userid) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantJob' +\r\n '/' +\r\n encodeURIComponent(consultantjobid) +\r\n '/' +\r\n encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n saveConsultantReference(obj: iConsultantRefernceData) {\r\n var url = Common.apiUrl + 'Consultant/saveConsultantReference'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddConsulatantCertAndEdu(obj: iConsultantEduandCertdummy) {\r\n var url = Common.apiUrl + 'Consultant/AddConsulatantCertAndEdu'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n SaveConsulatantEducation(obj: iConsultantEducationDatum) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsulatantEducation'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n SaveConsulatantCredentials(obj: iConsultantCredentials) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsulatantCredentials'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteCertificate(certificate: iConsultantCertification) {\r\n var url = Common.apiUrl + 'Consultant/DeleteConsultanCertification'\r\n return this.http.post(url, certificate, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteEducation(education: iConsultantEducation) {\r\n var url = Common.apiUrl + 'Consultant/DeleteConsultantEducation'\r\n return this.http.post(url, education, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteProject(projectToDelete) {\r\n const endPoint = Common.apiUrl + 'consultant/DeleteConsultantResumeProject'\r\n return this.http\r\n .post(endPoint, projectToDelete, {\r\n responseType: 'text',\r\n })\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n SaveConsulatantCertification(obj: iConsultantEducationDatum) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsulatantCertification'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetDepartments() {\r\n var url = Common.apiUrl + 'Company/GetDepartments'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetContacts() {\r\n var url = Common.apiUrl + 'Company/GetContacts'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetCompaniesBySearch(ClientTitle, ClientName, ClientLocation) {\r\n let params = new HttpParams()\r\n params = params.append('ClientTitle', ClientTitle)\r\n params = params.append('ClientName', ClientName)\r\n params = params.append('ClientLocation', ClientLocation)\r\n var url = Common.apiUrl + 'Company/GetCompaniesBySearch'\r\n var x = this.http.get(url, { params: params }).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getCandidates(obj: iConsultantSearch) {\r\n var url = Common.apiUrl + 'Consultant/GetCandidates'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n ConsultantLeapTigerSearch(obj: iConsultantSearch) {\r\n var url = Common.apiUrl + 'Consultant/GetConsultantCardlist'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n ConsultantDiceSearch(obj: iConsultantSearch) {\r\n var url = Common.apiUrl + 'Consultant/SearchConsultant'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n ApiProfileSearch(ID) {\r\n var url = Common.apiUrl + 'Company/GetProfileDetails' + '?ID=' + ID\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n GetCompanies() {\r\n var url = Common.apiUrl + 'Company/GetCompanyClient'\r\n\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetCompanyByCompanyId(companyId) {\r\n var url = Common.apiUrl + 'Company/GetCompanyByCompanyId'\r\n return this.http.post(url, { companyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetInsurances() {\r\n var url = Common.apiUrl + 'Company/GetInsurances'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetCertifications() {\r\n var url = Common.apiUrl + 'Company/GetCertifications'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetConsultantResumeSkill(consultantResumeId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantResumeSkill' +\r\n '?consultantResumeId=' +\r\n encodeURIComponent(consultantResumeId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetConsultantSkilllsByConsultantId(consultantId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantSkilllsByConsultantId' +\r\n '?consultantId=' +\r\n encodeURIComponent(consultantId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetConsultantResumeProjects(consultantResumeId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantResumeProjects' +\r\n '?consultantResumeId=' +\r\n encodeURIComponent(consultantResumeId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDiceConsultantResumeProjects(diceCandidateId) {\r\n const ENDPOINT = Common.apiUrl + 'Consultant/GetDiceConsultantResumeProjects/' + diceCandidateId\r\n return this.http.get(ENDPOINT, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetConsultantCertification(consultantId) {\r\n var url =\r\n Common.apiUrl +\r\n 'Consultant/GetConsultantCertification' +\r\n '?consultantId=' +\r\n encodeURIComponent(consultantId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDiceConsultantCertification(diceCandidateId) {\r\n const ENDPOINT = Common.apiUrl + 'Consultant/GetDiceConsultantCertification/' + diceCandidateId\r\n return this.http.get(ENDPOINT, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetConsultantEducation(consultantId) {\r\n var url =\r\n Common.apiUrl + 'Consultant/GetConsultantEducation' + '?consultantId=' + encodeURIComponent(consultantId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDiceConsultantEducation(diceCandidateId) {\r\n const ENDPOINT = Common.apiUrl + 'Consultant/GetDiceConsultantEducation/' + diceCandidateId\r\n return this.http.get(ENDPOINT, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n SearchDiceConsultantById(diceCandidateId) {\r\n const ENDPOINT = Common.apiUrl + 'Consultant/SearchDiceConsultant/' + diceCandidateId\r\n return this.http.get(ENDPOINT, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetConsultantReference(consultantId) {\r\n var url =\r\n Common.apiUrl + 'Consultant/GetConsultantReference' + '?consultantId=' + encodeURIComponent(consultantId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetCVCompletedStatus(consultantid) {\r\n var url = Common.apiUrl + 'Consultant/GetCVCompletedStatus' + '/' + encodeURIComponent(consultantid)\r\n\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n CheckExistConsultant(obj: iConsultant) {\r\n var url = Common.apiUrl + 'Consultant/CheckExistConsultant'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddConsultant(obj: iContact, Resumetext, objcon: iConsultant) {\r\n this.model = { objContact: obj, Resumetext: Resumetext, objConsultant: objcon }\r\n var url = Common.apiUrl + 'Consultant/saveConsultant'\r\n return this.http.post(url, this.model, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddContact(obj: iContact) {\r\n var url = Common.apiUrl + 'Company/saveContact'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n IsEmailExist(email, contactId) {\r\n const url = Common.apiUrl + 'Consultant/IsEmailExist'\r\n let params = new HttpParams()\r\n params = params.append('email', email)\r\n params = params.append('contactId', contactId)\r\n\r\n var x = this.http.get(url, { params: params }).pipe(catchError(this.handleError))\r\n\r\n return x\r\n }\r\n GetConsultantFromEmail(email) {\r\n var url = Common.apiUrl + 'Consultant/GetConsultantFromEmail' + '/' + encodeURIComponent(email)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n AddLocation(obj: iLocation) {\r\n var url = Common.apiUrl + 'Company/saveLocation'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n SaveConsultantProjects(projects) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsultantProjects'\r\n return this.http.post(url, projects, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n SaveConsultantSkills(skill) {\r\n var url = Common.apiUrl + 'Consultant/SaveConsultantSkills'\r\n return this.http.post(url, skill, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddCompanyInsurance(obj: iInsurance) {\r\n var url = Common.apiUrl + 'Company/saveCompanyInsurance'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddCompanyCertification(obj: iCertificate) {\r\n var url = Common.apiUrl + 'Company/saveCompanyCertifications'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetProjects(ConsultantId) {\r\n let params = new HttpParams().set('Consultantid', ConsultantId)\r\n var url = Common.apiUrl + 'Data/FindProjects'\r\n return this.http.post(url, params).pipe(catchError(this.handleError))\r\n }\r\n AddConsultantResume(ContactID, Path) {\r\n var url = Common.apiUrl + 'Consultant/saveConsultantResume'\r\n return this.http.post(url, ContactID, Path).pipe(catchError(this.handleError))\r\n }\r\n SendMail() {\r\n var url = Common.apiUrl + 'Consultant/SendMail'\r\n var x = this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n\r\n return x\r\n }\r\n getConsultant(consultantId) {\r\n var url = Common.apiUrl + 'Consultant/GetConsultant' + '/' + encodeURIComponent(consultantId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getNotes(obj: any) {\r\n var url = Common.apiUrl + 'data/GetNotes'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n return observableThrowError(errMessage)\r\n }\r\n return observableThrowError(error || 'Node.js server error')\r\n }\r\n FileConsultant(fdata) {\r\n var url = Common.apiUrl + 'api/FileUploader'\r\n const uploadReq = new HttpRequest('POST', url, fdata, {\r\n reportProgress: true,\r\n })\r\n }\r\n getconversation(phone) {\r\n var url = Common.apiUrl + 'api/Vonage/getconversation' + '?phone=' + encodeURIComponent(phone)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n SendSms(txtMsg, phone) {\r\n var url =\r\n Common.apiUrl +\r\n 'api/Vonage/Sendsms' +\r\n '?txtMsg=' +\r\n encodeURIComponent(txtMsg) +\r\n '&phone=' +\r\n encodeURIComponent(phone)\r\n\r\n var x = this.http.post(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetResume(ConsultantID) {\r\n var url = Common.apiUrl + 'Consultant/GetResume' + '?ConsultantID=' + encodeURIComponent(ConsultantID)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteSkill(skill) {\r\n const endPoint = Common.apiUrl + 'Consultant/DeleteConsultantResumeSkill'\r\n return this.http.post(endPoint, skill, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteReference(reference) {\r\n const endPoint = Common.apiUrl + 'Consultant/DeleteConsultantReference'\r\n return this.http.post(endPoint, reference, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n emailValidator(): AsyncValidatorFn {\r\n return (absControl: AbstractControl): Observable => {\r\n if (absControl?.value?.length > 0)\r\n return this.IsEmailExist(absControl.value, -1).pipe(map((res) => (res ? { emailExist: true } : null)))\r\n else return of(null)\r\n }\r\n }\r\n\r\n saveVonageCallDetails(detail: VonageCallDetails) {\r\n var url = Common.apiUrl + 'Vonage/SaveCallDetails'\r\n return this.http.post(url, detail).pipe(catchError(this.handleError))\r\n }\r\n\r\n getCandidateMatchingPercentage(jobId, candidateId): Observable {\r\n const endPoint = Common.apiUrl + `Consultant/getCandidateMatchingPercentage/${jobId}/${candidateId}`\r\n return this.http.get(endPoint)\r\n }\r\n\r\n uploadFormattedJobResume(resumeDetails) {\r\n const endPoint = Common.apiUrl + `api/FileUploader/UploadConsultantJobResume`\r\n return this.http.post(endPoint, resumeDetails).pipe(catchError(this.handleError))\r\n }\r\n getCandidateJobHistory(jobId, candidateId) {\r\n const endPoint = Common.apiUrl + `consultant/GetConsultantJobStatusLog/${jobId}/${candidateId}`\r\n return this.http.get(endPoint)\r\n }\r\n getDiceCandidates(diceCandidateFilter: DiceConsultant) {\r\n var url = Common.apiUrl + 'Candidate/GetDiceCandidates'\r\n return this.http.post(url, diceCandidateFilter, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getCachedCandidates(diceCandidateFilter: DiceConsultant){\r\n const url = Common.apiUrl + `Candidate/GetCachedCandidates`\r\n return this.http.post(url, diceCandidateFilter, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n public getDiceConsultant(consultantId) {\r\n var url = Common.apiUrl + 'Consultant/GetDiceConsultant' + '/' + encodeURIComponent(consultantId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n SaveDiceConsultantJob(diceConsultant: any) {\r\n var url = Common.apiUrl + 'Consultant/SaveDiceConsultantJob'\r\n return this.http.post(url, diceConsultant, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n rejectDiceCandidate(diceCandidateId: string, jobId: number) {\r\n const endPoint = Common.apiUrl + `Consultant/RejectDiceConsultant/${diceCandidateId}/${jobId.toString()}`\r\n return this.http.get(endPoint, Common.httpOptions)\r\n }\r\n\r\n isDiceCandidateRejected(diceCandidateId: string, jobId: number) {\r\n const endPoint = Common.apiUrl + `Consultant/IsDiceCandidateRejected/${diceCandidateId}/${jobId.toString()}`\r\n return this.http.get(endPoint, Common.httpOptions)\r\n }\r\n\r\n downloadFile(userId: number, userName: string): Observable {\r\n return this.http.get(`${Common.apiUrl}api/FileUploader/DownloadLog/${encodeURIComponent(userId)}/${encodeURIComponent(userName)}`, { responseType: 'blob' as 'json' });\r\n }\r\n\r\n deleteFileLog(userId: number){\r\n const endPoint = Common.apiUrl + `api/FileUploader/DeleteFileLog/${userId}`\r\n return this.http.get(endPoint, Common.httpOptions)\r\n }\r\n\r\n getFileUploadProgressReport(userId: number){\r\n const endPoint = Common.apiUrl + `api/FileUploader/GetFileUploadProgressReport/${userId}`\r\n return this.http.get(endPoint, Common.httpOptions)\r\n }\r\n saveInitialCallDetails(data) {\r\n const url = Common.apiUrl + `consultant/InsertCallRecords`;\r\n return this.http.post(url, data, Common.httpOptions).pipe(catchError(this.handleError))\r\n } \r\n getCallRecordsByCallerNumber(data) {\r\n const url = Common.apiUrl + `consultant/GetCallRecords`;\r\n return this.http.post(url, data, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getCallRecords(searchPara) {\r\n\r\n const url = Common.apiUrl + 'consultant/GetCallRecords'\r\n return this.http.post(url, searchPara, Common.httpOptions).pipe(catchError(this.handleError))\r\n\r\n } \r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { LayoutService } from '../shared/core/services/layout.service'\r\nimport { filter, map, startWith } from 'rxjs/operators'\r\nimport { NavigationEnd, Router } from '@angular/router'\r\nimport { checkRouterChildsData } from '../shared/core//utils/check-router-childs-data'\r\nimport { ConfigService } from '../shared/core/services/config.service'\r\nimport { UntilDestroy } from '@ngneat/until-destroy'\r\nimport { Subscription } from 'rxjs'\r\nimport { LoadComponent } from '../services/loadcomponent.service'\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'leap-custom-layout',\r\n templateUrl: './custom-layout.component.html',\r\n styleUrls: ['./custom-layout.component.scss'],\r\n})\r\nexport class CustomLayoutComponent implements OnInit {\r\n subscription: Subscription\r\n isFooterVisible$ = this.configService.config$.pipe(map((config) => config.footer.visible))\r\n isDesktop$ = this.layoutService.isDesktop$\r\n\r\n toolbarShadowEnabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.toolbarShadowEnabled))\r\n )\r\n isCompanyTabsVisible: boolean\r\n isJobTabsVisible: boolean\r\n isBoolean: boolean\r\n isConsultantTabsVisible: boolean\r\n isConsutantEditExperienceVisible: boolean\r\n activeData: any\r\n sideNavWidth: number = 86 // default is 86\r\n constructor(\r\n private layoutService: LayoutService,\r\n private configService: ConfigService,\r\n private router: Router,\r\n private loadComponent: LoadComponent\r\n ) {\r\n this.subscription = this.loadComponent.getComponentStatus().subscribe((res) => {\r\n this.isCompanyTabsVisible = false\r\n this.isJobTabsVisible = false\r\n this.isConsultantTabsVisible = false\r\n this.isConsutantEditExperienceVisible = false\r\n this.isBoolean = false\r\n this.activeData = res.activeData\r\n if (res.loadComponent) {\r\n this.sideNavWidth = res.sideNavWidth ? res.sideNavWidth : 86\r\n switch (res.loadComponent) {\r\n case 'company':\r\n this.isCompanyTabsVisible = true\r\n break\r\n case 'job':\r\n this.isJobTabsVisible = true\r\n break\r\n case 'consultant':\r\n this.isConsultantTabsVisible = true\r\n break\r\n case 'consultant-edit-experience':\r\n this.isConsutantEditExperienceVisible = true\r\n break\r\n case 'boolean':\r\n this.isBoolean = true\r\n break;\r\n default:\r\n break\r\n }\r\n } else {\r\n this.isCompanyTabsVisible = false\r\n this.isJobTabsVisible = false\r\n this.isConsultantTabsVisible = false\r\n this.isConsutantEditExperienceVisible = false\r\n this.isBoolean = false\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n console.log('CustomLayoutComponent')\r\n }\r\n ngOnDestroy() {\r\n // unsubscribing to ensure no memory leaks\r\n this.subscription.unsubscribe()\r\n }\r\n}\r\n","\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { LayoutModule } from '../shared/core/layout/layout.module'\r\nimport { CustomLayoutComponent } from './custom-layout.component'\r\nimport { ToolbarModule } from '../shared/core/layout/toolbar/toolbar.module'\r\nimport { FooterModule } from '../shared/core/layout/footer/footer.module'\r\nimport { QuickpanelModule } from '../shared/core/layout/quickpanel/quickpanel.module'\r\nimport { CompanyModule } from '../company/company.module'\r\nimport { CompanyListModule } from '../company/company-list/company-list.module'\r\nimport { JobListModule } from '../job/job-list/job-list.module'\r\nimport { JobModule } from '../job/job.module'\r\nimport { ConsultantModule } from '../consultant/consultant.module'\r\nimport { ConsultantListModule } from '../consultant/consultant-list/consultant-list.module'\r\nimport { RolePermissionModule } from '../user/role-permission/rolepermission.module'\r\nimport { PermissionModule } from '../user/permission.module'\r\nimport { DashboardModule } from '../dashboard/dashboard.module'\r\nimport { BooleanSearchModule } from \"../boolean-search/boolean-search.module\";\r\n@NgModule({\r\n declarations: [CustomLayoutComponent],\r\n imports: [\r\n CommonModule,\r\n LayoutModule,\r\n ToolbarModule,\r\n FooterModule,\r\n QuickpanelModule,\r\n CompanyListModule,\r\n JobListModule,\r\n CompanyModule,\r\n JobModule,\r\n ConsultantModule,\r\n ConsultantListModule,\r\n PermissionModule,\r\n RolePermissionModule,\r\n DashboardModule,\r\n BooleanSearchModule\r\n],\r\n})\r\nexport class CustomLayoutModule {}\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ApexXAxis,\r\n ApexDataLabels,\r\n ApexStroke,\r\n ApexGrid,\r\n ApexYAxis,\r\n ApexTitleSubtitle,\r\n ApexLegend,\r\n ApexFill,\r\n} from 'ng-apexcharts'\r\nimport { series } from './data'\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n xaxis: ApexXAxis\r\n stroke: ApexStroke\r\n grid: ApexGrid\r\n\r\n dataLabels: ApexDataLabels\r\n yaxis: ApexYAxis\r\n title: ApexTitleSubtitle\r\n labels: string[]\r\n legend: ApexLegend\r\n subtitle: ApexTitleSubtitle\r\n fill: ApexFill\r\n colors: any\r\n}\r\n\r\n@Component({\r\n selector: 'leap-area-chart',\r\n templateUrl: './area-chart.component.html',\r\n styleUrls: ['./area-chart.component.scss'],\r\n})\r\nexport class AreaChartComponent implements OnInit {\r\n public chartOptions: Partial\r\n @Input() chartColor: string\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Calls',\r\n data: series.monthDataSeries1.prices,\r\n },\r\n ],\r\n colors: [this.chartColor],\r\n chart: {\r\n toolbar: {\r\n show: false,\r\n },\r\n type: 'area',\r\n height: 210,\r\n zoom: {\r\n enabled: false,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n width: 4,\r\n curve: 'smooth',\r\n },\r\n\r\n // labels: series.monthDataSeries1.dates,\r\n xaxis: {\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n show: false,\r\n },\r\n // type: \"datetime\"\r\n },\r\n grid: {\r\n show: false,\r\n },\r\n fill: {\r\n type: 'gradient',\r\n colors: ['#FF5B5B'],\r\n },\r\n yaxis: {\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n show: false,\r\n },\r\n },\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","export const series = {\r\n monthDataSeries1: {\r\n prices: [\r\n 8107.85,\r\n 8128.0,\r\n 8122.9,\r\n 8165.5,\r\n 8340.7,\r\n 8423.7,\r\n 8423.5,\r\n 8514.3,\r\n 8481.85,\r\n 8487.7,\r\n 8506.9,\r\n 8626.2,\r\n 8668.95,\r\n 8602.3,\r\n 8607.55,\r\n 8512.9,\r\n 8496.25,\r\n 8600.65,\r\n 8881.1,\r\n 9340.85\r\n ],\r\n dates: [\r\n \"13 Nov 2017\",\r\n \"14 Nov 2017\",\r\n \"15 Nov 2017\",\r\n \"16 Nov 2017\",\r\n \"17 Nov 2017\",\r\n \"20 Nov 2017\",\r\n \"21 Nov 2017\",\r\n \"22 Nov 2017\",\r\n \"23 Nov 2017\",\r\n \"24 Nov 2017\",\r\n \"27 Nov 2017\",\r\n \"28 Nov 2017\",\r\n \"29 Nov 2017\",\r\n \"30 Nov 2017\",\r\n \"01 Dec 2017\",\r\n \"04 Dec 2017\",\r\n \"05 Dec 2017\",\r\n \"06 Dec 2017\",\r\n \"07 Dec 2017\",\r\n \"08 Dec 2017\"\r\n ]\r\n },\r\n monthDataSeries2: {\r\n prices: [\r\n 8423.7,\r\n 8423.5,\r\n 8514.3,\r\n 8481.85,\r\n 8487.7,\r\n 8506.9,\r\n 8626.2,\r\n 8668.95,\r\n 8602.3,\r\n 8607.55,\r\n 8512.9,\r\n 8496.25,\r\n 8600.65,\r\n 8881.1,\r\n 9040.85,\r\n 8340.7,\r\n 8165.5,\r\n 8122.9,\r\n 8107.85,\r\n 8128.0\r\n ],\r\n dates: [\r\n \"13 Nov 2017\",\r\n \"14 Nov 2017\",\r\n \"15 Nov 2017\",\r\n \"16 Nov 2017\",\r\n \"17 Nov 2017\",\r\n \"20 Nov 2017\",\r\n \"21 Nov 2017\",\r\n \"22 Nov 2017\",\r\n \"23 Nov 2017\",\r\n \"24 Nov 2017\",\r\n \"27 Nov 2017\",\r\n \"28 Nov 2017\",\r\n \"29 Nov 2017\",\r\n \"30 Nov 2017\",\r\n \"01 Dec 2017\",\r\n \"04 Dec 2017\",\r\n \"05 Dec 2017\",\r\n \"06 Dec 2017\",\r\n \"07 Dec 2017\",\r\n \"08 Dec 2017\"\r\n ]\r\n },\r\n monthDataSeries3: {\r\n prices: [\r\n 7114.25,\r\n 7126.6,\r\n 7116.95,\r\n 7203.7,\r\n 7233.75,\r\n 7451.0,\r\n 7381.15,\r\n 7348.95,\r\n 7347.75,\r\n 7311.25,\r\n 7266.4,\r\n 7253.25,\r\n 7215.45,\r\n 7266.35,\r\n 7315.25,\r\n 7237.2,\r\n 7191.4,\r\n 7238.95,\r\n 7222.6,\r\n 7217.9,\r\n 7359.3,\r\n 7371.55,\r\n 7371.15,\r\n 7469.2,\r\n 7429.25,\r\n 7434.65,\r\n 7451.1,\r\n 7475.25,\r\n 7566.25,\r\n 7556.8,\r\n 7525.55,\r\n 7555.45,\r\n 7560.9,\r\n 7490.7,\r\n 7527.6,\r\n 7551.9,\r\n 7514.85,\r\n 7577.95,\r\n 7592.3,\r\n 7621.95,\r\n 7707.95,\r\n 7859.1,\r\n 7815.7,\r\n 7739.0,\r\n 7778.7,\r\n 7839.45,\r\n 7756.45,\r\n 7669.2,\r\n 7580.45,\r\n 7452.85,\r\n 7617.25,\r\n 7701.6,\r\n 7606.8,\r\n 7620.05,\r\n 7513.85,\r\n 7498.45,\r\n 7575.45,\r\n 7601.95,\r\n 7589.1,\r\n 7525.85,\r\n 7569.5,\r\n 7702.5,\r\n 7812.7,\r\n 7803.75,\r\n 7816.3,\r\n 7851.15,\r\n 7912.2,\r\n 7972.8,\r\n 8145.0,\r\n 8161.1,\r\n 8121.05,\r\n 8071.25,\r\n 8088.2,\r\n 8154.45,\r\n 8148.3,\r\n 8122.05,\r\n 8132.65,\r\n 8074.55,\r\n 7952.8,\r\n 7885.55,\r\n 7733.9,\r\n 7897.15,\r\n 7973.15,\r\n 7888.5,\r\n 7842.8,\r\n 7838.4,\r\n 7909.85,\r\n 7892.75,\r\n 7897.75,\r\n 7820.05,\r\n 7904.4,\r\n 7872.2,\r\n 7847.5,\r\n 7849.55,\r\n 7789.6,\r\n 7736.35,\r\n 7819.4,\r\n 7875.35,\r\n 7871.8,\r\n 8076.5,\r\n 8114.8,\r\n 8193.55,\r\n 8217.1,\r\n 8235.05,\r\n 8215.3,\r\n 8216.4,\r\n 8301.55,\r\n 8235.25,\r\n 8229.75,\r\n 8201.95,\r\n 8164.95,\r\n 8107.85,\r\n 8128.0,\r\n 8122.9,\r\n 8165.5,\r\n 8340.7,\r\n 8423.7,\r\n 8423.5,\r\n 8514.3,\r\n 8481.85,\r\n 8487.7,\r\n 8506.9,\r\n 8626.2\r\n ],\r\n dates: [\r\n \"02 Jun 2017\",\r\n \"05 Jun 2017\",\r\n \"06 Jun 2017\",\r\n \"07 Jun 2017\",\r\n \"08 Jun 2017\",\r\n \"09 Jun 2017\",\r\n \"12 Jun 2017\",\r\n \"13 Jun 2017\",\r\n \"14 Jun 2017\",\r\n \"15 Jun 2017\",\r\n \"16 Jun 2017\",\r\n \"19 Jun 2017\",\r\n \"20 Jun 2017\",\r\n \"21 Jun 2017\",\r\n \"22 Jun 2017\",\r\n \"23 Jun 2017\",\r\n \"27 Jun 2017\",\r\n \"28 Jun 2017\",\r\n \"29 Jun 2017\",\r\n \"30 Jun 2017\",\r\n \"03 Jul 2017\",\r\n \"04 Jul 2017\",\r\n \"05 Jul 2017\",\r\n \"06 Jul 2017\",\r\n \"07 Jul 2017\",\r\n \"10 Jul 2017\",\r\n \"11 Jul 2017\",\r\n \"12 Jul 2017\",\r\n \"13 Jul 2017\",\r\n \"14 Jul 2017\",\r\n \"17 Jul 2017\",\r\n \"18 Jul 2017\",\r\n \"19 Jul 2017\",\r\n \"20 Jul 2017\",\r\n \"21 Jul 2017\",\r\n \"24 Jul 2017\",\r\n \"25 Jul 2017\",\r\n \"26 Jul 2017\",\r\n \"27 Jul 2017\",\r\n \"28 Jul 2017\",\r\n \"31 Jul 2017\",\r\n \"01 Aug 2017\",\r\n \"02 Aug 2017\",\r\n \"03 Aug 2017\",\r\n \"04 Aug 2017\",\r\n \"07 Aug 2017\",\r\n \"08 Aug 2017\",\r\n \"09 Aug 2017\",\r\n \"10 Aug 2017\",\r\n \"11 Aug 2017\",\r\n \"14 Aug 2017\",\r\n \"16 Aug 2017\",\r\n \"17 Aug 2017\",\r\n \"18 Aug 2017\",\r\n \"21 Aug 2017\",\r\n \"22 Aug 2017\",\r\n \"23 Aug 2017\",\r\n \"24 Aug 2017\",\r\n \"28 Aug 2017\",\r\n \"29 Aug 2017\",\r\n \"30 Aug 2017\",\r\n \"31 Aug 2017\",\r\n \"01 Sep 2017\",\r\n \"04 Sep 2017\",\r\n \"05 Sep 2017\",\r\n \"06 Sep 2017\",\r\n \"07 Sep 2017\",\r\n \"08 Sep 2017\",\r\n \"11 Sep 2017\",\r\n \"12 Sep 2017\",\r\n \"13 Sep 2017\",\r\n \"14 Sep 2017\",\r\n \"15 Sep 2017\",\r\n \"18 Sep 2017\",\r\n \"19 Sep 2017\",\r\n \"20 Sep 2017\",\r\n \"21 Sep 2017\",\r\n \"22 Sep 2017\",\r\n \"25 Sep 2017\",\r\n \"26 Sep 2017\",\r\n \"27 Sep 2017\",\r\n \"28 Sep 2017\",\r\n \"29 Sep 2017\",\r\n \"03 Oct 2017\",\r\n \"04 Oct 2017\",\r\n \"05 Oct 2017\",\r\n \"06 Oct 2017\",\r\n \"09 Oct 2017\",\r\n \"10 Oct 2017\",\r\n \"11 Oct 2017\",\r\n \"12 Oct 2017\",\r\n \"13 Oct 2017\",\r\n \"16 Oct 2017\",\r\n \"17 Oct 2017\",\r\n \"18 Oct 2017\",\r\n \"19 Oct 2017\",\r\n \"23 Oct 2017\",\r\n \"24 Oct 2017\",\r\n \"25 Oct 2017\",\r\n \"26 Oct 2017\",\r\n \"27 Oct 2017\",\r\n \"30 Oct 2017\",\r\n \"31 Oct 2017\",\r\n \"01 Nov 2017\",\r\n \"02 Nov 2017\",\r\n \"03 Nov 2017\",\r\n \"06 Nov 2017\",\r\n \"07 Nov 2017\",\r\n \"08 Nov 2017\",\r\n \"09 Nov 2017\",\r\n \"10 Nov 2017\",\r\n \"13 Nov 2017\",\r\n \"14 Nov 2017\",\r\n \"15 Nov 2017\",\r\n \"16 Nov 2017\",\r\n \"17 Nov 2017\",\r\n \"20 Nov 2017\",\r\n \"21 Nov 2017\",\r\n \"22 Nov 2017\",\r\n \"23 Nov 2017\",\r\n \"24 Nov 2017\",\r\n \"27 Nov 2017\",\r\n \"28 Nov 2017\"\r\n ]\r\n }\r\n };\r\n ","import { Component, OnInit } from '@angular/core'\r\nimport { ApexAxisChartSeries, ApexChart, ApexXAxis, ApexDataLabels, ApexTooltip, ApexStroke } from 'ng-apexcharts'\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n xaxis: ApexXAxis\r\n stroke: ApexStroke\r\n tooltip: ApexTooltip\r\n dataLabels: ApexDataLabels\r\n colors: any\r\n}\r\n\r\n@Component({\r\n selector: 'leap-area-spline-chart',\r\n templateUrl: './area-spline-chart.component.html',\r\n styleUrls: ['./area-spline-chart.component.scss'],\r\n})\r\nexport class AreaSplineChartComponent implements OnInit {\r\n public chartOptions: Partial\r\n constructor() {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Application Sent',\r\n data: [31, 40, 28, 51, 42, 109, 100],\r\n },\r\n {\r\n name: 'Interviews',\r\n data: [11, 32, 45, 32, 34, 52, 41],\r\n },\r\n ],\r\n colors: ['#2BC155', '#005594'],\r\n\r\n chart: {\r\n toolbar: {\r\n show: false,\r\n },\r\n height: 300,\r\n type: 'area',\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n },\r\n xaxis: {\r\n type: 'datetime',\r\n categories: [\r\n '2018-09-19T00:00:00.000Z',\r\n '2018-09-19T01:30:00.000Z',\r\n '2018-09-19T02:30:00.000Z',\r\n '2018-09-19T03:30:00.000Z',\r\n '2018-09-19T04:30:00.000Z',\r\n '2018-09-19T05:30:00.000Z',\r\n '2018-09-19T06:30:00.000Z',\r\n ],\r\n },\r\n tooltip: {\r\n x: {\r\n format: 'dd/MM/yy HH:mm',\r\n },\r\n },\r\n }\r\n }\r\n\r\n public generateData(baseval, count, yrange) {\r\n var i = 0\r\n var series = []\r\n while (i < count) {\r\n var x = Math.floor(Math.random() * (750 - 1 + 1)) + 1\r\n var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min\r\n var z = Math.floor(Math.random() * (75 - 15 + 1)) + 15\r\n\r\n series.push([x, y, z])\r\n baseval += 86400000\r\n i++\r\n }\r\n return series\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, ViewChild } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ChartComponent,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexYAxis,\r\n ApexTitleSubtitle,\r\n ApexXAxis,\r\n ApexFill,\r\n} from 'ng-apexcharts'\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n dataLabels: ApexDataLabels\r\n plotOptions: ApexPlotOptions\r\n yaxis: ApexYAxis\r\n xaxis: ApexXAxis\r\n fill: ApexFill\r\n title: ApexTitleSubtitle\r\n grid: ApexGrid\r\n}\r\n\r\n@Component({\r\n selector: 'leap-bar-chart',\r\n templateUrl: './bar-chart.component.html',\r\n styleUrls: ['./bar-chart.component.scss'],\r\n})\r\nexport class BarChartComponent {\r\n @ViewChild('chart') chart: ChartComponent\r\n public chartOptions: Partial\r\n constructor() {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Jobs Assigned',\r\n data: [12, 23, 32, 34, 35, 65, 43, 98, 31, 12, 34, 19],\r\n },\r\n ],\r\n chart: {\r\n height: 350,\r\n type: 'bar',\r\n toolbar: {\r\n show: false,\r\n },\r\n },\r\n grid: {\r\n show: false,\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n },\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n formatter: function (val) {\r\n return val + ''\r\n },\r\n offsetY: -20,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#304758'],\r\n },\r\n },\r\n\r\n xaxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n position: 'bottom',\r\n labels: {\r\n offsetY: 0,\r\n },\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n\r\n crosshairs: {\r\n fill: {\r\n type: 'gradient',\r\n gradient: {\r\n colorFrom: '#D8E3F0',\r\n colorTo: '#BED1E6',\r\n stops: [0, 100],\r\n opacityFrom: 0.4,\r\n opacityTo: 0.5,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n enabled: true,\r\n offsetY: -35,\r\n },\r\n },\r\n\r\n yaxis: {\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n show: false,\r\n formatter: function (val) {\r\n return val + ''\r\n },\r\n },\r\n },\r\n title: {\r\n text: '.',\r\n\r\n offsetY: 320,\r\n align: 'center',\r\n style: {\r\n color: '',\r\n },\r\n },\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, ViewChild } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ChartComponent,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexYAxis,\r\n ApexLegend,\r\n ApexStroke,\r\n ApexXAxis,\r\n ApexFill,\r\n ApexTooltip,\r\n} from 'ng-apexcharts'\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n dataLabels: ApexDataLabels\r\n plotOptions: ApexPlotOptions\r\n yaxis: ApexYAxis\r\n xaxis: ApexXAxis\r\n fill: ApexFill\r\n tooltip: ApexTooltip\r\n stroke: ApexStroke\r\n legend: ApexLegend\r\n}\r\n\r\n@Component({\r\n selector: 'leap-basic-chart',\r\n templateUrl: './basic-chart.component.html',\r\n styleUrls: ['./basic-chart.component.scss'],\r\n})\r\nexport class BasicChartComponent {\r\n @ViewChild('chart') chart: ChartComponent\r\n public chartOptions: Partial\r\n public selectedChartType: string\r\n public chartTypes = [\r\n { value: 'bar', viewValue: 'Bar Chart' },\r\n { value: 'line', viewValue: 'Line Chart' },\r\n { value: 'area', viewValue: 'Area Chart' },\r\n ]\r\n\r\n constructor() {\r\n this.selectedChartType = 'bar' // Default chart type\r\n this.setChartOptions()\r\n }\r\n\r\n setChartOptions() {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Contract',\r\n data: [44, 55, 57, 56, 61, 58, 63, 60, 66, 98, 87, 105],\r\n },\r\n {\r\n name: 'Permanent',\r\n data: [76, 85, 101, 98, 44, 55, 57, 87, 105, 91, 114, 94],\r\n },\r\n {\r\n name: 'Contract To Hire',\r\n data: [35, 41, 36, 26, 85, 101, 98, 45, 48, 52, 53, 41],\r\n },\r\n ],\r\n chart: {\r\n type: this.selectedChartType as ApexChart['type'],\r\n height: 350,\r\n toolbar: {\r\n show: false,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: false,\r\n columnWidth: '55%',\r\n },\r\n },\r\n\r\n stroke: {\r\n show: true,\r\n width: 2,\r\n curve: 'smooth',\r\n },\r\n xaxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n },\r\n\r\n fill: {\r\n opacity: 1,\r\n },\r\n tooltip: {\r\n y: {\r\n formatter: function (val) {\r\n return val + ' '\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n onChangeChartType() {\r\n this.setChartOptions()\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n {{ type.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexYAxis,\r\n ApexLegend,\r\n ApexStroke,\r\n ApexXAxis,\r\n ApexFill,\r\n ApexTooltip,\r\n} from 'ng-apexcharts'\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n dataLabels: ApexDataLabels\r\n plotOptions: ApexPlotOptions\r\n yaxis: ApexYAxis\r\n xaxis: ApexXAxis\r\n fill: ApexFill\r\n tooltip: ApexTooltip\r\n stroke: ApexStroke\r\n legend: ApexLegend\r\n colors: any\r\n}\r\n\r\n@Component({\r\n selector: 'leap-column-chart-job-statistics',\r\n templateUrl: './column-chart-job-statistics.component.html',\r\n styleUrls: ['./column-chart-job-statistics.component.scss'],\r\n})\r\nexport class ColumnChartJobStatisticsComponent implements OnInit {\r\n public chartOptions: Partial\r\n constructor() {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Net Profit',\r\n data: [44, 55, 57, 56, 61, 58, 63, 60, 66],\r\n },\r\n {\r\n name: 'Revenue',\r\n data: [76, 85, 101, 98, 87, 105, 91, 114, 94],\r\n },\r\n // {\r\n // name: \"Free Cash Flow\",\r\n // data: [35, 41, 36, 26, 45, 48, 52, 53, 41]\r\n // }\r\n ],\r\n colors: ['#F2C94C', '#005594'],\r\n\r\n chart: {\r\n toolbar: {\r\n show: false,\r\n },\r\n type: 'bar',\r\n height: 350,\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: false,\r\n columnWidth: '55%',\r\n // endingShape: \"rounded\"\r\n borderRadiusApplication: 'around',\r\n borderRadius: 3,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n show: true,\r\n width: 2,\r\n colors: ['transparent'],\r\n },\r\n xaxis: {\r\n categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'],\r\n },\r\n yaxis: {\r\n title: {\r\n text: '$ (thousands)',\r\n },\r\n },\r\n fill: {\r\n opacity: 1,\r\n },\r\n tooltip: {\r\n y: {\r\n formatter: function (val) {\r\n return '$ ' + val + ' thousands'\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexYAxis,\r\n ApexAnnotations,\r\n ApexFill,\r\n ApexStroke,\r\n ApexGrid,\r\n} from 'ng-apexcharts'\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n dataLabels: ApexDataLabels\r\n plotOptions: ApexPlotOptions\r\n yaxis: ApexYAxis\r\n xaxis: ApexXAxis\r\n annotations: ApexAnnotations\r\n fill: ApexFill\r\n stroke: ApexStroke\r\n grid: ApexGrid\r\n}\r\n\r\n@Component({\r\n selector: 'leap-column-chart',\r\n templateUrl: './column-chart.component.html',\r\n styleUrls: ['./column-chart.component.scss'],\r\n})\r\nexport class ColumnChartComponent implements OnInit {\r\n public chartOptions: Partial\r\n constructor() {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Servings',\r\n data: [\r\n 44, 55, 41, 67, 22, 43, 21, 33, 45, 31, 87, 65, 35, 55, 66, 89, 33, 66, 66, 88, 77, 66, 56, 45,\r\n 33, 66, 78, 86, 98, 34, 67, 45,\r\n ],\r\n },\r\n ],\r\n annotations: {\r\n points: [\r\n {\r\n x: 'Bananas',\r\n seriesIndex: 0,\r\n label: {\r\n borderColor: '#775DD0',\r\n offsetY: 0,\r\n style: {\r\n color: '#fff',\r\n background: '#775DD0',\r\n },\r\n text: 'job',\r\n },\r\n },\r\n ],\r\n },\r\n chart: {\r\n height: 350,\r\n type: 'bar',\r\n toolbar: {\r\n show: false,\r\n },\r\n },\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 3,\r\n borderRadiusApplication: 'around',\r\n columnWidth: '40%',\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n width: 2,\r\n },\r\n\r\n grid: {\r\n show: false,\r\n },\r\n xaxis: {\r\n categories: [\r\n 'S',\r\n 'M',\r\n 'T',\r\n 'W',\r\n 'T',\r\n 'F',\r\n 'S',\r\n 'S',\r\n 'M',\r\n 'T',\r\n 'W',\r\n 'T',\r\n 'F',\r\n 'S',\r\n 'S',\r\n 'M',\r\n 'T',\r\n 'W',\r\n 'T',\r\n 'F',\r\n 'S',\r\n 'S',\r\n 'M',\r\n 'T',\r\n 'W',\r\n 'T',\r\n 'F',\r\n 'M',\r\n 'T',\r\n 'W',\r\n 'T',\r\n 'F',\r\n ],\r\n tickPlacement: 'on',\r\n },\r\n\r\n fill: {\r\n colors: ['#005594'],\r\n\r\n type: 'gradient',\r\n gradient: {\r\n type: 'horizontal',\r\n gradientToColors: undefined,\r\n },\r\n },\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","\r\n
\r\n \r\n
","import { NgModule } from '@angular/core'\r\nimport { RouterModule, Routes } from '@angular/router'\r\nimport { CustomLayoutComponent } from '../custom-layout/custom-layout.component'\r\nimport { DashboardComponent } from './dashboard/dashboard.component'\r\nimport { MobexComponent } from './mobex/mobex.component'\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: DashboardComponent,\r\n },\r\n {\r\n path: \"mobex\",\r\n component: MobexComponent\r\n }\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class DashboardRoutingModule { }\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\n\r\nimport { DashboardRoutingModule } from './dashboard-routing.module'\r\nimport { MaterialModule } from '../material.module'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { HomeToolbarComponent } from '../shared/home-toolbar/home-toolbar.component'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { QuillModule } from 'ngx-quill'\r\nimport { BreadcrumbsModule } from 'src/app/shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { SharedModule } from '../shared/shared.module'\r\nimport { DashboardComponent } from './dashboard/dashboard.component'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatChipsModule } from '@angular/material/chips'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatFormFieldModule } from '@angular/material/form-field'\r\nimport { MatDialogModule } from '@angular/material/dialog'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner'\r\nimport { LineChartComponent } from './line-chart/line-chart.component'\r\nimport { NgApexchartsModule } from 'ng-apexcharts'\r\nimport { ColumnChartComponent } from './column-chart/column-chart.component'\r\nimport { ColumnChartJobStatisticsComponent } from './column-chart-job-statistics/column-chart-job-statistics.component'\r\nimport { DonutChartComponent } from './donut-chart/donut-chart.component'\r\nimport { AreaChartComponent } from './area-chart/area-chart.component'\r\nimport { AreaSplineChartComponent } from './area-spline-chart/area-spline-chart.component'\r\nimport { DashboardService } from './dashboard.service';\r\nimport { MobexComponent } from './mobex/mobex.component';\r\nimport { BarChartComponent } from './bar-chart/bar-chart.component';\r\nimport { SpineChartComponent } from './spine-chart/spine-chart.component';\r\nimport { BasicChartComponent } from './basic-chart/basic-chart.component';\r\nimport { JobCategoriesChartComponent } from './job-categories-chart/job-categories-chart.component'\r\nimport { JobStatusChartComponent } from './job-status-chart/job-status-chart.component'\r\n\r\n@NgModule({\r\n declarations: [\r\n JobStatusChartComponent,\r\n DashboardComponent,\r\n LineChartComponent,\r\n ColumnChartComponent,\r\n ColumnChartJobStatisticsComponent,\r\n DonutChartComponent,\r\n AreaChartComponent,\r\n AreaSplineChartComponent,\r\n MobexComponent,\r\n BarChartComponent,\r\n SpineChartComponent,\r\n BasicChartComponent,\r\n JobCategoriesChartComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n DashboardRoutingModule,\r\n MaterialModule,\r\n MatCardModule,\r\n SharedModule,\r\n BreadcrumbsModule,\r\n FlexLayoutModule,\r\n MaterialModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatChipsModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatFormFieldModule,\r\n MatDialogModule,\r\n NgApexchartsModule,\r\n MatProgressSpinnerModule,\r\n NgxLoadingModule.forRoot({}),\r\n QuillModule.forRoot({\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n\r\n [{ header: 1 }, { header: 2 }], // custom button values\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\r\n [{ indent: '-1' }, { indent: '+1' }], // outdent/indent\r\n [{ direction: 'rtl' }], // text direction\r\n\r\n [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\r\n [{ align: [] }],\r\n\r\n ['clean'], // remove formatting button\r\n\r\n ['link', 'image', 'video'], // link and image, video\r\n ],\r\n },\r\n }),\r\n ],\r\n\r\n providers: [HomeToolbarComponent, DashboardService],\r\n})\r\nexport class DashboardModule { }\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpParams, HttpErrorResponse, HttpHeaders, HttpRequest } from '@angular/common/http'\r\nimport {\r\n iInterviewSchedule,\r\n iConsultant,\r\n iResumeSkillDummy,\r\n iResumeProjectDummy,\r\n iConsultantEducationDatum,\r\n iConsultantEduandCertdummy,\r\n iConsultantRefernceData,\r\n iConsultantJob,\r\n iConsultantCredentials,\r\n iConsultantSearch,\r\n iInsurance,\r\n iCertificate,\r\n iInterview,\r\n iConsultantCertification,\r\n iConsultantEducation,\r\n} from 'src/app/models/consultant.model'\r\nimport { Observable, throwError as observableThrowError, of } from 'rxjs'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { iConsultantResumeData } from '../models/consultant.model'\r\nimport { iLocation } from '../models/location.model'\r\nimport { iContact } from '../models/contact.model'\r\nimport { Common } from '../common/common'\r\nimport { iDbResult } from '../models/common.model'\r\nimport { map } from 'rxjs/operators'\r\nimport { AbstractControl, AsyncValidatorFn, ValidationErrors } from '@angular/forms'\r\nimport { VonageCallDetails } from '../models/vonageCall.model'\r\nimport { DiceConsultant } from '../models/booleanSearch.model'\r\nimport { OpenJobChartParameter } from '../models/dashboard.model'\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n}\r\n@Injectable()\r\nexport class DashboardService {\r\n\r\n apiUrl = Common.apiUrl\r\n constructor(private http: HttpClient) { }\r\n getDashboardOpenJobChart(para: OpenJobChartParameter) {\r\n const url = Common.apiUrl + 'data/GetDashboardOpenJobChart'\r\n return this.http.post(url, para, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n return observableThrowError(errMessage)\r\n }\r\n return observableThrowError(error || 'Node.js server error')\r\n }\r\n\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core'\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner'\r\nimport { Router } from '@angular/router'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iMenuItem } from 'src/app/models/common.model'\r\nimport { iConsultantSearch } from 'src/app/models/consultant.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\n\r\n@Component({\r\n selector: 'leap-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n})\r\nexport class DashboardComponent implements OnInit, OnDestroy {\r\n recentActivites = [1, 2, 3, 4, 5, 6, 7]\r\n jobTrends = ['Engineer', 'Designer', 'Manager', 'Programmer', 'Blockchain']\r\n totalLength: number\r\n jobLoading: boolean\r\n totalCandidatesLength: number\r\n candidatesLoading: boolean\r\n constructor(\r\n private filterModelService: FilterModelService,\r\n private authService: AuthenticationService,\r\n private jobService: JobService,\r\n private consultantService: ConsultantService,\r\n private notifyService: NotificationService,\r\n private router: Router\r\n ) { }\r\n // will need\r\n // dashboardFilterOptions = this.filterModelService.getDashBoardFilters()\r\n mode: ProgressSpinnerMode = 'determinate'\r\n completeUserInfo: any\r\n completeUserName: string\r\n roleName: string;\r\n initials: string;\r\n private ngUnSubscribe$: Subject = new Subject()\r\n\r\n searchPara: {\r\n JobStatusID: string\r\n UserId: number\r\n\r\n };\r\n\r\n searchCriteria: iConsultantSearch;\r\n\r\n jobExist = false;\r\n candidatesExist = false;\r\n userRoleId: number; // need to remove after demo\r\n adminRoleId = UserRoleId.SUPER_ADMIN // need to remove after demo\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n ngOnInit(): void {\r\n this.completeUserInfo = JSON.parse(localStorage.getItem('userinfo'));\r\n this.roleName = this.completeUserInfo.roles[0].name;\r\n this.completeUserName = this.completeUserInfo.firstName + ' ' + this.completeUserInfo.lastName;\r\n this.initials = this.getInitialsFromName(this.completeUserName);\r\n const nevigationMenu: iMenuItem[] = JSON.parse(localStorage.getItem('nevigationMenu'));\r\n this.jobExist = nevigationMenu.some(s => s.MenuName?.toLowerCase() == 'job');\r\n if (this.jobExist) {\r\n this.getJobData();\r\n }\r\n\r\n this.candidatesExist = nevigationMenu.some(s => s.MenuName?.toLowerCase() == 'candidate');\r\n if (this.candidatesExist) {\r\n this.getCandidates();\r\n }\r\n this.userRoleId = this.authService.getCurrentUserRole() // need to remove after demo\r\n }\r\n\r\n getJobData() {\r\n this.totalLength = 0;\r\n this.jobLoading = true;\r\n this.searchPara = {\r\n JobStatusID: '3,4',\r\n UserId: this.authService.userInfo.userID,\r\n };\r\n\r\n this.jobService\r\n .getJobStatusCount(this.searchPara)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe(\r\n (jobs) => {\r\n this.totalLength = jobs[0].TotalCount;\r\n this.jobLoading = false\r\n },\r\n (err: any) => {\r\n this.totalLength = 0\r\n this.jobLoading = false;\r\n this.notifyService.showWarning('Error in fetching Job count' + err, 'Job count')\r\n }\r\n )\r\n }\r\n\r\n getCandidates() {\r\n this.searchCriteria = {\r\n CandidateDataSource: 64,\r\n ConsultantId: null, JobId: null, RequiredSkills: [\"\"], PrefferedSkills: [\"\"], CandidateName: \"\",\r\n CandidateType: \"\", CandidateStatusId: \"-1\", PostedFrom: null, PostedTo: null, RecruiterId: 0, City: \"\",\r\n StateCode: \"\", Zipcode: 0, Education: null, LegalStatus: \"\", JobType: \"\", Location: null, UserId: null,\r\n SourceTypeID: 64, LastUpdated: null, Availability: null, SortField: null, SortOrder: null, PageNumber: 1, PageSize: 10,\r\n IsJobCandidateSearch: false, SearchText: \"\", EmailAddress: \"\"\r\n };\r\n this.totalCandidatesLength = 0;\r\n this.candidatesLoading = true\r\n this.consultantService\r\n .getConsultantList(this.searchCriteria)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((consultants) => {\r\n this.totalCandidatesLength = consultants[0].TotalCount;\r\n this.candidatesLoading = false\r\n\r\n },\r\n (err: any) => {\r\n this.candidatesLoading = false\r\n this.notifyService.showWarning('Error in fetching candidates count' + err, 'Candidate count')\r\n })\r\n }\r\n getInitialsFromName(fullName: string) {\r\n let initialsArray = []\r\n fullName.split(' ').forEach((item) => {\r\n initialsArray.push(item[0])\r\n })\r\n return initialsArray.join('')\r\n\r\n\r\n }\r\n\r\n jobClick() {\r\n this.router.navigateByUrl('/jobs');\r\n }\r\n\r\n candidatesClick() {\r\n this.router.navigateByUrl('/candidates');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe$.next()\r\n this.ngUnSubscribe$.complete()\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{ totalLength }}\r\n
\r\n
Jobs (Open)
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{ totalCandidatesLength }}\r\n
\r\n\r\n
Candidates
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Outbound
\r\n
Call Duration
\r\n
\r\n
\r\n
\r\n
32 hr . 10 m . 51 S
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Total
\r\n
Call Duration
\r\n
\r\n
\r\n
\r\n
32 hr . 10 m . 51 S
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Call Summary\r\n Download Report\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Inbound Calls
\r\n
1456
\r\n
Outbound Calls
\r\n
942
\r\n
Missed Calls
\r\n
175
\r\n
Answered calls
\r\n
2356
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
Shortlisted Candidates
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
Job Comparison
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
Assigned Jobs
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
All Job Categories
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Job Stats
\r\n
\r\n \r\n
\r\n Application sent\r\n Interviews\r\n Rejected\r\n
\r\n \r\n \r\n This Month\r\n This Year\r\n Last Month\r\n Last Year\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
Job Applicant Details
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Applicants / Day\r\n Total-Out of 5231 views\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n 3845\r\n Applicant\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n 3845\r\n Interviews\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n 3845\r\n Forwards\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{ completeUserName }}
\r\n
{{ roleName }}
\r\n MOBEX Demo Link \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\n\r\nimport {\r\n ApexNonAxisChartSeries,\r\n ApexResponsive,\r\n ApexChart,\r\n ApexDataLabels,\r\n ApexLegend,\r\n ApexPlotOptions,\r\n ApexStroke,\r\n} from 'ng-apexcharts'\r\n\r\nexport type ChartOptions = {\r\n series: ApexNonAxisChartSeries\r\n chart: ApexChart\r\n responsive: ApexResponsive[]\r\n dataLabels: ApexDataLabels\r\n legend: ApexLegend\r\n plotOptions: ApexPlotOptions\r\n stroke: ApexStroke\r\n labels: any\r\n}\r\n\r\n@Component({\r\n selector: 'leap-donut-chart',\r\n templateUrl: './donut-chart.component.html',\r\n styleUrls: ['./donut-chart.component.scss'],\r\n})\r\nexport class DonutChartComponent implements OnInit {\r\n public chartOptions: Partial\r\n constructor() {\r\n this.chartOptions = {\r\n series: [1456, 942, 175, 2356],\r\n chart: {\r\n type: 'donut',\r\n },\r\n stroke: {\r\n show: true,\r\n lineCap: 'butt',\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n legend: {\r\n show: false,\r\n },\r\n plotOptions: {\r\n pie: {\r\n startAngle: 0,\r\n\r\n endAngle: 360,\r\n },\r\n },\r\n labels: ['Inbound Calls', 'Outbound Calls', 'Missed Calls', 'Answered calls'],\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200,\r\n },\r\n legend: {\r\n // show: false,\r\n // position: \"bottom\"\r\n },\r\n },\r\n },\r\n ],\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n
","import { Component, ViewChild } from '@angular/core'\r\nimport { ChartComponent } from 'ng-apexcharts'\r\n\r\nimport { ApexNonAxisChartSeries, ApexResponsive, ApexChart } from 'ng-apexcharts'\r\nexport type ChartOptions = {\r\n series: ApexNonAxisChartSeries\r\n chart: ApexChart\r\n responsive: ApexResponsive[]\r\n labels: any\r\n dataLabels: ApexDataLabels\r\n colors: any\r\n style: any\r\n}\r\n\r\n@Component({\r\n selector: 'leap-job-categories-chart',\r\n templateUrl: './job-categories-chart.component.html',\r\n styleUrls: ['./job-categories-chart.component.scss'],\r\n})\r\nexport class JobCategoriesChartComponent {\r\n @ViewChild('chart') chart: ChartComponent\r\n public chartOptions: Partial\r\n constructor() {\r\n this.chartOptions = {\r\n series: [44, 55, 13, 43, 22, 41],\r\n chart: {\r\n width: 450,\r\n type: 'pie',\r\n toolbar: {\r\n show: false,\r\n },\r\n },\r\n labels: ['Draft', 'Open', 'Closed', 'Hold', 'Canceled', 'Declined'],\r\n style: {\r\n fontSize: '16px', // Adjust the font size as needed\r\n },\r\n\r\n dataLabels: {\r\n enabled: false, // Hide the percentage labels\r\n },\r\n colors: ['#008ffb', '#00e396', '#feb019', '#ff4560', '#775dd0', '#c618ca63'],\r\n\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200,\r\n },\r\n legend: {\r\n position: 'bottom',\r\n },\r\n },\r\n },\r\n ],\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, ViewChild } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ChartComponent,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexYAxis,\r\n ApexTitleSubtitle,\r\n ApexXAxis,\r\n ApexFill,\r\n} from 'ng-apexcharts'\r\nimport { DashboardService } from '../dashboard.service'\r\nimport { OpenJobChartParameter } from 'src/app/models/dashboard.model'\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n dataLabels: ApexDataLabels\r\n plotOptions: ApexPlotOptions\r\n yaxis: ApexYAxis\r\n xaxis: ApexXAxis\r\n fill: ApexFill\r\n title: ApexTitleSubtitle\r\n grid: ApexGrid\r\n}\r\n\r\n@Component({\r\n selector: 'leap-job-status-chart',\r\n templateUrl: './job-status-chart.component.html',\r\n styleUrls: ['./job-status-chart.component.scss']\r\n})\r\nexport class JobStatusChartComponent {\r\n @ViewChild('chart') chart: ChartComponent\r\n public chartOptions: Partial\r\n openJobChartParameter: OpenJobChartParameter\r\n\r\n //public selectedChartType: string\r\n public selectedReportType: string\r\n public reportTypes = [\r\n { value: 'weekly', viewValue: 'weekly' },\r\n { value: 'monthly', viewValue: 'monthly' },\r\n { value: 'quarterly', viewValue: 'quarterly' },\r\n { value: 'yearly', viewValue: 'yearly' },\r\n]\r\n constructor(\r\n private dashboardService: DashboardService,\r\n ) {\r\n //this.selectedChartType = 'bar' // Default chart type\r\n this.selectedReportType ='monthly'\r\n \r\n this.getGraphData()\r\n }\r\n setChartOptions(){\r\n\r\n this.openJobChartParameter = {\r\n ChartType :'bar',\r\n ReportType :this.selectedReportType,\r\n JobStatusID :'3',\r\n UserId : 1 \r\n }\r\n\r\n }\r\n getGraphData(){\r\n this.setChartOptions()\r\n this.dashboardService\r\n .getDashboardOpenJobChart(\r\n this.openJobChartParameter\r\n )\r\n .subscribe((res) => {\r\n if (res != null) {\r\n this.displayGraph(res)\r\n } else {\r\n }\r\n \r\n (err: any) => {\r\n \r\n }\r\n })\r\n }\r\n displayGraph(data){\r\n var jobData = data.map(x => x.periodData);\r\n var periodType = data.map(x => x.PeriodType);\r\n\r\n\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Open Jobs',\r\n data: jobData//[12, 23, 32, 34, 35, 65, 43, 98, 31, 12, 34, 19],\r\n },\r\n ],\r\n chart: {\r\n height: 350,\r\n type: 'bar',\r\n toolbar: {\r\n show: false,\r\n },\r\n },\r\n grid: {\r\n show: false,\r\n },\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n position: 'top',\r\n },\r\n },\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n formatter: function (val) {\r\n return val + ''\r\n },\r\n offsetY: -20,\r\n style: {\r\n fontSize: '12px',\r\n colors: ['#304758'],\r\n },\r\n },\r\n\r\n xaxis: {\r\n categories: periodType, // ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n position: 'bottom',\r\n labels: {\r\n offsetY: 0,\r\n },\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n\r\n crosshairs: {\r\n fill: {\r\n type: 'gradient',\r\n gradient: {\r\n colorFrom: '#D8E3F0',\r\n colorTo: '#BED1E6',\r\n stops: [0, 100],\r\n opacityFrom: 0.4,\r\n opacityTo: 0.5,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n enabled: true,\r\n offsetY: -35,\r\n },\r\n },\r\n\r\n yaxis: {\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n show: false,\r\n formatter: function (val) {\r\n return val + ''\r\n },\r\n },\r\n },\r\n title: {\r\n text: '.',\r\n\r\n offsetY: 320,\r\n align: 'center',\r\n style: {\r\n color: '',\r\n },\r\n },\r\n }\r\n }\r\n\r\n\r\n\r\n onChangeChartType() {\r\n this.getGraphData()\r\n}\r\n}\r\n","
\r\n \r\n \r\n \r\n {{ type.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ApexXAxis,\r\n ApexYAxis,\r\n ApexDataLabels,\r\n ApexTitleSubtitle,\r\n ApexStroke,\r\n ApexGrid,\r\n ApexTooltip,\r\n ApexFill,\r\n} from 'ng-apexcharts'\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n xaxis: ApexXAxis\r\n yaxis: ApexYAxis\r\n dataLabels: ApexDataLabels\r\n grid: ApexGrid\r\n stroke: ApexStroke\r\n title: ApexTitleSubtitle\r\n tooltip: ApexTooltip\r\n fill: ApexFill\r\n colors: any\r\n}\r\n@Component({\r\n selector: 'leap-line-chart',\r\n templateUrl: './line-chart.component.html',\r\n styleUrls: ['./line-chart.component.scss'],\r\n})\r\nexport class LineChartComponent implements OnInit {\r\n public chartOptions: Partial\r\n constructor() {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Desktops',\r\n data: [200, 227, 400, 60, 30, 20, 0, 78],\r\n },\r\n ],\r\n\r\n colors: ['#005594'],\r\n\r\n chart: {\r\n toolbar: {\r\n show: false,\r\n },\r\n height: 100,\r\n\r\n type: 'line',\r\n zoom: {\r\n enabled: false,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n lineCap: 'butt',\r\n width: 4,\r\n },\r\n title: {\r\n text: 'Product Trends by Month',\r\n align: 'left',\r\n },\r\n grid: {\r\n show: false,\r\n },\r\n xaxis: {\r\n axisBorder: {\r\n show: false,\r\n },\r\n\r\n axisTicks: {\r\n show: false,\r\n },\r\n labels: {\r\n show: false,\r\n },\r\n },\r\n yaxis: {\r\n show: true,\r\n },\r\n tooltip: {\r\n enabled: false,\r\n },\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'leap-demo',\r\n templateUrl: './mobex.component.html',\r\n styleUrls: ['./mobex.component.scss']\r\n})\r\nexport class MobexComponent implements OnInit {\r\n\r\n constructor(\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n","import { Component, ViewChild } from '@angular/core'\r\nimport {\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ChartComponent,\r\n ApexDataLabels,\r\n ApexPlotOptions,\r\n ApexYAxis,\r\n ApexLegend,\r\n ApexStroke,\r\n ApexXAxis,\r\n ApexFill,\r\n ApexTooltip,\r\n} from 'ng-apexcharts'\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries\r\n chart: ApexChart\r\n dataLabels: ApexDataLabels\r\n plotOptions: ApexPlotOptions\r\n yaxis: ApexYAxis\r\n xaxis: ApexXAxis\r\n fill: ApexFill\r\n tooltip: ApexTooltip\r\n stroke: ApexStroke\r\n legend: ApexLegend\r\n}\r\n\r\n@Component({\r\n selector: 'leap-spine-chart',\r\n templateUrl: './spine-chart.component.html',\r\n styleUrls: ['./spine-chart.component.scss'],\r\n})\r\nexport class SpineChartComponent {\r\n @ViewChild('chart') chart: ChartComponent\r\n public chartOptions: Partial\r\n public selectedChartType: string\r\n public chartTypes = [\r\n { value: 'bar', viewValue: 'Bar Chart' },\r\n { value: 'line', viewValue: 'Line Chart' },\r\n { value: 'area', viewValue: 'Area Chart' },\r\n ]\r\n\r\n constructor() {\r\n this.selectedChartType = 'area'\r\n this.setChartOptions()\r\n }\r\n\r\n setChartOptions() {\r\n this.chartOptions = {\r\n series: [\r\n {\r\n name: 'Contract',\r\n data: [44, 55, 57, 56, 61, 58, 63, 60, 66, 98, 87, 105],\r\n },\r\n {\r\n name: 'Permanent',\r\n data: [76, 85, 101, 98, 44, 55, 57, 87, 105, 91, 114, 94],\r\n },\r\n {\r\n name: 'Contract To Hire',\r\n data: [35, 41, 36, 26, 85, 101, 98, 45, 48, 52, 53, 41],\r\n },\r\n ],\r\n chart: {\r\n type: this.selectedChartType as ApexChart['type'],\r\n height: 350,\r\n toolbar: {\r\n show: false,\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n bar: {\r\n horizontal: false,\r\n columnWidth: '55%',\r\n },\r\n },\r\n\r\n stroke: {\r\n show: true,\r\n width: 2,\r\n curve: 'smooth',\r\n },\r\n xaxis: {\r\n categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n },\r\n\r\n fill: {\r\n opacity: 1,\r\n },\r\n tooltip: {\r\n y: {\r\n formatter: function (val) {\r\n return val + ' '\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n onChangeChartType() {\r\n this.setChartOptions()\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n {{ type.viewValue }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core'\r\nimport { AuthenticationService } from '../services/authentication.service'\r\nimport { UserRoleId } from '../enums/userRolesId'\r\nimport { CandidateUserAction, ModulesNames, UserAction } from '../enums/userActions'\r\nimport { User } from 'oidc-client'\r\n\r\n@Directive({\r\n selector: '[leapIsCanAccess]',\r\n})\r\nexport class IsCanAccessDirective implements OnChanges {\r\n @Input() leapIsCanAccess: string // send actionName and CalledFor in object { calledFor: \"Company\", actionName: \"Add\"};\r\n calledFor: string\r\n actionName: string\r\n\r\n constructor(\r\n private _templateRef: TemplateRef,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _authService: AuthenticationService\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes['leapIsCanAccess'] &&\r\n changes['leapIsCanAccess'].currentValue != changes['leapIsCanAccess'].previousValue\r\n ) {\r\n this.calledFor = changes['leapIsCanAccess'].currentValue['calledFor']\r\n this.actionName = changes['leapIsCanAccess'].currentValue['actionName']\r\n this._checkIfCanViewElement(this.calledFor)\r\n }\r\n }\r\n\r\n private _checkIfCanViewElement(calledFor) {\r\n switch (calledFor) {\r\n case ModulesNames.COMPANY: {\r\n this._handleCompanyElements()\r\n break\r\n }\r\n case ModulesNames.JOB: {\r\n this._handleJobElements()\r\n break\r\n }\r\n case ModulesNames.CANDIDATE: {\r\n this._handleCandidateElements()\r\n break\r\n }\r\n }\r\n }\r\n\r\n private _handleCompanyElements() {\r\n const CURRENT_USER_ROLE = this._authService.getCurrentUserRole()\r\n switch (CURRENT_USER_ROLE) {\r\n case UserRoleId.HR:\r\n case UserRoleId.RECRUIT_ACC_MANAGER: {\r\n // need to hide all action elements from UI\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n } else {\r\n this._viewContainerRef.clear()\r\n }\r\n break\r\n }\r\n case UserRoleId.SUPER_ADMIN: {\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.clear()\r\n } else {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n }\r\n break\r\n }\r\n default: {\r\n if (this.actionName == UserAction.DELETE) {\r\n // need to hide delete action elements from UI\r\n this._viewContainerRef.clear()\r\n } else if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.clear()\r\n } else {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n }\r\n break\r\n }\r\n }\r\n }\r\n\r\n private _handleJobElements() {\r\n const CURRENT_USER_ROLE = this._authService.getCurrentUserRole()\r\n switch (CURRENT_USER_ROLE) {\r\n case UserRoleId.HR: {\r\n // need to hide all action elements from UI\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n } else {\r\n this._viewContainerRef.clear()\r\n }\r\n break\r\n }\r\n case UserRoleId.SUPER_ADMIN: {\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.clear()\r\n } else {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n }\r\n break\r\n }\r\n default: {\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.clear()\r\n } else {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n }\r\n break\r\n }\r\n }\r\n }\r\n\r\n private _handleCandidateElements() {\r\n const CURRENT_USER_ROLE = this._authService.getCurrentUserRole()\r\n switch (CURRENT_USER_ROLE) {\r\n case UserRoleId.HR: {\r\n // need to hide all action elements from UI\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n } else if (this.actionName === UserAction.DELETE) {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n } else {\r\n this._viewContainerRef.clear()\r\n }\r\n break\r\n }\r\n case UserRoleId.RECRUITER: {\r\n if (this.actionName === CandidateUserAction.APPROVE) {\r\n this._viewContainerRef.clear()\r\n } else if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.clear()\r\n } else {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n }\r\n break\r\n }\r\n case UserRoleId.SUPER_ADMIN: {\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.clear()\r\n } else {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n }\r\n break\r\n }\r\n default: {\r\n if (this.actionName === UserAction.VIEW) {\r\n this._viewContainerRef.clear()\r\n } else {\r\n this._viewContainerRef.createEmbeddedView(this._templateRef)\r\n }\r\n break\r\n }\r\n }\r\n }\r\n}\r\n","export enum BreadCrumbs {\r\n HOME = 'Home',\r\n COMPANY = 'Company',\r\n DASHBOARD = 'Dashboard',\r\n JOB = 'Jobs',\r\n CANDIDATE = 'Candidates',\r\n ADMIN = 'Roles & Permission',\r\n ADD = 'Add',\r\n JOB_STATUS = 'Job Status',\r\n EMAIL_LOGS=\"Email Logs\"\r\n}\r\n","export enum CallType {\r\n Inbound = 251,\r\n Outbound = 252,\r\n}\r\n\r\nexport enum CallStatus{\r\n Dialed = 243,\r\n Completed = 244,\r\n CompletedwithFailure = 245,\r\n NoAnswer = 246,\r\n Busy = 247,\r\n Rejected = 248,\r\n Failed = 249,\r\n Queued = 250\r\n}\r\nexport enum CallSource{\r\n Teams = 259,\r\n Vonage = 260,\r\n}\r\n","export enum CandidateFilterNames {\r\n SOURCE = 'Source',\r\n WORK_PERMIT = 'Work Permit',\r\n JOB_TITLE='Job Title',\r\n REQUIRED_SKILLS = 'Required Skills',\r\n PREFERRED_SKILLS = 'Preferred Skills',\r\n STATE = 'State',\r\n CITY = 'City',\r\n CANDIDATE_NAME = 'Candidate Name',\r\n LAST_RESUME_UPDATED = 'Last Resume Updated',\r\n CANDIDATE_EMAIL = 'Email Address',\r\n NONE = 'None',\r\n}\r\n\r\nexport enum CandidateJobFilterNames {\r\n Job_ID = 'Job ID',\r\n Email_Address = 'Email Address',\r\n Vendors = 'Vendors',\r\n Job_Title = 'Job Title',\r\n Customers = 'Customers',\r\n Customer_Contact = 'Customer Contact',\r\n USER = 'User',\r\n Recruiter = 'Recruiter',\r\n}\r\nexport enum EmailLogsFilterNames {\r\n To_Date = 'To Date',\r\n From_Date = 'From Date',\r\n Candidate_Email = 'Candidate Email',\r\n Recruiter_Email = 'Recruiter Email',\r\n Status = 'Status',\r\n}\r\n","export enum CompanyType {\r\n Vendor = 74,\r\n Client = 75,\r\n StaffingCompany = 76,\r\n MSP = 77,\r\n Others = 78\r\n}\r\n\r\nexport enum CompanyTypeNames{\r\n Vendor = 'Vendor',\r\n Client = 'Client',\r\n StaffingCompany = 'StaffingCompany',\r\n MSP = 'MSP',\r\n Others = 'Others'\r\n}","export enum ConsultantJobstatusID {\r\n CONSULTANT_VERIFICATION = 4,\r\n CON_JOB_SHORTLISTED = 16,\r\n CONSULTANT_JOB_APPOVAL_PENDING = 17,\r\n CONSULTANT_JOB_APPROVED = 18,\r\n CONSULTANT_JOB_REJECTED = 13,\r\n CONSULTANT_JOB_SUBMITTED = 19,\r\n CONSULTANT_JOB_INTERVIEW_SCHEDULED = 20,\r\n CONSULTANT_JOB_INTEVIEW_ACCEPTED = 21,\r\n CONSULTANT_JOB_INTEVIEW_REJECTED = 22,\r\n CONSULTANT_JOB_INTEVIEW_COMPLETED = 35,\r\n CONSULTANT_JOB_OFFER_PENDING = 23,\r\n CONSULTANT_JOB_OFFER_ACCEPTED = 24,\r\n CONSULTANT_JOB_OFFER_REJECTED = 25,\r\n CONSULTANT_JOB_ON_BOARDING = 26,\r\n CONSULTANT_JOB_HIRED = 27\r\n}\r\nexport enum ConsultantJobstatusName {\r\n CONSULTANT_VERIFICATION = 'verification',\r\n CONSULTANT_JOB_APPOVAL_PENDING = 'Approval Pending',\r\n CONSULTANT_JOB_APPROVE = 'Approved',\r\n CONSULTANT_JOB_REJECT = 'Rejected',\r\n CONSULTANT_JOB_SUBMIT = 'Submitted',\r\n CONSULTANT_JOB_INTERVIEW_SCHEDULE = 'interview-schedule',\r\n CONSULTANT_JOB_INTEVIEW_ACCEPT = 'interview-accept',\r\n CONSULTANT_JOB_INTEVIEW_REJECT = 'interview-reject',\r\n CONSULTANT_JOB_INTEVIEW_COMPLETE = 'interview-complete',\r\n CONSULTANT_JOB_OFFER_PENDING = 'offer-pending',\r\n CONSULTANT_JOB_OFFER_ACCEPT = 'offer-accept',\r\n CONSULTANT_JOB_OFFER_REJECT = 'offer-reject',\r\n CONSULTANT_JOB_ON_BOARDING = 'onboarding',\r\n CONSULTANT_JOB_HIRED = 'hire',\r\n}\r\nexport enum ActionId {\r\n Reject = 0,\r\n Approve = 1,\r\n InterviewSchedule = 1,\r\n}\r\nexport enum CandidateJobMenuId {\r\n CON_JOB_APPLIED = 11,\r\n CON_JOB_SHORTLISTED =34,\r\n CON_JOB_REJECTED = 35,\r\n CON_JOB_APVAL_PENDNG =38,\r\n CON_JOB_APPROVED = 39,\r\n CON_JOB_SUBMITTED = 40,\r\n CON_JOB_INTRVW_SCHEDUNG = 41,\r\n CON_JOB_INTRVW_ACCEPT = 42,\r\n CON_JOB_INTRVW_REJECT = 43,\r\n CON_JOB_OFFER_PENDNG = 44,\r\n CON_JOB_OFFER_ACCEPT = 45,\r\n CON_JOB_OFFER_REJECT = 46,\r\n CON_JOB_ONBOARDING = 45,\r\n CON_JOB_HIRED = 48,\r\n CON_JOB_TERMINATED = 49,\r\n CON_JOB_MATCHED = 50,\r\n CON_JOB_INT_CANCEL = 56,\r\n CON_JOB_INT_COMPLETED = 57,\r\n CON_JOB_WITHDRAW = 58,\r\n CON_JOB_INTVW_ANOTHER = 69,\r\n CON_JOB_STATUS = 70,\r\n CON_JOB_PREVIEW =71\r\n}\r\n","export enum DialogActions {\r\n CLOSE = 'close',\r\n}\r\n","export enum EmailRequestID {\r\n CONSULTANT_VERIFICATION = 4,\r\n CONSULTANT_JOB_APPOVAL_PENDING = 8,\r\n CONSULTANT_JOB_APPROVED = 9,\r\n CONSULTANT_JOB_REJECTED = 10,\r\n CONSULTANT_JOB_SUBMITTED = 11,\r\n CONSULTANT_JOB_INTERVIEW_SCHEDULED = 12,\r\n CONSULTANT_JOB_INTEVIEW_ACCEPTED = 13,\r\n CONSULTANT_JOB_INTEVIEW_REJECTED = 14,\r\n CONSULTANT_JOB_INTEVIEW_COMPLETED = 21,\r\n CONSULTANT_JOB_OFFER_PENDING = 15,\r\n CONSULTANT_JOB_OFFER_ACCEPTED = 16,\r\n CONSULTANT_JOB_OFFER_REJECTED = 17,\r\n CONSULTANT_JOB_ON_BOARDING = 18,\r\n CONSULTANT_JOB_HIRED = 19,\r\n}\r\nexport enum EmailRequestTypes {\r\n CONSULTANT_VERIFICATION = 'verification',\r\n CONSULTANT_JOB_APPOVAL_PENDING = 'approval-pending',\r\n CONSULTANT_JOB_APPROVE = 'approve',\r\n CONSULTANT_JOB_REJECT = 'reject',\r\n CONSULTANT_JOB_SUBMIT = 'submit',\r\n CONSULTANT_JOB_INTERVIEW_SCHEDULE = 'interview-schedule',\r\n CONSULTANT_JOB_INTEVIEW_ACCEPT = 'interview-accept',\r\n CONSULTANT_JOB_INTEVIEW_REJECT = 'interview-reject',\r\n CONSULTANT_JOB_INTEVIEW_COMPLETE = 'interview-complete',\r\n CONSULTANT_JOB_OFFER_PENDING = 'offer-pending',\r\n CONSULTANT_JOB_OFFER_ACCEPT = 'offer-accept',\r\n CONSULTANT_JOB_OFFER_REJECT = 'offer-reject',\r\n CONSULTANT_JOB_ON_BOARDING = 'onboarding',\r\n CONSULTANT_JOB_HIRED = 'hire',\r\n CONSULTANT_JOB_REQUEST_FORMATTED_RESUME = 'request-formattedresume',\r\n CONSULTANT_JOB_COMPLETED_FORMATTED_RESUME = 'completed-formattedresume',\r\n}\r\nexport enum ActionId {\r\n Reject = 0,\r\n Approve = 1,\r\n InterviewSchedule = 1,\r\n}\r\n","export enum CandidateAction {\r\n Reject,\r\n Accept\r\n}\r\n\r\nexport enum CandidateStatusName {\r\n Reject = 'Reject',\r\n Submit = 'Submit',\r\n Approved = 'Approved',\r\n Preview_And_Submit = 'Preview & Submit',\r\n Interview_Accept = 'Interview Accept',\r\n Interview_Accepted = 'Interview Accepted',\r\n Interview_Schedule = \"Interview Schedule\"\r\n\r\n}","export const Interview_Schedule = 'Interview Schedule'\r\n","export enum InterviewTypeId {\r\n FACE2FACE = 18,\r\n PHONE = 19,\r\n VIDEO = 20,\r\n ONLINE_TEST = 21,\r\n}\r\nexport const InterviewTypeText = {\r\n [InterviewTypeId.FACE2FACE]: 'Face to face',\r\n [InterviewTypeId.PHONE]: 'Phone',\r\n [InterviewTypeId.VIDEO]: 'Video',\r\n [InterviewTypeId.ONLINE_TEST]: 'Online test',\r\n}\r\n","export enum JobStatusText {\r\n Draft = 'Draft',\r\n Open = 'Open',\r\n Hold = 'Hold',\r\n Closed = 'Closed',\r\n Cancelled = 'Cancelled',\r\n Declined = 'Declined',\r\n}\r\n","export enum JobCandidateTab {\r\n Navigate_Job_Candidate_tab = 'candidate',\r\n}\r\nexport declare const enum JobTabsType {\r\n Job_Edit_Tab = 0,\r\n Candidate_Tab = 1,\r\n}\r\n","export enum JobDialogTypes {\r\n Upload = 'upload',\r\n Description = 'description',\r\n Details = 'details',\r\n Other = 'other',\r\n Education = 'education',\r\n Skills = 'skills',\r\n Questionnaire = 'questionnaire',\r\n SoftSkills = 'softSkills',\t\r\n}","export enum JobKeyWords {\r\n JOBTITLE = 'JobTitle',\r\n CONTACTEMAIL = 'ContactEmail',\r\n CONTACTENAME = 'ContactName',\r\n CONTACTPHONE = 'ContactPhone',\r\n JOBECODE = 'JobCode',\r\n CUSTOMER = 'Customer',\r\n COMPANYID = 'CompanyId',\r\n CONTACTID = 'ContactId',\r\n STREETADDRESS = 'Address',\r\n CITY = 'City',\r\n STATE = 'State',\r\n STATE_CODE = 'State_Code',\r\n ZIPCODE = 'Zipcode',\r\n COUNTRY = 'Country',\r\n STARTDATE ='StartDate',\r\n EndDate ='EndDate',\r\n ExpiryDate ='ExpiryDate',\r\n InterviewTypeID ='InterviewTypeID',\r\n Positions ='Positions',\r\n MaximumSubmission ='MaximumSubmission',\r\n HoursPerDay ='HoursPerDay',\r\n HoursPerWeek = 'HoursPerWeek',\r\n ExpensesAllowed = 'ExpensesAllowed',\r\n BillRate = 'BillRate',\r\n Duration = 'Duration',\r\n WORK_OPTION_ID=\"WorkOptionID\"\r\n}","export enum JobTypes {\r\n Contract = 10,\r\n ContractToHire = 11,\r\n Permanent = 12,\r\n}\r\n","export enum LocationType {\r\n Primary = 149,\r\n Secondary = 150\r\n}","export enum LookUpTypes {\r\n EXPLEVEL = 'ExperienceLevel',\r\n WORKID = 'WorkOptionID',\r\n DEGREEID = 'DegreeTypeID',\r\n JOBID = 'JobTypelD',\r\n LEGALID = 'LegalTypeID',\r\n INTERVIEWID = 'InterviewTypeId',\r\n BGCHECKID = 'BkGrondChkID',\r\n}\r\n\r\nexport enum LookUpTypesIds {\r\n BackgroundChecks = 154,\r\n Work_Authorization = 155,\r\n}\r\n","export enum MarkupTypeIds {\r\n Max_Markup = 202,\r\n Goal_Markup = 203\r\n}\r\n\r\nexport enum MarkupTypeNames {\r\n Max_Markup = 'Max Markup',\r\n Goal_Markup = 'Goal Markup'\r\n}","export enum NotesType {\r\n Interview_Debrief = 196,\r\n Interview_Prep = 197,\r\n Intake_Calls = 198,\r\n Onboarding = 199,\r\n General = 200,\r\n}\r\n","export enum ResumeKeywords {\r\n CandidateName = 'CandidateName',\r\n FirstName = 'FirstName',\r\n LastName = 'LastName',\r\n MiddleName = 'MiddleName',\r\n Email = 'Email',\r\n Phone = 'Phone',\r\n AddressLine1 = 'AddressLine1',\r\n YouTube = 'YouTube',\r\n GitHub = 'GitHub',\r\n Linkedin = 'Linkedin',\r\n StackOverFlow = 'StackOverFlow',\r\n Experience = 'Experience',\r\n JobTitle = 'JobTitle',\r\n JobTitleId = 'JobTitleId',\r\n City = 'City',\r\n State = 'State',\r\n StateCode = 'StateCode',\r\n Zipcode = 'Zipcode',\r\n}\r\n\r\nexport enum ResumeFileType {\r\n NOT_FORMATTED = 237,\r\n FORMATTED = 238,\r\n}\r\n","export enum StepperButtonType {\r\n Next = 'next',\r\n Previous = 'previous'\r\n}","export enum SubmitCountFilterEnum {\r\n ZeroSubmission = '1',\r\n NeedMoreSubmission = '2',\r\n MaxSubmitReached = '3'\r\n}","export enum UnitsForFile {\r\n GB = 'GB',\r\n MB = 'MB',\r\n}\r\n\r\nexport enum FilesTypes {\r\n IMG = 'img',\r\n PNG = 'png',\r\n JPG = 'jpg',\r\n JPEG = 'jpeg',\r\n DOCX = 'docx',\r\n DOC = 'doc',\r\n CSV = 'csv',\r\n PDF = 'pdf',\r\n}\r\n\r\nexport enum InputType {\r\n DROP = 'insertFromDrop',\r\n PASTE = 'insertFromPaste',\r\n}","// user actions\r\nexport enum UserAction {\r\n ADD = 'ADD',\r\n EDIT = 'EDIT',\r\n DELETE = 'DELETE',\r\n VIEW = 'VIEW'\r\n}\r\n\r\nexport enum CandidateUserAction {\r\n APPROVE = 'APPROVE'\r\n}\r\n\r\n// module names\r\nexport enum ModulesNames {\r\n DASHBOARD = 'DASHBOARD',\r\n COMPANY = 'COMPANY',\r\n CANDIDATE = 'CANDIDATE',\r\n JOB = 'JOB'\r\n}\r\n\r\n// user action with modules\r\nexport const COMPANY_ADD_ACTION = { calledFor: ModulesNames.COMPANY, actionName: UserAction.ADD, }\r\nexport const COMPANY_EDIT_ACTION = { calledFor: ModulesNames.COMPANY, actionName: UserAction.EDIT }\r\nexport const COMPANY_DELETE_ACTION = { calledFor: ModulesNames.COMPANY, actionName: UserAction.DELETE }\r\nexport const COMPANY_VIEW_ACTION = { calledFor: ModulesNames.COMPANY, actionName: UserAction.VIEW }\r\n\r\nexport const CANDIDATE_ADD_ACTION = { calledFor: ModulesNames.CANDIDATE, actionName: UserAction.ADD, }\r\nexport const CANDIDATE_EDIT_ACTION = { calledFor: ModulesNames.CANDIDATE, actionName: UserAction.EDIT }\r\nexport const CANDIDATE_DELETE_ACTION = { calledFor: ModulesNames.CANDIDATE, actionName: UserAction.DELETE }\r\nexport const CANDIDATE_VIEW_ACTION = { calledFor: ModulesNames.CANDIDATE, actionName: UserAction.VIEW }\r\nexport const CANDIDATE_APPROVE_ACTION = { calledFor: ModulesNames.CANDIDATE, actionName: CandidateUserAction.APPROVE }\r\n\r\nexport const JOB_ADD_ACTION = { calledFor: ModulesNames.JOB, actionName: UserAction.ADD, }\r\nexport const JOB_EDIT_ACTION = { calledFor: ModulesNames.JOB, actionName: UserAction.EDIT }\r\nexport const JOB_DELETE_ACTION = { calledFor: ModulesNames.JOB, actionName: UserAction.DELETE }\r\nexport const JOB_VIEW_ACTION = { calledFor: ModulesNames.JOB, actionName: UserAction.VIEW }\r\n\r\nexport const DASHBOARD_ADD_ACTION = { calledFor: ModulesNames.DASHBOARD, actionName: UserAction.ADD, }\r\nexport const DASHBOARD_EDIT_ACTION = { calledFor: ModulesNames.DASHBOARD, actionName: UserAction.EDIT }\r\nexport const DASHBOARD_DELETE_ACTION = { calledFor: ModulesNames.DASHBOARD, actionName: UserAction.DELETE }\r\nexport const DASHBOARD_VIEW_ACTION = { calledFor: ModulesNames.DASHBOARD, actionName: UserAction.VIEW }\r\n","export enum UserRoleId {\r\n SUPER_ADMIN = 1,\r\n ATS_ADMIN,\r\n VMS_ADMIN,\r\n USER,\r\n CONSULTANT,\r\n HR,\r\n RECRUIT_ACC_MANAGER,\r\n RECRUITER,\r\n BUSINESS_DEVELOPMENT,\r\n DELIVERY_MANAGER,\r\n RECRUIT_SUPPORT_TEAM,\r\n FINANCE_ACCOUNTING,\r\n HIRING_MANAGER,\r\n COMPANY_ADMIN,\r\n OTHER,\r\n CLIENT_EXE_ADMIN,\r\n VENDOR_EXE_ADMIN,\r\n PROGRAM_MANAGER,\r\n}","export declare const enum ValueType {\r\n Text = 162,\r\n Number = 163,\r\n boolean = 164,\r\n JSON = 206,\r\n}\r\n\r\nexport enum ConfigTypeId {\r\n Burden_Rate = 205,\r\n Job_Setting_Type_ID = 161,\r\n}\r\n","export enum WorkOption {\r\n Remote = 209,\r\n Onsite = 210,\r\n Hybrid = 211,\r\n}\r\n\r\nexport enum WorkOptionText {\r\n Remote = 'Remote',\r\n Onsite = 'Onsite',\r\n Hybrid = 'Hybrid',\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'\r\nimport { JwtHelperService } from '@auth0/angular-jwt'\r\nimport { Observable } from 'rxjs'\r\nimport { Common } from '../common/common'\r\nimport { AuthenticationService } from '../services/authentication.service'\r\nimport { NavigationService } from 'src/app/shared/core/services/navigation.service'\r\nimport { CommonMatDialogService } from '../services/common-mat-dialog.service'\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private authService: AuthenticationService,\r\n private navigationService: NavigationService,\r\n private _commonMatDialogService: CommonMatDialogService\r\n ) { }\r\n\r\n canActivate(\r\n //// ToDo : check for roles after access token verification\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean {\r\n let token = localStorage.getItem('access_token')\r\n let helper = new JwtHelperService()\r\n if (!token || helper.isTokenExpired(token)) {\r\n this._commonMatDialogService.closeAll() // remove all active dialogs\r\n this.router.navigate(['']) // go to login if not authenticated\r\n return false\r\n } else {\r\n let hasAccess: boolean\r\n let navigationItems = this.navigationService.items\r\n navigationItems.forEach((item) => {\r\n if (state.url.includes(item.MenuUrl)) {\r\n hasAccess = true\r\n }\r\n })\r\n // ToDo: Need to check - It is not working when login wih office365\r\n // if (!hasAccess) {\r\n // this.router.navigate(['']); // go to dashboard/login if not page asscess.\r\n // return false;\r\n // }\r\n\r\n let userProfile = localStorage.getItem('userinfo')\r\n if (userProfile) {\r\n this.authService.userInfo = JSON.parse(userProfile)\r\n Common.userProfile = this.authService.userInfo\r\n }\r\n return true\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router'\r\nimport { Observable } from 'rxjs'\r\nimport { ADD_PATH, CANDIDATES_PATH, COMPANY_PATH, DASHBOARD_PATH, JOBS_PATH } from '../constants/page-path'\r\nimport { AuthenticationService } from '../services/authentication.service'\r\nimport { NotificationService } from '../services/notification.service'\r\nimport { UserRoleId } from '../enums/userRolesId'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IsCanAccessPageGuard implements CanActivate {\r\n constructor(\r\n private _authService: AuthenticationService,\r\n private _router: Router,\r\n private _notificationService: NotificationService\r\n ) { }\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean | UrlTree {\r\n const CURRENT_USER_ROLE = this._authService.getCurrentUserRole()\r\n const CURRENT_PATH = this._getCurrentUrlPath(route)\r\n if (CURRENT_PATH.includes(DASHBOARD_PATH)) {\r\n return true\r\n } else if (CURRENT_PATH?.includes(COMPANY_PATH)) {\r\n if (CURRENT_USER_ROLE == UserRoleId.RECRUITER) {\r\n this._showPageNotAccessibleToast()\r\n void this._router.navigate([`${DASHBOARD_PATH}`])\r\n return false\r\n }\r\n else if (\r\n CURRENT_PATH?.includes(ADD_PATH) &&\r\n (CURRENT_USER_ROLE == UserRoleId.HR || CURRENT_USER_ROLE == UserRoleId.RECRUIT_ACC_MANAGER)\r\n ) {\r\n // need to create roles enum\r\n // company add\r\n this._showPageNotAccessibleToast()\r\n void this._router.navigate([`${COMPANY_PATH}`])\r\n return false\r\n }\r\n return true\r\n } else if (CURRENT_PATH?.includes(JOBS_PATH)) {\r\n if (CURRENT_PATH?.includes(ADD_PATH) && CURRENT_USER_ROLE == UserRoleId.HR) {\r\n // need to create roles enum\r\n // job add\r\n this._showPageNotAccessibleToast()\r\n void this._router.navigate([`${JOBS_PATH}`])\r\n return false\r\n }\r\n return true\r\n } else if (CURRENT_PATH?.includes(CANDIDATES_PATH)) {\r\n if (CURRENT_PATH?.includes(ADD_PATH) && CURRENT_USER_ROLE == UserRoleId.HR) {\r\n // need to create roles enum\r\n // candidate add\r\n this._showPageNotAccessibleToast()\r\n void this._router.navigate([`${CANDIDATES_PATH}`])\r\n return false\r\n }\r\n return true\r\n }\r\n return true\r\n }\r\n\r\n private _getCurrentUrlPath(route: ActivatedRouteSnapshot): string {\r\n return route.pathFromRoot\r\n .filter((v) => v.routeConfig)\r\n .map((v) => v.routeConfig!.path)\r\n .join('/')\r\n }\r\n\r\n private _showPageNotAccessibleToast() {\r\n this._notificationService.showError(\"You don't have permission to view that page.\", '')\r\n }\r\n}\r\n","import { iLocation } from \"../models/location.model\";\r\n\r\nexport class CommonData {\r\n static activeCompany: any;\r\n static activeCompanyLogo: any;\r\n static activeLocation:iLocation;\r\n static defaultCompanyId = 0;\r\n static defaultContactId = 0;\r\n}\r\n","import { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms'\r\nimport { ErrorStateMatcher } from '@angular/material/core'\r\n\r\nexport class CustomErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: AbstractControl, form: FormGroupDirective | NgForm): boolean {\r\n const isSubmitted = form && form.submitted\r\n return control && control.invalid && (control.dirty || control.touched || isSubmitted)\r\n }\r\n}\r\n","\r\nimport { Directive, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appPhoneMask][formControlName],[appPhoneMask][formControl],[appPhoneMask][ngModel]',\r\n\r\n})\r\nexport class PhoneMaskDirective {\r\n\r\n constructor(public ngControl: NgControl) { }\r\n\r\n @HostListener('ngModelChange', ['$event'])\r\n onModelChange(event) {\r\n this.onInputChange(event, false);\r\n \r\n }\r\n\r\n @HostListener('keydown.backspace', ['$event'])\r\n keydownBackspace(event) {\r\n this.onInputChange(event.target.value, true);\r\n }\r\n\r\n\r\n onInputChange(event, backspace) {\r\n if (event) {\r\n let newVal = event;\r\n let regex = /^[(]?\\d{3}[)]?[(\\s)?.-]\\d{3}[\\s.-]\\d{4}?/;\r\n let matched = newVal.match(regex);\r\n if (matched) {\r\n let eventLength = newVal.replace(/[^0-9]/g, \"\").length;\r\n if (eventLength > 10) {\r\n newVal = newVal.substring(0, 14);\r\n this.ngControl.valueAccessor.writeValue(newVal);\r\n return;\r\n };\r\n }\r\n newVal = event.replace('+1', '');\r\n newVal = newVal.replace(/\\D/g, '');\r\n if (backspace && newVal.length <= 6) {\r\n newVal = newVal.substring(0, newVal.length - 1);\r\n }\r\n if (newVal.length === 0) {\r\n newVal = '';\r\n } else if (newVal.length <= 3) {\r\n newVal = newVal.replace(/^(\\d{0,3})/, '($1)');\r\n } else if (newVal.length <= 6) {\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})/, '($1) $2');\r\n } else if (newVal.length <= 10) {\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(\\d{0,4})/, '($1) $2-$3');\r\n } else {\r\n newVal = newVal.substring(newVal.length - 10);\r\n //newVal = newVal.substring(0, 10);\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,3})(\\d{0,4})/, '($1) $2-$3');\r\n }\r\n this.ngControl.valueAccessor.writeValue(newVal);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appTTwoDigitDecimalNumber]'\r\n \r\n})\r\nexport class TwoDigitDecimalNumberDirective {\r\n private regex: RegExp = new RegExp(/^\\d*\\.?\\d{0,2}$/g);\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n \r\n constructor(private el: ElementRef) {\r\n }\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}","import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core'\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'\r\nimport { map, switchMap, takeUntil, withLatestFrom } from 'rxjs/operators'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { JobDialogTypes } from 'src/app/enums/jobDialogType'\r\nimport { JOB_ADD_ACTION, JOB_DELETE_ACTION, JOB_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport {\r\n BackgroundCheck,\r\n Contact,\r\n DegreeType,\r\n iJob,\r\n iJobCertification,\r\n iJobEducation,\r\n iJobInterviewType,\r\n iJobLegalType,\r\n InterviewType,\r\n JobType,\r\n LegalType,\r\n Skill,\r\n SkillLevel,\r\n User,\r\n WorkOptions,\r\n JobData,\r\n} from 'src/app/models/job.model'\r\nimport { fadeInUp400ms } from 'src/app/shared/core/animations/fade-in-up.animation'\r\nimport { JobDialogComponent } from '../job-dialog/job-dialog.component'\r\nimport { Observable, of, Subject } from 'rxjs'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { JobService } from '../job.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { Company, iCompany } from 'src/app/models/company.model'\r\nimport { forbiddenNamesValidator } from '../job-details/job-details.component'\r\nimport { iCategory, iKeyValue, iStates } from 'src/app/models/common.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { ConfigTypeId } from 'src/app/enums/valueType'\r\nimport { LookUpTypesIds } from 'src/app/enums/lookUpValues'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { CategoryValues } from 'src/app/models/category'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'\r\nimport { MatChipInputEvent } from '@angular/material/chips'\r\nimport { ActivatedRoute } from '@angular/router'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { MatDrawer } from '@angular/material/sidenav'\r\nimport { Router } from '@angular/router'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\nimport { MatSelectChange } from '@angular/material/select'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { LocationService } from 'src/app/services/location.service'\r\n@Component({\r\n selector: 'leap-job-add',\r\n templateUrl: './job-add.component.html',\r\n styleUrls: ['./job-add.component.scss'],\r\n animations: [fadeInUp400ms],\r\n})\r\nexport class JobAddComponent implements OnInit, OnDestroy, AfterViewInit {\r\n isViewOnly = false // Control for disabled state\r\n acceptFiletype = ['.doc', '.docx', '.pdf'] // Supported file types\r\n files: File[] = [] // Store selected files\r\n fileName: string\r\n jobForm: FormGroup\r\n jobDetails: FormGroup\r\n @ViewChild('booleanTextarea', { static: false }) booleanTextarea: ElementRef\r\n @ViewChild('alternateTextarea', { static: false }) alternateTextarea: ElementRef\r\n @ViewChild('sidenav') sidenav: MatDrawer\r\n private _destroy$: Subject = new Subject()\r\n job: iJob = {}\r\n jobDetail: any\r\n jobId: number\r\n expiryDate: any\r\n jobEducations: any\r\n similarTitles: Array = new Array()\r\n isShowAdvance: boolean = false\r\n booleanQuery: any\r\n alternateQuery: any\r\n loading: boolean = false\r\n typeOfItemToBeDeleted: string\r\n indexOfItemToBeDeleted: number\r\n jobSkillData: iJob = Common.activeJob\r\n deleteIconSrc = Common.RedDeleteIcon\r\n jobStatus = Common.enumJobStatuses\r\n public IsAddJobPermission: boolean\r\n education: string\r\n jobAddAction = JOB_ADD_ACTION\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobDeleteAction = JOB_DELETE_ACTION\r\n certificationArray: Array = []\r\n educationcArray: Array = []\r\n selectedEducations = []\r\n jobEducationCertificationData: iJob\r\n certifications: string\r\n locationList:any\r\n public get jobDialogType(): typeof JobDialogTypes {\r\n return JobDialogTypes\r\n }\r\n salaryDisplayOptions$: Observable = this.jobService.getLookup('SalaryDisplayTypeID') as Observable<\r\n iKeyValue[]\r\n >\r\n isFileUploaded: boolean = false\r\n jobskillArray: any[] = []\r\n softSkillNames: any[] = []\r\n reqSkillCount: number = 0\r\n skills = []\r\n skillLevels: SkillLevel[]\r\n calledFrom: string\r\n hideLocation: boolean\r\n workOptions: WorkOptions[]\r\n selectedWorkOptionID: number\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n selectedCompanyId: number\r\n jobLocation: iLocation\r\n jobTypevalue: number\r\n minBillRate = 1\r\n // travelPercent: HTMLTemplateElement\r\n @ViewChild('travelPercentage', { static: false }) travelPercent: ElementRef\r\n showSalary: boolean\r\n showBillRate: boolean\r\n jobtypes: JobType[]\r\n minStartDate: Date = new Date()\r\n minEndDate: Date = new Date()\r\n matcher = new CustomErrorStateMatcher()\r\n maxSubmissionDate: Date\r\n minDate: Date = new Date()\r\n titles: any = []\r\n companies: any = []\r\n programManager: any = []\r\n activeJob = Common.activeJob\r\n hiringManager: any = []\r\n isMSPClient: boolean\r\n selectedMspContactId: number\r\n selectedContactId: number\r\n tempHiringManager: any\r\n tempProgramManager: any\r\n industries: any = []\r\n tempCompanies: any\r\n selectedIndustryId: number\r\n categories: any = []\r\n selectedCategoryId: number\r\n selectedCategory: any\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedSkillKey: any\r\n selectedLegalTypes: number[] = []\r\n selectedLegalTypeArray: MatTableDataSource\r\n legalTypes:MatTableDataSource\r\n selectedBackgroundChecks = []\r\n workTypeID: number = 1\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n legalTypeCrtl: FormControl\r\n legaltypes: LegalType[]\r\n interviewTypeCrtl: FormControl\r\n interviewtypes: InterviewType[]\r\n selectedInterviewTypeArray: MatTableDataSource = new MatTableDataSource()\r\n backGroundCrtl: FormControl\r\n backgroundchecks: BackgroundCheck[]\r\n selectedBakGrdChkArrayItems = []\r\n selectedDegree: string\r\n degreeType: DegreeType[]\r\n isJobEdited: boolean = false\r\n selectedCertifications: Array = []\r\n selectable = true\r\n removable = true\r\n selectedCertificateForDelete: any\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n addCertificationOnBlur: boolean = true\r\n addSoftSkillOnBlur: boolean = true\r\n skip: boolean = false\r\n isLocationRequired: boolean = true\r\n isLocationFormChanged: boolean = false\r\n filterCities: any[] = []\r\n StreetAddress: string\r\n States: string\r\n City: string\r\n ZipCode: string\r\n filteredStates: iStates[] = []\r\n states: iStates[] = []\r\n jobData: JobData\r\n jobid: number\r\n isSidenavOpened = true\r\n ClientName: string\r\n ClientContactPhone: string\r\n ClientContactName: string\r\n ClientContactEmail: string\r\n isSkipBtn: boolean\r\n isTravelRequired: boolean = false\r\n IsVendorAllowed:boolean=false\r\n singleFileUpload(fileInput: HTMLInputElement) {\r\n const file = fileInput.files[0]\r\n if (file) {\r\n this.files.push(file)\r\n this.fileName = file.name\r\n }\r\n }\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private notifyService: NotificationService,\r\n private jobService: JobService,\r\n private authService: AuthenticationService,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private commonService: CommonService,\r\n private _activatedRoute: ActivatedRoute,\r\n private consultantService: ConsultantService,\r\n private _companyService: CompanyService,\r\n private locationService:LocationService\r\n ) {\r\n this.isSkipBtn = this.router?.getCurrentNavigation()?.extras?.state?.skip ?? false\r\n this.legalTypeCrtl = new FormControl()\r\n this.backGroundCrtl = new FormControl()\r\n this.interviewTypeCrtl = new FormControl()\r\n this.jobDetails = this.formBuilder.group({\r\n phone: [''],\r\n JobTitleName: ['', Validators.required],\r\n CompanyContact: [''],\r\n MspContact: [''],\r\n JobSimiliarTitleName: [''],\r\n CompanyName: [null, Validators.required],\r\n Description: ['', Validators.required],\r\n LocationID: [0],\r\n JobCode: [''],\r\n IndustryName: [''],\r\n JobCategory: ['', Validators.required],\r\n SpecializedSkill: [''],\r\n SkillLevel: [''],\r\n WorkOptionId: [],\r\n JobTypeID: ['', Validators.required],\r\n MaxBillRate: [],\r\n MinSalary: [],\r\n MaxSalary: [],\r\n // ScreenQuestion: [],\r\n AnswerHint: [],\r\n ExternalPortal: [],\r\n NoOfPosition: [],\r\n MaxSubmission: [],\r\n maxSubmission:[],\r\n NoOfHoursWeek: [],\r\n TravelRequired: [false],\r\n TravelPercentage: [null],\r\n StartDate: ['', Validators.required],\r\n EndDate: [null],\r\n ExpiryDate: [null],\r\n BackgroundCheck: [],\r\n PostedFor: ['', Validators.required],\r\n SecondaryRecruiterId: [],\r\n VendorAllowedId: [],\r\n IsVendorAllowed:[],\r\n Education: [],\r\n backGroundCrtl: [],\r\n legalTypeCrtl: [],\r\n AlternateQuery: [],\r\n BooleanQuery: [],\r\n Address: [''],\r\n Address1: [''],\r\n CreatedBy: [],\r\n StreetAddress: [],\r\n State: ['', Validators.required],\r\n City: ['', Validators.required],\r\n ZipCode: [],\r\n workTypeID: [],\r\n interviewTypeCrtl: [],\r\n JobSkills: [],\r\n SalaryDisplayTypeID: [],\r\n StateCode: [''],\r\n StateID: [''],\r\n ObjectId: [''],\r\n LocationTypeID: [''],\r\n ObjectTypeId: [''],\r\n UpdatedBy: [],\r\n FullAddress: [''],\r\n LegalTypeId: [],\r\n MinExperience: [0, Validators.required],\r\n MaxExperience: [],\r\n HiringManager:[],\r\n ProgramManager:[],\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jobService.getClients().subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobDetails.get('CompanyName').setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.job.JobId > 0) {\r\n this.selectedCompanyId = this.job.CompanyId\r\n this.companyChangeAction(this.job.CompanyId)\r\n }\r\n })\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.getLookupValues()\r\n }\r\n if (Common.lookUp != null) {\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == 'WorkOptionID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == 'WorkOptionID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n }\r\n this.jobid = this._activatedRoute.snapshot.params['id']\r\n if (this.jobid) {\r\n this.loading = true\r\n this.jobService\r\n .getJob(this.jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (JobDetails) => {\r\n this.loading = false\r\n this.jobDetail = { ...JobDetails }\r\n this.jobId = this.jobDetail?.JobId || 0\r\n this.selectedCompanyId = this.jobDetail?.CompanyId\r\n if (this.selectedCompanyId) {\r\n this.getRecruiters(this.selectedCompanyId)\r\n }\r\n if (!this.jobDetail?.WorkHours) {\r\n this.jobForm.get('NoOfHoursWeek').setValue(40)\r\n }\r\n this.similarTitles = this.jobDetail?.SimilarTitles?.split(',').map((title) => title?.trim())\r\n this.booleanQuery = this.jobDetail?.BooleanQuery\r\n this.alternateQuery = this.jobDetail?.AlternateBooleanQuery\r\n this.jobskillArray = this.jobDetail?.JobSkills\r\n this.jobEducations = this.jobDetail?.JobEducations\r\n this.selectedCertifications = this.jobDetail?.JobCertifications\r\n this.StreetAddress = this.jobDetail?.Location?.StreetAddress\r\n // this.skillLevels = this.skillLevels.filter((x) => x.Value == this.jobDetail?.SkillLevelID)\r\n this.States = this.jobDetail?.Location?.State\r\n this.City = this.jobDetail?.Location?.City\r\n this.ZipCode = this.jobDetail?.Location?.ZipCode\r\n this.JobTypeChange(this.jobDetail?.JobTypeID)\r\n this.bindFormData(JobDetails)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n console.error('Error fetching job details:', error)\r\n },\r\n })\r\n }\r\n\r\n this.jobService.GetJobCategory().subscribe((res) => {\r\n this.categories = res as iCategory[]\r\n })\r\n this.getJobIndustries()\r\n this.setJobClientsOption()\r\n this.getJobDeatils()\r\n this.jobDetails.valueChanges.subscribe({\r\n next: (data) => {\r\n Common.activeJob = data\r\n this.jobDetail = data\r\n Common.activeJob.JobCertifications = this.selectedCertifications\r\n Common.activeJob.JobEducations = this.selectedEducations\r\n },\r\n })\r\n this.isSidenavOpened = true\r\n }\r\n toggleSidenav() {\r\n // this.sidenav.toggle();\r\n // this.isSidenavOpened = this.sidenav.opened;\r\n this.isSidenavOpened = !this.isSidenavOpened\r\n }\r\n\r\n closeSidenav() {\r\n // this.sidenav.close();\r\n this.isSidenavOpened = false\r\n }\r\n ngAfterViewInit() {\r\n if (this.travelPercent) {\r\n this.travelPercent.nativeElement.style.display = 'none'\r\n }\r\n }\r\n getJobDeatils() {\r\n this.jobService\r\n .getIsJobUploaded()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (isTrue) => {\r\n this.skip = isTrue\r\n this.jobDetails.get('NoOfPosition').setValue(1)\r\n this.jobDetails.get('NoOfHoursWeek').setValue(40)\r\n this.jobDetails.get('SalaryDisplayTypeID').setValue(240)\r\n this.jobDetails.get('ExternalPortal').setValue('Confidential')\r\n },\r\n error: () => {},\r\n })\r\n\r\n this.jobService\r\n .getAddJob()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (JobDetails: any) => {\r\n Common.activeJob = JobDetails\r\n this.jobId = JobDetails?.JobId || 0\r\n this.expiryDate = JobDetails?.ExpiryDate\r\n if (JobDetails?.WorkOption) {\r\n this.onWorkOptionSet(JobDetails?.WorkOption)\r\n }\r\n this.jobDetail = JobDetails\r\n this.selectedCompanyId = this.jobDetail?.CompanyId\r\n if (this.selectedCompanyId) {\r\n this.getRecruiters(this.selectedCompanyId)\r\n }\r\n // this.similarTitles = JobDetails?.SimilarTitles?.split(',').map((title) => title?.trim())\r\n this.booleanQuery = JobDetails?.BooleanQuery\r\n this.alternateQuery = JobDetails?.AlternateBooleanQuery\r\n this.jobskillArray = JobDetails?.JobSkills\r\n this.jobEducations = JobDetails?.JobEducations\r\n this.JobTypeChange(this.jobDetail?.JobTypeID)\r\n this.bindFormData(JobDetails)\r\n this.getTextAreaRows()\r\n this.getAlternateQueryTextAreaRows()\r\n },\r\n })\r\n }\r\n getTextAreaRows(): number {\r\n const charactersPerRow = 200\r\n const rowCount = Math.ceil(this.booleanQuery?.length / charactersPerRow)\r\n return Math.max(rowCount, 1)\r\n }\r\n getAlternateQueryTextAreaRows(): number {\r\n const charactersPerRow = 200\r\n const rowCount = Math.ceil(this.alternateQuery?.length / charactersPerRow)\r\n return Math.max(rowCount, 1)\r\n }\r\n bindFormData(job: any) {\r\n const LEGAL_TYPE_ID_LIST = job?.JobLegalTypes?.map((legalType) => legalType.LegalTypeId)\r\n const INTERVIEW_TYPE_ID_LIST = job?.JobInterviewTypes?.map((legalType) => legalType.InterviewTypeId)\r\n this.similarTitles = job?.SimilarTitles ? [...job.SimilarTitles.split(',')] : this.similarTitles\r\n\r\n this.selectedCertifications = job?.JobCertifications\r\n // this.jobDetails.get('phone').setValue(job)\r\n this.jobDetails.get('JobTitleName').setValue(job?.JobTitleName || '')\r\n this.jobDetails.get('CompanyContact').setValue(job?.CompanyContact || 0)\r\n this.jobDetails.get('MspContact').setValue(job?.MspContact || 0)\r\n this.jobDetails.get('CompanyName').setValue(job?.CompanyName || '')\r\n this.jobDetails.get('Description').setValue(job?.Description || '')\r\n this.jobDetails.get('LocationID').setValue(job?.LocationID || 0)\r\n this.jobDetails.get('JobCode').setValue(job?.JobCode || '0')\r\n this.jobDetails.get('IndustryName').setValue(job?.IndustryName || '')\r\n this.jobDetails.get('JobCategory').setValue(job?.JobCategory || '')\r\n this.jobDetails.get('SpecializedSkill').setValue(job?.SpecializedSkill || 0)\r\n this.jobDetails.get('SkillLevel').setValue(job?.SkillLevel?.toString() || '')\r\n this.jobDetails.get('WorkOptionId').setValue(job?.WorkOptionId || 0)\r\n this.jobDetails.get('JobTypeID').setValue(job?.JobTypeID || 0)\r\n this.jobDetails.get('MaxBillRate').setValue(job?.MaxBillRate || 0)\r\n this.jobDetails.get('MinSalary').setValue(job?.MinSalary || 0)\r\n this.jobDetails.get('MaxSalary').setValue(job?.MaxSalary || 0)\r\n this.jobDetails.get('JobSimiliarTitleName').setValue(this.similarTitles || '')\r\n // this.jobDetails.get('ScreenQuestion').setValue(job)\r\n // this.jobDetails.get('AnswerHint').setValue(job)\r\n this.jobDetails.get('SalaryDisplayTypeID').setValue(job?.SalaryDisplayTypeID ? job?.SalaryDisplayTypeID : 239)\r\n this.jobDetails.get('NoOfPosition').setValue(job?.Positions === 0 ? 1 : job?.Positions)\r\n this.jobDetails.get('MaxSubmission').setValue(job?.MaxSubmissionCount || job?.MaxSubmission)\r\n this.jobDetails.get('MaxSubmission').setValue(job?.MaxSubmissionCount || 0)\r\n this.jobDetails\r\n .get('NoOfHoursWeek')\r\n .setValue(\r\n job?.WorkHours === 0 || job?.WorkHours === undefined || job?.WorkHours === null ? 40 : job?.WorkHours\r\n )\r\n this.jobDetails.get('TravelRequired').setValue(job?.TravelRequired || false)\r\n this.isTravelRequired = this.jobDetails.get('TravelRequired')?.value\r\n this.jobDetails.get('TravelPercentage').setValue(job?.TravelPercentage || 0)\r\n this.jobDetails.get('StartDate').setValue(job?.StartDate || '')\r\n this.jobDetails.get('EndDate').setValue(job?.EndDate || '')\r\n this.jobDetails.get('ExpiryDate').setValue(job?.ExpiryDate || '')\r\n this.jobDetails.get('BackgroundCheck').setValue([...(job?.BackgroundCheckId || [])])\r\n this.jobDetails.get('PostedFor').setValue(job?.PostedFor || '')\r\n this.jobDetails.get('SecondaryRecruiterId').setValue(job?.SecondaryRecruiterId || 0)\r\n this.jobDetails.get('IsVendorAllowed').setValue(job?.IsVendorAllowed || '')\r\n this.IsVendorAllowed=this.jobDetails.get('IsVendorAllowed')?.value\r\n this.jobDetails.get('VendorAllowedId').setValue(job?.VendorAllowedId || '')\r\n this.jobDetails.get('Education').setValue(job?.JobEducations || '')\r\n if(job?.BackgroundCheckId){\r\n this.jobDetails.get('backGroundCrtl').setValue(job?.BackgroundCheckId || 0)\r\n }else{\r\n this.companyJobSetting(this.selectedCompanyId)\r\n }\r\n this.jobDetails.get('legalTypeCrtl').setValue(LEGAL_TYPE_ID_LIST || [])\r\n this.jobDetails.get('interviewTypeCrtl').setValue(INTERVIEW_TYPE_ID_LIST || [])\r\n this.jobDetails.get('AlternateQuery').setValue(job?.AlternateBooleanQuery)\r\n this.jobDetails.get('BooleanQuery').setValue(job?.BooleanQuery)\r\n this.jobDetails.get('StreetAddress').setValue(job?.Location?.StreetAddress || '')\r\n this.jobDetails.get('City').setValue(job?.Location?.City || '')\r\n this.jobDetails.get('State').setValue(job?.Location?.State || '')\r\n this.jobDetails.get('ZipCode').setValue(job?.Location?.ZipCode || '')\r\n this.jobDetails.get('workTypeID').setValue(this.workTypeID || '')\r\n this.jobDetails.get('HiringManager').setValue(this.jobDetails.value.CompanyContact || '')\r\n this.jobDetails.get('ProgramManager').setValue(this.jobDetails.value.MspContact || '')\r\n }\r\n companyJobSetting(companyId) {\r\n if (Common.ConfigValues != null) {\r\n var backgroundChecks = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.BackgroundChecks && //backgroundChecks\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n let backgroundChecksIds: number[] = []\r\n backgroundChecksIds = backgroundChecks.split(',').map((item) => Number(item))\r\n this.jobDetails.get('backGroundCrtl').setValue(backgroundChecksIds)\r\n this.selectedBackgroundChecks = [...backgroundChecksIds]\r\n\r\n var workAuth = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.Work_Authorization && //work authorization\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n\r\n let waIds: any[] = []\r\n waIds = workAuth.split(',').map((item) => Number(item))\r\n\r\n let jobLegalData: iJobLegalType[] = []\r\n let legalTypesSelected: any[] = []\r\n for (let index = 0; index < waIds.length; index++) {\r\n legalTypesSelected.push(waIds[index])\r\n jobLegalData.push({\r\n JobId: this.jobId,\r\n LegalTypeId: waIds[index],\r\n CreatedBy: this.authService.userInfo.userID,\r\n JobLegalTypeId: 0,\r\n CreatedDate: new Date(),\r\n UpdatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n })\r\n }\r\n // Add US Citizen as default- requried\r\n legalTypesSelected.push(8)\r\n\r\n this.jobDetails.get('legalTypeCrtl').setValue(legalTypesSelected)\r\n this.selectedLegalTypes = [...legalTypesSelected]\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobSetting) => {\r\n if (jobSetting) {\r\n var maxSubmit\r\n var vendorAllowed:boolean\r\n var StreetAddress=''\r\n var jc = jobSetting\r\n .filter((option) => option?.CategoryID == this.activeJob?.JobCategoryID)\r\n .map((x) => Number(x?.CategoryID))\r\n if (jc.indexOf(this.activeJob?.JobCategoryID) > -1) {\r\n //A specific category\r\n maxSubmit = jobSetting\r\n .filter((option) => option?.CategoryID == this.activeJob?.JobCategoryID)\r\n .map((x) => x?.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option?.CategoryID == this.activeJob?.JobCategoryID)\r\n .map((x) => Boolean(x?.IsVendorAllowed))[0]\r\n } else {\r\n //All-Other category\r\n maxSubmit = jobSetting\r\n .filter((option) => option?.CategoryID == CategoryValues?.CategoryTypeID_ALL)\r\n .map((x) => x?.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option?.CategoryID == CategoryValues?.CategoryTypeID_ALL)\r\n .map((x) => Boolean(x?.IsVendorAllowed))[0]\r\n }\r\n if (maxSubmit) {\r\n if (this.jobDetails.get('MaxSubmissionCount')?.value == '') {\r\n this.jobDetails.get('MaxSubmissionCount').setValue(maxSubmit)\r\n }\r\n }\r\n if(this.jobDetails.value.MaxSubmission ===undefined || this.jobDetails.value.MaxSubmission===0 || this.jobDetails.value.MaxSubmission ==='') {\r\n maxSubmit = jobSetting[0].MaxSubmit\r\n this.jobDetails.get('MaxSubmission').setValue(maxSubmit)\r\n } \r\n if(jobSetting[0].IsVendorAllowed) {\r\n //this.jobDetails.get('VendorAllowedId').setValue(vendorAllowed)\r\n const isAllowed=jobSetting[0].IsVendorAllowed\r\n this.jobDetails.get('IsVendorAllowed').setValue(isAllowed)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n setJobClientsOption() {\r\n this.jobService\r\n .getClientsByUserId(this.authService.userInfo.userID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobDetails\r\n .get('CompanyName')\r\n .setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.activeJob?.JobId > 0) {\r\n this.companyChangeAction(this.activeJob.CompanyId)\r\n }\r\n if (this.activeJob?.CompanyId) {\r\n this._checkForMspClientForJob()\r\n }\r\n })\r\n }\r\n private _checkForMspClientForJob() {\r\n const JOB_CLIENT: Company = this.companies?.find((company) => company?.CompanyId === this.activeJob?.CompanyId)\r\n if (JOB_CLIENT?.CompanyTypeID === CompanyType.MSP || JOB_CLIENT?.MSPCompanyID !== null) {\r\n this.isMSPClient = true\r\n } else {\r\n this.isMSPClient = false\r\n }\r\n }\r\n getJobIndustries() {\r\n this.jobService\r\n .GetJobIndustry()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.industries = res as iCategory[]\r\n })\r\n }\r\n getSkillNamesArray(skillsArray) {\r\n let skillNamesArray = []\r\n skillsArray?.forEach((skill) => {\r\n skillNamesArray.push(skill?.SkillName)\r\n })\r\n return skillNamesArray\r\n }\r\n editSkill(skill, editSkillIndex) {\r\n let skillNamesArrayForEdit = [...this.jobskillArray]\r\n skillNamesArrayForEdit.splice(editSkillIndex, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillToBeEdited: skill,\r\n skillNamesArray: this.getSkillNamesArray(skillNamesArrayForEdit),\r\n method: 'Edit',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n if (editSkillIndex < 0 && !data?.formData?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n this.jobskillArray.filter((skillItem, index) => index != editSkillIndex)\r\n this.jobskillArray = [\r\n ...this.jobskillArray.slice(0, editSkillIndex),\r\n {\r\n ...skill,\r\n Experience: data?.formData?.Experience,\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n LastUsed: data?.formData?.LastUsed,\r\n SkillTypeId: 151,\r\n },\r\n ...this.jobskillArray.slice(editSkillIndex + 1),\r\n ]\r\n this.updateJobSkills(this.jobskillArray)\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n }\r\n }\r\n })\r\n }\r\n addSkill() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillNamesArray: this.getSkillNamesArray(this.jobskillArray),\r\n method: 'Add',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n this.loading = false\r\n if (typeof this.jobskillArray == 'undefined') this.jobskillArray = []\r\n this.jobskillArray?.push({\r\n JobSkillID: null,\r\n JobID: this.jobId,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: data?.formData?.Experience,\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n SkillTypeId: 151,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n Common.activeJob.JobSkills = this.jobskillArray\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n }\r\n })\r\n }\r\n updateJobSkills(skillData) {\r\n if (!this.jobSkillData) {\r\n this.jobSkillData = { JobSkills: [] }\r\n }\r\n\r\n this.jobSkillData.JobSkills.push(skillData)\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n }\r\n editSoftSkill(skill, editSkillIndex) {\r\n let skillNamesArrayForEdit = [...this.jobskillArray]\r\n skillNamesArrayForEdit.splice(editSkillIndex, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillToBeEdited: skill,\r\n skillNamesArray: this.getSkillNamesArray(skillNamesArrayForEdit),\r\n method: 'Edit',\r\n isSoftSkill: true,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n if (editSkillIndex < 0 && !data?.formData?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n this.loading = true\r\n this.jobskillArray.filter((skillItem, index) => index != editSkillIndex)\r\n this.jobskillArray = [\r\n ...this.jobskillArray.slice(0, editSkillIndex),\r\n {\r\n ...skill,\r\n SkillName: data?.formData?.SkillName,\r\n Required: false,\r\n SkillTypeId: 152,\r\n },\r\n ...this.jobskillArray.slice(editSkillIndex + 1),\r\n ]\r\n this.updateSoftSkills(this.jobskillArray)\r\n }\r\n }\r\n })\r\n }\r\n addSoftSkill(event:any): void {\r\n const input = event.target.input\r\n const value = event.target.value\r\n if (!this.jobskillArray) {\r\n this.jobskillArray = []\r\n }\r\n\r\n if ((value || '').trim()) {\r\n const existingSkill = this.jobskillArray.find(\r\n (skill) => skill.SkillName.toLowerCase() === value.trim().toLowerCase()\r\n )\r\n if (!existingSkill) {\r\n this.jobskillArray.push({\r\n JobSkillID: null,\r\n JobID: this.jobId,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: 0,\r\n SkillName: value.trim(),\r\n Required: false,\r\n SkillTypeId: 152,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n\r\n Common.activeJob.JobSkills = this.jobskillArray\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n const inputElement = document.querySelector('.softSkill') as HTMLInputElement\r\n if (inputElement) {\r\n inputElement.value = ''\r\n }\r\n this.notifyService.showSuccess('Soft skill added successfully', '')\r\n } else {\r\n this.notifyService.showError('This soft skill is already added!', '')\r\n }\r\n }\r\n }\r\n\r\n updateSoftSkills(skillData) {\r\n if (!this.jobSkillData) {\r\n this.jobSkillData = { JobSkills: [] } // Initialize if undefined\r\n }\r\n this.jobSkillData.JobSkills.push(skillData)\r\n\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n }\r\n openDeleteConfirmationDialog(\r\n templateRef: TemplateRef,\r\n typeOfItemToBeDeleted: string,\r\n deletedItemIndex: number\r\n ) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.typeOfItemToBeDeleted = typeOfItemToBeDeleted\r\n this.indexOfItemToBeDeleted = deletedItemIndex\r\n this.dialog.afterAllClosed.pipe(takeUntil(this._destroy$)).subscribe((res) => {\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n })\r\n }\r\n SoftSkillDeleteConfirmationDialog(\r\n templateRef: TemplateRef,\r\n typeOfItemToBeDeleted: string,\r\n deletedItemIndex: number\r\n ) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.typeOfItemToBeDeleted = typeOfItemToBeDeleted\r\n this.indexOfItemToBeDeleted = deletedItemIndex\r\n this.dialog.afterAllClosed.pipe(takeUntil(this._destroy$)).subscribe((res) => {\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n })\r\n }\r\n deleteItem() {\r\n switch (this.typeOfItemToBeDeleted) {\r\n // case JobDialogTypes.Questionnaire:\r\n // let tempQuestionArray = [...this.questioneArray]\r\n // tempQuestionArray.splice(this.indexOfItemToBeDeleted, 1)\r\n // this.updateJobQuestionnaire(tempQuestionArray)\r\n // break\r\n case JobDialogTypes.Skills:\r\n if (this.reqSkillCount <= 1 && this.jobskillArray[this.indexOfItemToBeDeleted]?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n let tempSkillArray = [...this.jobskillArray]\r\n tempSkillArray.splice(this.indexOfItemToBeDeleted, 1)\r\n this.updateJobSkills(tempSkillArray)\r\n }\r\n break\r\n default:\r\n this.notifyService.showError('The delete operation could not be performed', '')\r\n }\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n this.dialog.closeAll()\r\n }\r\n\r\n editEducation() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Education,\r\n educationcArray: this.educationcArray,\r\n certificateArray: this.certificationArray,\r\n formData: this.activeJob,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Education) {\r\n if (\r\n this.jobDetail?.JobId == null ||\r\n this.jobDetail.JobId == 0 ||\r\n this.jobDetail.JobId == undefined\r\n ) {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n return\r\n }\r\n let certifications = []\r\n certifications = data?.certifications\r\n this.selectedEducations = []\r\n this.selectedEducations.push({\r\n JobEductionID: data.formData.JobEducations.JobEductionID,\r\n JobID: 0,\r\n EducationID: 0,\r\n EducationName: data.formData?.JobEducations,\r\n CreatedBy: this.authService.userInfo.userID,\r\n UpdatedBy: null,\r\n UpdatedDate: null,\r\n IsActive: true,\r\n })\r\n this.jobEducationCertificationData = { JobId: Common.activeJob?.JobId }\r\n this.jobEducationCertificationData.JobEducations = this.selectedEducations\r\n this.jobEducationCertificationData.JobCertifications = certifications\r\n this.loading = true\r\n this.jobService\r\n .AddJobCertAndEdu(this.jobEducationCertificationData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '')\r\n this.bindCertification(this.activeJob?.JobId)\r\n this.bindEducation(this.activeJob?.JobId)\r\n this.jobService\r\n .getJob(this.activeJob?.JobId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.activeJob = res\r\n Common.activeJob = res\r\n })\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save education and certifications!', '')\r\n return\r\n }\r\n )\r\n }\r\n })\r\n }\r\n bindEducation(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobEducation(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.educationcArray = res as iJobEducation[]\r\n this.education = this.educationcArray.map((x) => x.EducationName).join(', ')\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n bindCertification(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobCertification(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.certificationArray = res as iJobCertification[]\r\n this.certifications = this.certificationArray.map((x) => x.CertificationName).join(', ')\r\n\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n onSelectedSkillName(cat) {\r\n this.selectedSpecializedSkillId = cat.SkillID\r\n }\r\n onSelectedSkillLevel(skillLevel) {\r\n this.selectedSkillLevelId = skillLevel.Value\r\n this.selectedSkillKey = skillLevel.Key\r\n }\r\n\r\n JobTypeChange(selectedValue) {\r\n this.jobTypevalue = selectedValue\r\n if (this.jobTypevalue !== 12) {\r\n this.jobDetails.get('EndDate').addValidators([Validators.required])\r\n } else {\r\n this.jobDetails.get('EndDate').clearValidators()\r\n }\r\n this.jobDetails.get('EndDate').updateValueAndValidity()\r\n //this.minSalary=15000;\r\n this.minBillRate = 1\r\n if (selectedValue == Common.enumJobContractType.JT_C2C) {\r\n // Contract ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = false\r\n this.jobDetails.controls['MaxSalary'].clearValidators()\r\n this.jobDetails.get('MaxSalary').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_C2H) {\r\n // Contract to hire ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = true\r\n this.jobDetails.get('MaxSalary').setValue('')\r\n this.jobDetails.get('MaxBillRate').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_PERM) {\r\n // Permanent\r\n this.showBillRate = false\r\n this.showSalary = true\r\n\r\n //this.minSalary=null;\r\n this.minBillRate = 0\r\n this.jobDetails.controls['MaxBillRate'].clearValidators()\r\n this.jobDetails.controls['MaxSalary'].clearValidators()\r\n this.jobDetails.get('MaxBillRate').setValue('')\r\n }\r\n }\r\n\r\n isFormFieldIsValid(field: string) {\r\n return (\r\n this.jobDetails.get(field).invalid &&\r\n (this.jobDetails.get(field).dirty || this.jobDetails.get(field).touched)\r\n )\r\n }\r\n\r\n startDateChangesHandler(event) {\r\n this.minEndDate = new Date(new Date(event.value).setDate(event.value.getDate() + 1))\r\n this.maxSubmissionDate = event.value.getDate()\r\n }\r\n\r\n submissionDateChangesHandler(event) {\r\n this.minDate = event.value\r\n this.minStartDate = event.value.getDate() + 1\r\n this.minEndDate = event.value.getDate() + 2\r\n }\r\n\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (this.jobDetails.get('JobTitleName').value.length > 0) {\r\n this.jobService.getJobTitles(this.jobDetails.get('JobTitleName').value).subscribe((res) => {\r\n this.titles = res\r\n })\r\n }\r\n }\r\n\r\n isJobFormFieldValid(field: string) {\r\n return (\r\n this.jobDetails.get(field).invalid &&\r\n (this.jobDetails.get(field).dirty || this.jobDetails.get(field).touched)\r\n )\r\n }\r\n\r\n onSelectedCompany(company) {\r\n this.selectedCompanyId = company.CompanyId\r\n this.companyChangeAction(this.selectedCompanyId)\r\n this.companyJobSetting(this.selectedCompanyId)\r\n this.getRecruiters(this.selectedCompanyId)\r\n const primary_recruiter = this.authService.userInfo.roles[0].roleID === UserRoleId.RECRUITER\r\n if (primary_recruiter) {\r\n const userId = this.authService.userInfo.userID\r\n this.jobDetails.get('PostedFor').setValue(userId)\r\n }\r\n this.isMSPClient = company.MSPCompanyID > 0 ? true : false\r\n this.companyChangeAction(this.selectedCompanyId)\r\n \r\n }\r\n\r\n companyChangeAction(CompanyId) {\r\n this.hiringManager = null\r\n this.programManager = null\r\n this.selectedMspContactId = 0\r\n this.selectedContactId = 0\r\n\r\n this.jobDetails.get('CompanyContact').setValue('')\r\n this.jobDetails.get('MspContact').setValue('')\r\n\r\n this.jobService.getHiringManagers(CompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n this.tempHiringManager = res as Contact[]\r\n if (this.job.CompanyContact) {\r\n this.hiringManager.forEach((item) => {\r\n if (item.FirstName + ' ' + item.LastName === this.job.CompanyContact) {\r\n this.jobDetails.get('CompanyContact').setValue(item.FirstName + ' ' + item.LastName)\r\n }\r\n })\r\n this.selectedContactId = this.job.CustomerContactId\r\n } else if (this.hiringManager.length == 1) {\r\n this.jobDetails\r\n .get('CompanyContact')\r\n .setValue(this.hiringManager[0].FirstName + ' | ' + this.hiringManager[0].EmailAddress)\r\n this.selectedContactId = this.hiringManager[0].ContactID\r\n }else{\r\n this.jobDetails.get('CompanyContact').setValue('')\r\n }\r\n })\r\n this.jobService.getProgramManager(CompanyId).subscribe((res) => {\r\n this.programManager = res as Contact[]\r\n this.tempProgramManager = res as Contact[]\r\n if (this.isMSPClient) {\r\n this.jobDetails.get('MspContact').setValue(this.programManager[0].FirstName +' '+this.programManager[0].LastName)\r\n } else this.jobDetails.get('MspContact').setValue('')\r\n })\r\n if(this.jobDetails.value.IndustryName){\r\n this.jobDetails.get('IndustryName').setValue(this.jobDetails.value.IndustryName)\r\n }else{\r\n this.jobService.getCompanyByCompanyId(CompanyId).subscribe((res) => {\r\n if (res) {\r\n let industry = this.industries.filter((x) => x.CategoryID === res.IndustryID)\r\n if (industry.length > 0) {\r\n this.jobDetails.get('IndustryName').setValue(industry[0]['Name'])\r\n this.selectedIndustryId = res.IndustryID\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n onCompanyKeyPressed(event: string): void {\r\n if (event) {\r\n this.companies = this.tempCompanies.filter((company) =>\r\n company.Name.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.companies = this.tempCompanies\r\n }\r\n }\r\n\r\n onSelectedCategory(cat) {\r\n this.selectedCategory = cat\r\n this.categorySkills(this.selectedCategory.CategoryID)\r\n }\r\n\r\n categorySkills(selectedValue) {\r\n this.jobService.GetJobSpecializedSkills(selectedValue).subscribe((res) => {\r\n this.skills = res as Skill[]\r\n })\r\n }\r\n\r\n onSelectedContact(contact) {\r\n this.selectedContactId = contact.ContactID\r\n }\r\n\r\n salaryDisplayType: any\r\n selectedSalaryDisplayType: any\r\n\r\n salaryDisplayTypeChanged(event) {\r\n this.salaryDisplayType = event.value\r\n this.salaryDisplayOptions$.subscribe((res) => {\r\n this.selectedSalaryDisplayType = res.find((x) => x.Value == this.salaryDisplayType)\r\n this.jobDetails.get('ExternalPortal').setValue(this.selectedSalaryDisplayType.Key)\r\n })\r\n }\r\n\r\n onHiringManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.hiringManager = this.tempHiringManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.hiringManager = this.tempHiringManager\r\n }\r\n }\r\n\r\n recruiterHandler(event: any) {\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != event)\r\n // Common.activeJob.RecruiterName = this.primaryRecruiters.find((x) => x.UserID == event).UserName\r\n // this.jobDetails.get('PostedFor').setValue(this.primaryRecruiters.find((x) => x.UserID == event).FirstName + ' | ' + this.primaryRecruiters.find((x) => x.UserID == event).Email);\r\n }\r\n\r\n // secondaryrecruiterHandler(event: any) {\r\n // // Common.activeJob.SecondaryRecruiter = this.secondaryRecruiters.find((x) => x.UserID == event).UserName\r\n // this.jobDetails.get('SecondaryRecruiterId').setValue(this.primaryRecruiters.find((x) => x.UserID == event).FirstName + ' | ' + this.secondaryRecruiters.find((x) => x.UserID == event).Email);\r\n // }\r\n // onSelectLegalTypes(event: { isUser Input: any; source: { value: any; selected: any } }) {\r\n // // Existing logic...\r\n // this.updateLegalTypesNames(); // Call this method to refresh the legal types\r\n // }\r\n\r\n onSelectLegalTypes(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobLegalType[] = []\r\n if (this.selectedLegalTypeArray != null) {\r\n jldata = this.selectedLegalTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.jobId,\r\n LegalTypeId: event.source.value,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.LegalTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n Common.activeJob.JobLegalTypes = jldata\r\n }\r\n\r\n onSelectInterviewType(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobInterviewType[] = []\r\n if (this.selectedInterviewTypeArray != null) {\r\n jldata = this.selectedInterviewTypeArray.data\r\n } else if (this.jobDetail != null) {\r\n jldata = this.jobDetail.JobInterviewTypes\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobInterviewTypeId: 0,\r\n JobId: this.jobId,\r\n InterviewTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.InterviewTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n onSelectBackGroundCheck(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.selectedBakGrdChkArrayItems.push(event.source.value)\r\n } else {\r\n const index: number = this.selectedBakGrdChkArrayItems.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.selectedBakGrdChkArrayItems.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job.PostedFor)\r\n this.jobService.setRecruiter(res)\r\n // this.jobForm.get('PostedFor').setValue(this.job.PostedFor)\r\n // this.jobForm.get('SecondaryRecruiterId').setValue(this.job.SecondaryRecruiterId)\r\n // this.isLoaded = true\r\n })\r\n }\r\n getLookupValues() {\r\n this.commonService.getConfig().subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getStatus().subscribe(\r\n (status) => {\r\n Common.wfStatus = status\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == 'DegreeTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n this.commonService.getStates().subscribe((state) => {\r\n Common.states = state\r\n })\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n this.isJobEdited = true\r\n moveItemInArray(this.selectedCertifications, event.previousIndex, event.currentIndex)\r\n }\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.selectedCertificateForDelete = i\r\n }\r\n addCertification(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if (this.selectedCertifications === undefined) {\r\n this.selectedCertifications = []\r\n }\r\n if ((value || '').trim()) {\r\n this.selectedCertifications.push({\r\n JobCertificationID: null,\r\n JobID: 0,\r\n CertificationID: 0,\r\n CertificationName: value.trim(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n Common.activeJob.JobCertifications = this.selectedCertifications\r\n Common.activeJob.JobEducations = this.selectedEducations\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n removeCertification(keyword: any): void {\r\n this.isJobEdited = true\r\n let index = this.selectedCertifications.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.selectedCertifications.splice(index, 1)\r\n }\r\n this.dialog.closeAll()\r\n }\r\n handelEvent() {\r\n this.skip = true\r\n }\r\n\r\n onWorkOptionChange(event) {\r\n this.selectedWorkOptionID = event\r\n if (event == WorkOption.Remote) {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n this.hideLocation = true\r\n // remove validation of street address, city, state, zip code\r\n this.jobDetails.get('StreetAddress').clearValidators()\r\n this.jobDetails.get('City').clearValidators()\r\n this.jobDetails.get('State').clearValidators()\r\n this.jobDetails.get('ZipCode').clearValidators()\r\n } else if (event == WorkOption.Onsite) {\r\n this.isLocationRequired = true\r\n this.jobService.getCompanyLocations(this.selectedCompanyId, 1).subscribe((response) => {\r\n this.jobDetails.get('StreetAddress').setValue(response[0].StreetAddress)\r\n this.jobDetails.get('City').setValue(response[0].City)\r\n this.jobDetails.get('ZipCode').setValue(response[0].ZipCode)\r\n this.jobDetails.get('State').setValue(response[0].State)\r\n this.jobDetails.get('FullAddress').setValue(response[0].FullAddress)\r\n })\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n this.hideLocation = false\r\n }\r\n }\r\n\r\n onWorkOptionSet(event) {\r\n if (event == 'Remote') {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n this.hideLocation = true\r\n // remove validation of street address, city, state, zip code\r\n this.jobDetails.get('StreetAddress').clearValidators()\r\n this.jobDetails.get('City').clearValidators()\r\n this.jobDetails.get('State').clearValidators()\r\n this.jobDetails.get('ZipCode').clearValidators()\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n this.hideLocation = false\r\n }\r\n }\r\n\r\n defaultSetting() {\r\n // this.jobDetails.get('Positions').setValue(1)\r\n this.jobDetails.get('WorkHours').setValue(40)\r\n this.jobDetails.get('JobTypeID').setValue(10)\r\n this.jobDetails.get('MinRate').setValue('')\r\n this.jobDetails.get('MaxBillRate').setValue('')\r\n this.jobDetails.get('MinSalary').setValue('')\r\n this.jobDetails.get('MaxSalary').setValue('')\r\n this.JobTypeChange(10)\r\n // this.ParseJobText() // Todo: need to uncomment later\r\n\r\n this.workTypeID = 1\r\n\r\n let ltSelected: any[] = []\r\n let jldata: iJobLegalType[] = []\r\n ltSelected.push(8)\r\n jldata.push({\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n onSelectedProgramManager(contact) {\r\n this.selectedMspContactId = contact.ContactID\r\n }\r\n\r\n onMSPManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.programManager = this.tempProgramManager?.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.programManager = this.tempProgramManager\r\n }\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId, statusID, comments, userID).subscribe((result) => {\r\n result\r\n })\r\n }\r\n addLocation(jobData) {\r\n const LOCATION: iLocation = {} as iLocation\r\n LOCATION.Address1 = this.jobDetails.value.Address1 || ''\r\n LOCATION.Address = this.jobDetails.value.Address || ''\r\n LOCATION.City = this.jobDetails.value.City || ''\r\n LOCATION.CreatedBy = this.authService.userInfo.userID || 0\r\n LOCATION.CreatedDate = new Date()\r\n LOCATION.FullAddress = this.jobDetails.value.FullAddress || null\r\n ;(LOCATION.IsActive = true), (LOCATION.LocationID = 0)\r\n LOCATION.LocationTypeID = this.jobDetails.value.LocationTypeID || 0\r\n LOCATION.ObjectId = this.jobDetails.value.ObjectId || 0\r\n LOCATION.ObjectTypeId = this.jobDetails.value.ObjectTypeId || 0\r\n LOCATION.State = this.jobDetails.value.State || ''\r\n LOCATION.StreetAddress = this.jobDetails.value.StreetAddress || ''\r\n LOCATION.StateID = this.jobDetails.value.StateID || 0\r\n LOCATION.ZipCode = this.jobDetails.value.ZipCode || 0\r\n LOCATION.UpdatedBy = this.authService.userInfo.userID || null\r\n LOCATION.UpdatedDate = new Date()\r\n\r\n return this._companyService.AddLocation(LOCATION).pipe(takeUntil(this._destroy$))\r\n }\r\n\r\n onPostJob(statusId, templateRef: TemplateRef) {\r\n if (this.jobDetails.invalid) {\r\n if (this.selectedWorkOptionID != WorkOption.Remote) {\r\n this.jobDetails.markAllAsTouched()\r\n } else {\r\n this.jobDetails.get('StreetAddress').clearValidators()\r\n this.jobDetails.get('City').clearValidators()\r\n this.jobDetails.get('State').clearValidators()\r\n this.jobDetails.get('ZipCode').clearValidators()\r\n\r\n this.jobDetails.get('StreetAddress').updateValueAndValidity()\r\n this.jobDetails.get('City').updateValueAndValidity()\r\n this.jobDetails.get('State').updateValueAndValidity()\r\n this.jobDetails.get('ZipCode').updateValueAndValidity()\r\n }\r\n return\r\n }\r\n this.loading = true\r\n this.jobService\r\n .getCompanyByCompanyId(this.selectedCompanyId)\r\n .pipe(\r\n withLatestFrom(this.jobService.addJob$),\r\n switchMap(([res, jobUploadData]) => {\r\n if (!this.isSkipBtn) {\r\n return this.addLocation(jobUploadData).pipe(\r\n map((location) => {\r\n return [res, jobUploadData, location]\r\n })\r\n )\r\n } else if (this.isSkipBtn) {\r\n const jobUploadData = {\r\n location: {\r\n LocationID: this.jobDetails.value.LocationID || 0,\r\n LocationTypeID: this.jobDetails.value.LocationTypeID || 0,\r\n ObjectId: this.jobDetails.value.JobId || 0,\r\n ObjectTypeId: this.jobDetails.value.ObjectTypeId || 0,\r\n Address: '',\r\n FullAddress: '',\r\n Address1: '',\r\n StreetAddress: this.jobDetails.value.StreetAddress || '',\r\n City: this.jobDetails.value.City || '', // Corrected to this.jobDetails.City\r\n State: this.jobDetails.value.State || '',\r\n StateID: this.jobDetails.value.StateID || 0,\r\n ZipCode: this.jobDetails.value.ZipCode || 0,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: new Date(),\r\n IsActive: true,\r\n StateCode: this.jobDetails.value.StateCode || 0,\r\n },\r\n }\r\n\r\n return this.addLocation(jobUploadData).pipe(\r\n map((location) => {\r\n return [res, jobUploadData, location]\r\n })\r\n )\r\n }\r\n }),\r\n switchMap(([res, jobUploadData, location]) => {\r\n if (res) {\r\n this.ClientName = res.Name\r\n this.ClientContactPhone = res.Phone\r\n this.ClientContactEmail = res.EmailAddress\r\n\r\n let job: iJob = Common.activeJob\r\n let similarJobTitles: string\r\n if (Array.isArray(this.jobDetails.value.JobSimiliarTitleName)) {\r\n similarJobTitles = this.jobDetails.value.JobSimiliarTitleName?.toString()\r\n } else {\r\n similarJobTitles = this.jobDetails.value.JobSimiliarTitleName\r\n }\r\n this.jobDetail.value\r\n this.jobData = {\r\n job: {\r\n JobId: this.jobId || 0,\r\n JobCode: this.jobDetails.value.JobCode || '0',\r\n JobTitleID: this.jobDetails?.value?.JobTitleID || 0,\r\n JobTitleName: this.jobDetails.value.JobTitleName || '',\r\n IsDisplayExternal: this.job.IsDisplayExternal || false,\r\n SimilarTitles: similarJobTitles || '',\r\n BooleanQuery: this.jobDetails.value.BooleanQuery || '',\r\n AlternateBooleanQuery: this.jobDetails.value.AlternateQuery || '',\r\n StartDate: this.jobDetails.value.StartDate || null,\r\n EndDate: this.jobDetails.value.EndDate || null,\r\n JobTypeID: this.jobDetails.value.JobTypeID || 0,\r\n Description: this.jobDetails.value.Description || '',\r\n JobDetails: this.jobDetails.value.JobDetails || '',\r\n MaxSubmissionCount: this.jobDetails.value.MaxSubmission || 0,\r\n MaxBillRate: Number(this.jobDetails.value.MaxBillRate) || 0,\r\n MinBillRate: Number(this.jobDetails.value.MinBillRate) || 0,\r\n MaxSalary: Number(this.jobDetails.value.MaxSalary) || 0,\r\n MinSalary: Number(this.jobDetails.value.MinSalary) || 0,\r\n InterviewTypeID: this.jobDetails.value.InterviewTypeID || 0,\r\n OverTimeRequired: this.jobDetails.value.OverTimeRequired || false,\r\n OverTimeRate: this.jobDetails.value.OverTimeRate || 0,\r\n TravelRequired: this.jobDetails.value.TravelRequired ? true : false,\r\n TravelPercentage: Number(this.jobDetails.value.TravelPercentage) || 0,\r\n ExpiryDate: this.jobDetails.value.ExpiryDate || null,\r\n ClientContactEmail: this.ClientContactEmail || '',\r\n ClientContactName: this.ClientContactName || '',\r\n ClientContactPhone: this.ClientContactPhone || '',\r\n ClientName: this.ClientName || '',\r\n CustomerContactId: this.selectedContactId || 0,\r\n MspContactId: this.selectedMspContactId || 0,\r\n HiringManager:this.jobDetails.value.HiringManager || '',\r\n ProgramManager:this.jobDetails.value.MspContact||'',\r\n WorkHours: this.jobDetails.value.NoOfHoursWeek || 40,\r\n WorkTypeID: this.workTypeID || 0,\r\n PostedBy: this.authService.userInfo.userID || 0,\r\n PostedDate: new Date(),\r\n PostedFor: this.jobDetails.value.PostedFor || 0,\r\n Positions: this.jobDetails.value.NoOfPosition || 0,\r\n SecondaryRecruiterId: this.jobDetails.value.SecondaryRecruiterId || 0,\r\n IsHot: this.jobDetails.value.IsHot || false,\r\n IsVendorAllowed:this.jobDetails.value.IsVendorAllowed ?true :false,\r\n VendorAllowedId: this.jobDetails.value.VendorAllowedId ? 1 : 0,\r\n LocationID: this.jobDetails.value.LocationID || 0,\r\n BackgroundCheckId: this.jobDetails.value.backGroundCrtl.join(',') || '',\r\n IndustryID: this.selectedIndustryId || 0,\r\n JobCategoryID: this.selectedCategory.CategoryID || 0,\r\n SkillLevelID: this.selectedSkillLevelId || 0,\r\n WorkOptionId: this.jobDetails.value.WorkOptionId || 0,\r\n SalaryDisplayTypeID: this.jobDetails.value.SalaryDisplayTypeID || 0,\r\n SelectedCompanyId: this.selectedCompanyId || 0,\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID || 0,\r\n SpecializedSkill: this.jobDetails.value.SpecializedSkill || '',\r\n SpecializedSkillID: this.selectedSpecializedSkillId || 0,\r\n CategoryName: this.selectedCategory.Name || '',\r\n MinExperience: this.jobDetails.value.MinExperience || 0,\r\n MaxExperience: this.jobDetails.value.MaxExperience || 0,\r\n JobStatusID:\r\n statusId === Common.enumJobStatuses.JOB_DRAFT\r\n ? Common.enumJobStatuses.JOB_DRAFT\r\n : Common.enumJobStatuses.JOB_OPEN,\r\n Location: {\r\n Address: this.jobDetails?.value?.Address || '',\r\n Address1: this.jobDetails?.value?.Address1 || '',\r\n City: this.jobDetails?.value?.City || '',\r\n\r\n CreatedBy: this.jobDetails?.value?.CreatedBy || 0,\r\n CreatedDate: this.jobDetails?.value?.CreatedDate || new Date(),\r\n FullAddress: this.jobDetails?.value?.FullAddress || '',\r\n\r\n IsActive: this.jobDetails?.value?.IsActive || true,\r\n LocationID: this.jobDetails?.value?.LocationID || 0,\r\n\r\n LocationTypeId: this.jobDetails?.value?.LocationTypeID || 0,\r\n ObjectId: this.jobDetails?.value?.ObjectId || 0,\r\n ObjectTypeId: this.jobDetails?.value?.ObjectTypeId || 0,\r\n State: this.jobDetails?.value?.State || '',\r\n StreetAddress: this.jobDetails?.value?.StreetAddress || '',\r\n StateID: this.jobDetails?.value?.StateID || 0,\r\n ZipCode: this.jobDetails?.value?.ZipCode || 0,\r\n UpdatedBy: this.authService.userInfo?.userID || 0,\r\n UpdatedDate: this.jobDetails?.value?.UpdatedDate || new Date(),\r\n },\r\n },\r\n\r\n LocationID: this.jobDetails?.value?.LocationID,\r\n jobSkills: this.jobskillArray || [],\r\n jobLegalTypes: this.selectedLegalTypeArray?.data || [],\r\n jobInterviewTypes: this.selectedInterviewTypeArray?.data || [],\r\n\r\n jobEducations: this.jobDetails.value.JobEducations || [],\r\n jobCertifications: this.selectedCertifications || [],\r\n }\r\n return this.jobService.savejobinfo(this.jobData) // Return savejobinfo observable\r\n } else {\r\n throw new Error('Company details not found')\r\n }\r\n })\r\n )\r\n .subscribe({\r\n next: (data) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job posted successfully', '')\r\n Common.activeJob.JobStatusID =\r\n statusId === Common.enumJobStatuses.JOB_DRAFT\r\n ? Common.enumJobStatuses.JOB_DRAFT\r\n : Common.enumJobStatuses.JOB_OPEN\r\n Common.activeJob.JobStatus = statusId === Common.enumJobStatuses.JOB_DRAFT ? 'Draft' : 'Open'\r\n this.updateObjectStatus(\r\n this.jobId || 0,\r\n Common.enumObjectTypes.Job,\r\n statusId,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n\r\n if (statusId === Common.enumJobStatuses.JOB_OPEN) {\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '350px',\r\n height: '100%',\r\n width: '100%',\r\n })\r\n this.router.navigate(['/jobs'])\r\n } else {\r\n const statusSet = {\r\n JobId: this.jobId || 0,\r\n JobStatusId: statusId,\r\n JobStatusName: statusId === 2 ? 'Draft' : 'Open',\r\n TranStatus: 'Success',\r\n }\r\n this.jobService.setJobCloneStatus({ ...statusSet })\r\n if (this.jobId === 0 || undefined) {\r\n this.router.navigate(['/jobs'], {\r\n state: {\r\n isDraft: true,\r\n },\r\n })\r\n } else {\r\n this.router.navigate(['/jobs'], {\r\n state: {\r\n isDraft: false,\r\n },\r\n })\r\n }\r\n }\r\n },\r\n error: (err) => {\r\n console.error('Error posting job:', err)\r\n this.loading = false\r\n this.notifyService.showError('Error posting job', '')\r\n },\r\n })\r\n }\r\n\r\n onSelectedDegree(event: MatSelectChange) {\r\n this.selectedEducations = []\r\n\r\n event.value.forEach((degreeName) => {\r\n const DEGREE = this.degreeType.find((degree) => degree.Key.toLowerCase() === degreeName.toLowerCase())\r\n\r\n if (DEGREE) {\r\n this.selectedEducations.push({\r\n JobEductionID: 0,\r\n JobID: this.jobId,\r\n EducationID: DEGREE.Value,\r\n EducationName: DEGREE.Key,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedDate: new Date(),\r\n UpdatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n })\r\n }\r\n })\r\n\r\n Common.activeJob.JobEducations = this.selectedEducations\r\n Common.activeJob.JobCertifications = this.selectedCertifications\r\n }\r\n\r\n removeMatChip(keyword: any, index: number): void {\r\n if (index >= 0) {\r\n this.similarTitles.splice(index, 1)\r\n }\r\n this.similarTitles = [...this.similarTitles]\r\n this.jobDetails.get('JobSimiliarTitleName').setValue(this.similarTitles.toString())\r\n }\r\n addMatChip(event: any, type: string): void {\r\n const input = event.target as HTMLInputElement\r\n const value = input.value.trim()\r\n\r\n if (value) {\r\n if (type === 'similarTitles') {\r\n this.similarTitles.push(value)\r\n this.jobDetails.get('JobSimiliarTitleName').setValue(this.similarTitles.toString())\r\n }\r\n input.value = ''\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this._destroy$.next(false)\r\n this._destroy$.complete()\r\n this.jobService.setAddJobDetails(null)\r\n }\r\n booleanQueryResizeTextArea(): void {\r\n const booleanTextarea = this.booleanTextarea?.nativeElement\r\n booleanTextarea.style.height = 'auto'\r\n booleanTextarea.style.height = `${booleanTextarea?.scrollHeight}px`\r\n }\r\n alternateQueryResizeTextArea() {\r\n const textarea = this.alternateTextarea?.nativeElement\r\n textarea.style.height = 'auto'\r\n textarea.style.height = `${textarea?.scrollHeight}px`\r\n }\r\n\r\n travelRequiredChanged(event) {\r\n if (this.travelPercent) {\r\n if (event.value == 'true') {\r\n this.travelPercent.nativeElement.setAttribute('style', 'display: block;')\r\n this.travelPercent.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n } else {\r\n this.travelPercent.nativeElement.setAttribute('style', 'display: none;')\r\n }\r\n }\r\n this.isTravelRequired = event.value === true\r\n }\r\n\r\n applyFilterCity(city) {\r\n city = city.trim()\r\n this.consultantService\r\n .getCitySearch(city)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.filterCities = res\r\n })\r\n }\r\n\r\n removeSkill() {\r\n // this.jobskillArray = this.jobskillArray.slice(0, this.indexOfItemToBeDeleted)\r\n this.jobskillArray.splice(this.indexOfItemToBeDeleted, 1)\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n this.dialog.closeAll()\r\n }\r\n\r\n onSelectedCity(city) {\r\n this.jobDetails.patchValue({\r\n Address: city.Address,\r\n Address1: city.Address1,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n FullAddress: city.FullAddress,\r\n IsActive: true,\r\n State: city.State,\r\n City: city.City,\r\n StateCode: city.StateCode,\r\n StateID: city.StateID,\r\n ObjectId: city.ObjectId,\r\n LocationID: city.LocationID,\r\n LocationTypeID: city.LocationTypeID,\r\n ObjectTypeId: city.ObjectTypeId,\r\n UpdatedBy: this.authService.userInfo.userID,\r\n UpdatedDate: new Date(),\r\n })\r\n }\r\n\r\n applyFilterState(state) {\r\n state = state.trim()\r\n this.consultantService\r\n .getStateSearch(state)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.filteredStates = res\r\n })\r\n }\r\n onSelectedState(state: any) {\r\n this.jobDetails.get('State').setValue(state.StateCode)\r\n }\r\n onInputChange(event: any): void {\r\n let value = event.target.value\r\n const numericValue = Number(value)\r\n if (numericValue < 0 || numericValue > 100 || isNaN(numericValue)) {\r\n event.target.value = ''\r\n }\r\n }\r\n addSoftSkillToJobSkills(skill: any) {\r\n if (skill && skill.Name) {\r\n if (skill.SkillTypeId === 151) {\r\n skill.SkillTypeId = 152\r\n }\r\n const updatedSkill = { ...skill, SkillName: skill.Name }\r\n this.jobskillArray = this.jobskillArray ?? []\r\n if (!this.jobskillArray.some((s) => s.SkillName === updatedSkill.SkillName)) {\r\n this.jobskillArray?.push({\r\n JobSkillID: null,\r\n JobID: this.jobId,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: 0,\r\n SkillName: skill.Name,\r\n Required: false,\r\n SkillTypeId: 152,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n Common.activeJob.JobSkills = this.jobskillArray\r\n\r\n this.jobDetails.get('JobSkills').patchValue(this.jobskillArray)\r\n\r\n this.notifyService.showSuccess('Soft Skill saved successfully', '')\r\n } else {\r\n this.notifyService.showError('This skill has already been added.', '')\r\n }\r\n const inputElement = document.querySelector('.softSkill') as HTMLInputElement\r\n if (inputElement) {\r\n inputElement.value = ''\r\n }\r\n }\r\n }\r\n applyFilterSkill(filterValue: string) {\r\n const trimmedValue = filterValue.trim()\r\n if (trimmedValue.length > 0) {\r\n this.jobService\r\n .getSkillNames(trimmedValue,152)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res: any) => {\r\n this.softSkillNames = res\r\n })\r\n } else {\r\n this.softSkillNames = []\r\n }\r\n }\r\n removeRequiredSkillList(keyword: any): void {\r\n const index = this.jobskillArray.findIndex((s) => s.SkillName === keyword.SkillName)\r\n if (index >= 0) {\r\n this.jobskillArray.splice(index, 1)\r\n this.jobService.setAddJobDetails(this.jobskillArray)\r\n this.notifyService.showSuccess('Skill removed successfully', '')\r\n }\r\n }\r\n requiredSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.jobskillArray, event.previousIndex, event.currentIndex)\r\n }\r\n}\r\n","\r\n \r\n\r\n\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Job Details\r\n close\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Job Id-{{ jobId ? jobId : 0 }} Draft\r\n close\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title * \r\n \r\n \r\n Title is required\r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Customer Job Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Similar Job Titles\r\n \r\n \r\n \r\n {{ similar }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Job Category * \r\n \r\n \r\n \r\n {{ category.Name }}\r\n \r\n \r\n Category is required \r\n \r\n
\r\n
\r\n Specialized Skill\r\n \r\n \r\n \r\n {{ skill.SkillName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Minimum Experience *\r\n \r\n \r\n \r\n
\r\n
\r\n Maximum Experience\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Client Name * \r\n \r\n \r\n Client is required\r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n You should enter value from suggested ones only.\r\n \r\n \r\n
\r\n
\r\n Hiring Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Program Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Option *\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Street Address\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n City* \r\n \r\n \r\n \r\n \r\n {{ city.City }}, {{ city.StateCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n State *\r\n \r\n \r\n \r\n \r\n {{ state.StateName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Zip Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Type* \r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Job Type is Required\r\n \r\n \r\n
\r\n
\r\n Max Bill Rate/hr\r\n \r\n \r\n \r\n
\r\n
\r\n Max Annual Salary\r\n \r\n \r\n \r\n
\r\n
\r\n Salary External Portal\r\n \r\n \r\n \r\n {{ salary.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Type* \r\n \r\n Full Time\r\n    \r\n Part Time\r\n \r\n
\r\n
\r\n No Of Position *\r\n \r\n \r\n \r\n
\r\n
\r\n Max Submission\r\n \r\n \r\n \r\n
\r\n
\r\n No Of Hours/Week\r\n \r\n \r\n \r\n
\r\n
\r\n Travel Required\r\n \r\n \r\n Yes\r\n No\r\n \r\n \r\n
\r\n
\r\n Job Related Travel %\r\n \r\n \r\n \r\n
\r\n
\r\n Work Permit\r\n \r\n \r\n \r\n {{ legaltype.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Interview Type\r\n \r\n \r\n \r\n {{ interviewtype?.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Background Checks *\r\n \r\n \r\n \r\n {{ bgc.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Vendors Allowed\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Job Description *\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Professional Skills\r\n \r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n \r\n
\r\n
0\">\r\n \r\n \r\n {{ skill?.SkillName }} ({{ skill?.Experience }} Yrs) \r\n \r\n edit\r\n \r\n \r\n \"Delete\r\n \r\n \r\n \r\n
\r\n -\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Soft Skills\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ soft?.SkillName }}\r\n clear\r\n \r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Boolean Query\r\n \r\n \r\n \r\n
\r\n
\r\n Alternate Query\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Education\r\n
\r\n
\r\n
Choose Degree
\r\n \r\n \r\n \r\n {{ dg.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Certification\r\n
\r\n
\r\n
Add Certifications
\r\n \r\n \r\n \r\n {{ cert.CertificationName }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Start Date*\r\n \r\n \r\n Start date is required \r\n \r\n \r\n Start date cannot be less than current date\r\n \r\n
\r\n
\r\n End Date*\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Submission Due Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Primary Recruiter *\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n Recruiter is required \r\n \r\n
\r\n
\r\n Secondary Recruiters\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Save\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this certificate?\r\n
\r\n
\r\n \r\n Delete\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this skill?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n close\r\n
\r\n
\r\n \"\"\r\n Created Job Successfully!\r\n Job ID: {{ jobId }}\r\n You can view job from landing page and edit.\r\n
\r\n
\r\n","import { Component, NgZone, OnInit, ViewChild } from '@angular/core'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from '../../shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common } from '../../common/common'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { DatePipe } from '@angular/common'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { iJob } from 'src/app/models/job.model'\r\n\r\n@Component({\r\n selector: 'job-addlayout',\r\n templateUrl: './job-addlayout.component.html',\r\n styleUrls: ['./job-addlayout.component.scss'],\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n DatePipe,\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class JobAddlayoutComponent implements OnInit {\r\n @ViewChild('stepper') public myStepper: MatStepper\r\n iShowUpload: boolean = false\r\n disableTab: boolean = false\r\n isFormEntryValid = false\r\n job: iJob = {}\r\n jobFormEventArray: number[] = []\r\n constructor(private layoutService: LayoutService, private loadComponent: LoadComponent, private ngZone: NgZone) {}\r\n ngOnInit(): void {\r\n if (Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n this.iShowUpload = true\r\n this.disableTab = false\r\n }\r\n }\r\n\r\n previousNextHandler(event) {\r\n if (event == StepperButtonType.Next) {\r\n this.ngZone.run(() => {\r\n this.myStepper.selected.completed = true\r\n this.myStepper.next()\r\n })\r\n } else if (event == StepperButtonType.Previous) this.myStepper.previous()\r\n }\r\n\r\n jobCompleted(event) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n newJobAdded(event) {\r\n this.isFormEntryValid = true\r\n this.job = Common.activeJob\r\n this.jobFormEventArray.push(event)\r\n\r\n if (Common.activeJob != null) {\r\n this.disableTab = false\r\n }\r\n }\r\n\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n ngOnDestroy() {\r\n Common.activeJob = null\r\n }\r\n\r\n isStepCompleted(step: any) {\r\n return this.jobFormEventArray.includes(step)\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n Add Job\r\n close\r\n \r\n \r\n {{ index + 1 }} \r\n {{ index + 1 }} \r\n\r\n \r\n \r\n Upload\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Other
Details
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Skills\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Certifications/
Education
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Questionnaire\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Job Details\r\n \r\n
\r\n \"Open\r\n
\r\n
\r\n
","import { H } from '@angular/cdk/keycodes';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { format } from 'date-fns';\r\nimport { CommonService } from 'src/app/services/common.service';\r\n\r\n\r\n@Component({\r\n selector: 'job-candidate-card',\r\n templateUrl: './job-candidate-card.component.html',\r\n styleUrls: ['./job-candidate-card.component.scss']\r\n})\r\nexport class JobCandidateCardComponent implements OnInit {\r\n baseFilePath: any;\r\n constructor(private commonService: CommonService) { }\r\n @Input() job: any;\r\n today = new Date().getDate().toLocaleString()\r\n ngOnInit(): void {\r\n this.baseFilePath = this.commonService.getAppSettings().then(data => {\r\n this.baseFilePath = data.filePath;\r\n })\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \"Profile\r\n
\r\n
\r\n
\r\n {{job?.ConsultantName}}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n more_vert\r\n \"bookmark\"\r\n \"dice\"\r\n
\r\n
\r\n
\r\n
\"RegionReq\"US Citizen
\r\n
\"Experience\"6 Yrs
\r\n
\"Location\"Irvane, CA
\r\n
\"Salary\"125,000/ Annum | $85/hr
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"Resume\"\r\n
\r\n Resume Last Updated\r\n {{job.UpdatedDate | date: \"dd\"}} days ago\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Ranking\"\r\n \"Contact\"\r\n \"Mail\"\r\n \"Text\"\r\n \"Download\"\r\n
\r\n
\r\n
\r\n
\r\n
","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewEncapsulation,\r\n ViewChild,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n ElementRef,\r\n QueryList,\r\n ViewChildren,\r\n} from '@angular/core'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { iConsultantJob, ConsultantType } from 'src/app/models/consultant.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { Common, ConsultantJobStatuses, MenuName, PreviewDialogAction } from 'src/app/common/common'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { CandidateJobSkills, iJob } from 'src/app/models/job.model'\r\nimport { iDbResult, iMenuItem } from 'src/app/models/common.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { InterviewDialogComponent } from 'src/app/shared/interview-dialog/interview-dialog.component'\r\nimport { Subject, Subscription, combineLatest, forkJoin } from 'rxjs'\r\nimport { animate, state, style, transition, trigger } from '@angular/animations'\r\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { first, map, takeUntil } from 'rxjs/operators'\r\nimport { Company } from 'src/app/models/company.model'\r\nimport { MatSort } from '@angular/material/sort'\r\nimport { Contact, User } from './interfaces/jobConsultants.model'\r\nimport { Email, PreviewDialogCloseAction } from 'src/app/models/emailModel'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { ConsultantDialogComponent } from 'src/app/consultant/consultant-dialog/consultant-dialog.component'\r\nimport { ConsultantDialogTypes, ConsultantJobStatus } from 'src/app/consultant/consultant-constants'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { DialogActions } from 'src/app/enums/dialogActions'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { CompanyDialogComponent } from 'src/app/company/company-dialog/company-dialog.component'\r\nimport { CompanyDialogTypes } from 'src/app/company/company-constants'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iAssignedUsers } from 'src/app/models/assignedUser.model'\r\nimport { CompanyList } from 'src/app/models/company-list-response'\r\nimport { PageEvent } from '@angular/material/paginator'\r\nimport { JOB_EDIT_ACTION, JOB_VIEW_ACTION } from 'src/app/enums/userActions'\r\nimport { Router } from '@angular/router'\r\n\r\n@Component({\r\n selector: 'job-candidates',\r\n templateUrl: './job-candidates.component.html',\r\n styleUrls: ['./job-candidates.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobCandidatesComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() changeData\r\n @Output() jobViewActiveTab: EventEmitter = new EventEmitter()\r\n @ViewChild(MatSort) sort: MatSort\r\n\r\n toolBarItems: iMenuItem[]\r\n menu: iMenuItem\r\n jobConsultants: iConsultantJob[] = []\r\n consultantJob: iConsultantJob\r\n job: iJob = {}\r\n public loading = false\r\n dataSource: MatTableDataSource | null\r\n selectedReasonId: number\r\n selectedReason: string\r\n isTableExpanded = false\r\n dataJobCandidateList = new MatTableDataSource()\r\n displayedJobCandidateColumns: string[] = [\r\n 'ConsultantName',\r\n 'BillRate',\r\n 'PayRate',\r\n 'Salary',\r\n 'Margin',\r\n 'RecruiterName',\r\n 'EmploymentType',\r\n 'ConsultantJobStatus',\r\n 'interviewDetails',\r\n 'candidateJobHistory',\r\n 'UpdatedBy',\r\n 'actions',\r\n ]\r\n jobView: FormGroup\r\n companyVendorID: number\r\n vendorContactId: number\r\n consultantTypeId: number\r\n recruiterId: number\r\n recruiters: User[]\r\n consultantTypes: ConsultantType[]\r\n editMode: boolean = false\r\n loadVendorView: boolean = false\r\n companies: Company[] = []\r\n contacts: Contact[] = []\r\n candidateSkills: CandidateJobSkills[] = []\r\n jobTypeID: number\r\n minimumPayrate: number = 7.25\r\n maxBillRate: number = 999\r\n isFromStatusChange: boolean = false\r\n isCandidateCardView$ = combineLatest([this.commonService.isCandidateCardView$]).pipe(map(([value]) => ({ value })))\r\n\r\n radarChart\r\n destroy$: Subject = new Subject()\r\n allCompanies: Company[]\r\n selectedMenu: iMenuItem\r\n candidateJobStartDate: Date | string\r\n candidateJobEndDate: Date | string\r\n candidateTerminationDate: Date | string\r\n startPageIndex: number = 0\r\n pageSize: number = 5\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobViewAction = JOB_VIEW_ACTION\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public dialog: MatDialog,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private jobService: JobService,\r\n private notifyService: NotificationService,\r\n private consultantService: ConsultantService,\r\n private ref: ChangeDetectorRef,\r\n private commonMatDialog: CommonMatDialogService,\r\n private _companyService: CompanyService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private router: Router\r\n ) {\r\n this.jobView = this.formBuilder.group({\r\n ClientRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.max(this.maxBillRate)(control)],\r\n ],\r\n PayRate: [\r\n null,\r\n [Validators.required, (control: AbstractControl) => Validators.min(this.minimumPayrate)(control)],\r\n ],\r\n Salary: [null],\r\n ConsultantTypeId: [null, Validators.required],\r\n CompanyName: [null, Validators.required],\r\n CompanyContact: [null, Validators.required],\r\n RecruiterId: [null, Validators.required],\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.complete()\r\n }\r\n\r\n onCandidateHyperLink(consultantId, job, rowIndex?) {\r\n this.router.navigate(['/candidates'], {\r\n state: { job: job, isFromCandidateTab: true },\r\n queryParams: { consultantId: consultantId },\r\n })\r\n }\r\n\r\n public get jobTypesEnum(): typeof JobTypes {\r\n return JobTypes\r\n }\r\n\r\n public get consultantJobStatuses(): typeof ConsultantJobStatuses {\r\n return ConsultantJobStatuses\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.ref.detectChanges()\r\n this.dataJobCandidateList.sort = this.sort\r\n }\r\n\r\n private subscription: Subscription\r\n toggleTableRows() {\r\n this.isTableExpanded = !this.isTableExpanded\r\n\r\n this.dataJobCandidateList.data.forEach((row: any) => {\r\n row.isExpanded = this.isTableExpanded\r\n })\r\n this.ref.detectChanges()\r\n this.dataJobCandidateList.sort = this.sort\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((messageConsultantView) => {\r\n this.toolBarItems = this.commonService.menuItems\r\n if (Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n this.commonService.interviewSchedule$.pipe(takeUntil(this.destroy$)).subscribe((trigger) => {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n })\r\n }\r\n isValidConsultantJobData(): boolean {\r\n if (this.consultantJob.ConsultantTypeID <= 0) {\r\n return false\r\n }\r\n\r\n if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2C) {\r\n if (this.consultantJob.VendorContactID <= 0) {\r\n return false\r\n }\r\n if (this.consultantJob.VendorName == '') {\r\n return false\r\n }\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_C2O) {\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_1099) {\r\n if (this.consultantJob.BillRate <= 0) {\r\n return false\r\n }\r\n if (this.job.JobTypeID == 10 || this.job.JobTypeID == 11) {\r\n if (this.consultantJob.PayRate <= 0) {\r\n return false\r\n }\r\n }\r\n } else if (this.consultantJob.ConsultantTypeID == Common.enumConsultantType.CAN_W2) {\r\n if (this.job.JobTypeID == 11 || this.job.JobTypeID == 12) {\r\n if (this.consultantJob.Salary <= 0) {\r\n return false\r\n }\r\n }\r\n }\r\n\r\n if (this.consultantJob.RecruiterId <= 0) {\r\n return false\r\n }\r\n return true\r\n }\r\n openStatusChange(consultantJob, mnuItem) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n this.consultantJob = consultantJob\r\n Common.activeConsultantJob = consultantJob\r\n let dialogRef\r\n\r\n if (\r\n (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_SUBMITTED ||\r\n mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_PREVIEW) &&\r\n Common.activeJob.MaxSubmissionCount !== 0\r\n ) {\r\n const candidateSubmitCount = this.jobConsultants.filter(\r\n (candidate) => candidate.ConsultantJobStatus == ConsultantJobStatus.Submitted\r\n )?.length\r\n\r\n if (Common.activeJob.MaxSubmissionCount <= candidateSubmitCount) {\r\n this.notifyService.showWarning('Max candidate submit reached.', 'Job Candidate')\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n return\r\n }\r\n }\r\n if (\r\n this.menu.MenuCode == Common.enumMenuCode.CON_JOB_INTEW_SCHED ||\r\n this.menu.MenuCode == Common.enumMenuCode.CON_JOB_INTVW_ANOTHER\r\n ) {\r\n dialogRef = this.dialog.open(InterviewDialogComponent, {\r\n width: '800px',\r\n data: { consultantjob: this.consultantJob, menu: this.menu },\r\n })\r\n } else {\r\n if (\r\n mnuItem.MenuCode === Common.enumMenuCode.CON_JOB_PREVIEW ||\r\n mnuItem.MenuCode === Common.enumMenuCode.CON_JOB_SUBMITTED\r\n ) {\r\n dialogRef = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Candidate_Mail_Text_Edit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n },\r\n })\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_HIRED) {\r\n dialogRef = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Candidate_Duration_Date,\r\n },\r\n })\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_APRVAL_PENDG) {\r\n dialogRef = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobEdit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n isDialogForStatusChange: true,\r\n changedStatus: mnuItem.MenuCode,\r\n },\r\n })\r\n } else {\r\n dialogRef = this.dialog.open(ActionDialogComponent, {\r\n width: '400px',\r\n data: {\r\n consultantjob: this.consultantJob,\r\n menu: this.menu,\r\n },\r\n })\r\n }\r\n }\r\n\r\n dialogRef?.afterClosed().subscribe(async (result) => {\r\n if (result == null || result == undefined || result.formName === DialogActions.CLOSE) {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n } else {\r\n this.jobService.setCandidateStatus(true)\r\n if (this.menu.MenuCode == Common.enumMenuCode.CON_JOB_PREVIEW) {\r\n this.selectedReason = result.selectedReason\r\n this.setDataToForm(result?.formData)\r\n if (result?.companyVendorID) {\r\n this.companyVendorID = result?.companyVendorID\r\n }\r\n if (result?.vendorContactId) {\r\n this.vendorContactId = result?.vendorContactId\r\n }\r\n this.isFromStatusChange = false\r\n this.updateConsultantJob()\r\n if (result?.isSubmitAction) {\r\n this.menu = this.toolBarItems.find(\r\n (item) => item.MenuCode === Common.enumMenuCode.CON_JOB_SUBMITTED\r\n )\r\n this.updateProcessWorkFlow()\r\n } else {\r\n this.consultantService\r\n .getConsultantJobSkill(\r\n Common.activeConsultantJob.ConsultantID,\r\n Common.activeConsultantJob.JobID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res != null) {\r\n this.candidateSkills = res\r\n this.jobService.triggerJobLoadingConfig(true)\r\n this.commonService.saveCanvasImage(res).then(async (data) => {\r\n if (data['FileId'] != null || data['FileId'] != undefined) {\r\n await this.updateProcessWorkFlow()\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.commonService\r\n .showMailPreview()\r\n .then((previewDialogAction: PreviewDialogCloseAction) => {\r\n switch (previewDialogAction?.action) {\r\n case PreviewDialogAction.Send: {\r\n this.updateObjectStatus(\r\n previewDialogAction?.emailData,\r\n this.selectedReason\r\n )\r\n break\r\n }\r\n case PreviewDialogAction.Submit: {\r\n this.menu = this.toolBarItems.find(\r\n (item) =>\r\n item.MenuCode ===\r\n Common.enumMenuCode.CON_JOB_SUBMITTED\r\n )\r\n this.updateProcessWorkFlow()\r\n break\r\n }\r\n case PreviewDialogAction.Modify: {\r\n Common.activeConsultantJob.SummaryNote =\r\n this.selectedReason\r\n this.openStatusChange(consultantJob, mnuItem)\r\n break\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n this.BindJobConsultants(\r\n Common.activeJob.JobId,\r\n this.authService.userInfo.userID\r\n )\r\n })\r\n }\r\n })\r\n } else {\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.candidateSkills = null\r\n }\r\n },\r\n (err: any) => {\r\n this.jobService.triggerJobLoadingConfig(false)\r\n }\r\n )\r\n return\r\n }\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_APRVAL_PENDG) {\r\n this.selectedReason = result.selectedReason\r\n this.setDataToForm(result?.formData)\r\n if (result?.companyVendorID) {\r\n this.companyVendorID = result?.companyVendorID\r\n }\r\n if (result?.vendorContactId) {\r\n this.vendorContactId = result?.vendorContactId\r\n }\r\n let accountingManagers: iAssignedUsers[] = (await this.getAccountingManagerByCompanyId(\r\n Common.activeConsultantJob.ClientCompanyId\r\n )) as iAssignedUsers[]\r\n if (accountingManagers.length === 0) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `No Account Manager or Deputy manager assigned to ${Common?.activeJob?.CompanyName}.`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Assign',\r\n IsDangerButton: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isAssigned) => {\r\n if (isAssigned) {\r\n this.openAssignUserDialog()\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n } else if (accountingManagers?.filter((manager) => manager?.IsActive)?.length === 0) {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n Message: `Account Manager is inactive do you want to make it active.`,\r\n Header: 'Confirmation',\r\n ButtonText: 'Ok',\r\n IsDangerButton: false,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((isConfirm) => {\r\n if (isConfirm) {\r\n this.activateAccountManager(accountingManagers)\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n } else {\r\n this.updateConsultantJob()\r\n this.updateProcessWorkFlow()\r\n }\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_HIRED) {\r\n this.candidateJobStartDate = result?.formData?.StartDate\r\n this.candidateJobEndDate = result?.formData?.EndDate\r\n this.updateConsultantJob()\r\n this.updateProcessWorkFlow()\r\n } else if (mnuItem.MenuCode == Common.enumMenuCode.CON_JOB_TERMINATE) {\r\n this.candidateTerminationDate = result?.terminationDate\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n this.updateConsultantJob()\r\n this.updateProcessWorkFlow()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n this.updateProcessWorkFlow()\r\n }\r\n }\r\n })\r\n }\r\n\r\n getAccountingManagerByCompanyId(companyId) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n this._companyService\r\n .getAccountManagersByCompanyId(companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (users: iAssignedUsers[]) => {\r\n this.loading = false\r\n if (users.length === 0) {\r\n resolve([])\r\n }\r\n resolve(users)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n reject()\r\n },\r\n })\r\n })\r\n }\r\n\r\n async activateAccountManager(usersToMakeActive: iAssignedUsers[]) {\r\n await this.getCompanyById(Common.activeConsultantJob.ClientCompanyId)\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.User_Active_Action,\r\n usersToMakeActive: usersToMakeActive,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.User_Active_Action) {\r\n const userToUpdate = usersToMakeActive.find((user) => user.UserAssignmentId == data.userAssignmentId)\r\n this.updateAccountingManager(userToUpdate)\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n }\r\n\r\n updateAccountingManager(managerToUpdate) {\r\n const user: iAssignedUsers = {\r\n UserAssignmentId: managerToUpdate?.UserAssignmentId,\r\n CompanyId: Common?.activeConsultantJob?.ClientCompanyId,\r\n UserId: managerToUpdate.UserId,\r\n CreatedBy: this.authService?.userInfo?.userID,\r\n CreatedDate: new Date(),\r\n ActiveDate: new Date(),\r\n InActiveDate: managerToUpdate?.InActiveDate,\r\n IsActive: true,\r\n UpdatedBy: this.authService?.userInfo?.userID,\r\n UpdatedDate: new Date(),\r\n }\r\n this.loading = true\r\n this._companyService\r\n .editUser(user)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.loading = false\r\n if (res == HttpStatusCode.Ok) {\r\n this.updateProcessWorkFlow()\r\n this.notifyService.showSuccess('Updated successfully!', 'User Assignment')\r\n } else {\r\n this.notifyService.showError('Failed to update!', 'User Assignment')\r\n }\r\n },\r\n (error) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n async openAssignUserDialog() {\r\n await this.getCompanyById(Common.activeConsultantJob.ClientCompanyId)\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Users,\r\n isFromJobStatus: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Users) {\r\n this.addAssignUser(data.user_list, data.company_list)\r\n } else if (data.formName === CompanyDialogTypes.No_Account_Managers) {\r\n this.addAccountingManager()\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n }\r\n\r\n get3iStaffingCompany() {\r\n return new Promise((resolve, reject) => {\r\n const filter = {\r\n Company: '',\r\n IndustryID: '',\r\n CompanyTypeId: '76',\r\n StatusID: '',\r\n PageNumber: 1,\r\n PageSize: 10,\r\n UserId: this.authService.userInfo.userID,\r\n }\r\n this._companyService\r\n .getCompanyList(filter)\r\n .pipe(first())\r\n .subscribe({\r\n next: (companyList) => {\r\n resolve(companyList[0])\r\n },\r\n error: (error) => {\r\n reject()\r\n },\r\n })\r\n })\r\n }\r\n\r\n async addAccountingManager() {\r\n const currentActiveCompany = { ...CommonData.activeCompany }\r\n const parentCompany: CompanyList = await this.get3iStaffingCompany()\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Contact,\r\n formData: null,\r\n CompanyId: parentCompany.CompanyID,\r\n isFormViewOnly: false,\r\n isManualAdd: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Contact) {\r\n if (data.formData.isLocation) {\r\n this.addAccountingManagerLocation(data.formData, parentCompany.CompanyID, currentActiveCompany)\r\n } else {\r\n this.updateContact(data.formData, parentCompany.CompanyID, currentActiveCompany)\r\n }\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this._setCommonActiveCompany(currentActiveCompany)\r\n }\r\n })\r\n }\r\n\r\n addAccountingManagerLocation(contactData, companyId, currentActiveCompany) {\r\n const location = contactData.Location\r\n location.ObjectId = companyId\r\n this._companyService\r\n .AddLocation(location)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = null\r\n this.updateContact(contactData, companyId, currentActiveCompany, res.LocationID)\r\n }\r\n })\r\n }\r\n\r\n updateContact(contactData, companyId, currentActiveCompany, locationID?) {\r\n const contact = {\r\n FirstName: contactData.FirstName,\r\n LastName: contactData.LastName,\r\n WorkPhone: contactData.WorkPhone,\r\n EmailAddress: contactData.Email,\r\n Email: contactData.Email,\r\n LinkedinUrl: contactData.LinkedinUrl,\r\n ManagementLevelID: contactData.ManagementLevelID ? contactData.ManagementLevelID : null,\r\n ManagementLevel: contactData.ManagementLevel,\r\n DepartmentID: contactData.DepartmentID ? contactData.DepartmentID : null,\r\n DepartmentName: contactData.DepartmentName,\r\n ParentID: contactData.ParentID,\r\n TitleID: contactData.TitleID ? contactData.TitleID : null,\r\n RoleID: contactData.selectedRoleId ? contactData.selectedRoleId : null,\r\n TitleName: contactData.Title,\r\n CompanyId: companyId,\r\n LocationID: locationID ? locationID : contactData?.Location ? contactData?.Location.LocationID : null,\r\n Location: !contactData?.isLocationDeleted ? contactData?.Location : null,\r\n ContactID: contactData.ContactID,\r\n CompanyContactID: contactData.CompanyContactID,\r\n IsActive: true,\r\n ReportingManager: contactData.ReportingManager,\r\n StateCode: contactData.StateCode,\r\n Title: contactData.Title,\r\n DoB: contactData?.DoB ? contactData.DoB : null,\r\n Sex: contactData?.Sex ? contactData.Sex : 0,\r\n CellPhone: contactData?.CellPhone ? contactData.CellPhone : '',\r\n FilePath: contactData?.FilePath ? contactData.FilePath : null,\r\n CreatedBy: contactData?.CreatedBy ? contactData.CreatedBy : 0,\r\n CreatedDate: contactData?.CreatedDate ? contactData.CreatedDate : new Date(),\r\n Address: !contactData?.isLocationDeleted ? contactData?.Location?.Address : '',\r\n Address1: !contactData?.isLocationDeleted ? contactData?.Location?.Address1 : '',\r\n City: !contactData?.isLocationDeleted ? contactData?.Location?.City : '',\r\n StateID: !contactData?.isLocationDeleted ? contactData?.Location?.StateID : 0,\r\n CountryID: !contactData?.isLocationDeleted ? contactData?.Location?.CountryID : 0,\r\n ZipCode: !contactData?.isLocationDeleted ? contactData?.Location?.ZipCode : 0,\r\n UpdatedBy: contactData?.UpdatedBy ? contactData.UpdatedBy : 0,\r\n UpdatedDate: new Date(),\r\n PersonalEmailAddress: contactData?.PersonalEmailAddress ? contactData?.PersonalEmailAddress : null,\r\n }\r\n this._companyService\r\n .AddContact(contact)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((response) => {\r\n if (response?.Contact) {\r\n this.notifyService.showSuccess(response?.Message, 'Company Contact')\r\n } else {\r\n this.notifyService.showError(response?.Message, 'Company Contact')\r\n }\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this._setCommonActiveCompany(currentActiveCompany)\r\n })\r\n }\r\n\r\n private _setCommonActiveCompany(company) {\r\n CommonData.activeCompany = { ...company }\r\n }\r\n\r\n addAssignUser(user_list, company_list) {\r\n const userAssignmentList = []\r\n for (var userIndex in user_list) {\r\n if (CommonData?.activeCompany?.CompanyTypeID === CompanyType.Client) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: CommonData?.activeCompany.CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n userAssignmentList.push(userAssignment)\r\n } else if (CommonData?.activeCompany?.CompanyTypeID === CompanyType.StaffingCompany) {\r\n for (var clientIndex in company_list) {\r\n const userAssignment = {\r\n UserAssignmentId: 0,\r\n CompanyId: company_list[clientIndex].CompanyId,\r\n UserId: user_list[userIndex].UserID,\r\n CreatedBy: this.authService.userInfo.UserId,\r\n CreatedDate: new Date(),\r\n IsActive: true,\r\n }\r\n userAssignmentList.push(userAssignment)\r\n }\r\n }\r\n }\r\n\r\n this._companyService\r\n .assignUsers(userAssignmentList)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n if (res === HttpStatusCode.Created) {\r\n this.notifyService.showSuccess('User assigned successfully!', 'User Assignment')\r\n this.updateProcessWorkFlow()\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n } else {\r\n this.notifyService.showError('Failed to assign users!', 'User Assignment')\r\n }\r\n })\r\n }\r\n\r\n getCompanyById(companyId) {\r\n return new Promise((resolve, reject) => {\r\n this.loading = true\r\n this._companyService\r\n .GetCompanyByCompanyId(companyId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (company) => {\r\n CommonData.activeCompany = company\r\n this.loading = false\r\n resolve(true)\r\n },\r\n error: (error) => {\r\n this.loading = false\r\n reject(false)\r\n },\r\n })\r\n })\r\n }\r\n\r\n getConfigValues() {\r\n this.commonService\r\n .getConfig()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n BindJobConsultants(jobId, userId) {\r\n this.job = Common.activeJob\r\n this.jobTypeID = this.job?.JobTypeID\r\n this.loading = true\r\n this.jobService\r\n .GetJobConsultants(jobId, userId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (jclst: iConsultantJob[]) => {\r\n this.jobConsultants = [...jclst]\r\n this.dataSource = new MatTableDataSource()\r\n this.dataSource.data = this.jobConsultants\r\n this.ref.detectChanges()\r\n this.dataJobCandidateList.sort = this.sort\r\n this.dataJobCandidateList.data = this.sortData(this.jobConsultants)\r\n const PAGE_EVENT: PageEvent = {\r\n pageIndex: this.startPageIndex,\r\n pageSize: this.pageSize,\r\n length: this.jobConsultants.length,\r\n }\r\n // if (this.jobConsultants.length > 5) {\r\n // this.handlePageChange(PAGE_EVENT)\r\n // }\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value\r\n this.dataJobCandidateList.filter = filterValue.trim().toLowerCase()\r\n }\r\n\r\n onSelectedReason(e) {\r\n this.selectedReasonId = e.target.value\r\n this.selectedReason = e.target.options[e.target.options.selectedIndex].text\r\n }\r\n updateProcessWorkFlow() {\r\n return new Promise((resolve) => {\r\n this.jobService.triggerJobLoadingConfig(true)\r\n var ljob: iConsultantJob = Common.activeConsultantJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n var comment\r\n if (this.selectedReasonId > 0)\r\n comment = '#ReasonID:' + this.selectedReasonId?.toString() + '# ' + this.selectedReason?.toString()\r\n else if (this.selectedReason != '') {\r\n comment = this.selectedReason\r\n } else if (\r\n this.selectedReason === '' &&\r\n this.isThePreviousCommentFromMenu(Common?.activeConsultantJob?.SummaryNote)\r\n ) {\r\n comment = this.menu.MenuName\r\n } else {\r\n comment = Common?.activeConsultantJob?.SummaryNote\r\n }\r\n\r\n forkJoin({\r\n dBresult: this.commonService.processWorkFlow(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n ),\r\n submitStatus: this.jobService.changeJobStatusBySubmittedCount(\r\n Common.activeJob.JobId,\r\n this.authService.userInfo.userID\r\n ),\r\n })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n dbresult = result?.dBresult as iDbResult[]\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.commonService.setActiveObject(\r\n ljob.ConsultantJobID,\r\n Common.enumObjectTypes.ConsultantJob,\r\n Common.enumComponent.ConsultantJob,\r\n this.authService.userInfo.roles[0].roleID,\r\n nextStatusID,\r\n 3\r\n )\r\n this.commonService.setToolBarItems(this.menu)\r\n Common.activeConsultantJob.ConsultantJobStatus = this.menu.MenuName\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this.getJobById(Common?.activeJob?.JobId)\r\n resolve(true)\r\n },\r\n (error) => {\r\n this.jobService.triggerJobLoadingConfig(false)\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this.notifyService.showError('Unable to update status', 'UpdateProcessWorkFlow')\r\n }\r\n )\r\n })\r\n }\r\n\r\n getJobById(jobId) {\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((job) => {\r\n Common.activeJob = job\r\n this.jobService.triggerJobStatusChange()\r\n })\r\n }\r\n\r\n updateObjectStatus(emailData: Email, comments) {\r\n this.loading = true\r\n this.commonService\r\n .updateOjectStatus(\r\n Common.activeConsultantJob.ConsultantJobID,\r\n ObjectType.ConsultantJob,\r\n ConsultantJobStatuses.CON_JOB_SUBMITTED,\r\n comments,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((status) => {\r\n this.commonService\r\n .sendEmail(emailData.EmailItemID, 8, this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.loading = false\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n })\r\n })\r\n }\r\n\r\n bindConsultantJobDetails(consultantJob) {\r\n Common.activeConsultantJob = consultantJob\r\n this.consultantJob = consultantJob\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.JobEdit,\r\n formData: Common.activeConsultantJob,\r\n allCompanies: this.allCompanies,\r\n isDialogForStatusChange: this.isFromStatusChange,\r\n changedStatus: this.menu?.MenuCode,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === ConsultantDialogTypes.JobEdit) {\r\n this.setDataToForm(data?.formData)\r\n if (data?.companyVendorID) {\r\n this.companyVendorID = data?.companyVendorID\r\n }\r\n if (data?.vendorContactId) {\r\n this.vendorContactId = data?.vendorContactId\r\n }\r\n this.updateConsultantJob()\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n })\r\n }\r\n\r\n onSelectedContact(contact) {\r\n this.vendorContactId = contact.ContactID\r\n }\r\n companyChangeAction(selectedValue) {\r\n this.consultantService\r\n .getCompanyContacts(selectedValue)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.contacts = res as Contact[]\r\n })\r\n }\r\n onCancelJobclick() {\r\n this.toggleConsultantJobDetails()\r\n if (this.isFromStatusChange) this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n this.dialog.closeAll()\r\n }\r\n toggleConsultantJobDetails() {\r\n this.editMode = !this.editMode\r\n }\r\n updateConsultantJob() {\r\n const CONSULTANT_JOB = { ...Common.activeConsultantJob }\r\n this.consultantJob.PayRate = this.getValueOrDefault(this.jobView.get('PayRate').value, CONSULTANT_JOB.PayRate)\r\n this.consultantJob.BillRate = this.getValueOrDefault(\r\n this.jobView.get('ClientRate').value,\r\n CONSULTANT_JOB.BillRate\r\n )\r\n this.consultantJob.Salary = this.getValueOrDefault(this.jobView.get('Salary').value, CONSULTANT_JOB.Salary)\r\n this.consultantJob.CreatedDate = new Date()\r\n this.consultantJob.CreatedBy = this.authService.userInfo.userID\r\n this.consultantJob.IsActive = true\r\n this.consultantJob.CompanyVendorID =\r\n this.companyVendorID == undefined || this.companyVendorID == null\r\n ? CONSULTANT_JOB.CompanyVendorID\r\n ? CONSULTANT_JOB.CompanyVendorID\r\n : 0\r\n : this.companyVendorID\r\n this.consultantJob.VendorContactID =\r\n this.vendorContactId == undefined || this.vendorContactId == null\r\n ? CONSULTANT_JOB.VendorContactID\r\n ? CONSULTANT_JOB.VendorContactID\r\n : 0\r\n : this.vendorContactId\r\n this.consultantJob.ConsultantTypeID = this.getValueOrDefault(\r\n this.jobView.get('ConsultantTypeId').value,\r\n CONSULTANT_JOB.ConsultantTypeID\r\n )\r\n this.consultantJob.RecruiterId = this.getValueOrDefault(\r\n this.jobView.get('RecruiterId').value,\r\n CONSULTANT_JOB.RecruiterId\r\n )\r\n if (this.candidateJobStartDate) {\r\n this.consultantJob.JobStartDate = this.candidateJobStartDate\r\n }\r\n if (this.candidateJobEndDate) {\r\n this.consultantJob.JobEndDate = this.candidateJobEndDate\r\n }\r\n if (CONSULTANT_JOB.HireDate == null || CONSULTANT_JOB.HireDate == undefined) {\r\n this.consultantJob.HireDate = new Date()\r\n }\r\n if (CONSULTANT_JOB.TerminateDate == null || CONSULTANT_JOB.TerminateDate == undefined) {\r\n this.consultantJob.TerminateDate = this.candidateTerminationDate\r\n }\r\n this.consultantService\r\n .saveConsultantJob(this.consultantJob)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((cjResult) => {\r\n if (cjResult) {\r\n this.toggleConsultantJobDetails()\r\n this.dialog.closeAll()\r\n this.notifyService.showSuccess('successfully saved.', 'Candidate Job Details')\r\n if (this.isFromStatusChange) {\r\n this.openStatusChange(this.consultantJob, this.menu)\r\n } else {\r\n this.BindJobConsultants(Common.activeJob.JobId, this.authService.userInfo.userID)\r\n }\r\n }\r\n })\r\n }\r\n editCandidateHandler(rowData, isFromStatusChange = false) {\r\n this.isFromStatusChange = isFromStatusChange\r\n this.bindConsultantJobDetails(rowData)\r\n }\r\n\r\n getValueOrDefault(value: string, defaultValue): number {\r\n return value == '' || value == null ? (defaultValue == '' ? 0 : defaultValue) : Number(value)\r\n }\r\n\r\n setDataToForm(formData) {\r\n this.jobView.get('ClientRate').setValue(formData?.BillRate)\r\n this.jobView.get('PayRate').setValue(formData?.PayRate)\r\n this.jobView.get('Salary').setValue(formData?.Salary)\r\n this.jobView.get('CompanyName').setValue(formData?.VendorName)\r\n this.jobView.get('CompanyContact').setValue(formData?.VendorContactName)\r\n this.jobView.get('RecruiterId').setValue(formData?.RecruiterId)\r\n this.jobView.get('ConsultantTypeId').setValue(formData?.ConsultantTypeID)\r\n }\r\n\r\n viewInterviewDetails(candidateDetails) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Interview_Details,\r\n candidateJobId: candidateDetails?.ConsultantJobID,\r\n candidateName: candidateDetails?.ConsultantName,\r\n candidateEmail: candidateDetails?.EmailAddress,\r\n },\r\n })\r\n }\r\n\r\n isThePreviousCommentFromMenu(menuTitle: string): boolean {\r\n if (menuTitle === MenuName.CON_JOB_APPLIED) {\r\n return true\r\n }\r\n return this.toolBarItems.filter((item) => item.MenuName === menuTitle).length ? true : false\r\n }\r\n\r\n viewCandidateJobStatusHistory(candidateDetails) {\r\n Common.activeConsultantJob = candidateDetails\r\n this.commonMatDialogService.open({\r\n component: ConsultantDialogComponent,\r\n data: {\r\n dialogName: ConsultantDialogTypes.Candidate_Status_History,\r\n jobId: candidateDetails?.JobID,\r\n candidateId: candidateDetails?.ConsultantID,\r\n },\r\n })\r\n }\r\n\r\n // sortData(consultantJobList: iConsultantJob[]) {\r\n // return consultantJobList.sort((a, b) => new Date(b.CreatedDate).getTime() - new Date(a.CreatedDate).getTime())\r\n // }\r\n sortData(consultantJobList: iConsultantJob[]) {\r\n return consultantJobList.sort((a, b) => {\r\n if (a.ConsultantJobStatus === \"Rejected\" && b.ConsultantJobStatus !== \"Rejected\") {\r\n return 1; \r\n } else if (a.ConsultantJobStatus !== \"Rejected\" && b.ConsultantJobStatus === \"Rejected\") {\r\n return -1; \r\n }\r\n return new Date(b.CreatedDate).getTime() - new Date(a.CreatedDate).getTime();\r\n });\r\n }\r\n\r\n handlePageChange(event: PageEvent) {\r\n this.startPageIndex = event.pageIndex\r\n this.pageSize = event.pageSize\r\n const JOB_CONSULTANTS = [...this.jobConsultants]\r\n setTimeout(() => {\r\n this.dataJobCandidateList.data = JOB_CONSULTANTS.slice(\r\n event.pageIndex * event.pageSize,\r\n event.pageIndex * event.pageSize + event.pageSize\r\n )\r\n }, 100)\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n \r\n 0\" class=\"\">\r\n
\r\n \r\n \r\n \"Search\r\n \r\n
\r\n
\r\n
\r\n 0\"\r\n mat-table\r\n [dataSource]=\"dataJobCandidateList\"\r\n multiTemplateDataRows\r\n matSort\r\n >\r\n \r\n Name\r\n \r\n {{ element.ConsultantName }}\r\n \r\n \r\n\r\n \r\n \r\n Bill Rate\r\n \r\n \r\n {{\r\n element?.BillRate\r\n ? (element?.BillRate | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element?.BillRate | nullValueReplace)\r\n }}\r\n \r\n \r\n\r\n \r\n \r\n Pay Rate\r\n \r\n \r\n {{\r\n element?.PayRate\r\n ? (element?.PayRate | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element?.PayRate | nullValueReplace)\r\n }}\r\n \r\n \r\n\r\n \r\n \r\n Salary\r\n \r\n \r\n {{\r\n element.Salary\r\n ? (element?.Salary | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element.Salary | nullValueReplace)\r\n }}\r\n \r\n \r\n \r\n Margin\r\n \r\n {{\r\n element?.Margin\r\n ? (element?.Margin | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (element?.Margin | nullValueReplace)\r\n }}\r\n \r\n \r\n\r\n \r\n Recruiter\r\n \r\n {{ element.RecruiterName | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Employment Type\r\n \r\n {{ element.ConsultantType | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Updated By\r\n \r\n {{ element.UpdatedUser | nullValueReplace }}\r\n \r\n \r\n\r\n \r\n Recruit Status\r\n \r\n \r\n \r\n \r\n {{ element.ConsultantJobStatus | nullValueReplace }}\r\n \r\n \r\n \r\n \r\n \r\n {{ mnuItem.MenuName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Interview Details\r\n\r\n \r\n \r\n view details\r\n \r\n \r\n -\r\n \r\n \r\n \r\n\r\n \r\n \r\n Candidate
Job History
\r\n \r\n \r\n view status\r\n \r\n
\r\n\r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \"Edit\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
No Candidates found
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { JobService } from '../job.service'\r\nimport { iMenuItem, iDbResult, iStatus, iJobValidationType } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { Subject, Subscription } from 'rxjs'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { takeUntil, tap, withLatestFrom } from 'rxjs/operators'\r\nimport { JOB_DELETE_ACTION, JOB_EDIT_ACTION, JOB_VIEW_ACTION } from 'src/app/enums/userActions'\r\nimport { format } from 'date-fns'\r\nimport { JobTabsType } from 'src/app/enums/jobCandidate'\r\nimport { TranStatusSuccess } from 'src/app/models/cloneJob.model'\r\n@Component({\r\n selector: 'job-description-card',\r\n templateUrl: './job-description-card.component.html',\r\n styleUrls: ['./job-description-card.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobDescriptionCardComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private commonService: CommonService,\r\n private layoutService: LayoutService,\r\n private jobService: JobService,\r\n private loadComponent: LoadComponent,\r\n private dialog: MatDialog,\r\n private notifyService: NotificationService,\r\n private router: Router,\r\n public authService: AuthenticationService,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n // Input output\r\n\r\n @Input() job: any\r\n @Input() index: number\r\n toolBarItems: iMenuItem[] = []\r\n\r\n baseFilePath: any\r\n noLogoFilePath: string = 'assets/img/Leap-Tiger_Icons/card-icons/No-image.svg'\r\n selectValue = false\r\n selected: any\r\n selectedIcon: any\r\n url: string = 'assets/img/statusIcons/'\r\n menu: iMenuItem\r\n selectedReasonId: number\r\n selectedReason: string\r\n wfStatus: iStatus[]\r\n jobStatus = Common.enumJobStatuses\r\n private ngUnSubscribe$: Subject = new Subject()\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobDeleteAction = JOB_DELETE_ACTION\r\n jobViewAction = JOB_VIEW_ACTION\r\n selectedStatusId: number\r\n jobValidation: iJobValidationType[] = []\r\n jobClosedFromDate: string | Date\r\n destroy$: Subject = new Subject()\r\n loading: boolean = false\r\n activeTab = 0\r\n isGridClick: boolean = false\r\n\r\n changeStatus: Array<{ status: string; elementRef: any }> = [\r\n {\r\n status: 'Open',\r\n elementRef: this.url + 'green.svg',\r\n },\r\n {\r\n status: 'Cancelled',\r\n elementRef: this.url + 'blue.svg',\r\n },\r\n {\r\n status: 'Hold',\r\n elementRef: this.url + 'orange.svg',\r\n },\r\n {\r\n status: 'Closed',\r\n elementRef: this.url + 'gray.svg',\r\n },\r\n {\r\n status: 'Declined',\r\n elementRef: this.url + 'light-gray.svg',\r\n },\r\n {\r\n status: 'Draft',\r\n elementRef: this.url + 'red.svg',\r\n },\r\n ]\r\n currentStatus = { status: '', elementRef: '' }\r\n private subscription: Subscription\r\n ngOnInit(): void {\r\n this.setJobStatues()\r\n }\r\n\r\n onCandidateView() {\r\n this.router.navigate(['jobs'], {\r\n queryParams: {\r\n jobId: this.job.JobId,\r\n activeTab: 'candidate',\r\n },\r\n })\r\n this.openQuickpanel(JobTabsType.Candidate_Tab)\r\n this.removeParams()\r\n }\r\n getJobValidation() {\r\n this.jobService\r\n .GetJobValidation(this.job?.JobId)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n this.jobValidation = result as iJobValidationType[]\r\n })\r\n }\r\n getStatuses() {\r\n this.commonService\r\n .getStatus()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.wfStatus = res as iStatus[]\r\n })\r\n }\r\n onGridColumnClick(colVal) {\r\n let joId = colVal\r\n this.jobService\r\n .getJob(joId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeJob = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n removeParams() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((state) => {\r\n if (!state) {\r\n this.router.navigate([], {\r\n queryParams: {\r\n jobId: null,\r\n activeTab: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n }\r\n })\r\n }\r\n openQuickpanel(activeTab?) {\r\n Common.activeConsultant = null\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('job')\r\n this.commonService.setComponentData({ job: this.job, activeTab: activeTab ? activeTab : null })\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this.ngUnSubscribe$)).subscribe((res) => {})\r\n }\r\n openCard() {\r\n this.layoutService.closeQuickpanel()\r\n }\r\n\r\n select(pText: string, icons: string) {\r\n this.selectValue = true\r\n this.selected = pText\r\n this.selectedIcon = icons\r\n this.currentStatus.status = pText\r\n this.currentStatus.elementRef = icons\r\n }\r\n\r\n deleteJobDialogHandler(dialog: any) {\r\n this.dialog.open(dialog)\r\n }\r\n\r\n //for icon list track by\r\n trackByIconFn(index: number, item: any) {\r\n return item.id\r\n }\r\n\r\n searchCandidateFromJobHandler(job: any) {\r\n if (job.JobStatusID !== this.jobStatus.JOB_OPEN) {\r\n this.notifyService.showWarning('Cannot search as job is not open', '')\r\n } else {\r\n this.jobService\r\n .getJob(job.JobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.iJobCandidateSearch = true\r\n Common.activeJob = res\r\n // currently this method is not getting called still we have updated to new routing method\r\n this.commonService.candidateObservable$.next(false)\r\n this.router.navigate(['/candidates'], {\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n })\r\n }\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((result) => {\r\n result\r\n })\r\n }\r\n reopenJob() {\r\n this.loading = true\r\n let cloneJobObj = {\r\n jobId: Common.activeJob.JobId,\r\n userId: this.authService.userInfo.userID,\r\n }\r\n this.jobService\r\n .reopenJobStatus(cloneJobObj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result.TranStatus === TranStatusSuccess) {\r\n this.loading = false\r\n this.jobService.setJobCloneStatus({ ...result })\r\n this.notifyService.showSuccess('Job Cloned Successfully', 'Job Id' + ' ' + result.JobId)\r\n this.layoutService.closeQuickpanel()\r\n } else {\r\n this.notifyService.showError('Error While Cloning Job ', 'Job')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while Cloning Job', 'Job')\r\n }\r\n )\r\n }\r\n\r\n onSearchCandidates(job, jobStatusId) {\r\n this.commonService.candidateObservable$.next(false)\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Search candidate works for jobs in Open status only!', 'Search Candidates')\r\n return\r\n }\r\n\r\n this.router.navigate(['/candidates'], {\r\n // TODO: Need to remove copy path later\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n onApplyJob(jobId, jobStatusId) {\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Can not apply, Job is not opened!.', 'Apply Job')\r\n return\r\n }\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeJob = res\r\n Common.activeConsultantJob = {}\r\n Common.activeConsultantJob.ConsultantJobID = 0\r\n Common.activeConsultantJob.JobID = Common.activeJob.JobId\r\n Common.activeConsultant = null\r\n\r\n this.router.navigate(['/candidates/add'])\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnSubscribe$.next()\r\n this.ngUnSubscribe$.complete()\r\n }\r\n setToolBarItems() {\r\n if (\r\n this.commonService?.menuItems == null ||\r\n this.commonService?.menuItems == undefined ||\r\n this.commonService?.menuItems?.length === 0\r\n ) {\r\n this.commonService\r\n .getMenuItems()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((data) => {\r\n this.commonService.menuItems = data\r\n this.setJobStatues()\r\n })\r\n } else {\r\n this.setJobStatues()\r\n }\r\n }\r\n\r\n setJobStatues() {\r\n const JOB_STATUS_ID = this.job.JobStatusId ? this.job.JobStatusId : this.job.JobStatusID\r\n this.toolBarItems = this.commonService?.menuItems?.filter(\r\n (item) =>\r\n item.ComponentID === Common.enumComponent.Job &&\r\n item.MenuTypeID == Common.enumMenuType.TOOLBAR &&\r\n item.StatusID == JOB_STATUS_ID &&\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n this.toolBarItems?.unshift({\r\n MenuID: -1,\r\n PageID: -1,\r\n ComponentID: Common.enumComponent.Job,\r\n ComponentCode: null,\r\n ComponentName: null,\r\n ComponentDescription: null,\r\n MenuItemID: -1,\r\n MenuCode: null,\r\n MenuName: this.job.JobStatus,\r\n MenuDescription: null,\r\n MenuFunction: null,\r\n MenuUrl: null,\r\n MenuIcon: null,\r\n MenuTypeID: null,\r\n MenuType: null,\r\n ParentMenuItemID: null,\r\n RoleID: null,\r\n RoleCode: null,\r\n RoleName: null,\r\n RoleDescription: null,\r\n StatusID: JOB_STATUS_ID,\r\n StatusCode: null,\r\n StatusName: this.job.JobStatus,\r\n StatusDescription: null,\r\n })\r\n this.selectedStatusId = JOB_STATUS_ID\r\n }\r\n // getJobStatusChange() {\r\n // this.jobService.jobStatusValueChange$.pipe(takeUntil(this.destroy$)).subscribe((statusId) => {\r\n // this.selectedStatusId = Common?.activeJob?.JobStatusID\r\n // this.job.JobStatus = Common?.activeJob?.JobStatus\r\n // this.job.JobStatusID = Common?.activeJob?.JobStatusID\r\n // this.setJobStatues()\r\n // })\r\n // }\r\n\r\n onJobStatusChange(mnuItem) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n if (this.menu.MenuCode == Common.enumJobStatusStrings.JOB_OPEN) {\r\n if (this.jobValidation?.length > 0) {\r\n let reqColumns = this.jobValidation\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n 'Can not change to Open, Please fill required fields: ' + reqColumns,\r\n 'Job Status'\r\n )\r\n this.setToolBarItems()\r\n return\r\n }\r\n }\r\n if (this.menu.MenuCode != Common.enumJobStatusStrings.JOB_OPEN || this.jobValidation?.length == 0) {\r\n const dialogRef = this.dialog.open(ActionDialogComponent, {\r\n data: { consultantjob: null, menu: this.menu },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == null || result == undefined) {\r\n this.setToolBarItems()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n if (result.jobClosedFromDate && this.isValidDate(new Date(result.jobClosedFromDate))) {\r\n this.jobClosedFromDate = format(new Date(result.jobClosedFromDate), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n this.JobProcessWorkFlow()\r\n }\r\n })\r\n }\r\n }\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n JobProcessWorkFlow() {\r\n var ljob: iJob = Common.activeJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n\r\n let comment = this.selectedReasonId\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : this.menu.MenuName\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n tap(() => this._getJobById(Common.activeJob.JobId))\r\n )\r\n .subscribe((result) => {\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n if (Common.enumJobStatuses.JOB_DELETE == nextStatusID) {\r\n this.notifyService.showSuccess('Record deleted successfully', 'Job Delete')\r\n this.router.navigate(['jobs']).then(() => {\r\n window.location.reload()\r\n })\r\n return\r\n }\r\n\r\n if (this.menu.MenuCode === Common.enumJobStatusStrings.JOB_CLOSE) {\r\n this._updateObjectStatusDate(\r\n this.job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Number(nextStatusID),\r\n this.selectedReason,\r\n this.authService.userInfo.userID,\r\n this.jobClosedFromDate\r\n )\r\n return\r\n }\r\n\r\n if ('JOB_CLONE' == this.menu.MenuCode) {\r\n this.reopenJob()\r\n return\r\n } else if (nextStatusID == undefined || nextStatusID == 0 || nextStatusID == 'Failed') {\r\n this.notifyService.showError('Failed: Unable to change the status!', 'Job Status')\r\n } else {\r\n this.job.JobStatusID = Number(nextStatusID)\r\n let statusname = this.wfStatus\r\n .filter((item) => item.StatusID === Number(nextStatusID))\r\n .map((x) => x.Name)\r\n\r\n Common.activeJob.JobStatusID = Number(nextStatusID)\r\n Common.activeJob.JobStatus = statusname.length > 0 ? statusname.toString() : this.menu.MenuName\r\n this.commonService.setToolBarItems(this.menu)\r\n\r\n this.notifyService.showSuccess(\r\n 'Job status successfully changed to ' + Common.activeJob.JobStatus,\r\n 'Job'\r\n )\r\n }\r\n this.setToolBarItems()\r\n })\r\n }\r\n\r\n private _updateObjectStatusDate(\r\n objectID: number,\r\n objectTypeId: number,\r\n statusID: number,\r\n comments: string,\r\n userID: number,\r\n jobClosedFromDate: string | Date\r\n ) {\r\n this.commonService\r\n .updateObjectStatusDate(objectID, objectTypeId, statusID, comments, userID, jobClosedFromDate)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job Status changed Successfully.', 'Job Status')\r\n },\r\n (error) => {\r\n this.notifyService.showSuccess('Error while changing Job Status.', 'Job Status')\r\n }\r\n )\r\n }\r\n private _getJobById(jobId: number) {\r\n this.loading = true\r\n this.jobService.getJob(jobId).subscribe({\r\n next: (job) => {\r\n this.loading = false\r\n Common.activeJob = job\r\n this.job = job\r\n this.setToolBarItems()\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n\r\n getJobFromTileView(jobId: number) {\r\n this.jobService\r\n .getJob(jobId)\r\n .pipe(takeUntil(this.ngUnSubscribe$))\r\n .subscribe((res) => {\r\n Common.activeJob = res\r\n // this.job = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n // this.openQuickpanel()\r\n })\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ job?.JobTitleName | titlecase | slice : 0 : 20 }}\r\n \r\n replay\r\n\r\n \r\n more_vert\r\n \r\n \r\n
\r\n
{{ job?.CompanyName }}
\r\n
\r\n Job ID: {{ job?.JobId }}\r\n \r\n
\r\n \r\n \r\n \r\n {{ job?.JobStatus }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {{ job.LocationState }}, {{ job.LocationCity }}\r\n \r\n {{ '' | nullValueReplace }}\r\n \r\n \r\n \r\n\r\n \r\n Upto {{ job.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2' }}\r\n /Yearly\r\n \r\n \r\n Upto {{ job.MaxBillRate | currency : 'USD' : 'symbol-narrow' : '1.2-2' }}\r\n /Hr\r\n \r\n \r\n Upto {{ job.MaxBillRate | currency : 'USD' : 'symbol-narrow' : '1.2-2' }}\r\n /Hr\r\n OR\r\n {{\r\n job.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2'\r\n }}\r\n /Yearly\r\n \r\n \r\n \r\n {{ job?.JobType !== null ? job?.JobType : 'N/A' }}\r\n Position: {{ job?.Positions !== null ? job?.Positions : 'N/A' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n Job Status\r\n {{ toolBarItems[0].MenuName }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ mnuItem.MenuName }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Common } from 'src/app/common/common';\r\nimport { iDbResult, iMenuItem, ActiveObject, iKeyValue } from 'src/app/models/common.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n@Pipe({\r\n name: 'jobStatusFilter'\r\n})\r\n\r\nexport class JobStatusFilterPipe implements PipeTransform {\r\n constructor(\r\n\r\n public authService: AuthenticationService,\r\n ) { }\r\n transform(items: iMenuItem[], element: any): any[] {\r\n if(!items) return [];\r\n if(!element) return items;\r\n //searchText = searchText.toLowerCase();\r\n var astat\r\n var statusName\r\n astat = items.filter(\r\n item => (item.ComponentID === Common.enumComponent.Job &&\r\n item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == element.JobStatusId\r\n && item.RoleID == this.authService.userInfo.roles[0].roleID));\r\n\r\n // astat.unshift({\r\n // MenuID: -1,\r\n // PageID: -1,\r\n // ComponentID: Common.enumComponent.Job,\r\n // ComponentCode: null,\r\n // ComponentName: null,\r\n // ComponentDescription: null,\r\n // MenuItemID: -1,\r\n // MenuCode: null,\r\n // MenuName: element.JobStatus,\r\n // MenuDescription: null,\r\n // MenuFunction: null,\r\n // MenuUrl: null,\r\n // MenuIcon: 'assets/img/statusIcons/',\r\n // MenuTypeID: null,\r\n // MenuType: null,\r\n // ParentMenuItemID: null,\r\n // RoleID: null,\r\n // RoleCode: null,\r\n // RoleName: null,\r\n // RoleDescription: null,\r\n // StatusID: element.JobStatusId,\r\n // StatusCode: null,\r\n // StatusName: element.JobStatus,\r\n // StatusDescription: null,\r\n // });\r\n\r\n return astat;\r\n }\r\n // currentStatusIcon(statusId){\r\n // var url = 'assets/img/statusIcons/';\r\n // var menuIcon\r\n // if (statusId ==2) menuIcon = url+ 'red.svg'\r\n // else if (statusId ==3) menuIcon = url+ 'green.svg'\r\n // else if (statusId ==4) menuIcon = url+ 'orange.svg'\r\n // else if (statusId ==5) menuIcon = url+ 'gray.svg'\r\n // else if (statusId ==14) menuIcon = url+ 'blue.svg'\r\n // else if (statusId ==15) menuIcon = url+ 'light-gray.svg'\r\n // else if (statusId ==15) menuIcon = url+ 'light-gray.svg'\r\n // else if (statusId ==15) menuIcon = url+ 'light-gray.svg'\r\n // }\r\n \r\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef, ViewChild } from '@angular/core'\r\nimport { FormBuilder, Validators } from '@angular/forms'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Observable } from 'rxjs'\r\nimport { JobViewDescriptionComponent } from '../job-view-description/job-view-description.component'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n@Component({\r\n selector: 'job-description',\r\n templateUrl: './job-description.component.html',\r\n styleUrls: [\r\n './job-description.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n // encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms],\r\n})\r\nexport class JobDescriptionComponent implements OnInit, OnDestroy {\r\n //Inputs outputs\r\n @Input() events: Observable\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @ViewChild('jobDetailsConfirmationDialog') confirmationDialogRef: TemplateRef\r\n\r\n clickedSubmitWithoutInput: boolean = false\r\n activeJob = Common.activeJob\r\n keyData: any\r\n prevJobDesc: any\r\n isJobEdited: boolean = false\r\n public loading = false\r\n\r\n get f() {\r\n return this.jobForm.controls\r\n }\r\n constructor(\r\n public viewComponent: JobViewDescriptionComponent,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService,\r\n public dialog: MatDialog\r\n ) {}\r\n jobForm = this.formBuilder.group({\r\n Description: ['', Validators.required],\r\n })\r\n\r\n ngOnInit() {\r\n this.clickedSubmitWithoutInput = false\r\n if (Common.activeJob != null) {\r\n if (this.activeJob.Description != '' && this.activeJob.Description != undefined) {\r\n this.jobForm.get('Description').setValue(this.activeJob.Description)\r\n } else {\r\n this.ParseJobText()\r\n }\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.isJobEdited = false\r\n if (this.jobForm.valid) {\r\n this.saveJobDescription()\r\n } else {\r\n this.clickedSubmitWithoutInput = true\r\n }\r\n }\r\n saveJobDescription() {\r\n this.activeJob = Common.activeJob\r\n if (Common.activeJob.JobId != null) {\r\n this.activeJob.Description =\r\n this.jobForm.get('Description').value == undefined ? null : this.jobForm.get('Description').value\r\n this.loading = true\r\n this.jobService.AddJobDescription(this.activeJob).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n if (this.activeJob.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job description successfully saved.', '') // ToDO make 2000 as variable\r\n this.jobAdded.emit(2)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!' + err, '')\r\n }\r\n )\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clickedSubmitWithoutInput = false\r\n }\r\n\r\n ParseJobText() {\r\n this.keyData = Common.JobKeywords\r\n if (this.keyData != null) {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index]\r\n if (element.Key == 'JobDescription') {\r\n this.f.Description.setValue(element.Value)\r\n }\r\n }\r\n }\r\n }\r\n openConfirmationDialog() {\r\n this.dialog.open(this.confirmationDialogRef, {})\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n Job Description *\r\n
\r\n
\r\n \r\n \r\n Description is Required\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport { WorkOption, WorkOptionText } from 'src/app/enums/workOption'\r\nimport { InterviewType } from 'src/app/models/consultant.model'\r\nimport { iJobEducation, JobType, LegalType, User } from 'src/app/models/job.model'\r\nimport { JobService } from '../job.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { iKeyValue } from 'src/app/models/common.model'\r\nimport { ChangeDetectorRef } from '@angular/core'\r\n@Component({\r\n selector: 'leap-job-details-preview',\r\n templateUrl: './job-details-preview.component.html',\r\n styleUrls: ['./job-details-preview.component.scss'],\r\n})\r\nexport class JobDetailsPreviewComponent implements OnInit, OnChanges {\r\n @Input() jobDetails: any\r\n backgroundCheck: any\r\n backgroundCheckName: any\r\n interviewtypes: InterviewType[]\r\n interviewtypesNames: InterviewType[]\r\n legaltypes: LegalType[]\r\n legaltypesNames: LegalType[]\r\n education:iJobEducation\r\n jobtypes: JobType[]\r\n jobtypesNames: JobType[]\r\n softSkill: any[] = []\r\n professionalSkill: any[] = []\r\n recruiter: any\r\n primaryRecruiterName: any\r\n similarJobTitles: any[] = []\r\n secondaryRecruiter: any\r\n States: string = ''\r\n filteredStates: any[] = []\r\n private _destroy$: Subject = new Subject()\r\n salaryDisplayOptions$: Observable = this.jobService.getLookup('SalaryDisplayTypeID') as Observable<\r\n iKeyValue[]\r\n >\r\n constructor(private jobService: JobService, private cdr: ChangeDetectorRef) {}\r\n ngOnInit(): void {\r\n // this.jobDetails = Common.activeJob\r\n this.getSkill()\r\n }\r\n getRecruiter() {\r\n this.jobService\r\n .getRecruiter()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (recruiter: User[]) => {\r\n this.recruiter = recruiter as User[]\r\n const primaryRecruiter = this.recruiter?.filter((b) => this.jobDetails?.PostedFor === b?.UserID)\r\n if (primaryRecruiter && primaryRecruiter?.length) {\r\n this.primaryRecruiterName = `${primaryRecruiter[0]?.FirstName} | ${primaryRecruiter[0]?.UserName}`\r\n }\r\n\r\n const secoundaryRecruiter = this.recruiter?.filter(\r\n (b) => this.jobDetails?.SecondaryRecruiterId === b?.UserID\r\n )\r\n if (secoundaryRecruiter && secoundaryRecruiter.length > 0) {\r\n this.secondaryRecruiter = `${secoundaryRecruiter[0]?.FirstName} | ${secoundaryRecruiter[0]?.UserName}`\r\n }\r\n },\r\n error: () => {},\r\n })\r\n }\r\n getWorkOptionName(workOptionId: number): string {\r\n switch (workOptionId) {\r\n case WorkOption.Remote:\r\n return WorkOptionText.Remote\r\n case WorkOption.Onsite:\r\n return WorkOptionText.Onsite\r\n case WorkOption.Hybrid:\r\n return WorkOptionText.Hybrid\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.getSkill()\r\n if (changes['jobDetails'] && this.jobDetails) {\r\n if (Array.isArray(this.jobDetails?.SimilarTitles || this.jobDetails?.JobSimiliarTitleName)) {\r\n this.similarJobTitles = [...(this.jobDetails?.SimilarTitles || this.jobDetails?.JobSimiliarTitleName)]\r\n } else {\r\n this.similarJobTitles = [\r\n ...(this.jobDetails?.SimilarTitles?.split(',') ||\r\n this.jobDetails?.JobSimiliarTitleName?.split(',')),\r\n ]\r\n }\r\n\r\n this.getRecruiter()\r\n this.updateLegalTypesNames()\r\n this.updateBackgroundCheckName()\r\n this.updateInterviewTypesNames()\r\n this.updateJobTypesNames()\r\n }\r\n }\r\n private updateLegalTypesNames() {\r\n const LEGAL_TYPE_ID_LIST =\r\n this.jobDetails?.JobLegalTypes?.map((legalType) => legalType.LegalTypeId) || this.jobDetails?.legalTypeCrtl\r\n this.legaltypes = (Common.lookUp?.filter((item) => item.TypeCode == 'LegalTypeID') || [])?.map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.legaltypesNames = this.legaltypes?.filter((b) => LEGAL_TYPE_ID_LIST?.includes(b?.Value))\r\n }\r\n private updateBackgroundCheckName() {\r\n this.backgroundCheck = (Common.lookUp?.filter((item) => item.TypeCode == 'BkGrondChkID') || []).map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.backgroundCheckName = this.backgroundCheck?.filter(\r\n (c) => Array.isArray(this.jobDetails?.backGroundCrtl) && this.jobDetails?.backGroundCrtl.includes(c?.Value)\r\n )\r\n }\r\n private updateInterviewTypesNames() {\r\n const INTERVIEW_TYPE_ID_LIST =\r\n this.jobDetails?.JobInterviewTypes?.map((interviewType) => interviewType.InterviewTypeId) ||\r\n this.jobDetails?.interviewTypeCrtl\r\n this.interviewtypes = (Common.lookUp?.filter((item) => item.TypeCode == 'InterviewTypeId') || []).map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.interviewtypesNames = this.interviewtypes?.filter((b) => INTERVIEW_TYPE_ID_LIST?.includes(b?.Value))\r\n }\r\n private updateJobTypesNames() {\r\n this.jobtypes = (Common.lookUp?.filter((item) => item.TypeCode == 'JobTypelD') || []).map((o) => ({\r\n Key: o.ValueName,\r\n Value: o.LookupID,\r\n }))\r\n this.jobtypesNames = this.jobtypes?.filter((b) => this.jobDetails?.JobTypeID === b?.Value)\r\n }\r\n getSkill(): void {\r\n if (this.jobDetails?.JobSkills) {\r\n this.softSkill = []\r\n this.professionalSkill = []\r\n this.jobDetails.JobSkills.forEach((skill) => {\r\n if (skill?.SkillTypeId === 152) {\r\n this.softSkill.push(skill)\r\n } else if (\r\n skill?.SkillTypeId === 151 ||\r\n skill?.SkillTypeId === null ||\r\n skill?.SkillTypeId === undefined\r\n ) {\r\n this.professionalSkill.push(skill)\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n Job Title : \r\n {{ jobDetails?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n Job Code : {{ jobDetails?.JobCode | nullValueReplace }}\r\n
\r\n
\r\n Similar Titles:\r\n \r\n {{ title | nullValueReplace }} , \r\n \r\n \r\n {{ jobDetails?.SimilarTitles | nullValueReplace }}\r\n \r\n
\r\n
\r\n Job Category : \r\n {{ jobDetails?.JobCategory | nullValueReplace }}\r\n
\r\n
\r\n Specialized Skill : \r\n {{ jobDetails?.SpecializedSkill | nullValueReplace }}\r\n
\r\n
\r\n MinimumExperience: \r\n {{ jobDetails?.MinExperience | nullValueReplace }}\r\n
\r\n
\r\n MaximumExperience: \r\n {{ jobDetails?.MaxExperience | nullValueReplace }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Company Name : {{ jobDetails?.CompanyName | nullValueReplace }}\r\n
\r\n
\r\n Hiring Manager : {{ jobDetails?.CompanyContact | nullValueReplace }}\r\n
\r\n
\r\n Program Manager : {{ jobDetails?.MspContact | nullValueReplace }}\r\n
\r\n
\r\n Work Option : {{ getWorkOptionName(jobDetails?.WorkOptionId) }}\r\n
\r\n
\r\n
\r\n Address : {{ jobDetails?.StreetAddress | nullValueReplace }}\r\n
\r\n
\r\n City : {{ jobDetails?.City | nullValueReplace }}\r\n
\r\n
\r\n State : {{ jobDetails?.State | nullValueReplace }}\r\n
\r\n
\r\n Zip Code : \r\n {{ jobDetails?.ZipCode | nullValueReplace }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Job Type : \r\n {{ bg?.Key | nullValueReplace }}, \r\n \r\n
\r\n
\r\n Max Bill Rate : {{ jobDetails?.MaxBillRate | nullValueReplace }}\r\n
\r\n
\r\n Max Annual Salary : {{ jobDetails?.MaxSalary | nullValueReplace }}\r\n
\r\n
\r\n Salary External Portal : \r\n {{ jobDetails?.ExternalPortal | nullValueReplace }}\r\n
\r\n
\r\n Work Type : {{ jobDetails?.workTypeID == 1 ? 'Full Time' : ('Part Time' | nullValueReplace) }}\r\n
\r\n
\r\n No Of Position : {{ jobDetails?.NoOfPosition | nullValueReplace }}\r\n
\r\n
\r\n Max Submission : {{ jobDetails?.MaxSubmission | nullValueReplace }}\r\n
\r\n
\r\n No Of Hours/Week : {{ jobDetails?.NoOfHoursWeek || 40 }}\r\n
\r\n
\r\n Vendors Allowed : \r\n {{ jobDetails?.IsVendorAllowed == true ? 'Yes' : ('No' | nullValueReplace) }}\r\n
\r\n
\r\n Work Permit : \r\n {{ bg.Key | nullValueReplace }}, \r\n \r\n
\r\n
Background Checks :
\r\n
\r\n {{ bg?.Key | nullValueReplace }}, \r\n \r\n
\r\n
\r\n Interview Type : \r\n {{ bg?.Key | nullValueReplace }}, \r\n \r\n
\r\n
\r\n Travel Required : \r\n {{ jobDetails?.TravelRequired ? 'Yes' : ('No' | nullValueReplace) }}\r\n
\r\n
\r\n Job Related Travel : \r\n {{ jobDetails?.TravelPercentage || '0%' | nullValueReplace }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Description : \r\n
\r\n
\r\n Boolean Query : \r\n {{ jobDetails?.BooleanQuery | nullValueReplace }}\r\n
\r\n Alternate Boolean Query : \r\n {{ jobDetails?.AlternateQuery | nullValueReplace }}\r\n
\r\n Professional Skills : \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill NameExperience
{{ skill?.SkillName }}{{ skill?.Experience }}
\r\n
\r\n
\r\n Soft Skills : \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Skill Name
{{ skill?.SkillName }}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Education : \r\n \r\n {{ edu?.EducationName | nullValueReplace }}\r\n , \r\n \r\n
\r\n
\r\n Certifications : \r\n \r\n {{ cert?.CertificationName | nullValueReplace }}\r\n , \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Start Date : {{ jobDetails?.StartDate | date : 'short' | nullValueReplace }}\r\n
\r\n
\r\n End Date : {{ jobDetails?.EndDate | date : 'short' | nullValueReplace }}\r\n
\r\n
\r\n Primary Recruiter : {{ primaryRecruiterName | nullValueReplace }}\r\n
\r\n
\r\n Secondary Recruiters : \r\n {{ secondaryRecruiter | nullValueReplace }}\r\n
\r\n
\r\n Submission Due Date : \r\n {{ jobDetails?.ExpiryDate | date : 'short' | nullValueReplace }}\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, Input, TemplateRef, ViewChild } from '@angular/core'\r\nimport { FormBuilder, FormGroup, Validators, ValidatorFn, AbstractControl } from '@angular/forms'\r\nimport { Contact, iJob, Skill, SkillLevel, WorkOptions } from 'src/app/models/job.model'\r\nimport { iCategory } from 'src/app/models/common.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Common, FormLocation } from '../../common/common'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { iCompany } from 'src/app/models/company.model'\r\nimport { LocationComponent } from 'src/app/common/location/location.component'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n\r\nexport function forbiddenNamesValidator(names: string[]): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n // below findIndex will check if control.value is equal to one of our options or not\r\n const index = names.findIndex((name) => {\r\n return new RegExp('^' + name + '$').test(control.value)\r\n })\r\n return index < 0 ? { forbiddenNames: { value: control.value } } : null\r\n }\r\n}\r\n@Component({\r\n selector: 'job-details',\r\n templateUrl: './job-details.component.html',\r\n styleUrls: ['./job-details.component.scss'],\r\n})\r\nexport class JobDetailsComponent implements OnInit {\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n jobForm1: FormGroup\r\n job: iJob = {}\r\n model: iJob = {}\r\n keyData: any\r\n jobLocation: iLocation\r\n selectedLocationId: number\r\n selectedCompanyId: number\r\n selectedContactId: number\r\n selectedIndustryId: number\r\n selectedCategoryId: number\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedMspContactId: number\r\n searchClientText: any\r\n programManager: any = []\r\n hiringManager: any = []\r\n contactEmail: string\r\n contactPhone: string\r\n companies: any = []\r\n titles: any = []\r\n isMSPClient: boolean\r\n isFormDataValid: boolean = false\r\n categories: any = []\r\n industries: any = []\r\n workOptions: WorkOptions[]\r\n calledFrom: string\r\n selectedWorkOptionID: number\r\n skills: any = []\r\n skillLevels: SkillLevel[]\r\n tempCompanies: any\r\n tempHiringManager: any\r\n tempProgramManager: any\r\n prevJob: any\r\n isLocationRequired: boolean = true\r\n isLocationFormChanged: boolean = false\r\n isJobEdited: boolean = false\r\n matcher = new CustomErrorStateMatcher()\r\n public loading = false\r\n public editLocationSubject: Subject = new Subject()\r\n\r\n @Input() toCheckForFormChanges: boolean = false\r\n @Input() events: Observable\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @ViewChild('jobDetailsConfirmationDialog') confirmationDialogRef: TemplateRef\r\n @ViewChild(LocationComponent) locationComponent: LocationComponent\r\n constructor(\r\n public authService: AuthenticationService,\r\n private formBuilder: FormBuilder,\r\n private companyService: CompanyService,\r\n private jobService: JobService,\r\n private commonService: CommonService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.jobForm1 = this.formBuilder.group({\r\n phone: [''],\r\n JobTitleName: ['', Validators.required],\r\n CompanyContact: [''],\r\n MspContact: [''],\r\n CompanyName: [null, Validators.required],\r\n LocationID: [0],\r\n JobCode: [''],\r\n IndustryName: [''],\r\n JobCategory: ['', Validators.required],\r\n SpecializedSkill: [''],\r\n SkillLevel: [''],\r\n WorkOptionId: [],\r\n })\r\n }\r\n ngOnInit(): void {\r\n this.jobService.getClients().subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobForm1.get('CompanyName').setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.job.JobId > 0) {\r\n this.selectedCompanyId = this.job.CompanyId\r\n this.companyChangeAction(this.job.CompanyId)\r\n }\r\n })\r\n\r\n this.jobService.GetJobCategory().subscribe((res) => {\r\n this.categories = res as iCategory[]\r\n })\r\n this.jobService.GetJobIndustry().subscribe((res) => {\r\n this.industries = res as iCategory[]\r\n })\r\n\r\n if (Common.lookUp != null) {\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == 'WorkOptionID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n }\r\n\r\n this.commonService.getConfig().subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.job = Common.activeJob\r\n this.model = Common.activeJob\r\n if (this.job.JobId != null) {\r\n if (this.job.JobId > 0) {\r\n this.jobForm1.get('JobTitleName').setValue(this.job.JobTitleName)\r\n this.jobForm1.get('JobCode').setValue(this.job.JobCode)\r\n this.jobForm1.get('CompanyName').setValue(this.job.CompanyName)\r\n this.jobForm1.get('CompanyContact').setValue(this.job.CompanyContact)\r\n this.jobForm1.get('MspContact').setValue(this.job.MspContact)\r\n this.jobForm1.get('IndustryName').setValue(this.job.IndustryName)\r\n this.jobForm1.get('JobCategory').setValue(this.job.JobCategory)\r\n this.jobForm1.get('SkillLevel').setValue(this.job.SkillLevel)\r\n this.jobForm1.get('SpecializedSkill').setValue(this.job.SpecializedSkill)\r\n this.jobForm1.get('WorkOptionId').setValue(this.job.WorkOptionId)\r\n this.selectedWorkOptionID = this.job.WorkOptionId\r\n this.selectedCompanyId = this.job.CompanyId\r\n this.selectedContactId = this.job.CustomerContactId\r\n this.selectedMspContactId = this.job.MspContactId\r\n this.selectedIndustryId = this.job.IndustryID\r\n this.selectedCategoryId = this.job.JobCategoryID\r\n this.selectedSkillLevelId = this.job.SkillLevelID\r\n this.selectedSpecializedSkillId = this.job.SpecializedSkillID\r\n\r\n this.contactEmail = this.job.ContactEmail\r\n this.contactPhone = this.job.ContactPhone\r\n this.selectedLocationId = Number(this.job.LocationID)\r\n this.job.JobStatusID = Number(this.job.JobStatusID)\r\n\r\n this.companyChangeAction(this.selectedCompanyId)\r\n this.isMSPClient = this.job.MspContactId > 0 ? true : false\r\n\r\n this.categorySkills(this.selectedCategoryId)\r\n\r\n Common.activeJob.JobDetails = this.job.JobDetails\r\n this.jobLocation = this.job.Location\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.job.Location\r\n }\r\n }\r\n } else {\r\n this.job = Common.activeJob\r\n this.ParseJobText()\r\n }\r\n } else {\r\n Common.activeJob = this.model\r\n }\r\n }\r\n\r\n isJobFormFieldValid(field: string) {\r\n return this.jobForm1.get(field).invalid && (this.jobForm1.get(field).dirty || this.jobForm1.get(field).touched)\r\n }\r\n\r\n onSelectedIndustry(industryCatID) {\r\n this.selectedIndustryId = industryCatID\r\n }\r\n onSelectedCategory(cat) {\r\n this.selectedCategoryId = cat.CategoryID\r\n this.categorySkills(this.selectedCategoryId)\r\n }\r\n onSelectedSkillName(cat) {\r\n this.selectedSpecializedSkillId = cat.SkillID\r\n }\r\n onSelectedSkillLevel(skillLevel) {\r\n this.selectedSkillLevelId = skillLevel.Value\r\n }\r\n\r\n onSelectedCompany(company) {\r\n this.selectedCompanyId = company.CompanyId\r\n this.companyChangeAction(this.selectedCompanyId)\r\n this.isMSPClient = company.MSPCompanyID > 0 ? true : false\r\n }\r\n onSelectedContact(contact) {\r\n this.selectedContactId = contact.ContactID\r\n }\r\n onSelectedProgramManager(contact) {\r\n this.selectedMspContactId = contact.ContactID\r\n }\r\n\r\n companyChangeAction(CompanyId) {\r\n this.hiringManager = null\r\n this.programManager = null\r\n this.selectedMspContactId = 0\r\n this.selectedContactId = 0\r\n\r\n this.jobForm1.get('CompanyContact').setValue('')\r\n this.jobForm1.get('MspContact').setValue('')\r\n\r\n this.jobService.getHiringManagers(CompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n this.tempHiringManager = res as Contact[]\r\n if (this.job.CompanyContact) {\r\n this.hiringManager.forEach((item) => {\r\n if (item.FirstName + ' ' + item.LastName === this.job.CompanyContact) {\r\n this.jobForm1.get('CompanyContact').setValue(item.FirstName + ' ' + item.LastName)\r\n }\r\n })\r\n this.selectedContactId = this.job.CustomerContactId\r\n } else if (this.hiringManager.length == 1) {\r\n this.jobForm1\r\n .get('CompanyContact')\r\n .setValue(this.hiringManager[0].FirstName + ' | ' + this.hiringManager[0].EmailAddress)\r\n this.selectedContactId = this.hiringManager[0].ContactID\r\n } else {\r\n this.jobForm1.get('CompanyContact').setValue('')\r\n }\r\n })\r\n this.jobService.getProgramManager(CompanyId).subscribe((res) => {\r\n this.programManager = res as Contact[]\r\n this.tempProgramManager = res as Contact[]\r\n if (this.job.MspContact) {\r\n this.jobForm1.get('MspContact').setValue(this.job.MspContact)\r\n this.selectedMspContactId = this.job.MspContactId\r\n } else this.jobForm1.get('MspContact').setValue('')\r\n })\r\n\r\n if (this.job.IndustryName) {\r\n this.jobForm1.get('IndustryName').setValue(this.job.IndustryName)\r\n } else {\r\n this.jobService.getCompanyByCompanyId(CompanyId).subscribe((res) => {\r\n if (res) {\r\n let industry = this.industries.filter((x) => x.CategoryID === res.IndustryID)\r\n if (industry.length > 0) {\r\n this.jobForm1.get('IndustryName').setValue(industry[0]['Name'])\r\n this.selectedIndustryId = res.IndustryID\r\n }\r\n }\r\n })\r\n }\r\n }\r\n categorySkills(selectedValue) {\r\n this.jobService.GetJobSpecializedSkills(selectedValue).subscribe((res) => {\r\n this.skills = res as Skill[]\r\n })\r\n }\r\n ParseJobText() {\r\n this.keyData = Common.JobKeywords\r\n if (this.keyData != null) {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index]\r\n\r\n if (element.Key == 'ContactEmail') {\r\n let email = element.Value.trim()\r\n this.contactEmail = element.Value.trim()\r\n this.jobService.GetParseEmail(email).subscribe((loc) => {\r\n let ep = loc\r\n if (this.selectedCompanyId == 0 || this.selectedCompanyId == null) {\r\n this.selectedCompanyId = ep[0]['CompanyID']\r\n this.selectedContactId = ep[0]['ContactID']\r\n this.selectedLocationId = ep[0]['LocationID']\r\n this.jobService.getHiringManagers(this.selectedCompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n let hmName = this.hiringManager\r\n .filter((option) => option.ContactID == this.selectedContactId)\r\n .map((x) => x.FirstName + ' ' + x.LastName + ' | ' + x.EmailAddress)\r\n .toString()\r\n this.jobForm1.get('CompanyContact').setValue(hmName)\r\n })\r\n\r\n this.jobForm1.get('CompanyName').setValue(ep[0]['CompanyName'])\r\n\r\n if (\r\n this.jobForm1.get('CompanyContact').value == '' ||\r\n this.jobForm1.get('CompanyContact').value == null\r\n )\r\n this.jobForm1.get('CompanyContact').setValue(ep[0]['ContactName'])\r\n this.companyService.GetCompanyLocations(this.selectedCompanyId, 1).subscribe((res) => {\r\n this.jobLocation = res[0]\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n })\r\n }\r\n })\r\n }\r\n if (element.Key == 'JobTitle') {\r\n let title = element.Value.trim()\r\n\r\n this.jobForm1.get('JobTitleName').setValue(title)\r\n }\r\n if (element.Key == 'ContactName') {\r\n let name = element.Value.trim()\r\n if (\r\n this.jobForm1.get('CompanyContact').value == '' ||\r\n this.jobForm1.get('CompanyContact').value == null\r\n )\r\n this.jobForm1.get('CompanyContact').setValue(name)\r\n }\r\n if (element.Key == 'ContactPhone') {\r\n this.contactPhone = element.Value.trim()\r\n }\r\n if (element.Key == 'JobCode') {\r\n this.jobForm1.get('JobCode').setValue(element.Value)\r\n }\r\n if (element.Key == 'Customer') {\r\n this.jobForm1.get('CompanyName').setValue(element.Value)\r\n }\r\n if (element.Key == 'CompanyID') {\r\n this.companyChangeAction(element.Value)\r\n }\r\n }\r\n }\r\n }\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (this.jobForm1.get('JobTitleName').value.length > 0) {\r\n this.jobService.getJobTitles(this.jobForm1.get('JobTitleName').value).subscribe((res) => {\r\n this.titles = res\r\n })\r\n }\r\n }\r\n\r\n onWorkOptionChange(event) {\r\n this.selectedWorkOptionID = event\r\n if (event == WorkOption.Remote) {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n }\r\n }\r\n\r\n onCompanyKeyPressed(event: string): void {\r\n if (event) {\r\n this.companies = this.tempCompanies.filter((company) =>\r\n company.Name.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.companies = this.tempCompanies\r\n }\r\n }\r\n\r\n onHiringManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.hiringManager = this.tempHiringManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.hiringManager = this.tempHiringManager\r\n }\r\n }\r\n\r\n onMSPManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.programManager = this.tempProgramManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.programManager = this.tempProgramManager\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.isJobEdited = false\r\n this.emitEventToLocationComp(this.isJobEdited)\r\n this.jobForm1.markAllAsTouched()\r\n if (this.isLocationRequired && !CommonData.activeLocation) {\r\n this.locationComponent.markLocationFormAsTouched()\r\n this.notifyService.showError('Location is required!', 'Job Details')\r\n return\r\n } else {\r\n if (\r\n (this.jobForm1.valid && !this.isLocationRequired) ||\r\n (this.jobForm1.valid && this.locationComponent?.locationForm?.valid)\r\n ) {\r\n this.saveJobDetails()\r\n }\r\n }\r\n }\r\n\r\n saveJobDetails() {\r\n this.loading = true\r\n this.isJobEdited = false\r\n this.model = Common.activeJob\r\n this.emitEventToLocationComp(this.isJobEdited)\r\n if (this.job.JobId != null) {\r\n this.model.JobId = this.job.JobId\r\n }\r\n this.model.JobHTML = Common.activeJob.JobHTML\r\n this.model.JobDetails = Common.activeJob.JobDetails\r\n this.model.JobTitleName = this.jobForm1.get('JobTitleName').value\r\n this.model.JobCode = this.jobForm1.get('JobCode').value == undefined ? null : this.jobForm1.get('JobCode').value\r\n this.model.CompanyName =\r\n this.jobForm1.get('CompanyName').value == undefined ? null : this.jobForm1.get('CompanyName').value\r\n this.model.CompanyContact =\r\n this.jobForm1.get('CompanyContact').value == undefined ? null : this.jobForm1.get('CompanyContact').value // this.ngCompany;\r\n this.model.Description = this.job.Description\r\n this.model.WorkOptionId = Number(\r\n this.jobForm1.get('WorkOptionId').value == '' ? false : this.jobForm1.get('WorkOptionId').value\r\n )\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.LocationID =\r\n this.selectedLocationId == undefined || this.selectedLocationId == null ? 0 : this.selectedLocationId\r\n this.model.CompanyId =\r\n this.selectedCompanyId == undefined || this.selectedCompanyId == null ? 0 : this.selectedCompanyId\r\n this.model.CustomerContactId =\r\n this.selectedContactId == undefined || this.selectedContactId == null ? 0 : this.selectedContactId\r\n this.model.MspContactId =\r\n this.selectedMspContactId == undefined || this.selectedMspContactId == null ? 0 : this.selectedMspContactId\r\n this.model.ContactEmail = this.contactEmail == undefined || this.contactEmail == null ? '' : this.contactEmail\r\n this.model.ContactPhone = this.contactPhone == undefined || this.contactPhone == null ? '' : this.contactPhone\r\n\r\n this.model.IndustryID = this.selectedIndustryId ? this.selectedIndustryId : 0\r\n this.model.JobCategoryID = this.selectedCategoryId ? this.selectedCategoryId : 0\r\n this.model.SpecializedSkillID = this.selectedSpecializedSkillId ? this.selectedSpecializedSkillId : 0\r\n this.model.SkillLevelID = this.selectedSkillLevelId ? this.selectedSkillLevelId : 0\r\n\r\n if (this.model.StartDate == undefined || this.model.StartDate == null) {\r\n this.model.StartDate = null\r\n }\r\n if (this.model.EndDate == undefined || this.model.EndDate.toString() == '') {\r\n this.model.EndDate = null\r\n }\r\n\r\n if (this.model.ExpiryDate == undefined || this.model.ExpiryDate.toString() == '') {\r\n this.model.ExpiryDate = null\r\n }\r\n if (this.model.JobStatusID == undefined || this.model.JobStatusID.toString() == '') {\r\n this.model.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n }\r\n if (this.model.JobId == undefined || this.model.JobId.toString() == '') {\r\n this.model.JobId = 0\r\n }\r\n this.jobService.AddJobDescription(this.model).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n Common.activeJob.JobHTML = this.model.JobHTML\r\n this.job = this.model = result\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n if (this.isLocationRequired) this.addLocation()\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.model.JobStatusID,\r\n '',\r\n this.authService.userInfo.userID\r\n ) // ToDO 3,2 - to Enum Values\r\n this.loading = false\r\n this.notifyService.showSuccess('Job details successfully saved.', '') // ToDO make 2000 as variable\r\n this.jobAdded.emit(1)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!' + err, '')\r\n }\r\n )\r\n }\r\n\r\n emitEventToLocationComp(value: boolean) {\r\n this.editLocationSubject.next(value)\r\n }\r\n locationFormChangesHandler(event: boolean) {\r\n this.isLocationFormChanged = event\r\n }\r\n addLocation() {\r\n try {\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n CommonData.activeLocation.ObjectId = this.job.JobId\r\n CommonData.activeLocation.ObjectTypeId = 3\r\n CommonData.activeLocation.LocationID = 0\r\n CommonData.activeLocation.LocationTypeID = 0\r\n this.companyService.AddLocation(CommonData.activeLocation).subscribe((res) => {\r\n if (res) {\r\n Common.activeJob.Location = res\r\n }\r\n })\r\n } catch (ex) {\r\n this.loading = false\r\n }\r\n }\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId, statusID, comments, userID).subscribe((result) => {\r\n result\r\n })\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n onInputChange(event: any): void {\r\n let value = event.target.value\r\n const numericValue = Number(value)\r\n if (numericValue < 0 || numericValue > 100 || isNaN(numericValue)) {\r\n event.target.value = ''\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n \r\n Generals\r\n \r\n \r\n
\r\n
\r\n
\r\n Job Title * \r\n \r\n \r\n Title is required\r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Customer Job Code\r\n \r\n \r\n \r\n
\r\n
\r\n Client *\r\n \r\n \r\n Client is required\r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n You should enter value from suggested ones only.\r\n \r\n \r\n
\r\n
\r\n Hiring Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Industry\r\n \r\n \r\n \r\n {{ industry.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Program/MSP Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Work Location\r\n \r\n
\r\n\r\n
\r\n
\r\n Category *\r\n \r\n \r\n \r\n {{ category.Name }}\r\n \r\n \r\n Category is required \r\n \r\n
\r\n
\r\n Specialized Skill\r\n \r\n \r\n \r\n {{ skill.SkillName }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Experience\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Work Options\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { AfterContentInit, Component, Inject, OnDestroy, OnInit, Optional, TemplateRef, ViewChild } from '@angular/core'\r\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, Validators } from '@angular/forms'\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { Common, FormLocation } from 'src/app/common/common'\r\nimport { LocationCalledFrom } from 'src/app/common/location/location.constants'\r\nimport { JobDialogTypes } from 'src/app/enums/jobDialogType'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { LegalStatus } from 'src/app/enums/legalStatus'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { Company, iCompany } from 'src/app/models/company.model'\r\nimport {\r\n BackgroundCheck,\r\n Contact,\r\n DegreeType,\r\n iJob,\r\n iJobCertification,\r\n iJobEducation,\r\n iJobInterviewType,\r\n iJobLegalType,\r\n iJobQuestionnaire,\r\n iJobSkill,\r\n iJobTitle,\r\n InterviewType,\r\n iSkills,\r\n JobType,\r\n LegalType,\r\n Skill,\r\n SkillLevel,\r\n User,\r\n WorkOptions,\r\n} from 'src/app/models/job.model'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { forbiddenNamesValidator } from '../job-details/job-details.component'\r\nimport { JobService } from '../job.service'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { MatChipInputEvent } from '@angular/material/chips'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { first, takeUntil } from 'rxjs/operators'\r\nimport { DialogFormMethod } from 'src/app/company/company-constants'\r\nimport { LocationComponent } from 'src/app/common/location/location.component'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { MatStepper } from '@angular/material/stepper'\r\nimport { FilesTypes, InputType, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { DatePipe } from '@angular/common'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { iCategory, iKeyValue } from 'src/app/models/common.model'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { LocationType } from 'src/app/enums/locationType'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { JobTypes } from 'src/app/enums/jobType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { BreadCrumbs } from 'src/app/enums/breadCrumbs'\r\nimport { LookUpTypes, LookUpTypesIds } from 'src/app/enums/lookUpValues'\r\nimport { JobKeyWords } from 'src/app/enums/jobKeyWords'\r\nimport { CategoryValues } from 'src/app/models/category'\r\nimport { ConfigTypeId } from 'src/app/enums/valueType'\r\nimport { CompanyType } from 'src/app/enums/companyType'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\n\r\n@Component({\r\n selector: 'leap-job-dialog',\r\n templateUrl: './job-dialog.component.html',\r\n styleUrls: [\r\n './job-dialog.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n providers: [\r\n DatePipe,\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n // encapsulation: ViewEncapsulation.Emulated,\r\n})\r\nexport class JobDialogComponent implements OnInit, OnDestroy, AfterContentInit {\r\n public get formLocation(): typeof FormLocation {\r\n return FormLocation\r\n }\r\n\r\n public get dialogFormType(): typeof DialogFormMethod {\r\n return DialogFormMethod\r\n }\r\n public get jobDialogType(): typeof JobDialogTypes {\r\n return JobDialogTypes\r\n }\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n public get stepperButtonType(): typeof StepperButtonType {\r\n return StepperButtonType\r\n }\r\n\r\n public get breadCrumbs(): typeof BreadCrumbs {\r\n return BreadCrumbs\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n @ViewChild(LocationComponent) locationComponent: LocationComponent\r\n @ViewChild('stepper') public addJobStepper: MatStepper\r\n\r\n constructor(\r\n public authService: AuthenticationService,\r\n private fb: FormBuilder,\r\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any,\r\n @Optional() public dialogRef: MatDialogRef,\r\n private notifyService: NotificationService,\r\n private jobService: JobService,\r\n private companyService: CompanyService,\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog,\r\n private commonService: CommonService,\r\n private router: Router\r\n ) {\r\n this.minDate = new Date()\r\n this.minStartDate = new Date()\r\n this.minEndDate = new Date()\r\n this.maxSubmissionDate = new Date()\r\n }\r\n\r\n activeJob = Common.activeJob\r\n experienceLevels = []\r\n selectedEducations: Array = []\r\n skillNames: iSkills[]\r\n selectedInterviewTypes = []\r\n method: string\r\n submitButtonText: string = 'Update'\r\n selectedLegalTypes: number[] = []\r\n dialogName: string = ''\r\n jobUploadForm: FormGroup\r\n jobDescriptionForm: FormGroup\r\n jobDetailsForm: FormGroup\r\n jobOtherForm: FormGroup\r\n jobSkillForm: FormGroup\r\n jobEducationForm: FormGroup\r\n jobQuestionnaireForm: FormGroup\r\n\r\n isSoftSkill: boolean = false\r\n jobtxt: string = ''\r\n formData: any\r\n minBillRate = 1\r\n jobEductionId: number[] = []\r\n maxFileSize = Common.maxJDFileSize\r\n maxChars = Common.maxJDCharacters\r\n inputTextLength = 0\r\n isMaxCharValidationShown = false\r\n jobHTML: string = ''\r\n public loading = false\r\n file: any = null\r\n quillEditable: boolean = false\r\n fileContent: string = ''\r\n isJobDescriptionUploaded: boolean\r\n\r\n newSkill: any = {}\r\n SkillsArray: Array = []\r\n isSkillValid: boolean = false\r\n isReqSkillPresent: boolean\r\n editSkill: boolean = false\r\n editSkillIndex: number = 0\r\n\r\n questionArray: Array = []\r\n editQuestionIndex = 0\r\n newQuestion: any = {}\r\n\r\n job: iJob = this.activeJob\r\n model: iJob = {}\r\n selectable = true\r\n removable = true\r\n jobLocation: iLocation\r\n selectedLocationId: number\r\n selectedCompanyId: number\r\n selectedContactId: number\r\n selectedIndustryId: number\r\n selectedCategoryId: number\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedMspContactId: number = 0\r\n selectedMspContactName: string = ''\r\n programManager = []\r\n hiringManager = []\r\n contactEmail: string\r\n contactPhone: string\r\n companies = []\r\n titles = []\r\n isMSPClient: boolean\r\n isFormDataValid: boolean = false\r\n categories = []\r\n industries = []\r\n workOptions: WorkOptions[]\r\n calledFrom: string = ''\r\n selectedWorkOptionID: number\r\n skills = []\r\n skillLevels: SkillLevel[]\r\n tempCompanies = []\r\n tempHiringManager = []\r\n tempProgramManager = []\r\n isLocationFormChanged: boolean = false\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n skillToBeEdited = {}\r\n questionTypeToBeAdded: number = 2 //by default new question to be added will be set to LINE TEXT\r\n jobTypevalue: number\r\n showBillRate: boolean\r\n showSalary: boolean\r\n minDate: Date = new Date()\r\n minStartDate: Date = new Date()\r\n minEndDate: Date = new Date()\r\n maxSubmissionDate: Date = new Date()\r\n legaltypes: LegalType[]\r\n interviewtypes: InterviewType[]\r\n backgroundchecks: BackgroundCheck[]\r\n jobTypes: JobType[]\r\n workTypeID: number\r\n selectedLegalTypeArray: MatTableDataSource\r\n selectedInterviewTypeArray: MatTableDataSource\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n skillNamesAlreadyPresent: string[] = []\r\n questionToBeEdited: iJobQuestionnaire\r\n travelPercent = document.getElementById('travelPercent')\r\n selectedBackgroundChecks = []\r\n isTravelRequired: boolean = false\r\n isLocationRequired: boolean = true\r\n addJobUrl: string\r\n isZipCodeRequired: boolean = false\r\n isStepperVissible: boolean\r\n questionTypes = this.jobService.getQuestionTypes()\r\n isActiveIndex: number\r\n questionType: string = ''\r\n isQuestionInputShow: boolean = false\r\n editQuestion: boolean = false\r\n iconSrcCommon = 'assets/img/Leap-Tiger_Icons/Job-Module-Icon/'\r\n ngUnsubscribe$: Subject = new Subject()\r\n degreeType: DegreeType[]\r\n selectedCertifications: Array = []\r\n selectedDegree: string[] = []\r\n isFileUploaded: boolean = false\r\n JobSkillDatasource: iJobSkill[]\r\n public editLocationSubject: Subject = new Subject()\r\n salaryDisplayOptions$: Observable = this.jobService.getLookup('SalaryDisplayTypeID') as Observable<\r\n iKeyValue[]\r\n >\r\n\r\n matcher = new CustomErrorStateMatcher()\r\n\r\n ngOnInit() {\r\n this.addJobUrl = this.route.snapshot['_routerState'].url.split('/')[2]\r\n this.isStepperVissible = this.addJobUrl == this.dialogFormType.Add ? true : false\r\n this.job = Common.activeJob\r\n this.activeJob = Common.activeJob\r\n this.dialogName = this.data?.dialogName\r\n this.isSoftSkill = this.data?.isSoftSkill\r\n this.jobTypevalue = Common.activeJob?.JobTypeID\r\n this.formData = this.data?.formData\r\n this.industries = this.data?.industries\r\n this.experienceLevels = this.data?.experienceLevels\r\n this.workOptions = this.data?.workOptions\r\n this.categories = this.data?.categories\r\n this.legaltypes = this.data?.legaltypes\r\n this.interviewtypes = this.data?.interviewtypes\r\n this.skillNamesAlreadyPresent = this.data?.skillNamesArray\r\n this.isZipCodeRequired = this.data.isZipCodeRequired\r\n this.method = this.data?.method\r\n if (\r\n this.method ==\r\n this.dialogFormType.Add.replace(this.dialogFormType.Add[0], this.dialogFormType.Add[0].toUpperCase())\r\n )\r\n this.submitButtonText = 'Add'\r\n this.backgroundchecks = this.data?.backgroundchecks\r\n this.questionToBeEdited = this.data?.questionToBeEdited\r\n this.primaryRecruiters = this.data?.primaryRecruiters\r\n this.secondaryRecruiters = this.data?.secondaryRecruiters\r\n this.jobLocation = this.data?.Location\r\n this.skillToBeEdited = this.data?.skillToBeEdited\r\n this.buildForms()\r\n if (!this.isStepperVissible) {\r\n this.bindFormData()\r\n }\r\n this.jobUploadForm.get('jobDetails').valueChanges.subscribe((data) => {\r\n this.jobHTML = data == null ? '' : data\r\n this.jobtxt = this.htmlToPlaintext(data)\r\n })\r\n\r\n this.categorySkills(Common.activeJob?.JobCategoryID)\r\n if (this.dialogName == JobDialogTypes.Details) {\r\n this.setJobClientsOption()\r\n this.getJobIndustries()\r\n }\r\n }\r\n BindRequiredSkill(jobid) {\r\n this.jobService.GetJobSkills(jobid).subscribe(\r\n (res) => {\r\n this.JobSkillDatasource = res as iJobSkill[]\r\n if (res == null || this.JobSkillDatasource.length == 0) {\r\n if (Common.JobKeywords != null) {\r\n if (Common.JobKeywords.ReqSkills != null) this.SkillsArray = Common.JobKeywords.ReqSkills\r\n }\r\n } else {\r\n this.SkillsArray = this.JobSkillDatasource\r\n }\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n setJobClientsOption() {\r\n this.jobService\r\n .getClientsByUserId(this.authService.userInfo.userID)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.companies = res as iCompany[]\r\n this.tempCompanies = res as iCompany[]\r\n this.jobDetailsForm\r\n .get('CompanyName')\r\n .setValidators(forbiddenNamesValidator(this.companies.map((x) => x.Name)))\r\n if (this.activeJob?.JobId > 0) {\r\n this.companyChangeAction(this.activeJob.CompanyId)\r\n }\r\n if (this.activeJob?.CompanyId) {\r\n this._checkForMspClientForJob()\r\n }\r\n })\r\n }\r\n\r\n private _checkForMspClientForJob() {\r\n const JOB_CLIENT: Company = this.companies?.find((company) => company?.CompanyId === this.activeJob?.CompanyId)\r\n if (JOB_CLIENT?.CompanyTypeID === CompanyType.MSP || JOB_CLIENT?.MSPCompanyID !== null) {\r\n this.isMSPClient = true\r\n } else {\r\n this.isMSPClient = false\r\n }\r\n }\r\n\r\n getJobExperience() {\r\n if (Common.lookUp != undefined && Common.lookUp != null) {\r\n this.skillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.EXPLEVEL)\r\n .map((experience) => ({ Key: experience.ValueName, Value: experience.LookupID }))\r\n this.workOptions = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.WORKID)\r\n .map((workOption) => ({ Key: workOption.ValueName, Value: workOption.LookupID }))\r\n this.degreeType = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.DEGREEID)\r\n .map((degree) => ({ Key: degree.ValueName, Value: degree.LookupID }))\r\n this.jobTypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.JOBID)\r\n .map((jobType) => ({ Key: jobType.ValueName, Value: jobType.LookupID }))\r\n }\r\n }\r\n\r\n getJobOtherDetailsData() {\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.LEGALID)\r\n .map((legalType) => ({ Key: legalType.ValueName, Value: legalType.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.INTERVIEWID)\r\n .map((interViewType) => ({ Key: interViewType.ValueName, Value: interViewType.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.BGCHECKID)\r\n .map((bgCheck) => ({ Key: bgCheck.ValueName, Value: bgCheck.LookupID }))\r\n }\r\n }\r\n\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n this.jobService\r\n .GetRecruitUsersByCompany(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job?.PostedFor)\r\n this.jobOtherForm.get('PostedFor').setValue(this.job?.PostedFor)\r\n this.jobOtherForm.get('SecondaryRecruiterId').setValue(this.job?.SecondaryRecruiterId)\r\n const CURRENT_USER_ROLE = this.authService.getCurrentUserRole()\r\n if (CURRENT_USER_ROLE === UserRoleId.RECRUITER) {\r\n const USER_ID = this.authService.userInfo.userID\r\n this.primaryRecruiters = this.primaryRecruiters.filter((recruiter) => recruiter.UserID == USER_ID)\r\n this.jobOtherForm.get('PostedFor').patchValue(USER_ID)\r\n }\r\n })\r\n }\r\n\r\n getJobIndustries() {\r\n this.jobService\r\n .GetJobIndustry()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.industries = res as iCategory[]\r\n })\r\n }\r\n\r\n getJobCategories() {\r\n this.jobService\r\n .GetJobCategory()\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.categories = res as iCategory[]\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe$.next()\r\n this.ngUnsubscribe$.complete()\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.travelPercent = document.getElementById('travelPercent')\r\n }\r\n\r\n isJobFormFieldValid(field: string) {\r\n return (\r\n this.jobDetailsForm?.get(field).invalid &&\r\n (this.jobDetailsForm?.get(field).dirty || this.jobDetailsForm?.get(field).touched)\r\n )\r\n }\r\n\r\n isFormFieldIsValid(field: string) {\r\n return (\r\n this.jobOtherForm?.get(field)?.invalid &&\r\n (this.jobOtherForm?.get(field)?.dirty || this.jobOtherForm?.get(field)?.touched)\r\n )\r\n }\r\n\r\n onSelectedIndustry(industryCatID) {\r\n this.selectedIndustryId = industryCatID\r\n }\r\n categorySkills(selectedValue) {\r\n if (selectedValue) {\r\n this.jobService\r\n .GetJobSpecializedSkills(selectedValue)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.skills = res as Skill[]\r\n })\r\n }\r\n }\r\n onSelectedCategory(cat) {\r\n this.selectedCategoryId = cat.CategoryID\r\n this.categorySkills(this.selectedCategoryId)\r\n }\r\n onSelectedSkillName(cat) {\r\n this.selectedSpecializedSkillId = cat.SkillID\r\n this.jobDetailsForm.get('SpecializedSkillID').setValue(this.selectedSpecializedSkillId)\r\n }\r\n\r\n onSelectedCompany(company) {\r\n this.jobDetailsForm.get('CompanyId').setValue(company.CompanyId)\r\n this.selectedCompanyId = company.CompanyId\r\n this.getRecruiters(this.selectedCompanyId)\r\n this.companyChangeAction(company.CompanyId)\r\n this.isMSPClient = company.CompanyTypeID === CompanyType.MSP || company?.MSPCompanyID !== null ? true : false\r\n }\r\n onSelectedContact(contact) {\r\n this.selectedContactId = contact.ContactID\r\n this.jobDetailsForm.get('CustomerContactId').setValue(this.selectedContactId)\r\n }\r\n onSelectedProgramManager(contact) {\r\n this.selectedMspContactId = contact.ContactID\r\n this.selectedMspContactName = `${contact.FirstName} ${contact.LastName}`\r\n }\r\n\r\n applyFilterSkill(filterValue) {\r\n if (filterValue.trim().length > 0) {\r\n this.jobService\r\n .getSkillNames(filterValue, this.isSoftSkill ? 152 : 151)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n })\r\n }\r\n }\r\n\r\n locationFormChangesHandler(event: boolean) {\r\n this.isLocationFormChanged = event\r\n }\r\n\r\n companyChangeAction(CompanyId) {\r\n this.hiringManager = null\r\n this.programManager = null\r\n this.selectedMspContactId = 0\r\n this.selectedMspContactName = ''\r\n this.selectedContactId = 0\r\n\r\n this.jobDetailsForm.get('CompanyContact').setValue('')\r\n this.jobDetailsForm.get('MspContact').setValue('')\r\n\r\n this.jobService\r\n .getHiringManagers(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n this.tempHiringManager = res as Contact[]\r\n if (this.job?.CompanyContact) {\r\n this.hiringManager.forEach((item) => {\r\n if (item.FirstName + ' ' + item.LastName === this.job.CompanyContact) {\r\n this.jobDetailsForm.get('CompanyContact').setValue(item.FirstName + ' ' + item.LastName)\r\n }\r\n })\r\n this.selectedContactId = this.job.CustomerContactId\r\n this.jobDetailsForm.get('CustomerContactId').setValue(this.selectedContactId)\r\n } else if (this.hiringManager.length == 1) {\r\n this.jobDetailsForm\r\n .get('CompanyContact')\r\n .setValue(this.hiringManager[0].FirstName + ' | ' + this.hiringManager[0].EmailAddress)\r\n this.selectedContactId = this.hiringManager[0].ContactID\r\n this.jobDetailsForm.get('CustomerContactId').setValue(this.selectedContactId)\r\n } else this.jobDetailsForm.get('CompanyContact').setValue('')\r\n })\r\n this.jobService\r\n .getProgramManager(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.programManager = res as Contact[]\r\n this.tempProgramManager = res as Contact[]\r\n if (this.job?.MspContact) {\r\n this.jobDetailsForm.get('MspContact').setValue(this.job.MspContact)\r\n this.selectedMspContactId = this.job.MspContactId\r\n this.selectedMspContactName = this.job?.MspContact\r\n } else this.jobDetailsForm.get('MspContact').setValue('')\r\n })\r\n\r\n if (this.job?.IndustryName) {\r\n this.jobDetailsForm.get('IndustryName').setValue(this.job.IndustryName)\r\n } else {\r\n this.jobService\r\n .getCompanyByCompanyId(CompanyId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n if (res) {\r\n let industry = this.industries.filter((x) => x.CategoryID === res.IndustryID)\r\n if (industry.length > 0) {\r\n this.jobDetailsForm.get('IndustryName').setValue(industry[0]['Name'])\r\n this.selectedIndustryId = res.IndustryID\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n onSearchKeyPressed(event: KeyboardEvent): void {\r\n if (this.jobDetailsForm.get('JobTitleName').value.length > 0) {\r\n this.jobService\r\n .getJobTitles(this.jobDetailsForm.get('JobTitleName').value)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.titles = res as iJobTitle[]\r\n })\r\n }\r\n }\r\n\r\n onWorkOptionChange(event) {\r\n this.selectedWorkOptionID = event\r\n if (event == WorkOption.Remote) {\r\n this.isLocationRequired = false\r\n this.calledFrom = LocationCalledFrom.AddCandidateProfile\r\n } else {\r\n this.isLocationRequired = true\r\n this.calledFrom = LocationCalledFrom.AddJobDetails\r\n }\r\n }\r\n\r\n onCompanyKeyPressed(event: string): void {\r\n if (event) {\r\n this.companies = this.tempCompanies.filter((company) =>\r\n company.Name.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.companies = this.tempCompanies\r\n }\r\n }\r\n\r\n onHiringManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.hiringManager = this.tempHiringManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.hiringManager = this.tempHiringManager\r\n }\r\n }\r\n\r\n onMSPManagerKeyPressed(event: string): void {\r\n if (event) {\r\n this.programManager = this.tempProgramManager.filter(\r\n (manager) =>\r\n manager.FirstName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.LastName.toLowerCase().includes(event.trim().toLowerCase()) ||\r\n manager.EmailAddress.toLowerCase().includes(event.trim().toLowerCase())\r\n )\r\n } else {\r\n this.programManager = this.tempProgramManager\r\n }\r\n }\r\n\r\n addCertification(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.selectedCertifications.push({\r\n JobCertificationID: null,\r\n JobID: 0,\r\n CertificationID: 0,\r\n CertificationName: value.trim(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n buildForms() {\r\n this.initialDescriptionForm()\r\n this.initialOtherForm()\r\n this.initialDetailsForm()\r\n this.initialEducationForm()\r\n this.initialSkillFrom()\r\n this.initalQuestionnaireForm()\r\n this.initialUploadForm()\r\n }\r\n\r\n bindFormData() {\r\n switch (this.dialogName) {\r\n case this.jobDialogType.Description: {\r\n this.jobDescriptionForm.patchValue(this.activeJob)\r\n break\r\n }\r\n case this.jobDialogType.Other: {\r\n this.workTypeID = this.activeJob?.WorkTypeID\r\n this.jobOtherForm.patchValue(this.activeJob)\r\n this.jobOtherForm.patchValue({ WorkTypeID: this.workTypeID })\r\n this.isTravelRequired = this.job?.TravelRequired\r\n break\r\n }\r\n case this.jobDialogType.Details: {\r\n this.jobDetailsForm.patchValue(this.activeJob)\r\n this.onWorkOptionChange(this.activeJob?.WorkOptionId)\r\n this.selectedCompanyId = Common?.activeJob?.CompanyId\r\n break\r\n }\r\n case this.jobDialogType.Education: {\r\n this.jobEducationForm.patchValue(this.activeJob)\r\n this.jobService\r\n .GetJobCertification(this.activeJob?.JobId)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe((res) => {\r\n this.selectedCertifications = res as iJobCertification[]\r\n })\r\n this.selectedDegree = []\r\n this.jobEductionId = []\r\n this.activeJob?.JobEducations.forEach((element) => {\r\n this.degreeType.forEach((degree) => {\r\n if (degree?.Key == element?.EducationName) {\r\n this.selectedDegree.push(degree?.Key)\r\n this.jobEductionId.push(degree?.Value)\r\n }\r\n })\r\n })\r\n this.jobEducationForm.get('JobEducations').setValue(this.selectedDegree)\r\n break\r\n }\r\n case this.jobDialogType.Skills: {\r\n this.jobSkillForm.patchValue(this.skillToBeEdited)\r\n break\r\n }\r\n case this.jobDialogType.Questionnaire: {\r\n this.jobQuestionnaireForm.patchValue(this.questionToBeEdited)\r\n break\r\n }\r\n }\r\n }\r\n\r\n resetForm() {\r\n switch (this.dialogName) {\r\n case this.jobDialogType.Description: {\r\n this.jobDescriptionForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Other: {\r\n this.jobOtherForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Details: {\r\n this.jobDetailsForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Education: {\r\n this.jobEducationForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Skills: {\r\n this.jobSkillForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Questionnaire: {\r\n this.jobQuestionnaireForm.reset()\r\n break\r\n }\r\n case this.jobDialogType.Upload: {\r\n this.jobUploadForm.reset()\r\n }\r\n }\r\n }\r\n\r\n initialUploadForm() {\r\n this.jobUploadForm = this.fb.group({\r\n jobDetails: [''],\r\n fileUploader: ['', Validators.compose([Validators.maxLength(512), Validators.minLength(2)])],\r\n })\r\n }\r\n\r\n initialDescriptionForm(description = '') {\r\n this.jobDescriptionForm = this.fb.group({\r\n Description: [description, [Validators.required, Validators.maxLength(25000)]],\r\n })\r\n this.ParseJobDescriptionText()\r\n }\r\n\r\n initialOtherForm() {\r\n this.jobOtherForm = this.fb.group({\r\n JobTypeID: [10],\r\n MinRate: [],\r\n MaxBillRate: [''],\r\n MinSalary: [],\r\n MaxSalary: [],\r\n Positions: [1],\r\n StartDate: ['', Validators.required],\r\n EndDate: [null],\r\n ExpiryDate: [null],\r\n WorkHours: [40],\r\n IsHot: [],\r\n Notes: [''],\r\n PostedFor: ['', Validators.required],\r\n SecondaryRecruiterId: [],\r\n MaxSubmissionCount: ['', [this.maxSubmitValidator]],\r\n VendorAllowedId: [],\r\n TravelRequired: [''],\r\n TravelPercentage: [null],\r\n BackgroundCheck: [],\r\n InterviewType: [],\r\n WorkTypeID: [1, Validators.required],\r\n LegalTypeNames: [],\r\n })\r\n\r\n this.getJobOtherDetailsData()\r\n if (this.activeJob?.CompanyId > 0) {\r\n this.getRecruiters(this.activeJob?.CompanyId)\r\n }\r\n if (this.isStepperVissible) this.JobTypeChange(10)\r\n if (this.job?.BackgroundCheckId) {\r\n this.selectedBackgroundChecks = this.job.BackgroundCheckId.split(',').map(Number)\r\n }\r\n if (this.job?.InterviewTypeNames) {\r\n let interviewTypeNamesArray = this.job.InterviewTypeNames.split(',').map((interviewType) =>\r\n interviewType.trim()\r\n )\r\n this.interviewtypes.forEach((interviewType) => {\r\n if (interviewTypeNamesArray.indexOf(interviewType.Key) != -1) {\r\n this.selectedInterviewTypes.push(interviewType.Value)\r\n }\r\n })\r\n }\r\n this.selectedLegalTypes = []\r\n this.selectedLegalTypes.push(LegalStatus.USCitizen)\r\n if (this.job?.LegalTypeNames) {\r\n let legalTypesNameArray = this.job?.LegalTypeNames.split(',').map((legalType) => legalType.trim())\r\n this.legaltypes?.forEach((legalType) => {\r\n if (legalTypesNameArray.indexOf(legalType.Key) != -1) {\r\n this.selectedLegalTypes.push(legalType.Value)\r\n }\r\n })\r\n }\r\n }\r\n\r\n maxSubmitValidator(control: AbstractControl): ValidationErrors | null {\r\n const controlValue = control?.value\r\n if (controlValue === 0) return null\r\n else if (controlValue > 0 && controlValue < Common?.activeJob?.Submitted) return { maxSubmitInvalid: true }\r\n }\r\n\r\n initialDetailsForm() {\r\n this.jobDetailsForm = this.fb.group({\r\n phone: [''],\r\n JobTitleName: ['', Validators.required],\r\n CompanyContact: [''],\r\n CompanyId: [],\r\n CustomerContactId: [],\r\n MspContact: [''],\r\n CompanyName: [null, Validators.required],\r\n LocationID: [0],\r\n JobCode: [''],\r\n IndustryName: [''],\r\n JobCategory: ['', Validators.required],\r\n SpecializedSkill: [''],\r\n SpecializedSkillID: [],\r\n SkillLevel: [''],\r\n WorkOptionId: [],\r\n SalaryDisplayTypeID: [240],\r\n MinExperience: [0, Validators.required],\r\n MaxExperience: [],\r\n })\r\n\r\n this.setJobClientsOption()\r\n this.getJobCategories()\r\n this.getJobIndustries()\r\n this.getJobExperience()\r\n }\r\n\r\n initialEducationForm() {\r\n this.jobEducationForm = this.fb.group({\r\n JobCertification: [''],\r\n JobEducations: [[]],\r\n })\r\n }\r\n initialSkillFrom() {\r\n this.jobSkillForm = this.fb.group({\r\n Experience: [null, !this.isSoftSkill ? Validators.required : ''],\r\n Required: [false],\r\n SkillName: ['', Validators.required],\r\n })\r\n }\r\n\r\n initalQuestionnaireForm() {\r\n this.jobQuestionnaireForm = this.fb.group({\r\n JobQuestionId: [''],\r\n JobId: [''],\r\n Question: [''],\r\n QuestionTypeId: [''],\r\n Options: [''],\r\n CreatedDate: [''],\r\n CreatedBy: [''],\r\n UpdatedDate: [''],\r\n UpdatedBy: [''],\r\n IsActive: [''],\r\n })\r\n }\r\n\r\n editDescription() {\r\n if (this.jobDescriptionForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobDescriptionForm.value })\r\n else this.jobDescriptionForm.markAllAsTouched()\r\n }\r\n\r\n editDetails() {\r\n if (\r\n (this.jobDetailsForm.valid && !this.isLocationRequired) ||\r\n (this.jobDetailsForm.valid && this.locationComponent?.locationForm?.valid)\r\n ) {\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobDetailsForm.value,\r\n selectedMspContactId: this.selectedMspContactId,\r\n selectedMspContactName: this.selectedMspContactName,\r\n selectedReason: this.jobDetailsForm.value,\r\n })\r\n } else if (this.isLocationRequired && this.locationComponent?.locationForm?.invalid) {\r\n this.locationComponent.markLocationFormAsTouched()\r\n this.notifyService.showError('Location is required!', '')\r\n } else this.jobDetailsForm.markAllAsTouched()\r\n }\r\n\r\n editOtherDetails() {\r\n if (this.jobOtherForm.valid)\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobOtherForm.value })\r\n else this.jobOtherForm.markAllAsTouched()\r\n }\r\n\r\n editSkills() {\r\n if (this.jobSkillForm.valid && !this.isDuplicateSkillAdded(this.jobSkillForm.value.SkillName)) {\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobSkillForm.value })\r\n } else if (this.jobSkillForm.valid && this.isDuplicateSkillAdded(this.jobSkillForm.value.SkillName)) {\r\n this.notifyService.showWarning('Skill name is already present', '')\r\n } else this.jobSkillForm.markAllAsTouched()\r\n }\r\n\r\n isDuplicateSkillAdded(skillName) {\r\n return this.skillNamesAlreadyPresent?.indexOf(skillName) != -1 ? true : false\r\n }\r\n editEducation() {\r\n this.getId()\r\n const removedEducations = this.activeJob?.JobEducations.filter(\r\n (initial) => !this.selectedEducations.some((current) => current.EducationName === initial.EducationName)\r\n )\r\n if (this.jobEducationForm.valid)\r\n this.dialogRef.close({\r\n formName: this.dialogName,\r\n formData: this.jobEducationForm.value,\r\n certifications: this.selectedCertifications,\r\n jobEducations: this.selectedEducations,\r\n removedEducations: removedEducations,\r\n })\r\n else this.jobEducationForm.markAllAsTouched()\r\n }\r\n\r\n getId() {\r\n const selectedDegreeValues = this.jobEducationForm?.value?.JobEducations || []\r\n this.selectedEducations = []\r\n selectedDegreeValues.forEach((degreeName: string) => {\r\n const degreeTypeObj = this.degreeType.find((dt) => dt.Key === degreeName)\r\n if (degreeTypeObj) {\r\n this.selectedEducations.push({\r\n JobEductionID: degreeTypeObj.Value,\r\n JobID: this.job.JobId || 0,\r\n EducationID: degreeTypeObj.Value,\r\n EducationName: degreeName,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n })\r\n }\r\n\r\n editQuestionnaire() {\r\n if (this.jobQuestionnaireForm.valid) {\r\n if (\r\n this.method ==\r\n this.dialogFormType.Add.replace(this.dialogFormType.Add[0], this.dialogFormType.Add[0].toUpperCase())\r\n ) {\r\n this.jobQuestionnaireForm.get('QuestionTypeId').setValue(this.questionTypeToBeAdded)\r\n }\r\n this.dialogRef.close({ formName: this.dialogName, formData: this.jobQuestionnaireForm.value })\r\n } else this.jobQuestionnaireForm.markAllAsTouched()\r\n }\r\n\r\n onSave() {\r\n switch (this.dialogName) {\r\n case this.jobDialogType.Description: {\r\n this.editDescription()\r\n break\r\n }\r\n case this.jobDialogType.Other: {\r\n this.editOtherDetails()\r\n break\r\n }\r\n case this.jobDialogType.Details: {\r\n this.editDetails()\r\n break\r\n }\r\n case this.jobDialogType.Education: {\r\n this.editEducation()\r\n break\r\n }\r\n case this.jobDialogType.Skills: {\r\n this.editSkills()\r\n break\r\n }\r\n case this.jobDialogType.Questionnaire: {\r\n this.editQuestionnaire()\r\n break\r\n }\r\n }\r\n }\r\n\r\n onClose() {\r\n this.resetForm()\r\n this.dialogRef.close({ formName: 'close' })\r\n }\r\n\r\n removeCertification(keyword: any): void {\r\n let index = this.selectedCertifications.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.selectedCertifications.splice(index, 1)\r\n }\r\n }\r\n\r\n JobTypeChange(selectedValue) {\r\n this.jobTypevalue = selectedValue\r\n if (this.jobTypevalue !== 12) {\r\n this.jobOtherForm.get('EndDate').addValidators([Validators.required])\r\n } else {\r\n this.jobOtherForm.get('EndDate').clearValidators()\r\n }\r\n this.jobOtherForm.get('EndDate').updateValueAndValidity()\r\n //this.minSalary=15000;\r\n this.minBillRate = 1\r\n if (selectedValue == Common.enumJobContractType.JT_C2C) {\r\n // Contract ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = false\r\n this.jobOtherForm.controls['MinSalary'].clearValidators()\r\n this.jobOtherForm.controls['MaxSalary'].clearValidators()\r\n\r\n this.jobOtherForm.get('MinSalary').setValue('')\r\n this.jobOtherForm.get('MaxSalary').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_C2H) {\r\n // Contract to hire ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = true\r\n\r\n this.jobOtherForm.get('MinSalary').setValue('')\r\n this.jobOtherForm.get('MaxSalary').setValue('')\r\n this.jobOtherForm.get('MinRate').setValue('')\r\n this.jobOtherForm.get('MaxBillRate').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_PERM) {\r\n // Permanent\r\n this.showBillRate = false\r\n this.showSalary = true\r\n this.minBillRate = 0\r\n this.jobOtherForm.controls['MaxBillRate'].clearValidators()\r\n this.jobOtherForm.controls['MaxSalary'].clearValidators()\r\n this.jobOtherForm.get('MinRate').setValue('')\r\n this.jobOtherForm.get('MaxBillRate').setValue('')\r\n }\r\n }\r\n\r\n submissionDateChangesHandler(event) {\r\n this.minDate = event.value\r\n this.minStartDate = event.value.getDate() + 1\r\n this.minEndDate = event.value.getDate() + 2\r\n }\r\n\r\n startDateChangesHandler(event) {\r\n this.minEndDate = new Date(new Date(event.value).setDate(event.value.getDate() + 1))\r\n this.maxSubmissionDate = event.value.getDate()\r\n }\r\n\r\n onSelectLegalTypes(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jobLegalTypeData: iJobLegalType[] = []\r\n jobLegalTypeData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job?.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n if (this.selectedLegalTypeArray != null) {\r\n jobLegalTypeData = this.selectedLegalTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jobLegalTypeData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jobLegalTypeData) {\r\n if (event.source.value === order.LegalTypeId) {\r\n jobLegalTypeData.splice(jobLegalTypeData.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalTypeData)\r\n }\r\n\r\n recruiterHandler(event: any) {\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != event)\r\n }\r\n\r\n travelRequiredChanged(event) {\r\n let elemt1 = document.getElementById('travelPercentage')\r\n this.isTravelRequired = event\r\n }\r\n\r\n onSelectBackGroundCheck(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.selectedBackgroundChecks.push(event.source.value)\r\n } else {\r\n const index: number = this.selectedBackgroundChecks.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.selectedBackgroundChecks.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSelectInterviewType(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let interviewTypeSelectedOptions: iJobInterviewType[] = []\r\n if (this.selectedInterviewTypeArray != null) {\r\n interviewTypeSelectedOptions = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n interviewTypeSelectedOptions.push({\r\n JobInterviewTypeId: 0,\r\n JobId: this.job.JobId,\r\n InterviewTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of interviewTypeSelectedOptions) {\r\n if (event.source.value === order.InterviewTypeId) {\r\n interviewTypeSelectedOptions.splice(interviewTypeSelectedOptions.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedInterviewTypeArray = new MatTableDataSource(interviewTypeSelectedOptions)\r\n }\r\n\r\n certificationChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.selectedCertifications, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n questionTypeSelected(questionTypeId: number) {\r\n this.jobQuestionnaireForm.reset()\r\n this.questionTypeToBeAdded = questionTypeId\r\n this.questionTypes.forEach((item) => {\r\n item.isActive = questionTypeId === item.questionTypeId ? true : false\r\n })\r\n }\r\n\r\n cancelEdit() {\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n }\r\n\r\n //stepper handlers\r\n nextStepHandler() {\r\n switch (this.addJobStepper.selectedIndex) {\r\n case 0: {\r\n this.onJobUploadSubmit()\r\n break\r\n }\r\n case 1: {\r\n if (\r\n (this.jobDetailsForm.valid && !this.isLocationRequired) ||\r\n (this.jobDetailsForm.valid && this.locationComponent?.locationForm?.valid)\r\n ) {\r\n this.saveJobDetails()\r\n } else if (this.jobDetailsForm.invalid) {\r\n this.jobDetailsForm.markAllAsTouched()\r\n } else if (this.isLocationRequired && !CommonData.activeLocation) {\r\n this.jobDetailsForm.markAllAsTouched()\r\n this.locationComponent.markLocationFormAsTouched()\r\n this.notifyService.showError('Location is required!', '')\r\n }\r\n break\r\n }\r\n case 2: {\r\n if (this.jobDescriptionForm.valid) this.saveJobDescription()\r\n else this.jobDescriptionForm.markAllAsTouched()\r\n break\r\n }\r\n case 3: {\r\n if (this.jobOtherForm.valid) this.saveJobOtherDetails()\r\n else this.jobOtherForm.markAllAsTouched()\r\n break\r\n }\r\n case 4: {\r\n if (this.jobSkillForm.valid || this.SkillsArray.length > 0) this.saveJobSkill()\r\n else this.jobSkillForm.markAllAsTouched()\r\n break\r\n }\r\n case 5: {\r\n this.saveJobEducation()\r\n break\r\n }\r\n case 6: {\r\n if (this.jobQuestionnaireForm.valid) this.saveJobQuestionnaire()\r\n else this.jobQuestionnaireForm.markAllAsTouched()\r\n break\r\n }\r\n }\r\n }\r\n\r\n previousStepHandler() {\r\n this.addJobStepper.previous()\r\n }\r\n\r\n //JOB UPLOAD SECTION\r\n jobDescKeyUpEvent(event: any) {\r\n const inputType = event.inputType\r\n if (inputType === InputType.DROP || inputType === InputType.PASTE) {\r\n if (event.target.children.length) {\r\n const hadImage = this.isInputImage(event.target.children)\r\n if (hadImage) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n }\r\n }\r\n\r\n let inputValue = this.htmlToPlaintext(event.target.innerHTML)\r\n this.inputTextLength = inputValue.length\r\n if (this.inputTextLength > this.maxChars && !this.isMaxCharValidationShown) {\r\n this.isMaxCharValidationShown = true\r\n this.notifyService.showWarning('You have reached your maximum limit of characters allowed', '')\r\n }\r\n if (this.inputTextLength <= this.maxChars) {\r\n this.isMaxCharValidationShown = false\r\n }\r\n let content = inputValue.slice(0, this.maxChars)\r\n this.jobtxt = content\r\n this.jobHTML = content == null ? '' : content\r\n }\r\n\r\n isInputImage(children) {\r\n let hadImage = false\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i]\r\n if (child.tagName === FilesTypes.IMG.toUpperCase()) {\r\n hadImage = true\r\n continue\r\n }\r\n if (child.children.length) {\r\n hadImage = this.isInputImage(child.children)\r\n if (hadImage) {\r\n break\r\n }\r\n }\r\n }\r\n return hadImage\r\n }\r\n\r\n htmlToPlaintext(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : ''\r\n }\r\n\r\n jobDescOnPaste(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n var dlen = Number(clipboardData.getData('text').length)\r\n if (dlen == 0) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n let content = clipboardData.getData('text').slice(0, this.maxChars)\r\n this.model = this.jobUploadForm.value\r\n this.model.JobDetails = content\r\n this.model.JobHTML = content\r\n }\r\n\r\n onJobUploadSubmit() {\r\n if (this.jobHTML.length == 0) {\r\n this.jobHTML = this.jobtxt\r\n }\r\n if (this.jobtxt.length > 0) {\r\n if (this.inputTextLength > this.maxChars) {\r\n this.notifyService.showError('Please reduce the JD character count to upto 25000 characters', '')\r\n } else {\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n Common.activeJob = this.model\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.activeJob = Common.activeJob\r\n if (this.activeJob.JobId != null) {\r\n if (this.job.JobId > 0) {\r\n this.activeJob = Common.activeJob\r\n this.dialogName = this.jobDialogType.Details\r\n this.bindFormData()\r\n }\r\n } else {\r\n this.ShowParsedData()\r\n }\r\n } else {\r\n Common.activeJob = this.model\r\n }\r\n }\r\n }\r\n }\r\n ShowParsedData() {\r\n var jobKeyWords = Common?.JobKeywords || []\r\n this.SkillsArray = Common?.JobKeywords?.ReqSkills || []\r\n\r\n if (jobKeyWords != null) {\r\n this.addJobStepper.next()\r\n this.initialDetailsForm()\r\n this.initialOtherForm()\r\n this.setJobsValues()\r\n\r\n try {\r\n for (let index = 0; index < jobKeyWords.length; index++) {\r\n var element = jobKeyWords[index]\r\n switch (element.Key) {\r\n case JobKeyWords.BillRate: {\r\n var regex = /[\\d|,|.|e|E|\\+]+/g\r\n var rates = element?.Value.match(regex)\r\n if (rates.length > 1) {\r\n this.jobOtherForm.get('MaxBillRate').setValue(Number(rates[1]))\r\n } else if (rates.length == 1) {\r\n this.jobOtherForm.get('MaxBillRate').setValue(Number(rates[0]))\r\n }\r\n break\r\n }\r\n case JobKeyWords.JOBTITLE: {\r\n let title = element?.Value?.trim()\r\n this.jobDetailsForm.get('JobTitleName').setValue(title)\r\n break\r\n }\r\n case JobKeyWords.InterviewTypeID: {\r\n let data = element?.Value.split(',')\r\n for (let dd of data) {\r\n this.selectedInterviewTypes.push(Number(dd))\r\n }\r\n const newSelection = ['39']\r\n this.jobOtherForm.get('InterviewType')?.setValue(this.selectedInterviewTypes)\r\n\r\n //this.selectedInterviewTypeArray = new MatTableDataSource(interviewTypeSelectedOptions)\r\n //this.jobOtherForm.get('InterviewType').setValue(18)\r\n\r\n break\r\n }\r\n case JobKeyWords.ExpiryDate: {\r\n let data = element?.Value\r\n this.jobOtherForm.get('ExpiryDate').setValue(new Date(data))\r\n\r\n break\r\n }\r\n case JobKeyWords.Positions: {\r\n let data = element?.Value?.trim()\r\n this.jobOtherForm.get('Positions').setValue(Number(data))\r\n break\r\n }\r\n case JobKeyWords.MaximumSubmission: {\r\n let data = element?.Value?.trim()\r\n this.jobOtherForm.get('MaxSubmissionCount').setValue(Number(data))\r\n break\r\n }\r\n case JobKeyWords.STARTDATE: {\r\n let data = element?.Value\r\n if (data) this.jobOtherForm.get('StartDate').setValue(new Date(data))\r\n\r\n break\r\n }\r\n case JobKeyWords.EndDate: {\r\n let data = element?.Value\r\n if (data) this.jobOtherForm.get('EndDate').setValue(new Date(data))\r\n break\r\n }\r\n\r\n case JobKeyWords.CONTACTENAME: {\r\n let name = element?.Value?.trim()\r\n if (\r\n this.jobDetailsForm.get('CompanyContact').value == '' ||\r\n this.jobDetailsForm.get('CompanyContact').value == null\r\n )\r\n this.jobDetailsForm.get('CompanyContact').setValue(name)\r\n break\r\n }\r\n case JobKeyWords.CONTACTPHONE: {\r\n this.contactPhone = element?.Value?.trim()\r\n break\r\n }\r\n case JobKeyWords.JOBECODE: {\r\n this.jobDetailsForm.get('JobCode').setValue(element.Value)\r\n break\r\n }\r\n case JobKeyWords.CUSTOMER: {\r\n if (\r\n this.selectedCompanyId != 0 &&\r\n this.selectedCompanyId != undefined &&\r\n this.selectedCompanyId != null\r\n ) {\r\n this.jobDetailsForm.get('CompanyName').setValue(element.Value)\r\n }\r\n break\r\n }\r\n case JobKeyWords.COMPANYID: {\r\n this.selectedCompanyId = Number(element?.Value)\r\n this.getRecruiters(this.selectedCompanyId)\r\n this.companyChangeAction(element.Value)\r\n this.companyService.GetCompanyLocations(this.selectedCompanyId, 1).subscribe((res) => {\r\n this.jobLocation = res[0]\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n })\r\n break\r\n }\r\n case JobKeyWords.CONTACTID: {\r\n this.selectedContactId = Number(element?.Value)\r\n\r\n this.jobService.getHiringManagers(this.selectedCompanyId).subscribe((res) => {\r\n this.hiringManager = res as Contact[]\r\n let hmName = this.hiringManager\r\n .filter((option) => option.ContactID == this.selectedContactId)\r\n .map((x) => x.FirstName + ' ' + x.LastName + ' | ' + x.EmailAddress)\r\n .toString()\r\n // this.jobDetailsForm.get('CompanyContact').setValue(hmName)\r\n })\r\n break\r\n }\r\n case JobKeyWords.WORK_OPTION_ID: {\r\n let workOptionId = Number(element?.Value)\r\n this.jobDetailsForm.get('WorkOptionId').setValue(workOptionId)\r\n break\r\n }\r\n case JobKeyWords.Duration: {\r\n // let duration = jobKeyWords[40].Value.trim()\r\n let duration = element.Value.trim()\r\n let x = duration.split(' - ')\r\n let startDate = x[0] || '' //duration.Substring(0, duration.IndexOf(\" - \"));\r\n let endtDate = x[1] || '' //this.getBetween(duration,duration.IndexOf(\" - \"),10);\r\n var rx = /(? 6000000) {\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', '')\r\n this.file = null\r\n return\r\n }\r\n if (!this.validateFile(fileList[0].name)) {\r\n this.notifyService.showError('Selected file format is not supported!', '')\r\n this.file = null\r\n return\r\n }\r\n }\r\n\r\n uploadJob() {\r\n this.dialog.closeAll()\r\n this.loading = true\r\n let fileReader: FileReader = new FileReader()\r\n let self = this\r\n fileReader.onloadend = function (x) {\r\n self.fileContent = fileReader.result.toString()\r\n }\r\n fileReader.readAsText(this.file)\r\n const formData = new FormData()\r\n formData.append(this.file.name, this.file)\r\n this.jobService.uploadJobFile(formData).subscribe(\r\n (event) => {\r\n if (event) {\r\n var js = {}\r\n js = event\r\n self.jobUploadForm.get('jobDetails').setValue(this.jobtxt)\r\n this.jobtxt = (js as any)?.jobtxt || ''\r\n this.jobHTML = (js as any)?.jobHTML || ''\r\n Common.JobKeywords = (js as any)?.Keys || {\r\n ReqSkills: [],\r\n JobResponse: '',\r\n }\r\n Common.JobKeywords.ReqSkills = (js as any)?.ReqSkills || []\r\n Common.JobKeywords.JobResponse = (js as any)?.JobResponse || ''\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n self.model.JobDetails = self.jobUploadForm.get('jobDetails').value\r\n if (this.model.JobHTML !== undefined && this.model.JobHTML !== null) {\r\n if (this.model.JobHTML.length > 0) Common.activeJob = this.model\r\n this.notifyService.showSuccess('Successfully uploaded!', '')\r\n this.quillEditable = true\r\n this.isJobDescriptionUploaded = true\r\n this.addJobStepper.next()\r\n this.initialDetailsForm()\r\n this.loading = false\r\n this.file = null\r\n this.isFileUploaded = true\r\n this.onJobUploadSubmit()\r\n return\r\n } else {\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.loading = false\r\n }\r\n\r\n this.loading = false\r\n return\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n }\r\n )\r\n }\r\n\r\n skipHandler() {\r\n this.isJobDescriptionUploaded = false\r\n this.addJobStepper.next()\r\n this.initialDetailsForm()\r\n }\r\n\r\n openUploadFileDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n saveJobDetails() {\r\n this.loading = true\r\n if (this.isJobDescriptionUploaded) {\r\n this.model = Common.activeJob\r\n this.job = Common.activeJob\r\n this.model.JobId = this.job?.JobId\r\n }\r\n this.model.JobHTML = Common.activeJob != null ? Common.activeJob.JobHTML : ''\r\n this.model.JobDetails = Common.activeJob != null ? Common.activeJob.JobDetails : ''\r\n this.model.JobTitleName = this.jobDetailsForm?.value?.JobTitleName\r\n this.model.JobCode =\r\n this.jobDetailsForm?.value?.JobCode == undefined ? null : this.jobDetailsForm?.value?.JobCode\r\n this.model.CompanyName =\r\n this.jobDetailsForm?.value?.CompanyName == undefined ? null : this.jobDetailsForm?.value?.CompanyName\r\n this.model.CompanyContact =\r\n this.jobDetailsForm?.value?.CompanyContact == undefined ? null : this.jobDetailsForm?.value?.CompanyContact // this.ngCompany;\r\n this.model.Description = this.jobDescriptionForm.get('Description').value\r\n this.model.WorkOptionId = Number(\r\n this.jobDetailsForm?.value?.WorkOptionId == '' ? false : this.jobDetailsForm?.value?.WorkOptionId\r\n )\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.LocationID =\r\n this.selectedLocationId == undefined || this.selectedLocationId == null ? 0 : this.selectedLocationId\r\n this.model.CompanyId = this.jobDetailsForm?.value?.CompanyId != null ? this.jobDetailsForm?.value?.CompanyId : 0\r\n this.model.CustomerContactId =\r\n this.jobDetailsForm?.value?.CustomerContactId != null ? this.jobDetailsForm?.value?.CustomerContactId : 0\r\n this.model.MspContactId = this.selectedMspContactId === 0 ? 0 : this.selectedMspContactId\r\n this.model.ContactEmail = this.contactEmail == undefined || this.contactEmail == null ? '' : this.contactEmail\r\n this.model.JobTypeID = Common.activeJob?.JobTypeID\r\n this.model.JobStatusID = Common.activeJob?.JobStatusID\r\n this.model.MspContact =\r\n this.jobDetailsForm?.value?.MspContact != null ? this.jobDetailsForm?.value?.MspContact : ''\r\n\r\n this.model.IndustryID =\r\n this.industries.filter((industry) => industry.Name == this.jobDetailsForm?.value?.IndustryName)[0]\r\n ?.CategoryID >= 0\r\n ? this.industries.filter((industry) => industry.Name == this.jobDetailsForm?.value?.IndustryName)[0]\r\n ?.CategoryID\r\n : null\r\n this.model.SpecializedSkill =\r\n this.jobDetailsForm?.value?.SpecializedSkill == null ? '' : this.jobDetailsForm?.value?.SpecializedSkill\r\n this.model.SpecializedSkillID =\r\n this.jobDetailsForm?.value?.SpecializedSkillID == null ? 0 : this.jobDetailsForm?.value?.SpecializedSkillID\r\n this.model.JobCategoryID = this.selectedCategoryId ? this.selectedCategoryId : 0\r\n this.model.SkillLevelID = this.skillLevels?.filter(\r\n (skillLevel) => skillLevel?.Key == this.jobDetailsForm?.value?.SkillLevel\r\n )[0]?.Value\r\n if (this.model.StartDate == undefined || this.model.StartDate == null) {\r\n this.model.StartDate = null\r\n }\r\n if (this.model.EndDate == undefined || this.model.EndDate.toString() == '') {\r\n this.model.EndDate = null\r\n }\r\n\r\n if (this.model?.ExpiryDate == undefined || this.model?.ExpiryDate.toString() == '') {\r\n this.model.ExpiryDate = null\r\n }\r\n if (this.model?.JobStatusID == undefined || this.model?.JobStatusID.toString() == '') {\r\n this.model.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n }\r\n if (this.model.JobId == undefined || this.model.JobId.toString() == '') {\r\n this.model.JobId = 0\r\n }\r\n this.model.SalaryDisplayTypeID = this.jobDetailsForm?.get('SalaryDisplayTypeID').value\r\n\r\n this.jobService\r\n .AddJobDescription(this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe$))\r\n .subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n this.activeJob = Common.activeJob\r\n Common.activeJob.JobHTML = this.model.JobHTML\r\n this.job = this.model = result\r\n this.jobLocation = this.activeJob.Location\r\n if (this.activeJob.JobId > 0) {\r\n if (this.jobDetailsForm?.value?.WorkOptionId != WorkOption.Remote) this.addLocation()\r\n this.addJobStepper.next()\r\n this.initialDescriptionForm(this.job?.Description)\r\n this.loading = false\r\n this.notifyService.showSuccess('Job details updated successfully.', '') // ToDO make 2000 as variable\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n )\r\n }\r\n\r\n addLocation() {\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n CommonData.activeLocation.ObjectId = this.job.JobId\r\n CommonData.activeLocation.ObjectTypeId = ObjectType.Job\r\n CommonData.activeLocation.LocationID = 0\r\n CommonData.activeLocation.LocationTypeID = LocationType.Secondary\r\n this.companyService.AddLocation(CommonData.activeLocation).subscribe((res) => {\r\n if (res) {\r\n Common.activeJob.Location = res\r\n }\r\n })\r\n }\r\n\r\n saveJobDescription() {\r\n this.activeJob = Common.activeJob\r\n if (Common.activeJob.JobId != null) {\r\n this.activeJob.Description =\r\n this.jobDescriptionForm.get('Description').value == undefined\r\n ? null\r\n : this.jobDescriptionForm.get('Description').value\r\n this.loading = true\r\n this.jobService.AddJobDescription(this.activeJob).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n this.job = { ...result }\r\n if (this.activeJob.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job description successfully saved.', '')\r\n this.addJobStepper.next()\r\n // this.initialOtherForm()\r\n this.setJobsValues()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!', '')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job could not Saved!' + err, '')\r\n }\r\n )\r\n }\r\n }\r\n ParseJobDescriptionText() {\r\n let keyData = Common.JobKeywords\r\n if (keyData != null) {\r\n for (let index = 0; index < keyData.length; index++) {\r\n var element = keyData[index]\r\n if (element.Key == 'JobDescription') {\r\n this.jobDescriptionForm.get('Description').setValue(element.Value)\r\n }\r\n }\r\n }\r\n }\r\n\r\n saveJobOtherDetails() {\r\n this.loading = true\r\n let activeJob: iJob = Common.activeJob\r\n this.model = activeJob\r\n\r\n this.model.JobTypeID = this.jobOtherForm.get('JobTypeID').value\r\n this.model.MaxBillRate =\r\n this.jobOtherForm.get('MaxBillRate').value == '' ? null : Number(this.jobOtherForm.get('MaxBillRate').value)\r\n this.model.MaxSalary =\r\n this.jobOtherForm.get('MaxSalary').value == '' ? null : Number(this.jobOtherForm.get('MaxSalary').value)\r\n this.model.Positions = Number(\r\n this.jobOtherForm.get('Positions').value == '' ? 0 : this.jobOtherForm.get('Positions').value\r\n )\r\n this.model.StartDate =\r\n this.jobOtherForm.get('StartDate').value == '' ? 0 : this.jobOtherForm.get('StartDate').value\r\n this.model.EndDate = this.jobOtherForm.get('EndDate').value == '' ? 0 : this.jobOtherForm.get('EndDate').value\r\n this.model.ExpiryDate =\r\n this.jobOtherForm.get('ExpiryDate').value == '' ? 0 : this.jobOtherForm.get('ExpiryDate').value\r\n this.model.MaxSubmissionCount = Number(\r\n this.jobOtherForm.get('MaxSubmissionCount').value == ''\r\n ? null\r\n : Number(this.jobOtherForm.get('MaxSubmissionCount').value)\r\n )\r\n this.model.PostedFor =\r\n this.jobOtherForm.get('PostedFor').value == '' ? 0 : this.jobOtherForm.get('PostedFor').value\r\n this.model.SecondaryRecruiterId =\r\n this.jobOtherForm.get('SecondaryRecruiterId').value == ''\r\n ? 0\r\n : this.jobOtherForm.get('SecondaryRecruiterId').value\r\n this.model.Notes = this.jobOtherForm.get('Notes').value == '' ? '' : this.jobOtherForm.get('Notes').value\r\n this.model.IsHot = Boolean(this.jobOtherForm.get('IsHot').value)\r\n this.model.WorkHours = Number(\r\n this.jobOtherForm.get('WorkHours').value == '' ? 0 : Number(this.jobOtherForm.get('WorkHours').value)\r\n )\r\n this.model.WorkTypeID = Number(this.jobOtherForm.get('WorkTypeID').value)\r\n this.model.VendorAllowedId = Number(\r\n this.jobOtherForm.get('VendorAllowedId').value == ''\r\n ? false\r\n : this.jobOtherForm.get('VendorAllowedId').value\r\n )\r\n this.model.JobId = activeJob.JobId\r\n this.model.JobStatusID = activeJob.JobStatusID\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.BackgroundCheckId = JSON.stringify(this.selectedBackgroundChecks)\r\n this.model.TravelRequired =\r\n this.jobOtherForm.get('TravelRequired').value != null\r\n ? this.jobOtherForm.get('TravelRequired').value == 'true'\r\n ? true\r\n : false\r\n : null\r\n this.model.TravelPercentage =\r\n this.jobOtherForm.get('TravelRequired').value != null &&\r\n this.jobOtherForm.get('TravelPercentage').value != null\r\n ? this.jobOtherForm.get('TravelPercentage').value\r\n : null\r\n if (this.selectedLegalTypeArray != null) {\r\n this.model.JobLegalTypes = this.selectedLegalTypeArray.data\r\n } else {\r\n let jobLegalTypeData: iJobLegalType[] = []\r\n jobLegalTypeData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalTypeData)\r\n }\r\n if (this.selectedInterviewTypeArray != null) {\r\n this.model.JobInterviewTypes = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n this.jobService.AddJobDescription(this.model).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job other details successfully saved.', '')\r\n this.addJobStepper.next()\r\n this.initialSkillFrom()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n )\r\n }\r\n\r\n saveSkillHandler() {\r\n this.isSkillValid =\r\n this.jobSkillForm.get('Experience').value > 0 && this.jobSkillForm.get('SkillName').value.trim().length > 0\r\n ? true\r\n : false\r\n if (this.isSkillValid) {\r\n if (this.editSkill) {\r\n let skillNamesArrayForEdit = [...this.SkillsArray]\r\n skillNamesArrayForEdit.splice(this.editSkillIndex, 1)\r\n if (\r\n this.getSkillNamesArray(skillNamesArrayForEdit)?.indexOf(\r\n this.jobSkillForm.get('SkillName').value\r\n ) == -1\r\n ) {\r\n this.SkillsArray = [\r\n ...this.SkillsArray.slice(0, this.editSkillIndex),\r\n {\r\n ...this.newSkill,\r\n Experience: this.jobSkillForm.get('Experience').value,\r\n SkillName: this.jobSkillForm.get('SkillName').value,\r\n Required: this.jobSkillForm.get('Required').value,\r\n LastUsed: this.jobSkillForm.get('LastUsed').value,\r\n },\r\n ...this.SkillsArray.slice(this.editSkillIndex + 1),\r\n ]\r\n this.editSkill = false\r\n this.jobSkillForm.reset()\r\n } else {\r\n this.notifyService.showError(\r\n 'This skill already exists in the list. Please select a different skill',\r\n ''\r\n )\r\n }\r\n } else if (this.SkillsArray.length > 0) {\r\n if (!this.SkillsArray.some((item) => item.SkillName === this.jobSkillForm.get('SkillName').value)) {\r\n this.isSkillValid = false\r\n this.newSkill = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.jobSkillForm.get('Experience').value,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.jobSkillForm.get('Required').value,\r\n SkillName: this.jobSkillForm.get('SkillName').value,\r\n LastUsed: this.jobSkillForm.get('LastUsed').value,\r\n }\r\n this.SkillsArray.push(this.newSkill)\r\n this.initialSkillFrom()\r\n } else {\r\n this.notifyService.showError(\r\n 'This skill already exists in the list. Please select a different skill',\r\n ''\r\n )\r\n }\r\n } else {\r\n this.newSkill = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.jobSkillForm.get('Experience').value,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.jobSkillForm.get('Required').value,\r\n SkillName: this.jobSkillForm.get('SkillName').value,\r\n LastUsed: this.jobSkillForm.get('LastUsed').value,\r\n }\r\n this.SkillsArray.push(this.newSkill)\r\n this.jobSkillForm.reset()\r\n }\r\n } else {\r\n if (this.jobSkillForm.get('SkillName').value.trim().length <= 0) {\r\n this.notifyService.showError('Skill Name cannot be empty. Please enter valid skill', '')\r\n return\r\n } else {\r\n this.notifyService.showError('Experience cannot be less than 1. Please enter valid experience', '')\r\n return\r\n }\r\n }\r\n }\r\n\r\n getSkillNamesArray(skillsArray) {\r\n let skillNamesArray = []\r\n skillsArray?.forEach((skill) => {\r\n skillNamesArray.push(skill?.SkillName)\r\n })\r\n return skillNamesArray\r\n }\r\n\r\n saveJobSkill() {\r\n this.job = Common.activeJob\r\n if (this.job?.JobId == null || this.job?.JobId == 0 || this.job?.JobId == undefined) {\r\n this.notifyService.showError('Skills could not save!', '')\r\n return\r\n }\r\n let skillCount = 0\r\n for (let index = 0; index < this.SkillsArray.length; index++) {\r\n if (this.SkillsArray[index].SkillName != '' && this.SkillsArray[index].Experience != 0) {\r\n skillCount++\r\n }\r\n }\r\n if (skillCount < 1) {\r\n this.notifyService.showWarning('Minimum one Required skill should be added', '')\r\n return\r\n }\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue?.JobId }\r\n this.data.JobSkills = this.SkillsArray\r\n this.checkForReqSkill(this.SkillsArray)\r\n if (this.isReqSkillPresent) {\r\n this.loading = true\r\n this.jobService.AddJobSkill(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job skills successfully saved.', '')\r\n this.loading = false\r\n this.addJobStepper.next()\r\n this.initialEducationForm()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skills could not save!', '')\r\n\r\n return\r\n }\r\n )\r\n } else {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n }\r\n }\r\n\r\n editSkillInAddMode(skill, index) {\r\n this.editSkillIndex = index\r\n this.editSkill = true\r\n this.jobSkillForm.patchValue(skill)\r\n }\r\n\r\n checkForReqSkill(skillArr) {\r\n skillArr.forEach((item) => {\r\n if (item.Required) {\r\n this.isReqSkillPresent = true\r\n return\r\n }\r\n })\r\n }\r\n\r\n removeSkill(index) {\r\n if (this.SkillsArray.length > 0) this.SkillsArray.splice(index, 1)\r\n }\r\n\r\n // JOB EDUCATION SECTION\r\n\r\n addRow(id: number) {\r\n if (this.jobQuestionnaireForm.get('Question').value.length === 0) {\r\n this.notifyService.showWarning('Please enter the question', '')\r\n } else {\r\n this.questionTypeToBeAdded = id\r\n if (this.jobQuestionnaireForm.get('Question').value.length > 0) {\r\n if (this.jobQuestionnaireForm.get('Options').value != null) {\r\n if (this.editQuestion) {\r\n this.questionArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n this.questionArray[this.editQuestionIndex].Options =\r\n this.jobQuestionnaireForm.get('Options').value\r\n } else {\r\n this.newQuestion = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: this.jobQuestionnaireForm.get('Options').value,\r\n viewOptions: this.jobQuestionnaireForm.get('Options').value.split(','),\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.questionArray.push(this.newQuestion)\r\n }\r\n } else {\r\n if (this.editQuestion) {\r\n this.questionArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n } else {\r\n this.newQuestion = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: '',\r\n viewOptions: [],\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.questionArray.push(this.newQuestion)\r\n }\r\n }\r\n }\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n return true\r\n }\r\n }\r\n\r\n saveJobEducation() {\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n return\r\n }\r\n\r\n this.getId()\r\n\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n this.data.JobEducations = this.selectedEducations\r\n this.data.JobCertifications = this.selectedCertifications\r\n this.loading = true\r\n this.jobService.AddJobCertAndEdu(this.data).subscribe(\r\n (result) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '')\r\n this.addJobStepper.next()\r\n this.initalQuestionnaireForm()\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n return\r\n }\r\n )\r\n }\r\n\r\n //JOB QUETIONNAIRE SECTION\r\n saveJobQuestionnaire() {\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save!', '')\r\n return\r\n }\r\n\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n\r\n this.data.Questionnaire = this.questionArray\r\n Common.activeJob.Questionnaire = this.questionArray\r\n this.jobService.AddQuestionnaire(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job questionnaire successfully saved.', '')\r\n this.addJobStepper.next()\r\n },\r\n (err: any) => {\r\n this.notifyService.showError('Could not save!' + err, '')\r\n return\r\n }\r\n )\r\n }\r\n removeQuestion(index) {\r\n if (this.questionArray.length > 0) {\r\n this.questionArray.splice(index, 1)\r\n }\r\n }\r\n\r\n editQuestionHandler(index) {\r\n this.isQuestionInputShow = true\r\n this.editQuestion = true\r\n this.editQuestionIndex = index\r\n if (this.questionArray[index].QuestionTypeId === 2) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.questionArray[index].Question)\r\n this.questionType = 'Line Text'\r\n } else if (this.questionArray[index].QuestionTypeId === 4) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.questionArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.questionArray[index].Options)\r\n this.questionType = 'Single Select'\r\n } else {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.questionArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.questionArray[index].Options)\r\n this.questionType = 'Multi Select (Checkboxes)'\r\n }\r\n }\r\n\r\n //JOB PREVIEW SECTION\r\n saveJob(statusId, templateRef: TemplateRef) {\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n if (statusId == Common.enumJobStatuses.JOB_DRAFT) {\r\n this.notifyService.showSuccess('Job successfully saved.', '')\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n Common.activeJob.JobStatus = 'Draft'\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Common.enumJobStatuses.JOB_DRAFT,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '350px',\r\n height: '100%',\r\n width: '100%',\r\n })\r\n this.router.navigate(['/jobs'])\r\n //this.jobAdded.emit(6);\r\n return\r\n } else if (statusId == Common.enumJobStatuses.JOB_OPEN) {\r\n let vresult: any\r\n if (this.job.JobTypeID == JobTypes.Contract && this.CheckValueForZero(this.job.MaxBillRate)) {\r\n this.notifyService.showWarning('Max Bill Rate is Required', '')\r\n } else if (this.job.JobTypeID == JobTypes.Permanent && this.CheckValueForZero(this.job.MaxSalary)) {\r\n this.notifyService.showWarning('Max Salary is Required', '')\r\n } else if (\r\n this.job.JobTypeID == JobTypes.ContractToHire &&\r\n this.CheckValueForZero(this.job.MaxSalary) &&\r\n this.CheckValueForZero(this.job.MaxBillRate)\r\n ) {\r\n this.notifyService.showWarning('Max Bill Rate and Max Salary is Required', '')\r\n }\r\n this.jobService.GetJobValidation(Common.activeJob.JobId).subscribe((result) => {\r\n vresult = result\r\n if (vresult.length > 0) {\r\n let reqColums = vresult\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n 'Can not change to Open, Please fill required fields: ' + reqColums,\r\n ''\r\n )\r\n return\r\n } else {\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_OPEN\r\n Common.activeJob.JobStatus = 'Open'\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Common.enumJobStatuses.JOB_OPEN,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '350px',\r\n height: '100%',\r\n width: '100%',\r\n })\r\n this.router.navigate(['/jobs'])\r\n }\r\n })\r\n }\r\n } else {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n }\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId, statusID, comments, userID).subscribe((result) => {\r\n result\r\n })\r\n }\r\n\r\n CheckValueForZero(val) {\r\n return val == 0\r\n }\r\n\r\n JobsPageBack() {\r\n this.router.navigate(['/jobs'])\r\n }\r\n\r\n setJobsValues() {\r\n if (this.activeJob != null && this.activeJob != undefined) {\r\n if (this.activeJob.JobTypeID > 0) {\r\n this.jobOtherForm.get('JobTypeID').setValue(this.activeJob.JobTypeID)\r\n this.JobTypeChange(this.activeJob.JobTypeID)\r\n this.jobOtherForm.get('MinRate').setValue(this.activeJob.MinBillRate)\r\n this.jobOtherForm.get('MaxBillRate').setValue(this.activeJob.MaxBillRate)\r\n this.jobOtherForm.get('MinSalary').setValue(this.activeJob.MinSalary)\r\n this.jobOtherForm.get('MaxSalary').setValue(this.activeJob.MaxSalary)\r\n this.jobOtherForm.get('Positions').setValue(this.activeJob.Positions)\r\n this.jobOtherForm.get('MaxSubmissionCount').setValue(this.activeJob.MaxSubmissionCount)\r\n this.jobOtherForm.get('StartDate').setValue(this.activeJob.StartDate)\r\n this.jobOtherForm.get('EndDate').setValue(this.activeJob.EndDate)\r\n this.jobOtherForm.get('ExpiryDate').setValue(this.activeJob.ExpiryDate)\r\n this.jobOtherForm.get('PostedFor').setValue(this.activeJob.PostedFor)\r\n\r\n this.jobOtherForm.get('SecondaryRecruiterId').setValue(this.activeJob.SecondaryRecruiterId)\r\n this.jobOtherForm.get('WorkHours').setValue(this.activeJob.WorkHours)\r\n this.jobOtherForm.get('Notes').setValue(this.activeJob.Notes)\r\n this.jobOtherForm.get('VendorAllowedId').setValue(this.activeJob.VendorAllowedId)\r\n this.jobOtherForm.get('IsHot').setValue(this.activeJob.IsHot)\r\n\r\n this.workTypeID = this.activeJob.WorkTypeID\r\n this.jobService.GetJobLegalStatus(this.activeJob.JobId).subscribe((res) => {\r\n var legalType = res as iJobLegalType[]\r\n let jobLegalData: iJobLegalType[] = []\r\n let legalTypesSelected: any[] = []\r\n for (let index = 0; index < legalType.length; index++) {\r\n legalTypesSelected.push(legalType[index]['LegalTypeId'])\r\n jobLegalData.push({\r\n JobLegalTypeId: legalType[index]['JobLegalTypeId'],\r\n JobId: this.activeJob.JobId,\r\n LegalTypeId: legalType[index]['LegalTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n\r\n if (legalTypesSelected.indexOf(8) == -1) {\r\n legalTypesSelected.push(8) // US Citizen should be added to all Job\r\n jobLegalData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.activeJob.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.jobOtherForm.get('LegalTypeNames').setValue(legalTypesSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n })\r\n this.jobService.GetJobInterviewType(this.job.JobId).subscribe((res) => {\r\n var interviewType = res as iJobInterviewType[]\r\n let jobLegalData: iJobInterviewType[] = []\r\n let interviewTypeSelected: any[] = []\r\n for (let index = 0; index < interviewType.length; index++) {\r\n interviewTypeSelected.push(interviewType[index]['InterviewTypeId'])\r\n jobLegalData.push({\r\n JobInterviewTypeId: interviewType[index]['JobInterviewTypeId'],\r\n JobId: interviewType[index]['JobId'],\r\n InterviewTypeId: interviewType[index]['InterviewTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.jobOtherForm.get('InterviewType').setValue(interviewTypeSelected)\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jobLegalData)\r\n })\r\n if (this.job.BackgroundCheckId) {\r\n var backgroundCheckString = this.activeJob.BackgroundCheckId\r\n var backgroundCheckArray = new Array()\r\n backgroundCheckArray = backgroundCheckString.split(',').map(Number)\r\n this.jobOtherForm.get('BackgroundCheck').setValue(backgroundCheckArray)\r\n this.selectedBackgroundChecks = backgroundCheckArray\r\n }\r\n } else {\r\n this.defaultSetting()\r\n if (this.job) {\r\n this.companyJobSetting(this.activeJob?.CompanyId)\r\n }\r\n }\r\n }\r\n }\r\n\r\n defaultSetting() {\r\n this.jobOtherForm.get('Positions').setValue(1)\r\n this.jobOtherForm.get('WorkHours').setValue(40)\r\n this.jobOtherForm.get('JobTypeID').setValue(10)\r\n this.jobOtherForm.get('MinRate').setValue('')\r\n // this.jobOtherForm.get('MaxBillRate').setValue('')\r\n this.jobOtherForm.get('MinSalary').setValue('')\r\n this.jobOtherForm.get('MaxSalary').setValue('')\r\n this.JobTypeChange(10)\r\n\r\n this.workTypeID = 1\r\n\r\n let legalTypesSelected: any[] = []\r\n let jobLegalData: iJobLegalType[] = []\r\n legalTypesSelected.push(8)\r\n jobLegalData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job?.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n this.jobOtherForm.get('LegalTypeNames').setValue(legalTypesSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n }\r\n\r\n companyJobSetting(companyId) {\r\n if (Common.ConfigValues != null) {\r\n var backgroundChecks = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.BackgroundChecks && //backgroundChecks\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n let backgroundChecksIds: number[] = []\r\n backgroundChecksIds = backgroundChecks.split(',').map((item) => Number(item))\r\n this.jobOtherForm.get('BackgroundCheck').setValue(backgroundChecksIds)\r\n this.selectedBackgroundChecks = [...backgroundChecksIds]\r\n\r\n var workAuth = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == ObjectType.Company &&\r\n option.ConfigTypeID == ConfigTypeId.Job_Setting_Type_ID && //JobSettingTypeID\r\n option.LookupID == LookUpTypesIds.Work_Authorization && //work authorization\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n\r\n let waIds: any[] = []\r\n waIds = workAuth.split(',').map((item) => Number(item))\r\n\r\n let jobLegalData: iJobLegalType[] = []\r\n let legalTypesSelected: any[] = []\r\n for (let index = 0; index < waIds.length; index++) {\r\n legalTypesSelected.push(waIds[index])\r\n jobLegalData.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: waIds[index],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n legalTypesSelected.push(8)\r\n this.jobOtherForm.get('LegalTypeNames').setValue(legalTypesSelected)\r\n this.selectedLegalTypes = [...legalTypesSelected]\r\n this.selectedLegalTypeArray = new MatTableDataSource(jobLegalData)\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobSetting) => {\r\n if (jobSetting) {\r\n var maxSubmit\r\n var vendorAllowed = false\r\n var jc = jobSetting\r\n .filter((option) => option.CategoryID == this.activeJob.JobCategoryID)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.indexOf(this.activeJob.JobCategoryID) > -1) {\r\n maxSubmit = jobSetting\r\n .filter((option) => option.CategoryID == this.activeJob.JobCategoryID)\r\n .map((x) => x.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option.CategoryID == this.activeJob.JobCategoryID)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n } else {\r\n maxSubmit = jobSetting\r\n .filter((option) => option.CategoryID == CategoryValues.CategoryTypeID_ALL)\r\n .map((x) => x.MaxSubmit)\r\n vendorAllowed = jobSetting\r\n .filter((option) => option?.CategoryID == CategoryValues.CategoryTypeID_ALL)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n }\r\n\r\n if (maxSubmit) {\r\n if (this.jobOtherForm.get('MaxSubmissionCount')?.value == '') {\r\n this.jobOtherForm.get('MaxSubmissionCount').setValue(maxSubmit)\r\n }\r\n }\r\n if (vendorAllowed) {\r\n this.jobOtherForm.get('VendorAllowedId').setValue(vendorAllowed)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n onInputChange(event: any): void {\r\n let value = event.target.value\r\n const numericValue = Number(value)\r\n if (numericValue < 0 || numericValue > 100 || isNaN(numericValue)) {\r\n event.target.value = ''\r\n }\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n Add Job\r\n \r\n \r\n \r\n {{ index + 1 }} \r\n {{ index + 1 }} \r\n\r\n \r\n \r\n Upload\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Details\r\n \r\n \r\n \r\n\r\n \r\n \r\n Description\r\n \r\n \r\n \r\n\r\n \r\n \r\n Other
Details
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Skills\r\n \r\n \r\n \r\n\r\n \r\n \r\n Certifications/
Education
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Questionnaire\r\n \r\n \r\n \r\n\r\n \r\n \r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Back\r\n \r\n \r\n Skip\r\n \r\n \r\n Save\r\n \r\n \r\n Open\r\n \r\n 0)\r\n \"\r\n (click)=\"nextStepHandler()\"\r\n mat-raised-button\r\n class=\"small-primary-button\"\r\n matTooltip=\"Save & Next\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n >\r\n Save & Next\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Job Details\r\n close\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n General\r\n \r\n \r\n
\r\n
\r\n
\r\n

Cut and Paste Job Details

\r\n
\r\n \r\n \r\n
\r\n

\r\n Characters Remaining: {{ inputTextLength <= maxChars ? 25000 - inputTextLength : 0 }}/{{\r\n maxChars\r\n }}\r\n

\r\n

maxChars\">\r\n Characters limit crossed\r\n

\r\n
\r\n
\r\n
\r\n OR\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Upload Job Details

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Description \r\n \r\n close\r\n \r\n
\r\n
\r\n Job Description *\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n Description is Required\r\n \r\n\r\n \r\n Only 25000 characters allowed\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Details \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
Generals
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title * \r\n \r\n \r\n Title is required\r\n \r\n \r\n {{ title.JobTitleName }}\r\n \r\n \r\n \r\n
\r\n
\r\n Customer Job Code\r\n \r\n \r\n \r\n
\r\n
\r\n Client *\r\n \r\n \r\n Client is required\r\n \r\n \r\n {{ company.Name }}\r\n \r\n \r\n \r\n You should enter value from suggested ones only.\r\n \r\n \r\n
\r\n
\r\n Hiring Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n Industry\r\n \r\n \r\n \r\n {{ industry.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Salary external portal \r\n \r\n info\r\n \r\n \r\n \r\n \r\n {{ salary.Key }}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Open salary/Bill rate - Displays the salary/payrate range\r\n
\r\n
\r\n Confidential- The salary is open for negotiation\r\n
\r\n
\r\n
\r\n\r\n
\r\n Program/MSP Manager\r\n \r\n \r\n \r\n \r\n {{ contact.FirstName }} {{ contact.LastName }} | {{ contact.EmailAddress }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Work Location\r\n \r\n
\r\n
\r\n
\r\n Category *\r\n \r\n \r\n \r\n {{ category.Name }}\r\n \r\n \r\n Category is required \r\n \r\n
\r\n
\r\n Specialized Skill\r\n \r\n \r\n \r\n {{ skill.SkillName }}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Minimum Experience *\r\n \r\n \r\n \r\n
\r\n
\r\n Maximum Experience\r\n \r\n \r\n \r\n
\r\n
\r\n Work Options\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Update\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Other Details \r\n \r\n
\r\n
\r\n Generals\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Job Type *\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Job type is Required\r\n \r\n \r\n
\r\n
\r\n Max. Bill Rate/Hr \r\n \r\n \r\n \r\n
\r\n
\r\n Max. Salary/Annum \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Start Date *\r\n \r\n \r\n Start date is required \r\n \r\n \r\n Start date cannot be less than current date\r\n \r\n
\r\n
\r\n End Date*\r\n \r\n \r\n End date is required \r\n \r\n \r\n The end date cannot be before the start date\r\n \r\n
\r\n
\r\n Submission Due Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No. of Positions\r\n \r\n \r\n \r\n
\r\n
\r\n Max Submission\r\n \r\n \r\n Max. Submit Should be greater or equal to {{ activeJob?.Submitted }}.\r\n \r\n
\r\n
\r\n
\r\n Work type & other details\r\n \r\n
\r\n\r\n
\r\n
\r\n Work Type*\r\n \r\n Full Time\r\n    \r\n Part Time\r\n \r\n Work type is required\r\n \r\n \r\n
\r\n
\r\n No. of Hours/week\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n Primary Recruiter*\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n Recruiter is required \r\n \r\n
\r\n
\r\n Secondary Recruiter\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Permit\r\n \r\n \r\n \r\n {{ legaltype.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Interview Type\r\n \r\n \r\n \r\n {{ interviewtype?.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Background Checks\r\n \r\n \r\n \r\n {{ bgc.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Travel Required\r\n \r\n \r\n Yes\r\n No\r\n \r\n \r\n
\r\n
\r\n Job Related Travel %\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Vendor Allowed \r\n \r\n \r\n
\r\n
\r\n Hot Job \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Update\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Edit Education & Certifications \r\n \r\n
\r\n
\r\n
\r\n
Choose Degree
\r\n \r\n \r\n \r\n {{ dg.Key }}\r\n \r\n \r\n \r\n\r\n
Add Certifications
\r\n \r\n \r\n \r\n {{ cert.CertificationName }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Update\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n {{ method }} Questionnaire \r\n \r\n
\r\n
\r\n Add Questionnaire\r\n \r\n
\r\n
\r\n
\r\n Choose type of Question:\r\n
\r\n \r\n \r\n \"\"\r\n \"\"\r\n {{ ques.questionTypename }}\r\n \r\n \r\n
\r\n
\r\n
\r\n Enter question\r\n \r\n \r\n \r\n \r\n Enter Options separate by ,\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n Cancel\r\n \r\n \r\n add {{ editQuestion ? 'Update' : 'Add' }}\r\n \r\n
\r\n\r\n
    0 && isStepperVissible\" class=\"question-list\">\r\n
  1. \r\n {{ i + 1 }}\r\n
    \r\n
    \r\n
    \r\n {{ question.Question }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {{ option }}\r\n
    \r\n
    \r\n \r\n {{ option }}\r\n
    \r\n
    \r\n \r\n
    \r\n Line Text\r\n Single Select\r\n Multi Select (Checkboxes)\r\n \r\n Delete\r\n \r\n
    \r\n
    \r\n
  2. \r\n
\r\n \r\n \r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n {{ method }} Skill \r\n \r\n
\r\n
\r\n
\r\n Professional Skills\r\n
\r\n \r\n Required:\r\n
\r\n
\r\n \r\n Preferred:\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{ dynamic.SkillName }} ({{ dynamic.Experience }} Yrs)\r\n \r\n edit\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Skill Name*\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n Please enter valid skill name\r\n \r\n
\r\n
\r\n Experience*\r\n \r\n \r\n Please enter valid experience\r\n \r\n
\r\n \r\n
\r\n
\r\n Required\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ submitButtonText }}\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n close\r\n
\r\n
\r\n \"\"\r\n Created Job Successfully!\r\n Job ID: {{ activeJob?.JobId }}\r\n You can view job from landing page and edit.\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, OnInit, Output, TemplateRef } from '@angular/core';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { iJob, iJobEducation, iJobCertification, DegreeType } from 'src/app/models/job.model';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { Common } from 'src/app/common/common';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType';\r\n\r\n@Component({\r\n selector: 'job-education',\r\n templateUrl: './job-education.component.html',\r\n styleUrls: ['./job-education.component.scss']\r\n})\r\nexport class JobEducationComponent implements OnInit {\r\n public loading = false;\r\n fgEducation: FormGroup;\r\n job: iJob = {};\r\n data: iJob;\r\n selectedCertificateForDelete: any;\r\n\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public authService: AuthenticationService,\r\n private dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService, private notifyService: NotificationService) { }\r\n visible = true;\r\n selectable = true;\r\n removable = true;\r\n degreeType: DegreeType[];\r\n degreeTypeCrtl: FormControl;\r\n addCertificationOnBlur: boolean = true;\r\n selectedCertifications: Array = [];;\r\n selectedEducations: Array = [];\r\n selectedDegree: string;\r\n keyData: any;\r\n isJobEdited: boolean = false;\r\n\r\n\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n ngOnInit(): void {\r\n this.fgEducation = this.formBuilder.group({\r\n Certification: [''],\r\n Education: [''],\r\n });\r\n\r\n if (Common.lookUp != undefined && Common.lookUp != null) {\r\n this.degreeType = Common.lookUp.filter(\r\n item => (item.TypeCode == 'DegreeTypeID')).map(\r\n o => ({ Key: o.ValueName, Value: o.LookupID }));\r\n }\r\n\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob;\r\n if (this.job.JobId > 0) {\r\n this.bindEducation(this.job.JobId);\r\n this.bindCertification(this.job.JobId);\r\n }\r\n }\r\n }\r\n\r\n addCertification(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n if ((value || '').trim()) {\r\n this.selectedCertifications.push({ JobCertificationID: null, JobID: 0, CertificationID: 0, CertificationName: value.trim(), CreatedBy: this.authService.userInfo.userID });\r\n }\r\n if (input) {\r\n input.value = '';\r\n }\r\n }\r\n\r\n removeCertification(keyword: any): void {\r\n this.isJobEdited = true;\r\n let index = this.selectedCertifications.indexOf(keyword);\r\n\r\n if (index >= 0) {\r\n this.selectedCertifications.splice(index, 1);\r\n }\r\n this.dialog.closeAll();\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: \"400px\",\r\n disableClose: true,\r\n autoFocus: false\r\n });\r\n this.selectedCertificateForDelete = i;\r\n }\r\n\r\n saveJobEducation() {\r\n this.isJobEdited = true;\r\n\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n\r\n this.notifyService.showError('Could not save the Job!', '');\r\n\r\n return;\r\n }\r\n\r\n let certifications: string;\r\n let education: string;\r\n certifications = this.selectedCertifications.join(\",\");\r\n education = this.fgEducation.get('Education').value;\r\n this.selectedEducations.length = 0;\r\n this.selectedEducations.push({ JobEductionID: null, JobID: 0, EducationID: 0, EducationName: education, CreatedBy: this.authService.userInfo.userID });\r\n\r\n let dynamicValue: iJob = Common.activeJob;\r\n this.data = { JobId: dynamicValue.JobId };\r\n this.data.JobEducations = this.selectedEducations;\r\n this.data.JobCertifications = this.selectedCertifications;\r\n this.loading = true;\r\n this.jobService.AddJobCertAndEdu(this.data).subscribe\r\n (result => {\r\n this.loading = false;\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '');\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(5);\r\n },\r\n (err: any) => {\r\n this.loading = false;\r\n this.notifyService.showError(' Could not save the Job!', '');\r\n\r\n return;\r\n },\r\n\r\n );\r\n\r\n }\r\n bindEducation(jobid) {\r\n\r\n this.jobService.GetJobEducation(jobid).subscribe((res) => {\r\n this.selectedEducations = res as iJobEducation[];\r\n\r\n let educationDegreee;\r\n this.keyData = Common.JobKeywords;\r\n if (this.keyData != null) {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index];\r\n\r\n if (element.Key == \"Education\") {\r\n educationDegreee = element.Value;\r\n\r\n }\r\n }\r\n }\r\n\r\n let ltSelected: any[] = [];\r\n\r\n if (this.degreeType != null) {\r\n for (let i = 0; i < this.degreeType.length; i++) {\r\n if (this.selectedEducations.length == 0) {\r\n if (this.degreeType[i].Key == educationDegreee) {\r\n ltSelected.push(this.degreeType[i].Key)\r\n }\r\n }\r\n else {\r\n for (let j = 0; j < this.selectedEducations.length; j++) {\r\n if (this.degreeType[i].Key == this.selectedEducations[j].EducationName) {\r\n ltSelected.push(this.degreeType[i].Key)\r\n }\r\n }\r\n }\r\n }\r\n this.selectedDegree = ltSelected.join();\r\n }\r\n });\r\n }\r\n\r\n bindCertification(jobid) {\r\n this.jobService.GetJobCertification(jobid).subscribe((res) => {\r\n this.selectedCertifications = res as iJobCertification[]\r\n });\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n this.isJobEdited = true\r\n moveItemInArray(this.selectedCertifications, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n goToPrevious(){\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n}\r\n"," \r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n Add Education & certifications\r\n \r\n \r\n\r\n
\r\n
Choose Degree
\r\n \r\n \r\n \r\n {{ dg.Key }}\r\n \r\n \r\n \r\n\r\n
Add Certifications
\r\n \r\n \r\n \r\n {{ cert.CertificationName }}\r\n clear\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this certificate?\r\n
\r\n
\r\n \r\n Delete\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, ViewEncapsulation, TemplateRef, OnDestroy } from '@angular/core'\r\nimport '@angular/compiler'\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms'\r\nimport { Common } from 'src/app/common/common'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { FilesTypes, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs'\r\n\r\n@Component({\r\n selector: 'leap-job-file-upload',\r\n templateUrl: './job-file-upload.component.html',\r\n styleUrls: ['./job-file-upload.component.scss'],\r\n})\r\nexport class JobFileUploadComponent implements OnInit, OnDestroy {\r\n maxFileSize = Common.maxJDFileSize\r\n maxChars = Common.maxJDCharacters\r\n chars = 0\r\n public loading = false\r\n model: iJob = {}\r\n fileContent: string = ''\r\n isFileUploaded: boolean = false\r\n file: any = null\r\n jobHTML: string = ''\r\n jobtxt: string = ''\r\n text = ``\r\n inputTextLength = 0\r\n isMaxCharValidationShown = false\r\n uploadBoxCont = document.getElementById('uploadBox')\r\n jdUploadInput = document.getElementById('jdUploadInput')\r\n form = new FormControl(this.text)\r\n @Output() formHandler: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() skip: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n quillEditable: boolean = false\r\n destroy$: Subject = new Subject()\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService,\r\n private _route: Router,\r\n public authService: AuthenticationService\r\n ) {}\r\n validateFile(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (ext.toLowerCase() == 'doc' || ext.toLowerCase() == 'docx' || ext.toLowerCase() == 'pdf') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jobForm.get('jobDetails').valueChanges.subscribe((data) => {\r\n this.jobHTML = data == null ? '' : data\r\n this.jobtxt = this.htmlToPlaintext(data)\r\n })\r\n if (Common.activeJob) {\r\n this.jobForm.get('jobDetails').setValue(Common.activeJob?.JobDetails)\r\n this.inputTextLength = Common.activeJob?.JobDetails?.length\r\n }\r\n }\r\n htmlToPlaintext(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : ''\r\n }\r\n\r\n jobForm = this.formBuilder.group({\r\n jobDetails: ['', Validators.required],\r\n fileUploader: ['', Validators.compose([Validators.maxLength(512), Validators.minLength(2)])],\r\n })\r\n\r\n onPaste(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n var dlen = Number(clipboardData.getData('text').length)\r\n if (dlen == 0) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n let content = clipboardData.getData('text').slice(0, this.maxChars)\r\n this.model = this.jobForm.value\r\n this.model.JobDetails = content\r\n this.model.JobHTML = content\r\n }\r\n\r\n public onChange(fileList: any): void {\r\n this.jobForm.get('jobDetails').setValue('')\r\n this.file = fileList[0]\r\n if (this.file.size > 6000000) {\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', '')\r\n this.file = null\r\n return\r\n }\r\n if (!this.validateFile(fileList[0].name)) {\r\n this.notifyService.showError('Selected file format is not supported!', '')\r\n this.file = null\r\n return\r\n }\r\n }\r\n\r\n uploadJob() {\r\n // this.dialog.closeAll()\r\n this.loading = true\r\n let fileReader: FileReader = new FileReader()\r\n let self = this\r\n fileReader.onloadend = function (x) {\r\n self.fileContent = fileReader.result.toString()\r\n }\r\n fileReader.readAsText(this.file)\r\n const formData = new FormData()\r\n formData.append('JobFile', this.file)\r\n formData.append('UserId', this.authService.userInfo.userID)\r\n\r\n this.jobService\r\n .SaveJobData(formData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (event) => {\r\n if (event) {\r\n var js = {}\r\n js = event\r\n self.jobForm.get('jobDetails').setValue(this.jobtxt)\r\n this.jobtxt = js['jobtxt']\r\n this.jobHTML = js['jobHTML']\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n self.model.JobDetails = self.jobForm.get('jobDetails').value\r\n // if (this.model.JobHTML !== undefined && this.model.JobHTML !== null) {\r\n // if (this.model.JobHTML.length > 0) Common.activeJob = this.model\r\n // this.notifyService.showSuccess('Successfully uploaded!', '')\r\n this.quillEditable = true\r\n this.loading = false\r\n this.file = null\r\n this.isFileUploaded = true\r\n this.jobService.setIsJobUploaded(this.isFileUploaded)\r\n this.jobService.setAddJobDetails(event)\r\n this.onSubmit()\r\n this._route.navigate(['/jobs/addJob'])\r\n this.dialog.closeAll()\r\n return\r\n // } else {\r\n // this.notifyService.showWarning('Could not parse the file!', '')\r\n // this.loading = false\r\n // }\r\n\r\n this.loading = false\r\n return\r\n } else {\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.loading = false\r\n this.dialog.closeAll()\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.dialog.closeAll()\r\n }\r\n )\r\n }\r\n\r\n dialogCancelHandler() {\r\n this.dialog.closeAll()\r\n this.file = null\r\n }\r\n\r\n onKeyUpEvent(event: any) {\r\n const inputType = event.inputType\r\n if (inputType === 'insertFromDrop' || inputType === 'insertFromPaste') {\r\n if (event.target.children.length) {\r\n const hadImage = this.isInputImage(event.target.children)\r\n if (hadImage) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n }\r\n }\r\n\r\n let inputValue = this.htmlToPlaintext(event.target.innerHTML)\r\n this.inputTextLength = inputValue.length\r\n if (this.inputTextLength > this.maxChars && !this.isMaxCharValidationShown) {\r\n this.isMaxCharValidationShown = true\r\n this.notifyService.showWarning('You have reached your maximum limit of characters allowed', '')\r\n }\r\n if (this.inputTextLength <= this.maxChars) {\r\n this.isMaxCharValidationShown = false\r\n }\r\n let content = inputValue.slice(0, this.maxChars)\r\n this.jobtxt = content\r\n this.jobHTML = content == null ? '' : content\r\n }\r\n\r\n onSubmit() {\r\n if (this.jobHTML?.length == 0) {\r\n this.jobHTML = this.jobtxt\r\n }\r\n if (this.jobtxt?.length > 0) {\r\n if (this.inputTextLength > this.maxChars) {\r\n this.notifyService.showError('Please reduce the JD character count to upto 25000 characters', '')\r\n } else {\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n Common.activeJob = this.model\r\n this.ParseAndNext(this.model)\r\n }\r\n } else {\r\n this.formHandler.emit(0)\r\n this.jobAdded.emit(0)\r\n }\r\n }\r\n\r\n ParseAndNext(obj) {\r\n this.loading = true\r\n this.jobService.GetParseJobKeyword(obj).subscribe(\r\n (SearchResult) => {\r\n Common.JobKeywords = SearchResult\r\n this.loading = false\r\n this.formHandler.emit(0)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(0)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!' + err, '')\r\n }\r\n )\r\n }\r\n\r\n fileInfo: string\r\n onFileSelect(input: HTMLInputElement): void {\r\n function formatBytes(bytes: number): string {\r\n const UNITS = ['Bytes', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\r\n const factor = 1024\r\n let index = 0\r\n\r\n while (bytes >= factor) {\r\n bytes /= factor\r\n index++\r\n }\r\n return `${parseFloat(bytes.toFixed(2))} ${UNITS[index]}`\r\n }\r\n const file = input.files[0]\r\n this.fileInfo = `${file.name} (${formatBytes(file.size)})`\r\n }\r\n\r\n openUploadFileDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n skipButtonHandler() {\r\n this.skip.emit(true)\r\n this._route.navigate(['/jobs/addJob'], { state: { skip: true } })\r\n this.close()\r\n }\r\n\r\n isInputImage(children) {\r\n let hadImage = false\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i]\r\n if (child.tagName === FilesTypes.IMG.toUpperCase()) {\r\n hadImage = true\r\n continue\r\n }\r\n if (child.children.length) {\r\n hadImage = this.isInputImage(child.children)\r\n if (hadImage) {\r\n break\r\n }\r\n }\r\n }\r\n return hadImage\r\n }\r\n close() {\r\n this.dialog.closeAll()\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(false)\r\n this.destroy$.complete()\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n Upload Job Description\r\n close\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n 0 || isFileUploaded\"\r\n class=\"small-primary-button\"\r\n mat-raised-button\r\n (click)=\"onSubmit()\"\r\n >\r\n Save & Next\r\n \r\n \r\n Skip\r\n \r\n
","import { Component, OnInit,Input,SimpleChanges } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\nimport { Common } from '../../common/common';\r\n@Component({\r\n selector: 'job-fileview',\r\n templateUrl: './job-fileview.component.html',\r\n styleUrls: ['./job-fileview.component.scss']\r\n})\r\nexport class JobFileviewComponent implements OnInit {\r\n safeHtmlContent: SafeHtml;\r\n activeJob = Common.activeJob;\r\n constructor( private sanitized: DomSanitizer) { }\r\n @Input() jobHTML;\r\n ngOnInit(): void {\r\n if (Common.activeJob!=null){\r\n this.activeJob = Common.activeJob;\r\n var htmlString = (this.activeJob.JobHTML?this.activeJob.JobHTML: this.activeJob.JobDetails?this.activeJob.JobDetails:' '); \r\n \r\n this.safeHtmlContent =this.sanitized.bypassSecurityTrustHtml(htmlString.toString()) ;\r\n // this.safeHtmlContent =(htmlString) ;\r\n console.log(\"SAFEHTML\", this.safeHtmlContent);\r\n \r\n \r\n \r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.safeHtmlContent= this.sanitized.bypassSecurityTrustHtml(changes.jobHTML.currentValue==null?'':changes.jobHTML.currentValue);\r\n \r\n }\r\n\r\n}\r\n"," \r\n\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { Common } from 'src/app/common/common';\r\nimport { iConsultant, iConsultantJob,iConsultantJobInterview } from 'src/app/models/consultant.model';\r\nimport { iInterviewSchedule, iInterview, iInterviewTimeSlot,InterviewType} from 'src/app/models/interview.model';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service';\r\nimport { iDbResult } from 'src/app/models/common.model';\r\nimport { iJob } from 'src/app/models/job.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport icClose from '@iconify/icons-ic/twotone-close';\r\nimport { ActivatedRoute } from '@angular/router';\r\n@Component({\r\n selector: 'job-interview-schedule',\r\n templateUrl: './job-interview-schedule.component.html',\r\n styleUrls: ['./job-interview-schedule.component.scss']\r\n})\r\nexport class JobInterviewScheduleComponent implements OnInit {\r\n\r\n public iConsultantJobInterview: iConsultantJobInterview[];\r\n interviewtypes: InterviewType[];\r\n\tfrmInterview: FormGroup;\r\n safeHtml:any;\r\n interviewSchedule: iInterviewSchedule={};;\r\n interview: iInterview ={};\r\n AvaillTZ1 = 'EST';\r\n AvaillTZ2 = 'EST';\r\n AvaillTZ3 = 'EST';\r\n public isScheduled: boolean = false;\r\n public isValidRequest:boolean = true;;\r\n job:iJob;\r\n consultant:iConsultant;\r\n consultantjob:iConsultantJob;\r\n availableTimeSlots: Array = [];\r\n icClose = icClose;\r\n interviewId:number;\r\n consultantJobId:number;\r\n consultantId:number;\r\n jobId:number;\r\n userId:number;\r\n roleId:Number;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private JobService:JobService,\r\n private consultantService: ConsultantService,\r\n private commonService: CommonService, \r\n private notifyService: NotificationService,\r\n public authService: AuthenticationService,\r\n private router: ActivatedRoute,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.interviewId= Number(this.router.snapshot.queryParamMap.get('intid'));\r\n this.consultantJobId= Number(this.router.snapshot.queryParamMap.get('cjid'));\r\n this.consultantId=Number( this.router.snapshot.queryParamMap.get('cid'));\r\n this.jobId= Number(this.router.snapshot.queryParamMap.get('jid'));\r\n this.userId = this.authService?.userInfo?.userID == null? 1: this.authService?.userInfo?.userID;\r\n this.roleId = this.authService?.userInfo?.roles[0]?.roleID== null? 1: this.authService.userInfo.roles[0].roleID;\r\n\r\n if (this.jobId>0 ){\r\n this.JobService.getJob(this.jobId).subscribe((jobResult) => {\r\n Common.activeJob = this.job = jobResult;\r\n this.BindJobConsultantsInterviews( this.jobId,this.userId );\r\n })\r\n }\r\n if (this.consultantId>0 ){\r\n this.consultantService.getConsultant(this.consultantId).subscribe((candidateResult) => {\r\n Common.activeConsultant = this.consultant = candidateResult as any\r\n })\r\n }\r\n if (this.consultantJobId>0 ){\r\n this.GetConsultantJob(this.consultantJobId, this.userId);\r\n }\r\n this.consultantService.getLookup(\"InterviewTypeId\").subscribe((res) => {\r\n var x = res as InterviewType[];\r\n this.interviewtypes = res as InterviewType[];\r\n \r\n }\r\n );\r\n\r\n \tthis.frmInterview = this.formBuilder.group({\r\n\t\t\tInterviewerName: [null],\r\n\t\t\tInterviewerContactNo: [null,],\r\n\t\t\tInterviewTypeId: [null, Validators.required],\r\n\t\t\tCompanyContact: [null],\r\n\t\t\tInterviewerDuration: [null],\r\n\t\t\tInterviewerLocation: [null],\r\n\t\t\tAvaillDate1: [null, Validators.required],\r\n\t\t\tAvaillTime1: [null, Validators.required],\r\n AvaillDate2: [null],\r\n\t\t\tAvaillTime2: [null],\r\n AvaillDate3: [null],\r\n\t\t\tAvaillTime3: [null],\r\n InterviewDetails: [null],\r\n Comments: [null],\r\n\r\n\t\t});\r\n }\r\n GetConsultantJob(consultantjobid, userid) {\r\n this.consultantService.GetConsultantJob(consultantjobid,userid).subscribe((consultantjobResult) => {\r\n this.consultantjob = consultantjobResult as iConsultantJob\r\n if (this.consultantjob.ConsultantJobStatusID !=19 ){\r\n this.isValidRequest = false;\r\n }\r\n else{\r\n this.isValidRequest = true;\r\n }\r\n \r\n });\r\n\r\n }\r\n BindJobConsultantsInterviews(jobid,userid) {\r\n\r\n this.JobService.GetJobInterviews(jobid,userid\r\n ).subscribe((jclst) => {\r\n\r\n this.iConsultantJobInterview = jclst as iConsultantJobInterview[]\r\n \r\n console.log(\"Get Job Consultants:\",jclst \r\n );\r\n },\r\n (err: any) => {\r\n console.log(\"Error while getiing Job Consultants\", err);\r\n },\r\n () => console.log(\"Get Job Consultants Successfull\")\r\n );\r\n }\r\n showLoc(ob) {\r\n console.log(ob);\r\n\t\t// if(ob.value == 'Face'){\r\n\t\t// \tthis.showLocation = true;\r\n // this.showVideo = false;\r\n\t\t// this.showOnline = false;\r\n\t\t// }\r\n\t\t// else if(ob.value == 'Online'){\r\n // this.showLocation = false;\r\n // this.showVideo = false;\r\n\t\t// this.showOnline = true;\r\n\t\t// }\r\n // else{\r\n // this.showLocation = false;\r\n // this.showVideo = true;\r\n\t\t// this.showOnline = false;\r\n // }\r\n }\r\n clearData(){\r\n this.frmInterview.get('InterviewTypeId').setValue('');\r\n this.frmInterview.get('InterviewerName').setValue('');\r\n this.frmInterview.get('InterviewerDuration').setValue('');\r\n this.frmInterview.get('InterviewerLocation').setValue('');\r\n this.frmInterview.get('AvaillDate1').setValue('');\r\n this.frmInterview.get('AvaillDate2').setValue('');\r\n this.frmInterview.get('AvaillDate3').setValue('');\r\n this.frmInterview.get('AvaillTime1').setValue('');\r\n this.frmInterview.get('AvaillTime2').setValue('');\r\n this.frmInterview.get('AvaillTime3').setValue('');\r\n \r\n }\r\n CombineDateAndTime(idate, time) {\r\n var combined\r\n try{\r\n var timeTokens = time.split(':');\r\n var hr = timeTokens[0];\r\n var min = timeTokens[1];\r\n var ampm = Number(hr) >= 12 ? 'PM' : 'AM';\r\n var timeString = hr + ':' + min + ':00' + ' '+ ampm// timeTokens[0]; // time.getHours() + ':' + time.getMinutes() + ':00';\r\n \r\n var year = new Date(idate).getFullYear();\r\n var month = new Date(idate).getMonth()+1 ; // Jan is 0, dec is 11\r\n var day = new Date(idate).getDate();\r\n var dateString = month + '/' + day+'/'+ year;\r\n var datec = dateString + ',' + timeString;\r\n combined = new Date(datec);\r\n return combined;\r\n }\r\n catch{\r\n return null;\r\n }\r\n \r\n\r\n \r\n};\r\n saveInterview(){\r\n this.interview.ConsultantJobID = this.consultantJobId;\r\n this.interview.InterviewerName = this.frmInterview.get('InterviewerName').value == undefined ? null : this.frmInterview.get('InterviewerName').value;\r\n this.interview.InterviewTypeID = this.frmInterview.get('InterviewTypeId').value == undefined ? null : this.frmInterview.get('InterviewTypeId').value;\r\n this.interview.Duration = this.frmInterview.get('InterviewerDuration').value == undefined ? null : this.frmInterview.get('InterviewerDuration').value;\r\n this.interview.Location = this.frmInterview.get('InterviewerLocation').value == undefined ? null : this.frmInterview.get('InterviewerLocation').value;\r\n this.interview.InterviewDetails = this.frmInterview.get('InterviewDetails').value == undefined ? null : this.frmInterview.get('InterviewDetails').value;\r\n this.interview.Comments = this.frmInterview.get('Comments').value == undefined ? null : this.frmInterview.get('Comments').value;\r\n this.interview.CreatedDate = new Date();\r\n this.interview.CreatedBy = this.userId;\r\n this.interview.IsActive = true;\r\n\r\n let timeSlot1 = this.CombineDateAndTime(this.frmInterview.get('AvaillDate1').value,this.frmInterview.get('AvaillTime1').value+\":00\" );\r\n let timeSlot2 = this.CombineDateAndTime(this.frmInterview.get('AvaillDate2').value,this.frmInterview.get('AvaillTime2').value+\":00\" );\r\n let timeSlot3 = this.CombineDateAndTime(this.frmInterview.get('AvaillDate3').value,this.frmInterview.get('AvaillTime3').value+\":00\" );\r\n\r\n\r\n\r\n if ((timeSlot1!=null)) {\r\n this.availableTimeSlots.push({ InterviewTimeSlotID:0,\r\n InterviewID: 0,\r\n InterviewDate: timeSlot1,\r\n InterviewTimeZone: this.AvaillTZ1,\r\n CreatedDate:new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true});\r\n }\r\n if ((timeSlot2!=null)) {\r\n this.availableTimeSlots.push({ InterviewTimeSlotID:0,\r\n InterviewID: 0,\r\n InterviewDate: timeSlot2,\r\n InterviewTimeZone: this.AvaillTZ2,\r\n CreatedDate:new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true});\r\n }\r\n if ((timeSlot3 !=null)) {\r\n this.availableTimeSlots.push({ InterviewTimeSlotID:0,\r\n InterviewID: 0,\r\n InterviewDate: timeSlot3,\r\n InterviewTimeZone: this.AvaillTZ3,\r\n CreatedDate:new Date(),\r\n CreatedBy: this.userId,\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true});\r\n }\r\n this.interviewSchedule.Interview = this.interview;\r\n this.interviewSchedule.InterviewSlots = this.availableTimeSlots;\r\n \r\n this.consultantService.AddInterview(this.interviewSchedule).subscribe((cjResult) => {\r\n if (cjResult) {\r\n this.updateProcessWorkFlow();\r\n this.BindJobConsultantsInterviews( this.jobId,this.userId );\r\n this.isScheduled = true;\r\n this.notifyService.showSuccess('Consultant Job Interview successfully Scheduled! ' , 'Consultant Job');\r\n }\r\n }\r\n );\r\n }\r\n updateProcessWorkFlow() {\r\n \r\n var dbresult: iDbResult[];\r\n var nextStatusID;\r\n let comment = this.frmInterview.get('Comments').value == undefined ? \"None\" : this.frmInterview.get('Comments').value;\r\n\r\n this.commonService.processWorkFlow(this.consultantJobId, Common.enumObjectTypes.ConsultantJob\r\n , 41, Number(this.roleId), comment\r\n , this.userId).subscribe(result => {\r\n dbresult = result;\r\n console.log(\"result \", result, \"dbResult \", dbresult);\r\n dbresult.forEach(key => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value;\r\n });\r\n\r\n this.commonService.setActiveObject(this.consultantJobId, Common.enumObjectTypes.ConsultantJob, Common.enumComponent.ConsultantJob, \r\n Number(this.roleId), nextStatusID, 3);\r\n \r\n });\r\n \r\n \r\n\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n Candidate\r\n
\r\n {{ consultant?.FirstName }} {{ consultant?.LastName }}
\r\n {{ consultant?.Emailaddress }}\r\n
\r\n
\r\n Job Title\r\n
\r\n {{ job?.JobTitleName }}
\r\n {{ job?.CompanyName }}\r\n
\r\n\r\n
\r\n Job ID\r\n
\r\n {{ job?.JobId }}
\r\n {{ job?.JobCode }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Interviewer\r\n \r\n \r\n
\r\n
\r\n \r\n Interview Type\r\n \r\n \r\n {{ inv_type.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Duration (Hr)\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

1st Available Date and Time

\r\n
\r\n
\r\n
\r\n \r\n Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Time Zone\r\n PST \r\n MST \r\n CST \r\n EST \r\n \r\n \r\n
\r\n
\r\n
\r\n

2st Available Date and Time

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Time Zone\r\n PST \r\n MST \r\n CST \r\n EST \r\n \r\n \r\n
\r\n
\r\n
\r\n

3st Available Date and Time

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Time Zone\r\n PST \r\n MST \r\n CST \r\n EST \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Interview Details\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Recruiter Comment\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Interview successfully Scheduled!

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Sorry, No Valid data is available!\r\n
\r\n Candidate job status is in\r\n \r\n {{\r\n consultantjob?.ConsultantJobStatus == null ? 'unknown' : consultantjob?.ConsultantJobStatus\r\n }}\r\n \r\n stage. Please contact your recruiter for more information.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nexport interface PeriodicElement {\r\n candidate: string;\r\n interviewer: string;\r\n location: string;\r\n score: number;\r\n status: string;\r\n}\r\nconst ELEMENT_DATA: PeriodicElement[] = [\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n { candidate: 'Hydrogen',interviewer: 'Anumega', location: 'Georgia, Atlanta', score: 10, status:'Open'},\r\n\r\n];\r\n\r\n@Component({\r\n selector: 'job-interview',\r\n templateUrl: './job-interview.component.html',\r\n styleUrls: ['./job-interview.component.scss']\r\n})\r\nexport class JobInterviewComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['candidate', 'interviewer', 'location', 'score', 'status'];\r\n dataSource = ELEMENT_DATA;\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CANDIDATE {{element.candidate}} INTERVIEWER {{element.interviewer}} LOCATION {{element.location}} SCORE {{element.score}} STATUS {{element.status}}
\r\n \r\n \r\n
","export class Job {\r\n JobId: number\r\n JobCode: string\r\n JobTitleID: string\r\n JobTitleName: string\r\n CompanyName: string\r\n Positions: number\r\n MaxBillRate: number\r\n MaxSalary: number\r\n MaxSubmissionCount: number\r\n Applied: number\r\n Pending: number\r\n Submitted: number\r\n Interview: number\r\n Hired: number\r\n SecondaryRecruiter: string\r\n SecondaryRecruiterId: number\r\n IsHot: boolean\r\n JobStatus: string\r\n PostedUser: string\r\n State: string\r\n City: string\r\n TimeSpent: string\r\n labels: any\r\n Search: string\r\n JobStatusId?: number\r\n LeapTigerMatchedCount?: number;\r\n DiceMatchedCount?: number;\r\n\r\n constructor(job) {\r\n this.JobId = job.id\r\n this.JobCode = job.JobCode\r\n this.JobTitleID = job.JobTitleID\r\n this.JobTitleName = job.JobTitleName\r\n this.CompanyName = job.CompanyName\r\n this.Positions = job.Positions\r\n this.MaxBillRate = job.MaxBillRate\r\n this.MaxSalary = job.MaxSalary\r\n this.MaxSubmissionCount = job.MaxSubmissionCount\r\n this.Applied = job.Applied\r\n this.Pending = job.Pending\r\n this.Submitted = job.Submitted\r\n this.Interview = job.Interview\r\n this.Hired = job.Hired\r\n this.JobStatus = job.JobStatus\r\n this.PostedUser = job.PostedUser\r\n this.City = job.City\r\n this.TimeSpent = job.TimeSpent\r\n this.labels = job.labels\r\n this.Search = job.Search\r\n }\r\n}\r\nexport class JobFilter {\r\n city: string\r\n state: string\r\n postedFrom: string\r\n postedTo: string\r\n jobType: string\r\n\r\n constructor(filter) {\r\n this.city = filter.city\r\n this.state = filter.state\r\n this.postedFrom = filter.postedFrom\r\n this.postedTo = filter.postedTo\r\n this.jobType = filter.jobType\r\n }\r\n}\r\n\r\nexport enum JobStatus {\r\n Draft = 2,\r\n Open = 3,\r\n Hold = 4,\r\n Closed = 5,\r\n Cancelled = 14,\r\n Declined = 15,\r\n}\r\n\r\nexport enum JobFilterNames {\r\n COMPANY = 'Company',\r\n JOB_STATUS = 'Job Status',\r\n JOB_TITLE = 'Job Title',\r\n USER = 'User',\r\n JOB_ID = 'Job ID',\r\n JOB_CODE = 'Job Code',\r\n STATE = 'State',\r\n CITY = 'City',\r\n POSTED_FROM = 'Posted From',\r\n POSTED_TO = 'Posted To',\r\n JOB_TYPE = 'Job Type',\r\n CLOSED_FROM = 'Closed From',\r\n CLOSED_TO = 'Closed To',\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core'\r\nimport { FormBuilder, FormGroup } from '@angular/forms'\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'\r\nimport { Job } from '../interfaces/job.model'\r\nimport icMoreVert from '@iconify/icons-ic/twotone-more-vert'\r\nimport icClose from '@iconify/icons-ic/twotone-close'\r\nimport icPrint from '@iconify/icons-ic/twotone-print'\r\nimport icDownload from '@iconify/icons-ic/twotone-cloud-download'\r\nimport icDelete from '@iconify/icons-ic/twotone-delete'\r\nimport icPhone from '@iconify/icons-ic/twotone-phone'\r\nimport icPerson from '@iconify/icons-ic/twotone-person'\r\nimport icMyLocation from '@iconify/icons-ic/twotone-my-location'\r\nimport icLocationCity from '@iconify/icons-ic/twotone-location-city'\r\nimport icEditLocation from '@iconify/icons-ic/twotone-edit-location'\r\n\r\n@Component({\r\n selector: 'leap-Job-create-update',\r\n templateUrl: './Job-create-update.component.html',\r\n styleUrls: ['./Job-create-update.component.scss'],\r\n})\r\nexport class JobCreateUpdateComponent implements OnInit {\r\n static id = 100\r\n\r\n form: FormGroup\r\n mode: 'create' | 'update' = 'create'\r\n\r\n icMoreVert = icMoreVert\r\n icClose = icClose\r\n\r\n icPrint = icPrint\r\n icDownload = icDownload\r\n icDelete = icDelete\r\n\r\n icPerson = icPerson\r\n icMyLocation = icMyLocation\r\n icLocationCity = icLocationCity\r\n icEditLocation = icEditLocation\r\n icPhone = icPhone\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public defaults: any,\r\n private dialogRef: MatDialogRef,\r\n private fb: FormBuilder\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.defaults) {\r\n this.mode = 'update'\r\n } else {\r\n this.defaults = {} as Job\r\n }\r\n\r\n this.form = this.fb.group({\r\n id: [JobCreateUpdateComponent.id++],\r\n imageSrc: this.defaults.imageSrc,\r\n firstName: [this.defaults.firstName || ''],\r\n lastName: [this.defaults.lastName || ''],\r\n street: this.defaults.street || '',\r\n city: this.defaults.city || '',\r\n zipcode: this.defaults.zipcode || '',\r\n phoneNumber: this.defaults.phoneNumber || '',\r\n notes: this.defaults.notes || '',\r\n })\r\n }\r\n\r\n save() {\r\n if (this.mode === 'create') {\r\n this.createJob()\r\n } else if (this.mode === 'update') {\r\n this.updateJob()\r\n }\r\n }\r\n\r\n createJob() {\r\n const Job = this.form.value\r\n\r\n if (!Job.imageSrc) {\r\n Job.imageSrc = 'assets/img/avatars/1.jpg'\r\n }\r\n\r\n this.dialogRef.close(Job)\r\n }\r\n\r\n updateJob() {\r\n const Job = this.form.value\r\n Job.id = this.defaults.id\r\n\r\n this.dialogRef.close(Job)\r\n }\r\n\r\n isCreateMode() {\r\n return this.mode === 'create'\r\n }\r\n\r\n isUpdateMode() {\r\n return this.mode === 'update'\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n

{{ form.get('firstName').value + ' ' + form.get('lastName').value }}

\r\n

New Customer

\r\n\r\n \r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n First Name\r\n \r\n\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n Street\r\n \r\n\r\n \r\n \r\n\r\n
\r\n \r\n Zipcode\r\n \r\n\r\n \r\n \r\n\r\n \r\n City\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n Phone Number\r\n \r\n\r\n \r\n \r\n\r\n \r\n Notes\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { JobCreateUpdateComponent } from './job-create-update.component';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n MatDialogModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatMenuModule,\r\n IconModule,\r\n MatDividerModule\r\n ],\r\n declarations: [JobCreateUpdateComponent],\r\n entryComponents: [JobCreateUpdateComponent],\r\n exports: [JobCreateUpdateComponent]\r\n})\r\nexport class JobCreateUpdateModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ViewEncapsulation,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n OnDestroy,\r\n TemplateRef\r\n} from '@angular/core'\r\nimport { combineLatest, forkJoin, Observable, Subject, Subscription } from 'rxjs'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router'\r\nimport { checkRouterChildsData } from '../../shared/core/utils/check-router-childs-data'\r\nimport { UntilDestroy } from '@ngneat/until-destroy'\r\nimport { filter, map, startWith, takeUntil, withLatestFrom } from 'rxjs/operators'\r\nimport { SelectionModel } from '@angular/cdk/collections'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { stagger40ms } from '../../shared/core/animations/stagger.animation'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator'\r\nimport { MatSort, Sort } from '@angular/material/sort'\r\nimport { TableColumn } from '../../shared/core/interfaces/table-column.interface'\r\nimport { aioTableLabels } from '../../../static-data/aio-table-data'\r\nimport { FormControl } from '@angular/forms'\r\nimport { MatSidenav } from '@angular/material/sidenav'\r\nimport { JobCacheData, JobType as JobTypeArray } from 'src/app/models/job.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { Job, JobFilterNames, JobStatus } from './interfaces/job.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { FilterObject } from 'src/app/models/common.model'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { FilterModelService } from 'src/app/shared/filters/filter-model.service'\r\nimport { Filter, Option } from 'src/app/shared/filters/models/select-dropdown-option.model'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { JobTypes as JobType } from 'src/app/constants/jobType'\r\nimport { SubmitCountFilterEnum } from 'src/app/enums/submissionType'\r\nimport { LookUpTypes } from 'src/app/enums/lookUpValues'\r\nimport { JobStatusText } from 'src/app/enums/job-status-text'\r\nimport { JOB_ADD_ACTION } from 'src/app/enums/userActions'\r\nimport { City } from 'src/app/models/location.model'\r\nimport { format } from 'date-fns'\r\nimport { iJobClone } from 'src/app/models/cloneJob.model'\r\nimport { HubConnection, HubConnectionBuilder, LogLevel } from '@microsoft/signalr'\r\nimport { UserRoleId } from 'src/app/enums/userRolesId'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\nimport { UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { HttpResponse } from '@angular/common/http'\r\nimport { iConsultantJob } from 'src/app/models/consultant.model'\r\nimport { TableVirtualScrollDataSource } from 'ng-table-virtual-scroll'\r\nimport { JobFileUploadComponent } from '../job-file-upload/job-file-upload.component'\r\n\r\n/*\r\n FIX: Added temporary id for reopened job as we don't save the status id in backend, \r\n This variable is only used in this component for job status filter. \r\n*/\r\nconst RE_OPENED_JOB_ID = -1\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'job-list',\r\n templateUrl: './job-list.component.html',\r\n styleUrls: ['./job-list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms, stagger40ms],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class JobListComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('paginator') paginator: MatPaginator\r\n @ViewChild('EmailExistsDialog') EmailExistsDialog: TemplateRef\r\n commonServiceResp: Promise\r\n public loading = false\r\n isScrolled: boolean = false\r\n private lastScrollTop: number = 0\r\n hasMoreData: boolean = true\r\n total: any\r\n cardJobs: any\r\n selectedPageNumber: number\r\n allStates: any\r\n allCities: City[] = []\r\n defaultCities: City[] = []\r\n jobAddAction = JOB_ADD_ACTION\r\n jobCachedData: JobCacheData[] = []\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator\r\n }\r\n\r\n menuOpenStatus = {\r\n isCompanyMenuOpen: false,\r\n isJobStatusMenuOpen: false,\r\n isJobTitleMenuOpen: false,\r\n isRecruiterMenuOpen: false,\r\n }\r\n\r\n title: string = 'Leap Tiger'\r\n value: string = 'Clear me'\r\n zeroSubmission: boolean = false\r\n needMoreSubmission: boolean = false\r\n maxSubmissionReached: boolean = false\r\n uploadDialogResume: any\r\n resumeJobId: number\r\n jobDetails: any\r\n consultantAPiData: any\r\n resumeJobStatusId: number\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n isExpanded$ = combineLatest([this.commonService.isJobCardView$]).pipe(map(([value]) => ({ value })))\r\n url: string = 'assets/img/statusIcons/'\r\n\r\n changeStatus: Array<{ status: string; elementRef: any }> = [\r\n {\r\n status: 'Open',\r\n elementRef: this.url + 'green.svg',\r\n },\r\n {\r\n status: 'Cancelled',\r\n elementRef: this.url + 'blue.svg',\r\n },\r\n {\r\n status: 'Hold',\r\n elementRef: this.url + 'orange.svg',\r\n },\r\n {\r\n status: 'Closed',\r\n elementRef: this.url + 'gray.svg',\r\n },\r\n {\r\n status: 'Declined',\r\n elementRef: this.url + 'light-gray.svg',\r\n },\r\n {\r\n status: 'Draft',\r\n elementRef: this.url + 'red.svg',\r\n },\r\n ]\r\n\r\n public sortByOptions = [\r\n 'Job ID',\r\n 'Job Type',\r\n 'Bill Rate',\r\n 'Position',\r\n 'Max Submit',\r\n 'Onboarding',\r\n 'Shortlisted',\r\n 'Submitted',\r\n 'Interviewed',\r\n 'Hired',\r\n 'Status',\r\n 'Time Spend',\r\n 'Recruiter',\r\n ]\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n public searchCSearchText: string\r\n public recruitersChecked = []\r\n\r\n public statusChecked = [JobStatus.Open, JobStatus.Hold]\r\n\r\n public companySelected = []\r\n\r\n public titlesSelected = []\r\n\r\n public jobIdSearchText: string\r\n public jobCodeSearchText: string\r\n public postedFromSearchText: string\r\n public jobClosedFromSearchText: string\r\n public JobClosedToSearchText: string\r\n public postedToSearchText: string\r\n\r\n public citySearchText: string\r\n public citiesSelected = []\r\n\r\n public alltStates: any\r\n public stateSearchText: string\r\n public statesChecked = []\r\n\r\n jobTypes: JobTypeArray[]\r\n public jobTypeSelected: number[] = [10, 11, 12]\r\n public submissionTypeChecked: number[] = [1, 2, 3]\r\n public IsAddJobPermission: boolean\r\n private _destroy$: Subject = new Subject()\r\n storeJobFilter: FilterObject = {}\r\n filterValue = 'CompanyName'\r\n isDesktop$ = this.layoutService.isDesktop$\r\n isReopenedJob: number = 0\r\n myFiles: string[] = []\r\n resumeFile: File[] = []\r\n isResume: boolean = false\r\n resumeFileName: string\r\n isResumeData: boolean\r\n searchPara: {\r\n JobId: string\r\n JobCode: string\r\n Title: string\r\n Customer: string\r\n Contact: string\r\n JobStatus: string\r\n JobType: string\r\n PostFromDate: string\r\n PostToDate: string\r\n JobClosedTo: string\r\n JobClosedFrom: string\r\n JobStartDate: Date\r\n JobEndDate: Date\r\n CandidateTitle: string\r\n SkillCategory: Number\r\n SkillSpecialized: Number\r\n RecruiterId: string\r\n LocationCity: string\r\n LocationState: string\r\n SearchText: string\r\n UserId: number\r\n SortField: string\r\n SortOrder: string\r\n PageNumber: number\r\n PageSize: number\r\n IsReopened: number\r\n SubmitCountStatus: string\r\n }\r\n\r\n toolbarShadowEnabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.toolbarShadowEnabled))\r\n )\r\n\r\n layoutCtrl = new FormControl('boxed')\r\n\r\n jobs: Job[] = []\r\n data$: Observable = this.commonService.subject.asObservable()\r\n selectedJobIndex: number = 0\r\n isGridClick: boolean = false\r\n\r\n @Input()\r\n columns: TableColumn[] = [\r\n { label: 'Candidate Search/Apply', property: 'Search', type: 'button', visible: true },\r\n { label: 'JobID', property: 'JobId', type: 'text', visible: true, cssClasses: ['text-left'] },\r\n { label: 'Job Title', property: 'JobTitleName', type: 'text', visible: true, cssClasses: ['text-left'] },\r\n {\r\n label: 'Matching Percentage',\r\n property: 'MatchingPercentage',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n { label: 'Job Type', property: 'JobType', type: 'text', visible: true, cssClasses: ['text-right'] },\r\n { label: 'Bill Rate', property: 'MaxBillRate', type: 'text', visible: true, cssClasses: ['text-center'] },\r\n {\r\n label: 'Positions',\r\n property: 'Positions',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Max. Submit',\r\n property: 'MaxSubmissionCount',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n\r\n {\r\n label: 'Shortlisted',\r\n property: 'Shortlisted',\r\n type: 'text',\r\n visible: false,\r\n cssClasses: ['text-secondary', 'font-medium', 'teal-light', 'text-center'],\r\n },\r\n {\r\n label: 'Submitted',\r\n property: 'Submitted',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-purple', 'text-center'],\r\n },\r\n {\r\n label: 'Interview',\r\n property: 'Interview',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Onboarding',\r\n property: 'Onboarding',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-secondary', 'font-medium', 'text-center'],\r\n },\r\n {\r\n label: 'Hired',\r\n property: 'Hired',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Speed',\r\n property: 'SubmitSpeed',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Status',\r\n property: 'JobStatus',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n {\r\n label: 'Posted',\r\n property: 'PostedTime',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-danger', 'font-medium', 'text-teal', 'text-center'],\r\n },\r\n ]\r\n columnsFilterList: TableColumn[]\r\n @ViewChild('quickpanel', { static: true }) quickpanel: MatSidenav\r\n\r\n pageSize = 20\r\n pageNumber = 1\r\n totalLength = 0\r\n sortField: string\r\n sortOrder: string\r\n public filePath: string\r\n pageSizeOptions: number[] = [5, 10, 20, 50, 100]\r\n dataSource: TableVirtualScrollDataSource | null\r\n dataSourceForCard: MatTableDataSource | null\r\n selection = new SelectionModel(true, [])\r\n searchCtrl = new FormControl()\r\n\r\n frmCtrlCompany = new FormControl()\r\n frmCtrlJobStatus = new FormControl()\r\n frmCtrlJobTitle = new FormControl()\r\n frmCtrlRecruiter = new FormControl()\r\n frmCtrlCity = new FormControl()\r\n frmCtrlState = new FormControl()\r\n frmCtrlJobType = new FormControl()\r\n\r\n labels = aioTableLabels\r\n iPostedFrom: boolean = false\r\n subscription: Subscription\r\n isDraft: boolean = false\r\n jobFilterOptions: Filter[]\r\n\r\n public get jobStatusText(): typeof JobStatusText {\r\n return JobStatusText\r\n }\r\n private hubConnectionBuilder!: HubConnection\r\n // MatPaginator Output\r\n pageEvent: PageEvent\r\n\r\n constructor(\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private loadComponent: LoadComponent,\r\n public authService: AuthenticationService,\r\n private jobService: JobService,\r\n private dialog: MatDialog,\r\n private companyService: CompanyService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private layoutService: LayoutService,\r\n private roleService: RoleService,\r\n private filterModelService: FilterModelService,\r\n public observableService: ObservableService,\r\n public consultantService: ConsultantService\r\n ) {\r\n const data = this.router.getCurrentNavigation()\r\n this.isDraft = data?.extras?.state ? data?.extras?.state?.isDraft : false\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n this.subscription = this.loadComponent.getComponentStatus().subscribe((res) => {\r\n if (!res) {\r\n this.quickpanel.ngOnDestroy()\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n const JOB_FILTER_OPTIONS = this.filterModelService.getJobFilters()\r\n JOB_FILTER_OPTIONS.forEach((filter) => {\r\n if (\r\n filter.name === JobFilterNames.USER &&\r\n this.authService.getCurrentUserRole() !== UserRoleId.SUPER_ADMIN\r\n ) {\r\n filter.isActive = false\r\n filter.isHiddenOnUI = true\r\n }\r\n })\r\n this.jobFilterOptions = JOB_FILTER_OPTIONS\r\n this.columnsFilterList = this.columns.filter((x) => x.property != 'JobTitleName')\r\n this.filePath = Common.filePath\r\n this.setPermission()\r\n if (this.route?.snapshot?.queryParams?.jobId) {\r\n let jobId = Number(this.route?.snapshot?.queryParams?.jobId)\r\n this.jobService.getJob(jobId).subscribe((res) => {\r\n Common.activeJob = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n this.getCompanies('')\r\n this.getTitles('')\r\n this.getRecruiters()\r\n this.getStatus()\r\n this.getCities('')\r\n this.getStates()\r\n this.getJobTypes()\r\n if (!this.isDraft) {\r\n this.getJobData()\r\n this._jobDraftChanges()\r\n } else {\r\n this._jobDraftDChanges()\r\n }\r\n\r\n \r\n\r\n this.observableService.jobFilterValueChanged$.pipe(takeUntil(this._destroy$)).subscribe((filter) => {\r\n if (filter.size > 0) {\r\n if (filter.has(JobFilterNames.COMPANY)) {\r\n this.companySelected = []\r\n this.companySelected = filter.get(JobFilterNames.COMPANY)\r\n } else if (filter.has(JobFilterNames.JOB_STATUS)) {\r\n this.statusChecked = [JobStatus.Open, JobStatus.Hold]\r\n this.statusChecked = filter.get(JobFilterNames.JOB_STATUS)\r\n } else if (filter.has(JobFilterNames.JOB_TITLE)) {\r\n this.titlesSelected = []\r\n this.titlesSelected = filter.get(JobFilterNames.JOB_TITLE)\r\n } else if (filter.has(JobFilterNames.USER)) {\r\n this.recruitersChecked = []\r\n this.recruitersChecked = filter.get(JobFilterNames.USER)\r\n } else if (filter.has(JobFilterNames.JOB_TYPE)) {\r\n this.jobTypeSelected = [10, 11, 12]\r\n this.jobTypeSelected = filter.get(JobFilterNames.JOB_TYPE)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobDropdownSearchTextFilterValueChanged$\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((searchText) => {\r\n if (searchText.size > 0) {\r\n if (searchText.has(JobFilterNames.COMPANY)) {\r\n this.getCompanies(searchText.get(JobFilterNames.COMPANY)).subscribe((resp) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name === JobFilterNames.COMPANY) {\r\n item.options = this.getCompanyOptions(resp)\r\n }\r\n })\r\n })\r\n } else if (searchText.has(JobFilterNames.USER)) {\r\n } else if (searchText.has(JobFilterNames.JOB_TITLE)) {\r\n this.getTitles(searchText.get(JobFilterNames.JOB_TITLE)).subscribe((resp) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name === JobFilterNames.JOB_TITLE) {\r\n item.options = this.getJobTitleOptions(resp)\r\n }\r\n })\r\n })\r\n } else {\r\n searchText.get(JobFilterNames.CITY)\r\n }\r\n }\r\n })\r\n\r\n this.observableService.jobTextBoxFilterValueChanged$.pipe(takeUntil(this._destroy$)).subscribe((searchData) => {\r\n if (searchData.size > 0) {\r\n if (searchData.has(JobFilterNames.JOB_ID)) {\r\n this.jobIdSearchText = ''\r\n this.jobIdSearchText = searchData.get(JobFilterNames.JOB_ID)\r\n } else if (searchData.has(JobFilterNames.JOB_CODE)) {\r\n this.jobCodeSearchText = ''\r\n this.jobCodeSearchText = searchData.get(JobFilterNames.JOB_CODE)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobDateChanged$.pipe(takeUntil(this._destroy$)).subscribe((searchData) => {\r\n if (searchData.size > 0) {\r\n if (searchData.has(JobFilterNames.POSTED_FROM)) {\r\n this.postedFromSearchText = ''\r\n this.postedFromSearchText = searchData.get(JobFilterNames.POSTED_FROM)\r\n }\r\n if (searchData.has(JobFilterNames.POSTED_TO)) {\r\n this.postedToSearchText = ''\r\n this.postedToSearchText = searchData.get(JobFilterNames.POSTED_TO)\r\n }\r\n if (searchData.has(JobFilterNames.CLOSED_FROM)) {\r\n this.jobClosedFromSearchText = ''\r\n this.jobClosedFromSearchText = searchData.get(JobFilterNames.CLOSED_FROM)\r\n }\r\n if (searchData.has(JobFilterNames.CLOSED_TO)) {\r\n this.JobClosedToSearchText = ''\r\n this.JobClosedToSearchText = searchData.get(JobFilterNames.CLOSED_TO)\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobModuleLevelSearchChanged$.pipe(takeUntil(this._destroy$)).subscribe((searchText) => {\r\n this.searchCSearchText = searchText?.length > 0 ? searchText : ''\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n\r\n this.observableService.jobAutocompleteFilterValueChanged$\r\n .pipe(takeUntil(this._destroy$), withLatestFrom(this.observableService.stateIdOfCityValueChanges$))\r\n .subscribe(([filter, stateId]) => {\r\n if (filter.size > 0) {\r\n if (filter.has(JobFilterNames.STATE)) {\r\n if (filter.get(JobFilterNames.STATE).length == 0) {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.STATE) {\r\n item.searchText = ''\r\n }\r\n if (item.name == JobFilterNames.CITY) {\r\n item.searchText = ''\r\n item.options = item.originalOptions\r\n }\r\n })\r\n this.statesChecked = []\r\n this.citiesSelected = []\r\n } else {\r\n let filteredState = this.allStates.filter(\r\n (state) => state.StateName == filter.get(JobFilterNames.STATE).trim()\r\n )\r\n this.statesChecked = []\r\n this.statesChecked = filteredState.map((state) => state.StateID.toString())\r\n let cityAccordingToState = this.consultantService.getCitySearch(\r\n '',\r\n this.getStateAgainstName(filter.get(JobFilterNames.STATE))\r\n )\r\n cityAccordingToState.subscribe((res) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.CITY) {\r\n item.options = this.getCityOptions(res)\r\n item.originalOptions = this.getCityOptions(res)\r\n this.allCities = res\r\n }\r\n })\r\n })\r\n }\r\n } else if (filter.has(JobFilterNames.CITY)) {\r\n if (filter.get(JobFilterNames.CITY).length == 0) {\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.CITY) {\r\n item.searchText = ''\r\n }\r\n })\r\n this.citiesSelected = []\r\n } else {\r\n this.citiesSelected = []\r\n this.citiesSelected.push(filter.get(JobFilterNames.CITY).trim())\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.STATE) {\r\n item.searchText = this.getStateAccordingToStateId(stateId)\r\n this.statesChecked = []\r\n this.statesChecked.push(this.getStateIdByStateName(item.searchText))\r\n }\r\n })\r\n }\r\n }\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n }\r\n })\r\n\r\n this.observableService.filterResetValueChanged$.pipe(takeUntil(this._destroy$)).subscribe((filterReset) => {\r\n if (filterReset) {\r\n this.companySelected = []\r\n this.statusChecked = []\r\n this.titlesSelected = []\r\n this.recruitersChecked = []\r\n this.jobIdSearchText = ''\r\n this.jobCodeSearchText = ''\r\n this.postedFromSearchText = ''\r\n this.postedToSearchText = ''\r\n this.statesChecked = []\r\n this.citiesSelected = []\r\n this.jobTypeSelected = []\r\n this.searchCSearchText = ''\r\n this.jobClosedFromSearchText = ''\r\n this.JobClosedToSearchText = ''\r\n }\r\n this.jobFilterOptions.forEach((item) => {\r\n if (item.name == JobFilterNames.CITY) {\r\n item.options = this.getCityOptions(this.defaultCities)\r\n item.originalOptions = this.getCityOptions(this.defaultCities)\r\n this.allCities = [...this.defaultCities]\r\n }\r\n })\r\n this.paginator?.firstPage()\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n })\r\n this.observableService.updatedCitiesNamesValueChanged$\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((newCities) => {\r\n this.allCities = newCities\r\n })\r\n\r\n this.getFilterOptions()\r\n this.closePanelSubject()\r\n\r\n this.hubConnectionBuilder = new HubConnectionBuilder()\r\n .withUrl(Common.apiUrl + 'notifyUser')\r\n .configureLogging(LogLevel.Information)\r\n .build()\r\n this.hubConnectionBuilder\r\n .start()\r\n .then(() => console.log('Connection started.......!'))\r\n .catch((err) => console.log('Error while connect with server'))\r\n this.hubConnectionBuilder.on('SendJobDataToUser', (result: JobCacheData[]) => {\r\n if (this.jobCachedData && this.jobCachedData.length > 0 && result && result.length > 0) {\r\n this.jobCachedData.map((s) => {\r\n var matched = result.find((a) => a.jobId == s.jobId)\r\n if (matched) {\r\n s.diceMatchedCount = matched.diceMatchedCount\r\n s.leapTigerMatchedCount = matched.leapTigerMatchedCount\r\n }\r\n })\r\n\r\n this.jobs.forEach((j) => {\r\n const matched = this.jobCachedData.find((s) => s.jobId == j.JobId)\r\n if (matched) {\r\n j.LeapTigerMatchedCount = matched.leapTigerMatchedCount\r\n j.DiceMatchedCount = matched.diceMatchedCount\r\n }\r\n })\r\n }\r\n this.jobCachedData = result\r\n })\r\n }\r\n\r\n private _resetJobFilters() {\r\n this.companySelected = []\r\n this.statusChecked = []\r\n this.titlesSelected = []\r\n this.recruitersChecked = []\r\n this.jobIdSearchText = ''\r\n this.jobCodeSearchText = ''\r\n this.postedFromSearchText = ''\r\n this.postedToSearchText = ''\r\n this.statesChecked = []\r\n this.citiesSelected = []\r\n this.jobTypeSelected = []\r\n this.searchCSearchText = ''\r\n }\r\n\r\n getFilterOptions() {\r\n forkJoin({\r\n companyData: this.getCompanies(''),\r\n jobStatusData: this.getStatus(),\r\n jobTitleData: this.getTitles(''),\r\n recruiterData: this.getRecruiters(),\r\n cityData: this.getCities(''),\r\n stateData: this.getStates(),\r\n })\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(({ companyData, jobStatusData, jobTitleData, recruiterData, cityData, stateData }) => {\r\n this.jobFilterOptions.forEach((item) => {\r\n this.allStates = stateData\r\n this.allCities = this.defaultCities = cityData\r\n switch (item.name) {\r\n case JobFilterNames.COMPANY:\r\n item.options = this.getCompanyOptions(companyData)\r\n item.originalOptions = this.getCompanyOptions(companyData)\r\n break\r\n case JobFilterNames.JOB_STATUS:\r\n item.options = this.getJobStatusOptions(jobStatusData)\r\n item.originalOptions = this.getJobStatusOptions(jobStatusData)\r\n item.selectedOptions = this.statusChecked\r\n break\r\n case JobFilterNames.JOB_TITLE:\r\n item.options = this.getJobTitleOptions(jobTitleData)\r\n item.originalOptions = this.getJobTitleOptions(jobTitleData)\r\n break\r\n case JobFilterNames.USER: // FORMLY RECRUITER\r\n item.options = this.getRecruiterOptions(recruiterData)\r\n item.originalOptions = this.getRecruiterOptions(recruiterData)\r\n break\r\n case JobFilterNames.STATE:\r\n item.options = this.getStateOptions(stateData)\r\n item.originalOptions = this.getStateOptions(stateData)\r\n break\r\n case JobFilterNames.CITY:\r\n item.options = this.getCityOptions(cityData)\r\n item.originalOptions = this.getCityOptions(cityData)\r\n break\r\n case JobFilterNames.JOB_TYPE:\r\n if (Common.lookUp != null) {\r\n this.jobTypes = Common.lookUp\r\n .filter((item) => item.TypeCode == LookUpTypes.JOBID)\r\n .map((jobType) => ({ Key: jobType.ValueName, Value: jobType.LookupID }))\r\n }\r\n item.options = this.getJobTypeOptions(this.jobTypes)\r\n item.originalOptions = this.getJobTypeOptions(this.jobTypes)\r\n item.selectedOptions = this.jobTypeSelected\r\n break\r\n default:\r\n item.options = null\r\n }\r\n })\r\n })\r\n }\r\n\r\n getCompanyOptions(allOptions: any): Option[] {\r\n let companyOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n companyOptions.push({ key: item.CompanyId, value: item.Name })\r\n })\r\n return companyOptions\r\n }\r\n getJobStatusOptions(allOptions: any): Option[] {\r\n let jobStatusOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n jobStatusOptions.push({ key: item.JobStatusId, value: item.JobStatusName })\r\n })\r\n // jobStatusOptions.push({ key: RE_OPENED_JOB_ID, value: 'Re-opened' })\r\n return jobStatusOptions\r\n }\r\n getJobTitleOptions(allOptions: any): Option[] {\r\n let jobTitleOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n jobTitleOptions.push({ key: item.JobTitleID, value: item.JobTitleName })\r\n })\r\n return jobTitleOptions\r\n }\r\n getRecruiterOptions(allOptions: any): Option[] {\r\n let recruiterOption: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n recruiterOption.push({ key: item.UserID, value: item.FirstName + ' | ' + item.UserName })\r\n })\r\n return recruiterOption\r\n }\r\n\r\n getStateOptions(allOptions: any): Option[] {\r\n let stateOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n stateOptions.push({ key: item.StateID, value: item.StateName })\r\n })\r\n return stateOptions\r\n }\r\n\r\n getCityOptions(allOptions: any) {\r\n let cityOptions: Option[] = []\r\n allOptions.forEach((item: any) => {\r\n cityOptions.push({ key: item.StateID, value: item.City })\r\n })\r\n return cityOptions\r\n }\r\n\r\n getJobTypeOptions(allOptions) {\r\n let jobTypeOptions: Option[] = []\r\n if (!allOptions) return jobTypeOptions\r\n allOptions.forEach((item) => {\r\n jobTypeOptions.push({ key: item.Value, value: item.Key })\r\n })\r\n return jobTypeOptions\r\n }\r\n\r\n getStateAgainstName(name: string) {\r\n let selectedStateCode = this.allStates.filter((item) => item.StateName == name)\r\n return selectedStateCode[0]?.StateCode\r\n }\r\n\r\n getStateAccordingToStateId(stateId: number): string {\r\n const STATE_NAME = this.allCities.find((item) => item.StateID === stateId)?.State\r\n return STATE_NAME ? STATE_NAME : ''\r\n }\r\n\r\n getStateIdByStateName(stateCode: string) {\r\n return this.allStates.find((state) => state.StateName === stateCode.trim())?.StateID\r\n }\r\n\r\n jobTypeConvertor(jobTypeId: number) {\r\n if (jobTypeId == Common.enumJobContractType.JT_C2C) return JobType.Contract\r\n else if (jobTypeId == Common.enumJobContractType.JT_C2H) return JobType.ContractToHire\r\n else return JobType.Permanent\r\n }\r\n\r\n setPermission() {\r\n this.roleService.getPermissionByRole(this.authService.userInfo.roles[0].roleID).subscribe(\r\n (data) => {\r\n let addJobPermit = data.filter(\r\n (item) =>\r\n item.ComponentID == Common.enumComponent.Job &&\r\n item.MenuCode == 'JOB_ADD' && // TODO: add Enum for add job -\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n if (addJobPermit?.length > 0) this.IsAddJobPermission = true\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n\r\n // onAddJob() {\r\n // Common.activeConsultant = null\r\n // Common.activeConsultantJob = null\r\n // Common.activeJob = null\r\n // Common.jobAction = 'Add'\r\n // this.router.navigate(['/jobs/add'])\r\n // }\r\n onAddNewJob() {\r\n Common.activeConsultant = null\r\n Common.activeConsultantJob = null\r\n Common.activeJob = null\r\n Common.jobAction = 'Add'\r\n // this.router.navigate(['/jobs/addJob'])\r\n this.dialog.open(JobFileUploadComponent, {\r\n width: '650px',\r\n height: '340px',\r\n })\r\n }\r\n @ViewChild(MatSort, { static: true }) sort: MatSort\r\n\r\n get visibleColumns() {\r\n return this.columns.filter((column) => column.visible).map((column) => column.property)\r\n }\r\n\r\n paginatorChange(event: any) {\r\n this.pageNumber = event.pageIndex + 1\r\n this.pageSize = event.pageSize\r\n\r\n this.getJobData()\r\n }\r\n\r\n getJobData() {\r\n this.loading = true\r\n // const jobStatusId = this.statusChecked.join(',')\r\n // if (jobStatusId.includes(RE_OPENED_JOB_ID.toString())) {\r\n // this.isReopenedJob = 1\r\n // } else {\r\n // this.isReopenedJob = 0\r\n // }\r\n this.searchPara = {\r\n JobId: this.jobIdSearchText == undefined ? null : this.jobIdSearchText,\r\n JobCode: this.jobCodeSearchText == undefined ? null : this.jobCodeSearchText,\r\n Title: this.titlesSelected.join(','),\r\n Customer: this.companySelected.join(','),\r\n Contact: null,\r\n JobStatus: this.statusChecked.filter((res) => (res as number) !== RE_OPENED_JOB_ID).toString(),\r\n IsReopened: this.isReopenedJob,\r\n\r\n JobType: this.jobTypeSelected.join(','),\r\n PostFromDate:\r\n this.postedFromSearchText == undefined || this.postedFromSearchText == ''\r\n ? null\r\n : format(new Date(this.postedFromSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n PostToDate:\r\n this.postedToSearchText == undefined || this.postedToSearchText == ''\r\n ? null\r\n : format(new Date(this.postedToSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n JobClosedFrom:\r\n this.jobClosedFromSearchText == undefined || this.jobClosedFromSearchText == ''\r\n ? null\r\n : format(new Date(this.jobClosedFromSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n JobClosedTo:\r\n this.JobClosedToSearchText == undefined || this.JobClosedToSearchText == ''\r\n ? null\r\n : format(new Date(this.JobClosedToSearchText), \"yyyy-MM-dd'T'HH:mm:ss.SSS\"),\r\n JobStartDate: null,\r\n JobEndDate: null,\r\n CandidateTitle: null,\r\n SkillCategory: null,\r\n SkillSpecialized: null,\r\n RecruiterId: this.recruitersChecked.join(','),\r\n LocationCity: this.citiesSelected.join(','),\r\n LocationState: this.statesChecked.join(','),\r\n SearchText: this.searchCSearchText,\r\n UserId: this.authService.userInfo.userID,\r\n SortField: this.sortField == undefined ? null : this.sortField,\r\n SortOrder: this.sortOrder == undefined ? null : this.sortOrder,\r\n PageNumber: this.pageNumber,\r\n PageSize: this.pageSize,\r\n SubmitCountStatus: this.submissionTypeChecked.toString(),\r\n }\r\n // this.totalLength = 1\r\n this.jobService.getJobList(this.searchPara).subscribe(\r\n (jobs) => {\r\n jobs.forEach((j) => {\r\n const matched = this.jobCachedData.find((s) => s.jobId == j.JobId)\r\n if (matched) {\r\n j.LeapTigerMatchedCount = matched.leapTigerMatchedCount\r\n j.DiceMatchedCount = matched.diceMatchedCount\r\n }\r\n })\r\n this.commonService.subject.next(jobs)\r\n if (jobs.length > 0) {\r\n this.totalLength = jobs[0]?.TotalCount\r\n this.hasMoreData = jobs?.length\r\n // this.totalLength = this.jobs.length\r\n if (this.hasMoreData) {\r\n this.pageNumber++\r\n } else {\r\n this.notifyService.showInfo('You have reached the end of the Job list', 'Job List')\r\n }\r\n } else {\r\n // this.totalLength=this.totalLength\r\n this.notifyService.showInfo('You have reached the end of the Job list', 'Job List')\r\n }\r\n this.loading = false\r\n this.dataSource = new TableVirtualScrollDataSource()\r\n if(jobs.length === 1){\r\n this.jobs = jobs\r\n } else {\r\n this.jobs = [...this.jobs, ...jobs]\r\n }\r\n // this.jobs = [...this.jobs, ...jobs]\r\n this.dataSource.data = this.jobs\r\n this.dataSource = new TableVirtualScrollDataSource(this.jobs)\r\n },\r\n (err: any) => {\r\n this.totalLength = 0\r\n this.loading = false\r\n }\r\n )\r\n // this.dataSource = new MatTableDataSource()\r\n // this.data$.pipe(filter(Boolean)).subscribe((jobs) => {\r\n // this.jobs = [...this.jobs, ...jobs]\r\n // this.dataSource.data = this.jobs\r\n // this.totalLength = this.jobs.length\r\n // // this.cardJobs = jobs\r\n // })\r\n }\r\n\r\n onGridColumnClick(colVal, index?) {\r\n let joId = colVal\r\n this.jobService\r\n .getJob(joId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.selectedJobIndex = index\r\n Common.activeJob = res\r\n Common.JobKeywords = null\r\n Common.jobAction = 'Edit'\r\n this.jobService.setJobCloneStatus({})\r\n this.openQuickpanel()\r\n this.removeParams()\r\n })\r\n }\r\n\r\n onChangeSubmissionCount(submission, checked) {\r\n if (checked) {\r\n if (this.submissionTypeChecked.indexOf(submission) == -1) {\r\n this.submissionTypeChecked.push(submission)\r\n }\r\n } else {\r\n this.submissionTypeChecked = this.submissionTypeChecked?.filter((item) => item !== submission)\r\n }\r\n if (submission == SubmitCountFilterEnum.ZeroSubmission) {\r\n this.zeroSubmission = !this.zeroSubmission\r\n } else if (submission == SubmitCountFilterEnum.NeedMoreSubmission) {\r\n this.needMoreSubmission = !this.needMoreSubmission\r\n } else if (submission == SubmitCountFilterEnum.MaxSubmitReached) {\r\n this.maxSubmissionReached = !this.maxSubmissionReached\r\n }\r\n\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.totalLength = 0\r\n this.paginator?.firstPage()\r\n this.getJobData()\r\n }\r\n openQuickpanel() {\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n jobId: Common.activeJob.JobId,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n this.isGridClick = true\r\n this.layoutService.openQuickpanel()\r\n this.loadComponent.createComponent('job')\r\n this.commonService.setComponentData(Common.activeJob)\r\n }\r\n\r\n removeParams() {\r\n this.layoutService.quickpanelOpen$\r\n .pipe(takeUntil(this._destroy$), withLatestFrom(this.jobService.isCandidateStatusChanged$))\r\n .subscribe(([state, isStatusChanged]) => {\r\n if (!state) {\r\n if (this.isGridClick) {\r\n this.isGridClick = false\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n jobId: null,\r\n activeTab: null,\r\n },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false,\r\n })\r\n if (isStatusChanged) {\r\n this.getJobData()\r\n this.jobService.setCandidateStatus(false)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n closePanelSubject() {\r\n this.layoutService.quickpanelOpen$.pipe(takeUntil(this._destroy$)).subscribe((data) => {\r\n if (!data && this.isGridClick) {\r\n if (\r\n this.dataSource?.filteredData[this.selectedJobIndex]?.JobStatus != undefined ||\r\n this.dataSource?.filteredData[this.selectedJobIndex]?.JobStatus != null\r\n ) {\r\n this.dataSource.filteredData[this.selectedJobIndex].JobStatus = Common?.activeJob?.JobStatus\r\n this.dataSource.filteredData[this.selectedJobIndex].JobStatusId = Common?.activeJob?.JobStatusID\r\n }\r\n }\r\n })\r\n }\r\n\r\n // onApplyJob(jobId, jobStatusId) {\r\n // if (jobStatusId != 3) {\r\n // this.notifyService.showWarning('Can not apply, Job is not opened!.', 'Apply Job')\r\n // return\r\n // }\r\n // this.jobService.getJob(jobId).subscribe((res) => {\r\n // Common.activeJob = res\r\n // Common.activeConsultantJob = {}\r\n // Common.activeConsultantJob.ConsultantJobID = 0\r\n // Common.activeConsultantJob.JobID = Common.activeJob.JobId\r\n // Common.activeConsultant = null\r\n\r\n // this.router.navigate(['/candidates/add/' + jobId], { state: { isFromJobApply: true } })\r\n // })\r\n // }\r\n onApplyJob(uploadCandidate, JobId, JobStatusId) {\r\n this.resumeJobId = JobId\r\n this.resumeJobStatusId = JobStatusId\r\n this.uploadDialogResume = this.dialog.open(uploadCandidate, {\r\n width: '650px',\r\n height: '340px',\r\n disableClose: true,\r\n })\r\n }\r\n\r\n uploadResume() {\r\n this.loading = true\r\n this.dialog.closeAll()\r\n const frmData = new FormData()\r\n for (var i = 0; i < this.resumeFile.length; i++) {\r\n frmData.append('Resume', this.resumeFile[i])\r\n }\r\n const resumeLastUpdate = this.formatDate(new Date())\r\n const userId = (JSON.parse(localStorage.getItem('userinfo')) as { userID?: number }).userID\r\n\r\n frmData.append('ResumeLastUpdate', resumeLastUpdate)\r\n frmData.append('UserId', userId.toString())\r\n\r\n this.consultantService\r\n .getCandidateSaveResumeData(frmData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (event: any) => {\r\n this.resumeFile = null\r\n if (event instanceof HttpResponse) {\r\n this.loading = false\r\n if (Number(event?.body?.UploadStatus?.Code || 0) === 500 || !event?.body?.ConsultantID) {\r\n this.notifyService.showError(\r\n 'Error while parsing resume, please try again later',\r\n 'Candidate Resume'\r\n )\r\n this.uploadDialogResume.close()\r\n } else {\r\n this.resumeFile = []\r\n\r\n if (this.resumeJobStatusId != 3) {\r\n this.notifyService.showWarning('Can not apply, Job is not opened!.', 'Apply Job')\r\n return\r\n }\r\n if (event.body?.EmailAddress != null) {\r\n this.jobService.getJob(this.resumeJobId).subscribe((res) => {\r\n const email = event.body?.EmailAddress\r\n this.consultantService.GetConsultantJobIdByEmail(email, this.resumeJobId).subscribe(\r\n (data) => {\r\n if (res && (!data?.ConsultantJobID || data?.ConsultantJobID == 0)) {\r\n this.consultantAPiData = event?.body\r\n this.createConsultantJob(res, event?.body?.ConsultantID)\r\n } else {\r\n this.notifyService.showInfo(\r\n 'This candidate has been already applied for this job',\r\n 'Already Applied'\r\n )\r\n this.loading = false\r\n this.dialog.closeAll()\r\n }\r\n },\r\n (err) => {\r\n this.notifyService.showError(\r\n 'Something went wrong in applying for this job',\r\n 'Error'\r\n )\r\n this.loading = false\r\n this.dialog.closeAll()\r\n }\r\n )\r\n })\r\n } else {\r\n this.notifyService.showError(\r\n 'The resume is missing an email address. Please ensure it is included.',\r\n 'Candidate Resume'\r\n )\r\n }\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.resumeFile = null\r\n }\r\n )\r\n }\r\n createConsultantJob(jobDetails: any, ConsultantID: number) {\r\n const modelConsultantJob: iConsultantJob = {\r\n JobID: jobDetails.JobId,\r\n ConsultantJobID: 0,\r\n PayRate: null,\r\n BillRate: null,\r\n Salary: jobDetails?.Salary ? jobDetails?.Salary : 0,\r\n DateApplied: new Date(),\r\n CreatedDate: new Date(),\r\n CreatedBy: this.authService.userInfo.userID,\r\n IsActive: true,\r\n CompanyVendorID: jobDetails?.CompanyVendorID ? jobDetails.CompanyVendorID : null,\r\n VendorContactID: jobDetails?.VendorContactID ? jobDetails.VendorContactID : null,\r\n ConsultantTypeID: jobDetails?.ConsultantTypeID ? jobDetails?.ConsultantTypeID : null,\r\n RecruiterId: jobDetails?.PostedFor,\r\n ConsultantID: ConsultantID ? ConsultantID : 0,\r\n }\r\n\r\n this.loading = true\r\n this.consultantService\r\n .saveConsultantJob(modelConsultantJob)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (result) => {\r\n this.loading = false\r\n this.notifyService.showInfo('Candidate has been applied for this job', 'Applied')\r\n if (result && result != null) {\r\n this.router.navigate(['candidates/', this.resumeJobId], {\r\n state: {\r\n consultantData: this.consultantAPiData,\r\n jobId: this.resumeJobId,\r\n isAddFlow: false,\r\n isFromJobApply: true,\r\n },\r\n })\r\n }\r\n },\r\n error: (e) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while saving data', 'Consultant Job')\r\n },\r\n })\r\n }\r\n formatDate(date: Date): string {\r\n const pad = (num: number, length: number) => num.toString().padStart(length, '0')\r\n\r\n const year = date.getFullYear()\r\n const month = pad(date.getMonth() + 1, 2) // Months are 0-based\r\n const day = pad(date.getDate(), 2)\r\n const hours = pad(date.getHours(), 2)\r\n const minutes = pad(date.getMinutes(), 2)\r\n const seconds = pad(date.getSeconds(), 2)\r\n const milliseconds = pad(date.getMilliseconds(), 3)\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`\r\n }\r\n\r\n onSearchCandidates(job, jobStatusId) {\r\n this.commonService.candidateObservable$.next(false)\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Search candidate works for jobs in Open status only!', 'Search Candidates')\r\n return\r\n }\r\n this.router.navigate(['/candidates'], {\r\n // TODO: Need to remove copy path later\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n onGetCachedCandidatesCountClick(job, jobStatusId, isDiceData) {\r\n this.commonService.candidateObservable$.next(false)\r\n if (jobStatusId != 3) {\r\n this.notifyService.showWarning('Search candidate works for jobs in Open status only!', 'Search Candidates')\r\n return\r\n }\r\n this.router.navigate(['/candidates'], {\r\n // TODO: Need to remove copy path later\r\n state: { job: job, isFromJobSearch: true, isFromCachedSearch: true, isDiceData: isDiceData },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n getMatchedCandidateCount(leapTigerCandidateCount: number, diceCandidateCount: number): number {\r\n const totalCount = (Number(leapTigerCandidateCount) + Number(diceCandidateCount)) || 0;\r\n return totalCount; // Always return the numeric count\r\n }\r\n \r\n getCandidateCountColor(count: number): string {\r\n if (count >= 100) {\r\n return 'green';\r\n } else if (count > 0 && count < 55) {\r\n return 'orange';\r\n } else {\r\n return 'red';\r\n }\r\n } \r\n\r\n onCandidatesJobStatus(job) {\r\n this.router.navigate(['candidates/candidatejobstatus'], {\r\n state: { job: job, isFromJobSearch: true },\r\n queryParams: { jobId: job.JobId },\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next()\r\n this._destroy$.complete()\r\n this.jobFilterOptions.forEach((item) => {\r\n item.selectedOptions = []\r\n item.searchText = ''\r\n })\r\n }\r\n\r\n //#region Private Methods\r\n\r\n private getJobTypes(): Observable {\r\n return this.jobService.getLookup('JobTypelD')\r\n }\r\n\r\n private getStatus(): Observable {\r\n return this.jobService.GetJobStatus()\r\n }\r\n\r\n private getCompanies(searchText): Observable {\r\n return this.companyService.getCompanyFilter(searchText)\r\n }\r\n\r\n private getTitles(searchText): Observable {\r\n return this.jobService.getJobTitles(searchText)\r\n }\r\n\r\n private getCities(searchText): Observable {\r\n return this.jobService.getCitySearch(searchText)\r\n }\r\n\r\n private getRecruiters(): Observable {\r\n //let para = { RoleId: Common.enumUserRoles.Recruiter, UserId: this.authService.userInfo.userID, }\r\n return this.jobService.GetRecruiterByRoleId(\r\n Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager\r\n )\r\n }\r\n\r\n isOpen() {\r\n this.commonService.isExpandedSubject.next(true)\r\n }\r\n\r\n isClose() {\r\n this.commonService.isExpandedSubject.next(false)\r\n }\r\n\r\n private getStates(): Observable {\r\n return this.commonService.getStates()\r\n }\r\n\r\n announceSortChange(sortState: Sort) {\r\n if (sortState.direction) {\r\n this.sortField = sortState.active == 'PostedTime' ? 'PostedDate' : sortState.active\r\n this.sortOrder = sortState.direction\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n }\r\n }\r\n\r\n toggleColumnVisibility(column, event) {\r\n if (column.property == 'JobTitleName') {\r\n return\r\n }\r\n event.stopPropagation()\r\n event.stopImmediatePropagation()\r\n column.visible = !column.visible\r\n }\r\n\r\n private commonServiceSetter() {\r\n this.commonServiceResp = this.commonService.getAppSettings()\r\n }\r\n\r\n private _jobDraftChanges() {\r\n this.jobService\r\n .getJobCloneStatus()\r\n .pipe(filter((job: iJobClone) => job?.hasOwnProperty('JobId') && job.JobId != null))\r\n .subscribe({\r\n next: (job: iJobClone) => {\r\n if (job.JobId) {\r\n this.pageNumber = 1\r\n this._getClonedJobById(job.JobId)\r\n }\r\n },\r\n })\r\n }\r\n private _jobDraftDChanges() {\r\n this.jobService\r\n .getJobCloneStatus()\r\n .subscribe({\r\n next: (job: iJobClone) => {\r\n if (job.JobId) {\r\n this.pageNumber = 1\r\n this._getClonedJobById(job.JobId)\r\n }\r\n },\r\n })\r\n }\r\n \r\n private _getClonedJobById(jobId) {\r\n this._resetJobFilters()\r\n this.jobIdSearchText = jobId?.toString()\r\n this.statusChecked.push(JobStatus.Draft)\r\n this.jobFilterOptions.forEach((filter) => {\r\n if (filter.name === JobFilterNames.JOB_STATUS) {\r\n filter.selectedOptions = [JobStatus.Draft]\r\n }\r\n if (filter.name === JobFilterNames.JOB_ID) {\r\n filter.searchText = this.jobIdSearchText\r\n }\r\n })\r\n this.getJobData()\r\n }\r\n\r\n toggleReopenJob(): void {\r\n this.isReopenedJob = this.isReopenedJob ? 0 : 1\r\n this.pageNumber = 1\r\n this.jobs = []\r\n this.getJobData()\r\n }\r\n\r\n navigateToCandidateJobSatusPage() {\r\n this.router.navigate(['candidates/candidatejobstatus'])\r\n }\r\n onScroll(event: any): void {\r\n const scrollTop = event.target.scrollTop\r\n const scrollHeight = event.target.scrollHeight\r\n const clientHeight = event.target.clientHeight\r\n const isScrollingDown = scrollTop > this.lastScrollTop\r\n this.lastScrollTop = scrollTop\r\n\r\n if (isScrollingDown) {\r\n if (scrollTop + clientHeight >= scrollHeight - 150) {\r\n if (!this.loading && this.hasMoreData) {\r\n this.getJobData()\r\n this.isScrolled = true\r\n }\r\n }\r\n }\r\n }\r\n getResumeDetails(fileList: File[]) {\r\n // fileList.forEach((file) => {\r\n // this.resumeFile.push(file)\r\n // this.resumeFileName = file.name\r\n // this.isResume = this.resumeFileName.length > 0\r\n // })\r\n this.resumeFile = [fileList[0]]\r\n this.resumeFileName = this.resumeFile[0].name\r\n this.isResume = this.resumeFileName.length > 0\r\n this.isResumeData = false\r\n }\r\n close() {\r\n this.loading = false\r\n this.uploadDialogResume.close()\r\n this.resumeFile = []\r\n this.isResume = false\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Showing {{ jobs.length }}/{{ totalLength | number }} Jobs Results\r\n
\r\n
\r\n
\r\n
\r\n \r\n Re-Opened Job\r\n
\r\n\r\n \r\n \r\n Zero submission\r\n \r\n \r\n \r\n Need more submission\r\n \r\n \r\n \r\n Max submission reached\r\n \r\n
\r\n \r\n filter_list\r\n \r\n \r\n \r\n \r\n {{ column.label }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n add Add New Job\r\n \r\n \r\n
\r\n
\r\n
0\" (scroll)=\"onScroll($event)\">\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Apply\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Job ID\r\n \r\n \r\n {{ element?.JobId }} \r\n
\r\n {{ element?.JobCode }}\r\n \r\n
\r\n \r\n \r\n Job Title/
\r\n Company Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ element?.JobTitleName | slice : 0 : 30 }}\r\n \r\n
\r\n
\r\n replay\r\n
\r\n
\r\n {{ element?.CompanyName }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Matched
\r\n Candidates\r\n \r\n \r\n
\r\n \r\n \r\n {{\r\n getMatchedCandidateCount(\r\n element?.LeapTigerMatchedCount,\r\n element?.DiceMatchedCount\r\n ) > 100\r\n ? '100+'\r\n : getMatchedCandidateCount(\r\n element?.LeapTigerMatchedCount,\r\n element?.DiceMatchedCount\r\n )\r\n }}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Posted\r\n \r\n \r\n {{ element?.PostedTime }} \r\n
{{ element?.PostedUser }}\r\n \r\n
\r\n\r\n \r\n \r\n Job Type\r\n \r\n \r\n {{ jobTypeConvertor(element?.JobTypeId) }}\r\n \r\n \r\n \r\n \r\n Bill Rate\r\n \r\n \r\n $\r\n {{\r\n element?.JobTypeId == 10\r\n ? (element?.MaxBillRate | number : '1.2-2')\r\n : element?.JobTypeId == 11\r\n ? (element?.MaxBillRate | number : '1.2-2')\r\n : (element?.MaxSalary | number)\r\n }}\r\n \r\n \r\n \r\n \r\n Positions\r\n \r\n \r\n {{ element?.Positions }}\r\n \r\n \r\n \r\n \r\n Max.
\r\n Submit\r\n \r\n \r\n {{ element?.MaxSubmissionCount | nullValueReplace }}\r\n \r\n
\r\n\r\n \r\n \r\n Shortlisted\r\n \r\n \r\n {{ element?.Shortlisted }}\r\n \r\n \r\n \r\n \r\n Submitted\r\n info\r\n \r\n \r\n \r\n \r\n {{ element?.Submitted }}\r\n \r\n clear\r\n
\r\n 0 &&\r\n element?.Submitted >= element?.MaxSubmissionCount\r\n \"\r\n class=\"pill-body green-pill row-center center\"\r\n >\r\n \r\n {{ element?.Submitted }}\r\n \r\n check\r\n
\r\n\r\n 0\r\n \"\r\n class=\"pill-body orange-pill row-center center\"\r\n >\r\n \r\n {{ element?.Submitted }}\r\n \r\n warning\r\n
\r\n \r\n \r\n \r\n \r\n Interview\r\n \r\n \r\n {{ element?.Interview }}\r\n \r\n \r\n \r\n \r\n Onboarding\r\n \r\n \r\n {{ element?.Onboarding }}\r\n \r\n \r\n \r\n \r\n Hired\r\n \r\n \r\n 0 ? true : false\r\n }\"\r\n >{{ element?.Hired }}\r\n \r\n \r\n \r\n \r\n Speed\r\n \r\n \r\n {{ element?.SubmitSpeed }} days\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ element?.JobStatus }}\r\n \r\n \r\n \r\n \r\n \r\n Time Spent\r\n \r\n \r\n {{ element?.TimeSpent }}\r\n \r\n \r\n \r\n \r\n Recruiter\r\n \r\n \r\n {{ element?.PostedUser }}\r\n
\r\n {{ element?.PostedTime }} \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
0)\" class=\"no-data-alert\">\r\n No job were found matching your search \r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n check\r\n
\r\n Max submit reached\r\n
\r\n
\r\n
\r\n warning\r\n
\r\n Not yet reached Max submit\r\n
\r\n
\r\n
\r\n clear\r\n
\r\n No Submissions\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Upload Resume\r\n close\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n 0)\"\r\n mat-raised-button\r\n >\r\n Upload\r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ToolbarModule } from '../../shared/core/layout/toolbar/toolbar.module'\r\nimport { FooterModule } from '../../shared/core/layout/footer/footer.module'\r\nimport { JobListComponent } from './job-list.component'\r\nimport { LayoutModule } from '../../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { JobCreateUpdateModule } from './job-create-update/job-create-update.module'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatSortModule } from '@angular/material/sort'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { ContainerModule } from '../../shared/core/directives/container/container.module'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatDatepickerModule } from '@angular/material/datepicker'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle'\r\nimport { JobModule } from '../job.module'\r\nimport { MatDividerModule } from '@angular/material/divider'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { StylePaginatorDirective } from './style-paginator.directive'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { FiltersComponent } from 'src/app/shared/filters/filters.component'\r\nimport { GlobalPaginatorComponent } from 'src/app/shared/global-paginator/global-paginator.component'\r\nimport { HomeToolbarComponent } from 'src/app/shared/home-toolbar/home-toolbar.component'\r\nimport { SharedModule } from 'src/app/shared/shared.module'\r\nimport { ScrollingModule } from '@angular/cdk/scrolling'\r\nimport { TableVirtualScrollModule } from 'ng-table-virtual-scroll'\r\n@NgModule({\r\n declarations: [JobListComponent, StylePaginatorDirective, GlobalPaginatorComponent],\r\n imports: [\r\n TableVirtualScrollModule,\r\n ScrollingModule,\r\n CommonModule,\r\n ToolbarModule,\r\n FooterModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n JobCreateUpdateModule,\r\n MatSidenavModule,\r\n MatPaginatorModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatCheckboxModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n IconModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n ReactiveFormsModule,\r\n ContainerModule,\r\n MatSelectModule,\r\n NgxLoadingModule.forRoot({}),\r\n MatDatepickerModule,\r\n MatToolbarModule,\r\n MatInputModule,\r\n FlexLayoutModule,\r\n MatSlideToggleModule,\r\n JobModule,\r\n MatDividerModule,\r\n MatRadioModule,\r\n SharedModule,\r\n ],\r\n providers: [FiltersComponent, GlobalPaginatorComponent, HomeToolbarComponent],\r\n})\r\nexport class JobListModule {}\r\n","import {\r\n ElementRef,\r\n AfterViewInit,\r\n Directive,\r\n Host,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n ViewContainerRef,\r\n Input\r\n} from \"@angular/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatButton } from \"@angular/material/button\";\r\n\r\ninterface PageObject {\r\n length: number;\r\n pageIndex: number;\r\n pageSize: number;\r\n previousPageIndex: number;\r\n}\r\n@Directive({\r\n selector: '[leepStylePaginator]'\r\n})\r\nexport class StylePaginatorDirective {\r\n\r\n private _pageGapTxt = \"...\";\r\n private _rangeStart: number;\r\n private _rangeEnd: number;\r\n private _buttons = [];\r\n private _curPageObj: PageObject = {\r\n length: 0,\r\n pageIndex: 0,\r\n pageSize: 0,\r\n previousPageIndex: 0\r\n };\r\n\r\n @Input()\r\n get showTotalPages(): number {\r\n return this._showTotalPages;\r\n }\r\n set showTotalPages(value: number) {\r\n this._showTotalPages = value % 2 == 0 ? value + 1 : value;\r\n }\r\n private _showTotalPages = 2;\r\n\r\n get inc(): number {\r\n return this._showTotalPages % 2 == 0\r\n ? this.showTotalPages / 2\r\n : (this.showTotalPages - 1) / 2;\r\n }\r\n\r\n get numOfPages(): number {\r\n return this.matPag.getNumberOfPages();\r\n }\r\n\r\n get lastPageIndex(): number {\r\n return this.matPag.getNumberOfPages() - 1;\r\n }\r\n\r\n constructor(\r\n @Host() @Self() @Optional() private readonly matPag: MatPaginator,\r\n private vr: ViewContainerRef,\r\n private ren: Renderer2\r\n ) {\r\n //to rerender buttons on items per page change and first, last, next and prior buttons\r\n this.matPag.page.subscribe((e: PageObject) => {\r\n if (\r\n this._curPageObj.pageSize != e.pageSize &&\r\n this._curPageObj.pageIndex != 0\r\n ) {\r\n e.pageIndex = 0;\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n }\r\n this._curPageObj = e;\r\n\r\n this.initPageRange();\r\n });\r\n }\r\n\r\n private buildPageNumbers() {\r\n const actionContainer = this.vr.element.nativeElement.querySelector(\r\n \"div.mat-paginator-range-actions\"\r\n );\r\n const nextPageNode = this.vr.element.nativeElement.querySelector(\r\n \"button.mat-paginator-navigation-next\",\r\n \r\n );\r\n const prevButtonCount = this._buttons.length;\r\n\r\n // remove buttons before creating new ones\r\n if (this._buttons.length > 0) {\r\n this._buttons.forEach(button => {\r\n this.ren.removeChild(actionContainer, button);\r\n });\r\n //Empty state array\r\n this._buttons.length = 0;\r\n }\r\n\r\n //initialize next page and last page buttons\r\n if (this._buttons.length == 0) {\r\n let nodeArray = this.vr.element.nativeElement.childNodes[0].childNodes[0]\r\n .childNodes[2].childNodes;\r\n setTimeout(() => {\r\n for (let i = 0; i < nodeArray.length; i++) {\r\n if (nodeArray[i].nodeName === \"BUTTON\") {\r\n if (nodeArray[i].innerHTML.length > 100 && nodeArray[i].disabled) {\r\n this.ren.setStyle(\r\n nodeArray[i],\r\n \"background-color\",\r\n \"white\",\r\n \r\n );\r\n this.ren.setStyle(nodeArray[i], \"color\", \"black\");\r\n this.ren.setStyle(nodeArray[i], \"margin\", \".5%\");\r\n } else if (\r\n nodeArray[i].innerHTML.length > 100 &&\r\n !nodeArray[i].disabled\r\n ) {\r\n this.ren.setStyle(\r\n nodeArray[i],\r\n \"background-color\",\r\n \"white\"\r\n );\r\n this.ren.setStyle(nodeArray[i], \"color\", \"black\");\r\n this.ren.setStyle(nodeArray[i], \"margin\", \".5%\");\r\n } else if (nodeArray[i].disabled) {\r\n this.ren.setStyle(nodeArray[i], \"background-color\", \"#88C4F0\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n for (let i = 0; i < this.numOfPages; i++) {\r\n if (i >= this._rangeStart && i <= this._rangeEnd) {\r\n this.ren.insertBefore(\r\n actionContainer,\r\n this.createButton(i, this.matPag.pageIndex),\r\n nextPageNode\r\n );\r\n }\r\n\r\n if (i == this._rangeEnd) {\r\n this.ren.insertBefore(\r\n actionContainer,\r\n this.createButton(this._pageGapTxt, this._rangeEnd),\r\n nextPageNode\r\n );\r\n }\r\n }\r\n }\r\n\r\n private createButton(i: any, pageIndex: number): any {\r\n const linkBtn: MatButton = this.ren.createElement(\"button\");\r\n this.ren.addClass(linkBtn, \"mat-mini-fab\");\r\n this.ren.setStyle(linkBtn, \"margin\", \"1%\");\r\n // this.ren.setStyle(linkBtn,)\r\n this.ren.setStyle(linkBtn, \"background-color\", \"grey\");\r\n this.ren.setStyle(linkBtn, \"color\", \"black\");\r\n \r\n\r\n const pagingTxt = isNaN(i) ? this._pageGapTxt : +(i + 1);\r\n const text = this.ren.createText(pagingTxt + \"\");\r\n\r\n this.ren.addClass(linkBtn, \"mat-custom-page\");\r\n switch (i) {\r\n case pageIndex:\r\n this.ren.setAttribute(linkBtn, \"disabled\", \"disabled\");\r\n break;\r\n case this._pageGapTxt:\r\n let newIndex = this._curPageObj.pageIndex + this._showTotalPages;\r\n\r\n if (newIndex >= this.numOfPages) newIndex = this.lastPageIndex;\r\n\r\n if (pageIndex != this.lastPageIndex) {\r\n this.ren.listen(linkBtn, \"click\", () => {\r\n console.log(\"working: \", pageIndex);\r\n this.switchPage(newIndex);\r\n });\r\n }\r\n\r\n if (pageIndex == this.lastPageIndex) {\r\n this.ren.setAttribute(linkBtn, \"disabled\", \"disabled\");\r\n }\r\n break;\r\n default:\r\n this.ren.listen(linkBtn, \"click\", () => {\r\n this.switchPage(i);\r\n });\r\n break;\r\n }\r\n\r\n this.ren.appendChild(linkBtn, text);\r\n //Add button to private array for state\r\n this._buttons.push(linkBtn);\r\n console.log(\"buttons\", this._buttons);\r\n return linkBtn;\r\n }\r\n //calculates the button range based on class input parameters and based on current page index value. Used to render new buttons after event.\r\n private initPageRange(): void {\r\n const middleIndex = (this._rangeStart + this._rangeEnd) / 2;\r\n\r\n this._rangeStart = this.calcRangeStart(middleIndex);\r\n this._rangeEnd = this.calcRangeEnd(middleIndex);\r\n\r\n this.buildPageNumbers();\r\n }\r\n\r\n //Helper function To calculate start of button range\r\n private calcRangeStart(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex == 0 && this._rangeStart != 0:\r\n return 0;\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex - this.inc * 2\r\n : this._curPageObj.pageIndex - this.inc;\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeStart + 1;\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart > 0:\r\n return this._rangeStart - 1;\r\n default:\r\n return this._rangeStart;\r\n }\r\n }\r\n //Helpter function to calculate end of button range\r\n private calcRangeEnd(middleIndex: number): number {\r\n switch (true) {\r\n case this._curPageObj.pageIndex == 0 &&\r\n this._rangeEnd != this._showTotalPages:\r\n return this._showTotalPages - 1;\r\n case this._curPageObj.pageIndex > this._rangeEnd:\r\n return this._curPageObj.pageIndex + this.inc > this.lastPageIndex\r\n ? this.lastPageIndex\r\n : this._curPageObj.pageIndex + 1;\r\n case this._curPageObj.pageIndex > this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex > middleIndex &&\r\n this._rangeEnd < this.lastPageIndex:\r\n return this._rangeEnd + 1;\r\n case this._curPageObj.pageIndex < this._curPageObj.previousPageIndex &&\r\n this._curPageObj.pageIndex < middleIndex &&\r\n this._rangeStart >= 0 &&\r\n this._rangeEnd > this._showTotalPages - 1:\r\n return this._rangeEnd - 1;\r\n default:\r\n return this._rangeEnd;\r\n }\r\n }\r\n //Helper function to switch page on non first, last, next and previous buttons only.\r\n private switchPage(i: number): void {\r\n console.log(\"switch\", i);\r\n const previousPageIndex = this.matPag.pageIndex;\r\n this.matPag.pageIndex = i;\r\n this.matPag[\"_emitPageEvent\"](previousPageIndex);\r\n this.initPageRange();\r\n }\r\n //Initialize default state after view init\r\n public ngAfterViewInit() {\r\n this._rangeStart = 0;\r\n this._rangeEnd = this._showTotalPages - 1;\r\n this.initPageRange();\r\n }\r\n\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, OnChanges, SimpleChanges } from '@angular/core'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { Router } from '@angular/router'\r\nimport { TableColumn } from '../../shared/core/interfaces/table-column.interface'\r\nimport { LayoutService } from '../../shared/core/services/layout.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { ConsultantFilter } from 'src/app/consultant/consultant-list/interfaces/consultant.model'\r\nimport { FilterObject } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { NotesDialogComponent } from 'src/app/shared/notes-dialog/notes-dialog.component'\r\nimport { JobService } from '../job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { JOB_ADD_ACTION, JOB_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport { LoadingConfig } from 'src/app/constants/loadingConstants'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { NotesDialogService } from 'src/app/shared/notes-dialog/notes-dialog.service'\r\nimport { iNotes } from 'src/app/models/notes.model'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\n\r\n@Component({\r\n selector: 'job-notes',\r\n templateUrl: './job-notes.component.html',\r\n styleUrls: ['./job-notes.component.scss'],\r\n})\r\nexport class JobNotesComponent implements OnInit, OnDestroy, OnChanges {\r\n @Input() activeJob: any; // Accept the job data from the parent\r\n\r\n // activeJob = Common.activeJob\r\n notesList: any\r\n storeJobFilter: FilterObject = {}\r\n notesColumns: string[] = ['Actions', 'Comments', 'NotesTo', 'DateAdded', 'Author']\r\n jobAddAction = JOB_ADD_ACTION\r\n jobEditAction = JOB_EDIT_ACTION\r\n isLoading: boolean = false\r\n loadingConfig = LoadingConfig\r\n newNoteText: string = ''\r\n showAddNote = false;\r\n private _destroy$: Subject = new Subject()\r\n\r\n filterControls: TableColumn[] = [\r\n {\r\n label: 'Candidate Name',\r\n property: 'CandidateName',\r\n type: 'text',\r\n visible: true,\r\n cssClasses: ['text-left'],\r\n },\r\n ]\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private jobService: JobService,\r\n private router: Router,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private notesDialogService: NotesDialogService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getNotes()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next()\r\n this._destroy$.complete()\r\n this.notesList = []; // Clear notes when component is destroyed\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['activeJob'] && changes['activeJob'].currentValue) {\r\n this.notesList = []; // Clear previous notes before fetching new ones\r\n this.getNotes();\r\n }\r\n }\r\n\r\n getNotes() {\r\n\r\n if (!this.activeJob || !this.activeJob.JobId) {\r\n this.notesList = [];\r\n return;\r\n }\r\n\r\n let notesRequestModel = {\r\n JobId: this.activeJob.JobId,\r\n ContactId: null,\r\n }\r\n this.notesList = []; // Clear old notes before fetching new ones\r\n\r\n this.isLoading = true\r\n\r\n this.jobService.getNotes(notesRequestModel).subscribe(\r\n (res) => {\r\n this.isLoading = false;\r\n this.notesList = Array.isArray(res) ? res : [];\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n this.notesList = [];\r\n }\r\n );\r\n }\r\n\r\n openConsultant(contactName) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n Common.activeJob = null\r\n Common.activeJobId = null\r\n this.saveConsultantFilter(contactName)\r\n this.commonService.candidateObservable$.next(true)\r\n this.router.navigate(['/candidates/'])\r\n }\r\n\r\n saveConsultantFilter(contactName) {\r\n var consultantPersistedFilterValue = JSON.parse(\r\n localStorage.getItem('consultantlist_FilterId_' + this.authService.userInfo.userID)\r\n )\r\n this.storeJobFilter.gridColumns = consultantPersistedFilterValue.gridColumns\r\n this.storeJobFilter.userId = Number(this.authService.userInfo.userID)\r\n this.storeJobFilter.pageName = 'consultantlist'\r\n this.storeJobFilter.filterValues = [\r\n { Key: 'sourceSearch', Value: '' },\r\n { Key: 'sourceSelected', Value: '64' },\r\n { Key: 'jobtypeText', Value: '' },\r\n { Key: 'jobtypeSelected', Value: '' },\r\n { Key: 'workStatusText', Value: '' },\r\n { Key: 'workStatusSelected', Value: '' },\r\n { Key: 'empTypeText', Value: '' },\r\n { Key: 'empTypeSelected', Value: '' },\r\n { Key: 'requiredSkills', Value: '' },\r\n { Key: 'preferredSkills', Value: '' },\r\n { Key: 'city', Value: '' },\r\n { Key: 'state', Value: '' },\r\n { Key: 'candidateName', Value: contactName },\r\n { Key: 'candidateTitle', Value: '' },\r\n { Key: 'minExperience', Value: '' },\r\n { Key: 'maxExperience', Value: '' },\r\n { Key: 'miles', Value: '' },\r\n { Key: 'lastUpdated', Value: '' },\r\n { Key: 'jobId', Value: '' },\r\n ]\r\n this.storeJobFilter.filterControls = this.filterControls\r\n localStorage.setItem(\r\n 'consultantlist_FilterId_' + this.authService.userInfo.userID,\r\n JSON.stringify(this.storeJobFilter)\r\n )\r\n }\r\n foods = [\r\n { value: 'steak-0', viewValue: 'Steak' },\r\n { value: 'pizza-1', viewValue: 'Pizza' },\r\n { value: 'tacos-2', viewValue: 'Tacos' },\r\n ]\r\n\r\n addNotes() {\r\n if (!this.newNoteText?.trim()) {\r\n return\r\n }\r\n\r\n const notesList: iNotes[] = []\r\n const note: iNotes = {\r\n NotesId: 0,\r\n ContactId: null,\r\n NotesDescription: this.newNoteText,\r\n ActionId: 200,\r\n JobId: this.activeJob.JobId,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n UpdatedDate: null,\r\n UpdatedBy: null,\r\n IsActive: true,\r\n }\r\n\r\n notesList.push(note)\r\n this.isLoading = true\r\n this.notesDialogService.addNotes(notesList).subscribe({\r\n next: (res) => {\r\n if (res == HttpStatusCode.Ok) {\r\n this.isLoading = false\r\n this.newNoteText = \"\"\r\n this.getNotes()\r\n this.notifyService.showSuccess('Note added successfully', 'Notes')\r\n } else {\r\n this.notifyService.showError('Error!', 'Notes')\r\n }\r\n },\r\n error: (error) => {\r\n this.isLoading = false\r\n this.notifyService.showError('Failed to add note', 'Notes')\r\n },\r\n })\r\n this.showAddNote = false; // Hide after adding\r\n\r\n }\r\n\r\n toggleAddNotes() {\r\n this.showAddNote = !this.showAddNote;\r\n }\r\n\r\n cancelAddNotes() {\r\n this.showAddNote = false; // Hide add note section\r\n this.newNoteText = ''; // Clear input\r\n }\r\n\r\n getLocalTime(utcDateString: string): string {\r\n if (!utcDateString) return '';\r\n \r\n // Ensure the string is correctly interpreted as UTC\r\n const utcDate = new Date(utcDateString + 'Z'); // Appends \"Z\" to enforce UTC interpretation\r\n \r\n // Convert to user's local timezone and format it\r\n return new Intl.DateTimeFormat(navigator.language, {\r\n year: 'numeric',\r\n month: 'short',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n //timeZoneName: 'short'\r\n }).format(utcDate);\r\n }\r\n \r\n // Function to show \"X hours ago\" correctly in local timezone\r\n getRelativeTime(utcDateString: string): string {\r\n if (!utcDateString) return '';\r\n \r\n const utcDate = new Date(utcDateString + 'Z'); // Force UTC interpretation\r\n const now = new Date();\r\n const diffMs = now.getTime() - utcDate.getTime(); // Difference in milliseconds\r\n const diffMinutes = Math.round(diffMs / 60000); // Convert to minutes\r\n \r\n if (diffMinutes < 1) return 'Just now';\r\n if (diffMinutes < 60) return `${diffMinutes} minutes ago`;\r\n \r\n const diffHours = Math.round(diffMinutes / 60);\r\n if (diffHours < 24) return `${diffHours} hours ago`;\r\n \r\n const diffDays = Math.round(diffHours / 24);\r\n return `${diffDays} days ago`;\r\n }\r\n \r\n \r\n}\r\n","\r\n
\r\n
\r\n Notes\r\n \r\n \r\n \"Add\r\n Add\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n Add a note\r\n \r\n done\r\n close\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n No Notes Found\r\n
\r\n \r\n 0\">\r\n
\r\n
\r\n
\r\n {{ note.Author }}\r\n \r\n {{ getRelativeTime(note.CreatedDate) }}\r\n \r\n
\r\n \r\n
\r\n
\r\n {{ note.NotesDescription }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { DatePipe } from '@angular/common'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { Component, EventEmitter, OnInit, Output, AfterViewInit, OnDestroy } from '@angular/core'\r\nimport { FormBuilder, Validators, FormGroup, ValidatorFn } from '@angular/forms'\r\nimport { Common } from 'src/app/common/common'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { FormControl } from '@angular/forms'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iCommments } from 'src/app/models/common.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\n\r\nimport {\r\n iJob,\r\n LegalType,\r\n InterviewType,\r\n BackgroundCheck,\r\n JobType,\r\n User,\r\n iJobLegalType,\r\n iJobInterviewType,\r\n} from 'src/app/models/job.model'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nexport interface Stat {\r\n name: string\r\n}\r\n\r\nconst jobStartDateRangeValidator: ValidatorFn = (fg: FormGroup) => {\r\n let start = new Date() // formatDate(new Date(), 'MM/dd', 'en');;\r\n let end = fg.get('StartDate').value\r\n start.setHours(0, 0, 0, 0)\r\n if (end == '' || end == undefined) return null\r\n return start !== null && end !== null && end != '' && new Date(start) <= new Date(end)\r\n ? null\r\n : { jobStartDateRange: true }\r\n}\r\n\r\nconst BillRangeValidator: ValidatorFn = (fg: FormGroup) => {\r\n const JobTypeID = fg.get('JobTypeID').value\r\n var MinRate =\r\n fg.get('MinRate').value == undefined || fg.get('MinRate').value == null || fg.get('MinRate').value == ''\r\n ? 0\r\n : fg.get('MinRate').value\r\n var MaxBillRate =\r\n fg.get('MaxBillRate').value == undefined ||\r\n fg.get('MaxBillRate').value == null ||\r\n fg.get('MaxBillRate').value == ''\r\n ? 0\r\n : fg.get('MaxBillRate').value\r\n if (MaxBillRate == '' || MaxBillRate == undefined) return null\r\n if (JobTypeID == Common.enumJobContractType.JT_C2C || JobTypeID == Common.enumJobContractType.JT_C2H) {\r\n var x =\r\n MinRate !== null && MaxBillRate !== null && Number(MinRate) <= Number(MaxBillRate)\r\n ? null\r\n : { billRange: true }\r\n return x\r\n } else {\r\n {\r\n billRange: false\r\n }\r\n\r\n return null\r\n }\r\n}\r\n\r\nconst SalaryRangeValidator: ValidatorFn = (fg: FormGroup) => {\r\n const JobTypeID = fg.get('JobTypeID').value\r\n const MinSalary =\r\n fg.get('MinSalary').value == undefined || fg.get('MinSalary').value == null || fg.get('MinSalary').value == ''\r\n ? 0\r\n : fg.get('MinSalary').value\r\n const MaxSalary =\r\n fg.get('MaxSalary').value == undefined || fg.get('MaxSalary').value == null || fg.get('MaxSalary').value == ''\r\n ? 0\r\n : fg.get('MaxSalary').value\r\n if (MaxSalary == '' || MaxSalary == undefined) return null\r\n if (JobTypeID == Common.enumJobContractType.JT_C2H || JobTypeID == Common.enumJobContractType.JT_PERM) {\r\n var x = MinSalary !== null && MaxSalary !== null && MinSalary <= MaxSalary ? null : { salaryRange: true }\r\n return x\r\n } else {\r\n {\r\n salaryRange: false\r\n }\r\n return null\r\n }\r\n}\r\n@Component({\r\n selector: 'job-other',\r\n templateUrl: './job-other.component.html',\r\n styleUrls: ['./job-other.component.scss'],\r\n providers: [DatePipe],\r\n})\r\nexport class JobOtherComponent implements OnInit, AfterViewInit, OnDestroy {\r\n jobTypevalue: number\r\n public loading = false\r\n showBillRate: boolean\r\n showSalary: boolean\r\n myDate = new Date()\r\n jobForm: FormGroup\r\n minDate: Date = new Date()\r\n model: iJob\r\n job: iJob = {}\r\n selectedLegalTypeArray: MatTableDataSource //JobLegalType[];\r\n selectedInterviewTypeArray: MatTableDataSource\r\n selectedBakGrdChkArrayItems = []\r\n legaltypes: LegalType[]\r\n interviewtypes: InterviewType[]\r\n backgroundchecks: BackgroundCheck[]\r\n jobtypes: JobType[]\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n second: any\r\n keyData: any\r\n legalStatusCtrl = new FormControl()\r\n myselectedFoods = []\r\n legalTypeCrtl: FormControl\r\n interviewTypeCrtl: FormControl\r\n backGroundCrtl: FormControl\r\n workTypeID: number\r\n modelComments: iCommments\r\n previousNote: string\r\n jsMaxsubmit: number\r\n prevJob: any\r\n isJobEdited: boolean = false\r\n minStartDate: Date = new Date()\r\n minEndDate: Date = new Date()\r\n maxSubmissionDate: Date = new Date()\r\n isLoaded: boolean = false\r\n matcher = new CustomErrorStateMatcher()\r\n travelPercent: HTMLTemplateElement\r\n\r\n get f() {\r\n return this.jobForm.controls\r\n }\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n constructor(\r\n private commonService: CommonService,\r\n public authService: AuthenticationService,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.minDate = new Date()\r\n this.minStartDate = new Date()\r\n this.minEndDate = new Date()\r\n this.maxSubmissionDate = new Date()\r\n }\r\n visible = true\r\n selectable = true\r\n removable = true\r\n addOnBlur = true\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n minBillRate = 1\r\n //minSalary=15000;\r\n ngOnInit(): void {\r\n this.travelPercent = document.querySelector('#travelPercentage')\r\n this.travelPercent.setAttribute('style', 'display: none;')\r\n this.maxSubmissionDate = new Date()\r\n this.jobForm = this.formBuilder.group(\r\n {\r\n JobTypeID: ['', Validators.required],\r\n MinRate: [],\r\n MaxBillRate: [],\r\n MinSalary: [],\r\n MaxSalary: [],\r\n Positions: [1],\r\n StartDate: ['', Validators.required],\r\n EndDate: [null],\r\n ExpiryDate: [null],\r\n WorkHours: [40],\r\n IsHot: [],\r\n Notes: [''],\r\n PostedFor: ['', Validators.required],\r\n SecondaryRecruiterId: [],\r\n MaxSubmissionCount: [],\r\n VendorAllowedId: [],\r\n TravelRequired: [null],\r\n TravelPercentage: [null],\r\n },\r\n {\r\n validator: [jobStartDateRangeValidator, BillRangeValidator, SalaryRangeValidator],\r\n }\r\n )\r\n\r\n this.isLoaded = false\r\n this.job = Common.activeJob\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n } else {\r\n this.getLookupValues()\r\n }\r\n if (this.job) {\r\n this.getRecruiters(this.job.CompanyId)\r\n }\r\n this.bindFormData()\r\n }\r\n\r\n isFormFieldIsValid(field: string) {\r\n return this.jobForm.get(field).invalid && (this.jobForm.get(field).dirty || this.jobForm.get(field).touched)\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getRecruiters(this.job.CompanyId)\r\n }\r\n\r\n travelRequiredChanged(event) {\r\n if (event.value == 'true') {\r\n this.travelPercent.setAttribute('style', 'display: block;')\r\n this.travelPercent.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n } else {\r\n this.travelPercent.setAttribute('style', 'display: none;')\r\n }\r\n }\r\n\r\n checkIfValueNew(objectKey) {\r\n if (this.jobForm.get(objectKey).value !== this.prevJob[objectKey]) {\r\n this.isJobEdited = true\r\n }\r\n }\r\n\r\n submissionDateChangesHandler(event) {\r\n this.minDate = event.value\r\n this.minStartDate = event.value.getDate() + 1\r\n this.minEndDate = event.value.getDate() + 2\r\n }\r\n\r\n startDateChangesHandler(event) {\r\n this.minEndDate = new Date(new Date(event.value).setDate(event.value.getDate() + 1))\r\n this.maxSubmissionDate = event.value.getDate()\r\n }\r\n\r\n getLookupValues() {\r\n this.commonService.getConfig().subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getStatus().subscribe(\r\n (status) => {\r\n Common.wfStatus = status\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n }\r\n )\r\n this.commonService.getStates().subscribe((state) => {\r\n Common.states = state\r\n })\r\n }\r\n\r\n get MaxBillRate() {\r\n return this.jobForm.get('MaxBillRate')\r\n }\r\n get MaxSalary() {\r\n return this.jobForm.get('MaxSalary')\r\n }\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n //let para = {RoleId: Common.enumUserRoles.Recruiter,UserId: this.authService.userInfo.userID,}\r\n //ToDO: Use GetCompanyRecruiters. Currenly showing all recruiters (Phase 1)\r\n //Shows recruiters & accountmanagers\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job.PostedFor)\r\n this.jobForm.get('PostedFor').setValue(this.job.PostedFor)\r\n this.jobForm.get('SecondaryRecruiterId').setValue(this.job.SecondaryRecruiterId)\r\n this.isLoaded = true\r\n })\r\n }\r\n\r\n bindFormData() {\r\n if (this.job != null && this.job != undefined) {\r\n if (this.job.JobTypeID > 0) {\r\n this.jobForm.get('JobTypeID').setValue(this.job.JobTypeID)\r\n this.JobTypeChange(this.job.JobTypeID)\r\n this.jobForm.get('MinRate').setValue(this.job.MinBillRate)\r\n this.jobForm.get('MaxBillRate').setValue(this.job.MaxBillRate)\r\n this.jobForm.get('MinSalary').setValue(this.job.MinSalary)\r\n this.jobForm.get('MaxSalary').setValue(this.job.MaxSalary)\r\n this.jobForm.get('Positions').setValue(this.job.Positions)\r\n this.jobForm.get('MaxSubmissionCount').setValue(this.job.MaxSubmissionCount)\r\n this.jobForm.get('StartDate').setValue(this.job.StartDate)\r\n this.jobForm.get('EndDate').setValue(this.job.EndDate)\r\n this.jobForm.get('ExpiryDate').setValue(this.job.ExpiryDate)\r\n this.jobForm.get('PostedFor').setValue(this.job.PostedFor)\r\n\r\n this.jobForm.get('SecondaryRecruiterId').setValue(this.job.SecondaryRecruiterId)\r\n this.jobForm.get('WorkHours').setValue(this.job.WorkHours)\r\n this.jobForm.get('Notes').setValue(this.job.Notes)\r\n this.jobForm.get('VendorAllowedId').setValue(this.job.VendorAllowedId)\r\n this.jobForm.get('IsHot').setValue(this.job.IsHot)\r\n\r\n this.previousNote = this.job.Notes\r\n this.workTypeID = this.job.WorkTypeID\r\n this.jobService.GetJobLegalStatus(this.job.JobId).subscribe((res) => {\r\n var x = res as iJobLegalType[]\r\n let jldata: iJobLegalType[] = []\r\n let ltSelected: any[] = []\r\n for (let index = 0; index < x.length; index++) {\r\n ltSelected.push(x[index]['LegalTypeId'])\r\n jldata.push({\r\n JobLegalTypeId: x[index]['JobLegalTypeId'],\r\n JobId: this.job.JobId,\r\n LegalTypeId: x[index]['LegalTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n\r\n if (ltSelected.indexOf(8) == -1) {\r\n ltSelected.push(8) // US Citizen should be added to all Job\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n })\r\n this.jobService.GetJobInterviewType(this.job.JobId).subscribe((res) => {\r\n var x = res as iJobInterviewType[]\r\n let jldata: iJobInterviewType[] = []\r\n let itSelected: any[] = []\r\n for (let index = 0; index < x.length; index++) {\r\n itSelected.push(x[index]['InterviewTypeId'])\r\n jldata.push({\r\n JobInterviewTypeId: x[index]['JobInterviewTypeId'],\r\n JobId: x[index]['JobId'],\r\n InterviewTypeId: x[index]['InterviewTypeId'],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n this.interviewTypeCrtl = new FormControl(itSelected)\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jldata)\r\n })\r\n if (this.job.BackgroundCheckId) {\r\n var str = this.job.BackgroundCheckId\r\n var temp = new Array()\r\n temp = str.split(',').map(Number)\r\n this.backGroundCrtl = new FormControl(temp)\r\n this.selectedBakGrdChkArrayItems = temp\r\n }\r\n } else {\r\n this.defaultSetting()\r\n if (this.job) {\r\n this.companyJobSetting(this.job.CompanyId)\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.jobForm.markAllAsTouched()\r\n this.isJobEdited = false\r\n if (this.jobForm.valid) {\r\n this.saveJobDetails()\r\n }\r\n }\r\n\r\n saveJobDetails() {\r\n this.loading = true\r\n let activeJob: iJob = Common.activeJob\r\n this.model = activeJob\r\n\r\n this.model.JobTypeID = this.jobForm.get('JobTypeID').value\r\n this.model.MaxBillRate =\r\n this.jobForm.get('MaxBillRate').value == '' ? null : Number(this.jobForm.get('MaxBillRate').value)\r\n this.model.MaxSalary =\r\n this.jobForm.get('MaxSalary').value == '' ? null : Number(this.jobForm.get('MaxSalary').value)\r\n this.model.Positions = Number(\r\n this.jobForm.get('Positions').value == '' ? 0 : this.jobForm.get('Positions').value\r\n )\r\n this.model.StartDate = this.jobForm.get('StartDate').value == '' ? 0 : this.jobForm.get('StartDate').value\r\n this.model.EndDate = this.jobForm.get('EndDate').value == '' ? 0 : this.jobForm.get('EndDate').value\r\n this.model.ExpiryDate = this.jobForm.get('ExpiryDate').value == '' ? 0 : this.jobForm.get('ExpiryDate').value\r\n this.model.MaxSubmissionCount = Number(\r\n this.jobForm.get('MaxSubmissionCount').value == ''\r\n ? null\r\n : Number(this.jobForm.get('MaxSubmissionCount').value)\r\n )\r\n this.model.PostedFor = this.jobForm.get('PostedFor').value == '' ? 0 : this.jobForm.get('PostedFor').value\r\n this.model.SecondaryRecruiterId =\r\n this.jobForm.get('SecondaryRecruiterId').value == '' ? 0 : this.jobForm.get('SecondaryRecruiterId').value\r\n this.model.Notes = this.jobForm.get('Notes').value == '' ? '' : this.jobForm.get('Notes').value\r\n this.model.IsHot = Boolean(this.jobForm.get('IsHot').value)\r\n // Boolean(this.jobForm.get('IsHot').value == \"\" ? false : this.jobForm.get('IsHot').value);\r\n this.model.WorkHours = Number(\r\n this.jobForm.get('WorkHours').value == '' ? 0 : Number(this.jobForm.get('WorkHours').value)\r\n )\r\n this.model.WorkTypeID = Number(this.workTypeID)\r\n this.model.VendorAllowedId = Number(\r\n this.jobForm.get('VendorAllowedId').value == '' ? false : this.jobForm.get('VendorAllowedId').value\r\n )\r\n this.model.JobId = activeJob.JobId\r\n this.model.JobStatusID = activeJob.JobStatusID\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.BackgroundCheckId = JSON.stringify(this.selectedBakGrdChkArrayItems)\r\n this.model.TravelRequired =\r\n this.jobForm.get('TravelRequired').value != null\r\n ? this.jobForm.get('TravelRequired').value == 'true'\r\n ? true\r\n : false\r\n : null\r\n this.model.TravelPercentage =\r\n this.jobForm.get('TravelRequired').value != null && this.jobForm.get('TravelPercentage').value != null\r\n ? this.jobForm.get('TravelPercentage').value\r\n : null\r\n if (this.selectedLegalTypeArray != null) {\r\n this.model.JobLegalTypes = this.selectedLegalTypeArray.data\r\n } else {\r\n let jldata: iJobLegalType[] = []\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n if (this.selectedInterviewTypeArray != null) {\r\n this.model.JobInterviewTypes = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n this.jobService.AddJobDescription(this.model).subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job other details successfully saved.', '')\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(3)\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n )\r\n }\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n public getBetween(strSource, strStart, strEnd) {\r\n if (strSource.ToLower().Contains(strStart.ToLower()) && strSource.ToLower().Contains(strEnd.ToLower())) {\r\n let Start, End\r\n Start = strSource.ToLower().IndexOf(strStart.ToLower(), 0) + strStart.Length\r\n End = strSource.ToLower().IndexOf(strEnd.ToLower(), Start)\r\n return strSource.Substring(Start, End - Start)\r\n }\r\n\r\n return ''\r\n }\r\n\r\n ParseJobText() {\r\n //let searchData = { Description: this.jDescription };\r\n var regex = /[\\d|,|.|e|E|\\+]+/g\r\n this.keyData = Common.JobKeywords\r\n try {\r\n for (let index = 0; index < this.keyData.Keys.length; index++) {\r\n var element = this.keyData.Keys[index]\r\n\r\n if (element.Key == 'Positions' && element.Value != '') {\r\n this.f.Positions.setValue(element.Value.match(/\\d+/)[0])\r\n }\r\n if (element.Key == 'MaximumSubmission' && element.Value != '') {\r\n this.f.MaxSubmissionCount.setValue(element.Value.match(/\\d+/)[0])\r\n }\r\n if (element.Key == 'StartDate' && element.Value != '') {\r\n if (this.f.StartDate.value == '' || this.f.StartDate.value == null)\r\n this.f.StartDate.setValue(new Date(element.Value.trim()))\r\n }\r\n if (element.Key == 'EndDate' && element.Value != '') {\r\n if (this.f.EndDate.value == '' || this.f.EndDate.value == null)\r\n this.f.EndDate.setValue(new Date(element.Value.trim()))\r\n }\r\n if (element.Key == 'Duration' && element.Value != '') {\r\n let duration = element.Value.trim()\r\n let x = duration.split(' - ')\r\n let startDate = x[0] || '' //duration.Substring(0, duration.IndexOf(\" - \"));\r\n let endtDate = x[1] || '' //this.getBetween(duration,duration.IndexOf(\" - \"),10);\r\n //var rx = /(? 1) {\r\n if (this.f.MinRate.value == '' || this.f.MinRate.value == null) {\r\n this.f.MinRate.setValue(Number(rates[0]))\r\n }\r\n if (this.f.MaxBillRate.value == '' || this.f.MaxBillRate.value == null) {\r\n this.f.MaxBillRate.setValue(Number(rates[1]))\r\n }\r\n } else if (rates.length == 1) {\r\n if (this.f.MinRate.value == '' || this.f.MinRate.value == null) {\r\n this.f.MinRate.setValue(Number(rates[0]))\r\n }\r\n if (this.f.MaxBillRate.value == '' || this.f.MaxBillRate.value == null) {\r\n this.f.MaxBillRate.setValue(Number(rates[0]))\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } catch {}\r\n }\r\n isCharDigit(n: any) {\r\n return !!n.trim() && n * 0 == 0\r\n }\r\n JobTypeChange(selectedValue) {\r\n this.jobTypevalue = selectedValue\r\n if (this.jobTypevalue !== 12) {\r\n this.jobForm.get('EndDate').addValidators([Validators.required])\r\n } else {\r\n this.jobForm.get('EndDate').clearValidators()\r\n }\r\n this.jobForm.get('EndDate').updateValueAndValidity()\r\n //this.minSalary=15000;\r\n this.minBillRate = 1\r\n if (selectedValue == Common.enumJobContractType.JT_C2C) {\r\n // Contract ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = false\r\n this.jobForm.controls['MaxSalary'].clearValidators()\r\n this.jobForm.get('MaxSalary').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_C2H) {\r\n // Contract to hire ID (lookup)\r\n this.showBillRate = true\r\n this.showSalary = true\r\n this.jobForm.get('MaxSalary').setValue('')\r\n this.jobForm.get('MaxBillRate').setValue('')\r\n } else if (selectedValue == Common.enumJobContractType.JT_PERM) {\r\n // Permanent\r\n this.showBillRate = false\r\n this.showSalary = true\r\n\r\n //this.minSalary=null;\r\n this.minBillRate = 0\r\n this.jobForm.controls['MaxBillRate'].clearValidators()\r\n this.jobForm.controls['MaxSalary'].clearValidators()\r\n this.jobForm.get('MaxBillRate').setValue('')\r\n }\r\n }\r\n\r\n onSelectLegalTypes(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobLegalType[] = []\r\n if (this.selectedLegalTypeArray != null) {\r\n jldata = this.selectedLegalTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.LegalTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n companyJobSetting(companyId) {\r\n if (Common.ConfigValues != null) {\r\n var bgcks = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 154 && //backgroundChecks\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n let bgcksids: any[] = []\r\n bgcksids = bgcks.split(',').map((item) => Number(item))\r\n\r\n this.backGroundCrtl = new FormControl(bgcksids)\r\n this.selectedBakGrdChkArrayItems = bgcksids\r\n\r\n var wauth = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 155 && //work authorization\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n\r\n let waIds: any[] = []\r\n waIds = wauth.split(',').map((item) => Number(item))\r\n\r\n let jldata: iJobLegalType[] = []\r\n let ltSelected: any[] = []\r\n for (let index = 0; index < waIds.length; index++) {\r\n ltSelected.push(waIds[index])\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: waIds[index],\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n }\r\n // Add US Citizen as default- requried\r\n ltSelected.push(8)\r\n\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobcatsetting) => {\r\n if (jobcatsetting) {\r\n var maxsubmit\r\n var vendorAllowed = false\r\n var jc = jobcatsetting\r\n .filter((option) => option.CategoryID == this.job.JobCategoryID)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.indexOf(this.job.JobCategoryID) > -1) {\r\n //A specific category\r\n maxsubmit = jobcatsetting\r\n .filter((option) => option.CategoryID == this.job.JobCategoryID)\r\n .map((x) => x.MaxSubmit)\r\n vendorAllowed = jobcatsetting\r\n .filter((option) => option.CategoryID == this.job.JobCategoryID)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n } else {\r\n //All-Other category\r\n maxsubmit = jobcatsetting.filter((option) => option.CategoryID == 1312).map((x) => x.MaxSubmit)\r\n vendorAllowed = jobcatsetting\r\n .filter((option) => option.CategoryID == 1312)\r\n .map((x) => Boolean(x.IsVendorAllowed))[0]\r\n }\r\n\r\n if (maxsubmit) {\r\n if (this.jobForm.get('MaxSubmissionCount').value == '') {\r\n this.jobForm.get('MaxSubmissionCount').setValue(maxsubmit)\r\n this.jsMaxsubmit = Number(maxsubmit)\r\n }\r\n }\r\n if (vendorAllowed) {\r\n this.jobForm.get('VendorAllowedId').setValue(vendorAllowed)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n defaultSetting() {\r\n this.jobForm.get('Positions').setValue(1)\r\n this.jobForm.get('WorkHours').setValue(40)\r\n this.jobForm.get('JobTypeID').setValue(10)\r\n this.jobForm.get('MinRate').setValue('')\r\n this.jobForm.get('MaxBillRate').setValue('')\r\n this.jobForm.get('MinSalary').setValue('')\r\n this.jobForm.get('MaxSalary').setValue('')\r\n this.JobTypeChange(10)\r\n this.ParseJobText()\r\n\r\n this.workTypeID = 1\r\n\r\n let ltSelected: any[] = []\r\n let jldata: iJobLegalType[] = []\r\n ltSelected.push(8)\r\n jldata.push({\r\n JobLegalTypeId: 0,\r\n JobId: this.job.JobId,\r\n LegalTypeId: 8,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n this.legalTypeCrtl = new FormControl(ltSelected)\r\n this.selectedLegalTypeArray = new MatTableDataSource(jldata)\r\n }\r\n maxSubmitUpdated(event) {\r\n if (this.jsMaxsubmit > 0) {\r\n this.jobForm.get('MaxSubmissionCount').setValue(this.jsMaxsubmit * event.target.value)\r\n }\r\n }\r\n onSelectInterviewType(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n let jldata: iJobInterviewType[] = []\r\n if (this.selectedInterviewTypeArray != null) {\r\n jldata = this.selectedInterviewTypeArray.data\r\n }\r\n\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n jldata.push({\r\n JobInterviewTypeId: 0,\r\n JobId: this.job.JobId,\r\n InterviewTypeId: event.source.value,\r\n CreatedBy: this.authService.userInfo.userID,\r\n })\r\n } else {\r\n for (let order of jldata) {\r\n if (event.source.value === order.InterviewTypeId) {\r\n jldata.splice(jldata.indexOf(order), 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.selectedInterviewTypeArray = new MatTableDataSource(jldata)\r\n }\r\n\r\n onSelectBackGroundCheck(event: { isUserInput: any; source: { value: any; selected: any } }) {\r\n if (event.isUserInput) {\r\n if (event.source.selected === true) {\r\n this.selectedBakGrdChkArrayItems.push(event.source.value)\r\n } else {\r\n const index: number = this.selectedBakGrdChkArrayItems.indexOf(event.source.value)\r\n if (index !== -1) {\r\n this.selectedBakGrdChkArrayItems.splice(index, 1)\r\n }\r\n }\r\n }\r\n }\r\n\r\n recruiterHandler(event: any) {\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != event)\r\n }\r\n\r\n ngOnDestroy() {\r\n this.primaryRecruiters = []\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n \r\n Generals\r\n \r\n \r\n
\r\n \r\n
\r\n Job Type *\r\n \r\n \r\n \r\n {{ jt.Key }}\r\n \r\n \r\n \r\n Job Type is Required\r\n \r\n \r\n
\r\n
\r\n Max. Bill Rate/Hr \r\n \r\n \r\n \r\n
\r\n
\r\n Max. Salary/Annum \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Start Date *\r\n \r\n \r\n Start date is required \r\n \r\n \r\n Start date cannot be less than current date\r\n \r\n
\r\n
\r\n End Date*\r\n \r\n \r\n End date is required \r\n \r\n \r\n The end date cannot be before the start date\r\n \r\n
\r\n
\r\n Submission Due Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n No. of Positions\r\n \r\n \r\n \r\n
\r\n
\r\n Max Submission\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Work type & other details\r\n \r\n
\r\n\r\n
\r\n
\r\n Work Type*\r\n \r\n Full Time\r\n    \r\n Part Time\r\n \r\n
\r\n
\r\n No. of Hours/week\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Primary Recruiter*\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n Recruiter is required \r\n \r\n
\r\n
\r\n Secondary Recruiter\r\n \r\n \r\n \r\n {{ recruiter.FirstName }} | {{ recruiter.Email }}\r\n \r\n \r\n \r\n
\r\n
\r\n Work Permit\r\n \r\n \r\n \r\n {{ legaltype.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Interview Type\r\n \r\n \r\n \r\n {{ interviewtype?.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Background Checks\r\n \r\n \r\n \r\n {{ bgc.Key }}\r\n \r\n \r\n \r\n
\r\n
\r\n Travel Required\r\n \r\n \r\n Yes\r\n No\r\n \r\n \r\n
\r\n
\r\n Job Related Travel %\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Vendor Allowed \r\n \r\n \r\n
\r\n
\r\n Hot Job \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Router } from '@angular/router';\r\nimport { Component, OnInit, Output, EventEmitter, ChangeDetectionStrategy, TemplateRef } from \"@angular/core\";\r\nimport { Common } from 'src/app/common/common';\r\nimport { iJob, iJobSkill, iJobEducation, iJobCertification, iJobQuestionnaire, } from 'src/app/models/job.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { JobService } from 'src/app/job/job.service';\r\nimport { CommonService } from 'src/app/services/common.service';\r\nimport { Observable } from 'rxjs';\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { JobTypes } from 'src/app/enums/jobType';\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType';\r\n\r\n@Component({\r\n selector: 'job-preview',\r\n templateUrl: './job-preview.component.html',\r\n styleUrls: ['./job-preview.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class JobPreviewComponent implements OnInit {\r\n\r\n displayedColumns: any[];\r\n displyEduColumns: any[];\r\n displyCertColumns: any[];\r\n job: iJob = {};\r\n showBillRate: boolean;\r\n showSalary: boolean;\r\n jobskillArray: Array = [];\r\n educationcArray: Array = [];\r\n certificationArray: Array = [];\r\n certificationArray$: Observable>;\r\n certifications: any;\r\n optionSelected: string = '';\r\n education: any;\r\n optionalSkill: any = [];\r\n questioneArray: Array = [];\r\n\r\n @Output() jobAdded: EventEmitter = new EventEmitter();\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n skills: string[];\r\n skillExperience: number[];\r\n baseFilePath: Promise;\r\n isSkillLoaded: boolean = false;\r\n constructor(public authService: AuthenticationService, private JobService: JobService, private commonService: CommonService, private router: Router, private dialog: MatDialog,\r\n private notifyService: NotificationService) { }\r\n\r\n ngOnInit(): void {\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob;\r\n if (this.job.JobId > 0) {\r\n this.BindRequiredSkill(this.job.JobId);\r\n this.bindEducation(this.job.JobId);\r\n this.bindCertification(this.job.JobId);\r\n this.bindQuestionnaire(this.job.JobId);\r\n if (this.job.JobTypeID == Common.enumJobContractType.JT_C2C) {\r\n this.showSalary = true;\r\n }\r\n\r\n else if (this.job.JobTypeID == Common.enumJobContractType.JT_PERM) {\r\n this.showBillRate = true;\r\n }\r\n }\r\n else {\r\n this.jobskillArray = Common.JobKeywords.ReqSkills;\r\n this.optionalSkill = this.jobskillArray.filter(item => item.Required == false)\r\n }\r\n }\r\n this.baseFilePath = this.commonService.getAppSettings().then(data => {\r\n this.baseFilePath = data.filePath;\r\n })\r\n\r\n }\r\n \r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService.updateOjectStatus(objectID, objectTypeId\r\n , statusID, comments, userID).subscribe(result => {\r\n result;\r\n });\r\n }\r\n\r\n saveJob(statusId, templateRef: TemplateRef) {\r\n let job: iJob = Common.activeJob;\r\n if (job.JobId > 0) {\r\n\r\n if (statusId == Common.enumJobStatuses.JOB_DRAFT) {\r\n this.notifyService.showSuccess('Job successfully saved.', '');\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_DRAFT;\r\n Common.activeJob.JobStatus = 'Draft';\r\n this.updateObjectStatus(job.JobId, Common.enumObjectTypes.Job, Common.enumJobStatuses.JOB_DRAFT, '', this.authService.userInfo.userID);\r\n this.router.navigate(['/jobs']);\r\n return;\r\n }\r\n\r\n else if (statusId == Common.enumJobStatuses.JOB_OPEN) {\r\n let vresult: any;\r\n if (this.job.JobTypeID == JobTypes.Contract && this.CheckValueForZero(this.job.MaxBillRate)) {\r\n this.notifyService.showWarning('Max Bill Rate is Required', '')\r\n } else if (this.job.JobTypeID == JobTypes.Permanent && this.CheckValueForZero(this.job.MaxSalary)) {\r\n this.notifyService.showWarning('Max Salary is Required', '')\r\n } else if (this.job.JobTypeID == JobTypes.ContractToHire && this.CheckValueForZero(this.job.MaxSalary) && this.CheckValueForZero(this.job.MaxBillRate)) {\r\n this.notifyService.showWarning('Max Bill Rate and Max Salary is Required', '')\r\n }\r\n this.JobService.GetJobValidation(Common.activeJob.JobId).subscribe(result => {\r\n vresult = result;\r\n if (vresult.length > 0) {\r\n let reqColums = vresult.map(function (val) { return val.ColumnName; }).join(',');\r\n this.notifyService.showWarning('Can not change to Open, Please fill required fields: ' + reqColums, '');\r\n return;\r\n }\r\n else {\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_OPEN;\r\n Common.activeJob.JobStatus = 'Open';\r\n this.updateObjectStatus(job.JobId, Common.enumObjectTypes.Job, Common.enumJobStatuses.JOB_OPEN, '', this.authService.userInfo.userID);\r\n this.dialog.open(templateRef, {\r\n maxWidth: '531px',\r\n maxHeight: '304px',\r\n height: '100%',\r\n width: '100%',\r\n }\r\n );\r\n this.router.navigate(['/jobs']);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n else {\r\n\r\n this.notifyService.showError('Could not save the Job!', '');\r\n\r\n }\r\n\r\n }\r\n BindRequiredSkill(jobid) {\r\n\r\n this.JobService.GetJobSkills(jobid\r\n ).subscribe((res) => {\r\n let JobSkillDatasource = res as iJobSkill[]\r\n\r\n if (res == null || JobSkillDatasource.length == 0) {\r\n this.jobskillArray = Common.JobKeywords.ReqSkills;\r\n }\r\n else {\r\n this.jobskillArray = JobSkillDatasource;\r\n this.skills = this.jobskillArray.map(x => x.SkillName)\r\n this.skillExperience = this.jobskillArray.map(x => x.MinimumExperience)\r\n this.skillExperience=this.jobskillArray.map(x=>x.MaximumExperience)\r\n this.isSkillLoaded = true;\r\n }\r\n }\r\n );\r\n }\r\n bindEducation(jobid) {\r\n this.JobService.GetJobEducation(jobid).subscribe((res) => {\r\n this.educationcArray = res as iJobEducation[]\r\n this.education = this.educationcArray.map(x => x.EducationName).join(', ');\r\n }\r\n );\r\n }\r\n\r\n bindCertification(jobid) {\r\n this.certificationArray$ = this.JobService.GetJobCertification(jobid);\r\n this.certifications = this.certificationArray$.subscribe((res) =>\r\n res.map(x => x.CertificationName).join(', ')\r\n )\r\n };\r\n\r\n bindQuestionnaire(jobid) {\r\n this.JobService.GetJobQuestionnaire(jobid).subscribe((res) => {\r\n this.questioneArray = res as iJobQuestionnaire[]\r\n }\r\n );\r\n }\r\n resetOption() {\r\n this.optionSelected = '';\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n CheckValueForZero(val) {\r\n return val == 0\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title: {{ job?.JobTitleName }}\r\n
\r\n
\r\n Job Code: {{ job?.JobCode }}\r\n
\r\n
\r\n Client Name: {{ job?.CompanyName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Hiring Manager: {{ job.CompanyContact }}\r\n
\r\n
\r\n Location Address: {{ job.Location?.City }}, {{ job.Location?.State }}\r\n
\r\n
\r\n Zipcode: {{ job.Location?.ZipCode }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Job Details\r\n \r\n
\r\n
\r\n \"Job\r\n Job Type{{ job?.JobType }}\r\n
\r\n\r\n
\r\n \"Experience\"\r\n Experience{{ job?.SkillLevel }} \r\n
\r\n
\r\n \"CTC\"\r\n \r\n Bill Rate \r\n \r\n {{ job?.MaxBillRate | currency : 'USD' : 'symbol-narrow' : '1.0-0' }}/hr\r\n \r\n \r\n Bill Rate/Annual Salary\r\n \r\n \r\n {{ job?.MaxBillRate | currency : 'USD' : 'symbol-narrow' }}/hr,\r\n {{ job?.MaxSalary | currency : 'USD' : 'symbol-narrow' }}/yr\r\n \r\n Annual Salary \r\n \r\n {{ job?.MaxSalary | currency : 'USD' : 'symbol-narrow' }}/yr\r\n \r\n \r\n
\r\n
\r\n \"Job\r\n Job Location\r\n \r\n 0\">{{ job?.Location?.City }}\r\n\r\n 0 && job?.Location?.StateCode?.length > 0\"\r\n >,\r\n 0\" class=\"ml-1\"\r\n >{{ job?.Location?.StateCode }}\r\n \r\n \r\n \r\n
\r\n
\r\n \"No\r\n No of Jobs{{ job.Positions }} \r\n
\r\n
\r\n
\r\n\r\n \r\n Job Description\r\n \r\n
\r\n
\r\n\r\n \r\n Other Details\r\n \r\n
\r\n
\r\n
\r\n Job Type\r\n {{ job.JobType?.length > 0 ? job.JobType : 'N/A' }}\r\n
\r\n
\r\n Job Start Date\r\n {{ job.StartDate | date }}\r\n
\r\n
\r\n Positions\r\n {{ job?.Positions }}\r\n
\r\n
\r\n Work Type\r\n {{ job.WorkTypeID == 1 ? 'Full Time' : 'Part Time' }}\r\n
\r\n
\r\n Primary Recruiter\r\n {{ job.RecruiterName?.length > 0 ? job.RecruiterName : 'N/A' }}\r\n
\r\n
\r\n Seconday Recruiter\r\n {{\r\n job.SecondaryRecruiter?.length > 0 ? job.SecondaryRecruiter : 'N/A'\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Bill Rate\r\n ${{ job.MaxBillRate }}\r\n
\r\n
\r\n Job End Date\r\n {{ job.EndDate | date }}\r\n
\r\n
\r\n Work Option\r\n {{ job.WorkOption }}\r\n
\r\n
\r\n Max. Submission\r\n {{ job?.MaxSubmissionCount ? job?.MaxSubmissionCount : 'N/A' }}\r\n
\r\n
\r\n Interview Type\r\n {{ job.InterviewTypeNames }}\r\n
\r\n
\r\n Vendor Allowed\r\n {{ job.VendorAllowedId == 1 ? 'Yes' : 'No' }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Salary/Annum\r\n {{\r\n job.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2'\r\n }}\r\n
\r\n
\r\n No. of Hrs per week\r\n {{ job.WorkHours }}\r\n
\r\n
\r\n Submission Date\r\n {{ job.ExpiryDate | date }}\r\n
\r\n
\r\n Work Permit\r\n {{ job.LegalTypeNames }}\r\n
\r\n
\r\n Background Checks\r\n {{ job.BackgroundcheckNames }}\r\n
\r\n
\r\n Hot Job\r\n {{ job.IsHot ? 'Yes' : 'No' }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Education & Certification\r\n \r\n
\r\n
\r\n Education\r\n {{ education }}\r\n
\r\n
\r\n Certifications\r\n
\r\n \r\n {{ item.CertificationName }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Professional Skills\r\n \r\n
\r\n {{ skill.SkillName }} ({{ skillExperience[i] }} Yrs)\r\n
\r\n
\r\n\r\n \r\n Questionnaire\r\n \r\n
    \r\n
  • \r\n {{ i + 1 }}\r\n
    \r\n \r\n \r\n \r\n {{ option }}\r\n \r\n \r\n
    \r\n \r\n {{ option }}\r\n \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n close\r\n
\r\n
\r\n \"\"\r\n Created Job Successfully!\r\n You can view job from landing page and edit.\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewEncapsulation } from '@angular/core'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { iJobQuestionnaire } from 'src/app/models/job.model'\r\nimport { FormBuilder, FormGroup } from '@angular/forms'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n@Component({\r\n selector: 'job-questionnaire',\r\n templateUrl: './job-questionnaire.component.html',\r\n styleUrls: ['./job-questionnaire.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobQuestionnaireComponent implements OnInit {\r\n questionTypeId = 0\r\n dynamicArray: Array = []\r\n newDynamic: any = {}\r\n jobQuestionaireData: iJobQuestionnaire[]\r\n job: iJob = {}\r\n data: iJob\r\n isActiveIndex: number\r\n questionType: string = ''\r\n iconSrcCommon = 'assets/img/Leap-Tiger_Icons/Job-Module-Icon/'\r\n prevQuesArray: any\r\n isJobEdited: boolean = false\r\n editQuestion = false\r\n editQuestionIndex: number\r\n isQuestionInputShow: boolean = false\r\n jobQuestionnaireForm: FormGroup\r\n\r\n public loading = false\r\n\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n deleteQuestionIndex: any\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {}\r\n\r\n questionTypes = [\r\n {\r\n questionTypeId: 2,\r\n questionTypename: 'Line Text',\r\n iconSrc: 'lineText.svg',\r\n activeIconSrc: 'lineTextActive.svg',\r\n isActive: false,\r\n },\r\n {\r\n questionTypeId: 4,\r\n questionTypename: 'Single Select',\r\n iconSrc: 'singleSelect.svg',\r\n activeIconSrc: 'singleSelectActive.svg',\r\n isActive: false,\r\n },\r\n {\r\n questionTypeId: 5,\r\n questionTypename: 'Multi Select (Checkboxes)',\r\n iconSrc: 'multiSelect.svg',\r\n activeIconSrc: 'multiSelectActive.svg',\r\n isActive: false,\r\n },\r\n ]\r\n visible = true\r\n selectable = true\r\n removable = true\r\n addOnBlur = true\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n ngOnInit(): void {\r\n this.jobQuestionnaireForm = this.formBuilder.group({\r\n Question: [''],\r\n QuestionOptions: [],\r\n })\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n if (this.job.JobId > 0) {\r\n this.bindQuestionnaire(this.job.JobId)\r\n }\r\n }\r\n }\r\n\r\n addRow(id: number) {\r\n if (this.jobQuestionnaireForm.get('Question').value.length === 0) {\r\n this.notifyService.showWarning('Please enter the question', '')\r\n } else {\r\n this.questionTypeId = id\r\n if (this.jobQuestionnaireForm.get('Question').value.length > 0) {\r\n if (this.jobQuestionnaireForm.get('QuestionOptions').value != null) {\r\n if (this.editQuestion) {\r\n this.dynamicArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n this.dynamicArray[this.editQuestionIndex].Options =\r\n this.jobQuestionnaireForm.get('QuestionOptions').value\r\n } else {\r\n this.newDynamic = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: this.jobQuestionnaireForm.get('QuestionOptions').value,\r\n viewOptions: this.jobQuestionnaireForm.get('QuestionOptions').value?.split(','),\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n }\r\n } else {\r\n if (this.editQuestion) {\r\n this.dynamicArray[this.editQuestionIndex].Question =\r\n this.jobQuestionnaireForm.get('Question').value\r\n } else {\r\n this.newDynamic = {\r\n JobQuestionId: null,\r\n JobId: null,\r\n Question: this.jobQuestionnaireForm.get('Question').value,\r\n QuestionTypeId: id,\r\n Options: '',\r\n viewOptions: [],\r\n CreatedDate: new Date(),\r\n CreatedBy: 1,\r\n UpdatedDate: new Date(),\r\n UpdatedBy: 1,\r\n IsActive: true,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n }\r\n }\r\n }\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n return true\r\n }\r\n }\r\n\r\n cancelEdit() {\r\n this.jobQuestionnaireForm.reset()\r\n this.editQuestion = false\r\n this.isQuestionInputShow = false\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.deleteQuestionIndex = i\r\n }\r\n\r\n removeRow(index) {\r\n if (this.dynamicArray.length > 0) {\r\n this.dynamicArray.splice(index, 1)\r\n }\r\n this.dialog.closeAll()\r\n }\r\n\r\n bindQuestionnaire(jobid) {\r\n this.jobService.GetJobQuestionnaire(jobid).subscribe(\r\n (res) => {\r\n this.jobQuestionaireData = res as iJobQuestionnaire[]\r\n\r\n if (res == null || this.jobQuestionaireData.length == 0) {\r\n if (Common.activeJob.Questionnaire != undefined && Common.activeJob.Questionnaire != null) {\r\n this.dynamicArray = Common.activeJob.Questionnaire\r\n }\r\n } else {\r\n this.dynamicArray = this.jobQuestionaireData\r\n }\r\n },\r\n (err: any) => {},\r\n () => {}\r\n )\r\n }\r\n saveJobQuestionnaire() {\r\n this.isJobEdited = false\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save!', '')\r\n return\r\n }\r\n\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n\r\n this.data.Questionnaire = this.dynamicArray\r\n Common.activeJob.Questionnaire = this.dynamicArray\r\n this.jobService.AddQuestionnaire(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job questionnaire successfully saved.', '')\r\n this.jobAdded.emit(6)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n },\r\n (err: any) => {\r\n console.log(err)\r\n this.notifyService.showError('Could not save!' + err, '')\r\n return\r\n },\r\n () => console.log()\r\n )\r\n }\r\n questionTypeSelected(item: string, i: number) {\r\n this.isQuestionInputShow = true\r\n this.questionTypes.forEach((item, index) => {\r\n item.isActive = i === index ? true : false\r\n })\r\n this.questionType = item\r\n this.isActiveIndex = i\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n editQuestionHandler(index) {\r\n this.isQuestionInputShow = true\r\n this.editQuestion = true\r\n this.editQuestionIndex = index\r\n if (this.dynamicArray[index].QuestionTypeId === 2) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.dynamicArray[index].Question)\r\n this.questionType = 'Line Text'\r\n } else if (this.dynamicArray[index].QuestionTypeId === 4) {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.dynamicArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.dynamicArray[index].Options)\r\n this.questionType = 'Single Select'\r\n } else {\r\n this.jobQuestionnaireForm.get('Question').setValue(this.dynamicArray[index].Question)\r\n this.jobQuestionnaireForm.get('QuestionOptions').setValue(this.dynamicArray[index].Options)\r\n this.questionType = 'Multi Select (Checkboxes)'\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n Add Questionnaire\r\n \r\n \r\n\r\n
\r\n Choose type of Question: \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Enter question\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Enter question\r\n \r\n \r\n
\r\n
\r\n \r\n Enter Options separate by ,\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Enter question\r\n \r\n \r\n
\r\n
\r\n \r\n Enter Options separate by ,\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
    0\" class=\"question-list\">\r\n
  1. \r\n {{i+1}}\r\n
    \r\n
    \r\n
    \r\n {{question.Question}}\r\n \"Edit\r\n
    \r\n
    \r\n {{option}}\r\n
    \r\n
    \r\n {{option}}\r\n
    \r\n
    \r\n \r\n
    \r\n \"LineLine Text\r\n \"SingleSingle Select\r\n \"MultiMulti Select (Checkboxes)\r\n \r\n
    \r\n
    \r\n
  2. \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this question?\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { NgModule } from '@angular/core'\r\nimport { RouterModule, Routes } from '@angular/router'\r\nimport { AuthGuard } from '../guards/auth.guard'\r\nimport { JobListComponent } from './job-list/job-list.component'\r\nimport { JobDialogComponent } from './job-dialog/job-dialog.component'\r\nimport { ADD_JOB_PATH, ADD_PATH } from '../constants/page-path'\r\nimport { IsCanAccessPageGuard } from '../guards/is-can-access-page.guard'\r\nimport { JobAddComponent } from './job-add/job-add.component'\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: JobListComponent,\r\n children: [],\r\n canActivate: [AuthGuard],\r\n },\r\n {\r\n path: `${ADD_PATH}`,\r\n component: JobDialogComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n {\r\n path: `${ADD_JOB_PATH}`,\r\n component: JobAddComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n },\r\n {\r\n path: `${ADD_JOB_PATH}/:id`,\r\n component: JobAddComponent,\r\n children: [],\r\n canActivate: [AuthGuard, IsCanAccessPageGuard],\r\n }\r\n]\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class JobRoutingModule { }\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { FormArray, FormControl } from '@angular/forms'\r\nimport { map, startWith } from 'rxjs/operators'\r\nimport { Observable } from 'rxjs'\r\nimport { SkillLevel, SkillName, iJob } from 'src/app/models/job.model'\r\nimport { FormBuilder, FormGroup } from '@angular/forms'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { Common } from 'src/app/common/common'\r\nimport { iJobSkill, iSkills } from 'src/app/models/job.model'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { CustomErrorStateMatcher } from 'src/app/helper/errorStateMatcher'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\n\r\n@Component({\r\n selector: 'job-skills',\r\n templateUrl: './job-skills.component.html',\r\n styleUrls: ['./job-skills.component.scss'],\r\n})\r\nexport class JobSkillsComponent implements OnInit {\r\n public loading = false\r\n i = 0\r\n isEdit = false\r\n jobForm: FormGroup\r\n addSkill: boolean = false\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n dynamicArray: Array = []\r\n newDynamic: any = {}\r\n skillNames: iSkills[]\r\n job: iJob = {}\r\n skillName: string = ''\r\n experience: number\r\n required: boolean = false\r\n SkillLevels: SkillLevel[]\r\n isSkillNameInvalid: boolean = false\r\n isSkillExperienceInvalid: boolean = false\r\n test1 = 1\r\n displayedColumns: any[]\r\n JobSkillDatasource: iJobSkill[]\r\n isExperienceCountInvalid: boolean = false\r\n isExperienceNull: boolean = false\r\n isSkillValid: boolean = false\r\n data: iJob\r\n requiredForm = this.formBuilder.group({\r\n required: false,\r\n })\r\n filteredSkill: Observable\r\n skillCtrl = new FormControl()\r\n skills: any = []\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n editJobForm: FormGroup\r\n editArray: iJobSkill[]\r\n prevSkills: any\r\n matcher = new CustomErrorStateMatcher()\r\n\r\n isJobEdited: boolean = false\r\n @Input() events: Observable\r\n @Output() isChangeEdited = new EventEmitter()\r\n isReqSkillPresent: boolean = false\r\n deleteQuestionIndex: any\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {\r\n this.filteredSkill = this.skillCtrl.valueChanges.pipe(\r\n startWith(''),\r\n map((s) => (s ? this._filterSkill(s) : this.skills.slice()))\r\n )\r\n }\r\n onSearchKeyPressed(data): void {\r\n if (data.length > 0) {\r\n this.jobService.getSkills(data).subscribe((res) => {\r\n this.skills = res as SkillName[]\r\n })\r\n }\r\n }\r\n applyFilterSkill(filterValue, index: number) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n\r\n if (filterValue.length > 0) {\r\n this.jobService.getSkills(filterValue).subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n })\r\n } else {\r\n this.isSkillNameInvalid = true\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.jobForm = this.formBuilder.group({\r\n required: false,\r\n })\r\n\r\n this.editJobForm = this.formBuilder.group({\r\n editSkillsForm: this.formBuilder.array([]),\r\n })\r\n\r\n if (Common.lookUp != null) {\r\n this.SkillLevels = Common.lookUp\r\n .filter((item) => item.TypeCode == 'SkillLevelID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n }\r\n\r\n if (Common.activeJob != undefined && Common.activeJob != null) {\r\n this.job = Common.activeJob\r\n if (this.job.JobId > 0) {\r\n this.BindRequiredSkill(this.job.JobId)\r\n } else {\r\n this.dynamicArray = Common.JobKeywords.ReqSkills\r\n }\r\n }\r\n }\r\n\r\n _filterSkill(name: string) {\r\n const filterValue = name.toLowerCase()\r\n return this.skills.filter((option) => option.toLowerCase().includes(filterValue))\r\n }\r\n\r\n BindRequiredSkill(jobid) {\r\n this.jobService.GetJobSkills(jobid).subscribe(\r\n (res) => {\r\n this.JobSkillDatasource = res as iJobSkill[]\r\n if (res == null || this.JobSkillDatasource.length == 0) {\r\n if (Common.JobKeywords != null) {\r\n if (Common.JobKeywords.ReqSkills != null) this.dynamicArray = Common.JobKeywords.ReqSkills\r\n }\r\n } else {\r\n this.dynamicArray = this.JobSkillDatasource\r\n }\r\n },\r\n (err: any) => {\r\n console.log('Error while getiing Skills', err)\r\n }\r\n )\r\n }\r\n experienceChange(event) {\r\n \r\n let val = parseInt(event.target.value)\r\n let elementId: string = event.target.attributes.id.value\r\n let index = elementId.substring(elementId.indexOf('-') + 1, elementId.length)\r\n let skill: any = document.getElementById('skillLevelId-' + index)\r\n\r\n if (val < 1) {\r\n skill.setValue(this.SkillLevels[0].Value)\r\n } else if (val >= 1 && val < 5) {\r\n skill.setValue(this.SkillLevels[1].Value)\r\n } else {\r\n skill.setValue(this.SkillLevels[2].Value)\r\n }\r\n }\r\n\r\n btnSaveSkill() {\r\n this.job = Common.activeJob\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Skills could not save!', '')\r\n return\r\n }\r\n let skillCount = 0\r\n for (let index = 0; index < this.dynamicArray.length; index++) {\r\n if (this.dynamicArray[index].SkillName != '' && this.dynamicArray[index].MinimumExperience != 0) {\r\n skillCount++\r\n }\r\n }\r\n if (skillCount < 1) {\r\n this.notifyService.showWarning('Minimum one Required skill should be added', '')\r\n return\r\n }\r\n let dynamicValue: iJob = Common.activeJob\r\n this.data = { JobId: dynamicValue.JobId }\r\n this.data.JobSkills = this.dynamicArray\r\n this.checkForReqSkill(this.dynamicArray)\r\n if (this.isReqSkillPresent) {\r\n this.loading = true\r\n this.jobService.AddJobSkill(this.data).subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job skills successfully saved.', '')\r\n this.jobAdded.emit(4)\r\n this.loading = false\r\n this.previousNext.emit(StepperButtonType.Next)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skills could not save!', '')\r\n\r\n return\r\n }\r\n )\r\n } else {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n }\r\n }\r\n saveEditedSkill() {\r\n this.isEdit = false\r\n }\r\n saveSkillBtnHandler() {\r\n this.isJobEdited = false\r\n this.isChangeEdited.emit(this.isJobEdited)\r\n this.isSkillValid = this.experience > 0 && this.skillName.trim().length > 0 ? true : false\r\n if (this.isSkillValid) {\r\n if (this.dynamicArray.length > 0) {\r\n if (!this.dynamicArray.some((item) => item.SkillName === this.skillName)) {\r\n this.isSkillValid = false\r\n this.newDynamic = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.experience,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.required,\r\n SkillName: this.skillName,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n } else {\r\n this.notifyService.showError(\r\n 'This skill already exists in the list. Please select a different skill',\r\n ''\r\n )\r\n }\r\n } else {\r\n this.newDynamic = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.experience,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.required,\r\n SkillName: this.skillName,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n }\r\n } else {\r\n if (this.skillName.trim().length <= 0) {\r\n this.notifyService.showError('Skill Name cannot be empty. Please enter valid skill', '')\r\n return\r\n } else {\r\n this.notifyService.showError('Experience cannot be less than 1. Please enter valid experience', '')\r\n return\r\n }\r\n }\r\n\r\n // }\r\n this.skillName = ''\r\n this.experience = null\r\n this.required = false\r\n this.addSkill = false\r\n }\r\n editSkill() {\r\n this.isEdit = true\r\n this.addSkill = true\r\n this.bindEditSkillsFormData()\r\n }\r\n\r\n bindEditSkillsFormData() {\r\n let formGroup\r\n this.dynamicArray.forEach((item) => {\r\n formGroup = this.createEditSkillForm()\r\n formGroup.patchValue(item)\r\n })\r\n }\r\n\r\n createEditSkillForm() {\r\n return this.formBuilder.group({\r\n editSkillName: [],\r\n editSkillExperince: [],\r\n isEditSkillRequired: [],\r\n })\r\n }\r\n\r\n get editSkillsFormArray() {\r\n return this.editJobForm.get('editSkillsForm')\r\n }\r\n getEditGroup(index) {\r\n return this.editSkillsFormArray.at(index)\r\n }\r\n\r\n addRow() {\r\n if (this.experience && this.skillName) {\r\n this.isEdit = false\r\n this.addSkill = true\r\n this.newDynamic = {\r\n JobSkillId: null,\r\n JobId: null,\r\n SkillId: null,\r\n Experience: this.experience,\r\n Version: '',\r\n SkillLevelId: null,\r\n SkillLevel: '',\r\n Required: this.required,\r\n SkillName: this.skillName,\r\n }\r\n this.dynamicArray.push(this.newDynamic)\r\n this.skillName = ''\r\n this.experience = null\r\n this.required = false\r\n return true\r\n } else {\r\n this.notifyService.showError('Skill Name & Experience is Required', '')\r\n }\r\n }\r\n removeRow(index) {\r\n this.dynamicArray.splice(index, 1)\r\n this.skillName = ''\r\n this.experience = null\r\n this.required = false\r\n this.addSkill = false\r\n this.dialog.closeAll()\r\n }\r\n\r\n openDeleteDialog(templateRef: TemplateRef, i) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.deleteQuestionIndex = i\r\n }\r\n\r\n applyFilterExperince(event: any, index) {\r\n this.isExperienceNull = event == null || event == '' ? true : false\r\n if (event !== null || event !== '') {\r\n this.isExperienceNull = false\r\n this.isExperienceCountInvalid = event > 0 ? false : true\r\n }\r\n }\r\n\r\n goToPrevious() {\r\n this.previousNext.emit(StepperButtonType.Previous)\r\n }\r\n\r\n checkForReqSkill(skillArr) {\r\n skillArr.forEach((item) => {\r\n if (item.Required) {\r\n this.isReqSkillPresent = true\r\n return\r\n }\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n \r\n Professional Skills\r\n
\r\n \r\n Required:\r\n
\r\n \r\n Preferred:\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ dynamic.SkillName }} ({{ dynamic.Experience }} Yrs)\r\n clear\r\n \r\n \r\n 0 && !isEdit\"\r\n class=\"add-skill-btn\"\r\n mat-raised-button\r\n matTooltip=\"Edit Skills\"\r\n matTooltipClass=\"base-tooltip-class\"\r\n (click)=\"editSkill()\"\r\n >\r\n Edit Skills\r\n \r\n \r\n
\r\n
0 && isEdit\">\r\n
\r\n
\r\n
\r\n
\r\n Skill Name*\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n Please enter valid skill name\r\n \r\n
\r\n
\r\n Experience*\r\n \r\n \r\n Please enter value grater than Zero\r\n Experience is required\r\n \r\n
\r\n\r\n
\r\n
\r\n Required\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Skill Name*\r\n \r\n \r\n \r\n \r\n {{ skill.Name }}\r\n \r\n \r\n \r\n
\r\n
\r\n Experience*\r\n \r\n \r\n Please enter value grater than Zero\r\n Experience is required\r\n \r\n
\r\n\r\n
\r\n
\r\n Required\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this skill?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { Component, ElementRef, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'\r\nimport { Subject, Subscription, combineLatest } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { Common } from '../../common/common'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { ThemePalette } from '@angular/material/core'\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { ActionDialogComponent } from 'src/app/shared/action-dialog/action-dialog.component'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iDbResult, iJobValidationType, iMenuItem, iStatus } from 'src/app/models/common.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { ActivatedRoute, Router } from '@angular/router'\r\nimport { map, takeUntil, tap } from 'rxjs/operators'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { JobCandidateTab, JobTabsType } from 'src/app/enums/jobCandidate'\r\nimport { JOB_EDIT_ACTION, JOB_VIEW_ACTION } from 'src/app/enums/userActions'\r\nimport { TranStatusSuccess } from 'src/app/models/cloneJob.model'\r\nimport { format } from 'date-fns'\r\n@Component({\r\n selector: 'job-tabs',\r\n templateUrl: './job-tabs.component.html',\r\n styleUrls: [\r\n './job-tabs.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'standard',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobTabsComponent implements OnInit, OnDestroy {\r\n color: ThemePalette = 'primary'\r\n mode: ProgressSpinnerMode = 'determinate'\r\n value = 80\r\n diameter = 20\r\n isCandidateCardView$ = combineLatest([this.commonService.isCandidateCardView$]).pipe(map(([value]) => ({ value })))\r\n\r\n noLogoFilePath: string = 'assets/img/Leap-Tiger_Icons/card-icons/No-image.svg'\r\n gridViewActive = 'gridViewActive.svg'\r\n listViewActive = 'listViewActive.svg'\r\n subscribe: Subscription\r\n activeJob = Common.activeJob\r\n iShowUpload: boolean = false\r\n activeTab = 0\r\n disableTab: boolean = false\r\n showTab: boolean = false\r\n job: iJob = {} as iJob\r\n editJobDetails = Common.editJobDetails\r\n editJobDesc = false\r\n isLocationShow: boolean = this.activeJob?.WorkOptionId != WorkOption.Remote\r\n jobValidation: iJobValidationType[] = []\r\n toolBarItems: iMenuItem[] = []\r\n menu: iMenuItem\r\n selectedStatusId: number\r\n selectedReasonId: number\r\n selectedReason: string\r\n wfStatus: iStatus[] = []\r\n objId: number\r\n objTypeId: number\r\n baseFilePath: Promise\r\n loading: boolean = false\r\n destroy$: Subject = new Subject()\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobViewAction = JOB_VIEW_ACTION\r\n terminationDate: string | Date\r\n jobClosedFromDate: string | Date\r\n jobId: number\r\n constructor(\r\n private jobService: JobService,\r\n public dialog: MatDialog,\r\n public authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private commonService: CommonService,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n private router: Router,\r\n private _activatedRouter: ActivatedRoute\r\n ) {}\r\n private subscription: Subscription\r\n ngOnInit(): void {\r\n this.subscription = this.commonService.getComponentData.subscribe((messageConsultantView: any) => {\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.job = Common.activeJob ? Common.activeJob : messageConsultantView\r\n this.jobId = messageConsultantView.JobId\r\n this.getStatuses()\r\n this.setToolBarItems()\r\n this.getJobValidation() // need to fetch validation of latest job which is in view\r\n }\r\n const ACTIVE_TAB = this._activatedRouter.snapshot.queryParamMap.get('activeTab')\r\n\r\n if (ACTIVE_TAB == JobCandidateTab.Navigate_Job_Candidate_tab) {\r\n this.activeTab = JobTabsType.Candidate_Tab\r\n } else if (messageConsultantView?.activeTab) {\r\n this.activeTab = JobTabsType.Candidate_Tab\r\n } else {\r\n this.activeTab = JobTabsType.Job_Edit_Tab\r\n }\r\n })\r\n\r\n if (Common.activeJob != null) {\r\n this.iShowUpload = true\r\n this.disableTab = false\r\n }\r\n\r\n this.baseFilePath = this.commonService.getAppSettings().then((data) => {\r\n this.baseFilePath = data.filePath\r\n })\r\n this.commonService.loading$.pipe(takeUntil(this.destroy$)).subscribe((loading) => {\r\n this.loading = loading\r\n })\r\n this.getJobStatusChange()\r\n this.subscribeToLoadingTrigger()\r\n this._subscribeToJobValidationTrigger()\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete()\r\n }\r\n updateActiveJob(event) {\r\n this.job = event\r\n if (this.job.WorkOptionId == WorkOption.Remote) this.isLocationShow = false\r\n else this.isLocationShow = true\r\n }\r\n\r\n getJobStatusChange() {\r\n this.jobService.jobStatusValueChange$.pipe(takeUntil(this.destroy$)).subscribe((statusId) => {\r\n this.selectedStatusId = Common?.activeJob?.JobStatusID\r\n this.job.JobStatus = Common?.activeJob?.JobStatus\r\n this.job.JobStatusID = Common?.activeJob?.JobStatusID\r\n this.setJobStatues()\r\n })\r\n }\r\n getStatuses() {\r\n this.commonService\r\n .getStatus()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res) => {\r\n this.wfStatus = res as iStatus[]\r\n })\r\n }\r\n onJobStatusChange(mnuItem) {\r\n this.menu = mnuItem\r\n if (this.menu.MenuItemID == -1) return\r\n if (this.menu.MenuCode == Common.enumJobStatusStrings.JOB_OPEN) {\r\n if (this.jobValidation?.length > 0) {\r\n let reqColumns = this.jobValidation\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n 'Can not change to Open, Please fill required fields: ' + reqColumns,\r\n 'Job Status'\r\n )\r\n this.setToolBarItems()\r\n return\r\n }\r\n }\r\n if (this.menu.MenuCode != Common.enumJobStatusStrings.JOB_OPEN || this.jobValidation?.length == 0) {\r\n const dialogRef = this.dialog.open(ActionDialogComponent, {\r\n data: { consultantjob: null, menu: this.menu },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == null || result == undefined) {\r\n this.setToolBarItems()\r\n } else {\r\n this.selectedReasonId = Number(result.selectedReasonId)\r\n this.selectedReason = result.selectedReason\r\n if (result.jobClosedFromDate && this.isValidDate(new Date(result.jobClosedFromDate))) {\r\n this.jobClosedFromDate = format(new Date(result.jobClosedFromDate), \"yyyy-MM-dd'T'HH:mm:ss.SSS\")\r\n }\r\n this.JobProcessWorkFlow()\r\n }\r\n })\r\n }\r\n }\r\n\r\n isValidDate(date) {\r\n return date instanceof Date && !isNaN(date.valueOf())\r\n }\r\n\r\n getJobValidation() {\r\n const JOB_ID = Common?.activeJob?.JobId ? Common?.activeJob?.JobId : this.jobId\r\n this.jobService\r\n .GetJobValidation(JOB_ID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n this.jobValidation = result as iJobValidationType[]\r\n })\r\n }\r\n\r\n JobProcessWorkFlow() {\r\n var ljob: iJob = Common.activeJob\r\n var dbresult: iDbResult[]\r\n var nextStatusID\r\n\r\n let comment = this.selectedReasonId\r\n ? '#ReasonID:' + this.selectedReasonId.toString() + '# ' + this.selectedReason.toString()\r\n : this.menu.MenuName\r\n this.commonService\r\n .processWorkFlow(\r\n ljob.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.menu.MenuItemID,\r\n this.authService.userInfo.roles[0].roleID,\r\n comment,\r\n this.authService.userInfo.userID\r\n )\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n tap(() => this._getJobById(Common.activeJob.JobId))\r\n )\r\n .subscribe((result) => {\r\n dbresult = result\r\n dbresult.forEach((key) => {\r\n if (key.Key == 'NextStatusID') nextStatusID = key.Value\r\n })\r\n\r\n if (Common.enumJobStatuses.JOB_DELETE == nextStatusID) {\r\n this.notifyService.showSuccess('Record deleted successfully', 'Job Delete')\r\n this.router.navigate(['jobs']).then(() => {\r\n window.location.reload()\r\n })\r\n return\r\n }\r\n\r\n if (this.menu.MenuCode === Common.enumJobStatusStrings.JOB_CLOSE) {\r\n this._updateObjectStatusDate(\r\n this.job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Number(nextStatusID),\r\n this.selectedReason,\r\n this.authService.userInfo.userID,\r\n this.jobClosedFromDate\r\n )\r\n return\r\n }\r\n\r\n if ('JOB_CLONE' == this.menu.MenuCode) {\r\n this.reopenJob()\r\n return\r\n } else if (nextStatusID == undefined || nextStatusID == 0 || nextStatusID == 'Failed') {\r\n this.notifyService.showError('Failed: Unable to change the status!', 'Job Status')\r\n } else {\r\n this.job.JobStatusID = Number(nextStatusID)\r\n let statusname = this.wfStatus\r\n .filter((item) => item.StatusID === Number(nextStatusID))\r\n .map((x) => x.Name)\r\n\r\n Common.activeJob.JobStatusID = Number(nextStatusID)\r\n Common.activeJob.JobStatus = statusname.length > 0 ? statusname.toString() : this.menu.MenuName\r\n this.commonService.setToolBarItems(this.menu)\r\n\r\n this.notifyService.showSuccess(\r\n 'Job status successfully changed to ' + Common.activeJob.JobStatus,\r\n 'Job'\r\n )\r\n }\r\n this.setToolBarItems()\r\n })\r\n }\r\n reopenJob() {\r\n this.loading = true\r\n let cloneJobObj = {\r\n jobId: Common.activeJob.JobId,\r\n userId: this.authService.userInfo.userID,\r\n }\r\n this.jobService\r\n .reopenJobStatus(cloneJobObj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result.TranStatus === TranStatusSuccess) {\r\n this.loading = false\r\n this.jobService.setJobCloneStatus({ ...result })\r\n this.notifyService.showSuccess('Job Cloned Successfully', 'Job Id' + ' ' + result.JobId)\r\n this.layoutService.closeQuickpanel()\r\n this.router.navigate(['/jobs/addJob', result.JobId])\r\n } else {\r\n this.notifyService.showError('Error While Cloning Job ', 'Job')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Error while Cloning Job', 'Job')\r\n }\r\n )\r\n }\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((result) => {\r\n result\r\n })\r\n }\r\n setJobStatues() {\r\n this.toolBarItems = this.commonService?.menuItems?.filter(\r\n (item) =>\r\n item.ComponentID === Common.enumComponent.Job &&\r\n item.MenuTypeID == Common.enumMenuType.TOOLBAR &&\r\n item.StatusID == this.job.JobStatusID &&\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n this.toolBarItems?.unshift({\r\n MenuID: -1,\r\n PageID: -1,\r\n ComponentID: Common.enumComponent.Job,\r\n ComponentCode: null,\r\n ComponentName: null,\r\n ComponentDescription: null,\r\n MenuItemID: -1,\r\n MenuCode: null,\r\n MenuName: this.job.JobStatus,\r\n MenuDescription: null,\r\n MenuFunction: null,\r\n MenuUrl: null,\r\n MenuIcon: null,\r\n MenuTypeID: null,\r\n MenuType: null,\r\n ParentMenuItemID: null,\r\n RoleID: null,\r\n RoleCode: null,\r\n RoleName: null,\r\n RoleDescription: null,\r\n StatusID: this.job.JobStatusID,\r\n StatusCode: null,\r\n StatusName: this.job.JobStatus,\r\n StatusDescription: null,\r\n })\r\n this.selectedStatusId = this.job.JobStatusID\r\n }\r\n setToolBarItems() {\r\n if (\r\n this.commonService?.menuItems == null ||\r\n this.commonService?.menuItems == undefined ||\r\n this.commonService?.menuItems?.length === 0\r\n ) {\r\n this.commonService\r\n .getMenuItems()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((data) => {\r\n this.commonService.menuItems = data\r\n this.setJobStatues()\r\n })\r\n } else {\r\n this.setJobStatues()\r\n }\r\n }\r\n\r\n jobCompleted(event) {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n setActiveTab(event) {\r\n this.activeTab = event\r\n }\r\n onTabChanged($event) {\r\n let clickedIndex = $event.index\r\n this.activeTab = clickedIndex\r\n }\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.router.navigate(['/jobs'])\r\n }\r\n\r\n isCardOpen() {\r\n this.commonService.isCardExpandedSubject.next(true)\r\n }\r\n\r\n isCardClose() {\r\n this.commonService.isCardExpandedSubject.next(false)\r\n }\r\n\r\n subscribeToLoadingTrigger() {\r\n this.jobService.jobLoadingSubjectChange$.pipe(takeUntil(this.destroy$)).subscribe((isLoading) => {\r\n this.loading = isLoading\r\n })\r\n }\r\n\r\n private _subscribeToJobValidationTrigger() {\r\n this.jobService.jobValidationTrigger$.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n this.getJobValidation()\r\n })\r\n }\r\n\r\n private _updateObjectStatusDate(\r\n objectID: number,\r\n objectTypeId: number,\r\n statusID: number,\r\n comments: string,\r\n userID: number,\r\n jobClosedFromDate: string | Date\r\n ) {\r\n this.commonService\r\n .updateObjectStatusDate(objectID, objectTypeId, statusID, comments, userID, jobClosedFromDate)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job Status changed Successfully.', 'Job Status')\r\n },\r\n (error) => {\r\n this.notifyService.showSuccess('Error while changing Job Status.', 'Job Status')\r\n }\r\n )\r\n }\r\n\r\n private _getJobById(jobId: number) {\r\n this.loading = true\r\n this.jobService.getJob(jobId).subscribe({\r\n next: (job) => {\r\n this.loading = false\r\n Common.activeJob = job\r\n this.job = job\r\n this.setToolBarItems()\r\n },\r\n error: () => {\r\n this.loading = false\r\n },\r\n })\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n \r\n
\r\n Job Details\r\n \r\n clear\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Job Title: {{ job?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n Job Code: {{ job?.JobCode | nullValueReplace }}\r\n
\r\n
\r\n Location Address: {{ job.Location?.City | nullValueReplace }},\r\n {{\r\n job.Location?.State | nullValueReplace\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Hiring Manager: {{ job.CompanyContact | nullValueReplace }}\r\n
\r\n
\r\n Client Name: {{ job?.CompanyName | nullValueReplace }}\r\n
\r\n
\r\n Zipcode: {{ job.Location?.ZipCode | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0 ? (job.FillRatio | number : '1.0-0') : 0\"\r\n >
\r\n Fill Ratio\r\n
\r\n
\r\n 0 ? (job.InterviewRatio | number : '1.0-0') : 0\"\r\n >
\r\n Interview Ratio\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n Job Status\r\n {{ toolBarItems[0].MenuName }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ mnuItem.MenuName }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, EventEmitter, Output, ViewEncapsulation, TemplateRef } from '@angular/core'\r\nimport { FormBuilder, FormControl, Validators } from '@angular/forms'\r\nimport { Common } from 'src/app/common/common'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { iJob } from 'src/app/models/job.model'\r\nimport { fadeInUp400ms } from '../../shared/core/animations/fade-in-up.animation'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { FilesTypes, UnitsForFile } from 'src/app/enums/unitsForFile'\r\nimport { StepperButtonType } from 'src/app/enums/stepperButtonType'\r\nimport { DragDropIds, DragDropToolTip, DragUploadMessage } from 'src/app/models/drag-drop.model'\r\n@Component({\r\n selector: 'job-upload',\r\n templateUrl: './job-upload.component.html',\r\n styleUrls: [\r\n './job-upload.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [fadeInUp400ms],\r\n})\r\nexport class JobUploadComponent implements OnInit {\r\n maxFileSize = Common.maxJDFileSize\r\n maxChars = Common.maxJDCharacters\r\n chars = 0\r\n public loading = false\r\n model: iJob = {}\r\n fileContent: string = ''\r\n isFileUploaded: boolean = false\r\n file: any = null\r\n jobHTML: string = ''\r\n jobtxt: string = ''\r\n text = ``\r\n inputTextLength = 0\r\n isMaxCharValidationShown = false\r\n uploadBoxCont = document.getElementById('uploadBox')\r\n jdUploadInput = document.getElementById('jdUploadInput')\r\n form = new FormControl(this.text)\r\n @Output() formHandler: EventEmitter = new EventEmitter()\r\n @Output() jobAdded: EventEmitter = new EventEmitter()\r\n @Output() previousNext: EventEmitter = new EventEmitter()\r\n quillEditable: boolean = false\r\n\r\n public get unitForFile(): typeof UnitsForFile {\r\n return UnitsForFile\r\n }\r\n\r\n public get dragDropId(): typeof DragDropIds {\r\n return DragDropIds\r\n }\r\n\r\n public get dragUploadMessage(): typeof DragUploadMessage {\r\n return DragUploadMessage\r\n }\r\n\r\n public get dragToolTip(): typeof DragDropToolTip {\r\n return DragDropToolTip\r\n }\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private jobService: JobService,\r\n private notifyService: NotificationService\r\n ) {}\r\n validateFile(name: String) {\r\n var ext = name.substring(name.lastIndexOf('.') + 1)\r\n if (ext.toLowerCase() == 'doc' || ext.toLowerCase() == 'docx' || ext.toLowerCase() == 'pdf') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jobForm.get('jobDetails').valueChanges.subscribe((data) => {\r\n this.jobHTML = data == null ? '' : data\r\n this.jobtxt = this.htmlToPlaintext(data)\r\n })\r\n if (Common.activeJob) {\r\n this.jobForm.get('jobDetails').setValue(Common.activeJob?.JobDetails)\r\n this.inputTextLength = Common.activeJob?.JobDetails?.length\r\n }\r\n }\r\n htmlToPlaintext(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : ''\r\n }\r\n\r\n jobForm = this.formBuilder.group({\r\n jobDetails: ['', Validators.required],\r\n fileUploader: ['', Validators.compose([Validators.maxLength(512), Validators.minLength(2)])],\r\n })\r\n\r\n onPaste(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData\r\n var dlen = Number(clipboardData.getData('text').length)\r\n if (dlen == 0) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n let content = clipboardData.getData('text').slice(0, this.maxChars)\r\n this.model = this.jobForm.value\r\n this.model.JobDetails = content\r\n this.model.JobHTML = content\r\n }\r\n\r\n public onChange(fileList: any): void {\r\n this.jobForm.get('jobDetails').setValue('')\r\n this.file = fileList[0]\r\n if (this.file.size > 6000000) {\r\n this.notifyService.showError('FILE SIZE LIMIT EXCEEDED!', '')\r\n this.file = null\r\n return\r\n }\r\n if (!this.validateFile(fileList[0].name)) {\r\n this.notifyService.showError('Selected file format is not supported!', '')\r\n this.file = null\r\n return\r\n }\r\n }\r\n\r\n uploadJob() {\r\n this.dialog.closeAll()\r\n this.loading = true\r\n let fileReader: FileReader = new FileReader()\r\n let self = this\r\n fileReader.onloadend = function (x) {\r\n self.fileContent = fileReader.result.toString()\r\n }\r\n fileReader.readAsText(this.file)\r\n const formData = new FormData()\r\n formData.append(this.file.name, this.file)\r\n this.jobService.uploadJobFile(formData).subscribe(\r\n (event) => {\r\n if (event) {\r\n var js = {}\r\n js = event\r\n self.jobForm.get('jobDetails').setValue(this.jobtxt)\r\n this.jobtxt = js['jobtxt']\r\n this.jobHTML = js['jobHTML']\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n self.model.JobDetails = self.jobForm.get('jobDetails').value\r\n if (this.model.JobHTML !== undefined && this.model.JobHTML !== null) {\r\n if (this.model.JobHTML.length > 0) Common.activeJob = this.model\r\n this.notifyService.showSuccess('Successfully uploaded!', '')\r\n this.quillEditable = true\r\n this.loading = false\r\n this.file = null\r\n this.isFileUploaded = true\r\n this.onSubmit()\r\n return\r\n } else {\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n this.loading = false\r\n }\r\n\r\n this.loading = false\r\n return\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!', '')\r\n }\r\n )\r\n }\r\n\r\n dialogCancelHandler() {\r\n this.dialog.closeAll()\r\n this.file = null\r\n }\r\n\r\n onKeyUpEvent(event: any) {\r\n const inputType = event.inputType\r\n if (inputType === 'insertFromDrop' || inputType === 'insertFromPaste') {\r\n if (event.target.children.length) {\r\n const hadImage = this.isInputImage(event.target.children)\r\n if (hadImage) {\r\n this.notifyService.showError('Please paste a valid Description', '')\r\n }\r\n }\r\n }\r\n\r\n let inputValue = this.htmlToPlaintext(event.target.innerHTML)\r\n this.inputTextLength = inputValue.length\r\n if (this.inputTextLength > this.maxChars && !this.isMaxCharValidationShown) {\r\n this.isMaxCharValidationShown = true\r\n this.notifyService.showWarning('You have reached your maximum limit of characters allowed', '')\r\n }\r\n if (this.inputTextLength <= this.maxChars) {\r\n this.isMaxCharValidationShown = false\r\n }\r\n let content = inputValue.slice(0, this.maxChars)\r\n this.jobtxt = content\r\n this.jobHTML = content == null ? '' : content\r\n }\r\n\r\n onSubmit() {\r\n if (this.jobHTML.length == 0) {\r\n this.jobHTML = this.jobtxt\r\n }\r\n if (this.jobtxt.length > 0) {\r\n if (this.inputTextLength > this.maxChars) {\r\n this.notifyService.showError('Please reduce the JD character count to upto 25000 characters', '')\r\n } else {\r\n this.model.JobHTML = this.jobHTML\r\n this.model.JobDetails = this.jobtxt\r\n Common.activeJob = this.model\r\n this.ParseAndNext(this.model)\r\n }\r\n } else {\r\n this.formHandler.emit(0)\r\n this.jobAdded.emit(0)\r\n }\r\n }\r\n\r\n ParseAndNext(obj) {\r\n this.loading = true\r\n this.jobService.GetParseJobKeyword(obj).subscribe(\r\n (SearchResult) => {\r\n Common.JobKeywords = SearchResult\r\n this.loading = false\r\n this.formHandler.emit(0)\r\n this.previousNext.emit(StepperButtonType.Next)\r\n this.jobAdded.emit(0)\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showWarning('Could not parse the file!' + err, '')\r\n }\r\n )\r\n }\r\n\r\n fileInfo: string\r\n onFileSelect(input: HTMLInputElement): void {\r\n function formatBytes(bytes: number): string {\r\n const UNITS = ['Bytes', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\r\n const factor = 1024\r\n let index = 0\r\n\r\n while (bytes >= factor) {\r\n bytes /= factor\r\n index++\r\n }\r\n return `${parseFloat(bytes.toFixed(2))} ${UNITS[index]}`\r\n }\r\n const file = input.files[0]\r\n this.fileInfo = `${file.name} (${formatBytes(file.size)})`\r\n }\r\n\r\n openUploadFileDialog(templateRef: TemplateRef) {\r\n this.dialog.open(templateRef, {\r\n width: '500px',\r\n })\r\n }\r\n\r\n skipButtonHandler() {\r\n this.previousNext.emit(StepperButtonType.Next)\r\n }\r\n\r\n isInputImage(children) {\r\n let hadImage = false\r\n for (let i = children.length - 1; i >= 0; i--) {\r\n const child = children[i]\r\n if (child.tagName === FilesTypes.IMG.toUpperCase()) {\r\n hadImage = true\r\n continue\r\n }\r\n if (child.children.length) {\r\n hadImage = this.isInputImage(child.children)\r\n if (hadImage) {\r\n break\r\n }\r\n }\r\n }\r\n return hadImage\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n
\r\n \r\n General\r\n \r\n \r\n
\r\n
\r\n
\r\n

Cut and Paste Job Details

\r\n
\r\n \r\n \r\n
\r\n

\r\n Characters Remaining: {{ inputTextLength <= maxChars ? 25000 - inputTextLength : 0 }}/{{\r\n maxChars\r\n }}\r\n

\r\n

maxChars\">\r\n Characters limit crossed\r\n

\r\n
\r\n
\r\n \r\n OR\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Upload Job Details

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Cancel\r\n \r\n 0 || isFileUploaded\"\r\n class=\"small-primary-button\"\r\n mat-raised-button\r\n (click)=\"onSubmit()\"\r\n >\r\n Save & Next\r\n \r\n \r\n Skip\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n Upload Job Description\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Router } from '@angular/router'\r\nimport { Overlay } from '@angular/cdk/overlay'\r\nimport {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n TemplateRef,\r\n HostBinding,\r\n HostListener,\r\n ViewEncapsulation,\r\n} from '@angular/core'\r\nimport { Common } from 'src/app/common/common'\r\nimport {\r\n iJob,\r\n iJobSkill,\r\n iJobEducation,\r\n iJobCertification,\r\n iJobQuestionnaire,\r\n LegalType,\r\n BackgroundCheck,\r\n InterviewType,\r\n JobType,\r\n User,\r\n iJobLegalType,\r\n Skill,\r\n} from 'src/app/models/job.model'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { EMPTY, Subject, Subscription, forkJoin, of } from 'rxjs'\r\nimport { LoadComponent } from 'src/app/services/loadcomponent.service'\r\nimport { LayoutService } from 'src/app/shared/core/services/layout.service'\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { CompanyService } from 'src/app/company/company.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { JobDialogComponent } from '../job-dialog/job-dialog.component'\r\nimport { JobDialogTypes } from 'src/app/enums/jobDialogType'\r\nimport { iCategory, iKeyValue } from 'src/app/models/common.model'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { CommonData } from 'src/app/helper/commonData'\r\nimport { iLocation } from 'src/app/models/location.model'\r\nimport { WorkOption } from 'src/app/enums/workOption'\r\nimport { catchError, first, map, switchMap, takeUntil } from 'rxjs/operators'\r\nimport { LocationType } from 'src/app/enums/locationType'\r\nimport { ObjectType } from 'src/app/enums/objectType'\r\nimport { JOB_ADD_ACTION, JOB_DELETE_ACTION, JOB_EDIT_ACTION } from 'src/app/enums/userActions'\r\nimport { Notes, iNotes } from 'src/app/models/notes.model'\r\nimport { NotesType } from 'src/app/enums/notesType'\r\n\r\n@Component({\r\n selector: 'job-view-description',\r\n templateUrl: './job-view-description.component.html',\r\n styleUrls: [\r\n './job-view-description.component.scss',\r\n '../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../shared/core/styles/partials/plugins/_quill.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class JobViewDescriptionComponent implements OnInit, OnDestroy {\r\n selectedCertifications = []\r\n selectedEducations = []\r\n categoriesForJob: iCategory[]\r\n industriesForJob: iCategory[]\r\n specializedSkillsForJob: Skill[]\r\n experienceLevelsForJob = []\r\n jobSkillData: iJob = Common.activeJob\r\n legalTypesRespnse: iJobLegalType[] = []\r\n jobEditAction = JOB_EDIT_ACTION\r\n jobDeleteAction = JOB_DELETE_ACTION\r\n jobAddAction = JOB_ADD_ACTION\r\n private _destroy$: Subject = new Subject()\r\n jobIntakeCallNoteList: Notes[] = []\r\n isShowAllNotes: boolean = false\r\n\r\n constructor(\r\n public overlay: Overlay,\r\n private jobService: JobService,\r\n private layoutService: LayoutService,\r\n private loadComponent: LoadComponent,\r\n public authService: AuthenticationService,\r\n private commonService: CommonService,\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private companyService: CompanyService,\r\n private notifyService: NotificationService,\r\n private roleService: RoleService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n public dialog: MatDialog\r\n ) {}\r\n private subscription: Subscription\r\n public loading = false\r\n job: iJob = {}\r\n activeJob = { ...Common.activeJob } // Ensures a new object reference\r\n model: iJob = {}\r\n editFlag: boolean = false\r\n maxChars = 15000\r\n jobDetails = {\r\n JobType: '',\r\n jobexperience: '',\r\n City: '',\r\n State: '',\r\n Positions: 0,\r\n }\r\n role = ''\r\n optionSelected: string = ''\r\n isChangeDetected: boolean = false\r\n jobStatus = Common.enumJobStatuses\r\n jobLocation: iLocation\r\n\r\n selectedLocationId: number\r\n selectedIndustryId: number\r\n selectedCategoryId: number\r\n selectedSkillLevelId: number\r\n selectedSpecializedSkillId: number\r\n selectedMspContactId: number\r\n contactEmail: string\r\n deleteIconSrc = Common.RedDeleteIcon\r\n typeOfItemToBeDeleted: string\r\n indexOfItemToBeDeleted: number\r\n\r\n @Input() showEditButton = false\r\n @Output() valueChange = new EventEmitter()\r\n isJobDetailsInEditMode: boolean = false\r\n isEditMode: boolean = true\r\n showBillRate: boolean\r\n showSalary: boolean\r\n jobCity = []\r\n professionalSkills: Array = [] as iJobSkill[]\r\n softSkills: Array = [] as iJobSkill[]\r\n reqSkillCount: number = 0\r\n educationData: iJob\r\n jobForm: FormGroup\r\n educationArray: Array = []\r\n certificationArray: Array = []\r\n skillLevels: string\r\n certifications: string\r\n education: string\r\n jobEducationCertificationData: iJob\r\n questioneArray: Array = []\r\n public editSubject: Subject = new Subject()\r\n public isJobDetailsFormEditedSubject: Subscription\r\n public IsAddJobPermission: boolean\r\n\r\n legaltypes: LegalType[]\r\n interviewtypes: InterviewType[]\r\n backgroundchecks: BackgroundCheck[]\r\n jobtypes: JobType[]\r\n primaryRecruiters: User[]\r\n secondaryRecruiters: User[]\r\n salaryDisplayOptionTypes: iKeyValue[]\r\n detailsWithoutApi = []\r\n isZipCodeRequired: boolean = false\r\n\r\n setPermission() {\r\n this.roleService\r\n .getPermissionByRole(this.authService.userInfo.roles[0].roleID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n let addJobPermit = data.filter(\r\n (item) =>\r\n item.ComponentID == Common.enumComponent.Job &&\r\n item.MenuCode == 'JOB_EDIT' && // TODO: add Enum for add job -\r\n item.RoleID == this.authService.userInfo.roles[0].roleID\r\n )\r\n if (addJobPermit?.length > 0) this.IsAddJobPermission = true\r\n })\r\n }\r\n\r\n public get jobDialogType(): typeof JobDialogTypes {\r\n return JobDialogTypes\r\n }\r\n\r\n public get workOption(): typeof WorkOption {\r\n return WorkOption\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPermission()\r\n this.getLegalTypes()\r\n this.setExperienceLevel()\r\n this.getSalaryOptions()\r\n this.jobForm = this.formBuilder.group({\r\n JobTypeId: ['', Validators.required],\r\n })\r\n this.subscription = this.commonService.getComponentData\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((messageConsultantView) => {\r\n if (Common.activeJob != null && Common.activeJob != undefined) {\r\n this.loading = true\r\n this.jobSkillData = Common.activeJob\r\n this.job = { ...Common.activeJob } // Create a new reference\r\n if (Common.activeJob) {\r\n this.activeJob = { ...Common.activeJob } // Ensure reactivity\r\n this._getNotesDetails()\r\n }\r\n this.selectedLocationId = Number(this.job?.LocationID)\r\n if (Common.lookUp != null) {\r\n this.legaltypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'LegalTypeID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.interviewtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'InterviewTypeId')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.jobtypes = Common.lookUp\r\n .filter((item) => item.TypeCode == 'JobTypelD')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n this.backgroundchecks = Common.lookUp\r\n .filter((item) => item.TypeCode == 'BkGrondChkID')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n }\r\n if (this.job.JobId > 0) {\r\n this.getAllDataForView()\r\n if (this.job.JobTypeID == Common.enumJobContractType.JT_C2C) {\r\n this.showSalary = true\r\n } else if (this.job.JobTypeID == Common.enumJobContractType.JT_PERM) {\r\n this.showBillRate = true\r\n }\r\n this.loading = false\r\n }\r\n }\r\n this.isShowAllNotes = false\r\n this.jobIntakeCallNoteList = []\r\n this._getNotesDetails()\r\n })\r\n\r\n if (Common.lookUp == null) {\r\n this.commonService\r\n .getLookupValue()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n },\r\n (err: any) => {}\r\n )\r\n } else {\r\n this.experienceLevelsForJob = Common.lookUp\r\n .filter((item) => item.TypeCode == 'ExperienceLevel')\r\n .map((o) => ({ Key: o.ValueName, Value: o.LookupID }))\r\n }\r\n\r\n this.jobService\r\n .GetJobCategory()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.categoriesForJob = res as iCategory[]\r\n })\r\n this.jobService\r\n .GetJobIndustry()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.industriesForJob = res as iCategory[]\r\n })\r\n this._subscribeToCandidateNotesSubject()\r\n }\r\n\r\n onApplyclick() {\r\n this.router.navigate(['/candidates/add'])\r\n }\r\n\r\n getAllDataForView() {\r\n forkJoin({\r\n requiredSkills: this.BindRequiredSkill(this.job.JobId),\r\n education: this.bindEducation(this.job.JobId),\r\n certifications: this.bindCertification(this.job.JobId),\r\n questionnaire: this.bindQuestionnaire(this.job.JobId),\r\n recruiters: this.getRecruiters(this.job.CompanyId),\r\n })\r\n .pipe(catchError((err) => EMPTY))\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(({ requiredSkills, education, certifications, questionnaire, recruiters }) => {\r\n this.professionalSkills = requiredSkills ?? []\r\n this.educationArray = education\r\n this.certificationArray = certifications\r\n this.questioneArray = questionnaire\r\n this.primaryRecruiters = recruiters\r\n })\r\n }\r\n\r\n getRecruiters(CompanyId) {\r\n CompanyId = CompanyId == null || CompanyId == 'undefined' ? 0 : CompanyId\r\n this.jobService\r\n .GetRecruiterByRoleId(Common.enumUserRoles.Recruiter + ',' + Common.enumUserRoles.RecruitingManager)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.primaryRecruiters = res as User[]\r\n this.secondaryRecruiters = this.primaryRecruiters.filter((item) => item.UserID != this.job.PostedFor)\r\n })\r\n }\r\n getLegalTypes() {\r\n this.jobService\r\n .getLegalTypes()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.legalTypesRespnse = res as iJobLegalType[]\r\n })\r\n }\r\n\r\n setExperienceLevel() {\r\n if (Common.activeJob != null) {\r\n if (Common.activeJob.SkillLevelID == 182) {\r\n this.skillLevels = '0-3 years'\r\n } else if (Common.activeJob.SkillLevelID === 183) {\r\n this.skillLevels = '3-5 years'\r\n } else if (Common.activeJob.SkillLevelID === 184) {\r\n this.skillLevels = '5-8 years'\r\n } else if (Common.activeJob.SkillLevelID === 185) {\r\n this.skillLevels = 'More than 8 years'\r\n }\r\n }\r\n }\r\n\r\n onJobDescriptionEditHandler() {\r\n this.jobDetails.Positions = this.jobDetails.Positions\r\n Object.keys(this.jobDetails).map((item) => (Common.activeJob[item] = this.jobDetails[item]))\r\n this.jobService\r\n .AddJobDescription(Common.activeJob)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((result) => {\r\n if (result != null) {\r\n this.notifyService.showSuccess('Job details successfully saved.', 'Job Details')\r\n }\r\n })\r\n }\r\n\r\n BindRequiredSkill(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobSkills(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.professionalSkills = []\r\n this.softSkills = []\r\n let JobSkillDatasource = res as iJobSkill[]\r\n JobSkillDatasource.map((item) => {\r\n if (item.SkillTypeId == 152) {\r\n this.softSkills.push(item)\r\n } else {\r\n this.professionalSkills.push(item)\r\n }\r\n })\r\n this.reqSkillCount = 0\r\n this.professionalSkills?.map((item) => {\r\n if (item.Required) this.reqSkillCount++\r\n })\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n\r\n bindEducation(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobEducation(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.educationArray = res as iJobEducation[]\r\n this.education = this.educationArray.map((x) => x.EducationName).join(', ')\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n bindCertification(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobCertification(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.certificationArray = res as iJobCertification[]\r\n this.certifications = this.certificationArray.map((x) => x.CertificationName).join(', ')\r\n\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n bindQuestionnaire(jobid) {\r\n this.loading = true\r\n this.jobService\r\n .GetJobQuestionnaire(jobid)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n this.questioneArray = res as iJobQuestionnaire[]\r\n this.loading = false\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n }\r\n )\r\n }\r\n onJobTypeClick(jobtype) {\r\n this.jobDetails.JobType = jobtype\r\n }\r\n\r\n onJobExperienceClick(experience) {\r\n this.jobDetails.jobexperience = experience\r\n }\r\n\r\n onSelectedCityChange(city) {\r\n this.jobDetails.City = city\r\n }\r\n\r\n resetOption() {\r\n this.optionSelected = ''\r\n }\r\n\r\n applyFilterCity(city) {\r\n let stateCode = null\r\n city = city.trim()\r\n this.companyService\r\n .GetCitySearch(city, stateCode)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.jobCity = res\r\n })\r\n }\r\n newJobAdded(event) {\r\n if (event !== null) {\r\n this.job = Common.activeJob\r\n this.bindCertification(this.job.JobId)\r\n this.bindEducation(this.job.JobId)\r\n this.bindQuestionnaire(this.job.JobId)\r\n this.BindRequiredSkill(this.job.JobId)\r\n }\r\n }\r\n\r\n isChangeDetect(bool) {\r\n this.isChangeDetected = bool\r\n }\r\n\r\n closeQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n this.loadComponent.createComponent('')\r\n }\r\n\r\n updateObjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n this.commonService\r\n .updateOjectStatus(objectID, objectTypeId, statusID, comments, userID)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((result) => {\r\n result\r\n })\r\n }\r\n\r\n saveJob(statusId) {\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n if (statusId == Common.enumJobStatuses.JOB_DRAFT) {\r\n this.notifyService.showSuccess('Job successfully saved.', 'Job')\r\n this.router.navigate(['/jobs'])\r\n return\r\n } else if (statusId == Common.enumJobStatuses.JOB_OPEN) {\r\n let vresult: any\r\n this.jobService\r\n .GetJobValidation(Common.activeJob.JobId)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((result) => {\r\n vresult = result\r\n if (vresult.length > 0) {\r\n let reqColums = vresult\r\n .map(function (val) {\r\n return val.ColumnName\r\n })\r\n .join(',')\r\n this.notifyService.showWarning(\r\n ' Can not change to Open, Please fill required fields: ' + reqColums,\r\n 'Job Status '\r\n )\r\n\r\n return\r\n } else {\r\n Common.activeJob.JobStatusID = Common.enumJobStatuses.JOB_OPEN\r\n Common.activeJob.JobStatus = 'Open'\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n Common.enumJobStatuses.JOB_OPEN,\r\n '',\r\n this.authService.userInfo.userID\r\n )\r\n this.notifyService.showSuccess('Job successfully saved.', 'Job')\r\n }\r\n })\r\n }\r\n } else {\r\n this.notifyService.showError('Could not save the Job!', 'Job ')\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.isEditMode = true\r\n Common.editJobDetails = false\r\n Common.editJobDesc = false\r\n Common.editOtherDetails = false\r\n Common.editEducations = false\r\n Common.editSkills = false\r\n Common.editQuestionnaire = false\r\n this._destroy$.next()\r\n this._destroy$.complete()\r\n }\r\n\r\n editDescription() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Description,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Description) {\r\n this.activeJob = { ...Common.activeJob } // Creates a new reference\r\n this.activeJob.Description =\r\n data?.formData?.Description == undefined ? null : data?.formData?.Description\r\n this.loading = true\r\n this.jobService\r\n .AddJobDescription(this.activeJob)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (res) => {\r\n if (res != null) {\r\n Common.activeJob = { ...res }\r\n this.activeJob = { ...Common.activeJob }\r\n this.job = { ...this.activeJob }\r\n if (this.activeJob.JobId > 0) {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job description successfully saved.', '') // ToDO make 2000 as variable\r\n this.jobService.triggerToGetLatestJobValidation()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job description could not be saved!', '')\r\n }\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job description could not be saved!' + err, '')\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n editDetails() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Details,\r\n width: '1000px',\r\n industries: this.industriesForJob,\r\n experienceLevels: this.experienceLevelsForJob,\r\n categories: this.categoriesForJob,\r\n Location: this.job.Location,\r\n isZipCodeRequired: true,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Details) {\r\n this.loading = true\r\n this.model = Common.activeJob\r\n if (this.job.JobId != null) {\r\n this.model.JobId = this.job.JobId\r\n }\r\n this.model.JobCategoryID = this.categoriesForJob.filter(\r\n (category) => category.Name == data?.formData?.JobCategory\r\n )[0].CategoryID\r\n this.model.JobHTML = Common.activeJob.JobHTML\r\n this.model.JobDetails = Common.activeJob.JobDetails\r\n this.model.JobTitleName = data.formData.JobTitleName\r\n this.model.JobCode = data.formData.JobCode == undefined ? null : data.formData.JobCode\r\n this.model.CompanyName = data.formData.CompanyName == undefined ? null : data.formData.CompanyName\r\n this.model.CompanyContact =\r\n data.formData.CompanyContact == undefined ? null : data.formData.CompanyContact // this.ngCompany;\r\n this.model.Description = this.job.Description\r\n this.model.WorkOptionId = Number(\r\n data.formData.WorkOptionId == '' ? false : data.formData.WorkOptionId\r\n )\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.MinExperience = data?.formData?.MinExperience\r\n this.model.MaxExperience = data?.formData?.MaxExperience\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.LocationID =\r\n this.selectedLocationId == undefined || this.selectedLocationId == null\r\n ? 0\r\n : this.selectedLocationId\r\n this.model.CompanyId = data.formData?.CompanyId != null ? data.formData.CompanyId : 0\r\n this.model.CustomerContactId =\r\n data.formData?.CustomerContactId != null ? data.formData?.CustomerContactId : 0\r\n this.model.MspContactId = data?.selectedMspContactId === 0 ? 0 : data?.selectedMspContactId\r\n this.model.ContactEmail =\r\n this.contactEmail == undefined || this.contactEmail == null ? '' : this.contactEmail\r\n this.model.JobTypeID = Common.activeJob?.JobTypeID\r\n this.model.JobStatusID = Common.activeJob?.JobStatusID\r\n\r\n this.model.IndustryID =\r\n this.industriesForJob.filter((industry) => industry.Name == data?.formData?.IndustryName)[0]\r\n ?.CategoryID >= 0\r\n ? this.industriesForJob.filter(\r\n (industry) => industry.Name == data?.formData?.IndustryName\r\n )[0]?.CategoryID\r\n : null\r\n this.model.SpecializedSkill =\r\n data.formData.SpecializedSkill == null ? '' : data.formData.SpecializedSkill\r\n this.model.SpecializedSkillID =\r\n data.formData.SpecializedSkillID == null ? 0 : data.formData.SpecializedSkillID\r\n\r\n this.model.SkillLevel =\r\n data?.formData?.SkillLevel?.toString() != null ? data?.formData?.SkillLevel?.toString() : null\r\n\r\n this.model.SkillLevelID = this.experienceLevelsForJob.filter(\r\n (skillLevel) => skillLevel?.Key == data?.formData?.SkillLevel\r\n )[0]?.Value\r\n if (this.model.StartDate == undefined || this.model.StartDate == null) {\r\n this.model.StartDate = null\r\n }\r\n if (this.model.EndDate == undefined || this.model.EndDate.toString() == '') {\r\n this.model.EndDate = null\r\n }\r\n\r\n if (this.model.ExpiryDate == undefined || this.model.ExpiryDate.toString() == '') {\r\n this.model.ExpiryDate = null\r\n }\r\n if (this.model.JobStatusID == undefined || this.model.JobStatusID.toString() == '') {\r\n this.model.JobStatusID = Common.enumJobStatuses.JOB_DRAFT\r\n }\r\n if (this.model.JobId == undefined || this.model.JobId.toString() == '') {\r\n this.model.JobId = 0\r\n }\r\n this.model.SalaryDisplayTypeID = data?.formData?.SalaryDisplayTypeID\r\n this.jobService\r\n .AddJobDescription(this.model)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result != null) {\r\n Common.activeJob = result\r\n this.activeJob = Common.activeJob\r\n Common.activeJob.JobHTML = this.model.JobHTML\r\n this.job = this.model = result\r\n if (data?.selectedMspContactId) {\r\n this.job.MspContact = data.selectedMspContactName\r\n }\r\n this.setExperienceLevel()\r\n let job: iJob = Common.activeJob\r\n this.jobLocation = job.Location\r\n if (job.JobId > 0) {\r\n if (data?.formData?.WorkOptionId != WorkOption.Remote) this.addLocation()\r\n this.updateObjectStatus(\r\n job.JobId,\r\n Common.enumObjectTypes.Job,\r\n this.model.JobStatusID,\r\n '',\r\n this.authService.userInfo.userID\r\n ) // ToDO 3,2 - to Enum Values\r\n this.loading = false\r\n this.notifyService.showSuccess('Job details updated successfully.', '') // ToDO make 2000 as variable\r\n this.valueChange.emit(job)\r\n this.jobService.triggerToGetLatestJobValidation()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Job details could not be saved', '')\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n addLocation() {\r\n if (CommonData.activeLocation == null) {\r\n CommonData.activeLocation = this.jobLocation\r\n }\r\n CommonData.activeLocation.ObjectId = this.job.JobId\r\n CommonData.activeLocation.ObjectTypeId = ObjectType.Job\r\n CommonData.activeLocation.LocationID = 0\r\n CommonData.activeLocation.LocationTypeID = LocationType.Secondary\r\n this.companyService\r\n .AddLocation(CommonData.activeLocation)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n if (res) {\r\n Common.activeJob.Location = res\r\n }\r\n })\r\n }\r\n\r\n editOtherDetails() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Other,\r\n width: '1000px',\r\n legaltypes: this.legaltypes,\r\n interviewtypes: this.interviewtypes,\r\n backgroundchecks: this.backgroundchecks,\r\n jobtypes: this.jobtypes,\r\n primaryRecruiters: this.primaryRecruiters,\r\n secondaryRecruiters: this.secondaryRecruiters,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data?.formName == JobDialogTypes.Other) {\r\n this.loading = true\r\n this.model = Common.activeJob\r\n this.model.JobTypeID = data.formData.JobTypeID\r\n this.model.MaxBillRate =\r\n data.formData.MaxBillRate == '' || data.formData.MaxBillRate == null\r\n ? null\r\n : Number(data.formData.MaxBillRate)\r\n this.model.MaxSalary =\r\n data.formData.MaxSalary == '' || data.formData.MaxSalary == null\r\n ? null\r\n : Number(data.formData.MaxSalary)\r\n this.model.Positions = data.formData.Positions == '' ? null : Number(data.formData.Positions)\r\n this.model.StartDate = data.formData.StartDate == '' ? null : data.formData.StartDate\r\n this.model.EndDate = data.formData.EndDate == '' ? null : data.formData.EndDate\r\n this.model.ExpiryDate = data.formData.ExpiryDate == '' ? null : data.formData.ExpiryDate\r\n this.model.MaxSubmissionCount =\r\n data.formData.MaxSubmissionCount == '' ? 0 : Number(data.formData.MaxSubmissionCount)\r\n this.model.PostedFor = data.formData.PostedFor == '' ? 0 : data.formData.PostedFor\r\n this.model.SecondaryRecruiterId =\r\n data.formData.SecondaryRecruiterId == '' ? 0 : data.formData.SecondaryRecruiterId\r\n this.model.Notes = data.formData.Notes == '' ? '' : data.formData.Notes\r\n this.model.IsHot = Boolean(data.formData.IsHot)\r\n this.model.WorkHours = data.formData.WorkHours == '' ? 0 : Number(data.formData.WorkHours)\r\n this.model.VendorAllowedId = Number(\r\n data.formData.VendorAllowedId == '' ? false : data.formData.VendorAllowedId\r\n )\r\n this.model.JobId = Common.activeJob.JobId\r\n this.model.JobStatusID = Common.activeJob.JobStatusID\r\n this.model.CreatedBy = this.authService.userInfo.userID\r\n this.model.PostedBy = this.authService.userInfo.userID\r\n this.model.BackgroundCheckId = data.formData?.BackgroundCheck.join(',')\r\n this.model.TravelRequired =\r\n data.formData.TravelRequired != null ? data.formData.TravelRequired : null\r\n this.model.TravelPercentage =\r\n data.formData.TravelRequired == true && data.formData.TravelPercentage != null\r\n ? data.formData?.TravelPercentage\r\n : null\r\n this.model.JobLegalTypes = []\r\n this.model.JobInterviewTypes = []\r\n this.legalTypesRespnse.forEach((legalType) => {\r\n if (data.formData?.LegalTypeNames.indexOf(legalType.LookupID) !== -1) {\r\n this.model.JobLegalTypes.push({\r\n CreatedBy: this.authService.userInfo.userID,\r\n LegalTypeId: legalType.LookupID,\r\n JobId: this.job.JobId,\r\n JobLegalTypeId: 0,\r\n })\r\n }\r\n })\r\n data.formData?.InterviewType.forEach((interviewTypeID) => {\r\n this.model.JobInterviewTypes.push({\r\n CreatedBy: this.authService.userInfo.userID,\r\n InterviewTypeId: interviewTypeID,\r\n JobId: this.job?.JobId,\r\n JobInterviewTypeId: 0,\r\n })\r\n })\r\n\r\n if (this.interviewtypes) {\r\n this.model.InterviewTypeNames = this.model.JobInterviewTypes.reduce((acc, x) => {\r\n const type = this.interviewtypes.find((type) => type.Value === x.InterviewTypeId)\r\n if (type) {\r\n acc.push(type.Key)\r\n }\r\n return acc\r\n }, []).join(',')\r\n }\r\n\r\n this.model.WorkTypeID = data.formData?.WorkTypeID\r\n\r\n this.jobService\r\n .AddJobDescription(this.model)\r\n // .pipe(\r\n // switchMap((res) =>\r\n // this.jobService\r\n // .getJob(Common.activeJob.JobId)\r\n // .pipe(map((job) => ({ result: res, job: job })))\r\n // )\r\n // )\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n if (result != null) {\r\n // Common.activeJob = result.job\r\n Common.activeJob = result\r\n this.activeJob = Common.activeJob\r\n this.job = Common.activeJob\r\n let job: iJob = Common.activeJob\r\n if (job.JobId > 0) {\r\n this.jobService.triggerJobStatusChange()\r\n this.notifyService.showSuccess('Job other details successfully saved.', '')\r\n this.loading = false\r\n this.jobService.triggerToGetLatestJobValidation()\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(' Could not save the Job!', '')\r\n }\r\n )\r\n }\r\n })\r\n }\r\n\r\n editEducation() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Education,\r\n educationArray: this.educationArray,\r\n certificateArray: this.certificationArray,\r\n formData: this.activeJob,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Education) {\r\n if (this.job.JobId == null || this.job.JobId == 0 || this.job.JobId == undefined) {\r\n this.notifyService.showError('Could not save the Job!', '')\r\n return\r\n }\r\n\r\n this.loading = true\r\n\r\n // Extract data from dialog result\r\n const certifications = data?.certifications || []\r\n this.selectedEducations = data.jobEducations || []\r\n const removedEducations = data.removedEducations || []\r\n\r\n // Prepare the final data object\r\n this.jobEducationCertificationData = { JobId: Common.activeJob?.JobId }\r\n this.jobEducationCertificationData.JobEducations = this.selectedEducations\r\n this.jobEducationCertificationData.JobCertifications = certifications\r\n\r\n // Create an observable chain\r\n let saveObservable = of(null)\r\n\r\n // Process removed educations first if any exist\r\n if (removedEducations.length > 0) {\r\n // Create an array of observables for each education to delete\r\n const deleteObservables = removedEducations.map((education) =>\r\n this.jobService.deleteEducation(education).pipe(\r\n catchError((error) => {\r\n console.error('Failed to delete education:', error)\r\n return of(null) // Continue with the chain even if one delete fails\r\n })\r\n )\r\n )\r\n\r\n // Replace the initial observable with the forkJoin result\r\n saveObservable = forkJoin(deleteObservables)\r\n }\r\n\r\n // Then proceed with saving the new data\r\n saveObservable\r\n .pipe(\r\n takeUntil(this._destroy$),\r\n switchMap(() => this.jobService.AddJobCertAndEdu(this.jobEducationCertificationData)),\r\n switchMap(() => this.jobService.getJob(this.activeJob?.JobId))\r\n )\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Job certification & education successfully saved.', '')\r\n this.bindCertification(this.activeJob?.JobId)\r\n this.bindEducation(this.activeJob?.JobId)\r\n this.activeJob = res\r\n Common.activeJob = res\r\n },\r\n error: (err) => {\r\n this.loading = false\r\n this.notifyService.showError('Could not save education and certifications!', '')\r\n },\r\n })\r\n }\r\n })\r\n }\r\n\r\n editSkill(skill, editSkillIndex) {\r\n let skillNamesArrayForEdit = [...this.professionalSkills]\r\n skillNamesArrayForEdit.splice(editSkillIndex, 1)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillToBeEdited: skill,\r\n skillNamesArray: this.getSkillNamesArray(skillNamesArrayForEdit),\r\n method: 'Edit',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n if (this.reqSkillCount <= 1 && !data?.formData?.Required) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n this.loading = true\r\n this.professionalSkills.filter((skillItem, index) => index != editSkillIndex)\r\n this.professionalSkills = [\r\n ...this.professionalSkills.slice(0, editSkillIndex),\r\n {\r\n ...skill,\r\n Experience: data?.formData?.Experience,\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n },\r\n ...this.professionalSkills.slice(editSkillIndex + 1),\r\n ]\r\n this.updateJobSkills(this.professionalSkills)\r\n }\r\n }\r\n })\r\n }\r\n\r\n addSoftSkill() {\r\n console.info('JobDialogTypes.SoftSkills', JobDialogTypes.SoftSkills)\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillNamesArray: this.getSkillNamesArray(this.professionalSkills),\r\n method: 'Add',\r\n isSoftSkill: true,\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n this.loading = true\r\n if (typeof this.softSkills == 'undefined') this.softSkills = []\r\n this.softSkills.push({\r\n JobSkillID: null,\r\n JobID: null,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: 0,\r\n MinimumExperience: 0,\r\n MaximumExperience: 0,\r\n SkillName: data?.formData?.SkillName,\r\n Required: false,\r\n SkillTypeId: 152,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n this.updateJobSkills(this.softSkills)\r\n }\r\n })\r\n }\r\n\r\n addSkill() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Skills,\r\n skillNamesArray: this.getSkillNamesArray(this.professionalSkills),\r\n method: 'Add',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Skills) {\r\n this.loading = true\r\n if (typeof this.professionalSkills == 'undefined') this.professionalSkills = []\r\n this.professionalSkills.push({\r\n JobSkillID: null,\r\n JobID: null,\r\n SkillID: null,\r\n Version: '',\r\n SkillLevelID: null,\r\n SkillLevel: '',\r\n Experience: data?.formData?.Experience || 0,\r\n MinimumExperience: data?.formData?.MinimumExperience,\r\n MaximumExperience: data?.formData?.MaximumExperience,\r\n\r\n SkillName: data?.formData?.SkillName,\r\n Required: data?.formData?.Required,\r\n SkillTypeId: 151,\r\n CreatedBy: this.authService.userInfo.userID,\r\n CreatedDate: new Date(),\r\n })\r\n this.updateJobSkills(this.professionalSkills)\r\n }\r\n })\r\n }\r\n\r\n getSkillNamesArray(skillsArray) {\r\n let skillNamesArray = []\r\n skillsArray?.forEach((skill) => {\r\n skillNamesArray.push(skill?.SkillName)\r\n })\r\n return skillNamesArray\r\n }\r\n\r\n deleteJobSkill(skill: iJobSkill, skillType: number) {\r\n this.loading = true\r\n if (skillType == 152) {\r\n this.softSkills = this.softSkills.filter((item) => item.JobSkillID != skill.JobSkillID)\r\n } else {\r\n this.professionalSkills = this.professionalSkills.filter((item) => item.JobSkillID != skill.JobSkillID)\r\n }\r\n // this.jobService.RemoveSkill(skill.JobSkillID.toString()).pipe(takeUntil(this._destroy$)).subscribe({\r\n // next: (res) => {\r\n // this.loading = false\r\n // this.notifyService.showSuccess('Skill deleted successfully', '')\r\n // },\r\n // error: (err: any) => {\r\n // this.loading = false\r\n // this.notifyService.showError('Skill could not be deleted!', '')\r\n // return\r\n // },\r\n // })\r\n }\r\n\r\n updateJobSkills(skillData) {\r\n this.loading = true\r\n this.jobSkillData.JobSkills = skillData\r\n this.jobService\r\n .AddJobSkill(this.jobSkillData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.detailsWithoutApi.push(this.jobSkillData.JobSkills)\r\n this.notifyService.showSuccess('Job skills saved successfully', '')\r\n this.BindRequiredSkill(this.job.JobId)\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skills could not save!', '')\r\n return\r\n },\r\n })\r\n }\r\n\r\n editQuestionnaire(question: iJobQuestionnaire, editQuestionIndex: number) {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Questionnaire,\r\n questionToBeEdited: question,\r\n method: 'Edit',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n this.jobSkillData.Questionnaire = this.questioneArray\r\n if (data.formName === JobDialogTypes.Questionnaire) {\r\n this.questioneArray.filter((skillItem, index) => index != editQuestionIndex)\r\n this.questioneArray = [\r\n ...this.questioneArray.slice(0, editQuestionIndex),\r\n { ...data?.formData },\r\n ...this.questioneArray.slice(editQuestionIndex + 1),\r\n ]\r\n this.updateJobQuestionnaire(this.questioneArray)\r\n }\r\n })\r\n }\r\n\r\n addQuestion() {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: JobDialogComponent,\r\n data: {\r\n dialogName: JobDialogTypes.Questionnaire,\r\n method: 'Add',\r\n },\r\n })\r\n dialogInstance\r\n .afterClosed()\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((data) => {\r\n if (data.formName === JobDialogTypes.Questionnaire) {\r\n if (typeof this.questioneArray == 'undefined') this.questioneArray = []\r\n this.questioneArray.push({ ...data?.formData })\r\n this.updateJobQuestionnaire(this.questioneArray)\r\n this.jobService.triggerToGetLatestJobValidation()\r\n }\r\n })\r\n }\r\n\r\n updateJobQuestionnaire(questionnaireData) {\r\n this.jobSkillData.Questionnaire = questionnaireData\r\n this.jobService\r\n .AddQuestionnaire(this.jobSkillData)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(\r\n (result) => {\r\n this.notifyService.showSuccess('Job questionnaire successfully saved.', '')\r\n this.bindQuestionnaire(this.job.JobId)\r\n },\r\n (err: any) => {\r\n this.notifyService.showError('Could not save questions', '')\r\n return\r\n }\r\n )\r\n }\r\n\r\n openDeleteConfirmationDialog(\r\n templateRef: TemplateRef,\r\n typeOfItemToBeDeleted: string,\r\n deletedItemIndex: number\r\n ) {\r\n this.dialog.open(templateRef, {\r\n width: '400px',\r\n disableClose: true,\r\n autoFocus: false,\r\n })\r\n this.typeOfItemToBeDeleted = typeOfItemToBeDeleted\r\n this.indexOfItemToBeDeleted = deletedItemIndex\r\n this.dialog.afterAllClosed.pipe(takeUntil(this._destroy$)).subscribe((res) => {\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n })\r\n }\r\n\r\n getSalaryOptions() {\r\n this.jobService\r\n .getLookup('SalaryDisplayTypeID')\r\n .pipe(first())\r\n .subscribe((salaryOption: iKeyValue[]) => {\r\n this.salaryDisplayOptionTypes = [...salaryOption]\r\n })\r\n }\r\n\r\n getSalaryExternalPortalText(optionSelected) {\r\n if (optionSelected === null || optionSelected === undefined || optionSelected === 0) {\r\n return 'None'\r\n }\r\n const SELECTED_OPTION = this.salaryDisplayOptionTypes?.find((option) => option?.Value === optionSelected)\r\n return SELECTED_OPTION?.Key\r\n }\r\n\r\n private _subscribeToCandidateNotesSubject() {\r\n this.jobService.candidateNotesAdded$.pipe(takeUntil(this._destroy$)).subscribe({\r\n next: () => {\r\n this._getNotesDetails()\r\n },\r\n })\r\n }\r\n\r\n private _getNotesDetails() {\r\n let notesRequestModel = {\r\n JobId: Common.activeJob.JobId,\r\n ContactId: null,\r\n }\r\n this.jobService\r\n .getNotes(notesRequestModel)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((notesList: Notes[]) => {\r\n const NOTES_LIST = notesList\r\n this.jobIntakeCallNoteList = NOTES_LIST.filter((note) => note.ActionId === NotesType.Intake_Calls).sort(\r\n (noteA, noteB) => new Date(noteB.CreatedDate).getTime() - new Date(noteA.CreatedDate).getTime()\r\n )\r\n })\r\n }\r\n\r\n deleteItem() {\r\n switch (this.typeOfItemToBeDeleted) {\r\n case JobDialogTypes.Questionnaire:\r\n let tempQuestionArray = [...this.questioneArray]\r\n tempQuestionArray.splice(this.indexOfItemToBeDeleted, 1)\r\n this.updateJobQuestionnaire(tempQuestionArray)\r\n break\r\n case JobDialogTypes.Skills:\r\n case JobDialogTypes.SoftSkills:\r\n // check if skill getting deleteed is soft skill or skills\r\n let isSoftSkill = false\r\n if (this.typeOfItemToBeDeleted === JobDialogTypes.SoftSkills) {\r\n isSoftSkill = true\r\n }\r\n if (\r\n this.reqSkillCount <= 1 &&\r\n !isSoftSkill &&\r\n this.professionalSkills[this.indexOfItemToBeDeleted]?.Required\r\n ) {\r\n this.notifyService.showError('Minimum one Required skill should be added', '')\r\n } else {\r\n let tempSkillArray = [...(isSoftSkill ? this.softSkills : this.professionalSkills)]\r\n const skillToBeDeleted = tempSkillArray[this.indexOfItemToBeDeleted]\r\n\r\n tempSkillArray.splice(this.indexOfItemToBeDeleted, 1)\r\n // Delete Job skills\r\n this.loading = true\r\n this.jobService\r\n .deleteSkill(skillToBeDeleted)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.loading = false\r\n this.notifyService.showSuccess('Skill deleted successfully', '')\r\n // this.updateJobSkills(tempSkillArray)\r\n this.BindRequiredSkill(this.job.JobId)\r\n },\r\n error: (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError('Skill could not be deleted!', '')\r\n return\r\n },\r\n })\r\n }\r\n break\r\n default:\r\n this.notifyService.showError('The delete operation could not be performed', '')\r\n }\r\n this.typeOfItemToBeDeleted = ''\r\n this.indexOfItemToBeDeleted = null\r\n this.dialog.closeAll()\r\n }\r\n // For resetting tab index\r\n @HostBinding('tabindex') tabIndex = 8\r\n\r\n @HostListener('focus')\r\n focusHandler() {\r\n this.tabIndex = 1\r\n }\r\n}\r\n"," \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \"Job\r\n \r\n Job Type{{ job?.JobType | nullValueReplace }} \r\n \r\n
\r\n\r\n
\r\n \"Experience\"\r\n Experience\r\n {{ skillLevels | nullValueReplace }}\r\n \r\n
\r\n
\r\n \"CTC\"\r\n \r\n Bill Rate \r\n \r\n {{\r\n job?.MaxBillRate\r\n ? (job?.MaxBillRate | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxBillRate | nullValueReplace)\r\n }}{{ job?.MaxBillRate ? '/hr' : '' }}\r\n \r\n \r\n Bill Rate/Annual Salary\r\n \r\n \r\n {{\r\n job?.MaxBillRate\r\n ? (job?.MaxBillRate | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxBillRate | nullValueReplace)\r\n }}{{ job?.MaxBillRate ? '/hr' : '' }},\r\n {{\r\n job?.MaxSalary\r\n ? (job?.MaxSalary | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxSalary | nullValueReplace)\r\n }}{{ job?.MaxSalary ? '/yr' : '' }}\r\n \r\n Annual Salary \r\n \r\n {{\r\n job?.MaxSalary\r\n ? (job?.MaxSalary | currency : 'USD' : 'symbol-narrow')\r\n : (job?.MaxSalary | nullValueReplace)\r\n }}{{ job?.MaxSalary ? '/yr' : '' }}\r\n \r\n \r\n
\r\n
\r\n \"Job\r\n Job Location\r\n \r\n 0\">{{\r\n job?.Location?.City | nullValueReplace\r\n }}\r\n 0 && job?.Location?.StateCode?.length > 0\">,\r\n 0\" class=\"ml-1\"\r\n >{{ job?.Location?.StateCode | nullValueReplace }}\r\n \r\n \r\n \r\n
\r\n
\r\n \"No\r\n No of Jobs{{ job?.Positions | nullValueReplace }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Job Description\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n no description available.\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n Job Details\r\n \r\n \r\n \"Edit\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Job Title\r\n {{ job?.JobTitleName | nullValueReplace }}\r\n
\r\n
\r\n Client\r\n {{ job?.CompanyName | nullValueReplace }}\r\n
\r\n
\r\n Street Address\r\n \r\n {{ job?.Location?.StreetAddress | nullValueReplace }}\r\n \r\n
\r\n
\r\n Industry\r\n {{ job?.IndustryName | nullValueReplace }}\r\n
\r\n
\r\n Minimum Experience\r\n {{ job?.MinExperience | nullValueReplace }}\r\n
\r\n
\r\n Maximum Experience\r\n {{ job?.MaxExperience | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Customer Job Code\r\n {{ job?.JobCode | nullValueReplace }}\r\n
\r\n
\r\n Hiring Manager\r\n {{ job?.CompanyContact | nullValueReplace }}\r\n
\r\n
\r\n City & State\r\n \r\n {{ job?.Location?.City | nullValueReplace }},\r\n {{ job?.Location?.State | nullValueReplace }}\r\n \r\n
\r\n
\r\n Category\r\n {{ job?.JobCategory | nullValueReplace }}\r\n
\r\n
\r\n Work Option\r\n {{ job?.WorkOption | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Job ID\r\n {{ job?.JobId | nullValueReplace }}\r\n
\r\n
\r\n Program Manager\r\n {{ job?.MspContact | nullValueReplace }}\r\n
\r\n
\r\n Zip Code\r\n \r\n {{ job?.Location?.ZipCode | nullValueReplace }}\r\n \r\n
\r\n
\r\n Specialized Skill\r\n {{ job?.SpecializedSkill | nullValueReplace }}\r\n
\r\n\r\n
\r\n Salary external portal\r\n {{ getSalaryExternalPortalText(job?.SalaryDisplayTypeID) }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Other Details\r\n \r\n \r\n \"Edit\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n Job Type\r\n {{ job?.JobType | nullValueReplace }}\r\n
\r\n
\r\n Job Start Date\r\n {{\r\n job?.StartDate ? (job?.StartDate | date) : (job?.StartDate | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Positions\r\n {{ job?.Positions | nullValueReplace }}\r\n
\r\n
\r\n Work Type\r\n {{ job?.WorkTypeID == 1 ? 'Full Time' : 'Part Time' }}\r\n
\r\n
\r\n Primary Recruiter\r\n {{ job?.RecruiterName | nullValueReplace }}\r\n
\r\n
\r\n Interview Type\r\n {{ job?.InterviewTypeNames | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Bill Rate\r\n ${{ job?.MaxBillRate | nullValueReplace }}\r\n
\r\n
\r\n Job End Date\r\n {{\r\n job?.EndDate ? (job?.EndDate | date) : (job?.EndDate | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Max. Submission\r\n {{ job?.MaxSubmissionCount | nullValueReplace }}\r\n
\r\n
\r\n Secondary Recruiter\r\n {{ job?.SecondaryRecruiter | nullValueReplace }}\r\n
\r\n
\r\n Background Checks\r\n {{ job?.BackgroundcheckNames | nullValueReplace }}\r\n
\r\n
\r\n Travel Required\r\n {{\r\n job?.TravelRequired != null\r\n ? job?.TravelRequired\r\n ? 'Yes'\r\n : 'No'\r\n : (job?.TravelRequired | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Travel Percentage\r\n {{ job?.TravelPercentage | nullValueReplace }}\r\n
\r\n
\r\n
\r\n
\r\n Max. Salary/Annum\r\n {{\r\n job?.MaxSalary\r\n ? (job?.MaxSalary | currency : 'USD' : 'symbol-narrow' : '1.2-2')\r\n : (job?.MaxSalary | nullValueReplace)\r\n }}\r\n
\r\n
\r\n Submission Date\r\n {{\r\n job?.ExpiryDate ? (job?.ExpiryDate | date) : (job?.ExpiryDate | nullValueReplace)\r\n }}\r\n
\r\n
\r\n No. of Hrs per week\r\n {{ job?.WorkHours | nullValueReplace }}\r\n
\r\n
\r\n Work Permit\r\n {{ job?.LegalTypeNames | nullValueReplace }}\r\n
\r\n\r\n
\r\n Vendor Allowed\r\n {{ job?.VendorAllowedId ? 'Yes' : 'No' }}\r\n
\r\n\r\n
\r\n Hot Job\r\n {{ job?.IsHot ? 'Yes' : 'No' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Education & Certification\r\n \r\n \r\n \"Edit\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Education\r\n
\r\n 0\" #educationList>\r\n \r\n {{ education.EducationName }}\r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n Certifications\r\n
\r\n 0\" #certificationList>\r\n \r\n {{ certification.CertificationName }}\r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Professional Skills\r\n \r\n \r\n \"Add\r\n Add\r\n \r\n \r\n
\r\n \r\n
\r\n 0\" #SkillList>\r\n \r\n {{ skill.SkillName }} ({{ skill.Experience }} Yrs)\r\n \r\n \r\n \"Delete\r\n \r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Soft Skills\r\n \r\n \r\n \"Add\r\n Add\r\n \r\n \r\n
\r\n \r\n
\r\n 0\" #SkillList>\r\n \r\n {{ skill.SkillName }}\r\n \r\n \"Delete\r\n \r\n \r\n \r\n -\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n Delete\r\n close\r\n
\r\n
\r\n Are you sure you want to delete this item?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner'\r\nimport { CommonModule } from '@angular/common'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { RouterModule } from '@angular/router'\r\nimport { MatFormFieldModule } from '@angular/material/form-field'\r\nimport { MatListModule } from '@angular/material/list'\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar'\r\nimport { MatRippleModule } from '@angular/material/core'\r\nimport { MatTabsModule } from '@angular/material/tabs'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatInputModule } from '@angular/material/input'\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatSelectModule } from '@angular/material/select'\r\nimport { MatChipsModule } from '@angular/material/chips'\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { MatDatepickerModule } from '@angular/material/datepicker'\r\nimport { MatRadioModule } from '@angular/material/radio'\r\nimport { MatNativeDateModule } from '@angular/material/core'\r\nimport { MatCheckboxModule } from '@angular/material/checkbox'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { MatStepperModule } from '@angular/material/stepper'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\r\nimport { QuillModule } from 'ngx-quill'\r\nimport { JobRoutingModule } from './job-routing.module'\r\nimport { JobUploadComponent } from './job-upload/job-upload.component'\r\nimport { JobDetailsComponent } from './job-details/job-details.component'\r\nimport { JobSkillsComponent } from './job-skills/job-skills.component'\r\nimport { JobEducationComponent } from './job-education/job-education.component'\r\nimport { JobDescriptionComponent } from './job-description/job-description.component'\r\nimport { JobOtherComponent } from './job-other/job-other.component'\r\nimport { JobPreviewComponent } from './job-preview/job-preview.component'\r\nimport { JobQuestionnaireComponent } from './job-questionnaire/job-questionnaire.component'\r\nimport { JobTabsComponent } from './job-tabs/job-tabs.component'\r\nimport { LayoutModule } from '../shared/core/layout/layout.module'\r\nimport { PageLayoutModule } from '../shared/core/components/page-layout/page-layout.module'\r\nimport { BreadcrumbsModule } from '../shared/core/components/breadcrumbs/breadcrumbs.module'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { JobAddlayoutComponent } from './job-addlayout/job-addlayout.component'\r\nimport { JobFileviewComponent } from './job-fileview/job-fileview.component'\r\nimport { ToastrModule } from 'ngx-toastr'\r\nimport { LocationModule } from '../common/location/location.module'\r\nimport { JobCandidatesComponent } from './job-candidates/job-candidates.component'\r\nimport { JobViewDescriptionComponent } from './job-view-description/job-view-description.component'\r\nimport { JobInterviewComponent } from './job-interview/job-interview.component'\r\nimport { JobNotesComponent } from './job-notes/job-notes.component'\r\nimport { MatCardModule } from '@angular/material/card'\r\nimport { MatDialogModule } from '@angular/material/dialog'\r\nimport { NgxLoadingModule } from 'ngx-loading'\r\nimport { ActionDialogComponent } from '../shared/action-dialog/action-dialog.component'\r\nimport { ObjectStatusLogComponent } from '../common/object-status-log/object-status-log.component'\r\nimport { JobInterviewScheduleComponent } from './job-interview-schedule/job-interview-schedule.component'\r\nimport { JobDescriptionCardComponent } from './job-description-card/job-description-card.component'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { JobCandidateCardComponent } from './job-candidate-card/job-candidate-card.component'\r\nimport { SharedModule } from '../shared/shared.module'\r\nimport { MatPaginatorModule } from '@angular/material/paginator'\r\nimport { HomeToolbarComponent } from '../shared/home-toolbar/home-toolbar.component'\r\nimport { OverlayModule } from '@angular/cdk/overlay'\r\nimport { FiltersComponent } from '../shared/filters/filters.component'\r\nimport { JobStatusFilterPipe } from './job-description-card/jobStatusFilter.pipe'\r\nimport { JobDialogComponent } from './job-dialog/job-dialog.component';\r\nimport { JobAddComponent } from './job-add/job-add.component';\r\nimport { JobFileUploadComponent } from './job-file-upload/job-file-upload.component'\r\nimport { JobDetailsPreviewComponent } from './job-details-preview/job-details-preview.component'\r\n\r\n@NgModule({\r\n declarations: [\r\n JobStatusFilterPipe,\r\n JobUploadComponent,\r\n JobDetailsComponent,\r\n JobSkillsComponent,\r\n JobEducationComponent,\r\n JobDescriptionComponent,\r\n JobOtherComponent,\r\n JobQuestionnaireComponent,\r\n JobPreviewComponent,\r\n JobTabsComponent,\r\n JobAddlayoutComponent,\r\n JobFileviewComponent,\r\n JobCandidatesComponent,\r\n JobViewDescriptionComponent,\r\n JobInterviewComponent,\r\n JobNotesComponent,\r\n ActionDialogComponent,\r\n ObjectStatusLogComponent,\r\n JobInterviewScheduleComponent,\r\n JobDescriptionCardComponent,\r\n JobCandidateCardComponent,\r\n JobDialogComponent,\r\n JobAddComponent,\r\n JobFileUploadComponent,\r\n JobDetailsPreviewComponent\r\n ],\r\n imports: [\r\n OverlayModule,\r\n CommonModule,\r\n MatDialogModule,\r\n LocationModule,\r\n MatProgressSpinnerModule,\r\n JobRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n LayoutModule,\r\n PageLayoutModule,\r\n BreadcrumbsModule,\r\n MatSidenavModule,\r\n MatFormFieldModule,\r\n MatListModule,\r\n MatProgressBarModule,\r\n MatMenuModule,\r\n RouterModule,\r\n MatRippleModule,\r\n MatTabsModule,\r\n FormsModule,\r\n MatIconModule,\r\n IconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatChipsModule,\r\n SharedModule,\r\n MatDatepickerModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatNativeDateModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n FlexLayoutModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule,\r\n NgxLoadingModule.forRoot({}),\r\n ToastrModule.forRoot(),\r\n ReactiveFormsModule,\r\n QuillModule.forRoot({\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n\r\n [{ header: 1 }, { header: 2 }], // custom button values\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\r\n [{ indent: '-1' }, { indent: '+1' }], // outdent/indent\r\n [{ direction: 'rtl' }], // text direction\r\n\r\n [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\r\n [{ align: [] }],\r\n\r\n ['clean'], // remove formatting button\r\n\r\n ['link', 'image', 'video'], // link and image, video\r\n ],\r\n },\r\n }),\r\n ],\r\n exports: [JobTabsComponent, JobDescriptionCardComponent, FiltersComponent, HomeToolbarComponent, MatInputModule],\r\n providers: [JobViewDescriptionComponent, JobAddComponent],\r\n})\r\nexport class JobModule {}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http'\r\nimport { throwError as observableThrowError, Observable, BehaviorSubject } from 'rxjs'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { Common } from '../common/common'\r\nimport { iJob, iJobCertification, iJobSearch, iJobSkill, iJobTitle } from '../models/job.model'\r\nimport { map } from 'rxjs/operators'\r\nimport { iCommments } from '../models/common.model'\r\nimport { iConsultantJobStatusSearch } from '../models/consultant.model'\r\nimport * as QuestionTypeJson from '../../assets/questionTypes.json'\r\nimport { SkillKeyWord } from '../models/skill-keyword'\r\nimport { iCategory } from '../models/category'\r\nimport { iJobClone } from '../models/cloneJob.model'\r\nimport { DashboardJobStatusCountParameter } from '../models/dashboard.model'\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JobService {\r\n //common: Common = new Common();\r\n searchData: string\r\n apiUrl = Common.apiUrl\r\n private eventSource = new BehaviorSubject(null)\r\n eventSubject = this.eventSource.asObservable()\r\n private jobStatusChange$: BehaviorSubject = new BehaviorSubject(0)\r\n public jobStatusValueChange$ = this.jobStatusChange$.asObservable()\r\n private jobLoadingSubject$: BehaviorSubject = new BehaviorSubject(false)\r\n public jobLoadingSubjectChange$ = this.jobLoadingSubject$.asObservable()\r\n private _jobValidationTrigger$: BehaviorSubject = new BehaviorSubject(0)\r\n public jobValidationTrigger$ = this._jobValidationTrigger$.asObservable()\r\n public jobCloneInfo: BehaviorSubject = new BehaviorSubject(null)\r\n\r\n private isCandidateStatus$: BehaviorSubject = new BehaviorSubject(false)\r\n public isCandidateStatusChanged$ = this.isCandidateStatus$.asObservable()\r\n\r\n private _candidateNotesAddedCount$: BehaviorSubject = new BehaviorSubject(0)\r\n public candidateNotesAdded$ = this._candidateNotesAddedCount$.asObservable()\r\n \r\n private _addJob$: BehaviorSubject<{}> = new BehaviorSubject<{}>(null)\r\n public addJob$ = this._addJob$.asObservable()\r\n\r\n private _recruiter$: BehaviorSubject<[]> = new BehaviorSubject<[]>(null)\r\n public recruiter$ = this._recruiter$.asObservable()\r\n private _isJobFileUploaded$: BehaviorSubject = new BehaviorSubject(false)\r\n public isJobFileUploaded$ = this._isJobFileUploaded$.asObservable()\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n emitEvent(value: iJobCertification[]) {\r\n this.eventSource.next(value)\r\n }\r\n\r\n setCandidateStatus(isCandidateStatusChanged: boolean) {\r\n this.isCandidateStatus$.next(isCandidateStatusChanged)\r\n }\r\n\r\n onCandidateNotesAdded() {\r\n this._candidateNotesAddedCount$.next(this._candidateNotesAddedCount$.value + 1)\r\n }\r\n\r\n getJobCloneStatus() {\r\n return this.jobCloneInfo\r\n }\r\n setJobCloneStatus(iJobClone) {\r\n return this.jobCloneInfo.next(iJobClone)\r\n }\r\n\r\n getAddJob(){\r\n return this.addJob$\r\n }\r\n setAddJobDetails(addJobDetails){\r\n return this._addJob$.next(addJobDetails)\r\n }\r\n getRecruiter(){\r\n \r\n return this.recruiter$\r\n }\r\n setRecruiter(recruiter){\r\n \r\n return this._recruiter$.next(recruiter)\r\n }\r\n getIsJobUploaded(){\r\n return this.isJobFileUploaded$\r\n }\r\n setIsJobUploaded(isFileUploaded){\r\n return this._isJobFileUploaded$.next(isFileUploaded)\r\n }\r\n\r\n getJob(jobId) {\r\n var url = Common.apiUrl + 'jobs/GetJob' + '/' + encodeURIComponent(jobId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getJobList(obj: iJobSearch) {\r\n var url = Common.apiUrl + 'jobs/joblist'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n exportJobs(obj: any) {\r\n var url = Common.apiUrl + 'jobs/exportJobs'\r\n return this.http.post(url, obj, {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n responseType: 'blob',\r\n })\r\n }\r\n\r\n getRecruiters(obj: any) {\r\n var url = Common.apiUrl + 'user/GetUsers'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetCompanyRecruiters(companyId, roleId) {\r\n var url =\r\n this.apiUrl +\r\n 'Company/GetRecruiters' +\r\n '/' +\r\n encodeURIComponent(companyId) +\r\n '/' +\r\n encodeURIComponent(roleId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetRecruitUsersByCompany(companyId) {\r\n var url = this.apiUrl + 'Company/GetRecruitUsersByCompany' + '/' + encodeURIComponent(companyId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetRecruiterByRoleId(roleIds) {\r\n var url = this.apiUrl + 'Company/GetRecruiterByRoleId' + '/' + encodeURIComponent(roleIds)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n GetRoleUsers(roleId) {\r\n var url = this.apiUrl + 'Company/GetRoleUsers' + '/' + encodeURIComponent(roleId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getCitySearch(name: string, stateCode?: string) {\r\n let resObj = {\r\n name: name,\r\n stateCode: stateCode,\r\n }\r\n var url = Common.apiUrl + 'data/GetCitySearch'\r\n return this.http.post(url, resObj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getLookup(LookpText) {\r\n var url = Common.apiUrl + 'data/GetLookup' + '?LookpText=' + encodeURIComponent(LookpText)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getClients() {\r\n var url = Common.apiUrl + 'Company/GetClients'\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getClientsByUserId(userID) {\r\n var url = Common.apiUrl + 'company/GetClientsByUserId/' + userID\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getClientCompany() {\r\n var url = Common.apiUrl + 'data/GetClientCompany'\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getCompanyContacts(companyId) {\r\n var url = Common.apiUrl + 'data/GetCompanyContacts' + '?companyId=' + encodeURIComponent(companyId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getHiringManagers(companyId) {\r\n var url = Common.apiUrl + 'jobs/GetHiringManager' + '?companyId=' + encodeURIComponent(companyId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getProgramManager(companyId) {\r\n var url = Common.apiUrl + 'jobs/GetProgramManager' + '?companyId=' + encodeURIComponent(companyId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getCompanyLocations(objectid, objecttypeid) {\r\n var url =\r\n Common.apiUrl +\r\n 'data/GetCompanyLocations' +\r\n '/' +\r\n encodeURIComponent(objectid) +\r\n '/' +\r\n encodeURIComponent(objecttypeid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getSkills(title) {\r\n var url = Common.apiUrl + 'data/GetSkillName' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getSkillNames(title, skillTypeId) {\r\n var url =\r\n Common.apiUrl +\r\n 'data/GetSkillNameList/' + encodeURIComponent(title) +\r\n '/' +\r\n encodeURIComponent(skillTypeId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getAllSkills(title) {\r\n var url = Common.apiUrl + 'data/GetAllSkillName' + '?title=' + encodeURIComponent(title)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getAllCategory(title) {\r\n var url = Common.apiUrl + 'data/GetCategoryName' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n IsSkillExist(skillName) {\r\n var url = Common.apiUrl + 'data/IsSkillExist' + '?skillName=' + encodeURIComponent(skillName)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n IsCategoryExist(skillName) {\r\n var url = Common.apiUrl + 'data/IsCategoryExist' + '?categoryName=' + encodeURIComponent(skillName)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n AddSkill(obj: SkillKeyWord) {\r\n var url = Common.apiUrl + 'data/AddSkill'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n UpdateSkill(obj: SkillKeyWord) {\r\n var url = Common.apiUrl + 'data/UpdateSkill'\r\n return this.http.put(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n deleteSkill(obj: iJobSkill) {\r\n var url = Common.apiUrl + 'Jobs/DeleteJobSkill'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n RemoveSkill(id: string) {\r\n var url = Common.apiUrl + 'data/RemoveSkill?skillId=' + encodeURIComponent(id)\r\n return this.http.delete(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n AddCategory(obj: iCategory) {\r\n var url = Common.apiUrl + 'data/AddCategory'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n RemoveCategory(id: string) {\r\n var url = Common.apiUrl + 'data/RemoveCategory?categoryId=' + encodeURIComponent(id)\r\n return this.http.delete(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n UpdateCategory(obj: iCategory) {\r\n var url = Common.apiUrl + 'data/UpdateCategory'\r\n return this.http.put(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n uploadJobFile(files: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/jobDescription'\r\n return this.http.post(url, files, { reportProgress: true }).pipe(catchError(this.handleError))\r\n }\r\n SaveJobData(files: any) {\r\n var url = Common.apiUrl + 'api/FileUploader/SaveJobData'\r\n return this.http.post(url, files, { reportProgress: true }).pipe(catchError(this.handleError))\r\n }\r\n savejobinfo(files: any) {\r\n var url = Common.apiUrl + 'jobs/savejobinfo'\r\n return this.http.post(url, files, { reportProgress: true }).pipe(catchError(this.handleError))\r\n }\r\n JobCard(page: number): Observable {\r\n var url = this.apiUrl + 'Jobs/jobcard?pageNumber=' + page\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n //return this.http.get(this.apiUrl + 'Jobs/jobcard?pageNumber=' + page);\r\n }\r\n GetJobCardList(obj: iJobSearch) {\r\n var url = Common.apiUrl + 'jobs/jobcardlist'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobValidation(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobValidation' + '/' + encodeURIComponent(jobId)\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobStatus() {\r\n var url = this.apiUrl + 'Jobs/GetJobStatus'\r\n\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobCategory() {\r\n var url = this.apiUrl + 'Jobs/JobCategory'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getJobCategoryByCompany(companyId: any) {\r\n var url = Common.apiUrl + 'Company/GetJobCategory'\r\n return this.http.post(url, { CompanyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getLegalTypes() {\r\n var url = this.apiUrl + 'data/GetLegalTypes'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getBackgroundChecks() {\r\n var url = this.apiUrl + 'data/getBackgroundChecks'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n addComments(obj: iCommments) {\r\n var url = Common.apiUrl + 'data/AddComments'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobIndustry() {\r\n var url = this.apiUrl + 'Jobs/JobIndustry'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobSpecializedSkills(categoryId) {\r\n var url = this.apiUrl + 'Jobs/CategorySpecializedSkill' + '?categoryId=' + encodeURIComponent(categoryId)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n\r\n getJobTitles(title) {\r\n var url = this.apiUrl + 'Jobs/JobTitleSearch' + '?title=' + encodeURIComponent(title)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getJobTitleByJobId(jobId: number) {\r\n var url = this.apiUrl + 'Jobs/GetJobTitleFromJobId' + '/' + encodeURIComponent(jobId)\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobSkills(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobSkill' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetDiceJobSkill(jobId, diceId) {\r\n const ENDPOINT = `${this.apiUrl}Jobs/GetDiceJobSkill/${encodeURIComponent(jobId)}/${encodeURIComponent(diceId)}`\r\n return this.http.get(ENDPOINT, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n GetJobConsultants(jobid, userid) {\r\n var url =\r\n this.apiUrl + 'Jobs/GetJobConsultants' + '/' + encodeURIComponent(jobid) + '/' + encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getConsultantJobStatusList(obj: iConsultantJobStatusSearch) {\r\n var url = Common.apiUrl + 'Consultant/GetConsultantJobStatus'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobInterviews(jobid, userid) {\r\n var url =\r\n this.apiUrl + 'Jobs/GetJobInterviews' + '/' + encodeURIComponent(jobid) + '/' + encodeURIComponent(userid)\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n GetJobSkillsConsultant(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobSkill' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http\r\n .get(url, Common.httpOptions)\r\n .pipe(map((response: Response) => response.json()))\r\n .toPromise()\r\n }\r\n GetJobEducation(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobEducation' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobCertification(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobCertification' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobInterviewType(jobid) {\r\n var url = this.apiUrl + 'Jobs/GetJobInterviewType' + '?jobId=' + encodeURIComponent(jobid)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobQuestionnaire(jobId) {\r\n var url = this.apiUrl + 'Jobs/GetJobQuestionnaire' + '?jobId=' + encodeURIComponent(jobId)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetJobLegalStatus(jobid) {\r\n var url = this.apiUrl + 'Jobs/GetJobLegalStatus' + '?jobId=' + encodeURIComponent(jobid)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n ParseSkills(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/ParseSkill'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetParseJobtext(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/JobKeywordSearh'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetParseJobKeyword(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/GetParseJobKeyword'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n GetParseEmail(email) {\r\n var url = this.apiUrl + 'Jobs/GetParseEmail' + '?email=' + encodeURIComponent(email)\r\n\r\n return this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobDescription(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddJob'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobSkill(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddSkill'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobEducation(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddEducation'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddCertification(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddCertification'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteEducation(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/DeleteJobEducation'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n deleteCertification(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/DeleteJobCertification'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddJobCertAndEdu(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddJobCertAndEdu'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n AddQuestionnaire(obj: iJob) {\r\n var url = this.apiUrl + 'Jobs/AddQuestionnaire'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getCompanyByCompanyId(companyId) {\r\n var url = Common.apiUrl + 'Company/GetCompanyByCompanyId'\r\n return this.http.post(url, { companyId: companyId }, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getNotes(obj: any) {\r\n var url = Common.apiUrl + 'data/GetNotes'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n return observableThrowError(errMessage)\r\n // Use the following instead if using lite-server\r\n // return Observable.throw(err.text() || 'backend server error');\r\n }\r\n return observableThrowError(error || 'Node.js server error')\r\n }\r\n\r\n public getQuestionTypes() {\r\n return QuestionTypeJson.default.questionTypes\r\n }\r\n\r\n changeJobStatusBySubmittedCount(jobId, userId) {\r\n const endPoint =\r\n Common.apiUrl +\r\n 'Jobs/ChangeJobStatsBySubmitCount/' +\r\n encodeURIComponent(jobId) +\r\n '/' +\r\n encodeURIComponent(userId)\r\n return this.http.get(endPoint).pipe(catchError(this.handleError))\r\n }\r\n\r\n triggerJobStatusChange() {\r\n this.jobStatusChange$.next(this.jobStatusChange$.value + 1)\r\n }\r\n\r\n triggerJobLoadingConfig(isLoading: boolean) {\r\n this.jobLoadingSubject$.next(isLoading)\r\n }\r\n getInterviewDetails(candidateJobId) {\r\n const url = Common.apiUrl + `Consultant/GetInterviewList/${candidateJobId}`\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n triggerToGetLatestJobValidation() {\r\n this._jobValidationTrigger$.next(this._jobValidationTrigger$.value + 1)\r\n }\r\n reopenJobStatus(cloneJobObj) {\r\n const url = Common.apiUrl + 'jobs/CloneJob'\r\n\r\n return this.http.post(url, cloneJobObj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n getCallRecords(searchPara) {\r\n\r\n const url = Common.apiUrl + 'jobs/GetCallRecords'\r\n return this.http.post(url, searchPara, Common.httpOptions).pipe(catchError(this.handleError))\r\n\r\n }\r\n\r\n getCallRecordsByCallerNumber(calleeNumber: string) {\r\n const url = Common.apiUrl + `jobs/GetCallRecordsByCallerNumber/${calleeNumber}`;\r\n return this.http.get(url).pipe(catchError(this.handleError))\r\n }\r\n getParserLogs(logs: any) {\r\n const url = Common.apiUrl + `consultant/GettParserLog`;\r\n return this.http.post(url, logs).pipe(catchError(this.handleError))\r\n }\r\n\r\n saveInitialCallDetails(data) {\r\n const url = Common.apiUrl + `jobs/SaveInitialCallDetails`;\r\n return this.http.post(url, data, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getJobStatusCount(obj: DashboardJobStatusCountParameter) {\r\n var url = Common.apiUrl + 'data/GetDashboardJobStatusCount'\r\n return this.http.post(url, obj, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {A11yModule} from '@angular/cdk/a11y';\r\n//import {ClipboardModule} from '@angular/cdk/clipboard';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {CdkTreeModule} from '@angular/cdk/tree';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport {MatBadgeModule} from '@angular/material/badge';\r\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\nimport {MatCardModule} from '@angular/material/card';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport {MatStepperModule} from '@angular/material/stepper';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatGridListModule} from '@angular/material/grid-list';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatListModule} from '@angular/material/list';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {MatRadioModule} from '@angular/material/radio';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {MatSidenavModule} from '@angular/material/sidenav';\r\nimport {MatSliderModule} from '@angular/material/slider';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\r\nimport {MatSortModule} from '@angular/material/sort';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatTreeModule} from '@angular/material/tree';\r\nimport { CdkStepper, CdkStepperModule } from '@angular/cdk/stepper';\r\n\r\n@NgModule({\r\n imports:[CdkStepperModule],\r\n exports: [\r\n A11yModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n PortalModule,\r\n ScrollingModule\r\n ],\r\n providers: [CdkStepper]\r\n\r\n})\r\nexport class MaterialModule {}\r\n\r\n\r\n/** Copyright 2019 Google LLC. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */","export interface iCategory {\r\n CategoryID?: number\r\n CategoryTypeID?: number\r\n Name?: string\r\n Description?: string\r\n CreatedDate?: Date\r\n CreatedBy?: number\r\n UpdatedDate?: Date\r\n UpdatedBy?: number\r\n IsActive?: boolean\r\n}\r\n\r\nexport enum CategoryValues {\r\n CategoryTypeID_ALL = 1312,\r\n}\r\n\r\nexport interface JobCategorySetting {\r\n CompanyJobCategorySettingID: number\r\n CompanyID: number\r\n CategoryID: number\r\n CategoryName: string\r\n MaxSubmit: number\r\n IsVendorAllowed: boolean\r\n CreatedDate: string\r\n CreatedBy: number\r\n C2C: C2C\r\n C2O: C2O\r\n W2: W2\r\n DS: DS\r\n}\r\n\r\ninterface C2C {\r\n CategoryMarkupID: number\r\n CompanyJobCategorySettingID: number\r\n LookupTypeID: number\r\n Value: number\r\n CreatedDate: string\r\n CreatedBy: number\r\n UpdatedDate: string\r\n UpdatedBy: number\r\n IsActive: boolean\r\n}\r\n\r\ninterface C2O {\r\n CategoryMarkupID: number\r\n CompanyJobCategorySettingID: number\r\n LookupTypeID: number\r\n Value: number\r\n CreatedDate: string\r\n CreatedBy: number\r\n UpdatedDate: string\r\n UpdatedBy: number\r\n IsActive: boolean\r\n}\r\n\r\ninterface W2 {\r\n CategoryMarkupID: number\r\n CompanyJobCategorySettingID: number\r\n LookupTypeID: number\r\n Value: number\r\n CreatedDate: string\r\n CreatedBy: number\r\n UpdatedDate: string\r\n UpdatedBy: number\r\n IsActive: boolean\r\n}\r\n\r\ninterface DS {\r\n CategoryMarkupID: number\r\n CompanyJobCategorySettingID: number\r\n LookupTypeID: number\r\n Value: number\r\n CreatedDate: string\r\n CreatedBy: number\r\n UpdatedDate: string\r\n UpdatedBy: number\r\n IsActive: boolean\r\n}\r\n","export interface iJobClone {\r\n JobId: number\r\n JobStatusId: number\r\n JobStatusName: string\r\n TranStatus: string\r\n}\r\n\r\nexport const TranStatusSuccess = 'Success'\r\n","export interface iMenuItem {\r\n MenuID: number\r\n PageID: number\r\n ComponentID: number\r\n ComponentCode: string\r\n ComponentName: string\r\n ComponentDescription: string\r\n MenuItemID: number\r\n MenuCode: string\r\n MenuName: string\r\n MenuDescription: string\r\n MenuFunction?: any\r\n MenuUrl: string\r\n MenuIcon: string\r\n MenuTypeID: number\r\n MenuType: string\r\n ParentMenuItemID: number\r\n RoleID: number\r\n RoleCode: string\r\n RoleName: string\r\n RoleDescription: string\r\n StatusID: number\r\n StatusCode: string\r\n StatusName: string\r\n StatusDescription: string\r\n}\r\nexport interface iKeyValue {\r\n Key: string\r\n Value: string\r\n}\r\nexport interface iBackGroundCheck {\r\n CreatedBy: number\r\n DisplayOrder: number\r\n IsActive: boolean\r\n LookupID: number\r\n TypeCode: string\r\n TypeName: string\r\n UpdatedBy: number\r\n UpdatedDate: string\r\n ValueCode: string\r\n ValueDescription: string\r\n ValueName: string\r\n CreatedDate: string\r\n}\r\nexport interface FilterObject {\r\n userId?: number\r\n pageName?: string\r\n filterControls?: {}\r\n filterValues?: Array\r\n gridColumns?: {}\r\n}\r\nexport interface iDbResult {\r\n Key: string\r\n Value: string\r\n Description: string\r\n}\r\nexport interface ActiveObject {\r\n ObjectID?: number\r\n ObjectTypeID?: number\r\n StatusID?: number\r\n RoleID?: number\r\n ComponentID?: number\r\n PageID?: number\r\n}\r\nexport interface iStatus {\r\n StatusID: number\r\n Name: string\r\n Description?: string\r\n Code?: string\r\n IsActive?: boolean\r\n}\r\n\r\nexport interface iJobValidationType {\r\n ColumnName: string\r\n Columnvalue: string\r\n}\r\nexport interface iConfigValue {\r\n ConfigValueID: number\r\n ConfigTypeID: number\r\n ObjectTypeID?: number\r\n ObjectID?: number\r\n LookupID?: number\r\n TypeName: string\r\n TypeCode: string\r\n ValueTypeID?: number\r\n ValueTypeName?: string\r\n ValueCode?: string\r\n Value: number\r\n IsActive?: boolean\r\n}\r\nexport interface iLookup {\r\n LookupID: number\r\n TypeCode?: string\r\n ValueCode?: string\r\n ValueName?: string\r\n ValueDescription?: string\r\n DisplayOrder?: number\r\n CreatedBy?: number\r\n CreatedDate?: Date\r\n UpdatedBy?: number\r\n UpdatedDate?: Date\r\n IsActive?: boolean\r\n}\r\nexport interface iStates {\r\n StateID?: number\r\n StateCode: string\r\n StateName: string\r\n Capital: string\r\n CountryId?: string\r\n TimeZoneCode: string\r\n Description: string\r\n CreatedBy: number\r\n CreatedDate: Date\r\n UpdatedBy: number\r\n UpdatedDate: Date\r\n IsActive: boolean\r\n}\r\nexport interface iCategory {\r\n CategoryID?: number\r\n CategoryTypeID?: number\r\n Name?: string\r\n Description?: string\r\n CreatedDate?: Date\r\n CreatedBy?: number\r\n UpdatedDate?: Date\r\n UpdatedBy?: number\r\n IsActive?: number\r\n}\r\n\r\nexport class iCommments {\r\n CommentId?: number\r\n ObjectTypeId?: number\r\n ObjectId?: number\r\n Comment?: string\r\n CreatedDate?: Date\r\n CreatedBy?: number\r\n UserName?: string\r\n}\r\nexport interface iReasons {\r\n ReasonID: number\r\n Name: string\r\n ReasonTypeID?: Number\r\n Description?: string\r\n CreatedDate?: Date\r\n CreatedBy?: number\r\n IsActive?: boolean\r\n}\r\nexport interface iColumn {\r\n ColumnName: string\r\n Columnvalue: string\r\n}\r\n\r\nexport enum RouteNames {\r\n Candidate = '/candidates',\r\n}\r\n","export interface iCompany {\r\n CompanyID: number\r\n Name: string\r\n Phone: number\r\n Fax: string\r\n EmailAddress: string\r\n Address: string\r\n Address1: string\r\n City: string\r\n StateId: number\r\n StateCode: string\r\n ZipCode: number\r\n ZipCode1: number\r\n Dunnumber: string\r\n FederalTaxId: string\r\n LegalStructureId: number\r\n RegisteredStateId: number\r\n RegisteredState: string\r\n WebSite: string\r\n NewsLink: string\r\n Description: string\r\n IsActive: boolean\r\n CreatedBy: number\r\n CreatedDate: Date\r\n UpdatedBy: number\r\n UpdatedDate: Date\r\n CompanyId?: number\r\n CompanyTypeID?: number\r\n}\r\nexport interface iCompanyVendor {\r\n CompanyVendorID: number\r\n CompanyID: number\r\n CompanyName: string\r\n Description: string\r\n IsActive: boolean\r\n CreatedBy: number\r\n CreatedDate: Date\r\n UpdatedBy: number\r\n UpdatedDate: Date\r\n}\r\n\r\nexport class Company {\r\n companyID: number\r\n Name: string\r\n Phone: string\r\n Fax: string\r\n EmailAddress: string\r\n Address: string\r\n Address1: string\r\n City: string\r\n StateId: number\r\n StateCode: string\r\n ZipCode: number\r\n ZipCode1: number\r\n Dunnumber: string\r\n FederalTaxId: string\r\n LegalStructureId: number\r\n RegisteredStateId: number\r\n RegisteredState: string\r\n WebSite: string\r\n NewsLink: string\r\n Description: string\r\n IsActive: boolean\r\n CreatedBy: number\r\n CreatedDate: Date\r\n UpdatedBy: number\r\n UpdatedDate: Date\r\n EmployeeRangeID: number\r\n IndustryID: number\r\n CompanyStatusID: number\r\n SicCodeID: number\r\n CompanyTypeID: number\r\n MSPCompanyID: number\r\n}\r\n\r\nexport interface iBurdenRate {\r\n ConfigValueID: number\r\n Value: string\r\n LookupID: number\r\n ValueTypeID: number\r\n ObjectTypeID: number\r\n ObjectID: number\r\n IsActive: boolean\r\n UpdatedDate: Date\r\n CreatedDate: Date\r\n CreatedBy: number\r\n UpdatedBy: number\r\n ConfigTypeID: number\r\n}\r\n","import { iLocation } from './location.model'\r\n\r\nexport interface iContact {\r\n ContactID?: number\r\n FirstName?: string\r\n MiddleName?: string\r\n LastName?: string\r\n EmailAddress?: string\r\n PersonalEmailAddress?: string\r\n ImageId?: number\r\n TitleId?: number\r\n TitleName?: string\r\n DoB?: Date\r\n Sex?: number\r\n HomePhone?: string\r\n WorkPhone?: string\r\n CellPhone?: string\r\n Address1?: string\r\n Address2?: string\r\n City?: string\r\n StateID?: number\r\n State?: string\r\n CountryID?: number\r\n ZipCode?: number\r\n CreatedDate?: Date\r\n CreatedBy?: number\r\n UpdatedDate?: Date\r\n UpdatedBy?: number\r\n IsActive?: boolean\r\n CompanyId?: number\r\n CompanyContactID?: number\r\n LinkedinUrl?: string\r\n ManagementLevelID?: number\r\n ParentID?: number\r\n DepartmentID?: number\r\n LocationID?: number\r\n FilePath?: string\r\n Title?: string\r\n ContactName?: string\r\n Location?: iLocation\r\n}\r\n\r\nexport class Contact {\r\n ContactID?: number\r\n FirstName?: string\r\n MiddleName?: string\r\n LastName?: string\r\n EmailAddress?: string\r\n ImageId?: number\r\n TitleId?: number\r\n TitleName?: string\r\n DoB?: Date\r\n Sex?: number\r\n HomePhone?: string\r\n WorkPhone?: string\r\n CellPhone?: string\r\n Address1?: string\r\n Address2?: string\r\n City?: string\r\n StateID?: number\r\n State?: string\r\n CountryID?: number\r\n ZipCode?: number\r\n CreatedDate?: Date\r\n CreatedBy?: number\r\n UpdatedDate?: Date\r\n UpdatedBy?: number\r\n IsActive?: boolean\r\n CompanyId?: number\r\n CompanyContactID?: number\r\n LinkedinUrl?: string\r\n ManagementLevelID?: number\r\n ParentID?: number\r\n DepartmentID?: number\r\n LocationID?: number\r\n FilePath?: string\r\n Title?: string\r\n Location?: iLocation\r\n}\r\n","export enum DragDropIds {\r\n Company_Contact = 'company-contact',\r\n Company_Logo = 'company-logo',\r\n Company_Document = 'company-document',\r\n Candidate_Resume = 'candidate-resume',\r\n Candidate_Logo = 'candidate-logo',\r\n Job_Description = 'job-description',\r\n}\r\n\r\nexport enum DragUploadMessage {\r\n Company_Contact = 'Upload Contacts here',\r\n Company_Logo = 'Upload Company Logo here',\r\n Company_Document = 'Upload Document here',\r\n Candidate_Resume = 'Upload Resume here',\r\n Candidate_Logo = 'Upload Profile Picture here',\r\n Job_Description = 'Upload / Drop Job Description here',\r\n}\r\n\r\nexport enum DragDropToolTip {\r\n Company_Contact = 'Upload Contacts',\r\n Company_Logo = 'Upload Company Logo',\r\n Company_Document = 'Upload Document',\r\n Candidate_Resume = 'Upload Resume',\r\n Candidate_Logo = 'Upload Profile Picture',\r\n Job_Description = 'Upload / Drop Job Description',\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Common } from 'src/app/common/common';\r\nimport { iDbResult, iMenuItem, ActiveObject, iKeyValue } from 'src/app/models/common.model';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n@Pipe({\r\n name: 'CandidateJobFilter'\r\n})\r\n\r\nexport class CandidateJobFilterPipe implements PipeTransform {\r\n constructor(\r\n\r\n public authService: AuthenticationService,\r\n ) { }\r\n transform(items: iMenuItem[], statusID: number): any[] {\r\n if(!items) return [];\r\n if(!statusID) return items;\r\n//searchText = searchText.toLowerCase();\r\nvar astat\r\nvar statusName\r\n\r\nif (statusID==16){\r\n if ( Common.ConfigValues !=null){\r\n let ajob= Common.activeJob\r\n var apvlReq = Common.ConfigValues.filter(option => option.ObjectTypeID == 1 \r\n && option.ConfigTypeID ==161 //JobSettingTypeID\r\n && option.LookupID ==153 //CandidateApprovalNeeded \r\n && option.ObjectID ==ajob.CompanyId //companyID\r\n ).map(x => x.Value).toString();\r\n\r\n if (apvlReq==\"true\") {\r\n astat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == statusID\r\n && item.RoleID == this.authService.userInfo.roles[0].roleID\r\n && item.MenuItemID != 40\r\n ));\r\n \r\n }\r\n else{\r\n astat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == statusID\r\n && item.RoleID == this.authService.userInfo.roles[0].roleID\r\n && item.MenuItemID != 38 ));\r\n } \r\n }\r\n //statusID =18\r\n}\r\nelse{\r\n astat= items.filter(item => (item.ComponentID == Common.enumComponent.ConsultantJob \r\n && item.MenuTypeID == Common.enumMenuType.TOOLBAR && item.StatusID == statusID\r\n && item.RoleID == this.authService.userInfo.roles[0].roleID));\r\n \r\n}\r\n\r\nif ( Common.wfStatus!=null){\r\n statusName = Common.wfStatus.find(a => a.StatusID ==statusID )?.Name;\r\n}\r\n\r\n\r\nastat.unshift({\r\n MenuID: -1,\r\n PageID: -1,\r\n ComponentID: 3,\r\n ComponentCode: null,\r\n ComponentName: null,\r\n ComponentDescription: null,\r\n MenuItemID: -1,\r\n MenuCode: statusID.toString(),\r\n MenuName:statusName,\r\n MenuDescription: null,\r\n MenuFunction: null,\r\n MenuUrl: null,\r\n MenuIcon: null,\r\n MenuTypeID: null,\r\n MenuType: null,\r\n ParentMenuItemID: null,\r\n RoleID: null,\r\n RoleCode: null,\r\n RoleName: null,\r\n RoleDescription: null,\r\n StatusID: statusID,\r\n StatusCode: null,\r\n StatusName: statusName,\r\n StatusDescription: null,\r\n }); \r\n \r\n return astat;\r\n }\r\n \r\n}","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n name: 'dateAgo',\r\n})\r\nexport class DateAgoPipe implements PipeTransform {\r\n transform(value: Date, ...args: unknown[]): unknown {\r\n if (value) {\r\n const seconds = Math.floor((+new Date() - +new Date(value)) / 1000)\r\n if (seconds < 29) return 'Just now'\r\n const intervals: { [key: string]: number } = {\r\n year: 31536000,\r\n month: 2592000,\r\n week: 604800,\r\n day: 86400,\r\n hour: 3600,\r\n minute: 60,\r\n second: 1,\r\n }\r\n let counter\r\n for (const i in intervals) {\r\n counter = Math.floor(seconds / intervals[i])\r\n if (counter > 0)\r\n if (counter === 1) {\r\n return counter + ' ' + i + ' ago'\r\n } else {\r\n return counter + ' ' + i + 's ago'\r\n }\r\n }\r\n }\r\n return value\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\nimport { TypeOfVariable } from '../consultant/consultant-constants'\r\n\r\n@Pipe({\r\n name: 'nullValueReplace',\r\n})\r\nexport class NullValueReplacePipe implements PipeTransform {\r\n transform(value) {\r\n if (typeof value === TypeOfVariable.String) {\r\n value = value?.trim()\r\n }\r\n if (value === null || value === '' || value === undefined || value === 0) {\r\n return '-'\r\n } else {\r\n return value\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'searchFilter' })\r\nexport class SearchFilterPipe implements PipeTransform {\r\n /**\r\n * Transform\r\n *\r\n * @param {any[]} items\r\n * @param {string} searchText\r\n * @returns {any[]}\r\n */\r\n transform(items: any[], searchText: string): any[] {\r\n if (!items) {\r\n return [];\r\n }\r\n if (!searchText) {\r\n return items;\r\n }\r\n searchText = searchText.toLocaleLowerCase();\r\n\r\n return items.filter(item => {\r\n for (let key in item) {\r\n if ((\"\"+item[key]).toLocaleLowerCase().includes(searchText)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n // return items.filter(it => {\r\n // return it.Name.toLocaleLowerCase().includes(searchText);\r\n // });\r\n // }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n name: 'stringSort',\r\n})\r\nexport class StringSortPipe implements PipeTransform {\r\n transform(value: string[]): string[] {\r\n if (!value) {\r\n return value\r\n }\r\n\r\n const sortedArray = value.map((item) => item.trim()).sort()\r\n return sortedArray\r\n }\r\n}\r\n@Pipe({\r\n name: 'orderBy',\r\n})\r\nexport class OrderByPipe implements PipeTransform {\r\n transform(array: any[], field: string): any[] {\r\n if (!Array.isArray(array)) {\r\n return []\r\n }\r\n return array.sort((a: any, b: any) => {\r\n if (a[field] < b[field]) {\r\n return -1\r\n } else if (a[field] > b[field]) {\r\n return 1\r\n } else {\r\n return 0\r\n }\r\n })\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core'\r\n\r\n@Pipe({\r\n name: 'truncate',\r\n})\r\nexport class TruncatePipe implements PipeTransform {\r\n transform(fullStr: string, strLen: number, separator?: string): any {\r\n if (fullStr.length < strLen) {\r\n return fullStr\r\n }\r\n\r\n separator = separator || '...'\r\n\r\n const sepLen = separator.length,\r\n charsToShow = strLen - sepLen,\r\n frontChars = Math.ceil(charsToShow / 2),\r\n backChars = Math.floor(charsToShow / 2)\r\n\r\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { Observable, BehaviorSubject, throwError, from } from 'rxjs'\r\nimport { tap, catchError, switchMap } from 'rxjs/operators'\r\nimport { Common } from '../common/common'\r\n\r\nexport interface AuthTokens {\r\n access_token: string\r\n refresh_token: string\r\n expires_in: number\r\n}\r\n\r\nexport interface User {\r\n email: string\r\n uname: string\r\n}\r\n\r\nexport interface TokenStatus {\r\n isValid: boolean\r\n isExpired: boolean\r\n expiresAt: number | null\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n // private apiUrl = 'http://localhost/api/MsLogin'\r\n private apiUrl = Common.apiUrl + 'MsLogin';\r\n private isAuthenticatedSubject = new BehaviorSubject(this.checkInitialAuth())\r\n isAuthenticated$ = this.isAuthenticatedSubject.asObservable()\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n private checkInitialAuth(): boolean {\r\n const tokens = localStorage.getItem('auth_tokens')\r\n const expiresAt = localStorage.getItem('expires_at')\r\n return tokens !== null && expiresAt !== null && Number(expiresAt) > Date.now()\r\n }\r\n\r\n initiateMicrosoftLogin() {\r\n const redirectUrl = `${this.apiUrl}/microsoft`\r\n // console.log('Redirecting to:', redirectUrl)\r\n window.location.href = redirectUrl\r\n }\r\n\r\n handleAuthCallback(code: string, state: string): Observable {\r\n // console.log('handleAuthCallback called with code:', code, 'state:', state)\r\n\r\n return this.http.post(`${this.apiUrl}/microsoft/callback`, { code, state }).pipe(\r\n tap((response: { tokens?: AuthTokens; user: User }) => {\r\n // console.log('Auth callback response:', response)\r\n if (response?.tokens) {\r\n this.storeTokens(response.tokens)\r\n }\r\n if (response?.user) {\r\n this.storeUser(response.user)\r\n }\r\n }),\r\n catchError((error) => {\r\n console.error('Auth callback error:', error)\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n private storeTokens(tokens: AuthTokens) {\r\n localStorage.setItem('auth_tokens', JSON.stringify(tokens))\r\n const expiresAt = Date.now() + tokens.expires_in * 1000\r\n localStorage.setItem('expires_at', expiresAt.toString())\r\n this.isAuthenticatedSubject.next(true)\r\n }\r\n\r\n private storeUser(user: User) {\r\n localStorage.setItem('user', JSON.stringify(user))\r\n }\r\n\r\n getAccessToken(): string | null {\r\n const tokens = localStorage.getItem('auth_tokens')\r\n if (!tokens) return null\r\n return JSON.parse(tokens).access_token\r\n }\r\n\r\n getRefreshToken(): string | null {\r\n const tokens = localStorage.getItem('auth_tokens')\r\n if (!tokens) return null\r\n return JSON.parse(tokens).refresh_token\r\n }\r\n\r\n refreshToken(): Observable {\r\n const refreshToken = this.getRefreshToken()\r\n if (!refreshToken) {\r\n return throwError(() => new Error('No refresh token available'))\r\n }\r\n\r\n return this.http.post(`${this.apiUrl}/auth/refresh`, { refresh_token: refreshToken }).pipe(\r\n tap((response: any) => {\r\n if (response.tokens) {\r\n this.storeTokens(response.tokens)\r\n }\r\n }),\r\n catchError((error) => {\r\n this.clearTokens()\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n getTokens(): any {\r\n const tokensStr = localStorage.getItem('auth_tokens')\r\n return tokensStr ? JSON.parse(tokensStr) : null\r\n }\r\n\r\n getTokenStatus(): TokenStatus {\r\n const tokens = this.getTokens()\r\n if (!tokens) {\r\n return { isValid: false, isExpired: true, expiresAt: null }\r\n }\r\n const expiresAtStr = localStorage.getItem('expires_at')\r\n const expiresAt = expiresAtStr ? Number(expiresAtStr) : null\r\n const isExpired = expiresAt !== null ? Date.now() >= expiresAt : true\r\n\r\n return {\r\n isValid: true,\r\n isExpired,\r\n expiresAt: expiresAt,\r\n }\r\n }\r\n\r\n private clearTokens() {\r\n localStorage.removeItem('auth_tokens')\r\n localStorage.removeItem('expires_at')\r\n this.isAuthenticatedSubject.next(false)\r\n }\r\n\r\n logout(): Observable {\r\n return this.http.post(`${this.apiUrl}/auth/logout`, {}).pipe(\r\n tap(() => {\r\n this.clearTokens()\r\n })\r\n )\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return this.isAuthenticatedSubject.value\r\n }\r\n\r\n private async ensureValidToken(): Promise {\r\n const tokenStatus = this.getTokenStatus()\r\n if (tokenStatus.isExpired && tokenStatus.isValid) {\r\n try {\r\n await this.refreshToken().toPromise()\r\n return true\r\n } catch (error) {\r\n console.error('Token refresh failed:', error)\r\n return false\r\n }\r\n }\r\n return !tokenStatus.isExpired\r\n }\r\n\r\n getUser(): Observable {\r\n return from(this.ensureValidToken()).pipe(\r\n switchMap((isValid) => {\r\n if (!isValid) {\r\n return throwError(() => new Error('No valid token available'))\r\n }\r\n\r\n const accessToken = this.getAccessToken()\r\n return this.http.get(`${this.apiUrl}/auth/user`, {\r\n headers: {\r\n Authorization: `Bearer ${accessToken}`,\r\n },\r\n })\r\n }),\r\n catchError((error) => {\r\n console.error('Get user error:', error)\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\r\nimport { catchError } from 'rxjs/operators'\r\nimport { UserManager, UserManagerSettings, User } from 'oidc-client'\r\nimport { BehaviorSubject } from 'rxjs'\r\nimport { BaseService } from './base.service'\r\nimport { environment } from 'src/environments/environment'\r\nimport { Common } from '../common/common'\r\nimport { UserRoleId } from '../enums/userRolesId'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthenticationService extends BaseService {\r\n // Observable navItem source\r\n private _authNavStatusSource = new BehaviorSubject(false)\r\n // Observable navItem stream\r\n authNavStatus$ = this._authNavStatusSource.asObservable()\r\n\r\n private manager = new UserManager(getClientSettings())\r\n private user: User | null\r\n public userInfo: any\r\n\r\n constructor(private http: HttpClient) {\r\n super()\r\n this.manager.getUser().then((user) => {\r\n console.log(user)\r\n this.user = user\r\n this._authNavStatusSource.next(this.isAuthenticated())\r\n })\r\n }\r\n\r\n getAuthToken(): string {\r\n return localStorage.getItem('access_token')\r\n }\r\n\r\n login() {\r\n return this.manager.signinRedirect()\r\n }\r\n\r\n async completeAuthentication() {\r\n this.user = await this.manager.signinRedirectCallback()\r\n this._authNavStatusSource.next(this.isAuthenticated())\r\n }\r\n\r\n register(userRegistration: any) {\r\n return this.http.post(Common.authUrl + '/account', userRegistration).pipe(catchError(this.handleError))\r\n }\r\n\r\n loginCustom(loginObj: any) {\r\n return this.http.post(Common.authUrl + '/account/login', loginObj).pipe(catchError(this.handleError))\r\n }\r\n sendEmailReaderToken(userToken: any) {\r\n return this.http.post(Common.apiUrl + 'emailauth/ruritoken', userToken).pipe(catchError(this.handleError))\r\n }\r\n forgotpassword(loginObj: any) {\r\n let httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n }\r\n return this.http\r\n .post(Common.apiUrl + 'User/ForgotPassword', loginObj, httpOptions)\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n changePassword(loginObj: any) {\r\n let httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n }\r\n return this.http\r\n .post(Common.apiUrl + 'User/ChangePassword', loginObj, httpOptions)\r\n .pipe(catchError(this.handleError))\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return this.user != null && !this.user.expired\r\n }\r\n\r\n getUserDetails(loginObj: any) {\r\n return this.http.post(Common.authUrl + '/account/userInfo', loginObj).pipe(catchError(this.handleError))\r\n }\r\n\r\n getAccessToken() {\r\n return this.http.get(Common.authUrl + '/account/authorize').pipe(catchError(this.handleError))\r\n }\r\n\r\n get authorizationHeaderValue(): string {\r\n return `${this.user.token_type} ${this.user.access_token}`\r\n }\r\n\r\n get name(): string {\r\n return this.user != null ? this.user.profile.name : ''\r\n }\r\n\r\n async signout() {\r\n await this.manager.signoutRedirect()\r\n }\r\n\r\n getCurrentUserRole() {\r\n const USER_PROFILE_STRING = localStorage.getItem('userinfo')\r\n if (USER_PROFILE_STRING) {\r\n const USER_PROFILE = JSON.parse(USER_PROFILE_STRING)\r\n return USER_PROFILE.roles[0].roleID as UserRoleId\r\n }\r\n }\r\n}\r\n\r\nexport function getClientSettings(): UserManagerSettings {\r\n return {\r\n authority: environment.identityAuthorityUrl,\r\n client_id: environment.identityClientId,\r\n redirect_uri: environment.redirectUri,\r\n post_logout_redirect_uri: environment.postLogoutRedirectUri,\r\n response_type: environment.identityResponseType,\r\n scope: environment.identityScope,\r\n filterProtocolClaims: environment.identityFilterProtocolClaims,\r\n loadUserInfo: environment.identityLoadUserInfo,\r\n automaticSilentRenew: environment.identityAutomaticSilentRenew,\r\n // silent_redirect_uri: 'http://localhost:4200/silent-refresh.html'\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpResponse,\r\n} from '@angular/common/http'\r\nimport { Injectable } from '@angular/core'\r\nimport { Observable, throwError } from 'rxjs'\r\nimport { AuthenticationService } from './authentication.service'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { Router } from '@angular/router'\r\nimport { CommonMatDialogService } from './common-mat-dialog.service'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthInterceptorService implements HttpInterceptor {\r\n constructor(\r\n private authService: AuthenticationService,\r\n private router: Router,\r\n private _commonMatDialogService: CommonMatDialogService\r\n ) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const token = this.authService.getAuthToken()\r\n\r\n if (token) {\r\n // If we have a token, we set it to the header\r\n request = request.clone({\r\n setHeaders: { Authorization: `Bearer ${token}`, 'Cache-Control': 'no-cache', Pragma: 'no-cache' },\r\n })\r\n }\r\n return next.handle(request).pipe(\r\n catchError((error) => {\r\n if (error instanceof HttpErrorResponse) {\r\n if (error.status === 401 || error.status === 403) {\r\n this._commonMatDialogService.closeAll()\r\n this.router.navigate([''])\r\n }\r\n }\r\n return throwError(error)\r\n })\r\n )\r\n }\r\n}\r\n","import { throwError } from 'rxjs';\r\n\r\nexport abstract class BaseService { \r\n \r\n constructor() { }\r\n\r\n protected handleError(error: any) {\r\n\r\n var applicationError = error.headers.get('Application-Error');\r\n\r\n // either application-error in header or model error in body\r\n if (applicationError) {\r\n return throwError(applicationError);\r\n }\r\n \r\n var modelStateErrors: string = '';\r\n\r\n // for now just concatenate the error descriptions, alternative we could simply pass the entire error response upstream\r\n for (var key in error.error) {\r\n if (error.error[key]) modelStateErrors += error.error[key].description + '\\n'; \r\n }\r\n \r\n modelStateErrors = modelStateErrors = '' ? null : modelStateErrors;\r\n return throwError(modelStateErrors || 'Server error');\r\n }\r\n}","import { Injectable } from '@angular/core'\r\nimport { MatDialog, MatDialogRef, MatDialogState } from '@angular/material/dialog'\r\nimport { DialogSize } from '../common/common'\r\nimport { NoopScrollStrategy } from '@angular/cdk/overlay'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonMatDialogService {\r\n dialogRef: MatDialogRef\r\n constructor(private matDialog: MatDialog) {}\r\n\r\n open(options: MatProps): MatDialogRef {\r\n this.dialogRef = this.matDialog.open(options.component, {\r\n width: options?.data?.width ? options?.data?.width : DialogSize.Width,\r\n height: options?.data?.height,\r\n disableClose: true,\r\n autoFocus: false,\r\n data: options.data,\r\n hasBackdrop: options?.data?.hasBackdrop !== false ? true : false,\r\n scrollStrategy: new NoopScrollStrategy(),\r\n })\r\n\r\n return this.dialogRef\r\n }\r\n\r\n close() {\r\n if (this.dialogRef) {\r\n const state = this.dialogRef.getState()\r\n if (state == MatDialogState.OPEN) {\r\n this.dialogRef.close()\r\n }\r\n }\r\n }\r\n\r\n closeAll() {\r\n this.matDialog.closeAll()\r\n }\r\n}\r\n\r\nexport interface MatProps {\r\n component: any\r\n data: any\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient, HttpParams, HttpHeaders, HttpErrorResponse, HttpResponse } from '@angular/common/http'\r\nimport { Common, PreviewDialogAction } from '../common/common'\r\nimport { throwError as observableThrowError, Observable, BehaviorSubject, Subject, ReplaySubject, of } from 'rxjs'\r\nimport { iDbResult, iMenuItem, ActiveObject, iConfigValue, iLookup, iStatus } from '../models/common.model'\r\nimport { catchError } from 'rxjs/internal/operators/catchError'\r\nimport { first, map, tap } from 'rxjs/operators'\r\nimport { Job } from '../job/job-list/interfaces/job.model'\r\nimport { JobService } from 'src/app/job/job.service'\r\nimport html2canvas from 'html2canvas'\r\nimport { ImageModel } from '../consultant/consultant-jobs/consultant-jobs.component'\r\nimport { ConsultantService } from '../consultant/consultant.service'\r\nimport ApexCharts from 'apexcharts'\r\nimport { CommonMatDialogService } from './common-mat-dialog.service'\r\nimport { PreviewMailComponent } from '../shared/preview-mail/preview-mail.component'\r\nimport { CompanyDialogComponent } from '../company/company-dialog/company-dialog.component'\r\nimport { CompanyDialogTypes } from '../company/company-constants'\r\nimport { InterviewDialogComponent } from '../shared/interview-dialog/interview-dialog.component'\r\nimport { CompanyService } from '../company/company.service'\r\nimport { CommonData } from '../helper/commonData'\r\nimport { Interview_Schedule } from '../enums/interviewDialogConstant'\r\nimport { NotificationService } from './notification.service'\r\nimport { State } from '../models/location.model'\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'content-type': 'application/json',\r\n accept: 'application/json',\r\n }),\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonService {\r\n subject = new ReplaySubject(1)\r\n data$: Observable = this.subject.asObservable()\r\n private _states: BehaviorSubject = new BehaviorSubject([])\r\n\r\n private dataSource = new BehaviorSubject(JSON.stringify({ key: 'key', value: 'value', source: 'value' }))\r\n getComponentData = this.dataSource.asObservable()\r\n Resume: string\r\n menuItems: iMenuItem[]\r\n activeObject: ActiveObject\r\n public menuItemSubject: Subject = new Subject()\r\n public menuItem$ = this.menuItemSubject.asObservable()\r\n private toolbarData = new Subject()\r\n toolbarData$ = this.toolbarData.asObservable()\r\n public isOpenSideNavSubject = new BehaviorSubject(false)\r\n public isOpenSide$: Observable = this.isOpenSideNavSubject.asObservable()\r\n public isExpandedSubject = new BehaviorSubject(false)\r\n public isJobCardView$: Observable = this.isExpandedSubject.asObservable()\r\n public isCardExpandedSubject = new BehaviorSubject(false)\r\n public isCandidateCardView$: Observable = this.isCardExpandedSubject.asObservable()\r\n candidateObservable$: BehaviorSubject = new BehaviorSubject(false)\r\n public candidateObservable = this.candidateObservable$.asObservable()\r\n candidateInterviewSchedule$: Subject = new Subject()\r\n public interviewSchedule$ = this.candidateInterviewSchedule$.asObservable()\r\n isLoading$: Subject = new Subject()\r\n public loading$ = this.isLoading$.asObservable()\r\n radarChart: ApexCharts\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private jobService: JobService,\r\n private consultantService: ConsultantService,\r\n private commonMatDialogService: CommonMatDialogService,\r\n private companyService: CompanyService,\r\n private notificationService: NotificationService\r\n ) {\r\n this.activeObject = { ObjectID: -1, ObjectTypeID: -1, ComponentID: -1, RoleID: -1, StatusID: -1, PageID: -1 }\r\n }\r\n\r\n getJobData(value: any) {\r\n this.subject.next(value)\r\n }\r\n\r\n toggleMenu(): void {\r\n this.isExpandedSubject.next(!this.isExpandedSubject.value)\r\n }\r\n\r\n setActiveObject(\r\n objectID?: number,\r\n objectTypeID?: number,\r\n componentID?: number,\r\n roleID?: number,\r\n statusID?: number,\r\n pageID?: number\r\n ) {\r\n this.activeObject.ObjectID = objectID\r\n this.activeObject.ObjectTypeID = objectTypeID\r\n this.activeObject.ComponentID = componentID\r\n this.activeObject.RoleID = roleID\r\n this.activeObject.StatusID = statusID\r\n this.activeObject.PageID = pageID\r\n }\r\n\r\n async getAppSettings() {\r\n const response = await this.http\r\n .get('assets/appsettings.json')\r\n .toPromise()\r\n .then((data) => data)\r\n if (response != null) {\r\n Common.apiUrl = response['apiurl']\r\n Common.filePath = response['filePath']\r\n Common.authUrl = response['authurl']\r\n }\r\n return response\r\n }\r\n\r\n async getMessages() {\r\n const response = await this.http\r\n .get('assets/translate.json')\r\n .toPromise()\r\n .then((data) => data)\r\n if (response != null) {\r\n Common.messages = response\r\n }\r\n return response\r\n }\r\n\r\n setToolBarItems(menuItem: iMenuItem) {\r\n this.toolbarData.next(menuItem)\r\n }\r\n\r\n setComponentData(data: any) {\r\n this.dataSource.next(data)\r\n }\r\n\r\n processWorkFlow(\r\n objectID: number,\r\n objectTypeId: number,\r\n menuItemID: number,\r\n roleID: number,\r\n comments: string,\r\n userID: number\r\n ) {\r\n var url = Common.apiUrl + 'data/ProcessWorkFlow'\r\n let paras = {\r\n objectID: objectID,\r\n objectTypeId: objectTypeId,\r\n menuItemID: menuItemID,\r\n roleID: roleID,\r\n comments: comments?.toString(),\r\n userID: userID,\r\n }\r\n return this.http.post(url, paras, Common.httpOptions).pipe(catchError(this.handleError))\r\n }\r\n updateOjectStatus(objectID: number, objectTypeId: number, statusID: number, comments: string, userID: number) {\r\n var url = Common.apiUrl + 'data/UpdateOjectStatus'\r\n let params = new HttpParams()\r\n params = params.append('objectID', objectID.toString())\r\n params = params.append('objectTypeId', objectTypeId.toString())\r\n params = params.append('statusID', statusID.toString())\r\n params = params.append('comments', comments.toString())\r\n params = params.append('userID', userID.toString())\r\n\r\n return this.http.get(url, { headers: Common.httpheaders, params: params }).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n\r\n getConfig() {\r\n var url = Common.apiUrl + 'data/GetConfig'\r\n return this.http.get(url, Common.httpOptions).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n getStatus() {\r\n var url = Common.apiUrl + 'data/GetStatus'\r\n return this.http.get(url, Common.httpOptions).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n getLookupValue() {\r\n var url = Common.apiUrl + 'data/GetLookupValue'\r\n return this.http.get(url, Common.httpOptions).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n getStates() {\r\n if (this._states?.value?.length === 0) {\r\n var url = Common.apiUrl + 'data/GetStates'\r\n return this.http.get(url, httpOptions).pipe(\r\n tap((states) => this._states.next(states)),\r\n catchError((err) => this.handleError(err))\r\n )\r\n }\r\n return of(this._states.value).pipe(first())\r\n }\r\n\r\n getTimeZoneByStateId(stateId) {\r\n const endPoint = Common.apiUrl + `data/GetStateDetailsByStateId/${stateId}`\r\n return this.http.get(endPoint).pipe(catchError(this.handleError))\r\n }\r\n getMenuItems() {\r\n var url = Common.apiUrl + 'data/GetMenuItems'\r\n return this.http.get(url, Common.httpOptions).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n getAllReasons() {\r\n var url = Common.apiUrl + 'data/GetAllReasons'\r\n var x = this.http.get(url, Common.httpOptions).pipe(catchError(this.handleError))\r\n return x\r\n }\r\n getObjectStatusLog(obj) {\r\n var url = Common.apiUrl + 'jobs/GetObjectStatusLog'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n console.log('handleError: ', error.error.message)\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message\r\n console.log('error data service: ', errMessage)\r\n return observableThrowError(errMessage)\r\n }\r\n return observableThrowError(error || 'Node.js server error')\r\n }\r\n\r\n getMenuItemByRole(roleId) {\r\n var url = Common.apiUrl + 'data/GetMenuItemByRole' + '/' + encodeURIComponent(roleId)\r\n\r\n var x = this.http\r\n\r\n .get(url, Common.httpOptions)\r\n\r\n .pipe(catchError(this.handleError))\r\n\r\n return x\r\n }\r\n\r\n getObjectStatus() {\r\n var url = Common.apiUrl + 'data/GetMenuItems'\r\n\r\n return this.http\r\n .get(url, Common.httpOptions)\r\n\r\n .pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n\r\n catchError(Common.handleError)\r\n )\r\n }\r\n\r\n getUserInfo(user) {\r\n var url = Common.apiUrl + 'data/GetUserInfo'\r\n\r\n return this.http.post(url, user, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getDatafromIP(ip:any) {\r\n var url = 'https://api.ipstack.com/'+ip+'?access_key=fb9b6d6158f4b47be26c618e68516627'\r\n return this.http.get(url, httpOptions).pipe(catchError(this.handleError))\r\n }\r\n getIPAddress() \r\n { \r\n return this.http.get(\"https://api.ipify.org/?format=json\"); \r\n }\r\n saveUserLog(obj: any) {\r\n var url = Common.apiUrl + 'user/SaveUserLogInfo'\r\n return this.http.post(url, obj, httpOptions).pipe(catchError(this.handleError))\r\n \r\n }\r\n getMinimumPayRate(companyId, jobCategoryId, consultantTypeId, billRate, payrate) {\r\n var MarkupType\r\n var MarkupValue\r\n var minimumPayrate = 0\r\n\r\n this.jobService.getJobCategoryByCompany(companyId).subscribe((jobcatsetting) => {\r\n if (jobcatsetting) {\r\n //A specific category\r\n var jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n if (jc.length == 0) {\r\n jobCategoryId = 1312 // All - other category setting\r\n jc = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => Number(x.CategoryID))\r\n }\r\n\r\n if (jc.indexOf(jobCategoryId) > -1) {\r\n //MarkupType = jobcatsetting.filter(option => option.CategoryID == jobCategoryId).map(x => x.MarkupType);\r\n\r\n if (Common.ConfigValues != null) {\r\n MarkupType = Common.ConfigValues.filter(\r\n (option) =>\r\n option.ObjectTypeID == 1 &&\r\n option.ConfigTypeID == 161 && //JobSettingTypeID\r\n option.LookupID == 204 && //Markup Type\r\n option.ObjectID == companyId //companyID\r\n )\r\n .map((x) => x.Value)\r\n .toString()\r\n }\r\n\r\n if (consultantTypeId == Common.enumConsultantType.CAN_C2C) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_C2O) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n } else if (consultantTypeId == Common.enumConsultantType.CAN_W2) {\r\n //Contract\r\n MarkupValue = jobcatsetting\r\n .filter((option) => option.CategoryID == jobCategoryId)\r\n .map((x) => x.W2)[0].Value\r\n }\r\n const factor = 10 ** 2\r\n var minPay = billRate / (1 + MarkupValue / 100)\r\n minimumPayrate = Math.round(minPay * factor) / factor\r\n if (MarkupType == 202) {\r\n //Max Markup\r\n //if the recruiter tries to enter a pay rate less than minimumPayrate, system should throw a validation\r\n // this.payRange ==true;\r\n if (payrate < minimumPayrate) {\r\n //this.notifyService.showError('Payrate should be greatte than' + minimumPayrate.toString(), 'Pay Rate');\r\n }\r\n } else if (MarkupType == 203) {\r\n //Goal_Markup\r\n //if the recruiter tries to enter a pay rate less than minimumPayrate, display as suggestion to recruiter (not required to throw validation error)\r\n //\r\n if (payrate < minimumPayrate) {\r\n //this.notifyService.showInfo('Payrate should be greatte than' + minimumPayrate.toString(), 'Pay Rate');\r\n }\r\n }\r\n return minimumPayrate\r\n } else {\r\n minimumPayrate = 0\r\n }\r\n }\r\n })\r\n return minimumPayrate\r\n }\r\n\r\n getReleaseVersion() {\r\n //URL to be made dynamic later\r\n return '1.1.2'\r\n }\r\n generateRadarChart(data) {\r\n return new Promise((resolve, reject) => {\r\n var jobData = data.map((x) => x.JobExperience)\r\n var candidateData = data.map((x) => x.CandidateExperience)\r\n var label = data.map((x) => x.SkillName)\r\n if (label.length < 5) {\r\n for (var i = 0; i < 5; i++) {\r\n if (label.length < 5) label.push('')\r\n }\r\n }\r\n if (jobData.length < 5) {\r\n for (var i = 0; i < 5; i++) {\r\n if (jobData.length < 5) jobData.push(0)\r\n }\r\n }\r\n if (candidateData.length < 5) {\r\n for (var i = 0; i < 5; i++) {\r\n if (candidateData.length < 5) candidateData.push(0)\r\n }\r\n }\r\n const jobMaxExp = Math.max(...data.map((x) => x.JobExperience))\r\n const candidateMaxExp = Math.max(...data.map((x) => x.CandidateExperience))\r\n let maxScale = 10\r\n if (jobMaxExp > candidateMaxExp && jobMaxExp >= 10) {\r\n if (jobMaxExp % 2 == 0) maxScale = jobMaxExp\r\n else maxScale = jobMaxExp + 1\r\n } else if (jobMaxExp < candidateMaxExp && candidateMaxExp >= 10) {\r\n if (candidateMaxExp % 2 == 0) maxScale = candidateMaxExp\r\n else maxScale = candidateMaxExp + 1\r\n }\r\n\r\n var options = {\r\n series: [\r\n {\r\n name: 'Candidate Experience',\r\n data: candidateData,\r\n },\r\n {\r\n name: 'Job Requirement',\r\n data: jobData,\r\n },\r\n ],\r\n chart: {\r\n height: 500,\r\n type: 'radar',\r\n },\r\n fill: {\r\n opacity: 0,\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n legend: {\r\n show: true,\r\n fontWeight: 700,\r\n },\r\n plotOptions: {\r\n radar: {\r\n polygons: {\r\n strokeColors: '#e9e9e9',\r\n fill: {\r\n colors: ['#CCCAC693', '#fff'],\r\n },\r\n },\r\n },\r\n },\r\n title: {\r\n text: 'Capability Analysis',\r\n align: 'center',\r\n },\r\n colors: ['#b0074d', '#0863a3'],\r\n markers: {\r\n size: 4,\r\n colors: ['#fff'],\r\n strokeColor: ['#b0074d', '#0863a3'],\r\n strokeWidth: 2,\r\n },\r\n stroke: {\r\n show: true,\r\n width: 2,\r\n colors: ['#b0074d', '#0863a3'],\r\n dashArray: 0,\r\n },\r\n tooltip: {\r\n y: {\r\n formatter: function (val) {\r\n return val\r\n },\r\n },\r\n },\r\n xaxis: {\r\n categories: label,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n colors: label.map((label) => {\r\n return '#000'\r\n }),\r\n },\r\n },\r\n },\r\n yaxis: {\r\n tickAmount: maxScale / 2,\r\n min: 0,\r\n max: maxScale,\r\n labels: {\r\n style: {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n }\r\n\r\n this.radarChart = new ApexCharts(document.getElementById('chart'), options)\r\n this.radarChart.render()\r\n document.getElementsByClassName('apexcharts-toolbar')[0].remove()\r\n requestAnimationFrame(() => {\r\n setTimeout(() => {\r\n resolve(true)\r\n }, 1500)\r\n })\r\n })\r\n }\r\n\r\n async saveCanvasImage(data, consultantJobId?) {\r\n return new Promise(async (resolve, reject) => {\r\n await this.generateRadarChart(data)\r\n const imgData = await this.saveChart(consultantJobId)\r\n const fileData = await this.uploadChart(imgData)\r\n resolve(fileData)\r\n })\r\n }\r\n\r\n saveChart(consultantJobId?) {\r\n return new Promise((resolve, reject) => {\r\n const chart = document.getElementById('chart')\r\n html2canvas(chart, {\r\n width: 500,\r\n height: 500,\r\n scale: 3,\r\n }).then((canvas) => {\r\n var imgData = new ImageModel()\r\n const base64Canvas = canvas.toDataURL('image/png').split(';base64,')[1]\r\n imgData.base64Image = base64Canvas\r\n imgData.objectId = consultantJobId ? consultantJobId : Common.activeConsultantJob.ConsultantJobID\r\n imgData.fileName = imgData.objectId.toString() + '.png'\r\n imgData.imageName = imgData.objectId.toString() + '.png'\r\n this.radarChart.destroy()\r\n resolve(imgData)\r\n })\r\n })\r\n }\r\n\r\n uploadChart(imgData) {\r\n return new Promise((resolve, reject) => {\r\n this.consultantService.uploadConsultantJobChart(imgData).subscribe((res) => {\r\n if (res instanceof HttpResponse) {\r\n var fileId = res.body['FileId']\r\n if (fileId) {\r\n resolve(res.body)\r\n }\r\n }\r\n })\r\n })\r\n }\r\n showMailPreview() {\r\n return new Promise((resolve, reject) => {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: PreviewMailComponent,\r\n data: {\r\n objectID: Common.activeConsultantJob.ConsultantJobID,\r\n width: '850px',\r\n height: '90vh',\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data?.action === PreviewDialogAction.Cancel) {\r\n reject(false)\r\n } else {\r\n resolve(data)\r\n }\r\n })\r\n })\r\n }\r\n\r\n getEmailContent(objectID, objectTypeID, statusID) {\r\n const endPoint =\r\n Common.apiUrl +\r\n `data/GetEmailContent?objectID=${objectID}&objectTypeId=${objectTypeID}&statusID=${statusID}`\r\n return this.http.get(endPoint).pipe(catchError(this.handleError))\r\n }\r\n\r\n sendEmail(emailItemID, statusID = 8, userID) {\r\n const endPoint =\r\n Common.apiUrl + `data/UpdateEmailStatus?emailItemID=${emailItemID}&statusID=${statusID}&userID=${userID}`\r\n return this.http.get(endPoint).pipe(catchError(this.handleError))\r\n }\r\n\r\n addInterviewer(formData, location): void {\r\n const dialogInstance = this.commonMatDialogService.open({\r\n component: CompanyDialogComponent,\r\n data: {\r\n dialogName: CompanyDialogTypes.Contact,\r\n calledFor: Interview_Schedule,\r\n CompanyId: Common.activeConsultantJob.ClientCompanyId,\r\n isManualAdd: true,\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data.formName === CompanyDialogTypes.Contact) {\r\n if (data?.formData?.isLocation) {\r\n this.addLocation(data?.formData, { formData: formData, location: location })\r\n } else {\r\n this.updateContact(data?.formData, { formData: formData, location: location })\r\n }\r\n } else {\r\n this.commonMatDialogService\r\n .open({\r\n component: InterviewDialogComponent,\r\n data: {\r\n width: '800px',\r\n formData: formData,\r\n location: location,\r\n },\r\n })\r\n .afterClosed()\r\n .subscribe((data) => {\r\n if (data?.data === Interview_Schedule) this.candidateInterviewSchedule$.next(true)\r\n else this.candidateInterviewSchedule$.next(false)\r\n })\r\n }\r\n })\r\n }\r\n\r\n addLocation(contactData, formData) {\r\n const location = contactData.Location\r\n location.ObjectId = CommonData?.activeCompany?.CompanyId\r\n this.companyService.AddLocation(location).subscribe((res) => {\r\n if (res) {\r\n CommonData.activeLocation = null\r\n this.updateContact(contactData, formData, res.LocationID)\r\n }\r\n })\r\n }\r\n\r\n updateContact(contactData, formData, locationID?) {\r\n this.isLoading$.next(true)\r\n const contact = {\r\n FirstName: contactData.FirstName,\r\n LastName: contactData.LastName,\r\n WorkPhone: contactData.WorkPhone,\r\n EmailAddress: contactData.Email,\r\n Email: contactData.Email,\r\n LinkedinUrl: contactData.LinkedinUrl,\r\n ManagementLevelID: contactData.ManagementLevelID ? contactData.ManagementLevelID : null,\r\n ManagementLevel: contactData.ManagementLevel,\r\n DepartmentID: contactData.DepartmentID ? contactData.DepartmentID : null,\r\n DepartmentName: contactData.DepartmentName,\r\n ParentID: contactData.ParentID,\r\n TitleID: contactData.TitleID ? contactData.TitleID : null,\r\n RoleID: contactData.selectedRoleId ? contactData.selectedRoleId : null,\r\n TitleName: contactData.Title,\r\n CompanyId: Common.activeConsultantJob.ClientCompanyId,\r\n LocationID: locationID\r\n ? locationID\r\n : contactData.Location?.LocationID\r\n ? contactData.Location?.LocationID\r\n : null,\r\n Location: contactData?.Location ? contactData?.Location : null,\r\n ContactID: contactData.ContactID,\r\n CompanyContactID: contactData.CompanyContactID,\r\n IsActive: true,\r\n ReportingManager: contactData.ReportingManager,\r\n StateCode: contactData.StateCode,\r\n Title: contactData.Title,\r\n DoB: contactData?.DoB ? contactData.DoB : null,\r\n Sex: contactData?.Sex ? contactData.Sex : 0,\r\n CellPhone: contactData?.CellPhone ? contactData.CellPhone : '',\r\n FilePath: contactData?.FilePath ? contactData.FilePath : null,\r\n CreatedBy: contactData?.CreatedBy ? contactData.CreatedBy : 0,\r\n CreatedDate: contactData?.CreatedDate ? contactData.CreatedDate : new Date(),\r\n Address: contactData?.Location?.Address ? contactData.Location.Address : '',\r\n Address1: contactData?.Location?.Address1 ? contactData.Location.Address1 : '',\r\n City: contactData?.Location?.City ? contactData.Location.City : '',\r\n StateID: contactData?.Location?.StateID ? contactData.Location.StateID : 0,\r\n CountryID: contactData?.Location?.CountryID ? contactData.Location.CountryID : 0,\r\n ZipCode: contactData?.Location?.ZipCode ? contactData.Location.ZipCode : 0,\r\n UpdatedBy: contactData?.UpdatedBy ? contactData.UpdatedBy : 0,\r\n UpdatedDate: new Date(),\r\n PersonalEmailAddress: contactData?.PersonalEmailAddress ? contactData?.PersonalEmailAddress : null,\r\n }\r\n this.companyService.AddContact(contact).subscribe((res) => {\r\n if (res?.Contact) {\r\n this.isLoading$.next(false)\r\n this.notificationService.showSuccess('Interviewer Added', 'Candidate Job Status')\r\n this.commonMatDialogService\r\n .open({\r\n component: InterviewDialogComponent,\r\n data: {\r\n width: '800px',\r\n formData: formData?.formData,\r\n ContactID: res?.Contact?.ContactID,\r\n location: formData?.location,\r\n },\r\n })\r\n .afterClosed()\r\n .subscribe((data) => {\r\n if (data?.data === Interview_Schedule) this.candidateInterviewSchedule$.next(true)\r\n else this.candidateInterviewSchedule$.next(false)\r\n })\r\n } else {\r\n this.notificationService.showError('Error While Adding', 'Candidate Job Status')\r\n this.isLoading$.next(false)\r\n }\r\n })\r\n }\r\n\r\n updateObjectStatusDate(\r\n objectID: number,\r\n objectTypeId: number,\r\n statusID: number,\r\n comments: string,\r\n userID: number,\r\n jobClosedFromDate: string | Date\r\n ) {\r\n var url = Common.apiUrl + 'data/UpdateObjectStatus'\r\n\r\n const REQUEST_JSON = {\r\n ObjectId: objectID,\r\n ObjectTypeId: objectTypeId,\r\n StatusId: statusID,\r\n Comments: comments,\r\n StatusDate: jobClosedFromDate,\r\n UpdatedBy: userID,\r\n }\r\n\r\n return this.http.post(url, REQUEST_JSON).pipe(\r\n map((results) => {\r\n return results\r\n }),\r\n catchError(Common.handleError)\r\n )\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, BehaviorSubject, Subject } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { Common } from \"../common/common\";\r\nimport { throwError as observableThrowError } from \"rxjs\";\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ConsultantsService {\r\n /** consultant edit active tab id */\r\n consultantEditActiveTabSubject = new BehaviorSubject(0);\r\n /** show save and exit button */\r\n consultantSaveAndExitButtonStatusSubject = new BehaviorSubject(\r\n false\r\n );\r\n /** active consultant id */\r\n activeConsultantId = new BehaviorSubject(0);\r\n\r\n /** show consultant summary on load */\r\n showConsultantSummaryOnLoad = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n /** get active Consultant Id */\r\n getActiveConsultantId(): Observable {\r\n return this.activeConsultantId.asObservable();\r\n }\r\n\r\n /** get consultant edit active tab id */\r\n getConsultantEditActiveTab(): Observable {\r\n return this.consultantEditActiveTabSubject.asObservable();\r\n }\r\n\r\n /** get save and exit button status */\r\n getConsultantSaveAndExitButtonStatus(): Observable {\r\n return this.consultantSaveAndExitButtonStatusSubject.asObservable();\r\n }\r\n\r\n /** get show consultant summary on load status */\r\n getShowConsultantSummaryOnLoad(): Observable {\r\n return this.showConsultantSummaryOnLoad.asObservable();\r\n }\r\n getLookup(LookpText) {\r\n\r\n var url = Common.apiUrl + \"data/GetLookup\"\r\n + \"?LookpText=\"\r\n + encodeURIComponent(LookpText)\r\n var x = this.http\r\n .get(url, Common.httpOptions)\r\n .pipe(catchError(this.handleError));\r\n return x;\r\n\r\n }\r\n handleError(error: HttpErrorResponse) {\r\n // this.frameworkService.logError('server error:', error);\r\n console.log('handleError: ', error.error.message);\r\n if (error.error instanceof Error) {\r\n const errMessage = error.error.message;\r\n console.log('error data service: ', errMessage);\r\n return observableThrowError(errMessage);\r\n // Use the following instead if using lite-server\r\n // return Observable.throw(err.text() || 'backend server error');\r\n }\r\n return observableThrowError(error || 'Node.js server error');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog'\r\nimport { map, take } from 'rxjs/operators'\r\nimport { DialogComponent } from '../shared/dialog/dialog.component'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DialogService {\r\n dialogRef: MatDialogRef\r\n constructor(public dialog: MatDialog) {}\r\n\r\n public open() {\r\n this.dialogRef = this.dialog.open(DialogComponent, {\r\n width: '400px',\r\n data: {\r\n IsDangerButton: true,\r\n Message: 'Are you sure you want to delete this item?',\r\n },\r\n })\r\n }\r\n\r\n onDialogClosed() {\r\n return this.dialogRef.afterClosed().pipe(\r\n take(1),\r\n map((res) => {\r\n return res\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { Observable, Subject } from 'rxjs'\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LoadComponent {\r\n private subject = new Subject()\r\n\r\n createComponent(loadComponent: string, sideNavWidth?) {\r\n if (sideNavWidth) this.subject.next({ loadComponent: loadComponent, sideNavWidth: sideNavWidth })\r\n else this.subject.next({ loadComponent: loadComponent })\r\n }\r\n\r\n clearMessages() {\r\n this.subject.next()\r\n }\r\n\r\n getComponentStatus(): Observable {\r\n return this.subject.asObservable()\r\n }\r\n loadActiveData(activeData: any) {\r\n this.subject.next({ activeData: activeData })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { BehaviorSubject } from 'rxjs'\r\nimport { iLocation } from '../models/location.model'\r\nimport { Common } from '../common/common'\r\nimport { HttpClient } from '@angular/common/http'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LocationService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n private location: BehaviorSubject = new BehaviorSubject(null)\r\n public location$ = this.location.asObservable()\r\n\r\n getCurrentLocation() {\r\n return this.location.getValue()\r\n }\r\n\r\n setCurrentLocation(location) {\r\n this.location.next(location)\r\n }\r\n\r\n deleteLocation(location: iLocation) {\r\n const endPoint = Common.apiUrl + 'location/DeleteLocation'\r\n return this.httpClient.post(endPoint, location)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n \r\n constructor(private toastr: ToastrService) { }\r\n \r\n showSuccess(message, title){\r\n this.toastr.success(message, title,{ timeOut: 4000 })\r\n }\r\n \r\n showError(message, title){\r\n this.toastr.error(message, title,{ timeOut: 4000 })\r\n }\r\n \r\n showInfo(message, title){\r\n this.toastr.info(message, title, { timeOut: 4000 })\r\n }\r\n \r\n showWarning(message, title){\r\n this.toastr.warning(message, title, { timeOut: 4000 })\r\n }\r\n \r\n}","import { Injectable } from \"@angular/core\";\r\nimport * as signalR from \"@microsoft/signalr\"\r\nimport { Common } from \"../common/common\";\r\nimport { NotificationService } from \"./notification.service\";\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\n\r\nexport interface NotifyModel {\r\n data: [],\r\n label: string\r\n backgroundColor: string\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalrService {\r\n /**\r\n *\r\n */\r\n constructor(private notifyService: NotificationService) {\r\n\r\n }\r\n private _showProgressReport = new Subject();\r\n public showProgressReport = this._showProgressReport.asObservable();\r\n private hubConnection: signalR.HubConnection;\r\n setProgressReport(value: number) {\r\n this._showProgressReport.next(value);\r\n }\r\n // public startConnection = (userId) => {\r\n // this.hubConnection = new signalR.HubConnectionBuilder()\r\n // .withUrl(Common.apiUrl + 'progressNotify?userId=' + userId)\r\n // .build();\r\n // this.hubConnection\r\n // .start()\r\n // .then(() => {\r\n // console.log('Connection started');\r\n // this.hubInvoke();\r\n // })\r\n // .catch(err => console.log('Error while starting connection: ' + err));\r\n\r\n // this.hubConnection.on('SendProgressReportFileUpload', (data: any) => {\r\n \r\n // if (data && data.currentPercent != null) {\r\n // this.setProgressReport(+data.currentPercent);\r\n // }\r\n // });\r\n // }\r\n\r\n public hubInvoke() {\r\n this.hubConnection.invoke('GetConnectionId').then((res) => {\r\n })\r\n }\r\n}","import { Component, OnDestroy, OnInit } from '@angular/core'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes'\r\nimport { MatChipInputEvent } from '@angular/material/chips'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms'\r\nimport { ConsultantService } from 'src/app/consultant/consultant.service'\r\nimport { Subject } from 'rxjs'\r\nimport { takeUntil } from 'rxjs/operators'\r\nimport { iSkills } from 'src/app/models/job.model'\r\n\r\n@Component({\r\n selector: 'leap-boolean-filter',\r\n templateUrl: './boolean-filter.component.html',\r\n styleUrls: ['./boolean-filter.component.scss'],\r\n})\r\nexport class BooleanFilterComponent implements OnInit, OnDestroy {\r\n requiredSkillList: Array = []\r\n preferredSkillList: Array = []\r\n excludedSkillList: Array = []\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA]\r\n isShowAdvance: boolean = false\r\n filterCriteria = ['Address', 'Name', 'LastName']\r\n suggestedKeywords = ['Power Point', 'Computer Programming', 'MS-Office', 'Excel', 'Web Server']\r\n\r\n advanceSearchFormGroup: FormGroup\r\n skillNames: iSkills[] = []\r\n private _destroy$: Subject = new Subject()\r\n\r\n constructor(private _formBuilder: FormBuilder, private _consultantService: ConsultantService) {}\r\n\r\n ngOnInit(): void {\r\n this.initAdvanceSearchForm()\r\n this.applyFilterSkill('')\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroy$.next(false)\r\n this._destroy$.complete()\r\n }\r\n\r\n initAdvanceSearchForm() {\r\n this.advanceSearchFormGroup = this._formBuilder.group({\r\n advanceSearchList: this._formBuilder.array([]),\r\n })\r\n this.addControl()\r\n }\r\n\r\n get advanceSearchList() {\r\n return this.advanceSearchFormGroup.get('advanceSearchList') as FormArray\r\n }\r\n\r\n addControl() {\r\n this.advanceSearchList.insert(\r\n this.advanceSearchList?.controls?.length,\r\n this._formBuilder.group({\r\n field_1: new FormControl(''),\r\n field_2: new FormControl(''),\r\n field_3: new FormControl(''),\r\n })\r\n )\r\n }\r\n\r\n requiredSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.requiredSkillList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removeRequiredSkillList(keyword: any): void {\r\n let index = this.requiredSkillList.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.requiredSkillList.splice(index, 1)\r\n }\r\n }\r\n\r\n addRequiredSkillList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.requiredSkillList.push(value.trim())\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n preferredSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.preferredSkillList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removePreferredSkillList(keyword: any): void {\r\n let index = this.preferredSkillList.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.preferredSkillList.splice(index, 1)\r\n }\r\n }\r\n\r\n addPreferredSkillList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.preferredSkillList.push(value.trim())\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n excludedSkillListChipDrop(event: CdkDragDrop) {\r\n moveItemInArray(this.excludedSkillList, event.previousIndex, event.currentIndex)\r\n }\r\n\r\n removeExcludedSkillList(keyword: any): void {\r\n let index = this.excludedSkillList.indexOf(keyword)\r\n\r\n if (index >= 0) {\r\n this.excludedSkillList.splice(index, 1)\r\n }\r\n }\r\n\r\n addExcludedSkillList(event: MatChipInputEvent): void {\r\n const input = event.input\r\n const value = event.value\r\n if ((value || '').trim()) {\r\n this.excludedSkillList.push(value.trim())\r\n }\r\n if (input) {\r\n input.value = ''\r\n }\r\n }\r\n\r\n applyFilterSkill(filterValue: string) {\r\n filterValue = filterValue.trim() // Remove whitespace\r\n this._consultantService\r\n .getSkills(filterValue)\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe((res) => {\r\n this.skillNames = res as iSkills[]\r\n // this.skillNames = this.skillNames?.filter((item) => this.skillNameArray?.indexOf(item.Name) == -1)\r\n })\r\n }\r\n}\r\n","
\r\n Search\r\n close\r\n
\r\n
\r\n

Basic Search

\r\n
Add Required Skill
\r\n \r\n \r\n \r\n {{ required }}\r\n clear\r\n \r\n \r\n \r\n \r\n\r\n
Add Preferred Skill
\r\n \r\n \r\n \r\n {{ cert }}\r\n clear\r\n \r\n \r\n \r\n \r\n\r\n
Add Excluded Skill
\r\n \r\n \r\n \r\n {{ cert }}\r\n clear\r\n \r\n \r\n \r\n \r\n\r\n

Switch to Advance

\r\n\r\n

Suggested Keywords

\r\n\r\n \r\n\r\n
\r\n

Additional Criteria

\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{\r\n filter\r\n }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Advance Search

\r\n\r\n \r\n \r\n \r\n\r\n

Switch to basic

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit, Output, EventEmitter } from '@angular/core'\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'\r\nimport { iReasons } from 'src/app/models/common.model'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Common, MenuCode, ReasonTypeID } from 'src/app/common/common'\r\nimport { ActionData, DialogInputData } from './action.model'\r\nimport { FormControl, Validators } from '@angular/forms'\r\n\r\n@Component({\r\n selector: 'action-dialog',\r\n templateUrl: './action-dialog.component.html',\r\n styleUrls: ['./action-dialog.component.scss'],\r\n})\r\nexport class ActionDialogComponent implements OnInit {\r\n currentStatus: string\r\n nextStatus: string\r\n confirmationMessage: string\r\n confirmationButtonText: string = 'Ok'\r\n statusTitle: string = 'Status Change'\r\n allReasons: iReasons[]\r\n statusReasons: iReasons[]\r\n showReason: boolean = false\r\n selectedReasonId: number = 0\r\n selectedReason: string\r\n showCandidateNote: boolean = false\r\n changeResult: ActionData = {}\r\n otherReason: string\r\n exptectedRate: number\r\n minDate: Date = new Date()\r\n jobClosingFromDateFormControl: FormControl = new FormControl('', [Validators.required])\r\n terminationDateFormControl: FormControl = new FormControl(new Date(), [Validators.required])\r\n MenuCode = MenuCode\r\n\r\n public get reasonTypeId(): typeof ReasonTypeID {\r\n return ReasonTypeID\r\n }\r\n @Output() changeData = new EventEmitter()\r\n constructor(\r\n private commonService: CommonService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogInputData\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.nextStatus = this.data.menu.MenuName\r\n if (this.data.menu.ComponentCode == 'ConsultantJob') {\r\n this.statusTitle = 'Candidate Job Status change'\r\n } else if (this.data.menu.ComponentCode == 'Job') {\r\n this.statusTitle = 'Job Status change'\r\n }\r\n\r\n this.confirmationMessage =\r\n 'Are your sure you want to change the Candidate Job status to ' + this.nextStatus + '?'\r\n if (this.data.menu.MenuCode == MenuCode.CON_JOB_REJECTED) {\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonCandidateJobRejectlD)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_INTEW_REJECT) {\r\n this.confirmationMessage = 'Are you sure you want to reject this candidate?'\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonInteviewRejectID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_OFFER_REJECT) {\r\n this.confirmationMessage = 'Are you sure you want to reject this offer?'\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonOfferRejectlD)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_TERMINATE) {\r\n this.confirmationMessage = 'Are you sure you want to terminate this candidate?'\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonCandidateJobTerminatelID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_INT_CANCEL) {\r\n this.confirmationMessage = 'Are you sure you want to cancel this interview?'\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonInteviewCancelID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_WITHDRAW) {\r\n this.confirmationMessage = 'Are you sure you want to withdraw this candidate?'\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonCandidateJobWithdrawID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_PREVIEW) {\r\n this.confirmationMessage = ''\r\n this.confirmationButtonText = 'Preview mail'\r\n this.showCandidateNote = true\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_HOLD) {\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonJobHoldID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_CLOSE) {\r\n this.showReason = true\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonJobCloseID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_CANCELLED) {\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonJobCancelID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_DECLINED) {\r\n this.getObjectReasons(Common.enumReasonTypes.ReasonJobDeclineID)\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_DELETE) {\r\n this.confirmationMessage = 'Are you sure you want to delete this job?'\r\n this.showReason = false\r\n } else if (this.data.menu.MenuCode == MenuCode.CON_JOB_CLONE) {\r\n this.confirmationMessage = 'Are you sure you want to clone this job?'\r\n this.showReason = false\r\n }\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close()\r\n }\r\n onOkClick(): void {\r\n if (\r\n (this.data.menu.MenuCode == MenuCode.CON_JOB_TERMINATE ||\r\n this.data.menu.MenuCode == MenuCode.CON_JOB_CLOSE) &&\r\n this.terminationDateFormControl.invalid\r\n ) {\r\n this.terminationDateFormControl.markAsTouched()\r\n return\r\n }\r\n\r\n if (this.data.menu.MenuCode == MenuCode.CON_JOB_CLOSE && this.jobClosingFromDateFormControl.invalid) {\r\n this.jobClosingFromDateFormControl.markAllAsTouched()\r\n return\r\n }\r\n if (\r\n this.data.menu.MenuCode == MenuCode.CON_JOB_TERMINATE ||\r\n this.data.menu.MenuCode == MenuCode.CON_JOB_CLOSE\r\n ) {\r\n this.changeResult.terminationDate = this.terminationDateFormControl.value\r\n this.changeResult.jobClosedFromDate = this.jobClosingFromDateFormControl.value\r\n }\r\n this.changeResult.selectedReasonId = this.selectedReasonId\r\n //Other reason\r\n if (this.selectedReasonId == -1 || this.showCandidateNote) {\r\n this.changeResult.selectedReason = this.otherReason\r\n } else if (this.selectedReasonId == 80) {\r\n this.changeResult.selectedReason = this.exptectedRate.toString()\r\n } else {\r\n this.changeResult.selectedReason =\r\n this.selectedReason == null || this.selectedReason == undefined ? '' : this.selectedReason\r\n }\r\n\r\n this.changeResult.consultantjob = this.data.consultantjob\r\n\r\n this.changeResult.menu = this.data.menu\r\n this.dialogRef.close(this.changeResult)\r\n this.changeData.emit(this.changeResult)\r\n }\r\n getObjectReasons(reasonTypeCode) {\r\n this.commonService.getAllReasons().subscribe((res) => {\r\n this.allReasons = res as iReasons[]\r\n this.statusReasons = this.allReasons.filter(\r\n (item) => item.ReasonTypeID === reasonTypeCode || item.ReasonID === -1\r\n )\r\n this.showReason = this.statusReasons == null ? false : true\r\n })\r\n }\r\n onSelectedReason(e) {\r\n this.selectedReasonId = e.ReasonID // e.target.value;\r\n this.selectedReason = e.Name // e.target.options[e.target.options.selectedIndex].text;\r\n this.otherReason = ''\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ statusTitle }}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n

\r\n {{ confirmationMessage }}\r\n

\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ reason.Name }}\r\n \r\n \r\n \r\n \r\n Comments\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Candidate Summary Note\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{ confirmationButtonText }}\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n Please Select Termination Date*\r\n \r\n \r\n \r\n \r\n Termination date is required.\r\n \r\n
\r\n\r\n Please Select Terminate Reason*\r\n
\r\n\r\n\r\n
\r\n \r\n Please Select Closing Date*\r\n \r\n \r\n \r\n \r\n Closing date is required.\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\nimport { HttpStatusCode } from '@angular/common/http'\r\nimport { Router } from '@angular/router'\r\nimport { MatDialogRef } from '@angular/material/dialog'\r\nimport { PasswordChangeDialogComponent } from '../password-change-dialog/password-change-dialog.component'\r\nimport { Common } from 'src/app/common/common'\r\nimport { fadeInUp400ms } from '../core/animations/fade-in-up.animation'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\n\r\n@Component({\r\n selector: 'change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.scss'],\r\n animations: [fadeInUp400ms],\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n changePasswordFormGroup: FormGroup\r\n completeUserInfo: any\r\n userName: any\r\n loading: boolean = false\r\n\r\n isOldPasswordVisible: boolean = false\r\n isPasswordVisible: boolean = false\r\n isConfirmPasswordVisible: boolean = false\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private authService: AuthenticationService,\r\n private notifyService: NotificationService,\r\n private router: Router,\r\n private commonMatDialogService: CommonMatDialogService,\r\n public dialogRef: MatDialogRef\r\n ) {\r\n this.completeUserInfo = JSON.parse(localStorage.getItem('userinfo'))\r\n this.userName = this.completeUserInfo.userName\r\n }\r\n\r\n ngOnInit(): void {\r\n this.changePasswordFormGroup = this.fb.group(\r\n {\r\n email: ['', Validators.required],\r\n currentPassword: ['', Validators.required],\r\n newPassword: [\r\n '',\r\n [Validators.required, Validators.pattern(/(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@$!%*#?&^_-]).{8,}/)],\r\n ],\r\n confirmPassword: [\r\n '',\r\n [Validators.required, Validators.pattern(/(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@$!%*#?&^_-]).{8,}/)],\r\n ],\r\n },\r\n {\r\n //validator: this.ConfirmedValidator('newPassword', 'confirmPassword')\r\n }\r\n )\r\n\r\n this.changePasswordFormGroup.get('email').setValue(this.userName)\r\n }\r\n backToHome() {\r\n this.router.navigate(['/dashboard'])\r\n }\r\n\r\n ConfirmedValidator(controlName: string, matchingControlName: string) {\r\n return (formGroup: FormGroup) => {\r\n const control = formGroup.controls[controlName]\r\n const matchingControl = formGroup.controls[matchingControlName]\r\n if (matchingControl.errors && !matchingControl.errors.confirmedValidator) {\r\n return\r\n }\r\n if (control.value !== matchingControl.value) {\r\n matchingControl.setErrors({ confirmedValidator: true })\r\n } else {\r\n matchingControl.setErrors(null)\r\n }\r\n }\r\n }\r\n\r\n changePassword() {\r\n if (this.changePasswordFormGroup.valid) {\r\n let currentPassword = this.changePasswordFormGroup.get('currentPassword').value\r\n let newPassword = this.changePasswordFormGroup.get('newPassword').value\r\n let confirmPassword = this.changePasswordFormGroup.get('confirmPassword').value\r\n\r\n if (currentPassword.toLowerCase() === newPassword.toLowerCase()) {\r\n this.notifyService.showError(Common.messages['oldAndNewPassword'], Common.messages['passwordReset'])\r\n return\r\n }\r\n if (confirmPassword != newPassword) {\r\n this.notifyService.showError(Common.messages['confirmPassword'], Common.messages['passwordReset'])\r\n return\r\n }\r\n this.loading = true\r\n this.authService.changePassword(this.changePasswordFormGroup.value).subscribe(\r\n (result) => {\r\n if (result && result === HttpStatusCode.Ok) {\r\n this.loading = false\r\n localStorage.removeItem('access_token')\r\n localStorage.removeItem('userinfo')\r\n this.authService.userInfo = null\r\n const dialogRef = this.commonMatDialogService.open({\r\n component: PasswordChangeDialogComponent,\r\n data: {\r\n width: '800px',\r\n disableClose: true,\r\n },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.onClose()\r\n this.router.navigate([''])\r\n }\r\n })\r\n } else {\r\n this.loading = false\r\n this.notifyService.showError(\r\n Common.messages['inCorrectPassword'],\r\n Common.messages['passwordReset']\r\n )\r\n }\r\n },\r\n (err: any) => {\r\n this.loading = false\r\n this.notifyService.showError(Common.messages['error'], Common.messages['passwordReset'])\r\n }\r\n )\r\n }\r\n }\r\n onClose() {\r\n this.dialogRef.close()\r\n }\r\n}\r\n"," \r\n\r\n\r\n
\r\n
\r\n
\r\n Change Password \r\n close\r\n
\r\n
\r\n
\r\n Current Password\r\n \r\n \r\n \r\n {{ !isOldPasswordVisible ? 'visibility_off' : 'visibility' }}\r\n \r\n \r\n Current password is required\r\n \r\n \r\n New Password\r\n \r\n \r\n \r\n {{ !isPasswordVisible ? 'visibility_off' : 'visibility' }}\r\n \r\n \r\n New password is required\r\n \r\n \r\n Password must contain at least one number, one uppercase and a lowercase letter and at least 8\r\n characters
Password cannot contain whitespace\r\n
\r\n
\r\n\r\n Confirm New Password\r\n \r\n \r\n \r\n {{ !isConfirmPasswordVisible ? 'visibility_off' : 'visibility' }}\r\n \r\n \r\n Confirm password is required\r\n \r\n \r\n Password must contain at least one number, one uppercase and a lowercase letter and at least 8\r\n characters
Password cannot contain whitespace\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const dropdownAnimation = trigger('dropdown', [\r\n state('false', style({\r\n height: 0,\r\n opacity: 0\r\n })),\r\n state('true', style({\r\n height: '*',\r\n opacity: 1\r\n })),\r\n transition('false <=> true', animate('300ms cubic-bezier(.35, 0, .25, 1)'))\r\n]);\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport function fadeInUpAnimation(duration: number) {\r\n return trigger('fadeInUp', [\r\n transition(':enter', [\r\n style({\r\n transform: 'translateY(20px)',\r\n opacity: 0\r\n }),\r\n animate(`${duration}ms cubic-bezier(0.35, 0, 0.25, 1)`, style({\r\n transform: 'translateY(0)',\r\n opacity: 1\r\n }))\r\n ])\r\n ]);\r\n}\r\n\r\nexport const fadeInUp400ms = fadeInUpAnimation(400);\r\n","import { animate, group, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const popoverAnimation = trigger('transformPopover', [\r\n transition(':enter', [\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0.6)'\r\n }),\r\n group([\r\n animate('100ms linear', style({\r\n opacity: 1\r\n })),\r\n animate('150ms cubic-bezier(0, 0, 0.2, 1)', style({\r\n transform: 'scale(1)',\r\n })),\r\n ])\r\n ]),\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n }),\r\n animate('100ms linear', style({\r\n opacity: 0\r\n }))\r\n ])\r\n]);\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const scaleInOutAnimation = trigger('scaleInOut', [\r\n transition(':enter', [\r\n style({\r\n transform: 'scale(0)',\r\n opacity: 0\r\n }),\r\n animate('0.2s cubic-bezier(0.35, 0, 0.25, 1)', style({\r\n transform: 'scale(1)',\r\n opacity: 1\r\n }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n transform: 'scale(1)',\r\n opacity: 1\r\n }),\r\n animate('0.2s cubic-bezier(0.35, 0, 0.25, 1)', style({\r\n transform: 'scale(0)',\r\n opacity: 0\r\n }))\r\n ])\r\n]);\r\n","import { animateChild, query, stagger, transition, trigger } from '@angular/animations';\r\n\r\nexport function staggerAnimation(timing: number) {\r\n return trigger('stagger', [\r\n transition('* => *', [ // each time the binding value changes\r\n query(':enter', stagger(timing, animateChild()), { optional: true }),\r\n ])\r\n ]);\r\n}\r\n\r\nexport const stagger80ms = staggerAnimation(80);\r\nexport const stagger60ms = staggerAnimation(60);\r\nexport const stagger40ms = staggerAnimation(40);\r\nexport const stagger20ms = staggerAnimation(20);\r\n","import { Component, OnInit } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'leap-breadcrumb',\r\n template: ` `,\r\n styles: [],\r\n host: {\r\n class: 'leap-breadcrumb body-2 text-hint leading-none hover:text-primary no-underline trans-ease-out ltr:mr-2 rtl:ml-2',\r\n },\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { trackByValue } from '../../utils/track-by'\r\nimport { combineLatest } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport { Router } from '@angular/router'\r\n@Component({\r\n selector: 'leap-breadcrumbs',\r\n template: `\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ crumb }}\r\n \r\n \r\n
\r\n `,\r\n})\r\nexport class BreadcrumbsComponent implements OnInit {\r\n @Input() crumbs: string[] = []\r\n isExpanded$ = combineLatest([this.commonService.isOpenSide$]).pipe(map(([value]) => ({ value })))\r\n trackByValue = trackByValue\r\n constructor(private commonService: CommonService, private router: Router) {}\r\n\r\n ngOnInit() {}\r\n openSlider() {\r\n this.commonService.isOpenSideNavSubject.next(!this.commonService.isOpenSideNavSubject.value)\r\n }\r\n routeToDashboard(crumbIndex) {\r\n console.log(crumbIndex, '$$$$')\r\n if (crumbIndex == 0) {\r\n this.router.navigate(['/dashboard'])\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { BreadcrumbsComponent } from './breadcrumbs.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MatIconModule,\r\n FlexLayoutModule,\r\n IconModule,\r\n MatDividerModule,\r\n MatTooltipModule\r\n ],\r\n declarations: [BreadcrumbsComponent, BreadcrumbComponent],\r\n exports: [BreadcrumbsComponent]\r\n})\r\nexport class BreadcrumbsModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core'\r\nimport { asapScheduler } from 'rxjs'\r\n// @ts-ignore\r\nimport ApexCharts from 'apexcharts'\r\n\r\nexport interface ApexOptions {\r\n annotations?: ApexAnnotations\r\n chart?: ApexChart\r\n colors?: any[]\r\n dataLabels?: ApexDataLabels\r\n fill?: ApexFill\r\n grid?: ApexGrid\r\n labels?: string[] | number[]\r\n legend?: ApexLegend\r\n markers?: ApexMarkers\r\n noData?: ApexNoData\r\n plotOptions?: ApexPlotOptions\r\n responsive?: ApexResponsive[]\r\n series?: ApexAxisChartSeries | ApexNonAxisChartSeries\r\n states?: ApexStates\r\n stroke?: ApexStroke\r\n subtitle?: ApexTitleSubtitle\r\n theme?: ApexTheme\r\n title?: ApexTitleSubtitle\r\n tooltip?: ApexTooltip\r\n xaxis?: ApexXAxis\r\n yaxis?: ApexYAxis | ApexYAxis[]\r\n}\r\n\r\n@Component({\r\n selector: 'leap-chart',\r\n template: `
`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChartComponent implements OnInit, OnChanges {\r\n @Input() options: ApexOptions\r\n @Input() series: ApexAxisChartSeries | ApexNonAxisChartSeries\r\n @Input() autoUpdateSeries = true\r\n public chart: ApexCharts\r\n @ViewChild('chart', { static: true }) private chartElement: ElementRef\r\n\r\n constructor(private cd: ChangeDetectorRef, private ngZone: NgZone) {}\r\n\r\n ngOnInit() {\r\n asapScheduler.schedule(() => {\r\n this._createElement()\r\n })\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n asapScheduler.schedule(() => {\r\n if (this.autoUpdateSeries && Object.keys(changes).filter((c) => c !== 'series').length === 0) {\r\n this.chart.updateSeries(this.series, true)\r\n return\r\n }\r\n\r\n this._createElement()\r\n })\r\n }\r\n\r\n public render(): Promise {\r\n return this.chart.render()\r\n }\r\n\r\n private _createElement() {\r\n if (this.series) {\r\n this.options.series = this.series\r\n }\r\n\r\n if (this.chart) {\r\n this.chart.destroy()\r\n }\r\n\r\n this.ngZone.runOutsideAngular(() => {\r\n this.chart = new ApexCharts(this.chartElement.nativeElement, this.options)\r\n\r\n this.render()\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChartComponent } from './chart.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [ChartComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [ChartComponent]\r\n})\r\nexport class ChartModule {\r\n}\r\n","export interface ColorVariable {\r\n light: string;\r\n default: string;\r\n contrast: string;\r\n}\r\n\r\nexport const colorVariables: Record = {\r\n blue: {\r\n light: 'rgba(92, 119, 255, .1)',\r\n default: 'rgb(92, 119, 255)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n gray: {\r\n light: 'rgba(158, 158, 158, 0.1)',\r\n default: 'rgb(158, 158, 158)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n red: {\r\n light: 'rgba(244, 67, 54, 0.1)',\r\n default: 'rgb(244, 67, 54)',\r\n contrast: 'rgb(255, 255, 255)',\r\n },\r\n orange: {\r\n light: 'rgba(255, 152, 0, 0.1)',\r\n default: 'rgb(255, 152, 0)',\r\n contrast: 'rgb(0, 0, 0)',\r\n },\r\n 'deep-orange': {\r\n light: 'rgba(255, 87, 34, 0.1)',\r\n default: 'rgb(255, 87, 34)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n amber: {\r\n light: 'rgba(255, 193, 7, 0.1)',\r\n default: 'rgb(255, 193, 7)',\r\n contrast: 'rgb(0, 0, 0)'\r\n },\r\n green: {\r\n light: 'rgba(76, 175, 80, 0.1)',\r\n default: 'rgb(76, 175, 80)',\r\n contrast: 'rgb(255, 255, 255)',\r\n },\r\n teal: {\r\n light: 'rgba(0, 150, 136, 0.1)',\r\n default: 'rgb(0, 150, 136)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n cyan: {\r\n light: 'rgba(0, 188, 212, 0.1)',\r\n default: 'rgb(0, 188, 212)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n purple: {\r\n light: 'rgba(156, 39, 176, 0.1)',\r\n default: 'rgb(156, 39, 176)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n 'deep-purple': {\r\n light: 'rgba(103, 58, 183, 0.1)',\r\n default: 'rgb(103, 58, 183)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n pink: {\r\n light: 'rgba(233, 30, 99, 0.1)',\r\n default: 'rgb(233, 30, 99)',\r\n contrast: 'rgb(255, 255, 255)'\r\n },\r\n};\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core'\r\nimport icSettings from '@iconify/icons-ic/twotone-settings'\r\n\r\n@Component({\r\n selector: 'leap-config-panel-toggle',\r\n templateUrl: './config-panel-toggle.component.html',\r\n styleUrls: ['./config-panel-toggle.component.scss'],\r\n})\r\nexport class ConfigPanelToggleComponent implements OnInit {\r\n @Output() openConfig = new EventEmitter()\r\n\r\n icSettings = icSettings\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","\r\n","import { Component, Inject, OnInit } from '@angular/core'\r\nimport { ConfigService } from '../../services/config.service'\r\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle'\r\nimport { first, map } from 'rxjs/operators'\r\nimport icSettings from '@iconify/icons-ic/twotone-settings'\r\nimport { LayoutService } from '../../services/layout.service'\r\nimport icCheck from '@iconify/icons-ic/twotone-check'\r\nimport { MatRadioChange } from '@angular/material/radio'\r\nimport { ActivatedRoute } from '@angular/router'\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\r\nimport { Style, StyleService } from '../../services/style.service'\r\nimport { ConfigName } from '../../interfaces/config-name.model'\r\nimport { ColorVariable, colorVariables } from './color-variables'\r\nimport { DOCUMENT } from '@angular/common'\r\nimport icClose from '@iconify/icons-ic/twotone-close'\r\n\r\n@Component({\r\n selector: 'leap-config-panel',\r\n templateUrl: './config-panel.component.html',\r\n styleUrls: ['./config-panel.component.scss'],\r\n})\r\nexport class ConfigPanelComponent implements OnInit {\r\n configs = this.configService.configs\r\n colorVariables = colorVariables\r\n\r\n config$ = this.configService.config$\r\n activeConfig$ = this.configService.config$.pipe(\r\n map((config) =>\r\n Object.keys(this.configService.configs).find((key) => this.configService.configs[key] === config)\r\n )\r\n )\r\n\r\n isRTL$ = this.route.queryParamMap.pipe(\r\n map((paramMap) => coerceBooleanProperty(paramMap.get('rtl'))),\r\n first()\r\n )\r\n\r\n selectedStyle$ = this.styleService.style$\r\n\r\n icSettings = icSettings\r\n icCheck = icCheck\r\n icClose = icClose\r\n ConfigName = ConfigName\r\n Style = Style\r\n selectedColor = colorVariables.blue\r\n\r\n constructor(\r\n private configService: ConfigService,\r\n private styleService: StyleService,\r\n private layoutService: LayoutService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n setConfig(layout: ConfigName, style: Style) {\r\n this.configService.setConfig(layout)\r\n this.styleService.setStyle(style)\r\n }\r\n\r\n selectColor(color: ColorVariable) {\r\n this.selectedColor = color\r\n if (this.document) {\r\n // this.document.documentElement.style.setProperty('--color-primary', color.default.replace('rgb(', '').replace(')', ''));\r\n // this.document.documentElement.style.setProperty('--color-primary-contrast', color.contrast.replace('rgb(', '').replace(')', ''));\r\n }\r\n }\r\n\r\n isSelectedColor(color: ColorVariable) {\r\n return color === this.selectedColor\r\n }\r\n\r\n enableDarkMode() {\r\n this.styleService.setStyle(Style.dark)\r\n }\r\n\r\n disableDarkMode() {\r\n this.styleService.setStyle(Style.default)\r\n }\r\n\r\n sidenavOpenChange(change: MatSlideToggleChange) {\r\n change.checked ? this.layoutService.openSidenav() : this.layoutService.closeSidenav()\r\n }\r\n\r\n layoutRTLChange(change: MatSlideToggleChange) {\r\n change.checked ? this.layoutService.enableRTL() : this.layoutService.disableRTL()\r\n }\r\n\r\n toolbarPositionChange(change: MatRadioChange) {\r\n this.configService.updateConfig({\r\n toolbar: {\r\n fixed: change.value === 'fixed',\r\n },\r\n })\r\n }\r\n\r\n footerVisibleChange(change: MatSlideToggleChange) {\r\n this.configService.updateConfig({\r\n footer: {\r\n visible: change.checked,\r\n },\r\n })\r\n }\r\n\r\n footerPositionChange(change: MatRadioChange) {\r\n this.configService.updateConfig({\r\n footer: {\r\n fixed: change.value === 'fixed',\r\n },\r\n })\r\n }\r\n\r\n /*\r\n sidenavCollapsedChange(change: MatCheckboxChange) {\r\n this.layoutService.setCollapsed(change.checked);\r\n }\r\n\r\n toolbarVisibleChange(change: MatSlideToggleChange) {\r\n this.configService.setToolbarVisible(change.checked);\r\n }\r\n\r\n toolbarPositionChange(change: MatRadioChange) {\r\n this.configService.setToolbarPosition(change.value);\r\n }\r\n\r\n footerPositionChange(change: MatRadioChange) {\r\n this.configService.setFooterPosition(change.value);\r\n }\r\n */\r\n}\r\n","
\r\n

\r\n \r\n Configuration\r\n

\r\n\r\n
\r\n
THEME BASE
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n

DARK MODE

\r\n
\r\n
\r\n\r\n
\r\n
THEME COLORS
\r\n\r\n \r\n
\r\n \r\n
\r\n

{{ color.key | uppercase }}

\r\n
\r\n \r\n\r\n
\r\n
THEME STYLE
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n LIGHT\r\n \r\n \r\n DEFAULT\r\n \r\n \r\n DARK\r\n \r\n
\r\n
\r\n
{{ config.name }}
\r\n
\r\n
\r\n\r\n
\r\n
LAYOUT
\r\n\r\n
\r\n
ORIENTATION
\r\n\r\n RTL\r\n
\r\n
\r\n\r\n
\r\n
TOOLBAR
\r\n\r\n
\r\n
POSITION
\r\n\r\n \r\n Fixed\r\n Static\r\n \r\n
\r\n
\r\n\r\n
\r\n
FOOTER
\r\n\r\n
\r\n Visible\r\n \r\n\r\n
POSITION
\r\n\r\n \r\n Fixed\r\n Static\r\n \r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConfigPanelComponent } from './config-panel.component';\r\nimport { ConfigPanelToggleComponent } from './config-panel-toggle/config-panel-toggle.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatRippleModule } from '@angular/material/core';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n IconModule,\r\n MatRadioModule,\r\n FlexLayoutModule,\r\n MatSlideToggleModule,\r\n MatRippleModule\r\n ],\r\n declarations: [ConfigPanelComponent, ConfigPanelToggleComponent],\r\n exports: [ConfigPanelComponent, ConfigPanelToggleComponent]\r\n})\r\nexport class ConfigPanelModule {\r\n}\r\n","import { Directive, EventEmitter, Input, NgZone, OnChanges, Output, SimpleChanges } from '@angular/core'\r\nimport { HighlightResult } from './highlight.model'\r\nimport { HighlightService } from './highlight.service'\r\n\r\n@Directive({\r\n selector: '[leapHighlight]',\r\n host: {\r\n '[class.hljs]': 'true',\r\n '[innerHTML]': 'highlightedCode',\r\n },\r\n})\r\nexport class HighlightDirective implements OnChanges {\r\n /** Highlighted Code */\r\n highlightedCode: string\r\n\r\n /** An optional array of language names and aliases restricting detection to only those languages.\r\n * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n */\r\n @Input() languages: string[]\r\n\r\n /** Highlight code input */\r\n @Input('leapHighlight') code\r\n\r\n /** Stream that emits when code string is highlighted */\r\n @Output() highlighted = new EventEmitter()\r\n\r\n constructor(private _highlightService: HighlightService, private _zone: NgZone) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.code && changes.code.currentValue !== changes.code.previousValue) {\r\n this.highlightElement(this.code, this.languages)\r\n }\r\n }\r\n\r\n /**\r\n * Highlighting with language detection and fix markup.\r\n * @param code Accepts a string with the code to highlight\r\n * @param languages An optional array of language names and aliases restricting detection to only those languages.\r\n * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n */\r\n highlightElement(code: string, languages?: string[]) {\r\n this._zone.runOutsideAngular(() => {\r\n const res = this._highlightService.highlightAuto(code, languages)\r\n this.highlightedCode = res.value\r\n this.highlighted.emit(res)\r\n })\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const HIGHLIGHT_OPTIONS = new InjectionToken('HIGHLIGHT_OPTIONS');\r\n\r\nexport interface HighlightOptions {\r\n languages?: () => HighlightLanguage[];\r\n config?: HighlightConfig;\r\n}\r\n\r\nexport interface HighlightLanguage {\r\n name: string;\r\n func: () => any;\r\n}\r\n\r\nexport interface HighlightConfig {\r\n /** tabReplace: a string used to replace TAB characters in indentation. */\r\n tabReplace?: string;\r\n /** useBR: a flag to generate
tags instead of new-line characters in the output, useful when code is marked up using a non-
 container. */\r\n  useBR?: boolean;\r\n  /** classPrefix: a string prefix added before class names in the generated markup, used for backwards compatibility with stylesheets. */\r\n  classPrefix?: string;\r\n  /** languages: an array of language names and aliases restricting auto detection to only these languages. */\r\n  languages?: string[];\r\n}\r\n\r\nexport interface HighlightResult {\r\n  language?: string;\r\n  r?: number;\r\n  second_best?: any;\r\n  top?: any;\r\n  value?: string;\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { HighlightDirective } from './highlight.directive'\r\nimport { HIGHLIGHT_OPTIONS, HighlightOptions } from './highlight.model'\r\n/**\r\n * Import every language you wish to highlight here\r\n * NOTE: The name of each language must match the file name its imported from\r\n */\r\nimport * as xml from 'highlight.js/lib/languages/xml'\r\nimport * as scss from 'highlight.js/lib/languages/scss'\r\nimport * as typescript from 'highlight.js/lib/languages/typescript'\r\nimport { HighlightService } from './highlight.service'\r\n\r\n/**\r\n * Import every language you wish to highlight here\r\n * NOTE: The name of each language must match the file name its imported from\r\n */\r\nexport function hljsLanguages() {\r\n    return [\r\n        { name: 'typescript', func: typescript as any },\r\n        { name: 'scss', func: scss as any },\r\n        { name: 'xml', func: xml as any },\r\n    ]\r\n}\r\n\r\n@NgModule({\r\n    providers: [\r\n        {\r\n            provide: HIGHLIGHT_OPTIONS,\r\n            useValue: {\r\n                languages: hljsLanguages,\r\n            } as HighlightOptions,\r\n        },\r\n        HighlightService,\r\n    ],\r\n    declarations: [HighlightDirective],\r\n    imports: [],\r\n    exports: [HighlightDirective],\r\n})\r\nexport class HighlightModule {}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HIGHLIGHT_OPTIONS, HighlightConfig, HighlightLanguage, HighlightOptions, HighlightResult } from './highlight.model';\r\nimport * as hljs from 'highlight.js';\r\n\r\n@Injectable()\r\nexport class HighlightService {\r\n\r\n  constructor(@Inject(HIGHLIGHT_OPTIONS) options: HighlightOptions) {\r\n    if (options) {\r\n      // Register HighlightJS languages\r\n      options.languages().map((language: HighlightLanguage) =>\r\n        this.registerLanguage(language.name, language.func)\r\n      );\r\n      if (options.config) {\r\n        // Set global config if present\r\n        this.configure(options.config);\r\n      }\r\n    }\r\n    // Throw an error if no languages were registered.\r\n    if (this.listLanguages().length < 1) {\r\n      throw new Error('[HighlightJS]: No languages were registered!');\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Core highlighting function.\r\n   * @param name Accepts a language name, or an alias\r\n   * @param value A string with the code to highlight.\r\n   * @param ignoreIllegals When present and evaluates to a true value, forces highlighting to finish\r\n   * even in case of detecting illegal syntax for the language instead of throwing an exception.\r\n   * @param continuation An optional mode stack representing unfinished parsing.\r\n   * When present, the function will restart parsing from this state instead of initializing a new one\r\n   */\r\n  highlight(name: string, value: string, ignoreIllegals: boolean, continuation?: any): HighlightResult {\r\n    return hljs.highlight(name, value, ignoreIllegals, continuation);\r\n  }\r\n\r\n  /**\r\n   * Highlighting with language detection.\r\n   * @param value Accepts a string with the code to highlight\r\n   * @param languageSubset An optional array of language names and aliases restricting detection to only those languages.\r\n   * The subset can also be set with configure, but the local parameter overrides the option if set.\r\n   */\r\n  highlightAuto(value: string, languageSubset: string[]): HighlightResult {\r\n    return hljs.highlightAuto(value, languageSubset);\r\n  }\r\n\r\n  /**\r\n   * Post-processing of the highlighted markup.\r\n   * Currently consists of replacing indentation TAB characters and using 
tags instead of new-line characters.\r\n * Options are set globally with configure.\r\n * @param value Accepts a string with the highlighted markup\r\n */\r\n fixMarkup(value: string): string {\r\n return hljs.fixMarkup(value);\r\n }\r\n\r\n /**\r\n * Applies highlighting to a DOM node containing code.\r\n * The function uses language detection by default but you can specify the language in the class attribute of the DOM node.\r\n * See the class reference for all available language names and aliases.\r\n * @param block The element to apply highlight on.\r\n */\r\n highlightBlock(block: HTMLElement) {\r\n hljs.highlightBlock(block);\r\n }\r\n\r\n /**\r\n * Configures global options:\r\n */\r\n configure(config: HighlightConfig) {\r\n hljs.configure(config);\r\n }\r\n\r\n /**\r\n * Applies highlighting to all
..
blocks on a page.\r\n */\r\n initHighlighting() {\r\n hljs.initHighlighting();\r\n }\r\n\r\n /**\r\n * Adds new language to the library under the specified name. Used mostly internally.\r\n * @param name A string with the name of the language being registered\r\n * @param language A function that returns an object which represents the language definition.\r\n * The function is passed the hljs object to be able to use common regular expressions defined within it.\r\n */\r\n registerLanguage(name: string, language: any) {\r\n hljs.registerLanguage(name, language);\r\n }\r\n\r\n /**\r\n * @return The languages names list.\r\n */\r\n listLanguages(): string[] {\r\n return hljs.listLanguages();\r\n }\r\n\r\n /**\r\n * Looks up a language by name or alias.\r\n * @param name Language name\r\n * @return The language object if found, undefined otherwise.\r\n */\r\n getLanguage(name: string): any {\r\n return hljs.getLanguage(name);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport icLayers from '@iconify/icons-ic/twotone-layers'\r\nimport icAssigment from '@iconify/icons-ic/twotone-assignment'\r\nimport { Icon } from '@visurel/iconify-angular'\r\nimport icContactSupport from '@iconify/icons-ic/twotone-contact-support'\r\nimport icContacts from '@iconify/icons-ic/twotone-contacts'\r\nimport icAssessment from '@iconify/icons-ic/twotone-assessment'\r\nimport icBook from '@iconify/icons-ic/twotone-book'\r\nimport { PopoverRef } from '../popover/popover-ref'\r\n\r\nexport interface MegaMenuFeature {\r\n icon: Icon\r\n label: string\r\n route: string\r\n}\r\n\r\nexport interface MegaMenuPage {\r\n label: string\r\n route: string\r\n}\r\n\r\n@Component({\r\n selector: 'leap-mega-menu',\r\n templateUrl: './mega-menu.component.html',\r\n})\r\nexport class MegaMenuComponent implements OnInit {\r\n features: MegaMenuFeature[] = [\r\n {\r\n icon: icLayers,\r\n label: 'Dashboard',\r\n route: '/',\r\n },\r\n {\r\n icon: icAssigment,\r\n label: 'AIO-Table',\r\n route: '/apps/aio-table',\r\n },\r\n {\r\n icon: icContactSupport,\r\n label: 'Help Center',\r\n route: '/apps/help-center',\r\n },\r\n {\r\n icon: icContacts,\r\n label: 'Contacts',\r\n route: '/apps/contacts/grid',\r\n },\r\n {\r\n icon: icAssessment,\r\n label: 'Scrumboard',\r\n route: '/apps/scrumboard/1',\r\n },\r\n {\r\n icon: icBook,\r\n label: 'Documentation',\r\n route: '/documentation',\r\n },\r\n ]\r\n\r\n pages: MegaMenuPage[] = [\r\n {\r\n label: 'All-In-One Table',\r\n route: '/apps/aio-table',\r\n },\r\n {\r\n label: 'Authentication',\r\n route: '/login',\r\n },\r\n {\r\n label: 'Components',\r\n route: '/ui/components/overview',\r\n },\r\n {\r\n label: 'Documentation',\r\n route: '/documentation',\r\n },\r\n {\r\n label: 'FAQ',\r\n route: '/pages/faq',\r\n },\r\n {\r\n label: 'Form Elements',\r\n route: '/ui/forms/form-elements',\r\n },\r\n {\r\n label: 'Form Wizard',\r\n route: '/ui/forms/form-wizard',\r\n },\r\n {\r\n label: 'Guides',\r\n route: '/pages/guides',\r\n },\r\n {\r\n label: 'Help Center',\r\n route: '/apps/help-center',\r\n },\r\n {\r\n label: 'Scrumboard',\r\n route: '/apps/scrumboard',\r\n },\r\n ]\r\n\r\n constructor(private popoverRef: PopoverRef) {}\r\n\r\n ngOnInit() {}\r\n\r\n close() {\r\n this.popoverRef.close()\r\n }\r\n}\r\n","
\r\n
\r\n

Mega Menu

\r\n\r\n

Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there\r\n live the blind\r\n texts.

\r\n\r\n

Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language\r\n ocean.

\r\n\r\n \r\n
\r\n\r\n
\r\n

FEATURES

\r\n\r\n \r\n
\r\n\r\n
\r\n

PAGES

\r\n\r\n \r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MegaMenuComponent } from './mega-menu.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\n@NgModule({\r\n declarations: [MegaMenuComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n IconModule,\r\n RouterModule\r\n ],\r\n exports: [MegaMenuComponent],\r\n entryComponents: [MegaMenuComponent]\r\n})\r\nexport class MegaMenuModule { }\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport { NavigationItem, NavigationLink } from '../../interfaces/navigation-item.interface'\r\nimport { filter, map, startWith } from 'rxjs/operators'\r\nimport { NavigationEnd, Router } from '@angular/router'\r\nimport { NavigationService } from '../../services/navigation.service'\r\nimport { trackByRoute } from '../../utils/track-by'\r\n\r\n@Component({\r\n selector: 'leap-navigation-item',\r\n templateUrl: './navigation-item.component.html',\r\n styleUrls: ['./navigation-item.component.scss'],\r\n})\r\nexport class NavigationItemComponent implements OnInit {\r\n @Input() item: NavigationItem\r\n\r\n isActive$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => (item: NavigationItem) => this.hasActiveChilds(item))\r\n )\r\n\r\n isLink = this.navigationService.isLink\r\n isDropdown = this.navigationService.isDropdown\r\n isSubheading = this.navigationService.isSubheading\r\n trackByRoute = trackByRoute\r\n\r\n constructor(private navigationService: NavigationService, private router: Router) {}\r\n\r\n ngOnInit() {}\r\n\r\n hasActiveChilds(parent: NavigationItem): boolean {\r\n if (this.isLink(parent)) {\r\n return this.router.isActive(parent.route as string, true)\r\n }\r\n\r\n if (this.isDropdown(parent) || this.isSubheading(parent)) {\r\n return parent.children.some((child) => {\r\n if (this.isDropdown(child)) {\r\n return this.hasActiveChilds(child)\r\n }\r\n\r\n if (this.isLink(child) && !this.isFunction(child.route)) {\r\n return this.router.isActive(child.route as string, true)\r\n }\r\n\r\n return false\r\n })\r\n }\r\n\r\n return false\r\n }\r\n\r\n isFunction(prop: NavigationLink['route']) {\r\n return prop instanceof Function\r\n }\r\n}\r\n","\r\n {{ item.label }}\r\n\r\n\r\n
\r\n {{ item.label }}\r\n
\r\n\r\n 0) || isDropdown(item)\">\r\n
\r\n {{ item.label }}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n {{ child.label }}\r\n \r\n\r\n
\r\n \r\n {{ child.label }}\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n {{ item.label }}\r\n\r\n
{{ item.label }}
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationItemComponent } from './navigation-item.component';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatRippleModule } from '@angular/material/core';\r\n\r\n\r\n@NgModule({\r\n declarations: [NavigationItemComponent],\r\n imports: [\r\n CommonModule,\r\n MatMenuModule,\r\n IconModule,\r\n MatIconModule,\r\n RouterModule,\r\n MatRippleModule\r\n ],\r\n exports: [NavigationItemComponent]\r\n})\r\nexport class NavigationItemModule {\r\n}\r\n","import { Directive } from '@angular/core'\r\n\r\n@Directive({\r\n selector: '[leapPageLayoutContent],leap-page-layout-content',\r\n host: {\r\n class: 'leap-page-layout-content',\r\n },\r\n})\r\nexport class PageLayoutContentDirective {\r\n constructor() {}\r\n}\r\n","import { Directive } from '@angular/core'\r\n\r\n@Directive({\r\n selector: '[leapPageLayoutHeader],leap-page-layout-header',\r\n host: {\r\n class: 'leap-page-layout-header',\r\n },\r\n})\r\nexport class PageLayoutHeaderDirective {\r\n constructor() {}\r\n}\r\n","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'leap-page-layout',\r\n template: '',\r\n host: {\r\n class: 'leap-page-layout',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./page-layout.component.scss'],\r\n})\r\nexport class PageLayoutComponent {\r\n @Input() mode: 'card' | 'simple' = 'simple'\r\n\r\n constructor() {}\r\n\r\n @HostBinding('class.leap-page-layout-card')\r\n get isCard() {\r\n return this.mode === 'card'\r\n }\r\n\r\n @HostBinding('class.leap-page-layout-simple')\r\n get isSimple() {\r\n return this.mode === 'simple'\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PageLayoutComponent } from './page-layout.component';\r\nimport { PageLayoutHeaderDirective } from './page-layout-header.directive';\r\nimport { PageLayoutContentDirective } from './page-layout-content.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [PageLayoutComponent, PageLayoutHeaderDirective, PageLayoutContentDirective],\r\n exports: [PageLayoutComponent, PageLayoutHeaderDirective, PageLayoutContentDirective]\r\n})\r\nexport class PageLayoutModule {\r\n}\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { Subject } from 'rxjs';\r\nimport { TemplateRef, Type } from '@angular/core';\r\n\r\nexport interface PopoverCloseEvent {\r\n type: 'backdropClick' | 'close';\r\n data: T;\r\n}\r\n\r\nexport type PopoverContent = TemplateRef | Type | string;\r\n\r\nexport class PopoverRef {\r\n private afterClosed = new Subject>();\r\n afterClosed$ = this.afterClosed.asObservable();\r\n\r\n constructor(public overlay: OverlayRef,\r\n public content: PopoverContent,\r\n public data: T) {\r\n overlay.backdropClick().subscribe(() => {\r\n this._close('backdropClick', null);\r\n });\r\n }\r\n\r\n close(data?: T) {\r\n this._close('close', data);\r\n }\r\n\r\n private _close(type: PopoverCloseEvent['type'], data?: T) {\r\n this.overlay.dispose();\r\n this.afterClosed.next({\r\n type,\r\n data\r\n });\r\n this.afterClosed.complete();\r\n }\r\n}\r\n","import { Component, OnInit, TemplateRef } from '@angular/core'\r\nimport { PopoverContent, PopoverRef } from './popover-ref'\r\nimport { popoverAnimation } from '../../animations/popover.animation'\r\n\r\n@Component({\r\n selector: 'leap-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.scss'],\r\n animations: [popoverAnimation],\r\n})\r\nexport class PopoverComponent implements OnInit {\r\n renderMethod: 'template' | 'component' | 'text' = 'component'\r\n content: PopoverContent\r\n context\r\n\r\n constructor(private popoverRef: PopoverRef) {}\r\n\r\n ngOnInit() {\r\n this.content = this.popoverRef.content\r\n\r\n if (typeof this.content === 'string') {\r\n this.renderMethod = 'text'\r\n }\r\n\r\n if (this.content instanceof TemplateRef) {\r\n this.renderMethod = 'template'\r\n this.context = {\r\n close: this.popoverRef.close.bind(this.popoverRef),\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverComponent } from './popover.component';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\n@NgModule({\r\n declarations: [PopoverComponent],\r\n imports: [\r\n CommonModule,\r\n OverlayModule\r\n ],\r\n entryComponents: [PopoverComponent]\r\n})\r\nexport class PopoverModule {\r\n}\r\n","import { ElementRef, Injectable, Injector } from '@angular/core';\r\nimport { ConnectionPositionPair, Overlay, OverlayConfig, PositionStrategy } from '@angular/cdk/overlay';\r\nimport { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\r\nimport { PopoverContent, PopoverRef } from './popover-ref';\r\nimport { PopoverComponent } from './popover.component';\r\n\r\nexport interface PopoverParams {\r\n width?: string | number;\r\n height?: string | number;\r\n origin: ElementRef | HTMLElement;\r\n position?: ConnectionPositionPair[];\r\n content: PopoverContent;\r\n data?: T;\r\n offsetY?: number;\r\n offsetX?: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PopoverService {\r\n constructor(private overlay: Overlay, private injector: Injector) { }\r\n\r\n open({ origin, content, data, width, height, position, offsetX, offsetY }: PopoverParams): PopoverRef {\r\n const overlayRef = this.overlay.create(this.getOverlayConfig({ origin, width, height, position, offsetX, offsetY }));\r\n const popoverRef = new PopoverRef(overlayRef, content, data);\r\n\r\n const injector = this.createInjector(popoverRef, this.injector);\r\n overlayRef.attach(new ComponentPortal(PopoverComponent, null, injector));\r\n\r\n return popoverRef;\r\n }\r\n\r\n createInjector(popoverRef: PopoverRef, injector: Injector) {\r\n const tokens = new WeakMap([[PopoverRef, popoverRef]]);\r\n return new PortalInjector(injector, tokens);\r\n }\r\n\r\n private getOverlayConfig({ origin, width, height, position, offsetX, offsetY }): OverlayConfig {\r\n return new OverlayConfig({\r\n hasBackdrop: true,\r\n width,\r\n height,\r\n backdropClass: 'popover-backdrop',\r\n positionStrategy: this.getOverlayPosition({ origin, position, offsetX, offsetY }),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n });\r\n }\r\n\r\n private getOverlayPosition({ origin, position, offsetX, offsetY }): PositionStrategy {\r\n const positionStrategy = this.overlay.position()\r\n .flexibleConnectedTo(origin)\r\n .withPositions(position || this.getPositions())\r\n .withFlexibleDimensions(true)\r\n .withDefaultOffsetY(offsetY || 0)\r\n .withDefaultOffsetX(offsetX || 0)\r\n .withTransformOriginOn('.popover')\r\n .withPush(true);\r\n\r\n return positionStrategy;\r\n }\r\n\r\n private getPositions(): ConnectionPositionPair[] {\r\n return [\r\n {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom'\r\n },\r\n {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n },\r\n ];\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { LoadingBarService } from '@ngx-loading-bar/core'\r\n\r\n@Component({\r\n selector: 'leap-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n})\r\nexport class ProgressBarComponent implements OnInit {\r\n constructor(public loader: LoadingBarService) {}\r\n\r\n ngOnInit() {}\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProgressBarComponent } from './progress-bar.component';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { LoadingBarModule } from '@ngx-loading-bar/core';\r\nimport { LoadingBarRouterModule } from '@ngx-loading-bar/router';\r\n\r\n\r\n@NgModule({\r\n declarations: [ProgressBarComponent],\r\n imports: [\r\n CommonModule,\r\n MatProgressBarModule,\r\n LoadingBarModule,\r\n LoadingBarRouterModule\r\n ],\r\n exports: [ProgressBarComponent]\r\n})\r\nexport class ProgressBarModule {\r\n}\r\n","import { AfterContentInit, Component, ElementRef, Input, NgZone, OnDestroy } from '@angular/core'\r\nimport SimpleBar from 'simplebar'\r\n\r\n@Component({\r\n selector: 'leap-scrollbar',\r\n template: ` `,\r\n styleUrls: ['./scrollbar.component.scss'],\r\n host: {\r\n class: 'leap-scrollbar',\r\n },\r\n})\r\nexport class ScrollbarComponent implements AfterContentInit, OnDestroy {\r\n @Input() options: Partial\r\n\r\n scrollbarRef: SimpleBar\r\n\r\n constructor(private _element: ElementRef, private zone: NgZone) {}\r\n\r\n ngAfterContentInit() {\r\n this.zone.runOutsideAngular(() => {\r\n this.scrollbarRef = new SimpleBar(this._element.nativeElement, this.options)\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n /**\r\n * Exists, but not typed in the type definition\r\n * https://github.com/Grsmto/simplebar/blob/master/packages/simplebar/src/simplebar.js#L903\r\n */\r\n if (this.scrollbarRef && (this.scrollbarRef as any).unMount) {\r\n ;(this.scrollbarRef as any).unMount()\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ScrollbarComponent } from './scrollbar.component';\r\n\r\n@NgModule({\r\n declarations: [ScrollbarComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [ScrollbarComponent]\r\n})\r\nexport class ScrollbarModule {\r\n}\r\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core'\r\nimport icClose from '@iconify/icons-ic/twotone-close'\r\nimport { LayoutService } from '../../services/layout.service'\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\r\nimport { filter } from 'rxjs/operators'\r\nimport { FormControl } from '@angular/forms'\r\nimport { SearchService } from '../../services/search.service'\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'leap-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.scss'],\r\n})\r\nexport class SearchComponent implements OnInit, OnDestroy {\r\n show$ = this.layoutService.searchOpen$\r\n searchCtrl = new FormControl()\r\n icClose = icClose\r\n\r\n @ViewChild('searchInput', { static: true }) input: ElementRef\r\n\r\n constructor(private layoutService: LayoutService, private searchService: SearchService) {}\r\n\r\n ngOnInit() {\r\n this.searchService.isOpenSubject.next(true)\r\n this.searchCtrl.valueChanges\r\n .pipe(untilDestroyed(this))\r\n .subscribe((value) => this.searchService.valueChangesSubject.next(value))\r\n\r\n this.show$\r\n .pipe(\r\n filter((show) => show),\r\n untilDestroyed(this)\r\n )\r\n .subscribe(() => this.input.nativeElement.focus())\r\n }\r\n\r\n close() {\r\n this.layoutService.closeSearch()\r\n this.searchCtrl.setValue(undefined)\r\n this.searchService.isOpenSubject.next(false)\r\n }\r\n\r\n search() {\r\n this.searchService.submitSubject.next(this.searchCtrl.value)\r\n this.close()\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.layoutService.closeSearch()\r\n this.searchCtrl.setValue(undefined)\r\n this.searchService.isOpenSubject.next(false)\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n
Hit enter to search
\r\n
\r\n\r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SearchComponent } from './search.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n\r\n@NgModule({\r\n declarations: [SearchComponent],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n IconModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [SearchComponent]\r\n})\r\nexport class SearchModule {\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport { ConfigService } from '../../services/config.service'\r\nimport { map } from 'rxjs/operators'\r\n\r\n@Component({\r\n selector: 'leap-secondary-toolbar',\r\n templateUrl: './secondary-toolbar.component.html',\r\n styleUrls: ['./secondary-toolbar.component.scss'],\r\n})\r\nexport class SecondaryToolbarComponent implements OnInit {\r\n @Input() current: string\r\n @Input() crumbs: string[]\r\n\r\n fixed$ = this.configService.config$.pipe(map((config) => config.toolbar.fixed))\r\n\r\n constructor(private configService: ConfigService) {}\r\n\r\n ngOnInit() {}\r\n}\r\n","
 
\r\n\r\n\r\n
\r\n \r\n {{ current }}\r\n \r\n\r\n \r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SecondaryToolbarComponent } from './secondary-toolbar.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { BreadcrumbsModule } from '../breadcrumbs/breadcrumbs.module';\r\nimport { ContainerModule } from '../../directives/container/container.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [SecondaryToolbarComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n IconModule,\r\n RouterModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n BreadcrumbsModule,\r\n ContainerModule\r\n ],\r\n exports: [SecondaryToolbarComponent]\r\n})\r\nexport class SecondaryToolbarModule {\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core'\r\nimport logoGmail from '@iconify/icons-logos/google-gmail'\r\nimport logoWhatsApp from '@iconify/icons-logos/whatsapp'\r\nimport logoTwitter from '@iconify/icons-logos/twitter'\r\nimport logoFacebook from '@iconify/icons-logos/facebook'\r\nimport { MatBottomSheetRef } from '@angular/material/bottom-sheet'\r\n\r\n@Component({\r\n selector: 'leap-share-bottom-sheet',\r\n templateUrl: './share-bottom-sheet.component.html',\r\n styleUrls: ['./share-bottom-sheet.component.scss'],\r\n})\r\nexport class ShareBottomSheetComponent implements OnInit {\r\n logoGmail = logoGmail\r\n logoWhatsApp = logoWhatsApp\r\n logoTwitter = logoTwitter\r\n logoFacebook = logoFacebook\r\n\r\n constructor(private _bottomSheetRef: MatBottomSheetRef) {}\r\n\r\n ngOnInit() {}\r\n\r\n close() {\r\n this._bottomSheetRef.dismiss()\r\n }\r\n}\r\n","\r\n \r\n \r\n Send with Gmail\r\n \r\n\r\n \r\n \r\n Post on Facebook\r\n \r\n\r\n \r\n \r\n Share on Twitter\r\n \r\n\r\n \r\n \r\n Share on WhatsApp\r\n \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ShareBottomSheetComponent } from './share-bottom-sheet.component';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\n\r\n\r\n@NgModule({\r\n declarations: [ShareBottomSheetComponent],\r\n imports: [\r\n CommonModule,\r\n MatBottomSheetModule,\r\n MatListModule,\r\n RouterModule,\r\n MatIconModule,\r\n IconModule\r\n ],\r\n exports: [\r\n MatBottomSheetModule\r\n ],\r\n entryComponents: [ShareBottomSheetComponent]\r\n})\r\nexport class ShareBottomSheetModule {\r\n}\r\n","import { Component, Inject, Input, OnDestroy } from '@angular/core'\r\nimport { DOCUMENT } from '@angular/common'\r\n\r\n@Component({\r\n selector: 'leap-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss'],\r\n host: {\r\n class: 'leap-sidebar',\r\n },\r\n})\r\nexport class SidebarComponent implements OnDestroy {\r\n @Input() position: 'left' | 'right' = 'left'\r\n @Input() invisibleBackdrop: boolean\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document) {}\r\n\r\n private _opened: boolean\r\n\r\n get opened() {\r\n return this._opened\r\n }\r\n\r\n @Input() set opened(opened: boolean) {\r\n this._opened = opened\r\n opened ? this.enableScrollblock() : this.disableScrollblock()\r\n }\r\n\r\n get positionLeft() {\r\n return this.position === 'left'\r\n }\r\n\r\n get positionRight() {\r\n return this.position === 'right'\r\n }\r\n\r\n enableScrollblock() {\r\n if (!this.document.body.classList.contains('leap-scrollblock')) {\r\n this.document.body.classList.add('leap-scrollblock')\r\n }\r\n }\r\n\r\n disableScrollblock() {\r\n if (this.document.body.classList.contains('leap-scrollblock')) {\r\n this.document.body.classList.remove('leap-scrollblock')\r\n }\r\n }\r\n\r\n open() {\r\n this.opened = true\r\n }\r\n\r\n close() {\r\n this.opened = false\r\n }\r\n\r\n ngOnDestroy(): void {}\r\n}\r\n","
\r\n\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SidebarComponent } from './sidebar.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [SidebarComponent],\r\n exports: [SidebarComponent]\r\n})\r\nexport class SidebarModule {\r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport icCheckCircle from '@iconify/icons-ic/twotone-check-circle'\r\n\r\n@Component({\r\n selector: 'leap-widget-assistant',\r\n templateUrl: './widget-assistant.component.html',\r\n styleUrls: ['./widget-assistant.component.scss'],\r\n})\r\nexport class WidgetAssistantComponent implements OnInit {\r\n icCheckCircle = icCheckCircle\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n

Good Job, David!

\r\n

You've finished all of your tasks for this week.

\r\n\r\n
\r\n \r\n Finish Dashboard Design\r\n
\r\n\r\n
\r\n \r\n Fix Issue #74\r\n
\r\n\r\n
\r\n \r\n Publish version 2.3.3\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WidgetAssistantComponent } from './widget-assistant.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\n\r\n\r\n@NgModule({\r\n declarations: [WidgetAssistantComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n IconModule\r\n ],\r\n exports: [WidgetAssistantComponent]\r\n})\r\nexport class WidgetAssistantModule {\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport icMoreHoriz from '@iconify/icons-ic/twotone-more-horiz'\r\nimport icCloudDownload from '@iconify/icons-ic/twotone-cloud-download'\r\nimport { ApexOptions } from '../../chart/chart.component'\r\nimport { defaultChartOptions } from '../../../utils/default-chart-options'\r\nimport { createDateArray } from '../../../utils/create-date-array'\r\n\r\n@Component({\r\n selector: 'leap-widget-large-chart',\r\n templateUrl: './widget-large-chart.component.html',\r\n styleUrls: ['./widget-large-chart.component.scss'],\r\n})\r\nexport class WidgetLargeChartComponent implements OnInit {\r\n @Input() series: ApexNonAxisChartSeries | ApexAxisChartSeries\r\n @Input() options: ApexOptions = defaultChartOptions({\r\n grid: {\r\n show: true,\r\n strokeDashArray: 3,\r\n padding: {\r\n left: 16,\r\n },\r\n },\r\n chart: {\r\n type: 'area',\r\n height: 384,\r\n sparkline: {\r\n enabled: false,\r\n },\r\n zoom: {\r\n enabled: false,\r\n },\r\n },\r\n fill: {\r\n type: 'gradient',\r\n gradient: {\r\n shadeIntensity: 0.9,\r\n opacityFrom: 0.7,\r\n opacityTo: 0.5,\r\n stops: [0, 90, 100],\r\n },\r\n },\r\n colors: ['#008ffb', '#ff9800'],\r\n labels: createDateArray(12),\r\n xaxis: {\r\n type: 'datetime',\r\n labels: {\r\n show: true,\r\n },\r\n },\r\n yaxis: {\r\n labels: {\r\n show: true,\r\n },\r\n },\r\n legend: {\r\n show: true,\r\n itemMargin: {\r\n horizontal: 4,\r\n vertical: 4,\r\n },\r\n },\r\n })\r\n\r\n icMoreHoriz = icMoreHoriz\r\n icCloudDownload = icCloudDownload\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","
\r\n
\r\n

User & Session Analytics

\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WidgetLargeChartComponent } from './widget-large-chart.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { ChartModule } from '../../chart/chart.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [WidgetLargeChartComponent],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n IconModule,\r\n FlexLayoutModule,\r\n ChartModule\r\n ],\r\n exports: [WidgetLargeChartComponent]\r\n})\r\nexport class WidgetLargeChartModule {\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport icMoreHoriz from '@iconify/icons-ic/twotone-more-horiz'\r\nimport icCloudDownload from '@iconify/icons-ic/twotone-cloud-download'\r\nimport faCaretUp from '@iconify/icons-fa-solid/caret-up'\r\nimport faCaretDown from '@iconify/icons-fa-solid/caret-down'\r\nimport { ApexOptions } from '../../chart/chart.component'\r\nimport { defaultChartOptions } from '../../../utils/default-chart-options'\r\nimport { createDateArray } from '../../../utils/create-date-array'\r\n\r\n@Component({\r\n selector: 'leap-widget-large-goal-chart',\r\n templateUrl: './widget-large-goal-chart.component.html',\r\n})\r\nexport class WidgetLargeGoalChartComponent implements OnInit {\r\n @Input() total: number\r\n @Input() series: ApexNonAxisChartSeries | ApexAxisChartSeries\r\n @Input() options: ApexOptions = defaultChartOptions({\r\n grid: {\r\n show: true,\r\n strokeDashArray: 3,\r\n padding: {\r\n left: 16,\r\n },\r\n },\r\n chart: {\r\n type: 'line',\r\n height: 300,\r\n sparkline: {\r\n enabled: false,\r\n },\r\n zoom: {\r\n enabled: false,\r\n },\r\n },\r\n stroke: {\r\n width: 4,\r\n },\r\n labels: createDateArray(12),\r\n xaxis: {\r\n type: 'datetime',\r\n labels: {\r\n show: true,\r\n },\r\n },\r\n yaxis: {\r\n labels: {\r\n show: true,\r\n },\r\n },\r\n })\r\n\r\n icMoreHoriz = icMoreHoriz\r\n icCloudDownload = icCloudDownload\r\n faCaretUp = faCaretUp\r\n faCaretDown = faCaretDown\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","
\r\n
\r\n

Sales Overview

\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n

{{ total }}

\r\n

Sales this month

\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n

\r\n 11% more sales in comparison to last month.\r\n

\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n

\r\n -2% revenue per sale in comparison to last month.\r\n

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WidgetLargeGoalChartComponent } from './widget-large-goal-chart.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { ChartModule } from '../../chart/chart.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [WidgetLargeGoalChartComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n IconModule,\r\n ChartModule\r\n ],\r\n exports: [WidgetLargeGoalChartComponent]\r\n})\r\nexport class WidgetLargeGoalChartModule {\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\r\nimport { ApexOptions } from '../../chart/chart.component'\r\nimport { defaultChartOptions } from '../../../utils/default-chart-options'\r\nimport { Icon } from '@visurel/iconify-angular'\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet'\r\nimport { ShareBottomSheetComponent } from '../../share-bottom-sheet/share-bottom-sheet.component'\r\nimport icShare from '@iconify/icons-ic/twotone-share'\r\nimport { scaleInOutAnimation } from '../../../animations/scale-in-out.animation'\r\n\r\n@Component({\r\n selector: 'leap-widget-quick-line-chart',\r\n templateUrl: './widget-quick-line-chart.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [scaleInOutAnimation],\r\n})\r\nexport class WidgetQuickLineChartComponent implements OnInit {\r\n @Input() icon: Icon\r\n @Input() value: string\r\n @Input() label: string\r\n @Input() iconClass: string\r\n @Input() options: ApexOptions = defaultChartOptions({\r\n chart: {\r\n type: 'area',\r\n height: 100,\r\n },\r\n })\r\n @Input() series: ApexNonAxisChartSeries | ApexAxisChartSeries\r\n\r\n showButton: boolean\r\n\r\n icShare = icShare\r\n\r\n constructor(private _bottomSheet: MatBottomSheet) {}\r\n\r\n ngOnInit() {}\r\n\r\n openSheet() {\r\n this._bottomSheet.open(ShareBottomSheetComponent)\r\n }\r\n}\r\n","\r\n
\r\n
\r\n

{{ value }}

\r\n

{{ label }}

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WidgetQuickLineChartComponent } from './widget-quick-line-chart.component';\r\nimport { ChartModule } from '../../chart/chart.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { ShareBottomSheetModule } from '../../share-bottom-sheet/share-bottom-sheet.module';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n\r\n@NgModule({\r\n declarations: [WidgetQuickLineChartComponent],\r\n imports: [\r\n CommonModule,\r\n ChartModule,\r\n MatIconModule,\r\n FlexLayoutModule,\r\n IconModule,\r\n ShareBottomSheetModule,\r\n MatButtonModule\r\n ],\r\n exports: [WidgetQuickLineChartComponent]\r\n})\r\nexport class WidgetQuickLineChartModule {\r\n}\r\n\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\r\nimport { Icon } from '@visurel/iconify-angular'\r\nimport faCaretUp from '@iconify/icons-fa-solid/caret-up'\r\nimport faCaretDown from '@iconify/icons-fa-solid/caret-down'\r\nimport icHelp from '@iconify/icons-ic/help-outline'\r\nimport icShare from '@iconify/icons-ic/twotone-share'\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet'\r\nimport { ShareBottomSheetComponent } from '../../share-bottom-sheet/share-bottom-sheet.component'\r\nimport { scaleInOutAnimation } from '../../../animations/scale-in-out.animation'\r\n\r\n@Component({\r\n selector: 'leap-widget-quick-value-center',\r\n templateUrl: './widget-quick-value-center.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [scaleInOutAnimation],\r\n})\r\nexport class WidgetQuickValueCenterComponent implements OnInit {\r\n @Input() icon: Icon\r\n @Input() value: string\r\n @Input() label: string\r\n @Input() change: number\r\n @Input() helpText: string\r\n @Input() iconClass: string\r\n\r\n faCaretUp = faCaretUp\r\n faCaretDown = faCaretDown\r\n icHelp = icHelp\r\n icShare = icShare\r\n\r\n showButton: boolean\r\n\r\n constructor(private _bottomSheet: MatBottomSheet) {}\r\n\r\n ngOnInit() {}\r\n\r\n openSheet() {\r\n this._bottomSheet.open(ShareBottomSheetComponent)\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n

{{ value }}

\r\n

{{ label }}

\r\n\r\n

0\"\r\n [class.text-red]=\"change <= 0\"\r\n class=\"subheading-1 font-medium mt-4 mb-0\">\r\n 0\"\r\n [icon]=\"faCaretUp\"\r\n [inline]=\"true\"\r\n height=\"20px\"\r\n width=\"20px\">\r\n \r\n {{ change }}%\r\n

\r\n\r\n \r\n\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WidgetQuickValueCenterComponent } from './widget-quick-value-center.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { ShareBottomSheetModule } from '../../share-bottom-sheet/share-bottom-sheet.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [WidgetQuickValueCenterComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatIconModule,\r\n IconModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n ShareBottomSheetModule\r\n ],\r\n exports: [WidgetQuickValueCenterComponent]\r\n})\r\nexport class WidgetQuickValueCenterModule {\r\n}\r\n\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport { Icon } from '@visurel/iconify-angular'\r\nimport icHelp from '@iconify/icons-ic/help-outline'\r\nimport icShare from '@iconify/icons-ic/twotone-share'\r\nimport icTrendingUp from '@iconify/icons-ic/twotone-trending-up'\r\nimport icTrendingDown from '@iconify/icons-ic/twotone-trending-down'\r\nimport { scaleInOutAnimation } from '../../../animations/scale-in-out.animation'\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet'\r\nimport { ShareBottomSheetComponent } from '../../share-bottom-sheet/share-bottom-sheet.component'\r\n\r\n@Component({\r\n selector: 'leap-widget-quick-value-start',\r\n templateUrl: './widget-quick-value-start.component.html',\r\n animations: [scaleInOutAnimation],\r\n})\r\nexport class WidgetQuickValueStartComponent implements OnInit {\r\n @Input() icon: Icon\r\n @Input() value: string\r\n @Input() label: string\r\n @Input() change: number\r\n @Input() changeSuffix: string\r\n @Input() helpText: string\r\n\r\n icTrendingUp = icTrendingUp\r\n icTrendingDown = icTrendingDown\r\n icHelp = icHelp\r\n icShare = icShare\r\n\r\n showButton: boolean\r\n\r\n constructor(private _bottomSheet: MatBottomSheet) {}\r\n\r\n ngOnInit() {}\r\n\r\n openSheet() {\r\n this._bottomSheet.open(ShareBottomSheetComponent)\r\n }\r\n}\r\n","
\r\n\r\n
\r\n

{{ label }}

\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n

{{ value }}

\r\n\r\n\r\n

0\"\r\n [class.text-red]=\"change <= 0\"\r\n class=\"subheading-1 font-medium mt-4 mb-0\">\r\n 0\"\r\n [icon]=\"icTrendingUp\"\r\n [inline]=\"true\"\r\n height=\"20px\"\r\n width=\"20px\">\r\n \r\n {{ change }}\r\n {{ changeSuffix }}\r\n

\r\n\r\n \r\n\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WidgetQuickValueStartComponent } from './widget-quick-value-start.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { ShareBottomSheetModule } from '../../share-bottom-sheet/share-bottom-sheet.module';\r\n\r\n@NgModule({\r\n declarations: [WidgetQuickValueStartComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatIconModule,\r\n IconModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n ShareBottomSheetModule\r\n ],\r\n exports: [WidgetQuickValueStartComponent]\r\n})\r\nexport class WidgetQuickValueStartModule {\r\n}\r\n\r\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core'\r\nimport { MatTableDataSource } from '@angular/material/table'\r\nimport { MatPaginator } from '@angular/material/paginator'\r\nimport { MatSort } from '@angular/material/sort'\r\nimport icMoreHoriz from '@iconify/icons-ic/twotone-more-horiz'\r\nimport icCloudDownload from '@iconify/icons-ic/twotone-cloud-download'\r\nimport { TableColumn } from '../../../interfaces/table-column.interface'\r\n\r\n@Component({\r\n selector: 'leap-widget-table',\r\n templateUrl: './widget-table.component.html',\r\n})\r\nexport class WidgetTableComponent implements OnInit, OnChanges, AfterViewInit {\r\n @Input() data: T[]\r\n @Input() columns: TableColumn[]\r\n @Input() pageSize = 6\r\n\r\n visibleColumns: Array\r\n dataSource = new MatTableDataSource()\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator\r\n @ViewChild(MatSort, { static: true }) sort: MatSort\r\n\r\n icMoreHoriz = icMoreHoriz\r\n icCloudDownload = icCloudDownload\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.columns) {\r\n this.visibleColumns = this.columns.map((column) => column.property)\r\n }\r\n\r\n if (changes.data) {\r\n this.dataSource.data = this.data\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator\r\n this.dataSource.sort = this.sort\r\n }\r\n}\r\n","
\r\n
\r\n

Recent Sales

\r\n\r\n \r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n
{{ column.label }}{{ row[column.property] }} {{ column.label }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { WidgetTableComponent } from './widget-table.component';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\n\r\n\r\n@NgModule({\r\n declarations: [WidgetTableComponent],\r\n imports: [\r\n CommonModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatSortModule,\r\n FlexLayoutModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n IconModule\r\n ],\r\n exports: [WidgetTableComponent]\r\n})\r\nexport class WidgetTableModule {\r\n}\r\n","import { ChangeDetectorRef, Directive, HostBinding } from '@angular/core'\r\nimport { ConfigService } from '../../services/config.service'\r\nimport { distinctUntilChanged, map } from 'rxjs/operators'\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\r\n\r\n@UntilDestroy()\r\n@Directive({\r\n selector: '[leapContainer]',\r\n})\r\nexport class ContainerDirective {\r\n @HostBinding('class.container') enabled: boolean\r\n\r\n constructor(private configService: ConfigService, private cd: ChangeDetectorRef) {\r\n this.configService.config$\r\n .pipe(\r\n map((config) => config.boxed),\r\n distinctUntilChanged(),\r\n untilDestroyed(this)\r\n )\r\n .subscribe((boxed) => {\r\n this.enabled = boxed\r\n this.cd.markForCheck()\r\n })\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ContainerDirective } from './container.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [ContainerDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [ContainerDirective]\r\n})\r\nexport class ContainerModule {\r\n}\r\n","export enum ConfigName {\r\n apollo = 'leap-layout-apollo',\r\n zeus = 'leap-layout-zeus',\r\n hermes = 'leap-layout-hermes',\r\n poseidon = 'leap-layout-poseidon',\r\n ares = 'leap-layout-ares',\r\n ikaros = 'leap-layout-ikaros',\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core'\r\nimport icShoppingBasket from '@iconify/icons-ic/twotone-shopping-basket'\r\n\r\n@Component({\r\n selector: 'leap-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss'],\r\n})\r\nexport class FooterComponent implements OnInit, OnDestroy {\r\n @Input() customTemplate: TemplateRef\r\n icShoppingBasket = icShoppingBasket\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n ngOnDestroy(): void {}\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FooterComponent } from './footer.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { ContainerModule } from '../../directives/container/container.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n IconModule,\r\n ContainerModule\r\n ],\r\n declarations: [FooterComponent],\r\n exports: [FooterComponent]\r\n})\r\nexport class FooterModule {\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n Inject,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core'\r\nimport { BreakpointObserver } from '@angular/cdk/layout'\r\nimport { LayoutService } from '../services/layout.service'\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\r\nimport { MatSidenav, MatSidenavContainer } from '@angular/material/sidenav'\r\nimport { Event, NavigationEnd, Router, Scroll } from '@angular/router'\r\nimport { filter, map, startWith, withLatestFrom } from 'rxjs/operators'\r\nimport { checkRouterChildsData } from '../utils/check-router-childs-data'\r\nimport { DOCUMENT } from '@angular/common'\r\nimport { ConfigService } from '../services/config.service'\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'leap-layout',\r\n templateUrl: './layout.component.html',\r\n styleUrls: ['./layout.component.scss'],\r\n})\r\nexport class LayoutComponent implements OnInit, AfterViewInit {\r\n @Input() sidenavRef: TemplateRef\r\n @Input() toolbarRef: TemplateRef\r\n @Input() footerRef: TemplateRef\r\n @Input() quickpanelRef: TemplateRef\r\n @Input() sideNavWidth: number = 86\r\n\r\n isLayoutVertical$ = this.configService.config$.pipe(map((config) => config.layout === 'vertical'))\r\n isBoxed$ = this.configService.config$.pipe(map((config) => config.boxed))\r\n isToolbarFixed$ = this.configService.config$.pipe(map((config) => config.toolbar.fixed))\r\n isFooterFixed$ = this.configService.config$.pipe(map((config) => config.footer.fixed))\r\n isFooterVisible$ = this.configService.config$.pipe(map((config) => config.footer.visible))\r\n sidenavCollapsed$ = this.layoutService.sidenavCollapsed$\r\n isDesktop$ = this.layoutService.isDesktop$\r\n\r\n scrollDisabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.scrollDisabled))\r\n )\r\n\r\n containerEnabled$ = this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n startWith(null),\r\n map(() => checkRouterChildsData(this.router.routerState.root.snapshot, (data) => data.containerEnabled))\r\n )\r\n\r\n searchOpen$ = this.layoutService.searchOpen$\r\n\r\n @ViewChild('quickpanel', { static: true }) quickpanel: MatSidenav\r\n @ViewChild('sidenav', { static: true }) sidenav: MatSidenav\r\n @ViewChild(MatSidenavContainer, { static: true }) sidenavContainer: MatSidenavContainer\r\n\r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n private breakpointObserver: BreakpointObserver,\r\n private layoutService: LayoutService,\r\n private configService: ConfigService,\r\n private router: Router,\r\n @Inject(DOCUMENT) private document: Document\r\n ) {}\r\n\r\n ngOnInit() {\r\n /**\r\n * Expand Sidenav when we switch from mobile to desktop view\r\n */\r\n this.isDesktop$\r\n .pipe(\r\n filter((matches) => !matches),\r\n untilDestroyed(this)\r\n )\r\n .subscribe(() => this.layoutService.expandSidenav())\r\n\r\n /**\r\n * Open/Close Quickpanel through LayoutService\r\n */\r\n this.layoutService.quickpanelOpen$\r\n .pipe(untilDestroyed(this))\r\n .subscribe((open) => (open ? this.quickpanel.open() : this.quickpanel.close()))\r\n\r\n /**\r\n * Open/Close Sidenav through LayoutService\r\n */\r\n this.layoutService.sidenavOpen$\r\n .pipe(untilDestroyed(this))\r\n .subscribe((open) => (open ? this.sidenav?.open() : this.sidenav?.close()))\r\n\r\n /**\r\n * Mobile only:\r\n * Close Sidenav after Navigating somewhere (e.g. when a user clicks a link in the Sidenav)\r\n */\r\n this.router.events\r\n .pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n withLatestFrom(this.isDesktop$),\r\n filter(([event, matches]) => !matches),\r\n untilDestroyed(this)\r\n )\r\n .subscribe(() => this.sidenav.close())\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n /**\r\n * Enable Scrolling to specific parts of the page using the Router\r\n */\r\n this.router.events\r\n .pipe(\r\n filter((e: Event): e is Scroll => e instanceof Scroll),\r\n untilDestroyed(this)\r\n )\r\n .subscribe((e) => {\r\n if (e.position) {\r\n // backward navigation\r\n this.sidenavContainer.scrollable.scrollTo({\r\n start: e.position[0],\r\n top: e.position[1],\r\n })\r\n } else if (e.anchor) {\r\n // anchor navigation\r\n\r\n const scroll = (anchor: HTMLElement) =>\r\n this.sidenavContainer.scrollable.scrollTo({\r\n behavior: 'smooth',\r\n top: anchor.offsetTop,\r\n left: anchor.offsetLeft,\r\n })\r\n\r\n let anchorElem = this.document.getElementById(e.anchor)\r\n\r\n if (anchorElem) {\r\n scroll(anchorElem)\r\n } else {\r\n setTimeout(() => {\r\n anchorElem = this.document.getElementById(e.anchor)\r\n scroll(anchorElem)\r\n }, 100)\r\n }\r\n } else {\r\n // forward navigation\r\n this.sidenavContainer.scrollable.scrollTo({\r\n top: 0,\r\n start: 0,\r\n })\r\n }\r\n })\r\n }\r\n clickMenu() {\r\n this.layoutService.toggle()\r\n }\r\n\r\n onPanelClose() {\r\n this.layoutService._quickpanelOpenSubject.next(false)\r\n }\r\n}\r\n","\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { LayoutComponent } from './layout.component'\r\nimport { RouterModule } from '@angular/router'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { ProgressBarModule } from '../components/progress-bar/progress-bar.module'\r\nimport { SearchModule } from '../components/search/search.module'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { NavigationModule } from './navigation/navigation.module'\r\nimport { FooterModule } from './footer/footer.module'\r\nimport { QuickpanelModule } from './quickpanel/quickpanel.module'\r\nimport { SidenavItemModule } from './sidenav/sidenav-item/sidenav-item.module'\r\nimport { SidenavModule } from './sidenav/sidenav.module'\r\nimport { ToolbarModule } from './toolbar/toolbar.module'\r\n\r\n@NgModule({\r\n declarations: [LayoutComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MatSidenavModule,\r\n ProgressBarModule,\r\n SearchModule,\r\n MatIconModule,\r\n MatToolbarModule,\r\n NavigationModule,\r\n FooterModule,\r\n QuickpanelModule,\r\n SidenavItemModule,\r\n SidenavModule,\r\n ToolbarModule,\r\n ],\r\n exports: [\r\n LayoutComponent,\r\n NavigationModule,\r\n FooterModule,\r\n QuickpanelModule,\r\n SidenavItemModule,\r\n SidenavModule,\r\n ToolbarModule,\r\n ],\r\n})\r\nexport class LayoutModule {}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { NavigationService } from '../../services/navigation.service'\r\n\r\n@Component({\r\n selector: 'leap-navigation',\r\n templateUrl: './navigation.component.html',\r\n styleUrls: ['./navigation.component.scss'],\r\n})\r\nexport class NavigationComponent implements OnInit {\r\n items = this.navigationService.items\r\n\r\n constructor(private navigationService: NavigationService) {}\r\n\r\n ngOnInit() {}\r\n}\r\n","
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavigationComponent } from './navigation.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NavigationItemModule } from '../../components/navigation-item/navigation-item.module';\r\nimport { ContainerModule } from '../../directives/container/container.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [NavigationComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatRippleModule,\r\n MatMenuModule,\r\n MatIconModule,\r\n IconModule,\r\n RouterModule,\r\n NavigationItemModule,\r\n ContainerModule\r\n ],\r\n exports: [NavigationComponent]\r\n})\r\nexport class NavigationModule {\r\n}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { DateTime } from 'luxon'\r\nimport { FormControl } from '@angular/forms'\r\nimport { LayoutService } from '../../services/layout.service'\r\nimport icClose from '@iconify/icons-ic/twotone-close'\r\n@Component({\r\n selector: 'leap-quickpanel',\r\n templateUrl: './quickpanel.component.html',\r\n styleUrls: [\r\n './quickpanel.component.scss',\r\n '../../../../../../node_modules/quill/dist/quill.snow.css',\r\n '../../../core/styles/partials/plugins/_quill.scss',\r\n ],\r\n})\r\nexport class QuickpanelComponent implements OnInit {\r\n openQuickpanel() {\r\n this.layoutService.closeQuickpanel()\r\n }\r\n\r\n icClose = icClose\r\n date = DateTime.local().toFormat('DD')\r\n dayName = DateTime.local().toFormat('EEEE')\r\n text = `


leap Rich Text Editor


Get started with an easy to use, completely customizable, yet beautiful and blazing fast WYSIWYG Editor built right into Angular and the easy use of [formControl].





Getting Started is Easy


\r\n\r\n<quill-editor [formControl]="form"></quill-editor>\r\n\r\n
`\r\n form = new FormControl(this.text)\r\n\r\n constructor(private layoutService: LayoutService) {}\r\n\r\n ngOnInit() {}\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Company Name\r\n \r\n \r\n\r\n \r\n Domain Name\r\n \r\n \r\n\r\n \r\n Phone Number\r\n \r\n \r\n \r\n Industry\r\n \r\n Apples\r\n Peaches\r\n Bananas\r\n Mango\r\n Cucumber\r\n \r\n \r\n \r\n SIC Code\r\n \r\n \r\n \r\n SIC Code\r\n \r\n \r\n \r\n SIC Code\r\n \r\n \r\n \r\n SIC Code\r\n \r\n \r\n \r\n SIC Code\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
wqrqw wqr qw
\r\n
\r\n \r\n
qwer wr wqer
\r\n
\r\n \r\n
qwer wqrqr
\r\n
\r\n \r\n
sadad
\r\n
\r\n \r\n
qwer wreqweqr
\r\n
\r\n \r\n
qwer weqrwer
\r\n
\r\n \r\n
wqrqwe rwer wer
\r\n
\r\n \r\n
qrewrqwere
\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QuickpanelComponent } from './quickpanel.component';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [QuickpanelComponent],\r\n imports: [\r\n CommonModule,\r\n MatListModule,\r\n MatProgressBarModule,\r\n RouterModule,\r\n MatRippleModule,\r\n MatTabsModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n IconModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n ReactiveFormsModule,\r\n QuillModule.forRoot({\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n\r\n [{ header: 1 }, { header: 2 }], // custom button values\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\r\n [{ indent: '-1' }, { indent: '+1' }], // outdent/indent\r\n [{ direction: 'rtl' }], // text direction\r\n\r\n [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\r\n [{ align: [] }],\r\n\r\n ['clean'], // remove formatting button\r\n\r\n ['link', 'image', 'video'] // link and image, video\r\n ]\r\n }\r\n }),\r\n ],\r\n exports: [QuickpanelComponent]\r\n})\r\nexport class QuickpanelModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core'\r\nimport { NavigationDropdown, NavigationItem, NavigationLink } from '../../../interfaces/navigation-item.interface'\r\nimport { dropdownAnimation } from '../../../animations/dropdown.animation'\r\nimport { NavigationEnd, Router } from '@angular/router'\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\r\nimport { filter } from 'rxjs/operators'\r\nimport { NavigationService } from '../../../services/navigation.service'\r\nimport icKeyboardArrowRight from '@iconify/icons-ic/twotone-keyboard-arrow-right'\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'leap-sidenav-item',\r\n templateUrl: './sidenav-item.component.html',\r\n styleUrls: ['./sidenav-item.component.scss'],\r\n animations: [dropdownAnimation],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SidenavItemComponent implements OnInit, OnChanges {\r\n @Input() item: NavigationItem\r\n @Input() level: number\r\n isOpen: boolean\r\n isActive: boolean\r\n icKeyboardArrowRight = icKeyboardArrowRight\r\n\r\n isLink = this.navigationService.isLink\r\n isDropdown = this.navigationService.isDropdown\r\n isSubheading = this.navigationService.isSubheading\r\n\r\n constructor(private router: Router, private cd: ChangeDetectorRef, private navigationService: NavigationService) {}\r\n\r\n @HostBinding('class')\r\n get levelClass() {\r\n return `item-level-${this.level}`\r\n }\r\n\r\n ngOnInit() {\r\n this.router.events\r\n .pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n filter(() => this.isDropdown(this.item)),\r\n untilDestroyed(this)\r\n )\r\n .subscribe(() => this.onRouteChange())\r\n\r\n this.navigationService.openChange$\r\n .pipe(\r\n filter(() => this.isDropdown(this.item)),\r\n untilDestroyed(this)\r\n )\r\n .subscribe((item) => this.onOpenChange(item))\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes && changes.hasOwnProperty('item') && this.isDropdown(this.item)) {\r\n this.onRouteChange()\r\n }\r\n }\r\n\r\n toggleOpen() {\r\n this.isOpen = !this.isOpen\r\n this.navigationService.triggerOpenChange(this.item as NavigationDropdown)\r\n this.cd.markForCheck()\r\n }\r\n\r\n onOpenChange(item: NavigationDropdown) {\r\n if (this.isChildrenOf(this.item as NavigationDropdown, item)) {\r\n return\r\n }\r\n\r\n if (this.hasActiveChilds(this.item as NavigationDropdown)) {\r\n return\r\n }\r\n\r\n if (this.item !== item) {\r\n this.isOpen = false\r\n this.cd.markForCheck()\r\n }\r\n }\r\n\r\n onRouteChange() {\r\n if (this.hasActiveChilds(this.item as NavigationDropdown)) {\r\n this.isActive = true\r\n this.isOpen = true\r\n this.navigationService.triggerOpenChange(this.item as NavigationDropdown)\r\n this.cd.markForCheck()\r\n } else {\r\n this.isActive = false\r\n this.isOpen = false\r\n this.navigationService.triggerOpenChange(this.item as NavigationDropdown)\r\n this.cd.markForCheck()\r\n }\r\n }\r\n\r\n isChildrenOf(parent: NavigationDropdown, item: NavigationDropdown) {\r\n if (parent.children.indexOf(item) !== -1) {\r\n return true\r\n }\r\n\r\n return parent.children\r\n .filter((child) => this.isDropdown(child))\r\n .some((child) => this.isChildrenOf(child as NavigationDropdown, item))\r\n }\r\n\r\n hasActiveChilds(parent: NavigationDropdown) {\r\n return parent.children.some((child) => {\r\n if (this.isDropdown(child)) {\r\n return this.hasActiveChilds(child)\r\n }\r\n\r\n if (this.isLink(child) && !this.isFunction(child.route)) {\r\n return this.router.isActive(child.route as string, false)\r\n }\r\n })\r\n }\r\n\r\n isFunction(prop: NavigationLink['route']) {\r\n return prop instanceof Function\r\n }\r\n}\r\n","\r\n \r\n {{ item.label }}\r\n {{\r\n item.badge.value\r\n }}\r\n\r\n\r\n\r\n \r\n {{ item.label }}\r\n {{\r\n item.badge.value\r\n }}\r\n\r\n\r\n\r\n \r\n \r\n {{ item.label }}\r\n {{ item.badge.value }}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
{{ item.label }}
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SidenavItemComponent } from './sidenav-item.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\n@NgModule({\r\n declarations: [SidenavItemComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MatIconModule,\r\n MatRippleModule,\r\n IconModule,\r\n FlexLayoutModule,\r\n ],\r\n exports: [SidenavItemComponent]\r\n})\r\nexport class SidenavItemModule {\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core'\r\nimport { trackByRoute } from '../../utils/track-by'\r\nimport { NavigationService } from '../../services/navigation.service'\r\nimport icRadioButtonChecked from '@iconify/icons-ic/twotone-radio-button-checked'\r\nimport icRadioButtonUnchecked from '@iconify/icons-ic/twotone-radio-button-unchecked'\r\nimport { LayoutService } from '../../services/layout.service'\r\nimport { ConfigService } from '../../services/config.service'\r\nimport { map } from 'rxjs/operators'\r\n\r\n@Component({\r\n selector: 'leap-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n @Input() collapsed: boolean\r\n collapsedOpen$ = this.layoutService.sidenavCollapsedOpen$\r\n title$ = this.configService.config$.pipe(map((config) => config.sidenav.title))\r\n imageUrl$ = this.configService.config$.pipe(map((config) => config.sidenav.imageUrl))\r\n showCollapsePin$ = this.configService.config$.pipe(map((config) => config.sidenav.showCollapsePin))\r\n\r\n items = this.navigationService.items\r\n trackByRoute = trackByRoute\r\n icRadioButtonChecked = icRadioButtonChecked\r\n icRadioButtonUnchecked = icRadioButtonUnchecked\r\n\r\n constructor(\r\n private navigationService: NavigationService,\r\n private layoutService: LayoutService,\r\n private configService: ConfigService\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n onMouseEnter() {\r\n this.layoutService.collapseOpenSidenav()\r\n }\r\n\r\n onMouseLeave() {\r\n this.layoutService.collapseCloseSidenav()\r\n }\r\n\r\n toggleCollapse() {\r\n this.collapsed ? this.layoutService.expandSidenav() : this.layoutService.collapseSidenav()\r\n }\r\n}\r\n","\r\n
\r\n \r\n

{{ title$ | async }}

\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { SidenavComponent } from './sidenav.component'\r\nimport { MatToolbarModule } from '@angular/material/toolbar'\r\nimport { SidenavItemModule } from './sidenav-item/sidenav-item.module'\r\nimport { ScrollbarModule } from '../../components/scrollbar/scrollbar.module'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\n\r\n@NgModule({\r\n declarations: [SidenavComponent],\r\n imports: [\r\n CommonModule,\r\n MatToolbarModule,\r\n SidenavItemModule,\r\n ScrollbarModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n IconModule,\r\n ],\r\n exports: [SidenavComponent, SidenavItemModule],\r\n})\r\nexport class SidenavModule {}\r\n","import { Component, OnInit } from '@angular/core'\r\nimport { Notification } from '../interfaces/notification.interface'\r\nimport { DateTime } from 'luxon'\r\nimport { trackById } from '../../../../utils/track-by'\r\nimport icSettings from '@iconify/icons-ic/twotone-settings'\r\nimport icChevronRight from '@iconify/icons-ic/twotone-chevron-right'\r\nimport icNotificationsOff from '@iconify/icons-ic/twotone-notifications-off'\r\nimport icClearAll from '@iconify/icons-ic/twotone-clear-all'\r\nimport icShoppingBasket from '@iconify/icons-ic/twotone-shopping-basket'\r\nimport icAccountCircle from '@iconify/icons-ic/twotone-account-circle'\r\nimport icInsertChart from '@iconify/icons-ic/twotone-insert-chart'\r\nimport icCheckCircle from '@iconify/icons-ic/twotone-check-circle'\r\nimport icDescription from '@iconify/icons-ic/twotone-description'\r\nimport icFeedback from '@iconify/icons-ic/twotone-feedback'\r\nimport icVerifiedUser from '@iconify/icons-ic/twotone-verified-user'\r\nimport icFileCopy from '@iconify/icons-ic/twotone-file-copy'\r\n\r\n@Component({\r\n selector: 'leap-toolbar-notifications-dropdown',\r\n templateUrl: './toolbar-notifications-dropdown.component.html',\r\n styleUrls: ['./toolbar-notifications-dropdown.component.scss'],\r\n})\r\nexport class ToolbarNotificationsDropdownComponent implements OnInit {\r\n notifications: Notification[] = [\r\n {\r\n id: '1',\r\n label: 'New Order Received',\r\n icon: icShoppingBasket,\r\n colorClass: 'text-primary',\r\n datetime: DateTime.local().minus({ hour: 1 }),\r\n },\r\n {\r\n id: '2',\r\n label: 'New customer has registered',\r\n icon: icAccountCircle,\r\n colorClass: 'text-orange',\r\n datetime: DateTime.local().minus({ hour: 2 }),\r\n },\r\n {\r\n id: '3',\r\n label: 'Campaign statistics are available',\r\n icon: icInsertChart,\r\n colorClass: 'text-purple',\r\n datetime: DateTime.local().minus({ hour: 5 }),\r\n },\r\n {\r\n id: '4',\r\n label: 'Project has been approved',\r\n icon: icCheckCircle,\r\n colorClass: 'text-green',\r\n datetime: DateTime.local().minus({ hour: 9 }),\r\n },\r\n {\r\n id: '5',\r\n label: 'Client reports are available',\r\n icon: icDescription,\r\n colorClass: 'text-primary',\r\n datetime: DateTime.local().minus({ hour: 30 }),\r\n },\r\n {\r\n id: '6',\r\n label: 'New review received',\r\n icon: icFeedback,\r\n colorClass: 'text-orange',\r\n datetime: DateTime.local().minus({ hour: 40 }),\r\n read: true,\r\n },\r\n {\r\n id: '7',\r\n label: '22 verified registrations',\r\n icon: icVerifiedUser,\r\n colorClass: 'text-green',\r\n datetime: DateTime.local().minus({ hour: 60 }),\r\n },\r\n {\r\n id: '8',\r\n label: 'New files available',\r\n icon: icFileCopy,\r\n colorClass: 'text-amber',\r\n datetime: DateTime.local().minus({ hour: 90 }),\r\n },\r\n ]\r\n\r\n icSettings = icSettings\r\n icChevronRight = icChevronRight\r\n icClearAll = icClearAll\r\n icNotificationsOff = icNotificationsOff\r\n trackById = trackById\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","
\r\n
\r\n
\r\n
Notifications
\r\n
You have {{ notifications.length }} new notifications.
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core'\r\nimport { PopoverService } from '../../../components/popover/popover.service'\r\nimport { ToolbarNotificationsDropdownComponent } from './toolbar-notifications-dropdown/toolbar-notifications-dropdown.component'\r\nimport icNotificationsActive from '@iconify/icons-ic/twotone-notifications-active'\r\n\r\n@Component({\r\n selector: 'leap-toolbar-notifications',\r\n templateUrl: './toolbar-notifications.component.html',\r\n styleUrls: ['./toolbar-notifications.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ToolbarNotificationsComponent implements OnInit {\r\n @ViewChild('originRef', { static: true, read: ElementRef }) originRef: ElementRef\r\n\r\n dropdownOpen: boolean\r\n icNotificationsActive = icNotificationsActive\r\n\r\n constructor(private popover: PopoverService, private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {}\r\n\r\n showPopover() {\r\n this.dropdownOpen = true\r\n this.cd.markForCheck()\r\n\r\n const popoverRef = this.popover.open({\r\n content: ToolbarNotificationsDropdownComponent,\r\n origin: this.originRef,\r\n offsetY: 12,\r\n position: [\r\n {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n ],\r\n })\r\n\r\n popoverRef.afterClosed$.subscribe(() => {\r\n this.dropdownOpen = false\r\n this.cd.markForCheck()\r\n })\r\n }\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolbarNotificationsComponent } from './toolbar-notifications.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { PopoverModule } from '../../../components/popover/popover.module';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { RelativeDateTimeModule } from '../../../pipes/relative-date-time/relative-date-time.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { ToolbarNotificationsDropdownComponent } from './toolbar-notifications-dropdown/toolbar-notifications-dropdown.component';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\n\r\n\r\n@NgModule({\r\n declarations: [ToolbarNotificationsComponent, ToolbarNotificationsDropdownComponent],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n PopoverModule,\r\n FlexLayoutModule,\r\n MatTabsModule,\r\n MatMenuModule,\r\n RelativeDateTimeModule,\r\n RouterModule,\r\n MatRippleModule,\r\n IconModule\r\n ],\r\n exports: [ToolbarNotificationsComponent],\r\n entryComponents: [ToolbarNotificationsDropdownComponent]\r\n})\r\nexport class ToolbarNotificationsModule {\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core'\r\nimport icSearch from '@iconify/icons-ic/twotone-search'\r\n\r\n@Component({\r\n selector: 'leap-toolbar-search',\r\n templateUrl: './toolbar-search.component.html',\r\n styleUrls: ['./toolbar-search.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ToolbarSearchComponent implements OnInit {\r\n isOpen: boolean\r\n icSearch = icSearch\r\n\r\n @ViewChild('input', { read: ElementRef, static: true }) input: ElementRef\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {}\r\n\r\n open() {\r\n this.isOpen = true\r\n this.cd.markForCheck()\r\n\r\n setTimeout(() => {\r\n this.input.nativeElement.focus()\r\n }, 100)\r\n }\r\n\r\n close() {\r\n this.isOpen = false\r\n this.cd.markForCheck()\r\n }\r\n}\r\n","
\r\n \r\n \r\n Search…\r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolbarSearchComponent } from './toolbar-search.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\n\r\n\r\n@NgModule({\r\n declarations: [ToolbarSearchComponent],\r\n imports: [\r\n CommonModule,\r\n MatInputModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n IconModule\r\n ],\r\n exports: [ToolbarSearchComponent]\r\n})\r\nexport class ToolbarSearchModule {\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'\r\nimport { MenuItem } from '../interfaces/menu-item.interface'\r\nimport { trackById } from '../../../../utils/track-by'\r\nimport icPerson from '@iconify/icons-ic/twotone-person'\r\nimport icSettings from '@iconify/icons-ic/twotone-settings'\r\nimport icAccountCircle from '@iconify/icons-ic/twotone-account-circle'\r\nimport icMoveToInbox from '@iconify/icons-ic/twotone-move-to-inbox'\r\nimport icListAlt from '@iconify/icons-ic/twotone-list-alt'\r\nimport icTableChart from '@iconify/icons-ic/twotone-table-chart'\r\nimport icCheckCircle from '@iconify/icons-ic/twotone-check-circle'\r\nimport icAccessTime from '@iconify/icons-ic/twotone-access-time'\r\nimport icDoNotDisturb from '@iconify/icons-ic/twotone-do-not-disturb'\r\nimport icOfflineBolt from '@iconify/icons-ic/twotone-offline-bolt'\r\nimport icChevronRight from '@iconify/icons-ic/twotone-chevron-right'\r\nimport icArrowDropDown from '@iconify/icons-ic/twotone-arrow-drop-down'\r\nimport icBusiness from '@iconify/icons-ic/twotone-business'\r\nimport icVerifiedUser from '@iconify/icons-ic/twotone-verified-user'\r\nimport icLock from '@iconify/icons-ic/twotone-lock'\r\nimport icNotificationsOff from '@iconify/icons-ic/twotone-notifications-off'\r\nimport { Icon } from '@visurel/iconify-angular'\r\nimport { PopoverRef } from '../../../../components/popover/popover-ref'\r\nimport { Router } from '@angular/router'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\n\r\nexport interface OnlineStatus {\r\n id: 'online' | 'away' | 'dnd' | 'offline'\r\n label: string\r\n icon: Icon\r\n colorClass: string\r\n}\r\n\r\n@Component({\r\n selector: 'leap-toolbar-user-dropdown',\r\n templateUrl: './toolbar-user-dropdown.component.html',\r\n styleUrls: ['./toolbar-user-dropdown.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ToolbarUserDropdownComponent implements OnInit {\r\n items: MenuItem[] = [\r\n {\r\n id: '1',\r\n icon: icAccountCircle,\r\n label: 'My Profile',\r\n description: 'Personal Information',\r\n colorClass: 'text-teal',\r\n route: '/apps/social',\r\n },\r\n {\r\n id: '2',\r\n icon: icMoveToInbox,\r\n label: 'My Inbox',\r\n description: 'Messages & Latest News',\r\n colorClass: 'text-primary',\r\n route: '/apps/chat',\r\n },\r\n {\r\n id: '3',\r\n icon: icListAlt,\r\n label: 'My Projects',\r\n description: 'Tasks & Active Projects',\r\n colorClass: 'text-amber',\r\n route: '/apps/scrumboard',\r\n },\r\n {\r\n id: '4',\r\n icon: icTableChart,\r\n label: 'Billing Information',\r\n description: 'Pricing & Current Plan',\r\n colorClass: 'text-purple',\r\n route: '/pages/pricing',\r\n },\r\n ]\r\n\r\n statuses: OnlineStatus[] = [\r\n {\r\n id: 'online',\r\n label: 'Online',\r\n icon: icCheckCircle,\r\n colorClass: 'text-green',\r\n },\r\n {\r\n id: 'away',\r\n label: 'Away',\r\n icon: icAccessTime,\r\n colorClass: 'text-orange',\r\n },\r\n {\r\n id: 'dnd',\r\n label: 'Do not disturb',\r\n icon: icDoNotDisturb,\r\n colorClass: 'text-red',\r\n },\r\n {\r\n id: 'offline',\r\n label: 'Offline',\r\n icon: icOfflineBolt,\r\n colorClass: 'text-gray',\r\n },\r\n ]\r\n\r\n activeStatus: OnlineStatus = this.statuses[0]\r\n\r\n trackById = trackById\r\n icPerson = icPerson\r\n icSettings = icSettings\r\n icChevronRight = icChevronRight\r\n icArrowDropDown = icArrowDropDown\r\n icBusiness = icBusiness\r\n icVerifiedUser = icVerifiedUser\r\n icLock = icLock\r\n icNotificationsOff = icNotificationsOff\r\n\r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n private popoverRef: PopoverRef,\r\n private router: Router,\r\n public authService: AuthenticationService\r\n ) {}\r\n\r\n ngOnInit() {\r\n let retrievedObject = localStorage.getItem('userinfo')\r\n this.authService.userInfo = JSON.parse(retrievedObject)\r\n }\r\n\r\n setStatus(status: OnlineStatus) {\r\n this.activeStatus = status\r\n this.cd.markForCheck()\r\n }\r\n\r\n close() {\r\n localStorage.removeItem('access_token')\r\n localStorage.removeItem('userinfo')\r\n localStorage.removeItem('file-upload-progress')\r\n this.authService.userInfo = null\r\n this.popoverRef.close()\r\n this.router.navigate([''])\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{authService.userInfo.firstName}} {{authService.userInfo.lastName}}
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n LOGOUT\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'\r\nimport { PopoverService } from '../../../components/popover/popover.service'\r\nimport { ToolbarUserDropdownComponent } from './toolbar-user-dropdown/toolbar-user-dropdown.component'\r\nimport icPerson from '@iconify/icons-ic/twotone-person'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { MatDialog } from '@angular/material/dialog'\r\nimport { NotesDialogComponent } from 'src/app/shared/notes-dialog/notes-dialog.component'\r\nimport { NotificationService } from 'src/app/services/notification.service'\r\n\r\n@Component({\r\n selector: 'leap-toolbar-user',\r\n templateUrl: './toolbar-user.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ToolbarUserComponent implements OnInit {\r\n dropdownOpen: boolean\r\n icPerson = icPerson\r\n\r\n constructor(\r\n private popover: PopoverService,\r\n private cd: ChangeDetectorRef,\r\n public authService: AuthenticationService,\r\n private dialog: MatDialog,\r\n private notifyService: NotificationService\r\n ) {}\r\n\r\n ngOnInit() {\r\n let retrievedObject = localStorage.getItem('userinfo')\r\n this.authService.userInfo = JSON.parse(retrievedObject)\r\n }\r\n\r\n showPopover(originRef: HTMLElement) {\r\n this.dropdownOpen = true\r\n this.cd.markForCheck()\r\n\r\n const popoverRef = this.popover.open({\r\n content: ToolbarUserDropdownComponent,\r\n origin: originRef,\r\n offsetY: 12,\r\n position: [\r\n {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n ],\r\n })\r\n\r\n popoverRef.afterClosed$.subscribe(() => {\r\n this.dropdownOpen = false\r\n this.cd.markForCheck()\r\n })\r\n }\r\n\r\n addNotes() {\r\n let dialogRef = this.dialog.open(NotesDialogComponent, {\r\n width: '800px',\r\n disableClose: true,\r\n data: { activeContact: null, activeJob: null },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.notifyService.showSuccess('Notes added successfully!', 'Notes')\r\n }\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
{{authService.userInfo.firstName}} {{authService.userInfo.lastName}}
\r\n
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolbarUserComponent } from './toolbar-user.component';\r\nimport { ToolbarUserDropdownComponent } from './toolbar-user-dropdown/toolbar-user-dropdown.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { RelativeDateTimeModule } from '../../../pipes/relative-date-time/relative-date-time.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { IconModule } from '@visurel/iconify-angular';\r\n\r\n\r\n@NgModule({\r\n declarations: [ToolbarUserComponent, ToolbarUserDropdownComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatIconModule,\r\n MatRippleModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n RelativeDateTimeModule,\r\n RouterModule,\r\n MatTooltipModule,\r\n IconModule\r\n ],\r\n exports: [ToolbarUserComponent],\r\n entryComponents: [ToolbarUserDropdownComponent]\r\n})\r\nexport class ToolbarUserModule {\r\n}\r\n\r\n","import { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core'\r\nimport { NavigationEnd, Router } from '@angular/router'\r\nimport { LayoutService } from '../../services/layout.service'\r\nimport { ConfigService } from '../../services/config.service'\r\nimport { map } from 'rxjs/operators'\r\nimport { NavigationService } from '../../services/navigation.service'\r\nimport { PopoverService } from '../../components/popover/popover.service'\r\nimport { MegaMenuComponent } from '../../components/mega-menu/mega-menu.component'\r\nimport { Common } from 'src/app/common/common'\r\nimport { CommonService } from 'src/app/services/common.service'\r\nimport { Observable, Subscription } from 'rxjs'\r\nimport { AuthenticationService } from 'src/app/services/authentication.service'\r\nimport { RoleService } from 'src/app/User/role.service'\r\nimport { ObservableService } from 'src/app/shared/observable-service'\r\nimport { RouteNames } from 'src/app/models/common.model'\r\nimport { CommonMatDialogService } from 'src/app/services/common-mat-dialog.service'\r\nimport { DialogComponent } from 'src/app/shared/dialog/dialog.component'\r\nimport { BooleanSearchService } from 'src/app/boolean-search/boolean-search.service'\r\n@Component({\r\n selector: 'leap-toolbar',\r\n templateUrl: './toolbar.component.html',\r\n styleUrls: ['./toolbar.component.scss'],\r\n})\r\nexport class ToolbarComponent implements OnInit {\r\n @Input() mobileQuery: boolean\r\n @Input()\r\n @HostBinding('class.shadow-b')\r\n hasShadow: boolean\r\n isExpanded: boolean = false\r\n expanded$: Observable = this.commonService.isOpenSide$\r\n expandSubscription$: Subscription\r\n srcs: string = '../../../assets/img/Leap-Tiger_Icons/icon/'\r\n srcs2: string = '../../../assets/img/Leap-Tiger_Icons/active-icon/'\r\n type: string = '.png'\r\n isActive: any\r\n iconLabels: string[] = ['Dashboard', 'Company', 'Jobs', 'Candidates', 'Report', 'Config', 'Help']\r\n items: any[] = []\r\n activeIconSrc: string\r\n inactiveIconSrc: string\r\n navigationItems = this.navigationService.items\r\n childNavigationItems = this.navigationService.items\r\n isSubMenuOpen: boolean = false\r\n childParentMappingObject = {}\r\n iconSourceArray: any = this.iconLabels.map((item) => {\r\n return this.srcs + item + this.type\r\n })\r\n isHorizontalLayout$ = this.configService.config$.pipe(map((config) => config.layout === 'horizontal'))\r\n isVerticalLayout$ = this.configService.config$.pipe(map((config) => config.layout === 'vertical'))\r\n isNavbarInToolbar$ = this.configService.config$.pipe(map((config) => config.navbar.position === 'in-toolbar'))\r\n isNavbarBelowToolbar$ = this.configService.config$.pipe(map((config) => config.navbar.position === 'below-toolbar'))\r\n activeUrl = ''\r\n isActiveColor: boolean = false\r\n activeItemIndex: number\r\n arrayNumber: any[] = []\r\n releaseVersion: string = ''\r\n\r\n constructor(\r\n private commonMatDialog: CommonMatDialogService,\r\n private layoutService: LayoutService,\r\n private configService: ConfigService,\r\n private navigationService: NavigationService,\r\n private popoverService: PopoverService,\r\n private commonService: CommonService,\r\n private authService: AuthenticationService,\r\n private roleService: RoleService,\r\n private router: Router,\r\n private observableService: ObservableService,\r\n private booleanSearchService: BooleanSearchService\r\n ) {}\r\n\r\n public get routeName(): typeof RouteNames {\r\n return RouteNames\r\n }\r\n\r\n ngOnInit() {\r\n const path = this.router.url as String\r\n this.activeUrl = '/' + path.split(/[/?]/)[1]\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.activeUrl = '/' + event.url.split(/[/?]/)[1]\r\n this.navigationItems.forEach((item) => {\r\n if (item.MenuUrl == this.activeUrl) {\r\n this.isClicked(item)\r\n }\r\n })\r\n }\r\n })\r\n\r\n this.getRoleMenu()\r\n this.getMenuItems()\r\n this.getLookupValues()\r\n this.getReleaseVersion()\r\n this.iconSourceArray[0] = this.srcs2 + this.iconLabels[0] + this.type\r\n this.activeItemIndex = 0\r\n this.expanded$.subscribe((next) => {\r\n this.isExpanded = next\r\n const spans = document.getElementsByClassName('mat-list-item-content')\r\n if (!this.isExpanded) {\r\n Object.keys(spans).forEach(function (span) {\r\n spans[span].classList.remove('justify-content-start-class')\r\n })\r\n } else {\r\n Object.keys(spans).forEach(function (span) {\r\n spans[span].classList.add('justify-content-start-class')\r\n })\r\n }\r\n })\r\n }\r\n getRoleMenu() {\r\n this.commonService.getMenuItemByRole(this.authService.userInfo.roles[0].roleID).subscribe(\r\n (data) => {\r\n this.items = data.map((mnu) => ({\r\n type: 'link',\r\n label: mnu.MenuName,\r\n route: mnu.MenuUrl,\r\n icon: mnu.MenuIcon,\r\n ...mnu,\r\n }))\r\n this.navigationItems = this.items\r\n this.childNavigationItems = this.items.filter((item) => this.isChildNavigationItem(item))\r\n this.navigationItems.forEach((parent) => {\r\n if (parent.ParentMenuItemID == null) {\r\n this.childParentMappingObject[parent.MenuName] = []\r\n this.childNavigationItems.forEach((child) => {\r\n if (child.ParentMenuItemID == parent.MenuItemID) {\r\n this.childParentMappingObject[parent.MenuName].push(child)\r\n }\r\n })\r\n }\r\n })\r\n if (this.activeUrl == '/change-password') {\r\n this.isActive = null\r\n } else {\r\n this.navigationItems.forEach((item) => {\r\n if (item.MenuUrl == this.activeUrl) {\r\n // this.isActive = item;\r\n this.isClicked(item)\r\n }\r\n })\r\n }\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n getMenuItems() {\r\n this.roleService.getPermissionByRole(this.authService.userInfo.roles[0].roleID).subscribe(\r\n (data) => {\r\n this.commonService.menuItems = data\r\n this.commonService.setActiveObject(-1, -1, -1, this.authService.userInfo.roles[0].roleID, -1, -1)\r\n },\r\n (err: any) => {}\r\n )\r\n }\r\n getLookupValues() {\r\n this.commonService.getConfig().subscribe(\r\n (config) => {\r\n Common.ConfigValues = config\r\n },\r\n (err: any) => {}\r\n )\r\n\r\n this.commonService.getStatus().subscribe(\r\n (status) => {\r\n Common.wfStatus = status\r\n },\r\n (err: any) => {}\r\n )\r\n\r\n this.commonService.getLookupValue().subscribe(\r\n (lookup) => {\r\n Common.lookUp = lookup\r\n },\r\n (err: any) => {}\r\n )\r\n this.commonService.getStates().subscribe((state) => {\r\n Common.states = state\r\n })\r\n }\r\n\r\n openQuickpanel() {\r\n this.layoutService.openQuickpanel()\r\n }\r\n\r\n openSidenav() {\r\n this.layoutService.openSidenav()\r\n }\r\n\r\n openMegaMenu(origin: ElementRef | HTMLElement) {\r\n this.popoverService.open({\r\n content: MegaMenuComponent,\r\n origin,\r\n position: [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n ],\r\n })\r\n }\r\n\r\n openSearch() {\r\n this.layoutService.openSearch()\r\n }\r\n\r\n isClicked(item: any, isClickedFromUI?) {\r\n this.isActive = item\r\n this.activeItemIndex = this.navigationItems.indexOf(item)\r\n this.iconSourceArray = this.iconSourceArray.map((element, index) => {\r\n if (item.label === this.iconLabels[index]) {\r\n this.iconSourceArray[index] = this.srcs2 + item.label + this.type\r\n return this.iconSourceArray[index]\r\n } else if (item.label !== this.iconLabels[index]) {\r\n this.iconSourceArray[index] = this.srcs + this.iconLabels[index] + this.type\r\n return this.iconSourceArray[index]\r\n }\r\n })\r\n if (isClickedFromUI) {\r\n this.commonService.candidateObservable$.next(false)\r\n this.observableService.resetCandidateFilter()\r\n //this.booleanSearchService.resetBooleanFilters()\r\n }\r\n }\r\n\r\n isOpen(isHomeClick?) {\r\n this.commonService.isOpenSideNavSubject.next(!this.commonService.isOpenSideNavSubject.value)\r\n }\r\n\r\n onRouteChange() {\r\n this.layoutService.closeQuickpanel()\r\n }\r\n\r\n openLogoutDialog() {\r\n const dialogInstance = this.commonMatDialog.open({\r\n component: DialogComponent,\r\n data: {\r\n width: '500px',\r\n Message: 'Are you sure want to Logout?',\r\n Header: 'Logout',\r\n ButtonText: 'Logout',\r\n },\r\n })\r\n dialogInstance.afterClosed().subscribe((data) => {\r\n if (data) {\r\n this.commonService.isOpenSideNavSubject.next(false)\r\n this.layoutService.closeQuickpanel()\r\n localStorage.removeItem('access_token')\r\n localStorage.removeItem('userinfo')\r\n localStorage.removeItem('nevigationMenu')\r\n localStorage.removeItem('file-upload-progress')\r\n this.authService.userInfo = null\r\n this.router.navigate([''])\r\n }\r\n })\r\n }\r\n\r\n getReleaseVersion() {\r\n this.releaseVersion = this.commonService.getReleaseVersion()\r\n //WILL BE NEEDED IN FUTURE\r\n // .subscribe(res =>{\r\n\r\n // })\r\n }\r\n\r\n isChildNavigationItem(navigationItem) {\r\n let isChild = false\r\n if (navigationItem.ParentMenuItemID && navigationItem.ParentMenuItemID > 0) {\r\n isChild = true\r\n }\r\n return isChild\r\n }\r\n\r\n isParentNavigationItem(navigationItem) {\r\n let isParent = false\r\n this.navigationItems.forEach((navItem) => {\r\n if (navigationItem?.MenuItemID == navItem?.ParentMenuItemID) {\r\n isParent = true\r\n }\r\n })\r\n return isParent\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
{{ item.label }}
\r\n expand_more\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Version : \r\n {{ releaseVersion }}\r\n
\r\n \r\n \r\n \r\n \"Logout\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { ToolbarComponent } from './toolbar.component'\r\nimport { FlexLayoutModule } from '@angular/flex-layout'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { MatRippleModule } from '@angular/material/core'\r\nimport { ToolbarNotificationsModule } from './toolbar-notifications/toolbar-notifications.module'\r\nimport { ToolbarUserModule } from './toolbar-user/toolbar-user.module'\r\nimport { ToolbarSearchModule } from './toolbar-search/toolbar-search.module'\r\nimport { IconModule } from '@visurel/iconify-angular'\r\nimport { NavigationModule } from '../navigation/navigation.module'\r\nimport { RouterModule } from '@angular/router'\r\nimport { NavigationItemModule } from '../../components/navigation-item/navigation-item.module'\r\nimport { MegaMenuModule } from '../../components/mega-menu/mega-menu.module'\r\nimport { ContainerModule } from '../../directives/container/container.module'\r\nimport { MatListModule } from '@angular/material/list'\r\nimport { MatSidenavModule } from '@angular/material/sidenav'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { MatDialogModule } from '@angular/material/dialog'\r\n\r\n@NgModule({\r\n declarations: [ToolbarComponent],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatTooltipModule,\r\n MatRippleModule,\r\n ToolbarNotificationsModule,\r\n ToolbarUserModule,\r\n ToolbarSearchModule,\r\n IconModule,\r\n NavigationModule,\r\n RouterModule,\r\n NavigationItemModule,\r\n MegaMenuModule,\r\n ContainerModule,\r\n MatListModule,\r\n MatSidenavModule,\r\n MatDialogModule,\r\n ],\r\n exports: [ToolbarComponent, ToolbarNotificationsModule, ToolbarUserModule, ToolbarSearchModule],\r\n})\r\nexport class ToolbarModule {}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { LayoutModule } from './layout/layout.module'\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material/form-field'\r\nimport { BreadcrumbsModule } from './components/breadcrumbs/breadcrumbs.module'\r\nimport { ChartModule } from './components/chart/chart.module'\r\nimport { ConfigPanelModule } from './components/config-panel/config-panel.module'\r\nimport { HighlightModule } from './components/highlight/highlight.module'\r\nimport { MegaMenuModule } from './components/mega-menu/mega-menu.module'\r\nimport { NavigationItemModule } from './components/navigation-item/navigation-item.module'\r\nimport { PageLayoutModule } from './components/page-layout/page-layout.module'\r\nimport { PopoverModule } from './components/popover/popover.module'\r\nimport { ProgressBarModule } from './components/progress-bar/progress-bar.module'\r\nimport { ScrollbarModule } from './components/scrollbar/scrollbar.module'\r\nimport { SearchModule } from './components/search/search.module'\r\nimport { SecondaryToolbarModule } from './components/secondary-toolbar/secondary-toolbar.module'\r\nimport { ShareBottomSheetModule } from './components/share-bottom-sheet/share-bottom-sheet.module'\r\nimport { SidebarModule } from './components/sidebar/sidebar.module'\r\nimport { WidgetAssistantModule } from './components/widgets/widget-assistant/widget-assistant.module'\r\nimport { WidgetLargeChartModule } from './components/widgets/widget-large-chart/widget-large-chart.module'\r\nimport { WidgetLargeGoalChartModule } from './components/widgets/widget-large-goal-chart/widget-large-goal-chart.module'\r\nimport { WidgetQuickLineChartModule } from './components/widgets/widget-quick-line-chart/widget-quick-line-chart.module'\r\nimport { WidgetQuickValueCenterModule } from './components/widgets/widget-quick-value-center/widget-quick-value-center.module'\r\nimport { WidgetQuickValueStartModule } from './components/widgets/widget-quick-value-start/widget-quick-value-start.module'\r\nimport { WidgetTableModule } from './components/widgets/widget-table/widget-table.module'\r\nimport { ContainerModule } from './directives/container/container.module'\r\nimport { FooterModule } from './layout/footer/footer.module'\r\nimport { DateTokensModule } from './pipes/date-tokens/date-tokens.module'\r\nimport { RelativeDateTimeModule } from './pipes/relative-date-time/relative-date-time.module'\r\nimport { StripHtmlModule } from './pipes/strip-html/strip-html.module'\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n LayoutModule,\r\n BreadcrumbsModule,\r\n ChartModule,\r\n ConfigPanelModule,\r\n HighlightModule,\r\n MegaMenuModule,\r\n NavigationItemModule,\r\n PageLayoutModule,\r\n PopoverModule,\r\n ProgressBarModule,\r\n ScrollbarModule,\r\n SearchModule,\r\n SecondaryToolbarModule,\r\n ShareBottomSheetModule,\r\n SidebarModule,\r\n WidgetAssistantModule,\r\n WidgetLargeChartModule,\r\n WidgetLargeGoalChartModule,\r\n WidgetQuickLineChartModule,\r\n WidgetQuickValueCenterModule,\r\n WidgetQuickValueStartModule,\r\n WidgetTableModule,\r\n ContainerModule,\r\n LayoutModule,\r\n FooterModule,\r\n DateTokensModule,\r\n RelativeDateTimeModule,\r\n StripHtmlModule,\r\n ],\r\n exports: [\r\n LayoutModule,\r\n BreadcrumbsModule,\r\n ChartModule,\r\n ConfigPanelModule,\r\n HighlightModule,\r\n MegaMenuModule,\r\n NavigationItemModule,\r\n PageLayoutModule,\r\n PopoverModule,\r\n ProgressBarModule,\r\n ScrollbarModule,\r\n SearchModule,\r\n SecondaryToolbarModule,\r\n ShareBottomSheetModule,\r\n SidebarModule,\r\n WidgetAssistantModule,\r\n WidgetLargeChartModule,\r\n WidgetLargeGoalChartModule,\r\n WidgetQuickLineChartModule,\r\n WidgetQuickValueCenterModule,\r\n WidgetQuickValueStartModule,\r\n WidgetTableModule,\r\n ContainerModule,\r\n LayoutModule,\r\n FooterModule,\r\n DateTokensModule,\r\n RelativeDateTimeModule,\r\n StripHtmlModule,\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: {\r\n appearance: 'fill',\r\n } as MatFormFieldDefaultOptions,\r\n },\r\n ],\r\n})\r\nexport class LeapModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DateTokensPipe } from './date-tokens.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [DateTokensPipe],\r\n exports: [\r\n DateTokensPipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n})\r\nexport class DateTokensModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\n\r\n@Pipe({\r\n name: 'dateTokens'\r\n})\r\nexport class DateTokensPipe implements PipeTransform {\r\n\r\n transform(value: DateTime | null, ...args: string[]): any {\r\n if (!args[0]) {\r\n throw new Error('[DateTokensPipe]: No args defined, please define your format.');\r\n }\r\n\r\n return value ? value.toFormat(args[0]) : '';\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RelativeDateTimePipe } from './relative-date-time.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [RelativeDateTimePipe],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [RelativeDateTimePipe]\r\n})\r\nexport class RelativeDateTimeModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateTime } from 'luxon';\r\n\r\n@Pipe({\r\n name: 'relativeDateTime'\r\n})\r\nexport class RelativeDateTimePipe implements PipeTransform {\r\n\r\n transform(value: DateTime | null | string, ...args: any[]): any {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n if (!(value instanceof DateTime)) {\r\n value = DateTime.fromISO(value);\r\n }\r\n\r\n return value.toRelative();\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StripHtmlPipe } from './strip-html.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [StripHtmlPipe],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [StripHtmlPipe]\r\n})\r\nexport class StripHtmlModule {\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'stripHtml'\r\n})\r\nexport class StripHtmlPipe implements PipeTransform {\r\n\r\n transform(html: string): string {\r\n return html?.replace(/<[^>]*>?/gm, '');\r\n }\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { DeepPartial } from '../interfaces/deep-partial.type';\r\nimport { mergeDeep } from '../utils/merge-deep';\r\nimport { LayoutService } from './layout.service';\r\nimport { configs } from './configs';\r\nimport { ConfigName } from '../interfaces/config-name.model';\r\nimport { Config } from '../interfaces/config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService {\r\n\r\n defaultConfig = ConfigName.ikaros;\r\n\r\n configs: Config[] = configs;\r\n\r\n private _configSubject = new BehaviorSubject(this.configs.find(c => c.id === this.defaultConfig));\r\n config$ = this._configSubject.asObservable();\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document,\r\n private layoutService: LayoutService) {\r\n this.config$.subscribe(config => this._updateConfig(config));\r\n }\r\n\r\n setConfig(config: ConfigName) {\r\n const settings = this.configs.find(c => c.id === config);\r\n\r\n if (settings) {\r\n this._configSubject.next(settings);\r\n }\r\n }\r\n\r\n updateConfig(config: DeepPartial) {\r\n this._configSubject.next(mergeDeep({ ...this._configSubject.getValue() }, config));\r\n }\r\n\r\n private _updateConfig(config: Config) {\r\n const body = this.document.body;\r\n\r\n this.configs.forEach(c => {\r\n if (body.classList.contains(c.id)) {\r\n body.classList.remove(c.id);\r\n }\r\n });\r\n\r\n body.classList.add(config.id);\r\n\r\n config.sidenav.state === 'expanded' ? this.layoutService.expandSidenav() : this.layoutService.collapseSidenav();\r\n\r\n this.document.body.dir = config.rtl ? 'rtl' : 'ltr';\r\n\r\n // Workaround so charts and other externals know they have to resize on Layout switch\r\n if (window) {\r\n window.dispatchEvent(new Event('resize'));\r\n\r\n setTimeout(() => {\r\n window.dispatchEvent(new Event('resize'));\r\n }, 200);\r\n }\r\n }\r\n}\r\n","import { mergeDeep } from '../utils/merge-deep';\r\nimport { ConfigName } from '../interfaces/config-name.model';\r\nimport { Config } from '../interfaces/config.model';\r\n\r\nconst defaultConfig: Config = {\r\n id: ConfigName.apollo,\r\n name: 'Apollo',\r\n imgSrc: '//vex-landing.visurel.com/assets/img/layouts/apollo.png',\r\n layout: 'vertical',\r\n boxed: false,\r\n sidenav: {\r\n title: 'LEAP TIGER',\r\n imageUrl: 'assets/img/demo/logo.svg',\r\n showCollapsePin: true,\r\n state: 'expanded'\r\n },\r\n toolbar: {\r\n fixed: true\r\n },\r\n navbar: {\r\n position: 'below-toolbar'\r\n },\r\n footer: {\r\n visible: true,\r\n fixed: true\r\n }\r\n};\r\n\r\nexport const configs: Config[] = [\r\n defaultConfig,\r\n mergeDeep({ ...defaultConfig }, {\r\n id: ConfigName.hermes,\r\n name: 'Hermes',\r\n imgSrc: '//vex-landing.visurel.com/assets/img/layouts/hermes.png',\r\n layout: 'vertical',\r\n boxed: true, \r\n toolbar: {\r\n fixed: false\r\n },\r\n footer: {\r\n fixed: false\r\n }\r\n }),\r\n mergeDeep({ ...defaultConfig }, {\r\n id: ConfigName.ares,\r\n name: 'Ares',\r\n imgSrc: '//vex-landing.visurel.com/assets/img/layouts/ares.png',\r\n toolbar: {\r\n fixed: false\r\n },\r\n navbar: {\r\n position: 'in-toolbar'\r\n },\r\n footer: {\r\n fixed: false\r\n }\r\n }),\r\n mergeDeep({ ...defaultConfig }, {\r\n id: ConfigName.zeus,\r\n name: 'Zeus',\r\n imgSrc: '//vex-landing.visurel.com/assets/img/layouts/zeus.png',\r\n sidenav: {\r\n state: 'collapsed'\r\n },\r\n }),\r\n mergeDeep({ ...defaultConfig }, {\r\n id: ConfigName.ikaros,\r\n name: 'Ikaros',\r\n imgSrc: '//vex-landing.visurel.com/assets/img/layouts/ikaros.png',\r\n layout: 'vertical',\r\n boxed: true,\r\n toolbar: {\r\n fixed: false\r\n },\r\n navbar: {\r\n position: 'in-toolbar'\r\n },\r\n footer: {\r\n fixed: false\r\n }\r\n })\r\n];\r\n","import { Injectable } from '@angular/core'\r\nimport { BehaviorSubject } from 'rxjs'\r\nimport { Router } from '@angular/router'\r\nimport { map } from 'rxjs/operators'\r\nimport { BreakpointObserver } from '@angular/cdk/layout'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LayoutService {\r\n public sideNavToggleSubject: BehaviorSubject = new BehaviorSubject(null)\r\n\r\n public _quickpanelOpenSubject = new BehaviorSubject(false)\r\n quickpanelOpen$ = this._quickpanelOpenSubject.asObservable()\r\n\r\n private _sidenavOpenSubject = new BehaviorSubject(false)\r\n sidenavOpen$ = this._sidenavOpenSubject.asObservable()\r\n\r\n private _sidenavCollapsedSubject = new BehaviorSubject(false)\r\n sidenavCollapsed$ = this._sidenavCollapsedSubject.asObservable()\r\n\r\n private _sidenavCollapsedOpenSubject = new BehaviorSubject(false)\r\n sidenavCollapsedOpen$ = this._sidenavCollapsedOpenSubject.asObservable()\r\n\r\n private _configpanelOpenSubject = new BehaviorSubject(false)\r\n configpanelOpen$ = this._configpanelOpenSubject.asObservable()\r\n\r\n private _searchOpen = new BehaviorSubject(false)\r\n searchOpen$ = this._searchOpen.asObservable()\r\n\r\n isDesktop$ = this.breakpointObserver.observe(`(min-width: 1280px)`).pipe(map((state) => state.matches))\r\n ltLg$ = this.breakpointObserver.observe(`(max-width: 1279px)`).pipe(map((state) => state.matches))\r\n gtMd$ = this.breakpointObserver.observe(`(min-width: 960px)`).pipe(map((state) => state.matches))\r\n ltMd$ = this.breakpointObserver.observe(`(max-width: 959px)`).pipe(map((state) => state.matches))\r\n gtSm$ = this.breakpointObserver.observe(`(min-width: 600px)`).pipe(map((state) => state.matches))\r\n isMobile$ = this.breakpointObserver.observe(`(max-width: 599px)`).pipe(map((state) => state.matches))\r\n\r\n isLtLg = () => this.breakpointObserver.isMatched(`(max-width: 1279px)`)\r\n\r\n isMobile = () => this.breakpointObserver.isMatched(`(max-width: 599px)`)\r\n\r\n constructor(private router: Router, private breakpointObserver: BreakpointObserver) { }\r\n\r\n toggle() {\r\n return this.sideNavToggleSubject.next(null)\r\n }\r\n openQuickpanel() {\r\n this._quickpanelOpenSubject.next(true)\r\n }\r\n\r\n closeQuickpanel() {\r\n this._quickpanelOpenSubject.next(false)\r\n }\r\n\r\n openSidenav() {\r\n this._sidenavOpenSubject.next(true)\r\n }\r\n\r\n closeSidenav() {\r\n this._sidenavOpenSubject.next(false)\r\n }\r\n\r\n collapseSidenav() {\r\n this._sidenavCollapsedSubject.next(true)\r\n }\r\n\r\n expandSidenav() {\r\n this._sidenavCollapsedSubject.next(false)\r\n }\r\n\r\n collapseOpenSidenav() {\r\n this._sidenavCollapsedOpenSubject.next(true)\r\n }\r\n\r\n collapseCloseSidenav() {\r\n this._sidenavCollapsedOpenSubject.next(false)\r\n }\r\n\r\n openConfigpanel() {\r\n this._configpanelOpenSubject.next(true)\r\n }\r\n\r\n closeConfigpanel() {\r\n this._configpanelOpenSubject.next(false)\r\n }\r\n\r\n openSearch() {\r\n this._searchOpen.next(true)\r\n }\r\n\r\n closeSearch() {\r\n this._searchOpen.next(false)\r\n }\r\n\r\n enableRTL() {\r\n this.router.navigate([], {\r\n queryParams: {\r\n rtl: 'true',\r\n },\r\n })\r\n }\r\n\r\n disableRTL() {\r\n this.router.navigate([], {\r\n queryParams: {\r\n rtl: 'false',\r\n },\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavigationDropdown, NavigationItem, NavigationLink, NavigationSubheading } from '../interfaces/navigation-item.interface';\r\nimport { Subject } from 'rxjs';\r\nimport { iMenuItem } from 'src/app/models/common.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationService {\r\n\r\n items: iMenuItem[] = [];\r\n\r\n private _openChangeSubject = new Subject();\r\n openChange$ = this._openChangeSubject.asObservable();\r\n\r\n constructor() {}\r\n\r\n triggerOpenChange(item: NavigationDropdown) {\r\n this._openChangeSubject.next(item);\r\n }\r\n\r\n isLink(item: NavigationItem): item is NavigationLink {\r\n return item.type === 'link';\r\n }\r\n\r\n isDropdown(item: NavigationItem): item is NavigationDropdown {\r\n return item.type === 'dropdown';\r\n }\r\n\r\n isSubheading(item: NavigationItem): item is NavigationSubheading {\r\n return item.type === 'subheading';\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchService {\r\n\r\n valueChangesSubject = new BehaviorSubject(undefined);\r\n valueChanges$ = this.valueChangesSubject.asObservable();\r\n\r\n submitSubject = new Subject();\r\n submit$ = this.submitSubject.asObservable();\r\n\r\n isOpenSubject = new BehaviorSubject(false);\r\n isOpen$ = this.isOpenSubject.asObservable();\r\n\r\n constructor() { }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { NavigationEnd, Router } from '@angular/router'\r\nimport { DOCUMENT } from '@angular/common'\r\nimport { filter, take } from 'rxjs/operators'\r\nimport { animate, AnimationBuilder, style } from '@angular/animations'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SplashScreenService {\r\n splashScreenElem: HTMLElement\r\n\r\n constructor(\r\n private router: Router,\r\n @Inject(DOCUMENT) private document: Document,\r\n private animationBuilder: AnimationBuilder\r\n ) {\r\n this.splashScreenElem = this.document.body.querySelector('#leap-splash-screen')\r\n\r\n if (this.splashScreenElem) {\r\n this.router.events\r\n .pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n take(1)\r\n )\r\n .subscribe(() => this.hide())\r\n }\r\n }\r\n\r\n hide() {\r\n const player = this.animationBuilder\r\n .build([\r\n style({\r\n opacity: 1,\r\n }),\r\n animate(\r\n '400ms cubic-bezier(0.25, 0.8, 0.25, 1)',\r\n style({\r\n opacity: 0,\r\n })\r\n ),\r\n ])\r\n .create(this.splashScreenElem)\r\n\r\n player.onDone(() => this.splashScreenElem.remove())\r\n player.play()\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { DOCUMENT } from '@angular/common'\r\nimport { BehaviorSubject } from 'rxjs'\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'\r\n\r\nexport enum Style {\r\n light = 'leap-style-light',\r\n default = 'leap-style-default',\r\n dark = 'leap-style-dark',\r\n}\r\n\r\n@UntilDestroy()\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StyleService {\r\n defaultStyle = Style.default\r\n\r\n private _styleSubject = new BehaviorSubject