{"version":3,"file":"159.0a2d3cee284ec71d.js","mappings":"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","names":["i0","data_r1","customerPortalUrl","JobseekerRecruitmentBoxComponent","constructor","store","this","ngOnInit","customerPortalUrl$","pipe","select","selectCustomerPortalUrl","static","t","i1","core","Xpm","selectors","decls","vars","consts","template","rf","ctx","JobseekerRecruitmentBoxComponent_div_0_Template","_c0","_r4","ngIf","ctx_r3","onLoginClick","returnUrl","JobseekerSigninComponent_div_0_div_35_Template","ctx_r0","isLoading$","submitForm","isSignInError","userDoesNotExist","_c1","JobseekerSigninComponent","onCheckboxChange","dispatch","loginValidation","payload","credentialsInvalid","valid","loginData","userName","get","value","password","staySignedIn","login","renderer2","_document","route","metaService","router","ssr","ngAfterViewInit","clearLoginPageInfo","UntypedFormGroup","emailInput","UntypedFormControl","Validators","required","pattern","Patterns","emailNew","passwordInput","staySignedInCheckbox","selectIsSignInLoading","userDoesNotExist$","selectUserDoesNotExist","isSignInError$","selectIsSignInError","returnUrl$","queryParamMap","map","c","has","metaDataSubscription","selectCurrentWebsiteNameForSeo","subscribe","d","updateMetaData","ngOnDestroy","unsubscribe","DOCUMENT","i2","i3","i4","JobseekerSigninComponent_div_0_Template","_c2","gender_r20","name","day_r21","month_r22","year_r23","drivingLicense_r24","vehicleType_r25","JobseekerPersonalInfoEditComponent_div_2_mat_error_9_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_10_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_17_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_18_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_25_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_26_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_33_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_34_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_37_Template","JobseekerPersonalInfoEditComponent_div_2_option_43_Template","JobseekerPersonalInfoEditComponent_div_2_option_51_Template","_r27","ctx_r26","onSelectMonth","JobseekerPersonalInfoEditComponent_div_2_option_54_Template","ctx_r28","onSelectYear","JobseekerPersonalInfoEditComponent_div_2_option_57_Template","$event","ctx_r29","updateJobseekerAddress","JobseekerPersonalInfoEditComponent_div_2_mat_error_73_Template","ctx_r30","updateSameAsCurrentAddress","checked","ctx_r31","updateJobseekerLegalAddress","JobseekerPersonalInfoEditComponent_div_2_mat_option_92_Template","ctx_r32","onChangeOwnVehicle","JobseekerPersonalInfoEditComponent_div_2_mat_option_110_Template","JobseekerPersonalInfoEditComponent_div_2_mat_error_112_Template","ctx_r33","onSave","sameAsCurrentAddress","legalAddress","moderationLastChangeDate","editForm","personInfo","controls","hasError","touched","_r2","submitted","surname","email","phone","phone2","invalid","genderList$","days$","monthList$","yearListBirth$","locationLevelCount","firstLevelParentLocationId","locationRequiredLevelCount","locationLastHiddenLevelCount","address","drivingLicenseList$","vehicleTypes$","jobseekerVehicles","buttonType","coloured","buttonAttributeType","submit","uncoloured","button","JobseekerPersonalInfoEditComponent","dialogRef","ButtonTypeEnum","ButtonTypeAttributeEnum","jobseekerName","phoneNumber","gender","city","drivingLicenses","ownVehicle","birthMonth","birthYear","birthDay","extendedLocationPath","validators","validateJobseekerVehicles","navigationSubs","events","e","NavigationEnd","close","group","length","fillVehicleType","locations$","selectLocalities","selectGenderList","selectDrivingLicenseList","selectMonthList","selectYearListBirth","selectPersonalInfo$","selectPersonalInfo","isUpdating$","selectIsJobseekerProfileUpdating","selectDaysList","sameAsCurrentAddress$","selectSameAsCurrentAddress","legalAddress$","selectLegalAddress","address$","selectAddress","selectVehicleTypes","moderationLastChangeDate$","selectJobseekerModerationLastChangeDate","locationLevelCount$","selectLocationLevelCount","locationRequiredLevelCount$","selectLocationRequiredLevelCount","locationLastHiddenLevelCount$","selectLocationLastHiddenLevelCount","locationFirstLevelId$","selectLocationFirstLevelId","hasOwnVehicle","selectPersonInfoHasOwnVehicle","take","enable","disable","extendedLocations","locations","filter","locationId","updateData","extendedLocationId","editJobseekerPersonalInfo","jobseekerPersonalInfoModel","setValue","target","month","setSelectedBirthMonth","year","setSelectedBirthYear","JobseekerPersonalInfoEditComponent_div_2_Template","ctx_r12","necessaryFieldMap","lackItem_r13","last_r14","JobseekerProfileComponent_div_2_div_1_div_2_span_7_Template","jobseeker_r3","lackedFieldList","_r19","ctx_r18","editWorkExperience","ctx_r20","deleteExperience","ctx_r22","downloadExperienceAttachment","currentUserType","workExperience_r17","timeZone","currentLanguage","JobseekerProfileComponent_div_2_div_1_div_17_div_1_Template","jobseekerWorkExperiences","ctx_r25","iconButtonType","moderation","JobseekerProfileComponent_div_2_div_1_div_18_app_icon_1_Template","isWorkExperienceFilledInModeration","_r29","ctx_r27","onIsWorkExperienceFilled","_r32","editEducation","deleteEducation","ctx_r35","downloadEducationAttachment","education_r30","_r39","ctx_r38","editLanguage","ctx_r40","deleteLanguage","ctx_r42","downloadLanguageAttachment","language_r37","languagesInMod","jobseekerLanguageId","_r47","ctx_r45","deleteDocument","ctx_r48","downloadDocument","document_r44","documentTypeMap","documentInMod","jobseekerDocumentId","JobseekerProfileComponent_div_2_div_1_div_2_Template","_r51","ctx_r50","onCvExport","JobseekerProfileComponent_div_2_div_1_mat_progress_bar_7_Template","ctx_r52","editPersonalInfo","ctx_r53","editPhoto","photoHref","ctx_r54","deletePhoto","JobseekerProfileComponent_div_2_div_1_div_17_Template","JobseekerProfileComponent_div_2_div_1_div_18_Template","JobseekerProfileComponent_div_2_div_1_button_19_Template","ctx_r55","onWorkExperienceCreate","JobseekerProfileComponent_div_2_div_1_div_24_Template","ctx_r56","onEducationCreate","JobseekerProfileComponent_div_2_div_1_div_29_Template","ctx_r57","onLanguageCreate","JobseekerProfileComponent_div_2_div_1_div_34_Template","ctx_r58","onDocumentCreate","lacksNecessaryInformation","cvExportLoading","ctx_r2","jobseekerPersonalInfo$","photoIsInModeration","isWorkExperienceFilled","add","educationMaxLevel","jobseekerEducations","jobseekerLanguages","documents","JobseekerProfileComponent_div_2_div_1_Template","jobseeker$","JobseekerProfileComponent","jobseekerDialogService","dialogService","dialog","IconButtonTypeEnum","necessaryField","NecessaryField","loadJobseekerProfile","selectJobseeker","selectJobseekerPersonalInfo","jobseekerWorkExperiences$","selectJobseekerWorkExperiences","jobseekerEducations$","selectEducations","jobseekerLanguages$","selectJobseekerLanguages","workExperienceMonth$","selectTotalWorkExperienceMonths","workExperienceYears$","selectTotalWorkExperienceYears","educationMaxLevel$","selectMaxEducationLevel","documents$","selectJobseekerDocuments","languagesInMod$","languageInModeration","documentInMod$","documentsInModeration","selectIsProfileLoading","cvExportLoading$","selectIsCvExportLoading","timeZone$","selectTimeZone","photoIsInModeration$","selectPhotoIsInModeration","documentTypeMap$","selectDocumentTypeListMap","currentUserType$","selectCurrentUserType","currentLanguage$","selectCurrentLanguage","isWorkExperienceFilledInModeration$","selectIsWorkExperienceFilledIsInModeration","Name","Surname","CV","Phone","City","Gender","BirthDate","WorkExperience","Education","Language","editJobseekerEducation","editJobseekerLanguage","uploadDocument","editJobseekerWorkExperience","setIsWorkExperienceFilled","jobseekerCvExport","id","event","openConfirmDialog","afterClosed","res","deleteJobseekerEducation","educationId","objectId","jobseekerEducationObjectId","languageIdInfo","deleteJobseekerLanguage","languageId","jobseekerLanguageObjectId","workExperience","deleteJobseekerWorkExperience","experienceId","downloadWorkExperienceAttachment","workExperienceObjectId","open","maxHeight","panelClass","isPhotoInModeration","editJobseekerPhoto","deleteJobseekerPhoto","deleteJobseekerDocument","documentId","downloadDocumentAttachment","documentObjectId","i5","JobseekerProfileComponent_div_2_Template","HrTabComponent","viewQuery","TemplateRef","HrTabComponent_ng_template_0_Template","tabItem_r2","$implicit","selectTab","label","activeTab","HrTabGroupComponent","ngAfterContentChecked","activeTabIndex","Promise","resolve","then","tabs","toArray","ngAfterContentInit","tabItems$","changes","startWith","delay","tabItem","isActive","contentQueries","dirIndex","HrTabGroupComponent_div_2_Template","HrTabGroupComponent_ng_container_6_Template","tabContent","TestDashboardComponent","categoryPicker","testCategoryPicker","pickCategory","categoryIds","alert","RECAPTCHA_LANGUAGE","InjectionToken","RECAPTCHA_BASE_URL","RECAPTCHA_NONCE","RECAPTCHA_SETTINGS","RECAPTCHA_V3_SITE_KEY","loader","loadScript","renderMode","onLoaded","urlParams","url","nonce","window","ng2recaptchaloaded","grecaptcha","script","document","createElement","innerHTML","src","async","defer","head","appendChild","RecaptchaLoaderService","ready","platformId","language","baseUrl","v3SiteKey","init","isPlatformBrowser","asObservable","of","subject","BehaviorSubject","next","ɵfac","PLATFORM_ID","ɵprov","token","factory","nextId","RecaptchaComponent","elementRef","zone","settings","errorMode","resolved","EventEmitter","error","errored","siteKey","theme","type","size","badge","subscription","render","Function","renderRecaptcha","grecaptchaReset","execute","widget","executeRequested","reset","getResponse","emit","__unsafe_widgetValue","expired","onError","args","captchaResponseCallback","response","runOutsideAngular","renderOptions","callback","run","expired-callback","sitekey","tabindex","tabIndex","nativeElement","ɵcmp","hostVars","hostBindings","inputs","outputs","exportAs","encapsulation","RecaptchaCommonModule","ɵmod","ɵinj","RecaptchaModule","providers","imports","RecaptchaValueAccessorDirective","host","requiresControllerReset","writeValue","registerOnChange","fn","onChange","registerOnTouched","onTouched","onResolve","ɵdir","features","multi","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","RecaptchaFormsModule","FormsModule","ctx_r5","getValidationMessage","registrationForm","errors","server","_r18","ctx_r17","onRegister","JobseekerRegistrationComponent_div_0_mat_error_19_Template","JobseekerRegistrationComponent_div_0_mat_error_20_Template","JobseekerRegistrationComponent_div_0_mat_error_21_Template","JobseekerRegistrationComponent_div_0_mat_error_28_Template","JobseekerRegistrationComponent_div_0_mat_error_29_Template","JobseekerRegistrationComponent_div_0_mat_error_36_Template","JobseekerRegistrationComponent_div_0_mat_error_37_Template","JobseekerRegistrationComponent_div_0_mat_error_44_Template","JobseekerRegistrationComponent_div_0_mat_error_45_Template","JobseekerRegistrationComponent_div_0_mat_error_52_Template","JobseekerRegistrationComponent_div_0_mat_error_53_Template","JobseekerRegistrationComponent_div_0_mat_error_58_Template","ctx_r19","onInfoPopup","termsAndConditionsContentJobseeker","termsAndConditionsContentTitle","privacyPolicyContentJobseeker","privacyPolicyTitle","JobseekerRegistrationComponent_div_0_mat_error_80_Template","JobseekerRegistrationComponent_div_0_div_85_Template","minlength","recaptchaSiteKey$","recaptcha","termsAndConditions","registrationFailed$","JobseekerRegistrationComponent","jobseekerService","validateEmail","bind","minLength","personName","phoneNumberNew","requiredTrue","messagetTypeErrorTextMap","JobseekerRegistrationValidationMessage","EmailRegisteredButBelongsToCustomer","EmailRegisteredButJobseekerPending","EmailRegisteredToAccessYourAccountPleaseLogin","setTimeout","showCustomerChatDialog","registerJobseeker","Email","Password","IsAgreementChecked","PhoneNumber","ReCaptchaToken","debounceTime","data","isSuccess","items","message","catchError","messageType","getCvRegistrationPageSeoData","selectRegistrationFailed","website$","selectCurrentWebsite","selectIsRegistrationLoadign","selectRecaptchaSiteKey","selectCvRegistrationPageMetaData","website","metaData","hideCustomerChat","text","title","infoPopup","JobseekerRegistrationComponent_div_0_Template","tmp_0_0","displayName","_r6","ctx_r4","onResend","emailResendToken","JobseekerRegistrationCompleteComponent_div_0_div_4_Template","JobseekerRegistrationCompleteComponent_div_0_div_5_Template","systemConfigs","jobseeker","contactEmail","maxResendAttemptsReached","JobseekerRegistrationCompleteComponent","emailResednToken","resendActivationEmail","emailVerificationResendToken","maxResendAttemptsReached$","selectResendMaxAttemptsReached","emailResendToken$","selectEmailVerificationResendToken","systemConfigs$","selectSystemConfigs","JobseekerRegistrationCompleteComponent_div_0_Template","privacy_r3","selectedPrivacy","privacyEnum","Hidden","privacyMap","onChangeJobseekerPrivacy","JobseekerSettingsPrivacyComponent_div_0_div_2_Template","ctx_r7","ctx_r8","onCancel","privacyList","JobseekerSettingsPrivacyComponent","JobseekerPrivacyEnum","loadJobseekerPrivacy","privacyList$","selectJobseekerPrivacyList","selectedPrivacy$","selectSelectedJobseekerPrivacy","AvailableToAllCustomers","Public","changeJobseekerPrivacy","privacyId","cancelChanges","updateJobseekerPrivacy","JobseekerSettingsPrivacyComponent_div_0_Template","JobseekerSettingsChangePasswordComponent","fb","currentPass","newPass","repeatPass","validator","customValidator","PasswordMismatch","isCurrentPasswordIncorrect$","selectJobseekerCurrentPasswordIsIncorrect","jobseekerPasswordMismatch$","selectJobseekerPasswordMismatch","cancelJobseekerPasswordChanges","changeJobseekerPassword","currentPassword","newPassword","repeatNewPassword","JobseekerSettingsChangePasswordComponent_mat_error_7_Template","JobseekerSettingsChangePasswordComponent_mat_error_8_Template","JobseekerSettingsChangePasswordComponent_mat_error_15_Template","JobseekerSettingsChangePasswordComponent_mat_error_16_Template","JobseekerSettingsChangePasswordComponent_mat_error_22_Template","JobseekerSettingsChangePasswordComponent_mat_error_23_Template","_r0","customer_r7","_r9","onSelectCustomer","customer_r11","_r13","JobseekerSettingsBlacklistComponent_div_0_div_10_div_2_Template","customerListHeight","customerList","customer_r15","_r17","ctx_r16","removeSelectedCustomer","onCustomerSearchChange","JobseekerSettingsBlacklistComponent_div_0_div_9_Template","JobseekerSettingsBlacklistComponent_div_0_div_10_Template","JobseekerSettingsBlacklistComponent_div_0_div_14_Template","currentBlacklist","ctx_r21","_c3","customerListMinSize","jobseekerIgnoredCustomerList","JobseekerSettingsBlacklistComponent","customerListMaxSize","updateCustomerHeight","loadJobseekerBlacklist","customerList$","selectCustomerList","jobseekerIgnoredCustomerList$","selectJobseekerIgnoredCustomerList","currentBlacklist$","selectCurrentBlacklist","searchValue","trim","customer","selectBlackListItem","removeSelectedBlacklistItem","updateJobseekerBlacklist","cancelBlacklistChanges","selectedCustomersElement","offsetHeight","textElement","textHeight","JobseekerSettingsBlacklistComponent_div_0_Template","_c4","JobseekerSettingsComponent","selectIsJobseekerSettingsLoading","selectIsJobseekerSettingUpdating","isJobseekerPasswordChangeRequired$","selectIsPasswordChangeRequired","JobseekerShellComponent","loadJobseekerLookups","selectJobseekerSubscriptionStoreState","createSelector","selectJobseekerStoreState","s","selectSubscriberSelectedCategories","selectCategoriesMap","Object","keys","selectedCategories","cc","selectSubscriberSelectedCategoryIds","selectSubscriberSelectedCategoriesMap","selectHeadCategories","result","reduce","categoryId","forEach","selectAtLeastOneCategorySelected","selectCategoriesTouched","categoriesTouched","selectSubscriptionCategories","subscibedCategoryIds","selectSubscriptionLocalities","selectLocalitiesMap","l","selectedLocalityIds","selectIsEditModeOn","isEditMode","selectSubscriptionFormInitialValue","sub","localities","category_r4","last_r5","locality_r6","last_r7","ViewJobseekerSubscriptionComponent_ng_container_0_span_11_Template","ViewJobseekerSubscriptionComponent_ng_container_0_span_17_Template","onEdit","subscriptionCategories","subscriptionLocalities","ViewJobseekerSubscriptionComponent","activateEditMode","navigate","subscriptionCategories$","subscriptionLocalities$","loadSubscription","ViewJobseekerSubscriptionComponent_ng_container_0_Template","category_r6","_r8","onToggleCategory","selectedCategoriesMap","locality_r10","localityId","_r12","ctx_r11","onSubscribe","code","EditJobseekerSubscriptionComponent_ng_container_0_div_12_Template","EditJobseekerSubscriptionComponent_ng_container_0_mat_error_13_Template","EditJobseekerSubscriptionComponent_ng_container_0_mat_option_24_Template","ctx_r13","onCancelSubscribe","subscriptionForm","formInitialValue","headCategories","atLeastOneCategorySelected","EditJobseekerSubscriptionComponent","headCategories$","atLeastOneCategorySelected$","selectedCategoriesMap$","selectedCategories$","categoriesTouched$","localities$","isEditMode$","formInitialValue$","updateSubscription","OccupationCategoryIds","LocalityIds","DailyDigestOn","category","updateSelectedCategories","EditJobseekerSubscriptionComponent_ng_container_0_Template","submitResetPasswordForm","JobseekerPasswordResetComponent_div_0_mat_error_13_Template","JobseekerPasswordResetComponent_div_0_mat_error_17_Template","ctx_r9","resetPassword","JobseekerPasswordResetComponent_div_0_div_23_Template","JobseekerPasswordResetComponent_div_0_div_25_Template","resetPasswordModel","recaptchaSiteKey","userRegistrationNotFound","isResetSuccessed","JobseekerPasswordResetComponent","clearResetPasswordPageInfo","userRegistrationNotFound$","selectUserRegistrationNotFound","isResetSuccessed$","selectIsResetSuccessed","resetPasswordModel$","selectPasswordResetViewModel","request","reCaptchaToken","formDirective","resetForm","JobseekerPasswordResetComponent_div_0_Template","CustomerStatusEnum","Active","Suspended","Deleted","Archived","ApplicationStatusEnum","Pending","Approved","Rejected","application_r2","announcementId","customerId","customerName","JobseekerAppliesVacancyComponent_div_16_a_2_Template","JobseekerAppliesVacancyComponent_div_16_div_3_Template","JobseekerAppliesVacancyComponent_div_16_a_4_Template","JobseekerAppliesVacancyComponent_div_16_div_5_Template","announcementStatus","isCustomerAnonymous","customerStatusId","customerStatus","announcementPublishDate","announcementDeadlineDate","applicationDate","applicationStatus","applicationStatusNameMap","_r14","onPagignNavigation","data_r12","currentPage","pageCount","navItems","JobseekerAppliesVacancyComponent_div_18_ng_container_1_Template","ctx_r1","pageCount$","navItems$","currentPage$","JobseekerAppliesVacancyComponent","AnnouncementStatusEnum","loadApplications","page","vacancyApplications$","selectJobseekerVacancyApplications","selectVacancyApplicationsPageCount","selectVacancyApplicationsDisplayPages","selectAnnouncementAppliesCurrentPage","JobseekerAppliesVacancyComponent_div_16_Template","JobseekerAppliesVacancyComponent_div_18_Template","tmp_5_0","CvBoxItemStatusEnum","JobseekerAppliesCvBoxComponent_div_13_a_1_Template","JobseekerAppliesCvBoxComponent_div_13_div_2_Template","date","statusId","cvBoxApplicationStatus","_r10","data_r8","JobseekerAppliesCvBoxComponent_div_15_ng_container_1_Template","JobseekerAppliesCvBoxComponent","loadCvBoxApplications","cvBoxApplications$","selectJobseekerCvBoxApplications","selectCvBoxApplicationsPageCount","selectCvBoxApplicationsDisplayPages","selectCvBoxAppliesCurrentPage","JobseekerAppliesCvBoxComponent_div_13_Template","JobseekerAppliesCvBoxComponent_div_15_Template","tmp_4_0","jobseekerRoutes","path","component","children","pathMatch","canActivate","AuthGuard","JobseekerAppliesComponent","cvBoxApplicationIsLoading$","selectCvBoxApplicationIsLoading","vacancyApplicationIsLoading$","selectVacancyApplicationIsLoading","JobseekerRoutingModule","oAB","cJS","CommonModule","RouterModule","forChild","JobseekerModule","MatCheckboxModule","MatRadioModule","MatFormFieldModule","MatInputModule","SharedModule","ReactiveFormsModule","AngularSvgIconModule","HrUiModule","UiModule","MatDialogModule","MatSelectModule","MatAutocompleteModule","HttpClientModule","MatProgressBarModule","ImageCropperModule","CommonComponentsModule"],"sourceRoot":"webpack:///","sources":["./apps/public-web-app/src/app/jobseeker/jobseeker-recruitment-box/seraphinite/jobseeker-recruitment-box.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-recruitment-box/jobseeker-recruitment-box.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-signin/seraphinite/jobseeker-signin.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-signin/jobseeker-signin.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-personal-info-edit/jobseeker-personal-info-edit.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-personal-info-edit/jobseeker-personal-info-edit.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-profile/seraphinite/jobseeker-profile.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-profile/jobseeker-profile.component.ts","./libs/ui/src/lib/hr-tab/hr-tab.component.html","./libs/ui/src/lib/hr-tab/hr-tab.component.ts","./libs/ui/src/lib/hr-tab-group/hr-tab-group.component.html","./libs/ui/src/lib/hr-tab-group/hr-tab-group.component.ts","./apps/public-web-app/src/app/hr-ui/test-dashboard/test-dashboard.component.ts","./apps/public-web-app/src/app/hr-ui/test-dashboard/test-dashboard.component.html","./node_modules/ng-recaptcha/fesm2022/ng-recaptcha.mjs","./apps/public-web-app/src/app/jobseeker/jobseeker-registration/jobseeker-registration.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-registration/jobseeker-registration.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-registration-complete/jobseeker-registration-complete.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-registration-complete/jobseeker-registration-complete.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-settings-privacy/jobseeker-settings-privacy.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-settings-privacy/jobseeker-settings-privacy.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-settings-change-password/jobseeker-settings-change-password.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-settings-change-password/jobseeker-settings-change-password.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-settings-blacklist/jobseeker-settings-blacklist.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-settings-blacklist/jobseeker-settings-blacklist.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-settings/jobseeker-settings.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-settings/jobseeker-settings.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-shell/jobseeker-shell.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-shell/jobseeker-shell.component.html","./apps/public-web-app/src/app/root-store/jobseeker-store/jobseeker-subscription/selectors.ts","./apps/public-web-app/src/app/jobseeker/view-jobseeker-subscription/view-jobseeker-subscription.component.html","./apps/public-web-app/src/app/jobseeker/view-jobseeker-subscription/view-jobseeker-subscription.component.ts","./apps/public-web-app/src/app/jobseeker/edit-jobseeker-subscription/edit-jobseeker-subscription.component.html","./apps/public-web-app/src/app/jobseeker/edit-jobseeker-subscription/edit-jobseeker-subscription.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-password-reset/jobseeker-password-reset.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-password-reset/jobseeker-password-reset.component.ts","./apps/public-web-app/src/app/customer/shared/models/enums/customer-status-enum.ts","./apps/public-web-app/src/app/shared/models/enums/application-statu-enum.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-applies-vacancy/jobseeker-applies-vacancy.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-applies-vacancy/jobseeker-applies-vacancy.component.ts","./apps/public-web-app/src/app/shared/models/enums/cv-box-item-status-enum.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-applies-cv-box/jobseeker-applies-cv-box.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker-applies-cv-box/jobseeker-applies-cv-box.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-routing.module.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-applies/jobseeker-applies.component.ts","./apps/public-web-app/src/app/jobseeker/jobseeker-applies/jobseeker-applies.component.html","./apps/public-web-app/src/app/jobseeker/jobseeker.module.ts"],"sourcesContent":["<div *ngIf=\"{customerPortalUrl: customerPortalUrl$ | async} as data\" class=\"recruitment-box\">\n <div class=\"heading\">{{ \"label.Recruiting\" | translate }}</div>\n <div class=\"paragraph\">\n <p class=\"paragraph-p1\">\n <svg-icon src=\"/assets/icons/greater-sign.svg\" class=\"paragraph-p1__icon\"></svg-icon>\n {{ 'label.RecruitingP1' | translate }}\n </p>\n <p class=\"paragraph-p2\">\n <svg-icon src=\"/assets/icons/greater-sign.svg\" class=\"paragraph-p2__icon\"></svg-icon>\n {{ 'label.RecruitingP2' | translate }}\n </p>\n </div>\n <div class=\"company-registration\">\n <a href=\"{{data.customerPortalUrl}}/customer/register\" target=\"_blank\" class=\"company-registration__text\">{{'label.CompanyRegistration' | translate}}</a>\n </div>\n <div class=\"login\">\n <a href=\"{{data.customerPortalUrl}}/sign-in\" target=\"_blank\" class=\"login__link\">{{ 'label.CompanyLogin' | translate }}</a>\n </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { selectCustomerPortalUrl } from 'src/app/root-store/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { theme } from 'src/environments/theme';\n\n@Component({\n selector: 'app-jobseeker-recruitment-box',\n templateUrl: `./${theme.name}/jobseeker-recruitment-box.component.html`,\n styleUrls: [`./${theme.name}/jobseeker-recruitment-box.component.scss`],\n})\nexport class JobseekerRecruitmentBoxComponent implements OnInit {\n \n customerPortalUrl$: Observable<string>;\n\n constructor(private store: Store<AppState>) {}\n\n ngOnInit() {\n this.customerPortalUrl$ = this.store.pipe(select(selectCustomerPortalUrl));\n }\n}\n"," \n <div class=\"signin-container\" *ngIf=\"{ returnUrl: returnUrl$ | async, \n userDoesNotExist: userDoesNotExist$ | async,\n isSignInError: isSignInError$ | async} as data\">\n <div class=\"signin\">\n <app-spinner [isLoading]=\"isLoading$ | async\" [isFixedPosition]=\"false\">\n <div class=\"signin-form\">\n <div class=\"signin-form-heading\">\n <p class=\"signin-form-heading__main\">\n {{ 'label.SignIn' | translate }}\n </p>\n <p class=\"signin-form-heading__comment\">\n {{ 'label.ForJobseeker' | translate }}\n </p>\n </div>\n \n <form [formGroup]=\"submitForm\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ 'label.Email' | translate }}</mat-label>\n <input matInput type=\"email\" formControlName=\"emailInput\" />\n </mat-form-field>\n \n <mat-form-field appearance=\"outline\">\n <mat-label>{{ 'label.Password' | translate }}</mat-label>\n <input matInput type=\"password\" formControlName=\"passwordInput\" />\n </mat-form-field>\n \n <div class=\"signin-checkbox\">\n <mat-checkbox formControlName=\"staySignedInCheckbox\">\n {{ 'label.KeepMeSignedIn' | translate }}\n </mat-checkbox>\n </div>\n \n <div class=\"signin-button\">\n <button class=\"signin-button__btn\" (click)=\"onLoginClick(data.returnUrl)\" type=\"submit\">\n {{ 'label.SignIn' | translate }}\n </button>\n </div>\n \n <div class=\"signin-pwd-recovery\">\n <a [routerLink]=\"['/jobseeker/reset-password']\" class=\"signin-pwd-recovery__link\">{{\n 'label.ForgotThePassword' | translate\n }}</a>\n </div>\n </form>\n <div *ngIf=\"data.isSignInError || data.userDoesNotExist\" class=\"error\">\n <app-jobseeker-error-message [messageHeading]=\"'label.LoginFailed' | translate\"\n [message]=\"'label.LoginFailedMessage' | translate\"></app-jobseeker-error-message>\n </div>\n </div>\n </app-spinner>\n\n <div class=\"registration\">\n <div class=\"registration-container\">\n <div class=\"registration-container__text\">{{'label.DontHaveAnaccount' | translate}}</div>\n <a [routerLink]=\"['/jobseeker/register']\" >\n <button class=\"registration-container__btn\">{{'label.CvRegistration' | translate}}</button>\n </a>\n </div>\n </div>\n </div>\n \n \n <div class=\"recruitment\">\n <app-jobseeker-recruitment-box></app-jobseeker-recruitment-box>\n </div>\n </div>\n","import { AfterViewInit, Component, Inject, OnInit, Renderer2 } from '@angular/core';\nimport { theme } from 'src/environments/theme';\nimport { LoginRequest } from 'src/app/core/auth-result';\nimport { Store, select } from '@ngrx/store';\nimport { AppState, CurrentInfoState } from 'src/app/root-store/state';\nimport { clearLoginPageInfo, hideCustomerChat, login, loginValidation, showCustomerChatDialog } from 'src/app/root-store/actions';\nimport { Observable, Subscription } from 'rxjs';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { selectCurrentWebsiteNameForSeo, selectGoogleTagManagerCode, selectIsSignInError, selectIsSignInLoading, selectUserDoesNotExist } from 'src/app/root-store/selectors';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, map, withLatestFrom } from 'rxjs/operators';\nimport { MetaService } from 'src/app/shared/services/meta.service';\nimport { DOCUMENT } from '@angular/common';\nimport { SsrService } from 'src/app/core/ssr.service';\nimport { FacebookService } from '@hrra/integrations';\nimport { Patterns } from '@hrra/core';\n\n\n//declare var FB: any;\n\n@Component({\n selector: 'app-jobseeker-signin',\n templateUrl: `./${theme.name}/jobseeker-signin.component.html`,\n styleUrls: [`./${theme.name}/jobseeker-signin.component.scss`],\n})\nexport class JobseekerSigninComponent implements OnInit, AfterViewInit {\n \n metaDataSubscription: Subscription;\n\n submitForm: UntypedFormGroup;\n isSignInError$: Observable<boolean>;\n currentInfoState$: Observable<CurrentInfoState>;\n isLoading$: Observable<boolean>;\n returnUrl$: Observable<string>;\n userDoesNotExist$: Observable<boolean>;\n\n onCheckboxChange() { }\n\n onLoginClick(returnUrl: string) {\n this.store.dispatch(loginValidation({\n payload: { credentialsInvalid: !this.submitForm.valid }\n }));\n\n if (this.submitForm.valid) {\n let loginData = <LoginRequest>{\n userName: this.submitForm.get('emailInput').value,\n password: this.submitForm.get('passwordInput').value,\n staySignedIn: this.submitForm.get('staySignedInCheckbox').value,\n returnUrl: returnUrl || 'jobseeker/profile'\n };\n\n this.store.dispatch(login({ payload: loginData }));\n }\n }\n\n constructor(\n private renderer2: Renderer2, \n @Inject(DOCUMENT) private _document,\n private store: Store<AppState>,\n private route: ActivatedRoute,\n private metaService: MetaService,\n private router: Router, private ssr: SsrService,\n ) {\n }\n\n ngAfterViewInit(): void {\n //setTimeout(() => this.store.dispatch(showCustomerChatDialog()), 1000);\n }\n\n ngOnInit() {\n\n this.store.dispatch(clearLoginPageInfo());\n\n this.submitForm = new UntypedFormGroup({\n 'emailInput': new UntypedFormControl(\"\", [Validators.required, Validators.pattern(Patterns.emailNew)]),\n 'passwordInput': new UntypedFormControl(\"\", [Validators.required]),\n 'staySignedInCheckbox': new UntypedFormControl(false)\n });\n\n this.isLoading$ = this.store.pipe(select(selectIsSignInLoading));\n this.userDoesNotExist$ = this.store.pipe(select(selectUserDoesNotExist));\n this.isSignInError$ = this.store.pipe(select(selectIsSignInError));\n\n this.returnUrl$ = this.route.queryParamMap.pipe(map(c=> c.has('returnUrl') ? c.get('returnUrl') : null));\n\n this.metaDataSubscription = this.store.pipe(select(selectCurrentWebsiteNameForSeo)).subscribe(d => {\n this.metaService.updateMetaData(d);\n }); \n }\n\n ngOnDestroy() {\n if(this.metaDataSubscription != null){\n this.metaDataSubscription.unsubscribe();\n }\n\n //this.store.dispatch(hideCustomerChat());\n }\n}\n","<app-spinner [isLoading]=\"isUpdating$ | async\" [isFixedPosition]=\"false\">\n <div *ngIf=\"{ \n personInfo: selectPersonalInfo$ | async,\n sameAsCurrentAddress: sameAsCurrentAddress$ | async,\n legalAddress: legalAddress$ | async,\n address: address$ | async,\n locationLevelCount: locationLevelCount$ | async,\n locationRequiredLevelCount: locationRequiredLevelCount$ | async,\n locationLastHiddenLevelCount: locationLastHiddenLevelCount$ | async,\n firstLevelParentLocationId: locationFirstLevelId$ | async,\n moderationLastChangeDate: moderationLastChangeDate$ | async\n } as data\">\n <form [formGroup]=\"editForm\" #ngForm=\"ngForm\" [appConnectForm]=\"data.personInfo\" class=\"form\">\n <div class=\"form-item name\">\n <label class=\"form-item__label name__label\">{{'label.Name' | translate}}</label>\n <div class=\"validation-group validation-group--phone\">\n <input class=\"form-item__value name__value\" type=\"text\" formControlName=\"name\" name=\"name\">\n <mat-error *ngIf=\"editForm.controls['name'].hasError('required') && (editForm.controls['name'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n <mat-error *ngIf=\"editForm.controls['name'].hasError('pattern') && (editForm.controls['name'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.IncorrectFormat' | translate}}</mat-error>\n </div>\n </div>\n \n <div class=\"form-item surname\">\n <label class=\"form-item__label surname__label\">{{'label.Surname' | translate}}</label>\n <div class=\"validation-group validation-group--phone\">\n <input class=\"form-item__value surname__value\" type=\"text\" formControlName=\"surname\" name=\"surname\">\n <mat-error *ngIf=\"editForm.controls['surname'].hasError('required') && (editForm.controls['surname'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n <mat-error *ngIf=\"editForm.controls['surname'].hasError('pattern') && (editForm.controls['surname'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.IncorrectFormat' | translate}}</mat-error>\n </div>\n </div>\n \n <div class=\"form-item email\">\n <label class=\"form-item__label email__label\">{{'label.Email' | translate}}</label>\n <div class=\"validation-group\">\n <input class=\"form-item__value email__value\" type=\"email\" formControlName=\"email\" name=\"email\">\n <mat-error *ngIf=\"editForm.controls['email'].hasError('required') && (editForm.controls['email'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n <mat-error *ngIf=\"editForm.controls['email'].hasError('pattern') && (editForm.controls['email'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.IncorrectFormat' | translate}}</mat-error>\n </div>\n </div>\n \n <div class=\"form-item phone\">\n <label class=\"form-item__label phone__label\">{{'label.Phone' | translate}}</label>\n <div class=\"validation-group validation-group--phone\">\n <input class=\"form-item__value phone__value1\" maxlength=\"30\" type=\"text\" formControlName=\"phone\" name=\"phone\">\n <mat-error *ngIf=\"editForm.controls['phone'].hasError('required') && (editForm.controls['phone'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n <mat-error *ngIf=\"editForm.controls['phone'].hasError('pattern') && (editForm.controls['phone'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.IncorrectFormat' | translate}}</mat-error>\n </div>\n \n <div class=\"validation-group\">\n <input class=\"form-item__value phone__value2\" maxlength=\"30\" type=\"text\" formControlName=\"phone2\" name=\"phone2\">\n <mat-error *ngIf=\"editForm.controls['phone2'].invalid\" class=\"validation-message\">{{'message.IncorrectFormat' | translate}}</mat-error>\n </div>\n </div>\n \n <div class=\"form-item gender\">\n <label class=\"form-item__label gender__label\">{{'label.Gender' | translate}}</label>\n <select class=\"form-item__value gender__value\" formControlName=\"gender\">\n <option *ngFor=\"let gender of genderList$ | async\" [ngValue]=\"gender.value\">\n {{gender.name}}\n </option>\n </select>\n </div>\n \n <div class=\"form-item birth-date\">\n <label class=\"form-item__label birth-date__label\">{{'label.DateOfBirth' | translate}}</label>\n <div class=\"birth-date-value-group\">\n <select class=\"form-item__value birth-date__value-day\" formControlName=\"birthDay\">\n <option *ngFor=\"let day of (days$ | async)\" [ngValue]=\"day\">\n {{day}}\n </option>\n </select>\n <select class=\"form-item__value birth-date__value-month\" formControlName=\"birthMonth\" (change)=\"onSelectMonth()\">\n <option *ngFor=\"let month of monthList$ | async\" [ngValue]=\"month.value\">\n {{month.name}}\n </option>\n </select>\n <select class=\"form-item__value birth-date__value-year\" formControlName=\"birthYear\" (change)=\"onSelectYear()\">\n <option *ngFor=\"let year of yearListBirth$ | async\" [ngValue]=\"year.value\">\n {{year.name}}\n </option>\n </select>\n </div>\n </div>\n \n <div class=\"form-item locality\">\n <label class=\"form-item__label locality__label\">{{'label.City' | translate}}</label>\n <!--<select class=\"form-item__value locality__value\" formControlName=\"city\">\n <option *ngFor=\"let location of locations$ | async\" [ngValue]=\"location.localityId\">\n {{location.name}}\n </option>\n </select>-->\n <hrra-location-picker\n class=\"form-item__label locality__value\"\n formControlName=\"extendedLocationPath\"\n [locationLevelCount]=\"data.locationLevelCount\"\n [firstLevelParentLocationId]=\"data.firstLevelParentLocationId\"\n [requiredLevelCount]=\"data.locationRequiredLevelCount\"\n [lastHiddenLevelCount]=\"data.locationLastHiddenLevelCount\">\n </hrra-location-picker>\n\n <span class=\"locality__message\">{{ 'text.JobseekerExtendedLocationEditText' | translate }}</span>\n </div>\n \n <div class=\"form-item address\">\n <label class=\"form-item__label address__label\">{{'label.Address' | translate}}</label>\n <div class=\"validation-group validation-group--address\">\n <input (keyup)=\"updateJobseekerAddress($event)\" class=\"form-item__value address__value\" type=\"text\" formControlName=\"address\">\n <mat-error *ngIf=\"editForm.controls['address'].invalid\" class=\"validation-message validation-message--address\">{{'message.IncorrectFormat' | translate}}</mat-error>\n </div>\n </div>\n \n <div class=\"form-item legal-address\">\n <label class=\"form-item__label legal-address__label\">{{'label.LegalAddress' | translate}}</label>\n <mat-checkbox [checked]=\"data.sameAsCurrentAddress\" class=\"legal-address__checkbox\" (change)=\"updateSameAsCurrentAddress($event.checked)\">\n {{'label.SameAsCurrentAddress' | translate}}\n </mat-checkbox>\n </div> \n \n <div class=\"form-item address\">\n <label class=\"form-item__label address__label\">{{'label.LegalAddress' | translate}}</label>\n <div class=\"validation-group validation-group--address\">\n <input class=\"form-item__value address__value\" type=\"text\" [value]=\"data.legalAddress\" (keyup)=\"updateJobseekerLegalAddress($event)\" [attr.disabled]=\"data?.sameAsCurrentAddress? '' : null\">\n </div>\n </div>\n \n <div class=\"form-item driving-licence\">\n <label class=\"form-item__label driving-licence__label\">{{'label.DrivingLicence' | translate}}</label>\n <mat-select class=\"form-item__value driving-licence__value\" formControlName=\"drivingLicenses\" multiple panelClass=\"personal-info-select-driving-licence\">\n <mat-option *ngFor=\"let drivingLicense of drivingLicenseList$ | async\" [value]=\"drivingLicense.value\">{{ drivingLicense.name}}</mat-option>\n </mat-select>\n </div>\n \n <div class=\"form-item own-vehicle\">\n <label class=\"form-item__label own-vehicle__label\">{{'label.OwnTransport' | translate}}</label>\n <mat-radio-group class=\"form-item__value own-vehicle__value\" formControlName=\"ownVehicle\" (change)=\"onChangeOwnVehicle()\"> \n <mat-radio-button class=\"own-vehicle__value--yes\" [value]=\"true\">{{'label.Yes' | translate}}</mat-radio-button>\n <mat-radio-button class=\"own-vehicle__value--no\" [value]=\"false\">{{'label.No' | translate}}</mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div class=\"form-item\">\n <label class=\"form-item__label\">{{'label.TransportType' | translate}}</label>\n <mat-select class=\"form-item__value\" [disableOptionCentering]=\"true\" multiple formControlName=\"jobseekerVehicles\" panelClass=\"personal-info-select-vehicle-type\">\n <mat-option *ngFor=\"let vehicleType of vehicleTypes$ | async\" [value]=\"vehicleType.value\">{{ vehicleType.name }}</mat-option>\n </mat-select>\n <mat-error *ngIf=\"editForm.hasError('fillVehicleType') && (editForm.controls['jobseekerVehicles'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n </div>\n \n <mat-dialog-actions>\n <div class=\"buttons\">\n <app-button (click)=\"onSave(data.sameAsCurrentAddress, data.legalAddress, data.moderationLastChangeDate)\" [disabled]=\"!ngForm.valid\" [text]=\"'label.Save' | translate\" [type]=\"buttonType.coloured\" [typeAttribute]=\"buttonAttributeType.submit\" class=\"button-submit\"></app-button>\n <app-button [mat-dialog-close] =\"true\" [text]=\"'label.Cancel' | translate\" [type]=\"buttonType.uncoloured\" [typeAttribute]=\"buttonAttributeType.button\"></app-button>\n </div>\n </mat-dialog-actions>\n </form>\n </div>\n</app-spinner>","import { Component, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { AppState } from 'src/app/root-store/state';\nimport { Store, select } from '@ngrx/store';\nimport { selectGenderList, selectPersonalInfo, selectDrivingLicenseList, selectMonthList, selectYearListBirth, selectIsJobseekerProfileUpdating, selectDaysList, selectSameAsCurrentAddress, selectLegalAddress, selectAddress, selectVehicleTypes, selectPersonInfoHasOwnVehicle, selectJobseekerModerationLastChangeDate } from 'src/app/root-store/jobseeker-store/jobseeker-profile/selectors';\nimport { UntypedFormGroup, UntypedFormControl, Validators, ValidationErrors, AbstractControl, FormControl } from '@angular/forms';\nimport { selectLocalities, selectLocationFirstLevelId, selectLocationLastHiddenLevelCount, selectLocationLevelCount, selectLocationRequiredLevelCount } from 'src/app/root-store/selectors';\nimport { JobseekerPersonalInfoModel } from '../shared/services/jobseeker.service';\nimport { editJobseekerPersonalInfo, setSelectedBirthMonth, setSelectedBirthYear, updateJobseekerAddress, updateJobseekerLegalAddress, updateSameAsCurrentAddress } from 'src/app/root-store/jobseeker-store/jobseeker-profile/actions';\nimport { Patterns } from '@hrra/core';\nimport { ButtonTypeAttributeEnum, ButtonTypeEnum } from '@hrra/ui';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { BasicOptionItem, Locality } from '@hrra/common-models';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'app-jobseeker-personal-info-edit',\n templateUrl: './jobseeker-personal-info-edit.component.html',\n styleUrls: ['./jobseeker-personal-info-edit.component.scss']\n})\nexport class JobseekerPersonalInfoEditComponent implements OnInit {\n\n editForm: UntypedFormGroup;\n\n locations$: Observable<Locality[]>;\n genderList$: Observable<BasicOptionItem[]>;\n drivingLicenseList$: Observable<BasicOptionItem[]>;\n monthList$: Observable<BasicOptionItem[]>;\n yearListBirth$: Observable<BasicOptionItem[]>;\n selectPersonalInfo$: Observable<JobseekerPersonalInfoModel>;\n isUpdating$: Observable<boolean>;\n days$: Observable<number[]>;\n moderationLastChangeDate$: Observable<Date>;\n\n\n public locationLevelCount$: Observable<number>;\n public locationRequiredLevelCount$: Observable<number>;\n public locationLastHiddenLevelCount$: Observable<number>;\n public locationFirstLevelId$: Observable<string>;\n\n public sameAsCurrentAddress$: Observable<boolean>;\n public legalAddress$: Observable<string>;\n public address$: Observable<string>;\n\n public vehicleTypes$: Observable<BasicOptionItem[]>;\n public hasOwnVehicle: Subscription;\n\n inputData: any;\n navigationSubs: Subscription;\n\n public buttonType;\n public buttonAttributeType: any;\n\n constructor(private store: Store<AppState>, private router: Router, public dialogRef: MatDialogRef<JobseekerPersonalInfoEditComponent>) {\n this.buttonType = ButtonTypeEnum;\n this.buttonAttributeType = ButtonTypeAttributeEnum;\n\n this.editForm = new UntypedFormGroup({\n name: new UntypedFormControl('', [Validators.required, Validators.pattern(Patterns.jobseekerName)]),\n surname: new UntypedFormControl('', [Validators.required, Validators.pattern(Patterns.jobseekerName)]),\n email: new UntypedFormControl('', [Validators.required, Validators.pattern(Patterns.emailNew)]),\n phone: new UntypedFormControl(null, [Validators.required, Validators.pattern(Patterns.phoneNumber)]),\n phone2: new UntypedFormControl(null, Validators.pattern(Patterns.phoneNumber)),\n address: new UntypedFormControl(null, Validators.pattern(Patterns.address)),\n gender: new UntypedFormControl(null),\n city: new UntypedFormControl(null),\n drivingLicenses: new UntypedFormControl([]),\n ownVehicle: new UntypedFormControl(null),\n birthMonth: new UntypedFormControl(null),\n birthYear: new UntypedFormControl(null),\n birthDay: new UntypedFormControl(null),\n extendedLocationPath: new UntypedFormControl(null, [Validators.required]),\n jobseekerVehicles: new UntypedFormControl([])\n },{\n validators: [this.validateJobseekerVehicles]\n });\n\n this.navigationSubs = this.router.events.subscribe(e => {\n if(e instanceof NavigationEnd){\n this.dialogRef.close();\n }\n });\n }\n\n validateJobseekerVehicles(group : UntypedFormGroup) : ValidationErrors | null{\n if (group) {\n const hashOwnVehicle = group.controls['ownVehicle'].value;\n const vehicles: number[] = group.controls['jobseekerVehicles'].value;\n\n if(hashOwnVehicle && vehicles.length == 0)\n {\n return { fillVehicleType : true };\n }\n }\n return null;\n }\n \n ngOnInit(): void {\n this.locations$ = this.store.pipe(select(selectLocalities));\n this.genderList$ = this.store.pipe(select(selectGenderList));\n this.drivingLicenseList$ = this.store.pipe(select(selectDrivingLicenseList));\n this.monthList$ = this.store.pipe(select(selectMonthList));\n this.yearListBirth$ = this.store.pipe(select(selectYearListBirth));\n this.selectPersonalInfo$ = this.store.pipe(select(selectPersonalInfo));\n this.isUpdating$ = this.store.pipe(select(selectIsJobseekerProfileUpdating));\n this.days$ = this.store.pipe(select(selectDaysList));\n this.sameAsCurrentAddress$ = this.store.pipe(select(selectSameAsCurrentAddress));\n this.legalAddress$ = this.store.pipe(select(selectLegalAddress));\n this.address$ = this.store.pipe(select(selectAddress));\n this.vehicleTypes$ = this.store.pipe(select(selectVehicleTypes));\n this.moderationLastChangeDate$ = this.store.pipe(select(selectJobseekerModerationLastChangeDate));\n\n\n this.locationLevelCount$ = this.store.pipe(select(selectLocationLevelCount));\n this.locationRequiredLevelCount$ = this.store.pipe(select(selectLocationRequiredLevelCount));\n this.locationLastHiddenLevelCount$ = this.store.pipe(select(selectLocationLastHiddenLevelCount));\n this.locationFirstLevelId$ = this.store.pipe(select(selectLocationFirstLevelId));\n \n this.vehicleTypes$ = this.store.pipe(select(selectVehicleTypes));\n\n this.hasOwnVehicle = this.store.pipe(select(selectPersonInfoHasOwnVehicle),take(1)).subscribe((c) => {\n const hasOwnVehicle = this.editForm.get('jobseekerVehicles') as FormControl;\n if(c){\n hasOwnVehicle.enable();\n }else{\n hasOwnVehicle.disable();\n }\n });\n }\n\n onSave(sameAsCurrentAddress: boolean, legalAddress: string, moderationLastChangeDate:Date){ \n if(this.editForm.valid){\n var extendedLocations = this.editForm.get('extendedLocationPath').value.locations.filter(c => c.locationId != null);\n let updateData = <JobseekerPersonalInfoModel>{\n name: this.editForm.get('name').value,\n surname: this.editForm.get('surname').value,\n email: this.editForm.get('email').value,\n phone: this.editForm.get('phone').value,\n phone2: this.editForm.get('phone2').value,\n address: this.editForm.get('address').value,\n legalAddress: legalAddress,\n sameAsCurrentAddress: sameAsCurrentAddress,\n gender: this.editForm.get('gender').value,\n city: this.editForm.get('city').value,\n drivingLicenses: this.editForm.get('drivingLicenses').value,\n ownVehicle: this.editForm.get('ownVehicle').value,\n birthMonth: this.editForm.get('birthMonth').value,\n birthYear: this.editForm.get('birthYear').value,\n birthDay: this.editForm.get('birthDay').value,\n extendedLocationId: extendedLocations[extendedLocations.length - 1].locationId,\n jobseekerVehicles: this.editForm.get('jobseekerVehicles').value\n }\n this.store.dispatch(editJobseekerPersonalInfo({payload:{jobseekerPersonalInfoModel:updateData, moderationLastChangeDate:moderationLastChangeDate}}));\n }\n }\n\n onChangeOwnVehicle(){\n const hasOwnVehicle = this.editForm.controls['ownVehicle'].value;\n let jobseekerVehicles = this.editForm.controls['jobseekerVehicles'];\n\n if(!hasOwnVehicle){\n jobseekerVehicles.disable();\n jobseekerVehicles.setValue([]);\n }else{\n jobseekerVehicles.enable();\n }\n }\n\n updateJobseekerAddress(e: any){\n this.store.dispatch(updateJobseekerAddress({ payload: e.target.value }));\n \n if(e.target.value === ''){\n this.store.dispatch(updateSameAsCurrentAddress({ payload: false })); \n }\n }\n\n updateSameAsCurrentAddress(checked: boolean){\n this.store.dispatch(updateSameAsCurrentAddress({ payload: checked })); \n }\n\n updateJobseekerLegalAddress(e: any){\n this.store.dispatch(updateJobseekerLegalAddress({ payload: e.target.value }))\n }\n\n onSelectMonth(){\n let month = this.editForm.get('birthMonth').value;\n this.store.dispatch(setSelectedBirthMonth({payload: month}));\n }\n\n onSelectYear(){\n let year = this.editForm.get('birthYear').value;\n this.store.dispatch(setSelectedBirthYear({payload: year}));\n }\n\n ngOnDestroy() {\n this.navigationSubs.unsubscribe();\n this.hasOwnVehicle.unsubscribe();\n }\n}\n","<app-spinner [isLoading]=\"isLoading$ | async\">\n <div class=\"container\" *ngIf=\"{year: workExperienceYears$ | async,\n month: workExperienceMonth$ | async,\n cvExportLoading: cvExportLoading$| async,\n jobseekerWorkExperiences: jobseekerWorkExperiences$ | async,\n jobseekerPersonalInfo: jobseekerPersonalInfo$ | async,\n jobseekerEducations: jobseekerEducations$ | async,\n documents: documents$ | async,\n documentInMod: documentInMod$ | async,\n educationMaxLevel: educationMaxLevel$ | async,\n languagesInMod: languagesInMod$ | async,\n jobseekerLanguages: jobseekerLanguages$ | async,\n timeZone: timeZone$ | async,\n photoIsInModeration: photoIsInModeration$ | async,\n documentTypeMap: documentTypeMap$ | async,\n currentUserType: currentUserType$ | async,\n currentLanguage: currentLanguage$ | async,\n isWorkExperienceFilledInModeration: isWorkExperienceFilledInModeration$ | async\n } as data\">\n <div *ngIf=\"(jobseeker$ | async) as jobseeker\" >\n <div class=\"head-info\">\n <div *ngIf=\"jobseeker.lacksNecessaryInformation\" class=\"lack-info\">\n <div class=\"lack-info-icon\">\n <svg-icon class=\"lack-info-icon__warning\" src=\"/assets/icons/warning.svg\"></svg-icon>\n </div>\n <div class=\"lack-info-text\">\n <span class=\"lack-info-text__message\">{{'message.JobseekerProfileLacksNecessaryInformation' | translate}}</span>\n <span class=\"lack-info-text__message-item\" *ngFor=\"let lackItem of jobseeker.lackedFieldList; let last = last\">\n {{necessaryFieldMap[lackItem] | translate}}{{last ? '' : '; '}}\n </span>\n </div>\n </div>\n <button [disabled]=\"data.cvExportLoading\" (click)=\"onCvExport()\" class=\"save-profile-btn\">\n <div class=\"save-profile-btn__text\">{{'label.SaveProfileAsPdf' | translate}}</div>\n </button>\n </div>\n <mat-progress-bar *ngIf=\"data.cvExportLoading\" mode=\"indeterminate\"></mat-progress-bar>\n\n <hrra-jobseeker-profile-tile [userType]=\"data.currentUserType\" [hasOutOfTileContent]=\"true\">\n <hrra-jobseeker-personal-info tile-content [userType]=\"data.currentUserType\" [timeZone]=\"data.timeZone\" [currentLang]=\"data.currentLanguage\" [personalInfo] = \"jobseekerPersonalInfo$ | async\" (onEditPersonalInfo)=\"editPersonalInfo()\" class=\"main-content\"></hrra-jobseeker-personal-info>\n <hrra-jobseeker-photo [userType]=\"data.currentUserType\" out-of-tile-content [photoHref]=\"jobseeker.photoHref\" [photoIsInModeration]=\"data.photoIsInModeration\" (onEditPhoto)=\"editPhoto($event, jobseeker.photoHref)\" (onDeletPhoto)=\"deletePhoto(jobseeker.moderationLastChangeDate)\" class=\"photo-content\"></hrra-jobseeker-photo>\n </hrra-jobseeker-profile-tile>\n \n <hrra-jobseeker-profile-tile [userType]=\"data.currentUserType\" [title]=\"'label.WorkExperience' | translate\" \n [rightText]=\"(data.year != 0 ? data.year : ' ') + ' ' + ('label.Year' | translate:{ count: data.year }) + ' ' + (data.month != 0 ? data.month : ' ') + ' ' + ('label.Month' | translate:{ count: data.month })\">\n <div tile-content>\n <div *ngIf=\"data.jobseekerWorkExperiences?.length > 0\">\n <div *ngFor=\"let workExperience of data.jobseekerWorkExperiences\" class=\"main-content\">\n <hrra-jobseeker-work-experience [userType]=\"data.currentUserType\" [workExperience] = \"workExperience\" [timeZone]=\"data.timeZone\" [currentLang]=\"data.currentLanguage\" (onEditExperience)=\"editWorkExperience($event)\" (onDeletExperience)=\"deleteExperience($event, jobseeker.moderationLastChangeDate)\" (onDownloadExperienceAttachment)=\"downloadExperienceAttachment($event)\"></hrra-jobseeker-work-experience>\n </div>\n </div>\n <div *ngIf=\"data.jobseekerWorkExperiences?.length == 0 && jobseeker.isWorkExperienceFilled\" class=\"without-experience-text\">\n <app-icon *ngIf=\"data.isWorkExperienceFilledInModeration\" [tooltipText]=\"'label.IsInModeration' | translate\" [iconButtonType]=\"iconButtonType.moderation\" class=\"mod-icon\"></app-icon>\n {{'label.WithoutExperience' | translate}}\n </div>\n </div>\n \n <button *ngIf=\"!jobseeker.isWorkExperienceFilled\" button class=\"without-experience-button\" (click)=\"onIsWorkExperienceFilled(jobseeker.moderationLastChangeDate)\">{{'label.WithoutExperience' | translate}}</button>\n <app-advanced-button (click)=\"onWorkExperienceCreate()\" add-button [iconType]=\"iconButtonType.add\" [text]=\"'label.Add' | translate\" [type]=\"'uncoloured-blue'\" class=\"add-button\"></app-advanced-button>\n </hrra-jobseeker-profile-tile>\n \n <hrra-jobseeker-profile-tile [userType]=\"data.currentUserType\" [title]=\"'label.Education' | translate\" [rightText]=\"data.educationMaxLevel\">\n <div tile-content *ngFor=\"let education of data.jobseekerEducations\" class=\"main-content\">\n <hrra-jobseeker-education [userType]=\"data.currentUserType\" [education] = \"education\" [timeZone]=\"data.timeZone\" [currentLang]=\"data.currentLanguage\" (onEditEducation)=\"editEducation($event)\" (onDeletEducation)=\"deleteEducation($event, jobseeker.moderationLastChangeDate)\" (onDownloadEducationAttachment)=\"downloadEducationAttachment($event)\"></hrra-jobseeker-education>\n </div>\n <app-advanced-button (click)=\"onEducationCreate()\" add-button [iconType]=\"iconButtonType.add\" [text]=\"'label.Add' | translate\" [type]=\"'uncoloured-blue'\" class=\"add-button\"></app-advanced-button>\n </hrra-jobseeker-profile-tile>\n \n <hrra-jobseeker-profile-tile [userType]=\"data.currentUserType\" [title]=\"'label.Languages' | translate\">\n <div tile-content *ngFor=\"let language of data.jobseekerLanguages\" class=\"main-content main-content--language\">\n <hrra-jobseejer-language [userType]=\"data.currentUserType\" [language] = \"language\" [languageIsInMod]=\"data.languagesInMod[language.jobseekerLanguageId]\" (onEditLanguage)=\"editLanguage($event)\" (onDeleteLanguage)=\"deleteLanguage($event, jobseeker.moderationLastChangeDate)\" (onDownloadLanguageAttachment)=\"downloadLanguageAttachment($event)\"></hrra-jobseejer-language>\n </div>\n <app-advanced-button (click)=\"onLanguageCreate()\" add-button [iconType]=\"iconButtonType.add\" [text]=\"'label.Add' | translate\" [type]=\"'uncoloured-blue'\" class=\"add-button\"></app-advanced-button>\n </hrra-jobseeker-profile-tile> \n \n <hrra-jobseeker-profile-tile [userType]=\"data.currentUserType\" [title]=\"'label.UploadedDocuments' | translate\">\n <div tile-content *ngFor=\"let document of data.documents\" class=\"main-content\">\n <hrra-jobseeker-document [userType]=\"data.currentUserType\" [document]=\"document\" [documentTypeMap]=\"data.documentTypeMap\" (onDeletDocument)=\"deleteDocument($event, jobseeker.moderationLastChangeDate)\" [documentIsInMod]=\"data.documentInMod[document.jobseekerDocumentId]\" (onDownloadDocment)=\"downloadDocument($event)\"></hrra-jobseeker-document>\n </div>\n <app-advanced-button (click)=\"onDocumentCreate()\" add-button [iconType]=\"iconButtonType.add\" [text]=\"'label.UploadDocuments' | translate\" [type]=\"'uncoloured-blue'\" class=\"add-button\"></app-advanced-button>\n </hrra-jobseeker-profile-tile>\n </div>\n </div>\n</app-spinner>","import { Component, OnInit } from '@angular/core';\nimport { Store, select } from '@ngrx/store';\nimport { AppState } from 'src/app/root-store/state';\nimport { Observable, Subscription } from 'rxjs';\nimport { selectJobseekerPersonalInfo, selectJobseeker, selectJobseekerLanguages, selectTotalWorkExperienceMonths, selectTotalWorkExperienceYears, selectMaxEducationLevel, \n selectJobseekerWorkExperiences, languageInModeration, documentsInModeration, selectJobseekerDocuments, selectEducations, selectIsProfileLoading, selectIsJobseekerProfileUpdating, selectIsCvExportLoading, selectPhotoIsInModeration, selectDocumentTypeListMap, \n selectJobseekerModerationLastChangeDate,\n selectIsWorkExperienceFilledIsInModeration} from 'src/app/root-store/jobseeker-store/jobseeker-profile/selectors';\nimport { IconButtonTypeEnum } from '@hrra/ui';\n// import { JobseekerEducationViewModel } from '../shared/models/jobseeker-education-model';\nimport { Jobseeker, JobseekerDocument, JobseekerEducationViewModel, JobseekerLanguage, JobseekerWorkExperienceViewModel, NecessaryField, UserTypeEnum } from '@hrra/common-models';\nimport { theme } from 'src/environments/theme';\nimport { JobseekerDialogService } from '../shared/services/jobseeker-dialog.service';\nimport { deleteJobseekerDocument, deleteJobseekerEducation, deleteJobseekerLanguage, deleteJobseekerPhoto, deleteJobseekerWorkExperience, downloadDocumentAttachment, downloadEducationAttachment, downloadLanguageAttachment, downloadWorkExperienceAttachment, jobseekerCvExport, loadJobseekerProfile, setIsWorkExperienceFilled } from 'src/app/root-store/jobseeker-store/jobseeker-profile/actions';\nimport { MetaService } from 'src/app/shared/services/meta.service';\nimport { selectCurrentUserType, selectCurrentLanguage, selectCurrentWebsiteNameForSeo, selectTimeZone } from 'src/app/root-store/selectors';\nimport { DialogService } from 'src/app/shared/services/dialog.service';\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\nimport { JobseekerPersonalInfoEditComponent } from '../jobseeker-personal-info-edit/jobseeker-personal-info-edit.component';\n\n@Component({\n selector: 'app-jobseeker-profile',\n templateUrl: `./${theme.name}/jobseeker-profile.component.html`,\n styleUrls: [`./${theme.name}/jobseeker-profile.component.scss`]\n})\nexport class JobseekerProfileComponent implements OnInit {\n \n metaDataSubscription: Subscription;\n\n jobseeker$: Observable<Jobseeker>;\n jobseekerPersonalInfo$: Observable<any>;\n jobseekerWorkExperiences$: Observable<JobseekerWorkExperienceViewModel[]>;\n jobseekerEducations$: Observable<JobseekerEducationViewModel[]>;\n jobseekerLanguages$: Observable<JobseekerLanguage[]>;\n workExperienceYears$: Observable<any>;\n workExperienceMonth$: Observable<any>;\n educationMaxLevel$: Observable<string>;\n documents$: Observable<JobseekerDocument[]>;\n\n languagesInMod$: Observable<{ [index: number]: boolean }>;\n jobseekerEducationInMod$: Observable<{ [index: number]: boolean }>;\n documentInMod$: Observable<{ [index: number]: boolean }>;\n\n isLoading$: Observable<boolean>;\n cvExportLoading$: Observable<boolean>;\n\n timeZone$: Observable<string>;\n photoIsInModeration$: Observable<boolean>;\n documentTypeMap$: Observable<any>;\n currentUserType$: Observable<UserTypeEnum>;\n currentLanguage$: Observable<string>;\n\n isWorkExperienceFilledInModeration$: Observable<boolean>;\n\n public iconButtonType: any;\n public necessaryField: any;\n\n public necessaryFieldMap : {[index: number]: string}\n\n \n constructor(private store: Store<AppState>, \n private jobseekerDialogService: JobseekerDialogService,\n private dialogService: DialogService,\n private dialog: MatDialog,\n private metaService: MetaService) {this.iconButtonType = IconButtonTypeEnum, this.necessaryField = NecessaryField }\n\n ngOnInit() {\n this.store.dispatch(loadJobseekerProfile());\n\n this.jobseeker$ = this.store.pipe(select(selectJobseeker));\n this.jobseekerPersonalInfo$ = this.store.pipe(select(selectJobseekerPersonalInfo));\n this.jobseekerWorkExperiences$ = this.store.pipe(select(selectJobseekerWorkExperiences));\n this.jobseekerEducations$ = this.store.pipe(select(selectEducations));\n this.jobseekerLanguages$ = this.store.pipe(select(selectJobseekerLanguages));\n\n this.workExperienceMonth$ = this.store.pipe(select(selectTotalWorkExperienceMonths));\n this.workExperienceYears$ = this.store.pipe(select(selectTotalWorkExperienceYears));\n\n this.educationMaxLevel$ = this.store.pipe(select(selectMaxEducationLevel));\n this.documents$ = this.store.pipe(select(selectJobseekerDocuments));\n\n this.languagesInMod$ = this.store.pipe(select(languageInModeration));\n this.documentInMod$ = this.store.pipe(select(documentsInModeration));\n\n this.isLoading$ = this.store.pipe(select(selectIsProfileLoading));\n this.cvExportLoading$ = this.store.pipe(select(selectIsCvExportLoading));\n\n this.timeZone$ = this.store.pipe(select(selectTimeZone));\n this.photoIsInModeration$ = this.store.pipe(select(selectPhotoIsInModeration));\n this.documentTypeMap$ = this.store.pipe(select(selectDocumentTypeListMap));\n this.currentUserType$ = this.store.pipe(select(selectCurrentUserType));\n this.currentLanguage$ = this.store.pipe(select(selectCurrentLanguage));\n\n this.isWorkExperienceFilledInModeration$ = this.store.pipe(select(selectIsWorkExperienceFilledIsInModeration));\n\n this.metaDataSubscription = this.store.pipe(select(selectCurrentWebsiteNameForSeo)).subscribe(d => {\n this.metaService.updateMetaData(d);\n });\n\n this.necessaryFieldMap = {\n [NecessaryField.Name]: 'label.Name',\n [NecessaryField.Surname]: 'label.Surname',\n [NecessaryField.CV]: 'label.CV',\n [NecessaryField.Phone]: 'label.Phone',\n [NecessaryField.City]: 'label.City',\n [NecessaryField.Gender]: 'label.Gender',\n [NecessaryField.BirthDate]: 'label.DateOfBirth',\n [NecessaryField.WorkExperience]: 'label.WorkExperience',\n [NecessaryField.Education]: 'label.Education',\n [NecessaryField.Language]: 'label.Languages'\n }\n }\n\n ngOnDestroy() {\n this.metaDataSubscription.unsubscribe()\n }\n\n onEducationCreate(){\n this.jobseekerDialogService.editJobseekerEducation(null, true);\n }\n\n onLanguageCreate(){\n this.jobseekerDialogService.editJobseekerLanguage(null, true);\n }\n\n onDocumentCreate(){\n this.jobseekerDialogService.uploadDocument();\n }\n\n onWorkExperienceCreate(){\n this.jobseekerDialogService.editJobseekerWorkExperience(true, null);\n }\n\n onIsWorkExperienceFilled(moderationLastChangeDate: Date){\n this.store.dispatch(setIsWorkExperienceFilled({payload: { isWorkExperienceFilled: true, moderationLastChangeDate: moderationLastChangeDate }}));\n }\n\n onCvExport(){\n this.store.dispatch(jobseekerCvExport());\n }\n\n editEducation(id: number){\n this.jobseekerDialogService.editJobseekerEducation(id, false);\n }\n\n deleteEducation(event: any, moderationLastChangeDate: Date){\n this.dialogService.openConfirmDialog('message.AreYouSure')\n .afterClosed().subscribe(res => {\n if(res){\n this.store.dispatch(deleteJobseekerEducation({payload: {educationId: event.id, moderationLastChangeDate: moderationLastChangeDate, objectId: event.objectId}}));\n }\n });\n }\n\n downloadEducationAttachment(objectId: string){\n this.store.dispatch(downloadEducationAttachment({payload: {jobseekerEducationObjectId: objectId}}));\n }\n\n editLanguage(languageIdInfo: {id: number, objectId: string}){\n this.jobseekerDialogService.editJobseekerLanguage(languageIdInfo, false);\n }\n\n deleteLanguage(event: any, moderationLastChangeDate: Date){\n this.dialogService.openConfirmDialog('message.AreYouSure')\n .afterClosed().subscribe(res => {\n if(res){\n this.store.dispatch(deleteJobseekerLanguage({payload: {languageId: event.id, moderationLastChangeDate: moderationLastChangeDate, objectId: event.objectId}}));\n }\n });\n }\n\n downloadLanguageAttachment(objectId: string){\n this.store.dispatch(downloadLanguageAttachment({payload: {jobseekerLanguageObjectId: objectId}}));\n }\n\n editWorkExperience(workExperience: JobseekerWorkExperienceViewModel){\n this.jobseekerDialogService.editJobseekerWorkExperience(false, workExperience);\n }\n\n deleteExperience(event: any, moderationLastChangeDate: Date){\n this.dialogService.openConfirmDialog('message.AreYouSure')\n .afterClosed().subscribe(res => {\n if(res){\n this.store.dispatch(deleteJobseekerWorkExperience({payload: {experienceId: event.id, moderationLastChangeDate: moderationLastChangeDate, objectId: event.objectId}}));\n }\n });\n }\n\n downloadExperienceAttachment(objectId: string){\n this.store.dispatch(downloadWorkExperienceAttachment({payload: {workExperienceObjectId: objectId}}));\n }\n\n editPersonalInfo(){\n this.dialog.open(JobseekerPersonalInfoEditComponent, {\n maxHeight: '100vh',\n panelClass: 'confirm-edit-dialog-container',\n id: 'personalInfo'\n });\n }\n\n editPhoto(isPhotoInModeration: boolean, photoHref: string){\n this.jobseekerDialogService.editJobseekerPhoto(photoHref, isPhotoInModeration);\n }\n\n deletePhoto(moderationLastChangeDate: Date){\n this.dialogService.openConfirmDialog('message.AreYouSure')\n .afterClosed().subscribe(res => {\n if(res){\n this.store.dispatch(deleteJobseekerPhoto({payload: {moderationLastChangeDate:moderationLastChangeDate}}));\n }\n });\n }\n\n deleteDocument(event: any, moderationLastChangeDate: Date){\n this.dialogService.openConfirmDialog('message.AreYouSure')\n .afterClosed().subscribe(res => {\n if(res){\n this.store.dispatch(deleteJobseekerDocument({payload: {documentId: event.id, moderationLastChangeDate: moderationLastChangeDate, objectId: event.objectId}}));\n }\n });\n }\n\n downloadDocument(objectId: string){\n this.store.dispatch(downloadDocumentAttachment({payload: {documentObjectId: objectId}}));\n }\n}","<ng-template #tabContent>\n <ng-content></ng-content>\n</ng-template>","import { Component, OnInit, Input, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'hr-tab',\n templateUrl: './hr-tab.component.html',\n styleUrls: ['./hr-tab.component.scss']\n})\nexport class HrTabComponent implements OnInit {\n\n constructor() { }\n\n\n @Input()\n public label: string;\n\n public isActive: boolean;\n\n @ViewChild(TemplateRef)\n public tabContent: TemplateRef<any>\n\n\n\n ngOnInit(): void {\n }\n\n}\n","<!-- <div style=\"background: #E5E5E5; padding: 20px;\">\n <h1>Tab component</h1> -->\n<div class=\"tab-group\">\n <div class=\"tab-group__header\">\n <div *ngFor=\"let tabItem of tabItems$ | async\" \n [title]=\"tabItem.label\" \n (click)=\"selectTab(tabItem)\" \n [ngClass]=\"{'tab-button-active': tabItem == activeTab}\" \n class=\"tab-button\"\n >\n {{tabItem.label}}\n </div>\n <!-- <span class=\"tab-button\">ხელიმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒáƒ‘áƒ</span>\n <span class=\"tab-button\">შáƒáƒ•áƒ˜ სიáƒ</span> -->\n <div class=\"default-fill\"></div>\n </div>\n <div class=\"tab-item-container\">\n <ng-container *ngTemplateOutlet=\"activeTab?.tabContent\">\n\n </ng-container>\n </div>\n</div>\n","import { Component, OnInit, QueryList, ContentChildren, AfterContentInit, AfterContentChecked, Input } from '@angular/core';\nimport { HrTabComponent } from '../hr-tab/hr-tab.component';\nimport { Observable } from 'rxjs';\nimport { startWith, delay, map } from 'rxjs/operators';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'hr-tab-group',\n templateUrl: './hr-tab-group.component.html',\n styleUrls: ['./hr-tab-group.component.scss']\n})\nexport class HrTabGroupComponent implements OnInit, AfterContentInit, AfterContentChecked {\n\n constructor() { }\n ngAfterContentChecked(): void {\n if (!this.activeTab) {\n this.activeTabIndex = this.activeTabIndex || 0;\n Promise.resolve().then(() => {\n this.activeTab = this.tabs.toArray()[this.activeTabIndex];\n });\n }\n }\n\n ngAfterContentInit(): void {\n this.tabItems$ = this.tabs.changes\n .pipe(startWith(\"\"))\n .pipe(delay(0))\n .pipe(map(() => this.tabs.toArray()));\n }\n\n selectTab(tabItem: HrTabComponent) {\n if (this.activeTab === tabItem) {\n return;\n }\n\n if (this.activeTab) {\n this.activeTab.isActive = false;\n }\n\n this.activeTab = tabItem;\n\n tabItem.isActive = true;\n }\n\n @ContentChildren(HrTabComponent)\n public tabs: QueryList<HrTabComponent>;\n\n public tabItems$: Observable<HrTabComponent[]>;\n\n public activeTab: HrTabComponent;\n\n @Input()\n public activeTabIndex: number;\n\n ngOnInit(): void {\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CategoryPickerService } from 'src/app/jobseeker/shared/services/category-picker.service';\n\n@Component({\n selector: 'app-test-dashboard',\n templateUrl: './test-dashboard.component.html',\n styleUrls: ['./test-dashboard.component.scss']\n})\nexport class TestDashboardComponent implements OnInit {\n\n constructor(private categoryPicker: CategoryPickerService) { }\n\n public testCategoryPicker() {\n this.categoryPicker.pickCategory(categoryIds => {\n alert(categoryIds);\n },\n [365, 676, 77, 76, 86, 87, 75]\n );\n }\n\n ngOnInit(): void {\n }\n\n}\n","\n<div style=\"padding: 20px; background: #ebebeb;\">\n <hr-tab-group [activeTabIndex]=\"1\">\n <hr-tab [label]=\"'პáƒáƒ áƒáƒšáƒ˜áƒ¡ შეცვლáƒ'\">\n <h1>პáƒáƒ áƒáƒšáƒ˜áƒ¡ შეცვლáƒ</h1>\n </hr-tab>\n <hr-tab [label]=\"'ხელიმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒáƒ‘áƒ'\">\n <h1>ხელიმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒáƒ‘áƒ</h1>\n </hr-tab>\n <hr-tab [label]=\"'შáƒáƒ•áƒ˜ სიáƒ'\">\n <h1>შáƒáƒ•áƒ˜ სიáƒ</h1>\n </hr-tab>\n </hr-tab-group>\n</div>\n\n\n<button (click)=\"testCategoryPicker()\">Test category picker</button>","import * as i0 from '@angular/core';\nimport { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, Component, Input, HostBinding, Output, NgModule, forwardRef, Directive, HostListener } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { of, BehaviorSubject, Subject } from 'rxjs';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\nconst RECAPTCHA_LANGUAGE = new InjectionToken(\"recaptcha-language\");\nconst RECAPTCHA_BASE_URL = new InjectionToken(\"recaptcha-base-url\");\nconst RECAPTCHA_NONCE = new InjectionToken(\"recaptcha-nonce-tag\");\nconst RECAPTCHA_SETTINGS = new InjectionToken(\"recaptcha-settings\");\nconst RECAPTCHA_V3_SITE_KEY = new InjectionToken(\"recaptcha-v3-site-key\");\n\nfunction loadScript(renderMode, onLoaded, urlParams, url, nonce) {\n window.ng2recaptchaloaded = () => {\n onLoaded(grecaptcha);\n };\n const script = document.createElement(\"script\");\n script.innerHTML = \"\";\n const baseUrl = url || \"https://www.google.com/recaptcha/api.js\";\n script.src = `${baseUrl}?render=${renderMode}&onload=ng2recaptchaloaded${urlParams}`;\n if (nonce) {\n script.nonce = nonce;\n }\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n}\nconst loader = { loadScript };\n\nclass RecaptchaLoaderService {\n /**\n * @internal\n * @nocollapse\n */\n static { this.ready = null; }\n constructor(\n // eslint-disable-next-line @typescript-eslint/ban-types\n platformId, language, baseUrl, nonce, v3SiteKey) {\n this.platformId = platformId;\n this.language = language;\n this.baseUrl = baseUrl;\n this.nonce = nonce;\n this.v3SiteKey = v3SiteKey;\n this.init();\n this.ready = isPlatformBrowser(this.platformId) ? RecaptchaLoaderService.ready.asObservable() : of();\n }\n /** @internal */\n init() {\n if (RecaptchaLoaderService.ready) {\n return;\n }\n if (isPlatformBrowser(this.platformId)) {\n const subject = new BehaviorSubject(null);\n RecaptchaLoaderService.ready = subject;\n const langParam = this.language ? \"&hl=\" + this.language : \"\";\n const renderMode = this.v3SiteKey || \"explicit\";\n loader.loadScript(renderMode, (grecaptcha) => subject.next(grecaptcha), langParam, this.baseUrl, this.nonce);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaLoaderService, deps: [{ token: PLATFORM_ID }, { token: RECAPTCHA_LANGUAGE, optional: true }, { token: RECAPTCHA_BASE_URL, optional: true }, { token: RECAPTCHA_NONCE, optional: true }, { token: RECAPTCHA_V3_SITE_KEY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaLoaderService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaLoaderService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_LANGUAGE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_BASE_URL]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_NONCE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_V3_SITE_KEY]\n }] }]; } });\n\nlet nextId = 0;\nclass RecaptchaComponent {\n constructor(elementRef, loader, zone, settings) {\n this.elementRef = elementRef;\n this.loader = loader;\n this.zone = zone;\n this.id = `ngrecaptcha-${nextId++}`;\n this.errorMode = \"default\";\n this.resolved = new EventEmitter();\n /**\n * @deprecated `(error) output will be removed in the next major version. Use (errored) instead\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n this.error = new EventEmitter();\n this.errored = new EventEmitter();\n if (settings) {\n this.siteKey = settings.siteKey;\n this.theme = settings.theme;\n this.type = settings.type;\n this.size = settings.size;\n this.badge = settings.badge;\n }\n }\n ngAfterViewInit() {\n this.subscription = this.loader.ready.subscribe((grecaptcha) => {\n if (grecaptcha != null && grecaptcha.render instanceof Function) {\n this.grecaptcha = grecaptcha;\n this.renderRecaptcha();\n }\n });\n }\n ngOnDestroy() {\n // reset the captcha to ensure it does not leave anything behind\n // after the component is no longer needed\n this.grecaptchaReset();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n /**\n * Executes the invisible recaptcha.\n * Does nothing if component's size is not set to \"invisible\".\n */\n execute() {\n if (this.size !== \"invisible\") {\n return;\n }\n if (this.widget != null) {\n void this.grecaptcha.execute(this.widget);\n }\n else {\n // delay execution of recaptcha until it actually renders\n this.executeRequested = true;\n }\n }\n reset() {\n if (this.widget != null) {\n if (this.grecaptcha.getResponse(this.widget)) {\n // Only emit an event in case if something would actually change.\n // That way we do not trigger \"touching\" of the control if someone does a \"reset\"\n // on a non-resolved captcha.\n this.resolved.emit(null);\n }\n this.grecaptchaReset();\n }\n }\n /**\n * âš ï¸ Warning! Use this property at your own risk!\n *\n * While this member is `public`, it is not a part of the component's public API.\n * The semantic versioning guarantees _will not be honored_! Thus, you might find that this property behavior changes in incompatible ways in minor or even patch releases.\n * You are **strongly advised** against using this property.\n * Instead, use more idiomatic ways to get reCAPTCHA value, such as `resolved` EventEmitter, or form-bound methods (ngModel, formControl, and the likes).Ã¥\n */\n get __unsafe_widgetValue() {\n return this.widget != null ? this.grecaptcha.getResponse(this.widget) : null;\n }\n /** @internal */\n expired() {\n this.resolved.emit(null);\n }\n /** @internal */\n onError(args) {\n this.error.emit(args);\n this.errored.emit(args);\n }\n /** @internal */\n captchaResponseCallback(response) {\n this.resolved.emit(response);\n }\n /** @internal */\n grecaptchaReset() {\n if (this.widget != null) {\n this.zone.runOutsideAngular(() => this.grecaptcha.reset(this.widget));\n }\n }\n /** @internal */\n renderRecaptcha() {\n // This `any` can be removed after @types/grecaptcha get updated\n const renderOptions = {\n badge: this.badge,\n callback: (response) => {\n this.zone.run(() => this.captchaResponseCallback(response));\n },\n \"expired-callback\": () => {\n this.zone.run(() => this.expired());\n },\n sitekey: this.siteKey,\n size: this.size,\n tabindex: this.tabIndex,\n theme: this.theme,\n type: this.type,\n };\n if (this.errorMode === \"handled\") {\n renderOptions[\"error-callback\"] = (...args) => {\n this.zone.run(() => this.onError(args));\n };\n }\n this.widget = this.grecaptcha.render(this.elementRef.nativeElement, renderOptions);\n if (this.executeRequested === true) {\n this.executeRequested = false;\n this.execute();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i0.ElementRef }, { token: RecaptchaLoaderService }, { token: i0.NgZone }, { token: RECAPTCHA_SETTINGS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.1\", type: RecaptchaComponent, selector: \"re-captcha\", inputs: { id: \"id\", siteKey: \"siteKey\", theme: \"theme\", type: \"type\", size: \"size\", tabIndex: \"tabIndex\", badge: \"badge\", errorMode: \"errorMode\" }, outputs: { resolved: \"resolved\", error: \"error\", errored: \"errored\" }, host: { properties: { \"attr.id\": \"this.id\" } }, exportAs: [\"reCaptcha\"], ngImport: i0, template: ``, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaComponent, decorators: [{\n type: Component,\n args: [{\n exportAs: \"reCaptcha\",\n selector: \"re-captcha\",\n template: ``,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: RecaptchaLoaderService }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_SETTINGS]\n }] }]; }, propDecorators: { id: [{\n type: Input\n }, {\n type: HostBinding,\n args: [\"attr.id\"]\n }], siteKey: [{\n type: Input\n }], theme: [{\n type: Input\n }], type: [{\n type: Input\n }], size: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], badge: [{\n type: Input\n }], errorMode: [{\n type: Input\n }], resolved: [{\n type: Output\n }], error: [{\n type: Output\n }], errored: [{\n type: Output\n }] } });\n\nclass RecaptchaCommonModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule, declarations: [RecaptchaComponent], exports: [RecaptchaComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [RecaptchaComponent],\n exports: [RecaptchaComponent],\n }]\n }] });\n\nclass RecaptchaModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, imports: [RecaptchaCommonModule], exports: [RecaptchaComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, providers: [RecaptchaLoaderService], imports: [RecaptchaCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [RecaptchaComponent],\n imports: [RecaptchaCommonModule],\n providers: [RecaptchaLoaderService],\n }]\n }] });\n\n/**\n * The main service for working with reCAPTCHA v3 APIs.\n *\n * Use the `execute` method for executing a single action, and\n * `onExecute` observable for listening to all actions at once.\n */\nclass ReCaptchaV3Service {\n constructor(zone, siteKey, \n // eslint-disable-next-line @typescript-eslint/ban-types\n platformId, baseUrl, nonce, language) {\n /** @internal */\n this.onLoadComplete = (grecaptcha) => {\n this.grecaptcha = grecaptcha;\n if (this.actionBacklog && this.actionBacklog.length > 0) {\n this.actionBacklog.forEach(([action, subject]) => this.executeActionWithSubject(action, subject));\n this.actionBacklog = undefined;\n }\n };\n this.zone = zone;\n this.isBrowser = isPlatformBrowser(platformId);\n this.siteKey = siteKey;\n this.nonce = nonce;\n this.language = language;\n this.baseUrl = baseUrl;\n this.init();\n }\n get onExecute() {\n if (!this.onExecuteSubject) {\n this.onExecuteSubject = new Subject();\n this.onExecuteObservable = this.onExecuteSubject.asObservable();\n }\n return this.onExecuteObservable;\n }\n get onExecuteError() {\n if (!this.onExecuteErrorSubject) {\n this.onExecuteErrorSubject = new Subject();\n this.onExecuteErrorObservable = this.onExecuteErrorSubject.asObservable();\n }\n return this.onExecuteErrorObservable;\n }\n /**\n * Executes the provided `action` with reCAPTCHA v3 API.\n * Use the emitted token value for verification purposes on the backend.\n *\n * For more information about reCAPTCHA v3 actions and tokens refer to the official documentation at\n * https://developers.google.com/recaptcha/docs/v3.\n *\n * @param {string} action the action to execute\n * @returns {Observable<string>} an `Observable` that will emit the reCAPTCHA v3 string `token` value whenever ready.\n * The returned `Observable` completes immediately after emitting a value.\n */\n execute(action) {\n const subject = new Subject();\n if (this.isBrowser) {\n if (!this.grecaptcha) {\n if (!this.actionBacklog) {\n this.actionBacklog = [];\n }\n this.actionBacklog.push([action, subject]);\n }\n else {\n this.executeActionWithSubject(action, subject);\n }\n }\n return subject.asObservable();\n }\n /** @internal */\n executeActionWithSubject(action, subject) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onError = (error) => {\n this.zone.run(() => {\n subject.error(error);\n if (this.onExecuteErrorSubject) {\n // We don't know any better at this point, unfortunately, so have to resort to `any`\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this.onExecuteErrorSubject.next({ action, error });\n }\n });\n };\n this.zone.runOutsideAngular(() => {\n try {\n this.grecaptcha.execute(this.siteKey, { action }).then((token) => {\n this.zone.run(() => {\n subject.next(token);\n subject.complete();\n if (this.onExecuteSubject) {\n this.onExecuteSubject.next({ action, token });\n }\n });\n }, onError);\n }\n catch (e) {\n onError(e);\n }\n });\n }\n /** @internal */\n init() {\n if (this.isBrowser) {\n if (\"grecaptcha\" in window) {\n this.grecaptcha = grecaptcha;\n }\n else {\n const langParam = this.language ? \"&hl=\" + this.language : \"\";\n loader.loadScript(this.siteKey, this.onLoadComplete, langParam, this.baseUrl, this.nonce);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: ReCaptchaV3Service, deps: [{ token: i0.NgZone }, { token: RECAPTCHA_V3_SITE_KEY }, { token: PLATFORM_ID }, { token: RECAPTCHA_BASE_URL, optional: true }, { token: RECAPTCHA_NONCE, optional: true }, { token: RECAPTCHA_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: ReCaptchaV3Service }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: ReCaptchaV3Service, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [RECAPTCHA_V3_SITE_KEY]\n }] }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_BASE_URL]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_NONCE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_LANGUAGE]\n }] }]; } });\n\nclass RecaptchaV3Module {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module, providers: [ReCaptchaV3Service] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module, decorators: [{\n type: NgModule,\n args: [{\n providers: [ReCaptchaV3Service],\n }]\n }] });\n\nclass RecaptchaValueAccessorDirective {\n constructor(host) {\n this.host = host;\n this.requiresControllerReset = false;\n }\n writeValue(value) {\n if (!value) {\n this.host.reset();\n }\n else {\n // In this case, it is most likely that a form controller has requested to write a specific value into the component.\n // This isn't really a supported case - reCAPTCHA values are single-use, and, in a sense, readonly.\n // What this means is that the form controller has recaptcha control state of X, while reCAPTCHA itself can't \"restore\"\n // to that state. In order to make form controller aware of this discrepancy, and to fix the said misalignment,\n // we'll be telling the controller to \"reset\" the value back to null.\n if (this.host.__unsafe_widgetValue !== value && Boolean(this.host.__unsafe_widgetValue) === false) {\n this.requiresControllerReset = true;\n }\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n if (this.requiresControllerReset) {\n this.requiresControllerReset = false;\n this.onChange(null);\n }\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n onResolve($event) {\n if (this.onChange) {\n this.onChange($event);\n }\n if (this.onTouched) {\n this.onTouched();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaValueAccessorDirective, deps: [{ token: RecaptchaComponent }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.1\", type: RecaptchaValueAccessorDirective, selector: \"re-captcha[formControlName],re-captcha[formControl],re-captcha[ngModel]\", host: { listeners: { \"resolved\": \"onResolve($event)\" } }, providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RecaptchaValueAccessorDirective),\n },\n ], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaValueAccessorDirective, decorators: [{\n type: Directive,\n args: [{\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RecaptchaValueAccessorDirective),\n },\n ],\n selector: \"re-captcha[formControlName],re-captcha[formControl],re-captcha[ngModel]\",\n }]\n }], ctorParameters: function () { return [{ type: RecaptchaComponent }]; }, propDecorators: { onResolve: [{\n type: HostListener,\n args: [\"resolved\", [\"$event\"]]\n }] } });\n\nclass RecaptchaFormsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, declarations: [RecaptchaValueAccessorDirective], imports: [FormsModule, RecaptchaCommonModule], exports: [RecaptchaValueAccessorDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, imports: [FormsModule, RecaptchaCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [RecaptchaValueAccessorDirective],\n exports: [RecaptchaValueAccessorDirective],\n imports: [FormsModule, RecaptchaCommonModule],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RECAPTCHA_BASE_URL, RECAPTCHA_LANGUAGE, RECAPTCHA_NONCE, RECAPTCHA_SETTINGS, RECAPTCHA_V3_SITE_KEY, ReCaptchaV3Service, RecaptchaComponent, RecaptchaFormsModule, RecaptchaLoaderService, RecaptchaModule, RecaptchaV3Module, RecaptchaValueAccessorDirective };\n"," <div class=\"registration-container\" *ngIf=\"{ termsAndConditionsContentJobseeker: 'text.TermsAndConditionsContentJobseeker' | translate : {site_name: (( website$ | async)?.displayName)},\n privacyPolicyContentJobseeker: 'text.PrivacyPolicyContentJobseeker' | translate : {site_name: (( website$ | async)?.displayName)},\n termsAndConditionsContentTitle: 'label.TermsAndConditions' | translate,\n privacyPolicyTitle: 'label.PrivacyPolicy' | translate\n } as data\">\n\n <div class=\"registration\">\n <app-spinner [isLoading]=\"isLoading$ | async\" [isFixedPosition]=\"false\">\n <div class=\"registration-heading\">\n <div class=\"registration-heading__main\">\n {{ \"label.Registration\" | translate }}\n </div>\n <div class=\"registration-heading__comment\">\n {{ \"label.ForJobseeker\" | translate }}\n </div>\n </div>\n <form [formGroup]=\"registrationForm\" #ngForm=\"ngForm\" (ngSubmit)=\"onRegister()\" class=\"form\">\n \n <div class=\"registration__email\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ \"label.Email\" | translate }}</mat-label>\n <input matInput formControlName=\"email\" />\n <mat-error *ngIf=\"registrationForm.controls['email'].errors?.required \">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n <mat-error *ngIf=\"registrationForm.controls['email'].errors?.pattern\">\n {{'message.IncorrectFormat' | translate}}\n </mat-error>\n <mat-error *ngIf=\"registrationForm.controls['email'].errors?.server != null\">\n {{ getValidationMessage(registrationForm.controls['email'].errors?.server) | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n \n \n <div class=\"registration__password\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ \"label.Password\" | translate }}</mat-label>\n <input matInput formControlName=\"password\" type=\"password\" />\n <mat-error *ngIf=\"registrationForm.controls['password'].errors?.required \">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n <mat-error *ngIf=\"registrationForm.controls['password'].errors?.minlength\">\n {{'message.PasswordTooShort' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n \n \n <div class=\"registration__name\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ \"label.Name\" | translate }}</mat-label>\n <input matInput formControlName=\"name\" />\n <mat-error *ngIf=\"registrationForm.controls['name'].errors?.required \">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n <mat-error *ngIf=\"registrationForm.controls['name'].errors?.pattern\">\n {{'message.IncorrectFormat' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n \n \n <div class=\"registration__surname\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ \"label.Surname\" | translate }}</mat-label>\n <input matInput formControlName=\"surname\" />\n <mat-error *ngIf=\"registrationForm.controls['surname'].errors?.required \">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n <mat-error *ngIf=\"registrationForm.controls['surname'].errors?.pattern\">\n {{'message.IncorrectFormat' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n \n <div class=\"registration__phone\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{ \"label.Phone\" | translate }}</mat-label>\n <input matInput formControlName=\"phone\" />\n <mat-error *ngIf=\"registrationForm.controls['phone'].errors?.required \">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n <mat-error *ngIf=\"registrationForm.controls['phone'].errors?.pattern\">\n {{'message.IncorrectFormat' | translate}}\n </mat-error>\n </mat-form-field>\n </div>\n \n \n <div class=\"registration__recaptcha\">\n <div style=\"transform:scale(0.9);transform-origin:0;\">\n <re-captcha formControlName=\"recaptcha\" siteKey=\"{{ recaptchaSiteKey$ | async }}\"></re-captcha>\n </div>\n <mat-error\n *ngIf=\"(registrationForm.controls['recaptcha'].touched || ngForm.submitted) && registrationForm.controls['recaptcha'].errors?.required \">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n </div>\n \n <div class=\"registration__terms\">\n <mat-checkbox class=\"privacy-policy\" formControlName=\"termsAndConditions\">\n <span class=\"terms__text\">{{'text.TermsAndConditionsAgreementPart1' | translate}}</span> \n <span (click)=\"onInfoPopup(data.termsAndConditionsContentJobseeker, data.termsAndConditionsContentTitle)\" class=\"terms__link\">{{'text.TermsAndConditionsAgreementLink1' | translate}}</span> \n <span class=\"terms__text\">{{'text.TermsAndConditionsAgreementPart2' | translate}}</span> \n <span (click)=\"onInfoPopup(data.privacyPolicyContentJobseeker, data.privacyPolicyTitle)\" class=\"terms__link\">{{'text.TermsAndConditionsAgreementLink2' | translate}}</span> \n <span class=\"temrs__text\">{{'text.TermsAndConditionsAgreementPart3' | translate}}</span>\n </mat-checkbox>\n <mat-error style=\"padding-left: 24px;\"\n *ngIf=\"(registrationForm.controls['termsAndConditions'].touched || ngForm.submitted) && registrationForm.controls['termsAndConditions'].errors?.required \">\n {{'message.YouMustAgreeToProceed' | translate}}\n </mat-error>\n </div>\n \n <div class=\"registration__submit\">\n <button class=\"registration__button\">\n {{ \"label.Registration\" | translate }}\n </button>\n </div>\n \n <div *ngIf=\"registrationFailed$ | async\" class=\"registration__failed-message\">\n <app-jobseeker-error-message\n [messageHeading]=\"'message.CommonServerErrorSummary' | translate\"\n [message]=\"'message.CommonServerErrorDetail' | translate\">\n </app-jobseeker-error-message>\n </div>\n </form>\n </app-spinner>\n </div>\n <div class=\"recruitment\">\n <app-jobseeker-recruitment-box></app-jobseeker-recruitment-box>\n </div>\n</div>","import { AfterViewInit, Component, Inject, OnInit, Renderer2 } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators, AbstractControl, ValidationErrors } from '@angular/forms';\nimport { select, Store } from '@ngrx/store';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { catchError, debounceTime, map } from 'rxjs/operators';\nimport { ApiResponse } from '@hrra/core';\nimport { getCvRegistrationPageSeoData, registerJobseeker } from 'src/app/root-store/jobseeker-store/jobseeker-registration/actions';\nimport { selectCvRegistrationPageMetaData, selectIsRegistrationLoadign, selectRegistrationFailed } from 'src/app/root-store/jobseeker-store/jobseeker-registration/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { DialogService } from 'src/app/shared/services/dialog.service';\nimport { JobseekerRegistrationRequestViewModel, JobseekerRegistrationValidationMessage, JobseekerService, ServerValidationResult } from '../shared/services/jobseeker.service';\nimport { selectCurrentWebsite, selectRecaptchaSiteKey } from 'src/app/root-store/selectors';\nimport { ProviderWebsite } from 'src/app/shared/models/provider-website';\nimport { MetaService } from 'src/app/shared/services/meta.service';\nimport { DOCUMENT } from '@angular/common';\nimport { FacebookService } from '@hrra/integrations';\nimport { hideCustomerChat, showCustomerChatDialog } from 'src/app/root-store/actions';\nimport { Patterns } from '@hrra/core';\n\n@Component({\n selector: 'app-jobseeker-registration',\n templateUrl: './jobseeker-registration.component.html',\n styleUrls: ['./jobseeker-registration.component.scss']\n})\nexport class JobseekerRegistrationComponent implements OnInit, AfterViewInit {\n\n metaDataSubscription: Subscription;\n subscription: Subscription;\n\n registrationForm: UntypedFormGroup;\n\n registrationFailed$: Observable<boolean>;\n website$: Observable<ProviderWebsite>;\n isLoading$: Observable<boolean>;\n\n recaptchaSiteKey$: Observable<string>;\n\n messagetTypeErrorTextMap: { [index: number]: string };\n\n constructor(private renderer2: Renderer2, @Inject(DOCUMENT) private _document, private jobseekerService: JobseekerService, private store: Store<AppState>, private dialogService: DialogService, private metaService: MetaService) {\n this.registrationForm = new UntypedFormGroup({\n\n email: new UntypedFormControl(null, [Validators.required, Validators.pattern(Patterns.emailNew)], this.validateEmail.bind(this),),\n password: new UntypedFormControl(null, [Validators.required, Validators.minLength(8)]),\n name: new UntypedFormControl(null, [Validators.required, Validators.pattern(Patterns.personName)]),\n surname: new UntypedFormControl(null, [Validators.required, Validators.pattern(Patterns.personName)]),\n phone: new UntypedFormControl(null, [Validators.required, Validators.pattern(Patterns.phoneNumberNew)]),\n termsAndConditions: new UntypedFormControl(null, [Validators.requiredTrue]),\n recaptcha: new UntypedFormControl(null, Validators.required)\n });\n\n this.messagetTypeErrorTextMap = {\n [JobseekerRegistrationValidationMessage.EmailRegisteredButBelongsToCustomer]: 'text.EmailRegisteredButBelongsToCustomer',\n [JobseekerRegistrationValidationMessage.EmailRegisteredButJobseekerPending]: 'text.EmailRegisteredToAccessYourAccountPleaseLogin', // Mari may chnage her mind, commenting out instead of removing text.EmailRegisteredButJobseekerPending',\n [JobseekerRegistrationValidationMessage.EmailRegisteredToAccessYourAccountPleaseLogin]: 'text.EmailRegisteredToAccessYourAccountPleaseLogin'\n };\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.store.dispatch(showCustomerChatDialog()), 1000);\n }\n\n\n\n\n onRegister() {\n\n if (this.registrationForm.valid) {\n let value = this.registrationForm.value;\n let request = <JobseekerRegistrationRequestViewModel>{\n Email: value.email,\n Name: value.name,\n Surname: value.surname,\n Password: value.password,\n IsAgreementChecked: value.termsAndConditions,\n PhoneNumber: value.phone,\n ReCaptchaToken: value.recaptcha//TODO\n };\n\n this.store.dispatch(registerJobseeker({ payload: request}));\n }\n }\n\n validateEmail({ value }: AbstractControl): Observable<ValidationErrors | null> {\n\n return this.jobseekerService.validateEmail(value).pipe(\n debounceTime(500),\n map(d => {\n if (d.data.isSuccess) {\n return null;\n }\n else {\n return { server: d.data.items[0].message };\n }\n }),\n catchError((response: ApiResponse<ServerValidationResult<JobseekerRegistrationValidationMessage>>) => {\n if (response.error.isConnectionFailure) {\n return null;\n }\n else {\n return null;\n //TODO some message about failed validation?\n //return of({ server: JobseekerRegistrationValidationMessage.CannotConnectToServer })\n }\n })\n );\n }\n\n getValidationMessage(messageType: JobseekerRegistrationValidationMessage) {\n return this.messagetTypeErrorTextMap[messageType];\n }\n\n ngOnInit(): void {\n // let fb = this._document.getElementById(\"fb-root\");\n // this.renderer2.removeStyle(fb, \"display\");\n\n this.store.dispatch(getCvRegistrationPageSeoData());\n\n this.registrationFailed$ = this.store.pipe(select(selectRegistrationFailed));\n this.website$ = this.store.pipe(select(selectCurrentWebsite));\n \n this.isLoading$ = this.store.pipe(select(selectIsRegistrationLoadign));\n \n this.recaptchaSiteKey$ = this.store.pipe(select(selectRecaptchaSiteKey));\n\n this.metaDataSubscription = this.store.pipe(select(selectCvRegistrationPageMetaData)).subscribe(\n (data) => {\n this.metaService.updateMetaData(data.website, data.metaData);\n }\n )\n }\n\n\n ngOnDestroy() {\n this.metaDataSubscription.unsubscribe();\n \n this.store.dispatch(hideCustomerChat());\n }\n\n onInfoPopup(text, title){\n this.dialogService.infoPopup(text, title);\n }\n}\n","<div class=\"container\" *ngIf=\"{\n maxResendAttemptsReached: maxResendAttemptsReached$ | async, \n emailResendToken: emailResendToken$ | async,\n systemConfigs: systemConfigs$ | async } as data\">\n <div [innerHtml]=\"'text.ActivationPageLinkInformation' | translate: { 'email': data.systemConfigs?.jobseeker.contactEmail } | safeHtml\" >\n </div>\n <div *ngIf=\"!data.maxResendAttemptsReached && data.emailResendToken!==null\">\n <span class=\"email\" (click)=\"onResend(data.emailResendToken)\">{{ 'label.ResendActivationEmail' | translate}}</span>\n </div>\n <div *ngIf=\"data.maxResendAttemptsReached\">\n <div class=\"warning\" [innerHtml]=\"('message.MaxNumberOfAttemptsReached' | translate) | safeHtml\"></div>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { resendActivationEmail } from 'src/app/root-store/jobseeker-store/jobseeker-registration/actions';\nimport { selectEmailVerificationResendToken, selectResendMaxAttemptsReached } from 'src/app/root-store/jobseeker-store/jobseeker-registration/selectors';\nimport { selectSystemConfigs } from 'src/app/root-store/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { SystemConfig } from 'src/app/shared/models/system-config-model';\n\n@Component({\n selector: 'app-jobseeker-registration-complete',\n templateUrl: './jobseeker-registration-complete.component.html',\n styleUrls: ['./jobseeker-registration-complete.component.scss']\n})\nexport class JobseekerRegistrationCompleteComponent implements OnInit {\n\n public maxResendAttemptsReached$: Observable<boolean>;\n public emailResendToken$: Observable<string>;\n public systemConfigs$: Observable<SystemConfig>;\n\n constructor(private store: Store<AppState>) { }\n\n onResend(emailResednToken: string){\n this.store.dispatch(resendActivationEmail({ payload: { emailVerificationResendToken: emailResednToken }}));\n }\n\n ngOnInit(): void {\n this.maxResendAttemptsReached$ = this.store.pipe(select(selectResendMaxAttemptsReached));\n this.emailResendToken$ = this.store.pipe(select(selectEmailVerificationResendToken));\n this.systemConfigs$ = this.store.pipe(select(selectSystemConfigs));\n }\n}\n","<div *ngIf = \"{privacyList: privacyList$ | async,\n selectedPrivacy: selectedPrivacy$ | async\n } as data\">\n <mat-radio-group (change)=\"onChangeJobseekerPrivacy($event)\" [ngModel]=\"data.selectedPrivacy\">\n <div *ngFor=\"let privacy of data.privacyList\" class=\"item\">\n <mat-radio-button [value]=\"privacy.value\">\n <div [ngClass]=\"{'item__label--red': data.selectedPrivacy == privacyEnum.Hidden && privacy.value == privacyEnum.Hidden}\" class=\"item__label\">{{privacyMap[privacy.value].label | translate}}</div>\n </mat-radio-button>\n <div [ngClass]=\"{'item__text--red': data.selectedPrivacy == privacyEnum.Hidden && privacy.value == privacyEnum.Hidden}\" class=\"item__text\">{{privacyMap[privacy.value].text | translate}}</div>\n </div>\n </mat-radio-group>\n\n <div class=\"buttons\">\n <app-button (click)=\"onSave(data.selectedPrivacy)\" [text]=\"'label.Save' | translate\" [type]=\"buttonType.coloured\" [typeAttribute]=\"buttonAttributeType.submit\" class=\"buttons__save\"></app-button>\n <app-button (click)=\"onCancel()\" [text]=\"'label.Cancel' | translate\" [type]=\"buttonType.uncoloured\" [typeAttribute]=\"buttonAttributeType.button\"></app-button>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { MatLegacyRadioChange as MatRadioChange } from '@angular/material/legacy-radio';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { cancelChanges, changeJobseekerPrivacy, loadJobseekerPrivacy, updateJobseekerPrivacy } from 'src/app/root-store/jobseeker-store/jobseeker-settings/actions';\nimport { selectJobseekerPrivacyList, selectSelectedJobseekerPrivacy } from 'src/app/root-store/jobseeker-store/jobseeker-settings/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { ButtonTypeEnum } from '@hrra/ui';\nimport { ButtonTypeAttributeEnum } from '@hrra/ui';\nimport { BasicOptionItem, JobseekerPrivacyEnum } from '@hrra/common-models';\n\n@Component({\n selector: 'app-jobseeker-settings-privacy',\n templateUrl: './jobseeker-settings-privacy.component.html',\n styleUrls: ['./jobseeker-settings-privacy.component.scss']\n})\nexport class JobseekerSettingsPrivacyComponent implements OnInit {\n\n privacyList$: Observable<BasicOptionItem[]>;\n selectedPrivacy$: Observable<number>;\n\n public privacyEnum: any;\n public buttonType: any;\n public buttonAttributeType: any;\n public privacyMap: {[index: number]: {label: string, text: string}};\n\n constructor(private store: Store<AppState>) { \n this.privacyEnum = JobseekerPrivacyEnum;\n this.buttonType = ButtonTypeEnum;\n this.buttonAttributeType = ButtonTypeAttributeEnum;\n }\n\n ngOnInit(): void {\n\n setTimeout(() => {\n this.store.dispatch(loadJobseekerPrivacy());\n\n }, 0);\n\n this.privacyList$ = this.store.pipe(select(selectJobseekerPrivacyList));\n this.selectedPrivacy$ = this.store.pipe(select(selectSelectedJobseekerPrivacy));\n\n this.privacyMap = {\n [JobseekerPrivacyEnum.AvailableToAllCustomers]: {label: 'label.AvailableToAllCustomers', text: 'text.JobseekerAvailableToAllCustomersPrivacyDefinition'},\n [JobseekerPrivacyEnum.Public]: {label: 'label.Public', text: 'text.JobseekerPublicPrivacyDefinition'},\n [JobseekerPrivacyEnum.Hidden]: {label: 'label.HiddenFromEveryone', text: 'text.JobseekerHiddenPrivacyDefinition'}\n }\n }\n\n onChangeJobseekerPrivacy(event: MatRadioChange){\n this.store.dispatch(changeJobseekerPrivacy({payload: {privacyId: event.value}}));\n }\n\n onCancel(){\n this.store.dispatch(cancelChanges());\n }\n\n onSave(privacyId: number){\n this.store.dispatch(updateJobseekerPrivacy({payload: {privacyId: privacyId}}));\n }\n}\n","<div [formGroup]=\"editForm\" #ngForm=\"ngForm\" class=\"container\">\n <div class=\"form-item current-pass\">\n <label class=\"form-item__label current-pass__label\">{{'label.CurrentPassword' | translate}}</label>\n <input class=\"form-item__value current-pass__value\" type=\"password\" formControlName=\"currentPass\" name=\"currentPass\">\n <mat-error *ngIf=\"editForm.controls['currentPass'].hasError('required') && (editForm.controls['currentPass'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n <mat-error *ngIf=\"isCurrentPasswordIncorrect$ | async\" class=\"validation-message\">{{'message.CurrentPasswordYouEnteredIsIncorrect' | translate}}</mat-error>\n </div>\n\n <div class=\"form-item new-pass\">\n <label class=\"form-item__label new-pass__label\">{{'label.NewPassword' | translate}}</label>\n <input class=\"form-item__value new-pass__value\" type=\"password\" formControlName=\"newPass\" name=\"newPass\">\n <mat-error *ngIf=\"editForm.controls['newPass'].hasError('required') && (editForm.controls['newPass'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n <mat-error *ngIf=\"editForm.controls['newPass'].hasError('minlength') && (editForm.controls['newPass'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.PasswordTooShort' | translate}}</mat-error>\n </div>\n\n <div class=\"form-item repeat-pass\">\n <label class=\"form-item__label repeat-pass__label\">{{'label.RepeatPassword' | translate}}</label>\n <input class=\"form-item__value repeat-pass__value\" type=\"password\" formControlName=\"repeatPass\" name=\"repeatPass\">\n <mat-error *ngIf=\"editForm.controls['repeatPass'].hasError('required') && (editForm.controls['repeatPass'].touched || ngForm.submitted)\" class=\"validation-message\">{{'message.MandatoryField' | translate}}</mat-error>\n <mat-error *ngIf=\"(editForm.hasError('PasswordMismatch') && (editForm.controls['repeatPass'].touched || ngForm.submitted)) || (jobseekerPasswordMismatch$ | async)\" class=\"validation-message\">{{'message.PasswordMismatch' | translate}}</mat-error>\n </div>\n\n <div class=\"buttons\">\n <app-button (click)=\"onSave()\" [text]=\"'label.Save' | translate\" [type]=\"buttonType.coloured\" [typeAttribute]=\"buttonAttributeType.submit\" class=\"buttons__save\"></app-button>\n <app-button (click)=\"onCancel()\" [text]=\"'label.Cancel' | translate\" [type]=\"buttonType.uncoloured\" [typeAttribute]=\"buttonAttributeType.button\"></app-button>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { ButtonTypeAttributeEnum } from '@hrra/ui';\nimport { ButtonTypeEnum } from '@hrra/ui';\nimport { cancelJobseekerPasswordChanges, changeJobseekerPassword } from 'src/app/root-store/jobseeker-store/jobseeker-settings/actions';\nimport { selectJobseekerCurrentPasswordIsIncorrect, selectJobseekerPasswordMismatch } from 'src/app/root-store/jobseeker-store/jobseeker-settings/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { JobseekerChangePasswordViewModel } from '../shared/services/jobseeker-settings.service';\n\n@Component({\n selector: 'app-jobseeker-settings-change-password',\n templateUrl: './jobseeker-settings-change-password.component.html',\n styleUrls: ['./jobseeker-settings-change-password.component.scss']\n})\nexport class JobseekerSettingsChangePasswordComponent implements OnInit {\n \n editForm: UntypedFormGroup;\n\n isCurrentPasswordIncorrect$: Observable<boolean>;\n jobseekerPasswordMismatch$: Observable<boolean>;\n\n public buttonType: any;\n public buttonAttributeType: any;\n\n constructor(private fb: UntypedFormBuilder, private store: Store<AppState>) { \n this.buttonType = ButtonTypeEnum;\n this.buttonAttributeType = ButtonTypeAttributeEnum;\n\n this.editForm = this.fb.group({\n currentPass: new UntypedFormControl(null, [Validators.required]),\n newPass: new UntypedFormControl(null, [Validators.required, Validators.minLength(8)]),\n repeatPass: new UntypedFormControl(null, [Validators.required])\n }, { validator: this.customValidator})\n }\n\n customValidator(group : UntypedFormGroup) : {[s:string ]: boolean} {\n if (group){\n let newPass = group.controls['newPass'].value;\n let repeatPass = group.controls['repeatPass'].value;\n\n if(newPass != null && repeatPass != null && newPass != repeatPass) {\n return {'PasswordMismatch': true};\n }\n }\n return null;\n }\n\n ngOnInit(): void {\n this.isCurrentPasswordIncorrect$ = this.store.pipe(select(selectJobseekerCurrentPasswordIsIncorrect));\n this.jobseekerPasswordMismatch$ = this.store.pipe(select(selectJobseekerPasswordMismatch));\n }\n\n onCancel(){\n this.editForm.get('currentPass').reset();\n this.editForm.get('newPass').reset();\n this.editForm.get('repeatPass').reset();\n\n this.store.dispatch(cancelJobseekerPasswordChanges());\n }\n\n onSave(){\n if(this.editForm.valid){\n var value = this.editForm.value\n\n let updateData = <JobseekerChangePasswordViewModel>{\n currentPassword: value.currentPass,\n newPassword: value.newPass,\n repeatNewPassword: value.repeatPass\n }\n\n this.store.dispatch(changeJobseekerPassword({payload: updateData}));\n\n this.editForm.get('currentPass').reset();\n this.editForm.get('newPass').reset();\n this.editForm.get('repeatPass').reset();\n \n }\n }\n}\n","<div *ngIf=\"{currentBlacklist: currentBlacklist$ | async,\n customerList: customerList$ | async,\n jobseekerIgnoredCustomerList: jobseekerIgnoredCustomerList$ | async\n } as data\" class=\"container\">\n <div class=\"blacklist\">\n <div class=\"customers\">\n <div class=\"customers-search\">\n <input id=\"lbl-search\" class=\"customers-search__value\" (input)=\"onCustomerSearchChange($event.target.value)\" type=\"text\"/>\n <label for=\"lbl-search\" class=\"customers-search__label\">\n <svg-icon src=\"/assets/icons/search.svg\" [svgClass]=\"'customers-search__icon'\"></svg-icon>\n </label>\n </div>\n <div class=\"customers-list\">\n <div class=\"customers-list__container\">\n <div *ngFor=\"let customer of data.customerList\" (click)='onSelectCustomer(customer)' class=\"customers-list__item\">\n {{ customer.name }}\n </div>\n </div>\n </div>\n <div *responsive=\"{sizes:{min: customerListMinSize}}\" class=\"customers-list\" [style.height.px]=\"customerListHeight\">\n <div class=\"customers-list__container\">\n <div *ngFor=\"let customer of data.customerList\" (click)='onSelectCustomer(customer)' class=\"customers-list__item\">\n {{ customer.name }}\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"content content--right\">\n <div class=\"selected-customers\" #selectedCustomers>\n <div *ngFor=\"let customer of data.jobseekerIgnoredCustomerList\">\n <div (click)=\"removeSelectedCustomer(customer)\" class=\"selected-customers__item\">\n {{ customer.name }}\n <svg-icon src=\"/assets/icons/remove.svg\" class=\"remove-icon\"></svg-icon> \n </div> \n </div>\n </div>\n \n <div class=\"text\" #text>\n {{ 'text.BlacklistDescription' | translate }}\n </div>\n </div>\n </div>\n \n <div class=\"buttons\">\n <app-button (click)=\"onSave(data.currentBlacklist)\" [text]=\"'label.Save' | translate\" [type]=\"buttonType.coloured\" [typeAttribute]=\"buttonAttributeType.submit\" class=\"buttons__save\"></app-button>\n <app-button (click)=\"onCancel()\" [text]=\"'label.Cancel' | translate\" [type]=\"buttonType.uncoloured\" [typeAttribute]=\"buttonAttributeType.button\"></app-button>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { ButtonTypeAttributeEnum } from '@hrra/ui';\nimport { ButtonTypeEnum } from '@hrra/ui';\nimport { cancelBlacklistChanges, loadJobseekerBlacklist, removeSelectedBlacklistItem, selectBlackListItem, updateJobseekerBlacklist } from 'src/app/root-store/jobseeker-store/jobseeker-settings/actions';\nimport { searchedCustomerList, selectCurrentBlacklist, selectCustomerList, selectJobseekerIgnoredCustomerList } from 'src/app/root-store/jobseeker-store/jobseeker-settings/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { JobseekerBlacklistUpdateViewModel } from '../shared/services/jobseeker-settings.service';\nimport { BasicOptionItem } from '@hrra/common-models';\n\n@Component({\n selector: 'app-jobseeker-settings-blacklist',\n templateUrl: './jobseeker-settings-blacklist.component.html',\n styleUrls: ['./jobseeker-settings-blacklist.component.scss']\n})\nexport class JobseekerSettingsBlacklistComponent implements OnInit, AfterViewInit {\n\n @ViewChild('text') textElement: ElementRef;\n @ViewChild('selectedCustomers') selectedCustomersElement: ElementRef;\n customerListHeight: number;\n\n public customerListMaxSize = 1023;\n public customerListMinSize = 1024;\n\n public buttonAttributeType: any;\n\n customerList$: Observable<BasicOptionItem[]>;\n jobseekerIgnoredCustomerList$: Observable<BasicOptionItem[]>;\n currentBlacklist$: Observable<JobseekerBlacklistUpdateViewModel>;\n\n public buttonType: any;\n\n constructor(private store: Store<AppState>) {\n this.buttonType = ButtonTypeEnum;\n this.buttonAttributeType = ButtonTypeAttributeEnum;\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.updateCustomerHeight(), 1000);\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.store.dispatch(loadJobseekerBlacklist({ payload: { name: null }}));\n }, 0);\n\n this.customerList$ = this.store.pipe(select(selectCustomerList));\n this.jobseekerIgnoredCustomerList$ = this.store.pipe(select(selectJobseekerIgnoredCustomerList));\n this.currentBlacklist$ = this.store.pipe(select(selectCurrentBlacklist));\n }\n\n onCustomerSearchChange(searchValue: string): void {\n searchValue = searchValue.trim();\n this.store.dispatch(loadJobseekerBlacklist({ payload: {name: searchValue} }));\n }\n\n onSelectCustomer(customer) {\n this.store.dispatch(selectBlackListItem({ payload: { customer: customer } }));\n\n this.updateCustomerHeight();\n }\n\n removeSelectedCustomer(customer) {\n this.store.dispatch(removeSelectedBlacklistItem({ payload: { customer: customer } }));\n\n this.updateCustomerHeight();\n }\n\n onSave(data) {\n this.store.dispatch(updateJobseekerBlacklist({ payload: data }));\n }\n\n onCancel() {\n this.store.dispatch(cancelBlacklistChanges());\n\n this.updateCustomerHeight();\n }\n\n updateCustomerHeight() {\n setTimeout(() => {\n let selectedCustomersHeight = this.selectedCustomersElement.nativeElement.offsetHeight;\n let textHeight = this.textElement.nativeElement.offsetHeight;\n this.customerListHeight = selectedCustomersHeight + textHeight;\n }, 0);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { selectIsJobseekerSettingsLoading, selectIsJobseekerSettingUpdating } from 'src/app/root-store/jobseeker-store/jobseeker-settings/selectors';\nimport { selectCurrentWebsiteNameForSeo, selectIsPasswordChangeRequired } from 'src/app/root-store/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { MetaService } from 'src/app/shared/services/meta.service';\n\n@Component({\n selector: 'app-jobseeker-settings',\n templateUrl: './jobseeker-settings.component.html',\n styleUrls: ['./jobseeker-settings.component.scss']\n})\nexport class JobseekerSettingsComponent implements OnInit {\n \n metaDataSubscription: Subscription;\n\n isLoading$: Observable<boolean>;\n isUpdating$: Observable<boolean>;\n isJobseekerPasswordChangeRequired$: Observable<boolean>;\n\n constructor(private store: Store<AppState>, private metaService: MetaService) { }\n\n ngOnInit(): void {\n this.isLoading$ = this.store.pipe(select(selectIsJobseekerSettingsLoading));\n this.isUpdating$ = this.store.pipe(select(selectIsJobseekerSettingUpdating));\n this.isJobseekerPasswordChangeRequired$ = this.store.pipe(select(selectIsPasswordChangeRequired));\n\n this.metaDataSubscription = this.store.pipe(select(selectCurrentWebsiteNameForSeo)).subscribe(d => {\n this.metaService.updateMetaData(d);\n });\n }\n\n ngOnDestroy() {\n this.metaDataSubscription.unsubscribe()\n }\n}\n","<app-spinner [isLoading]=\"isLoading$ | async\">\n <div class=\"container\">\n <hrra-advanced-tab-group [activeTabIndex]=\"(isJobseekerPasswordChangeRequired$ | async) ? 0 : 1\">\n <hrra-advanced-tab [label]=\"'label.ChangePassword' | translate\">\n <div class=\"tab\">\n <app-jobseeker-settings-change-password></app-jobseeker-settings-change-password>\n </div>\n </hrra-advanced-tab>\n \n <hrra-advanced-tab [label]=\"'label.Privacy' | translate\" class=\"tab\">\n <div class=\"tab\">\n <app-spinner [isLoading]=\"isUpdating$ | async\" [isFixedPosition]=\"false\">\n <app-jobseeker-settings-privacy></app-jobseeker-settings-privacy>\n </app-spinner>\n </div>\n \n </hrra-advanced-tab>\n \n <hrra-advanced-tab [label]=\"'label.BlackList' | translate\" class=\"tab\">\n <div class=\"tab\">\n <app-spinner [isLoading]=\"isUpdating$ | async\" [isFixedPosition]=\"false\">\n <app-jobseeker-settings-blacklist></app-jobseeker-settings-blacklist>\n </app-spinner>\n </div>\n </hrra-advanced-tab>\n </hrra-advanced-tab-group>\n </div>\n</app-spinner>","import { Component, OnInit } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { loadJobseekerLookups } from 'src/app/root-store/jobseeker-store/actions';\nimport { AppState } from 'src/app/root-store/state';\n\n@Component({\n selector: 'app-jobseeker-shell',\n templateUrl: './jobseeker-shell.component.html',\n styleUrls: ['./jobseeker-shell.component.scss']\n})\nexport class JobseekerShellComponent implements OnInit {\n\n constructor(private store: Store<AppState>) { }\n\n ngOnInit(): void {\n this.store.dispatch(loadJobseekerLookups());\n }\n}\n","<router-outlet></router-outlet>","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { JobseekerSubscriptionState } from './state';\nimport { selectCategoriesMap, selectHeadCategories, selectLocalitiesMap } from '../../selectors';\nimport { selectJobseekerStoreState } from '../jobseeker-profile/selectors';\n\nexport const selectJobseekerSubscriptionStoreState = createSelector(\n selectJobseekerStoreState,\n s => s.subscription\n);\n\n\nexport const selectSubscriberSelectedCategories = createSelector(\n selectJobseekerSubscriptionStoreState,\n selectCategoriesMap,\n (s, c) => {\n return Object.keys(c).length == 0 ? [] : s.selectedCategories.map(cc => c[cc]);\n }\n);\n\nexport const selectSubscriberSelectedCategoryIds = createSelector(\n selectJobseekerSubscriptionStoreState,\n s => s.selectedCategories\n);\n\nexport const selectSubscriberSelectedCategoriesMap = createSelector(\n selectSubscriberSelectedCategories,\n selectHeadCategories,\n (s, cc) => {\n\n let result = cc.reduce((d, c) => {\n d[c.categoryId] = false;\n return d;\n }, {})\n\n s.forEach(c => {\n result[c.categoryId] = true;\n });\n\n return result;\n }\n);\n\nexport const selectAtLeastOneCategorySelected = createSelector(\n selectSubscriberSelectedCategories,\n s => s.length > 0\n);\n\n\nexport const selectCategoriesTouched = createSelector(\n selectJobseekerSubscriptionStoreState,\n s => s.categoriesTouched\n);\n\nexport const selectSubscriptionCategories = createSelector(\n selectJobseekerSubscriptionStoreState,\n selectCategoriesMap,\n (s, c) => s.subscription?.subscibedCategoryIds.map(cc => c[cc]) ?? []\n);\n\nexport const selectSubscriptionLocalities = createSelector(\n selectJobseekerSubscriptionStoreState,\n selectLocalitiesMap,\n (s, l) => s.subscription?.selectedLocalityIds.map(c => l[c]) ?? []\n);\n\nexport const selectIsEditModeOn = createSelector(\n selectJobseekerSubscriptionStoreState,\n s => s.isEditMode\n);\n\nexport const selectSubscriptionFormInitialValue = createSelector(\n selectJobseekerSubscriptionStoreState,\n s => {\n let sub = s.subscription;\n return sub && {\n localities: sub.selectedLocalityIds\n };\n }\n);","<ng-container *ngIf=\"{\n subscriptionCategories: subscriptionCategories$ | async,\n subscriptionLocalities: subscriptionLocalities$ | async\n } as data\">\n\n<div class=\"subscription-edit\">\n <h1>{{'label.Subscription' | translate}}</h1>\n <div class=\"subscription-details\">\n <div class=\"subscription-details__categories display-item\">\n <div class=\"categories__label display-item__label\">{{'label.Categories' | translate}}:</div>\n <div class=\"categories__list display-item__list\">\n <span *ngFor=\"let category of data.subscriptionCategories; let last=last;\">\n {{category.name}}{{last ? '' : ', '}}\n </span>\n </div>\n </div>\n <div class=\"subscription-details__localities display-item\">\n <div class=\"localities__label display-item__label\">{{'label.Cities' | translate}}:</div>\n <div class=\"localities__list display-item__list\">\n <span *ngFor=\"let locality of data.subscriptionLocalities; let last=last;\">\n {{locality.name}}{{last ? '' : ', '}}\n </span>\n </div>\n </div>\n </div>\n <div class=\"button-container\">\n <button class=\"button-container__button\" (click)=\"onEdit()\">{{'label.Edit' | translate}}</button>\n </div>\n</div>\n\n</ng-container>\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Locality, OccupationCategory } from '@hrra/common-models';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { activateEditMode, loadSubscription } from 'src/app/root-store/jobseeker-store/jobseeker-subscription/actions';\nimport { selectSubscriptionCategories, selectSubscriptionLocalities } from 'src/app/root-store/jobseeker-store/jobseeker-subscription/selectors';\nimport { AppState } from 'src/app/root-store/state';\n\n@Component({\n selector: 'app-view-subscription',\n templateUrl: './view-jobseeker-subscription.component.html',\n styleUrls: ['./view-jobseeker-subscription.component.scss']\n})\nexport class ViewJobseekerSubscriptionComponent implements OnInit {\n\n public subscriptionCategories$: Observable<OccupationCategory[]>;\n public subscriptionLocalities$: Observable<Locality[]>;\n\n\n onEdit(){\n this.store.dispatch(activateEditMode());\n this.router.navigate(['/jobseeker/subscription/edit']);\n }\n\n constructor(private route: ActivatedRoute, private router: Router, private store: Store<AppState>) { }\n\n ngOnInit(): void {\n this.subscriptionCategories$ = this.store.pipe(select(selectSubscriptionCategories));\n this.subscriptionLocalities$ = this.store.pipe(select(selectSubscriptionLocalities));\n\n this.store.dispatch(loadSubscription());\n }\n\n}\n","<ng-container *ngIf=\"{\n headCategories: headCategories$ | async,\n selectedCategoriesMap: selectedCategoriesMap$ | async,\n categoriesTouched: categoriesTouched$ | async,\n atLeastOneCategorySelected: atLeastOneCategorySelected$ | async,\n localities: localities$ | async,\n selectedCategories: selectedCategories$ | async,\n formInitialValue: formInitialValue$ | async,\n isEditMode: isEditMode$ | async\n} as data\">\n <div class=\"top-container\">\n <h1>{{'label.Subscription' | translate}}</h1>\n <form [formGroup]=\"subscriptionForm\" #ngForm=\"ngForm\" [appConnectForm]=\"data.formInitialValue\"\n (ngSubmit)=\"onSubscribe(data.selectedCategories, data.isEditMode, data.code)\">\n <div class=\"subscription-details-container\">\n <div>{{'text.SelectCategoriesInfo' | translate}}</div>\n <div class=\"categories-container\">\n <div *ngFor=\"let category of data.headCategories\" class=\"categories-container__item\">\n <mat-checkbox (change)=\"onToggleCategory(category, $event)\"\n [ngModel]=\"data.selectedCategoriesMap[category.categoryId]\" [ngModelOptions]=\"{standalone: true}\">\n {{category.name}}</mat-checkbox>\n </div>\n </div>\n <mat-error *ngIf=\"(data.categoriesTouched || ngForm.submitted) && !data.atLeastOneCategorySelected\">\n {{'message.SelectAtLeastOneCategory' | translate}}</mat-error>\n <div class=\"localities-container\">\n <div class=\"localities-container__description\">{{'text.SelectLocalitiesInfo' | translate}}</div>\n <div class=\"localities-container__input\">\n <mat-form-field appearance=\"outline\" class=\"localities-container__mat-form-field\">\n <mat-label>{{'label.SelectCities' | translate}}</mat-label>\n <mat-select formControlName=\"localities\" multiple>\n <mat-option *ngFor=\"let locality of data.localities\" [value]=\"locality.localityId\">{{locality.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div class=\"button-container\">\n <button class=\"button-container__item button-container__item--green\"\n type=\"submit\">{{'label.Save' | translate}}</button>\n <button (click)=\"onCancelSubscribe()\" class=\"button-container__item button-container__item--grey\"\n type=\"button\">{{'label.Cancel' | translate}}</button>\n </div>\n </form>\n </div>\n</ng-container>\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractControl, UntypedFormControl, UntypedFormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { MatLegacyCheckboxChange as MatCheckboxChange } from '@angular/material/legacy-checkbox';\nimport { Router } from '@angular/router';\nimport { Locality, OccupationCategory } from '@hrra/common-models';\nimport { select, Store } from '@ngrx/store';\nimport { Observable, ObservedValueOf } from 'rxjs';\nimport { loadSubscription, updateSelectedCategories, updateSubscription } from 'src/app/root-store/jobseeker-store/jobseeker-subscription/actions';\nimport { selectAtLeastOneCategorySelected, selectCategoriesTouched, selectIsEditModeOn, selectSubscriberSelectedCategoriesMap, selectSubscriberSelectedCategoryIds, selectSubscriptionFormInitialValue } from 'src/app/root-store/jobseeker-store/jobseeker-subscription/selectors';\nimport { selectHeadCategories, selectLocalities } from 'src/app/root-store/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { Dictionary } from '@hrra/core';\n\n@Component({\n selector: 'app-create-edit-subscription',\n templateUrl: './edit-jobseeker-subscription.component.html',\n styleUrls: ['./edit-jobseeker-subscription.component.scss']\n})\nexport class EditJobseekerSubscriptionComponent implements OnInit {\n\n subscriptionForm: UntypedFormGroup;\n\n public headCategories$: Observable<OccupationCategory[]>;\n public selectedCategoriesMap$: Observable<Dictionary<boolean>>;\n public selectedCategories$: Observable<number[]>;\n public atLeastOneCategorySelected$: Observable<boolean>;\n public categoriesTouched$: Observable<boolean>;\n public localities$: Observable<Locality[]>;\n public isEditMode$: Observable<boolean>;\n\n public formInitialValue$: Observable<any>;\n\n constructor(private store: Store<AppState>, private router: Router) {\n this.subscriptionForm = new UntypedFormGroup({\n localities: new UntypedFormControl(null)\n\n });\n }\n\n ngOnInit(): void {\n this.headCategories$ = this.store.pipe(select(selectHeadCategories));\n\n this.atLeastOneCategorySelected$ = this.store.pipe(select(selectAtLeastOneCategorySelected));\n\n this.selectedCategoriesMap$ = this.store.pipe(select(selectSubscriberSelectedCategoriesMap));\n\n this.selectedCategories$ = this.store.pipe(select(selectSubscriberSelectedCategoryIds));\n\n this.categoriesTouched$ = this.store.pipe(select(selectCategoriesTouched));\n\n this.localities$ = this.store.pipe(select(selectLocalities));\n\n this.isEditMode$ = this.store.pipe(select(selectIsEditModeOn));\n\n this.formInitialValue$ = this.store.pipe(select(selectSubscriptionFormInitialValue));\n\n this.store.dispatch(loadSubscription());\n }\n\n onSubscribe(categoryIds: number[], isEditMode: boolean, code: string) {\n let value = this.subscriptionForm.value;\n\n if (isEditMode && this.subscriptionForm.valid && categoryIds.length > 0) {\n this.store.dispatch(updateSubscription({\n payload: {\n OccupationCategoryIds: categoryIds,\n LocalityIds: value.localities,\n DailyDigestOn: false,\n }\n }));\n }\n\n }\n\n onToggleCategory(category: OccupationCategory, event: MatCheckboxChange) {\n this.store.dispatch(updateSelectedCategories({ payload: { categoryId: category.categoryId, checked: event.checked } }));\n }\n\n onCancelSubscribe(){\n this.router.navigate(['/jobseeker/subscription']);\n }\n\n}\n","<div *ngIf=\"{userRegistrationNotFound: userRegistrationNotFound$ | async,\n isResetSuccessed: isResetSuccessed$ | async,\n recaptchaSiteKey: recaptchaSiteKey$ | async,\n resetPasswordModel: resetPasswordModel$ | async} as data\" class=\"container\">\n <a [routerLink]=\"['/']\" class=\"back\">\n <svg-icon class=\"back__icon\" src=\"/assets/icons/chevron-left.svg\" class=\"chevron\"></svg-icon>\n <span class=\"back__text\">{{'label.ReturnToMainPage' | translate}}</span>\n </a>\n\n <form class=\"form\" [formGroup]=\"submitForm\" [appConnectForm]=\"data.resetPasswordModel\" #ngForm=\"ngForm\" (ngSubmit)=\"submitResetPasswordForm(ngForm)\">\n <mat-form-field appearance=\"outline\" class=\"form-field\">\n <mat-label>{{ 'label.Email' | translate }}</mat-label>\n <input matInput type=\"email\" formControlName=\"email\" />\n <mat-error \n *ngIf=\"submitForm.controls['email'].hasError('required') && (submitForm.controls['email'].touched || ngForm.submitted)\">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n </mat-form-field> \n\n <div class=\"recaptcha\">\n <div style=\"transform:scale(0.9);transform-origin:0;\">\n <re-captcha formControlName=\"recaptcha\" siteKey=\"{{ data.recaptchaSiteKey }}\"></re-captcha>\n </div>\n <mat-error\n *ngIf=\"(submitForm.controls['recaptcha'].touched || ngForm.submitted) && submitForm.controls['recaptcha'].errors?.required\">\n {{'message.MandatoryField' | translate}}\n </mat-error>\n </div>\n \n <div class=\"button\">\n <button (click)=\"resetPassword()\" class=\"button__btn\" type=\"submit\">\n {{ 'label.PasswordRecovery' | translate }}\n </button>\n </div>\n\n <div class=\"message\">\n <div *ngIf=\"data.userRegistrationNotFound\" class=\"message__error\">\n {{'message.UserRegistrationNotFound' | translate}}\n </div>\n </div>\n\n <div class=\"message\">\n <div *ngIf=\"data.isResetSuccessed\" class=\"message__success\">\n {{'message.PasswordIsReset' | translate}}\n </div>\n </div>\n </form>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, FormGroupDirective, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ResetPasswordModel, ResetPasswordViewModel } from '@hrra/common-models';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { resetPassword, clearResetPasswordPageInfo } from 'src/app/root-store/jobseeker-store/reset-password/actions';\nimport { selectIsResetSuccessed, selectPasswordResetViewModel, selectUserRegistrationNotFound } from 'src/app/root-store/jobseeker-store/reset-password/selectors';\nimport { selectRecaptchaSiteKey } from 'src/app/root-store/selectors';\nimport { AppState } from 'src/app/root-store/state';\n\n@Component({\n selector: 'app-jobseeker-password-reset',\n templateUrl: './jobseeker-password-reset.component.html',\n styleUrls: ['./jobseeker-password-reset.component.scss']\n})\nexport class JobseekerPasswordResetComponent implements OnInit {\n \n submitForm: UntypedFormGroup;\n\n userRegistrationNotFound$: Observable<boolean>;\n isResetSuccessed$: Observable<boolean>;\n recaptchaSiteKey$: Observable<string>;\n resetPasswordModel$: Observable<ResetPasswordViewModel>;\n\n constructor(private store: Store<AppState>, private router: Router) { \n this.submitForm = new UntypedFormGroup({\n email: new UntypedFormControl(null, Validators.required),\n recaptcha: new UntypedFormControl(null, Validators.required)\n });\n }\n\n ngOnInit(): void {\n this.store.dispatch(clearResetPasswordPageInfo());\n\n this.userRegistrationNotFound$ = this.store.pipe(select(selectUserRegistrationNotFound));\n this.isResetSuccessed$ = this.store.pipe(select(selectIsResetSuccessed));\n this.recaptchaSiteKey$ = this.store.pipe(select(selectRecaptchaSiteKey));\n this.resetPasswordModel$ = this.store.pipe(select(selectPasswordResetViewModel));\n }\n\n resetPassword(){\n if (this.submitForm.valid){\n\n let request = <ResetPasswordModel>{\n email: this.submitForm.get('email').value,\n reCaptchaToken: this.submitForm.get('recaptcha').value,\n }\n \n this.store.dispatch(resetPassword({payload: request}));\n }\n }\n\n public submitResetPasswordForm(formDirective: FormGroupDirective) {\n if (this.submitForm.valid){\n formDirective.resetForm();\n this.submitForm.reset();\n }\n }\n}\n","export enum CustomerStatusEnum{\n Active = 1,\n Suspended = 2,\n Deleted = 3,\n Archived = 4\n}","export enum ApplicationStatusEnum{\n Pending = 1,\n Approved = 2,\n Rejected = 3\n}","<div class=\"container\">\n <div class=\"head-content\">\n <div class=\"head\">\n <div class=\"head__title\">{{'label.Title' | translate}}</div>\n <div class=\"head__dates\">{{'label.Dates' | translate}}</div>\n <div class=\"head__application-date\">{{'label.ApplicationDate' | translate}}</div>\n <div class=\"head__status\">{{'label.Status' | translate}}</div>\n </div>\n </div>\n \n <div class=\"body-content\">\n <div *ngFor=\"let application of vacancyApplications$ | async\" class=\"body\">\n <div class=\"body__title\">\n <a *ngIf=\"application.announcementStatus == announcementStatus.Active\"\n class=\"body__title-announcement body__title-announcement--link\" \n [routerLink]=\"['/announcement', application.announcementId]\">\n {{application.title}}\n </a>\n <div *ngIf=\"application.announcementStatus != announcementStatus.Active\" \n class=\"body__title-announcement body__title-announcement--without-link\"> \n {{application.title}} \n </div>\n\n <a *ngIf=\"!application.isCustomerAnonymous && application.customerStatusId == customerStatus.Active\"\n [routerLink]=\"['/customer', application.customerId]\" \n class=\"body__title-customer body__title-customer--link\">\n {{application.customerName}}\n </a>\n <div *ngIf=\"application.isCustomerAnonymous || application.customerStatusId != customerStatus.Active\"\n class=\"body__title-customer body__title-customer--without-link\">\n {{application.customerName}}\n </div>\n </div>\n <div class=\"body__dates\">{{application.announcementPublishDate | date:'M/d/yy'}} - {{application.announcementDeadlineDate | date:'M/d/yy'}}</div>\n <div class=\"body__aplication-date\">{{application.applicationDate | date:'M/d/yy'}}</div>\n <div [ngClass]=\"{'body__status--approve': application.applicationStatus == applicationStatus.Approved,\n 'body__status--pending': application.applicationStatus == applicationStatus.Pending,\n 'body__status--rejected': application.applicationStatus == applicationStatus.Rejected}\"\n class=\"body__status\"> \n {{applicationStatusNameMap[application.applicationStatus] | translate}}\n </div>\n </div>\n\n <div *ngIf=\"(vacancyApplications$ | async)?.length > 0\" class=\"paging\">\n <ng-container *ngIf=\"{\n pageCount: pageCount$ | async,\n navItems: navItems$ | async,\n currentPage: currentPage$ | async\n } as data\">\n <app-paging [currentPage]=\"data.currentPage\" [pageCount]=\"data.pageCount\" [pagingNavItems]=\"data.navItems\" (onPageNav)=\"onPagignNavigation($event)\"></app-paging>\n </ng-container>\n </div>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PagingNavItem } from '@hrra/ui';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { AnnouncementStatusEnum } from '@hrra/common-models';\nimport { CustomerStatusEnum } from 'src/app/customer/shared/models/enums/customer-status-enum';\nimport { loadApplications } from 'src/app/root-store/jobseeker-store/jobseeker-applies/actions';\nimport { selectVacancyApplicationsDisplayPages, selectVacancyApplicationsPageCount, selectAnnouncementAppliesCurrentPage, selectJobseekerVacancyApplications } from 'src/app/root-store/jobseeker-store/jobseeker-applies/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { ApplicationStatusEnum } from 'src/app/shared/models/enums/application-statu-enum';\nimport { JobseekerOwnApplicationListRecord } from 'src/app/shared/models/jobseeker-application-model';\n\n@Component({\n selector: 'app-jobseeker-applies-vacancy',\n templateUrl: './jobseeker-applies-vacancy.component.html',\n styleUrls: ['./jobseeker-applies-vacancy.component.scss']\n})\nexport class JobseekerAppliesVacancyComponent implements OnInit {\n\n public applicationStatusNameMap = {\n [ApplicationStatusEnum.Pending]: 'label.Pending',\n [ApplicationStatusEnum.Approved]: 'label.Approved',\n [ApplicationStatusEnum.Rejected]: 'label.Rejected'\n };\n\n public applicationStatus: any;\n public announcementStatus: any;\n public customerStatus: any;\n\n public vacancyApplications$: Observable<JobseekerOwnApplicationListRecord[]>;\n public pageCount$: Observable<number>;\n public navItems$: Observable<PagingNavItem[]>;\n public currentPage$: Observable<number>;\n public isLoading$: Observable<boolean>;\n\n constructor(private store: Store<AppState>, private route: ActivatedRoute, private router: Router) { \n this.applicationStatus = ApplicationStatusEnum;\n this.announcementStatus = AnnouncementStatusEnum;\n this.customerStatus = CustomerStatusEnum;\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.store.dispatch(loadApplications({payload: { page: 1 }}));\n }, 0);\n\n this.vacancyApplications$ = this.store.pipe(select(selectJobseekerVacancyApplications));\n this.pageCount$ = this.store.pipe(select(selectVacancyApplicationsPageCount));\n this.navItems$ = this.store.pipe(select(selectVacancyApplicationsDisplayPages));\n this.currentPage$ = this.store.pipe(select(selectAnnouncementAppliesCurrentPage));\n }\n\n onPagignNavigation(page: number){\n this.store.dispatch(loadApplications({payload: { page: page }}));\n }\n}\n","export enum CvBoxItemStatusEnum{\n Pending = 1,\n Approved = 2,\n Rejected = 3\n}","<div class=\"container\">\n <div class=\"head-content\">\n <div class=\"head\">\n <div class=\"head__title\">{{'label.Title' | translate}}</div>\n <div class=\"head__application-date\">{{'label.ApplicationDate' | translate}}</div>\n <div class=\"head__status\">{{'label.Status' | translate}}</div>\n </div>\n </div>\n <div class=\"body-content\">\n <div *ngFor=\"let application of cvBoxApplications$ | async\" class=\"body\">\n <a *ngIf=\"application.customerStatusId == customerStatus.Active\"\n [routerLink]=\"['/customer', application.customerId]\" \n class=\"body__customer body__customer--link\">\n {{application.customerName}}\n </a>\n <div *ngIf=\"application.customerStatusId != customerStatus.Active\"\n class=\"body__customer body__customer--without-link\">\n {{application.customerName}}\n </div>\n\n <div class=\"body__application-date\">{{application.date | date:'M/d/yy'}}</div>\n\n <div [ngClass]=\"{'body__status--approve': application.statusId == cvBoxApplicationStatus.Approved,\n 'body__status--pending': application.statusId == cvBoxApplicationStatus.Pending,\n 'body__status--rejected': application.statusId == cvBoxApplicationStatus.Rejected}\"\n class=\"body__status\"> \n {{applicationStatusNameMap[application.statusId] | translate}}\n </div>\n </div>\n </div>\n\n <div *ngIf=\"(cvBoxApplications$ | async)?.length > 0\" class=\"paging\">\n <ng-container *ngIf=\"{\n pageCount: pageCount$ | async,\n navItems: navItems$ | async,\n currentPage: currentPage$ | async\n } as data\">\n <app-paging [currentPage]=\"data.currentPage\" [pageCount]=\"data.pageCount\" [pagingNavItems]=\"data.navItems\" (onPageNav)=\"onPagignNavigation($event)\"></app-paging>\n </ng-container>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PagingNavItem } from '@hrra/ui';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { CustomerStatusEnum } from 'src/app/customer/shared/models/enums/customer-status-enum';\nimport { loadCvBoxApplications } from 'src/app/root-store/jobseeker-store/jobseeker-applies/actions';\nimport { selectCvBoxApplicationsDisplayPages, selectCvBoxApplicationsPageCount, selectCvBoxAppliesCurrentPage, selectJobseekerCvBoxApplications } from 'src/app/root-store/jobseeker-store/jobseeker-applies/selectors';\nimport { AppState } from 'src/app/root-store/state';\nimport { CvBoxApplication } from 'src/app/shared/models/cv-box-application-model';\nimport { CvBoxItemStatusEnum } from 'src/app/shared/models/enums/cv-box-item-status-enum';\n\n@Component({\n selector: 'app-jobseeker-applies-cv-box',\n templateUrl: './jobseeker-applies-cv-box.component.html',\n styleUrls: ['./jobseeker-applies-cv-box.component.scss']\n})\nexport class JobseekerAppliesCvBoxComponent implements OnInit {\n\n public applicationStatusNameMap = {\n [CvBoxItemStatusEnum.Pending]: 'label.Pending',\n [CvBoxItemStatusEnum.Approved]: 'label.Approved',\n [CvBoxItemStatusEnum.Rejected]: 'label.Rejected'\n };\n\n\n public cvBoxApplications$: Observable<CvBoxApplication[]>;\n public pageCount$: Observable<number>;\n public navItems$: Observable<PagingNavItem[]>;\n public currentPage$: Observable<number>;\n public isLoading$: Observable<boolean>;\n\n public cvBoxApplicationStatus: any;\n public customerStatus: any;\n\n constructor(private store: Store<AppState>, private route: ActivatedRoute, private router: Router) {\n this.cvBoxApplicationStatus = CvBoxItemStatusEnum;\n this.customerStatus = CustomerStatusEnum;\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.store.dispatch(loadCvBoxApplications({payload: { page: 1 }}));\n }, 0);\n\n this.cvBoxApplications$ = this.store.pipe(select(selectJobseekerCvBoxApplications));\n this.pageCount$ = this.store.pipe(select(selectCvBoxApplicationsPageCount));\n this.navItems$ = this.store.pipe(select(selectCvBoxApplicationsDisplayPages));\n this.currentPage$ = this.store.pipe(select(selectCvBoxAppliesCurrentPage));\n }\n\n onPagignNavigation(page: number){\n this.store.dispatch(loadCvBoxApplications({payload: { page: page }}));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Routes, RouterModule } from '@angular/router';\nimport { JobseekerSigninComponent } from './jobseeker-signin/jobseeker-signin.component';\nimport { JobseekerProfileComponent } from './jobseeker-profile/jobseeker-profile.component';\nimport { TestDashboardComponent } from '../hr-ui/test-dashboard/test-dashboard.component';\nimport { JobseekerRegistrationComponent } from './jobseeker-registration/jobseeker-registration.component';\nimport { JobseekerRegistrationCompleteComponent } from './jobseeker-registration-complete/jobseeker-registration-complete.component';\n//import { JobseekerEmailVerificationComponent } from './jobseeker-email-verification/jobseeker-email-verification.component';\nimport { JobseekerSettingsComponent } from './jobseeker-settings/jobseeker-settings.component';\nimport { JobseekerShellComponent } from './jobseeker-shell/jobseeker-shell.component';\nimport { AuthGuard } from '../core/auth.guard';\nimport { ViewJobseekerSubscriptionComponent } from './view-jobseeker-subscription/view-jobseeker-subscription.component';\nimport { EditJobseekerSubscriptionComponent } from './edit-jobseeker-subscription/edit-jobseeker-subscription.component';\nimport { JobseekerPasswordResetComponent } from './jobseeker-password-reset/jobseeker-password-reset.component';\nimport { JobseekerAppliesComponent } from './jobseeker-applies/jobseeker-applies.component';\n\n\n\nconst jobseekerRoutes: Routes = [\n // {\n // path: 'action/activate/:code',\n // pathMatch: 'full',\n // component: JobseekerEmailVerificationComponent\n // },\n {\n path: '',\n component: JobseekerShellComponent,\n\n children:[\n {\n path: 'sign-in',\n pathMatch: 'full',\n component: JobseekerSigninComponent,\n },\n {\n path: 'profile',\n pathMatch: 'full',\n component: JobseekerProfileComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'register',\n pathMatch: 'full',\n component: JobseekerRegistrationComponent\n },\n {\n path: 'registration-complete',\n pathMatch: 'full',\n component: JobseekerRegistrationCompleteComponent\n },\n {\n path: 'ui-test',\n pathMatch: 'full',\n component: TestDashboardComponent\n },\n {\n path: 'settings',\n pathMatch: 'full',\n component: JobseekerSettingsComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'reset-password',\n pathMatch: 'full',\n component: JobseekerPasswordResetComponent\n },\n {\n path: 'subscription',\n pathMatch: 'full',\n component: ViewJobseekerSubscriptionComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'subscription/edit',\n pathMatch: 'full',\n component: EditJobseekerSubscriptionComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'applies',\n pathMatch: 'full',\n component: JobseekerAppliesComponent,\n canActivate: [AuthGuard]\n },\n ]\n }\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(jobseekerRoutes)],\n exports: [RouterModule],\n})\nexport class JobseekerRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { selectVacancyApplicationIsLoading, selectCvBoxApplicationIsLoading } from 'src/app/root-store/jobseeker-store/jobseeker-applies/selectors';\nimport { AppState } from 'src/app/root-store/state';\n\n@Component({\n selector: 'app-jobseeker-applies',\n templateUrl: './jobseeker-applies.component.html',\n styleUrls: ['./jobseeker-applies.component.scss']\n})\nexport class JobseekerAppliesComponent implements OnInit {\n\n public cvBoxApplicationIsLoading$: Observable<boolean>;\n public vacancyApplicationIsLoading$: Observable<boolean>;\n\n constructor(private store: Store<AppState>) { }\n\n ngOnInit(): void {\n this.cvBoxApplicationIsLoading$ = this.store.pipe(select(selectCvBoxApplicationIsLoading));\n this.vacancyApplicationIsLoading$ = this.store.pipe(select(selectVacancyApplicationIsLoading));\n }\n}\n","<div class=\"container\">\n <hrra-advanced-tab-group [activeTabIndex]=\"0\">\n <hrra-advanced-tab [label]=\"'label.Vacancies' | translate\">\n <div class=\"tab\">\n <app-spinner [isLoading]=\"vacancyApplicationIsLoading$ | async\" [isFixedPosition]=\"false\">\n <app-jobseeker-applies-vacancy></app-jobseeker-applies-vacancy>\n </app-spinner>\n </div>\n </hrra-advanced-tab>\n \n <hrra-advanced-tab [label]=\"'label.CvBoxes' | translate\">\n <div class=\"tab\">\n <app-spinner [isLoading]=\"cvBoxApplicationIsLoading$ | async\" [isFixedPosition]=\"false\">\n <app-jobseeker-applies-cv-box></app-jobseeker-applies-cv-box>\n </app-spinner>\n </div>\n </hrra-advanced-tab>\n </hrra-advanced-tab-group>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JobseekerRecruitmentBoxComponent } from './jobseeker-recruitment-box/jobseeker-recruitment-box.component';\nimport { JobseekerSigninComponent } from './jobseeker-signin/jobseeker-signin.component';\nimport { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox';\nimport { MatLegacyRadioModule as MatRadioModule } from '@angular/material/legacy-radio';\nimport { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\nimport { SharedModule } from '../shared/shared.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { JobseekerRoutingModule } from './jobseeker-routing.module';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\nimport { JobseekerProfileComponent } from './jobseeker-profile/jobseeker-profile.component';\nimport { JobseekerProfileTileComponent } from './jobseeker-profile-tile/jobseeker-profile-tile.component';\nimport { HrUiModule } from '../hr-ui/hr-ui.module';\nimport { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog';\nimport { JobseekerPersonalInfoEditComponent } from './jobseeker-personal-info-edit/jobseeker-personal-info-edit.component';\nimport { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select';\nimport { JobseekerRegistrationComponent } from './jobseeker-registration/jobseeker-registration.component';\nimport { JobseekerRegistrationCompleteComponent } from './jobseeker-registration-complete/jobseeker-registration-complete.component';\nimport { RecaptchaFormsModule, RecaptchaModule } from 'ng-recaptcha';\n//import { JobseekerEmailVerificationComponent } from './jobseeker-email-verification/jobseeker-email-verification.component';\nimport { JobseekerEducationEditComponent } from './jobseeker-education-edit/jobseeker-education-edit.component';\nimport { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete';\nimport { HttpClientModule } from '@angular/common/http';\nimport { JobseekerDocumentUploadComponent } from './jobseeker-document-upload/jobseeker-document-upload.component';\nimport { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar';\nimport { JobseekerLanguageEditComponent } from './jobseeker-language-edit/jobseeker-language-edit.component';\nimport { JobseekerSettingsComponent } from './jobseeker-settings/jobseeker-settings.component';\nimport { JobseekerSettingsPrivacyComponent } from './jobseeker-settings-privacy/jobseeker-settings-privacy.component';\nimport { JobseekerShellComponent } from './jobseeker-shell/jobseeker-shell.component';\nimport { JobseekerWorkExperienceEditComponent } from './jobseeker-work-experience-edit/jobseeker-work-experience-edit.component';\nimport { JobseekerSettingsChangePasswordComponent } from './jobseeker-settings-change-password/jobseeker-settings-change-password.component';\nimport { JobseekerSettingsBlacklistComponent } from './jobseeker-settings-blacklist/jobseeker-settings-blacklist.component';\nimport { CategoryPickerComponent } from './category-picker/category-picker.component';\nimport { JobseekerPasswordResetComponent } from './jobseeker-password-reset/jobseeker-password-reset.component';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { JobseekerPhotoEditComponent } from './jobseeker-photo-edit/jobseeker-photo-edit.component';\nimport { ViewJobseekerSubscriptionComponent } from './view-jobseeker-subscription/view-jobseeker-subscription.component';\nimport { EditJobseekerSubscriptionComponent } from './edit-jobseeker-subscription/edit-jobseeker-subscription.component';\nimport { JobseekerAppliesComponent } from './jobseeker-applies/jobseeker-applies.component';\nimport { JobseekerAppliesVacancyComponent } from './jobseeker-applies-vacancy/jobseeker-applies-vacancy.component';\nimport { JobseekerAppliesCvBoxComponent } from './jobseeker-applies-cv-box/jobseeker-applies-cv-box.component';\nimport { UiModule } from '@hrra/ui';\nimport { CommonComponentsModule } from '@hrra/common-components';\nimport { JobseekerProfileForAdminComponent } from './jobseeker-profile-for-admin/jobseeker-profile-for-admin.component';\nimport { JobseekerPersonalInfoEditForAdminComponent } from './jobseeker-personal-info-edit-for-admin/jobseeker-personal-info-edit-for-admin.component';\nimport { JobseekerPhotoEditForAdminComponent } from './jobseeker-photo-edit-for-admin/jobseeker-photo-edit-for-admin.component';\nimport { JobseekerWorkExperienceEditForAdminComponent } from './jobseeker-work-experience-edit-for-admin/jobseeker-work-experience-edit-for-admint.component';\nimport { JobseekerEducationEditForAdminComponent } from './jobseeker-education-edit-for-admin/jobseeker-education-edit-for-admin.component';\nimport { JobseekerLanguageEditForAdminComponent } from './jobseeker-language-edit-for-admin/jobseeker-language-edit-for-admin.component';\nimport { JobseekerDocumentUploadForAdminComponent } from './jobseeker-document-upload-for-admin/jobseeker-document-upload-for-admin.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCheckboxModule,\n MatRadioModule,\n MatFormFieldModule,\n MatInputModule,\n SharedModule,\n FormsModule,\n ReactiveFormsModule,\n JobseekerRoutingModule,\n AngularSvgIconModule,\n HrUiModule,\n UiModule,\n MatDialogModule,\n MatSelectModule,\n RecaptchaModule,\n RecaptchaFormsModule,\n MatAutocompleteModule,\n HttpClientModule,\n MatProgressBarModule,\n ImageCropperModule,\n CommonComponentsModule\n ],\n declarations: [\n JobseekerRecruitmentBoxComponent,\n JobseekerSigninComponent,\n JobseekerProfileComponent,\n JobseekerProfileTileComponent,\n JobseekerPersonalInfoEditComponent,\n JobseekerRegistrationComponent,\n JobseekerRegistrationCompleteComponent,\n //JobseekerEmailVerificationComponent,\n JobseekerLanguageEditComponent,\n JobseekerEducationEditComponent,\n JobseekerDocumentUploadComponent,\n JobseekerSettingsComponent,\n JobseekerSettingsPrivacyComponent,\n JobseekerShellComponent,\n JobseekerWorkExperienceEditComponent,\n JobseekerSettingsChangePasswordComponent,\n JobseekerSettingsChangePasswordComponent,\n JobseekerSettingsBlacklistComponent,\n CategoryPickerComponent,\n JobseekerPasswordResetComponent,\n JobseekerPhotoEditComponent,\n ViewJobseekerSubscriptionComponent,\n EditJobseekerSubscriptionComponent,\n JobseekerAppliesComponent,\n JobseekerAppliesVacancyComponent,\n JobseekerAppliesCvBoxComponent,\n JobseekerProfileForAdminComponent,\n JobseekerPersonalInfoEditForAdminComponent,\n JobseekerPhotoEditForAdminComponent,\n JobseekerWorkExperienceEditForAdminComponent,\n JobseekerEducationEditForAdminComponent,\n JobseekerLanguageEditForAdminComponent,\n JobseekerDocumentUploadForAdminComponent\n ],\n})\nexport class JobseekerModule { }\n"],"x_google_ignoreList":[14]}