{"version":3,"sources":["components/OnlineModal/OnlineModal.module.scss","../../shared/components/ExamQuestion/ExamQuestion.module.scss","../../shared/components/TheoreticalQuestionRedactor/TheoreticalQuestionRedactor.module.scss","../../shared/components/OnlineChat/OnlineChat.module.scss","../../shared/components/Sidebar/Sidebar.module.scss","../../shared/components/MultiSelectSection/MultiSelectSection.module.scss","components/RegistrationForExam/IdentificationTab/IdentificationStyles.module.scss","../../shared/components/Card/Card.module.scss","../../shared/components/assets/svg/group.svg","../../shared/components/Header/Header.module.scss","../../shared/components/assets/svg/news_icon.svg","../../shared/components/Pagination/Pagination.module.scss","../../shared/components/Identification/Identification.module.scss","../../shared/components/ExamTable/ExamTable.module.scss","../../shared/components/Common/InputPassword/InputPassword.module.scss","../../shared/components/Common/CustomRadio/CustomRadio.module.scss","../../shared/components/assets/png/logo_unauth.png","../../shared/components/Common/CustomCheckbox/CustomCheckbox.module.scss","../../shared/components/assets/svg/back_arrow.svg","../../shared/components/assets/png/logo_auth.png","../../shared/components/assets/svg/avatar.svg","../../shared/components/Common/Modals/PhoneModal/PhoneModal.module.scss","../../shared/components/ProfileInfoBlock/ProfileInfoBlock.module.scss","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/StageContainer.module.scss","components/RegistrationForExam/IdentificationTab/ProfileStyles.module.scss","containers/RegistrationContainer/RegistrationStep.module.scss","../../shared/components/EditableTable/EditableTable.module.scss","../../shared/components/DotsSettings/DotsSettings.module.scss","../../shared/components/QualificationDetails/QualificationDetails.module.scss","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/DayCell.module.scss","../../shared/components/PracticalQuestionRedactor/PracticalQuestionRedactor.module.scss","../../shared/components/ApplicantDocuments/ApplicantDocuments.module.scss","../../shared/components/ExamAssigningApplicationsTable/ExamAssigningApplicationsTable.module.scss","../../shared/components/Common/CustomSwitch/CustomSwitch.module.scss","../../shared/components/ExamAdmittingApplicationsTable/ExamAdmittingApplicationsTable.module.scss","../../shared/components/DocumentUpLoader/DropZone/DropZone.module.scss","../../shared/components/DateTimePicker/DateTimePicker.module.scss","../../shared/components/CertificateModal/CertificateModal.module.scss","../../shared/components/UserVideo/UserVideo.module.scss","../../shared/components/Dropdown/Dropdown.module.scss","../../shared/components/Common/Modals/SmsSignModal/SmsSignModal.module.scss","../../shared/components/OnlineVideo/OnlineVideo.module.scss","components/RegistrationForExam/RegistrationForExam.module.scss","../../shared/components/WebCamSwitch/WebCamSwitch.module.scss","../../shared/components/DocumentUpLoader/UploadedDocument/UploadedDocument.module.scss","../../shared/components/DocumentUpLoader/TemplateGroup/TemplateGroup.module.scss","../../shared/components/MultiSelectSearch/MultiSelectSearch.module.scss","../../shared/components/Common/Modals/WarningModal/WarningModal.module.scss","../../shared/components/Common/Modals/CheckBoxModal/CheckBoxModal.module.scss","../../shared/components/Common/AdvancedTable/AdvancedTable.module.scss","components/SystemSettings/SystemSettings.module.scss","../../shared/components/Common/TableColumns/Columns.module.scss","../../shared/components/Details/Details.module.scss","../../shared/components/VerifyEmailInput/VerifyEmailInput.module.scss","../../shared/components/EventButtons/EventButtons.module.scss","../../shared/components/Common/Modals/RejectModal/RejectModal.module.scss","../../shared/components/Common/ErrorPlaceholder/ErrorPlaceholder.module.scss","../../shared/components/CheckedTable/CheckedTable.module.scss","../../shared/components/TextLink/TextLink.module.scss","../../shared/components/StatementTab/StatementTab.module.scss","../../shared/components/SignedExpert/SignedExpert.module.scss","../../shared/components/Common/DocumentPreview/DocumentPreview.module.scss","layouts/auth/AuthorizedLayout.module.scss","../../shared/components/assets/svg/wait_time_icon.svg","../../shared/components/assets/svg/link_icon.svg","../../shared/components/ExamApplicationsTable/ExamApplicationsTable.module.scss","../../shared/components/Common/Loader/Loader.module.scss","../../shared/components/OccupationalStandardDetails/OccupationalStandardDetails.module.scss","../../shared/components/UsersPage/index.module.scss","../../shared/components/Common/LoaderBtn/LoaderBtn.module.scss","../../shared/components/Common/EmptySection/EmptySection.module.scss","../../shared/components/StepStatus/StepStatus.module.scss","../../shared/components/DayEditor/DayEditor.module.scss","../../shared/components/Common/BubbleLoader/BubbleLoader.module.scss","../../shared/components/PhoneInput/PhoneInput.module.scss","../../shared/components/assets/svg/sort_icon.svg","../../shared/components/assets/svg/status_icon.svg","../../shared/components/assets/svg/ac/empty_certificate_icon.svg","../../shared/components/assets/svg/add_icon.svg","../../shared/components/assets/svg/dnd_icon.svg","../../shared/components/assets/svg/documents_icon.svg","../../shared/components/assets/svg/exam/webcam_icon.svg","../../shared/components/assets/svg/exam/screen_icon.svg","../../shared/components/assets/svg/microphone.svg","../../shared/components/ProtocolLink/ProtocolLink.module.scss","../../shared/components/Common/ExtendedSelect/ExtendedSelect.module.scss","../../shared/components/Common/NotificationBundle/index.module.scss","../../shared/components/assets/svg/main/ac_admin_empty_table.svg","../../shared/components/assets/svg/applicants_icon.svg","../../shared/components/assets/svg/certificate.svg","../../shared/components/assets/svg/error_icon.svg","../../shared/components/Common/Modals/ResetPasswordModal/ResetPasswordModal.module.scss","../../shared/components/Common/InputText/InputText.module.scss","../../shared/components/ExpertTabs/PersonalData/PersonalData.module.scss","../../shared/components/ExpertTabs/Connected/Connected.module.scss","../../shared/components/AscDetails/AscDetails.module.scss","../../shared/components/DragDrop/DragDrop.module.scss","../../shared/components/MultiSelectGroup/MultiSelectGroup.module.scss","../../shared/components/DocFileLink/DocFileLink.module.scss","../../shared/components/EmailConfirmationNotification/EmailConfirmationNotification.module.scss","../../shared/components/Row/Row.module.scss","../../shared/components/Common/TimePicker/TimePicker.module.scss","../../shared/components/AnimatedTabs/AnimatedTabs.module.scss","../../shared/components/AlertText/AlertText.module.scss","../../shared/components/DocumentUpLoader/DocumentUpLoader.module.scss","../../shared/components/assets/gif/test_display.gif","../../shared/components/assets/svg/cancel_icon.svg","../../shared/components/Common/FetchSelect/FetchSelect.module.scss","../../shared/components/Common/FetchCreateSelect/FetchCreateSelect.module.scss","../../shared/components/OverlayTrigger/OverlayTrigger.module.scss","../../shared/components/AddressLink/AddressLink.module.scss","../../shared/components/SexRadios/SexRadios.module.scss","../../shared/components/Status/Status.module.scss","../../shared/components/Textarea/Textarea.module.scss","../../shared/components/ProtocolLink/download_icon.svg","../../shared/components/assets/svg/Loader_svg.svg","../../shared/components/Common/SimpleTable/SimpleTable.module.scss","../../shared/components/assets/svg/empty_expert_table.svg","../../shared/components/AuthenticationForm/AuthenticationForm.module.scss","../../shared/components/ExamLog/ExamLog.module.scss","../../shared/components/assets/svg/attachment_Icon.svg","../../shared/components/CKText/CKText.module.scss","../../shared/components/assets/svg/chairman_Icon.svg","../../shared/components/ExamDetailsTabs/ApplicantsTab/ApplicantsTab.module.scss","../../shared/components/ExamDetailsTabs/ExamInfoStates/AwaitingExpertConfirmation/AwaitingExpertConfirmationComponent.module.scss","../../shared/components/assets/svg/cross_cancel_icon.svg","../../shared/components/assets/svg/delete_icon.svg","../../shared/components/CustomRadioGroup/CustomRadioGroup.module.scss","../../shared/components/assets/svg/calendar.svg","../../shared/components/ExamDetailsTabs/RulesTab/RulesTab.module.scss","../../shared/components/UserVideo/exclamation.svg","../../shared/components/UserVideo/full-screen-icon.png","../../shared/components/assets/svg/message_icon.svg","../../shared/components/assets/svg/alert_icon.svg","../../shared/components/DocumentUpLoader/UploadedDocument/upload_icon.svg","../../shared/components/DocumentUpLoader/UploadedDocument/delete_icon.svg","../../shared/components/DocumentUpLoader/DropZone/drop_icon.svg","../../shared/components/DocumentUpLoader/TemplateGroup/rightArrow_icon.svg","../../shared/components/DocumentUpLoader/TemplateGroup/document_icon.svg","../../shared/components/assets/svg/pen_icon.svg","../../shared/components/CertificateTab/CertificateTab.module.scss","../../shared/components/DotsSettings/dots_icon.svg","../../shared/components/VerifyEmailInput/convert_icon.svg","../../shared/components/VerifyEmailInput/arrows_icon.svg","../../shared/components/Dropdown/icons/arrow.svg","../../shared/components/Dropdown/icons/drop.svg","../../shared/components/assets/svg/edit_file.svg","../../shared/components/assets/gif/test_camera.gif","../../shared/components/assets/gif/not_allowed_camera.gif","../../shared/components/assets/gif/test_audio.gif","../../shared/components/assets/gif/not_allowed_audio.gif","../../shared/components/assets/svg/identification_icon.svg","components/RegistrationForExam/icons/send_icon.svg","containers/ProfileContainer/ProfileContainer.module.scss","../../shared/components/assets/svg/sidebar/exams.svg","../../shared/components/assets/svg/sidebar/qualif.svg","../../shared/_helpers/localStorageHelpers/localStorageHelper.ts","../../shared/_helpers/localStorageHelpers/localStorageHeaderTitle.ts","../../shared/_helpers/localStorageHelpers/hasAccessToken.ts","../../shared/_helpers/formatHelpers/createExamTimeDate.ts","../../shared/_helpers/formatHelpers/formatPhoneNumber.ts","../../shared/_helpers/formatHelpers/serialNumberToChar.ts","../../shared/_helpers/formatHelpers/formatSnils.ts","../../shared/_helpers/formatHelpers/formatFIO.ts","../../shared/_helpers/formatHelpers/formatDayTitle.ts","../../shared/_helpers/const/Colors.ts","../../shared/_helpers/ColorStatus.ts","../../shared/_helpers/SocketConnector/OnlineModels.ts","../../shared/_helpers/VersionReader.ts","../../shared/_helpers/unsavedFormDetector.ts","../../shared/_helpers/WebRTC/MediaConstraints.ts","../../shared/_helpers/WebRTC/IceServers.ts","../../shared/_helpers/const/RegExpErrorsText.ts","../../shared/_helpers/errors/mapAPIError.ts","../../shared/_helpers/const/RegExp.ts","../../shared/_helpers/TimingSynchronizer.ts","../../shared/_helpers/errors/ApiError.ts","../../shared/_helpers/wordDeclination.ts","../../shared/_helpers/const/Protocols.ts","../../shared/_helpers/ApiConnector/types.ts","../../shared/components/DatePicker/DatePicker.tsx","../../shared/_helpers/ApiConnector/index.ts","../../shared/components/Common/CustomRadio/CustomRadio.tsx","../../shared/components/Header/Header.tsx","../../shared/components/Common/CustomCheckbox/CustomCheckbox.tsx","../../shared/components/Card/Card.tsx","../../shared/components/Common/InputPassword/index.ts","../../shared/components/Common/InputPassword/InputPassword.tsx","../../shared/components/Sidebar/NavList.tsx","../../shared/components/Sidebar/Sidebar.tsx","../../shared/components/Sidebar/index.ts","../../shared/components/Pagination/Pagination.tsx","../../shared/components/ExamTable/ExamTable.tsx","../../shared/components/enums.ts","../../shared/components/Details/Details.tsx","../../shared/components/Common/Modals/WarningModal/WarningModal.tsx","../../shared/components/Common/Modals/SmsSignModal/SmsSignModal.tsx","../../shared/components/Common/Modals/PhoneModal/PhoneModal.tsx","../../shared/components/Common/Modals/ResetPasswordModal/ResetPasswordModal.tsx","../../shared/components/Common/CustomSwitch/CustomSwitch.tsx","../../shared/components/ExamAssigningApplicationsTable/ExamAssigningApplicationsTable.tsx","../../shared/components/Common/Loader/Loader.tsx","../../shared/components/UnsavedFormModal/UnsavedFormModal.tsx","../../shared/components/Common/TableColumns/StatusColumn.tsx","../../shared/components/Common/TableColumns/DatePeriodColumn.tsx","../../shared/components/Common/AdvancedTable/AdvancedTable.tsx","../../shared/hooks/useLocalErrorHandler.ts","../../shared/hooks/useShowGlobalErrorModal.ts","../../shared/hooks/useReloader.ts","../../shared/hooks/useMouseLeaveDetector.ts","../../shared/components/ExamRequirement/ExamRequirement.tsx","../../shared/hooks/useLoading.ts","../../shared/hooks/useEffectProcessing.ts","../../shared/hooks/useMultiSearch.ts","../../shared/hooks/useGoBack.ts","../../shared/hooks/usePushFrom.ts","../../shared/components/defaultValues.ts","../../shared/components/Common/InputText/InputText.tsx","../../shared/components/Common/SimpleTable/SimpleTable.tsx","../../shared/components/UsersPage/UsersPage.tsx","../../shared/components/AuthenticationForm/AuthenticationForm.tsx","../../shared/components/Common/ExtendedSelect/ExtendedSelect.tsx","../../shared/components/ApplicantQualifications/ApplicantQualifications.tsx","../../shared/components/ResetPasswordSteps/ResetPasswordFirstStep.tsx","../../shared/components/ResetPasswordSteps/ResetPasswordSecondStep.tsx","../../shared/components/ResetPasswordSteps/ResetPasswordThirdStep.tsx","../../shared/components/Common/LoaderBtn/LoaderBtn.tsx","../../shared/components/Common/EmptySection/EmptySection.tsx","../../shared/components/TheoreticalQuestionRedactor/types.ts","../../shared/components/Common/ErrorBoundary/index.tsx","../../shared/components/Identification/Identification.tsx","../../shared/components/Common/ErrorPlaceholder/ErrorPlaceholder.tsx","../../shared/components/Common/NotificationSystem/NotificationSystem.tsx","../../shared/components/Common/NotificationBundle/index.tsx","../../shared/components/Captcha/Captcha.tsx","../../shared/components/DragDrop/withDragDropContext.tsx","../../shared/components/DragDrop/drag-drop.ts","../../shared/components/PracticalQuestionRedactor/types.ts","../../shared/components/DragDrop/DragDrop.tsx","../../shared/components/TheoreticalQuestionRedactor/QuestionVariant.tsx","../../shared/components/TheoreticalQuestionRedactor/QuestionSelect.tsx","../../shared/components/TheoreticalQuestionRedactor/MatchingRightVariant.tsx","../../shared/components/TheoreticalQuestionRedactor/TheoreticalQuestionRedactor.tsx","../../shared/components/TheoreticalQuestionRedactor/MatchingOrOrderingTheoreticalQuestion.tsx","../../shared/components/MultiSelectGroup/MultiSelectGroup.tsx","../../shared/components/MultiSelectSection/MultiSelectSection.tsx","../../shared/components/MultiSelectSearch/MultiSelectSearch.tsx","../../shared/components/DateTimePicker/DateTimePicker.tsx","../../shared/components/MultiSelectSearch/SearchElements/DefaultMultiSelectSearch.tsx","../../shared/components/MultiSelectSearch/SearchElements/DefaultSelectSearch.tsx","../../shared/components/CKText/CKText.tsx","../../shared/components/PracticalQuestionRedactor/PracticalQuestionRedactor.tsx","../../shared/components/EditableTable/helpers.ts","../../shared/components/ExamApplicationTabs/ExamApplicationTabs.tsx","../../shared/components/EditableTable/RowRenderer.tsx","../../shared/components/EditableTable/EditableTable.tsx","../../shared/components/EmailConfirmation/EmailConfirmation.tsx","../../shared/components/EmailConfirmationNotification/EmailConfirmationNotification.tsx","../../shared/components/AutoGrowTextArea/AutoGrowTextArea.tsx","../../shared/components/ExamApplicationDetails/getExamApplicationStatus.ts","../../shared/components/ExamApplicationDetails/ExamApplicationDetails.tsx","../../shared/components/Row/Row.tsx","../../shared/components/ExamApplicationDetails/StagingExamApplicationDetails.tsx","../../shared/components/ProfileInfoBlock/ProfileInfoBlock.tsx","../../shared/components/Common/FetchSelect/FetchSelect.tsx","../../shared/components/ExamDetailsTabs/ApplicantsTab/ApplicantsTab.tsx","../../shared/components/ExamDetailsTabs/ExamInfoStates/ExamInfoState.tsx","../../shared/components/Common/icons/LikeIcon.tsx","../../shared/components/StepStatus/StepStatus.tsx","../../shared/components/ExamDetailsTabs/ExamInfoStates/AwaitingExpertConfirmation/AwaitingExpertConfirmationComponent.tsx","../../shared/components/ExamDetailsTabs/ExamDetailsTabs.tsx","../../shared/components/ExamDetailsTabs/ExamInfoStates/AwaitingExpertConfirmation/index.tsx","../../shared/components/ExamDetailsTabs/ExamInfoStates/ExamInfoStates.ts","../../shared/components/ExamDetailsTabs/ExamInfoTab/ExamInfoTab.tsx","../../shared/components/OverlayTrigger/OverlayTrigger.tsx","../../shared/components/Common/icons/ExpertsIcon.tsx","../../shared/components/Common/icons/StatusIcon.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/DayCell.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/ConfirmDateModal.tsx","../../shared/components/Common/TimePicker/TimePicker.tsx","../../shared/components/DayEditor/DayEditor.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/AssigningOneExpertModal.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Components/ExpertsAssignTable.tsx","../../shared/components/AnimatedTabs/AnimatedTabs.tsx","../../shared/components/CustomRadioGroup/CustomRadioGroup.tsx","../../shared/components/models.ts","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/AssigningExpertsModal.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/CreateDayModals.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/FinalizeResultModals.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/EditModalTabs/FinalizingResultsTab.tsx","../../shared/components/ExamAdmittingApplicationsTable/ExamAdmittingApplicationsTable.tsx","../../shared/components/ApplicantDocuments/DocumentSwitch/DocumentSwitch.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/EditModalTabs/AdmitApplicantsTab.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/EditModalTabs/FinalizedExamApplicationsTab.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/EditModalTabs/ExamApplicationsTab.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Modals/EditDayModal.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/Components/EmptyStage.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/StageContainer.tsx","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AssigningStage/getInitialDays.ts","../../shared/components/ExamDetailsTabs/ExamStagesTabs/AwaitingStage/AwaitingStage.tsx","../../shared/components/ExamDetailsTabs/ExamDetailsOnlyWaitingStatusTabs.tsx","../../shared/components/ExamDetailsTabs/RulesTab/RulesTab.tsx","../../shared/components/ApplicantExamDetailsTabs/ApplicantExamDetailsTabs.tsx","../../shared/components/OnlineChat/OnlineChat.tsx","../../shared/components/ApplicantDetailsTabs/ApplicantDetailsTabs.tsx","../../shared/components/AlertText/AlertText.tsx","../../shared/components/ApplicantDocuments/ApplicantDocuments.tsx","../../shared/components/DocumentUpLoader/UploadedDocument/UploadedDocument.tsx","../../shared/components/DocumentUpLoader/DropZone/DropZone.tsx","../../shared/components/DocumentUpLoader/DocumentUpLoader.tsx","../../shared/components/PhoneInput/PhoneInput.tsx","../../shared/components/NotFound/NotFound.tsx","../../shared/components/ProfileInfoTab/ProfileInfoTab.tsx","../../shared/components/StatementTab/StatementTab.tsx","../../shared/components/SignedExpert/SignedExpert.tsx","../../shared/components/DotsSettings/DotsSettings.tsx","../../shared/components/SexRadios/SexRadios.tsx","../../shared/components/VerifyEmailInput/VerifyEmailInput.tsx","../../shared/components/Status/Status.tsx","../../shared/components/Textarea/Textarea.tsx","../../shared/components/Dropdown/Dropdown.tsx","layouts/unauth/UnAuthorizedLayout.tsx","api/ApiClient.ts","components/OnlineModal/OnlineModal.tsx","containers/ApplicantExamsContainer/ApplicantExamsContainer.tsx","containers/ExamApplicationsContainer/ExamApplicationsContainer.tsx","components/SystemSettings/SystemSettings.tsx","components/RegistrationForExam/RegistrationForExam.tsx","components/RegistrationForExam/IdentificationTab/IdentificationTab.tsx","components/RegistrationForExam/DocumentsTab/DocumentsTab.tsx","containers/RegistrationForExamContainer/RegistrationForExamContainer.tsx","containers/RegistrationContainer/RegistrationStep4.tsx","containers/ExamDetailsContainer/ExamDetailsContainer.tsx","helpers/const/query.ts","containers/ExamTimeTablesContainer/ExamTimeTablesContainer.tsx","containers/LoginContainer/LoginContainer.tsx","containers/ProfileContainer/ProfileContainer.tsx","containers/RegistrationContainer/RegistrationStep1.tsx","containers/RegistrationContainer/RegistrationStep2.tsx","containers/RegistrationContainer/RegistrationStep3.tsx","containers/RegistrationContainer/RegistrationContainer.tsx","containers/ResetPasswordContainer/ResetPasswordContainer.tsx","routes/SidebarTabs.ts","containers/SidebarContainer/SidebarContainer.tsx","containers/EmailConfirmationContainer/EmailConfirmationContainer.tsx","containers/PaymentResultContainer/PaymentResultContainer.tsx","containers/ExamRecognitionContainer/ExamRecognitionContainer.tsx","containers/QualificationsListContainer/QualificationsListContainer.tsx","containers/ExamApplicationDetailsContainer/ExamApplicationDetailsContainer.tsx","pages/ApplicantExamsPage/ApplicantExamsPage.tsx","pages/NotFoundPage/NotFoundPage.tsx","pages/ExamApplicationsPage/ExamApplicationsPage.tsx","pages/ExamDetailsPage/ExamDetailsPage.tsx","pages/ExamTimeTablesPage/ExamTimeTablesPage.tsx","pages/ProfilePage/ProfilePage.tsx","pages/LoginPage/LoginPage.tsx","pages/RegisterPage/RegisterPage.tsx","pages/ResetPasswordPage/ResetPasswordPage.tsx","pages/EmailConfirmationPage/EmailConfirmationPage.tsx","pages/PaymentResultPage/PaymentResultPage.tsx","pages/QualificationsListPage/QualificationsListPage.tsx","pages/ExamApplicationDetailsPage/ExamApplicationDetailsPage.tsx","routes/UnAuthorizedHandler.tsx","layouts/auth/AuthorizedLayout.tsx","routes/AuthorizedHandler.tsx","routes/Routes.tsx","../../shared/_helpers/localStorageHelpers/returnUrl.ts","Root.tsx","api/ApiConnector.ts","config/apiConfig.default.ts","redux/models/auth.ts","../../shared/_helpers/localStorageHelpers/localStorageAuth.ts","redux/models/errors.ts","redux/models/exam.ts","redux/models/applicant.ts","redux/models/examApplications.ts","redux/models/notifications.ts","redux/models/events.ts","redux/store/configureStore.ts","redux/models/regions.ts","redux/models/countries.ts","redux/models/qualifications.ts","index.tsx"],"names":["module","exports","tabsContainer","tab","icon","active","videoContainer","video","autoHeight","testContainer","testStepper","end","errorText","modalTitle","question","list","list_item","question_title","question_text","question_text_correct","question_text_wrong","success_text","failed_text","checkbox","checkbox_checked","checkbox_correct","matching","matching_correct","caption","font-extra-small","answer_container","check_box","radio_section","radio_block","id_input","matchingAdditionalBtn","matchingAddBtn","answer","answer_select","answer_multiple","dndButton","changeLink","answer_inputGroup","chatContainer","chat","fixed","loading","chat_field","newMessage","chat_field_body","alert","chat_icon","blue","rose","chat_userName","chat_userNameContainer","chat_connectStatus","messageTime","footer","textAreaContainer","hideInput","textArea","navButtons","navButtons_margin","nav__link","info_link","nav__list","nav__link_icon","caret","rotate-180","sidebar","sidebar__wrapper","mobileHideSidebarIcon","adaptive","logo__container","logo","user_name","notification","bg","container","fields","selectGroup","field_title","field_value","date_container","date_group","one_select_group","select_text","align_center","col","buttonsContainer","fontStretchCondensed","card","card_title","card_title_small","card_title_withoutMargin","card__header","titleBorder","category","content__withoutPadding","headerChildContainer","title__withButton","fullHeight","errorPlaceholder","exitModalTitle","admitted","header","header__link","collapseButton","hideMenuIcon","showMenuIcon","headerTitle","pagination","page_button","disabled","page_info","per_page_info","practicalAnswer","table","table__header","table__body","qualification","qualification__name","qualification__centerName","qualification__address","placeholder","placeholder__title","placeholder__text","placeholder__button","dateTime","InputPassword","InputPassword__container","eye_open","eye_closed","radio__blue","radio_label","__webpack_require__","p","phone_input__helper","phone_container","invalid","signModal","signModal__header","signModal__body","body__text","body__input","body__sendAgain","signModal__footer","field_container","field_container_disabled","profile_data__value","marginRow","phone_form__container","dateLabel","change_button","profile__btnContainer","cancelBtn","saveBtn","dayCells","modalBody","expertSelect","modalWithoutPadding","modalBodyWithoutPadding","removeIcon","height80","profile_data_container","profile_data__title","sex_container","change_password","content","sub_title","phone_form_container","phone_input_helper","phone_input","resend_button","register_link_container","register_link","resend_interval_text","input_error_block","editable_table","drop_target","dnd_button","delete_button","empty_th","delete_row_btn","add_row_btn","add_btn_row","total_row","editable_table_moving","pre","dotsIcon","button","button_red","button_green","button_orange","button_grey","svg","stroke","buttonContainer","label","buttons_container","createBtn","small_field","day","selected","number","info","subInfo","count","badge","finalizing","orange","finalizingTitle","loadButton","review","document","document_image","document_title","document_text","document_switch","document_content","table_header_text","notFoundContainer","notFoundTitle","notFoundText","th","confirmButton","wrapper","selectOptions","statusSelectOptions","groupClassName","datePicker","datePickerField","tableDate","hoverContainer","pinOn","pinOff","switchOff","switchOn","pin","iconContainer","iconOn","iconOff","loader","drop","drop_text","drop_link","drop_fieldContainer","drop_icon","document_dropZone","document_dropZone_uploaded","document_dropZone_uploadedTitle","document_button","document_row","document_icon","date","date_border","date_text","clearDateInput","certificateRow","certificateRow_regNumber","certificateRow_date","video_container","connectionLost","switchContainer","switchContainer_text","switchContainer_text_secondary","fullScreenButton","dropdown","dropdown__menu","show","dropdown__item","dropdown__divider","commonButton","dropIcon","dropIcon_rotate","activeIcon","menuContainer","switch","infoContainer","title","examPart","iconsContainer","flare","primaryButton","tabContainer","tabContainer_tab","tabContainer_tab_complete","switch_darkness","switchIcon_webCam","switchIcon_webCam_white","switchIcon_screen","switchIcon_screen_white","switchPin","switchPin_white","uploadedFile","uploadedFile_textContainer","uploadedFile_text","uploadedFile_text_progress","uploadedFile_progressBar","uploadedFile_deleteIcon","document_disabled","document_button_hide","shortField","modal","modal_large","modal_overflow_off","modal__header","modal__body","modal__footer","submitButton","checkBoxModal","checkBoxModal__header","checkBoxModal__title","checkBoxModal__body","checkBoxModal__footer","checkBoxModal_green","checkBoxModal_red","sortBtn","container_title","container_text","subRow","info__row","info__label","info__label_dark","info__value","info__valueManyRow","verifyContainer","verifyContainer_rotate","verifyContainer_low_right","convertIcon","arrowsIcon_rotate","rotate","inputGroup","button_delete","button_add","rejectModal","rejectModal__header","rejectModal__body","rejectModal__footer","checked_table","incorrect_cell_auto","incorrect_cell_manual","link","link_text","link_icon","text","text_end","text_address","expertSignStatus","expertSignStatus_signed","signedButton","mainPanel","container_full","container_bg","interactiveElement","code_field","font-small","internalNumberField","repeatInviteBtn","phoneHelper","loaderBtn","btn_content","btn_content_offset","step","success","error","dateForm","daySelect","monthSelect","yearSelect","emptyExpertsTable","bubble","fillCircle","phone_input__helper_disabled","phone_input__helper_withPadding","phone_input__helper_fixTop","downloadButton","documentUrl","downloadButton_disabled","feedbackText","dark_style","light_style","row_input","prependContent","group","darkLabel","form","add_button","eventButtonsContainer","dnd_btn","select_group","select","fileInfo","warningTitle","notificationText","toastContainer","row","row_title","row_value","timePickerContainer","timePicker","TabBorder","Tabs_inModal","Tabs","tooltip","copy","address_icon","address_link","status","subStatus","textarea","textarea_resize","log_text","RulesTab","image","profile__container","saveToLocalStorage","key","data","localStorage","setItem","loadFromLocalStorage","getItem","removeFromLocalStorage","removeItem","hasAccessTokenInLocalStorage","accessToken","Boolean","getMoscowTime","moscowTime","clone","tz","moscowHours","format","moscowMinutes","formatPhoneNumber","phone","defaultReturn","arguments","length","undefined","match","concat","replace","formatSecretPhoneNumber","serialNumberToChar","num","String","fromCharCode","formatSnils","snils","formatFIO","applicant","lastName","firstName","middleName","trim","Color","formatDayTitle","_ref","dayNumber","time","result","ChatMessageType","VideoType","ColorStatus","color","subText","Object","classCallCheck","this","KurentoResponseIds","KurentoRequestIds","_AlertsTypes","defineProperty","Violation","LightRed","Info","LightPurple","Error","Orange","Message","Default","appVersion","scripts","Array","prototype","slice","call","querySelectorAll","chunkCss","filter","href","includes","chunkJs","script","src","map","f","sp","split","sort","n","join","e","console","getVersion","formDetector","UnsavedFormDetector","_this","getSubmittedInputs","submitted","keys","changedInputs","forEach","obj","oldValue","value","objectSpread","formSubmitted","detectChanges","isSubmit","detect","_this2","find","MediaConstraints","default","audio","width","height","frameRate","aspectRatio","screen","timeout","window","__mediaConstraints","subDomain","spHost","location","host","IceServers","StunServers","urls","TurnServers","credential","username","__iceServers","RegExpErrorsText","mapAPIError","apiError","_","isEmpty","failures","general","message","mapValues","errors","RegExpConst","PHONE","SNILS","EMAIL","NAME","PASSWORD","NUMBER","DOUBLE","TimingSynchronizer","offset","moment","locale","serverTime","diff","Date","applyOffset","zoneOffset","zoneName","add","setDefault","now","calcOffset","bind","instance","AppExceptionType","timingSynchronizer","getInstance","wordDeclination","txt","cases","Protocol","ApiConnector","ApiClient","apiConfig","onlineEventsSubscriber","onlineMethods","initOnline","dispatch","_onlineEventsSubscriber","_connection","token","setTimeout","asyncToGenerator","regenerator_default","a","mark","_callee","wrap","_context","prev","next","abrupt","HubConnectionBuilder","withUrl","_url","accessTokenFactory","withAutomaticReconnect","build","start","_handleStartConnection","onreconnecting","log","onreconnected","onclose","_onlineMethodsClient","_onlineMethods","init","t0","ev","on","method","t1","connection","stop","sendSocketMessage","_ref2","_callee2","socketMethod","_context2","_startConnectionPromise","then","_sendSocketMessage","_x","apply","execApi","_ref3","_callee3","apiMethod","options","_result","_result2","_context3","suppressErrorAndReturnNull","apiClient","sent","code","handleUnAuthorizeError","withoutErrorsHandle","eventStateRequest","clean","_apiClient","eventsState","updateEventState","errorHandler","finish","_x2","_x3","_x4","startsWith","API_BASE_URL","fetch","fetchWithSetHeaderToken","Promise","resolve","createClass","_sendSocketMessage2","_callee4","_context4","state","HubConnectionState","Connected","_x5","get","_ref4","_callee5","url","customOptions","statusCode","response","serverVersion","_context5","headers","Authorization","unfetch","indexOf","reload","setDelta","_x6","_x7","createApiError","type","handle","JSON","parse","Unspecified","auth","logout","push","CustomRadio","checked","option","name","onClick","className","labelClassName","withoutFormDetect","rest","objectWithoutProperties","React","useEffect","setChangedInput","react_default","createElement","cx","styles","assign","style","display","id","onChange","htmlFor","Header","sidebarToggled","dropdownItems","tabs","role","_useState","useState","_useState2","slicedToArray","emulateRequestError","toggleEmulateError","hasDropdownItems","tabsRoutes","useMemo","t","pathname","i","reduce","all","tl","toConsumableArray","path","routes","isSameLinks","locPathName","_locPathName$split","endsWith","Navbar","variant","body","querySelector","classList","contains","remove","react_router_dom","to","activeRoute","route","getNameOfActivePage","dropdownContainer","dropdownContainer_withoutDropdown","components_Dropdown_Dropdown","items","process","REACT_APP_LOCAL_ENV","Common_CustomSwitch_CustomSwitch","containerClassName","CustomCheckbox","onCheck","inline","_React$useState","_React$useState2","isChecked","setIsChecked","classes","checkbox-inline","Card","_cx","showLoader","cardClassName","hidden","calendar","plain","wizard","withoutBorder","textCenter","borderedTitle","withoutPaddingTitle","withBackButton","onClickBack","categoryClassName","withoutPadding","ctAllIcons","ctFullWidth","ctTextCenter","tableFullWidth","contentClassName","children","stats","legend","ftTextCenter","detectFormChanges","footerElement","saveAndCloseDetectFunc","smallTitle","headerChild","titleClassName","containerRef","show404Error","headerClassName","withoutTitleMargin","dotsButtons","without404Error","withoutBottomMargin","extHeader","setDetectChanges","forms","submitButtons","onFormSubmit","setFormSubmit","addEventListener","removeEventListener","resetDetectState","Common_Loader_Loader","Fragment","Common_ErrorPlaceholder_ErrorPlaceholder","withCard","ref","backArrow","alt","components_DotsSettings_DotsSettings","buttons","all-icons","content-full-width","text-center","table-full-width","ml-30","h","Alert","autoFocus","components_UnsavedFormModal_UnsavedFormModal","components_NotFound_NotFound","props","open","setOpen","FormControl","autoComplete","NavList","links","onClickMenuLink","isOpen","setIsOpen","isActiveBlock","escapedName","escapeString","changeOpenState","isActiveRoute","routeName","isSamePath","some","mergePathAndRoutes","isArray","search","el","string","toLocaleLowerCase","nameOfBlock","renderLinkIcon","nameWords","charAt","renderSimpleNavLink","prop","exact","activeClassName","events","Common_NotificationBundle","Collapse","in","renderCollapseBlock","getEventsSum","eventsArr","acc","event","Sidebar","profile","profileTabs","onLogout","sidebarRef","createRef","openAvatar","setOpenAvatar","detectMobileOutsideClick","clientWidth","target","closest","background","avatar","mini","Sidebar_NavList","Pagination","prevPageStyleName","page","nextPageStyleName","pages","data-disabled","getAttribute","newPagination","min","max","Number","isNaN","parseInt","data-test-pagination-per-page","perPage","toString","ExamTable","onChooseExam","tableRows","onChangePagination","onClickPlaceholderButton","placeholderTitle","placeholderText","placeholderButtonText","placeholderIcon","hasApplicationsNumber","Table","responsive","hover","columnHeader","rowData","data-test-exam-number","data-test-exam-id","TableColumns_DatePeriodColumn","dateFrom","dateTo","lastDate","attestationSubCommissionName","address","applicationsNumber","examType","components_Status_Status","MappedExamTypes","components_Pagination_Pagination","total","pageSize","Math","ceil","getPaginationObject","Common_EmptySection_EmptySection","newsIcon","onButtonClick","monthsList","days","padStart","ExamStatus","FilteredExamStatus","DatePicker","initDate","initialDate","from","withoutDetectChanges","datePickerSizeSm","isInvalid","initialBirthDate","year","month","datePickerDate","setDatePickerDate","utc","handleBirthDayChange","formData","isDateFilled","daysInMonth","ymd","momentDate","yearsList","years","currentYear","getFullYear","getYears","Container","cn","esm_Row","Col","xs","dayClass","Common_ExtendedSelect_ExtendedSelect","d","smSize","withoutStrictValue","monthClass","m","yearClass","y","Form","Control","Feedback","Details","infoRows","withDarkRowLabel","centeredRow","Group","as","Row","controlId","align-items-center","StringValue","ArrayStringValue","LinkStringValue","ReactNodeValue","renderSwitch","WarningModal","onHide","onAccess","appendFooterItem","titleClassNames","bodyClassNames","footerClassNames","accessBtnTittle","closeBtnTittle","dialogClassName","withoutCancelButton","withoutCloseIcon","withoutTitlePadding","withoutOverflow","large","disableAccessButton","headerClassNames","_ref$centered","centered","Modal","data-test-warning-modal","closeButton","Title","Body","Footer","Common_LoaderBtn_LoaderBtn","Button","SmsSignModal","onSubmit","onSendPasswordAgain","processing","waitingSeconds","phoneText","submitButtonText","initialState","signCode","setSignCode","_React$useState3","_React$useState4","signCodeValid","setSignCodeValid","_React$useState5","_React$useState6","timer","setTimer","_React$useState7","_React$useState8","captcha","setCaptcha","_React$useState9","_React$useState10","captchaValid","setCaptchaValid","inputElement","useRef","invalidInputText","verificationCode","current","focus","calcTimer","prevTime","usePrevious","clearTimeout","nPhone","onCloseModal","preventDefault","isCaptchaValid","components_Captcha_Captcha","isSignCodeValid","doValidate","maxLength","PhoneModal","onSubmitPhone","onSubmitCode","setPhone","password","setPassword","passwordValid","setPasswordValid","setVerificationCode","verificationCodeValid","setVerificationCodeValid","_React$useState11","_React$useState12","showCode","setShowCode","_React$useState13","_React$useState14","_React$useState15","_React$useState16","processingCode","setProcessingCode","_React$useState17","_React$useState18","processingPhone","setProcessingPhone","_React$useState19","_React$useState20","phoneValid","setPhoneValid","_React$useState21","_React$useState22","_React$useState23","_React$useState24","_React$useState25","_React$useState26","setStep","isPasswordValid","isPhoneValid","test","doValidateCodeForm","isVerificationCodeValid","submitPhone","submitCode","res","clearState","checkError","field","onClose","components_PhoneInput_PhoneInput","labelTitle","labelColSize","inputColSize","inputClassNames","fieldFailures","phoneHelperClassName","sm","Label","ResetPasswordModal","onChangePassword","withoutOldPass","withoutRepeatPass","oldPass","setOldPass","newPass","setNewPass","repeatPass","setRepeatPass","validOldPass","setValidOldPass","validNewPass","setValidNewPass","validRepeatPass","setValidRepeatPass","setProcessing","captchaError","newPassError","newPassword","oldPassError","oldPassword","oldPassValid","newPassValid","repeatPassValid","submit","Modals_WarningModal_WarningModal","InputText","minLength","inputGroupClassNames","ExamApplicationStatus","MappedFilteredExamStatus","_MappedFilteredExamSt","AwaitingExpertConfirmation","IsApplying","Success","ApplyingFinished","Staging","Canceled","Red","Finished","MappedExamStatuses","k","_MappedExamStatuses","Finishing","getExamStatusMapping","currentStageNumber","FinalizedResult","MappedAdmittedResultColor","true","false","ExamSessionStatus","ExamSessionReadyStatuses","MappedFinalizedResult","_MappedFinalizedResul","Passed","NotPassed","Absent","None","MappedFinalizedResultColor","_MappedFinalizedResul2","MappedExamApplicationStatuses","_MappedExamApplicatio","Draft","Primary","InReview","CorrectionsRequired","Approved","AppType","ExamType","DocumentType","_MappedExamSessionRea","WaitingForStart","ExamStaging","TheoreticalExamStagingAndSessionStarted","ExamSessionTimeout","PracticalExamStagingAndSessionStarted","ExamFinished","SessionFinished","IdentityDocType","DocumentTypeTitles","_DocumentTypeTitles","Other","IdentityDoc","SecondaryEducationConfirmation","HigherEducationConfirmation","WorkExperienceConfirmation","ContinuingEducationConfirmation","Snils","NoCriminalRecord","QualificationCertificate","ConsentToProcessingPersonalData","Sex","IdentityDocTypeTitles","_IdentityDocTypeTitle","Passport","Residence","MilitaryTicket","TemporaryIdentity","DiplomaticPassport","StatelessPersonIdentity","InternationalPassport","ForeignCitizenPassport","TemporaryResidencePermit","ServicePassport","RefugeeIdentity","ServicemanIdentity","SeafarerIdentity","PracticalQuestionType","TheoreticalQuestionType","ExamPartType","ExamStageStatus","ExpertStatus","_MappedExamTypes","Online","Recertification","Intramural","ExpertChangeRequestType","ExpertStatusNames","ascMember","ascChairman","ascViceChairman","ascSecretary","acSecretary","acChairman","acViceChairman","_MappedExpertStatus","AscMember","AscChairman","AscViceChairman","AscSecretary","AcSecretary","AcChairman","AcViceChairman","ExpertChangeRequestStatus","_MappedExpertChangeRe","IncludeInAsc","ExcludeFromAsc","UpdateAscStatus","UpdateFullName","UpdatePosition","ExpertChangeRequestsOrderStatus","_MappedExpertChangeRe2","Approving","Rejected","_MappedExpertChangeRe3","Formatting","ExpertChangeRequestApprovalStep","CitizenshipType","ResidencyOptions","MilitaryRelationshipType","CitizenshipTypeTitles","_CitizenshipTypeTitle","Russian","RussianWithOther","Foreigner","WithoutCitizenship","DiplomaType","MilitaryRelationshipTypeTitles","_MilitaryRelationship","Reservist","Serviceman","NonLiable","Conscript","CustomsOfficer","CustomSwitchStatusEnum","DiplomaTypeTitles","_DiplomaTypeTitles","Specialist","Bachelor","Spo","Residency","Pp","ExtractFromProtocolGIA","ExamAssigningApplicationsTable","examApplications","setExamApplications","fieldName","fieldValue","setFilter","checkedApplications","setCheckedApplications","checkedAll","setCheckedAll","showEmptyListModal","setShowEmptyListModal","withStatus","isStatus","statusOptions","c","finalizedResult","v","unshift","handleCheckApplication","useCallback","newChecked","examApplication","examApplicationId","handleCheckAll","canFinalize","handleAssignedApplicants","assignedApplicants","onAssignedApplicants","triggerParentChange","nFilter","toLowerCase","onFilterFieldChange","_event$target","newFilter","withCheckbox","readonly","Common_CustomCheckbox_CustomCheckbox","disableCheckbox","textValue","noUppercase","withConfirmButton","colSpan","confirmButtonText","onItemClick","stopPropagation","applicantFullName","applicantPhone","renderStatus","groupIcon","paginationClassName","Loader","showBg","svg_full","LoaderSvg","withRouter","history","modalVisible","setModalVisible","lastLocation","setLastLocation","confirmedNavigation","setConfirmedNavigation","closeModal","handleConfirmNavigationClick","getShowModal","onbeforeunload","react_router","when","nextLocation","StatusColumn","react","DatePeriodColumn","local","AdvancedTable","handleSearch","tableHeaders","handleRowClick","handleOrder","withoutPagination","handlePageChange","filters","handleSelectChange","tdClassName","_ref$renderAdditional","renderAdditionalHeaderRow","placeholderClassName","initialFormData","x","savedFilters","searchField","searchTerm","firstRun","setFirstRun","setFormData","typingTimer","setTypingTimer","inputTarget","setInputTarget","selectedOption","setSelectedOption","setFrom","setTo","onInputKeyup","handleInputChange","onInputKeydown","onInputChange","newFormData","onHandleSelectChange","users","EmptyUsersListIcon","EmptyListIcon","data-test-table","isDate","columnStyles","defaultValue","onKeyUp","onKeyDown","components_DateTimePicker_DateTimePicker","oldDateFrom","oldDateTo","onHandleDateChange","firstDateProps","readOnly","secondDateProps","withoutLabels","withoutTime","withoutClear","item","rowNum","data-test-row-id","data-test-row-num","columns","CustomSwitch","_containerOptionalCla","_cn","_cn2","changed","pinClassName","iconClassName","isFixPosition","containerOptionalClasses","data-test-switch","useLocalErrorHandler","handlerType","disable","useShowGlobalErrorModal","handler","toggleModal","showModal","useReloader","oldLocation","setOldLocation","_useState3","_useState4","setReload","useMouseLeaveDetector","useLoading","promiseLikeFunction","deps","setLoading","r","catch","useEffectProcessing","effect","returnFunction","useMultiSearch","setState","filterSetter","fieldKey","newState","prevState","changeFilterField","newForm","changeFilter","useGoBack","useLocation","useHistory","URLSearchParams","usePushFrom","newPathName","set","EmptyPagination","_fetch","PaginationImpl","getPages","getPaginationData","newPaging","InputTotal","setRef","labelClassNames","withoutLabel","pattern","withDarkLabel","hasError","setHasError","has","column","InputGroup","Prepend","Text","node","SimpleTable","tableCellClassName","tableClassName","onPagination","ExamRequirement","TabKey","InitFormErrors","InitFormData","rememberMe","AuthenticationForm","onLogin","subTitle","resetPasswordLink","registerLink","withRegister","withEmail","withPhone","withoutForgotPassword","formFieldErrors","setFormFieldErrors","getFieldErrorFromApiError","phoneError","emailError","passwordError","email","checkValidationErrors","handleSubmit","validResult","components_Card_Card","FormGroup","data-test-password-group","FormLabel","Common_InputPassword","ExtendedSelect","multi","onChangeMulti","noOptionsMessage","notSelectedOptions","onMenuOpen","invalidTitle","isClearable","customStyle","control","base","border","multiOptions","selectedOptions","findValue","classNames","data-test-extended-select","textTransform","react_select_browser_esm","isValidNewOption","creatable","formatCreateLabel","AddIcon","setProperty","createLabel","onCreateOption","createOptionPosition","isDisabled","isMulti","classNamePrefix","ApplicantQualifications","qualifications","details","showInfo","setShowInfo","getStatus","expireDate","TableColumns_StatusColumn","isAfter","tableRow","q","issueDate","cardTitle","cardCategory","Common_SimpleTable_SimpleTable","onChooseQualification","QualificationsEmptyIcon","onClearQualification","renderRow","regionName","ResetPasswordFirstStep","sendCode","goNext","goBack","initPhone","phoneExists","ResetPasswordSecondStep","checkCode","resendCode","setCode","codeValid","setCodeValid","phoneLetters","isCodeValid","codeExists","resendVerificationCode","data-test-verify-code-group","ResetPasswordThirdStep","authProcessing","resetPassword","data-test-new-password-group","LoaderBtn","data-test-loader-btn","EmptySection","ErrorBoundary","logErrorToMyService","stack","Component","Identification","onlyWatch","stateData","buttonText","onSubmitPassport","onSubmitOther","onCancel","withoutSubmitButton","initErrors","identityDocType","serialNumber","issuedBy","dateOfIssue","registrationAddress","validErrors","setValidErrors","setIdentityDocType","setSerialNumber","setIssuedBy","setDateOfIssue","setRegistrationAddress","setData","docTypeOptions","passport","otherIdentity","hasOwnProperty","newErrors","checkFieldsErrors","submitData","val","isValidFormData","fieldsError","values","every","subData","_errors","components_Textarea_Textarea","components_DatePicker_DatePicker","span","ErrorPlaceholder","renderBody","errorIcon","NotificationSystem","notifications","cleanNotifications","addToast","useToasts","sendNotification","appearance","autoDismiss","Toast","dist","NotificationSystemProvider","placement","components","toastProps","_Toast","NotificationSystem_NotificationSystem","NotificationBundle","dark","Captcha","data-test-captcha-group","withDragDropContext","component","DragDropContext","HTML5Backend","_React$Component","inherits","ClassComponent","_super","withDragDropContext_createSuper","esm_extends","HOC","QuestionType","rowDragSource","DragSource","beginDrag","rowIndex","connect","connectDragSource","dragSource","connectDragPreview","dragPreview","rowDropTarget","DropTarget","canDrop","monitor","didDrop","fromIndex","toIndex","onRowDrop","connectDropTarget","dropTarget","isOver","DragDrop","dndClassName","dndIcon","QuestionVariant","answerChar","handleChangeMatchingAnswerText","onAdd","onDelete","questionLeftLength","mb-2","mb-4","QuestionSelect","correct","withoutNum","selectContainerClassName","right","onChangeSelect","getCurrentAnswer","matchingNumber","ans","questionNumber","MatchingRightVariant","handleChangeOrderingAnswerText","TheoreticalQuestionRedactor_QuestionSelect","createEmptyAnswer","onChangeLeftHeader","onChangeRightHeader","onAddQuestionVariant","onDeleteQuestionVariant","onDropAnswer","changeLeftHeader","setChangeLeftHeader","changeRightHeader","setChangeRightHeader","matchingOrOrderingAnswers","_question$matchingOrO","leftAnswersHeader","rightAnswersHeader","left","leftHeader","OrderingTheoretical","MatchingTheoretical","rightHeader","b","DragDrop_DragDrop","TheoreticalQuestionRedactor_QuestionVariant","TheoreticalQuestionRedactor_MatchingRightVariant","createEmptyMatchingAnswer","MultipleChoiceTheoretical","MultiSelectGroup","_ref$withoutStrictVal","MultiSelectSearch","hide","data-test-multi-select-section","DateTimePicker","fieldClassName","withStyledBorderSelect","checkSameDates","nDate","isSame","processSameDates","toDate","hour","minute","fromDate","firstDateChange","dayDate","secondDateChange","renderDateInput","inputProps","caretColor","viewBox","xmlns","fill","DateTime_default","renderInput","timeFormat","closeOnSelect","DefaultMultiSelectSearch","components_MultiSelectGroup_MultiSelectGroup","DefaultSelectSearch","_ref$isClearable","inputClassName","CKText","dangerouslySetInnerHTML","__html","OpenAnswerPractical","getTableHeader","separator","rowCount","getHeaderRowCount","headerArr","lastItem","last","newAcc","prepareTableHeaders","RowRendererDrag","disabledMoving","gridLength","handleDeleteClick","RowRenderer_RowRendererNotDrag","dragChild","deleteIcon","RowRendererNotDrag","headersLength","handleCLickRowAdd","renderAddRowBtn","addIcon","RowRenderer","convertGridToSolution","grid","EmailConfirmation","headersSeparator","submitSolution","fromAnswerRows","hideTitle","tableId","tableRef","headersArr","multilineArr","multiline","readOnlyArr","headersWidth","_ref5","forbidMoving","prepareTaskGrid","j","answerRows","initialRows","setGrid","tableWidth","setTableWidth","newGrid","handleRowDrop","sourceRow","nGrid","splice","rowNumber","createItemCb","emptyGrid","totalGrid","handleCellInputChange","currentTarget","renderFields","_ref6","components_AutoGrowTextArea_AutoGrowTextArea","onKeyPress","nRow","nCol","cell","handleSelectNextCell","getHeaderWidth","maxWidth","arr","EditableTable_RowRenderer","data-test-answer-table-cell","data-not-move","onPush","tokenError","EmailConfirmationNotification","sendConfirmationEmail","showVerifyEmailModal","setShowVerifyEmailModal","sendEmail","sendEmailAgain","emailConfirmed","Common_NotificationSystem_NotificationSystem","AutoGrowTextArea","areaRef","autoGrowTextArea","onFocus","textField","clientHeight","scrollHeight","getExamApplicationStatus","_objectSpread2","exam","ExamApplicationDetails","examApplicationDetails","isResult","colorStatus","qualificationTitle","region","applicationSubmitDate","timeDate","moscowLocalTime","localTime","createExamDate","rowClassName","valueColor","extKey","Row_Row","StagingExamApplicationDetails","examDayApplications","ea","stageNumber","attemptNumber","examDayDateTime","ProfileInfoBlock","canChange","cancelButtonText","onTryChange","onUpdatePhone","hideChangeButtons","canChangeOnlyPhone","withoutBirthDate","withoutSex","birthDate","sex","setShowModal","setWaitingSeconds","showResetPassModal","setShowResetPassModal","onSendCode","sendPhone","phoneCaptcha","sendStatus","onChangeInput","renderChangeButton","regexp","Male","newMoment","components_SexRadios_SexRadios","components_VerifyEmailInput_VerifyEmailInput","lowRightIconPosition","Modals_ResetPasswordModal_ResetPasswordModal","Modals_PhoneModal_PhoneModal","FetchSelect","onFetch","clearFetch","inputValue","setInputValue","selectValue","setSelectValue","onOptionChange","createBoldLabel","index","matchingLabelWord","dist_react_select_browser_esm","fetchData","onMenuClose","formatOptionLabel","ExamApplicationTabs","appType","examTabChild","docTabChild","withoutTabPadding","identificationTabChild","onChangeSwitch","disableSelectTab","inModal","onStatementCancel","onStatementSubmit","ExamTab","activeTab","setActiveTab","tabClassName","components_AnimatedTabs_AnimatedTabs","activeKey","onSelect","Tab","eventKey","ExamApplicationDetails_StagingExamApplicationDetails","IdentificationTab","components_ExamApplicationDetails_ExamApplicationDetails","ProfileTab","components_ProfileInfoTab_ProfileInfoTab","applicantIdentityDoc","applicantDiploma","DocumentsTab","components_ApplicantDocuments_ApplicantDocuments","documents","Applicant","StatementInfoTab","components_StatementTab_StatementTab","ApplicantsTab","handleApplicantsListChange","handleApplicantClick","examStatus","examDetails","examId","isExamFinished","applicationsHeader","finalized","applicantEmail","applicantSnils","Common_AdvancedTable_AdvancedTable","GroupIcon","ExamInfoState","getTitle","getSubTitle","getInfoElement","components_Details_Details","DetailsStringValue","DetailsReactNodeValue","applyingDeadline","getInfoRowsFromExamDetails","LikeIcon","icons","RejectedIcon","WaitTimeIcon","icons_LikeIcon","StepStatus","AwaitingExpertConfirmationComponent","infoRowsFromExamDetails","progressStepsDetails","examCreationProgress","prevStepCompletionDateTime","completionDateTime","components_StepStatus_StepStatus","AwaitingExpertConfirmation_AwaitingExpertConfirmationComponent","ExamInfoStates","initStates","getState","states","defaultState","ExamInfoTab","examInfoState","OverlayTrigger","triggerText","_ref$placement","esm_OverlayTrigger","delay","overlay","Popover","ExpertsIcon","opacity","fillRule","clipRule","StatusIcon","DayCell","readyForFinalize","_ref$count","_ref$badgeCount","badgeCount","_ref$expertsCount","expertsCount","_ref$audienceFilledPe","audienceFilledPercents","_ref$onChoose","onChoose","_ref$onEdit","onEdit","components_OverlayTrigger_OverlayTrigger","Badge","icons_ExpertsIcon","icons_StatusIcon","attemptsTxt","ConfirmDateModal","lastFinalizedStageAttemptNumber","disableDateEditor","onCreateNewDay","stageInfo","totalApplications","availablePlaces","audienceCapacity","formatDayOption","stage","selectedDayNumber","chooseDay","apiErrors","gridColumn","TimePicker","preparedTime","_getMoscowTime","newTime","DayEditor","hideMainPart","changedDate","newDate","onChangeDate","Common_TimePicker_TimePicker","AssigningOneExpertModal","expertsOptions","experts","existedIds","selectedExpert","setSelectedExpert","_useLoading","_useLoading2","handleAssignExpertLoading","handleAssignExpert","handleChangeExpert","renderExpertRow","Common_FetchSelect_FetchSelect","clear","mb-3","position","ExpertsAssignTable","showAssignOneExpertModal","setShowAssignOneExpertModal","setExperts","expertsForDayList","autoOpen","handleAdd","expert","handleRemove","handleUpdate","onUpdateExperts","updateExpertsLoading","updateExperts","listTableHeaders","minWidth","noExpertsCount","minAssigningExperts","Modals_AssigningOneExpertModal","examDayId","AnimatedTabs","tabBorderStyle","setTabBorderStyle","setKey","tabsLength","firstTab","firstTabPaddingLeft","parseFloat","getComputedStyle","paddingLeft","leftStartPosition","getBoundingClientRect","selectedTab","top","ariaSelected","tabBound","tabStyle","paddingRight","firstTabY","selectedTabY","moveTabBorder","newKey","CustomRadioGroup","radios","radiosGroupName","onChangeRadio","radio","Common_CustomRadio_CustomRadio","EmptyInfo","AssigningExpertsModal","Components_ExpertsAssignTable","expertIds","CreateDayModals","generateTime","round","defaultDate","selectedDate","setSelectedDate","showAssigningExpertsModal","setShowAssigningExpertsModal","assignedExperts","setAssignedExperts","handleChooseExperts","handleCreateDay","onCreateDay","createDayLoading","components_DayEditor_DayEditor","whiteSpace","Modals_AssigningExpertsModal","FinalizeResultModals","showRetakeModal","setShowRetakeModal","showCreateNewDay","setShowCreateNewDay","selectedDayId","selectDayId","unratedExamApplications","setApplicantsForRate","chooseResult","setChooseResult","finalizeResult","examApplicationIds","applicantsForRate","hideFinalizingResultModal","finalizeProcessing","finalizeStart","_useLoading3","assignApplicationsForDay","confirmDate","_useLoading5","expertsIds","onCreateRetakeDay","_useLoading6","createDay","retakeDays","examDays","isBefore","lastDay","pop","showFinalizingResultModal","components_CustomRadioGroup_CustomRadioGroup","o","Modals_ConfirmDateModal","findIndex","Modals_CreateDayModals","lastDayDateTime","FinalizingResultsTab","setShowFinalizingResultModal","components_ExamAssigningApplicationsTable_ExamAssigningApplicationsTable","applicants","Modals_FinalizeResultModals","ExamAdmittingApplicationsTable","sortIcon","examDayApplication","render","DocumentSwitch","onSwitchClick","setActive","newActive","AdmitApplicantsTab","showAdmitApplicantModal","setShowAdmitApplicantModal","applicantDetails","fetchDetailsProcessing","fetchDetails","admitToExamDay","_useLoading4","admitToExamDayProcessing","activeValues","setActiveValues","handleSwitchClick","handleAccessApplicant","examApplicationsForDayAdmit","components_ExamAdmittingApplicationsTable_ExamAdmittingApplicationsTable","applicantId","fileUrl","ApplicantDocuments_DocumentSwitch_DocumentSwitch","documentDescription","FinalizedExamApplicationsTab","applications","examApplicationsForDay","assigningApplicantsForReplace","setAssigningApplicantsForReplace","readOnlyResult","Assignment","ExamApplicationsTab","availableDays","canAssignApplications","showConfirmDate","setShowConfirmDate","selectedDayForReplace","setSelectedDayForReplace","handleConfirmAssigning","selectedDay","examStages","EditDayModal","selectedNewDate","setSelectedNewDate","showEditDate","setShowEditDate","handleFetchExamApplicationsForDay","handleFetchExamApplicationsForDayAdmit","updateDay","updateDayLoading","handleCreateRetakeDay","createExamDay","admitApplicants","EditModalTabs_AdmitApplicantsTab","finalizeTab","EditModalTabs_FinalizingResultsTab","EditModalTabs_FinalizedExamApplicationsTab","EditModalTabs_ExamApplicationsTab","unFinalizedApplications","reverse","iconType","defaultActiveKey","EmptyStage","CalendarIcon","StageContainer","examUnAssignedApplicationsList","stageDays","daysCount","random","totalExperts","getInitialDays","dayIndex","DEFAULT_DAYS_COUNT","setChooseDay","showEditModal","setShowEditModal","setAssignedApplicants","examDay","handleUpdateExperts","ids","createExamDayPayload","updateExpertsForDay","assignApplications","handleConfirmDate","newDays","isEmptyStage","accreditationCenterName","unassignedApplications","Components_EmptyStage","AssigningStage_DayCell","handleClickDay","pageNumber","firstDayDateTime","minimumRequiredExpertsNumber","Modals_EditDayModal","AwaitingStage","startDate","secretaryEmail","secretaryPhone","secretaryFullName","ExamDetailsTabs","applicantsTabProps","examApplicationsList","withoutApplicantsTab","withoutExpertsTab","stagesMap","s","AssigningStage_StageContainer","ExamStagesTabs_AwaitingStage_AwaitingStage","renderStage","checkPropsTab","Rules","Applicants","Experts","getDefaultTab","examInCreateStatus","ExamDetailsTabs_ExamInfoTab_ExamInfoTab","renderAppendForInfo","ExamDetailsTabs_ApplicantsTab_ApplicantsTab","defaultProps","rules","components_CKText_CKText","ApplicantExamDetailsTabs","statusChangeTime","examLogs","qualificationId","attestationSubCommissionId","attestationCommissionId","ExamDetailsTabs_RulesTab_RulesTab","ChatTabs","AlertText","ApplicantDocuments","docsIcon","UploadedDocument","file","onDeleteFile","getDocFromTemplate","onDeleteSource","fileId","fileExtension","fileName","fileSize","documentTemplateId","isSource","progress","progressVal","size","toFixed","uploadIcon","ProgressBar","DropZone","template","onDrop","templateNum","uploadedDocuments","loadingFile","lastDropTemplateId","showErrorUploadFile","setShowErrorUploadFile","templateId","uploadProps","description","dist_es","accept","fileRejection","getRootProps","getInputProps","doc","sourceFiles","getDocSourceFiles","DocumentUpLoader_UploadedDocument_UploadedDocument","DocumentUpLoader","onGoBack","documentTemplateGroups","deleteDocument","uploadDocument","deleteDocumentSource","nUploadedDocuments","goBackButtonText","setUploadedDocuments","setLoadingFile","setLastDropTemplateId","dropZoneDocuments","templates","documentId","sourceFileId","acceptedFiles","onUploadFile","DocumentUpLoader_DropZone_DropZone","PhoneInput","fixTop","fixLeft","NotFound","ProfileInfoTab","Female","citizenshipType","citizenshipCountryName","militaryRelationship","StatementTab","setProfessionalRetraining","setStartStage","showProfessionalRetrainingError","setProfessionalRetrainingError","showStartStageError","setStartStageError","_React$useMemo","identity","diploma","examName","startStage","professionalRetraining","onStartStage","qualificationResidency","correctionsRequired","components_SignedExpert_SignedExpert","commissionTitle","fullName","signed","signedCode","professionalRetrainingError","startStageError","SignedExpert","acceptInvite","chairman","acceptedInvite","penIcon","waitTimeIcon","DotsSettings","showButton","setShowButton","iconRef","handleClickOutside","strokeWidth","strokeLinecap","strokeLinejoin","SexRadios","VerifyEmailInput","setRotate","verifyEmailIcon","arrowsIcon","Status","Textarea","resize","formProps","rows","Dropdown","CustomMenu","forwardRef","aProps","renderDropdownContent","esm_Dropdown","Toggle","Menu","Item","Link","Divider","UnAuthorizedLayout","alignItems","ApiClientBase","baseUrl","http","jsonParseReviver","url_","options_","stringify","Content-Type","Accept","_response","processSendRegistrationVerificationCode","_headers","_responseText","resultData200","VerificationCodeSendingStatus","fromJS","result400","resultData400","ApiError","throwException","result500","resultData500","_this3","processCheckRegistrationVerificationCode","_this4","_this5","processRegister","_this6","AuthResult","_this7","processSendResetPasswordVerificationCode","_this8","_this9","processCheckResetPasswordVerificationCode","_this10","_this11","processResetPassword","_this12","result404","resultData404","_this13","processChangePassword","_this14","_this15","processLogin","_this16","result401","resultData401","_this17","processProfile","_this18","_this19","processUpdateProfile","_this20","_this21","processGetIdentityDoc","_this22","ApplicantIdentityDoc","_this23","processSetApplicantPassport","_this24","_this25","processSetApplicantOtherIdentity","_this26","_this27","processGetApplicantDiploma","_this28","ApplicantDiploma","_this29","processUpdateApplicantDiploma","_this30","_this31","processSendUpdatePhoneVerificationCode","_this32","_this33","processCheckUpdatePhoneVerificationCode","_this34","_this35","processUpdatePhone","_this36","_this37","processGetEventsState","_this38","EventsStateHolder","_this39","processGetCaptcha","_this40","_this41","processConfirmEmailByToken","_this42","_this43","processSendConfirmationEmailAgain","_this44","_this45","processCreateExamApplication","_this46","examReviewStatus","sortOrder","sortField","_this47","encodeURIComponent","processGetExamApplications","_this48","ApplicantExamList","_this49","processSendCodeToSignApplication","_this50","_this51","processSubmitExamApplication","_this52","myExamStatus","_this53","processGetMyExamApplicationsList","_this54","_this55","processGetExamApplication","_this56","_this57","processGetDocumentTemplateGroups","_this58","result200","_step","_iterator","_createForOfIteratorHelper","done","QualificationDocumentTemplateGroup","err","contentType","contentDisposition","_this59","content_","FormData","append","processUploadExamApplicationDocument","_this60","_this61","processDeleteExamApplicationDocument","_this62","_this63","processDeleteExamApplicationDocumentSource","_this64","regionIds","qualificationIds","_this65","toISOString","processGetExams","_this66","_this67","processGetExamDetails","_this68","ApplicantExamDetails","_this69","processGetRegions","_this70","_step2","_iterator2","Region","_this71","processGetCountries","_this72","_step3","_iterator3","Country","occupationalStandardId","readyToUse","residency","_this73","processGetQualifications","_this74","QualificationInfoList","_this75","processGetApplicantQualifications","_this76","_step4","_iterator4","ApplicantQualification","_this77","processGetApplicantQualificationDetails","_this78","ApplicantQualificationDetails","property","_data","regionId","citizenshipCountryId","ApplicantExam","reviewComment","stagesNumber","attestationCommissionName","city","examApplicationStatus","currentStageFirstDayDate","currentStageLastDayDate","currentStageAttemptNumber","_step5","_iterator5","_step6","_iterator6","toJSON","ApplicantPassport","ApplicantOtherIdentity","regNumber","certRegNumber","examDate","acFullName","certificateUrl","ChangePassword","CheckVerificationCode","ConfirmEmailByToken","CreateExamApplication","Exam","lastFinalizedStage","lastFinalizedStageResult","_step7","_iterator7","ExamApplicationDocument","approveCode","_step8","_iterator8","ExamDayApplicationShort","_step9","_iterator9","_step10","_iterator10","submissionDate","_step11","_iterator11","SourceFile","_step12","_iterator12","ExamReviewStatus","MyExamStatus","LoginApplicant","QualificationDocumentTemplate","order","hasVariants","_step13","_iterator13","_step14","_iterator14","QualificationInfo","occupationalStandardTitle","_step15","_iterator15","_step16","_iterator16","timeZoneOffset","RegisterApplicant","ResetPassword","SendCodeToSignApplication","SendConfirmationEmailAgain","SendVerificationCode","SendVerificationCodeForUpdatePhone","SetApplicantOtherIdentity","SetApplicantPassport","SubmitExamApplication","UpdateApplicantDiploma","UpdatePhone","UpdateProfile","wasSent","ApiException","_Error","ApiClient_createSuper","_this79","isApiException","wrapNativeSuper","_ApiClientBase","_super2","_this80","http2","baseUrl2","_this81","examsList","myExamApplicationsList","getMyExamApplications","clearMyExamApplicationList","setMyExamApplicationList","setErrorHandler","_usePushFrom","handleChooseExam","All","statuses","components_ExamTable_ExamTable","ApplicantExamsContainer_objectSpread2","HEADER","ExamApplicationsContainer_objectSpread2","fetchExamApplications","fetchExamApplicationsAsync","clearExamApplicationList","setExamApplicationList","examApplicationsListItem","app","identification","countries","setApplicantPassport","setApplicantOtherIdentity","updateApplicantDiploma","onUpdateProfile","initIdentificationErrors","initStatePassport","initStateIdentification","initStateProfile","initStateDiploma","stateProfile","setStateProfile","validProfileErrors","setValidProfileErrors","validIdentificationErrors","setIdentificationValidErrors","statePassport","setStatePassport","stateIdentification","setStateIdentification","stateDiploma","setStateDiploma","validDiplomaErrors","setValidDiplomaErrors","citizenshipTypeOptions","militaryRelationshipTypeOptions","diplomaTypeOptions","newIdentificationErrors","newProfileErrors","checkIdentificationErrors","checkDiplomaErrors","valid","_errors2","_errors3","_type","t2","profileStyles","identificationStyles","components_DocumentUpLoader_DocumentUpLoader","goToIdentificationTab","goToSendingTab","RegistrationForExam","documentsProps","sendingProps","sendCodeToSignApplication","createExamApplication","Documents","onSubmitSmsModal","identificationIcon","Sending","sendIcon","components_AlertText_AlertText","RegistrationForExam_IdentificationTab_IdentificationTab","RegistrationForExam_DocumentsTab_DocumentsTab","Modals_SmsSignModal_SmsSignModal","SexTranslation","submitExamApplication","fetchExamDetails","getDocumentTemplateGroups","getDocumentTemplateGroupsAsync","getCountries","getCountriesAsync","sendCodeToSignApplicationAsync","deleteExamApplicationDocument","uploadExamApplicationDocument","deleteExamApplicationDocumentSource","deleteExamApplicationDocumentSourceAsync","setApplicantPassportAsync","updateApplicantDiplomaAsync","setApplicantOtherIdentityAsync","updateProfile","setWaitingSecond","certificateDeliveryAddress","_createExamApplication","_sendCodeToSignApplication2","components_RegistrationForExam_RegistrationForExam","_callee6","_context6","_callee7","_context7","onlineExamRedirectionUrl","showRegisterInfo","setShowRegisterInfo","redirectionLink","click","onRegisterButtonClick","containers_RegistrationForExamContainer_RegistrationForExamContainer","components_ApplicantExamDetailsTabs_ApplicantExamDetailsTabs","query","TIMETABLES","APPLICATIONS","APPLICANT_EXAMS","RECOGNITION","filterState","regions","fetchExams","fetchExamsWithStateSafe","fetchProfile","initFilterState","fetchQualifications","getQualificationsAsync","getRegions","getRegionsAsync","_useMultiSearch","components_MultiSelectSearch_MultiSelectSearch","SearchElements_DefaultMultiSelectSearch","SearchElements_DefaultSelectSearch","login","components_AuthenticationForm_AuthenticationForm","effects","sendUpdatePhoneVerificationCode","sendUpdatePhoneVerificationCodeAsync","checkUpdatePhoneVerificationCode","checkUpdatePhoneVerificationCodeAsync","updatePhone","updatePhoneAsync","getIdentityDoc","getIdentityDocAsync","sendConfirmationEmailAsync","changePassword","changePasswordAsync","fetchDoc","setTab","newData","changePass","nData","components_ProfileInfoBlock_ProfileInfoBlock","components_Identification_Identification","sendRegistrationVerificationCode","clearErrors","setRegisterForm","nextStep","setForm","setErrors","_useState5","_useState6","_useState7","_useState8","formSubmit","validateErrors","isFormValid","handleChangeInput","phoneForVerify","registerForm","verificationStatus","checkRegistrationVerificationCode","prevStep","resendTimer","setResendTimer","data-test-verification-code-group","_e$target","qualificationList","personalChecked","defaultFormErrors","register","lkHost","hostname","setE","isNotValid","renderSexElement","data-test-date-group","data-is-residency-group","data-test-sex-group","targetNodeName","nodeName","data-test-first-checkbox","RegistrationContainer","RegistrationContainer_RegistrationStep1","RegistrationContainer_RegistrationStep2","RegistrationContainer_RegistrationStep3","RegistrationContainer_RegistrationStep4","sendResetPasswordVerificationCode","sendResetPasswordVerificationCodeAsync","checkResetPasswordVerificationCode","checkResetPasswordVerificationCodeAsync","pagePhone","setPagePhone","pageCode","setPageCode","goToStep","newStep","step1Props","_sendCode","step2Props","_checkCode","_resendCode","step3Props","_resetPassword2","ResetPasswordSteps_ResetPasswordFirstStep","ResetPasswordSteps_ResetPasswordSecondStep","ResetPasswordSteps_ResetPasswordThirdStep","sidebarTabs","ExamIcon","QualificationIcon","PROFILE_TABS","startEventStatePoll","stopEventStatePoll","TABS","setTabs","_useShowGlobalErrorMo","REACT_APP_LOCAL_RUN_TESTS","menuMap","newList","l","updateTabEvents","menuEventsMap","components_Sidebar","components_EmailConfirmationNotification_EmailConfirmationNotification","Мои заявки","Мои аккредитации","confirmEmailByToken","confirmEmailByTokenAsync","checkToken","components_EmailConfirmation_EmailConfirmation","ExamRecognitionContainer_objectSpread2","qualificationsList","qualificationDetails","getQualificationDetails","getQualificationDetailsAsync","getQualifications","getQualificationsListAsync","clearQualifications","clearList","clearDetails","clearQualificationDetails","components_ApplicantQualifications_ApplicantQualifications","getExamApplication","clearExamApplication","setExamApplicationDetails","_useGoBack","_useGoBack2","draft","changeStatus","components_ExamApplicationTabs_ExamApplicationTabs","ApplicantExamsPage","containers_ApplicantExamsContainer_ApplicantExamsContainer","NotFoundPage","ExamApplicationsPage","containers_ExamApplicationsContainer_ExamApplicationsContainer","ExamDetailsPage","containers_ExamDetailsContainer_ExamDetailsContainer","params","ExamTimeTablesPage","containers_ExamTimeTablesContainer_ExamTimeTablesContainer","ProfilePage","containers_ProfileContainer_ProfileContainer","LoginPage","containers_LoginContainer_LoginContainer","RegisterPage","containers_RegistrationContainer_RegistrationContainer","ResetPasswordPage","containers_ResetPasswordContainer_ResetPasswordContainer","EmailConfirmationPage","containers_EmailConfirmationContainer_EmailConfirmationContainer","PaymentResultPage","containers_PaymentResultContainer_PaymentResultContainer","QualificationsListPage","containers_QualificationsListContainer_QualificationsListContainer","ExamApplicationDetailsPage","containers_ExamApplicationDetailsContainer_ExamApplicationDetailsContainer","UnAuthorizedHandler","unauth_UnAuthorizedLayout","models","examApplicationsProcessing","rootWrapper","containers_SidebarContainer_SidebarContainer","components_Header_Header","data-test-authorized-content","AuthorizedHandler","auth_AuthorizedLayout","fallback","Common_ErrorBoundary","returnUrl","getReturnUrl","routes_AuthorizedHandler","createReturnUrl","routes_UnAuthorizedHandler","Root","es","store","connected_react_router_esm","routes_Routes","api_ApiConnector","createModel","reducers","setAuth","setQualificationList","_login","apiConnector","_fetchProfile","_register","_sendResetPasswordVerificationCodeAsync","_checkResetPasswordVerificationCodeAsync","_resetPassword","_updateProfile","addNotification","_sendRegistrationVerificationCode","_callee8","payload","_context8","_checkRegistrationVerificationCode","_callee9","_context9","_x8","_sendUpdatePhoneVerificationCodeAsync","_callee10","_context10","_x9","_checkUpdatePhoneVerificationCodeAsync","_callee11","_context11","_x10","_updatePhoneAsync","_callee12","_context12","_x11","_sendConfirmationEmailAsync","_callee13","_context13","sendConfirmationEmailAgain","_x12","_confirmEmailByTokenAsync","_callee14","_context14","_x13","_changePasswordAsync","_callee15","_context15","_x14","_getQualificationsAsync","_callee16","_context16","_x15","paymentUrl","setExamState","setOnlineExamRedirectionUrl","setFilterState","_fetchExams","getExams","_initFilterState","root","_fetchExamsWithStateSafe","_uploadExamApplicationDocument","api","uploadExamApplicationDocumentFix","_deleteExamApplicationDocument","_deleteExamApplicationDocumentSourceAsync","_submitExamApplication","fetchExamApplication","_fetchExamApplication","_fetchExamDetails","getExamDetails","setQualificationsList","setQualificationDetails","setDocumentTemplateGroups","setApplicantIdentityDoc","setApplicantDiploma","_getQualificationsListAsync","getApplicantQualifications","_getQualificationDetailsAsync","getApplicantQualificationDetails","_getIdentityDocAsync","getApplicantDiplomaAsync","_getApplicantDiplomaAsync","getApplicantDiploma","_updateApplicantDiplomaAsync","_getDocumentTemplateGroupsAsync","_setApplicantPassportAsync","_setApplicantOtherIdentityAsync","_sendCodeToSignApplicationAsync","verificationCodeSendingStatus","clearExpertState","_getExamApplication","_fetchExamApplicationsAsync","getExamApplications","_getMyExamApplications","getMyExamApplicationsList","notificationArr","setEventsState","isEqual","getEventState","_getEventState","getNewNotifications","notificationsArr","prevNotif","nextNotif","notificationMessageMap","ApplicantExamApplications","ApplicantMyExamApplications","setList","_getRegionsAsync","_getCountriesAsync","browserHistory","createHistory","require","createBrowserHistory","plugins","createLoadingPlugin","redux","router","connectRouter","middlewares","routerMiddleware","ReactDOM","src_Root","getElementById"],"mappings":"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","file":"static/js/main.6b070ca9.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabsContainer\":\"OnlineModal_tabsContainer__1ifLX\",\"tab\":\"OnlineModal_tab__3rbdV\",\"icon\":\"OnlineModal_icon__1eZAF\",\"active\":\"OnlineModal_active__o8fjR\",\"videoContainer\":\"OnlineModal_videoContainer__3x9Qu\",\"video\":\"OnlineModal_video__1ADNM\",\"autoHeight\":\"OnlineModal_autoHeight__m_e-o\",\"testContainer\":\"OnlineModal_testContainer__SPGW3\",\"testStepper\":\"OnlineModal_testStepper__dEnFd\",\"end\":\"OnlineModal_end__2IugZ\",\"errorText\":\"OnlineModal_errorText__28_d8\",\"modalTitle\":\"OnlineModal_modalTitle__3u7xm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"question\":\"ExamQuestion_question__1Incf\",\"list\":\"ExamQuestion_list__11Hef\",\"list_item\":\"ExamQuestion_list_item__27cJU\",\"question_title\":\"ExamQuestion_question_title__3PxRd\",\"question_text\":\"ExamQuestion_question_text__3nHpq\",\"question_text_correct\":\"ExamQuestion_question_text_correct__1X4dH\",\"question_text_wrong\":\"ExamQuestion_question_text_wrong__1dq9L\",\"success_text\":\"ExamQuestion_success_text__7unVV\",\"failed_text\":\"ExamQuestion_failed_text__-pu9Q\",\"checkbox\":\"ExamQuestion_checkbox__3cg1M\",\"checkbox_checked\":\"ExamQuestion_checkbox_checked__1_aG0\",\"checkbox_correct\":\"ExamQuestion_checkbox_correct__31WPc\",\"matching\":\"ExamQuestion_matching__M41BA\",\"matching_correct\":\"ExamQuestion_matching_correct__3L5BS\",\"caption\":\"ExamQuestion_caption__2C-J9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"font-extra-small\":\"TheoreticalQuestionRedactor_font-extra-small__36lLd\",\"answer_container\":\"TheoreticalQuestionRedactor_answer_container__eJNeD\",\"check_box\":\"TheoreticalQuestionRedactor_check_box__1_RUe\",\"radio_section\":\"TheoreticalQuestionRedactor_radio_section__1nTsE\",\"radio_block\":\"TheoreticalQuestionRedactor_radio_block__39Vri\",\"id_input\":\"TheoreticalQuestionRedactor_id_input__2MgeO\",\"matchingAdditionalBtn\":\"TheoreticalQuestionRedactor_matchingAdditionalBtn__2zqm0\",\"matchingAddBtn\":\"TheoreticalQuestionRedactor_matchingAddBtn__36Oba\",\"answer\":\"TheoreticalQuestionRedactor_answer__NaE6b\",\"answer_select\":\"TheoreticalQuestionRedactor_answer_select__3vYSQ\",\"answer_multiple\":\"TheoreticalQuestionRedactor_answer_multiple__6qPbz\",\"dndButton\":\"TheoreticalQuestionRedactor_dndButton__N6df4\",\"changeLink\":\"TheoreticalQuestionRedactor_changeLink__3QSeV\",\"answer_inputGroup\":\"TheoreticalQuestionRedactor_answer_inputGroup__2jJ0G\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chatContainer\":\"OnlineChat_chatContainer__2wc4F\",\"tabsContainer\":\"OnlineChat_tabsContainer__3Ff7_\",\"tab\":\"OnlineChat_tab__3HOBU\",\"active\":\"OnlineChat_active__DJM1q\",\"chat\":\"OnlineChat_chat__iiVHN\",\"fixed\":\"OnlineChat_fixed__2I4uU\",\"loading\":\"OnlineChat_loading__1C1sh\",\"chat_field\":\"OnlineChat_chat_field__2l1xM\",\"newMessage\":\"OnlineChat_newMessage__2gYSM\",\"chat_field_body\":\"OnlineChat_chat_field_body__1bEHG\",\"alert\":\"OnlineChat_alert__O0v-Q\",\"chat_icon\":\"OnlineChat_chat_icon__2g4az\",\"blue\":\"OnlineChat_blue__1fixU\",\"rose\":\"OnlineChat_rose__3mj-V\",\"chat_userName\":\"OnlineChat_chat_userName__22GVm\",\"chat_userNameContainer\":\"OnlineChat_chat_userNameContainer__3FLLi\",\"chat_connectStatus\":\"OnlineChat_chat_connectStatus__3WQh6\",\"messageTime\":\"OnlineChat_messageTime__2pz2Z\",\"footer\":\"OnlineChat_footer__1j_rS\",\"textAreaContainer\":\"OnlineChat_textAreaContainer__3J2Cd\",\"hideInput\":\"OnlineChat_hideInput__ApDjs\",\"textArea\":\"OnlineChat_textArea__Ui0Wt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navButtons\":\"Sidebar_navButtons__tYuM5\",\"navButtons_margin\":\"Sidebar_navButtons_margin__7CgEH\",\"nav__link\":\"Sidebar_nav__link__30p86\",\"info_link\":\"Sidebar_info_link__26RZX\",\"nav__list\":\"Sidebar_nav__list__1-xsf\",\"nav__link_icon\":\"Sidebar_nav__link_icon__2szK-\",\"caret\":\"Sidebar_caret__7hxH5\",\"rotate-180\":\"Sidebar_rotate-180__NA4qs\",\"sidebar\":\"Sidebar_sidebar__2xLub\",\"sidebar__wrapper\":\"Sidebar_sidebar__wrapper__3auDL\",\"mobileHideSidebarIcon\":\"Sidebar_mobileHideSidebarIcon__3wTnd\",\"adaptive\":\"Sidebar_adaptive__lrpsH\",\"logo__container\":\"Sidebar_logo__container__28nRK\",\"logo\":\"Sidebar_logo__1aQPx\",\"user_name\":\"Sidebar_user_name__1APz8\",\"notification\":\"Sidebar_notification__U8TLH\",\"bg\":\"Sidebar_bg__2SR2l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MultiSelectSection_container__2f4jJ\",\"fields\":\"MultiSelectSection_fields__ET1SL\",\"selectGroup\":\"MultiSelectSection_selectGroup__21iph\",\"field_title\":\"MultiSelectSection_field_title__31Zhu\",\"field_value\":\"MultiSelectSection_field_value__12mQS\",\"date_container\":\"MultiSelectSection_date_container__2qY2D\",\"date_group\":\"MultiSelectSection_date_group__3koMS\",\"one_select_group\":\"MultiSelectSection_one_select_group__phQKE\",\"select_text\":\"MultiSelectSection_select_text__1N-c0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"align_center\":\"IdentificationStyles_align_center__2pnQC\",\"col\":\"IdentificationStyles_col__u9ctd\",\"buttonsContainer\":\"IdentificationStyles_buttonsContainer__2fiyF\",\"fontStretchCondensed\":\"IdentificationStyles_fontStretchCondensed__DRZk_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"Card_card__2NHnT\",\"card_title\":\"Card_card_title__31qR2\",\"card_title_small\":\"Card_card_title_small__34b9k\",\"card_title_withoutMargin\":\"Card_card_title_withoutMargin__3RekW\",\"card__header\":\"Card_card__header__1nv4Q\",\"titleBorder\":\"Card_titleBorder__2Birb\",\"category\":\"Card_category__bH9rD\",\"content__withoutPadding\":\"Card_content__withoutPadding__10zpl\",\"headerChildContainer\":\"Card_headerChildContainer__2ufW_\",\"title__withButton\":\"Card_title__withButton__1fE8E\",\"fullHeight\":\"Card_fullHeight__1pO_H\",\"errorPlaceholder\":\"Card_errorPlaceholder__1wQzs\",\"exitModalTitle\":\"Card_exitModalTitle__2-Ne8\",\"admitted\":\"Card_admitted__1yBkr\"};","module.exports = \"/static/media/group.559dd6a6.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Header_header__22N0S\",\"header__link\":\"Header_header__link__39Zxj\",\"collapseButton\":\"Header_collapseButton__1SHZp\",\"hideMenuIcon\":\"Header_hideMenuIcon__160n1\",\"showMenuIcon\":\"Header_showMenuIcon__2Cc0l\",\"adaptive\":\"Header_adaptive__2M9s1\",\"headerTitle\":\"Header_headerTitle__3mdtX\"};","module.exports = \"/static/media/news_icon.99f024b3.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pagination\":\"Pagination_pagination__2xIHd\",\"page_button\":\"Pagination_page_button__16cgS\",\"disabled\":\"Pagination_disabled__1K6xh\",\"page_info\":\"Pagination_page_info__3fJNg\",\"per_page_info\":\"Pagination_per_page_info__3sZix\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"align_center\":\"Identification_align_center__1x02V\",\"practicalAnswer\":\"Identification_practicalAnswer__1CWde\",\"col\":\"Identification_col__n4hdt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ExamTable_container__gYYHN\",\"table\":\"ExamTable_table__GRuD0\",\"table__header\":\"ExamTable_table__header__3h89d\",\"table__body\":\"ExamTable_table__body__3SB-B\",\"qualification\":\"ExamTable_qualification__2jnxe\",\"qualification__name\":\"ExamTable_qualification__name__SxeA5\",\"qualification__centerName\":\"ExamTable_qualification__centerName__1s7gq\",\"qualification__address\":\"ExamTable_qualification__address__n1YrO\",\"placeholder\":\"ExamTable_placeholder__3El93\",\"placeholder__title\":\"ExamTable_placeholder__title__3VIpZ\",\"placeholder__text\":\"ExamTable_placeholder__text__1izvN\",\"placeholder__button\":\"ExamTable_placeholder__button__1S-sR\",\"dateTime\":\"ExamTable_dateTime__16_6r\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InputPassword\":\"InputPassword_InputPassword__3Ori9\",\"InputPassword__container\":\"InputPassword_InputPassword__container__U-noP\",\"eye_open\":\"InputPassword_eye_open__F96Sc\",\"eye_closed\":\"InputPassword_eye_closed__RsXB4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"radio__blue\":\"CustomRadio_radio__blue__3qAjw\",\"radio_label\":\"CustomRadio_radio_label__33YqX\"};","module.exports = __webpack_public_path__ + \"static/media/logo_unauth.b2dae833.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"blue\":\"CustomCheckbox_blue__3Uv-9\"};","module.exports = \"/static/media/back_arrow.031f4750.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo_auth.5163fe8f.png\";","module.exports = \"/static/media/avatar.9a7806dd.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"phone_input__helper\":\"PhoneModal_phone_input__helper__CWZvE\",\"phone_container\":\"PhoneModal_phone_container__2cL77\",\"invalid\":\"PhoneModal_invalid__2undl\",\"align_center\":\"PhoneModal_align_center__1X6lp\",\"signModal\":\"PhoneModal_signModal__3sZ33\",\"signModal__header\":\"PhoneModal_signModal__header__2ziZ0\",\"signModal__body\":\"PhoneModal_signModal__body__1AFXK\",\"body__text\":\"PhoneModal_body__text__16_n3\",\"body__input\":\"PhoneModal_body__input__M3fJ8\",\"body__sendAgain\":\"PhoneModal_body__sendAgain__3e7kF\",\"signModal__footer\":\"PhoneModal_signModal__footer__3OTs8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"field_container\":\"ProfileInfoBlock_field_container__3b8nG\",\"field_container_disabled\":\"ProfileInfoBlock_field_container_disabled__2VHlw\",\"profile_data__value\":\"ProfileInfoBlock_profile_data__value__1JWLR\",\"marginRow\":\"ProfileInfoBlock_marginRow__3vbQJ\",\"phone_form__container\":\"ProfileInfoBlock_phone_form__container__2s7QJ\",\"dateLabel\":\"ProfileInfoBlock_dateLabel__2B9E_\",\"change_button\":\"ProfileInfoBlock_change_button__3zEbP\",\"profile__btnContainer\":\"ProfileInfoBlock_profile__btnContainer__3xxBO\",\"cancelBtn\":\"ProfileInfoBlock_cancelBtn__tlXUg\",\"saveBtn\":\"ProfileInfoBlock_saveBtn__xdTFT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"admitted\":\"StageContainer_admitted__BHM8n\",\"dayCells\":\"StageContainer_dayCells__18y9n\",\"modalBody\":\"StageContainer_modalBody__1STCC\",\"expertSelect\":\"StageContainer_expertSelect__LlnjP\",\"modalWithoutPadding\":\"StageContainer_modalWithoutPadding__KqL_W\",\"modalBodyWithoutPadding\":\"StageContainer_modalBodyWithoutPadding__tzk20\",\"removeIcon\":\"StageContainer_removeIcon__2mxZK\",\"height80\":\"StageContainer_height80__2kUzc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"profile_data_container\":\"ProfileStyles_profile_data_container__1DdcP\",\"field_container\":\"ProfileStyles_field_container__3uL5_\",\"field_container_disabled\":\"ProfileStyles_field_container_disabled__3ameF\",\"profile_data__title\":\"ProfileStyles_profile_data__title__1Cp1N\",\"profile_data__value\":\"ProfileStyles_profile_data__value__2M6th\",\"sex_container\":\"ProfileStyles_sex_container__1M3qd\",\"marginRow\":\"ProfileStyles_marginRow__-o4Wa\",\"phone_form__container\":\"ProfileStyles_phone_form__container__2Vky2\",\"change_button\":\"ProfileStyles_change_button__1bOWT\",\"profile__btnContainer\":\"ProfileStyles_profile__btnContainer__3engn\",\"cancelBtn\":\"ProfileStyles_cancelBtn__27jkr\",\"saveBtn\":\"ProfileStyles_saveBtn__Bg1Br\",\"change_password\":\"ProfileStyles_change_password__2X48Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"RegistrationStep_content__1RAd4\",\"sub_title\":\"RegistrationStep_sub_title__29OhR\",\"phone_form_container\":\"RegistrationStep_phone_form_container__1WhXR\",\"phone_input_helper\":\"RegistrationStep_phone_input_helper__11LNQ\",\"phone_input\":\"RegistrationStep_phone_input__2Lfwl\",\"resend_button\":\"RegistrationStep_resend_button__w6LTW\",\"register_link_container\":\"RegistrationStep_register_link_container__2ixxL\",\"register_link\":\"RegistrationStep_register_link__2M2q7\",\"resend_interval_text\":\"RegistrationStep_resend_interval_text__H-s84\",\"input_error_block\":\"RegistrationStep_input_error_block__2O5PD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"editable_table\":\"EditableTable_editable_table__zV6bJ\",\"drop_target\":\"EditableTable_drop_target__M_Fiy\",\"dnd_button\":\"EditableTable_dnd_button__1zFuJ\",\"delete_button\":\"EditableTable_delete_button__29az9\",\"empty_th\":\"EditableTable_empty_th__346dJ\",\"delete_row_btn\":\"EditableTable_delete_row_btn__2G2bb\",\"add_row_btn\":\"EditableTable_add_row_btn__1QpMf\",\"add_btn_row\":\"EditableTable_add_btn_row__3gRUb\",\"total_row\":\"EditableTable_total_row__12P9C\",\"editable_table_moving\":\"EditableTable_editable_table_moving__2T-Sa\",\"caption\":\"EditableTable_caption__3KZHA\",\"pre\":\"EditableTable_pre__Faup1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DotsSettings_container__1Y0H-\",\"dotsIcon\":\"DotsSettings_dotsIcon__2CSvy\",\"button\":\"DotsSettings_button__2me-B\",\"button_red\":\"DotsSettings_button_red__3oCR4\",\"button_green\":\"DotsSettings_button_green__3ySoo\",\"button_orange\":\"DotsSettings_button_orange__22Unc\",\"button_grey\":\"DotsSettings_button_grey__16nwu\",\"svg\":\"DotsSettings_svg__1g9G8\",\"stroke\":\"DotsSettings_stroke__35jXm\",\"buttonContainer\":\"DotsSettings_buttonContainer__3H444\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"QualificationDetails_label__3cJMJ\",\"buttons_container\":\"QualificationDetails_buttons_container__MbcLn\",\"createBtn\":\"QualificationDetails_createBtn__3mfQq\",\"cancelBtn\":\"QualificationDetails_cancelBtn__2dJiu\",\"small_field\":\"QualificationDetails_small_field__3e7R_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"day\":\"DayCell_day__3apyZ\",\"selected\":\"DayCell_selected__KSN7F\",\"number\":\"DayCell_number__26y1O\",\"info\":\"DayCell_info__1D_Pi\",\"subInfo\":\"DayCell_subInfo__2bVbT\",\"count\":\"DayCell_count__3BF7L\",\"badge\":\"DayCell_badge__1DRri\",\"disabled\":\"DayCell_disabled__3d9rz\",\"finalizing\":\"DayCell_finalizing__3C8cz\",\"orange\":\"DayCell_orange__1PmCk\",\"finalizingTitle\":\"DayCell_finalizingTitle__30KHB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"radio_block\":\"PracticalQuestionRedactor_radio_block__2TUqn\",\"radio_section\":\"PracticalQuestionRedactor_radio_section__2VbcA\",\"id_input\":\"PracticalQuestionRedactor_id_input___PKAO\",\"caption\":\"PracticalQuestionRedactor_caption__2GG53\",\"loadButton\":\"PracticalQuestionRedactor_loadButton__h462B\",\"review\":\"PracticalQuestionRedactor_review__2LoMn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"document\":\"ApplicantDocuments_document__1AXR9\",\"document_image\":\"ApplicantDocuments_document_image__3-GOk\",\"document_title\":\"ApplicantDocuments_document_title__3-Xno\",\"document_text\":\"ApplicantDocuments_document_text__2RpQX\",\"document_switch\":\"ApplicantDocuments_document_switch__12R93\",\"document_content\":\"ApplicantDocuments_document_content__1MPzR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table__body\":\"ExamAssigningApplicationsTable_table__body__n0L1P\",\"table_header_text\":\"ExamAssigningApplicationsTable_table_header_text__2er3A\",\"notFoundContainer\":\"ExamAssigningApplicationsTable_notFoundContainer__2RESN\",\"notFoundTitle\":\"ExamAssigningApplicationsTable_notFoundTitle__2a0ZX\",\"notFoundText\":\"ExamAssigningApplicationsTable_notFoundText__11yic\",\"th\":\"ExamAssigningApplicationsTable_th__1EYAE\",\"checkbox\":\"ExamAssigningApplicationsTable_checkbox__35nc3\",\"confirmButton\":\"ExamAssigningApplicationsTable_confirmButton__3DaVw\",\"wrapper\":\"ExamAssigningApplicationsTable_wrapper__308Xx\",\"placeholder\":\"ExamAssigningApplicationsTable_placeholder__39hpX\",\"placeholder__title\":\"ExamAssigningApplicationsTable_placeholder__title__arK4C\",\"placeholder__text\":\"ExamAssigningApplicationsTable_placeholder__text__WN4KU\",\"placeholder__button\":\"ExamAssigningApplicationsTable_placeholder__button__1NDi5\",\"selectOptions\":\"ExamAssigningApplicationsTable_selectOptions__xjsmN\",\"statusSelectOptions\":\"ExamAssigningApplicationsTable_statusSelectOptions__3OhoY\",\"groupClassName\":\"ExamAssigningApplicationsTable_groupClassName__OaK2x\",\"datePicker\":\"ExamAssigningApplicationsTable_datePicker__Xi-jJ\",\"datePickerField\":\"ExamAssigningApplicationsTable_datePickerField__1zukn\",\"tableDate\":\"ExamAssigningApplicationsTable_tableDate__3Ddtg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CustomSwitch_container__2vltn\",\"hoverContainer\":\"CustomSwitch_hoverContainer__3NlXq\",\"pinOn\":\"CustomSwitch_pinOn__3496E\",\"pinOff\":\"CustomSwitch_pinOff__18a-b\",\"switchOff\":\"CustomSwitch_switchOff__ylVaO\",\"switchOn\":\"CustomSwitch_switchOn__Lmly9\",\"pin\":\"CustomSwitch_pin__3BP0Q\",\"iconContainer\":\"CustomSwitch_iconContainer__2OAK3\",\"iconOn\":\"CustomSwitch_iconOn__3lLdI\",\"iconOff\":\"CustomSwitch_iconOff__3qXDQ\",\"loader\":\"CustomSwitch_loader__YW--7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table__body\":\"ExamAdmittingApplicationsTable_table__body__Zj-Dx\",\"table_header_text\":\"ExamAdmittingApplicationsTable_table_header_text__1k_in\",\"notFoundContainer\":\"ExamAdmittingApplicationsTable_notFoundContainer__3SrCa\",\"notFoundTitle\":\"ExamAdmittingApplicationsTable_notFoundTitle__3J4yC\",\"notFoundText\":\"ExamAdmittingApplicationsTable_notFoundText__1qazm\",\"th\":\"ExamAdmittingApplicationsTable_th__2QkRq\",\"checkbox\":\"ExamAdmittingApplicationsTable_checkbox__6beEa\",\"confirmButton\":\"ExamAdmittingApplicationsTable_confirmButton__1OurY\",\"wrapper\":\"ExamAdmittingApplicationsTable_wrapper__JLO2l\",\"placeholder\":\"ExamAdmittingApplicationsTable_placeholder__3pba1\",\"placeholder__title\":\"ExamAdmittingApplicationsTable_placeholder__title__1k8yw\",\"placeholder__text\":\"ExamAdmittingApplicationsTable_placeholder__text__193-r\",\"placeholder__button\":\"ExamAdmittingApplicationsTable_placeholder__button__2-qt9\",\"selectOptions\":\"ExamAdmittingApplicationsTable_selectOptions__3DWAi\",\"statusSelectOptions\":\"ExamAdmittingApplicationsTable_statusSelectOptions__31mQj\",\"groupClassName\":\"ExamAdmittingApplicationsTable_groupClassName__3Yncb\",\"datePicker\":\"ExamAdmittingApplicationsTable_datePicker__omoGv\",\"datePickerField\":\"ExamAdmittingApplicationsTable_datePickerField__3ibxz\",\"tableDate\":\"ExamAdmittingApplicationsTable_tableDate__3AY3Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"drop\":\"DropZone_drop__3Rc5P\",\"drop_text\":\"DropZone_drop_text__1ePLW\",\"drop_link\":\"DropZone_drop_link__1VUQZ\",\"drop_fieldContainer\":\"DropZone_drop_fieldContainer__XFWSF\",\"drop_icon\":\"DropZone_drop_icon__E1TDC\",\"document\":\"DropZone_document__2JD_Q\",\"document_dropZone\":\"DropZone_document_dropZone__1tah4\",\"document_dropZone_uploaded\":\"DropZone_document_dropZone_uploaded__3jYMG\",\"document_dropZone_uploadedTitle\":\"DropZone_document_dropZone_uploadedTitle__2zX7s\",\"document_text\":\"DropZone_document_text__3X1Is\",\"document_title\":\"DropZone_document_title__1LsIM\",\"document_button\":\"DropZone_document_button__1UyNx\",\"document_row\":\"DropZone_document_row__mSk2d\",\"document_icon\":\"DropZone_document_icon__ZjWtn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"date_group\":\"DateTimePicker_date_group__3_h8B\",\"date_container\":\"DateTimePicker_date_container__1Hbpy\",\"date\":\"DateTimePicker_date__JT6og\",\"date_border\":\"DateTimePicker_date_border__1GCHq\",\"date_text\":\"DateTimePicker_date_text__1uM3B\",\"clearDateInput\":\"DateTimePicker_clearDateInput__1wvNP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"signModal\":\"CertificateModal_signModal__2OMbt\",\"signModal__header\":\"CertificateModal_signModal__header__1GVAL\",\"signModal__body\":\"CertificateModal_signModal__body__3qqXZ\",\"body__input\":\"CertificateModal_body__input__3ysKK\",\"signModal__footer\":\"CertificateModal_signModal__footer___unHI\",\"certificateRow\":\"CertificateModal_certificateRow__1ytp0\",\"certificateRow_regNumber\":\"CertificateModal_certificateRow_regNumber__1xi2Z\",\"certificateRow_date\":\"CertificateModal_certificateRow_date__2Qs6t\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"video\":\"UserVideo_video__34hKJ\",\"video_container\":\"UserVideo_video_container__2co1M\",\"connectionLost\":\"UserVideo_connectionLost__2AIg7\",\"loader\":\"UserVideo_loader__ijhfX\",\"switchContainer\":\"UserVideo_switchContainer__1vrpU\",\"switchContainer_text\":\"UserVideo_switchContainer_text__28Wm3\",\"switchContainer_text_secondary\":\"UserVideo_switchContainer_text_secondary__1Fico\",\"fullScreenButton\":\"UserVideo_fullScreenButton__l3tn8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdown\":\"Dropdown_dropdown__1NHNO\",\"dropdown__menu\":\"Dropdown_dropdown__menu__1kXyA\",\"show\":\"Dropdown_show__2lnKV\",\"dropdown__item\":\"Dropdown_dropdown__item__1npQB\",\"dropdown__divider\":\"Dropdown_dropdown__divider__3fIVK\",\"commonButton\":\"Dropdown_commonButton__14ki8\",\"dropIcon\":\"Dropdown_dropIcon__3IWeN\",\"dropIcon_rotate\":\"Dropdown_dropIcon_rotate__22hP_\",\"activeIcon\":\"Dropdown_activeIcon__1JcWX\",\"menuContainer\":\"Dropdown_menuContainer__25QS0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"signModal\":\"SmsSignModal_signModal__omBF9\",\"signModal__header\":\"SmsSignModal_signModal__header__2OR-j\",\"signModal__body\":\"SmsSignModal_signModal__body__23Yr2\",\"body__text\":\"SmsSignModal_body__text__3DnZh\",\"body__input\":\"SmsSignModal_body__input__2YRLx\",\"body__sendAgain\":\"SmsSignModal_body__sendAgain__2Vmj7\",\"signModal__footer\":\"SmsSignModal_signModal__footer__2hB3f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"switch\":\"OnlineVideo_switch__1liEp\",\"loader\":\"OnlineVideo_loader__2mHs2\",\"videoContainer\":\"OnlineVideo_videoContainer__WMAcC\",\"video\":\"OnlineVideo_video__1hvuX\",\"infoContainer\":\"OnlineVideo_infoContainer__1xn02\",\"title\":\"OnlineVideo_title__274dV\",\"examPart\":\"OnlineVideo_examPart__3QwKd\",\"iconsContainer\":\"OnlineVideo_iconsContainer__3L1r5\",\"icon\":\"OnlineVideo_icon__3LtYg\",\"flare\":\"OnlineVideo_flare__2wPMD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonsContainer\":\"RegistrationForExam_buttonsContainer__1vqsX\",\"primaryButton\":\"RegistrationForExam_primaryButton__3X6xq\",\"content\":\"RegistrationForExam_content__1yEBR\",\"tabContainer\":\"RegistrationForExam_tabContainer__286Xu\",\"tabContainer_tab\":\"RegistrationForExam_tabContainer_tab__3EZwW\",\"tabContainer_tab_complete\":\"RegistrationForExam_tabContainer_tab_complete__18yhw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"switch\":\"WebCamSwitch_switch__vav_p\",\"switch_darkness\":\"WebCamSwitch_switch_darkness__jZBNB\",\"switchIcon_webCam\":\"WebCamSwitch_switchIcon_webCam__akz4P\",\"switchIcon_webCam_white\":\"WebCamSwitch_switchIcon_webCam_white__1JNhL\",\"switchIcon_screen\":\"WebCamSwitch_switchIcon_screen__3_3NJ\",\"switchIcon_screen_white\":\"WebCamSwitch_switchIcon_screen_white__3cuo9\",\"switchPin\":\"WebCamSwitch_switchPin__2ZccV\",\"switchPin_white\":\"WebCamSwitch_switchPin_white__1hRJ6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"uploadedFile\":\"UploadedDocument_uploadedFile__DUtLu\",\"uploadedFile_textContainer\":\"UploadedDocument_uploadedFile_textContainer__3dgO0\",\"uploadedFile_text\":\"UploadedDocument_uploadedFile_text__1pKRA\",\"uploadedFile_text_progress\":\"UploadedDocument_uploadedFile_text_progress__1sqQj\",\"uploadedFile_progressBar\":\"UploadedDocument_uploadedFile_progressBar__1tury\",\"uploadedFile_deleteIcon\":\"UploadedDocument_uploadedFile_deleteIcon__2Wxis\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"document\":\"TemplateGroup_document__eBPod\",\"document_button\":\"TemplateGroup_document_button__234tL\",\"document_disabled\":\"TemplateGroup_document_disabled__3SpKh\",\"document_button_hide\":\"TemplateGroup_document_button_hide__2OjWq\",\"document_title\":\"TemplateGroup_document_title__1RFXi\",\"document_row\":\"TemplateGroup_document_row__1RYtN\",\"document_text\":\"TemplateGroup_document_text__2utfj\",\"document_icon\":\"TemplateGroup_document_icon__1DnyB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MultiSelectSearch_container__1z80v\",\"shortField\":\"MultiSelectSearch_shortField__1wtjR\",\"fields\":\"MultiSelectSearch_fields__1HcBr\",\"field_title\":\"MultiSelectSearch_field_title__gdpxC\",\"field_value\":\"MultiSelectSearch_field_value__2UgX6\",\"date_container\":\"MultiSelectSearch_date_container__3WjZz\",\"date_group\":\"MultiSelectSearch_date_group__Axs0B\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"WarningModal_modal__3E78_\",\"modal_large\":\"WarningModal_modal_large__3I8d4\",\"modal_overflow_off\":\"WarningModal_modal_overflow_off__uH_Iw\",\"modal__header\":\"WarningModal_modal__header__31uvD\",\"modal__body\":\"WarningModal_modal__body__tp3Zz\",\"modal__footer\":\"WarningModal_modal__footer__2C_Yj\",\"submitButton\":\"WarningModal_submitButton__FCeQL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkBoxModal\":\"CheckBoxModal_checkBoxModal__7jhkU\",\"checkBoxModal__header\":\"CheckBoxModal_checkBoxModal__header__FJiLl\",\"checkBoxModal__title\":\"CheckBoxModal_checkBoxModal__title__34hVE\",\"checkBoxModal__body\":\"CheckBoxModal_checkBoxModal__body__1GKeL\",\"checkBoxModal__footer\":\"CheckBoxModal_checkBoxModal__footer__32zL7\",\"checkBoxModal_green\":\"CheckBoxModal_checkBoxModal_green__VudgK\",\"checkBoxModal_red\":\"CheckBoxModal_checkBoxModal_red__2XNgv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pagination\":\"AdvancedTable_pagination__Z1U58\",\"sortBtn\":\"AdvancedTable_sortBtn__3oAk_\",\"selectOptions\":\"AdvancedTable_selectOptions__VT0f5\",\"tableDate\":\"AdvancedTable_tableDate__2Arac\",\"date_container\":\"AdvancedTable_date_container__3YTgx\",\"date_group\":\"AdvancedTable_date_group__2frRf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SystemSettings_container__1OE89\",\"container_title\":\"SystemSettings_container_title__1AQKU\",\"container_text\":\"SystemSettings_container_text__3MwXv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"subRow\":\"Columns_subRow__jrw9V\",\"qualification\":\"Columns_qualification__VPpVN\",\"qualification__name\":\"Columns_qualification__name__15J1-\",\"qualification__centerName\":\"Columns_qualification__centerName__28iMX\",\"qualification__address\":\"Columns_qualification__address__3ifUt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"Details_title__2vsEX\",\"info__row\":\"Details_info__row__1iJjX\",\"info__label\":\"Details_info__label__2igw7\",\"info__label_dark\":\"Details_info__label_dark__1npL_\",\"info__value\":\"Details_info__value__1uQzO\",\"info__valueManyRow\":\"Details_info__valueManyRow__sNxjZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"verifyContainer\":\"VerifyEmailInput_verifyContainer__1RYog\",\"verifyContainer_rotate\":\"VerifyEmailInput_verifyContainer_rotate__2y43N\",\"verifyContainer_low_right\":\"VerifyEmailInput_verifyContainer_low_right__28WVR\",\"convertIcon\":\"VerifyEmailInput_convertIcon__1lLca\",\"arrowsIcon_rotate\":\"VerifyEmailInput_arrowsIcon_rotate__2aYRv\",\"rotate\":\"VerifyEmailInput_rotate__ysu9l\",\"inputGroup\":\"VerifyEmailInput_inputGroup__p7m_z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"EventButtons_button__3XJ9x\",\"button_delete\":\"EventButtons_button_delete__3wvaz\",\"button_add\":\"EventButtons_button_add__28wb9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rejectModal\":\"RejectModal_rejectModal__bn3kB\",\"rejectModal__header\":\"RejectModal_rejectModal__header__erJVM\",\"rejectModal__body\":\"RejectModal_rejectModal__body__3f0wE\",\"rejectModal__footer\":\"RejectModal_rejectModal__footer__4Lvpk\",\"title\":\"RejectModal_title__21L2_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"placeholder\":\"ErrorPlaceholder_placeholder__odPuh\",\"placeholder__title\":\"ErrorPlaceholder_placeholder__title__2j_Xm\",\"placeholder__text\":\"ErrorPlaceholder_placeholder__text__2jvBX\",\"placeholder__button\":\"ErrorPlaceholder_placeholder__button__3P6fz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checked_table\":\"CheckedTable_checked_table__2101H\",\"empty_th\":\"CheckedTable_empty_th__2jk_U\",\"incorrect_cell_auto\":\"CheckedTable_incorrect_cell_auto__3Rky1\",\"incorrect_cell_manual\":\"CheckedTable_incorrect_cell_manual__3k3D2\",\"caption\":\"CheckedTable_caption__1XTOa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link\":\"TextLink_link__14vYM\",\"link_text\":\"TextLink_link_text__8WFdR\",\"link_icon\":\"TextLink_link_icon__1IJq5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text\":\"StatementTab_text__3qgfR\",\"text_end\":\"StatementTab_text_end__pDCan\",\"text_address\":\"StatementTab_text_address__1ZjRY\",\"textArea\":\"StatementTab_textArea__3sdaG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"expertSignStatus\":\"SignedExpert_expertSignStatus__Gny56\",\"expertSignStatus_signed\":\"SignedExpert_expertSignStatus_signed__1_I9i\",\"signedButton\":\"SignedExpert_signedButton__2LJPc\",\"icon\":\"SignedExpert_icon__3E5nj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"document\":\"DocumentPreview_document__1ggkF\",\"document_image\":\"DocumentPreview_document_image__2SvDZ\",\"document_title\":\"DocumentPreview_document_title__1onOx\",\"document_text\":\"DocumentPreview_document_text__3E_G5\",\"document_switch\":\"DocumentPreview_document_switch__2FgEL\",\"document_content\":\"DocumentPreview_document_content__2sC8t\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"AuthorizedLayout_content__AngNr\",\"mainPanel\":\"AuthorizedLayout_mainPanel__2npdR\",\"adaptive\":\"AuthorizedLayout_adaptive__2EBCw\"};","module.exports = \"/static/media/wait_time_icon.e710c631.svg\";","module.exports = \"/static/media/link_icon.195b3231.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table__body\":\"ExamApplicationsTable_table__body__3C98b\",\"table_header_text\":\"ExamApplicationsTable_table_header_text__1SwwF\",\"th\":\"ExamApplicationsTable_th__3I3TZ\",\"checkbox\":\"ExamApplicationsTable_checkbox__29ABg\",\"confirmButton\":\"ExamApplicationsTable_confirmButton__2GEqk\",\"wrapper\":\"ExamApplicationsTable_wrapper__3lbvl\",\"placeholder\":\"ExamApplicationsTable_placeholder__171qV\",\"placeholder__title\":\"ExamApplicationsTable_placeholder__title__2MeTD\",\"placeholder__text\":\"ExamApplicationsTable_placeholder__text__sl_R9\",\"placeholder__button\":\"ExamApplicationsTable_placeholder__button__2EOUe\",\"selectOptions\":\"ExamApplicationsTable_selectOptions__1m9F0\",\"statusSelectOptions\":\"ExamApplicationsTable_statusSelectOptions__1RyBL\",\"groupClassName\":\"ExamApplicationsTable_groupClassName__1HYJL\",\"datePicker\":\"ExamApplicationsTable_datePicker__MRKoa\",\"datePickerField\":\"ExamApplicationsTable_datePickerField__3uZsC\",\"tableDate\":\"ExamApplicationsTable_tableDate__EJHGR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"svg\":\"Loader_svg__36Kfr\",\"container_full\":\"Loader_container_full__3aY-k\",\"container_bg\":\"Loader_container_bg__iN_S_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttons_container\":\"OccupationalStandardDetails_buttons_container__UuQWm\",\"createBtn\":\"OccupationalStandardDetails_createBtn__3Qxyh\",\"cancelBtn\":\"OccupationalStandardDetails_cancelBtn__2jyjk\",\"font-extra-small\":\"OccupationalStandardDetails_font-extra-small__gStgV\",\"interactiveElement\":\"OccupationalStandardDetails_interactiveElement__3yPme\",\"code_field\":\"OccupationalStandardDetails_code_field__1OC-O\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttons_container\":\"UsersPage_buttons_container__bAFZe\",\"createBtn\":\"UsersPage_createBtn__2K799\",\"cancelBtn\":\"UsersPage_cancelBtn__1BJNH\",\"font-small\":\"UsersPage_font-small__1XOKN\",\"font-extra-small\":\"UsersPage_font-extra-small__1g62v\",\"internalNumberField\":\"UsersPage_internalNumberField__28s3N\",\"interactiveElement\":\"UsersPage_interactiveElement__3vPoG\",\"repeatInviteBtn\":\"UsersPage_repeatInviteBtn__3Na2W\",\"phoneHelper\":\"UsersPage_phoneHelper__812JM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loaderBtn\":\"LoaderBtn_loaderBtn__2Xz65\",\"btn_content\":\"LoaderBtn_btn_content__2wvuq\",\"btn_content_offset\":\"LoaderBtn_btn_content_offset__3ySDd\",\"loader\":\"LoaderBtn_loader__3Ypxn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"placeholder\":\"EmptySection_placeholder__3NcRs\",\"placeholder__title\":\"EmptySection_placeholder__title__65HCj\",\"placeholder__text\":\"EmptySection_placeholder__text__3RFGz\",\"placeholder__button\":\"EmptySection_placeholder__button__3oTs_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"step\":\"StepStatus_step__3TPZ1\",\"label\":\"StepStatus_label__3RUUZ\",\"icon\":\"StepStatus_icon__Kxaby\",\"success\":\"StepStatus_success__3pk8w\",\"error\":\"StepStatus_error__3IoMm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dateForm\":\"DayEditor_dateForm__3qGGl\",\"daySelect\":\"DayEditor_daySelect__1MDIQ\",\"monthSelect\":\"DayEditor_monthSelect__3CP0P\",\"yearSelect\":\"DayEditor_yearSelect__3siXT\",\"emptyExpertsTable\":\"DayEditor_emptyExpertsTable__3A2F2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"BubbleLoader_container__2uYsI\",\"bubble\":\"BubbleLoader_bubble__276XX\",\"fillCircle\":\"BubbleLoader_fillCircle__2Y3Bs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"phone_form__container\":\"PhoneInput_phone_form__container__1_mP8\",\"phone_input__helper\":\"PhoneInput_phone_input__helper__2ni0S\",\"phone_input__helper_disabled\":\"PhoneInput_phone_input__helper_disabled__3zV6o\",\"phone_input__helper_withPadding\":\"PhoneInput_phone_input__helper_withPadding__21tHu\",\"phone_input__helper_fixTop\":\"PhoneInput_phone_input__helper_fixTop__1FvJO\"};","module.exports = \"/static/media/sort_icon.503a4912.svg\";","module.exports = \"/static/media/status_icon.94367a97.svg\";","module.exports = \"/static/media/empty_certificate_icon.42b6079c.svg\";","module.exports = \"/static/media/add_icon.99c34544.svg\";","module.exports = \"/static/media/dnd_icon.8f794b71.svg\";","module.exports = \"/static/media/documents_icon.0a1f9cb9.svg\";","module.exports = \"/static/media/webcam_icon.0d4c3e6b.svg\";","module.exports = \"/static/media/screen_icon.ca257f4b.svg\";","module.exports = \"/static/media/microphone.3769a418.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"downloadButton\":\"ProtocolLink_downloadButton__2m6RB\",\"documentUrl\":\"ProtocolLink_documentUrl__2z-94\",\"downloadButton_disabled\":\"ProtocolLink_downloadButton_disabled__26T-l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ExtendedSelect_container__31lCQ\",\"feedbackText\":\"ExtendedSelect_feedbackText__3vC7q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notification\":\"NotificationBundle_notification__1-3LT\",\"dark_style\":\"NotificationBundle_dark_style__XlOBo\",\"light_style\":\"NotificationBundle_light_style__zHpb7\"};","module.exports = \"/static/media/ac_admin_empty_table.ffc377de.svg\";","module.exports = \"/static/media/applicants_icon.af759383.svg\";","module.exports = \"/static/media/certificate.ad4d8529.svg\";","module.exports = \"/static/media/error_icon.7b3b7769.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row_input\":\"ResetPasswordModal_row_input__3qWsr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"prependContent\":\"InputText_prependContent__1DtEk\",\"group\":\"InputText_group__33wgi\",\"darkLabel\":\"InputText_darkLabel___9mMu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"align_center\":\"PersonalData_align_center__2r4rm\",\"form\":\"PersonalData_form__3oR1m\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"add_button\":\"Connected_add_button__1VeaW\",\"radio_section\":\"Connected_radio_section__1xfVk\",\"radio_block\":\"Connected_radio_block__3zaAB\",\"align_center\":\"Connected_align_center__1imMX\",\"switch\":\"Connected_switch__3KUfR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttons_container\":\"AscDetails_buttons_container__3bu6r\",\"createBtn\":\"AscDetails_createBtn__1Urac\",\"cancelBtn\":\"AscDetails_cancelBtn__2F3YD\",\"eventButtonsContainer\":\"AscDetails_eventButtonsContainer__1ZelL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"drop_target\":\"DragDrop_drop_target__3fwxl\",\"dnd_btn\":\"DragDrop_dnd_btn__3EPsq\",\"container\":\"DragDrop_container__1Z9yd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"select_group\":\"MultiSelectGroup_select_group__1JQjF\",\"select\":\"MultiSelectGroup_select__Gjtvv\",\"select_text\":\"MultiSelectGroup_select_text__214mI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"DocFileLink_title__mbcrw\",\"fileInfo\":\"DocFileLink_fileInfo__3mF4O\",\"text\":\"DocFileLink_text__3q4dH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"warningTitle\":\"EmailConfirmationNotification_warningTitle__3t0Ci\",\"notificationText\":\"EmailConfirmationNotification_notificationText__2xIBB\",\"toastContainer\":\"EmailConfirmationNotification_toastContainer__BPqjF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"Row_row__2By0w\",\"row_title\":\"Row_row_title__VDd7w\",\"row_value\":\"Row_row_value__1OOEz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timePickerContainer\":\"TimePicker_timePickerContainer__1f-qQ\",\"timePicker\":\"TimePicker_timePicker__1ZGvh\",\"disabled\":\"TimePicker_disabled__17gDl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"TabBorder\":\"AnimatedTabs_TabBorder__3aifl\",\"Tabs_inModal\":\"AnimatedTabs_Tabs_inModal__ApyrS\",\"Tabs\":\"AnimatedTabs_Tabs__20bCw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AlertText_container__1pfOE\",\"container_title\":\"AlertText_container_title__2NZA4\",\"container_text\":\"AlertText_container_text__2dUC3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"DocumentUpLoader_content__1P-kc\",\"button\":\"DocumentUpLoader_button__1SHxl\"};","module.exports = __webpack_public_path__ + \"static/media/test_display.774f78a4.gif\";","module.exports = \"/static/media/cancel_icon.c160a9ae.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"FetchSelect_container__29Mda\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"FetchCreateSelect_container__2I9tQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tooltip\":\"OverlayTrigger_tooltip__3DhB-\",\"copy\":\"OverlayTrigger_copy__1e_Qw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"address_icon\":\"AddressLink_address_icon__35YUy\",\"address_link\":\"AddressLink_address_link__GJeFs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"SexRadios_row__Ytbn6\",\"container\":\"SexRadios_container__2-ZXl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"status\":\"Status_status__F4xC6\",\"subStatus\":\"Status_subStatus__2dnwl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"Textarea_textarea__txPdr\",\"textarea_resize\":\"Textarea_textarea_resize__371eg\"};","module.exports = \"/static/media/download_icon.aff6524f.svg\";","module.exports = \"/static/media/Loader_svg.8edb5b9a.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sortBtn\":\"SimpleTable_sortBtn__14XiR\"};","module.exports = \"/static/media/empty_expert_table.c8086229.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"AuthenticationForm_content__elh13\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"log_text\":\"ExamLog_log_text__2ymcR\"};","module.exports = \"/static/media/attachment_Icon.ef1cfdff.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CKText_container__281k8\"};","module.exports = \"/static/media/chairman_Icon.a0737d28.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"admitted\":\"ApplicantsTab_admitted__2zgBt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"AwaitingExpertConfirmationComponent_title__SQPEq\"};","module.exports = \"/static/media/cross_cancel_icon.e07dc163.svg\";","module.exports = \"/static/media/delete_icon.26878c41.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CustomRadioGroup_container__3d5ZC\"};","module.exports = \"/static/media/calendar.f1032a3e.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"RulesTab\":\"RulesTab_RulesTab__gQzGw\"};","module.exports = \"/static/media/exclamation.22a812e8.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAj0lEQVRIie2V0Q2AIAxEr8YxZAoYwkkcShdxiDIFg9QfMNBolKgfJrw/juNKSQCgcQHlA+/9KCILgCHXnXOFL8HMoqRARJO1dk1Cl8+KyKzDKzExY6fXBuB8xxrtix2ZXCs6+IL/F2g0XoaZ5eB9ebT+/xft8wL6NQ0AjD7Hiv8gZewUHRDRpA2VhJjRuM8GGPcywis8sxoAAAAASUVORK5CYII=\"","module.exports = \"/static/media/message_icon.1eb737ba.svg\";","module.exports = \"/static/media/alert_icon.dc706fdf.svg\";","module.exports = \"/static/media/upload_icon.e49bb5ba.svg\";","module.exports = \"/static/media/delete_icon.745442b1.svg\";","module.exports = \"/static/media/drop_icon.6846552b.svg\";","module.exports = \"/static/media/rightArrow_icon.d76b6465.svg\";","module.exports = \"/static/media/document_icon.66cccc0b.svg\";","module.exports = \"/static/media/pen_icon.e8752ffd.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image\":\"CertificateTab_image__1fdrg\"};","module.exports = \"/static/media/dots_icon.d68d5d90.svg\";","module.exports = \"/static/media/convert_icon.e51b3c4b.svg\";","module.exports = \"/static/media/arrows_icon.e0a5c2d2.svg\";","module.exports = \"/static/media/arrow.b033c494.svg\";","module.exports = \"/static/media/drop.54cfec62.svg\";","module.exports = \"/static/media/edit_file.f4c90a37.svg\";","module.exports = __webpack_public_path__ + \"static/media/test_camera.35d917e8.gif\";","module.exports = __webpack_public_path__ + \"static/media/not_allowed_camera.f20eb189.gif\";","module.exports = __webpack_public_path__ + \"static/media/test_audio.7a812319.gif\";","module.exports = __webpack_public_path__ + \"static/media/not_allowed_audio.147e28d7.gif\";","module.exports = \"/static/media/identification_icon.ac56e89c.svg\";","module.exports = \"/static/media/send_icon.2fd51402.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"profile__container\":\"ProfileContainer_profile__container__15X8H\"};","module.exports = \"/static/media/exams.6d25d374.svg\";","module.exports = \"/static/media/qualif.6c5cab0d.svg\";","export function saveToLocalStorage(key: string, data: string): void {\n return localStorage.setItem(key, data);\n}\n\nexport function loadFromLocalStorage(key: string): string | null {\n return localStorage.getItem(key);\n}\n\nexport function removeFromLocalStorage(key: string): void {\n return localStorage.removeItem(key);\n}\n","export const setHeaderTitle = (headerTitle: string) => localStorage.setItem('headerTitle', headerTitle);\n\nexport const clearHeaderTitle = () => localStorage.removeItem('headerTitle');\n\nexport const getHeaderTitle = () => localStorage.getItem('headerTitle');\n","import { loadFromLocalStorage } from './localStorageHelper';\n\nexport const hasAccessTokenInLocalStorage = (): boolean => {\n const accessToken = loadFromLocalStorage('token');\n return Boolean(accessToken);\n};\n","import moment from 'moment-timezone';\n\nexport const getMoscowTime = (date: moment.Moment) => {\n const localDate = date.clone();\n const moscowTime = localDate.tz('Europe/Moscow');\n const moscowHours = moscowTime.format('HH');\n const moscowMinutes = moscowTime.format('mm');\n\n return { moscowHours, moscowMinutes };\n};\n\nexport const createExamDate = (timeDate: moment.Moment, date?: moment.Moment) => {\n const localDate = timeDate.clone();\n const moscowLocalTime = localDate.tz('Europe/Moscow');\n const moscowTime = moscowLocalTime.format('HH:mm по МСК');\n const localTime = timeDate.format('HH:mm');\n const moscowTimezone = moscowLocalTime.hour() === timeDate.hour();\n const time = moscowTimezone ? moscowTime : `${localTime} по местному (${moscowTime})`;\n\n if (date) {\n return `${date.format('DD.MM.YYYY')} в ${time}`;\n }\n\n return time;\n};\n","export const formatPhoneNumber = (phone: string, defaultReturn: string | null = null) => {\n const cleaned = (`${phone}`).replace(/\\D/g, '');\n\n const match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{2})(\\d{2})$/);\n\n if (match) {\n return `+7 (${match[1]}) ${match[2]}-${match[3]}-${match[4]}`;\n }\n\n return defaultReturn;\n};\n\nexport const formatSecretPhoneNumber = (phone: string) => phone.replace(/(\\d{3})(\\d{3})(\\d{2})(\\d{2})/, '+7 ($1) ***-**-$4');\n","// 1 - A, 2 - B, ...\nexport const serialNumberToChar = (num: number) => String.fromCharCode(64 + num);\n","export const formatSnils = (snils: string, defaultReturn: string = '') => {\n const cleaned = (`${snils}`).replace(/\\D/g, '');\n\n const match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/);\n\n if (match) {\n return `${match[1]}-${match[2]}-${match[3]} ${match[4]}`;\n }\n\n return defaultReturn;\n};\n","export function formatFIO(applicant: HasFIO) {\n return `${applicant.lastName} ${applicant.firstName} ${applicant.middleName}`.trim();\n}\n\ninterface HasFIO {\n /** Имя */\n firstName: string;\n /** Фамилия */\n lastName: string;\n /** Отчество */\n middleName?: string | undefined;\n}\n","import moment from 'moment';\nimport { Color, wordDeclination } from '_helpers';\nimport { IExamStage } from 'components/models';\n\nexport const formatDayTitle = ({ dayNumber, group, time }: HasDayNumber) => {\n let result = `День ${dayNumber}`;\n\n if (group) {\n result = result.concat(`: группа ${group}`);\n }\n\n if (time) {\n result = result.concat(`: ${time.format('DD.MM.YYYY в HH:mm')}`);\n }\n\n return result;\n};\nexport const formatDayOption = (\n {\n dayNumber, group, time, value, totalApplications,\n }: HasDayInfo,\n stageInfo: IExamStage,\n) => {\n const availablePlaces = stageInfo.audienceCapacity - (totalApplications || 0);\n let result = `День ${dayNumber}`;\n\n if (group) {\n result = result.concat(`: группа ${group}`);\n }\n\n if (time) {\n result = result.concat(` - ${time.format('DD.MM.YYYY')}`);\n }\n\n result = availablePlaces\n ? result.concat(` (${availablePlaces} ${wordDeclination(availablePlaces, ['место', 'места', 'мест'])} доступно)`)\n : result.concat(' (Нет доступных мест)');\n\n return {\n label: result,\n isDisabled: !availablePlaces,\n color: availablePlaces ? Color.Default : Color.Red,\n value,\n };\n};\n\ninterface HasDayNumber {\n dayNumber: number;\n group?: number | undefined;\n time?: moment.Moment;\n}\n\ninterface HasDayInfo extends HasDayNumber{\n totalApplications?: number;\n value: string;\n}\n","export enum Color {\n Success = '--success',\n Primary = '--primary',\n Red = '--red',\n Orange = '--orange',\n Default = '--text-main',\n LightPurple = '--light-purple',\n LightRed = '--light-red',\n}\n","import { Color } from './const/Colors';\n\nexport class ColorStatus implements ColorStatus {\n public color: Color;\n\n public text: string;\n\n public subStatus?: {\n color: Color;\n text: string;\n };\n\n public constructor(color: Color, text: string, subText?: ColorStatus['subStatus']) {\n this.color = color;\n this.text = text;\n this.subStatus = subText;\n }\n}\n","import { Moment } from 'moment';\nimport { Color } from '../const/Colors';\nimport { ColorStatus } from '../ColorStatus';\n\nexport class Unread {\n messages!: number;\n logs!: number;\n}\n\nexport class ChatMessage {\n id!: string;\n applicantId!: string;\n applicantName!: string;\n examApplicationId!: string;\n message!: string;\n created!: string;\n dateTime?: Moment;\n fromApplicant!: boolean;\n type!: ChatMessageType;\n expertId?: string;\n expertName?: string;\n}\n\nexport enum ChatMessageType\n{\n Message = 'message',\n Violation = 'violation',\n Info = 'info',\n Error = 'error',\n}\n\nexport enum VideoType\n{\n Cam = 'cam',\n Screen = 'screen'\n}\n\n\nexport class KurentoResponse {\n id!: KurentoResponseIds;\n response?: string;\n message?: string;\n sdpAnswer?: string;\n candidate?: RTCIceCandidate;\n requestId?: KurentoRequestIds;\n presenterId?: string;\n videoType?: VideoType;\n}\n\nexport enum KurentoResponseIds {\n Error= 'error',\n IceCandidate = 'iceCandidate',\n Response = 'response',\n}\n\nexport class KurentoRequest {\n id!: string;\n presenterId?: string;\n videoType?: string;\n sdpOffer?: string;\n candidate?: RTCIceCandidate;\n}\n\nexport enum KurentoRequestIds {\n Start = 'start',\n OnIceCandidate = 'onIceCandidate',\n Stop = 'stop',\n Switch = 'switch',\n}\n\nexport const AlertsTypes = {\n [ChatMessageType.Violation]: new ColorStatus(Color.LightRed, 'Нарушение'),\n [ChatMessageType.Info]: new ColorStatus(Color.LightPurple, 'Событие'),\n [ChatMessageType.Error]: new ColorStatus(Color.Orange, 'Технический сбой'),\n [ChatMessageType.Message]: new ColorStatus(Color.Default, 'Сообщение'),\n};\n","class VersionReader {\n public static getVersion() {\n try {\n const scripts: HTMLScriptElement[] = Array.prototype.slice.call(document.querySelectorAll('script'));\n const links: HTMLLinkElement[] = Array.prototype.slice.call(document.querySelectorAll('link'));\n\n const chunkCss = links.filter(link => link.href.includes('chunk.css'));\n const chunkJs = scripts.filter(script => script.src.includes('chunk.js'));\n\n if (!chunkJs.length || !chunkCss.length) return 'local';\n\n const files = chunkCss.map((f) => {\n const sp = f.href.split('/');\n return sp[sp.length - 1];\n }).sort().concat(chunkJs.map((f) => {\n const sp = f.src.split('/');\n return sp[sp.length - 1];\n }).sort());\n\n return files.map(n => n.split('.')[1]).join('.');\n } catch (e) {\n console.error(e);\n return 'local';\n }\n }\n}\n\nexport const appVersion = VersionReader.getVersion();\n","class UnsavedFormDetector {\n constructor() {\n this.changedInputs = {};\n this.formSubmitted = false;\n this.detectChanges = false;\n }\n\n private changedInputs: { [key: string]: IInput };\n private formSubmitted: boolean;\n private detectChanges: boolean;\n\n private getSubmittedInputs = () => {\n let submitted: { [key: string]: IInput } = {};\n\n Object.keys(this.changedInputs).forEach((key) => {\n const obj: IInput = {\n oldValue: this.changedInputs[key].value,\n value: this.changedInputs[key].value,\n };\n\n submitted = { ...submitted, [key]: obj };\n });\n\n return submitted;\n };\n\n public setChangedInput(key: string, value: string) {\n if (this.detectChanges) {\n this.formSubmitted = false;\n\n if (!this.changedInputs[key]) {\n this.changedInputs[key] = {\n oldValue: value,\n value,\n };\n } else {\n this.changedInputs[key] = {\n ...this.changedInputs[key],\n value,\n };\n }\n }\n }\n\n public setFormSubmit(isSubmit: boolean) {\n if (this.detectChanges) {\n this.changedInputs = this.getSubmittedInputs();\n this.formSubmitted = isSubmit;\n }\n }\n\n public setDetectChanges(detect: boolean) {\n this.detectChanges = detect;\n }\n\n public getShowModal() {\n if (this.detectChanges) {\n const inputsChanged = Object.keys(this.changedInputs).find(key => this.changedInputs[key].oldValue !== this.changedInputs[key].value);\n\n return !!inputsChanged && !this.formSubmitted;\n }\n\n return false;\n }\n\n public resetDetectState() {\n this.changedInputs = {};\n this.formSubmitted = false;\n this.detectChanges = false;\n }\n}\n\nexport const formDetector = new UnsavedFormDetector();\n\ninterface IInput {\n oldValue: string;\n value: string;\n}\n","const MediaConstraints = {\n default: {\n audio: true,\n video: {\n width: 960,\n height: 720,\n frameRate: 8,\n aspectRatio: 1.33,\n },\n },\n\n screen: {\n audio: false,\n video: {\n width: 1280,\n height: 720,\n frameRate: 5,\n },\n },\n\n timeout: 10000,\n};\n\n// eslint-disable-next-line no-underscore-dangle\n(window as any).__mediaConstraints = MediaConstraints;\n\nexport default MediaConstraints;\n","let subDomain = 'dev.';\nconst spHost = document.location.host.split('.');\nif (spHost.length === 3 && spHost[1] === 'main') { // prod: as-souznmp.ru\n subDomain = '';\n} else if (spHost.length === 4 && spHost[1] !== 'dev') { // other test hosts\n subDomain = `${spHost[1]}.`;\n}\nconst IceServers = {\n StunServers: {\n urls: [],\n },\n TurnServers: {\n urls: [`turn:kurento.${subDomain}as-souznmp.ru:3478`],\n credential: 'kms',\n username: 'kms',\n },\n};\n\n// eslint-disable-next-line no-underscore-dangle\n(window as any).__iceServers = IceServers;\n\nexport default IceServers;\n","export const RegExpErrorsText = {\n PHONE: 'Неверный формат телефона',\n EMAIL: 'Неверный формат почты',\n NAME: 'Неверный формат, допускаются Русские буквы, дефис и пробел, от 2-х до 30-ти символов',\n PASSWORD: 'Пароль должен состоять, как минимум, из 6-ти символов. Допускаются использовать латинские буквы в любом регистре, цифры и символы.',\n SNILS: 'Неверный формат снилс. Необходимо указать 11 цифр без дефисов и пробелов.',\n REQUIRED: 'Обязательное поле для заполнения',\n};\n","import { ApiError, ApiErrorFailures } from './ApiError';\nimport _ from 'lodash';\n\nexport const mapAPIError = (apiError: ApiError | null): ApiErrorFailures | null => {\n if (!apiError) return null;\n if (_.isEmpty(apiError.failures)) {\n return { general: apiError.message };\n }\n return _.mapValues(\n apiError.failures,\n errors => (errors.length > 2 ? errors.join(', ') : errors[0]),\n );\n};\n","/* eslint-disable no-useless-escape */\nexport const RegExpConst = {\n PHONE: /^[0-9]{10}$/,\n SNILS: /(^[0-9]{11}$)|(^\\d{3})-(\\d{3})-(\\d{3}) (\\d{2}$)/,\n EMAIL: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n NAME: /^([а-яёА-ЯЁ][а-яёА-ЯЁ\\- ]{0,28}[а-яёА-ЯЁ]|-)$/,\n PASSWORD: /^[\\\\#@$-/:-?{-~!\"^_`\\[\\]a-zA-Z0-9]{6,15}$/,\n NUMBER: /^[0-9]{1,15}$/,\n DOUBLE: /^[0-9]*([,.][0-9]+)?$/,\n};\n","import moment from 'moment-timezone';\n// import moment from 'moment';\n// import moment from 'moment-timezone/moment-timezone-utils';\n\n class TimingSynchronizer {\n protected static instance = new TimingSynchronizer();\n\n private constructor() {\n moment.locale('ru');\n }\n\n private offset = 0;\n\n public setDelta(serverTime: string) {\n this.offset = moment(serverTime).diff(new Date());\n this.applyOffset();\n }\n\n public setTimeZone(zoneOffset: number) {\n this.offset = 0;\n const zoneName = `zone_${zoneOffset}`;\n // zone_3||-30|0| -> moscow\n moment.tz.add(`${zoneName}||${zoneOffset * -10}|0|`);\n moment.tz.setDefault(zoneName);\n }\n\n private applyOffset() {\n moment.now = this.calcOffset.bind(this);\n }\n\n private calcOffset() {\n return +new Date() + this.offset;\n }\n\n public static getInstance(): TimingSynchronizer {\n return TimingSynchronizer.instance;\n }\n}\n\nexport const timingSynchronizer = TimingSynchronizer.getInstance();\n","import _ from 'lodash';\n\nexport enum AppExceptionType {\n Unspecified = 'unspecified',\n Validation = 'validation',\n NotFound = 'notFound',\n AlreadyExists = 'alreadyExists',\n WrongVerificationCode = 'wrongVerificationCode',\n TooManyRequests = 'tooManyRequests',\n WrongCredentials = 'wrongCredentials',\n AuthUserNotFound = 'authUserNotFound',\n Forbidden = 'forbidden',\n Captcha = 'captcha',\n WrongIp = 'wrongIp',\n}\n\nexport interface ApiError {\n code: number;\n type: AppExceptionType;\n message: string;\n failures?: { [key: string]: string[] };\n}\n\nexport interface ApiErrorFailures { [key: string]: string }\n\nexport const isGlobalError = (apiError: ApiError) => _.isEmpty(apiError.failures);\n","/**\n * Функция для склонения слов\n *\n * Например, для слова \"яблоко\" нужно так передать значения: wordDeclination(1, ['яблоко', 'яблока', 'яблок']\n *\n *\n * @param number - число для склонения\n *\n * @param txt - варианты склонения: [одно, два, много]\n *\n * @param cases - кейсы для получения склонения\n */\nexport default (number: number, txt: string[], cases = [2, 0, 1, 1, 1, 2]) => txt[(number % 100 > 4 && number % 100 < 20) ? 2 : cases[(number % 10 < 5) ? number % 10 : 5]];\n","export enum Protocol {\n Nok = 'nok-protocol',\n Ak = 'ak-protocol',\n Soviet = 'soviet-protocol',\n}\n","export interface IApiError {\n code: number;\n type: AppExceptionType;\n message: string;\n failures?: { [key: string]: string[] };\n}\n\nexport enum AppExceptionType {\n Unspecified = 'unspecified',\n Validation = 'validation',\n NotFound = 'notFound',\n AlreadyExists = 'alreadyExists',\n WrongVerificationCode = 'wrongVerificationCode',\n TooManyRequests = 'tooManyRequests',\n WrongCredentials = 'wrongCredentials',\n AuthUserNotFound = 'authUserNotFound',\n Forbidden = 'forbidden',\n Captcha = 'captcha',\n WrongIp = 'wrongIp',\n}\n\nexport interface ExecAPiOptions {\n withoutErrorsHandle?: boolean;\n eventStateRequest?: boolean;\n suppressErrorAndReturnNull?: boolean;\n}\n","import React from 'react';\nimport moment from 'moment';\nimport cn from 'classnames';\nimport {\n Container, Row, Col, Form,\n} from 'react-bootstrap';\nimport { ExtendedSelect, IExtendedSelectEvent } from 'components';\nimport { formDetector } from '_helpers';\n\nconst monthsList: IMonth[] = [\n { value: '01', text: 'Январь' },\n { value: '02', text: 'Февраль' },\n { value: '03', text: 'Март' },\n { value: '04', text: 'Апрель' },\n { value: '05', text: 'Май' },\n { value: '06', text: 'Июнь' },\n { value: '07', text: 'Июль' },\n { value: '08', text: 'Август' },\n { value: '09', text: 'Сентябрь' },\n { value: '10', text: 'Октябрь' },\n { value: '11', text: 'Ноябрь' },\n { value: '12', text: 'Декабрь' },\n];\n\nconst days: string[] = [];\nfor (let i = 1; i <= 31; i += 1) {\n const day = i.toString().padStart(2, '0');\n\n days.push(day);\n}\n\nconst DatePicker = ({\n initialDate: initDate, onChange, from, to, disabled, withoutDetectChanges, datePickerSizeSm, isInvalid, ...props\n}: IProps) => {\n const initialDate = React.useMemo(() => {\n if (initDate) {\n return initDate.clone();\n }\n\n return undefined;\n }, [initDate]);\n const initialBirthDate: IDatePickerDate = {\n year: '',\n day: '',\n month: '',\n };\n\n const [datePickerDate, setDatePickerDate] = React.useState(initialBirthDate);\n\n React.useEffect(() => {\n if (initialDate) {\n const date = initialDate.clone().utc();\n const year = date.format('YYYY');\n const day = date.format('DD');\n const month = date.format('MM');\n\n setDatePickerDate({ year, day, month });\n\n if (!withoutDetectChanges) {\n formDetector.setChangedInput('year', year);\n formDetector.setChangedInput('day', day);\n formDetector.setChangedInput('month', month);\n }\n } else {\n setDatePickerDate(initialBirthDate);\n }\n }, [initialDate]);\n\n const handleBirthDayChange = (event: IExtendedSelectEvent) => {\n const { name } = event;\n let { value } = event;\n const formData = datePickerDate;\n\n formData[name as keyof IDatePickerDate] = value;\n const isDateFilled = formData.year && formData.month && formData.day;\n if (name === 'month' && isDateFilled) {\n const daysInMonth = moment(`${formData.year}-${formData.month}`, 'YYYY-MM').daysInMonth();\n if (parseInt(formData.day) > daysInMonth) {\n formData.day = daysInMonth.toString();\n }\n }\n\n if (name === 'day' && isDateFilled) {\n const daysInMonth = moment(`${formData.year}-${formData.month}`, 'YYYY-MM').daysInMonth();\n if (parseInt(value) > daysInMonth) {\n value = daysInMonth.toString();\n formData[name as keyof IDatePickerDate] = value;\n }\n }\n\n if (isDateFilled) {\n const ymd = `${formData.year}-${formData.month}-${formData.day}`;\n const momentDate = moment.utc(ymd);\n\n if (onChange) onChange(ymd, momentDate);\n }\n\n if (!withoutDetectChanges) {\n formDetector.setChangedInput(name, value);\n }\n\n setDatePickerDate(formData);\n };\n\n const getYears = () => {\n const years: string[] = [];\n const currentYear = new Date().getFullYear();\n const f = from !== undefined ? from : -100;\n const t = to !== undefined ? to : -16;\n\n for (let i = currentYear + f; i <= currentYear + t; i += 1) {\n years.push(i.toString());\n }\n\n return years;\n };\n\n const yearsList = getYears();\n\n return (\n \n \n \n ({ value: d, label: d }))}\n onChange={handleBirthDayChange}\n disabled={disabled}\n placeholder=\"День\"\n withoutDetectChanges={withoutDetectChanges}\n smSize={datePickerSizeSm}\n isInvalid={Boolean(isInvalid)}\n withoutStrictValue\n />\n \n \n ({ value: m.value, label: m.text }))}\n onChange={handleBirthDayChange}\n disabled={disabled}\n placeholder=\"Месяц\"\n withoutDetectChanges={withoutDetectChanges}\n smSize={datePickerSizeSm}\n isInvalid={Boolean(isInvalid)}\n withoutStrictValue\n />\n \n \n ({ value: y, label: y }))}\n onChange={handleBirthDayChange}\n disabled={disabled}\n placeholder=\"Год\"\n withoutDetectChanges={withoutDetectChanges}\n smSize={datePickerSizeSm}\n isInvalid={Boolean(isInvalid)}\n withoutStrictValue\n />\n \n \n {isInvalid}\n \n );\n};\n\ninterface IProps {\n initialDate?: moment.Moment;\n disabled?: boolean;\n from?: number;\n to?: number;\n withoutDetectChanges?: boolean;\n datePickerSizeSm?: boolean;\n isInvalid?: string;\n onChange?: (val: string, moment: moment.Moment) => void;\n groupClassName?: string;\n monthClass?: string;\n dayClass?: string;\n yearClass?: string;\n}\n\ninterface IDatePickerDate {\n year: string;\n day: string;\n month: string;\n}\n\ninterface IMonth {\n value: string;\n text: string;\n}\n\nexport default DatePicker;\n","/* eslint-disable arrow-parens */\n/* eslint-disable no-underscore-dangle */\nimport {\n appVersion,\n loadFromLocalStorage,\n timingSynchronizer,\n hasAccessTokenInLocalStorage,\n} from '_helpers';\nimport { AppExceptionType, ExecAPiOptions, IApiError } from './types';\nimport { RematchDispatch } from '@rematch/core';\nimport { push } from 'connected-react-router';\nimport { HubConnection, HubConnectionBuilder, HubConnectionState } from '@microsoft/signalr';\n\nimport unfetch from 'unfetch';\nimport _ from 'lodash';\n\ninterface IApiConfig {\n API_BASE_URL: string;\n}\n\nexport interface IOnlineEvent {\n key: string;\n method: (...args: any[]) => void;\n}\n\nexport interface IOnlineMethods {\n init?: () => void;\n}\n\n\nexport class ApiConnector {\n private readonly _apiClient: T;\n private readonly _onlineEventsSubscriber?: (dispatch: RematchDispatch) => IOnlineEvent[];\n private readonly _url: string;\n private _startConnectionPromise?: Promise;\n private _handleStartConnection?: () => void;\n private _onlineMethodsClient?: { new(hubConnection: HubConnection): M };\n private _onlineMethods?: M & IOnlineMethods;\n private _connection?: HubConnection;\n\n constructor(\n ApiClient: { new(baseUrl?: string, http?: { fetch: (url: RequestInfo, init?: RequestInit | undefined) => Promise }): T },\n apiConfig: IApiConfig,\n onlineEventsSubscriber?: (dispatch: RematchDispatch) => IOnlineEvent[],\n onlineMethods?: { new(hubConnection: HubConnection): M },\n ) {\n if (window.location.href.startsWith('https:')) {\n this._url = apiConfig.API_BASE_URL.replace('http:', 'https:');\n } else this._url = apiConfig.API_BASE_URL;\n this._apiClient = new ApiClient(this._url, {\n fetch: fetchWithSetHeaderToken,\n });\n this._startConnectionPromise = new Promise(resolve => {\n this._handleStartConnection = () => {\n resolve();\n delete this._startConnectionPromise;\n };\n });\n this._onlineEventsSubscriber = onlineEventsSubscriber;\n this._onlineMethodsClient = onlineMethods;\n }\n\n get apiClient(): T {\n return this._apiClient;\n }\n\n get baseUrl() {\n return this._url;\n }\n\n private initOnline = (dispatch: RematchDispatch) => {\n if (!this._onlineEventsSubscriber || this._connection) return;\n\n const token = loadFromLocalStorage('token');\n if (!token) return;\n\n setTimeout(async () => {\n if (this._connection) return;\n this._connection = new HubConnectionBuilder()\n .withUrl(`${this._url}/api/online`, {\n accessTokenFactory: () => token,\n })\n .withAutomaticReconnect([0, 2, 10, 10, 20, 20, 30, 30, 60, 60, 120, 120, 240])\n .build();\n\n\n try {\n await this._connection.start();\n\n if (this._handleStartConnection) {\n this._handleStartConnection();\n }\n\n this._connection.onreconnecting(() => console.log('WebSocket Reconnecting'));\n this._connection.onreconnected(() => console.log('WebSocket Reconnected'));\n this._connection.onclose(() => console.log('WebSocket Closed'));\n\n if (this._onlineMethodsClient) {\n this._onlineMethods = new this._onlineMethodsClient(this._connection);\n try {\n if (this._onlineMethods && this._onlineMethods.init) await this._onlineMethods.init();\n } catch (e) {\n console.error(e);\n }\n if (this._onlineEventsSubscriber) {\n this._onlineEventsSubscriber(dispatch)\n .forEach(ev => this._connection && this._connection.on(ev.key, ev.method));\n }\n }\n } catch (err) {\n console.error(err);\n }\n\n (window as any).connection = this._connection;\n });\n };\n\n public sendSocketMessage = async (socketMethod: (socket: M & IOnlineMethods) => Promise): Promise => {\n if (this._startConnectionPromise) {\n return this._startConnectionPromise.then(() => this._sendSocketMessage(socketMethod));\n }\n\n return this._sendSocketMessage(socketMethod);\n };\n\n private async _sendSocketMessage(socketMethod: (socket: M & IOnlineMethods) => Promise): Promise {\n if (this._connection && this._onlineMethods && this._connection.state === HubConnectionState.Connected) {\n try {\n return await socketMethod(this._onlineMethods);\n } catch (e) {\n console.error(e);\n return null;\n }\n }\n\n return null;\n }\n\n public execApi = async (dispatch: any, apiMethod: (api: T) => Promise, options?: ExecAPiOptions): Promise => {\n try {\n if (options && options.suppressErrorAndReturnNull) {\n try {\n const result = await apiMethod(this.apiClient);\n return result;\n } catch (e) {\n console.error(e);\n\n if (e.code === 401 || e.status === 401) {\n handleUnAuthorizeError(e, dispatch);\n }\n\n return null;\n }\n }\n if (options && options.withoutErrorsHandle) {\n const result = await apiMethod(this.apiClient);\n return result;\n }\n try {\n if (!(options && options.eventStateRequest)) dispatch.errors.clean();\n const result = await apiMethod(this._apiClient);\n if (result && typeof (result) === 'object' && (result as any).eventsState && dispatch.eventsState && dispatch.eventsState.updateEventState) {\n dispatch.eventsState.updateEventState((result as any).eventsState);\n }\n return result;\n } catch (e) {\n if (e.status === 204) return null;\n errorHandler(e, dispatch, options);\n return null;\n }\n } finally {\n this.initOnline(dispatch);\n }\n };\n}\n\nconst fetchWithSetHeaderToken = async (url: RequestInfo, init?: RequestInit): Promise => {\n const customOptions = init || {};\n const token = loadFromLocalStorage('token');\n customOptions.headers = (customOptions.headers as {}) || {};\n\n if (!_.get(init, 'headers.Authorization') && token) {\n customOptions.headers.Authorization = `Bearer ${token}`;\n const statusCode = loadFromLocalStorage('statusCode');\n if (statusCode) customOptions.headers['X-Status-Code'] = statusCode;\n }\n\n customOptions.headers['X-App-Version'] = appVersion;\n\n const response = await unfetch(url, init);\n\n const serverVersion = response.headers.get('X-App-Version');\n if (serverVersion && serverVersion.indexOf(appVersion) !== 0) {\n document.location.reload();\n }\n\n const serverTime = response.headers.get('X-Server-Time');\n if (serverTime) timingSynchronizer.setDelta(serverTime);\n\n return response;\n};\n\nconst createApiError = (code: number, message: string, type: AppExceptionType): IApiError => ({\n code,\n message,\n type,\n});\n\nconst errorHandler = (e: any, dispatch: any, options?: ExecAPiOptions) => {\n if (options && options.eventStateRequest && (e.code || e.status !== 401)) {\n console.error(e);\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error(e);\n }\n\n switch (e.code || e.status) {\n case 401:\n handleUnAuthorizeError(e, dispatch);\n dispatch.errors.handle(e);\n return;\n case 400:\n case 404:\n dispatch.errors.handle(e.response ? JSON.parse(e.response) : e);\n return;\n case 500:\n dispatch.errors.handle(createApiError(e.code || e.status, 'Ошибка работы сервера', AppExceptionType.Unspecified));\n return;\n default:\n dispatch.errors.handle(createApiError(0, 'Ошибка подключения к серверу', AppExceptionType.Unspecified));\n }\n};\n\n\nconst handleUnAuthorizeError = (e: any, dispatch: any) => {\n if (hasAccessTokenInLocalStorage()) {\n dispatch.auth.logout();\n dispatch(push('/login'));\n window.location.reload();\n }\n};\n\nexport default ApiConnector;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './CustomRadio.module.scss';\nimport { formDetector } from '_helpers';\n\nconst CustomRadio = ({\n checked,\n number,\n label,\n option,\n name,\n onClick,\n blue,\n className,\n labelClassName,\n withoutFormDetect,\n ...rest\n}: CustomRadioProps) => {\n React.useEffect(() => {\n if (checked && option && !withoutFormDetect) {\n formDetector.setChangedInput(name, option);\n }\n }, [checked, option]);\n\n const click = () => {\n formDetector.setChangedInput(name, option);\n if (onClick) {\n onClick();\n }\n };\n\n return (\n \n true}\n />\n \n {label}\n \n \n );\n};\n\nexport default CustomRadio;\n\ninterface CustomRadioProps {\n name: string;\n option: string;\n number?: string;\n checked?: boolean;\n label?: string;\n blue?: boolean;\n className?: string;\n labelClassName?: string;\n disabled?: boolean;\n withoutFormDetect?: boolean;\n onClick?: () => void;\n}\n","import React, { useState, useEffect } from 'react';\nimport { Navbar } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nimport { Location } from 'history';\nimport { saveToLocalStorage, removeFromLocalStorage, getHeaderTitle } from '_helpers';\nimport {\n CustomSwitch, Dropdown, IDropdownItem, SidebarTab,\n} from 'components';\nimport styles from './Header.module.scss';\nimport cx from 'classnames';\nimport { ExpertStatus } from 'expert/src/api/ApiClient';\n\nconst Header = (\n {\n location,\n adaptive,\n sidebarToggled,\n dropdownItems,\n tabs,\n role,\n }: HeaderProps,\n) => {\n const [emulateRequestError, toggleEmulateError] = useState(false);\n const headerTitle = getHeaderTitle();\n const hasDropdownItems = dropdownItems && dropdownItems.length > 1;\n\n const tabsRoutes = React.useMemo(() => tabs\n .filter(t => (t.role ? !!role && t.role.includes(role) : true))\n .map(t => ({\n title: t.name,\n pathname: t.list\n ? t.list\n .filter(i => (i.role ? !!role && i.role.includes(role) : true))\n .reduce((all, tl) => [...all, tl.path, ...(tl.routes || [])], [])\n : [],\n })), [tabs, role]);\n\n useEffect(() => {\n if (emulateRequestError) {\n saveToLocalStorage('statusCode', '500');\n } else {\n removeFromLocalStorage('statusCode');\n }\n return () => {\n removeFromLocalStorage('statusCode');\n };\n }, [emulateRequestError]);\n\n const getNameOfActivePage = () => {\n const activeRoute = tabsRoutes.find((route) => {\n for (let i = 0; i < route.pathname.length; i += 1) {\n if (isSameLinks(route.pathname[i])) return true;\n }\n return false;\n });\n return activeRoute && activeRoute.title;\n };\n\n const isSameLinks = (pathname: string) => {\n let locPathName = pathname;\n if (locPathName.includes('?from=')) [locPathName] = locPathName.split('?from=');\n if (locPathName.endsWith('/*')) return location.pathname.startsWith(locPathName.split('/*')[0]);\n return locPathName === location.pathname;\n };\n\n const renderEmulateErrorSwitch = () => (\n
\n
ON API ERROR:
\n toggleEmulateError(!emulateRequestError)}\n />\n
\n );\n\n const onToggleSidebar = () => {\n const body = document.querySelector('body');\n\n if (body && body.classList.contains('hide_sidebar')) {\n body.classList.remove('hide_sidebar');\n } else if (body) {\n body.classList.add('hide_sidebar');\n }\n };\n\n return (\n \n \n \n \n \n {getNameOfActivePage()}\n \n {headerTitle ? (\n
\n {dropdownItems && hasDropdownItems ? (\n \n ) : }\n
\n ) : null}\n {process.env.REACT_APP_LOCAL_ENV === 'dev' && renderEmulateErrorSwitch()}\n
\n );\n};\n\nexport default Header;\n\ninterface HeaderProps {\n location: Location;\n role?: ExpertStatus;\n tabs: SidebarTab[];\n sidebarToggled?: boolean;\n adaptive?: boolean;\n dropdownItems?: IDropdownItem[] | null;\n}\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './CustomCheckbox.module.scss';\n\nconst CustomCheckbox = ({\n checked, onCheck, number, label, inline, blue, className, ...rest\n}: CustomCheckboxProps) => {\n const [isChecked, setIsChecked] = React.useState(checked);\n\n const handleClick = (e: React.ChangeEvent) => {\n if (checked === undefined) {\n setIsChecked(!isChecked);\n }\n\n if (onCheck) {\n onCheck(e);\n }\n };\n\n const classes = cx('checkbox', styles.blue, {\n 'checkbox-inline': inline,\n }, className);\n\n return (\n
\n \n \n
\n );\n};\n\nexport default CustomCheckbox;\n\ninterface CustomCheckboxProps extends React.DetailedHTMLProps, HTMLInputElement>{\n checked?: boolean;\n disabled?: boolean;\n number: string;\n className?: string;\n label?: string;\n inline?: boolean;\n blue?: boolean;\n onCheck?: (e: React.ChangeEvent) => void;\n}\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React from 'react';\nimport {\n ErrorPlaceholder,\n Loader,\n UnsavedFormModal,\n NotFound,\n DotsSettings,\n IDotsButtonProps,\n} from 'components';\nimport { Alert } from 'react-bootstrap';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport { formDetector } from '_helpers';\nimport cx from 'classnames';\nimport backArrow from 'components/assets/svg/back_arrow.svg';\nimport styles from './Card.module.scss';\n\nconst Card = ({\n showLoader,\n apiError,\n cardClassName,\n fullHeight,\n hidden,\n calendar,\n plain,\n wizard,\n withoutBorder,\n title,\n category,\n textCenter,\n borderedTitle,\n withoutPaddingTitle,\n withBackButton,\n onClickBack,\n categoryClassName,\n withoutPadding,\n ctAllIcons,\n ctFullWidth,\n ctTextCenter,\n tableFullWidth,\n contentClassName,\n children,\n stats,\n legend,\n ftTextCenter,\n detectFormChanges,\n footerElement,\n saveAndCloseDetectFunc,\n smallTitle,\n headerChild,\n titleClassName,\n containerRef,\n show404Error,\n headerClassName,\n withoutTitleMargin,\n dotsButtons,\n without404Error,\n withoutBottomMargin,\n extHeader,\n}: CardProps) => {\n React.useEffect(() => {\n if (detectFormChanges) {\n formDetector.setDetectChanges(true);\n\n const forms = document.querySelectorAll('form');\n const submitButtons = document.querySelectorAll('button[type=submit]');\n const onFormSubmit = () => formDetector.setFormSubmit(true);\n\n forms.forEach(form => form.addEventListener('submit', onFormSubmit));\n submitButtons.forEach(form => form.addEventListener('click', onFormSubmit));\n\n return () => {\n forms.forEach(form => form.removeEventListener('submit', onFormSubmit));\n submitButtons.forEach(form => form.removeEventListener('click', onFormSubmit));\n formDetector.resetDetectState();\n };\n }\n\n return () => true;\n }, []);\n\n if (showLoader) return ;\n\n if (!without404Error && (apiError && (apiError.code === 404 || show404Error))) return ;\n\n return (\n <>\n {apiError && apiError.code === 500 ? : (\n \n {title !== undefined || category !== undefined ? (\n \n
\n {withBackButton && (\n \"goBack\"\n )}\n
\n \n {title}\n {dotsButtons ? : null}\n \n \n {category}\n

\n
\n
\n
\n {headerChild}\n
\n \n ) : (\n ''\n )}\n \n {extHeader && (\n
\n {extHeader.map(h => ([\n {h.label},\n {h.value},\n ]))}\n
\n )}\n {children}\n \n {footerElement}\n {stats !== undefined || legend !== undefined ? (\n
\n {legend !== undefined ? (\n
{legend}
\n ) : null}\n {stats !== undefined ?
: null}\n {stats !== undefined ? (\n
{stats}
\n ) : null}\n
\n ) : null}\n\n {apiError && apiError.message !== 'Unauthorized' && apiError.code !== 500 && (!apiError.failures || !Object.keys(apiError.failures).length) && (\n \n {apiError.message}\n \n )}\n {detectFormChanges ? : null}\n \n )}\n \n );\n};\n\nexport interface CardProps {\n plain?: string;\n title?: string;\n category?: string;\n legend?: React.ReactNode;\n containerRef?: React.MutableRefObject;\n extHeader?: ExtHeader[];\n\n hidden?: boolean;\n textCenter?: boolean;\n ftTextCenter?: boolean;\n withoutPadding?: boolean;\n withoutPaddingTitle?: boolean;\n borderedTitle?: boolean;\n fullHeight?: boolean;\n withBackButton?: boolean;\n smallTitle?: boolean;\n titleClassName?: string;\n headerChild?: React.ReactNode;\n show404Error?: boolean;\n without404Error?: boolean;\n withoutBottomMargin?: boolean;\n\n ctAllIcons?: string;\n ctFullWidth?: string;\n ctTextCenter?: string;\n tableFullWidth?: string;\n stats?: {};\n\n calendar?: string;\n wizard?: string;\n\n withoutBorder?: boolean;\n withoutTitleMargin?: boolean;\n headerClassName?: string;\n categoryClassName?: string;\n cardClassName?: string;\n contentClassName?: string;\n children?: React.ReactNode;\n footerElement?: React.ReactNode;\n apiError?: IApiError | null;\n showLoader?: boolean;\n detectFormChanges?: boolean;\n dotsButtons?: IDotsButtonProps[];\n onClickBack?: () => void;\n saveAndCloseDetectFunc?: () => Promise;\n}\n\ninterface ExtHeader {\n label: string;\n value: string;\n}\n\nexport default Card;\n","import InputPassword from './InputPassword';\n\nexport default InputPassword;\n","import React from 'react';\nimport { FormControl } from 'react-bootstrap';\nimport cx from 'classnames';\nimport styles from './InputPassword.module.scss';\n\nconst InputPassword = (props: ComponentProps) => {\n const [open, setOpen] = React.useState(false);\n\n return (\n
\n \n setOpen(!open)}\n />\n
\n );\n};\n\ninterface ComponentProps {\n size?: 'sm' | 'lg';\n plaintext?: boolean;\n readOnly?: boolean;\n disabled?: boolean;\n value?: string;\n name?: string;\n id?: string;\n isValid?: boolean;\n isInvalid?: boolean;\n className?: string;\n autoFocus?: boolean;\n required?: boolean;\n onChange?: (event: React.ChangeEvent) => void;\n}\n\nexport default InputPassword;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { Location } from 'history';\nimport { Collapse } from 'react-bootstrap';\nimport { NotificationBundle } from 'components';\nimport cx from 'classnames';\nimport styles from './Sidebar.module.scss';\nimport _ from 'lodash';\nimport { ExpertStatus } from 'expert/src/api/ApiClient';\n\nconst NavList = ({ links, location, onClickMenuLink }: NavListProps) => {\n const [isOpen, setIsOpen] = React.useState<{[key: string]: boolean}>({});\n\n React.useEffect(() => {\n links.forEach((link: Tab) => {\n if (link.list && isActiveBlock(link.list)) {\n const escapedName = link.state || escapeString(link.name);\n changeOpenState(escapedName);\n }\n });\n }, []);\n\n const isActiveRoute = (routeName: string | string[] | undefined): boolean => {\n if (!routeName) return false;\n return isSamePath(routeName);\n };\n\n const isActiveBlock = (list: SubItem[] | undefined) => {\n if (!list) return false;\n return list.some((link: SubItem) => isActiveRoute(mergePathAndRoutes(link.path, link.routes)));\n };\n\n const isSamePath = (routeName: string | string[]) => {\n if (_.isArray(routeName)) {\n return routeName.some(route => isSameLinks(route));\n }\n return isSameLinks(routeName);\n };\n\n const isSameLinks = (routeName: string) => {\n const { pathname, search } = location;\n\n if (routeName.indexOf('/*') !== -1) {\n const sp = routeName.split('/*').filter(el => el.length !== 0);\n\n if (sp.length === 1) {\n return pathname.startsWith(sp[0]);\n }\n\n return pathname.startsWith(sp[0]) && search.endsWith(sp[1]);\n }\n\n return routeName === pathname;\n };\n\n const escapeString = (string: string) => string.toLocaleLowerCase().replace(/' '/g, '_');\n\n const changeOpenState = (nameOfBlock: string) => setIsOpen({\n ...isOpen,\n [nameOfBlock]: !isOpen[nameOfBlock],\n });\n\n const handleCollapseBlock = (nameOfBlock: string) => () => {\n changeOpenState(nameOfBlock);\n };\n\n const renderLinkIcon = (icon: string | undefined, name: string) => {\n const nameWords = name.split(' ');\n return (\n
\n {icon\n ? {name}\n : (\n
\n {nameWords[0].charAt(0)}\n {Boolean(nameWords[1]) && nameWords[nameWords.length - 1].charAt(0)}\n
\n )}\n
\n );\n };\n\n const mergePathAndRoutes = (path: string | undefined, routes: string | string[] | undefined): string | string[] | undefined => {\n if (!path) return routes;\n if (!routes) return path;\n if (_.isArray(routes)) {\n return [...routes, path];\n }\n return [routes, path];\n };\n\n const renderCollapseBlock = (prop: Tab, key: number) => {\n const escapedName = prop.state || escapeString(prop.name);\n return (\n \n \n \n {renderLinkIcon(prop.icon, prop.name)}\n

\n {prop.name}\n

\n {prop.events ? : null}\n {prop.list && (\n \n )}\n \n \n \n
    \n {prop.list && prop.list.map(renderSimpleNavLink)}\n
\n
\n
\n );\n };\n\n const renderSimpleNavLink = (prop: Tab | SubItem, key: number) => (\n \n \n {renderLinkIcon(prop.icon, prop.name)}\n

{prop.name}

\n {('list' in prop) && (\n \n )}\n {prop.events ? : null}\n \n \n );\n\n return (\n
    \n {links.map((prop: Tab, key: number) => {\n if (prop.list) {\n return renderCollapseBlock(prop, key);\n }\n return renderSimpleNavLink(prop, key);\n })}\n
\n );\n};\n\ninterface NavListProps {\n links: Tab[];\n location: Location;\n onClickMenuLink?: () => void;\n}\n\nexport interface Tab {\n name: string;\n icon: string;\n state: string;\n path?: string;\n routes?: string | string[];\n list?: SubItem[];\n role?: ExpertStatus[];\n events?: number;\n}\n\nexport interface SubItem {\n name: string;\n path: string;\n routes?: string[];\n showParam?: string;\n role?: ExpertStatus[];\n icon?: string;\n events?: number;\n}\n\nexport default NavList;\n","import React from 'react';\nimport { Collapse } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nimport { Location } from 'history';\nimport styles from './Sidebar.module.scss';\nimport logo from '../assets/png/logo_auth.png';\nimport avatar from '../assets/svg/avatar.svg';\nimport NavList, { Tab } from './NavList';\nimport cx from 'classnames';\nimport _ from 'lodash';\nimport './SidebarHideStyles.scss';\n\nconst Sidebar = ({\n adaptive,\n location,\n profile,\n profileTabs,\n tabs,\n children,\n onLogout,\n}: SidebarProps) => {\n const sidebarRef: React.RefObject = React.createRef();\n const [openAvatar, setOpenAvatar] = React.useState(false);\n\n const detectMobileOutsideClick = (event: MouseEvent) => {\n const body = document.querySelector('body');\n\n if (body\n && body.classList.contains('hide_sidebar')\n && document.body.clientWidth <= 740\n && !(event.target as Element).closest('.sidebar')\n && !(event.target as Element).closest('#minimizeSidebar')) {\n body.classList.remove('hide_sidebar');\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('click', detectMobileOutsideClick);\n\n return () => {\n document.removeEventListener('click', detectMobileOutsideClick);\n };\n }, []);\n\n const isSamePath = (pathname: string, routeName: string) => pathname === routeName || pathname === `${routeName}/`;\n\n const isActiveRoute = (routeName: string) => {\n const { pathname } = location;\n return isSamePath(pathname, routeName);\n };\n\n const hideMobileSidebar = () => {\n const body = document.querySelector('body');\n\n if (body && body.classList.contains('hide_sidebar')) {\n body.classList.remove('hide_sidebar');\n }\n };\n\n const logout = () => {\n onLogout();\n window.location.reload();\n };\n\n return (\n \n
\n
\n \n \"main-logo\"\n \n\n \n
\n
\n
\n
\n {/* {profile && profile.avatar\n ? \"Avatar\"\n : profile && ((profile.lastName ? profile.lastName.charAt(0) : '')\n + (profile.firstName ? profile.firstName.charAt(0) : '')).toUpperCase()\n } */}\n \"Avatar\"\n
\n \n
\n {tabs && tabs.length\n ? \n : children\n }\n
\n
\n );\n};\n\nexport default Sidebar;\n\ninterface SidebarProps {\n location: Location;\n profile: {\n firstName?: string;\n lastName?: string;\n avatar?: string;\n } | null;\n tabs: Tab[];\n profileTabs: ProfileTab[];\n adaptive?: boolean;\n children?: React.ReactNode;\n onLogout: () => void;\n}\n\nexport interface ProfileTab {\n name: string;\n path: string;\n mini: string;\n}\n\nexport interface SidebarMenuMapType { [key: string]: string | string[] }\n\nexport const updateTabEvents = (tab: Tab, events: { [key: string]: number }, menuMap: SidebarMenuMapType): Tab => {\n const newList = tab.list ? tab.list.map(l => ({\n ...l,\n events: (menuMap[l.name] && _.isArray(menuMap[l.name]) ? getEventsSum(events, menuMap[l.name] as string[]) : events[(menuMap[l.name] as string)]) || 0,\n })) : [];\n const newTab = {\n ...tab,\n events: newList.reduce((acc, l) => (l.events ? acc + l.events : acc), 0),\n list: newList,\n };\n return newTab;\n};\n\nconst getEventsSum = (events: { [key: string]: number }, eventsArr: string[]) => eventsArr.reduce((acc, event) => (events[event] ? acc + events[event] : acc), 0);\n","import Sidebar, { ProfileTab as PT, SidebarMenuMapType as nSidebarMenuMapType } from './Sidebar';\nimport { Tab as SidebarTab, SubItem as nSubItem } from './NavList';\n\n\nexport default Sidebar;\n\nexport type Tab = SidebarTab;\nexport type ProfileTab = PT;\nexport type SubItem = nSubItem;\nexport type SidebarMenuMapType = nSidebarMenuMapType;\n","import React from 'react';\nimport cx from 'classnames';\nimport styles from './Pagination.module.scss';\n\nconst Pagination = ({ pagination, onChange, className }: ComponentProps) => {\n const onChangePerPage = (e: React.ChangeEvent) => {\n const value = parseInt(e.target.value);\n const newPagination = { ...pagination };\n newPagination.perPage = value;\n newPagination.page = 1;\n\n onChange(newPagination);\n };\n\n const onChangePage = (e: React.ChangeEvent) => {\n const value = parseInt(e.target.value);\n\n if (!value || value > pagination.pages) return;\n\n const newPagination = { ...pagination };\n newPagination.page = value;\n\n onChange(newPagination);\n };\n\n const onNextPage = (e: React.MouseEvent) => {\n const disabled = (e.target as HTMLDivElement).getAttribute('data-disabled');\n if (disabled === 'true') return;\n\n const newPagination = { ...pagination };\n newPagination.page += 1;\n\n onChange(newPagination);\n };\n\n const onPrevPage = (e: React.MouseEvent) => {\n const disabled = (e.target as HTMLDivElement).getAttribute('data-disabled');\n if (disabled === 'true') return;\n\n const newPagination = { ...pagination };\n newPagination.page -= 1;\n\n onChange(newPagination);\n };\n\n const prevPageStyleName = [styles.page_button];\n if (pagination.page <= 1) prevPageStyleName.push(styles.disabled);\n\n const nextPageStyleName = [styles.page_button];\n if (pagination.page >= pagination.pages) nextPageStyleName.push(styles.disabled);\n\n return (\n
\n \n Предыдущая\n
\n
\n Страница\n \n \n из\n {' '}\n {pagination.pages}\n \n
\n
\n \n
\n = pagination.pages)}\n onClick={onNextPage}\n >\n Следующая\n \n \n );\n};\n\nexport default Pagination;\n\nexport interface IPaginationData {\n page: number;\n perPage: number;\n pages: number;\n}\n\ninterface ComponentProps {\n onChange: (data: IPaginationData) => void;\n pagination: IPaginationData;\n className?: string;\n}\n","import React from 'react';\nimport {\n ExamType,\n MappedExamTypes,\n EmptySection,\n Status, DatePeriodColumn,\n} from 'components';\nimport { Table } from 'react-bootstrap';\nimport { ColorStatus } from '_helpers';\nimport newsIcon from 'components/assets/svg/news_icon.svg';\nimport Pagination, { IPaginationData } from '../Pagination/Pagination';\nimport moment from 'moment';\nimport styles from './ExamTable.module.scss';\n\nconst ExamTable = ({\n onChooseExam,\n header,\n tableRows,\n onChangePagination,\n onClickPlaceholderButton,\n pagination,\n placeholderTitle,\n placeholderText,\n placeholderButtonText,\n placeholderIcon,\n}: ExamTableProps) => {\n const handleChooseExam = (id?: string) => {\n if (!id) return;\n onChooseExam(id);\n };\n\n const renderQualification = (name?: string, attestationCommissionName?: string, address?: string) => (\n
\n
\n {name}\n
\n {/*
\n {attestationCommissionName}\n
\n
\n {address}\n
*/}\n
\n );\n\n const hasApplicationsNumber = header.indexOf('Участники') !== -1;\n\n const renderTableRow = (rowData: Row, i: number) => {\n if (!rowData) return null;\n\n return (\n handleChooseExam(rowData.id)} data-test-exam-number={i} data-test-exam-id={rowData.id}>\n \n {rowData.date && ()}\n \n \n {renderQualification(\n rowData.name,\n rowData.attestationSubCommissionName,\n rowData.address,\n )}\n \n {(hasApplicationsNumber && ({rowData.applicationsNumber}))}\n {rowData.examType && (\n \n \n \n )}\n {rowData.status && (\n \n \n \n )}\n \n );\n };\n const getPaginationObject = () => {\n const DEFAULT_PAGINATION = {\n page: 1,\n perPage: 10,\n pages: 1,\n };\n\n if (!pagination) return DEFAULT_PAGINATION;\n\n const { total, pageSize, page } = pagination;\n\n return {\n page,\n perPage: pageSize,\n pages: Math.ceil(total / pageSize),\n };\n };\n\n\n if (!tableRows.length) {\n return (\n \n );\n }\n\n return (\n
\n \n \n \n {header.map((columnHeader: string, key: number) => )}\n \n \n \n {tableRows.map(renderTableRow)}\n \n
{columnHeader}
\n {onChangePagination && pagination && (\n \n )}\n
\n );\n};\n\nexport default ExamTable;\n\ninterface ExamTableProps {\n header: string[];\n tableRows: Row[];\n pagination?: IExamPagination | null;\n placeholderTitle?: string;\n placeholderText?: string;\n placeholderIcon?: string;\n placeholderButtonText?: string;\n onChooseExam: (id: string) => void;\n onChangePagination?: (data: IPaginationData) => void;\n onClickPlaceholderButton?: () => void;\n}\n\ninterface IExamPagination {\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface Row {\n id?: string;\n date?: moment.Moment;\n lastDate?: moment.Moment;\n currentStageLastDayDate?: moment.Moment;\n name?: string;\n attestationSubCommissionName?: string;\n attestationCommissionName?: string;\n address?: string;\n applicationsNumber?: number;\n examType?: ExamType;\n city?: string;\n status?: ColorStatus;\n}\n","import { Color, ColorStatus } from '_helpers';\n\nexport enum ExamStatus {\n AwaitingExpertConfirmation = 'awaitingExpertConfirmation',\n IsApplying = 'isApplying',\n ApplyingFinished = 'applyingFinished',\n Canceled = 'canceled',\n Staging = 'staging',\n Finishing = 'finishing',\n Finished = 'finished',\n}\n\nexport enum FilteredExamStatus {\n AwaitingExpertConfirmation = 'awaitingExpertConfirmation',\n IsApplying = 'isApplying',\n ApplyingFinished = 'applyingFinished',\n Staging = 'staging',\n Finished = 'finished',\n Canceled = 'canceled',\n}\n\nexport const MappedFilteredExamStatus = {\n [FilteredExamStatus.AwaitingExpertConfirmation as string]: new ColorStatus(Color.Orange, 'Идет создание'),\n [FilteredExamStatus.IsApplying as string]: new ColorStatus(Color.Success, 'Идет запись'),\n [FilteredExamStatus.ApplyingFinished as string]: new ColorStatus(Color.Default, 'Запись окончена'),\n [FilteredExamStatus.Staging as string]: new ColorStatus(Color.Success, 'В процессе проведения'),\n [FilteredExamStatus.Canceled as string]: new ColorStatus(Color.Red, 'Отменены'),\n [FilteredExamStatus.Finished as string]: new ColorStatus(Color.Default, 'Завершено'),\n};\nexport const MappedFilteredExamStatusOptions = Object.keys(MappedFilteredExamStatus).map(k => ({ label: MappedFilteredExamStatus[k].text, value: k }));\n\nexport const MappedExamStatuses = {\n [ExamStatus.AwaitingExpertConfirmation as string]: new ColorStatus(Color.Orange, 'Идет создание'),\n [ExamStatus.IsApplying as string]: new ColorStatus(Color.Success, 'Идет запись'),\n [ExamStatus.ApplyingFinished as string]: new ColorStatus(Color.Default, 'Запись окончена'),\n [ExamStatus.Staging as string]: new ColorStatus(Color.Success, 'В процессе проведения'),\n [ExamStatus.Canceled as string]: new ColorStatus(Color.Red, 'Отменено'),\n [ExamStatus.Finishing as string]: new ColorStatus(Color.Default, 'Завершено'),\n [ExamStatus.Finished as string]: new ColorStatus(Color.Default, 'Завершено'),\n};\n\nexport const getExamStatusMapping = (status: ExamStatus, currentStageNumber?: number | undefined) => {\n if (status === ExamStatus.Staging) return new ColorStatus(Color.Default, `В процессе ${currentStageNumber ? `${currentStageNumber}-й этап` : ''}`);\n return MappedExamStatuses[status] || new ColorStatus(Color.Default, status);\n};\n\nexport enum ExamApplicationStatus {\n Draft = 'draft',\n InReview = 'inReview',\n CorrectionsRequired = 'correctionsRequired',\n Canceled = 'canceled',\n Approved = 'approved',\n Staging = 'staging',\n Absent = 'absent',\n NotPassed = 'notPassed',\n Passed = 'passed',\n}\n\nexport const MappedAdmittedResultColor = {\n true: new ColorStatus(Color.Success, 'Допущен'),\n false: new ColorStatus(Color.Default, 'Ожидает допуска'),\n};\n\nexport enum FinalizedResult {\n None = 'none',\n Passed = 'passed',\n NotPassed = 'notPassed',\n Absent = 'absent',\n}\n\nexport const MappedFinalizedResult: Record = {\n [FinalizedResult.Passed]: 'Этап успешно пройден',\n [FinalizedResult.NotPassed]: 'Этап не пройден',\n [FinalizedResult.Absent]: 'Неявка',\n [FinalizedResult.None]: 'Ожидает финализации',\n};\n\nexport const MappedFinalizedResultColor: Record = {\n [FinalizedResult.Passed]: new ColorStatus(Color.Success, MappedFinalizedResult[FinalizedResult.Passed]),\n [FinalizedResult.NotPassed]: new ColorStatus(Color.LightRed, MappedFinalizedResult[FinalizedResult.NotPassed]),\n [FinalizedResult.Absent]: new ColorStatus(Color.Orange, MappedFinalizedResult[FinalizedResult.Absent]),\n [FinalizedResult.None]: new ColorStatus(Color.Default, MappedFinalizedResult[FinalizedResult.None]),\n};\n\nexport const MappedExamApplicationStatuses = {\n [ExamApplicationStatus.Draft as string]: new ColorStatus(Color.Primary, 'Черновик'),\n [ExamApplicationStatus.InReview as string]: new ColorStatus(Color.Default, 'На рассмотрении'),\n [ExamApplicationStatus.CorrectionsRequired as string]: new ColorStatus(Color.Red, 'Требуются исправления'),\n [ExamApplicationStatus.Canceled as string]: new ColorStatus(Color.Red, 'Отменено'),\n [ExamApplicationStatus.Approved as string]: new ColorStatus(Color.Success, 'Запись подтверждена'),\n [ExamApplicationStatus.Staging as string]: new ColorStatus(Color.Default, 'В процессе проведения'),\n [ExamApplicationStatus.Absent as string]: new ColorStatus(Color.Orange, 'Неявка'),\n [ExamApplicationStatus.NotPassed as string]: new ColorStatus(Color.Red, 'Аккредитация не пройдена'),\n [ExamApplicationStatus.Passed as string]: new ColorStatus(Color.Success, 'Аккредитация пройдена'),\n};\n\nexport enum ExamSessionStatus {\n Active = 'active',\n Completed = 'completed',\n}\n\nexport enum ExamSessionReadyStatuses {\n WaitingForStart = 'waitingForStart',\n ExamStaging = 'examStaging',\n TheoreticalExamStagingAndSessionStarted = 'theoreticalExamStagingAndSessionStarted',\n ExamSessionTimeout = 'examSessionTimeout',\n PracticalExamStagingAndSessionStarted = 'practicalExamStagingAndSessionStarted',\n ExamFinished = 'examFinished',\n SessionFinished = 'sessionFinished',\n}\n\nexport const MappedExamSessionReadyStatuses = {\n [ExamSessionReadyStatuses.WaitingForStart as string]: new ColorStatus(Color.Default, 'Ожидает начала'),\n [ExamSessionReadyStatuses.ExamStaging as string]: new ColorStatus(Color.Default, 'В процессе проведения'),\n [ExamSessionReadyStatuses.TheoreticalExamStagingAndSessionStarted as string]: new ColorStatus(Color.Default, 'В процессе проведения теоретической части аккредитации'),\n [ExamSessionReadyStatuses.ExamSessionTimeout as string]: new ColorStatus(Color.Default, 'Перерыв'),\n [ExamSessionReadyStatuses.PracticalExamStagingAndSessionStarted as string]: new ColorStatus(Color.Default, 'В процессе проведения практической части аккредитации'),\n [ExamSessionReadyStatuses.ExamFinished as string]: new ColorStatus(Color.Default, 'Аккредитация завершена'),\n [ExamSessionReadyStatuses.SessionFinished as string]: new ColorStatus(Color.Default, 'Сессия завершена'),\n};\n\nexport enum AppType {\n Applicant = 'applicant',\n Ac = 'ac',\n Asc = 'asc',\n Main = 'main',\n Exam = 'exam',\n Expert = 'expert'\n}\n\nexport enum ExamType {\n Intramural = 'intramural',\n Recertification = 'recertification',\n Online = 'online',\n}\n\nexport enum DocumentType {\n Other = 'other',\n IdentityDoc = 'identityDoc',\n SecondaryEducationConfirmation = 'secondaryEducationConfirmation',\n HigherEducationConfirmation = 'higherEducationConfirmation',\n WorkExperienceConfirmation = 'workExperienceConfirmation',\n ContinuingEducationConfirmation = 'continuingEducationConfirmation',\n Snils = 'snils',\n NoCriminalRecord = 'noCriminalRecord',\n QualificationCertificate = 'qualificationCertificate',\n ConsentToProcessingPersonalData = 'consentToProcessingPersonalData',\n}\n\nexport const DocumentTypeTitles = {\n [DocumentType.Other]: 'Другое',\n [DocumentType.IdentityDoc]: 'Документ, удостоверяющий личность',\n [DocumentType.SecondaryEducationConfirmation]: 'Документ о среднем образовании',\n [DocumentType.HigherEducationConfirmation]: 'Документ о высшем образовании',\n [DocumentType.WorkExperienceConfirmation]: 'Документ, подтверждающий стаж работы',\n [DocumentType.ContinuingEducationConfirmation]: 'Документ о повышении квалификации',\n [DocumentType.Snils]: 'СНИЛС',\n [DocumentType.NoCriminalRecord]: 'Документ об отсутствии судимости',\n [DocumentType.QualificationCertificate]: 'Квалификационный аттестат',\n [DocumentType.ConsentToProcessingPersonalData]: 'Согласие на обработку персональных данных',\n};\n\nexport enum IdentityDocType {\n Passport = 'passport',\n Residence = 'residence',\n MilitaryTicket = 'militaryTicket',\n TemporaryIdentity = 'temporaryIdentity',\n DiplomaticPassport = 'diplomaticPassport',\n StatelessPersonIdentity = 'statelessPersonIdentity',\n InternationalPassport = 'internationalPassport',\n ForeignCitizenPassport = 'foreignCitizenPassport',\n TemporaryResidencePermit = 'temporaryResidencePermit',\n ServicePassport = 'servicePassport',\n RefugeeIdentity = 'refugeeIdentity',\n ServicemanIdentity = 'servicemanIdentity',\n SeafarerIdentity = 'seafarerIdentity',\n}\n\nexport const IdentityDocTypeTitles = {\n [IdentityDocType.Passport]: 'Паспорт гражданина Российской Федерации',\n [IdentityDocType.Residence]: 'Вид на жительство, выдаваемое лицу без гражданства',\n [IdentityDocType.MilitaryTicket]: 'Военный билет (у лиц, проходящих военную службу)',\n [IdentityDocType.TemporaryIdentity]: 'Временное удостоверение личности гражданина Российской Федерации (форма № 2П)',\n [IdentityDocType.DiplomaticPassport]: 'Дипломатический паспорт',\n [IdentityDocType.StatelessPersonIdentity]: 'Документ, удостоверяющий личность лица без гражданства, выданный иностранным государством',\n [IdentityDocType.InternationalPassport]: 'Заграничный паспорт гражданина Российской Федерации',\n [IdentityDocType.ForeignCitizenPassport]: 'Паспорт иностранного гражданина или иной документ, удостоверяющий личность иностранного гражданина',\n [IdentityDocType.TemporaryResidencePermit]: 'Разрешение на временное проживание, выдаваемое лицу без гражданства',\n [IdentityDocType.ServicePassport]: 'Служебный паспорт',\n [IdentityDocType.RefugeeIdentity]: 'Удостоверение беженца',\n [IdentityDocType.ServicemanIdentity]: 'Удостоверение личности военнослужащего Российской Федерации',\n [IdentityDocType.SeafarerIdentity]: 'Удостоверение личности моряка',\n};\n\nexport enum Sex {\n Male = 'male',\n Female = 'female',\n}\n\nexport const MappedExamTypes = {\n [ExamType.Online as string]: new ColorStatus(Color.Default, 'Онлайн'),\n [ExamType.Recertification as string]: new ColorStatus(Color.Default, 'Признание'),\n [ExamType.Intramural as string]: new ColorStatus(Color.Default, 'Очный'),\n};\n\nexport enum PracticalQuestionType {\n OpenAnswer = 'openAnswer',\n Essay = 'essay',\n ManualCheckTabular = 'manualCheckTabular',\n AutoCheckTabular = 'autoCheckTabular',\n Offline = 'offline',\n}\n\nexport enum TheoreticalQuestionType {\n MultipleChoice = 'multipleChoice',\n Matching = 'matching',\n OpenAnswer = 'openAnswer',\n Ordering = 'ordering',\n}\n\nexport enum ExamPartType {\n Theoretical = 'theoretical',\n Practical = 'practical',\n}\n\nexport enum ExamStageStatus {\n Assignment = 'assignment',\n Finished = 'finished',\n}\n\n\nexport enum ExpertStatus {\n AscMember = 'ascMember',\n AscSecretary = 'ascSecretary',\n AscChairman = 'ascChairman',\n AscViceChairman = 'ascViceChairman',\n AcSecretary = 'acSecretary',\n AcChairman = 'acChairman',\n AcViceChairman = 'acViceChairman',\n}\n\n\nexport const ExpertStatusNames = {\n ascMember: 'Член АПК',\n ascChairman: 'Председатель АПК',\n ascViceChairman: 'Заместитель председателя АПК',\n ascSecretary: 'Секретарь АПК',\n acSecretary: 'Секретарь АК',\n acChairman: 'Председатель АК',\n acViceChairman: 'Заместитель председателя АК',\n};\n\nexport const MappedExpertStatus: Record = {\n [ExpertStatus.AscMember]: new ColorStatus(Color.Default, ExpertStatusNames[ExpertStatus.AscMember]),\n [ExpertStatus.AscChairman]: new ColorStatus(Color.Default, ExpertStatusNames[ExpertStatus.AscChairman]),\n [ExpertStatus.AscViceChairman]: new ColorStatus(Color.Default, ExpertStatusNames[ExpertStatus.AscViceChairman]),\n [ExpertStatus.AscSecretary]: new ColorStatus(Color.Default, ExpertStatusNames[ExpertStatus.AscSecretary]),\n [ExpertStatus.AcSecretary]: new ColorStatus(Color.Default, ExpertStatusNames[ExpertStatus.AcSecretary]),\n [ExpertStatus.AcChairman]: new ColorStatus(Color.Default, ExpertStatusNames[ExpertStatus.AcChairman]),\n [ExpertStatus.AcViceChairman]: new ColorStatus(Color.Default, ExpertStatusNames[ExpertStatus.AcViceChairman]),\n};\n\nexport const ExpertStatusOptions = [\n { label: 'Все', value: '' },\n { label: ExpertStatusNames[ExpertStatus.AscMember], value: ExpertStatus.AscMember },\n { label: ExpertStatusNames[ExpertStatus.AscChairman], value: ExpertStatus.AscChairman },\n { label: ExpertStatusNames[ExpertStatus.AscViceChairman], value: ExpertStatus.AscViceChairman },\n { label: ExpertStatusNames[ExpertStatus.AscSecretary], value: ExpertStatus.AscSecretary },\n];\n\n\nexport enum ExpertChangeRequestType {\n IncludeInAsc = 'includeInAsc',\n ExcludeFromAsc = 'excludeFromAsc',\n UpdateAscStatus = 'updateAscStatus',\n UpdateFullName = 'updateFullName',\n UpdatePosition = 'updatePosition',\n}\n\nexport const MappedExpertChangeRequestType = {\n [ExpertChangeRequestType.IncludeInAsc]: new ColorStatus(Color.Success, 'Включение в состав АПК'),\n [ExpertChangeRequestType.ExcludeFromAsc]: new ColorStatus(Color.Red, 'Исключение из состава АПК'),\n [ExpertChangeRequestType.UpdateAscStatus]: new ColorStatus(Color.Default, 'Изменение статуса'),\n [ExpertChangeRequestType.UpdateFullName]: new ColorStatus(Color.Default, 'Изменение личных данных'),\n [ExpertChangeRequestType.UpdatePosition]: new ColorStatus(Color.Default, 'Изменение должности'),\n};\n\nexport enum ExpertChangeRequestStatus {\n Approving = 'approving',\n Approved = 'approved',\n Rejected = 'rejected',\n}\n\nexport const MappedExpertChangeRequestStatus = {\n [ExpertChangeRequestStatus.Approving]: new ColorStatus(Color.Orange, 'В процессе'),\n [ExpertChangeRequestStatus.Approved]: new ColorStatus(Color.Success, 'Утвержден'),\n [ExpertChangeRequestStatus.Rejected]: new ColorStatus(Color.Red, 'Отклонен'),\n};\n\nexport const NeedingAttentionMappedExamStatuses = {\n ...MappedExamStatuses,\n [ExamStatus.AwaitingExpertConfirmation as string]: new ColorStatus(Color.Orange, 'Подтвердите участие'),\n};\n\nexport enum ExpertChangeRequestsOrderStatus {\n Formatting = 'formatting',\n Approving = 'approving',\n Approved = 'approved',\n}\n\nexport const MappedExpertChangeRequestsOrderStatus = {\n [ExpertChangeRequestsOrderStatus.Formatting]: new ColorStatus(Color.Default, 'Формируется'),\n [ExpertChangeRequestsOrderStatus.Approving]: new ColorStatus(Color.Orange, 'На утверждении'),\n [ExpertChangeRequestsOrderStatus.Approved]: new ColorStatus(Color.Success, 'Утверждено'),\n};\n\nexport const ResidencyOptions = [\n {\n label: 'Высшее (специалитет)',\n value: 'false',\n },\n {\n label: 'Высшее (ординатура) / Переподготовка',\n value: 'true',\n },\n];\n\nexport enum AppExceptionType {\n Unspecified = 'unspecified',\n Validation = 'validation',\n NotFound = 'notFound',\n AlreadyExists = 'alreadyExists',\n WrongVerificationCode = 'wrongVerificationCode',\n TooManyRequests = 'tooManyRequests',\n WrongCredentials = 'wrongCredentials',\n AuthUserNotFound = 'authUserNotFound',\n Forbidden = 'forbidden',\n Captcha = 'captcha',\n WrongIp = 'wrongIp',\n}\n\nexport enum ExpertChangeRequestApprovalStep {\n ApprovalByAscChairman = 'approvalByAscChairman',\n ApprovalByAcSecretary = 'approvalByAcSecretary',\n ApprovalByAcChairman = 'approvalByAcChairman',\n}\n\nexport enum CitizenshipType {\n Russian = 'russian',\n RussianWithOther = 'russianWithOther',\n Foreigner = 'foreigner',\n WithoutCitizenship = 'withoutCitizenship',\n}\n\nexport const CitizenshipTypeTitles = {\n [CitizenshipType.Russian]: 'Гражданин РФ',\n [CitizenshipType.RussianWithOther]: 'Гражданин РФ и иностранного государства (двойное гражданство)',\n [CitizenshipType.Foreigner]: 'Иностранный гражданин',\n [CitizenshipType.WithoutCitizenship]: 'Лицо без гражданства',\n};\n/** Отношение к воинской службе */\nexport enum MilitaryRelationshipType {\n Reservist = 'reservist',\n Serviceman = 'serviceman',\n NonLiable = 'nonLiable',\n Conscript = 'conscript',\n CustomsOfficer = 'customsOfficer',\n}\n\nexport const MilitaryRelationshipTypeTitles = {\n [MilitaryRelationshipType.Reservist]: 'Военнообязанный',\n [MilitaryRelationshipType.Serviceman]: 'Военнослужащий',\n [MilitaryRelationshipType.NonLiable]: 'Невоеннообязанный',\n [MilitaryRelationshipType.Conscript]: 'Призывник',\n [MilitaryRelationshipType.CustomsOfficer]: 'Служащий таможенных органов',\n};\n\nexport enum DiplomaType {\n Specialist = 'specialist',\n Bachelor = 'bachelor',\n Spo = 'spo',\n Residency = 'residency',\n Pp = 'pp',\n ExtractFromProtocolGIA = 'extractFromProtocolGIA',\n}\n\nexport const DiplomaTypeTitles = {\n [DiplomaType.Specialist]: 'Диплом специалиста',\n [DiplomaType.Bachelor]: 'Диплом бакалавра',\n [DiplomaType.Spo]: 'Диплом СПО',\n [DiplomaType.Residency]: 'Диплом об окончании ординатуры',\n [DiplomaType.Pp]: 'Диплом о ПП',\n [DiplomaType.ExtractFromProtocolGIA]: 'Выписка из протокола ГИА',\n};\n\n\nexport type ErrorHandlerType = 'local' | 'global';\n\n// Для преобразованиея анотаций в тайтлы\n// /// \\n/// ([^<].+)\\n.+\\n^(\\w+).+\\n{0,1} -> [IdentityDocType.$2]: '$1',","import React from 'react';\nimport styles from './Details.module.scss';\nimport cn from 'classnames';\nimport { Form, Row } from 'react-bootstrap';\n\nconst Details = ({\n title, infoRows, withDarkRowLabel, centeredRow,\n}: DetailsProps) => {\n const renderSwitch = (row: StringValue | ArrayStringValue | LinkStringValue | ReactNodeValue) => {\n if (row instanceof StringValue) {\n return (\n
\n {row.value}\n
\n );\n }\n if (row instanceof ArrayStringValue) {\n return row.value.map((value: string, i: number) => (\n
\n {value}\n
\n ));\n }\n\n if (row instanceof LinkStringValue) {\n return row.value + row.link;\n }\n\n if (row instanceof ReactNodeValue) {\n return row.value;\n }\n\n return 'Unexpected row type';\n };\n\n const renderInfoRow = (row: StringValue | ArrayStringValue | LinkStringValue | ReactNodeValue, i: number) => (\n \n
\n {row.label}\n
\n\n
\n {renderSwitch(row)}\n
\n
\n );\n\n return (\n
\n {title ? (\n
\n {title}\n
\n ) : null}\n\n
\n {infoRows.map(renderInfoRow)}\n
\n
\n );\n};\n\ninterface DetailsProps {\n infoRows: (StringValue | ArrayStringValue | LinkStringValue | ReactNodeValue)[];\n title?: string;\n withDarkRowLabel?: boolean;\n centeredRow?: boolean;\n}\n\nexport default Details;\n\ninterface Value {\n label: string;\n value: any;\n}\n\nexport class StringValue implements Value {\n public label: string;\n\n public value: string;\n\n public color?: string;\n\n public constructor(label: string, value: string | undefined, color?: string) {\n this.label = label;\n this.value = value || '';\n this.color = color;\n }\n}\n\nexport class ArrayStringValue implements Value {\n public label: string;\n\n public value: string[];\n\n public constructor(label: string, value: string[] | undefined) {\n this.label = label;\n this.value = value || [];\n }\n}\n\nexport class LinkStringValue implements Value {\n public label: string;\n\n public value: string;\n\n public link: string;\n\n public constructor(label: string, value: string, link: string) {\n this.label = label;\n this.value = value;\n this.link = link;\n }\n}\n\nexport class ReactNodeValue implements Value {\n public label: string;\n\n public value: React.ReactNode;\n\n public constructor(label: string, value: React.ReactNode) {\n this.label = label;\n this.value = value;\n }\n}\n","import React from 'react';\nimport { LoaderBtn, DotsSettings, IDotsButtonProps } from 'components';\nimport { Modal, Button } from 'react-bootstrap';\nimport styles from './WarningModal.module.scss';\nimport cn from 'classnames';\n\nconst WarningModal = ({\n show,\n onHide,\n title,\n onAccess,\n loading,\n appendFooterItem,\n titleClassNames,\n bodyClassNames,\n footerClassNames,\n accessBtnTittle,\n closeBtnTittle,\n children,\n dialogClassName,\n withoutCancelButton,\n withoutCloseIcon,\n withoutTitlePadding,\n withoutTitleMargin,\n withoutOverflow,\n large,\n dotsButtons,\n disableAccessButton,\n headerClassNames,\n centered = true,\n card,\n}: WarningModalProps) => (\n \n \n \n {title}\n {dotsButtons ? : null}\n \n \n \n {children}\n \n \n {!!onAccess && (\n \n {accessBtnTittle || 'Подтвердить'}\n \n )}\n {!withoutCancelButton && }\n {appendFooterItem && appendFooterItem()}\n \n \n );\n\ninterface WarningModalProps {\n title: string;\n show: boolean;\n centered?: boolean;\n accessBtnTittle?: string;\n closeBtnTittle?: string;\n titleClassNames?: string;\n bodyClassNames?: string;\n headerClassNames?: string;\n footerClassNames?: string;\n dialogClassName?: string;\n loading?: boolean;\n children?: React.ReactNode;\n withoutCancelButton?: boolean;\n withoutCloseIcon?: boolean;\n withoutTitlePadding?: boolean;\n withoutTitleMargin?: boolean;\n withoutOverflow?: boolean;\n large?: boolean;\n card?: boolean;\n dotsButtons?: IDotsButtonProps[];\n disableAccessButton?: boolean;\n onHide: () => void;\n onAccess?: () => void;\n appendFooterItem?: () => JSX.Element | string | null;\n}\n\n\nexport default WarningModal;\n","import React from 'react';\nimport { Modal, Form, Button } from 'react-bootstrap';\nimport { LoaderBtn, Captcha } from 'components';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport { formatSecretPhoneNumber } from '_helpers';\nimport cn from 'classnames';\nimport styles from './SmsSignModal.module.scss';\n\nconst SmsSignModal = ({\n show,\n onHide,\n onSubmit,\n phone,\n onSendPasswordAgain,\n apiError,\n processing,\n title,\n waitingSeconds,\n phoneText,\n submitButtonText,\n}: SignProtocolModalProps) => {\n const initialState: SignProtocolModalState = {\n signCode: '',\n timer: 0,\n captcha: '',\n captchaValid: true,\n signCodeValid: true,\n };\n\n const [signCode, setSignCode] = React.useState(initialState.signCode);\n const [signCodeValid, setSignCodeValid] = React.useState(initialState.signCodeValid);\n const [timer, setTimer] = React.useState(initialState.timer);\n const [captcha, setCaptcha] = React.useState(initialState.captcha);\n const [captchaValid, setCaptchaValid] = React.useState(initialState.captchaValid);\n const inputElement = React.useRef(null);\n const invalidInputText = apiError && apiError.failures && (apiError.failures.code || apiError.failures.verificationCode);\n\n React.useEffect(() => {\n if (inputElement.current && show) {\n inputElement.current.focus();\n }\n }, [inputElement, show]);\n\n const usePrevious = (value?: number | null) => {\n const ref = React.useRef(0);\n\n React.useEffect(() => {\n ref.current = value || 0;\n });\n return ref.current;\n };\n\n const calcTimer = () => {\n if (timer) {\n setTimer(timer - 1);\n }\n };\n\n\n const doValidate = () => {\n const isSignCodeValid = signCode.length === 4;\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n\n setSignCodeValid(isSignCodeValid);\n setCaptchaValid(isCaptchaValid);\n\n return isSignCodeValid && isCaptchaValid;\n };\n\n const prevTime = usePrevious(waitingSeconds);\n\n React.useEffect(() => {\n if (waitingSeconds && prevTime !== waitingSeconds) {\n setTimer(waitingSeconds);\n }\n\n const id = setTimeout(calcTimer, 1000);\n\n return () => clearTimeout(id);\n }, [waitingSeconds, timer]);\n\n const handleChangeSignCode = (e: React.ChangeEvent) => {\n setSignCode(String(e.target.value));\n };\n\n const formatPhone = (nPhone: string) => {\n if (!nPhone) return '';\n return formatSecretPhoneNumber(nPhone);\n };\n\n const sendCodeAgain = () => {\n setSignCode('');\n onSendPasswordAgain(captcha);\n };\n\n const onCloseModal = () => {\n setSignCode('');\n onHide();\n };\n\n const onSubmitForm = (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!doValidate()) return;\n\n setSignCode('');\n setCaptcha('');\n\n onSubmit(signCode, captcha);\n };\n\n const onSubmitCaptcha = (e: React.FormEvent) => {\n e.preventDefault();\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n setCaptchaValid(isCaptchaValid);\n\n if (!isCaptchaValid) return;\n\n setSignCode('');\n setCaptcha('');\n\n onSendPasswordAgain(captcha);\n };\n\n if (!waitingSeconds && apiError && apiError.failures && apiError.failures.captcha) {\n return (\n \n
\n \n \n \n {apiError && ((apiError.failures && !(apiError.failures.code || apiError.failures.verificationCode)) || (apiError.type === 'captcha')) && apiError.message}\n \n \n \n Отправить\n \n \n
\n \n );\n }\n\n return (\n \n \n \n {title || 'Одобрение проведения аккредитации'}\n \n \n {show ? (\n
\n \n
\n {phoneText ? `${phoneText} ` : 'Для одобрения проведения аккредитационного мероприятия, введите код из СМС-сообщения, которое было отправлено на номер '}\n {formatPhone(phone)}\n
\n \n \n \n {!signCodeValid ? 'Минимальная длина кода 4 символа' : invalidInputText ? invalidInputText.join(',') : null}\n \n \n {timer ? (Времени до повторной отправки: {timer}c) : null}\n \n \n \n {apiError && (!apiError.failures || (apiError.failures && !invalidInputText)) ? apiError.message : null}\n \n
\n \n {submitButtonText || 'Подтвердить'}\n \n \n
\n ) : null}\n \n );\n};\n\nexport default SmsSignModal;\n\ninterface SignProtocolModalProps {\n show: boolean;\n phone: string;\n apiError: IApiError | null | undefined;\n waitingSeconds: number | null | undefined;\n processing: boolean;\n title?: string;\n phoneText?: string;\n submitButtonText?: string;\n onHide: () => void;\n onSendPasswordAgain: (captcha: string | undefined) => void;\n onSubmit: (signCode: string, captcha: string) => void;\n}\n\ninterface SignProtocolModalState {\n signCode: string;\n timer: number;\n captcha: string;\n captchaValid: boolean;\n signCodeValid: boolean;\n}\n","import React from 'react';\nimport { Modal, Form, Col } from 'react-bootstrap';\nimport { LoaderBtn, Captcha, PhoneInput } from 'components';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport { formatSecretPhoneNumber } from '_helpers';\nimport styles from './PhoneModal.module.scss';\nimport cn from 'classnames';\n\nconst PhoneModal = ({\n show, onHide, title, onSubmitPhone, error, onSubmitCode, waitingSeconds,\n}: IProps) => {\n const [phone, setPhone] = React.useState('');\n const [password, setPassword] = React.useState('');\n const [passwordValid, setPasswordValid] = React.useState(true);\n const [verificationCode, setVerificationCode] = React.useState('');\n const [verificationCodeValid, setVerificationCodeValid] = React.useState(true);\n const [showCode, setShowCode] = React.useState(false);\n const [timer, setTimer] = React.useState(0);\n const [processingCode, setProcessingCode] = React.useState(false);\n const [processingPhone, setProcessingPhone] = React.useState(false);\n const [phoneValid, setPhoneValid] = React.useState(true);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [step, setStep] = React.useState(1);\n\n const doValidate = () => {\n const isCaptchaValid = error && error.failures && error.failures.captcha ? captcha.length === 4 : true;\n const isPasswordValid = password.length >= 6;\n const isPhoneValid = /^[0-9]{10}$/.test(phone);\n\n setPhoneValid(isPhoneValid);\n setCaptchaValid(isCaptchaValid);\n setPasswordValid(isPasswordValid);\n\n return isCaptchaValid && isPhoneValid && isPasswordValid;\n };\n\n const doValidateCodeForm = () => {\n const isCaptchaValid = error && error.failures && error.failures.captcha ? captcha.length === 4 : true;\n const isVerificationCodeValid = verificationCode.length === 4;\n\n setVerificationCodeValid(isVerificationCodeValid);\n setCaptchaValid(isCaptchaValid);\n\n return isCaptchaValid && isVerificationCodeValid;\n };\n\n const submitPhone = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!doValidate()) return;\n setShowCode(true);\n setProcessingPhone(true);\n await onSubmitPhone(phone, password, captcha);\n setProcessingPhone(false);\n setCaptcha('');\n };\n\n const submitCode = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!doValidateCodeForm()) return;\n setProcessingCode(true);\n const res = await onSubmitCode({ phone, verificationCode, captcha });\n setProcessingCode(false);\n setCaptcha('');\n setVerificationCode('');\n\n if (res) {\n clearState();\n }\n };\n\n const getCodeAgain = () => {\n setVerificationCode('');\n onSubmitPhone(phone, password, captcha);\n };\n\n const checkError = (field: string) => {\n if (error && error.failures && error.failures[field]) {\n return error.failures[field][0];\n }\n\n return '';\n };\n\n const clearState = () => {\n setPhone('');\n setPassword('');\n setVerificationCode('');\n setShowCode(false);\n setProcessingCode(false);\n setProcessingPhone(false);\n };\n\n const onClose = () => {\n clearState();\n onHide();\n };\n\n const calcTimer = () => {\n if (timer) {\n setTimer(timer - 1);\n }\n };\n\n const formatPhone = (nPhone: string) => {\n if (!nPhone) return '';\n return formatSecretPhoneNumber(nPhone);\n };\n\n const checkFirstStep = () => {\n if ((showCode && step === 1 && (checkError('phone') || checkError('password') || checkError('captcha')))\n || !showCode\n || processingPhone) {\n if (step === 2) setStep(1);\n return true;\n }\n\n if (step === 1) setStep(2);\n return false;\n };\n\n const usePrevious = (value?: number) => {\n const ref = React.useRef(0);\n\n React.useEffect(() => {\n ref.current = value || 0;\n });\n return ref.current;\n };\n\n const prevTime = usePrevious(waitingSeconds);\n\n React.useEffect(() => {\n if (waitingSeconds && prevTime !== waitingSeconds) {\n setTimer(waitingSeconds);\n }\n\n const id = setTimeout(calcTimer, 1000);\n\n return () => clearTimeout(id);\n }, [timer, waitingSeconds]);\n\n return (\n <>\n {checkFirstStep() ? (\n \n \n \n {title}\n \n \n
\n \n
\n Для изменения номера мобильного телефона необходимо указать\n новый номер телефона и в целях безопасности ввести текущий\n пароль от вашей учетной записи.\n
\n\n setPhone(value)}\n fieldFailures={{ phone: !phoneValid ? 'Неверный формат телефона' : checkError('phone') }}\n phoneHelperClassName={styles.phone_input__helper}\n />\n\n \n \n ПОДТВЕРЖДЕНИЕ ПАРОЛЯ\n \n \n setPassword(e.target.value)}\n isInvalid={!!checkError('password') || !passwordValid}\n />\n \n {checkError('password') || (!passwordValid && 'Минимальная длина пароля 6 символов')}\n \n \n \n \n \n {error && ((error.failures && !(error.failures.phone || error.failures.password)) || (error.type === 'captcha')) && error.message}\n \n
\n \n Далее\n Отмена\n \n
\n \n ) : (\n \n \n \n {title}\n \n \n
\n \n
\n Для завершения изменения номера мобильного телефона, введите\n код из СМС-сообщения, которое было отправлено на номер
\n {formatPhone(phone)}\n
\n \n setVerificationCode(e.target.value)}\n isInvalid={!!checkError('verificationCode') || !verificationCodeValid}\n placeholder=\"Код верификации\"\n maxLength={4}\n disabled={(!!checkError('phone') || !!checkError('password')) || false}\n />\n \n {checkError('verificationCode') || (!verificationCodeValid && 'Длина цифр с картинки должны быть 4 символа')}\n \n \n \n {timer ? (До повторной отправки осталось {timer}с.) : ()}\n \n \n \n {error && ((error.failures && !(error.failures.phone || error.failures.password || error.failures.verificationCode)) || (error.type === 'captcha')) && error.message}\n \n
\n \n Подтвердить\n Отмена\n \n
\n \n )}\n \n );\n};\n\ninterface IProps {\n show: boolean;\n title: string;\n error?: IApiError | null;\n waitingSeconds: number;\n onHide: () => void;\n onSubmitPhone: (phone: string, password: string, captcha?: string) => void;\n onSubmitCode: (body: ICheckCode) => Promise;\n}\n\ninterface ICheckCode {\n phone: string;\n verificationCode: string;\n captcha?: string;\n}\n\nexport default PhoneModal;\n","import React from 'react';\nimport { WarningModal, InputText, Captcha } from 'components';\nimport { Form } from 'react-bootstrap';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport styles from './ResetPasswordModal.module.scss';\nimport cn from 'classnames';\n\nconst ResetPasswordModal = ({\n show,\n onHide,\n onChangePassword,\n apiError,\n withoutOldPass,\n withoutRepeatPass,\n title,\n children,\n}: IProps) => {\n const [oldPass, setOldPass] = React.useState('');\n const [newPass, setNewPass] = React.useState('');\n const [repeatPass, setRepeatPass] = React.useState('');\n const [validOldPass, setValidOldPass] = React.useState(true);\n const [validNewPass, setValidNewPass] = React.useState(true);\n const [validRepeatPass, setValidRepeatPass] = React.useState(true);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [processing, setProcessing] = React.useState(false);\n const captchaError = apiError && apiError.failures && apiError.failures.captcha;\n const newPassError = apiError && apiError.failures && apiError.failures.newPassword && apiError.failures.newPassword[0];\n const oldPassError = apiError && apiError.failures && apiError.failures.oldPassword && apiError.failures.oldPassword[0];\n\n React.useEffect(() => {\n clearState();\n }, [show]);\n\n const clearState = () => {\n setOldPass('');\n setNewPass('');\n setRepeatPass('');\n setCaptcha('');\n setValidOldPass(true);\n setValidNewPass(true);\n setValidRepeatPass(true);\n setCaptchaValid(true);\n setProcessing(false);\n };\n\n const doValidate = () => {\n const oldPassValid = withoutOldPass ? true : oldPass.length >= 6;\n const newPassValid = newPass.length >= 6;\n const repeatPassValid = withoutRepeatPass ? true : repeatPass.length >= 6 && repeatPass === newPass;\n const isCaptchaValid = captchaError ? captcha.length === 4 : true;\n\n setValidOldPass(oldPassValid);\n setValidNewPass(newPassValid);\n setValidRepeatPass(repeatPassValid);\n setCaptchaValid(isCaptchaValid);\n\n return oldPassValid && newPassValid && repeatPassValid && isCaptchaValid;\n };\n\n const submit = async () => {\n if (!doValidate()) return;\n\n setProcessing(true);\n setCaptcha('');\n\n const res = await onChangePassword({\n newPassword: newPass,\n oldPassword: oldPass,\n captcha,\n });\n\n setProcessing(false);\n\n if (res) {\n onHide();\n }\n };\n\n return (\n \n {children}\n {!withoutOldPass ? (\n {\n setOldPass(value);\n setValidOldPass(true);\n }}\n labelTitle=\"СТАРЫЙ ПАРОЛЬ\"\n labelColSize={3}\n inputColSize={6}\n minLength={6}\n fieldFailures={!validOldPass ? { oldPass: 'Минимальная длина пароля 6 символов' } : { oldPass: oldPassError || '' }}\n inputGroupClassNames={styles.row_input}\n />\n ) : null}\n {\n setNewPass(value);\n setValidNewPass(true);\n }}\n labelTitle={withoutRepeatPass ? '' : 'НОВЫЙ ПАРОЛЬ'}\n labelColSize={withoutRepeatPass ? 0 : 3}\n inputColSize={6}\n minLength={6}\n fieldFailures={!validNewPass ? { newPass: 'Минимальная длина пароля 6 символов' } : { newPass: newPassError || '' }}\n inputGroupClassNames={styles.row_input}\n inputClassNames={cn(withoutRepeatPass && 'p-0')}\n />\n {!withoutRepeatPass ? (\n {\n setRepeatPass(value);\n setValidRepeatPass(true);\n }}\n labelTitle=\"ПОВТОРИТЕ ПАРОЛЬ\"\n labelColSize={3}\n inputColSize={6}\n minLength={6}\n fieldFailures={!validRepeatPass ? { repeatPass: repeatPass.length < 6 ? 'Минимальная длина пароля 6 символов' : 'Пароли не совпадают' } : {}}\n inputGroupClassNames={styles.row_input}\n />\n ) : null}\n \n \n {apiError && apiError.failures && apiError.failures.captcha && apiError.message}\n \n \n );\n};\n\nexport default ResetPasswordModal;\n\ninterface IProps {\n show: boolean;\n apiError?: IApiError | null;\n withoutOldPass?: boolean;\n withoutRepeatPass?: boolean;\n title?: string;\n children?: React.ReactNode;\n onChangePassword: (data: IChangePassword) => Promise;\n onHide: () => void;\n}\n\nexport interface IChangePassword {\n newPassword: string;\n oldPassword?: string;\n captcha?: string;\n}\n","import React, { FormEvent } from 'react';\nimport cn from 'classnames';\nimport styles from './CustomSwitch.module.scss';\nimport { Loader } from 'components';\n\nconst CustomSwitch = ({\n value, name, onClick, changed, status, containerClassName, loading, disabled, pinClassName, iconClassName,\n}: Props) => {\n const handleToggle = (event: FormEvent) => {\n event.stopPropagation();\n\n if (isFixPosition()) return;\n\n const newState = !value;\n onClick({ name, value: newState });\n };\n\n const isFixPosition = () => loading || disabled || (!changed && (status === 'accept' || status === 'reject'));\n\n const containerOptionalClasses = {\n [styles.switchOn]: value,\n [styles.switchOff]: !value,\n 'bg-success': status === 'accept',\n 'bg-danger': status === 'reject',\n };\n\n return (\n \n \n {loading ? (\n \n ) : null}\n \n \n \n );\n};\n\nexport default CustomSwitch;\n\ninterface Props {\n name: string;\n value: boolean;\n changed?: boolean;\n loading?: boolean;\n disabled?: boolean;\n status?: CustomSwitchStatus;\n containerClassName?: string;\n pinClassName?: string;\n iconClassName?: string;\n onClick: (event: CustomSwitchEvent) => void;\n}\n\nexport interface CustomSwitchEvent {\n value: boolean;\n name: string;\n}\n\nexport enum CustomSwitchStatusEnum {\n Accept = 'accept',\n Reject = 'reject',\n Default = 'default',\n}\n\nexport type CustomSwitchStatus = 'accept' | 'reject' | 'default';\n","import React from 'react';\nimport { IExamApplication, IExamDayApplication } from 'components/models';\nimport { Button, FormControl, Table } from 'react-bootstrap';\nimport { formatPhoneNumber } from '_helpers';\nimport Pagination, { IPaginationData } from '../Pagination/Pagination';\nimport styles from './ExamAssigningApplicationsTable.module.scss';\n//import sortIcon from '../assets/svg/sort_icon.svg';\nimport groupIcon from '../assets/svg/group.svg';\nimport cn from 'classnames';\nimport CustomCheckbox from '../Common/CustomCheckbox/CustomCheckbox';\nimport { WarningModal } from '../Common/Modals';\nimport { ExtendedSelect } from '../index';\nimport { ISelectEvent } from '../Common/ExtendedSelect/ExtendedSelect';\nimport { FinalizedResult, MappedFinalizedResult, MappedFinalizedResultColor } from '../enums';\n\nconst ExamAssigningApplicationsTable = (props: ExamApplicationsTableProps) => {\n const initialFilter: IFilter = {\n fieldName: '',\n fieldValue: '',\n };\n\n const [examApplications, setExamApplications] = React.useState(props.examApplications);\n const [filter, setFilter] = React.useState(initialFilter);\n const [checkedApplications, setCheckedApplications] = React.useState>({});\n const [checkedAll, setCheckedAll] = React.useState(false);\n const [showEmptyListModal, setShowEmptyListModal] = React.useState(false);\n\n React.useEffect(() => {\n setCheckedAll(false);\n setCheckedApplications({});\n setExamApplications(props.examApplications);\n }, [props.examApplications]);\n\n const withStatus = props.headers.length === 3 && !!props.headers.find(h => h.isStatus);\n\n const statusOptions = props.examApplications.map(c => c.finalizedResult || FinalizedResult.None)\n .filter((v, i, a) => a.indexOf(v) === i)\n .map(v => ({ label: MappedFinalizedResult[v], value: v.toString() }));\n statusOptions.unshift({label: 'Все', value: ''})\n\n\n const handleCheckApplication = React.useCallback((id: string) => {\n const newChecked = {\n ...checkedApplications,\n [id]: !checkedApplications[id],\n };\n const countOfChecked = examApplications.filter(i => newChecked[i.examApplication.examApplicationId]).length;\n if (countOfChecked === examApplications.length) {\n setCheckedAll(true);\n } else if (checkedAll) {\n setCheckedAll(false);\n }\n\n setCheckedApplications(newChecked);\n }, [checkedApplications, checkedAll, examApplications]);\n\n const handleCheckAll = React.useCallback(() => {\n const newChecked: Record = {};\n examApplications.forEach((a) => {\n if (!props.finalizing || a.canFinalize) {\n newChecked[a.examApplication.examApplicationId] = !checkedAll;\n }\n });\n setCheckedApplications(newChecked);\n setCheckedAll(!checkedAll);\n }, [checkedAll, examApplications, props.finalizing]);\n\n const handleAssignedApplicants = React.useCallback(() => {\n const assignedApplicants = examApplications.filter(i => checkedApplications[i.examApplication.examApplicationId]).map(i => i.examApplication);\n if (!assignedApplicants.length) {\n setShowEmptyListModal(true);\n } else if (props.onAssignedApplicants) {\n props.onAssignedApplicants(assignedApplicants);\n }\n }, [examApplications, checkedApplications, props.onAssignedApplicants]);\n\n const triggerParentChange = (data?: IPaginationData, nFilter?: IFilter) => {\n const { fieldName, fieldValue } = nFilter || filter;\n\n if (data) {\n const { page, perPage } = data;\n\n props.onChange && props.onChange(fieldName, fieldValue, page, perPage);\n }\n \n if(props.onChange) {\n props.onChange(fieldName, fieldValue, undefined, undefined);\n }\n else {\n console.log({ fieldName, fieldValue, a: props.examApplications });\n if (fieldName && fieldValue) {\n if(fieldName === 'finalizedResult') {\n setExamApplications(props.examApplications.filter(a => a.finalizedResult === fieldValue));\n } else {\n const val = fieldValue.toLowerCase();\n setExamApplications(props.examApplications.filter(a => ('' + (a.examApplication as any)[fieldName]).toLowerCase().indexOf(fieldValue) !== -1));\n }\n }\n else {\n setExamApplications(props.examApplications);\n }\n }\n };\n\n const onFilterFieldChange = (event: React.ChangeEvent | { target: ISelectEvent }) => {\n const { name, value } = event.target;\n \n const newFilter = {\n ...filter,\n fieldName: name,\n fieldValue: value,\n };\n\n setFilter(newFilter);\n triggerParentChange(props.pagination, newFilter);\n };\n\n const renderStatus = (status: FinalizedResult = FinalizedResult.None) => (\n \n {MappedFinalizedResultColor[status].text}\n \n );\n\n const renderTableRow = ({\n examApplication, finalizedResult, canFinalize,\n }: IExamDayApplication, i: number) => (\n {\n if (props.readonly || (props.finalizing && !canFinalize)) return;\n if (props.onItemClick) props.onItemClick(examApplication.examApplicationId);\n handleCheckApplication(examApplication.examApplicationId);\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {props.withCheckbox && !props.readonly && (\n \n true}\n />\n \n )}\n \n {examApplication.applicantFullName}\n \n \n {formatPhoneNumber(examApplication.applicantPhone)}\n \n {withStatus && (\n renderStatus(finalizedResult)\n )}\n \n );\n\n return (\n
\n \n \n \n {props.withCheckbox && !props.readonly && (\n \n )}\n {props.headers.map(({ value, key, isStatus }, i: number) => {\n let textValue = undefined;\n if (key === filter.fieldName) {\n textValue = filter.fieldValue;\n }\n\n return (\n \n );\n })}\n \n {props.withConfirmButton && !!examApplications.length && !props.readonly && (\n \n \n \n )}\n \n \n {examApplications.map(renderTableRow)}\n \n
\n \n \n
\n {value}\n {/*\"sortIcon\"*/}\n
\n {isStatus ? (\n onFilterFieldChange({ target: e })}\n value={textValue}\n noUppercase\n />\n ) : (\n \n )}\n
\n \n \n
\n {!examApplications.length && (\n
\n \"Список\n \n {props.placeholderTitle || 'Список распределения пуст'}\n \n \n {props.placeholderText || 'Здесь будут отображаться все аккредитуемые, требующие распределения'}\n \n
\n )}\n {props.pagination && !!examApplications.length && (\n \n )}\n setShowEmptyListModal(false)}>\n Пожалуйста, выберите несколько аккредитуемых из списка для того, чтобы распределить их.\n \n
\n );\n};\n\ninterface ExamApplicationsTableProps {\n finalizing?: boolean;\n placeholderTitle?: string;\n placeholderText?: string;\n readonly?: boolean;\n withCheckbox?: boolean;\n withConfirmButton?: boolean;\n confirmButtonText?: string;\n disableCheckbox?: boolean;\n onAssignedApplicants?: (applicants: IExamApplication[]) => void;\n headers: ExamAssigningApplicationsColumnHeader[];\n pagination?: IPaginationData;\n examApplications: IApplicationRow[];\n className?: string;\n paginationClassName?: string;\n onChange?: (searchField: string | undefined, searchTerm: string | undefined, pageNumber: number | undefined, pageSize: number | undefined) => void;\n onItemClick?: (id: string) => void;\n}\n\ninterface IApplicationRow extends Partial {\n examApplication: IExamApplication;\n}\n\ninterface IFilter {\n fieldName: string;\n fieldValue: string;\n}\n\ninterface ColumnHeader {\n value: string;\n key: string;\n}\n\nexport class ExamAssigningApplicationsColumnHeader implements ColumnHeader {\n value: string;\n key: string;\n isStatus?: boolean;\n\n constructor(key: string, value: string, isStatus?: boolean) {\n this.key = key;\n this.value = value;\n this.isStatus = isStatus;\n }\n}\n\nexport default ExamAssigningApplicationsTable;\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from './Loader.module.scss';\nimport LoaderSvg from '../../assets/svg/Loader_svg.svg';\n\nconst Loader = ({ className, fullHeight, showBg }: IProps) => (\n
\n \"загрузка...\"\n
\n);\n\nexport default Loader;\n\ninterface IProps {\n className?: string;\n fullHeight?: boolean;\n showBg?: boolean;\n}\n","import React from 'react';\nimport { WarningModal } from 'components';\nimport { formDetector } from '_helpers';\nimport { RouteComponentProps, withRouter, Prompt } from 'react-router';\nimport * as H from 'history';\n\nconst UnsavedFormModal = ({ history, saveAndCloseDetectFunc }: Props) => {\n const [modalVisible, setModalVisible] = React.useState(false);\n const [lastLocation, setLastLocation] = React.useState(null);\n const [confirmedNavigation, setConfirmedNavigation] = React.useState(false);\n\n React.useEffect(() => {\n if (confirmedNavigation && lastLocation) {\n formDetector.resetDetectState();\n history.push(lastLocation.pathname);\n }\n }, [confirmedNavigation]);\n\n const showModal = (location: H.Location) => {\n setModalVisible(true);\n setLastLocation(location);\n };\n\n const closeModal = () => {\n setModalVisible(false);\n };\n\n const handleBlockedNavigation = (nextLocation: H.Location) => {\n if (!confirmedNavigation) {\n showModal(nextLocation);\n return false;\n }\n\n return true;\n };\n\n const handleConfirmNavigationClick = async () => {\n let res;\n if (saveAndCloseDetectFunc) {\n res = await saveAndCloseDetectFunc();\n }\n\n closeModal();\n\n if (lastLocation && (saveAndCloseDetectFunc ? res : true)) {\n setConfirmedNavigation(true);\n }\n };\n\n if (formDetector.getShowModal()) {\n window.onbeforeunload = () => true;\n } else {\n window.onbeforeunload = null;\n }\n\n return (\n <>\n \n \n У вас несохраненные изменения\n \n \n );\n};\n\nexport default withRouter(UnsavedFormModal);\n\ninterface IProps {\n saveAndCloseDetectFunc?: () => Promise;\n}\n\ntype Props = RouteComponentProps & IProps;\n","import * as React from 'react';\nimport { ColorStatus } from '_helpers';\n\nconst StatusColumn: React.FC = ({ status }) => (status ? (\n \n {status.text}\n \n) : null);\n\ninterface IProps {\n status: ColorStatus;\n}\n\nexport default StatusColumn;\n","import * as React from 'react';\nimport { Moment } from 'moment';\n\nconst DatePeriodColumn: React.FC = ({ dateFrom, dateTo }) => (\n
\n {dateFrom ? dateFrom.clone().local().format('DD.MM.YYYY') : ''}\n {' - '}\n {dateTo ? dateTo.clone().local().format('DD.MM.YYYY') : ''}\n
\n);\n\ninterface IProps {\n dateFrom?: Moment;\n dateTo?: Moment;\n}\n\nexport default DatePeriodColumn;\n","import React, { CSSProperties, ReactElement } from 'react';\nimport {\n ExtendedSelect,\n IExtendedSelectEvent,\n DateTimePicker,\n EmptySection,\n IEmptySectionProps,\n} from 'components';\nimport { Table, Form } from 'react-bootstrap';\nimport Pagination, { IPaginationData } from '../../Pagination/Pagination';\nimport moment from 'moment';\nimport styles from './AdvancedTable.module.scss';\nimport cn from 'classnames';\nimport './DatePickerFixStyles.scss';\nimport _ from 'lodash';\nimport EmptyUsersListIcon from '../../assets/svg/group.svg';\nimport EmptyListIcon from '../../assets/svg/news_icon.svg';\n\nconst AdvancedTable: React.FC = (\n {\n handleSearch,\n tableHeaders,\n data,\n handleRowClick,\n handleOrder,\n placeholderIcon,\n placeholderText,\n placeholderTitle,\n withoutPagination,\n handlePageChange,\n page,\n pageSize,\n total,\n filters,\n handleSelectChange,\n tdClassName,\n onButtonClick,\n placeholderButtonText,\n renderAdditionalHeaderRow = () => undefined,\n placeholderClassName,\n ...props\n },\n) => {\n const initialFormData: { [key: string]: string } = tableHeaders.reduce((acc, x) => ({\n ...acc,\n [x.fieldName]: '',\n }), {});\n const savedFilters = filters ? { [filters.searchField]: filters.searchTerm } : {};\n\n const [firstRun, setFirstRun] = React.useState(true);\n const [formData, setFormData] = React.useState<{ [key: string]: string }>({ ...initialFormData, ...savedFilters });\n const [typingTimer, setTypingTimer] = React.useState(null);\n const [inputTarget, setInputTarget] = React.useState<{ fieldName: string; fieldValue: string } | null>(null);\n const [selectedOption, setSelectedOption] = React.useState({ name: '', value: '' });\n const [from, setFrom] = React.useState(undefined);\n const [to, setTo] = React.useState(undefined);\n const doneTypingInterval = 500;\n\n\n const onInputKeyup = () => {\n if (typingTimer) {\n clearTimeout(typingTimer);\n }\n\n setTypingTimer(setTimeout(() => {\n handleInputChange();\n }, doneTypingInterval));\n };\n\n const onInputKeydown = () => {\n if (typingTimer) {\n clearTimeout(typingTimer);\n }\n };\n\n const onInputChange = (event: any) => setInputTarget({\n fieldName: event.target.name as string,\n fieldValue: event.target.value as string,\n });\n\n const handleInputChange = () => {\n if (inputTarget && handleSearch) {\n const { fieldName, fieldValue } = inputTarget;\n const newFormData = _.mapValues(formData, (v, key) => (key === fieldName ? fieldValue : ''));\n\n setFormData(newFormData);\n setFirstRun(false);\n handleSearch(fieldName, fieldValue);\n }\n };\n\n const onHandleSelectChange = (e: IExtendedSelectEvent) => {\n setSelectedOption(e);\n const searchField = e.value !== 'undefined' ? e.name : '';\n const searchTerm = e.value !== 'undefined' ? e.value : '';\n\n if (handleSelectChange) {\n handleSelectChange(searchField, searchTerm);\n } else if (handleSearch) {\n handleSearch(searchField, searchTerm);\n }\n\n setFirstRun(false);\n };\n\n const onHandleDateChange = (searchField: string, date: IDateValue) => {\n if (handleSearch) {\n const oldDateFrom = from ? moment.utc(from).format() : '';\n const oldDateTo = to ? moment.utc(to).format() : '';\n const dateFrom = date.from ? moment.utc(date.from).format() : oldDateFrom;\n const dateTo = date.to ? moment.utc(date.to).format() : oldDateTo;\n\n handleSearch(searchField, `${dateFrom};${dateTo}`);\n\n setFirstRun(false);\n }\n };\n\n const renderTableItem = () => data.map((item, rowNum) => (\n handleRowClick(item.id)} data-test-row-id={item.id} data-test-row-num={rowNum}>\n {item.columns.map((x, i) => (\n \n {tableHeaders[i].isDate ? moment(x as string).format('DD.MM.YYYY в HH:mm') : x}\n \n ))}\n \n ));\n\n const renderTableHeaders = () => tableHeaders.map((field, i) => (\n \n {field.title}\n {field.fieldName !== ''\n ? (\n <>\n {handleOrder &&
handleOrder(field.fieldName)} />}\n {!field.selectOptions && !field.isDate ? (\n
e.preventDefault())}>\n \n \n ) : null}\n {field.selectOptions && (handleSelectChange || handleSearch) ? (\n \n ) : null}\n {field.isDate ? (\n onHandleDateChange(field.fieldName, date)}\n containerClassName={styles.date_container}\n groupClassName={styles.date_group}\n firstDateProps={{ readOnly: true, placeholder: 'Дата от' }}\n secondDateProps={{ readOnly: true, placeholder: 'Дата по' }}\n setFrom={setFrom}\n setTo={setTo}\n from={from}\n to={to}\n withoutLabels\n withoutTime\n withoutClear\n />\n ) : null}\n \n )\n : null}\n \n ));\n\n const renderNotFound = () => (\n \n Записи не найдены\n \n );\n\n if (data.length === 0 && firstRun && !filters) {\n return (\n \n );\n }\n\n return (\n <>\n \n \n \n {renderTableHeaders()}\n \n {renderAdditionalHeaderRow()}\n \n \n {(!firstRun || filters) && data.length === 0\n ? renderNotFound()\n : renderTableItem()}\n \n
\n {!withoutPagination && handlePageChange && (\n \n )}\n \n );\n};\n\nexport default AdvancedTable;\n\nexport interface AdvancedTableHeader {\n fieldName: string;\n title: string;\n columnStyles?: CSSProperties;\n selectOptions?: ISelectOption[];\n isDate?: boolean;\n}\n\nexport interface AdvancedTableData {\n id: string;\n columns: (string | number | JSX.Element)[];\n}\n\ninterface TableProps extends Partial {\n data: AdvancedTableData[];\n tableHeaders: AdvancedTableHeader[];\n page?: number;\n pageSize?: number;\n total?: number;\n withoutPagination?: boolean;\n users?: boolean;\n tdClassName?: string;\n filters?: { [key: string]: string } | null;\n handleRowClick: (itemId: string) => void;\n handlePageChange?: (paginationData: IPaginationData) => void;\n handleSearch?: (fieldName: string, searchTerm: string) => void;\n handleOrder?: (fieldName: string) => void;\n handleSelectChange?: (fieldName: string, value: string) => void;\n renderAdditionalHeaderRow?: () => ReactElement | boolean;\n placeholderClassName?: string;\n}\n\ninterface ISelectOption {\n label: string;\n value: string;\n}\n\ninterface IDateValue {\n from?: moment.Moment;\n to?: moment.Moment;\n}\n","import { useEffect } from 'react';\n\ntype ErrorHandlerType = 'local' | 'global';\n\nconst useLocalErrorHandler = (handlerType: (handlerType: ErrorHandlerType) => void, disable?: boolean) => {\n useEffect(() => {\n handlerType('local');\n return () => {\n handlerType('global');\n };\n }, []);\n};\n\nexport default useLocalErrorHandler;\n","import { useEffect, useState } from 'react';\n\ninterface Props {\n handler: 'local' | 'global';\n}\n\nconst useShowGlobalErrorModal = (props: Props) => {\n useEffect(() => {\n if (props.handler && props.handler === 'global') {\n toggleModal(true);\n }\n }, [props]);\n\n const [showModal, toggleModal] = useState(false);\n\n return { showModal, toggleModal };\n};\n\nexport default useShowGlobalErrorModal;\n","import { useEffect, useState } from 'react';\nimport { Location } from 'history';\n\nconst useReloader = (location: Location) => {\n const [oldLocation, setOldLocation] = useState('');\n const [reload, setReload] = useState(false);\n\n useEffect(() => {\n setReload(false);\n }, [reload]);\n\n useEffect(() => {\n if (location.pathname !== oldLocation) {\n setOldLocation(location.pathname);\n } else {\n setReload(true);\n }\n }, [location]);\n\n return reload;\n};\n\nexport default useReloader;\n","import React from 'react';\n\nconst useMouseLeaveDetector = (isActive: boolean, callback: Function, delay: number = 3000) => {\n const leaveTimeout = React.useRef({ index: 0 });\n const [isLeaved, setIsLeaved] = React.useState(false);\n\n const mouseLeaveHandler = React.useCallback(() => {\n setIsLeaved(true);\n }, []);\n\n const mouseEnterHandler = React.useCallback(() => {\n setIsLeaved(false);\n }, []);\n\n React.useEffect(() => {\n if (!isLeaved && !leaveTimeout) return;\n\n if (isLeaved) {\n window.clearTimeout(leaveTimeout.current.index);\n leaveTimeout.current.index = window.setTimeout(\n callback,\n delay,\n );\n } else {\n window.clearTimeout(leaveTimeout.current.index);\n leaveTimeout.current.index = 0;\n }\n }, [isLeaved]);\n\n React.useEffect(() => {\n if (!isActive && leaveTimeout.current.index) {\n window.clearTimeout(leaveTimeout.current.index);\n }\n }, [isActive, leaveTimeout.current.index]);\n\n React.useEffect(() => {\n unsubscribeToEvents(mouseLeaveHandler, mouseEnterHandler);\n\n if (!isActive) {\n return () => null;\n }\n\n subscribeToEvents(mouseLeaveHandler, mouseEnterHandler);\n return () => unsubscribeToEvents(mouseLeaveHandler, mouseEnterHandler);\n }, [isActive]);\n};\n\nfunction subscribeToEvents(mouseLeaveHandler: EventListener, mouseEnterHandler: EventListener) {\n document.body.addEventListener('mouseleave', mouseLeaveHandler);\n document.body.addEventListener('mouseenter', mouseEnterHandler);\n}\n\nfunction unsubscribeToEvents(mouseLeaveHandler: EventListener, mouseEnterHandler: EventListener) {\n document.body.removeEventListener('mouseleave', mouseLeaveHandler);\n document.body.removeEventListener('mouseenter', mouseEnterHandler);\n}\n\n\nexport default useMouseLeaveDetector;\n","import React from 'react';\nimport moment from 'moment';\nimport statusIcon from 'components/assets/svg/status_icon.svg';\nimport { Color, ColorStatus } from '_helpers';\nimport { AdvancedTable, AdvancedTableData, ExamApplicationStatus } from 'components';\n\nconst ExamRequirement = ({ examApplicationsList, getList, onRowClick }: IProps) => {\n const initialState: IState = {\n sortOrder: true,\n };\n\n const [sortOrder, setSortOrder] = React.useState(initialState.sortOrder);\n\n const tableHeaders = [\n { fieldName: 'applicantFullName', title: 'ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО' },\n { fieldName: 'applicantEmail', title: 'Почта' },\n { fieldName: 'applicantPhone', title: 'Телефон' },\n { fieldName: 'status', title: 'Результат' },\n ];\n\n const createStatus = (status: ExamApplicationStatus, finalized: boolean) => {\n let text = '';\n let color = Color.Primary;\n if (status === ExamApplicationStatus.Passed) {\n text = finalized ? 'Аккредитация пройдена' : 'Теория пройдена';\n color = finalized ? Color.Primary : Color.Success;\n } else {\n text = 'Аккредитация не пройдена';\n color = finalized ? Color.Primary : Color.Red;\n }\n\n const styledStatus = new ColorStatus(color, text);\n\n return (\n \n {styledStatus.text} {finalized && status !== ExamApplicationStatus.Passed && \"address_icon\"}\n \n );\n };\n\n const createTableData = (\n examApplications: IApplication[],\n ): AdvancedTableData[] => examApplications.map(\n ({\n examApplicationId,\n applicantFullName,\n applicantEmail,\n applicantPhone,\n status,\n finalized,\n }) => ({\n id: examApplicationId,\n columns: [\n applicantFullName,\n applicantEmail,\n applicantPhone,\n createStatus(status, finalized),\n ],\n }),\n );\n\n const handleOrder = async (fieldName: string) => {\n setSortOrder(!sortOrder);\n await getList({ sortField: fieldName, sortOrder });\n };\n\n const handleSearch = (fieldName: string, value: string) => {\n getList({ searchField: fieldName, searchTerm: value });\n };\n\n return (\n \n );\n};\n\ninterface IProps {\n getList: (data: IGetList) => void;\n onRowClick: (applicantId: string) => void;\n examApplicationsList: IApplicationList;\n}\n\ninterface IState {\n sortOrder: boolean;\n}\n\ninterface IGetList {\n examId?: string;\n searchField?: string;\n searchTerm?: string;\n page?: number;\n pageSize?: number;\n sortOrder?: boolean;\n sortField?: string;\n}\n\ninterface IApplicationList {\n items: IApplication[];\n page: number;\n pageSize: number;\n total: number;\n admittedCount: number;\n}\n\ninterface IApplication {\n examApplicationId: string;\n applicantId: string;\n applicantFullName: string;\n applicantPhone: string;\n applicationSubmitDate: moment.Moment;\n applicantEmail: string;\n status: ExamApplicationStatus;\n statusChangeTime: moment.Moment;\n examSessionStatus?: ExamSessionStatus | undefined;\n recommendations?: string;\n finalized: boolean;\n}\n\nenum ExamSessionStatus {\n Active = 'active',\n Completed = 'completed'\n}\n\nexport default ExamRequirement;\n","/* eslint-disable arrow-parens */\nimport { useCallback, useState } from 'react';\n\nconst useLoading = (promiseLikeFunction: (...args: B[]) => Promise, deps: Readonly = []): [boolean, (...args: B[]) => Promise] => {\n const [loading, setLoading] = useState(false);\n\n\n const callback = useCallback((...args) => {\n setLoading(true);\n return promiseLikeFunction(...args)\n .then((r) => {\n setLoading(false);\n return r;\n })\n .catch((r) => {\n setLoading(false);\n throw r;\n });\n }, [promiseLikeFunction, ...deps]);\n\n return [loading, callback];\n};\n\n\nexport default useLoading;\n","import React, { DependencyList, EffectCallback } from 'react';\n\nconst useEffectProcessing = (effect: () => Promise>, deps?: DependencyList, returnFunction?: () => void): boolean => {\n const [processing, setProcessing] = React.useState(false);\n\n React.useEffect(() => {\n setProcessing(true);\n effect()\n .then(() => {\n setProcessing(false);\n })\n .catch(() => setProcessing(false));\n return returnFunction;\n }, deps);\n\n return processing;\n};\n\nexport default useEffectProcessing;\n","/* eslint-disable arrow-parens */\nimport React from 'react';\n\nconst useMultiSearch = (fetch: (payload: T) => void, initialState: T) => {\n const [state, setState] = React.useState(initialState);\n\n const filterSetter = (fieldKey: keyof T) => (value: T[keyof T]) => {\n let newState = { ...state };\n setState((prevState) => {\n newState = {\n ...prevState,\n [fieldKey]: value,\n };\n return newState;\n });\n return newState;\n };\n\n const changeFilterField = (fieldKey: keyof T) => (value: T[keyof T]) => {\n const newForm = filterSetter(fieldKey)(value);\n fetch(newForm);\n };\n\n const changeFilter = (form: Partial) => {\n let newForm = {\n ...state,\n ...form,\n };\n setState((prevState) => {\n newForm = {\n ...prevState,\n ...form,\n };\n return newForm;\n });\n fetch(newForm);\n };\n\n\n return {\n filters: state, changeFilterField, filterSetter, changeFilter,\n };\n};\n\nexport default useMultiSearch;\n","import { useHistory, useLocation } from 'react-router';\n\nconst useGoBack = (): [() => void, string | null] => {\n const { search } = useLocation();\n const { push } = useHistory();\n const from = new URLSearchParams(search).get('from');\n\n return [() => push(`/${from}`), from];\n};\n\nexport default useGoBack;\n","import { useHistory, useLocation } from 'react-router';\n\nconst usePushFrom = (newPathName: string) => {\n const { push } = useHistory();\n const { pathname } = useLocation();\n const search = new URLSearchParams();\n search.set('from', pathname.replace('/', ''));\n\n return [(id: string) => push(`/${newPathName}/${id}?${search.toString()}`)];\n};\n\nexport default usePushFrom;\n","import { IBaseInfo, IPagination } from './models';\nimport { IPaginationData } from './Pagination/Pagination';\n\nexport const EmptyInfo: IBaseInfo = { clear: () => {}, fetch: async () => {}, info: null };\n\nexport const EmptyPagination = { page: 0, pageSize: 0, total: 0 };\n\nexport class PaginationImpl implements IPagination {\n page: number;\n pageSize: number;\n total: number;\n\n constructor(data: IPagination | null = EmptyPagination) {\n const newPaging = data || EmptyPagination;\n this.page = newPaging.page;\n this.pageSize = newPaging.pageSize;\n this.total = newPaging.total;\n }\n\n getPages = () => Math.ceil(this.total / this.pageSize) || 1;\n\n getPaginationData = (): IPaginationData => ({\n pages: this.getPages(),\n page: this.page,\n perPage: this.pageSize,\n })\n}\n","import React, { useEffect, useState, ChangeEvent } from 'react';\nimport { Form, Col, InputGroup } from 'react-bootstrap';\nimport { formDetector } from '_helpers';\nimport cn from 'classnames';\nimport styles from './InputText.module.scss';\nimport _ from 'lodash';\n\nconst InputTotal = ({\n fieldFailures,\n name,\n setRef,\n onChange,\n inputGroupClassNames,\n labelTitle,\n labelColSize,\n labelClassNames,\n withoutLabel,\n inputClassNames,\n inputColSize,\n prependContent,\n disabled,\n value,\n minLength,\n maxLength,\n type,\n placeholder,\n children,\n withoutDetectChanges,\n pattern,\n autoFocus,\n withDarkLabel,\n autoComplete,\n}: Props) => {\n let ref: any;\n\n const [hasError, setHasError] = useState(false);\n\n useEffect(() => {\n if (value && !withoutDetectChanges) {\n formDetector.setChangedInput(name, value);\n }\n\n return () => {\n setHasError(false);\n };\n }, [value]);\n\n useEffect(() => {\n if (fieldFailures && _.has(fieldFailures, name) && fieldFailures[name].length > 0 && !hasError && setRef) {\n setHasError(true);\n setRef(ref);\n } else if (hasError && (!fieldFailures || !_.has(fieldFailures, name) || fieldFailures[name].length === 0)) {\n setHasError(false);\n }\n }, [fieldFailures]);\n\n const handleChangeInput = (event: any) => {\n const { target } = event as ChangeEvent;\n\n if (!withoutDetectChanges) {\n formDetector.setChangedInput(target.name, target.value);\n }\n\n onChange(target.name, target.value);\n };\n\n const onSetRef = (node: any) => {\n ref = node;\n };\n\n return (\n \n {withoutLabel\n ? null\n : (\n \n {labelTitle}\n \n )}\n \n \n {prependContent\n ? (\n \n {prependContent}\n \n )\n : null\n }\n 0)}\n pattern={pattern}\n autoFocus={autoFocus}\n />\n \n {fieldFailures && _.has(fieldFailures, name) && fieldFailures[name].length > 0\n ? fieldFailures[name]\n : null}\n \n \n {children}\n \n \n );\n};\n\nexport default InputTotal;\n\nexport interface Props {\n value: string;\n name: string;\n onChange: (name: string, value: string) => void;\n\n labelTitle?: string;\n withoutLabel?: boolean;\n labelColSize?: number;\n inputColSize?: number;\n\n labelClassNames?: string;\n inputClassNames?: string;\n inputGroupClassNames?: string;\n withDarkLabel?: boolean;\n\n prependContent?: string | number | JSX.Element;\n\n fieldFailures?: IFieldFailures | null;\n setRef?: (node: HTMLInputElement | null) => void;\n\n minLength?: number;\n maxLength?: number;\n\n type?: string;\n disabled?: boolean;\n placeholder?: string;\n children?: React.ReactNode;\n withoutDetectChanges?: boolean;\n pattern?: string;\n autoComplete?: string;\n autoFocus?: boolean;\n}\n\ninterface IFieldFailures {\n [key: string]: string;\n}\n","import React, { CSSProperties } from 'react';\nimport { EmptySection } from 'components';\nimport { Table } from 'react-bootstrap';\nimport styles from './SimpleTable.module.scss';\nimport Pagination, { IPaginationData } from '../../Pagination/Pagination';\nimport EmptyListIcon from 'components/assets/svg/news_icon.svg';\nimport EmptyUsersListIcon from 'components/assets/svg/group.svg';\n\nconst SimpleTable = ({\n tableRows,\n handleRowClick,\n tableCellClassName,\n tableHeaders,\n handleOrder,\n placeholderIcon,\n placeholderTitle,\n placeholderText,\n tableClassName,\n ...props\n}: TableProps) => {\n const renderTableItem = () => tableRows.map((item, num) => (\n handleRowClick(item.id)} data-test-exam-id={item.id}>\n {item.columns.map((x, i) => {x})}\n \n ));\n\n const renderTableHeaders = () => tableHeaders.map((field, i) => (\n \n {field.title}\n {field.fieldName !== '' && handleOrder\n ? (
handleOrder(`${field.fieldName}`)} />)\n : null\n }\n \n ));\n\n if (tableRows.length === 0) {\n return (\n \n );\n }\n return (\n <>\n \n \n \n {renderTableHeaders()}\n \n \n \n {renderTableItem()}\n \n
\n {!!(props.pagination && props.onPagination) && (\n \n )}\n \n );\n};\n\nexport default SimpleTable;\n\nexport interface SimpleTableHeader {\n title: string;\n columnStyles?: CSSProperties;\n fieldName?: string;\n}\n\nexport interface SimpleTableRow {\n id: string | number;\n columns: (string | number | JSX.Element)[];\n}\n\ninterface TableProps {\n users?: boolean;\n tableClassName?: string;\n tableRows: SimpleTableRow[];\n tableHeaders: SimpleTableHeader[];\n handleRowClick: (itemId: string | number) => void;\n handleOrder?: (fieldName: string) => void;\n placeholderIcon?: string;\n placeholderTitle?: string;\n placeholderText?: string;\n tableCellClassName?: string;\n onPagination?: (data: IPaginationData) => void;\n pagination?: IPaginationData;\n paginationClassName?: string;\n}\n","import React, { useEffect } from 'react';\nimport {\n Card,\n AdvancedTable,\n AdvancedTableData,\n AdvancedTableHeader,\n PaginationData,\n WarningModal,\n IEmptySectionProps,\n AnimatedTabs,\n} from 'components';\nimport { Button, Tab } from 'react-bootstrap';\nimport { ApiError } from '_helpers/errors/ApiError';\nimport { formatPhoneNumber } from '_helpers';\nimport AcUserForm, { IUserDetail } from './UserForm';\nimport userPlaceholderIcon from 'components/assets/svg/main/ac_admin_empty_table.svg';\n\nconst UsersPage = ({\n getList,\n getUserDetail,\n handleClickFormClose,\n submitUserForm,\n removeUser,\n repeatInvite,\n showForm,\n userList,\n apiError,\n userDetail,\n loading,\n withoutTabs,\n withoutBackIcon,\n}: Props) => {\n useEffect(() => {\n const fetch = async () => {\n setProcessing(true);\n await getList({});\n setProcessing(false);\n };\n\n fetch();\n }, []);\n\n const initialState: State = {\n showForm: false,\n showWarning: false,\n deletedId: null,\n listSortOrder: true,\n firstRun: true,\n };\n\n const [activeTab, setActiveTab] = React.useState(TabKey.Info);\n const [processing, setProcessing] = React.useState(false);\n const [showWarning, setShowWarning] = React.useState(initialState.showWarning);\n const [deletedId, setDeletedId] = React.useState(initialState.deletedId);\n const [listSortOrder, setListSortOrder] = React.useState(initialState.listSortOrder);\n const [firstRun, setFirstRun] = React.useState(initialState.firstRun);\n\n\n const onOpenForm = async (id: string) => {\n await getUserDetail(id);\n };\n\n const onClose = () => {\n handleClickFormClose();\n setListSortOrder(true);\n };\n\n const formSubmit = (userDetails: IUserDetail) => {\n submitUserForm(userDetails);\n };\n\n const onRemoveUser = () => {\n if (userDetail) {\n setDeletedId(userDetail.id);\n setShowWarning(true);\n }\n };\n\n const onHideWarningModal = () => {\n setDeletedId(null);\n setShowWarning(false);\n };\n\n const onSubmitWarningModal = async () => {\n if (deletedId) {\n const res = await removeUser(deletedId);\n\n if (res) {\n handleClickFormClose();\n }\n }\n setShowWarning(false);\n };\n\n const handleListOrder = (fieldName: string) => {\n setListSortOrder(!listSortOrder);\n getList({ sortField: fieldName, sortOrder: listSortOrder });\n };\n\n const handleListSearch = (fieldName: string, value: string) => {\n setFirstRun(false);\n getList({ searchField: fieldName, searchTerm: value });\n };\n\n const warningModalProps = {\n title: 'Удалить администратора?',\n show: showWarning,\n onHide: onHideWarningModal,\n onAccess: onSubmitWarningModal,\n };\n\n const emptyDataProps: IEmptySectionProps = {\n placeholderTitle: 'Нет добавленных администраторов',\n placeholderText: 'Вам необходимо добавить, как минимум, одного администратора АК',\n placeholderButtonText: 'Добавить администратора',\n onButtonClick: () => onOpenForm('new'),\n placeholderIcon: userPlaceholderIcon,\n };\n\n const listTableHeaders: AdvancedTableHeader[] = [\n { fieldName: 'fullName', title: 'ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО', columnStyles: { width: '60%' } },\n { fieldName: 'email', title: 'ПОЧТА', columnStyles: { width: '40%' } },\n { fieldName: 'phone', title: 'ТЕЛЕФОН', columnStyles: { minWidth: '10rem' } },\n ];\n\n const repeatInviteFunc = repeatInvite && userDetail && !userDetail.emailConfirmed ? () => repeatInvite(userDetail.id) : undefined;\n\n const createListTableData = (): AdvancedTableData[] => (userList ? userList.items.map(user => ({\n id: user.id,\n columns: [\n user.fullName,\n user.email,\n formatPhoneNumber(user.phone) || user.phone,\n ],\n })) : []);\n\n const renderUserDetails = () => (\n \n );\n\n const createHederButton = () => (userList && userList.items.length ? : null);\n\n return (\n
\n {!showForm && firstRun ? (\n \n getList({ page: event.page, pageSize: event.perPage })}\n handleOrder={handleListOrder}\n handleRowClick={onOpenForm}\n handleSearch={handleListSearch}\n pageSize={(userList && userList.pageSize) || 10}\n total={(userList && userList.total) || 1}\n page={(userList && userList.page) || 1}\n {...emptyDataProps}\n />\n \n ) : null}\n\n {showForm ? (\n \n {!withoutTabs ? (\n setActiveTab(key as TabKey)}\n >\n \n {renderUserDetails()}\n \n \n ) : renderUserDetails()}\n \n \n ) : null}\n
\n );\n};\n\nexport default UsersPage;\n\nexport interface IList {\n items: User[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport interface IGetList {\n acIdQuery?: string;\n searchField?: string;\n searchTerm?: string;\n page?: number;\n pageSize?: number;\n sortOrder?: boolean;\n sortField?: string;\n}\n\ninterface Props {\n showForm: boolean;\n userList: IList | null;\n userDetail: IUserDetail | null;\n apiError: ApiError | null;\n loading?: boolean;\n withoutTabs?: boolean;\n withoutBackIcon?: boolean;\n getList: (data: IGetList) => void;\n getUserDetail: (userId: string) => void;\n submitUserForm: (userDetail: IUserDetail) => void;\n handleClickFormClose: () => void;\n removeUser: (userId: string) => Promise;\n repeatInvite?: (userId: string) => void;\n}\n\ninterface State {\n showForm: boolean;\n showWarning: boolean;\n deletedId: string | null;\n listSortOrder: boolean;\n firstRun: boolean;\n}\n\ninterface User {\n id: string;\n fullName: string;\n email: string;\n phone: string;\n}\n\nenum TabKey {\n Info = 'info',\n}\n","import React from 'react';\nimport {\n Card,\n Checkbox,\n PhoneInput,\n InputPassword,\n LoaderBtn,\n Captcha,\n InputText,\n} from 'components';\nimport {\n Col,\n FormGroup,\n FormLabel,\n Form,\n} from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nimport { RegExpConst } from '_helpers';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\nimport _ from 'lodash';\nimport styles from './AuthenticationForm.module.scss';\n\nconst InitFormErrors: IFieldsError = {\n phone: '',\n password: '',\n captcha: '',\n};\n\nconst InitFormData: IFormData = {\n phone: '',\n password: '',\n captcha: '',\n rememberMe: false,\n};\n\nconst AuthenticationForm = ({\n apiError,\n onLogin,\n title,\n subTitle,\n resetPasswordLink,\n registerLink,\n withRegister,\n withEmail,\n withPhone,\n withoutForgotPassword,\n}: IProps) => {\n const [formData, setFormData] = React.useState(InitFormData);\n const [formFieldErrors, setFormFieldErrors] = React.useState(InitFormErrors);\n const [processing, setProcessing] = React.useState(false);\n const fieldFailures = formFieldErrors as object as { [key: string]: string };\n\n const getFieldErrorFromApiError = (fieldName: string, errors: IApiError | null) => {\n if (!errors || !errors.failures) return '';\n if (_.has(errors.failures, fieldName)) return errors.failures[fieldName].join(', ');\n return '';\n };\n\n React.useEffect(() => {\n const phoneError = getFieldErrorFromApiError('email', apiError);\n const emailError = getFieldErrorFromApiError('email', apiError);\n const passwordError = getFieldErrorFromApiError('password', apiError);\n\n setProcessing(false);\n setFormFieldErrors({\n phone: phoneError,\n password: passwordError,\n email: emailError,\n });\n\n return () => setProcessing(false);\n }, [apiError]);\n\n const checkValidationErrors = (data: IFormData): IFieldsError => {\n const phoneError = ((data.phone && /^[0-9]{10}$/.test(data.phone)) || !withPhone) ? '' : 'Неверный формат телефона';\n const emailError = ((data.email && RegExpConst.EMAIL.test(data.email)) || !withEmail) ? '' : 'Неверный формат email';\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? data.captcha && data.captcha.length === 4 : true;\n let captchaError = '';\n let passwordError = '';\n\n if (data.password.length === 0) {\n passwordError = 'Заполните поле';\n } else if (data.password.length < 6) {\n passwordError = 'Минимальная длина пароля 6 символов';\n }\n\n if (!isCaptchaValid) {\n captchaError = 'Длина цифр с картинки должна быть 4 символа';\n }\n\n return {\n phone: phoneError,\n email: emailError,\n password: passwordError,\n captcha: captchaError,\n };\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n const validResult = checkValidationErrors(formData);\n\n if ((validResult.phone && validResult.phone.length > 0) || validResult.password.length > 0 || (validResult.captcha && validResult.captcha.length > 0)) {\n setFormFieldErrors({ ...validResult });\n return;\n }\n\n setFormData({ ...formData, captcha: '' });\n setProcessing(true);\n onLogin && await onLogin(formData);\n };\n\n const handleInputChange = (name: string, value: string) => {\n setFormFieldErrors({ ...formFieldErrors, [name]: '' });\n setFormData({ ...formData, [name]: value });\n };\n\n return (\n <>\n \n
\n \n \n Войти\n \n \n setFormData({ ...formData, rememberMe: !formData.rememberMe })}\n />\n \n
\n )}\n >\n {withEmail && (\n \n )}\n {withPhone && (\n \n )}\n \n Пароль\n handleInputChange(e.target.name || '', e.target.value ? e.target.value.toString() : '')}\n value={formData.password}\n isInvalid={!!formFieldErrors.password}\n />\n \n {formFieldErrors.password}\n \n \n {!withoutForgotPassword && (\n
\n Забыли пароль?\n
\n )}\n setFormData({ ...formData, captcha })}\n />\n \n {apiError && apiError.failures && apiError.failures.captcha && apiError.message}\n \n \n \n \n {withRegister && (\n
\n Еще нет аккаунта? Регистрация\n
\n )}\n \n );\n};\n\ninterface IProps {\n apiError: IApiError | null;\n onLogin?: (data: IFormData) => void;\n title?: string;\n subTitle?: string;\n resetPasswordLink?: string;\n withEmail?: boolean;\n withPhone?: boolean;\n withRegister?: boolean;\n withoutForgotPassword?: boolean;\n registerLink?: string;\n}\n\ninterface IFieldsError {\n password: string;\n captcha?: string;\n phone?: string;\n email?: string;\n}\n\ninterface IFormData {\n password: string;\n rememberMe: boolean;\n captcha?: string;\n phone?: string;\n email?: string;\n}\n\nexport default AuthenticationForm;\n","import React from 'react';\nimport styles from './ExtendedSelect.module.scss';\nimport { OptionProps, OptionTypeBase, Styles } from 'react-select';\n// eslint-disable-next-line import/no-unresolved\nimport { isArray } from 'util';\nimport { Color, formDetector } from '_helpers';\nimport classNames from 'classnames';\nimport Creatable from 'react-select/creatable';\nimport AddIcon from '../../assets/svg/add_icon.svg';\n\nconst ExtendedSelect = ({\n value,\n name,\n withoutDetectChanges,\n withoutStrictValue,\n isInvalid,\n options,\n multi,\n onChangeMulti,\n onChange,\n className,\n noOptionsMessage,\n disabled,\n placeholder,\n notSelectedOptions,\n onMenuOpen,\n subText,\n invalidTitle,\n isClearable,\n smSize,\n ...props\n}: Props) => {\n React.useEffect(() => {\n if (value && !isArray(value) && !withoutDetectChanges) {\n formDetector.setChangedInput(name, value);\n }\n }, [value]);\n\n const customStyle: Styles = {\n control: base => ({\n ...base,\n border: isInvalid ? '1px solid #dc3545 !important' : '',\n }),\n option: (base: React.CSSProperties, { data }: OptionProps): React.CSSProperties => ({\n ...base,\n color: data.color && String(data.color).startsWith('--') ? `var(${data.color}) !important` : data.color,\n }),\n };\n\n const multiOptions: string[] | null = value && isArray(value) ? value as string[] : null;\n const selectedOptions = options.filter(x => (multiOptions && multiOptions.length && multiOptions.find(option => x.value === option)));\n const findValue = multi && Array.isArray(value)\n ? options.filter(x => value.includes(x.value))\n : options.find(x => x.value === value);\n\n const onChangeSelect = (e: any) => {\n if (multi && onChangeMulti) {\n onChangeMulti(e);\n } else {\n onChange({\n name,\n value: e && e.value && e.value as string,\n });\n if (!withoutDetectChanges) {\n formDetector.setChangedInput(name, e.value as string);\n }\n }\n };\n\n return (\n
\n !!props.creatable}\n formatCreateLabel={() => (\n \n \"add_icon\"\n r && r.style.setProperty('color', 'var(--primary)', 'important')}>{props.createLabel}\n \n )}\n onCreateOption={props.onCreateOption}\n createOptionPosition={props.createOptionPosition || 'first'}\n noOptionsMessage={() => noOptionsMessage || 'Нет опций'}\n isDisabled={disabled}\n isMulti={multi}\n isClearable={isClearable}\n styles={customStyle}\n name={name}\n className={classNames('react-select-container', smSize && 'react-select-container_size_sm')}\n classNamePrefix=\"react-select\"\n defaultValue={selectedOptions}\n value={withoutStrictValue ? findValue : (findValue || null)}\n onChange={onChangeSelect}\n options={notSelectedOptions || options}\n placeholder={placeholder || 'Выберите из списка'}\n onMenuOpen={onMenuOpen}\n />\n {subText ? (\n
\n {subText}\n
\n )\n : null}\n {isInvalid && invalidTitle ? (\n
\n {invalidTitle || null}\n
\n )\n : null}\n
\n );\n};\n\nexport default ExtendedSelect;\n\nexport interface IOption {\n value: string;\n label: string;\n color?: Color | string;\n}\n\nexport interface ISelectEvent {\n name: string;\n value: string;\n}\n\ninterface Props {\n creatable?: boolean;\n createLabel?: string;\n onCreateOption?: (inputValue: string) => void;\n createOptionPosition?: 'first' | 'last';\n name: string;\n options: IOption[];\n notSelectedOptions?: IOption[];\n value?: string | string[] | null;\n className?: string;\n placeholder?: string;\n disabled?: boolean;\n isInvalid?: boolean;\n invalidTitle?: string;\n subText?: string;\n noOptionsMessage?: string;\n multi?: boolean;\n isClearable?: boolean;\n withoutDetectChanges?: boolean;\n withoutStrictValue?: boolean;\n smSize?: boolean;\n onChange: (event: ISelectEvent) => void;\n onChangeMulti?: (event: ISelectEvent[]) => void;\n onMenuOpen?: () => void;\n noUppercase?: boolean;\n}\n","import * as React from 'react';\nimport moment from 'moment';\nimport { IApplicantQualification, IApplicantQualificationDetails } from 'components/models';\nimport {\n Card, DatePeriodColumn, renderRow, SimpleTable, StatusColumn, WarningModal,\n} from 'components';\nimport QualificationsEmptyIcon from 'components/assets/svg/certificate.svg';\nimport { Color, ColorStatus } from '_helpers';\n\nconst ApplicantQualifications: React.FC = ({ qualifications, details, ...props }) => {\n const [showInfo, setShowInfo] = React.useState(false);\n\n const tableHeaders = [\n { title: 'СПЕЦИАЛЬНОСТЬ' },\n { title: 'СРОК ДЕЙСТВИЯ' },\n { title: 'СТАТУС' },\n ];\n\n const getStatus = (expireDate: moment.Moment) => (\n \n );\n\n const tableRow = qualifications ? qualifications.map(q => ({\n id: q.examApplicationId,\n columns: [\n q.title,\n ,\n getStatus(q.expireDate),\n ],\n })) : [];\n\n\n return qualifications ? (\n \n {\n props.onChooseQualification(id);\n setShowInfo(true);\n }}\n placeholderTitle=\"Нет ничего в списке\"\n placeholderText=\"Здесь будут отображаться подтвержденные специальности\"\n placeholderIcon={QualificationsEmptyIcon}\n tableClassName=\"mb-80\"\n />\n\n {\n setShowInfo(false);\n props.onClearQualification();\n }}\n >\n {!!details && [\n renderRow('СПЕЦИАЛЬНОСТЬ', details.title),\n renderRow('РЕГИОН', details.regionName),\n renderRow('ДАТА ПРИСВОЕНИЯ', details.issueDate.clone().local().format('DD.MM.YYYY')),\n renderRow('ДАТА ОКОНЧАНИЯ', details.expireDate.clone().local().format('DD.MM.YYYY')),\n renderRow('СТАТУС', getStatus(details.expireDate)),\n ]}\n \n \n ) : null;\n};\n\ninterface IProps {\n qualifications: IApplicantQualification[] | null;\n details: IApplicantQualificationDetails | null;\n onChooseQualification: (id: string) => void;\n onClearQualification: () => void;\n cardTitle?: string | null;\n cardCategory?: string | null;\n}\n\nexport default ApplicantQualifications;\n","import React from 'react';\nimport {\n Card,\n LoaderBtn,\n Captcha,\n PhoneInput,\n} from 'components';\nimport { Col, Form, Button } from 'react-bootstrap';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\nimport { Link } from 'react-router-dom';\n\nconst ResetPasswordFirstStep = ({\n sendCode, goNext, goBack, apiError, initPhone,\n}: IProps) => {\n const [phone, setPhone] = React.useState(initPhone);\n const [phoneValid, setPhoneValid] = React.useState(true);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [processing, setProcessing] = React.useState(false);\n\n const doValidate = (): boolean => {\n const isPhoneValid = /^[0-9]{10}$/.test(phone);\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n\n setPhoneValid(isPhoneValid);\n setCaptchaValid(isCaptchaValid);\n\n return isPhoneValid && isCaptchaValid;\n };\n\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n if (!doValidate()) return;\n\n setProcessing(true);\n const phoneExists = await sendCode(phone, captcha);\n setProcessing(false);\n\n if (phoneExists) {\n goNext();\n }\n };\n\n const onChangePhone = (name: string, value: string) => {\n setPhone(value);\n setPhoneValid(true);\n };\n\n return (\n <>\n \n
\n \n \n Продолжить\n \n \n \n )}\n >\n <>\n
\n для восстановления доступа в\n личный кабинет\n
\n\n \n \n \n {apiError && !(apiError.failures && apiError.failures.phone) && apiError.message}\n \n \n \n \n \n
\n Ещё нет аккаунта? Регистрация\n
\n \n );\n};\n\nexport default ResetPasswordFirstStep;\n\ninterface IProps {\n apiError?: IApiError | null;\n initPhone: string;\n sendCode: (phone: string, captcha?: string) => Promise;\n goNext: () => void;\n goBack: () => void;\n}\n\ninterface IStatus {\n wasSent?: boolean;\n waitingSeconds?: number;\n}\n","import React from 'react';\nimport { Card, LoaderBtn, Captcha } from 'components';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\nimport {\n Col,\n FormGroup,\n FormLabel,\n FormControl,\n Form,\n Button,\n} from 'react-bootstrap';\n\nconst ResetPasswordSecondStep = ({\n phone, checkCode, resendCode, goBack, goNext, waitingSeconds, apiError,\n}: IProps) => {\n const [code, setCode] = React.useState('');\n const [codeValid, setCodeValid] = React.useState(true);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [timer, setTimer] = React.useState(waitingSeconds);\n const [processing, setProcessing] = React.useState(false);\n\n const newPhone = phone.replace(/\\D+/g, '');\n const phoneLetters = newPhone.split('');\n const number = `+7 ${phoneLetters.slice(0, 3).join('')}-***-**-${phoneLetters.slice(8).join('')}`;\n\n const doValidate = (): boolean => {\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n const isCodeValid = code.length === 4;\n\n setCaptchaValid(isCaptchaValid);\n setCodeValid(isCodeValid);\n\n return isCaptchaValid && isCodeValid;\n };\n\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!doValidate()) return;\n\n setProcessing(true);\n const codeExists = await checkCode(phone, code, captcha);\n setProcessing(false);\n setCaptcha('');\n setCode('');\n\n if (codeExists) {\n goNext();\n }\n };\n\n const resendVerificationCode = async () => {\n setCodeValid(true);\n setCode('');\n\n const status = await resendCode();\n\n if (status && status.waitingSeconds) {\n setTimer(status.waitingSeconds);\n }\n };\n\n const calcTimer = () => {\n if (timer) {\n setTimer(timer - 1);\n }\n };\n\n React.useEffect(() => {\n const id = setTimeout(calcTimer, 1000);\n\n return () => clearTimeout(id);\n }, [timer, waitingSeconds]);\n\n return (\n \n
\n \n \n Продолжить\n \n \n Назад\n \n \n )}\n >\n
\n На номер {number} был отправлен код для подтверждения.\n
\n\n \n Введите код из СМС\n ) => setCode((e.target as HTMLInputElement).value)}\n value={code}\n isInvalid={!codeValid || !!(apiError && apiError.failures && apiError.failures.verificationCode)}\n maxLength={4}\n type=\"text\"\n />\n \n {codeValid ? (apiError && apiError.failures && apiError.failures.verificationCode) : 'Длина кода должна составлять 4 символа'}\n \n\n {timer ? (\n
Отправить повторно через {timer} секунд
\n ) : (\n
\n Отправить код повторно\n
\n )\n }\n
\n \n \n {apiError && !(apiError.failures && apiError.failures.verificationCode) && apiError.message}\n \n \n \n \n );\n};\n\nexport default ResetPasswordSecondStep;\n\ninterface IProps {\n apiError?: IApiError | null;\n phone: string;\n waitingSeconds: number;\n checkCode: (phone: string, code: string, captcha?: string) => Promise;\n resendCode: () => Promise;\n goNext: () => void;\n goBack: () => void;\n}\n\ninterface IStatus {\n wasSent?: boolean;\n waitingSeconds?: number;\n}\n","import React from 'react';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\nimport {\n Card,\n InputPassword,\n LoaderBtn,\n Captcha,\n} from 'components';\nimport {\n Col,\n FormGroup,\n FormLabel,\n Form,\n} from 'react-bootstrap';\n\nconst ResetPasswordThirdStep = ({ apiError, authProcessing, resetPassword }: IProps) => {\n const [password, setPassword] = React.useState('');\n const [passwordValid, setPasswordValid] = React.useState(true);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n\n const doValidate = (): boolean => {\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n const isPasswordValid = password.length >= 6;\n\n setCaptchaValid(isCaptchaValid);\n setPasswordValid(isPasswordValid);\n\n return isCaptchaValid && isPasswordValid;\n };\n\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!doValidate()) return;\n\n await resetPassword(password, captcha);\n };\n\n return (\n <>\n \n
\n \n \n {apiError && apiError.message}\n \n \n Установить пароль\n \n \n )}\n >\n
\n Придумайте новый пароль длиной не менее 6 символов.\n
\n\n \n Пароль\n ) => setPassword((e.target as HTMLInputElement).value)}\n isInvalid={!passwordValid}\n />\n {!passwordValid && (\n \n Минимальная длина пароля должна быть не менее 6-ти символов\n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default ResetPasswordThirdStep;\n\ninterface IProps {\n apiError?: IApiError | null;\n authProcessing: boolean;\n resetPassword: (password: string, captcha?: string) => void;\n}\n","import React from 'react';\nimport { Button, ButtonProps } from 'react-bootstrap';\nimport { Loader } from 'components';\nimport styles from './LoaderBtn.module.scss';\nimport cn from 'classnames';\n\nconst LoaderBtn = ({\n type, loading, disabled, className, onClick, variant, children,\n}: IProps) => (\n \n
\n {children}\n
\n\n {loading ? : null}\n \n );\n\n\nexport default LoaderBtn;\n\ninterface IProps {\n disabled?: boolean;\n className?: string;\n variant?: ButtonProps['variant'];\n type?: ButtonProps['type'];\n loading?: boolean;\n children?: React.ReactNode;\n onClick?: () => void;\n}\n","import React from 'react';\nimport styles from './EmptySection.module.scss';\nimport { Button } from 'react-bootstrap';\nimport cn from 'classnames';\n\nconst EmptySection: React.FC = (\n {\n placeholderTitle, placeholderText, placeholderButtonText, onButtonClick, placeholderIcon,\n className,\n },\n) => (\n
\n {placeholderIcon ? \"placeholder\" : null}\n
\n {placeholderTitle}\n
\n
\n {placeholderText}\n
\n {placeholderButtonText && (\n \n )}\n
\n);\n\nexport default EmptySection;\n\nexport interface IProps {\n onButtonClick?: () => void;\n placeholderTitle: string;\n placeholderText: string;\n placeholderButtonText?: string;\n placeholderIcon?: string;\n className?: string;\n}\n","export interface ITheoreticalQuestion {\n number: number;\n active: boolean;\n text: string;\n type: TheoreticalQuestionType;\n openAnswer?: string;\n id?: string;\n multipleChoiceAnswers?: ITheoreticalAnswer[];\n matchingOrOrderingAnswers?: IMatchingTheoreticalAnswers;\n}\n\nexport interface IMatchingTheoreticalAnswer {\n number: number;\n text: string;\n}\n\nexport interface IFieldsError {\n [key: string]: string;\n}\n\nexport enum TheoreticalQuestionType {\n MultipleChoiceTheoretical = 'multipleChoiceTheoretical',\n MatchingTheoretical = 'matchingTheoretical',\n OpenAnswerTheoretical = 'openAnswerTheoretical',\n OrderingTheoretical = 'orderingTheoretical',\n}\n\nexport interface ITheoreticalAnswer {\n number: number;\n text: string;\n correct: boolean;\n}\n\ninterface IMatchingTheoreticalAnswers {\n left: IMatchingTheoreticalAnswer[];\n right: IMatchingTheoreticalAnswer[];\n correct: { [key: string]: number };\n leftAnswersHeader?: string;\n rightAnswersHeader?: string;\n}\n","import React from 'react';\nimport { Card } from 'components';\n\nclass ErrorBoundary extends React.Component<{}, IState> {\n state: IState = {\n hasError: false,\n error: null,\n };\n\n static getDerivedStateFromError(error: Error): IState {\n // Обновить состояние с тем, чтобы следующий рендер показал запасной UI.\n return { hasError: true, error };\n }\n\n public componentDidCatch(error: Error, info: object) {\n // Можно также сохранить информацию об ошибке в соответствующую службу журнала ошибок\n logErrorToMyService(error, info);\n }\n\n public render() {\n if (this.state.hasError) {\n // Можно отрендерить запасной UI произвольного вида\n return (\n \n {this.state.error\n ? (\n
\n

{this.state.error.name}

\n

{this.state.error.message}

\n

{this.state.error.stack}

\n
\n )\n : null}\n \n );\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n\nconst logErrorToMyService = (error: Error, info: object) => {\n console.log('TCL: logErrorToMyService -> info', info);\n console.log('TCL: logErrorToMyService -> error', error);\n};\n\ninterface IState {\n hasError: boolean;\n error: Error | null;\n}\n","import React from 'react';\nimport {\n InputText,\n ExtendedSelect,\n DatePicker,\n LoaderBtn,\n Textarea,\n} from 'components';\nimport { IApplicantPassport, IApplicantOtherIdentity } from 'components/models';\nimport { IdentityDocType, IdentityDocTypeTitles } from 'components/enums';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport { Form, Col, Button } from 'react-bootstrap';\nimport styles from './Identification.module.scss';\nimport moment from 'moment';\nimport cn from 'classnames';\nimport _ from 'lodash';\n\nconst Identification = ({\n apiError,\n onlyWatch,\n stateData,\n buttonText,\n onSubmitPassport,\n onSubmitOther,\n onCancel,\n loading,\n withoutSubmitButton,\n}: IProps) => {\n const initErrors: IInitErrors = {\n identityDocType: '',\n serialNumber: '',\n issuedBy: '',\n dateOfIssue: '',\n registrationAddress: '',\n title: '',\n data: '',\n };\n const [validErrors, setValidErrors] = React.useState(initErrors);\n const [processing, setProcessing] = React.useState(false);\n\n // passport\n const [identityDocType, setIdentityDocType] = React.useState(IdentityDocType.Passport);\n const [serialNumber, setSerialNumber] = React.useState('');\n const [issuedBy, setIssuedBy] = React.useState('');\n const [dateOfIssue, setDateOfIssue] = React.useState(undefined);\n const [registrationAddress, setRegistrationAddress] = React.useState('');\n\n // other\n const [data, setData] = React.useState('');\n\n const docTypeOptions = Object.keys(IdentityDocTypeTitles).map(k => ({\n value: k,\n label: IdentityDocTypeTitles[k as keyof typeof IdentityDocTypeTitles],\n }));\n\n React.useEffect(() => {\n if (stateData && stateData.passport) {\n if (stateData.passport.serialNumber) {\n setIdentityDocType(IdentityDocType.Passport);\n setSerialNumber(stateData.passport.serialNumber);\n setIssuedBy(stateData.passport.issuedBy);\n setDateOfIssue(stateData.passport.dateOfIssue);\n setRegistrationAddress(stateData.passport.registrationAddress);\n setData('');\n }\n }\n\n if (stateData && stateData.otherIdentity) {\n setIdentityDocType(IdentityDocType.Residence);\n setData(stateData.otherIdentity.data);\n setSerialNumber('');\n setIssuedBy('');\n setDateOfIssue(undefined);\n setRegistrationAddress('');\n }\n }, [stateData]);\n\n React.useEffect(() => {\n if (apiError && apiError.failures) {\n const errors = apiError.failures;\n\n for (const key in errors) {\n if (Object.prototype.hasOwnProperty.call(errors, key) && errors[key]) {\n const error = errors[key].join(',');\n const newErrors = validErrors;\n newErrors[key] = error;\n\n setValidErrors({ ...newErrors });\n }\n }\n }\n }, [apiError, validErrors]);\n\n const handleDateChange = (val: string, momentDate: moment.Moment) => {\n setDateOfIssue(momentDate);\n setValidErrors({ ...validErrors, dateOfIssue: '' });\n };\n\n const checkFieldsErrors = (submitData: IApplicantPassport | IApplicantOtherIdentity) => _.mapValues(submitData, (val, key) => {\n if (key === 'dateOfIssue' && !val) return 'Обязательное поле для заполнения';\n if (val === '') return 'Обязательное поле для заполнения';\n return '';\n });\n\n const isValidFormData = (fieldsError: IInitErrors): boolean => _.values(fieldsError).every(e => e.length === 0);\n\n const submit = async (e: React.FormEvent) => {\n e.preventDefault();\n let subData: IApplicantPassport | IApplicantOtherIdentity;\n\n if (identityDocType === IdentityDocType.Passport && onSubmitPassport && dateOfIssue !== undefined) {\n subData = {\n serialNumber,\n issuedBy,\n dateOfIssue,\n registrationAddress,\n };\n\n const errors = checkFieldsErrors(subData) as IInitErrors;\n setValidErrors(errors);\n\n if (isValidFormData(errors)) {\n setProcessing(true);\n await onSubmitPassport(subData);\n setProcessing(false);\n }\n } else if (identityDocType !== IdentityDocType.Passport && onSubmitOther) {\n subData = {\n data,\n };\n\n const errors = checkFieldsErrors(subData) as IInitErrors;\n setValidErrors(errors);\n\n if (isValidFormData(errors)) {\n setProcessing(true);\n await onSubmitOther(subData, identityDocType);\n setProcessing(false);\n }\n }\n };\n\n return (\n
\n \n \n \n ТИП ДОКУМЕНТА\n \n \n \n {\n setIdentityDocType(e.value as IdentityDocType);\n setValidErrors(initErrors);\n }}\n disabled={onlyWatch}\n />\n {validErrors.identityDocType}\n \n \n {identityDocType === IdentityDocType.Passport ? (\n <>\n {\n setSerialNumber(value);\n setValidErrors({ ...validErrors, serialNumber: '' });\n }}\n labelTitle=\"СЕРИЯ/НОМЕР\"\n labelColSize={2}\n inputColSize={4}\n disabled={onlyWatch}\n fieldFailures={validErrors}\n inputClassNames=\"p-0\"\n />\n \n \n \n КЕМ ВЫДАН\n \n \n \n {\n setIssuedBy(value);\n setValidErrors({ ...validErrors, issuedBy: '' });\n }}\n validErrors={validErrors}\n disabled={onlyWatch}\n />\n \n \n \n \n \n ДАТА ВЫДАЧИ\n \n \n \n \n {validErrors.dateOfIssue}\n \n \n \n \n \n АДРЕС РЕГИСТРАЦИИ\n \n \n \n {\n setRegistrationAddress(value);\n setValidErrors({ ...validErrors, registrationAddress: '' });\n }}\n validErrors={validErrors}\n disabled={onlyWatch}\n />\n \n \n \n ) : (\n <>\n \n \n \n ДАННЫЕ ДОКУМЕНТА\n \n \n \n {\n setData(value);\n setValidErrors({ ...validErrors, data: '' });\n }}\n validErrors={validErrors}\n placeholder=\"Укажите полную информацию о документе, включая серию/номер, дату выдачи, кем выдан итп.\"\n disabled={onlyWatch}\n />\n \n \n \n )}\n {!onlyWatch && !withoutSubmitButton && (\n \n \n {buttonText || 'Сохранить'}\n \n {onCancel && (\n \n \n \n )}\n \n )}\n \n );\n};\n\nexport default Identification;\n\ninterface IProps {\n apiError?: IApiError | null;\n stateData: IStateData | null;\n onlyWatch?: boolean;\n buttonText?: string;\n loading?: boolean;\n withoutSubmitButton?: boolean;\n onSubmitPassport?: (data: IApplicantPassport) => void;\n onSubmitOther?: (data: IApplicantOtherIdentity, type: IdentityDocType) => void;\n onCancel?: () => void;\n}\n\ninterface IStateData {\n passport?: IApplicantPassport;\n otherIdentity?: IApplicantOtherIdentity;\n}\n\ninterface IInitErrors {\n identityDocType: string;\n serialNumber: string;\n issuedBy: string;\n dateOfIssue: string;\n registrationAddress: string;\n title: string;\n data: string;\n [key: string]: string;\n}","import React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { Card } from 'components';\nimport { ApiError } from '_helpers/errors/ApiError';\nimport errorIcon from 'components/assets/svg/error_icon.svg';\nimport styles from './ErrorPlaceholder.module.scss';\nimport _ from 'lodash';\n\nconst ErrorPlaceholder = ({ placeholderIcon, apiError, withCard }: IProps) => {\n const renderBody = () => (\n
\n \"placeholder\"\n
\n {`Статус код: ${apiError.code}`}\n
\n
\n {apiError.message}\n
\n {apiError.failures && (\n _.keys(apiError.failures).map((k, i) => (\n
\n {`${i + 1}. ${k}: ${apiError.failures ? apiError.failures[k].join(', ') : ''}!`}\n
\n ))\n )}\n \n
\n );\n\n return withCard ? (\n \n {renderBody()}\n \n )\n : renderBody();\n};\n\nexport default ErrorPlaceholder;\n\nexport interface IProps {\n apiError: ApiError;\n placeholderIcon?: string;\n withCard?: boolean;\n}\n","import React, { useEffect } from 'react';\nimport {\n ToastProvider,\n ToastProps,\n ToastProviderProps,\n DefaultToast,\n useToasts,\n} from 'react-toast-notifications';\n\nconst NotificationSystem = ({ notifications, cleanNotifications }: IProps) => {\n const { addToast } = useToasts();\n\n useEffect(() => {\n if (notifications.length > 0) {\n notifications.map(sendNotification);\n }\n return () => {\n cleanNotifications();\n };\n }, [notifications.length]);\n\n const sendNotification = (notification: INotification) => {\n if (notification.message || notification.children) {\n addToast(notification.children || notification.message, {\n appearance: notification.appearance || 'info',\n autoDismiss: notification.autoDismiss !== undefined ? notification.autoDismiss : true,\n });\n }\n };\n\n return null;\n};\n\nconst Toast = (props: IToast) => (\n
\n \n
\n);\n\nconst NotificationSystemProvider = (props: IProps) => (\n }}\n {...props}\n >\n \n \n);\n\nexport default NotificationSystemProvider;\n\ninterface IProps extends Omit {\n notifications: INotification[];\n className?: string;\n cleanNotifications: () => void;\n}\n\ninterface IToast extends ToastProps {\n className?: string;\n}\n\nexport interface INotification {\n message: string | undefined;\n appearance: ToastProps['appearance'];\n children?: ToastProps['children'];\n autoDismiss?: boolean;\n}\n","import React, { FunctionComponent } from 'react';\nimport styles from './index.module.scss';\nimport cn from 'classnames';\n\ninterface IProps {\n value: number;\n dark?: boolean;\n className?: string;\n}\n\nconst NotificationBundle: FunctionComponent = props => (\n \n {props.value}\n \n );\n\nexport default NotificationBundle;\n","import React from 'react';\nimport {\n FormGroup,\n FormLabel,\n FormControl,\n Form,\n} from 'react-bootstrap';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\n\nconst Captcha = ({\n apiError, captchaValid, captcha, setCaptcha,\n}: IProps) => {\n if (apiError && apiError.failures && apiError.failures.captcha) {\n return (\n \n Введите цифры с картинки\n
\n ) => setCaptcha((e.target as HTMLInputElement).value.replace(/[^\\d]/, ''))}\n value={captcha}\n isInvalid={!captchaValid}\n maxLength={4}\n className=\"captcha_field\"\n />\n
\n \"captcha_image\"\n
\n
\n \n {!captchaValid && 'Длина цифр с картинки должна быть 4 символа'}\n \n
\n );\n }\n return null;\n};\n\nexport default Captcha;\n\ninterface IProps {\n captcha: string;\n captchaValid: boolean;\n apiError?: IApiError | null;\n setCaptcha: (captcha: string) => void;\n}\n","import React from 'react';\nimport { DragDropContext } from 'react-dnd';\nimport HTML5Backend from 'react-dnd-html5-backend';\n\nconst HOC = (component: React.FunctionComponent) => \n // eslint-disable-next-line\n class ClassComponent extends React.Component {\n render() {\n const { ...rest } = this.props;\n const Component = component;\n\n return (\n \n );\n }\n }\n;\n\nexport const withDragDropContext = (component: React.FunctionComponent) => DragDropContext(HTML5Backend)(HOC(component));\n","import {\n DragSource, DropTarget, DragSourceConnector, DropTargetMonitor, DropTargetConnector,\n} from 'react-dnd';\n\nexport interface RequiredProps {\n rowIndex: number;\n onRowDrop: (fromIndex: number, toIndex: number) => void;\n}\n\nfunction rowSourceCollect(connect: DragSourceConnector) {\n return {\n // Call this function inside render()\n // to let React DnD handle the drag events:\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n };\n}\n\n/**\n * Specifies the drag source contract.\n * Only `beginDrag` function is required.\n */\nconst rowSourceSpec = {\n beginDrag(props: RequiredProps) {\n return {\n rowIndex: props.rowIndex,\n };\n },\n};\n\nfunction rowTargetCollect(connect: DropTargetConnector, monitor: DropTargetMonitor) {\n return {\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver() && monitor.canDrop(),\n };\n}\n\nconst rowTargetSpec = {\n canDrop(props: RequiredProps, monitor: DropTargetMonitor) {\n const item = monitor.getItem();\n return props.rowIndex !== item.rowIndex;\n },\n\n drop(props: RequiredProps, monitor: DropTargetMonitor) {\n if (monitor.didDrop()) {\n return;\n }\n // Obtain the dragged item\n const { rowIndex: fromIndex } = monitor.getItem();\n const { rowIndex: toIndex, onRowDrop } = props;\n onRowDrop(fromIndex, toIndex);\n },\n};\n\nexport const rowDragSource = DragSource('row', rowSourceSpec, rowSourceCollect);\nexport const rowDropTarget = DropTarget('row', rowTargetSpec, rowTargetCollect);\n","export interface IQualificationPracticalQuestionDetails {\n openAnswer?: string;\n taskTables?: ITable[];\n id?: string;\n number: number;\n active: boolean;\n text: string;\n type: QuestionType;\n criteriaForRate?: string;\n}\n\nexport interface ITable {\n caption?: string;\n columns: IColumn[];\n exactEquality: boolean;\n forbidMoving: boolean;\n initialRows: string[][];\n answerRows?: string[][];\n}\n\ninterface IColumn {\n header: string;\n width: number;\n readonly: boolean;\n numeric: boolean;\n key: boolean;\n multiline: boolean;\n}\n\nexport enum QuestionType {\n MultipleChoiceTheoretical = 'multipleChoiceTheoretical',\n OpenAnswerPractical = 'openAnswerPractical',\n MatchingTheoretical = 'matchingTheoretical',\n EssayPractical = 'essayPractical',\n OpenAnswerTheoretical = 'openAnswerTheoretical',\n OrderingTheoretical = 'orderingTheoretical',\n ManualCheckTabularPracticalQuestion = 'manualCheckTabularPracticalQuestion',\n AutoCheckTabularPracticalQuestion = 'autoCheckTabularPracticalQuestion',\n OfflinePractical = 'offlinePractical',\n}\n\nexport interface IFieldsError {\n [key: string]: string;\n}\n","import React from 'react';\nimport { rowDragSource, rowDropTarget } from './drag-drop';\nimport dndIcon from 'components/assets/svg/dnd_icon.svg';\nimport styles from './DragDrop.module.scss';\nimport cn from 'classnames';\n\nconst DragDrop = rowDragSource(rowDropTarget(({\n children, connectDropTarget, connectDragPreview, connectDragSource, isOver, dndClassName,\n}: IDropProps): JSX.Element => {\n const className = isOver ? styles.drop_target : styles.container;\n\n return connectDropTarget && connectDragPreview && connectDragSource && (\n connectDropTarget(connectDragPreview(\n
\n {connectDragSource(\n
\n \"dnd-btn\"\n
,\n )}\n {children}\n
,\n ))\n );\n}));\n\nexport default DragDrop;\n\ninterface IProps {\n children: any;\n rowIndex: number;\n dndClassName?: string;\n onRowDrop: (from: number, to: number) => void;\n}\n\nexport interface IDragProps {\n children: any;\n rowIndex: number;\n isOver?: boolean;\n onRowDrop: (from: number, to: number) => void;\n connectDropTarget?: (el: JSX.Element) => any;\n connectDragPreview?: (el: JSX.Element) => any;\n connectDragSource?: (el: JSX.Element) => any;\n}\n\ntype IDropProps = IProps & IDragProps;\n","import React from 'react';\nimport { Container, Row, Form } from 'react-bootstrap';\nimport { InputText } from 'components';\nimport { IMatchingTheoreticalAnswer, IFieldsError } from './types';\nimport { serialNumberToChar } from '_helpers';\nimport styles from './TheoreticalQuestionRedactor.module.scss';\nimport cn from 'classnames';\n\nconst QuestionVariant = ({\n answer,\n answerChar,\n formFieldErrors,\n handleChangeMatchingAnswerText,\n num,\n onAdd,\n onDelete,\n questionLeftLength,\n containerClassName,\n}: IProps) => (\n \n \n
\n {serialNumberToChar(answerChar)}.\n \n
\n
\n 2, 'mb-4': questionLeftLength <= 2 }, styles.matchingAdditionalBtn)}>\n {num + 1 === questionLeftLength ? (\n \n Добавить вариант\n \n ) : (
)}\n {questionLeftLength > 2 && (\n \n Удалить вариант\n \n )}\n \n \n );\n\nexport default QuestionVariant;\n\ninterface IProps {\n answer: IMatchingTheoreticalAnswer;\n answerChar: number;\n formFieldErrors: IFieldsError;\n questionLeftLength: number;\n num: number;\n containerClassName?: string;\n handleChangeMatchingAnswerText: (answerNumber: number) => (name: string, value: string) => void;\n onAdd: (e: React.FormEvent) => void;\n onDelete: (answerNumber: number) => (e: React.FormEvent) => void;\n}\n","import React from 'react';\nimport { ExtendedSelect } from 'components';\nimport { IMatchingTheoreticalAnswer, IFieldsError } from './types';\nimport { serialNumberToChar } from '_helpers';\nimport styles from './TheoreticalQuestionRedactor.module.scss';\nimport cn from 'classnames';\n\nconst QuestionSelect = ({\n correct, answer, num, withoutNum, selectContainerClassName, right, formFieldErrors, setFormFieldErrors, onChangeSelect,\n}: IProps) => {\n const getSelectedMatching = (questionNumber: number) => {\n const selectedMatching = Object.keys(correct).find(key => correct[key] === questionNumber);\n return selectedMatching;\n };\n\n const getNotSelectedAnswers = () => {\n const notSelectedAnswers = right.filter(ans => !getSelectedMatching(ans.number));\n\n return notSelectedAnswers;\n };\n\n const getCurrentAnswer = (): string => {\n const matchingNumber = correct[answer.number];\n\n if (!matchingNumber) return '0';\n return matchingNumber.toString();\n };\n\n const onChange = (value: string) => {\n setFormFieldErrors({ ...formFieldErrors, [`correct${answer.number}`]: '' });\n onChangeSelect({ questionNumber: answer.number, matchingNumber: parseInt(value) });\n };\n\n const options = [\n { value: '0', label: '-' },\n ...right.map(x => ({ value: `${x.number}`, label: serialNumberToChar(x.number) })),\n ];\n\n const notSelectedOptions = [\n { value: '0', label: '-' },\n ...getNotSelectedAnswers().map(x => ({ value: `${x.number}`, label: serialNumberToChar(x.number) })),\n ];\n\n return (\n
\n {!withoutNum ?
{num + 1}.
: }\n onChange(e.value)}\n isInvalid={getCurrentAnswer() === '0'}\n />\n
\n );\n};\n\nexport default QuestionSelect;\n\ninterface IProps {\n correct: { [key: string]: number };\n answer: IMatchingTheoreticalAnswer;\n num: number;\n formFieldErrors: IFieldsError;\n right: IMatchingTheoreticalAnswer[];\n withoutNum?: boolean;\n selectContainerClassName?: string;\n setFormFieldErrors: (error: IFieldsError) => void;\n onChangeSelect: (data: IChangeSelect) => void;\n}\n\nexport interface IChangeSelect {\n questionNumber: number;\n matchingNumber: number;\n}\n","import React from 'react';\nimport { InputText } from 'components';\nimport { IMatchingTheoreticalAnswer, IFieldsError } from './types';\nimport QuestionSelect, { IChangeSelect } from './QuestionSelect';\nimport styles from './TheoreticalQuestionRedactor.module.scss';\nimport cn from 'classnames';\n\nconst MatchingRightVariant = ({\n answer,\n formFieldErrors,\n handleChangeOrderingAnswerText,\n num,\n correct,\n right,\n setFormFieldErrors,\n onChangeSelect,\n}: IProps) => (\n
\n \n \n
\n );\n\nexport default MatchingRightVariant;\n\ninterface IProps {\n answer: IMatchingTheoreticalAnswer;\n formFieldErrors: IFieldsError;\n num: number;\n correct: { [key: string]: number };\n right: IMatchingTheoreticalAnswer[];\n setFormFieldErrors: (error: IFieldsError) => void;\n onChangeSelect: (data: IChangeSelect) => void;\n handleChangeOrderingAnswerText: (answerNumber: number) => (name: string, value: string) => void;\n}\n","import React from 'react';\nimport {\n InputText,\n CustomSwitch,\n CustomRadio,\n CKEditor,\n LoaderBtn,\n} from 'components';\nimport {\n ITheoreticalQuestion,\n IMatchingTheoreticalAnswer,\n IFieldsError,\n TheoreticalQuestionType,\n ITheoreticalAnswer,\n} from './types';\nimport { Form, Col, Button } from 'react-bootstrap';\nimport { mapAPIError, RegExpConst } from '_helpers';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport MatchingOrOrderingTheoreticalQuestion from './MatchingOrOrderingTheoreticalQuestion';\nimport MultipleChoiceTheoreticalQuestion from './MultipleChoiceTheoreticalQuestion';\nimport _ from 'lodash';\nimport styles from './TheoreticalQuestionRedactor.module.scss';\nimport cn from 'classnames';\n\nconst TheoreticalQuestionRedactor = ({\n theoreticalQuestion,\n errors,\n loading,\n onSubmit,\n onExit,\n}: IProps) => {\n const errorRef = React.useRef(errors);\n\n const initialState: IState = {\n questionType: TheoreticalQuestionType.MultipleChoiceTheoretical,\n question: theoreticalQuestion || emptyQuestion,\n formFieldErrors: {},\n };\n const [question, setQuestion] = React.useState(initialState.question);\n const [questionType, setQuestionType] = React.useState(initialState.questionType);\n const [formFieldErrors, setFormFieldErrors] = React.useState(initialState.formFieldErrors);\n\n React.useEffect(() => {\n errorRef.current = errors;\n const errorsMap = mapAPIError(errors);\n if (errorsMap) {\n setFormFieldErrors({ ...formFieldErrors, ...errorsMap });\n }\n }, [errors]);\n\n React.useEffect(() => {\n if (theoreticalQuestion && !loading) {\n setQuestion(theoreticalQuestion);\n setQuestionType(theoreticalQuestion.type);\n }\n }, [theoreticalQuestion]);\n\n const setQuestionNumber = (name: string, number: string) => {\n const newNumber = number === '' ? '0' : number;\n if (RegExpConst.NUMBER.test(newNumber)) {\n setQuestion({ ...question, number: parseInt(newNumber, 10) });\n setFormFieldErrors({ ...formFieldErrors, number: '' });\n }\n };\n\n const setQuestionText = (text: string) => {\n setQuestion({ ...question, text });\n setFormFieldErrors({ ...formFieldErrors, text: '' });\n };\n\n const changeCorrectAnswer = (answerNumber: number) => {\n const newAnswers = (question.multipleChoiceAnswers || []).map(a => (a.number === answerNumber\n ? { ...a, correct: !a.correct }\n : { ...a }));\n setQuestion({ ...question, multipleChoiceAnswers: newAnswers });\n setFormFieldErrors({ ...formFieldErrors, general: '' });\n };\n\n const handleChangeAnswerText = (answerNumber: number) => (name: string, value: string) => {\n const newAnswers = (question.multipleChoiceAnswers || []).map((a) => {\n if (a.number === answerNumber) {\n setFormFieldErrors({ ...formFieldErrors, [`answer${answerNumber}`]: '' });\n return { ...a, text: value };\n }\n return { ...a };\n });\n setQuestion({ ...question, multipleChoiceAnswers: newAnswers });\n };\n\n const handleChangeMatchingAnswerText = (answerNumber: number) => (name: string, value: string) => {\n if (!question.matchingOrOrderingAnswers) return;\n\n const newAnswers: IMatchingTheoreticalAnswer[] = (question.matchingOrOrderingAnswers.left).map((a) => {\n if (a.number === answerNumber) {\n setFormFieldErrors({ ...formFieldErrors, [`answer${answerNumber}`]: '' });\n return { ...a, text: value };\n }\n return { ...a };\n });\n setQuestion({ ...question, matchingOrOrderingAnswers: { ...question.matchingOrOrderingAnswers, left: newAnswers } });\n };\n\n const handleChangeOrderingAnswerText = (answerNumber: number) => (name: string, value: string) => {\n if (!question.matchingOrOrderingAnswers) return;\n\n const newAnswers: IMatchingTheoreticalAnswer[] = (question.matchingOrOrderingAnswers.right).map((a) => {\n if (a.number === answerNumber) {\n setFormFieldErrors({ ...formFieldErrors, [`answer_right_${answerNumber}`]: '' });\n return { ...a, text: value };\n }\n return { ...a };\n });\n setQuestion({ ...question, matchingOrOrderingAnswers: { ...question.matchingOrOrderingAnswers, right: newAnswers } });\n };\n\n const handleAddAnswer = (event: React.FormEvent) => {\n event.preventDefault();\n const lastAnswer = _.maxBy(question.multipleChoiceAnswers, 'number');\n if (!lastAnswer) return;\n setQuestion({ ...question, multipleChoiceAnswers: [...(question.multipleChoiceAnswers || []), createEmptyAnswer(lastAnswer.number + 1)] });\n };\n\n const onDropAnswer = (from: number, to: number) => {\n if (!question.matchingOrOrderingAnswers || !question.matchingOrOrderingAnswers.left) return;\n const left = [...question.matchingOrOrderingAnswers.left];\n const fromEl = left[from];\n const toEl = left[to];\n\n left[to] = fromEl;\n left[from] = toEl;\n setQuestion({ ...question, matchingOrOrderingAnswers: { ...question.matchingOrOrderingAnswers, left } });\n };\n\n const handleDeleteAnswer = (answerNumber: number) => (event: React.FormEvent) => {\n event.preventDefault();\n const newAnswers = (question.multipleChoiceAnswers || []).filter(a => a.number !== answerNumber);\n setFormFieldErrors({ ...formFieldErrors, [`answer${answerNumber}`]: '' });\n setQuestion({ ...question, multipleChoiceAnswers: newAnswers });\n };\n\n const handleAddMatchingAnswer = (event: React.FormEvent) => {\n event.preventDefault();\n if (question.matchingOrOrderingAnswers) {\n const lastAnswer = _.maxBy(question.matchingOrOrderingAnswers.left, 'number');\n if (!lastAnswer) return;\n setQuestion({\n ...question,\n matchingOrOrderingAnswers: {\n ...question.matchingOrOrderingAnswers,\n left: [...question.matchingOrOrderingAnswers.left, createEmptyMatchingAnswer(lastAnswer.number + 1)],\n right: [...question.matchingOrOrderingAnswers.right, createEmptyMatchingAnswer(lastAnswer.number + 1)],\n },\n });\n }\n };\n\n const handleDeleteMatchingAnswer = (questionNumber: number) => (event: React.FormEvent) => {\n event.preventDefault();\n if (question.matchingOrOrderingAnswers) {\n const { left, right } = question.matchingOrOrderingAnswers;\n const newLeftAnswers = left.filter(a => a.number !== questionNumber);\n const newRightAnswers = right.filter(a => a.number !== questionNumber);\n const newCorrect = {};\n\n setFormFieldErrors({ ...formFieldErrors, [`answer${questionNumber}`]: '' });\n setQuestion({\n ...question,\n matchingOrOrderingAnswers: {\n ...question.matchingOrOrderingAnswers,\n left: newLeftAnswers,\n right: newRightAnswers,\n correct: newCorrect,\n },\n });\n }\n };\n\n const handleClickSwitch = () => {\n const newQuestion = { ...question, active: !question.active };\n setQuestion(newQuestion);\n };\n\n const handleChangeTextInput = (name: string, value: string) => {\n setQuestion({ ...question, openAnswer: value });\n setFormFieldErrors({ ...formFieldErrors, openAnswer: '' });\n };\n\n const onChangeSelect = ({ questionNumber, matchingNumber }: { questionNumber: number; matchingNumber: number }) => {\n if (!question.matchingOrOrderingAnswers) return;\n\n const newCorrect = question.matchingOrOrderingAnswers.correct;\n newCorrect[questionNumber] = matchingNumber;\n\n setQuestion({\n ...question,\n matchingOrOrderingAnswers: {\n ...question.matchingOrOrderingAnswers,\n correct: newCorrect,\n },\n });\n };\n\n const submit = async (e: React.FormEvent) => {\n e.preventDefault();\n const validationErrors = getValidationErrors(question, questionType);\n\n if (isValidFormData(validationErrors)) {\n const res = await onSubmit(question);\n\n if (!errorRef.current && res) {\n onExit();\n }\n } else {\n setFormFieldErrors(validationErrors);\n }\n };\n\n const onChangeLeftHeader = (text: string) => {\n if (!question.matchingOrOrderingAnswers) return;\n\n setQuestion({\n ...question,\n matchingOrOrderingAnswers: {\n ...question.matchingOrOrderingAnswers,\n leftAnswersHeader: text,\n },\n });\n };\n\n const onChangeRightHeader = (text: string) => {\n if (!question.matchingOrOrderingAnswers) return;\n\n setQuestion({\n ...question,\n matchingOrOrderingAnswers: {\n ...question.matchingOrOrderingAnswers,\n rightAnswersHeader: text,\n },\n });\n };\n\n const onChangeRadio = (type: TheoreticalQuestionType) => {\n if (!theoreticalQuestion && emptyQuestion.matchingOrOrderingAnswers) {\n setQuestionType(type);\n setFormFieldErrors({});\n setQuestion({\n ...emptyQuestion,\n matchingOrOrderingAnswers: {\n ...emptyQuestion.matchingOrOrderingAnswers,\n correct: {},\n },\n text: question.text,\n number: question.number,\n active: question.active,\n type,\n });\n }\n };\n\n return (\n
\n
\n \n onChangeRadio(TheoreticalQuestionType.MultipleChoiceTheoretical)}\n option={TheoreticalQuestionType.MultipleChoiceTheoretical}\n checked={questionType === TheoreticalQuestionType.MultipleChoiceTheoretical}\n disabled={!!theoreticalQuestion}\n />\n onChangeRadio(TheoreticalQuestionType.OpenAnswerTheoretical)}\n option={TheoreticalQuestionType.OpenAnswerTheoretical}\n checked={questionType === TheoreticalQuestionType.OpenAnswerTheoretical}\n disabled={!!theoreticalQuestion}\n />\n \n \n onChangeRadio(TheoreticalQuestionType.MatchingTheoretical)}\n option={TheoreticalQuestionType.MatchingTheoretical}\n checked={questionType === TheoreticalQuestionType.MatchingTheoretical}\n disabled={!!theoreticalQuestion}\n />\n onChangeRadio(TheoreticalQuestionType.OrderingTheoretical)}\n option={TheoreticalQuestionType.OrderingTheoretical}\n checked={questionType === TheoreticalQuestionType.OrderingTheoretical}\n disabled={!!theoreticalQuestion}\n />\n \n
\n \n \n \n \n \n \n {_.has(formFieldErrors, 'text') && formFieldErrors.text.length > 0\n ? formFieldErrors.text : null}\n \n \n \n\n {questionType === TheoreticalQuestionType.MultipleChoiceTheoretical && question.multipleChoiceAnswers && (\n <>\n

Варианты ответов:

\n {question.multipleChoiceAnswers.map((answer, i) => (\n \n ))}\n \n )}\n\n {(questionType === TheoreticalQuestionType.MatchingTheoretical || questionType === TheoreticalQuestionType.OrderingTheoretical) && question.matchingOrOrderingAnswers && (\n \n )}\n\n {questionType === TheoreticalQuestionType.OpenAnswerTheoretical ? (\n \n ) : null}\n\n {formFieldErrors && formFieldErrors.general ? (\n
\n \n

\n {formFieldErrors.general}\n

\n
\n
\n ) : null}\n
\n \n Сохранить\n \n \n
\n \n );\n};\n\nexport default TheoreticalQuestionRedactor;\n\ninterface IProps {\n theoreticalQuestion: ITheoreticalQuestion | null;\n errors: IApiError | null;\n loading?: boolean;\n onSubmit: (question: ITheoreticalQuestion) => Promise;\n onExit: () => void;\n}\n\ninterface IState {\n question: ITheoreticalQuestion;\n questionType: TheoreticalQuestionType;\n formFieldErrors: IFieldsError;\n}\n\nconst isValidFormData = (fieldsError: IFieldsError): boolean => _.values(fieldsError).every(e => e.length === 0);\n\nconst getValidationErrors = (data: ITheoreticalQuestion, questionType: TheoreticalQuestionType): IFieldsError => {\n const requiredErrorText = 'Обязательное поле для заполнения';\n const res = Object.keys(data).reduce((acc, key) => {\n switch (key) {\n case 'number':\n return { ...acc, number: data.number === 0 ? 'Введите номер отличный от 0' : '' };\n case 'text':\n return { ...acc, text: data.text === '' ? requiredErrorText : '' };\n default:\n return acc;\n }\n }, {});\n\n if (questionType === TheoreticalQuestionType.MultipleChoiceTheoretical) {\n const answers = Object.keys(data).reduce((acc, key) => {\n switch (key) {\n case 'multipleChoiceAnswers':\n return {\n ...acc,\n ...(data.multipleChoiceAnswers || []).reduce((y, x) => (\n { ...y, [`multipleChoiceAnswer_${x.number}`]: (x.text === '' ? requiredErrorText : '') }),\n {}),\n };\n default:\n return acc;\n }\n }, {});\n\n const correctAnswerSelected = (data.multipleChoiceAnswers || []).some(({ correct }) => correct);\n return correctAnswerSelected ? { ...res, ...answers } : { ...res, ...answers, general: 'Не выбран правильный ответ' };\n }\n\n if (questionType === TheoreticalQuestionType.MatchingTheoretical && data.matchingOrOrderingAnswers) {\n const { correct, left, right } = data.matchingOrOrderingAnswers;\n const allCorrectSelected = Object.keys(correct).length === left.length;\n const matchingOrOrderingAnswers = Object.keys(data).reduce((acc, key) => {\n switch (key) {\n case 'matchingOrOrderingAnswers':\n return {\n ...acc,\n ...(left || []).reduce((y, x) => (\n { ...y, [`answer${x.number}`]: (x.text === '' ? requiredErrorText : '') }),\n {}),\n ...(right || []).reduce((y, x) => (\n { ...y, [`answer_right_${x.number}`]: (x.text === '' ? requiredErrorText : '') }),\n {}),\n };\n default:\n return acc;\n }\n }, {});\n\n return allCorrectSelected ? { ...res, ...matchingOrOrderingAnswers } : { ...res, ...matchingOrOrderingAnswers, general: 'Заполните все последовательности' };\n }\n\n if (questionType === TheoreticalQuestionType.OrderingTheoretical && data.matchingOrOrderingAnswers) {\n const { correct, left } = data.matchingOrOrderingAnswers;\n const allCorrectSelected = Object.keys(correct).length === left.length;\n const matchingOrOrderingAnswers = Object.keys(data).reduce((acc, key) => {\n switch (key) {\n case 'matchingOrOrderingAnswers':\n return {\n ...acc,\n ...(left || []).reduce((y, x) => (\n { ...y, [`answer${x.number}`]: (x.text === '' ? requiredErrorText : '') }),\n {}),\n };\n default:\n return acc;\n }\n }, {});\n\n return allCorrectSelected ? { ...res, ...matchingOrOrderingAnswers } : { ...res, ...matchingOrOrderingAnswers, general: 'Заполните все последовательности' };\n }\n\n return res;\n};\n\nconst createEmptyAnswer = (number: number): ITheoreticalAnswer => ({\n number,\n text: '',\n correct: false,\n});\n\nconst createEmptyMatchingAnswer = (number: number): IMatchingTheoreticalAnswer => ({\n number,\n text: '',\n});\n\nconst emptyQuestion: ITheoreticalQuestion = {\n number: 0,\n text: '',\n multipleChoiceAnswers: [1, 2].map(createEmptyAnswer),\n active: true,\n type: TheoreticalQuestionType.MultipleChoiceTheoretical,\n matchingOrOrderingAnswers: {\n left: [1, 2].map(createEmptyMatchingAnswer),\n right: [1, 2].map(createEmptyMatchingAnswer),\n leftAnswersHeader: undefined,\n correct: {},\n },\n};\n","import React from 'react';\nimport { InputText, DragDrop } from 'components';\nimport { withDragDropContext } from 'components/DragDrop';\nimport { IFieldsError, ITheoreticalQuestion, TheoreticalQuestionType } from './types';\nimport QuestionVariant from './QuestionVariant';\nimport MatchingRightVariant from './MatchingRightVariant';\nimport QuestionSelect, { IChangeSelect } from './QuestionSelect';\nimport styles from './TheoreticalQuestionRedactor.module.scss';\nimport cn from 'classnames';\n\nconst MatchingOrOrderingTheoreticalQuestion = ({\n onChangeLeftHeader,\n onChangeRightHeader,\n formFieldErrors,\n handleChangeMatchingAnswerText,\n handleChangeOrderingAnswerText,\n question,\n onAddQuestionVariant,\n onDeleteQuestionVariant,\n setFormFieldErrors,\n onChangeSelect,\n onDropAnswer,\n}: IProps) => {\n const [changeLeftHeader, setChangeLeftHeader] = React.useState(false);\n const [changeRightHeader, setChangeRightHeader] = React.useState(false);\n\n if (!question.matchingOrOrderingAnswers) return null;\n\n const {\n leftAnswersHeader, rightAnswersHeader, left, right, correct,\n } = question.matchingOrOrderingAnswers;\n\n const leftHeader = leftAnswersHeader\n || ((question.type === TheoreticalQuestionType.OrderingTheoretical && 'Варианты:')\n || (question.type === TheoreticalQuestionType.MatchingTheoretical && 'Утверждения:')) || '';\n\n const rightHeader = rightAnswersHeader\n || ((question.type === TheoreticalQuestionType.OrderingTheoretical && 'Укажите последовательность:')\n || (question.type === TheoreticalQuestionType.MatchingTheoretical && 'Варианты для соотнесения:')) || '';\n\n const answerChar = [...left];\n answerChar.sort((a, b) => a.number - b.number);\n\n return (\n
\n
\n {!changeLeftHeader && {leftHeader}}\n {changeLeftHeader && (\n onChangeLeftHeader(value)}\n inputGroupClassNames=\"m-0\"\n inputClassNames=\"pl-0\"\n inputColSize={4}\n withoutLabel\n />\n )}\n { e.preventDefault(); setChangeLeftHeader(!changeLeftHeader); }}\n >\n {!changeLeftHeader ? 'Изменить заголовок' : 'Сохранить заголовок'}\n \n
\n {left.map((answer, i) => (\n \n \n \n ))}\n
\n
\n
\n {!changeRightHeader && {rightHeader}}\n {changeRightHeader && (\n onChangeRightHeader(value)}\n inputGroupClassNames=\"m-0\"\n inputClassNames=\"pl-0\"\n inputColSize={4}\n withoutLabel\n />\n )}\n { e.preventDefault(); setChangeRightHeader(!changeRightHeader); }}\n >\n {!changeRightHeader ? 'Изменить заголовок' : 'Сохранить заголовок'}\n \n
\n {question.type === TheoreticalQuestionType.OrderingTheoretical && right.map((answer, i) => (\n \n ))}\n {question.type === TheoreticalQuestionType.MatchingTheoretical && right.map((answer, i) => (\n \n ))}\n
\n
\n
\n );\n};\n\nexport default withDragDropContext(MatchingOrOrderingTheoreticalQuestion);\n\ninterface IProps {\n question: ITheoreticalQuestion;\n formFieldErrors: IFieldsError;\n handleChangeMatchingAnswerText: (answerNumber: number) => (name: string, value: string) => void;\n handleChangeOrderingAnswerText: (answerNumber: number) => (name: string, value: string) => void;\n onAddQuestionVariant: (e: React.FormEvent) => void;\n onDeleteQuestionVariant: (answerNumber: number) => (e: React.FormEvent) => void;\n onChangeLeftHeader: (text: string) => void;\n onChangeRightHeader: (text: string) => void;\n setFormFieldErrors: (error: IFieldsError) => void;\n onChangeSelect: (data: IChangeSelect) => void;\n onDropAnswer: (from: number, to: number) => void;\n}\n","import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { ExtendedSelect, IExtendedSelectOption, IExtendedSelectEvent } from 'components';\nimport cn from 'classnames';\nimport styles from './MultiSelectGroup.module.scss';\n\nconst MultiSelectGroup = ({\n label, options, onChange, placeholder, value, className, withoutStrictValue = true, disabled,\n}: IProps) => (\n \n \n {label}\n \n true}\n onChangeMulti={onChange}\n className={styles.select}\n placeholder={placeholder}\n value={value}\n withoutStrictValue={withoutStrictValue}\n multi\n disabled={disabled}\n />\n \n );\n\nexport default MultiSelectGroup;\n\ninterface IProps {\n label: string;\n options: IExtendedSelectOption[];\n placeholder?: string;\n value?: string[];\n className?: string;\n withoutStrictValue?: boolean;\n onChange: (e: IExtendedSelectEvent[]) => void;\n disabled?: boolean;\n}\n","import React from 'react';\nimport {\n IExtendedSelectEvent,\n IExtendedSelectOption,\n ExtendedSelect,\n MultiSelectGroup,\n PaginationData,\n DateTimePicker,\n} from 'components';\nimport styles from './MultiSelectSection.module.scss';\nimport moment from 'moment';\nimport cn from 'classnames';\nimport { IAccreditationCenter } from '../models';\nimport { FilteredExamStatus } from '../enums';\n\nconst MultiSelectSection = ({\n fetchList,\n acList,\n qualificationList,\n accList,\n examSelectStatusName,\n examStatusOptions,\n withoutSelectStatus,\n withoutFromToDatePicker,\n beforeSelectsChildren,\n defaultValue,\n defaultIds,\n defaultFrom,\n defaultTo,\n}: IProps) => {\n const initialState: IState = {\n selectedExamStatus: defaultValue || (examStatusOptions && examStatusOptions[0].value) || ExamStatusOptions[0].value,\n pageOptions: { pages: 10, perPage: 10, page: 1 },\n acIds: (defaultIds && defaultIds.acIds) || [],\n qualificationIds: (defaultIds && defaultIds.qualificationIds) || [],\n attestationSubCommissionIds: (defaultIds && defaultIds.attestationSubCommissionIds) || [],\n customProps: undefined,\n from: defaultFrom || undefined,\n to: defaultTo || undefined,\n };\n\n const [selectedExamStatus, setSelectedExamStatus] = React.useState(initialState.selectedExamStatus);\n const [pageOptions, setPageOptions] = React.useState(initialState.pageOptions);\n const [acIds, setAcIds] = React.useState(initialState.acIds);\n const [qualificationIds, setQualificationIds] = React.useState(initialState.qualificationIds);\n const [accreditationCenterIds, setAccreditationCenterIds] = React.useState(initialState.attestationSubCommissionIds);\n const [from, setFrom] = React.useState(initialState.from);\n const [to, setTo] = React.useState(initialState.to);\n\n const getFetchListProps = () => ({\n ...pageOptions,\n accreditationCenterIds,\n qualificationIds,\n acIds,\n from: from || undefined,\n to: to || undefined,\n filteredExamStatus: selectedExamStatus !== 'All' ? selectedExamStatus as FilteredExamStatus : undefined,\n });\n\n const handleFilterChange = (event: IExtendedSelectEvent) => {\n setPageOptions({ ...pageOptions, page: 1 });\n setSelectedExamStatus(event.value);\n\n fetchList({\n ...getFetchListProps(),\n filteredExamStatus: event.value !== 'All' ? event.value as FilteredExamStatus : undefined,\n });\n };\n\n const getAcOptions = (): IExtendedSelectOption[] => (acList ? acList.items.map(ac => ({\n value: ac.id,\n label: ac.name,\n })) : []);\n\n const getAscOptions = (): IExtendedSelectOption[] => (accList ? accList.map(asc => ({\n value: asc.id,\n label: asc.fullName,\n })) : []);\n\n const getQualificationsOptions = (): IExtendedSelectOption[] => (qualificationList ? qualificationList.items.map(qualification => ({\n value: qualification.id,\n label: `${qualification.regNumber} - ${qualification.title}`,\n })) : []);\n\n const onChangeSelect = (e: IExtendedSelectEvent[], func: (ids: string[], filter?: IFetchList) => void) => {\n let ids: string[] = [];\n\n if (e) {\n ids = [...e.map(el => el.value)];\n }\n\n func(ids);\n setPageOptions({ ...pageOptions, page: 1 });\n };\n\n const onChangeAcSelect = (ids: string[], filterProps?: IFetchList) => {\n setAcIds(ids);\n fetchList({\n ...getFetchListProps(),\n ...filterProps,\n acIds: ids,\n });\n };\n\n const onChangeAscSelect = (ids: string[], filterProps?: IFetchList) => {\n setAccreditationCenterIds(ids);\n fetchList({\n ...getFetchListProps(),\n ...filterProps,\n accreditationCenterIds: ids,\n });\n };\n\n const onChangeQualificationsSelect = (ids: string[], filterProps?: IFetchList) => {\n setQualificationIds(ids);\n fetchList({\n ...getFetchListProps(),\n ...filterProps,\n qualificationIds: ids,\n });\n };\n\n const onChangeDate = (props?: IFetchList) => fetchList({\n ...getFetchListProps(),\n ...props,\n });\n\n return (\n
\n {!withoutSelectStatus ? (\n
\n
СТАТУС
\n
\n \n
\n
\n ) : null}\n {!withoutFromToDatePicker ? (\n
\n
ПЕРИОД
\n \n
\n\n ) : null}\n {beforeSelectsChildren}\n {acList && (\n onChangeSelect(e, onChangeAcSelect)}\n placeholder=\"Выберите один или несколько Центров Оценки Квалификаций\"\n value={acIds.length ? acIds : undefined}\n className={styles.selectGroup}\n />\n )}\n {accList && (\n onChangeSelect(e, onChangeAscSelect)}\n placeholder=\"Выберите один или несколько аккредитационных центров\"\n value={accreditationCenterIds.length ? accreditationCenterIds : undefined}\n className={styles.selectGroup}\n />\n )}\n {qualificationList && (\n onChangeSelect(e, onChangeQualificationsSelect)}\n placeholder=\"Выберите одну или несколько специальностей\"\n value={qualificationIds.length ? qualificationIds : undefined}\n className={styles.selectGroup}\n />\n )}\n
\n );\n};\n\nexport default MultiSelectSection;\n\nexport interface IFetchList {\n paid?: boolean;\n qualificationIds?: string[];\n accreditationCenterIds?: string[];\n acIds?: string[];\n page?: number;\n pageSize?: number;\n sortOrder?: boolean;\n sortField?: string;\n filteredExamStatus?: FilteredExamStatus;\n from?: moment.Moment;\n to?: moment.Moment;\n}\n\ninterface IProps {\n qualificationList?: IQualificationInfoList | null;\n acList?: IAttestationCommissions | null;\n accList?: IAccreditationCenter[] | null;\n examSelectStatusName?: string;\n examStatusOptions?: IExtendedSelectOption[];\n beforeSelectsChildren?: React.ReactNode;\n defaultValue?: string | null;\n defaultIds?: IDefaultIds;\n withoutSelectStatus?: boolean;\n withoutFromToDatePicker?: boolean;\n defaultFrom?: moment.Moment;\n defaultTo?: moment.Moment;\n fetchList: (data: IFetchList) => void;\n}\n\ninterface IDefaultIds {\n acIds?: string[];\n qualificationIds?: string[];\n attestationSubCommissionIds?: string[];\n}\n\nconst ExamStatusOptions: IExtendedSelectOption[] = [\n { label: 'Все', value: 'All' },\n { label: 'Создание', value: FilteredExamStatus.AwaitingExpertConfirmation },\n { label: 'Идет запись', value: FilteredExamStatus.IsApplying },\n { label: 'Запись окончена', value: FilteredExamStatus.ApplyingFinished },\n { label: 'В процессе проведения', value: FilteredExamStatus.Staging },\n { label: 'Завершено', value: FilteredExamStatus.Finished },\n { label: 'Отменен', value: FilteredExamStatus.Canceled },\n];\n\ninterface IAttestationSubCommissionsList {\n items: IAttestationSubCommission[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IAttestationSubCommission {\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n city: string;\n address: string;\n default: boolean;\n}\n\ninterface IAttestationCommissions {\n items: IAttestationCommission[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IAttestationCommission {\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n city: string;\n}\n\ninterface IQualificationInfoList {\n items: IQualificationInfo[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IQualificationInfo {\n id: string;\n title: string;\n stagesNumber: number;\n regNumber: string;\n occupationalStandardId: string;\n occupationalStandardTitle: string;\n}\n\ninterface IState {\n selectedExamStatus: string;\n pageOptions: PaginationData;\n acIds: string[];\n qualificationIds: string[];\n attestationSubCommissionIds: string[];\n customProps?: IFetchList;\n from?: moment.Moment;\n to?: moment.Moment;\n}\n","import React from 'react';\nimport styles from './MultiSelectSearch.module.scss';\n\nconst MultiSelectSearch: React.FC = props => (!props.hide ? (\n
\n {props.children}\n
\n) : null);\n\ninterface IProps {\n hide?: boolean;\n}\n\n\nexport default MultiSelectSearch;\n","import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport moment from 'moment';\nimport DateTime from 'react-datetime';\nimport styles from './DateTimePicker.module.scss';\nimport cn from 'classnames';\n\nconst DateTimePicker = ({\n from,\n firstDateProps,\n secondDateProps,\n to,\n setFrom,\n setTo,\n fetch,\n containerClassName,\n fieldClassName,\n groupClassName,\n withoutLabels,\n withStyledBorderSelect,\n withoutTime,\n withoutClear,\n}: IProps) => {\n const checkSameDates = (nDate?: moment.Moment) => from && to && nDate && nDate.isSame(from) && nDate.isSame(to);\n\n const processSameDates = (nDate?: moment.Moment) => {\n if (!nDate) return;\n\n const toDate = nDate.clone().set({ hour: 23, minute: 59 });\n const fromDate = nDate.clone().set({ hour: 0, minute: 0 });\n\n setTo(toDate);\n setFrom(fromDate);\n fetch({ to: toDate, from: fromDate });\n };\n\n const firstDateChange = (date?: moment.Moment | string | null) => {\n const nDate = date ? moment(date) : undefined;\n setFrom(nDate);\n\n if (checkSameDates(nDate)) {\n processSameDates();\n } else if (to && nDate && (nDate.diff(to) > 0)) {\n const dayDate = nDate.clone().set({ hour: 23, minute: 59 });\n\n setTo(dayDate);\n fetch({ from: nDate, to: dayDate });\n } else {\n const dayDate = to ? to.clone().set({ hour: 23, minute: 59 }) : undefined;\n\n fetch({ from: nDate, to: dayDate });\n }\n };\n\n const secondDateChange = (date: moment.Moment | string) => {\n const nDate = date ? moment(date) : undefined;\n\n if (checkSameDates(nDate)) {\n processSameDates();\n } else if (!from || (from && nDate && nDate.diff(from) >= 0)) {\n const dayDate = !to && nDate ? nDate.clone().set({ hour: 23, minute: 59 }) : nDate;\n\n setTo(dayDate);\n fetch({ to: dayDate });\n } else if (!to && from && nDate && nDate.diff(from) <= 0) {\n const dayDate = from.clone().set({ hour: 23, minute: 59 });\n\n setTo(dayDate);\n fetch({ to: dayDate });\n } else if (!nDate) {\n setTo(undefined);\n fetch({ to: undefined });\n }\n };\n\n const renderDateInput = (onChange: (date: moment.Moment | string) => void) => (inputProps: React.HTMLProps) => (\n
\n true} style={{ ...inputProps.style, caretColor: 'transparent' }} />\n {!!inputProps.value && !withoutClear && (\n onChange('')}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={styles.clearDateInput}\n >\n \n \n )}\n
\n );\n\n return (\n \n
\n {!withoutLabels ? (\n \n С\n \n ) : null}\n\n {/* Параметр renderInput не включили в .d.ts файл, потому TS не находит его, но в документации он есть */}\n \n
\n
\n {!withoutLabels ? (\n \n ПО\n \n ) : null}\n\n {/* Параметр renderInput не включили в .d.ts файл, потому TS не находит его, но в документации он есть */}\n \n
\n
\n );\n};\n\nexport default DateTimePicker;\n\ninterface IProps {\n setFrom: (date?: moment.Moment) => void;\n setTo: (date?: moment.Moment) => void;\n fetch: (date: IReturnDate) => void;\n secondDateProps?: React.HTMLProps;\n firstDateProps?: React.HTMLProps;\n from?: moment.Moment;\n to?: moment.Moment;\n containerClassName?: string;\n groupClassName?: string;\n fieldClassName?: string;\n withoutLabels?: boolean;\n withStyledBorderSelect?: boolean;\n withoutTime?: boolean;\n withoutClear?: boolean;\n}\n\ninterface IReturnDate {\n to?: moment.Moment;\n from?: moment.Moment;\n}\n","import * as React from 'react';\nimport { MultiSelectGroup } from '../../MultiSelectGroup';\nimport styles from '../../MultiSelectSection/MultiSelectSection.module.scss';\nimport { IOption } from '../../Common/ExtendedSelect/ExtendedSelect';\n\nconst DefaultMultiSelectSearch: React.FC = props => (\n props.onChange(events ? events.map(e => e.value) : [])}\n placeholder={props.placeholder}\n value={props.value && props.value.map(v => String(v))}\n className={styles.selectGroup}\n withoutStrictValue={props.withoutStrictValue}\n disabled={props.disabled}\n />\n);\n\ninterface IProps {\n label: string;\n withoutStrictValue?: boolean;\n options: IOption[];\n placeholder: string;\n onChange: (values?: string[]) => void;\n value?: (string | number)[];\n disabled?: boolean;\n}\n\nexport default DefaultMultiSelectSearch;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { Form } from 'react-bootstrap';\nimport styles from '../../MultiSelectSection/MultiSelectSection.module.scss';\nimport { ExtendedSelect, IExtendedSelectEvent, IExtendedSelectOption } from '../../index';\n\nconst DefaultSelectSearch: React.FC = ({\n isClearable = true,\n ...props\n }) => (\n \n \n {props.label}\n \n \n \n);\n\ninterface IProps {\n label: string;\n name?: string;\n isClearable?: boolean;\n options: IExtendedSelectOption[];\n placeholder?: string;\n value?: string;\n className?: string;\n labelClassName?: string;\n inputClassName?: string;\n onChange: (e: IExtendedSelectEvent) => void;\n}\n\nexport default DefaultSelectSearch;\n","import React from 'react';\nimport styles from './CKText.module.scss';\nimport cn from 'classnames';\nimport './CKStyles.scss';\n\nconst CKText = ({ text }: IProps) => (\n
\n);\n\nexport default CKText;\n\ninterface IProps {\n text?: string;\n}\n","import React from 'react';\nimport {\n InputText,\n CustomSwitch,\n CKEditor,\n CustomRadio,\n LoaderBtn,\n EditableTable,\n} from 'components';\nimport {\n IQualificationPracticalQuestionDetails,\n IFieldsError,\n QuestionType,\n ITable,\n} from './types';\nimport { Form, Button } from 'react-bootstrap';\nimport { mapAPIError, RegExpConst } from '_helpers';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport _ from 'lodash';\nimport styles from './PracticalQuestionRedactor.module.scss';\nimport cn from 'classnames';\n\nconst PracticalQuestionRedactor = ({\n practicalQuestion, errors, onSubmit, onExit, loading,\n}: IProps) => {\n const errorRef = React.useRef(errors);\n\n const initialState: IState = {\n questionType: QuestionType.OpenAnswerPractical,\n question: practicalQuestion || emptyQuestion,\n formFieldErrors: {},\n process: false,\n preview: false,\n };\n const [question, setQuestion] = React.useState(initialState.question);\n const [questionType, setQuestionType] = React.useState(initialState.questionType);\n const [formFieldErrors, setFormFieldErrors] = React.useState(initialState.formFieldErrors);\n const [process, setProcess] = React.useState(initialState.process);\n const [preview, setPreview] = React.useState(initialState.preview);\n\n React.useEffect(() => {\n errorRef.current = errors;\n const errorsMap = mapAPIError(errors);\n if (errorsMap) {\n setFormFieldErrors({ ...formFieldErrors, ...errorsMap });\n }\n }, [errors]);\n\n React.useEffect(() => {\n if (practicalQuestion && !loading) {\n setQuestion(practicalQuestion);\n setQuestionType(practicalQuestion.type);\n }\n }, [practicalQuestion]);\n\n const setQuestionNumber = (name: string, number: string) => {\n const newNumber = number === '' ? '0' : number;\n if (RegExpConst.NUMBER.test(newNumber)) {\n setQuestion({ ...question, number: parseInt(newNumber, 10) });\n setFormFieldErrors({ ...formFieldErrors, number: '' });\n }\n };\n\n const handleChangeTextInput = (name: string, value: string) => {\n setQuestion({ ...question, openAnswer: value });\n setFormFieldErrors({ ...formFieldErrors, openAnswer: '' });\n };\n\n const handleClickSwitch = () => {\n setQuestion({ ...question, active: !question.active });\n };\n\n const handlePreviewClickSwitch = () => {\n setPreview(!preview);\n };\n\n const onChangeRadio = (type: QuestionType) => {\n if (!practicalQuestion) {\n setQuestionType(type);\n setFormFieldErrors({});\n setQuestion({\n ...emptyQuestion,\n number: question.number,\n text: question.text,\n criteriaForRate: question.criteriaForRate,\n type,\n });\n }\n };\n\n const onChangeCKEditorText = (text: string) => {\n setQuestion({ ...question, text });\n setFormFieldErrors({ ...formFieldErrors, text: '' });\n };\n\n const onChangeCKEditorCriterial = (criteriaForRate: string) => {\n setQuestion({ ...question, criteriaForRate });\n setFormFieldErrors({ ...formFieldErrors, criteriaForRate: '' });\n };\n\n const isValidFormData = (fieldsError: IFieldsError): boolean => _.values(fieldsError).every(e => e.length === 0);\n\n const submit = async (e: React.FormEvent) => {\n e.preventDefault();\n const validationErrors = getValidationErrors(question);\n\n if (isValidFormData(validationErrors)) {\n const res = await onSubmit(question);\n\n if (!errorRef.current && res) {\n onExit();\n }\n } else {\n setFormFieldErrors(validationErrors);\n }\n };\n\n const checkValidTable = (table: ITable) => {\n if (table.columns && !table.columns.find((col) => {\n if (col.header === null || col.header === undefined\n || col.key === null || col.header === undefined\n || col.multiline === null || col.multiline === undefined\n || col.numeric === null || col.numeric === undefined\n || col.readonly === null || col.readonly === undefined\n || col.width === null || col.width === undefined\n ) {\n return table;\n }\n return undefined;\n }) && table.initialRows\n && table.exactEquality !== null && table.exactEquality !== undefined\n && table.forbidMoving !== null && table.forbidMoving !== undefined\n ) {\n return table;\n }\n return null;\n };\n\n const onUploadTable = (e: React.ChangeEvent) => {\n setProcess(true);\n if (e && e.currentTarget && e.currentTarget.files) {\n const reader = new FileReader();\n\n reader.onload = () => {\n if (reader.result) {\n try {\n const addedTaskTables: ITable[] = JSON.parse(reader.result.toString());\n if (addedTaskTables) {\n const notValidTables: number[] = [];\n addedTaskTables.forEach((el, i) => !checkValidTable(el) && notValidTables.push(i));\n const taskTables = addedTaskTables.filter(checkValidTable);\n\n setQuestion({ ...question, taskTables });\n setFormFieldErrors({\n ...formFieldErrors,\n taskTables: !notValidTables.length ? '' : `Неверные данные в таблицах: ${notValidTables.join(',')}`,\n });\n }\n } catch (err) {\n setFormFieldErrors({ ...formFieldErrors, taskTables: `Ошибка при разборе таблицы: ${err}` });\n }\n }\n };\n\n reader.readAsText(e.currentTarget.files[0]);\n }\n setProcess(false);\n\n e.target.value = '';\n };\n\n return (\n
\n
\n \n onChangeRadio(QuestionType.OpenAnswerPractical)}\n option={QuestionType.OpenAnswerPractical}\n checked={questionType === QuestionType.OpenAnswerPractical}\n disabled={!!practicalQuestion}\n />\n onChangeRadio(QuestionType.EssayPractical)}\n option={QuestionType.EssayPractical}\n checked={questionType === QuestionType.EssayPractical}\n disabled={!!practicalQuestion}\n />\n onChangeRadio(QuestionType.OfflinePractical)}\n option={QuestionType.OfflinePractical}\n checked={questionType === QuestionType.OfflinePractical}\n disabled={!!practicalQuestion}\n />\n \n \n onChangeRadio(QuestionType.ManualCheckTabularPracticalQuestion)}\n option={QuestionType.ManualCheckTabularPracticalQuestion}\n checked={questionType === QuestionType.ManualCheckTabularPracticalQuestion}\n disabled={!!practicalQuestion}\n />\n onChangeRadio(QuestionType.AutoCheckTabularPracticalQuestion)}\n option={QuestionType.AutoCheckTabularPracticalQuestion}\n checked={questionType === QuestionType.AutoCheckTabularPracticalQuestion}\n disabled={!!practicalQuestion}\n />\n \n
\n \n \n \n \n {_.has(formFieldErrors, 'text') && (\n \n {formFieldErrors.text}\n \n )}\n \n

Ключ/критерии оценки

\n \n {_.has(formFieldErrors, 'criteriaForRate') && (\n \n {formFieldErrors.criteriaForRate}\n \n )}\n \n\n {questionType === QuestionType.OpenAnswerPractical && (\n \n )}\n\n {(questionType === QuestionType.ManualCheckTabularPracticalQuestion\n || questionType === QuestionType.AutoCheckTabularPracticalQuestion) && (\n <>\n
\n
\n Предпросмотр\n \n
\n {question.taskTables && question.taskTables.map((table, i) => (\n
\n \n
\n ))}\n\n {question.taskTables &&

Ключ к заданию:

}\n\n {question.taskTables && question.taskTables.map((table, i) => (\n
\n \n
\n ))}\n
\n
\n {question.taskTables && (\n \n Скачать таблицу\n \n )}\n \n \n {process ? 'Загрузка...' : 'Загрузить таблицу'}\n \n
\n {_.has(formFieldErrors, 'taskTables') && (\n \n {formFieldErrors.taskTables}\n \n )}\n \n )}\n\n\n {_.has(formFieldErrors, 'general') ? (\n
\n \n

\n {formFieldErrors.general}\n

\n
\n
\n ) : null}\n
\n \n Сохранить\n \n \n
\n {errors && (!errors.failures || !(errors.failures && (errors.failures.taskTables || errors.failures.answer || errors.failures.text || errors.failures.number))) && (\n \n {errors.message}\n \n )}\n \n );\n};\n\nexport default PracticalQuestionRedactor;\n\ninterface IProps {\n errors: IApiError | null;\n practicalQuestion: IQualificationPracticalQuestionDetails | null;\n loading?: boolean;\n onSubmit: (data: IQualificationPracticalQuestionDetails) => Promise;\n onExit: () => void;\n}\n\ninterface IState {\n questionType: QuestionType;\n question: IQualificationPracticalQuestionDetails;\n formFieldErrors: IFieldsError;\n process: boolean;\n preview: boolean;\n}\n\nconst emptyQuestion = {\n number: 0,\n text: '',\n criteriaForRate: '',\n active: true,\n type: QuestionType.OpenAnswerPractical,\n};\n\nconst getValidationErrors = (data: IQualificationPracticalQuestionDetails): IFieldsError => {\n const requiredErrorText = 'Обязательное поле для заполнения';\n return Object.keys(data).reduce((acc, key) => {\n switch (key) {\n case 'number':\n return { ...acc, number: data.number === 0 ? 'Введите номер отличный от 0' : '' };\n case 'text':\n return { ...acc, [key]: data[key] === '' ? requiredErrorText : '' };\n default:\n return acc;\n }\n }, {});\n};\n","import _ from 'lodash';\n\nconst prepareTableHeaders = (headers: IHeaderRows): IHeaderRows => headers.map(h => h.reduce((acc, item) => {\n const lastItem = _.last(acc);\n if (!lastItem) return [item];\n const newAcc = acc.slice();\n if (item.text === lastItem.text && lastItem.text.length !== 0) {\n newAcc[newAcc.length - 1] = { ...lastItem, colSpan: lastItem.colSpan ? lastItem.colSpan + 1 : 1 };\n return newAcc;\n }\n return [...acc, item];\n}, [] as IRowItem[]));\n\nconst getHeaderRowCount = (headers: string[], separator: string) => headers.reduce((acc, h) => (\n h.split('#').length > 1 ? h.split(separator).length : acc\n), 1);\n\nexport const getTableHeader = (headers: string[], separator: string): IHeaderRows => {\n const rowCount = getHeaderRowCount(headers, separator);\n const tableHeaders: IHeaderRows = new Array(rowCount).fill(0).map(() => new Array(headers.length).fill({ text: '', colSpan: 1 }));\n\n for (let row = 0; row < rowCount; row += 1) {\n for (let col = 0; col < headers.length; col += 1) {\n const headerArr = headers[col].split(separator);\n tableHeaders[row][col] = { text: headerArr[row] || '', colSpan: 1 };\n }\n }\n return prepareTableHeaders(tableHeaders);\n};\n\nexport function createArray (arrayLength: number, createItemCb: () => T) {\n return new Array(arrayLength).fill(0).map(createItemCb);\n}\n\nexport interface IRowItem {\n text: string;\n colSpan?: number;\n}\n\nexport type IHeaderRows = IRowItem[][];\n","import React from 'react';\nimport {\n AnimatedTabs,\n ApplicantDocuments,\n AppType,\n ExamApplicationDetails,\n ExamApplicationStatus,\n LoaderBtn,\n ProfileInfoTab,\n StatementTab,\n} from 'components';\nimport { IExamApplicationDetails } from 'components/models';\nimport { Button, Tab } from 'react-bootstrap';\nimport cn from 'classnames';\nimport { StagingExamApplicationDetails } from '../ExamApplicationDetails';\n\nconst ExamApplicationTabs = (\n {\n tab,\n examApplicationDetails,\n appType,\n examTabChild,\n docTabChild,\n identificationTabChild,\n withoutTabPadding,\n onChangeSwitch,\n disableSelectTab,\n inModal,\n onStatementCancel,\n onStatementSubmit,\n processing,\n }: IProps,\n) => {\n\n const renderStatementButtons = () => (\n <>\n {onStatementSubmit ? (\n \n Одобрить заявку на аккредитацию\n \n ) : null}\n\n {onStatementCancel ? (\n \n Отклонить заявку на аккредитацию\n \n ) : null}\n \n );\n \n const [activeTab, setActiveTab] = React.useState(tab ? TabKey[tab] : TabKey.ExamTab);\n\n const tabClassName = cn('tab', withoutTabPadding && 'p-0', inModal && 'mt-4');\n \n return (\n !disableSelectTab && setActiveTab(key as TabKey)}\n inModal={inModal}\n >\n {examApplicationDetails.status === ExamApplicationStatus.Staging || examApplicationDetails.status === ExamApplicationStatus.NotPassed || examApplicationDetails.status === ExamApplicationStatus.Passed ? (\n \n \n {examTabChild && examTabChild(() => setActiveTab(TabKey.IdentificationTab))}\n \n ) : (\n \n \n {examTabChild && examTabChild(() => setActiveTab(TabKey.IdentificationTab))}\n \n )}\n \n \n \n\n \n \n {docTabChild}\n {appType !== AppType.Applicant && !examApplicationDetails.signCode ? renderStatementButtons() : null}\n \n\n {appType !== AppType.Applicant && examApplicationDetails.signCode ? (\n \n \n \n ) : null}\n \n );\n};\n\nexport default ExamApplicationTabs;\n\ninterface IProps {\n examApplicationDetails: IExamApplicationDetails;\n tab?: TabType;\n docTabChild?: React.ReactNode;\n appType?: AppType;\n withoutTabPadding?: boolean;\n disableSelectTab?: boolean;\n inModal?: boolean;\n processing?: boolean;\n examTabChild?: (goToIdentificationTab: () => void) => React.ReactNode;\n identificationTabChild?: (goToDocTab: () => void) => React.ReactNode;\n onChangeSwitch?: (active: boolean[]) => void;\n onStatementSubmit?: () => void;\n onStatementCancel?: () => void;\n}\n\nenum TabKey {\n ExamTab = 'exam-tab',\n ProfileTab = 'profile-tab',\n IdentificationTab = 'identification-tab',\n DocumentsTab = 'documents-tab',\n StatementInfoTab = 'statement-tab'\n}\n\ntype TabType = keyof typeof TabKey;\n","import React from 'react';\nimport { IRowRendererProps } from 'components';\nimport { rowDragSource, rowDropTarget } from 'components/DragDrop/drag-drop'; // !!! только напрямую работает\nimport dndIcon from 'components/assets/svg/dnd_icon.svg';\nimport deleteIcon from 'components/assets/svg/cancel_icon.svg';\nimport addIcon from 'components/assets/svg/add_icon.svg';\nimport styles from './EditableTable.module.scss';\nimport cn from 'classnames';\n\nconst RowRendererDrag = rowDragSource(rowDropTarget((props: Props) => {\n const {\n isOver,\n disabledMoving,\n gridLength,\n handleDeleteClick,\n connectDropTarget,\n connectDragPreview,\n connectDragSource,\n children,\n rowIndex,\n } = props;\n const className = isOver ? styles.drop_target : '';\n\n const renderDeleteButton = () => (!disabledMoving && gridLength - 1 > 0 ? (\n \n
handleDeleteClick(rowIndex)}>\n \"deleteRow\"\n
\n \n ) : null);\n\n return (\n \n {connectDropTarget && connectDragPreview && connectDragSource ? (\n connectDropTarget(connectDragPreview(\n \n {connectDragSource(\n \n \"dnd-btn\"\n ,\n )}\n {children}\n {renderDeleteButton()}\n ,\n ))) : null}\n \n )}\n />\n );\n}));\n\nconst RowRendererNotDrag = ({\n headersLength,\n gridLength,\n disabledMoving,\n handleCLickRowAdd,\n handleDeleteClick,\n children,\n rowIndex,\n dragChild,\n}: IProps) => {\n const renderAddRowBtn = () => (\n \n \n
\n \"addRow\"\n

Добавить строку

\n
\n \n \n );\n\n const renderDeleteButton = () => (!disabledMoving && gridLength - 1 > 0 ? (\n \n
handleDeleteClick(rowIndex)}>\n \"deleteRow\"\n
\n \n ) : null);\n\n if (rowIndex === (gridLength - 1)\n && children\n && children[0]\n && children[0].props\n && children[0].props['data-not-move'] === true\n ) {\n return (\n <>\n {!disabledMoving && renderAddRowBtn()}\n \n {!disabledMoving && }\n {children}\n \n \n );\n }\n\n return (\n <>\n {dragChild || (\n \n {children}\n {renderDeleteButton()}\n \n )}\n {rowIndex === (gridLength - 1) && !disabledMoving && renderAddRowBtn()}\n \n );\n};\n\n\nconst RowRenderer = (props: Props) => (!props.disabledMoving ? : );\n\nexport default RowRenderer;\n\ninterface IProps {\n gridLength: number;\n headersLength: number;\n disabledMoving: boolean;\n rowIndex: number;\n children: any;\n dragChild?: React.ReactNode;\n handleDeleteClick: (row: number) => void;\n handleCLickRowAdd: () => void;\n onRowDrop: (from: number, to: number) => void;\n}\n\ntype Props = IProps & IRowRendererProps;\n","import React, { useState, useEffect, createRef } from 'react';\nimport {\n getTableHeader, createArray, IHeaderRows, IRowItem,\n} from './helpers';\nimport { withDragDropContext } from 'components/DragDrop'; // Не прокидывается через components\nimport { AutoGrowTextArea } from 'components';\nimport cn from 'classnames';\nimport styles from './EditableTable.module.scss';\nimport RowRenderer from './RowRenderer';\n\nconst EditableTable = ({\n table, headersSeparator, onlyWatch, submitSolution, fromAnswerRows, hideTitle, tableId,\n}: IProps) => {\n const totalText = 'ИТОГО:';\n const tableRef = createRef();\n const headersArr = table.columns.map(({ header }) => header);\n const multilineArr = table.columns.map(({ multiline }) => multiline);\n const readOnlyArr = table.columns.map(({ readonly }) => readonly);\n const headersWidth = table.columns.map(({ width }) => (width));\n const headersLength = headersArr.length;\n const disabledMoving = Boolean(table.forbidMoving || onlyWatch);\n\n const prepareTaskGrid = (tableRows: string[][]): GridElement[][] => tableRows.map((r, i) => r.map((c, j) => (\n {\n value: i === tableRows.length - 1 && j === 0 && c === 'total' ? totalText : c,\n readOnly: onlyWatch || readOnlyArr[j],\n colSpan: 1,\n })));\n\n const [grid, setGrid] = useState(prepareTaskGrid((fromAnswerRows && table.answerRows) || table.initialRows));\n const [tableWidth, setTableWidth] = useState(0);\n const gridLength = grid.length;\n\n useEffect(() => {\n setGrid(prepareTaskGrid((fromAnswerRows && table.answerRows) || table.initialRows));\n }, [table, onlyWatch]);\n\n useEffect(() => {\n if (tableRef.current) {\n setTableWidth(tableRef.current.clientWidth - 25);\n }\n }, [tableRef.current]);\n\n const onSubmit = (newGrid: GridElement[][]) => {\n if (submitSolution) {\n submitSolution(convertGridToSolution(newGrid));\n }\n };\n\n const handleRowDrop = (from: number, to: number) => {\n if (disabledMoving) return;\n\n const sourceRow = [...grid[from]];\n const nGrid = grid.slice();\n nGrid.splice(from > to ? to : to + 1, 0, sourceRow);\n const newGrid = nGrid.filter((x, i) => (i !== (from > to ? from + 1 : from)));\n setGrid(newGrid);\n onSubmit(newGrid);\n };\n\n const handleDeleteClick = (rowNumber: number) => {\n if (onlyWatch) return;\n\n const newGrid = grid.filter((r, i) => rowNumber !== i);\n setGrid(newGrid);\n onSubmit(newGrid);\n };\n\n const handleCLickRowAdd = () => {\n if (onlyWatch) return;\n\n const newGrid = [...grid];\n const emptyGrid = createArray(headersLength, () => ({ value: '', readOnly: false, colSpan: 1 }));\n const totalGrid = newGrid.find(r => r.find(c => c.value === totalText));\n\n if (totalGrid) {\n newGrid.push(totalGrid);\n newGrid.splice(gridLength - 1, 1, emptyGrid);\n } else {\n newGrid.push(emptyGrid);\n }\n\n setGrid(newGrid);\n onSubmit(newGrid);\n };\n\n const handleCellInputChange = (e: React.ChangeEvent, row: number, col: number) => {\n if (onlyWatch) return;\n\n const { value } = e.currentTarget;\n const newGrid = [...grid];\n newGrid[row][col] = { ...newGrid[row][col], value };\n setGrid(newGrid);\n onSubmit(newGrid);\n };\n\n const handleSelectNextCell = (e: React.KeyboardEvent, row: number, col: number) => {\n if (e.key !== 'Enter') return;\n let nRow = row;\n let nCol = col + 1;\n\n if (nCol === grid[0].length) {\n nCol = 0;\n nRow += 1;\n }\n if (nRow === gridLength) nRow = 0;\n\n const cell: HTMLInputElement | null = document.querySelector(`#editableTableCell_${tableId}-${nRow}${nCol} input`);\n\n if (cell) {\n cell.focus();\n }\n };\n\n const renderTableHeaders = (headers: IHeaderRows) => headers.map((h, i, arr) => (\n \n {!disabledMoving && }\n {h.map((header, j) => (\n \n {header.text}\n \n ))}\n {!disabledMoving && }\n \n ));\n\n const renderFields = (row: number, col: number, { readOnly, value }: GridElement) => (\n onlyWatch || value === totalText || readOnly ?
{value}
\n : (\n <>\n {(multilineArr[col] ? (\n handleCellInputChange(e, row, col)}\n />\n ) : (\n handleSelectNextCell(e, row, col)}\n onChange={e => handleCellInputChange(e, row, col)}\n />\n ))}\n \n ));\n\n const getHeaderWidth = (col: number, header: IRowItem) => {\n if (!tableWidth) return {};\n\n let width = 0;\n\n if (header.colSpan !== undefined && header.colSpan > 1) {\n for (let i = 0; i < header.colSpan; i += 1) {\n width += headersWidth[col + i];\n }\n } else {\n const el = table.columns.find(column => column.header === header.text);\n if (el) {\n const { width: nWidth } = el;\n width = nWidth;\n }\n }\n\n const res = {\n width: width !== 0 && `${Math.ceil(tableWidth * width / 100)}px`,\n maxWidth: width !== 0 && `${Math.ceil(tableWidth * width / 100)}px`,\n };\n\n return res;\n };\n\n return (\n <>\n {table.caption && !hideTitle && {table.caption}}\n \n {headersLength > 0 ? (\n \n {renderTableHeaders(getTableHeader(headersArr, headersSeparator))}\n \n ) : null}\n \n {grid.map((r, row) => (\n \n {r.map((c, col) => (\n \n {renderFields(row, col, c)}\n \n ))}\n \n ))}\n \n \n \n );\n};\n\nconst convertGridToSolution = (grid: GridElement[][]): string[][] => grid.map(r => r.map(c => c.value));\n\nexport default withDragDropContext(EditableTable);\n\ninterface IProps {\n headersSeparator: string;\n table: ITable;\n tableId: string;\n onlyWatch?: boolean;\n fromAnswerRows?: boolean;\n hideTitle?: boolean;\n submitSolution?: (solution: string[][]) => void;\n}\n\ninterface ITable {\n caption: string;\n columns: IColumn[];\n forbidMoving: boolean;\n initialRows: string[][];\n exactEquality?: boolean;\n answerRows?: string[][];\n}\n\ninterface IColumn {\n header: string;\n key: boolean;\n multiline: boolean;\n numeric: boolean;\n readonly: boolean;\n width: number;\n}\n\ninterface GridElement {\n value: string;\n colSpan: number;\n readOnly: boolean;\n}\n","import React from 'react';\nimport { Button, Form } from 'react-bootstrap';\nimport { Card, Captcha, LoaderBtn } from 'components';\nimport { IApiError } from '../../../applicant/src/api/ApiClient';\n\nconst EmailConfirmation = ({\n children, auth, onPush, apiError, onSubmit,\n}: IProps) => {\n const [captcha, setCaptcha] = React.useState('');\n const [processing, setProcessing] = React.useState(false);\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const captchaError = Boolean(apiError && apiError.failures && apiError.failures.captcha && apiError.type === 'captcha');\n const tokenError = Boolean(apiError && apiError.failures && apiError.failures.token);\n\n const doValidate = () => {\n const isCaptchaValid = captchaError ? captcha.length === 4 : true;\n\n setCaptchaValid(isCaptchaValid);\n return isCaptchaValid;\n };\n\n const sendCode = async () => {\n if (!doValidate()) return;\n\n setProcessing(true);\n await onSubmit(captcha);\n setProcessing(false);\n setCaptcha('');\n };\n\n return (\n \n \n \n {(captchaError || tokenError) && apiError && apiError.message}\n \n {captchaError && Отправить}\n {!(captchaError || tokenError) && }\n {children}\n \n );\n};\n\nexport default EmailConfirmation;\n\ninterface IProps {\n auth: boolean;\n apiError?: IApiError | null;\n children?: React.ReactNode;\n onSubmit: (captcha: string) => void;\n onPush: (key: string) => void;\n}\n","import React from 'react';\nimport {\n NotificationSystem,\n WarningModal,\n Captcha,\n Loader,\n} from 'components';\nimport { Form } from 'react-bootstrap';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport styles from './EmailConfirmationNotification.module.scss';\n\nconst EmailConfirmationNotification = ({\n apiError, onPush, sendConfirmationEmail, cleanNotifications, profile,\n}: IProps) => {\n const [showVerifyEmailModal, setShowVerifyEmailModal] = React.useState(false);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [processing, setProcessing] = React.useState(false);\n const captchaError = Boolean(apiError && apiError.failures && apiError.failures.captcha);\n\n const doValidate = () => {\n const isCaptchaValid = captchaError ? captcha.length === 4 : true;\n\n setCaptchaValid(isCaptchaValid);\n return isCaptchaValid;\n };\n\n const goToProfile = () => {\n setShowVerifyEmailModal(false);\n onPush('/my-profile');\n };\n\n const sendEmail = async () => {\n setProcessing(true);\n await sendConfirmationEmail(captcha);\n setProcessing(false);\n };\n\n const sendEmailAgain = (e?: React.MouseEvent) => {\n if (e) {\n e.preventDefault();\n }\n\n if (!doValidate()) return;\n sendEmail();\n setCaptcha('');\n };\n\n return profile && !profile.emailConfirmed ? (\n <>\n setShowVerifyEmailModal(true)}>Внимание - Необходимо подтвердить адрес электронной почты),\n autoDismiss: false,\n }]}\n cleanNotifications={cleanNotifications}\n className={styles.toastContainer}\n placement=\"bottom-center\"\n />\n setShowVerifyEmailModal(false)}\n onAccess={captchaError ? () => sendEmailAgain() : undefined}\n withoutCancelButton={captchaError}\n loading={processing}\n >\n {processing ? : (\n <>\n {!captchaError && (\n \n Необходимо подтвердить электронную почту.\n На {profile.email} было отправлено письмо с ссылкой для подтверждения электронной почты.
\n Если вы не видите письмо, его можно отправить повторно.
\n Также вы можете изменить адрес электронной почты на другой.\n
\n )}\n \n \n {apiError && ((apiError.failures && apiError.type === 'captcha')) && apiError.message}\n \n \n )}\n \n \n ) : null;\n};\n\nexport default EmailConfirmationNotification;\n\ninterface IProps {\n apiError: IApiError | null;\n profile: IProfile | null;\n onPush: (key: string) => void;\n sendConfirmationEmail: (captcha: string) => void;\n cleanNotifications: () => void;\n}\n\ninterface IProfile {\n email: string;\n emailConfirmed: boolean;\n}\n","import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport cn from 'classnames';\nimport _ from 'lodash';\n\nconst AutoGrowTextArea = ({\n value, onChange, disabled, className, autoFocus, fieldFailures, name, placeholder,\n}: IProps) => {\n const areaRef = React.createRef();\n const error = React.useMemo(() => (name && fieldFailures && _.has(fieldFailures, name) && fieldFailures[name].length > 0 ? fieldFailures[name] : null), [fieldFailures]);\n\n React.useEffect(() => {\n if (areaRef.current) {\n autoGrowTextArea(areaRef.current);\n }\n }, [areaRef]);\n\n return (\n <>\n autoGrowTextArea(ev.target as HTMLTextAreaElement)}\n onKeyPress={ev => autoGrowTextArea(ev.target as HTMLTextAreaElement)}\n placeholder={placeholder}\n autoFocus={autoFocus}\n />\n {error ? (\n \n {error}\n \n ) : null}\n \n );\n};\n\nexport default AutoGrowTextArea;\n\ninterface IProps {\n value: string;\n name?: string;\n className?: string;\n disabled?: boolean;\n autoFocus?: boolean;\n placeholder?: string;\n fieldFailures?: IFieldFailures | null;\n onChange?: (e: React.ChangeEvent) => void;\n}\n\ninterface IFieldFailures {\n [key: string]: string;\n}\n\nconst autoGrowTextArea = (textField: HTMLTextAreaElement) => {\n if (textField.clientHeight === 36 && textField.clientHeight === textField.scrollHeight) {\n // eslint-disable-next-line\n textField.style.height = '25px';\n }\n\n if (textField.clientHeight < textField.scrollHeight) {\n // eslint-disable-next-line\n textField.style.height = `${textField.scrollHeight}px`;\n if (textField.clientHeight < textField.scrollHeight) {\n // eslint-disable-next-line\n textField.style.height = `${textField.scrollHeight * 2 - textField.clientHeight}px`;\n }\n }\n};\n","import { IExamApplicationDetails } from 'components/models';\nimport { ExamApplicationStatus, getExamStatusMapping, MappedExamApplicationStatuses } from 'components/enums';\nimport { Color, ColorStatus } from '_helpers';\n\nexport default (details: IExamApplicationDetails) => ({\n ...MappedExamApplicationStatuses,\n [ExamApplicationStatus.Approved as string]: getExamStatusMapping(details.exam.status, details.exam.currentStageNumber),\n [ExamApplicationStatus.Staging as string]: getExamStatusMapping(details.exam.status, details.exam.currentStageNumber),\n [ExamApplicationStatus.InReview as string]: new ColorStatus(Color.Default, 'Заявка находится на рассмотрении'),\n [ExamApplicationStatus.CorrectionsRequired as string]: new ColorStatus(Color.Red, 'Требуются корректировки по заявке:'),\n})[details.status];\n","import React from 'react';\nimport {\n ExamApplicationStatus,\n AddressLink,\n renderRow,\n DatePeriodColumn,\n} from 'components';\n\nimport {\n createExamDate,\n} from '_helpers';\nimport { Alert } from 'react-bootstrap';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport { IExamApplicationDetails } from 'components/models';\nimport getExamApplicationStatus from './getExamApplicationStatus';\n\nconst ExamApplicationDetails = (\n {\n examApplicationDetails,\n apiError,\n }: IProps,\n) => {\n if (apiError) {\n return (\n \n {apiError.message}\n \n );\n }\n\n const { exam } = examApplicationDetails;\n const isResult = examApplicationDetails.status === ExamApplicationStatus.NotPassed || examApplicationDetails.status === ExamApplicationStatus.Passed;\n const colorStatus = getExamApplicationStatus(examApplicationDetails);\n\n return (\n
\n <>\n {renderRow('специальность', exam.qualificationTitle)}\n\n {renderRow('регион', exam.region)}\n\n {/*{renderRow('место проведения', )}*/}\n\n {renderRow('Период проведения', )}\n\n\n {examApplicationDetails.applicationSubmitDate ? (\n renderRow('Подача заявки', createExamDate(examApplicationDetails.applicationSubmitDate, examApplicationDetails.applicationSubmitDate))\n ) : null}\n\n \n\n\n {!!colorStatus && (\n renderRow(isResult ? 'результат' : 'статус', colorStatus.text, undefined, colorStatus.color)\n )}\n\n \n
\n );\n};\n\nexport default ExamApplicationDetails;\n\n\ninterface IProps {\n examApplicationDetails: IExamApplicationDetails;\n apiError?: IApiError | null;\n}\n","import React from 'react';\nimport styles from './Row.module.scss';\nimport cn from 'classnames';\n\nconst Row = ({\n title, value, rowClassName, valueColor,\n}: IProps) => (\n
\n \n
{value || '-'}
\n
\n );\n\nexport default Row;\n\nexport const renderRow = (title: IProps['title'], value: IProps['value'], rowClassName?: IProps['rowClassName'], valueColor?: IProps['valueColor'], extKey?: string | number) => (\n \n);\n\ninterface IProps {\n title: string;\n value?: string | React.ReactNode;\n rowClassName?: string;\n valueColor?: string;\n}\n","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\nimport { ExamApplicationStatus } from '../enums';\nimport { renderRow } from '../Row';\nimport { IExamApplicationDetails } from '../models';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\nimport getExamApplicationStatus from './getExamApplicationStatus';\n\nconst StagingExamApplicationDetails: React.FC = (\n {\n examApplicationDetails,\n apiError,\n }: IProps,\n) => {\n if (apiError) {\n return (\n \n {apiError.message}\n \n );\n }\n\n const isResult = examApplicationDetails.status === ExamApplicationStatus.NotPassed || examApplicationDetails.status === ExamApplicationStatus.Passed;\n const colorStatus = getExamApplicationStatus(examApplicationDetails);\n\n return (\n
\n {examApplicationDetails.examDayApplications.map(ea => (\n renderRow(`ЭТАП ${ea.stageNumber} ${ea.attemptNumber > 0 ? `(ПЕРЕСДАЧА ${ea.attemptNumber})` : ''}`, ea.examDayDateTime.local().format('DD.MM.YYYY в HH:mm'))\n ))}\n\n {!!colorStatus && (\n renderRow(isResult ? 'результат' : 'статус', colorStatus.text, undefined, colorStatus.color)\n )}\n \n
\n );\n};\n\ninterface IProps {\n examApplicationDetails: IExamApplicationDetails;\n apiError?: IApiError | null;\n}\n\nexport default StagingExamApplicationDetails;\n","import React from 'react';\nimport {\n PhoneModal,\n LoaderBtn,\n Captcha,\n ResetPasswordModal,\n InputText,\n DatePicker,\n PhoneInput,\n VerifyEmailInput,\n SexRadios,\n} from 'components';\nimport { Sex } from 'components/enums';\nimport { Button, Form } from 'react-bootstrap';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\nimport { RegExpConst, RegExpErrorsText } from '_helpers';\nimport styles from './ProfileInfoBlock.module.scss';\nimport moment from 'moment';\nimport cn from 'classnames';\nimport _ from 'lodash';\n\nconst ProfileInfoBlock = ({\n profile,\n disabled,\n canChange,\n submitButtonText,\n cancelButtonText,\n onSubmit,\n onCancel,\n onTryChange,\n onSubmitPhone,\n onSubmitCode,\n onUpdatePhone,\n apiError,\n processing,\n hideChangeButtons,\n sendConfirmationEmail,\n onChangePassword,\n canChangeOnlyPhone,\n withoutBirthDate,\n withoutSex,\n}: IProps) => {\n const initErrors: IInitErrors = {\n firstName: '',\n lastName: '',\n middleName: '',\n phone: '',\n email: '',\n birthDate: '',\n sex: '',\n };\n\n const [formData, setFormData] = React.useState(profile);\n const [showModal, setShowModal] = React.useState(false);\n const [waitingSeconds, setWaitingSeconds] = React.useState(0);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [showResetPassModal, setShowResetPassModal] = React.useState(false);\n const [validErrors, setValidErrors] = React.useState(initErrors);\n const captchaError = apiError && apiError.failures && apiError.failures.captcha;\n\n React.useEffect(() => {\n setFormData(profile);\n }, [profile]);\n\n React.useEffect(() => {\n if (apiError && apiError.failures) {\n const errors = apiError.failures;\n\n for (const key in errors) {\n if (Object.prototype.hasOwnProperty.call(errors, key) && errors[key]) {\n const error = errors[key].join(',');\n const newErrors = validErrors;\n newErrors[key] = error;\n\n setValidErrors({ ...newErrors });\n }\n }\n } else {\n setValidErrors(initErrors);\n }\n }, [apiError]);\n\n const checkFieldsErrors = (data: IProfileInfo) => _.mapValues(data, (val, key) => {\n const test = (field: string, regexp: RegExp) => (!regexp.test(field));\n\n if (val === '') return 'Обязательное поле для заполнения';\n if (key === 'birthDate' && !val) return 'Обязательное поле для заполнения';\n if ((key === 'firstName' || key === 'lastName' || key === 'middleName') && typeof val === 'string') {\n const error = test(val, RegExpConst.NAME);\n\n if (error) {\n return RegExpErrorsText.NAME;\n }\n\n return '';\n }\n if (key === 'email' && typeof val === 'string') {\n const error = test(val, RegExpConst.EMAIL);\n\n if (error) {\n return RegExpErrorsText.EMAIL;\n }\n\n return '';\n }\n\n return '';\n });\n\n const isValidFormData = (fieldsError: IInitErrors): boolean => _.values(fieldsError).every(e => e.length === 0);\n\n const doValidate = () => {\n const isCaptchaValid = captchaError ? captcha.length === 4 : true;\n\n setCaptchaValid(isCaptchaValid);\n return isCaptchaValid;\n };\n\n const sendEmailAgain = () => {\n if (!doValidate() || !sendConfirmationEmail) return;\n\n sendConfirmationEmail({ captcha });\n };\n\n const submit = (e: React.FormEvent) => {\n e.preventDefault();\n\n const errors = checkFieldsErrors(formData) as IInitErrors;\n setValidErrors(errors);\n\n if (onSubmit && canChange && isValidFormData(errors) && formData.birthDate) {\n onSubmit({\n ...formData,\n middleName: formData.middleName || '',\n birthDate: formData.birthDate,\n sex: formData.sex || Sex.Male,\n });\n }\n };\n\n const onSendCode = async (body: ICheckCode) => {\n if (onSubmitCode && onUpdatePhone) {\n const res = await onSubmitCode(body);\n\n if (res) {\n await onUpdatePhone(body);\n setShowModal(false);\n }\n\n return res;\n }\n\n return false;\n };\n\n const sendPhone = async (phone: string, password: string, phoneCaptcha?: string) => {\n if (onSubmitPhone) {\n const sendStatus = await onSubmitPhone({ phone, password, captcha: phoneCaptcha });\n\n if (sendStatus && sendStatus.waitingSeconds !== undefined) {\n setWaitingSeconds(sendStatus.waitingSeconds);\n }\n }\n };\n\n const onChangeInput = (name: string, value: string) => {\n setFormData({ ...formData, [name]: value });\n setValidErrors({ ...validErrors, [name]: '' });\n };\n\n const renderChangeButton = () => (disabled && !hideChangeButtons\n ? (Редактировать)\n : null);\n\n const renderPhoneChild = () => (canChange ? (\n <>\n {(canChangeOnlyPhone || !disabled) && (\n setShowModal(true)}\n >\n Изменить номер\n \n )}\n {renderChangeButton()}\n \n ) : null);\n\n return (\n
\n
\n \n {renderChangeButton()}\n \n \n {renderChangeButton()}\n \n \n {renderChangeButton()}\n \n {!withoutBirthDate ? (\n
\n
ДАТА РОЖД.
\n
\n setFormData({ ...formData, birthDate: newMoment })}\n isInvalid={validErrors.birthDate}\n />\n {renderChangeButton()}\n
\n
\n ) : null}\n\n {!withoutSex ? (\n setFormData({ ...formData, sex })}\n className=\"p-0\"\n >\n {renderChangeButton()}\n \n ) : null}\n\n \n {renderPhoneChild()}\n \n\n \n {canChange && !disabled && !profile.emailConfirmed ? (\n
\n \n \n {captchaError && apiError && apiError.message}\n \n
\n ) : null}\n\n {renderChangeButton()}\n \n\n {onChangePassword && (\n
\n
\n
\n \n
\n setShowResetPassModal(false)}\n apiError={apiError}\n onChangePassword={onChangePassword}\n />\n
\n )}\n
\n\n {canChange && (\n
\n \n {submitButtonText || 'Сохранить'}\n \n {onCancel && (\n {\n setValidErrors(initErrors);\n onCancel();\n }}\n >\n {cancelButtonText || 'Отмена'}\n \n )}\n
\n )}\n\n {\n const res = await onSendCode(body);\n if (res) {\n setFormData({ ...formData, phone: body.phone });\n }\n return res;\n }}\n onHide={() => setShowModal(false)}\n waitingSeconds={waitingSeconds}\n error={apiError}\n />\n \n );\n};\n\nexport default ProfileInfoBlock;\n\nexport interface ICheckCode {\n phone: string;\n verificationCode: string;\n captcha?: string;\n}\n\nexport interface ISubmit {\n phone: string;\n password: string;\n captcha?: string;\n}\n\nexport interface IPhoneSendStatus {\n wasSent?: boolean;\n waitingSeconds?: number;\n}\n\nexport interface IUpdateProfile {\n firstName: string;\n lastName: string;\n middleName: string;\n email: string;\n birthDate: moment.Moment;\n sex: Sex;\n}\n\ninterface IProfileInfo {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n emailConfirmed: boolean;\n phone: string;\n sex?: Sex;\n birthDate?: moment.Moment;\n middleName?: string;\n}\n\ninterface IProps {\n profile: IProfileInfo;\n disabled?: boolean;\n hideChangeButtons?: boolean;\n canChange?: boolean;\n canChangeOnlyPhone?: boolean;\n submitButtonText?: string;\n cancelButtonText?: string;\n apiError?: IApiError | null;\n processing?: boolean;\n withoutBirthDate?: boolean;\n withoutSex?: boolean;\n onTryChange?: () => void; // redirect to profile\n onSubmit?: (data: IUpdateProfile) => void;\n onSubmitPhone?: (body: ISubmit) => Promise;\n onSubmitCode?: (body: ICheckCode) => Promise;\n sendConfirmationEmail?: (data: ISendConfirmationEmail) => Promise;\n onCancel?: () => void;\n onUpdatePhone?: (body: ICheckCode) => void;\n onChangePassword?: (body: IChangePassword) => Promise;\n}\n\ninterface IChangePassword {\n newPassword: string;\n oldPassword?: string;\n captcha?: string;\n}\n\ninterface ISendConfirmationEmail {\n captcha?: string;\n}\n\ninterface IInitErrors {\n [key: string]: string;\n}\n","import React from 'react';\nimport Select, { OptionTypeBase, Styles } from 'react-select';\nimport styles from './FetchSelect.module.scss';\nimport cn from 'classnames';\nimport { formDetector } from '_helpers';\nimport './FetchSelectFixStyles.scss';\n\nconst FetchSelect = ({\n options,\n value,\n onChange,\n disabled,\n className,\n placeholder,\n name,\n isInvalid,\n invalidTitle,\n withoutDetectChanges,\n onFetch,\n clearFetch,\n}: Props) => {\n const [typingTimer, setTypingTimer] = React.useState(null);\n const [inputValue, setInputValue] = React.useState('');\n const [selectValue, setSelectValue] = React.useState(options.find(x => x.value === value));\n const doneTypingInterval = 500;\n\n const onInputKeyup = (fieldValue: string) => {\n const fetchData = { fieldName: name, fieldValue };\n setInputValue(fieldValue);\n\n if (!fieldValue.length) {\n clearFetch();\n }\n\n if (typingTimer) {\n clearTimeout(typingTimer);\n }\n\n setTypingTimer(setTimeout(() => {\n handleInputChange(fetchData);\n }, doneTypingInterval));\n };\n\n const handleInputChange = (data: IFetchInput) => {\n if (data && data.fieldValue.length) {\n onFetch(data);\n }\n };\n\n const onInputKeydown = () => {\n if (typingTimer) {\n clearTimeout(typingTimer);\n }\n };\n\n const onOptionChange = (e: IOption) => {\n onChange({ name, value: e.value });\n\n if (!withoutDetectChanges) {\n formDetector.setChangedInput(name, e.value);\n }\n };\n\n const onMenuClose = () => {\n clearFetch();\n setSelectValue(null);\n };\n\n const createBoldLabel = (label: string) => {\n if (label.indexOf(inputValue) === -1) {\n const index = label.toLowerCase().indexOf(inputValue);\n\n if (index !== -1) {\n const arr = label.split('');\n\n const matchingLabelWord = label.slice(index, index + inputValue.length);\n arr.splice(index, inputValue.length, `${matchingLabelWord}`);\n return arr.join('');\n }\n }\n\n return label.replace(inputValue, `${inputValue}`);\n };\n\n const formatOptionLabel = (option: IOption) => ;\n\n const customStyle: Styles = {\n control: base => ({\n ...base,\n border: isInvalid ? '1px solid red !important' : '',\n }),\n };\n\n return (\n
\n null}\n isDisabled={disabled}\n styles={customStyle}\n name={name}\n className=\"fetch-select react-select-container\"\n classNamePrefix=\"react-select\"\n value={selectValue}\n onChange={e => onOptionChange(e as IOption)}\n options={options}\n placeholder={placeholder || 'Выберите из списка'}\n onInputChange={onInputKeyup}\n onKeyDown={onInputKeydown}\n onMenuClose={onMenuClose}\n formatOptionLabel={formatOptionLabel}\n />\n {isInvalid ? (\n
\n {invalidTitle || null}\n
\n ) : null}\n
\n );\n};\n\nexport default FetchSelect;\n\nexport interface IOption {\n value: string;\n label: string;\n}\n\nexport interface ISelectEvent {\n name: string;\n value: string;\n}\n\ninterface IFetchInput {\n fieldName: string;\n fieldValue: string;\n}\n\ninterface Props {\n name: string;\n options: IOption[];\n value?: string | null;\n onChange: (event: ISelectEvent) => void;\n onFetch: (data: IFetchInput) => void;\n clearFetch: () => void;\n\n className?: string;\n placeholder?: string;\n disabled?: boolean;\n\n isInvalid?: boolean;\n invalidTitle?: string;\n withoutDetectChanges?: boolean;\n}\n","import React from 'react';\nimport {\n AdvancedTable, Card, ExamStatus, MappedExamApplicationStatuses, StatusColumn,\n} from 'components';\nimport { IExamApplicationList, IExamDetails } from 'components/models';\nimport { IExamApplicationsFilters } from 'components/reduxModels';\nimport cn from 'classnames';\nimport styles from './ApplicantsTab.module.scss';\nimport { IPaginationData } from '../../Pagination/Pagination';\nimport {\n Color, ColorStatus, formatPhoneNumber, formatSnils,\n} from '_helpers';\nimport GroupIcon from 'components/assets/svg/group.svg';\nimport { useMultiSearch } from 'hooks';\n\nconst ApplicantsTab = ({\n examApplications, handleApplicantsListChange, handleApplicantClick, examStatus, pagination, examDetails,\n}: IProps) => {\n const { changeFilter } = useMultiSearch(handleApplicantsListChange, { examId: examDetails.id });\n const isExamFinished = React.useMemo(() => (\n [ExamStatus.Finishing, ExamStatus.Finished].includes(examStatus)\n ), [examStatus]);\n\n const applicationsHeader = isExamFinished ? [\n { fieldName: 'applicantFullName', title: 'ИМЯ, ФАМИЛИЯ', columnStyles: { width: '55%' } },\n { fieldName: 'applicantPhone', title: 'Телефон', columnStyles: { width: 165 } },\n { fieldName: 'status', title: 'Результат' },\n ] : [\n { fieldName: 'applicantFullName', title: 'ИМЯ, ФАМИЛИЯ' },\n { fieldName: 'applicantEmail', title: 'ПОЧТА' },\n { fieldName: 'applicantSnils', title: 'Снилс', columnStyles: { width: 150 } },\n { fieldName: 'applicantPhone', title: 'Телефон', columnStyles: { width: 165 } },\n ];\n\n const data = examApplications.items.map(ea => ({\n id: ea.examApplicationId,\n columns: isExamFinished ? [\n ea.applicantFullName,\n formatPhoneNumber(ea.applicantPhone) || ea.applicantPhone,\n ,\n ] : [\n ea.applicantFullName,\n ea.applicantEmail,\n formatSnils(ea.applicantSnils),\n formatPhoneNumber(ea.applicantPhone) || ea.applicantPhone,\n ],\n }));\n\n const title = 'Список аккредитуемых';\n\n const category = 'Список всех аккредитуемых, зарегистрированных на аккредитационное мероприятие';\n\n return (\n \n
\n Всего аккредитуемых\n {examDetails.applicationsNumber || 0} чел.\n
\n\n true)}\n page={pagination ? pagination.page : undefined}\n pageSize={pagination ? pagination.perPage : undefined}\n total={examApplications.total}\n handlePageChange={p => changeFilter({\n page: p.page,\n pageSize: p.perPage,\n })}\n handleSearch={(f, t) => changeFilter({\n searchField: f,\n searchTerm: t,\n })}\n placeholderIcon={GroupIcon}\n placeholderTitle=\"Список аккредитуемых пуст\"\n placeholderText=\"Здесь будут отображаться все аккредитуемые, зарегистрированные на аккредитацию\"\n />\n \n );\n};\n\nexport default ApplicantsTab;\n\ninterface IProps extends IAppProps {\n examApplications: IExamApplicationList;\n examStatus: ExamStatus;\n examDetails: IExamDetails;\n}\n\nexport interface IAppProps {\n handleApplicantsListChange: (data: IExamApplicationsFilters) => void;\n handleApplicantClick?: (examApplicationId: string) => void;\n pagination?: IPaginationData;\n}\n","import * as React from 'react';\nimport { Details } from '../../Details';\nimport { IExamDetails } from 'components/models';\nimport { ExamStatus, getExamStatusMapping } from 'components/enums';\nimport {\n DatePeriodColumn, DetailsArrayValue, DetailsReactNodeValue, DetailsStringValue,\n} from 'components/index';\n\nexport default class ExamInfoState implements IExamInfoState {\n title = 'Информация об аккредитации';\n\n subTitle = 'Общая информация об аккредитационном мероприятии';\n\n examDetails: IExamDetails;\n\n constructor(examDetails: IExamDetails) {\n this.examDetails = examDetails;\n }\n\n getTitle = () => this.title;\n\n getSubTitle = () => this.subTitle;\n\n getInfoElement = () => {\n const { examDetails } = this;\n\n const getInfoRowsFromExamDetails = () => {\n const infoRows: (DetailsReactNodeValue | DetailsStringValue | DetailsArrayValue)[] = [\n new DetailsStringValue('СПЕЦИАЛЬНОСТЬ', examDetails.qualificationTitle),\n new DetailsStringValue('РЕГИОН', examDetails.regionName),\n new DetailsStringValue('', ''),\n new DetailsReactNodeValue(\n 'ПЕРИОД ПРОВЕДЕНИЯ',\n ,\n ),\n new DetailsStringValue('', ''),\n new DetailsStringValue('ТЕКУЩИЙ СТАТУС', getExamStatusMapping(examDetails.status, examDetails.currentStageNumber).text),\n ];\n\n if (examDetails.status === ExamStatus.IsApplying) {\n infoRows.push(new DetailsStringValue('ОКОНЧАНИЕ ЗАПИСИ', examDetails.applyingDeadline.local().format('DD.MM.YYYY в HH:mm')));\n } else if (examDetails.status !== ExamStatus.AwaitingExpertConfirmation) {\n infoRows.push(new DetailsStringValue('АККРЕДИТУЕМЫХ', `${examDetails.applicationsNumber} чел.`));\n }\n\n infoRows.push(\n new DetailsStringValue('', ''),\n new DetailsStringValue('', ''),\n );\n\n return infoRows;\n };\n\n return (\n
\n );\n };\n}\n\n\nexport interface IExamInfoState {\n getTitle: () => string;\n getSubTitle: () => string;\n getInfoElement: () => string | JSX.Element;\n}\n","import * as React from 'react';\n\nconst LikeIcon = () => (\n \n \n \n \n);\n\nexport default LikeIcon;\n","import * as React from 'react';\nimport styles from './StepStatus.module.scss';\nimport cn from 'classnames';\nimport LikeIcon from '../Common/icons/LikeIcon';\nimport WaitTimeIcon from '../assets/svg/wait_time_icon.svg';\nimport RejectedIcon from '../assets/svg/cross_cancel_icon.svg';\n\nconst icons = {\n error: () => \"await\",\n loading: () => \"await\",\n success: () => ,\n default: () => \"await\",\n};\n\nconst StepStatus: React.FC = ({ step }) => (\n
\n
{step.label}: {step.value}
\n
\n {icons[step.status]()}\n
\n
\n);\n\ninterface IProps {\n step: {\n value?: string;\n label: string;\n status: 'success' | 'error' | 'loading';\n };\n}\n\nexport default StepStatus;\n","import * as React from 'react';\nimport { Details, ReactNodeValue } from '../../../Details';\nimport { IExamDetails } from '../../../models';\nimport { DetailsStringValue } from '../../../index';\nimport styles from './AwaitingExpertConfirmationComponent.module.scss';\nimport { StepStatus } from '../../../StepStatus';\n\nconst AwaitingExpertConfirmationComponent: React.FC = ({ examDetails }) => {\n const infoRowsFromExamDetails = React.useMemo(() => [\n new DetailsStringValue('Регион', examDetails.regionName),\n new DetailsStringValue('Специальность', examDetails.qualificationTitle),\n ], [examDetails]);\n\n const progressStepsDetails = React.useMemo(() => examDetails.examCreationProgress.map((step, index) => {\n const prevStepCompletionDateTime = index > 0 ? examDetails.examCreationProgress[index - 1].completionDateTime : null;\n return new ReactNodeValue(\n step.completionDateTime\n ? step.completionDateTime.format('DD.MM.YYYY - HH:mm')\n : prevStepCompletionDateTime ? 'Ожидание' : '',\n ,\n )\n }), [examDetails]);\n\n return (\n <>\n \n\n

Процесс создания

\n \n \n );\n};\n\ninterface IProps {\n examDetails: IExamDetails;\n}\n\nexport default AwaitingExpertConfirmationComponent;\n","import React, {useEffect} from 'react';\nimport {AnimatedTabs, ExamStatus,} from 'components';\nimport {\n IAdmitToExamDay,\n IAssignApplicationsForDay,\n IAssignForDayInput,\n IBaseApplicantDetails,\n IBaseExamApplicationsForDay,\n IBaseExamApplicationsForDayAdmit,\n IBaseExamUnAssignedApplicationsList,\n IBaseExperts,\n IBaseExpertsForDay,\n IBaseUnratedExamApplications,\n ICreateExamDayInput,\n IExamApplication,\n IExamDetails,\n IExamStage,\n IFinalizeResultPayload,\n IUpdateAssignedExpertsForDay,\n IUpdateExamDay,\n} from 'components/models';\nimport {Tab} from 'react-bootstrap';\nimport {ApplicantsTab, IApplicantsTabProps} from './ApplicantsTab';\nimport {ExamInfoTab} from './ExamInfoTab';\nimport StageContainer from './ExamStagesTabs/AssigningStage/StageContainer';\nimport {IApiError} from '_helpers/ApiConnector/types';\nimport AwaitingStage from './ExamStagesTabs/AwaitingStage/AwaitingStage';\nimport {PaginationImpl} from '../defaultValues';\n\nconst ExamDetailsTabs = ({\n tab,\n applicantsTabProps,\n examDetails,\n examApplicationsList,\n withoutApplicantsTab,\n withoutExpertsTab,\n ...props\n }: IProps) => {\n const getAssigningStage = (s: IExamStage) => (\n \n );\n\n const getAwaitingStage = (s: IExamStage) => (\n \n );\n\n const stagesMap: Record JSX.Element> = {\n defaultReturn: getAssigningStage,\n [ExamStatus.AwaitingExpertConfirmation]: getAwaitingStage,\n };\n\n const renderStage = React.useMemo(() => {\n if (examDetails.status in stagesMap) {\n return stagesMap[examDetails.status];\n }\n\n return stagesMap.defaultReturn;\n }, [examDetails.status, stagesMap]);\n\n const checkPropsTab = () => {\n if (tab && (tab === TabKey.Rules\n || (tab === TabKey.Applicants && !withoutApplicantsTab)\n || tab === TabKey.Info\n || (tab === TabKey.Experts && !withoutExpertsTab))) {\n return tab;\n }\n\n return null;\n };\n\n const getDefaultTab = () => {\n if (checkPropsTab()) {\n return checkPropsTab();\n }\n\n if (examStatus === ExamStatus.IsApplying) return TabKey.Info;\n if (!withoutApplicantsTab) return TabKey.Applicants;\n if (!withoutExpertsTab) return TabKey.Experts;\n\n return TabKey.Info;\n };\n\n React.useEffect(() => {\n if (!activeTab) {\n setActiveTab(getDefaultTab());\n }\n }, [examDetails]);\n\n const [activeTab, setActiveTab] = React.useState(getDefaultTab());\n const examStatus = examDetails.status;\n const examInCreateStatus = examStatus === ExamStatus.AwaitingExpertConfirmation;\n\n useEffect(() => {\n if (String(activeTab).startsWith('stage')) {\n props.examUnAssignedApplicationsList.fetch({\n examId: examDetails.id,\n stage: +String(activeTab).split('/')[1],\n });\n }\n }, [activeTab]);\n\n\n return (\n <>\n setActiveTab(key as TabKey)}\n >\n\n \n \n {props.renderAppendForInfo && props.renderAppendForInfo(examDetails)}\n \n\n {!!examDetails && (!props.readonly || examStatus !== ExamStatus.IsApplying) && examDetails.examStages.map((s, i) => (\n \n {s.stageNumber === +String(activeTab).split('/')[1] && (\n <>\n {renderStage(s)}\n \n )}\n \n ))}\n\n {!withoutApplicantsTab && applicantsTabProps && examApplicationsList && !examInCreateStatus ? (\n \n \n \n ) : null}\n \n \n );\n};\n\nexport default ExamDetailsTabs;\n\nexport interface IProps {\n inModal?: boolean;\n readonly?: boolean;\n examDetails: IExamDetails;\n examApplicationsList?: IExamApplicationList;\n applicantsTabProps?: IApplicantsTabProps;\n withoutApplicantsTab?: boolean;\n withoutExpertsTab?: boolean;\n tab?: TabType;\n renderAppendForInfo?: (ed: IExamDetails) => JSX.Element | undefined | null | boolean;\n\n stageNumber?: string;\n error: IApiError | null;\n\n examUnAssignedApplicationsList: IBaseExamUnAssignedApplicationsList;\n expertsForDayList: IBaseExpertsForDay;\n examApplicationsForDay: IBaseExamApplicationsForDay;\n experts: IBaseExperts;\n unratedExamApplications: IBaseUnratedExamApplications;\n applicantDetails: IBaseApplicantDetails;\n examApplicationsForDayAdmit: IBaseExamApplicationsForDayAdmit;\n\n admitToExamDay: (props: IAssignForDayInput) => void;\n finalizeResult: (payload: IFinalizeResultPayload) => Promise;\n updateDay: (data: IAssignForDayInput) => Promise;\n createExamDay: (data: ICreateExamDayInput) => Promise;\n assignApplicationsForDay: (data: IAssignForDayInput) => Promise;\n updateExpertsForDay: (data: IAssignForDayInput) => Promise;\n}\n\nExamDetailsTabs.defaultProps = {\n admitToExamDay: () => true,\n finalizeResult: () => true,\n updateDay: () => true,\n createExamDay: () => true,\n assignApplicationsForDay: () => true,\n updateExpertsForDay: () => true,\n};\n\ninterface IExamApplicationList {\n admittedCount: number;\n items: IExamApplication[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nenum TabKey {\n Applicants = 'applicants',\n Experts = 'experts',\n Info = 'info',\n Rules = 'rules',\n}\n\ntype TabType = 'applicants' | 'experts' | 'info' | 'rules'\n","import * as React from 'react';\nimport ExamInfoState from '../ExamInfoState';\nimport AwaitingExpertConfirmationComponent from './AwaitingExpertConfirmationComponent';\n\nexport default class AwaitingExpertConfirmation extends ExamInfoState {\n title = 'Аккредитация в процессе создания';\n\n subTitle = 'Процесс создания аккредитационного мероприятия';\n\n getInfoElement = () => \n}\n","import { ExamStatus } from '../../enums';\nimport AwaitingExpertConfirmation from './AwaitingExpertConfirmation';\nimport ExamInfoState, { IExamInfoState } from './ExamInfoState';\nimport { IExamDetails } from '../../models';\n\nexport default class ExamInfoStates {\n private readonly status: ExamStatus;\n\n states: Record;\n\n constructor(examDetails: IExamDetails) {\n this.status = examDetails.status;\n this.states = this.initStates(examDetails);\n }\n\n private initStates = (examDetails: IExamDetails) => ({\n [ExamStatus.AwaitingExpertConfirmation]: new AwaitingExpertConfirmation(examDetails),\n defaultState: new ExamInfoState(examDetails),\n })\n\n getState = () => {\n if (this.status in this.states) {\n return this.states[this.status];\n }\n\n return this.states.defaultState;\n }\n}\n","import React from 'react';\nimport {\n Card,\n} from 'components';\nimport { IExamDetails } from 'components/models';\nimport ExamInfoStates from '../ExamInfoStates/ExamInfoStates';\n\nconst ExamInfoTab: React.FC = (\n {\n examDetails, withoutPadding,\n },\n) => {\n const examInfoState = React.useMemo(() => new ExamInfoStates(examDetails).getState(), [examDetails]);\n\n return (\n \n {examInfoState.getInfoElement()}\n \n );\n};\n\nexport default ExamInfoTab;\n\nexport interface IProps {\n examDetails: IExamDetails;\n withoutPadding?: boolean;\n}\n","import React from 'react';\nimport { OverlayTrigger as BootstrapTrigger, Popover } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/Overlay';\nimport styles from './OverlayTrigger.module.scss';\n\nconst OverlayTrigger = ({ triggerText, children, placement = 'top' }: IProps) => (\n \n {triggerText}\n \n )}\n >\n {children}\n \n);\n\nconst copyToClipboard = (e: React.MouseEvent) => {\n const text = e.currentTarget.textContent;\n\n if (text) {\n const textArea = document.createElement('textarea');\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand('copy');\n textArea.remove();\n }\n};\n\nexport const renderCopyTrigger = (text: string) => (\n \n {text}\n \n);\n\nexport default OverlayTrigger;\n\ninterface IProps {\n triggerText: string;\n children: React.ReactElement;\n placement?: Placement;\n}\n","import * as React from 'react';\n\nconst ExpertsIcon: React.FC = () => (\n \n \n \n \n \n \n \n \n \n \n\n);\n\nexport default ExpertsIcon;\n","import * as React from 'react';\n\nconst StatusIcon: React.FC = () => (\n \n \n \n \n \n);\n\nexport default StatusIcon;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './DayCell.module.scss';\nimport { Moment } from 'moment';\nimport { Badge } from 'react-bootstrap';\nimport { OverlayTrigger } from '../../../OverlayTrigger';\nimport ExpertsIcon from '../../../Common/icons/ExpertsIcon';\nimport StatusIcon from '../../../Common/icons/StatusIcon';\nimport { formatDayTitle } from '_helpers';\n\nconst DayCell: React.FC = (\n {\n selected,\n disabled,\n dayNumber,\n group,\n date,\n readyForFinalize,\n count = 0,\n badgeCount = 0,\n expertsCount = 0,\n audienceFilledPercents = 0,\n onChoose = () => {},\n onEdit = () => {},\n orange,\n readonly,\n },\n) => (\n \n
!(disabled || readonly) && onChoose(dayNumber)}>{formatDayTitle({ dayNumber, group })}
\n
!disabled && onEdit(dayNumber)}>\n
\n {date ? date.format('DD MMM') : '- -'}\n {date ? date.format('HH:mm') : '- -'}\n
\n\n \n
\n {count}\n\n {!!badgeCount && (\n \n {badgeCount}\n \n )}\n
\n
\n\n {readyForFinalize ? (\n
\n {badgeCount ? 'Финализация' : 'Завершен'}\n
\n ) : (\n
\n \n \n {expertsCount}\n \n \n\n \n \n \n {audienceFilledPercents}%\n \n \n
\n )}\n
\n
\n);\n\ninterface IProps {\n readonly?: boolean;\n selected?: boolean;\n disabled?: boolean;\n readyForFinalize?: boolean;\n orange?: boolean;\n retake?: number;\n dayNumber: number;\n group?: number;\n date?: Moment;\n count?: number;\n badgeCount?: number;\n expertsCount?: number;\n audienceFilledPercents?: number;\n onChoose?: (day: number) => void;\n onEdit?: (day: number) => void;\n}\n\nexport default DayCell;\n","import * as React from 'react';\nimport styles from '../StageContainer.module.scss';\nimport { IFakeExamDay } from '../getInitialDays';\nimport { WarningModal } from 'components/Common/Modals';\nimport ExtendedSelect from 'components/Common/ExtendedSelect/ExtendedSelect';\nimport {\n IApiError, IExamApplication,\n IExamDay, IExamStage,\n} from 'components/models';\nimport { Form } from 'react-bootstrap';\nimport { Color, formatDayOption } from '_helpers';\n\nconst attemptsTxt = ['Первая', 'Вторая', 'Третья', 'Четвертая', 'Пятая'];\n\nconst ConfirmDateModal: React.FC = props => (\n props.onAccess()}\n bodyClassNames={styles.modalBody}\n closeBtnTittle=\"Отмена\"\n >\n

\n Пожалуйста, выберите день, на который необходимо распределить выбранных аккредитуемых.\n В дальнейшем вы сможете изменить это распределение, если возникнет необходимость.\n

\n\n {props.examApplication && (\n
\n {props.examApplication.map(a => (\n
\n \n {a.applicantFullName}\n \n \n {a.lastFinalizedStageAttemptNumber ? `${attemptsTxt[a.lastFinalizedStageAttemptNumber - 1]} пересдача` : ''}\n \n
\n ))}\n
\n )}\n\n props.onCreateNewDay && props.onCreateNewDay()}\n name=\"selectDate\"\n options={props.days\n .filter((_, i) => (props.days[i] ? !!props.days[i].examId : true))\n .map((d, i) => formatDayOption({ ...d, value: String(i) }, props.stage))}\n value={String(props.selectedDayNumber)}\n onChange={event => props.chooseDay && event.value !== String(props.selectedDayNumber) && props.chooseDay(Number(event.value))}\n noOptionsMessage=\"Нет доступных дней\"\n />\n\n {!!props.apiErrors && (\n \n

\n {props.apiErrors && props.apiErrors.failures && props.apiErrors.failures.time && props.apiErrors.failures.time[0]}\n

\n
\n )}\n \n);\n\ninterface IProps {\n examApplication?: IExamApplication[];\n disableDateEditor?: boolean;\n show: boolean;\n onHide: () => void;\n onCreateNewDay?: () => void;\n onAccess: () => void;\n days: (IExamDay | IFakeExamDay)[];\n stage: IExamStage;\n selectedDayNumber: number;\n apiErrors?: IApiError | null;\n chooseDay?: (d: number) => void;\n}\n\nexport default ConfirmDateModal;\n","import * as React from 'react';\nimport cn from 'classnames';\n\nimport { Moment } from 'moment';\nimport { getMoscowTime } from '_helpers/formatHelpers';\n\nimport styles from './TimePicker.module.scss';\n\nconst TimePicker: React.FC = (props) => {\n const preparedTime = props.time.clone().local();\n const handleHoursChange = (e: React.ChangeEvent) => {\n const hour = parseInt(e.target.value);\n const newTime = props.time.clone().local();\n newTime.hour(hour);\n\n props.onChange(newTime);\n };\n\n const handleMinutesChange = (e: React.FormEvent) => {\n const minute = parseInt(e.currentTarget.value);\n const newTime = props.time.clone().local();\n newTime.minute(minute);\n\n props.onChange(newTime);\n };\n\n const { moscowHours, moscowMinutes } = getMoscowTime(preparedTime);\n\n return (\n
\n
\n \n :\n \n
\n По МСК {`${moscowHours}:${moscowMinutes}`}\n
\n );\n};\n\ninterface IProps {\n disabled?: boolean;\n time: Moment;\n onChange: (newTime: Moment) => void;\n}\n\nexport default TimePicker;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport styles from './DayEditor.module.scss';\nimport moment, { Moment } from 'moment';\nimport { Form } from 'react-bootstrap';\nimport { DatePicker } from '../DatePicker';\nimport { TimePicker } from '../Common/TimePicker';\n\nconst DayEditor: React.FC = (props) => {\n const preparedTime = props.date.clone().utc();\n const handleSelectDate = (_: string, changedDate: Moment) => {\n const newDate = changedDate.clone().utc();\n newDate.hour(preparedTime.hour());\n newDate.minute(preparedTime.minute());\n\n props.onChangeDate(newDate.utc());\n };\n\n return (\n
\n {!props.hideMainPart && (\n <>\n Дата\n \n Время\n \n {!!props.apiError && (\n \n

\n {props.apiError}\n

\n
\n )}\n \n )}\n {props.children}\n
\n );\n};\n\ninterface IProps {\n disabled?: boolean;\n date: Moment;\n onChangeDate: (date: Moment) => void;\n className?: string;\n hideMainPart?: boolean;\n apiError?: string | null;\n}\n\nexport default DayEditor;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { Form, Col } from 'react-bootstrap';\nimport styles from '../StageContainer.module.scss';\nimport { useLoading } from 'hooks';\nimport { formatPhoneNumber, formatSnils } from '_helpers';\nimport { IBaseExperts, IExpert } from 'components/models';\nimport { WarningModal } from 'components/Common/Modals';\nimport { FetchSelect } from 'components/Common/FetchSelect';\n\nconst AssigningOneExpertModal: React.FC = (props) => {\n const expertsOptions = React.useMemo(() => (\n props.experts.info\n ? props.experts.info.items\n .filter(e => !props.existedIds.includes(e.id))\n .map(i => ({ value: i.id, label: `${i.lastName} ${i.firstName} ${i.middleName} / ${formatPhoneNumber(i.phone, '')}` }))\n : []\n ), [props.experts.info]);\n const [selectedExpert, setSelectedExpert] = React.useState(undefined);\n const [handleAssignExpertLoading, handleAssignExpert] = useLoading((e: IExpert) => props.onAccess(e), [props.onAccess]);\n\n const handleChangeExpert = React.useCallback((value: string) => {\n setSelectedExpert(props.experts.info ? props.experts.info.items.find(i => i.id === value) : undefined);\n }, [props.experts.info]);\n\n React.useEffect(() => {\n if (!props.show) {\n setSelectedExpert(undefined);\n }\n if (props.show) {\n props.experts.fetch({});\n }\n }, [props.show]);\n\n const renderExpertRow = ([label, value]: string[]) => (\n \n \n \n {label}\n \n \n \n {value}\n \n \n );\n\n const renderSelectedExpertDetails = () => {\n if (selectedExpert) {\n return [\n ['ФИО', `${selectedExpert.lastName} ${selectedExpert.firstName} ${selectedExpert.middleName}`],\n ['ДАТА РОЖДЕНИЯ', selectedExpert.birthDate.format('DD.MM.YYYY')],\n ['ДОЛЖНОСТЬ', selectedExpert.position],\n //['СТАТУС', selectedExpert.currentStatus],\n ['ПОЧТА', selectedExpert.email],\n ['ТЕЛЕФОН', String(formatPhoneNumber(selectedExpert.phone, ''))],\n ['СНИЛС', formatSnils(selectedExpert.snils, '')],\n ].map(renderExpertRow);\n }\n\n return null;\n };\n\n return (\n selectedExpert && handleAssignExpert(selectedExpert)}\n loading={handleAssignExpertLoading}\n closeBtnTittle=\"Отмена\"\n >\n

\n Начните вводить в строке поиска ФИО члена комиссии:\n

\n\n handleChangeExpert(event.value)}\n value={selectedExpert ? selectedExpert.id : undefined}\n onFetch={data => props.experts.fetch({ searchField: 'fullName', searchTerm: data.fieldValue })}\n clearFetch={props.experts.clear}\n className={cn({ 'mb-3': !!selectedExpert }, styles.expertSelect)}\n />\n\n {renderSelectedExpertDetails()}\n \n );\n};\n\ninterface IProps {\n existedIds: string[];\n examDayId?: string;\n show: boolean;\n onHide: () => void;\n onAccess: (selectedExpert: IExpert) => Promise;\n\n experts: IBaseExperts;\n}\n\nexport default AssigningOneExpertModal;\n","import * as React from 'react';\nimport styles from '../StageContainer.module.scss';\nimport deleteIcon from 'components/assets/svg/delete_icon.svg';\nimport { useLoading } from 'hooks';\nimport AssigningOneExpertModal from '../Modals/AssigningOneExpertModal';\nimport { Button, Form } from 'react-bootstrap';\nimport { formatPhoneNumber, wordDeclination } from '_helpers';\nimport { IBaseExperts, IBaseExpertsForDay, IExpert } from 'components/models';\nimport AdvancedTable, { AdvancedTableHeader, AdvancedTableData } from 'components/Common/AdvancedTable/AdvancedTable';\nimport { LoaderBtn } from 'components/Common/LoaderBtn';\n\nconst ExpertsAssignTable: React.FC = (props) => {\n const [showAssignOneExpertModal, setShowAssignOneExpertModal] = React.useState(false);\n const [experts, setExperts] = React.useState([]);\n\n React.useEffect(() => {\n if (props.expertsForDayList.info) {\n setExperts(props.expertsForDayList.info.items);\n }\n }, [props.expertsForDayList.info]);\n\n React.useEffect(() => {\n if (props.autoOpen && !experts.length && (!props.expertsForDayList.info || !props.expertsForDayList.info.items.length)) {\n setShowAssignOneExpertModal(true);\n }\n }, []);\n\n\n const handleAdd = React.useCallback(async (expert: IExpert) => {\n if (!experts.filter(e => e.id === expert.id).length) {\n setExperts(experts.concat([expert]));\n }\n setShowAssignOneExpertModal(false);\n }, [experts]);\n\n const handleRemove = React.useCallback(async (id: string) => {\n setExperts(experts.filter(i => i.id !== id));\n }, [experts]);\n\n const handleUpdate = React.useCallback(async () => {\n await props.onUpdateExperts(experts);\n }, [experts, props.onUpdateExperts]);\n\n const [updateExpertsLoading, updateExperts] = useLoading(handleUpdate, [handleUpdate]);\n\n const listTableHeaders: AdvancedTableHeader[] = [\n { fieldName: '', title: 'ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО', columnStyles: { width: '65%' } },\n { fieldName: '', title: 'ТЕЛЕФОН' },\n ];\n\n if (!props.readonly) {\n listTableHeaders.push({ fieldName: '', title: '', columnStyles: { minWidth: '1rem' } });\n }\n\n const tableData = (): AdvancedTableData[] => experts.map((\n {\n id,\n phone,\n firstName,\n middleName,\n lastName,\n },\n ) => {\n const row = {\n id,\n columns: [\n `${lastName} ${firstName} ${middleName}`,\n String(formatPhoneNumber(phone, '')),\n ] as (string | JSX.Element)[],\n };\n\n if (!props.readonly) {\n row.columns.push(\n !props.disabled ? (\n handleRemove(id)}\n className={styles.removeIcon}\n >\n \n
\n ) : '',\n );\n }\n\n return row;\n });\n const noExpertsCount = React.useMemo(\n () => `${props.minAssigningExperts} член${wordDeclination(props.minAssigningExperts, ['а', 'ов', 'ов'])} комиссии`,\n [props.minAssigningExperts],\n );\n return (\n <>\n {!experts.length && !props.readonly ?

Вам необходимо добавить, как минимум {noExpertsCount}

: undefined}\n\n {\n }}\n placeholderTitle={!props.readonly ? `Вам необходимо добавить, как минимум ${noExpertsCount}` : ''}\n placeholderClassName={styles.emptyExpertsTable}\n />\n\n {!props.disabled && !props.readonly && (\n <>\n \n

\n {props.apiError}\n

\n
\n
\n setShowAssignOneExpertModal(true)}\n variant=\"outline-secondary\"\n >\n Добавить члена комиссии\n \n \n Завершить назначение\n \n
\n \n )}\n\n\n e.id)}\n examDayId={props.examDayId}\n show={showAssignOneExpertModal}\n onHide={() => setShowAssignOneExpertModal(false)}\n onAccess={handleAdd}\n experts={props.experts}\n />\n \n );\n};\n\ninterface IProps {\n readonly?: boolean;\n disabled?: boolean;\n onHide: () => void;\n examDayId?: string;\n expertsForDayList: IBaseExpertsForDay;\n experts: IBaseExperts;\n onUpdateExperts: (experts: IExpert[]) => void;\n showAssignExpertRow?: boolean;\n minAssigningExperts: number;\n apiError?: string;\n autoOpen?: boolean;\n}\n\nexport default ExpertsAssignTable;\n","import React from 'react';\nimport { Tabs as BootstrapTab, TabsProps } from 'react-bootstrap';\nimport styles from './AnimatedTabs.module.scss';\nimport cn from 'classnames';\n\nconst AnimatedTabs = ({\n inModal, children, className, activeKey, ...props\n}: IProps) => {\n const ref = React.useRef(null);\n const [tabBorderStyle, setTabBorderStyle] = React.useState({});\n const [key, setKey] = React.useState(undefined);\n\n const moveTabBorder = () => {\n if (ref.current) {\n const tabs = ref.current.querySelectorAll('a');\n const tabsLength = tabs.length;\n const firstTab: HTMLAnchorElement | null = tabs[0];\n const firstTabPaddingLeft = Math.ceil(parseFloat(window.getComputedStyle(firstTab, null).paddingLeft));\n const leftStartPosition = -firstTab.getBoundingClientRect().x - firstTabPaddingLeft + (inModal ? -30 : 2);\n let selectedTab: HTMLAnchorElement | null = null;\n let left = 0;\n let top = 0;\n\n for (let i = 0; i < tabsLength; i += 1) {\n const tab = tabs[i];\n const ariaSelected = tab.getAttribute('aria-selected');\n const tabBound = tab.getBoundingClientRect();\n\n left = Math.ceil(leftStartPosition + tabBound.x);\n\n if (ariaSelected === 'true') {\n selectedTab = tab;\n top = tabBound.height + (inModal ? 5 : 7);\n break;\n }\n }\n\n if (selectedTab) {\n const tabStyle = window.getComputedStyle(selectedTab, null);\n const paddingLeft = parseFloat(tabStyle.paddingLeft);\n const paddingRight = parseFloat(tabStyle.paddingRight);\n const width = selectedTab.clientWidth - (paddingLeft + paddingRight);\n const firstTabY = firstTab.getBoundingClientRect().y;\n const selectedTabY = selectedTab.getBoundingClientRect().y;\n\n if (firstTabY < selectedTabY) {\n top += selectedTabY - firstTabY;\n }\n\n left += paddingLeft;\n\n setTabBorderStyle({ width, left, top });\n }\n }\n };\n\n React.useEffect(() => {\n setKey(activeKey as string);\n }, [activeKey]);\n\n React.useEffect(() => {\n moveTabBorder();\n }, [key]);\n\n const onSelectKey = (newKey: string, e: any) => {\n if (props.onSelect) {\n props.onSelect(newKey, e);\n } else {\n setKey(newKey);\n }\n };\n\n return (\n
\n
\n \n {children}\n \n
\n );\n};\n\nexport default AnimatedTabs;\n\ninterface IProps extends TabsProps {\n children?: React.ReactNode;\n className?: string;\n inModal?: boolean;\n}\n","/* eslint-disable arrow-parens */\nimport React from 'react';\nimport { CustomRadio } from 'components';\nimport styles from './CustomRadioGroup.module.scss';\nimport cn from 'classnames';\n\nconst CustomRadioGroup = (\n {\n radios,\n radiosGroupName,\n disabled,\n onChangeRadio,\n withoutFormDetect,\n containerClassName,\n }: IProps,\n) => {\n const [selectedOption, setSelectedOption] = React.useState(radios[0].option);\n\n React.useEffect(() => {\n if (onChangeRadio) {\n onChangeRadio(selectedOption);\n }\n }, [selectedOption]);\n\n return (\n
\n {radios.map(radio => (\n setSelectedOption(radio.option)}\n disabled={disabled}\n withoutFormDetect={withoutFormDetect}\n />\n ))}\n
\n );\n};\n\nexport default CustomRadioGroup;\n\ninterface IProps {\n radios: IRadio[];\n radiosGroupName: string;\n disabled?: boolean;\n withoutFormDetect?: boolean;\n containerClassName?: string;\n onChangeRadio: (selectedOption: IRadio['option']) => void;\n}\n\ninterface IRadio {\n label: string;\n option: T;\n}\n","import moment from 'moment';\nimport {\n ExamStatus,\n ExamApplicationStatus,\n DocumentType,\n IdentityDocType,\n Sex,\n PracticalQuestionType,\n TheoreticalQuestionType,\n ExamStageStatus,\n FinalizedResult,\n ExpertStatus,\n FilteredExamStatus,\n AppExceptionType,\n ExpertChangeRequestType,\n ExpertChangeRequestStatus,\n ExpertChangeRequestApprovalStep,\n CitizenshipType,\n MilitaryRelationshipType,\n DiplomaType,\n} from './enums';\n\nexport interface IExamDay {\n id: string;\n examId: string;\n stageNumber: number;\n dayNumber: number;\n group?: number | undefined;\n time: moment.Moment;\n totalApplications: number;\n unFinalizedApplications: number;\n totalExperts: number;\n readyForFinalize: boolean;\n canAssignApplications: boolean;\n}\n\nexport interface IExamStage {\n examId: string;\n stageNumber: number;\n accreditationCenterId: string;\n status: ExamStageStatus;\n examDays: IExamDay[];\n totalApplications: number;\n unassignedApplications: number;\n firstDayDateTime: moment.Moment;\n lastDayDateTime?: moment.Moment | undefined;\n readyForAssign: boolean;\n /** Вместительность аудитории АЦ */\n audienceCapacity: number;\n accreditationCenterName: string;\n secretaryPhone?: string | undefined;\n secretaryEmail?: string | undefined;\n secretaryFullName?: string | undefined;\n}\n\nexport interface IExamDetails {\n examLogs: IExamLog[];\n examStages: IExamStage[];\n rules?: string | undefined;\n /** Минимально необходимое количество членов комиссии */\n minimumRequiredExpertsNumber: number;\n applyingDeadline: moment.Moment;\n regionName: string;\n secretaryFullName: string;\n secretaryPhone: string;\n examCreationProgress: IApprovalProcessStep[];\n eventsState?: { [key: string]: number } | undefined;\n id: string;\n date: moment.Moment;\n lastDate: moment.Moment;\n qualificationId: string;\n attestationSubCommissionId: string;\n qualificationTitle: string;\n stagesNumber: number;\n accreditationCenterName: string;\n attestationCommissionName: string;\n attestationSubCommissionName: string;\n address: string;\n city: string;\n status: ExamStatus;\n statusChangeTime: moment.Moment;\n attestationCommissionId: string;\n /** Количество аккредитуемых */\n applicationsNumber: number;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n}\n\nexport interface IApprovalProcessStep {\n completionDateTime?: moment.Moment | undefined;\n expertId?: string | undefined;\n label: string;\n value: string;\n}\n\nexport interface IExamLog {\n statusText: string;\n time: moment.Moment;\n}\n\nexport interface IExamExpert {\n regNumber: string;\n expertId: string;\n fullName: string;\n email: string;\n phone: string;\n region: string;\n active: boolean;\n signed: boolean;\n chairman: boolean;\n acceptedInvite?: boolean | undefined;\n position?: string | null;\n signedCode?: string | null;\n}\n\nexport interface IExam {\n id: string;\n date: moment.Moment;\n lastDate: moment.Moment;\n qualificationId: string;\n attestationSubCommissionId: string;\n qualificationTitle: string;\n qualificationResidency: boolean;\n stagesNumber: number;\n accreditationCenterName: string;\n attestationCommissionName: string;\n attestationSubCommissionName: string;\n address: string;\n city: string;\n region: string;\n status: ExamStatus;\n statusChangeTime: moment.Moment;\n attestationCommissionId: string;\n /** Количество аккредитуемых */\n applicationsNumber: number;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n}\n\nexport interface IApplicantExam {\n examId: string;\n date: moment.Moment;\n lastDate: moment.Moment;\n reviewComment?: string | undefined;\n qualificationTitle: string;\n stagesNumber: number;\n accreditationCenterName: string;\n attestationSubCommissionName: string;\n address: string;\n attestationCommissionName: string;\n city: string;\n region: string;\n examStatus: ExamStatus;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n}\n\nexport interface IApplicant {\n id: string;\n /** Имя */\n firstName: string;\n /** Фамилия */\n lastName: string;\n /** Отчество */\n middleName?: string | undefined;\n sex: Sex;\n birthDate: moment.Moment;\n email: string;\n emailConfirmed: boolean;\n phone: string;\n /** СНИЛС */\n snils: string;\n regionId: number;\n regionName: string;\n qualificationId: string;\n citizenshipType?: CitizenshipType;\n citizenshipCountryId?: number | undefined;\n citizenshipCountryName?: string | undefined;\n militaryRelationship?: MilitaryRelationshipType;\n}\n\nexport interface IApplicantIdentityDoc {\n identityDocType: IdentityDocType;\n passport?: IApplicantPassport;\n otherIdentity?: IApplicantOtherIdentity;\n}\n\nexport interface IApplicantPassport {\n /** серия/номер */\n serialNumber: string;\n /** кем выдан */\n issuedBy: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue: moment.Moment;\n /** адрес регистрации */\n registrationAddress: string;\n}\n\n/** Другой документ */\nexport interface IApplicantOtherIdentity {\n /** данные документа */\n data: string;\n}\n\nexport interface IApplicantDiploma {\n type: DiplomaType;\n /** серия/номер */\n serialNumber: string;\n /** кем выдан */\n issuedBy: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue: moment.Moment;\n}\n\nexport interface IUpdateProfile {\n /** Имя */\n firstName: string;\n /** Фамилия */\n lastName: string;\n /** Отчество */\n middleName: string;\n /** Адрес электронной почты */\n email: string;\n /** Дата рождения, время должно быть 00ч. 00м. 00с. по UTC */\n birthDate: moment.Moment;\n sex: Sex;\n /** СНИЛС */\n snils: string;\n /** Регион */\n regionId: number;\n /** Id специальности */\n qualificationId: string;\n citizenshipType: CitizenshipType;\n /** Страна гражданства */\n citizenshipCountryId?: number | undefined;\n militaryRelationship: MilitaryRelationshipType;\n\n}\n\nexport interface IQualificationDocumentTemplateGroup {\n title: string;\n description: string;\n order: number;\n hasVariants: boolean;\n templates: IQualificationDocumentTemplate[];\n}\n\nexport interface IQualificationDocumentTemplate {\n /** Идентификатор шаблона */\n id: string;\n /** Порядок в списке */\n order: number;\n /** Вариант */\n variant: number;\n /** Описание */\n description: string;\n type: DocumentType;\n}\n\nexport interface IExamApplicationDocument {\n id: string;\n documentDescription: string;\n variant: number;\n type: DocumentType;\n documentTemplateId?: string | undefined;\n examApplicationId: string;\n applicantId: string;\n submissionDate: moment.Moment;\n sourceFiles: ISourceFile[];\n fileId: string;\n fileExtension: string;\n fileSize: number;\n fileUrl: string;\n}\n\nexport interface ISourceFile {\n fileName?: string | undefined;\n fileId: string;\n fileExtension: string;\n fileSize: number;\n fileUrl: string;\n}\n\nexport interface IExamApplication {\n applicantId: string;\n applicantFullName: string;\n applicantPhone: string;\n applicantEmail: string;\n birthDate: moment.Moment;\n applicantSnils: string;\n status: ExamApplicationStatus;\n finalized: boolean;\n statusChangeTime: moment.Moment;\n examApplicationId: string;\n applicationSubmitDate: moment.Moment;\n lastFinalizedStage?: number | undefined;\n lastFinalizedStageResult: FinalizedResult;\n lastFinalizedStageAttemptNumber: number;\n}\n\nexport interface IExamApplicationDetails {\n exam: IExam;\n applicant: IApplicant;\n applicantIdentityDoc: IApplicantIdentityDoc;\n applicantDiploma?: IApplicantDiploma;\n documents: IExamApplicationDocument[];\n reviewComment?: string | undefined;\n /** Профессиональная переподготовка */\n professionalRetraining?: boolean| undefined;\n /** Запрос на допуск к аккредитации начиная с n-го этапа */\n startStage?: number| undefined;\n signCode?: string | undefined;\n approveCode?: string | undefined;\n examDayApplications: IExamDayApplicationShort[];\n eventsState?: { [key: string]: number; } | undefined;\n status: ExamApplicationStatus;\n finalized: boolean;\n statusChangeTime: moment.Moment;\n examApplicationId: string;\n applicationSubmitDate: moment.Moment;\n lastFinalizedStage?: number | undefined;\n lastFinalizedStageResult: FinalizedResult;\n lastFinalizedStageAttemptNumber: number;\n}\n\nexport interface IExamDayApplicationShort {\n examDayId: string;\n stageNumber: number;\n attemptNumber: number;\n admitted: boolean;\n finalizedResult: FinalizedResult;\n examDayDateTime: moment.Moment;\n}\n\nexport interface IApplicantQualificationDetails {\n examDate: moment.Moment;\n accreditationCenterName: string;\n regionName: string;\n acFullName: string;\n applicantId: string;\n /** СВИДЕТЕЛЬСТВО О КВАЛИФИКАЦИИ */\n certificateUrl?: string | undefined;\n examId: string;\n examApplicationId: string;\n title: string;\n stagesNumber: number;\n /** Регистрационный номер специальности */\n regNumber: string;\n /** Дата присвоения */\n issueDate: moment.Moment;\n /** Дата окончания действия */\n expireDate: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber: string;\n}\n\nexport interface IApplicantQualification {\n applicantId: string;\n examId: string;\n examApplicationId: string;\n title: string;\n stagesNumber: number;\n /** Регистрационный номер специальности */\n regNumber: string;\n /** Дата присвоения */\n issueDate: moment.Moment;\n /** Дата окончания действия */\n expireDate: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber: string;\n}\n\nexport interface IApplicantExamList {\n items: IApplicantExam[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport interface IExpertCertificate {\n id: string;\n /** Регистрационный номер */\n regNumber: string;\n /** Дата выдачи */\n issueDate: moment.Moment;\n /** Дата окончания действия */\n expireDate: moment.Moment;\n fileId: string;\n fileExtension: string;\n fileSize: number;\n fileUrl: string;\n}\n\nexport interface IExamSessionDetails {\n examApplicationId: string;\n applicantId: string;\n id: string;\n examId: string;\n startTime: moment.Moment;\n theoryFinishTime?: moment.Moment | undefined;\n practiceStartTime?: moment.Moment | undefined;\n isPassedTheory: boolean;\n passed?: boolean | undefined;\n finishTime?: moment.Moment | undefined;\n totalTimeInMinutes: number;\n theoreticalPassPercentage: number;\n totalPassPercentage: number;\n theoreticalPartDuration: number;\n practicalPartDuration: number;\n isPassedPractice?: boolean | undefined;\n correctPracticalAnswersPercentage: number;\n factualTheoreticalQuestionAnswers: IFactualTheoreticalQuestionAnswer[];\n factualPracticalQuestionAnswers: IFactualPracticalQuestionAnswer[];\n manualCheck: boolean;\n theoreticalQuestions: ITheoreticalQuestion[];\n practicalQuestions?: IPracticalQuestion[] | undefined;\n criteriaForRate?: string | undefined;\n}\n\nexport interface ITheoreticalQuestion {\n /** Id вопроса */\n id: string;\n /** Текст вопроса, в виде HTML */\n text: string;\n type: TheoreticalQuestionType;\n /** Варианты ответов на вопрос */\n answers: ITheoreticalAnswer[];\n /** Варианты ответов для вопросов на сопоставление или с последовательностью */\n matchingAnswers?: ITheoreticalAnswer[] | undefined;\n /** Заголовок над вариантами ответов, для вопросов на сопоставление или с последовательностью */\n answersHeader?: string | undefined;\n /** Заголовок над вариантами ответов, для вопросов на сопоставление или с последовательностью */\n matchingAnswersHeader?: string | undefined;\n}\n\nexport interface IPracticalQuestion {\n /** Id вопроса */\n id: string;\n /** Текст вопроса, в виде HTML */\n text: string;\n type: PracticalQuestionType;\n /** Таблицы для табличного вопроса */\n tabularQuestionTables?: ITable[] | undefined;\n}\n\nexport interface IFactualTheoreticalQuestionAnswer {\n questionId: string;\n correct: boolean;\n correctAnswersNumbers: IAnswerPair[];\n factualAnswersNumbers: IAnswerPair[];\n correctAnswer?: string | undefined;\n factualAnswer?: string | undefined;\n}\n\nexport interface IFactualPracticalQuestionAnswer {\n questionId: string;\n criteriaForRate?: string | undefined;\n type: PracticalQuestionType;\n correct?: boolean | undefined;\n essayAnswer?: IEssayAnswer;\n openAnswerAnswer?: IOpenAnswerAnswer;\n tabularAnswer?: ICheckedTable[] | undefined;\n}\n\nexport interface ICheckedTable {\n caption?: string | undefined;\n columns: IColumn[];\n rows?: ICheckedCell[][] | undefined;\n showCorrectAndApplicantAnswer: boolean;\n applicantAnswerRows?: string[][] | undefined;\n correctAnswerRows?: string[][] | undefined;\n}\n\nexport interface ICheckedCell {\n standard: string;\n solution?: string | undefined;\n correct: boolean;\n}\n\ninterface IAnswerPair {\n /** Номер вопроса */\n number: number;\n /** Номер соответствующего вопроса, заполняется только в случае типов: Matching, Ordering */\n matchingNumber?: number;\n}\n\ninterface IEssayAnswer {\n factual?: string | undefined;\n}\n\ninterface IOpenAnswerAnswer {\n correct: string;\n factual?: string | undefined;\n}\n\ninterface IColumn {\n header: string;\n width: number;\n readonly: boolean;\n numeric: boolean;\n key: boolean;\n multiline: boolean;\n}\n\ninterface ITheoreticalAnswer {\n number: number;\n text: string;\n}\n\ninterface ITable {\n caption?: string | undefined;\n columns: IColumn[];\n exactEquality: boolean;\n forbidMoving: boolean;\n initialRows: string[][];\n answerRows?: string[][] | undefined;\n}\n\nexport interface IUpdateAssignedExpertsForDay {\n expertIds: string[];\n}\n\nexport interface IAssignApplicationsForDay {\n examApplicationIds: string[];\n}\n\nexport interface ICreateExamDay {\n /** Дата и время АД */\n time: moment.Moment;\n expertIds: string[];\n}\n\nexport interface IExperts {\n items: IExpert[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport interface IAscStatus {\n ascId: string;\n status: ExpertStatus;\n}\n\nexport interface IExpert {\n id: string;\n firstName: string;\n lastName: string;\n middleName: string;\n birthDate: moment.Moment;\n sex: Sex;\n phone: string;\n email: string;\n regionId: number;\n region: string;\n timeZoneOffset: number;\n linkedExpertStatuses: ILinkedExpertStatus[];\n emailConfirmed: boolean;\n registrationCompleted: boolean;\n position: string;\n /** Место работы */\n placeOfWork: string;\n /** СНИЛС */\n snils: string;\n}\n\nexport interface IOrganizationInfo {\n name: string;\n inn: string;\n ogrn: string;\n region: string;\n city: string;\n address: string;\n}\n\nexport interface IExpertDetails extends IExpert {\n qualifications: IExpertQualification[];\n linkedExpertStatusesDetails: ILinkedExpertStatusDetails[];\n /** ИД должности */\n positionId?: number | undefined;\n /** Другое название должности */\n otherPositionTitle?: string | undefined;\n placeOfWorkDetails?: IOrganizationInfo;\n /** Членство */\n membership?: string | undefined;\n}\n\nexport interface IExpertQualification {\n id: string;\n regNumber: string;\n title: string;\n /** Дата начала стажа работы */\n experienceStartDate: moment.Moment;\n}\n\nexport interface IExamApplicationList {\n admittedCount: number;\n eventsState?: { [key: string]: number } | undefined;\n items: IExamApplication[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport interface ICreateExamDayInput {\n examId: string;\n stage: number;\n assignApplications?: IAssignApplicationsForDay;\n body?: ICreateExamDay;\n}\n\nexport interface IAssignForDayInput {\n examId: string;\n stage: number;\n examDayId: string;\n body: T;\n}\n\nexport interface IAdmitToExamDay {\n examApplicationId: string;\n}\n\nexport interface IFilterPart {\n page?: number;\n pageSize?: number;\n sortOrder?: boolean;\n sortField?: string;\n}\n\nexport interface ISearchPart {\n searchField?: string;\n searchTerm?: string;\n}\n\nexport interface IExamIdStagePart {\n examId: string;\n stage: number;\n}\n\nexport interface IFetchExamUnAssignedApplicationsProps extends IFilterPart, ISearchPart {\n examId: string;\n stage: number;\n}\n\nexport interface IExamIdBody extends IBodyPart{\n examId: string;\n}\n\nexport interface IBodyPart {\n body: T;\n}\n\nexport interface IApplicantPayload {\n applicantId: string;\n}\n\nexport interface IPayloadExperts extends IFilterPart, ISearchPart {\n attestationSubCommissionId?: string;\n qualificationId?: string;\n}\n\nexport interface IExamsFilters extends IQualificationIdsFilter {\n filteredExamStatus?: FilteredExamStatus;\n attestationSubCommissionIds?: string[] | null;\n accreditationCenterIds?: string[] | null;\n acIds?: string[];\n regionIds?: number[];\n}\n\nexport interface ICommissionsFilters {\n regionIds?: number[] | undefined;\n ascIds?: string[] | undefined;\n}\n\nexport interface IStatusFilter {\n status?: T;\n}\n\nexport interface IQualificationIdsFilter {\n qualificationIds?: string[] | null;\n}\n\nexport interface IRegionFilter {\n regionId?: number | null;\n}\n\nexport interface IExpertsFilters extends IRegionFilter, IQualificationIdsFilter {\n terminated?: boolean;\n regionIds?: number[];\n statuses?: ExpertStatus[] | null;\n ascIds?: string[] | null;\n}\n\nexport interface IPayloadExpertExams extends IExamsFilters, IFromToDatePart, IFilterPart, ISearchPart {\n expertId: string;\n}\n\nexport interface IFromToDatePart {\n from?: moment.Moment;\n to?: moment.Moment;\n}\n\nexport interface IExpertChangeRequestId {\n expertChangeRequestId: string;\n}\n\n\nexport interface IFetchExamAssignedApplicationsForDayProps extends IFilterPart, ISearchPart {\n examDayId: string;\n examId: string;\n stage: number;\n}\n\nexport interface GetExpertPayload extends IFilterPart, ISearchPart {\n qualificationId?: string;\n examId?: string;\n onlyAcEmployees?: boolean;\n onlySelected?: boolean;\n}\n\nexport interface IUpdateExamDay {\n /** Дата и время АД */\n time: moment.Moment;\n}\n\nexport interface GetListForDayData extends IFilterPart {\n examDayId: string;\n}\n\nexport interface IFinalizeResultPayload {\n examId: string;\n stageNumber: number;\n examDayId: string;\n examApplicationIds: string[];\n body: FinalizedResult;\n}\n\nexport interface IExamDayApplication {\n examId: string;\n examApplicationId: string;\n examDayId: string;\n stageNumber: number;\n attemptNumber: number;\n finalizedResult: FinalizedResult;\n examApplication: IExamApplication;\n admitted: boolean;\n canFinalize: boolean;\n}\n\nexport interface IAttestationCommissionDetails {\n leaders: IExpert[];\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n /** Город */\n city: string;\n /** Id региона */\n regionId: number;\n regionName: string;\n secretaryFullName?: string | undefined;\n chairmanFullName?: string | undefined;\n}\n\nexport interface IAttestationSubCommissionDetails {\n leaders: IExpert[];\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n city: string;\n address: string;\n /** Id региона */\n regionId: number;\n regionName: string;\n qualificationId: string;\n qualificationTitle: string;\n qualificationStagesNumber: number;\n secretaryFullName?: string | undefined;\n chairmanFullName?: string | undefined;\n}\n\ninterface IList {\n page: number;\n pageSize: number;\n total: number;\n items: T[];\n}\n\nexport type IExamDayApplications = IList;\n\n\nexport interface IAccreditationCenter {\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n city: string;\n address: string;\n regionId: number;\n regionName: string;\n qualifications: IAccreditationCenterQualification[];\n}\n\nexport interface IAccreditationCenterDetails extends IAccreditationCenter {\n secretaryPhone?: string | undefined;\n secretaryEmail?: string | undefined;\n secretaryFullName?: string | undefined;\n}\n\nexport interface IAccreditationCenterQualification {\n id: string;\n regNumber: string;\n title: string;\n audienceCapacity: number;\n}\n\nexport interface IBaseInfo {\n fetch: (payload: P) => Promise;\n clear: () => void;\n info: I | null;\n}\n\nexport class BaseInfo implements IBaseInfo {\n info: I | null;\n\n fetch: (payload: P) => Promise;\n\n clear: () => void;\n\n constructor(info: I | null, fetch: (payload: P) => Promise, clear?: () => void) {\n this.clear = clear || (() => {});\n this.fetch = fetch;\n this.info = null;\n }\n}\n\nexport const EmptyInfo: IBaseInfo = { clear: () => {}, fetch: async () => {}, info: null };\n\nexport type IBaseApplicantDetails = IBaseInfo;\n\nexport type IBaseExamApplicationsForDayAdmit = IBaseInfo;\nexport type IBaseUnratedExamApplications = IBaseInfo;\nexport type IBaseExamApplicationsForDay = IBaseInfo;\nexport type IBaseExamUnAssignedApplicationsList = IBaseInfo;\n\nexport type IBaseExperts = IBaseInfo;\nexport type IBaseExpertsForDay = IBaseInfo;\n\nexport interface IPagination {\n total: number;\n pageSize: number;\n page: number;\n}\n\n\nexport interface IQualificationInfo {\n id: string;\n title: string;\n stagesNumber: number;\n regNumber: string;\n occupationalStandardId: string;\n occupationalStandardTitle: string;\n readyToUse: boolean;\n residency: boolean;\n}\n\nexport interface IApiError {\n code: number;\n type: AppExceptionType;\n message: string;\n failures?: { [key: string]: string[] } | undefined;\n}\n\nexport interface IRegion {\n id: number;\n name: string;\n timeZoneOffset: number;\n}\n\n\nexport interface IQualificationInfoList {\n items: IQualificationInfo[];\n page: number;\n pageSize: number;\n total: number;\n}\n\n\nexport interface IAccreditationCenters {\n items: IAccreditationCenter[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport interface IAttestationSubCommissionsList {\n items: IAttestationSubCommission[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport interface IAttestationSubCommission {\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n city: string;\n address: string;\n /** Id региона */\n regionId: number;\n regionName: string;\n qualificationId: string;\n qualificationTitle: string;\n qualificationStagesNumber: number;\n secretaryFullName?: string | undefined;\n chairmanFullName?: string | undefined;\n newCommissionFormationCompleted?: boolean | undefined;\n}\n\nexport interface ILinkedExpertStatus {\n acId: string;\n ascId?: string | undefined;\n status: ExpertStatus;\n}\n\nexport interface ILinkedExpert {\n status: ExpertStatus;\n attestationCommissionId: string;\n attestationSubCommissionId?: string | undefined;\n qualificationId?: string | undefined;\n attestationCommissionName: string;\n attestationSubCommissionName?: string | undefined;\n qualifications: IExpertQualification[];\n id: string;\n firstName: string;\n lastName: string;\n middleName: string;\n birthDate: moment.Moment;\n sex: Sex;\n phone: string;\n email: string;\n regionId: number;\n region: string;\n timeZoneOffset: number;\n currentStatus: ExpertStatus;\n linkedExpertStatuses: ILinkedExpertStatus[];\n chairman: boolean;\n emailConfirmed: boolean;\n registrationCompleted: boolean;\n position: string;\n /** Место работы */\n placeOfWork: string;\n /** СНИЛС */\n snils: string;\n}\n\n\nexport interface IExamList {\n eventsState?: { [key: string]: number } | undefined;\n items: IExam[];\n page: number;\n pageSize: number;\n total: number;\n}\n\n\nexport interface ILinkedExpertStatusDetails {\n regionName: string;\n qualificationTitle?: string | undefined;\n acId: string;\n ascId?: string | undefined;\n status: ExpertStatus;\n}\n\nexport interface IExpertChangeRequest {\n id: string;\n dateTime: moment.Moment;\n expertId: string;\n expertChangeRequestsOrderId: string;\n requestType: ExpertChangeRequestType;\n status: ExpertChangeRequestStatus;\n approvalStep?: ExpertChangeRequestApprovalStep;\n changeRequestTitle: string;\n fullName: string;\n position: string;\n placeOfWork: string;\n newExpertStatus?: string | undefined;\n attestationSubCommissionId: string;\n attestationSubCommissionName: string;\n}\n\nexport interface IExpertChangeRequests {\n items: IExpertChangeRequest[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport interface ICountry {\n id: number;\n name: string;\n}","import * as React from 'react';\nimport styles from '../StageContainer.module.scss';\nimport ExpertsAssignTable from '../Components/ExpertsAssignTable';\nimport { Moment } from 'moment';\nimport { WarningModal } from 'components/Common/Modals';\nimport { IBaseExperts, IBaseExpertsForDay, IExpert } from 'components/models';\nimport { IApiError } from '_helpers/ApiConnector/types';\n\nconst AssigningExpertsModal: React.FC = (props) => {\n const handleAssignExpert = React.useCallback(\n (experts: IExpert[]) => props.onUpdateExperts(experts),\n [props.onUpdateExperts],\n );\n\n React.useEffect(() => {\n if (props.show && props.examDayId) {\n props.expertsForDayList.fetch({\n examDayId: props.examDayId,\n });\n }\n if (!props.show) {\n props.expertsForDayList.clear();\n }\n }, [props.show, props.examDayId]);\n\n return (\n \n \n \n );\n};\n\ninterface IProps {\n examDayId?: string;\n time?: Moment;\n show: boolean;\n onHide: () => void;\n onUpdateExperts: (experts: IExpert[]) => void;\n minAssigningExperts: number;\n\n experts: IBaseExperts;\n expertsForDayList: IBaseExpertsForDay;\n apiErrors: IApiError | null;\n}\n\n\nexport default AssigningExpertsModal;\n","import * as React from 'react';\nimport moment, { Moment } from 'moment';\nimport {\n IApiError,\n IBaseExperts, IBaseExpertsForDay, IExpert,\n} from 'components/models';\nimport { useEffect } from 'react';\nimport { WarningModal } from 'components';\nimport { formatFIO } from '_helpers';\nimport { Button, Form } from 'react-bootstrap';\nimport { DayEditor } from '../../../../DayEditor';\nimport AssigningExpertsModal from './AssigningExpertsModal';\n\nconst CreateDayModals: React.FC = (props) => {\n const generateTime = React.useCallback(\n (d: Moment) => d.clone().utc().minute(Math.round(moment().minute() / 5) * 5).add(1, 'day'),\n [],\n );\n const [selectedDate, setSelectedDate] = React.useState(generateTime(props.defaultDate || moment().local()).local());\n\n const [showAssigningExpertsModal, setShowAssigningExpertsModal] = React.useState(false);\n\n\n const [assignedExperts, setAssignedExperts] = React.useState([]);\n\n const handleChooseExperts = async (experts: IExpert[]) => {\n setAssignedExperts(experts);\n setShowAssigningExpertsModal(false);\n };\n\n const handleCreateDay = async () => {\n if (await props.onCreateDay(assignedExperts.map(e => e.id), selectedDate)) {\n props.onHide();\n setAssignedExperts([]);\n }\n };\n\n useEffect(() => {\n setSelectedDate(generateTime(props.defaultDate || moment()).local());\n }, [props.show]);\n return (\n <>\n {\n if (assignedExperts.length) {\n handleCreateDay();\n } else {\n setShowAssigningExpertsModal(true);\n }\n }}\n accessBtnTittle={assignedExperts.length ? 'Создать' : 'Сохранить и продолжить'}\n onHide={() => {\n props.onHide();\n setAssignedExperts([]);\n }}\n closeBtnTittle=\"Отмена\"\n loading={props.createDayLoading}\n >\n

\n Пожалуйста, выберите дату, на которую необходимо назначить новый день сдачи.\n

\n \n {!!assignedExperts.length && (\n <>\n Комиссия\n

\n {assignedExperts.map(e => `${formatFIO(e)}\\n`)}\n

\n\n \n \n\n {props.apiErrors && props.apiErrors.failures && props.apiErrors.failures.expertIds && (\n \n

\n {props.apiErrors.failures.expertIds[0]}\n

\n \n )}\n \n )}\n \n \n\n setShowAssigningExpertsModal(false)}\n time={selectedDate}\n onUpdateExperts={handleChooseExperts}\n minAssigningExperts={props.minAssigningExperts}\n expertsForDayList={props.expertsForDayList}\n experts={props.experts}\n apiErrors={props.apiErrors}\n />\n \n );\n};\n\ninterface IProps {\n defaultDate?: Moment;\n show: boolean;\n onHide: () => void;\n\n onCreateDay: (expertsIds: string[], time: Moment) => Promise;\n createDayLoading?: boolean;\n minAssigningExperts: number;\n\n experts: IBaseExperts;\n expertsForDayList: IBaseExpertsForDay;\n apiErrors: IApiError | null;\n}\n\nexport default CreateDayModals;\n","import * as React from 'react';\nimport { WarningModal } from '../../../../Common/Modals';\nimport { CustomRadioGroup } from '../../../../CustomRadioGroup';\nimport cn from 'classnames';\nimport styles from '../StageContainer.module.scss';\nimport {\n EmptyInfo, IApiError, IAssignApplicationsForDay, IAssignForDayInput, IBaseExperts,\n IBaseUnratedExamApplications,\n IExamApplication, IExamStage,\n IFinalizeResultPayload,\n} from 'components/models';\nimport moment, { Moment } from 'moment';\nimport { FinalizedResult, MappedFinalizedResult } from 'components/enums';\nimport { useLoading } from 'hooks';\nimport CreateDayModals from './CreateDayModals';\nimport ConfirmDateModal from './ConfirmDateModal';\n\nconst FinalizeResultModals: React.FC = (props) => {\n const [showRetakeModal, setShowRetakeModal] = React.useState(false);\n\n const [showCreateNewDay, setShowCreateNewDay] = React.useState(false);\n const [selectedDayId, selectDayId] = React.useState(null);\n\n React.useEffect(() => {\n props.unratedExamApplications.fetch({ examDayId: props.examDayId });\n props.setApplicantsForRate([]);\n }, [props.examDayId]);\n\n const radios = [\n { label: MappedFinalizedResult[FinalizedResult.Passed], option: FinalizedResult.Passed },\n { label: MappedFinalizedResult[FinalizedResult.NotPassed], option: FinalizedResult.NotPassed },\n { label: MappedFinalizedResult[FinalizedResult.Absent], option: FinalizedResult.Absent },\n ];\n const [chooseResult, setChooseResult] = React.useState(radios[0].option);\n\n const handleFinalizeResult = async () => {\n if (chooseResult === FinalizedResult.NotPassed) {\n setShowRetakeModal(true);\n } else {\n await props.finalizeResult({\n examId: props.examId,\n stageNumber: props.stageNumber,\n examDayId: props.examDayId,\n examApplicationIds: props.applicantsForRate.map(a => a.examApplicationId),\n body: chooseResult,\n });\n await props.unratedExamApplications.fetch({ examDayId: props.examDayId });\n props.hideFinalizingResultModal();\n }\n };\n\n const [finalizeProcessing, finalizeStart] = useLoading(handleFinalizeResult);\n\n const handleConfirmDate = async () => {\n if (selectedDayId && await props.finalizeResult({\n examId: props.examId,\n stageNumber: props.stageNumber,\n examDayId: props.examDayId,\n examApplicationIds: props.applicantsForRate.map(a => a.examApplicationId),\n body: chooseResult,\n })) {\n await props.assignApplicationsForDay({\n examId: props.examId,\n stage: props.stageNumber,\n examDayId: selectedDayId,\n body: {\n examApplicationIds: props.applicantsForRate.map(a => a.examApplicationId),\n },\n });\n await props.unratedExamApplications.fetch({ examDayId: props.examDayId });\n setShowRetakeModal(false);\n props.hideFinalizingResultModal();\n props.setApplicantsForRate([]);\n }\n };\n const [, confirmDate] = useLoading(handleConfirmDate);\n\n const handleCreateDay = async (expertsIds: string[], time: moment.Moment) => props.onCreateRetakeDay(\n time,\n expertsIds,\n );\n const [createDayLoading, createDay] = useLoading(handleCreateDay);\n\n const retakeDays = props.stage.examDays.filter(d => d.id !== props.examDayId).filter(d => moment().isBefore(d.time));\n\n const lastDay = [...props.stage.examDays].pop();\n return (\n
\n {\n props.hideFinalizingResultModal();\n setChooseResult(radios[0].option);\n }}\n loading={finalizeProcessing}\n onAccess={finalizeStart}\n >\n

\n Укажите результат прохождения аккредитации:\n

\n\n setChooseResult(o)}\n containerClassName={cn('d-flex flex-column justify-content-between align-items-start', styles.height80)}\n />\n \n\n setShowRetakeModal(false)}\n onAccess={confirmDate}\n days={retakeDays}\n stage={props.stage}\n selectedDayNumber={retakeDays.findIndex(d => d.id === selectedDayId)}\n chooseDay={i => selectDayId(retakeDays[i].id)}\n onCreateNewDay={() => setShowCreateNewDay(true)}\n examApplication={props.applicantsForRate}\n />\n\n setShowCreateNewDay(false)}\n defaultDate={lastDay ? lastDay.time.clone().add(1, 'd') : props.stage.lastDayDateTime}\n onCreateDay={createDay}\n createDayLoading={createDayLoading}\n minAssigningExperts={props.minAssigningExperts}\n experts={props.experts}\n expertsForDayList={EmptyInfo}\n apiErrors={props.error}\n />\n
\n );\n};\n\nexport interface IFinalizeResultModalsProps {\n finalizeResult: (payload: IFinalizeResultPayload) => Promise;\n unratedExamApplications: IBaseUnratedExamApplications;\n experts: IBaseExperts;\n examId: string;\n stageNumber: number;\n examDayId: string;\n onCreateRetakeDay: (time: Moment, expertIds: string[]) => Promise;\n assignApplicationsForDay: (data: IAssignForDayInput) => Promise;\n minAssigningExperts: number;\n error: IApiError | null;\n}\n\ninterface IProps extends IFinalizeResultModalsProps {\n applicantsForRate: IExamApplication[];\n setApplicantsForRate: (applicantsForRate: IExamApplication[]) => void;\n showFinalizingResultModal: boolean;\n hideFinalizingResultModal: () => void;\n stage: IExamStage;\n}\n\nexport default FinalizeResultModals;\n","import * as React from 'react';\nimport { ExamAssigningApplicationsTable } from 'components/ExamAssigningApplicationsTable';\nimport {\n IExamApplication, IExamStage,\n} from 'components/models';\nimport FinalizeResultModals, { IFinalizeResultModalsProps } from '../FinalizeResultModals';\n\nconst FinalizingResultsTab: React.FC = (props) => {\n const [applicantsForRate, setApplicantsForRate] = React.useState([]);\n const [showFinalizingResultModal, setShowFinalizingResultModal] = React.useState(false);\n\n\n React.useEffect(() => {\n props.unratedExamApplications.fetch({ examDayId: props.examDayId });\n setApplicantsForRate([]);\n }, [props.examDayId]);\n\n const handleAssignedApplicants = (applicants: IExamApplication[]) => {\n setApplicantsForRate(applicants);\n setShowFinalizingResultModal(true);\n };\n\n return (\n <>\n ({ examApplication: i }))) || []}\n placeholderTitle=\"Список финализации пуст\"\n placeholderText=\"Здесь будут отображаться все аккредитуемые, требующие финализации результатов\"\n />\n\n setShowFinalizingResultModal(false)}\n />\n \n );\n};\n\ninterface IProps extends IFinalizeResultModalsProps {\n readonly?: boolean;\n stage: IExamStage;\n}\n\nexport default FinalizingResultsTab;\n","import React from 'react';\nimport {\n IExamApplication, IExamDayApplication, IFilterPart, ISearchPart,\n} from 'components/models';\nimport { Button, FormControl, Table } from 'react-bootstrap';\nimport Pagination, { IPaginationData } from '../Pagination/Pagination';\nimport styles from './ExamAdmittingApplicationsTable.module.scss';\nimport sortIcon from '../assets/svg/sort_icon.svg';\nimport groupIcon from '../assets/svg/group.svg';\nimport cn from 'classnames';\nimport CustomCheckbox from '../Common/CustomCheckbox/CustomCheckbox';\nimport { WarningModal } from '../Common/Modals';\nimport { ExtendedSelect } from '../index';\nimport { ISelectEvent } from '../Common/ExtendedSelect/ExtendedSelect';\nimport { MappedAdmittedResultColor } from '../enums';\n\nconst ExamAdmittingApplicationsTable = (props: ExamApplicationsTableProps) => {\n const initialFilter: IFilter = {\n fieldName: '',\n fieldValue: '',\n };\n\n const { examApplications } = props;\n const [filter, setFilter] = React.useState(initialFilter);\n const [checkedApplications, setCheckedApplications] = React.useState>({});\n const [checkedAll, setCheckedAll] = React.useState(false);\n const [showEmptyListModal, setShowEmptyListModal] = React.useState(false);\n\n React.useEffect(() => {\n setCheckedAll(false);\n setCheckedApplications({});\n }, [examApplications]);\n\n const statusOptions = [\n { label: MappedAdmittedResultColor.false.text, value: 'false' },\n { label: MappedAdmittedResultColor.true.text, value: 'true' },\n ];\n\n\n const handleCheckApplication = React.useCallback((id: string) => {\n const newChecked = {\n ...checkedApplications,\n [id]: !checkedApplications[id],\n };\n const countOfChecked = examApplications.filter(i => newChecked[i.examApplication.examApplicationId]).length;\n if (countOfChecked === examApplications.length) {\n setCheckedAll(true);\n } else if (checkedAll) {\n setCheckedAll(false);\n }\n\n setCheckedApplications(newChecked);\n }, [checkedApplications, checkedAll, examApplications]);\n\n const handleCheckAll = React.useCallback(() => {\n const newChecked: Record = {};\n examApplications.forEach((a) => {\n newChecked[a.examApplication.examApplicationId] = !checkedAll;\n });\n setCheckedApplications(newChecked);\n setCheckedAll(!checkedAll);\n }, [checkedAll, examApplications]);\n\n const handleAssignedApplicants = React.useCallback(() => {\n const assignedApplicants = examApplications.filter(i => checkedApplications[i.examApplication.examApplicationId]);\n if (!assignedApplicants.length) {\n setShowEmptyListModal(true);\n } else if (props.onAssignedApplicants) {\n props.onAssignedApplicants(assignedApplicants);\n }\n }, [examApplications, checkedApplications, props.onAssignedApplicants]);\n\n const triggerParentChange = (data?: IPaginationData, nFilter?: IFilter) => {\n const { fieldName: searchField, fieldValue: searchTerm } = nFilter || filter;\n\n if (data) {\n const { page, perPage: pageSize } = data;\n\n props.onChange({\n searchField, searchTerm, page, pageSize,\n });\n }\n\n props.onChange({ searchField, searchTerm });\n };\n\n const onFilterFieldChange = (event: React.ChangeEvent | { target: ISelectEvent }) => {\n const { name, value } = event.target;\n\n const newFilter = {\n ...filter,\n fieldName: name,\n fieldValue: value,\n };\n\n setFilter(newFilter);\n triggerParentChange(props.pagination, newFilter);\n };\n\n const renderTableRow = (examDayApplication: IExamDayApplication) => {\n const { examApplication } = examDayApplication;\n return (\n {\n if (props.readonly) return;\n if (props.onItemClick) props.onItemClick(examApplication.examApplicationId);\n handleCheckApplication(examApplication.examApplicationId);\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {props.withCheckbox && !props.readonly && (\n \n true}\n />\n \n )}\n {props.headers.map(({ key, render }) => (\n \n {render ? render(examDayApplication) : examApplication[key]}\n \n ))}\n \n );\n };\n\n return (\n
\n \n \n \n {props.withCheckbox && !props.readonly && (\n \n )}\n {props.headers.map(({ value, key, isStatus }, i: number) => {\n let textValue = '';\n if (key === filter.fieldName) {\n textValue = filter.fieldValue;\n }\n\n return (\n \n );\n })}\n \n {props.withConfirmButton && !!examApplications.length && !props.readonly && (\n \n \n \n )}\n \n \n {examApplications.map(renderTableRow)}\n \n
\n \n \n
\n {value}\n \"sortIcon\"\n
\n {isStatus ? (\n onFilterFieldChange({ target: e })}\n />\n ) : (\n \n )}\n
\n \n \n
\n {!examApplications.length && (\n
\n \"Список\n \n Список распределения пуст\n \n \n Здесь будут отображаться все аккредитуемые, требующие распределения\n \n
\n )}\n {props.pagination && !!examApplications.length && (\n \n )}\n setShowEmptyListModal(false)}>\n Пожалуйста, выберите несколько аккредитуемых из списка для того, чтобы распределить их.\n \n
\n );\n};\n\ninterface ExamApplicationsTableProps {\n withCheckbox?: boolean;\n readonly?: boolean;\n withConfirmButton?: boolean;\n confirmButtonText?: string;\n disableCheckbox?: boolean;\n onAssignedApplicants?: (applicants: IExamDayApplication[]) => void;\n headers: ExamAdmittingApplicationsColumnHeader[];\n pagination?: IPaginationData;\n examApplications: IExamDayApplication[];\n className?: string;\n paginationClassName?: string;\n onChange: (filter: IFilterPart & ISearchPart) => void;\n onItemClick?: (id: string) => void;\n}\n\ninterface IFilter {\n fieldName: string;\n fieldValue: string;\n}\n\ninterface ColumnHeader {\n value: string;\n key: string;\n}\n\nexport class ExamAdmittingApplicationsColumnHeader implements ColumnHeader {\n value: string;\n key: keyof IExamApplication;\n render?: (applicant: IExamDayApplication) => string | JSX.Element;\n isStatus?: boolean;\n\n constructor(key: keyof IExamApplication, value: string, isStatus?: boolean, render?: (applicant: IExamDayApplication) => string) {\n this.key = key;\n this.value = value;\n this.render = render;\n this.isStatus = isStatus;\n }\n}\n\nexport default ExamAdmittingApplicationsTable;\n","import React from 'react';\nimport { CustomSwitch } from 'components';\n\nconst DocumentSwitch = ({ num, onSwitchClick }: IProps) => {\n const [active, setActive] = React.useState(false);\n\n const onClick = () => {\n const newActive = !active;\n setActive(newActive);\n\n onSwitchClick(num, newActive);\n };\n\n return (\n \n );\n};\n\nexport default DocumentSwitch;\n\ninterface IProps {\n num: number;\n onSwitchClick: (num: number, active: boolean) => void;\n}\n","import * as React from 'react';\nimport { useLoading } from 'hooks';\nimport { ExamAdmittingApplicationsTable } from 'components/ExamAdmittingApplicationsTable';\nimport { formatPhoneNumber, formatSnils } from '_helpers/formatHelpers';\nimport {\n IAdmitToExamDay,\n IAssignForDayInput, IBaseApplicantDetails, IBaseExamApplicationsForDayAdmit, IExamDay,\n IExamDayApplication,\n} from 'components/models';\nimport { DocumentTypeTitles, MappedAdmittedResultColor } from 'components/enums';\nimport { WarningModal } from 'components/Common/Modals';\nimport { Loader } from 'components/Common/Loader';\nimport styles from 'components/ApplicantDocuments/ApplicantDocuments.module.scss';\nimport { DocumentSwitch } from 'components/ApplicantDocuments/DocumentSwitch';\nimport { formatFIO } from '_helpers';\n\nconst AdmitApplicantsTab: React.FC = (props) => {\n const [showAdmitApplicantModal, setShowAdmitApplicantModal] = React.useState(false);\n const [fetchDetailsProcessing, fetchDetails] = useLoading((id: string) => props.applicantDetails.fetch(id));\n const [admitToExamDayProcessing, admitToExamDay] = useLoading(async (id: string) => props.admitToExamDay({\n examDayId: props.day.id,\n examId: props.day.examId,\n stage: props.day.stageNumber,\n body: {\n examApplicationId: id,\n },\n }), [props.day]);\n\n const [activeValues, setActiveValues] = React.useState([]);\n\n const handleSwitchClick = (num: number, active: boolean) => {\n const newActive = [...activeValues];\n newActive[num] = active;\n setActiveValues(newActive);\n };\n\n React.useEffect(() => {\n if (props.applicantDetails.info) {\n setActiveValues(props.applicantDetails.info.documents.map(() => false));\n }\n }, [props.applicantDetails.info]);\n\n const handleAdmittingApplicant = (applicantId: string) => {\n fetchDetails(applicantId);\n setShowAdmitApplicantModal(true);\n };\n\n const handleAccessApplicant = async () => {\n if (props.applicantDetails.info) {\n await admitToExamDay(props.applicantDetails.info.examApplicationId);\n }\n\n await props.examApplicationsForDayAdmit.fetch({\n examId: props.day.examId,\n examDayId: props.day.id,\n stage: props.day.stageNumber,\n });\n setShowAdmitApplicantModal(false);\n };\n\n const renderStatus = (applicant: IExamDayApplication) => (\n \n {MappedAdmittedResultColor[String(applicant.admitted) as 'true' | 'false'].text}\n \n );\n\n return (\n <>\n String(formatPhoneNumber(a.examApplication.applicantPhone, '')) },\n { value: 'Снилс', key: 'applicantSnils', render: a => formatSnils(a.examApplication.applicantSnils) },\n {\n value: 'Статус', key: 'status', render: renderStatus, isStatus: true,\n },\n ]}\n examApplications={(props.examApplicationsForDayAdmit.info && props.examApplicationsForDayAdmit.info.items) || []}\n onChange={() => {}}\n />\n\n {!!props.applicantDetails.info && (\n {\n props.applicantDetails.clear();\n setShowAdmitApplicantModal(false);\n }}\n disableAccessButton={activeValues.some(v => !v)}\n loading={admitToExamDayProcessing}\n onAccess={handleAccessApplicant}\n >\n {fetchDetailsProcessing ? : props.applicantDetails.info.documents.map((document, i) => (\n
\n \n \"documentImage\"\n \n
\n {DocumentTypeTitles[document.type]}\n \n \n {document.documentDescription}\n
\n
\n ))}\n \n )}\n \n );\n};\n\ninterface IProps {\n day: IExamDay;\n readonly?: boolean;\n examApplicationsForDayAdmit: IBaseExamApplicationsForDayAdmit;\n applicantDetails: IBaseApplicantDetails;\n admitToExamDay: (props: IAssignForDayInput) => void;\n}\n\nexport default AdmitApplicantsTab;\n","import * as React from 'react';\nimport {\n ExamAssigningApplicationsColumnHeader,\n ExamAssigningApplicationsTable,\n} from 'components/ExamAssigningApplicationsTable';\nimport FinalizeResultModals, { IFinalizeResultModalsProps } from '../FinalizeResultModals';\nimport { IBaseExamApplicationsForDay, IExamApplication, IExamStage } from 'components/models';\nimport { ExamStageStatus } from 'components/enums';\n\nconst FinalizedExamApplicationsTab: React.FC = (props) => {\n const applications = props.examApplicationsForDay.info ? props.examApplicationsForDay.info.items : [];\n\n\n const [showFinalizingResultModal, setShowFinalizingResultModal] = React.useState(false);\n const [assigningApplicantsForReplace, setAssigningApplicantsForReplace] = React.useState([]);\n\n const handleAssignedApplicants = React.useCallback((applicants: IExamApplication[]) => {\n setShowFinalizingResultModal(true);\n setAssigningApplicantsForReplace(applicants);\n }, []);\n\n const applicantHeaders: ExamAssigningApplicationsColumnHeader[] = [\n { value: 'Имя, фамилия, Отчество', key: 'applicantFullName' },\n { value: 'Телефон', key: 'applicantPhone' },\n { value: 'Статус', key: 'finalizedResult', isStatus: true },\n ];\n\n const readOnlyResult = props.readonly\n || (!!props.stageInfo && props.stageInfo.status !== ExamStageStatus.Assignment)\n || applications.every(a => !a.canFinalize);\n\n return (\n <>\n \n\n {!!props.stageInfo && (\n setShowFinalizingResultModal(false)}\n assignApplicationsForDay={props.assignApplicationsForDay}\n />\n )}\n \n );\n};\n\ninterface IProps extends IFinalizeResultModalsProps {\n readonly?: boolean;\n examApplicationsForDay: IBaseExamApplicationsForDay;\n stageInfo?: IExamStage | null;\n}\n\nexport default FinalizedExamApplicationsTab;\n","import * as React from 'react';\nimport {\n ExamAssigningApplicationsColumnHeader,\n ExamAssigningApplicationsTable,\n} from '../../../../../ExamAssigningApplicationsTable';\nimport {\n IApiError,\n IAssignApplicationsForDay,\n IAssignForDayInput,\n IBaseExamApplicationsForDay,\n IExamApplication,\n IExamDay,\n IExamDetails,\n} from 'components/models';\nimport ConfirmDateModal from '../ConfirmDateModal';\n\nconst ExamApplicationsTab: React.FC = (props) => {\n const applications = props.examApplicationsForDay.info ? props.examApplicationsForDay.info.items : [];\n const availableDays = props.days.filter(d => d.dayNumber !== props.day.dayNumber && d.canAssignApplications);\n\n const [showConfirmDate, setShowConfirmDate] = React.useState(false);\n const [assigningApplicantsForReplace, setAssigningApplicantsForReplace] = React.useState([]);\n\n const [selectedDayForReplace, setSelectedDayForReplace] = React.useState(availableDays[0] ? availableDays[0].dayNumber : 0);\n\n React.useEffect(() => {\n if (availableDays[0] && !selectedDayForReplace) {\n setSelectedDayForReplace(availableDays[0].dayNumber);\n }\n }, [props.day]);\n\n const handleAssignedApplicants = React.useCallback((applicants: IExamApplication[]) => {\n setShowConfirmDate(true);\n setAssigningApplicantsForReplace(applicants);\n }, []);\n\n const handleConfirmAssigning = async () => {\n const selectedDay = availableDays[selectedDayForReplace];\n if (selectedDay) {\n if (await props.assignApplicationsForDay({\n examId: props.examDetails.id,\n stage: props.stageNumber,\n examDayId: selectedDay.id,\n body: {\n examApplicationIds: assigningApplicantsForReplace.map(a => a.examApplicationId),\n },\n })) {\n await props.examApplicationsForDay.fetch({\n examDayId: props.day.id,\n examId: props.day.examId,\n stage: props.day.stageNumber,\n });\n setShowConfirmDate(false);\n setAssigningApplicantsForReplace([]);\n }\n }\n };\n\n const applicantHeaders: ExamAssigningApplicationsColumnHeader[] = [\n { value: 'Имя, фамилия', key: 'applicantFullName' },\n { value: 'Телефон', key: 'applicantPhone' },\n ];\n\n return (\n <>\n \n\n setShowConfirmDate(false)}\n onAccess={handleConfirmAssigning}\n days={availableDays}\n selectedDayNumber={selectedDayForReplace}\n chooseDay={setSelectedDayForReplace}\n apiErrors={props.apiError}\n />\n \n );\n};\n\ninterface IProps {\n readonly?: boolean;\n day: IExamDay;\n days: IExamDay[];\n examDetails: IExamDetails;\n stageNumber: number;\n\n examApplicationsForDay: IBaseExamApplicationsForDay;\n assignApplicationsForDay: (data: IAssignForDayInput) => Promise;\n apiError?: IApiError | null;\n}\n\nexport default ExamApplicationsTab;\n","import * as React from 'react';\nimport styles from '../StageContainer.module.scss';\nimport { Tab } from 'react-bootstrap';\nimport { DayEditor } from 'components/DayEditor';\nimport ExpertsAssignTable from '../Components/ExpertsAssignTable';\nimport moment, { Moment } from 'moment';\nimport { useLoading } from 'hooks';\nimport {\n IAssignApplicationsForDay,\n IAssignForDayInput,\n IExamDay,\n IExamDetails,\n IUpdateExamDay,\n IFinalizeResultPayload,\n ICreateExamDayInput,\n IAdmitToExamDay,\n IBaseExamApplicationsForDayAdmit,\n IBaseApplicantDetails,\n IBaseUnratedExamApplications, IBaseExperts, IBaseExpertsForDay, IBaseExamApplicationsForDay, IExpert,\n} from 'components/models';\nimport { WarningModal } from 'components/Common/Modals';\nimport { AnimatedTabs } from 'components/AnimatedTabs';\nimport {\n ExamAssigningApplicationsColumnHeader,\n} from 'components/ExamAssigningApplicationsTable';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport FinalizingResultsTab from './EditModalTabs/FinalizingResultsTab';\nimport AdmitApplicantsTab from './EditModalTabs/AdmitApplicantsTab';\nimport FinalizedExamApplicationsTab from './EditModalTabs/FinalizedExamApplicationsTab';\nimport ExamApplicationsTab from './EditModalTabs/ExamApplicationsTab';\nimport { formatDayTitle } from '_helpers/formatHelpers';\n\nconst EditDayModal: React.FC = (props) => {\n const availableDays = props.days.filter(d => d.dayNumber !== props.day.dayNumber);\n const [selectedNewDate, setSelectedNewDate] = React.useState(() => moment().utc().clone().minute(Math.round(moment().minute() / 5) * 5));\n const [showEditDate, setShowEditDate] = React.useState(false);\n\n const [selectedDayForReplace, setSelectedDayForReplace] = React.useState(availableDays[0] ? availableDays[0].dayNumber : 0);\n\n const handleFetchExamApplicationsForDay = (day: IExamDay) => props.examApplicationsForDay.fetch({\n examDayId: day.id,\n examId: day.examId,\n stage: day.stageNumber,\n });\n\n const handleFetchExamApplicationsForDayAdmit = (day: IExamDay) => props.examApplicationsForDayAdmit.fetch({\n examDayId: day.id,\n examId: day.examId,\n stage: day.stageNumber,\n });\n\n\n const handleUpdateDayDate = () => props.updateDay({\n examId: props.examDetails.id,\n stage: props.stageNumber,\n examDayId: props.day.id,\n body: {\n time: selectedNewDate,\n },\n });\n\n const [updateDayLoading, updateDay] = useLoading(handleUpdateDayDate);\n\n const handleAssignExpert = React.useCallback(\n (experts: IExpert[]) => props.onUpdateExperts(experts.map(e => e.id))\n .then((r) => {\n if (props.day.id && r) {\n return props.expertsForDayList.fetch({ examDayId: props.day.id });\n }\n\n return Promise.resolve(r);\n }),\n [props.onUpdateExperts],\n );\n\n React.useEffect(() => {\n if (availableDays[0] && (!selectedDayForReplace || props.day.dayNumber === selectedDayForReplace)) {\n setSelectedDayForReplace(availableDays[0].dayNumber);\n }\n }, [props.day]);\n\n React.useEffect(() => {\n if (props.show) {\n props.expertsForDayList.fetch({\n examDayId: props.day.id,\n });\n }\n }, [props.day.id, props.show]);\n\n React.useEffect(() => {\n if (props.show) {\n handleFetchExamApplicationsForDay(props.day);\n handleFetchExamApplicationsForDayAdmit(props.day);\n }\n }, [props.day.id, props.show]);\n\n React.useEffect(() => {\n if (props.day.time) {\n setSelectedNewDate(props.day.time.clone().utc());\n }\n if (props.day) {\n handleFetchExamApplicationsForDay(props.day);\n handleFetchExamApplicationsForDayAdmit(props.day);\n }\n }, [props.day]);\n\n React.useEffect(() => {\n if (!props.show) {\n props.examApplicationsForDay.clear();\n props.examApplicationsForDayAdmit.clear();\n props.expertsForDayList.clear();\n }\n\n return () => {\n props.examApplicationsForDay.clear();\n props.examApplicationsForDayAdmit.clear();\n props.expertsForDayList.clear();\n };\n }, [props.show]);\n\n const applicantHeaders: ExamAssigningApplicationsColumnHeader[] = [\n { value: 'Имя, фамилия', key: 'applicantFullName' },\n { value: 'Телефон', key: 'applicantPhone' },\n ];\n\n if (props.day.readyForFinalize) {\n applicantHeaders.push(\n { value: 'Статус', key: 'lastFinalizedStageResult', isStatus: true },\n );\n }\n\n const handleCreateRetakeDay = (\n time: Moment,\n expertIds: string[],\n ) => props.createExamDay({\n examId: props.examDetails.id,\n stage: props.stageNumber,\n body: {\n time,\n expertIds,\n },\n });\n\n const admitApplicants = (\n \n \n \n );\n\n const finalizeTab = (\n \n \n \n );\n\n const expertsTab = React.useMemo(() => (\n \n
\n true}\n apiError={props.apiErrors && props.apiErrors.failures && props.apiErrors.failures.expertIds ? props.apiErrors.failures.expertIds[0] : undefined}\n minAssigningExperts={props.minAssigningExperts}\n />\n
\n
\n ), [props.expertsForDayList, props.experts, handleAssignExpert, props.apiErrors, props.minAssigningExperts, props.day]);\n\n\n const applicantsTab = (\n \n {props.day.readyForFinalize ? (\n \n ) : (\n \n )}\n \n );\n\n let tabs = [expertsTab, applicantsTab];\n if (props.day.readyForFinalize && (!props.readonly || props.day.unFinalizedApplications > 0)) {\n tabs = tabs.reverse();\n tabs.unshift(finalizeTab);\n }\n if (!(props.day.readyForFinalize && !props.day.unFinalizedApplications) && props.stageNumber === 1) {\n tabs.unshift(admitApplicants);\n }\n\n const activeTab = React.useMemo(() => {\n if (props.day.readyForFinalize && !props.day.unFinalizedApplications) {\n return 'examApplications';\n }\n\n if (props.day.readyForFinalize) {\n return 'finalizeExamApplications';\n }\n\n return 'experts';\n }, [props.day]);\n\n return (\n setShowEditDate(true), buttonText: 'Изменить дату и время', iconType: 'edit' },\n ] : undefined}\n >\n \n {tabs}\n \n\n {\n setShowEditDate(false);\n setSelectedNewDate(props.day.time);\n }}\n accessBtnTittle=\"Сохранить изменения\"\n closeBtnTittle=\"Отмена\"\n onAccess={async () => {\n if (await updateDay()) {\n setShowEditDate(false);\n }\n }}\n loading={updateDayLoading}\n >\n \n \n \n );\n};\n\ninterface IProps {\n day: IExamDay;\n show: boolean;\n readonly?: boolean;\n onHide: () => void;\n onUpdateExperts: (ids: string[]) => Promise;\n minAssigningExperts: number;\n days: IExamDay[];\n examDetails: IExamDetails;\n stageNumber: number;\n\n // DispatchProps\n updateDay: (data: IAssignForDayInput) => Promise;\n createExamDay: (data: ICreateExamDayInput) => Promise;\n assignApplicationsForDay: (data: IAssignForDayInput) => Promise;\n\n // StateProps\n apiErrors: IApiError | null;\n\n unratedExamApplications: IBaseUnratedExamApplications;\n examApplicationsForDayAdmit: IBaseExamApplicationsForDayAdmit;\n applicantDetails: IBaseApplicantDetails;\n experts: IBaseExperts;\n expertsForDayList: IBaseExpertsForDay;\n examApplicationsForDay: IBaseExamApplicationsForDay;\n\n finalizeResult: (payload: IFinalizeResultPayload) => Promise;\n admitToExamDay: (props: IAssignForDayInput) => void;\n}\n\nexport default EditDayModal;\n","import * as React from 'react';\nimport { EmptySection } from '../../../../Common/EmptySection';\nimport CalendarIcon from 'components/assets/svg/calendar.svg';\n\nconst EmptyStage: React.FC = props => (\n \n);\n\ninterface IProps {\n placeholderIcon?: string;\n placeholderTitle?: string;\n placeholderText?: string;\n className?: string;\n}\n\nexport default EmptyStage;\n","import * as React from 'react';\nimport DayCell from './DayCell';\nimport styles from './StageContainer.module.scss';\nimport ConfirmDateModal from './Modals/ConfirmDateModal';\nimport getInitialDays, { IFakeExamDay } from './getInitialDays';\nimport { Moment } from 'moment';\nimport cn from 'classnames';\nimport EditDayModal from './Modals/EditDayModal';\nimport { ExamAssigningApplicationsTable } from '../../../ExamAssigningApplicationsTable';\nimport {\n IAssignApplicationsForDay,\n IAssignForDayInput,\n ICreateExamDayInput,\n IExamApplication,\n IExamDay,\n IExamDetails,\n IUpdateAssignedExpertsForDay,\n IUpdateExamDay,\n IFinalizeResultPayload,\n IAdmitToExamDay,\n IBaseExamUnAssignedApplicationsList,\n IBaseExpertsForDay,\n IBaseExamApplicationsForDay,\n IBaseExperts,\n IBaseUnratedExamApplications, IBaseApplicantDetails, IBaseExamApplicationsForDayAdmit,\n} from 'components/models';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport { Card } from 'components/Card';\nimport EmptyStage from './Components/EmptyStage';\nimport { PaginationImpl } from 'components/defaultValues';\nimport CreateDayModals from './Modals/CreateDayModals';\n\nconst StageContainer: React.FC = (\n {\n stageNumber,\n examUnAssignedApplicationsList,\n examDetails,\n ...props\n },\n) => {\n const DEFAULT_DAYS_COUNT = 5;\n const stageInfo = React.useMemo(() => examDetails.examStages[stageNumber - 1], [examDetails.examStages, examDetails]);\n const stageDays = React.useMemo(() => (\n [\n ...(stageInfo.examDays.map((d) => {\n d.time.local();\n return d;\n })),\n ...(examUnAssignedApplicationsList.info && examUnAssignedApplicationsList.info.total && !props.readonly ? getInitialDays(\n DEFAULT_DAYS_COUNT - stageInfo.examDays.length,\n stageInfo.examDays.length ? stageInfo.examDays[stageInfo.examDays.length - 1].dayNumber + 1 : 1,\n ) : []),\n ]\n ), [stageInfo, examDetails, examUnAssignedApplicationsList.info]);\n\n const [chooseDay, setChooseDay] = React.useState(() => {\n const dayIndex = stageDays.findIndex((d, i) => !d.examId || i === DEFAULT_DAYS_COUNT - 1);\n return dayIndex !== -1 ? dayIndex : 0;\n });\n const lastDay = [...stageInfo.examDays].pop();\n const [showConfirmDate, setShowConfirmDate] = React.useState(false);\n const [showCreateNewDay, setShowCreateNewDay] = React.useState(false);\n const [showEditModal, setShowEditModal] = React.useState(false);\n\n const [assignedApplicants, setAssignedApplicants] = React.useState([]);\n\n const examDay = React.useMemo(() => stageInfo.examDays[chooseDay], [stageInfo, chooseDay]);\n\n const handleAssignedApplicants = React.useCallback((applicants: IExamApplication[]) => {\n setShowConfirmDate(true);\n setAssignedApplicants(applicants);\n }, []);\n\n const handleUpdateExperts = async (ids: string[], time?: Moment) => {\n let result;\n if (examDay) {\n result = props.updateExpertsForDay({\n examId: examDetails.id,\n stage: stageNumber,\n examDayId: examDay.id,\n body: {\n expertIds: ids,\n },\n });\n } else if (time) {\n const createExamDayPayload: ICreateExamDayInput = {\n examId: examDetails.id,\n stage: stageNumber,\n body: {\n time,\n expertIds: ids,\n },\n };\n\n if (assignedApplicants.length) {\n createExamDayPayload.assignApplications = {\n examApplicationIds: assignedApplicants.map(a => a.examApplicationId),\n };\n }\n result = await props.createExamDay(createExamDayPayload);\n }\n\n if (result) {\n await examUnAssignedApplicationsList.fetch({ examId: examDetails.id, stage: stageNumber });\n }\n\n return result;\n };\n\n const handleConfirmDate = async () => {\n if (examDay) {\n await props.assignApplicationsForDay({\n examId: examDetails.id,\n stage: stageNumber,\n examDayId: examDay.id,\n body: {\n examApplicationIds: assignedApplicants.map(a => a.examApplicationId),\n },\n });\n\n await examUnAssignedApplicationsList.fetch({ examId: examDetails.id, stage: stageNumber });\n\n setShowConfirmDate(false);\n }\n };\n\n const handleCreateDay = async (ids: string[], time: Moment) => {\n const createExamDayPayload: ICreateExamDayInput = {\n examId: examDetails.id,\n stage: stageNumber,\n body: {\n time,\n expertIds: ids,\n },\n };\n\n const result = await props.createExamDay(createExamDayPayload);\n\n if (result) {\n const newDays = result.examStages[stageNumber - 1].examDays;\n setChooseDay(newDays.length - 1);\n }\n\n return result;\n };\n\n const handleChangeExamApplicationsFilter = (searchField: string | undefined, searchTerm: string | undefined, pageNumber: number | undefined, pageSize: number | undefined) => {\n examUnAssignedApplicationsList.fetch({\n examId: examDetails.id,\n stage: stageNumber,\n searchTerm,\n searchField,\n pageSize,\n page: pageNumber,\n });\n };\n\n const handleClickDay = (day: IExamDay | IFakeExamDay, index: number) => {\n setChooseDay(index);\n if (day.examId) {\n setShowEditModal(true);\n } else {\n !props.readonly && setShowCreateNewDay(true);\n }\n };\n\n const isEmptyStage = !stageInfo.examDays.length;\n\n return (\n \n
\n Не распределено\n {stageInfo.unassignedApplications || 0} чел.\n\n Всего аккредитуемых\n {stageInfo.totalApplications || 0} чел.\n
\n\n {isEmptyStage && props.readonly ? (\n \n ) : (\n <>\n
\n {stageDays.map((day, i) => (\n setChooseDay(i)}\n orange={!!(day.readyForFinalize && day.unFinalizedApplications)}\n onEdit={() => handleClickDay(day, i)}\n />\n ))}\n
\n
\n\n {examUnAssignedApplicationsList.info && !props.readonly && (\n ({ examApplication: i }))}\n onChange={handleChangeExamApplicationsFilter}\n pagination={new PaginationImpl(examUnAssignedApplicationsList.info).getPaginationData()}\n />\n )}\n \n )}\n\n setShowCreateNewDay(true)}\n stage={stageInfo}\n show={showConfirmDate}\n onHide={() => setShowConfirmDate(false)}\n onAccess={handleConfirmDate}\n days={stageDays}\n selectedDayNumber={chooseDay}\n chooseDay={setChooseDay}\n apiErrors={props.error}\n />\n\n setShowCreateNewDay(false)}\n\n onCreateDay={handleCreateDay}\n minAssigningExperts={examDetails.minimumRequiredExpertsNumber}\n expertsForDayList={props.expertsForDayList}\n experts={props.experts}\n apiErrors={props.error}\n />\n\n {examDay && (\n setShowEditModal(false)}\n days={stageInfo.examDays}\n examDetails={examDetails}\n stageNumber={stageNumber}\n examApplicationsForDay={props.examApplicationsForDay}\n experts={props.experts}\n expertsForDayList={props.expertsForDayList}\n apiErrors={props.error}\n updateDay={props.updateDay}\n assignApplicationsForDay={props.assignApplicationsForDay}\n unratedExamApplications={props.unratedExamApplications}\n finalizeResult={props.finalizeResult}\n createExamDay={props.createExamDay}\n applicantDetails={props.applicantDetails}\n examApplicationsForDayAdmit={props.examApplicationsForDayAdmit}\n admitToExamDay={props.admitToExamDay}\n />\n )}\n \n );\n};\n\ninterface OwnProps {\n readonly?: boolean;\n stageNumber: number;\n examDetails: IExamDetails;\n error: IApiError | null;\n createExamDay: (data: ICreateExamDayInput) => Promise;\n assignApplicationsForDay: (data: IAssignForDayInput) => Promise;\n updateExpertsForDay: (data: IAssignForDayInput) => Promise;\n\n updateDay: (data: IAssignForDayInput) => Promise;\n finalizeResult: (payload: IFinalizeResultPayload) => Promise;\n admitToExamDay: (props: IAssignForDayInput) => void;\n\n examUnAssignedApplicationsList: IBaseExamUnAssignedApplicationsList;\n expertsForDayList: IBaseExpertsForDay;\n examApplicationsForDay: IBaseExamApplicationsForDay;\n experts: IBaseExperts;\n unratedExamApplications: IBaseUnratedExamApplications;\n applicantDetails: IBaseApplicantDetails;\n examApplicationsForDayAdmit: IBaseExamApplicationsForDayAdmit;\n}\n\nexport default StageContainer;\n","import { IExamDay } from '../../../models';\n\n\nexport interface IFakeExamDay extends Partial{\n id: string;\n dayNumber: number;\n}\n\nconst getRandomId = () => Math.ceil(Math.random() * 100000000000000);\nexport default (daysCount: number, start: number = 1): IFakeExamDay[] => [...Array(daysCount)].map((_, i) => ({\n id: String(getRandomId()),\n dayNumber: i + start,\n attemptNumber: undefined,\n time: undefined,\n totalApplications: undefined,\n totalExperts: undefined,\n}));\n","import * as React from 'react';\nimport { IExamStage } from '../../../models';\nimport { Card } from '../../../Card';\nimport { Details, ReactNodeValue, StringValue } from '../../../Details';\nimport { formatPhoneNumber, getMoscowTime } from '_helpers';\nimport { StepStatus } from '../../../StepStatus';\n\nconst AwaitingStage: React.FC = ({ stageInfo }) => {\n const startDate = stageInfo.firstDayDateTime;\n const { moscowHours, moscowMinutes } = getMoscowTime(stageInfo.firstDayDateTime);\n\n const infoRows = React.useMemo(() => [\n new StringValue('Период проведения', startDate.format('DD.MM.YYYY')),\n new StringValue('Время начала', `${startDate.format('HH:mm')} (${moscowHours}:${moscowMinutes}) МСК)`),\n new StringValue('Площадка', stageInfo.accreditationCenterName),\n new StringValue('Почта', stageInfo.secretaryEmail),\n new StringValue('Телефон', formatPhoneNumber(stageInfo.secretaryPhone || '') || ''),\n new ReactNodeValue(\n 'Подтверждение',\n ,\n ),\n ], [stageInfo]);\n\n return (\n \n \n \n );\n};\n\ninterface IProps {\n stageInfo: IExamStage;\n}\n\nexport default AwaitingStage;\n","import React from 'react';\nimport {\n ExamStatus,\n AppType,\n AnimatedTabs,\n} from 'components';\nimport {\n IExamApplication,\n IExamStage,\n} from 'components/models';\nimport { Tab } from 'react-bootstrap';\nimport { ApplicantsTab, IApplicantsTabProps } from './ApplicantsTab';\nimport { ExamInfoTab, ExamInfoTabProps } from './ExamInfoTab';\nimport { IApiError } from '../../_helpers/ApiConnector/types';\nimport AwaitingStage from './ExamStagesTabs/AwaitingStage/AwaitingStage';\n\nconst ExamDetailsOnlyWaitingStatusTabs = ({\n tab,\n applicantsTabProps,\n examDetails,\n examApplicationsList,\n withoutApplicantsTab,\n withoutExpertsTab,\n appType,\n ...props\n}: IProps) => {\n const isExpert = appType === AppType.Expert;\n const isMain = appType === AppType.Main;\n const isApplicant = appType === AppType.Applicant;\n const isAc = appType === AppType.Ac;\n\n const getAwaitingStage = (s: IExamStage) => (\n \n );\n\n const stagesMap: Record JSX.Element | null> = {\n defaultReturn: () => null,\n [ExamStatus.AwaitingExpertConfirmation]: getAwaitingStage,\n };\n\n const renderStage = React.useMemo(() => {\n if (examDetails.status in stagesMap) {\n return stagesMap[examDetails.status];\n }\n\n return stagesMap.defaultReturn;\n }, [examDetails.status, stagesMap]);\n\n\n const checkPropsTab = () => {\n if (tab && (tab === TabKey.Rules\n || (tab === TabKey.Applicants && !withoutApplicantsTab)\n || tab === TabKey.Info\n || (tab === TabKey.Experts && !withoutExpertsTab))) {\n return tab;\n }\n\n return null;\n };\n\n const getDefaultTab = () => {\n if (checkPropsTab()) {\n return checkPropsTab();\n }\n\n if (!isExpert) return TabKey.Info;\n if (examStatus === ExamStatus.IsApplying) return TabKey.Info;\n if (!withoutApplicantsTab) return TabKey.Applicants;\n if (!withoutExpertsTab) return TabKey.Experts;\n\n return TabKey.Info;\n };\n\n React.useEffect(() => {\n if (!activeTab) {\n setActiveTab(getDefaultTab());\n }\n }, [examDetails]);\n\n const [activeTab, setActiveTab] = React.useState(getDefaultTab());\n const examStatus = examDetails.status;\n const examInCreateStatus = examStatus === ExamStatus.AwaitingExpertConfirmation;\n\n\n\n return (\n <>\n setActiveTab(key as TabKey)}\n >\n\n \n \n {props.renderAppendForInfo && props.renderAppendForInfo()}\n \n\n {!!examDetails && examDetails.examStages.map((s, i) => (\n \n {s.stageNumber === +String(activeTab).split('/')[1] && (\n renderStage(s)\n )}\n \n ))}\n\n {!withoutApplicantsTab && applicantsTabProps && examApplicationsList && !examInCreateStatus ? (\n \n \n \n ) : null}\n \n \n );\n};\n\nexport default ExamDetailsOnlyWaitingStatusTabs;\n\nexport interface IProps {\n examDetails: ExamInfoTabProps['examDetails'];\n appType: AppType;\n examApplicationsList?: IExamApplicationList;\n applicantsTabProps?: IApplicantsTabProps;\n withoutApplicantsTab?: boolean;\n withoutExpertsTab?: boolean;\n tab?: TabType;\n\n stageNumber?: string;\n error: IApiError | null;\n renderAppendForInfo?: () => JSX.Element;\n}\n\ninterface IExamApplicationList {\n admittedCount: number;\n items: IExamApplication[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nenum TabKey {\n Applicants = 'applicants',\n Experts = 'experts',\n Info = 'info',\n Rules = 'rules',\n}\n\ntype TabType = 'applicants' | 'experts' | 'info' | 'rules'\n","import React from 'react';\nimport { Card, CKText } from 'components';\nimport styles from './RulesTab.module.scss';\n\nconst RulesTab = ({ rules }: IProps) => (\n \n \n \n);\n\nexport default RulesTab;\n\ninterface IProps {\n rules?: string;\n}\n","import React from 'react';\nimport {\n AnimatedTabs,\n} from 'components';\nimport { Tab } from 'react-bootstrap';\nimport { ExamInfoTab } from '../ExamDetailsTabs/ExamInfoTab';\nimport { RulesTab } from '../ExamDetailsTabs/RulesTab';\nimport { IApplicantExamDetails } from 'applicant/src/api/ApiClient';\nimport moment from 'moment';\n\nconst ApplicantExamDetailsTabs = ({\n examDetails: exam,\n inModal,\n}: IProps) => (\n \n \n \n \n\n \n \n \n \n);\n\nexport default ApplicantExamDetailsTabs;\n\nexport interface IProps {\n examDetails: IApplicantExamDetails;\n inModal?: boolean;\n}\n\nenum TabKey {\n Info = 'info',\n Rules = 'rules',\n}\n","import React from 'react';\nimport { ChatMessage, ChatMessageType } from '_helpers';\nimport { useAutoScroll } from '../../hooks';\nimport OnlineChatAlert from './OnlineChatAlert';\nimport OnlineChatMessage from './OnlineChatMessage';\nimport LoadingPlaceholder from './LoadingPlaceholder';\nimport styles from './OnlineChat.module.scss';\nimport cn from 'classnames';\n\nconst OnlineChat = ({\n messages,\n onGetMessages,\n onSendMessage,\n ...props\n}: IProps) => {\n const [tab, setTab] = React.useState(ChatTabs.Messages);\n const textAreaRef = React.useRef(null);\n const chatAreaRef = useAutoScroll(null, messages, props.onReadMessages);\n const [messageText, setMessageText] = React.useState('');\n\n React.useEffect(() => {\n onGetMessages();\n }, []);\n\n React.useEffect(() => {\n const message = messages[messages.length - 1];\n if (message && message.type === ChatMessageType.Message && tab === ChatTabs.Alerts) {\n setTab(ChatTabs.Messages);\n }\n }, [messages]);\n\n React.useLayoutEffect(() => {\n if (textAreaRef.current) {\n textAreaRef.current.style.height = 'auto';\n textAreaRef.current.style.height = `${textAreaRef.current.scrollHeight}px`;\n }\n }, [messageText]);\n\n const handleSendMessage = React.useCallback((event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n if (messageText.trim()) {\n onSendMessage(messageText.trim());\n }\n setMessageText('');\n }\n }, [messageText]);\n\n const handleChange = React.useCallback((event: React.ChangeEvent) => {\n setMessageText(event.target.value.replace(/\\n/g, ''));\n }, []);\n\n const messagesTitle = props.isApplicant ? 'Чат с членом комиссии' : 'Чат с аккредитуемым';\n\n const chatMessages = React.useMemo(() => {\n if (props.isApplicant) {\n return [...messages].reverse();\n }\n\n if (tab === ChatTabs.Alerts) {\n return messages.filter(m => m.type !== ChatMessageType.Message).reverse();\n }\n\n return messages.filter(m => m.type === ChatMessageType.Message).reverse();\n }, [messages, tab]);\n\n return (\n
\n {props.withTabs && (\n
\n setTab(ChatTabs.Messages)}\n className={cn(styles.tab, { [styles.active]: tab === ChatTabs.Messages })}\n >\n {messagesTitle}\n \n setTab(ChatTabs.Alerts)}\n className={cn(styles.tab, { [styles.active]: tab === ChatTabs.Alerts })}\n >\n Лог событий\n \n
\n )}\n\n
\n \n {chatMessages.map((chatMessage: ChatMessage, i: number, allMessages: ChatMessage[]) => (\n chatMessage.type === ChatMessageType.Message ? (\n \n ) : (\n \n )))}\n
\n\n
\n \n
\n
\n );\n};\n\nexport default OnlineChat;\n\nenum ChatTabs {\n Alerts = 'Alerts',\n Messages = 'Messages',\n}\n\ninterface IProps {\n loading?: boolean;\n messages: ChatMessage[];\n onGetMessages: () => void;\n onReadMessages: () => void;\n onSendMessage: (message: string) => void;\n containerClassName?: string;\n isApplicant?: boolean;\n expertId?: string;\n withTabs?: boolean;\n hideInput?: boolean;\n}\n","import React from 'react';\nimport {\n Card,\n PersonalDataTab,\n ExamTable,\n MappedExamStatuses,\n ExamApplicationStatus,\n AnimatedTabs,\n ApplicantQualifications,\n} from 'components';\nimport {\n IApplicantQualificationDetails,\n IApplicant,\n IApplicantQualification,\n IApplicantExamList,\n IApplicantExam,\n} from 'components/models';\nimport { ColorStatus, Color } from '_helpers';\nimport { Tab } from 'react-bootstrap';\nimport { IApiError } from '_helpers/ApiConnector/types';\n\nconst ApplicantDetailsTabs = ({\n tab,\n applicantQualificationDetails,\n applicantQualifications,\n applicantDetail,\n applicantExams,\n apiError,\n getApplicantQualificationDetails,\n getApplicantExams,\n onCancelClick,\n onChooseExam,\n showLoader,\n}: IProps) => {\n const getDefaultTab = () => {\n if (tab === TabKey.ExamsTab || tab === TabKey.InfoTab || tab === TabKey.QualificationsTab) return tab;\n return false;\n };\n\n React.useEffect(() => {\n setActiveTab(getDefaultTab());\n }, [tab]);\n\n const [activeTab, setActiveTab] = React.useState(getDefaultTab());\n\n const EXAM_TABLE_HEADERS = ['Период проведения', 'Специальность', 'Статус'];\n\n const getExamRows = (exam: IApplicantExam) => {\n const applicantStatus = exam.examApplicationStatus === ExamApplicationStatus.Passed\n ? new ColorStatus(Color.Success, 'Аккредитация пройдена')\n : new ColorStatus(Color.Red, 'Аккредитация не пройдена');\n\n const t = MappedExamStatuses[exam.examStatus];\n const examStatus = new ColorStatus(t.color, t.text);\n\n if (applicantStatus.text !== examStatus.text) {\n examStatus.subStatus = {\n color: applicantStatus.color === Color.Red ? Color.Red : Color.Success,\n text: applicantStatus.text,\n };\n }\n\n return {\n ...exam,\n id: exam.examApplicationId,\n status: examStatus,\n name: exam.qualificationTitle,\n };\n };\n\n const handleCancelClick = () => {\n onCancelClick();\n };\n\n const handleChooseExam = (id: string) => {\n if (!applicantExams || !applicantExams.items) return;\n const selectedExam = applicantExams.items.find(x => x.examApplicationId === id);\n if (!selectedExam) return;\n onChooseExam(id);\n };\n\n return (\n \n setActiveTab(key as TabKey)}\n id=\"applicantDetailsTabs\"\n >\n \n \n \n \n getApplicantQualificationDetails(id)}\n onClearQualification={() => {}}\n />\n \n \n \n getApplicantExams({ page, pageSize: perPage })}\n placeholderText=\"Здесь будут отображаться все аккредитации, в которых участвовал аккредитуемый\"\n placeholderTitle=\"Нет аккредитаций в списке\"\n />\n \n \n \n \n );\n};\n\nexport default ApplicantDetailsTabs;\n\ninterface IProps {\n applicantDetail: IApplicant | null;\n applicantQualifications: IApplicantQualification[] | null;\n applicantQualificationDetails: IApplicantQualificationDetails | null;\n applicantExams: IApplicantExamList | null;\n apiError: IApiError | null;\n showLoader: boolean;\n tab?: string;\n getApplicantQualificationDetails: (examApplicationId: string) => Promise;\n getApplicantExams: (data: IGetApplicantExams) => void;\n onCancelClick: () => void;\n onChooseExam: (examApplicationId: string) => void;\n}\n\nenum TabKey {\n InfoTab = 'info',\n QualificationsTab = 'qualifications',\n ExamsTab = 'exams'\n}\n\ninterface IGetApplicantExams {\n page: number;\n pageSize: number;\n}\n","import React from 'react';\nimport styles from './AlertText.module.scss';\nimport cn from 'classnames';\n\nconst AlertText = ({ title, text, className }: IProps) => (\n
\n {title}\n {text}\n
\n);\n\nexport default AlertText;\n\ninterface IProps {\n title: string;\n text: string;\n className?: string;\n}\n","import React from 'react';\nimport { Card, EmptySection } from 'components';\nimport { DocumentSwitch } from './DocumentSwitch';\nimport docsIcon from 'components/assets/svg/documents_icon.svg';\nimport styles from './ApplicantDocuments.module.scss';\nimport {DocumentType, DocumentTypeTitles} from 'components/enums';\n\nconst ApplicantDocuments = ({ documents, onChangeSwitch, withoutPadding }: IProps) => {\n const [activeValues, setActiveValues] = React.useState(documents.map(() => false));\n\n const onSwitchClick = (num: number, active: boolean) => {\n if (onChangeSwitch) {\n const newActive = activeValues;\n newActive[num] = active;\n\n setActiveValues(newActive);\n onChangeSwitch(newActive);\n }\n };\n\n const renderSwitch = (num: number) => (onChangeSwitch ? (\n \n ) : null);\n\n return (\n \n {documents.length ? documents.map((document, i) => (\n
\n \n \"documentImage\"\n \n
\n {DocumentTypeTitles[document.type]}\n \n {document.documentDescription}\n
\n
\n )) : (\n \n )}\n \n );\n};\n\nexport default ApplicantDocuments;\n\nexport interface IProps {\n documents: IDocument[];\n withoutPadding?: boolean;\n onChangeSwitch?: (change: boolean[]) => void;\n}\n\ninterface IDocument {\n applicantId: string;\n documentDescription: string;\n examApplicationId: string;\n fileExtension: string;\n fileId: string;\n fileSize: number;\n fileUrl: string;\n id: string;\n documentTemplateId?: string;\n type: DocumentType;\n}\n","import React from 'react';\nimport { ProgressBar } from 'react-bootstrap';\nimport uploadIcon from './upload_icon.svg';\nimport deleteIcon from './delete_icon.svg';\nimport styles from './UploadedDocument.module.scss';\nimport cn from 'classnames';\n// import moment from 'moment';\n\nconst UploadedDocument = ({\n file, onDeleteFile, getDocFromTemplate, onDeleteSource,\n}: IProps) => {\n const {\n fileId, fileExtension, fileName, fileSize, documentTemplateId, isSource, progress,\n } = file;\n\n const onDeleteFileClick = () => {\n if (documentTemplateId) {\n if (!isSource) {\n onDeleteFile(documentTemplateId);\n } else if (getDocFromTemplate && onDeleteSource) {\n const document = getDocFromTemplate(documentTemplateId);\n\n if (document) {\n onDeleteSource(document.id, fileId);\n }\n }\n }\n };\n\n const progressVal = progress !== undefined ? progress : 100;\n const size = parseFloat((fileSize / 1000).toFixed(2));\n\n return (\n
\n \"uploadIcon\"\n
\n {fileName || fileExtension}\n \n \n {progressVal ? (progressVal / 100) * size : 0} из {size} КБ\n \n {`Загружено ${progressVal}%`}\n
\n \n
\n );\n};\n\nexport default UploadedDocument;\n\nexport interface IProps {\n file: IFile;\n onDeleteFile: (templateId: string) => void;\n getDocFromTemplate?: (templateId: string) => IUploadedDocument | undefined;\n onDeleteSource?: (documentId: string, sourceFileId: string) => void;\n}\n\nexport interface IUploadedDocument {\n id: string;\n documentDescription: string;\n examApplicationId: string;\n applicantId: string;\n // submissionDate: moment.Moment;\n sourceFiles: ISourceFile[];\n fileId: string;\n fileExtension: string;\n fileSize: number;\n fileUrl: string;\n documentTemplateId?: string;\n}\n\ninterface IFile {\n fileId: string;\n fileExtension: string;\n fileName?: string;\n fileSize: number;\n isSource?: boolean;\n progress?: number;\n documentTemplateId?: string;\n}\n\ninterface ISourceFile {\n fileId: string;\n fileExtension: string;\n fileSize: number;\n fileUrl: string;\n}\n","import React from 'react';\nimport { IDropZoneUploadedDocument, IUploadedDocumentProps, UploadedDocument } from '../UploadedDocument';\nimport { Form } from 'react-bootstrap';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport ReactDropZone, { FileRejection } from 'react-dropzone';\nimport styles from './DropZone.module.scss';\nimport dropIcon from './drop_icon.svg';\nimport cn from 'classnames';\nimport { DocumentType, DocumentTypeTitles } from \"components/enums\";\n\nconst DropZone = ({\n template,\n onDrop,\n templateNum,\n uploadedDocuments,\n apiError,\n onDeleteFile,\n onDeleteSource,\n loadingFile,\n lastDropTemplateId,\n}: IProps) => {\n const [showErrorUploadFile, setShowErrorUploadFile] = React.useState(false);\n\n const isUploadedDropZone = (documentTemplateId: string) => uploadedDocuments.length && uploadedDocuments.find(file => file.documentTemplateId === documentTemplateId);\n\n const getDocFromTemplate = (templateId: string) => uploadedDocuments.find(file => file.documentTemplateId === templateId);\n\n const getDocSourceFiles = (templateId: string): IFile[] => {\n const doc = getDocFromTemplate(templateId);\n let sourceFiles: IFile[] = [];\n\n if (doc) {\n sourceFiles = [...doc.sourceFiles.map(file => ({\n ...file,\n documentTemplateId: templateId,\n isSource: true,\n }))];\n }\n\n return sourceFiles;\n };\n\n const onDropFile = (file: File[], fileRejection: FileRejection[]) => {\n setShowErrorUploadFile(false);\n\n if (!fileRejection.length) {\n onDrop(file, template.id);\n } else {\n setShowErrorUploadFile(true);\n }\n };\n\n const uploadProps = {\n onDeleteFile,\n getDocFromTemplate,\n onDeleteSource,\n };\n\n return (\n \n
ЗАГРУЖЕНО
\n {templateNum ? {DocumentTypeTitles[template.type]} : null}\n {template.description ? {template.description} : null}\n \n {({ getRootProps, getInputProps }) => (\n
\n
\n \"dropIcon\"\n \n Перетащите файлы или выберите с компьютера.\n
\n
\n )}\n \n\n
\n {getDocSourceFiles(template.id).map((file, i) => )}\n {loadingFile && lastDropTemplateId === template.id ? (\n \n ) : null}\n\n {apiError && lastDropTemplateId === template.id ? (\n \n {apiError.message}\n \n ) : null}\n\n {showErrorUploadFile ? (\n \n Неверный формат файла\n \n ) : null}\n
\n \n );\n};\n\nexport default DropZone;\n\nexport interface IProps {\n template: ITemplate;\n uploadedDocuments: IDropZoneUploadedDocument[];\n apiError: IApiError | null | undefined;\n loadingFile: ILoadingFile | null;\n lastDropTemplateId: string | null;\n templateNum?: number;\n onDeleteFile: IUploadedDocumentProps['onDeleteFile'];\n onDeleteSource: IUploadedDocumentProps['onDeleteSource'];\n onDrop: (file: File[], templateId: string) => void;\n}\n\ninterface ITemplate {\n id: string;\n order: number;\n variant: number;\n description: string;\n type: DocumentType;\n}\n\ninterface IFile {\n fileId: string;\n fileExtension: string;\n fileName?: string;\n fileSize: number;\n documentTemplateId?: string;\n isSource?: boolean;\n progress?: number;\n}\n\ninterface ILoadingFile {\n file: File;\n progress: number;\n}\n","import React from 'react';\nimport { Card, WarningModal } from 'components';\nimport { Button } from 'react-bootstrap';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport { IDropZoneUploadedDocument } from './UploadedDocument';\nimport { DropZone, IDropZoneProps } from './DropZone';\nimport styles from './DocumentUpLoader.module.scss';\nimport cn from 'classnames';\n\nconst DocumentUpLoader = ({\n onGoBack,\n onSubmit,\n documentTemplateGroups,\n deleteDocument,\n uploadDocument,\n deleteDocumentSource,\n uploadedDocuments: nUploadedDocuments,\n apiError,\n goBackButtonText,\n submitButtonText,\n withoutPadding,\n}: IProps) => {\n const [uploadedDocuments, setUploadedDocuments] = React.useState([]);\n const [loadingFile, setLoadingFile] = React.useState(null);\n const [lastDropTemplateId, setLastDropTemplateId] = React.useState(null);\n\n const dropZoneDocuments = [...documentTemplateGroups[0].templates, ...documentTemplateGroups[1].templates];\n\n React.useEffect(() => {\n if (!apiError) {\n setUploadedDocuments(nUploadedDocuments);\n }\n setLoadingFile(null);\n }, [nUploadedDocuments]);\n\n React.useEffect(() => {\n if (apiError) {\n setLoadingFile(null);\n }\n }, [apiError]);\n\n React.useEffect(() => {\n if (loadingFile && loadingFile.progress === 0) {\n const timer = setTimeout(() => {\n setLoadingFile({ ...loadingFile, progress: 50 });\n }, 1000);\n return () => clearTimeout(timer);\n }\n\n return undefined;\n }, [loadingFile]);\n \n\n const onDeleteFile = (documentId: string) => {\n deleteDocument(documentId);\n };\n\n const onUploadFile = (templateId: string, file: File) => {\n uploadDocument(\n templateId,\n file,\n );\n };\n\n const onDeleteSource = (documentId: string, sourceFileId: string) => {\n deleteDocumentSource(\n documentId,\n sourceFileId,\n );\n };\n\n const onDrop = (acceptedFiles: File[], templateId: string) => {\n setLastDropTemplateId(templateId);\n setLoadingFile({ file: acceptedFiles[0], progress: 0 });\n onUploadFile(templateId, acceptedFiles[0]);\n };\n\n const isUploadedDropZone = (documentTemplateId: string) => uploadedDocuments.length && uploadedDocuments.find(file => file.documentTemplateId === documentTemplateId);\n\n return (\n \n <>\n {dropZoneDocuments.map((template, i) => (template ? (\n \n ) : null))}\n {onGoBack ? (\n \n ) : null}\n {dropZoneDocuments.every(template => template && isUploadedDropZone(template.id)) ? (\n \n {submitButtonText || 'Следующий шаг'}\n \n ) : null}\n \n \n );\n};\n\nexport default DocumentUpLoader;\n\nexport interface IProps {\n documentTemplateGroups: IDocumentTemplateGroup[];\n uploadedDocuments: IDropZoneProps['uploadedDocuments'];\n apiError: IApiError | null | undefined;\n correctionsRequired?: boolean;\n goBackButtonText?: string;\n submitButtonText?: string;\n withoutPadding?: boolean;\n onSubmit: () => void;\n deleteDocument: (documentId: string) => void;\n uploadDocument: (templateId: string, file: File) => void;\n deleteDocumentSource: (documentId: string, sourceFileId: string) => void;\n onGoBack?: () => void;\n}\n\ninterface IDocumentTemplateGroup {\n templates: ITemplate[];\n}\n\ntype ITemplate = IDropZoneProps['template'];\n\ninterface ILoadingFile {\n file: File;\n progress: number;\n}\n","import React from 'react';\nimport { InputText, InputTextProps } from 'components';\nimport { formatPhoneNumber } from '_helpers';\nimport styles from './PhoneInput.module.scss';\nimport cn from 'classnames';\n\nconst PhoneInput = (props: IProps) => {\n const onChange = (name: string, value: string) => {\n const val = value.match(/\\d+/g);\n\n props.onChange(name, val ? val.join('') : '');\n };\n\n return (\n \n {!props.disabled ? (\n \n +7\n \n ) : null}\n {props.children}\n \n );\n};\n\nexport default PhoneInput;\n\ninterface IProps extends Omit {\n phoneHelperClassName?: string;\n name?: string;\n fixTop?: boolean;\n fixLeft?: boolean;\n}\n","import React from 'react';\n\nconst NotFound = () => (\n
\n Not found\n
\n);\n\nexport default NotFound;\n","import React from 'react';\nimport {renderRow} from 'components';\nimport {IApplicant, IApplicantIdentityDoc, IApplicantDiploma} from 'components/models';\nimport { Sex,\n IdentityDocTypeTitles,\n CitizenshipTypeTitles,\n MilitaryRelationshipTypeTitles,\n DiplomaTypeTitles,\n} from 'components/enums';\nimport { formatSnils } from '_helpers';\n\nconst ProfileInfoTab = ({ applicant, applicantIdentityDoc, applicantDiploma }: IProps) => {\n const { identityDocType, passport, otherIdentity } = applicantIdentityDoc;\n\n return (\n
\n {renderRow('Фамилия', applicant.lastName)}\n {renderRow('Имя', applicant.firstName)}\n {renderRow('Отчество', applicant.middleName || '')}\n \n {renderRow('Пол', applicant.sex == Sex.Female ? 'Женский' : 'Мужской', 'mt-5' )}\n {renderRow('Дата рождения', applicant.birthDate.format('DD.MM.YYYY'))}\n \n {renderRow('УДОСТОВЕРЕНИЕ ЛИЧНОСТИ', IdentityDocTypeTitles[identityDocType], 'mt-5')}\n\n {passport ? (\n <>\n {renderRow('Серия/номер', passport.serialNumber)}\n {renderRow('Кем выдан', passport.issuedBy)}\n {renderRow('Дата выдачи', passport.dateOfIssue.format('DD.MM.YYYY'))}\n {renderRow('Адрес регистрации', passport.registrationAddress)}\n \n ) : otherIdentity ? (\n <>\n {renderRow('Данные документа', otherIdentity.data)}\n \n ) : null}\n\n {renderRow('Тип Гражданства', applicant.citizenshipType ? CitizenshipTypeTitles[applicant.citizenshipType] : '-', 'mt-5')}\n {renderRow('Гражданство', applicant.citizenshipCountryName || '-')}\n {renderRow('Воинская служба', applicant.militaryRelationship ? MilitaryRelationshipTypeTitles[applicant.militaryRelationship] : '-', 'mt-5')}\n \n {applicantDiploma && (\n <>\n {renderRow('ДОКУМЕНТ ОБ ОБРАЗОВАНИИ', DiplomaTypeTitles[applicantDiploma.type], 'mt-5')}\n {renderRow('НОМЕР ДОКУМЕНТА', applicantDiploma.serialNumber)}\n {renderRow('Кем выдан', applicantDiploma.issuedBy)}\n {renderRow('Дата выдачи', applicantDiploma.dateOfIssue.format('DD.MM.YYYY'))}\n \n )}\n\n {renderRow('СНИЛС', formatSnils(applicant.snils, ''), 'mt-5')}\n
\n );\n};\n\nexport default ProfileInfoTab;\n\ninterface IProps {\n applicant: IApplicant;\n applicantIdentityDoc: IApplicantIdentityDoc;\n applicantDiploma?: IApplicantDiploma;\n}\n","import React from 'react';\nimport { IExamApplicationDetails } from 'components/models';\nimport { DiplomaType, DiplomaTypeTitles, IdentityDocTypeTitles } from 'components/enums';\nimport {\n Card,\n AutoGrowTextArea,\n LoaderBtn,\n SignedExpert,\n renderRow, CustomRadio,\n} from 'components';\nimport { formatPhoneNumber, formatSnils } from '_helpers';\nimport { Button, Form } from 'react-bootstrap';\nimport styles from './StatementTab.module.scss';\nimport cn from 'classnames';\n\nconst StatementTab = (\n {\n onCancel,\n onSubmit,\n contentClassName,\n examApplication,\n withoutPadding,\n submitButtonText,\n cancelButtonText,\n processing,\n setProfessionalRetraining,\n setStartStage,\n ...props\n }: IProps,\n) => {\n const [showProfessionalRetrainingError, setProfessionalRetrainingError] = React.useState(false);\n const [showStartStageError, setStartStageError] = React.useState(false);\n\n const { applicant, exam } = React.useMemo(() => examApplication, [examApplication]);\n\n const identity = examApplication.applicantIdentityDoc;\n const diploma = examApplication.applicantDiploma;\n const examName = exam ? `«${exam.qualificationTitle}»` : '';\n const applicantFullName = `${applicant.lastName} ${applicant.firstName} ${applicant.middleName}`;\n \n const startStage = props.startStage || examApplication.startStage;\n const professionalRetraining = props.professionalRetraining != null ? props.professionalRetraining : examApplication.professionalRetraining;\n\n const onOpenModal = () => {\n if (onSubmit) {\n const professionalRetrainingError = examApplication.exam.qualificationResidency && professionalRetraining == null;\n const startStageError = startStage == null;\n \n if (!professionalRetrainingError && !startStageError) {\n onSubmit();\n } else {\n setProfessionalRetrainingError(professionalRetrainingError);\n setStartStageError(startStageError);\n }\n }\n };\n\n const onStartStage = setStartStage && ((val: number) => {\n setStartStage(val);\n setStartStageError(false);\n });\n\n return (\n \n \n \n {examApplication.exam.qualificationResidency ? (\n <>\n Я, {applicantFullName}, дата рождения {applicant.birthDate.format('DD.MM.YYYY')}, информирую, что успешно завершил(а) освоение образовательной программы по специальности (направлению подготовки) {examName} после окончания:\n\n {setProfessionalRetraining ? (\n <>\n
\n
\n { setProfessionalRetraining(false); setProfessionalRetrainingError(false);}}\n />\n { setProfessionalRetraining(true); setProfessionalRetrainingError(false);}}\n />\n
\n {showProfessionalRetrainingError ? (\n \n Обязательное поле для заполнения\n \n ) : null}\n \n ) : (\n <>\n

\n {professionalRetraining ? 'Профессиональной переподготовки' : 'Ординатуры'}\n
\n \n )}\n
\n что подтверждается следующим документом:\n
\n \n ) : (\n <>\n Я, {applicantFullName}, дата рождения {applicant.birthDate.format('DD.MM.YYYY')}, информирую, что успешно завершил(а) освоение образовательной программы по специальности (направлению подготовки) {examName}, что подтверждается следующим документом:\n \n )}\n \n \n
\n {diploma && `${DiplomaTypeTitles[diploma.type]}, выдан ${diploma.issuedBy} ${diploma.dateOfIssue.format('DD.MM.YYYY')} г.`}
\n
\n
\n
\n Учитывая, что я намерен(а) осуществлять медицинскую деятельность по специальности {examName}на территории Российской Федерации, прошу допустить меня до прохождения процедуры аккредитации специалиста начиная с:\n
\n\n {setStartStage && onStartStage ? (\n <>\n
\n
\n onStartStage(1)}\n />\n onStartStage(2)}\n />\n onStartStage(3)}\n />\n
\n {showStartStageError ? (\n \n Обязательное поле для заполнения\n \n ) : null}\n \n ) : (\n <>\n
\n {startStage === 3 ? 'Третьего' : startStage === 2 ? 'Второго' : 'Первого'} этапа\n
\n \n )}\n
\n \n \n С приказом Министерства здравоохранения РФ от 2 июня 2016 г. N 334н \"Об утверждении Положения об аккредитации специалистов\" (https://base.garant.ru/71423024), ознакомлен(а)
\n


\n \n Прилагаю копии следующих документов:

\n \n 1. Копия документа, удостоверяющего личность:
\n {IdentityDocTypeTitles[identity.identityDocType]}, выдан {identity.passport\n ? `${identity.passport.issuedBy} от ${identity.passport.dateOfIssue.format('DD.MM.YYYY')} г.` :\n identity.otherIdentity ? identity.otherIdentity.data : ''}\n

\n \n 2. Копия документов об образовании:
\n {diploma && `${DiplomaTypeTitles[diploma.type]}, выдан ${diploma.issuedBy} ${diploma.dateOfIssue.format('DD.MM.YYYY')} г.`}\n

\n \n 3. СНИЛС:
\n №{formatSnils(applicant.snils, '')}\n

\n
\n \n Я согласен(на) на обработку в соответствии с Федеральным законом от 27 июля\n 2006 г. № 152-ФЗ «О персональных данных» (Собрание законодательства Российской\n Федерации, 2006, № 31, ст. 3451) моих персональных данных, указанных в настоящем\n заявлении и прилагаемых к нему документах (фамилия, имя, отчество (при наличии), дата\n и место рождения, реквизиты СНИЛС, реквизиты документа, удостоверяющего личность, - наименование документа, серия, номер, кем выдан и когда, месте проживания (регистрации), место\n работы, образование и квалификация), а также результатов прохождения процедуры аккредитации.\n Я уведомлен(а) и понимаю, что под обработкой персональных данных\n подразумевается совершение следующих действий (операций): сбор, обработка, запись,\n систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение,\n использование, подтверждение, передача (распространение, предоставление, доступ),\n обезличивание, блокирование, удаление, уничтожение персональных данных по\n истечении срока действия настоящего согласия в соответствии с Федеральным законом\n от 27 июля 2006 г. № 152-ФЗ «О персональных данных».\n
\n {examApplication.signCode && !props.correctionsRequired ? (renderRow('Подпись',\n ,\n (onSubmit || onCancel) && 'mb-5')) : null}\n\n {onSubmit ? (\n \n {submitButtonText || 'Подписать и отправить заявление'}\n \n ) : null}\n\n {onCancel ? (\n \n {cancelButtonText || 'Вернуться к редактированию заявления'}\n \n ) : null}\n \n );\n};\n\nexport default StatementTab;\n\ninterface IProps {\n examApplication: IExamApplicationDetails;\n contentClassName?: string;\n withoutPadding?: boolean;\n submitButtonText?: string;\n cancelButtonText?: string;\n processing?: boolean;\n correctionsRequired?: boolean;\n professionalRetraining?: boolean;\n setProfessionalRetraining?: (professionalRetraining: boolean) => void;\n startStage?: number;\n setStartStage?: (startStage: number) => void;\n onCancel?: () => void;\n onSubmit?: () => void;\n}\n","import React from 'react';\nimport { OverlayTrigger } from 'components';\nimport { IExamExpert } from 'components/models';\nimport penIcon from 'components/assets/svg/pen_icon.svg';\nimport waitTimeIcon from 'components/assets/svg/wait_time_icon.svg';\nimport styles from './SignedExpert.module.scss';\nimport cn from 'classnames';\n\nconst SignedExpert = ({ expert, commissionTitle, acceptInvite }: ISignedExpertProps) => {\n const renderChairman = () => {\n if (expert.chairman !== undefined) {\n return expert.chairman ? `Председатель ${commissionTitle}:` : `Член ${commissionTitle}:`;\n }\n\n return null;\n };\n\n return (\n \n {renderChairman()} {expert.chairman === undefined ? `${commissionTitle}:` : ''} {expert.fullName}\n {expert.signed || (expert.acceptedInvite && acceptInvite)\n ? (\n \n
\n \"penIcon\"\n
\n
\n )\n : \"waitTimeIcon\"\n }\n
\n );\n};\n\nexport const renderSignedExpertsRow = (experts: IExamExpert[], commissionTitle: string, acceptInvite: boolean = false) => experts.map(expert => (\n \n));\n\nexport default SignedExpert;\n\ninterface ISignedExpertProps {\n expert: IExpert;\n commissionTitle: string;\n acceptInvite?: boolean;\n}\n\ninterface IExpert {\n fullName: string;\n signed: boolean;\n signedCode?: string | null;\n chairman?: boolean;\n acceptedInvite?: boolean;\n}\n","import React from 'react';\nimport dotsIcon from './dots_icon.svg';\nimport styles from './DotsSettings.module.scss';\nimport cn from 'classnames';\n\nconst DotsSettings = ({ buttons }: IProps) => {\n const [showButton, setShowButton] = React.useState(false);\n const iconRef = React.useRef(null);\n\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (iconRef.current && !iconRef.current.contains(event.target as Node)) {\n setShowButton(false);\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [iconRef]);\n\n const renderButtonIcon = (iconType?: IconType) => {\n if (!iconType) return null;\n\n if (iconType === 'delete') {\n return (\n \n \n \n \n \n );\n }\n\n if (iconType === 'logout') {\n return (\n \n \n \n \n );\n }\n\n if (iconType === 'plus') {\n return (\n \n \n \n );\n }\n\n if (iconType === 'change') {\n return (\n \n \n \n );\n }\n\n if (iconType === 'edit') {\n return (\n \n \n \n \n \n \n );\n }\n\n return null;\n };\n\n return (\n
\n setShowButton(!showButton)}\n />\n {showButton ? (\n
\n {buttons.map((button, i) => (\n \n {renderButtonIcon(button.iconType)}\n {button.buttonText}\n
\n ))}\n \n ) : null}\n
\n );\n};\n\nexport default DotsSettings;\n\ninterface IProps {\n buttons: IButton[];\n}\n\nexport interface IButton {\n buttonText: string;\n iconType?: IconType;\n onClick: () => void;\n className?: string;\n}\n\ntype IconType = 'logout' | 'delete' | 'plus' | 'change' | 'edit';\n","import React from 'react';\nimport { CustomRadio } from 'components';\nimport { Sex } from 'components/enums';\nimport { Form, Col } from 'react-bootstrap';\nimport styles from './SexRadios.module.scss';\n\nconst SexRadios = ({\n sex, onClick, disabled, validErrors, children, className, groupClassName,\n}: IProps) => (\n \n \n \n ПОЛ\n \n \n \n
\n !disabled && onClick(Sex.Male)}\n />\n !disabled && onClick(Sex.Female)}\n />\n
\n {children}\n {validErrors.sex}\n \n
\n );\n\nexport default SexRadios;\n\ninterface IProps {\n sex?: Sex;\n validErrors: IValidErrors;\n disabled?: boolean;\n children?: React.ReactNode;\n className?: string;\n groupClassName?: string;\n onClick: (sex: Sex) => void;\n}\n\ninterface IValidErrors {\n [key: string]: string;\n}\n","import React from 'react';\nimport { InputText, InputTextProps, OverlayTrigger } from 'components';\nimport convertIcon from './convert_icon.svg';\nimport arrowsIcon from './arrows_icon.svg';\nimport styles from './VerifyEmailInput.module.scss';\nimport cn from 'classnames';\n\nconst VerifyEmailInput = ({\n sendConfirmationEmail, lowRightIconPosition, triggerText, ...inputProps\n}: IProps) => {\n const [rotate, setRotate] = React.useState(false);\n\n React.useEffect(() => {\n if (sendConfirmationEmail && rotate) {\n const timeout = setTimeout(() => {\n setRotate(false);\n sendConfirmationEmail();\n }, 1000);\n\n return () => clearTimeout(timeout);\n }\n\n return () => undefined;\n }, [rotate]);\n\n const verifyEmailIcon = React.useMemo(() => (\n <>\n {!inputProps.disabled && sendConfirmationEmail && (\n \n !rotate && setRotate(true)}\n >\n \"convertIcon\"\n \"arrowsIcon\"\n
\n \n )}\n \n ), [rotate, inputProps.disabled, sendConfirmationEmail]);\n\n return (\n \n {verifyEmailIcon}\n {inputProps.children}\n \n );\n};\n\nexport default VerifyEmailInput;\n\ninterface IProps extends Omit {\n lowRightIconPosition?: boolean;\n triggerText?: string;\n sendConfirmationEmail?: () => void;\n}\n","import React from 'react';\nimport { ColorStatus } from '_helpers';\nimport styles from './Status.module.scss';\n\nconst Status = ({ status }: IProps) => {\n if (!status) return null;\n\n const { subStatus } = status;\n\n return (\n
\n \n {status.text}\n \n {subStatus && (\n \n {subStatus.text}\n \n )}\n
\n );\n};\n\nexport default Status;\n\ninterface IProps {\n status?: ColorStatus;\n}\n","import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport styles from './Textarea.module.scss';\nimport cn from 'classnames';\n\nconst Textarea = ({\n name,\n onChange,\n validErrors,\n resize,\n ...formProps\n}: IProps) => {\n return (\n <>\n onChange((e.target as HTMLInputElement).value)}\n className={cn(styles.textarea, resize && styles.textarea_resize)}\n isInvalid={validErrors ? !!validErrors[name] : undefined}\n autoComplete=\"new-password\"\n {...formProps}\n />\n {validErrors ? {validErrors[name]} : null}\n \n )\n}\n\nexport default Textarea;\n\ninterface IProps {\n value: string;\n name: string;\n validErrors?: IInitErrors;\n placeholder?: string;\n resize?: boolean;\n disabled?: boolean;\n rows?: number;\n required?: boolean;\n style?: React.CSSProperties;\n onChange: (value: string) => void;\n}\n\ninterface IInitErrors {\n [key: string]: string;\n}\n","import React from 'react';\nimport { Dropdown as BootstrapDropdown } from 'react-bootstrap';\nimport { Link } from 'react-router-dom';\nimport activeIcon from './icons/arrow.svg';\nimport dropIcon from './icons/drop.svg';\nimport styles from './Dropdown.module.scss';\nimport cn from 'classnames';\n\nconst Dropdown = ({ items, title }: IProps) => {\n const [open, setOpen] = React.useState(false);\n\n const CustomMenu = React.forwardRef((aProps: HeaderDropdownToggleProps, ref: any) => {\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n aProps.onClick(e);\n };\n\n return (\n \n {aProps.children}\n \n );\n });\n\n const renderDropdownContent = (item: DropdownItem) => (\n
\n {item.active ? \"activeIcon\" : null}\n \n
\n );\n\n return (\n setOpen(!open)}>\n \n
\n {title ? {title} : null}\n \"dropIcon\"\n
\n \n\n \n {items.map((item: DropdownItem, i) => ((item.to || item.onClick) ? (\n
\n {item.to ? (\n \n {renderDropdownContent(item)}\n \n ) : null}\n\n {item.onClick ? (\n \n {renderDropdownContent(item)}\n \n ) : null}\n\n {i !== items.length - 1 ? : null}\n
\n ) : null))}\n
\n
\n );\n};\n\nexport default Dropdown;\n\ninterface IProps {\n items: DropdownItem[];\n title?: string;\n}\n\ninterface HeaderDropdownToggleProps {\n onClick: React.MouseEventHandler;\n children: React.ReactNode;\n}\n\nexport interface DropdownItem {\n label: string;\n active?: boolean;\n to?: string;\n onClick?: () => void;\n}\n","import * as React from 'react';\nimport logo from 'components/assets/png/logo_unauth.png';\nimport { Loader } from 'components';\n\ninterface AuthorizedLayoutProps {\n children: JSX.Element[] | JSX.Element;\n processing: boolean[];\n location?: Location;\n}\n\nconst UnAuthorizedLayout: React.FunctionComponent = (props) => {\n const { children } = props;\n\n return (\n
\n
\n
\n \"main-logo\"\n
\n
\n
\n {props.processing.some(p => p) && }\n {children}\n
\n
\n );\n};\n\nexport default UnAuthorizedLayout;\n","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// \n// Generated using the NSwag toolchain v13.14.3.0 (NJsonSchema v10.5.2.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)\n// \n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport moment from \"moment\";\n\nexport class ApiClientBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n this.http = http ? http : window;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\n }\n\n /**\n * Отправка кода верификации на телефон аккредитуемого для регистрации.\n * @param body Данные для отправки кода на телефон.\n * @return OK\n */\n sendRegistrationVerificationCode(body: SendVerificationCode): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/send-registration-verification-code\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendRegistrationVerificationCode(_response);\n });\n }\n\n protected processSendRegistrationVerificationCode(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = VerificationCodeSendingStatus.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Проверка кода верификации аккредитуемого для регистрации.\n * @param body Данные для проверки.\n * @return Success\n */\n checkRegistrationVerificationCode(body: CheckVerificationCode): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/check-registration-verification-code\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processCheckRegistrationVerificationCode(_response);\n });\n }\n\n protected processCheckRegistrationVerificationCode(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Регистрация нового аккредитуемого.\n * @param body Данные для регистрации.\n * @return Аккредитуемый успешно зарегистрирован.\n */\n register(body: RegisterApplicant): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/register\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processRegister(_response);\n });\n }\n\n protected processRegister(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = AuthResult.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"\\u0423\\u043a\\u0430\\u0437\\u0430\\u043d \\u043d\\u0435\\u0432\\u0435\\u0440\\u043d\\u044b\\u0439 \\u043a\\u043e\\u0434 \\u0432\\u0435\\u0440\\u0438\\u0444\\u0438\\u043a\\u0430\\u0446\\u0438\\u0438.\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Отправка кода верификации на телефон аккредитуемого для сброса пароля.\n * @param body Данные для отправки кода на телефон.\n * @return OK\n */\n sendResetPasswordVerificationCode(body: SendVerificationCode): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/send-reset-password-verification-code\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendResetPasswordVerificationCode(_response);\n });\n }\n\n protected processSendResetPasswordVerificationCode(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = VerificationCodeSendingStatus.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Проверка кода верификации аккредитуемого для сброса пароля.\n * @param body Данные для проверки.\n * @return Success\n */\n checkResetPasswordVerificationCode(body: CheckVerificationCode): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/check-reset-password-verification-code\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processCheckResetPasswordVerificationCode(_response);\n });\n }\n\n protected processCheckResetPasswordVerificationCode(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Сброс пароля существующего аккредитуемого.\n * @param body Данные для сброса пароля.\n * @return OK\n */\n resetPassword(body: ResetPassword): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/reset-password\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processResetPassword(_response);\n });\n }\n\n protected processResetPassword(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = AuthResult.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"\\u0423\\u043a\\u0430\\u0437\\u0430\\u043d \\u043d\\u0435\\u0432\\u0435\\u0440\\u043d\\u044b\\u0439 \\u043a\\u043e\\u0434 \\u0432\\u0435\\u0440\\u0438\\u0444\\u0438\\u043a\\u0430\\u0446\\u0438\\u0438.\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"\\u041d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d \\u0430\\u043a\\u043a\\u0440\\u0435\\u0434\\u0438\\u0442\\u0443\\u0435\\u043c\\u044b\\u0439 \\u0441 \\u0443\\u043a\\u0430\\u0437\\u0430\\u043d\\u043d\\u044b\\u043c \\u043d\\u043e\\u043c\\u0435\\u0440\\u043e\\u043c \\u0442\\u0435\\u043b\\u0435\\u0444\\u043e\\u043d\\u0430.\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Смена пароля\n * @return Успешно.\n */\n changePassword(body: ChangePassword): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/change-password\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processChangePassword(_response);\n });\n }\n\n protected processChangePassword(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"\\u0423\\u043a\\u0430\\u0437\\u0430\\u043d \\u043d\\u0435\\u0432\\u0435\\u0440\\u043d\\u044b\\u0439 \\u043f\\u0430\\u0440\\u043e\\u043b\\u044c.\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Вход аккредитуемого.\n * @param body Данные для входа.\n * @return Аккредитуемый успешно авторизован.\n */\n login(body: LoginApplicant): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/login\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processLogin(_response);\n });\n }\n\n protected processLogin(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = AuthResult.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"\\u0423\\u043a\\u0430\\u0437\\u0430\\u043d \\u043d\\u0435\\u0432\\u0435\\u0440\\u043d\\u044b\\u0439 \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442 \\u0434\\u0430\\u043d\\u043d\\u044b\\u0445.\", status, _responseText, _headers, result400);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n let result401: any = null;\n let resultData401 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result401 = ApiError.fromJS(resultData401);\n return throwException(\"\\u0423\\u043a\\u0430\\u0437\\u0430\\u043d \\u043d\\u0435\\u0432\\u0435\\u0440\\u043d\\u044b\\u0439 \\u043b\\u043e\\u0433\\u0438\\u043d /\\u043f\\u0430\\u0440\\u043e\\u043b\\u044c.\", status, _responseText, _headers, result401);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Возвращает профиль авторизованного аккредитуемого\n * @return Успешно.\n */\n profile(): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/profile\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processProfile(_response);\n });\n }\n\n protected processProfile(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = Applicant.fromJS(resultData200);\n return result200;\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Сохраняет изменения в профиле аккредитуемого\n * @return Успешно.\n */\n updateProfile(body: UpdateProfile): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/profile\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUpdateProfile(_response);\n });\n }\n\n protected processUpdateProfile(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = Applicant.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Возвращает документ удостоверяющий личность аккредитуемого\n * @return Успешно.\n */\n getIdentityDoc(): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/identity-doc\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetIdentityDoc(_response);\n });\n }\n\n protected processGetIdentityDoc(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantIdentityDoc.fromJS(resultData200);\n return result200;\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Устанавливает в качестве документа удостоверяющего личность паспорт аккредитуемого\n * @return Успешно.\n */\n setApplicantPassport(body: SetApplicantPassport): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/identity-doc/passport\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSetApplicantPassport(_response);\n });\n }\n\n protected processSetApplicantPassport(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantIdentityDoc.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Устанавливает в качестве документа удостоверяющего личность другой документ аккредитуемого\n * @return Успешно.\n */\n setApplicantOtherIdentity(body: SetApplicantOtherIdentity): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/identity-doc/other\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSetApplicantOtherIdentity(_response);\n });\n }\n\n protected processSetApplicantOtherIdentity(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantIdentityDoc.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Возвращает данные диплома аккредитуемого\n * @return Успешно.\n */\n getApplicantDiploma(): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/diploma\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetApplicantDiploma(_response);\n });\n }\n\n protected processGetApplicantDiploma(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantDiploma.fromJS(resultData200);\n return result200;\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Обновляет данные диплома аккредитуемого\n * @return Успешно.\n */\n updateApplicantDiploma(body: UpdateApplicantDiploma): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/diploma\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUpdateApplicantDiploma(_response);\n });\n }\n\n protected processUpdateApplicantDiploma(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantDiploma.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Отправка кода верификации на телефон аккредитуемого для изменения номера.\n * @param body Данные для отправки кода на телефон.\n * @return OK\n */\n sendUpdatePhoneVerificationCode(body: SendVerificationCodeForUpdatePhone): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/send-update-phone-verification-code\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendUpdatePhoneVerificationCode(_response);\n });\n }\n\n protected processSendUpdatePhoneVerificationCode(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = VerificationCodeSendingStatus.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Проверка кода верификации аккредитуемого для изменения номера.\n * @param body Данные для проверки.\n * @return Success\n */\n checkUpdatePhoneVerificationCode(body: CheckVerificationCode): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/check-update-phone-verification-code\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processCheckUpdatePhoneVerificationCode(_response);\n });\n }\n\n protected processCheckUpdatePhoneVerificationCode(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Сохраняет изменения в профиле аккредитуемого\n * @param body (optional) \n * @return Успешно.\n */\n updatePhone(body: UpdatePhone | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/update-phone\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUpdatePhone(_response);\n });\n }\n\n protected processUpdatePhone(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = Applicant.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Возвращает состояние событий\n * @return Успешно.\n */\n getEventsState(): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/events-state\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetEventsState(_response);\n });\n }\n\n protected processGetEventsState(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = EventsStateHolder.fromJS(resultData200);\n return result200;\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * @return Success\n */\n getCaptcha(): Promise {\n let url_ = this.baseUrl + \"/api/v1/captcha\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetCaptcha(_response);\n });\n }\n\n protected processGetCaptcha(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Подтверждение электронной почты\n * @param body (optional) \n * @return Success\n */\n confirmEmailByToken(body: ConfirmEmailByToken | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/confirm-email\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processConfirmEmailByToken(_response);\n });\n }\n\n protected processConfirmEmailByToken(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n let result401: any = null;\n let resultData401 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result401 = ApiError.fromJS(resultData401);\n return throwException(\"Unauthorized\", status, _responseText, _headers, result401);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Повторная отправка подтверждающего письма на почту\n * @param body (optional) \n * @return Success\n */\n sendConfirmationEmailAgain(body: SendConfirmationEmailAgain | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/account/send-confirmation-email-again\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendConfirmationEmailAgain(_response);\n });\n }\n\n protected processSendConfirmationEmailAgain(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Создаёт заявку на прохождение аккредитации\n * @return Success\n */\n createExamApplication(body: CreateExamApplication): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processCreateExamApplication(_response);\n });\n }\n\n protected processCreateExamApplication(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ExamApplicationDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * @param page (optional) Страница, начиная с 1-й\n * @param pageSize (optional) Размер страницы, по умолчанию 10\n * @param sortOrder (optional) Направление сортировки, true - Asc, false - Desc\n * @param sortField (optional) Сортируемое поле\n * @return Success\n */\n getExamApplications(examReviewStatus: ExamReviewStatus, page: number | undefined, pageSize: number | undefined, sortOrder: boolean | undefined, sortField: string | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications?\";\n if (examReviewStatus === undefined || examReviewStatus === null)\n throw new Error(\"The parameter 'examReviewStatus' must be defined and cannot be null.\");\n else\n url_ += \"examReviewStatus=\" + encodeURIComponent(\"\" + examReviewStatus) + \"&\";\n if (page === null)\n throw new Error(\"The parameter 'page' cannot be null.\");\n else if (page !== undefined)\n url_ += \"page=\" + encodeURIComponent(\"\" + page) + \"&\";\n if (pageSize === null)\n throw new Error(\"The parameter 'pageSize' cannot be null.\");\n else if (pageSize !== undefined)\n url_ += \"pageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\n if (sortOrder === null)\n throw new Error(\"The parameter 'sortOrder' cannot be null.\");\n else if (sortOrder !== undefined)\n url_ += \"sortOrder=\" + encodeURIComponent(\"\" + sortOrder) + \"&\";\n if (sortField === null)\n throw new Error(\"The parameter 'sortField' cannot be null.\");\n else if (sortField !== undefined)\n url_ += \"sortField=\" + encodeURIComponent(\"\" + sortField) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetExamApplications(_response);\n });\n }\n\n protected processGetExamApplications(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantExamList.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Отправляет код для подписи заявки\n * @param examApplicationId Идентификатор заявки\n * @return Success\n */\n sendCodeToSignApplication(examApplicationId: string, body: SendCodeToSignApplication): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/{examApplicationId}/send-code-to-sign\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSendCodeToSignApplication(_response);\n });\n }\n\n protected processSendCodeToSignApplication(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = VerificationCodeSendingStatus.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Отправляет заявку на рассмотрение\n * @param examApplicationId Идентификатор заявки\n * @param body (optional) \n * @return Success\n */\n submitExamApplication(examApplicationId: string, body: SubmitExamApplication | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/{examApplicationId}/submit\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processSubmitExamApplication(_response);\n });\n }\n\n protected processSubmitExamApplication(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ExamApplicationDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * @param page (optional) Страница, начиная с 1-й\n * @param pageSize (optional) Размер страницы, по умолчанию 10\n * @param sortOrder (optional) Направление сортировки, true - Asc, false - Desc\n * @param sortField (optional) Сортируемое поле\n * @return Success\n */\n getMyExamApplicationsList(myExamStatus: MyExamStatus, page: number | undefined, pageSize: number | undefined, sortOrder: boolean | undefined, sortField: string | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/my?\";\n if (myExamStatus === undefined || myExamStatus === null)\n throw new Error(\"The parameter 'myExamStatus' must be defined and cannot be null.\");\n else\n url_ += \"myExamStatus=\" + encodeURIComponent(\"\" + myExamStatus) + \"&\";\n if (page === null)\n throw new Error(\"The parameter 'page' cannot be null.\");\n else if (page !== undefined)\n url_ += \"page=\" + encodeURIComponent(\"\" + page) + \"&\";\n if (pageSize === null)\n throw new Error(\"The parameter 'pageSize' cannot be null.\");\n else if (pageSize !== undefined)\n url_ += \"pageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\n if (sortOrder === null)\n throw new Error(\"The parameter 'sortOrder' cannot be null.\");\n else if (sortOrder !== undefined)\n url_ += \"sortOrder=\" + encodeURIComponent(\"\" + sortOrder) + \"&\";\n if (sortField === null)\n throw new Error(\"The parameter 'sortField' cannot be null.\");\n else if (sortField !== undefined)\n url_ += \"sortField=\" + encodeURIComponent(\"\" + sortField) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetMyExamApplicationsList(_response);\n });\n }\n\n protected processGetMyExamApplicationsList(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantExamList.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * @return Success\n */\n getExamApplication(examApplicationId: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/{examApplicationId}\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetExamApplication(_response);\n });\n }\n\n protected processGetExamApplication(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ExamApplicationDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * @return Success\n */\n getDocumentTemplateGroups(qualificationId: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/document-template-groups/{qualificationId}\";\n if (qualificationId === undefined || qualificationId === null)\n throw new Error(\"The parameter 'qualificationId' must be defined.\");\n url_ = url_.replace(\"{qualificationId}\", encodeURIComponent(\"\" + qualificationId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetDocumentTemplateGroups(_response);\n });\n }\n\n protected processGetDocumentTemplateGroups(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(QualificationDocumentTemplateGroup.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Позволяет загрузить файл для выбранного комплекта документов заявки\n * @param examApplicationId Идентификатор заявки\n * @param templateId Id шаблона из комплекта документов\n * @param contentType (optional) \n * @param contentDisposition (optional) \n * @param headers (optional) \n * @param length (optional) \n * @param name (optional) \n * @param fileName (optional) \n * @return Success\n */\n uploadExamApplicationDocument(examApplicationId: string, templateId: string, contentType: string | undefined, contentDisposition: string | undefined, headers: { [key: string]: string[]; } | undefined, length: number | undefined, name: string | undefined, fileName: string | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/{examApplicationId}/documents/{templateId}\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n if (templateId === undefined || templateId === null)\n throw new Error(\"The parameter 'templateId' must be defined.\");\n url_ = url_.replace(\"{templateId}\", encodeURIComponent(\"\" + templateId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (contentType === null || contentType === undefined)\n throw new Error(\"The parameter 'contentType' cannot be null.\");\n else\n content_.append(\"contentType\", contentType.toString());\n if (contentDisposition === null || contentDisposition === undefined)\n throw new Error(\"The parameter 'contentDisposition' cannot be null.\");\n else\n content_.append(\"contentDisposition\", contentDisposition.toString());\n if (headers === null || headers === undefined)\n throw new Error(\"The parameter 'headers' cannot be null.\");\n else\n content_.append(\"headers\", JSON.stringify(headers));\n if (length === null || length === undefined)\n throw new Error(\"The parameter 'length' cannot be null.\");\n else\n content_.append(\"length\", length.toString());\n if (name === null || name === undefined)\n throw new Error(\"The parameter 'name' cannot be null.\");\n else\n content_.append(\"name\", name.toString());\n if (fileName === null || fileName === undefined)\n throw new Error(\"The parameter 'fileName' cannot be null.\");\n else\n content_.append(\"fileName\", fileName.toString());\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processUploadExamApplicationDocument(_response);\n });\n }\n\n protected processUploadExamApplicationDocument(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ExamApplicationDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Позволяет удалить файл документа из комплекта документов заявки\n * @param examApplicationId Идентификатор заявки\n * @param documentId Id шаблона из комплекта документов\n * @return Success\n */\n deleteExamApplicationDocument(examApplicationId: string, documentId: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/{examApplicationId}/documents/{documentId}\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n if (documentId === undefined || documentId === null)\n throw new Error(\"The parameter 'documentId' must be defined.\");\n url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processDeleteExamApplicationDocument(_response);\n });\n }\n\n protected processDeleteExamApplicationDocument(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ExamApplicationDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Позволяет удалить дополнительный файл документа выбранного комплекта\n * @param examApplicationId Идентификатор заявки\n * @param documentId Идентификатор шаблона из комплекта документов\n * @param sourceFileId Идентификатор дополнительного файла\n * @return Success\n */\n deleteExamApplicationDocumentSource(examApplicationId: string, documentId: string, sourceFileId: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/exam-applications/{examApplicationId}/documents/{documentId}/source/{sourceFileId}\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n if (documentId === undefined || documentId === null)\n throw new Error(\"The parameter 'documentId' must be defined.\");\n url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n if (sourceFileId === undefined || sourceFileId === null)\n throw new Error(\"The parameter 'sourceFileId' must be defined.\");\n url_ = url_.replace(\"{sourceFileId}\", encodeURIComponent(\"\" + sourceFileId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processDeleteExamApplicationDocumentSource(_response);\n });\n }\n\n protected processDeleteExamApplicationDocumentSource(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ExamApplicationDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Получение расписания аккредитаций\n * @param regionIds (optional) \n * @param qualificationIds (optional) \n * @param from (optional) Дата аккредитации, с\n * @param to (optional) Дата аккредитации, по\n * @param page (optional) Страница, начиная с 1-й\n * @param pageSize (optional) Размер страницы, по умолчанию 10\n * @param sortOrder (optional) Направление сортировки, true - Asc, false - Desc\n * @param sortField (optional) Сортируемое поле\n * @return Success\n */\n getExams(regionIds: number[] | null | undefined, qualificationIds: string[] | null | undefined, from: moment.Moment | null | undefined, to: moment.Moment | null | undefined, page: number | undefined, pageSize: number | undefined, sortOrder: boolean | null | undefined, sortField: string | null | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/exams?\";\n if (regionIds !== undefined && regionIds !== null)\n regionIds && regionIds.forEach(item => { url_ += \"regionIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (qualificationIds !== undefined && qualificationIds !== null)\n qualificationIds && qualificationIds.forEach(item => { url_ += \"qualificationIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (from !== undefined && from !== null)\n url_ += \"from=\" + encodeURIComponent(from ? \"\" + from.toISOString() : \"\") + \"&\";\n if (to !== undefined && to !== null)\n url_ += \"to=\" + encodeURIComponent(to ? \"\" + to.toISOString() : \"\") + \"&\";\n if (page === null)\n throw new Error(\"The parameter 'page' cannot be null.\");\n else if (page !== undefined)\n url_ += \"page=\" + encodeURIComponent(\"\" + page) + \"&\";\n if (pageSize === null)\n throw new Error(\"The parameter 'pageSize' cannot be null.\");\n else if (pageSize !== undefined)\n url_ += \"pageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\n if (sortOrder !== undefined && sortOrder !== null)\n url_ += \"sortOrder=\" + encodeURIComponent(\"\" + sortOrder) + \"&\";\n if (sortField !== undefined && sortField !== null)\n url_ += \"sortField=\" + encodeURIComponent(\"\" + sortField) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetExams(_response);\n });\n }\n\n protected processGetExams(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantExamList.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Получение информации по аккредитации\n * @param id ид аккредитации\n * @return Success\n */\n getExamDetails(id: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/exams/{id}\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetExamDetails(_response);\n });\n }\n\n protected processGetExamDetails(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantExamDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Получение списка регионов\n * @return Success\n */\n getRegions(): Promise {\n let url_ = this.baseUrl + \"/api/v1/regions\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetRegions(_response);\n });\n }\n\n protected processGetRegions(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Region.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Получение списка стран\n * @return Success\n */\n getCountries(): Promise {\n let url_ = this.baseUrl + \"/api/v1/countries\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetCountries(_response);\n });\n }\n\n protected processGetCountries(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(Country.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n let resultData400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result400 = ApiError.fromJS(resultData400);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430.\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Возвращает список специальностей\n * @param occupationalStandardId (optional) \n * @param readyToUse (optional) \n * @param residency (optional) \n * @param searchField (optional) Поле, по которому осуществляется поиск\n * @param searchTerm (optional) Строка для поиска\n * @param page (optional) Страница, начиная с 1-й\n * @param pageSize (optional) Размер страницы, по умолчанию 10\n * @param sortOrder (optional) Направление сортировки, true - Asc, false - Desc\n * @param sortField (optional) Сортируемое поле\n * @return Success\n */\n getQualifications(occupationalStandardId: string | null | undefined, readyToUse: boolean | null | undefined, residency: boolean | null | undefined, searchField: string | null | undefined, searchTerm: string | null | undefined, page: number | undefined, pageSize: number | undefined, sortOrder: boolean | null | undefined, sortField: string | null | undefined): Promise {\n let url_ = this.baseUrl + \"/api/v1/qualifications?\";\n if (occupationalStandardId !== undefined && occupationalStandardId !== null)\n url_ += \"occupationalStandardId=\" + encodeURIComponent(\"\" + occupationalStandardId) + \"&\";\n if (readyToUse !== undefined && readyToUse !== null)\n url_ += \"readyToUse=\" + encodeURIComponent(\"\" + readyToUse) + \"&\";\n if (residency !== undefined && residency !== null)\n url_ += \"residency=\" + encodeURIComponent(\"\" + residency) + \"&\";\n if (searchField !== undefined && searchField !== null)\n url_ += \"searchField=\" + encodeURIComponent(\"\" + searchField) + \"&\";\n if (searchTerm !== undefined && searchTerm !== null)\n url_ += \"searchTerm=\" + encodeURIComponent(\"\" + searchTerm) + \"&\";\n if (page === null)\n throw new Error(\"The parameter 'page' cannot be null.\");\n else if (page !== undefined)\n url_ += \"page=\" + encodeURIComponent(\"\" + page) + \"&\";\n if (pageSize === null)\n throw new Error(\"The parameter 'pageSize' cannot be null.\");\n else if (pageSize !== undefined)\n url_ += \"pageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\n if (sortOrder !== undefined && sortOrder !== null)\n url_ += \"sortOrder=\" + encodeURIComponent(\"\" + sortOrder) + \"&\";\n if (sortField !== undefined && sortField !== null)\n url_ += \"sortField=\" + encodeURIComponent(\"\" + sortField) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetQualifications(_response);\n });\n }\n\n protected processGetQualifications(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = QualificationInfoList.fromJS(resultData200);\n return result200;\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"Server Error\", status, _responseText, _headers, result500);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Возвращает список специальностей аккредитуемого.\n * @return OK\n */\n getApplicantQualifications(): Promise {\n let url_ = this.baseUrl + \"/api/v1/applicant-qualifications\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetApplicantQualifications(_response);\n });\n }\n\n protected processGetApplicantQualifications(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(ApplicantQualification.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n\n /**\n * Возвращает детали специальностей аккредитуемого.\n * @return OK\n */\n getApplicantQualificationDetails(examApplicationId: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/applicant-qualifications/{examApplicationId}\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGetApplicantQualificationDetails(_response);\n });\n }\n\n protected processGetApplicantQualificationDetails(response: Response): Promise {\n const status = response.status;\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n let resultData200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result200 = ApplicantQualificationDetails.fromJS(resultData200);\n return result200;\n });\n } else if (status === 404) {\n return response.text().then((_responseText) => {\n let result404: any = null;\n let resultData404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result404 = ApiError.fromJS(resultData404);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n });\n } else if (status === 500) {\n return response.text().then((_responseText) => {\n let result500: any = null;\n let resultData500 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\n result500 = ApiError.fromJS(resultData500);\n return throwException(\"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u044f\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u0441\\u0435\\u0440\\u0432\\u0435\\u0440\\u0430\", status, _responseText, _headers, result500);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve(null);\n }\n}\n\nexport class ApiError implements IApiError {\n code!: number;\n type!: AppExceptionType;\n message!: string;\n failures?: { [key: string]: string[]; } | undefined;\n\n constructor(data?: IApiError) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.code = _data[\"code\"];\n this.type = _data[\"type\"];\n this.message = _data[\"message\"];\n if (_data[\"failures\"]) {\n this.failures = {} as any;\n for (let key in _data[\"failures\"]) {\n if (_data[\"failures\"].hasOwnProperty(key))\n (this.failures)![key] = _data[\"failures\"][key] !== undefined ? _data[\"failures\"][key] : [];\n }\n }\n }\n }\n\n static fromJS(data: any): ApiError {\n data = typeof data === 'object' ? data : {};\n let result = new ApiError();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"code\"] = this.code;\n data[\"type\"] = this.type;\n data[\"message\"] = this.message;\n if (this.failures) {\n data[\"failures\"] = {};\n for (let key in this.failures) {\n if (this.failures.hasOwnProperty(key))\n (data[\"failures\"])[key] = this.failures[key];\n }\n }\n return data; \n }\n}\n\nexport interface IApiError {\n code: number;\n type: AppExceptionType;\n message: string;\n failures?: { [key: string]: string[]; } | undefined;\n}\n\nexport enum AppExceptionType {\n Unspecified = \"unspecified\",\n Validation = \"validation\",\n NotFound = \"notFound\",\n AlreadyExists = \"alreadyExists\",\n WrongVerificationCode = \"wrongVerificationCode\",\n TooManyRequests = \"tooManyRequests\",\n WrongCredentials = \"wrongCredentials\",\n AuthUserNotFound = \"authUserNotFound\",\n Forbidden = \"forbidden\",\n Captcha = \"captcha\",\n WrongIp = \"wrongIp\",\n}\n\nexport class Applicant implements IApplicant {\n id!: string;\n /** Имя */\n firstName!: string;\n /** Фамилия */\n lastName!: string;\n /** Отчество */\n middleName?: string | undefined;\n sex!: Sex;\n birthDate!: moment.Moment;\n email!: string;\n emailConfirmed!: boolean;\n phone!: string;\n /** СНИЛС */\n snils!: string;\n regionId!: number;\n regionName!: string;\n qualificationId!: string;\n citizenshipType?: CitizenshipType;\n citizenshipCountryId?: number | undefined;\n citizenshipCountryName?: string | undefined;\n militaryRelationship?: MilitaryRelationshipType;\n\n constructor(data?: IApplicant) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.firstName = _data[\"firstName\"];\n this.lastName = _data[\"lastName\"];\n this.middleName = _data[\"middleName\"];\n this.sex = _data[\"sex\"];\n this.birthDate = _data[\"birthDate\"] ? moment(_data[\"birthDate\"].toString()) : undefined;\n this.email = _data[\"email\"];\n this.emailConfirmed = _data[\"emailConfirmed\"];\n this.phone = _data[\"phone\"];\n this.snils = _data[\"snils\"];\n this.regionId = _data[\"regionId\"];\n this.regionName = _data[\"regionName\"];\n this.qualificationId = _data[\"qualificationId\"];\n this.citizenshipType = _data[\"citizenshipType\"];\n this.citizenshipCountryId = _data[\"citizenshipCountryId\"];\n this.citizenshipCountryName = _data[\"citizenshipCountryName\"];\n this.militaryRelationship = _data[\"militaryRelationship\"];\n }\n }\n\n static fromJS(data: any): Applicant {\n data = typeof data === 'object' ? data : {};\n let result = new Applicant();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"firstName\"] = this.firstName;\n data[\"lastName\"] = this.lastName;\n data[\"middleName\"] = this.middleName;\n data[\"sex\"] = this.sex;\n data[\"birthDate\"] = this.birthDate ? this.birthDate.toISOString() : undefined;\n data[\"email\"] = this.email;\n data[\"emailConfirmed\"] = this.emailConfirmed;\n data[\"phone\"] = this.phone;\n data[\"snils\"] = this.snils;\n data[\"regionId\"] = this.regionId;\n data[\"regionName\"] = this.regionName;\n data[\"qualificationId\"] = this.qualificationId;\n data[\"citizenshipType\"] = this.citizenshipType;\n data[\"citizenshipCountryId\"] = this.citizenshipCountryId;\n data[\"citizenshipCountryName\"] = this.citizenshipCountryName;\n data[\"militaryRelationship\"] = this.militaryRelationship;\n return data; \n }\n}\n\nexport interface IApplicant {\n id: string;\n /** Имя */\n firstName: string;\n /** Фамилия */\n lastName: string;\n /** Отчество */\n middleName?: string | undefined;\n sex: Sex;\n birthDate: moment.Moment;\n email: string;\n emailConfirmed: boolean;\n phone: string;\n /** СНИЛС */\n snils: string;\n regionId: number;\n regionName: string;\n qualificationId: string;\n citizenshipType?: CitizenshipType;\n citizenshipCountryId?: number | undefined;\n citizenshipCountryName?: string | undefined;\n militaryRelationship?: MilitaryRelationshipType;\n}\n\nexport class ApplicantDiploma implements IApplicantDiploma {\n type!: DiplomaType;\n /** серия/номер */\n serialNumber!: string;\n /** кем выдан */\n issuedBy!: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue!: moment.Moment;\n\n constructor(data?: IApplicantDiploma) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.type = _data[\"type\"];\n this.serialNumber = _data[\"serialNumber\"];\n this.issuedBy = _data[\"issuedBy\"];\n this.dateOfIssue = _data[\"dateOfIssue\"] ? moment(_data[\"dateOfIssue\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): ApplicantDiploma {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantDiploma();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n data[\"serialNumber\"] = this.serialNumber;\n data[\"issuedBy\"] = this.issuedBy;\n data[\"dateOfIssue\"] = this.dateOfIssue ? this.dateOfIssue.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IApplicantDiploma {\n type: DiplomaType;\n /** серия/номер */\n serialNumber: string;\n /** кем выдан */\n issuedBy: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue: moment.Moment;\n}\n\nexport class ApplicantExam implements IApplicantExam {\n examId!: string;\n date!: moment.Moment;\n lastDate!: moment.Moment;\n reviewComment?: string | undefined;\n qualificationTitle!: string;\n stagesNumber!: number;\n accreditationCenterName!: string;\n attestationSubCommissionName!: string;\n address!: string;\n attestationCommissionName!: string;\n city!: string;\n region!: string;\n examStatus!: ExamStatus;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n\n constructor(data?: IApplicantExam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.examId = _data[\"examId\"];\n this.date = _data[\"date\"] ? moment(_data[\"date\"].toString()) : undefined;\n this.lastDate = _data[\"lastDate\"] ? moment(_data[\"lastDate\"].toString()) : undefined;\n this.reviewComment = _data[\"reviewComment\"];\n this.qualificationTitle = _data[\"qualificationTitle\"];\n this.stagesNumber = _data[\"stagesNumber\"];\n this.accreditationCenterName = _data[\"accreditationCenterName\"];\n this.attestationSubCommissionName = _data[\"attestationSubCommissionName\"];\n this.address = _data[\"address\"];\n this.attestationCommissionName = _data[\"attestationCommissionName\"];\n this.city = _data[\"city\"];\n this.region = _data[\"region\"];\n this.examStatus = _data[\"examStatus\"];\n this.examApplicationStatus = _data[\"examApplicationStatus\"];\n this.applicationSubmitDate = _data[\"applicationSubmitDate\"] ? moment(_data[\"applicationSubmitDate\"].toString()) : undefined;\n this.examApplicationId = _data[\"examApplicationId\"];\n this.currentStageNumber = _data[\"currentStageNumber\"];\n this.currentStageFirstDayDate = _data[\"currentStageFirstDayDate\"] ? moment(_data[\"currentStageFirstDayDate\"].toString()) : undefined;\n this.currentStageLastDayDate = _data[\"currentStageLastDayDate\"] ? moment(_data[\"currentStageLastDayDate\"].toString()) : undefined;\n this.currentStageAttemptNumber = _data[\"currentStageAttemptNumber\"];\n }\n }\n\n static fromJS(data: any): ApplicantExam {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantExam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"examId\"] = this.examId;\n data[\"date\"] = this.date ? this.date.toISOString() : undefined;\n data[\"lastDate\"] = this.lastDate ? this.lastDate.toISOString() : undefined;\n data[\"reviewComment\"] = this.reviewComment;\n data[\"qualificationTitle\"] = this.qualificationTitle;\n data[\"stagesNumber\"] = this.stagesNumber;\n data[\"accreditationCenterName\"] = this.accreditationCenterName;\n data[\"attestationSubCommissionName\"] = this.attestationSubCommissionName;\n data[\"address\"] = this.address;\n data[\"attestationCommissionName\"] = this.attestationCommissionName;\n data[\"city\"] = this.city;\n data[\"region\"] = this.region;\n data[\"examStatus\"] = this.examStatus;\n data[\"examApplicationStatus\"] = this.examApplicationStatus;\n data[\"applicationSubmitDate\"] = this.applicationSubmitDate ? this.applicationSubmitDate.toISOString() : undefined;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"currentStageNumber\"] = this.currentStageNumber;\n data[\"currentStageFirstDayDate\"] = this.currentStageFirstDayDate ? this.currentStageFirstDayDate.toISOString() : undefined;\n data[\"currentStageLastDayDate\"] = this.currentStageLastDayDate ? this.currentStageLastDayDate.toISOString() : undefined;\n data[\"currentStageAttemptNumber\"] = this.currentStageAttemptNumber;\n return data; \n }\n}\n\nexport interface IApplicantExam {\n examId: string;\n date: moment.Moment;\n lastDate: moment.Moment;\n reviewComment?: string | undefined;\n qualificationTitle: string;\n stagesNumber: number;\n accreditationCenterName: string;\n attestationSubCommissionName: string;\n address: string;\n attestationCommissionName: string;\n city: string;\n region: string;\n examStatus: ExamStatus;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n}\n\nexport class ApplicantExamDetails implements IApplicantExamDetails {\n examId!: string;\n date!: moment.Moment;\n lastDate!: moment.Moment;\n reviewComment?: string | undefined;\n qualificationTitle!: string;\n stagesNumber!: number;\n accreditationCenterName!: string;\n attestationSubCommissionName!: string;\n address!: string;\n attestationCommissionName!: string;\n city!: string;\n region!: string;\n examStatus!: ExamStatus;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n rules?: string | undefined;\n finalized!: boolean;\n statusChangeTime!: moment.Moment;\n applyingDeadline!: moment.Moment;\n regionName!: string;\n\n constructor(data?: IApplicantExamDetails) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.examId = _data[\"examId\"];\n this.date = _data[\"date\"] ? moment(_data[\"date\"].toString()) : undefined;\n this.lastDate = _data[\"lastDate\"] ? moment(_data[\"lastDate\"].toString()) : undefined;\n this.reviewComment = _data[\"reviewComment\"];\n this.qualificationTitle = _data[\"qualificationTitle\"];\n this.stagesNumber = _data[\"stagesNumber\"];\n this.accreditationCenterName = _data[\"accreditationCenterName\"];\n this.attestationSubCommissionName = _data[\"attestationSubCommissionName\"];\n this.address = _data[\"address\"];\n this.attestationCommissionName = _data[\"attestationCommissionName\"];\n this.city = _data[\"city\"];\n this.region = _data[\"region\"];\n this.examStatus = _data[\"examStatus\"];\n this.examApplicationStatus = _data[\"examApplicationStatus\"];\n this.applicationSubmitDate = _data[\"applicationSubmitDate\"] ? moment(_data[\"applicationSubmitDate\"].toString()) : undefined;\n this.examApplicationId = _data[\"examApplicationId\"];\n this.currentStageNumber = _data[\"currentStageNumber\"];\n this.currentStageFirstDayDate = _data[\"currentStageFirstDayDate\"] ? moment(_data[\"currentStageFirstDayDate\"].toString()) : undefined;\n this.currentStageLastDayDate = _data[\"currentStageLastDayDate\"] ? moment(_data[\"currentStageLastDayDate\"].toString()) : undefined;\n this.currentStageAttemptNumber = _data[\"currentStageAttemptNumber\"];\n this.rules = _data[\"rules\"];\n this.finalized = _data[\"finalized\"];\n this.statusChangeTime = _data[\"statusChangeTime\"] ? moment(_data[\"statusChangeTime\"].toString()) : undefined;\n this.applyingDeadline = _data[\"applyingDeadline\"] ? moment(_data[\"applyingDeadline\"].toString()) : undefined;\n this.regionName = _data[\"regionName\"];\n }\n }\n\n static fromJS(data: any): ApplicantExamDetails {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantExamDetails();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"examId\"] = this.examId;\n data[\"date\"] = this.date ? this.date.toISOString() : undefined;\n data[\"lastDate\"] = this.lastDate ? this.lastDate.toISOString() : undefined;\n data[\"reviewComment\"] = this.reviewComment;\n data[\"qualificationTitle\"] = this.qualificationTitle;\n data[\"stagesNumber\"] = this.stagesNumber;\n data[\"accreditationCenterName\"] = this.accreditationCenterName;\n data[\"attestationSubCommissionName\"] = this.attestationSubCommissionName;\n data[\"address\"] = this.address;\n data[\"attestationCommissionName\"] = this.attestationCommissionName;\n data[\"city\"] = this.city;\n data[\"region\"] = this.region;\n data[\"examStatus\"] = this.examStatus;\n data[\"examApplicationStatus\"] = this.examApplicationStatus;\n data[\"applicationSubmitDate\"] = this.applicationSubmitDate ? this.applicationSubmitDate.toISOString() : undefined;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"currentStageNumber\"] = this.currentStageNumber;\n data[\"currentStageFirstDayDate\"] = this.currentStageFirstDayDate ? this.currentStageFirstDayDate.toISOString() : undefined;\n data[\"currentStageLastDayDate\"] = this.currentStageLastDayDate ? this.currentStageLastDayDate.toISOString() : undefined;\n data[\"currentStageAttemptNumber\"] = this.currentStageAttemptNumber;\n data[\"rules\"] = this.rules;\n data[\"finalized\"] = this.finalized;\n data[\"statusChangeTime\"] = this.statusChangeTime ? this.statusChangeTime.toISOString() : undefined;\n data[\"applyingDeadline\"] = this.applyingDeadline ? this.applyingDeadline.toISOString() : undefined;\n data[\"regionName\"] = this.regionName;\n return data; \n }\n}\n\nexport interface IApplicantExamDetails {\n examId: string;\n date: moment.Moment;\n lastDate: moment.Moment;\n reviewComment?: string | undefined;\n qualificationTitle: string;\n stagesNumber: number;\n accreditationCenterName: string;\n attestationSubCommissionName: string;\n address: string;\n attestationCommissionName: string;\n city: string;\n region: string;\n examStatus: ExamStatus;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n rules?: string | undefined;\n finalized: boolean;\n statusChangeTime: moment.Moment;\n applyingDeadline: moment.Moment;\n regionName: string;\n}\n\nexport class ApplicantExamList implements IApplicantExamList {\n items!: ApplicantExam[];\n page!: number;\n pageSize!: number;\n total!: number;\n\n constructor(data?: IApplicantExamList) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.items = [];\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"items\"])) {\n this.items = [] as any;\n for (let item of _data[\"items\"])\n this.items!.push(ApplicantExam.fromJS(item));\n }\n this.page = _data[\"page\"];\n this.pageSize = _data[\"pageSize\"];\n this.total = _data[\"total\"];\n }\n }\n\n static fromJS(data: any): ApplicantExamList {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantExamList();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"items\"] = [];\n for (let item of this.items)\n data[\"items\"].push(item.toJSON());\n }\n data[\"page\"] = this.page;\n data[\"pageSize\"] = this.pageSize;\n data[\"total\"] = this.total;\n return data; \n }\n}\n\nexport interface IApplicantExamList {\n items: ApplicantExam[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport class ApplicantIdentityDoc implements IApplicantIdentityDoc {\n identityDocType!: IdentityDocType;\n passport?: ApplicantPassport;\n otherIdentity?: ApplicantOtherIdentity;\n\n constructor(data?: IApplicantIdentityDoc) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.identityDocType = _data[\"identityDocType\"];\n this.passport = _data[\"passport\"] ? ApplicantPassport.fromJS(_data[\"passport\"]) : undefined;\n this.otherIdentity = _data[\"otherIdentity\"] ? ApplicantOtherIdentity.fromJS(_data[\"otherIdentity\"]) : undefined;\n }\n }\n\n static fromJS(data: any): ApplicantIdentityDoc {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantIdentityDoc();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"identityDocType\"] = this.identityDocType;\n data[\"passport\"] = this.passport ? this.passport.toJSON() : undefined;\n data[\"otherIdentity\"] = this.otherIdentity ? this.otherIdentity.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IApplicantIdentityDoc {\n identityDocType: IdentityDocType;\n passport?: ApplicantPassport;\n otherIdentity?: ApplicantOtherIdentity;\n}\n\n/** Другой документ */\nexport class ApplicantOtherIdentity implements IApplicantOtherIdentity {\n /** данные документа */\n data!: string;\n\n constructor(data?: IApplicantOtherIdentity) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.data = _data[\"data\"];\n }\n }\n\n static fromJS(data: any): ApplicantOtherIdentity {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantOtherIdentity();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"data\"] = this.data;\n return data; \n }\n}\n\n/** Другой документ */\nexport interface IApplicantOtherIdentity {\n /** данные документа */\n data: string;\n}\n\n/** паспорт */\nexport class ApplicantPassport implements IApplicantPassport {\n /** серия/номер */\n serialNumber!: string;\n /** кем выдан */\n issuedBy!: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue!: moment.Moment;\n /** адрес регистрации */\n registrationAddress!: string;\n\n constructor(data?: IApplicantPassport) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.serialNumber = _data[\"serialNumber\"];\n this.issuedBy = _data[\"issuedBy\"];\n this.dateOfIssue = _data[\"dateOfIssue\"] ? moment(_data[\"dateOfIssue\"].toString()) : undefined;\n this.registrationAddress = _data[\"registrationAddress\"];\n }\n }\n\n static fromJS(data: any): ApplicantPassport {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantPassport();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"serialNumber\"] = this.serialNumber;\n data[\"issuedBy\"] = this.issuedBy;\n data[\"dateOfIssue\"] = this.dateOfIssue ? this.dateOfIssue.toISOString() : undefined;\n data[\"registrationAddress\"] = this.registrationAddress;\n return data; \n }\n}\n\n/** паспорт */\nexport interface IApplicantPassport {\n /** серия/номер */\n serialNumber: string;\n /** кем выдан */\n issuedBy: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue: moment.Moment;\n /** адрес регистрации */\n registrationAddress: string;\n}\n\nexport class ApplicantQualification implements IApplicantQualification {\n applicantId!: string;\n examId!: string;\n examApplicationId!: string;\n title!: string;\n stagesNumber!: number;\n /** Регистрационный номер специальности */\n regNumber!: string;\n /** Дата присвоения */\n issueDate!: moment.Moment;\n /** Дата окончания действия */\n expireDate!: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber!: string;\n\n constructor(data?: IApplicantQualification) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.applicantId = _data[\"applicantId\"];\n this.examId = _data[\"examId\"];\n this.examApplicationId = _data[\"examApplicationId\"];\n this.title = _data[\"title\"];\n this.stagesNumber = _data[\"stagesNumber\"];\n this.regNumber = _data[\"regNumber\"];\n this.issueDate = _data[\"issueDate\"] ? moment(_data[\"issueDate\"].toString()) : undefined;\n this.expireDate = _data[\"expireDate\"] ? moment(_data[\"expireDate\"].toString()) : undefined;\n this.certRegNumber = _data[\"certRegNumber\"];\n }\n }\n\n static fromJS(data: any): ApplicantQualification {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantQualification();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"applicantId\"] = this.applicantId;\n data[\"examId\"] = this.examId;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"title\"] = this.title;\n data[\"stagesNumber\"] = this.stagesNumber;\n data[\"regNumber\"] = this.regNumber;\n data[\"issueDate\"] = this.issueDate ? this.issueDate.toISOString() : undefined;\n data[\"expireDate\"] = this.expireDate ? this.expireDate.toISOString() : undefined;\n data[\"certRegNumber\"] = this.certRegNumber;\n return data; \n }\n}\n\nexport interface IApplicantQualification {\n applicantId: string;\n examId: string;\n examApplicationId: string;\n title: string;\n stagesNumber: number;\n /** Регистрационный номер специальности */\n regNumber: string;\n /** Дата присвоения */\n issueDate: moment.Moment;\n /** Дата окончания действия */\n expireDate: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber: string;\n}\n\nexport class ApplicantQualificationDetails implements IApplicantQualificationDetails {\n applicantId!: string;\n examId!: string;\n examApplicationId!: string;\n title!: string;\n stagesNumber!: number;\n /** Регистрационный номер специальности */\n regNumber!: string;\n /** Дата присвоения */\n issueDate!: moment.Moment;\n /** Дата окончания действия */\n expireDate!: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber!: string;\n examDate!: moment.Moment;\n accreditationCenterName!: string;\n acFullName!: string;\n regionName!: string;\n /** СВИДЕТЕЛЬСТВО О КВАЛИФИКАЦИИ */\n certificateUrl?: string | undefined;\n\n constructor(data?: IApplicantQualificationDetails) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.applicantId = _data[\"applicantId\"];\n this.examId = _data[\"examId\"];\n this.examApplicationId = _data[\"examApplicationId\"];\n this.title = _data[\"title\"];\n this.stagesNumber = _data[\"stagesNumber\"];\n this.regNumber = _data[\"regNumber\"];\n this.issueDate = _data[\"issueDate\"] ? moment(_data[\"issueDate\"].toString()) : undefined;\n this.expireDate = _data[\"expireDate\"] ? moment(_data[\"expireDate\"].toString()) : undefined;\n this.certRegNumber = _data[\"certRegNumber\"];\n this.examDate = _data[\"examDate\"] ? moment(_data[\"examDate\"].toString()) : undefined;\n this.accreditationCenterName = _data[\"accreditationCenterName\"];\n this.acFullName = _data[\"acFullName\"];\n this.regionName = _data[\"regionName\"];\n this.certificateUrl = _data[\"certificateUrl\"];\n }\n }\n\n static fromJS(data: any): ApplicantQualificationDetails {\n data = typeof data === 'object' ? data : {};\n let result = new ApplicantQualificationDetails();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"applicantId\"] = this.applicantId;\n data[\"examId\"] = this.examId;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"title\"] = this.title;\n data[\"stagesNumber\"] = this.stagesNumber;\n data[\"regNumber\"] = this.regNumber;\n data[\"issueDate\"] = this.issueDate ? this.issueDate.toISOString() : undefined;\n data[\"expireDate\"] = this.expireDate ? this.expireDate.toISOString() : undefined;\n data[\"certRegNumber\"] = this.certRegNumber;\n data[\"examDate\"] = this.examDate ? this.examDate.toISOString() : undefined;\n data[\"accreditationCenterName\"] = this.accreditationCenterName;\n data[\"acFullName\"] = this.acFullName;\n data[\"regionName\"] = this.regionName;\n data[\"certificateUrl\"] = this.certificateUrl;\n return data; \n }\n}\n\nexport interface IApplicantQualificationDetails {\n applicantId: string;\n examId: string;\n examApplicationId: string;\n title: string;\n stagesNumber: number;\n /** Регистрационный номер специальности */\n regNumber: string;\n /** Дата присвоения */\n issueDate: moment.Moment;\n /** Дата окончания действия */\n expireDate: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber: string;\n examDate: moment.Moment;\n accreditationCenterName: string;\n acFullName: string;\n regionName: string;\n /** СВИДЕТЕЛЬСТВО О КВАЛИФИКАЦИИ */\n certificateUrl?: string | undefined;\n}\n\nexport class AuthResult implements IAuthResult {\n profile!: Applicant;\n token!: string;\n\n constructor(data?: IAuthResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.profile = new Applicant();\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.profile = _data[\"profile\"] ? Applicant.fromJS(_data[\"profile\"]) : new Applicant();\n this.token = _data[\"token\"];\n }\n }\n\n static fromJS(data: any): AuthResult {\n data = typeof data === 'object' ? data : {};\n let result = new AuthResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"profile\"] = this.profile ? this.profile.toJSON() : undefined;\n data[\"token\"] = this.token;\n return data; \n }\n}\n\nexport interface IAuthResult {\n profile: Applicant;\n token: string;\n}\n\nexport class ChangePassword implements IChangePassword {\n captcha?: string | undefined;\n /** Старый пароль */\n oldPassword!: string;\n /** Новый пароль */\n newPassword!: string;\n\n constructor(data?: IChangePassword) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.oldPassword = _data[\"oldPassword\"];\n this.newPassword = _data[\"newPassword\"];\n }\n }\n\n static fromJS(data: any): ChangePassword {\n data = typeof data === 'object' ? data : {};\n let result = new ChangePassword();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"oldPassword\"] = this.oldPassword;\n data[\"newPassword\"] = this.newPassword;\n return data; \n }\n}\n\nexport interface IChangePassword {\n captcha?: string | undefined;\n /** Старый пароль */\n oldPassword: string;\n /** Новый пароль */\n newPassword: string;\n}\n\nexport class CheckVerificationCode implements ICheckVerificationCode {\n captcha?: string | undefined;\n phone!: string;\n verificationCode!: string;\n\n constructor(data?: ICheckVerificationCode) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.phone = _data[\"phone\"];\n this.verificationCode = _data[\"verificationCode\"];\n }\n }\n\n static fromJS(data: any): CheckVerificationCode {\n data = typeof data === 'object' ? data : {};\n let result = new CheckVerificationCode();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"phone\"] = this.phone;\n data[\"verificationCode\"] = this.verificationCode;\n return data; \n }\n}\n\nexport interface ICheckVerificationCode {\n captcha?: string | undefined;\n phone: string;\n verificationCode: string;\n}\n\nexport enum CitizenshipType {\n Russian = \"russian\",\n RussianWithOther = \"russianWithOther\",\n Foreigner = \"foreigner\",\n WithoutCitizenship = \"withoutCitizenship\",\n}\n\nexport class ConfirmEmailByToken implements IConfirmEmailByToken {\n captcha?: string | undefined;\n token!: string;\n\n constructor(data?: IConfirmEmailByToken) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.token = _data[\"token\"];\n }\n }\n\n static fromJS(data: any): ConfirmEmailByToken {\n data = typeof data === 'object' ? data : {};\n let result = new ConfirmEmailByToken();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"token\"] = this.token;\n return data; \n }\n}\n\nexport interface IConfirmEmailByToken {\n captcha?: string | undefined;\n token: string;\n}\n\nexport class Country implements ICountry {\n readonly id!: number;\n readonly name!: string;\n\n constructor(data?: ICountry) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).id = _data[\"id\"];\n (this).name = _data[\"name\"];\n }\n }\n\n static fromJS(data: any): Country {\n data = typeof data === 'object' ? data : {};\n let result = new Country();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n return data; \n }\n}\n\nexport interface ICountry {\n id: number;\n name: string;\n}\n\nexport class CreateExamApplication implements ICreateExamApplication {\n examId!: string;\n\n constructor(data?: ICreateExamApplication) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.examId = _data[\"examId\"];\n }\n }\n\n static fromJS(data: any): CreateExamApplication {\n data = typeof data === 'object' ? data : {};\n let result = new CreateExamApplication();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"examId\"] = this.examId;\n return data; \n }\n}\n\nexport interface ICreateExamApplication {\n examId: string;\n}\n\nexport enum DiplomaType {\n Specialist = \"specialist\",\n Bachelor = \"bachelor\",\n Spo = \"spo\",\n Residency = \"residency\",\n Pp = \"pp\",\n ExtractFromProtocolGIA = \"extractFromProtocolGIA\",\n}\n\nexport enum DocumentType {\n Other = \"other\",\n IdentityDoc = \"identityDoc\",\n SecondaryEducationConfirmation = \"secondaryEducationConfirmation\",\n HigherEducationConfirmation = \"higherEducationConfirmation\",\n WorkExperienceConfirmation = \"workExperienceConfirmation\",\n ContinuingEducationConfirmation = \"continuingEducationConfirmation\",\n Snils = \"snils\",\n NoCriminalRecord = \"noCriminalRecord\",\n QualificationCertificate = \"qualificationCertificate\",\n ConsentToProcessingPersonalData = \"consentToProcessingPersonalData\",\n}\n\nexport class EventsStateHolder implements IEventsStateHolder {\n eventsState?: { [key: string]: number; } | undefined;\n\n constructor(data?: IEventsStateHolder) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (_data[\"eventsState\"]) {\n this.eventsState = {} as any;\n for (let key in _data[\"eventsState\"]) {\n if (_data[\"eventsState\"].hasOwnProperty(key))\n (this.eventsState)![key] = _data[\"eventsState\"][key];\n }\n }\n }\n }\n\n static fromJS(data: any): EventsStateHolder {\n data = typeof data === 'object' ? data : {};\n let result = new EventsStateHolder();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (this.eventsState) {\n data[\"eventsState\"] = {};\n for (let key in this.eventsState) {\n if (this.eventsState.hasOwnProperty(key))\n (data[\"eventsState\"])[key] = this.eventsState[key];\n }\n }\n return data; \n }\n}\n\nexport interface IEventsStateHolder {\n eventsState?: { [key: string]: number; } | undefined;\n}\n\nexport class Exam implements IExam {\n id!: string;\n date!: moment.Moment;\n lastDate!: moment.Moment;\n qualificationId!: string;\n attestationSubCommissionId!: string;\n qualificationTitle!: string;\n qualificationResidency!: boolean;\n stagesNumber!: number;\n accreditationCenterName!: string;\n attestationCommissionName!: string;\n attestationSubCommissionName!: string;\n address!: string;\n city!: string;\n region!: string;\n status!: ExamStatus;\n statusChangeTime!: moment.Moment;\n attestationCommissionId!: string;\n /** Количество аккредитуемых */\n applicationsNumber!: number;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n\n constructor(data?: IExam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.date = _data[\"date\"] ? moment(_data[\"date\"].toString()) : undefined;\n this.lastDate = _data[\"lastDate\"] ? moment(_data[\"lastDate\"].toString()) : undefined;\n this.qualificationId = _data[\"qualificationId\"];\n this.attestationSubCommissionId = _data[\"attestationSubCommissionId\"];\n this.qualificationTitle = _data[\"qualificationTitle\"];\n this.qualificationResidency = _data[\"qualificationResidency\"];\n this.stagesNumber = _data[\"stagesNumber\"];\n this.accreditationCenterName = _data[\"accreditationCenterName\"];\n this.attestationCommissionName = _data[\"attestationCommissionName\"];\n this.attestationSubCommissionName = _data[\"attestationSubCommissionName\"];\n this.address = _data[\"address\"];\n this.city = _data[\"city\"];\n this.region = _data[\"region\"];\n this.status = _data[\"status\"];\n this.statusChangeTime = _data[\"statusChangeTime\"] ? moment(_data[\"statusChangeTime\"].toString()) : undefined;\n this.attestationCommissionId = _data[\"attestationCommissionId\"];\n this.applicationsNumber = _data[\"applicationsNumber\"];\n this.currentStageNumber = _data[\"currentStageNumber\"];\n this.currentStageFirstDayDate = _data[\"currentStageFirstDayDate\"] ? moment(_data[\"currentStageFirstDayDate\"].toString()) : undefined;\n this.currentStageLastDayDate = _data[\"currentStageLastDayDate\"] ? moment(_data[\"currentStageLastDayDate\"].toString()) : undefined;\n this.currentStageAttemptNumber = _data[\"currentStageAttemptNumber\"];\n }\n }\n\n static fromJS(data: any): Exam {\n data = typeof data === 'object' ? data : {};\n let result = new Exam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"date\"] = this.date ? this.date.toISOString() : undefined;\n data[\"lastDate\"] = this.lastDate ? this.lastDate.toISOString() : undefined;\n data[\"qualificationId\"] = this.qualificationId;\n data[\"attestationSubCommissionId\"] = this.attestationSubCommissionId;\n data[\"qualificationTitle\"] = this.qualificationTitle;\n data[\"qualificationResidency\"] = this.qualificationResidency;\n data[\"stagesNumber\"] = this.stagesNumber;\n data[\"accreditationCenterName\"] = this.accreditationCenterName;\n data[\"attestationCommissionName\"] = this.attestationCommissionName;\n data[\"attestationSubCommissionName\"] = this.attestationSubCommissionName;\n data[\"address\"] = this.address;\n data[\"city\"] = this.city;\n data[\"region\"] = this.region;\n data[\"status\"] = this.status;\n data[\"statusChangeTime\"] = this.statusChangeTime ? this.statusChangeTime.toISOString() : undefined;\n data[\"attestationCommissionId\"] = this.attestationCommissionId;\n data[\"applicationsNumber\"] = this.applicationsNumber;\n data[\"currentStageNumber\"] = this.currentStageNumber;\n data[\"currentStageFirstDayDate\"] = this.currentStageFirstDayDate ? this.currentStageFirstDayDate.toISOString() : undefined;\n data[\"currentStageLastDayDate\"] = this.currentStageLastDayDate ? this.currentStageLastDayDate.toISOString() : undefined;\n data[\"currentStageAttemptNumber\"] = this.currentStageAttemptNumber;\n return data; \n }\n}\n\nexport interface IExam {\n id: string;\n date: moment.Moment;\n lastDate: moment.Moment;\n qualificationId: string;\n attestationSubCommissionId: string;\n qualificationTitle: string;\n qualificationResidency: boolean;\n stagesNumber: number;\n accreditationCenterName: string;\n attestationCommissionName: string;\n attestationSubCommissionName: string;\n address: string;\n city: string;\n region: string;\n status: ExamStatus;\n statusChangeTime: moment.Moment;\n attestationCommissionId: string;\n /** Количество аккредитуемых */\n applicationsNumber: number;\n /** Номер текущего этапа */\n currentStageNumber?: number | undefined;\n /** Дата проведения первого дня текущего этапа */\n currentStageFirstDayDate?: moment.Moment | undefined;\n /** Дата проведения последнего дня текущего этапа */\n currentStageLastDayDate?: moment.Moment | undefined;\n /** Номер пересдачи если она была, показывать в случае больше нуля */\n currentStageAttemptNumber?: number | undefined;\n}\n\nexport class ExamApplicationDetails implements IExamApplicationDetails {\n status!: ExamApplicationStatus;\n finalized!: boolean;\n statusChangeTime!: moment.Moment;\n examApplicationId!: string;\n applicationSubmitDate!: moment.Moment;\n lastFinalizedStage?: number | undefined;\n lastFinalizedStageResult!: FinalizedResult;\n lastFinalizedStageAttemptNumber!: number;\n exam!: Exam;\n applicant!: Applicant;\n applicantIdentityDoc!: ApplicantIdentityDoc;\n applicantDiploma?: ApplicantDiploma;\n documents!: ExamApplicationDocument[];\n reviewComment?: string | undefined;\n /** Профессиональная переподготовка, возможна только в случае ординатуры */\n professionalRetraining?: boolean | undefined;\n /** Запрос на допуск к аккредитации начиная с n-го этапа */\n startStage?: number | undefined;\n signCode?: string | undefined;\n approveCode?: string | undefined;\n examDayApplications!: ExamDayApplicationShort[];\n eventsState?: { [key: string]: number; } | undefined;\n\n constructor(data?: IExamApplicationDetails) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.exam = new Exam();\n this.applicant = new Applicant();\n this.applicantIdentityDoc = new ApplicantIdentityDoc();\n this.documents = [];\n this.examDayApplications = [];\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.status = _data[\"status\"];\n this.finalized = _data[\"finalized\"];\n this.statusChangeTime = _data[\"statusChangeTime\"] ? moment(_data[\"statusChangeTime\"].toString()) : undefined;\n this.examApplicationId = _data[\"examApplicationId\"];\n this.applicationSubmitDate = _data[\"applicationSubmitDate\"] ? moment(_data[\"applicationSubmitDate\"].toString()) : undefined;\n this.lastFinalizedStage = _data[\"lastFinalizedStage\"];\n this.lastFinalizedStageResult = _data[\"lastFinalizedStageResult\"];\n this.lastFinalizedStageAttemptNumber = _data[\"lastFinalizedStageAttemptNumber\"];\n this.exam = _data[\"exam\"] ? Exam.fromJS(_data[\"exam\"]) : new Exam();\n this.applicant = _data[\"applicant\"] ? Applicant.fromJS(_data[\"applicant\"]) : new Applicant();\n this.applicantIdentityDoc = _data[\"applicantIdentityDoc\"] ? ApplicantIdentityDoc.fromJS(_data[\"applicantIdentityDoc\"]) : new ApplicantIdentityDoc();\n this.applicantDiploma = _data[\"applicantDiploma\"] ? ApplicantDiploma.fromJS(_data[\"applicantDiploma\"]) : undefined;\n if (Array.isArray(_data[\"documents\"])) {\n this.documents = [] as any;\n for (let item of _data[\"documents\"])\n this.documents!.push(ExamApplicationDocument.fromJS(item));\n }\n this.reviewComment = _data[\"reviewComment\"];\n this.professionalRetraining = _data[\"professionalRetraining\"];\n this.startStage = _data[\"startStage\"];\n this.signCode = _data[\"signCode\"];\n this.approveCode = _data[\"approveCode\"];\n if (Array.isArray(_data[\"examDayApplications\"])) {\n this.examDayApplications = [] as any;\n for (let item of _data[\"examDayApplications\"])\n this.examDayApplications!.push(ExamDayApplicationShort.fromJS(item));\n }\n if (_data[\"eventsState\"]) {\n this.eventsState = {} as any;\n for (let key in _data[\"eventsState\"]) {\n if (_data[\"eventsState\"].hasOwnProperty(key))\n (this.eventsState)![key] = _data[\"eventsState\"][key];\n }\n }\n }\n }\n\n static fromJS(data: any): ExamApplicationDetails {\n data = typeof data === 'object' ? data : {};\n let result = new ExamApplicationDetails();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"status\"] = this.status;\n data[\"finalized\"] = this.finalized;\n data[\"statusChangeTime\"] = this.statusChangeTime ? this.statusChangeTime.toISOString() : undefined;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"applicationSubmitDate\"] = this.applicationSubmitDate ? this.applicationSubmitDate.toISOString() : undefined;\n data[\"lastFinalizedStage\"] = this.lastFinalizedStage;\n data[\"lastFinalizedStageResult\"] = this.lastFinalizedStageResult;\n data[\"lastFinalizedStageAttemptNumber\"] = this.lastFinalizedStageAttemptNumber;\n data[\"exam\"] = this.exam ? this.exam.toJSON() : undefined;\n data[\"applicant\"] = this.applicant ? this.applicant.toJSON() : undefined;\n data[\"applicantIdentityDoc\"] = this.applicantIdentityDoc ? this.applicantIdentityDoc.toJSON() : undefined;\n data[\"applicantDiploma\"] = this.applicantDiploma ? this.applicantDiploma.toJSON() : undefined;\n if (Array.isArray(this.documents)) {\n data[\"documents\"] = [];\n for (let item of this.documents)\n data[\"documents\"].push(item.toJSON());\n }\n data[\"reviewComment\"] = this.reviewComment;\n data[\"professionalRetraining\"] = this.professionalRetraining;\n data[\"startStage\"] = this.startStage;\n data[\"signCode\"] = this.signCode;\n data[\"approveCode\"] = this.approveCode;\n if (Array.isArray(this.examDayApplications)) {\n data[\"examDayApplications\"] = [];\n for (let item of this.examDayApplications)\n data[\"examDayApplications\"].push(item.toJSON());\n }\n if (this.eventsState) {\n data[\"eventsState\"] = {};\n for (let key in this.eventsState) {\n if (this.eventsState.hasOwnProperty(key))\n (data[\"eventsState\"])[key] = this.eventsState[key];\n }\n }\n return data; \n }\n}\n\nexport interface IExamApplicationDetails {\n status: ExamApplicationStatus;\n finalized: boolean;\n statusChangeTime: moment.Moment;\n examApplicationId: string;\n applicationSubmitDate: moment.Moment;\n lastFinalizedStage?: number | undefined;\n lastFinalizedStageResult: FinalizedResult;\n lastFinalizedStageAttemptNumber: number;\n exam: Exam;\n applicant: Applicant;\n applicantIdentityDoc: ApplicantIdentityDoc;\n applicantDiploma?: ApplicantDiploma;\n documents: ExamApplicationDocument[];\n reviewComment?: string | undefined;\n /** Профессиональная переподготовка, возможна только в случае ординатуры */\n professionalRetraining?: boolean | undefined;\n /** Запрос на допуск к аккредитации начиная с n-го этапа */\n startStage?: number | undefined;\n signCode?: string | undefined;\n approveCode?: string | undefined;\n examDayApplications: ExamDayApplicationShort[];\n eventsState?: { [key: string]: number; } | undefined;\n}\n\nexport class ExamApplicationDocument implements IExamApplicationDocument {\n readonly fileId!: string;\n readonly fileExtension!: string;\n readonly fileSize!: number;\n readonly fileUrl!: string;\n id!: string;\n documentDescription!: string;\n variant!: number;\n type!: DocumentType;\n documentTemplateId?: string | undefined;\n examApplicationId!: string;\n applicantId!: string;\n submissionDate!: moment.Moment;\n readonly sourceFiles!: SourceFile[];\n\n constructor(data?: IExamApplicationDocument) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.sourceFiles = [];\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).fileId = _data[\"fileId\"];\n (this).fileExtension = _data[\"fileExtension\"];\n (this).fileSize = _data[\"fileSize\"];\n (this).fileUrl = _data[\"fileUrl\"];\n this.id = _data[\"id\"];\n this.documentDescription = _data[\"documentDescription\"];\n this.variant = _data[\"variant\"];\n this.type = _data[\"type\"];\n this.documentTemplateId = _data[\"documentTemplateId\"];\n this.examApplicationId = _data[\"examApplicationId\"];\n this.applicantId = _data[\"applicantId\"];\n this.submissionDate = _data[\"submissionDate\"] ? moment(_data[\"submissionDate\"].toString()) : undefined;\n if (Array.isArray(_data[\"sourceFiles\"])) {\n (this).sourceFiles = [] as any;\n for (let item of _data[\"sourceFiles\"])\n (this).sourceFiles!.push(SourceFile.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ExamApplicationDocument {\n data = typeof data === 'object' ? data : {};\n let result = new ExamApplicationDocument();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"fileId\"] = this.fileId;\n data[\"fileExtension\"] = this.fileExtension;\n data[\"fileSize\"] = this.fileSize;\n data[\"fileUrl\"] = this.fileUrl;\n data[\"id\"] = this.id;\n data[\"documentDescription\"] = this.documentDescription;\n data[\"variant\"] = this.variant;\n data[\"type\"] = this.type;\n data[\"documentTemplateId\"] = this.documentTemplateId;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"applicantId\"] = this.applicantId;\n data[\"submissionDate\"] = this.submissionDate ? this.submissionDate.toISOString() : undefined;\n if (Array.isArray(this.sourceFiles)) {\n data[\"sourceFiles\"] = [];\n for (let item of this.sourceFiles)\n data[\"sourceFiles\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IExamApplicationDocument {\n fileId: string;\n fileExtension: string;\n fileSize: number;\n fileUrl: string;\n id: string;\n documentDescription: string;\n variant: number;\n type: DocumentType;\n documentTemplateId?: string | undefined;\n examApplicationId: string;\n applicantId: string;\n submissionDate: moment.Moment;\n sourceFiles: SourceFile[];\n}\n\nexport enum ExamApplicationStatus {\n Draft = \"draft\",\n InReview = \"inReview\",\n CorrectionsRequired = \"correctionsRequired\",\n Canceled = \"canceled\",\n Approved = \"approved\",\n Staging = \"staging\",\n Absent = \"absent\",\n NotPassed = \"notPassed\",\n Passed = \"passed\",\n}\n\nexport class ExamDayApplicationShort implements IExamDayApplicationShort {\n examDayId!: string;\n stageNumber!: number;\n attemptNumber!: number;\n admitted!: boolean;\n finalizedResult!: FinalizedResult;\n examDayDateTime!: moment.Moment;\n\n constructor(data?: IExamDayApplicationShort) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.examDayId = _data[\"examDayId\"];\n this.stageNumber = _data[\"stageNumber\"];\n this.attemptNumber = _data[\"attemptNumber\"];\n this.admitted = _data[\"admitted\"];\n this.finalizedResult = _data[\"finalizedResult\"];\n this.examDayDateTime = _data[\"examDayDateTime\"] ? moment(_data[\"examDayDateTime\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): ExamDayApplicationShort {\n data = typeof data === 'object' ? data : {};\n let result = new ExamDayApplicationShort();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"examDayId\"] = this.examDayId;\n data[\"stageNumber\"] = this.stageNumber;\n data[\"attemptNumber\"] = this.attemptNumber;\n data[\"admitted\"] = this.admitted;\n data[\"finalizedResult\"] = this.finalizedResult;\n data[\"examDayDateTime\"] = this.examDayDateTime ? this.examDayDateTime.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IExamDayApplicationShort {\n examDayId: string;\n stageNumber: number;\n attemptNumber: number;\n admitted: boolean;\n finalizedResult: FinalizedResult;\n examDayDateTime: moment.Moment;\n}\n\nexport enum ExamReviewStatus {\n All = \"all\",\n Applying = \"applying\",\n Recorded = \"recorded\",\n}\n\nexport enum ExamStatus {\n AwaitingExpertConfirmation = \"awaitingExpertConfirmation\",\n IsApplying = \"isApplying\",\n ApplyingFinished = \"applyingFinished\",\n Canceled = \"canceled\",\n Staging = \"staging\",\n Finishing = \"finishing\",\n Finished = \"finished\",\n}\n\nexport enum FinalizedResult {\n None = \"none\",\n Passed = \"passed\",\n NotPassed = \"notPassed\",\n Absent = \"absent\",\n}\n\nexport enum IdentityDocType {\n Passport = \"passport\",\n Residence = \"residence\",\n MilitaryTicket = \"militaryTicket\",\n TemporaryIdentity = \"temporaryIdentity\",\n DiplomaticPassport = \"diplomaticPassport\",\n StatelessPersonIdentity = \"statelessPersonIdentity\",\n InternationalPassport = \"internationalPassport\",\n ForeignCitizenPassport = \"foreignCitizenPassport\",\n TemporaryResidencePermit = \"temporaryResidencePermit\",\n ServicePassport = \"servicePassport\",\n RefugeeIdentity = \"refugeeIdentity\",\n ServicemanIdentity = \"servicemanIdentity\",\n SeafarerIdentity = \"seafarerIdentity\",\n}\n\nexport class LoginApplicant implements ILoginApplicant {\n captcha?: string | undefined;\n phone!: string;\n password!: string;\n\n constructor(data?: ILoginApplicant) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.phone = _data[\"phone\"];\n this.password = _data[\"password\"];\n }\n }\n\n static fromJS(data: any): LoginApplicant {\n data = typeof data === 'object' ? data : {};\n let result = new LoginApplicant();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"phone\"] = this.phone;\n data[\"password\"] = this.password;\n return data; \n }\n}\n\nexport interface ILoginApplicant {\n captcha?: string | undefined;\n phone: string;\n password: string;\n}\n\n/** Отношение к воинской службе */\nexport enum MilitaryRelationshipType {\n Reservist = \"reservist\",\n Serviceman = \"serviceman\",\n NonLiable = \"nonLiable\",\n Conscript = \"conscript\",\n CustomsOfficer = \"customsOfficer\",\n}\n\nexport enum MyExamStatus {\n All = \"all\",\n Approved = \"approved\",\n Processing = \"processing\",\n Recorded = \"recorded\",\n Canceled = \"canceled\",\n}\n\nexport class QualificationDocumentTemplate implements IQualificationDocumentTemplate {\n /** Идентификатор шаблона */\n readonly id!: string;\n /** Порядок в списке */\n readonly order!: number;\n /** Вариант */\n readonly variant!: number;\n /** Описание */\n readonly description!: string;\n type!: DocumentType;\n\n constructor(data?: IQualificationDocumentTemplate) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).id = _data[\"id\"];\n (this).order = _data[\"order\"];\n (this).variant = _data[\"variant\"];\n (this).description = _data[\"description\"];\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): QualificationDocumentTemplate {\n data = typeof data === 'object' ? data : {};\n let result = new QualificationDocumentTemplate();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"order\"] = this.order;\n data[\"variant\"] = this.variant;\n data[\"description\"] = this.description;\n data[\"type\"] = this.type;\n return data; \n }\n}\n\nexport interface IQualificationDocumentTemplate {\n /** Идентификатор шаблона */\n id: string;\n /** Порядок в списке */\n order: number;\n /** Вариант */\n variant: number;\n /** Описание */\n description: string;\n type: DocumentType;\n}\n\nexport class QualificationDocumentTemplateGroup implements IQualificationDocumentTemplateGroup {\n title!: string;\n description!: string;\n order!: number;\n hasVariants!: boolean;\n templates!: QualificationDocumentTemplate[];\n\n constructor(data?: IQualificationDocumentTemplateGroup) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.templates = [];\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.title = _data[\"title\"];\n this.description = _data[\"description\"];\n this.order = _data[\"order\"];\n this.hasVariants = _data[\"hasVariants\"];\n if (Array.isArray(_data[\"templates\"])) {\n this.templates = [] as any;\n for (let item of _data[\"templates\"])\n this.templates!.push(QualificationDocumentTemplate.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): QualificationDocumentTemplateGroup {\n data = typeof data === 'object' ? data : {};\n let result = new QualificationDocumentTemplateGroup();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"title\"] = this.title;\n data[\"description\"] = this.description;\n data[\"order\"] = this.order;\n data[\"hasVariants\"] = this.hasVariants;\n if (Array.isArray(this.templates)) {\n data[\"templates\"] = [];\n for (let item of this.templates)\n data[\"templates\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IQualificationDocumentTemplateGroup {\n title: string;\n description: string;\n order: number;\n hasVariants: boolean;\n templates: QualificationDocumentTemplate[];\n}\n\nexport class QualificationInfo implements IQualificationInfo {\n id!: string;\n title!: string;\n stagesNumber!: number;\n regNumber!: string;\n occupationalStandardId!: string;\n occupationalStandardTitle!: string;\n readyToUse!: boolean;\n residency!: boolean;\n\n constructor(data?: IQualificationInfo) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.title = _data[\"title\"];\n this.stagesNumber = _data[\"stagesNumber\"];\n this.regNumber = _data[\"regNumber\"];\n this.occupationalStandardId = _data[\"occupationalStandardId\"];\n this.occupationalStandardTitle = _data[\"occupationalStandardTitle\"];\n this.readyToUse = _data[\"readyToUse\"];\n this.residency = _data[\"residency\"];\n }\n }\n\n static fromJS(data: any): QualificationInfo {\n data = typeof data === 'object' ? data : {};\n let result = new QualificationInfo();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"title\"] = this.title;\n data[\"stagesNumber\"] = this.stagesNumber;\n data[\"regNumber\"] = this.regNumber;\n data[\"occupationalStandardId\"] = this.occupationalStandardId;\n data[\"occupationalStandardTitle\"] = this.occupationalStandardTitle;\n data[\"readyToUse\"] = this.readyToUse;\n data[\"residency\"] = this.residency;\n return data; \n }\n}\n\nexport interface IQualificationInfo {\n id: string;\n title: string;\n stagesNumber: number;\n regNumber: string;\n occupationalStandardId: string;\n occupationalStandardTitle: string;\n readyToUse: boolean;\n residency: boolean;\n}\n\nexport class QualificationInfoList implements IQualificationInfoList {\n items!: QualificationInfo[];\n page!: number;\n pageSize!: number;\n total!: number;\n\n constructor(data?: IQualificationInfoList) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n if (!data) {\n this.items = [];\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"items\"])) {\n this.items = [] as any;\n for (let item of _data[\"items\"])\n this.items!.push(QualificationInfo.fromJS(item));\n }\n this.page = _data[\"page\"];\n this.pageSize = _data[\"pageSize\"];\n this.total = _data[\"total\"];\n }\n }\n\n static fromJS(data: any): QualificationInfoList {\n data = typeof data === 'object' ? data : {};\n let result = new QualificationInfoList();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.items)) {\n data[\"items\"] = [];\n for (let item of this.items)\n data[\"items\"].push(item.toJSON());\n }\n data[\"page\"] = this.page;\n data[\"pageSize\"] = this.pageSize;\n data[\"total\"] = this.total;\n return data; \n }\n}\n\nexport interface IQualificationInfoList {\n items: QualificationInfo[];\n page: number;\n pageSize: number;\n total: number;\n}\n\nexport class Region implements IRegion {\n readonly id!: number;\n readonly name!: string;\n readonly timeZoneOffset!: number;\n\n constructor(data?: IRegion) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).id = _data[\"id\"];\n (this).name = _data[\"name\"];\n (this).timeZoneOffset = _data[\"timeZoneOffset\"];\n }\n }\n\n static fromJS(data: any): Region {\n data = typeof data === 'object' ? data : {};\n let result = new Region();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"timeZoneOffset\"] = this.timeZoneOffset;\n return data; \n }\n}\n\nexport interface IRegion {\n id: number;\n name: string;\n timeZoneOffset: number;\n}\n\nexport class RegisterApplicant implements IRegisterApplicant {\n captcha?: string | undefined;\n /** Имя */\n firstName!: string;\n /** Фамилия */\n lastName!: string;\n /** Отчество */\n middleName!: string;\n /** Номер телефона */\n phone!: string;\n /** Пароль */\n password!: string;\n sex!: Sex;\n /** Адрес электронной почты */\n email!: string;\n /** Дата рождения, время должно быть 00ч. 00м. 00с. по UTC */\n birthDate!: moment.Moment;\n /** Код верификации */\n verificationCode!: string;\n /** СНИЛС */\n snils!: string;\n /** Регион */\n regionId!: number;\n /** Id специальности */\n qualificationId!: string;\n\n constructor(data?: IRegisterApplicant) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.firstName = _data[\"firstName\"];\n this.lastName = _data[\"lastName\"];\n this.middleName = _data[\"middleName\"];\n this.phone = _data[\"phone\"];\n this.password = _data[\"password\"];\n this.sex = _data[\"sex\"];\n this.email = _data[\"email\"];\n this.birthDate = _data[\"birthDate\"] ? moment(_data[\"birthDate\"].toString()) : undefined;\n this.verificationCode = _data[\"verificationCode\"];\n this.snils = _data[\"snils\"];\n this.regionId = _data[\"regionId\"];\n this.qualificationId = _data[\"qualificationId\"];\n }\n }\n\n static fromJS(data: any): RegisterApplicant {\n data = typeof data === 'object' ? data : {};\n let result = new RegisterApplicant();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"firstName\"] = this.firstName;\n data[\"lastName\"] = this.lastName;\n data[\"middleName\"] = this.middleName;\n data[\"phone\"] = this.phone;\n data[\"password\"] = this.password;\n data[\"sex\"] = this.sex;\n data[\"email\"] = this.email;\n data[\"birthDate\"] = this.birthDate ? this.birthDate.toISOString() : undefined;\n data[\"verificationCode\"] = this.verificationCode;\n data[\"snils\"] = this.snils;\n data[\"regionId\"] = this.regionId;\n data[\"qualificationId\"] = this.qualificationId;\n return data; \n }\n}\n\nexport interface IRegisterApplicant {\n captcha?: string | undefined;\n /** Имя */\n firstName: string;\n /** Фамилия */\n lastName: string;\n /** Отчество */\n middleName: string;\n /** Номер телефона */\n phone: string;\n /** Пароль */\n password: string;\n sex: Sex;\n /** Адрес электронной почты */\n email: string;\n /** Дата рождения, время должно быть 00ч. 00м. 00с. по UTC */\n birthDate: moment.Moment;\n /** Код верификации */\n verificationCode: string;\n /** СНИЛС */\n snils: string;\n /** Регион */\n regionId: number;\n /** Id специальности */\n qualificationId: string;\n}\n\nexport class ResetPassword implements IResetPassword {\n captcha?: string | undefined;\n /** Код верификации */\n verificationCode!: string;\n /** Номер телефона аккредитуемого */\n phone!: string;\n /** Новый пароль */\n newPassword!: string;\n\n constructor(data?: IResetPassword) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.verificationCode = _data[\"verificationCode\"];\n this.phone = _data[\"phone\"];\n this.newPassword = _data[\"newPassword\"];\n }\n }\n\n static fromJS(data: any): ResetPassword {\n data = typeof data === 'object' ? data : {};\n let result = new ResetPassword();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"verificationCode\"] = this.verificationCode;\n data[\"phone\"] = this.phone;\n data[\"newPassword\"] = this.newPassword;\n return data; \n }\n}\n\nexport interface IResetPassword {\n captcha?: string | undefined;\n /** Код верификации */\n verificationCode: string;\n /** Номер телефона аккредитуемого */\n phone: string;\n /** Новый пароль */\n newPassword: string;\n}\n\nexport class SendCodeToSignApplication implements ISendCodeToSignApplication {\n captcha?: string | undefined;\n\n constructor(data?: ISendCodeToSignApplication) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n }\n }\n\n static fromJS(data: any): SendCodeToSignApplication {\n data = typeof data === 'object' ? data : {};\n let result = new SendCodeToSignApplication();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n return data; \n }\n}\n\nexport interface ISendCodeToSignApplication {\n captcha?: string | undefined;\n}\n\nexport class SendConfirmationEmailAgain implements ISendConfirmationEmailAgain {\n captcha?: string | undefined;\n\n constructor(data?: ISendConfirmationEmailAgain) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n }\n }\n\n static fromJS(data: any): SendConfirmationEmailAgain {\n data = typeof data === 'object' ? data : {};\n let result = new SendConfirmationEmailAgain();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n return data; \n }\n}\n\nexport interface ISendConfirmationEmailAgain {\n captcha?: string | undefined;\n}\n\nexport class SendVerificationCode implements ISendVerificationCode {\n captcha?: string | undefined;\n /** Телефон аккредитуемого */\n phone!: string;\n\n constructor(data?: ISendVerificationCode) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.phone = _data[\"phone\"];\n }\n }\n\n static fromJS(data: any): SendVerificationCode {\n data = typeof data === 'object' ? data : {};\n let result = new SendVerificationCode();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"phone\"] = this.phone;\n return data; \n }\n}\n\nexport interface ISendVerificationCode {\n captcha?: string | undefined;\n /** Телефон аккредитуемого */\n phone: string;\n}\n\nexport class SendVerificationCodeForUpdatePhone implements ISendVerificationCodeForUpdatePhone {\n captcha?: string | undefined;\n /** Телефон аккредитуемого */\n phone!: string;\n /** Пароль */\n password!: string;\n\n constructor(data?: ISendVerificationCodeForUpdatePhone) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.phone = _data[\"phone\"];\n this.password = _data[\"password\"];\n }\n }\n\n static fromJS(data: any): SendVerificationCodeForUpdatePhone {\n data = typeof data === 'object' ? data : {};\n let result = new SendVerificationCodeForUpdatePhone();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"phone\"] = this.phone;\n data[\"password\"] = this.password;\n return data; \n }\n}\n\nexport interface ISendVerificationCodeForUpdatePhone {\n captcha?: string | undefined;\n /** Телефон аккредитуемого */\n phone: string;\n /** Пароль */\n password: string;\n}\n\nexport class SetApplicantOtherIdentity implements ISetApplicantOtherIdentity {\n /** данные документа */\n data!: string;\n type!: IdentityDocType;\n\n constructor(data?: ISetApplicantOtherIdentity) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.data = _data[\"data\"];\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): SetApplicantOtherIdentity {\n data = typeof data === 'object' ? data : {};\n let result = new SetApplicantOtherIdentity();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"data\"] = this.data;\n data[\"type\"] = this.type;\n return data; \n }\n}\n\nexport interface ISetApplicantOtherIdentity {\n /** данные документа */\n data: string;\n type: IdentityDocType;\n}\n\nexport class SetApplicantPassport implements ISetApplicantPassport {\n /** серия/номер */\n serialNumber!: string;\n /** кем выдан */\n issuedBy!: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue!: moment.Moment;\n /** адрес регистрации */\n registrationAddress!: string;\n\n constructor(data?: ISetApplicantPassport) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.serialNumber = _data[\"serialNumber\"];\n this.issuedBy = _data[\"issuedBy\"];\n this.dateOfIssue = _data[\"dateOfIssue\"] ? moment(_data[\"dateOfIssue\"].toString()) : undefined;\n this.registrationAddress = _data[\"registrationAddress\"];\n }\n }\n\n static fromJS(data: any): SetApplicantPassport {\n data = typeof data === 'object' ? data : {};\n let result = new SetApplicantPassport();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"serialNumber\"] = this.serialNumber;\n data[\"issuedBy\"] = this.issuedBy;\n data[\"dateOfIssue\"] = this.dateOfIssue ? this.dateOfIssue.toISOString() : undefined;\n data[\"registrationAddress\"] = this.registrationAddress;\n return data; \n }\n}\n\nexport interface ISetApplicantPassport {\n /** серия/номер */\n serialNumber: string;\n /** кем выдан */\n issuedBy: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue: moment.Moment;\n /** адрес регистрации */\n registrationAddress: string;\n}\n\nexport enum Sex {\n Male = \"male\",\n Female = \"female\",\n}\n\nexport class SourceFile implements ISourceFile {\n readonly fileId!: string;\n readonly fileExtension!: string;\n readonly fileSize!: number;\n readonly fileUrl!: string;\n fileName?: string | undefined;\n\n constructor(data?: ISourceFile) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).fileId = _data[\"fileId\"];\n (this).fileExtension = _data[\"fileExtension\"];\n (this).fileSize = _data[\"fileSize\"];\n (this).fileUrl = _data[\"fileUrl\"];\n this.fileName = _data[\"fileName\"];\n }\n }\n\n static fromJS(data: any): SourceFile {\n data = typeof data === 'object' ? data : {};\n let result = new SourceFile();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"fileId\"] = this.fileId;\n data[\"fileExtension\"] = this.fileExtension;\n data[\"fileSize\"] = this.fileSize;\n data[\"fileUrl\"] = this.fileUrl;\n data[\"fileName\"] = this.fileName;\n return data; \n }\n}\n\nexport interface ISourceFile {\n fileId: string;\n fileExtension: string;\n fileSize: number;\n fileUrl: string;\n fileName?: string | undefined;\n}\n\nexport class SubmitExamApplication implements ISubmitExamApplication {\n captcha?: string | undefined;\n signCode!: string;\n /** Профессиональная переподготовка, возможна только в случае ординатуры */\n professionalRetraining!: boolean;\n /** Запрос на допуск к аккредитации начиная с n-го этапа, в случае экзамена на специалитет null */\n startStage!: number;\n\n constructor(data?: ISubmitExamApplication) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.captcha = _data[\"captcha\"];\n this.signCode = _data[\"signCode\"];\n this.professionalRetraining = _data[\"professionalRetraining\"];\n this.startStage = _data[\"startStage\"];\n }\n }\n\n static fromJS(data: any): SubmitExamApplication {\n data = typeof data === 'object' ? data : {};\n let result = new SubmitExamApplication();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"captcha\"] = this.captcha;\n data[\"signCode\"] = this.signCode;\n data[\"professionalRetraining\"] = this.professionalRetraining;\n data[\"startStage\"] = this.startStage;\n return data; \n }\n}\n\nexport interface ISubmitExamApplication {\n captcha?: string | undefined;\n signCode: string;\n /** Профессиональная переподготовка, возможна только в случае ординатуры */\n professionalRetraining: boolean;\n /** Запрос на допуск к аккредитации начиная с n-го этапа, в случае экзамена на специалитет null */\n startStage: number;\n}\n\nexport class UpdateApplicantDiploma implements IUpdateApplicantDiploma {\n type!: DiplomaType;\n /** серия/номер */\n serialNumber!: string;\n /** кем выдан */\n issuedBy!: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue!: moment.Moment;\n\n constructor(data?: IUpdateApplicantDiploma) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.type = _data[\"type\"];\n this.serialNumber = _data[\"serialNumber\"];\n this.issuedBy = _data[\"issuedBy\"];\n this.dateOfIssue = _data[\"dateOfIssue\"] ? moment(_data[\"dateOfIssue\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): UpdateApplicantDiploma {\n data = typeof data === 'object' ? data : {};\n let result = new UpdateApplicantDiploma();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n data[\"serialNumber\"] = this.serialNumber;\n data[\"issuedBy\"] = this.issuedBy;\n data[\"dateOfIssue\"] = this.dateOfIssue ? this.dateOfIssue.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IUpdateApplicantDiploma {\n type: DiplomaType;\n /** серия/номер */\n serialNumber: string;\n /** кем выдан */\n issuedBy: string;\n /** Дата выдачи, время должно быть 00ч. 00м. 00с. по UTC */\n dateOfIssue: moment.Moment;\n}\n\nexport class UpdatePhone implements IUpdatePhone {\n /** Номер телефона */\n phone!: string;\n /** Код верификации */\n verificationCode!: string;\n\n constructor(data?: IUpdatePhone) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.phone = _data[\"phone\"];\n this.verificationCode = _data[\"verificationCode\"];\n }\n }\n\n static fromJS(data: any): UpdatePhone {\n data = typeof data === 'object' ? data : {};\n let result = new UpdatePhone();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"phone\"] = this.phone;\n data[\"verificationCode\"] = this.verificationCode;\n return data; \n }\n}\n\nexport interface IUpdatePhone {\n /** Номер телефона */\n phone: string;\n /** Код верификации */\n verificationCode: string;\n}\n\nexport class UpdateProfile implements IUpdateProfile {\n /** Имя */\n firstName!: string;\n /** Фамилия */\n lastName!: string;\n /** Отчество */\n middleName!: string;\n /** Адрес электронной почты */\n email!: string;\n /** Дата рождения, время должно быть 00ч. 00м. 00с. по UTC */\n birthDate!: moment.Moment;\n sex!: Sex;\n /** СНИЛС */\n snils!: string;\n /** Регион */\n regionId!: number;\n /** Id специальности */\n qualificationId!: string;\n citizenshipType!: CitizenshipType;\n /** Страна гражданства */\n citizenshipCountryId?: number | undefined;\n militaryRelationship!: MilitaryRelationshipType;\n\n constructor(data?: IUpdateProfile) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.firstName = _data[\"firstName\"];\n this.lastName = _data[\"lastName\"];\n this.middleName = _data[\"middleName\"];\n this.email = _data[\"email\"];\n this.birthDate = _data[\"birthDate\"] ? moment(_data[\"birthDate\"].toString()) : undefined;\n this.sex = _data[\"sex\"];\n this.snils = _data[\"snils\"];\n this.regionId = _data[\"regionId\"];\n this.qualificationId = _data[\"qualificationId\"];\n this.citizenshipType = _data[\"citizenshipType\"];\n this.citizenshipCountryId = _data[\"citizenshipCountryId\"];\n this.militaryRelationship = _data[\"militaryRelationship\"];\n }\n }\n\n static fromJS(data: any): UpdateProfile {\n data = typeof data === 'object' ? data : {};\n let result = new UpdateProfile();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"firstName\"] = this.firstName;\n data[\"lastName\"] = this.lastName;\n data[\"middleName\"] = this.middleName;\n data[\"email\"] = this.email;\n data[\"birthDate\"] = this.birthDate ? this.birthDate.toISOString() : undefined;\n data[\"sex\"] = this.sex;\n data[\"snils\"] = this.snils;\n data[\"regionId\"] = this.regionId;\n data[\"qualificationId\"] = this.qualificationId;\n data[\"citizenshipType\"] = this.citizenshipType;\n data[\"citizenshipCountryId\"] = this.citizenshipCountryId;\n data[\"militaryRelationship\"] = this.militaryRelationship;\n return data; \n }\n}\n\nexport interface IUpdateProfile {\n /** Имя */\n firstName: string;\n /** Фамилия */\n lastName: string;\n /** Отчество */\n middleName: string;\n /** Адрес электронной почты */\n email: string;\n /** Дата рождения, время должно быть 00ч. 00м. 00с. по UTC */\n birthDate: moment.Moment;\n sex: Sex;\n /** СНИЛС */\n snils: string;\n /** Регион */\n regionId: number;\n /** Id специальности */\n qualificationId: string;\n citizenshipType: CitizenshipType;\n /** Страна гражданства */\n citizenshipCountryId?: number | undefined;\n militaryRelationship: MilitaryRelationshipType;\n}\n\nexport class VerificationCodeSendingStatus implements IVerificationCodeSendingStatus {\n /** Были ли отправлен новый код или надо подождать */\n wasSent?: boolean;\n /** Время ожидания отправки нового кода */\n waitingSeconds?: number;\n\n constructor(data?: IVerificationCodeSendingStatus) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.wasSent = _data[\"wasSent\"];\n this.waitingSeconds = _data[\"waitingSeconds\"];\n }\n }\n\n static fromJS(data: any): VerificationCodeSendingStatus {\n data = typeof data === 'object' ? data : {};\n let result = new VerificationCodeSendingStatus();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"wasSent\"] = this.wasSent;\n data[\"waitingSeconds\"] = this.waitingSeconds;\n return data; \n }\n}\n\nexport interface IVerificationCodeSendingStatus {\n /** Были ли отправлен новый код или надо подождать */\n wasSent?: boolean;\n /** Время ожидания отправки нового кода */\n waitingSeconds?: number;\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n if (result !== null && result !== undefined)\n throw result;\n else\n throw new ApiException(message, status, response, headers, null);\n}\n\nexport class ApiClient extends ApiClientBase {\n private http2: { fetch(url: RequestInfo, init?: RequestInit): Promise };\n private baseUrl2: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\n super(baseUrl, http);\n this.http2 = http ? http : window;\n this.baseUrl2 = baseUrl ? baseUrl : \"\";\n }\n\n uploadExamApplicationDocumentFix(examApplicationId: string, templateId: string, file: File): Promise {\n let url_ = this.baseUrl2 + \"/api/v1/exam-applications/{examApplicationId}/documents/{templateId}\";\n if (examApplicationId === undefined || examApplicationId === null)\n throw new Error(\"The parameter 'examApplicationId' must be defined.\");\n url_ = url_.replace(\"{examApplicationId}\", encodeURIComponent(\"\" + examApplicationId));\n if (templateId === undefined || templateId === null)\n throw new Error(\"The parameter 'templateId' must be defined.\");\n url_ = url_.replace(\"{templateId}\", encodeURIComponent(\"\" + templateId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (file === null || file === undefined)\n throw new Error(\"The parameter ‘file’ cannot be null.\");\n else\n content_.append(\"file\", file, file.name ? file.name : \"file\");\n\n let options_ = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http2.fetch(url_, options_).then((_response: Response) => {\n return this.processUploadExamApplicationDocument(_response);\n });\n }\n}","import * as React from 'react';\nimport { WarningModal } from 'components';\nimport cn from 'classnames';\n\nimport WebCamIcon from 'components/assets/svg/exam/webcam_icon.svg';\nimport ScreenIcon from 'components/assets/svg/exam/screen_icon.svg';\nimport MicrophoneIcon from 'components/assets/svg/microphone.svg';\n\nimport styles from './OnlineModal.module.scss';\nimport VideoTest from './VideoTest';\nimport AudioTest from './AudioTest';\nimport ScreenTest from './ScreenTest';\n\nconst OnlineModal: React.FC = (\n {\n show, onClose, title, onSuccess,\n },\n) => {\n const [activeTab, setActiveTab] = React.useState(TabKey.WebCam);\n\n const isActive = React.useCallback((tab: TabKey) => {\n const tabsOrder = [TabKey.WebCam, TabKey.Micro, TabKey.Screen];\n const activeTabIndex = tabsOrder.indexOf(activeTab);\n const currentTabIndex = tabsOrder.indexOf(tab);\n\n return currentTabIndex <= activeTabIndex;\n }, [activeTab]);\n\n const handleClose = React.useCallback(() => {\n setActiveTab(TabKey.WebCam);\n onClose();\n }, []);\n\n return (\n \n
\n
\n \n \"WebCamIcon\"Веб-камера\n \n \n \"ExpertChatIcon\"Микрофон\n \n \n \"ScreenIcon\"Рабочий стол\n \n
\n\n
\n
\n {activeTab === TabKey.WebCam && (\n setActiveTab(TabKey.Micro)}\n />\n )}\n {activeTab === TabKey.Micro && (\n setActiveTab(TabKey.Screen)}\n />\n )}\n {activeTab === TabKey.Screen && (\n \n )}\n
\n
\n
\n \n );\n};\n\nexport default OnlineModal;\n\ninterface IProps {\n show: boolean;\n title: string;\n onClose: () => void;\n onSuccess: () => void;\n}\n\nenum TabKey {\n WebCam = 'webCam',\n Micro = 'micro',\n Screen = 'screen'\n}\n","import React from 'react';\nimport {\n Card,\n ExamStatus,\n ExamTable,\n MappedExamApplicationStatuses,\n} from 'components';\nimport { connect } from 'react-redux';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { ExamApplicationStatus, IApplicantExam, MyExamStatus } from '../../api/ApiClient';\nimport { Color, ColorStatus } from '_helpers';\nimport { useEffectProcessing, useLocalErrorHandler, usePushFrom } from 'hooks';\n\nconst ApplicantExamsContainer = (\n {\n getMyExamApplications, examsList, apiError, setErrorHandler, clearMyExamApplicationList,\n }: Props,\n) => {\n const [handleChooseExam] = usePushFrom('exam-application');\n\n useLocalErrorHandler(setErrorHandler);\n\n const processing = useEffectProcessing(\n async () => {\n await getMyExamApplications({ myExamStatus: MyExamStatus.All, sortField: 'date', sortOrder: false });\n },\n [],\n () => {\n clearMyExamApplicationList();\n },\n );\n\n const HEADER = [\n 'ПЕРИОД ПРОВЕДЕНИЯ',\n 'Специальность',\n 'СТАТУС',\n ];\n\n const getStatus = (exam: IApplicantExam) => (\n statuses[exam.examApplicationStatus || exam.examStatus]\n || new ColorStatus(Color.Default, (exam.examApplicationStatus || exam.examStatus).toString())\n );\n\n const getExamData = (exam: IApplicantExam) => ({\n ...exam,\n status: getStatus(exam),\n id: exam.examApplicationId,\n name: exam.qualificationTitle,\n });\n\n const tableRows = examsList ? examsList.items.map(getExamData) : [];\n\n return (\n \n \n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n examsList: state.examApplications.myExamApplicationsList,\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n getMyExamApplications: dispatch.examApplications.getMyExamApplications,\n clearMyExamApplicationList: () => dispatch.examApplications.setMyExamApplicationList(null),\n setErrorHandler: dispatch.errors.setErrorHandler,\n});\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n\nexport default connect(mapState, mapDispatch)(ApplicantExamsContainer);\n\nconst statuses = {\n ...MappedExamApplicationStatuses,\n [ExamStatus.IsApplying as string]: new ColorStatus(Color.Success, 'Идет запись'),\n [ExamStatus.ApplyingFinished as string]: new ColorStatus(Color.Orange, 'Запись окончена'),\n [ExamApplicationStatus.Passed as string]: new ColorStatus(Color.Default, 'Обработка'),\n [ExamApplicationStatus.NotPassed as string]: new ColorStatus(Color.Default, 'Обработка'),\n};\n","import React from 'react';\nimport {\n Card,\n ExamTable,\n MappedExamApplicationStatuses,\n} from 'components';\nimport {\n ExamStatus,\n IApplicantExam,\n ExamReviewStatus,\n} from '../../api/ApiClient';\nimport { connect } from 'react-redux';\nimport { push } from 'connected-react-router';\nimport { Color, ColorStatus } from '_helpers';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { useEffectProcessing, useLocalErrorHandler, usePushFrom } from 'hooks';\n\nconst ExamApplicationsContainer = ({\n fetchExamApplications, setErrorHandler, examApplicationsList, apiError, onPush, clearExamApplicationList,\n}: Props) => {\n useLocalErrorHandler(setErrorHandler);\n\n const [handleChooseExam] = usePushFrom('exam-application');\n\n const processing = useEffectProcessing(\n async () => {\n await fetchExamApplications({ examReviewStatus: ExamReviewStatus.All });\n },\n [],\n () => clearExamApplicationList(),\n );\n\n\n const checkApplicantStatus = (app: IApplicantExam) => statuses[app.examApplicationStatus || ''];\n\n const getFormatTableRows = (examApplicationsListItem: IApplicantExam) => ({\n ...examApplicationsListItem,\n id: examApplicationsListItem.examApplicationId,\n name: examApplicationsListItem.qualificationTitle,\n status: checkApplicantStatus(examApplicationsListItem),\n date: examApplicationsListItem.applicationSubmitDate,\n });\n\n const examApplications = (examApplicationsList && examApplicationsList.items) || [];\n const tableRows = examApplications.map(getFormatTableRows);\n\n return (\n \n onPush('/exam-timetables')}\n />\n \n );\n};\n\nconst HEADER = [\n 'ДАТА И ВРЕМЯ ПОДАЧИ ЗАЯВКИ',\n 'Специальность',\n 'Статус',\n];\n\nconst statuses = {\n ...MappedExamApplicationStatuses,\n [ExamStatus.IsApplying as string]: new ColorStatus(Color.Success, 'Идет запись'),\n [ExamStatus.ApplyingFinished as string]: new ColorStatus(Color.Orange, 'Запись окончена'),\n};\n\n\nconst mapState = (state: IRootState) => ({\n examApplicationsList: state.examApplications.examApplicationsList,\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n fetchExamApplications: dispatch.examApplications.fetchExamApplicationsAsync,\n clearExamApplicationList: () => dispatch.examApplications.setExamApplicationList(null),\n setErrorHandler: dispatch.errors.setErrorHandler,\n onPush: (key: string) => dispatch(push(key)),\n});\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n\nexport default connect(mapState, mapDispatch)(ExamApplicationsContainer);\n","import React from 'react';\nimport { Button } from 'react-bootstrap';\nimport { Card, WarningModal } from 'components';\nimport styles from './SystemSettings.module.scss';\nimport { OnlineModal } from '../OnlineModal';\n\nconst SystemSettings: React.FC = ({ title, onGoBack }) => {\n const link = React.useRef(null);\n const [showBrowserModal, setShowBrowserModal] = React.useState(false);\n const [showVersionModal, setShowVersionModal] = React.useState(false);\n const [showSettingsModal, setShowSettingsModal] = React.useState(false);\n\n const getChromeVersion = () => {\n const raw = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n\n return raw ? parseInt(raw[2], 10) : false;\n };\n\n const onStartCheckClick = () => {\n const nWindow: any = window;\n const isChrome = !!nWindow.chrome && (!!nWindow.chrome.webstore || !!nWindow.chrome.runtime) && !nWindow.yandex && !nWindow.opr;\n\n if (isChrome) {\n const latestVersion = getChromeVersion() > 80;\n\n if (!latestVersion) {\n setShowVersionModal(true);\n } else {\n setShowSettingsModal(true);\n }\n } else {\n setShowBrowserModal(true);\n }\n };\n\n const handleCloseSettingModal = React.useCallback(() => {\n setShowSettingsModal(false);\n if (JSON.parse(localStorage.getItem('readyForOnlineExam') || 'false')) {\n onGoBack();\n }\n }, []);\n\n const handleSuccess = React.useCallback(() => {\n localStorage.setItem('readyForOnlineExam', 'true');\n }, []);\n\n const onModalSubmit = () => {\n if (link && link.current) {\n link.current.click();\n }\n };\n\n return (\n \n \n
\n Для чего нужна проверка системы?\n \n Предварительная проверка системы требуется для того, чтобы убедиться в том,\n что ваш компьютер полностью соответствует всем техническим требованиям, в\n соответствии с Регламентом проведения независимой оценки специальности в дистанционном формате.\n Если вдруг что-то окажется не так, то у вас будет достаточно времени, чтобы успеть решить проблему до аккредитации.\n \n\n Что потребуется для прохождения проверки системы?\n \n Для прохождения проверки потребуются ваш компьютер, на котором вы планируете проходить\n сдачу квалификационного аккредитации в дистанционном формате с подключенными веб-камерой и\n микрофоном. Компьютер, в свою очередь, должен быть подключен к сети интернет. Пожалуйста,\n обратите внимание на то, что необходимо использовать именно тот компьютер, который будет\n использоваться для сдачи аккредитации. В противном случае, данная проверка не будет иметь никакого смысла.\n \n\n Как проходит процесс проверки системы?\n \n В процессе предварительной проверки мы попросим вас предоставить временный доступ к вашей\n веб-камере, микрофону, а также рабочему столу. Данная проверка носит 100% автоматический характер.\n Поэтому, кроме вас в ней никто участвовать не будет. В среднем, процесс проверки занимает не более 5 минут.\n \n
\n\n \n Пройти проверку системы сейчас\n \n \n\n setShowBrowserModal(false)}\n onAccess={() => {\n setShowBrowserModal(false);\n onModalSubmit();\n }}\n accessBtnTittle=\"Скачать браузер Google Chrome\"\n >\n \n К сожалению, ваш браузер не подходит для сдачи онлайн-аккредитации.
\n В соответствии с техническим регламентом, вам необходимо использовать браузер Google Chrome.\n
\n \n Вы можете скачать последнюю версию браузера Google Chrome по этой кнопке:\n \n \n\n setShowVersionModal(false)}\n onAccess={() => {\n setShowVersionModal(false);\n onModalSubmit();\n }}\n accessBtnTittle=\"Скачать последнюю версию Google Chrome\"\n >\n \n К сожалению, версия вашего браузера Google Chrome не подходит для сдачи онлайн-аккредитации.
\n В соответствии с техническим регламентом, вам необходимо использовать последнюю доступную версию Google Chrome.\n
\n \n Обновите ваш браузер, либо скачайте последнюю версию браузера Google Chrome по этой кнопке:\n \n \n\n \n chrome browser\n \n );\n};\n\nexport default SystemSettings;\n\ninterface OwnProps {\n title: string;\n onGoBack: () => void;\n}\n\ntype IProps = OwnProps;\n","import React from 'react';\nimport {\n Card,\n Loader,\n AlertText,\n StatementTab,\n SmsSignModal,\n ExamApplicationStatus,\n} from 'components';\nimport { IApplicantPassport, IApplicantOtherIdentity, ICountry, IApplicantDiploma } from 'components/models';\nimport { IdentityDocType } from 'components/enums';\nimport { ISubmitExamApplication, VerificationCodeSendingStatus } from '../../api/ApiClient';\nimport { IUpdateProfile, IExamApplicationDetails } from 'components/models';\nimport { IdentificationTab } from './IdentificationTab';\nimport { DocumentsTab, IDocumentsTabProps } from './DocumentsTab';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport identificationIcon from 'components/assets/svg/identification_icon.svg';\nimport docsIcon from 'components/assets/svg/documents_icon.svg';\nimport sendIcon from './icons/send_icon.svg';\nimport styles from './RegistrationForExam.module.scss';\nimport cn from 'classnames';\n\n\nconst RegistrationForExam = ({\n apiError,\n processing,\n documentsProps,\n goBack,\n sendingProps,\n setApplicantOtherIdentity,\n setApplicantPassport,\n onUpdateProfile,\n examApplication,\n countries,\n updateApplicantDiploma,\n}: IProps) => {\n const { sendCodeToSignApplication, createExamApplication, waitingSeconds } = sendingProps;\n\n const profile = React.useMemo(() => (examApplication ? examApplication.applicant : null), [examApplication]);\n const applicantIdentityDoc = React.useMemo(() => (examApplication ? examApplication.applicantIdentityDoc : null), [examApplication]);\n const applicantDiploma = React.useMemo(() => (examApplication ? examApplication.applicantDiploma : null), [examApplication]);\n const correctionsRequired = React.useMemo(() => (examApplication ? examApplication.status === ExamApplicationStatus.CorrectionsRequired : false), [examApplication]);\n const reviewComment = React.useMemo(() => (examApplication ? examApplication.reviewComment : undefined), [examApplication]);\n const exam = React.useMemo(() => (examApplication ? examApplication.exam : null), [examApplication]);\n const title = exam ? `: «${exam.qualificationTitle}»` : '';\n\n const [showModal, setShowModal] = React.useState(false);\n \n const [professionalRetraining, setProfessionalRetraining] = React.useState(examApplication ? examApplication.professionalRetraining : undefined);\n const [startStage, setStartStage] = React.useState(examApplication ? examApplication.startStage : undefined);\n \n const [activeTab, setActiveTab] = React.useState(correctionsRequired ? TabKey.Documents : TabKey.Identification);\n //const [activeTab, setActiveTab] = React.useState(TabKey.Sending);\n \n const onSubmitSmsModal = async (signCode: string, captcha: string) => {\n const res = await sendCodeToSignApplication(captcha);\n \n if (res && startStage && professionalRetraining !== undefined) {\n const created = await createExamApplication({\n signCode,\n captcha,\n startStage,\n professionalRetraining,\n });\n\n if (created) {\n goBack();\n }\n }\n };\n\n const handleOpenSignApplication = () => {\n setShowModal(true);\n if (!waitingSeconds) {\n sendCodeToSignApplication('');\n }\n };\n\n return (\n \n
\n
\n \"identificationIcon\"\n Информация по документам\n
\n
\n \"docsIcon\"\n Сканы документов\n
\n
\n \"sendIcon\"\n Заявление на аккредитацию\n
\n
\n {reviewComment && correctionsRequired\n ? \n : null\n }\n {activeTab === TabKey.Identification ? (\n
\n {applicantIdentityDoc && profile ? (\n <>\n setActiveTab(TabKey.Documents)}\n onUpdateProfile={onUpdateProfile}\n />\n \n ) : }\n
\n ) : null}\n\n {activeTab === TabKey.Documents ? (\n setActiveTab(TabKey.Identification)}\n goToSendingTab={() => setActiveTab(TabKey.Sending)}\n documentTemplateGroups={documentsProps.documentTemplateGroups || []}\n correctionsRequired={correctionsRequired}\n apiError={apiError}\n />\n ) : null}\n\n {activeTab === TabKey.Sending ? (\n
\n {examApplication ? (\n setActiveTab(TabKey.Documents)}\n onSubmit={handleOpenSignApplication}\n contentClassName={styles.content}\n professionalRetraining={professionalRetraining}\n setProfessionalRetraining={setProfessionalRetraining}\n startStage={startStage}\n setStartStage={setStartStage}\n correctionsRequired={correctionsRequired}\n />\n ) : }\n
\n ) : null}\n\n {profile ? (\n setShowModal(false)}\n onSendPasswordAgain={sendCodeToSignApplication}\n onSubmit={onSubmitSmsModal}\n phone={profile.phone}\n waitingSeconds={waitingSeconds}\n processing={!!processing}\n apiError={apiError}\n />\n ) : null}\n \n );\n};\n\nexport default RegistrationForExam;\n\ninterface IProps {\n examApplication: IExamApplicationDetails | null;\n documentsProps: IDocumentsProps;\n countries: ICountry[] | null;\n sendingProps: IStatementTabSendingProps;\n apiError: IApiError | null;\n processing?: boolean;\n setApplicantPassport: (data: IApplicantPassport) => Promise;\n updateApplicantDiploma: (data: IApplicantDiploma) => Promise;\n setApplicantOtherIdentity: (data: IApplicantOtherIdentity, type: IdentityDocType) => Promise;\n onUpdateProfile: (data: IUpdateProfile) => Promise;\n goBack: () => void;\n}\n\ninterface IStatementTabSendingProps {\n waitingSeconds?: number | null;\n createExamApplication: (data?: ISubmitExamApplication) => Promise;\n sendCodeToSignApplication: (captcha: string | undefined) => Promise;\n}\n\ninterface IDocumentsProps {\n documentTemplateGroups: IDocumentsTabProps['documentTemplateGroups'];\n uploadedDocuments: IDocumentsTabProps['uploadedDocuments'];\n deleteDocument: IDocumentsTabProps['deleteDocument'];\n uploadDocument: IDocumentsTabProps['uploadDocument'];\n deleteDocumentSource: IDocumentsTabProps['deleteDocumentSource'];\n}\n\nenum TabKey {\n Identification = 'identification',\n Documents = 'documents',\n Sending = 'sending',\n}\n","import React from 'react';\nimport {Card, DatePicker, ExtendedSelect, InputText, LoaderBtn, SexRadios, Textarea,} from 'components';\nimport {\n IApplicant,\n IApplicantIdentityDoc,\n IApplicantOtherIdentity,\n IApplicantPassport,\n IUpdateProfile,\n ICountry,\n IApplicantDiploma,\n} from 'components/models';\nimport {\n Sex,\n IdentityDocType,\n IdentityDocTypeTitles,\n CitizenshipType,\n CitizenshipTypeTitles,\n MilitaryRelationshipType,\n MilitaryRelationshipTypeTitles,\n DiplomaType,\n DiplomaTypeTitles,\n} from 'components/enums';\nimport {Button, Col, Form} from 'react-bootstrap';\nimport {IApiError} from '_helpers/ApiConnector/types';\nimport {RegExpConst, RegExpErrorsText} from '_helpers';\nimport identificationStyles from './IdentificationStyles.module.scss';\nimport profileStyles from './ProfileStyles.module.scss';\nimport moment from 'moment';\nimport cn from 'classnames';\nimport _ from 'lodash';\n\nconst IdentificationTab = ({\n identification,\n diploma,\n countries,\n profile,\n apiError,\n setApplicantPassport,\n setApplicantOtherIdentity,\n updateApplicantDiploma,\n contentClassName,\n onUpdateProfile,\n goBack,\n goNext,\n }: IProps) => {\n const passportDateOfIssueDifference = -30;\n const initIdentificationErrors: IInitIdentificationErrors = {\n identityDocType: '',\n serialNumber: '',\n issuedBy: '',\n dateOfIssue: '',\n registrationAddress: '',\n title: '',\n data: '',\n };\n\n const initProfileErrors: IInitProfileErrors = {\n firstName: '',\n lastName: '',\n middleName: '',\n phone: '',\n sex: '',\n email: '',\n birthDate: '',\n citizenshipType: '',\n citizenshipCountryId: '',\n citizenshipCountryName: '',\n militaryRelationship: '',\n snils: '',\n };\n\n const initDiplomaErrors: IApplicantDiplomaErrors = {\n type: '',\n serialNumber: '',\n issuedBy: '',\n dateOfIssue: '',\n }\n\n const initStatePassport: IInitApplicantPassport = {\n serialNumber: '',\n issuedBy: '',\n dateOfIssue: undefined,\n registrationAddress: '',\n };\n\n const initStateIdentification: IApplicantOtherIdentity = {\n data: '',\n };\n\n const initStateProfile: IInitProfile = {\n lastName: '',\n firstName: '',\n middleName: '',\n email: '',\n birthDate: undefined,\n sex: Sex.Male,\n citizenshipType: undefined,\n citizenshipCountryId: undefined,\n citizenshipCountryName: undefined,\n militaryRelationship: undefined,\n snils: '',\n };\n\n const initStateDiploma: IInitApplicantDiploma = {\n type: undefined,\n serialNumber: '',\n issuedBy: '',\n dateOfIssue: undefined,\n }\n\n // profile\n const [stateProfile, setStateProfile] = React.useState(initStateProfile);\n const [validProfileErrors, setValidProfileErrors] = React.useState(initProfileErrors);\n\n\n // identification\n const [identityDocType, setIdentityDocType] = React.useState(IdentityDocType.Passport);\n const [validIdentificationErrors, setIdentificationValidErrors] = React.useState(initIdentificationErrors);\n const [processing, setProcessing] = React.useState(false);\n\n const [statePassport, setStatePassport] = React.useState(initStatePassport);\n const [stateIdentification, setStateIdentification] = React.useState(initStateIdentification);\n\n // diploma\n const [stateDiploma, setStateDiploma] = React.useState(initStateDiploma);\n const [validDiplomaErrors, setValidDiplomaErrors] = React.useState(initDiplomaErrors);\n\n const docTypeOptions = Object.keys(IdentityDocTypeTitles).map(k => ({\n value: k,\n label: IdentityDocTypeTitles[k as keyof typeof IdentityDocTypeTitles],\n }));\n\n const citizenshipTypeOptions = Object.keys(CitizenshipTypeTitles).map(k => ({\n value: k,\n label: CitizenshipTypeTitles[k as keyof typeof CitizenshipTypeTitles],\n }));\n\n const militaryRelationshipTypeOptions = Object.keys(MilitaryRelationshipTypeTitles).map(k => ({\n value: k,\n label: MilitaryRelationshipTypeTitles[k as keyof typeof MilitaryRelationshipTypeTitles],\n }));\n\n const diplomaTypeOptions = Object.keys(DiplomaTypeTitles).map(k => ({\n value: k,\n label: DiplomaTypeTitles[k as keyof typeof DiplomaTypeTitles],\n }));\n\n React.useEffect(() => {\n setStateProfile({...profile, middleName: profile.middleName || ''});\n }, [profile]);\n\n React.useEffect(() => {\n if (identification && identification.passport) {\n setStatePassport(identification.passport);\n setStateIdentification(initStateIdentification);\n setIdentityDocType(IdentityDocType.Passport);\n }\n\n if (identification && identification.otherIdentity) {\n setStateIdentification(identification.otherIdentity);\n setStatePassport(initStatePassport);\n setIdentityDocType(identification.identityDocType);\n }\n }, [identification]);\n\n React.useEffect(() => {\n diploma && setStateDiploma({...diploma});\n }, [diploma]);\n\n React.useEffect(() => {\n if (apiError && apiError.failures) {\n const errors = apiError.failures;\n\n for (const key in errors) {\n if (Object.prototype.hasOwnProperty.call(errors, key) && errors[key]) {\n const error = errors[key].join(',');\n const newIdentificationErrors = validIdentificationErrors;\n const newProfileErrors = validProfileErrors;\n\n newIdentificationErrors[key] = error;\n newProfileErrors[key] = error;\n\n setIdentificationValidErrors({ ...newIdentificationErrors });\n setValidProfileErrors({ ...newProfileErrors });\n }\n }\n }\n }, [apiError]);\n\n const checkFieldsErrors = (submitData: IInitProfile) => _.mapValues(submitData, (val, key) => {\n if (val === '') return 'Обязательное поле для заполнения';\n\n // profile\n const test = (field: string, regexp: RegExp) => (!regexp.test(field));\n\n if (val === '' || val === undefined) return 'Обязательное поле для заполнения';\n if ((key === 'birthDate' || key === 'citizenshipType' || key === 'militaryRelationship') && !val) {\n return 'Обязательное поле для заполнения';\n }\n if (stateProfile.citizenshipType !== CitizenshipType.Russian && stateProfile.citizenshipType !== CitizenshipType.WithoutCitizenship && stateProfile.citizenshipType != null && key === 'citizenshipCountryId' && !val) {\n return 'Обязательное поле для заполнения';\n }\n \n if (typeof val !== 'string') return '';\n \n if (key === 'firstName' || key === 'lastName' || key === 'middleName') {\n const error = test(val, RegExpConst.NAME);\n\n if (error) {\n return RegExpErrorsText.NAME;\n }\n\n return '';\n }\n if (key === 'email') {\n const error = test(val, RegExpConst.EMAIL);\n\n if (error) {\n return RegExpErrorsText.EMAIL;\n }\n\n return '';\n }\n if (key === 'snils') {\n const error = test(val, RegExpConst.SNILS);\n\n if (error) {\n return RegExpErrorsText.SNILS;\n }\n\n return '';\n }\n return '';\n });\n\n const checkIdentificationErrors = (submitData: IInitApplicantPassport | IApplicantOtherIdentity) => _.mapValues(submitData, (val, key) => {\n if ((key === 'dateOfIssue' || key === 'type') && !val) return 'Обязательное поле для заполнения';\n if (val === '') return 'Обязательное поле для заполнения';\n return '';\n });\n\n const checkDiplomaErrors = (submitData: IInitApplicantDiploma) => _.mapValues(submitData, (val, key) => {\n if ((key === 'dateOfIssue' || key === 'type') && !val) return 'Обязательное поле для заполнения';\n if (val === '') return 'Обязательное поле для заполнения';\n return '';\n });\n\n const isValidFormData = (fieldsError: IInitIdentificationErrors | IInitProfileErrors): boolean => _.values(fieldsError).every(e => e.length === 0);\n\n const submit = async (e: React.FormEvent) => {\n e.preventDefault();\n let valid = {identification: false, profile: false, diploma: false};\n\n {\n const errors = checkFieldsErrors(stateProfile) as IInitProfileErrors;\n setValidProfileErrors(errors);\n valid.profile = !!(isValidFormData(errors) && stateProfile.birthDate);\n }\n \n if (identityDocType === IdentityDocType.Passport && statePassport) {\n const errors = checkIdentificationErrors(statePassport) as IInitIdentificationErrors;\n setIdentificationValidErrors(errors);\n valid.identification = !!(isValidFormData(errors) && statePassport.dateOfIssue);\n \n } else if (identityDocType !== IdentityDocType.Passport) {\n const errors = checkIdentificationErrors(stateIdentification) as IInitIdentificationErrors;\n setIdentificationValidErrors(errors);\n valid.identification = isValidFormData(errors);\n }\n \n {\n const errors = checkDiplomaErrors(stateDiploma) as IApplicantDiplomaErrors;\n const {dateOfIssue, type} = stateDiploma;\n setValidDiplomaErrors(errors);\n valid.diploma = !!(_.values(errors).every(e => e.length === 0) && dateOfIssue && type);\n }\n\n if (valid.identification && valid.profile && valid.diploma) {\n \n setProcessing(true);\n \n if (identityDocType === IdentityDocType.Passport && statePassport) {\n valid.identification = !!statePassport.dateOfIssue && await setApplicantPassport({...statePassport, dateOfIssue: statePassport.dateOfIssue});\n } else if (identityDocType !== IdentityDocType.Passport) {\n valid.identification = await setApplicantOtherIdentity(stateIdentification, identityDocType);\n }\n\n valid.diploma = valid.identification && !!(stateDiploma.dateOfIssue && stateDiploma.type) && \n await updateApplicantDiploma({...stateDiploma, dateOfIssue: stateDiploma.dateOfIssue, type: stateDiploma.type});\n\n valid.profile = valid.diploma && !!stateProfile.birthDate && await onUpdateProfile({\n ...profile, ...stateProfile, birthDate: stateProfile.birthDate,\n citizenshipType: stateProfile.citizenshipType || CitizenshipType.Russian,\n militaryRelationship: stateProfile.militaryRelationship || MilitaryRelationshipType.Reservist\n });\n \n setProcessing(false);\n\n valid.profile && goNext();\n }\n };\n\n return (\n \n
\n
\n {\n setStateProfile({ ...stateProfile, lastName: value });\n setValidProfileErrors({ ...validProfileErrors, lastName: '' });\n }}\n withDarkLabel\n />\n {\n setStateProfile({ ...stateProfile, firstName: value });\n setValidProfileErrors({ ...validProfileErrors, firstName: '' });\n }}\n withDarkLabel\n />\n {\n setStateProfile({...stateProfile, middleName: value});\n setValidProfileErrors({...validProfileErrors, middleName: ''});\n }}\n withDarkLabel\n />\n {\n setStateProfile({...stateProfile, sex});\n setValidProfileErrors({...validProfileErrors, sex: ''});\n }}\n >\n \n
\n
ДАТА РОЖДЕНИЯ
\n
\n setStateProfile({...stateProfile, birthDate: newMoment})}\n />\n
\n
\n
\n\n \n \n \n УДОСТОВЕРЕНИЕ ЛИЧНОСТИ\n \n \n \n {\n setIdentityDocType(e.value as IdentityDocType);\n setIdentificationValidErrors(initIdentificationErrors);\n }}\n />\n \n {validIdentificationErrors.identityDocType}\n \n \n \n\n {identityDocType === IdentityDocType.Passport && statePassport ? (\n <>\n {\n setStatePassport({...statePassport, serialNumber: value});\n setIdentificationValidErrors({...validIdentificationErrors, serialNumber: ''});\n }}\n labelTitle=\"СЕРИЯ/НОМЕР\"\n labelColSize={2}\n inputColSize={10}\n fieldFailures={validIdentificationErrors}\n labelClassNames={profileStyles.profile_data__title}\n inputClassNames={profileStyles.profile_data__value}\n withDarkLabel\n />\n \n \n \n КЕМ ВЫДАН\n \n \n \n {\n setStatePassport({ ...statePassport, issuedBy });\n setIdentificationValidErrors({ ...validIdentificationErrors, issuedBy: '' });\n }}\n />\n \n \n \n \n \n ДАТА ВЫДАЧИ\n \n \n \n {\n setStatePassport({ ...statePassport, dateOfIssue: momentDate });\n setIdentificationValidErrors({ ...validIdentificationErrors, dateOfIssue: '' });\n }}\n initialDate={statePassport.dateOfIssue}\n isInvalid={validIdentificationErrors.dateOfIssue}\n />\n \n \n \n \n \n АДРЕС РЕГИСТРАЦИИ\n \n \n \n {\n setStatePassport({ ...statePassport, registrationAddress });\n setIdentificationValidErrors({\n ...validIdentificationErrors,\n registrationAddress: '',\n });\n }}\n />\n \n \n \n ) : (\n <>\n \n \n \n ДАННЫЕ ДОКУМЕНТА\n \n \n\n \n {\n setStateIdentification({...stateIdentification, data});\n setIdentificationValidErrors({...validIdentificationErrors, data: ''});\n }}\n />\n \n\n \n \n )}\n\n \n \n \n ТИП ГРАЖДАНСТВА\n \n \n \n {\n setStateProfile({...stateProfile, citizenshipType: e.value as CitizenshipType});\n setValidProfileErrors({...validProfileErrors, citizenshipType: ''});\n }}\n />\n \n {validProfileErrors.citizenshipType}\n \n \n \n\n {(stateProfile.citizenshipType !== CitizenshipType.Russian && stateProfile.citizenshipType !== CitizenshipType.WithoutCitizenship && stateProfile.citizenshipType != null) && (\n \n \n \n ГРАЖДАНСТВО\n \n \n \n ({\n value: String(r.id),\n label: r.name,\n })) : []}\n onChange={(e) => {\n setStateProfile({...stateProfile, citizenshipCountryId: Number(e.value)});\n setValidProfileErrors({...validProfileErrors, citizenshipCountryId: ''});\n }}\n />\n \n {validProfileErrors.citizenshipCountryId}\n \n \n \n )}\n\n \n \n \n ВОИНСКАЯ СЛУЖБА\n \n \n \n {\n setStateProfile({\n ...stateProfile,\n militaryRelationship: e.value as MilitaryRelationshipType\n });\n setValidProfileErrors({...validProfileErrors, militaryRelationship: ''});\n }}\n />\n \n {validProfileErrors.militaryRelationship}\n \n \n \n\n\n\n \n \n \n ДОКУМЕНТ ОБ ОБРАЗОВАНИИ\n \n \n \n {\n setStateDiploma({\n ...stateDiploma,\n type: e.value as DiplomaType\n });\n setValidDiplomaErrors({...validDiplomaErrors, type: ''});\n }}\n />\n \n {validDiplomaErrors.type}\n \n \n \n\n {\n setStateDiploma({...stateDiploma, serialNumber: value});\n setValidDiplomaErrors({...validDiplomaErrors, serialNumber: ''});\n }}\n labelTitle=\"НОМЕР ДОКУМЕНТА\"\n labelColSize={2}\n inputColSize={10}\n fieldFailures={validDiplomaErrors}\n inputGroupClassNames=\"mb-4\"\n labelClassNames={profileStyles.profile_data__title}\n inputClassNames={profileStyles.profile_data__value}\n withDarkLabel\n />\n \n \n \n КЕМ ВЫДАН\n \n \n \n {\n setStateDiploma({ ...stateDiploma, issuedBy });\n setValidDiplomaErrors({ ...validDiplomaErrors, issuedBy: '' });\n }}\n />\n \n \n \n \n \n ДАТА ВЫДАЧИ\n \n \n \n {\n setStateDiploma({ ...stateDiploma, dateOfIssue: momentDate });\n setValidDiplomaErrors({ ...validDiplomaErrors, dateOfIssue: '' });\n }}\n initialDate={stateDiploma.dateOfIssue}\n isInvalid={validDiplomaErrors.dateOfIssue}\n />\n \n \n \n \n\n {\n setStateProfile({...stateProfile, snils: value});\n setValidProfileErrors({...validProfileErrors, snils: ''});\n }}\n withDarkLabel\n maxLength={11}\n />\n\n \n \n \n Следующий шаг\n \n \n \n \n \n \n );\n};\n\nexport default IdentificationTab;\n\ninterface IProps {\n identification: IApplicantIdentityDoc;\n diploma?: IApplicantDiploma | null;\n countries: ICountry[] | null;\n profile: IApplicant;\n apiError?: IApiError | null;\n contentClassName?: string;\n goNext: () => void;\n goBack: () => void;\n setApplicantPassport: (data: IApplicantPassport) => Promise;\n updateApplicantDiploma: (data: IApplicantDiploma) => Promise;\n setApplicantOtherIdentity: (data: IApplicantOtherIdentity, type: IdentityDocType) => Promise;\n onUpdateProfile: (data: IUpdateProfile) => Promise;\n}\n\ninterface IInitProfileErrors {\n firstName: string;\n lastName: string;\n middleName: string;\n sex: string;\n email: string;\n birthDate: string;\n citizenshipType: string;\n citizenshipCountryId: string;\n citizenshipCountryName: string;\n militaryRelationship: string;\n snils: string;\n\n [key: string]: string;\n}\n\ninterface IInitApplicantPassport extends Omit {\n dateOfIssue?: moment.Moment;\n}\n\ninterface IInitProfile {\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n birthDate: moment.Moment | undefined;\n sex: Sex;\n citizenshipType?: CitizenshipType;\n citizenshipCountryId?: number | undefined;\n citizenshipCountryName?: string | undefined;\n militaryRelationship?: MilitaryRelationshipType;\n snils: string;\n}\n\nexport interface IInitApplicantDiploma {\n type: DiplomaType | undefined;\n serialNumber: string;\n issuedBy: string;\n dateOfIssue: moment.Moment | undefined;\n}\n\nexport interface IApplicantDiplomaErrors {\n type: string\n serialNumber: string;\n issuedBy: string;\n dateOfIssue: string;\n\n [key: string]: string;\n}\n\n\ninterface IInitIdentificationErrors {\n identityDocType: string;\n serialNumber: string;\n issuedBy: string;\n dateOfIssue: string;\n registrationAddress: string;\n title: string;\n data: string;\n\n [key: string]: string;\n}\n","import React from 'react';\nimport { IQualificationDocumentTemplateGroup, IExamApplicationDocument } from 'components/models';\nimport { DocumentUpLoader } from 'components';\nimport { IApiError } from '_helpers/ApiConnector/types';\n\nconst DocumentsTab = (props: IProps) => (\n \n);\n\nexport default DocumentsTab;\n\nexport interface IProps {\n documentTemplateGroups: IQualificationDocumentTemplateGroup[];\n uploadedDocuments: IExamApplicationDocument[];\n correctionsRequired?: boolean;\n apiError: IApiError | null | undefined;\n goToIdentificationTab: () => void;\n goToSendingTab: () => void;\n deleteDocument: (documentId: string) => void;\n uploadDocument: (templateId: string, file: File) => void;\n deleteDocumentSource: (documentId: string, sourceFileId: string) => void;\n}\n","import React from 'react';\nimport { SubmitExamApplication, ISubmitExamApplication } from '../../api/ApiClient';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { push } from 'connected-react-router';\nimport { connect } from 'react-redux';\nimport { RegistrationForExam } from '../../components';\n\nconst RegistrationForExamContainer = ({\n exam,\n apiError,\n examId,\n countries,\n fetchExamDetails,\n documentTemplateGroups,\n examApplication,\n getDocumentTemplateGroups,\n getCountries,\n deleteExamApplicationDocument,\n deleteExamApplicationDocumentSource,\n uploadExamApplicationDocument,\n onPush,\n onGoBack,\n submitExamApplication,\n sendCodeToSignApplication,\n setApplicantOtherIdentity,\n setApplicantPassport,\n updateApplicantDiploma,\n updateProfile,\n}: Props) => {\n const [processing, setProcessing] = React.useState(false);\n const [waitingSeconds, setWaitingSecond] = React.useState(null);\n\n React.useEffect(() => {\n const fetch = async () => {\n setProcessing(true);\n if (examId) {\n const res = await fetchExamDetails(examId);\n\n if (res) {\n await getDocumentTemplateGroups(res.exam.qualificationId);\n await getCountries();\n }\n }\n };\n\n fetch();\n\n setProcessing(false);\n\n return () => setProcessing(false);\n }, [examId]);\n\n const goBack = () => {\n if (onGoBack) {\n onGoBack();\n }\n\n onPush('/exam-applications');\n };\n\n const deleteDocumentSource = (documentId: string, sourceFileId: string) => {\n if (exam && exam.examApplicationId) {\n deleteExamApplicationDocumentSource({ examApplicationId: exam.examApplicationId, documentId, sourceFileId });\n }\n };\n\n const deleteDocument = (documentId: string) => {\n if (exam && exam.examApplicationId) {\n deleteExamApplicationDocument({ examApplicationId: exam.examApplicationId, documentId });\n }\n };\n\n const uploadDocument = (templateId: string, file: File) => {\n if (exam && exam.examApplicationId) {\n uploadExamApplicationDocument({ examApplicationId: exam.examApplicationId, templateId, file });\n }\n };\n\n const documentsProps = {\n documentTemplateGroups: documentTemplateGroups || [],\n deleteDocumentSource,\n deleteDocument,\n uploadDocument,\n uploadedDocuments: examApplication ? examApplication.documents : [],\n };\n\n const sendingProps = {\n certificateDeliveryAddress: undefined,//examApplication ? examApplication.certificateDeliveryAddress : undefined,\n createExamApplication: async (body?: ISubmitExamApplication) => {\n let res = null;\n if (exam && exam.examApplicationId) {\n res = await submitExamApplication({\n examApplicationId: exam.examApplicationId,\n body: new SubmitExamApplication(body),\n });\n }\n\n return !!res;\n },\n sendCodeToSignApplication: async (captcha: string | undefined) => {\n let res = null;\n if (exam && exam.examApplicationId) {\n res = await sendCodeToSignApplication({\n examApplicationId: exam.examApplicationId,\n body: { captcha },\n });\n setWaitingSecond(res ? res.waitingSeconds : null);\n }\n\n return res;\n },\n waitingSeconds,\n };\n\n return (\n !!await setApplicantOtherIdentity({data: data && data.data, type})}\n setApplicantPassport={async data => !!await setApplicantPassport(data)}\n updateApplicantDiploma={async data => !!await updateApplicantDiploma(data)}\n onUpdateProfile={async (data) => {\n const status = !!await updateProfile(data);\n status && await fetchExamDetails(examId);\n return status;\n }}\n />\n );\n};\n\nconst mapState = (state: IRootState) => ({\n exam: state.exam.exam,\n countries: state.countries.list,\n examApplication: state.exam.examApplication,\n documentTemplateGroups: state.applicant.documentTemplateGroups,\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n submitExamApplication: dispatch.exam.submitExamApplication,\n fetchExamDetails: dispatch.exam.fetchExamDetails,\n getDocumentTemplateGroups: dispatch.applicant.getDocumentTemplateGroupsAsync,\n getCountries: dispatch.countries.getCountriesAsync,\n sendCodeToSignApplication: dispatch.applicant.sendCodeToSignApplicationAsync,\n deleteExamApplicationDocument: dispatch.exam.deleteExamApplicationDocument,\n uploadExamApplicationDocument: dispatch.exam.uploadExamApplicationDocument,\n deleteExamApplicationDocumentSource: dispatch.exam.deleteExamApplicationDocumentSourceAsync,\n setApplicantPassport: dispatch.applicant.setApplicantPassportAsync,\n updateApplicantDiploma: dispatch.applicant.updateApplicantDiplomaAsync,\n setApplicantOtherIdentity: dispatch.applicant.setApplicantOtherIdentityAsync,\n updateProfile: dispatch.auth.updateProfile,\n onPush: (key: string) => dispatch(push(key)),\n});\n\nexport default connect(mapState, mapDispatch)(RegistrationForExamContainer);\n\ninterface IProps {\n examId: string;\n onGoBack: () => void;\n}\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps & IProps;\n","import React, { useEffect, useState } from 'react';\nimport {\n DatePicker,\n Card,\n Checkbox,\n CustomRadio,\n LoaderBtn,\n Captcha,\n InputText, ExtendedSelect,\n} from 'components';\nimport {\n Col,\n Form,\n FormControl,\n FormGroup,\n FormLabel,\n} from 'react-bootstrap';\nimport { mapAPIError, RegExpConst, RegExpErrorsText } from '_helpers';\nimport { Sex } from '../../api/ApiClient';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport styles from './RegistrationStep.module.scss';\n\nconst defaultState: FormState = {\n email: '',\n sex: '' as Sex,\n personalChecked: false,\n birthDate: null,\n snils: '',\n regionId: 0,\n};\n\nconst defaultFormErrors = {\n email: '',\n sex: '',\n personalChecked: '',\n birthDate: '',\n captcha: '',\n snils: '',\n regionId: '',\n};\n\nconst RegistrationStep4 = (\n {\n apiError, getRegionsAsync, register, registerForm, authProcessing, regions,\n }: Props,\n) => {\n const [form, setForm] = useState(defaultState);\n const [formSubmit, setFormSubmit] = useState(false);\n const [errors, setErrors] = useState(defaultFormErrors);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const fieldFailures = errors as { [key: string]: string };\n const lkHost = window.location.hostname.includes('lk');\n\n useEffect(() => {\n setErrors({\n ...errors,\n ...mapAPIError(apiError),\n });\n }, [apiError]);\n\n useEffect(() => {\n getRegionsAsync();\n }, []);\n\n const doValidate = (formData: FormState) => {\n const validateErrors = { ...errors };\n\n const setE = (isNotValid: boolean, text?: string) => (isNotValid ? (text || 'Error') : '');\n const test = (field: string, regexp: RegExp, text?: string) => setE(!regexp.test(field), text);\n\n validateErrors.email = test(formData.email, RegExpConst.EMAIL);\n validateErrors.birthDate = setE(!formData.birthDate);\n validateErrors.snils = test(formData.snils, RegExpConst.SNILS, RegExpErrorsText.SNILS);\n validateErrors.sex = setE(!formData.sex);\n validateErrors.regionId = setE(!formData.regionId, 'Обязятельное поле');\n validateErrors.captcha = '';\n\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n const isFormValid = Object.values(validateErrors).every(err => !err);\n\n if (validateErrors.email) {\n validateErrors.email = 'Неверная электронная почта';\n }\n\n setCaptchaValid(isCaptchaValid);\n setErrors(validateErrors);\n\n return isFormValid && isCaptchaValid;\n };\n\n const handleToggleCheck = (targetNodeName: string, name: keyof FormState) => {\n if (targetNodeName !== 'DIV' && targetNodeName !== 'LABEL') return;\n setForm({\n ...form,\n [name]: !form[name],\n });\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setFormSubmit(true);\n\n if (!doValidate(form)) return;\n\n await register({\n ...registerForm,\n snils: form.snils.replace(/[- ]/g, ''),\n email: form.email,\n regionId: form.regionId,\n birthDate: moment(form.birthDate || ''),\n sex: form.sex,\n captcha,\n });\n\n setCaptcha('');\n };\n\n const handleChangeInput = (name: keyof FormState, value: FormState[keyof FormState]) => {\n const newForm = {\n ...form,\n [name]: value,\n };\n\n setForm(newForm);\n if (formSubmit) {\n doValidate(newForm);\n }\n };\n\n const renderSexElement = (sex: Sex) => (\n handleChangeInput('sex', sex)}\n />\n );\n\n return (\n \n \n
\n \n \n {apiError && (apiError.failures && apiError.failures && !(apiError.failures.email)) && (!(apiError.failures && apiError.failures.length) || apiError.type === 'captcha') && apiError.message}\n \n \n Зарегистрироваться\n \n \n )}\n ftTextCenter\n >\n \n\n \n Дата рождения\n handleChangeInput('birthDate', time)}\n isInvalid={errors.birthDate ? 'Заполните дату рождения' : undefined}\n />\n \n\n \n\n \n Регион\n ({\n value: String(r.id),\n label: r.name,\n })) : []}\n onChange={e => handleChangeInput('regionId', Number(e.value))}\n invalidTitle={fieldFailures.regionId}\n isInvalid={!!fieldFailures.regionId}\n withoutStrictValue\n />\n \n\n \n
\n {renderSexElement(Sex.Male)}\n {renderSexElement(Sex.Female)}\n
\n
\n\n \n
\n handleToggleCheck(e.target.nodeName, 'personalChecked')}\n data-test-first-checkbox\n >\n \n \n
\n \n
\n \n \n \n \n
\n Уже зарегистрированы? Войти\n
\n
\n );\n};\n\nconst mapState = (state: IRootState) => ({\n registerForm: state.auth.registerForm,\n regions: state.regions.list,\n apiError: state.errors.error,\n authProcessing: Boolean(state.loading.effects.auth.register),\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n register: dispatch.auth.register,\n getRegionsAsync: dispatch.regions.getRegionsAsync,\n});\n\nexport default connect(mapState, mapDispatch)(RegistrationStep4);\n\ntype connectedProps = ReturnType & ReturnType;\ntype Props = connectedProps;\n\ninterface FormState {\n email: string;\n sex: Sex;\n personalChecked: boolean;\n birthDate: moment.Moment | null;\n snils: string;\n regionId: number;\n}\n\nenum SexTranslation {\n 'male' = 'Мужской',\n 'female' = 'Женский',\n}\n","import React from 'react';\nimport {\n Card,\n ApplicantExamDetailsTabs,\n AlertText,\n ExamApplicationStatus,\n ExamStatus,\n} from 'components';\nimport { Button } from 'react-bootstrap';\nimport { connect } from 'react-redux';\nimport { push } from 'connected-react-router';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { RegistrationForExamContainer } from '../RegistrationForExamContainer';\nimport { useLocalErrorHandler } from 'hooks';\n\nconst ExamDetailsContainer = ({\n setErrorHandler,\n fetchExamDetails,\n examId,\n exam,\n examApplication,\n onPush,\n apiError,\n createExamApplication,\n onlineExamRedirectionUrl,\n }: Props) => {\n useLocalErrorHandler(setErrorHandler);\n\n const [processing, setProcessing] = React.useState(false);\n const [showRegisterInfo, setShowRegisterInfo] = React.useState(false);\n\n const redirectionLink = React.useRef(null);\n const examStatus = React.useMemo(() => exam && exam.examStatus, [exam]);\n const examApplicationStatus = React.useMemo(() => examApplication && examApplication.status, [examApplication]);\n const title = React.useMemo(() => (exam ? exam.qualificationTitle : ''), [exam]);\n\n const urlParams = new URLSearchParams(window.location.search);\n const from = urlParams.get('from');\n\n\n React.useEffect(() => {\n const fetch = async () => {\n setProcessing(true);\n await fetchExamDetails(examId);\n setProcessing(false);\n };\n\n fetch();\n }, []);\n\n React.useEffect(() => {\n if (redirectionLink.current && onlineExamRedirectionUrl) {\n redirectionLink.current.click();\n }\n }, [redirectionLink, onlineExamRedirectionUrl]);\n\n const goBack = () => {\n onPush(`/${from}`);\n };\n\n const onRegisterButtonClick = async () => {\n if (examApplicationStatus !== ExamApplicationStatus.Draft && examStatus === ExamStatus.IsApplying) {\n await createExamApplication(examId);\n }\n if (examApplication && (examApplicationStatus === ExamApplicationStatus.InReview || examApplicationStatus === ExamApplicationStatus.Approved)) {\n onPush(`/exam-application/${examApplication.examApplicationId}?from=exam-timetables`);\n }\n else {\n setShowRegisterInfo(true);\n }\n \n };\n\n const cardHeaderBtn = () => (\n \n );\n\n\n if (showRegisterInfo) {\n return (\n setShowRegisterInfo(false)}\n />\n );\n }\n\n return (\n \n {exam && exam.reviewComment && exam.examApplicationStatus === ExamApplicationStatus.CorrectionsRequired\n ? (\n \n ) : null\n }\n {exam ? (\n \n ) : null}\n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n exam: state.exam.exam,\n examApplication: state.exam.examApplication,\n apiError: state.errors.error,\n onlineExamRedirectionUrl: state.exam.onlineExamRedirectionUrl,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n fetchExamDetails: dispatch.exam.fetchExamDetails,\n createExamApplication: dispatch.exam.createExamApplication,\n setErrorHandler: dispatch.errors.setErrorHandler,\n onPush: (key: string) => dispatch(push(key)),\n});\n\nexport default connect(mapState, mapDispatch)(ExamDetailsContainer);\n\ninterface ComponentOwnProps {\n examId: string;\n}\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps & ComponentOwnProps;\n","export default {\n FROM: {\n TIMETABLES: 'exam-timetables',\n APPLICATIONS: 'exam-applications',\n APPLICANT_EXAMS: 'applicant-exams',\n RECOGNITION: 'exam-recognition',\n },\n};\n","import React from 'react';\nimport {connect} from 'react-redux';\nimport {Card, DefaultMultiSelectSearch, ExamTable, MultiSelectSearch,} from 'components';\nimport {IApplicantExam, QualificationInfoList} from '../../api/ApiClient';\nimport {Color, ColorStatus} from '_helpers';\nimport {IPaginationData} from 'components/Pagination/Pagination';\nimport {Dispatch, IRootState} from '../../redux/store/configureStore';\nimport {useLocalErrorHandler, useMultiSearch} from 'hooks';\nimport query from '../../helpers/const/query';\nimport {useHistory} from 'react-router';\nimport {IExamsFilters, IFilterPart, IFromToDatePart} from 'components/models';\nimport DefaultSelectSearch from 'components/MultiSelectSearch/SearchElements/DefaultSelectSearch';\nimport {ResidencyOptions} from 'components/enums';\n\nconst ExamTimeTablesContainer = (\n {\n setErrorHandler,\n fetchExams,\n examsList,\n apiError,\n ...props\n }: Props,\n) => {\n useLocalErrorHandler(setErrorHandler);\n\n const { push } = useHistory();\n\n const {\n filters, changeFilterField, changeFilter, filterSetter,\n } = useMultiSearch<{ residency?: boolean } & IExamsFilters & IFromToDatePart & IFilterPart>(fetchExams, {\n qualificationIds: props.filterState && props.filterState.qualificationIds,\n regionIds: props.filterState && props.filterState.regionIds || undefined,\n });\n\n const [processing, setProcessing] = React.useState(false);\n \n const initFilterState = async (qualifications?: QualificationInfoList | null) => {\n if(!props.profile) return null;\n const qualificationId = props.profile.qualificationId;\n const qualification = qualifications ? qualifications.items.find(i => i.id === qualificationId) : null;\n return props.filterState || await props.initFilterState({\n residency: qualification && qualification.residency,\n qualificationIds: [props.profile.qualificationId],\n regionIds: [props.profile.regionId],\n });\n };\n\n const fetch = async () => {\n setProcessing(true);\n const qualifications = props.qualifications || await props.fetchQualifications({ pageSize: 500 });\n props.regions || await props.getRegions({});\n const filterState = await initFilterState(qualifications);\n if(filterState) {\n changeFilter({\n qualificationIds: filterState.qualificationIds,\n regionIds: filterState.regionIds,\n residency: filterState.residency,\n });\n }\n setProcessing(false);\n };\n\n React.useEffect(() => {\n props.profile && !props.filterState && fetch();\n }, [props.profile]);\n\n React.useEffect(() => {\n props.profile && fetch();\n }, []);\n\n const handleChooseExam = (id?: string) => {\n if (!id) return;\n push(`/exam/${id}?from=${query.FROM.TIMETABLES}`);\n };\n\n const getExamData = (exam: IApplicantExam) => ({\n ...exam,\n id: exam.examId,\n status: new ColorStatus(Color.Default, exam.city),\n name: exam.qualificationTitle,\n });\n\n const handleChangePagination = (newPagination: IPaginationData) => {\n fetchExams({\n page: newPagination.page,\n pageSize: newPagination.perPage,\n });\n };\n\n const exams = (examsList && examsList.items) || [];\n const tableRows = exams.map(getExamData);\n\n return (\n \n \n ({\n value: String(r.id),\n label: r.name,\n })) : []}\n placeholder=\"Выберите один или несколько регионов\"\n value={filters.regionIds}\n onChange={changeFilterField('regionIds')}\n />\n {\n changeFilter({\n residency: e.value ? e.value === 'true' : undefined,\n qualificationIds: e.value !== String(filters.residency) ? [] : filters.qualificationIds,\n });\n }}\n />\n q.residency === filters.residency).map(q => ({\n value: String(q.id),\n label: `${q.regNumber} - ${q.title}`,\n })) : []}\n placeholder=\"Выберите одну или несколько специальностей\"\n onChange={changeFilterField('qualificationIds')}\n />\n \n\n \n \n );\n};\n\nconst HEADER = [\n 'ПЕРИОД ПРОВЕДЕНИЯ',\n 'Специальность',\n 'Регион',\n];\n\nconst mapState = (state: IRootState) => ({\n examsList: state.exam.examsList,\n filterState: state.exam.filterState,\n profile: state.auth.profile,\n regions: state.regions.list,\n qualifications: state.qualifications.list,\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n fetchExams: dispatch.exam.fetchExamsWithStateSafe,\n fetchProfile: dispatch.auth.fetchProfile,\n initFilterState: dispatch.exam.initFilterState,\n fetchQualifications: dispatch.qualifications.getQualificationsAsync,\n getRegions: dispatch.regions.getRegionsAsync,\n setErrorHandler: dispatch.errors.setErrorHandler,\n});\n\nexport default connect(mapState, mapDispatch)(ExamTimeTablesContainer);\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { AuthenticationForm } from 'components';\n\nconst LoginContainer = ({\n onLogin, apiError,\n}: Props) => (\n onLogin({ ...data, phone: data.phone || '' })}\n //withRegister\n withPhone\n />\n );\n\nconst mapState = (state: IRootState) => ({\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n onLogin: dispatch.auth.login,\n});\n\nexport default connect(mapState, mapDispatch)(LoginContainer);\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n","import React from 'react';\nimport { IUpdateProfile, IChangePassword } from '../../api/ApiClient';\nimport { connect } from 'react-redux';\nimport { Card, Identification, AnimatedTabs } from 'components';\nimport { Tab } from 'react-bootstrap';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { push } from 'connected-react-router';\nimport { useLocalErrorHandler } from 'hooks';\nimport styles from './ProfileContainer.module.scss';\nimport ProfileInfoBlock from 'components/ProfileInfoBlock/ProfileInfoBlock';\n\nconst ProfileContainer = ({\n profile,\n onPush,\n updateProfile,\n sendUpdatePhoneVerificationCode,\n checkUpdatePhoneVerificationCode,\n sendConfirmationEmail,\n updatePhone,\n apiError,\n authProcessing,\n getIdentityDoc,\n setApplicantPassport,\n setApplicantOtherIdentity,\n applicantIdentityDoc,\n setErrorHandler,\n changePassword,\n}: Props) => {\n useLocalErrorHandler(setErrorHandler);\n\n const [processing, setProcessing] = React.useState(false);\n\n React.useEffect(() => {\n const fetchDoc = async () => {\n setProcessing(true);\n await getIdentityDoc();\n setProcessing(false);\n };\n\n fetchDoc();\n }, []);\n\n const [tab, setTab] = React.useState('personal-data');\n\n const onSubmit = async (data: IUpdateProfile) => {\n const newData = data as IUpdateProfile;\n await updateProfile({ ...newData });\n };\n\n const changePass = async (data: IChangePass) => {\n let res: boolean | null = false;\n if (data.oldPassword) {\n const nData = data as IChangePassword;\n res = await changePassword(nData);\n }\n\n return res;\n };\n\n const title = profile ? `${profile.lastName} ${profile.firstName} ${profile.middleName}` : '';\n\n return (\n \n setTab(key)}\n >\n \n \n {profile ? (\n onPush('/exam-timetables')}\n onSubmitPhone={sendUpdatePhoneVerificationCode}\n onSubmitCode={checkUpdatePhoneVerificationCode}\n sendConfirmationEmail={sendConfirmationEmail}\n onChangePassword={changePass}\n onUpdatePhone={updatePhone}\n onSubmit={onSubmit}\n canChange\n />\n ) : null}\n \n \n \n \n await setApplicantOtherIdentity({data: data && data.data, type})}\n stateData={applicantIdentityDoc}\n />\n \n \n \n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n profile: state.auth.profile,\n apiError: state.errors.error,\n authProcessing: Boolean(state.loading.effects.auth.updateProfile),\n applicantIdentityDoc: state.applicant.applicantIdentityDoc,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n onPush: (key: string) => dispatch(push(key)),\n updateProfile: dispatch.auth.updateProfile,\n sendUpdatePhoneVerificationCode: dispatch.auth.sendUpdatePhoneVerificationCodeAsync,\n checkUpdatePhoneVerificationCode: dispatch.auth.checkUpdatePhoneVerificationCodeAsync,\n updatePhone: dispatch.auth.updatePhoneAsync,\n getIdentityDoc: dispatch.applicant.getIdentityDocAsync,\n setApplicantPassport: dispatch.applicant.setApplicantPassportAsync,\n setApplicantOtherIdentity: dispatch.applicant.setApplicantOtherIdentityAsync,\n setErrorHandler: dispatch.errors.setErrorHandler,\n sendConfirmationEmail: dispatch.auth.sendConfirmationEmailAsync,\n changePassword: dispatch.auth.changePasswordAsync,\n});\n\ninterface IChangePass {\n newPassword: string;\n oldPassword?: string;\n captcha?: string;\n}\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n\nexport default connect(mapState, mapDispatch)(ProfileContainer);\n","import React, { useState } from 'react';\nimport {\n Col,\n Form,\n FormGroup,\n FormLabel,\n} from 'react-bootstrap';\nimport {\n Card,\n InputPassword,\n LoaderBtn,\n Captcha,\n PhoneInput,\n InputText,\n} from 'components';\nimport { Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { RegExpConst, mapAPIError, RegExpErrorsText } from '_helpers';\nimport { SendVerificationCode } from '../../api/ApiClient';\nimport styles from './RegistrationStep.module.scss';\n\nconst defaultState: IState = {\n lastName: '',\n firstName: '',\n middleName: '',\n phone: '',\n password: '',\n};\n\nconst RegistrationStep1 = ({\n apiError, sendRegistrationVerificationCode, setRegisterForm, nextStep, clearErrors,\n}: Props) => {\n const [form, setForm] = useState(defaultState);\n const [errors, setErrors] = useState(defaultState);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [processing, setProcessing] = useState(false);\n const [formSubmit, setFormSubmit] = useState(false);\n const fieldFailures = errors as any as { [key: string]: string };\n\n React.useEffect(() => {\n clearErrors();\n }, []);\n\n React.useEffect(() => {\n setErrors({\n ...errors,\n ...mapAPIError(apiError),\n });\n }, [apiError]);\n\n const doValidate = (formData: IState) => {\n const test = (field: string, regexp: RegExp) => (regexp.test(field) ? '' : 'Error');\n const validateErrors = { ...errors, general: '' };\n validateErrors.phone = test(formData.phone, RegExpConst.PHONE) && RegExpErrorsText.PHONE;\n validateErrors.firstName = test(formData.firstName, RegExpConst.NAME) && RegExpErrorsText.NAME;\n validateErrors.lastName = test(formData.lastName, RegExpConst.NAME) && RegExpErrorsText.NAME;\n validateErrors.middleName = test(formData.middleName, RegExpConst.NAME) && RegExpErrorsText.NAME;\n validateErrors.password = test(formData.password, RegExpConst.PASSWORD) && RegExpErrorsText.PASSWORD;\n validateErrors.captcha = '';\n\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n const isFormValid = Object.values(validateErrors).every(err => !err);\n\n setCaptchaValid(isCaptchaValid);\n setErrors(validateErrors);\n\n return isFormValid && isCaptchaValid;\n };\n\n const handleChangeInput = (name: string, value: string) => {\n const newForm = {\n ...form,\n [name]: value,\n };\n\n setForm(newForm);\n\n if (formSubmit) {\n doValidate(newForm);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setFormSubmit(true);\n if (!doValidate(form)) return;\n\n setProcessing(true);\n const result = await sendRegistrationVerificationCode(new SendVerificationCode({\n phone: form.phone,\n captcha,\n }));\n\n setProcessing(false);\n setCaptcha('');\n\n if (result) {\n setRegisterForm(form);\n setFormSubmit(false);\n nextStep();\n }\n };\n\n return (\n <>\n \n
\n \n Зарегистрироваться\n \n )}\n >\n \n\n \n\n \n\n \n\n \n Пароль\n handleChangeInput(e.target.name || '', e.target.value ? e.target.value.toString() : '')}\n isInvalid={!!errors.password}\n value={form.password}\n />\n\n {!!errors.password && (\n
\n Пароль должен быть от 6-ти до 15-ти символов, можно использовать только\n цифры, символы или латиницу\n
\n )}\n
\n \n\n \n {apiError\n && ((apiError.failures\n && !(apiError.failures.lastName || apiError.failures.firstName || apiError.failures.middleName || apiError.failures.phone || apiError.failures.password))\n || (apiError.type === 'captcha'))\n && apiError.message\n }\n \n \n \n \n
\n Уже зарегистрированы? Войти\n
\n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n sendRegistrationVerificationCode: dispatch.auth.sendRegistrationVerificationCode,\n clearErrors: dispatch.errors.clean,\n setRegisterForm: dispatch.auth.setRegisterForm,\n});\n\nexport default connect(mapState, mapDispatch)(RegistrationStep1);\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps & OwnProps;\n\ninterface OwnProps {\n nextStep: () => void;\n}\n\ninterface IState {\n lastName: string;\n firstName: string;\n middleName: string;\n phone: string;\n password: string;\n captcha?: string;\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Button,\n Col,\n Form,\n FormControl,\n FormGroup,\n FormLabel,\n} from 'react-bootstrap';\nimport { Card, Captcha, LoaderBtn } from 'components';\nimport { connect } from 'react-redux';\nimport { mapAPIError, formatSecretPhoneNumber } from '_helpers';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport styles from './RegistrationStep.module.scss';\n\nconst defaultState = {\n verificationCode: '',\n};\n\nconst RegistrationStep2 = ({\n verificationStatus,\n phoneForVerify,\n sendRegistrationVerificationCode,\n checkRegistrationVerificationCode,\n setRegisterForm,\n nextStep,\n prevStep,\n apiError,\n}: Props) => {\n const [form, setForm] = useState(defaultState);\n const [errors, setErrors] = useState(defaultState);\n const [captcha, setCaptcha] = React.useState('');\n const [captchaValid, setCaptchaValid] = React.useState(true);\n const [resendTimer, setResendTimer] = useState(0);\n const [processing, setProcessing] = useState(false);\n\n const number = formatSecretPhoneNumber(phoneForVerify);\n\n const calcTimer = () => {\n if (resendTimer) {\n setResendTimer(resendTimer - 1);\n }\n };\n\n useEffect(() => {\n const id = setTimeout(calcTimer, 1000);\n\n return () => clearTimeout(id);\n }, [resendTimer]);\n\n useEffect(() => {\n if (verificationStatus && verificationStatus.waitingSeconds) {\n setResendTimer(verificationStatus.waitingSeconds);\n }\n }, [verificationStatus]);\n\n useEffect(() => {\n setErrors({\n ...errors,\n ...mapAPIError(apiError),\n });\n }, [apiError]);\n\n const clearState = () => {\n setForm(defaultState);\n setErrors(defaultState);\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n if (typeof value !== 'string' || !name) return;\n\n const newForm = {\n ...form,\n [name]: value,\n };\n setForm(newForm);\n };\n\n const onClose = () => {\n clearState();\n prevStep();\n };\n\n const doValidate = () => {\n const isCaptchaValid = apiError && apiError.failures && apiError.failures.captcha ? captcha.length === 4 : true;\n\n setCaptchaValid(isCaptchaValid);\n return isCaptchaValid;\n };\n\n const resendVerificationCode = async () => {\n if (!doValidate()) return;\n\n clearState();\n\n setProcessing(true);\n await sendRegistrationVerificationCode({\n phone: phoneForVerify,\n captcha,\n });\n setProcessing(false);\n setCaptcha('');\n };\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!doValidate()) return;\n\n setProcessing(true);\n const result = await checkRegistrationVerificationCode({\n phone: phoneForVerify,\n verificationCode: form.verificationCode,\n captcha,\n });\n\n setProcessing(false);\n setCaptcha('');\n\n if (result) {\n setRegisterForm(form);\n nextStep();\n }\n };\n\n return (\n \n \n
\n \n \n Продолжить\n \n \n Назад\n \n \n )}\n ftTextCenter\n >\n \n Введите код из СМС\n \n \n {errors.verificationCode}\n \n\n {resendTimer ? (\n
\n Отправить повторно\n через {resendTimer} секунд\n
\n ) : (\n \n )}\n
\n \n \n {apiError && (!(apiError.failures && apiError.failures.verificationCode) || apiError.type === 'captcha') && apiError.message}\n \n \n \n \n
\n );\n};\n\nconst mapState = (state: IRootState) => ({\n phoneForVerify: state.auth.registerForm.phone,\n verificationStatus: state.auth.verificationStatus,\n apiError: state.errors.error,\n});\nconst mapDispatch = (dispatch: Dispatch) => ({\n setRegisterForm: dispatch.auth.setRegisterForm,\n sendRegistrationVerificationCode: dispatch.auth.sendRegistrationVerificationCode,\n checkRegistrationVerificationCode: dispatch.auth.checkRegistrationVerificationCode,\n});\n\ninterface OwnProps {\n nextStep: () => void;\n prevStep: () => void;\n}\n\ntype connectedProps = ReturnType & ReturnType;\ntype Props = connectedProps & OwnProps;\n\nexport default connect(mapState, mapDispatch)(RegistrationStep2);\n","import React, { useEffect, useState } from 'react';\nimport {\n Button,\n Col,\n Form,\n FormGroup,\n FormLabel,\n} from 'react-bootstrap';\nimport { Card, ExtendedSelect } from 'components';\nimport { connect } from 'react-redux';\nimport { mapAPIError } from '_helpers';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport styles from './RegistrationStep.module.scss';\nimport { useMultiSearch } from 'hooks';\nimport { ResidencyOptions } from 'components/enums';\n\nconst defaultState = {\n qualificationId: '',\n};\n\nconst RegistrationStep3 = (\n {\n getQualificationsAsync,\n setRegisterForm,\n nextStep,\n apiError,\n qualifications,\n }: Props,\n) => {\n const [form, setForm] = useState(defaultState);\n const [errors, setErrors] = useState(defaultState);\n\n const { filters, changeFilterField } = useMultiSearch<{ residency?: boolean }>(getQualificationsAsync, {});\n\n useEffect(() => {\n setErrors({\n ...errors,\n ...mapAPIError(apiError),\n });\n }, [apiError]);\n\n const onNext = () => {\n setRegisterForm(form);\n nextStep();\n };\n\n return (\n \n \n
\n \n \n Продолжить\n \n \n )}\n ftTextCenter\n >\n \n Уровень образования\n {\n changeFilterField('residency')(e.value === 'true');\n setForm(defaultState);\n }}\n withoutStrictValue\n />\n \n\n \n Специальность\n ({\n value: q.id,\n label: `${q.regNumber} - ${q.title}`,\n })) : []}\n onChange={e => setForm({ qualificationId: e.value })}\n />\n \n \n {apiError && (!(apiError.failures && apiError.failures.verificationCode) || apiError.type === 'captcha') && apiError.message}\n \n \n \n \n
\n );\n};\n\nconst mapState = (state: IRootState) => ({\n qualifications: state.auth.qualificationList,\n apiError: state.errors.error,\n});\nconst mapDispatch = (dispatch: Dispatch) => ({\n setRegisterForm: dispatch.auth.setRegisterForm,\n getQualificationsAsync: dispatch.auth.getQualificationsAsync,\n});\n\ninterface OwnProps {\n nextStep: () => void;\n}\n\ntype connectedProps = ReturnType & ReturnType;\ntype Props = connectedProps & OwnProps;\n\nexport default connect(mapState, mapDispatch)(RegistrationStep3);\n","import React, { useState } from 'react';\nimport RegistrationStep1 from './RegistrationStep1';\nimport RegistrationStep2 from './RegistrationStep2';\nimport RegistrationStep3 from './RegistrationStep3';\nimport RegistrationStep4 from './RegistrationStep4';\n\nconst RegistrationContainer: React.FC = () => {\n const [step, setStep] = useState(1);\n\n return (\n \n {step === 1 && setStep(2)} />}\n {step === 2 && (\n setStep(3)}\n prevStep={() => setStep(1)}\n />\n )}\n {step === 3 && setStep(4)} />}\n {step === 4 && }\n \n );\n};\n\nexport default RegistrationContainer;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { push, goBack } from 'connected-react-router';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { ResetPasswordFirstStep, ResetPasswordSecondStep, ResetPasswordThirdStep } from 'components';\n\nconst ResetPasswordContainer = ({\n sendResetPasswordVerificationCode,\n checkResetPasswordVerificationCode,\n authProcessing,\n resetPassword,\n clearErrors,\n onGoBack,\n apiError,\n onPush,\n}: Props) => {\n const [step, setStep] = React.useState(1);\n const [pagePhone, setPagePhone] = React.useState('');\n const [pageCode, setPageCode] = React.useState('');\n const [waitingSeconds, setWaitingSeconds] = React.useState(60);\n\n const goToStep = (newStep: number) => {\n setStep(newStep);\n };\n\n const goToLogin = () => {\n setPagePhone('');\n setPageCode('');\n clearErrors();\n onGoBack();\n };\n\n const step1Props = {\n apiError,\n initPhone: pagePhone,\n sendCode: async (phone: string, captcha?: string) => {\n setPagePhone(phone);\n const res = await sendResetPasswordVerificationCode({ phone, captcha });\n\n if (res && res.waitingSeconds) {\n setWaitingSeconds(res.waitingSeconds);\n }\n\n return res;\n },\n goNext: () => goToStep(2),\n goBack: () => goToLogin(),\n };\n\n const step2Props = {\n apiError,\n phone: pagePhone,\n waitingSeconds,\n checkCode: async (phone: string, code: string, captcha?: string) => {\n setPageCode(code);\n return !!await checkResetPasswordVerificationCode({ phone, verificationCode: code, captcha });\n },\n resendCode: async () => {\n const res = await sendResetPasswordVerificationCode({ phone: pagePhone });\n\n return res;\n },\n goNext: () => goToStep(3),\n goBack: () => {\n setPageCode('');\n goToStep(1);\n },\n };\n\n const step3Props = {\n apiError,\n authProcessing,\n resetPassword: async (password: string, captcha?: string) => {\n const checkVerify = await checkResetPasswordVerificationCode({ phone: pagePhone, verificationCode: pageCode, captcha });\n\n if (checkVerify) {\n const res = await resetPassword({\n verificationCode: pageCode,\n phone: pagePhone,\n newPassword: password,\n });\n\n if (res) {\n onPush('/');\n }\n }\n },\n };\n\n return (\n <>\n {step === 1 && }\n {step === 2 && }\n {step === 3 && }\n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n apiError: state.errors.error,\n authProcessing: Boolean(state.loading.effects.auth.resetPassword),\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n resetPassword: dispatch.auth.resetPassword,\n sendResetPasswordVerificationCode: dispatch.auth.sendResetPasswordVerificationCodeAsync,\n checkResetPasswordVerificationCode: dispatch.auth.checkResetPasswordVerificationCodeAsync,\n clearErrors: dispatch.errors.clean,\n onGoBack: () => dispatch(goBack()),\n onPush: (key: string) => dispatch(push(key)),\n});\n\nexport default connect(mapState, mapDispatch)(ResetPasswordContainer);\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n\ninterface IStatus {\n wasSent?: boolean;\n waitingSeconds?: number;\n}\n","import { SidebarTab } from 'components';\nimport ExamIcon from 'components/assets/svg/sidebar/exams.svg';\nimport QualificationIcon from 'components/assets/svg/sidebar/qualif.svg';\n\nconst sidebarTabs: SidebarTab[] = [\n {\n name: 'Аккредитации',\n icon: ExamIcon,\n state: 'exams',\n list: [\n {\n name: 'Доступные аккредитации',\n path: '/exam-timetables',\n routes: ['/exam/*?from=exam-timetables'],\n },\n {\n name: 'Мои заявки',\n path: '/exam-applications',\n routes: ['/exam-application/*?from=exam-applications'],\n },\n {\n name: 'Мои аккредитации',\n path: '/applicant-exams',\n routes: ['/exam/*?from=applicant-exams'],\n },\n ],\n },\n {\n name: 'Специальности',\n icon: QualificationIcon,\n state: 'qualifications',\n list: [\n {\n name: 'Мои специальности',\n path: '/applicant-qualifications',\n routes: ['/applicant-qualifications'],\n },\n ],\n },\n];\n\nexport default sidebarTabs;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport {\n Sidebar,\n WarningModal,\n NotificationSystem,\n SidebarMenuMapType,\n updateTabEvents,\n EmailConfirmationNotification,\n} from 'components';\nimport { Location } from 'history';\nimport { push } from 'connected-react-router';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { useShowGlobalErrorModal } from 'hooks';\nimport sidebarTabs from '../../routes/SidebarTabs';\n\nconst PROFILE_TABS = [\n {\n path: '/my-profile',\n name: 'Настройки профиля',\n mini: 'НП',\n },\n];\n\nconst SidebarContainer = ({\n profile,\n location,\n adaptive,\n sendConfirmationEmail,\n fetchProfile,\n startEventStatePoll,\n stopEventStatePoll,\n cleanNotifications,\n notifications,\n errors,\n events,\n onPush,\n onLogout,\n}: Props) => {\n const TABS = sidebarTabs;\n const [tabs, setTabs] = React.useState(TABS);\n const { showModal, toggleModal } = useShowGlobalErrorModal(errors);\n\n React.useEffect(() => {\n fetchProfile();\n if (process.env.REACT_APP_LOCAL_RUN_TESTS !== 'true') {\n startEventStatePoll();\n }\n return () => {\n stopEventStatePoll();\n };\n }, []);\n\n React.useEffect(() => {\n setTabs(TABS.map(t => updateTabEvents(t, events, menuEventsMap)));\n }, [events]);\n\n return (\n <>\n \n {errors.error && errors.handler === 'global' && !errors.error.failures\n ? (\n toggleModal(false)}\n onAccess={() => toggleModal(false)}\n accessBtnTittle=\"Вернуться\"\n titleClassNames=\"text-danger\"\n >\n

Код ошибки:{errors.error.code}

\n

Тип ошибки:{errors.error.type}

\n \n )\n : null}\n \n sendConfirmationEmail({ captcha })}\n cleanNotifications={cleanNotifications}\n apiError={errors.error}\n />\n \n );\n};\n\n\nconst mapState = (state: IRootState) => ({\n ...state.auth,\n errors: state.errors,\n notifications: state.notifications,\n events: state.eventsState,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n fetchProfile: dispatch.auth.fetchProfile,\n cleanNotifications: dispatch.notifications.clean,\n startEventStatePoll: dispatch.eventsState.startEventStatePoll,\n stopEventStatePoll: dispatch.eventsState.stopEventStatePoll,\n sendConfirmationEmail: dispatch.auth.sendConfirmationEmailAsync,\n onLogout: dispatch.auth.logout,\n onPush: (key: string) => dispatch(push(key)),\n});\n\ninterface SidebarOwnProps {\n location: Location;\n adaptive?: boolean;\n}\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps & SidebarOwnProps;\n\nexport default connect(mapState, mapDispatch)(SidebarContainer);\n\nconst menuEventsMap: SidebarMenuMapType = {\n 'Мои заявки': 'ApplicantExamApplications',\n 'Мои аккредитации': 'ApplicantMyExamApplications',\n};\n","import React from 'react';\nimport { EmailConfirmation, Loader } from 'components';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { useLocalErrorHandler } from 'hooks';\nimport { push } from 'connected-react-router';\nimport { connect } from 'react-redux';\n\nconst EmailConfirmationContainer = ({\n token, confirmEmailByToken, apiError, setErrorHandler, auth, onPush,\n}: Props) => {\n useLocalErrorHandler(setErrorHandler);\n\n const [processing, setProcessing] = React.useState(false);\n\n React.useEffect(() => {\n const checkToken = async () => {\n setProcessing(true);\n await confirmEmailByToken({ token });\n setProcessing(false);\n };\n\n checkToken();\n }, []);\n\n const sendCode = (captcha: string) => {\n confirmEmailByToken({ token, captcha });\n };\n\n if (processing) return ;\n\n return (\n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n apiError: state.errors.error,\n auth: state.auth,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n confirmEmailByToken: dispatch.auth.confirmEmailByTokenAsync,\n setErrorHandler: dispatch.errors.setErrorHandler,\n onPush: (key: string) => dispatch(push(key)),\n});\n\nexport default connect(mapState, mapDispatch)(EmailConfirmationContainer);\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps & IProps;\n\ninterface IProps {\n token: string;\n}\n","import React from 'react';\nimport { Card } from 'components';\nimport { Button } from 'react-bootstrap';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { push } from 'connected-react-router';\nimport { connect } from 'react-redux';\n\nconst PaymentResultContainer = ({ onPush, apiError }: Props) => {\n const success = window.location.pathname.indexOf('success') !== -1;\n\n return (\n \n \n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n onPush: (key: string) => dispatch(push(key)),\n});\n\nexport default connect(mapState, mapDispatch)(PaymentResultContainer);\n\ntype connectedProps = ReturnType & ReturnType;\n\ntype Props = connectedProps;\n","import React from 'react';\nimport {\n IApplicantExam,\n ExamStatus,\n} from '../../api/ApiClient';\nimport { connect } from 'react-redux';\nimport { ExamTable, Card, MappedExamApplicationStatuses } from 'components';\nimport { push } from 'connected-react-router';\nimport { Color, ColorStatus } from '_helpers';\nimport { IPaginationData } from 'components/Pagination/Pagination';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { useLocalErrorHandler } from 'hooks';\nimport query from '../../helpers/const/query';\n\nconst ExamRecognitionContainer = ({\n setErrorHandler,\n fetchExams,\n onPush,\n examsList,\n apiError,\n}: Props) => {\n useLocalErrorHandler(setErrorHandler);\n\n const [processing, setProcessing] = React.useState(false);\n\n React.useEffect(() => {\n const fetch = async () => {\n setProcessing(true);\n await fetchExams({});\n setProcessing(false);\n };\n\n fetch();\n }, []);\n\n const handleChooseExam = (id?: string) => {\n if (!id) return;\n onPush(`/exam/${id}?from=${query.FROM.RECOGNITION}`);\n };\n\n const getExamData = (exam: IApplicantExam) => ({\n ...exam,\n id: exam.examId,\n status: statuses[exam.examApplicationStatus || exam.examStatus] || new ColorStatus(Color.Default, (exam.examApplicationStatus || exam.examStatus).toString()),\n name: exam.qualificationTitle,\n });\n\n const handleChangePagination = (newPagination: IPaginationData) => {\n fetchExams({\n page: newPagination.page,\n pageSize: newPagination.perPage,\n });\n };\n\n const exams = (examsList && examsList.items) || [];\n const tableRows = exams.map(getExamData);\n\n return (\n \n \n \n );\n};\n\nconst HEADER = [\n 'ПЕРИОД ПРОВЕДЕНИЯ',\n 'Специальность',\n 'Статус',\n];\n\nconst statuses = {\n ...MappedExamApplicationStatuses,\n [ExamStatus.IsApplying as string]: new ColorStatus(Color.Success, 'Идет запись'),\n [ExamStatus.ApplyingFinished as string]: new ColorStatus(Color.Orange, 'Запись окончена'),\n};\n\n\nconst mapState = (state: IRootState) => ({\n examsList: state.exam.examsList,\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n fetchExams: dispatch.exam.fetchExams,\n setErrorHandler: dispatch.errors.setErrorHandler,\n onPush: (key: string) => dispatch(push(key)),\n});\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n\nexport default connect(mapState, mapDispatch)(ExamRecognitionContainer);\n","import React from 'react';\nimport {\n ApplicantQualifications,\n} from 'components';\nimport { connect } from 'react-redux';\nimport { useEffectProcessing } from 'hooks';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\n\nconst QualificationsListContainer: React.FC = (\n {\n ...props\n },\n) => {\n useEffectProcessing(\n () => props.getQualifications(),\n [],\n () => props.clearQualifications(),\n );\n\n return (\n props.getQualificationDetails(id)}\n onClearQualification={props.clearDetails}\n cardTitle=\"Мои специальности\"\n cardCategory=\"Список моих подтвержденных специальностей\"\n />\n );\n};\n\nconst mapState = (state: IRootState) => ({\n qualificationList: state.applicant.qualificationsList,\n qualificationDetails: state.applicant.qualificationDetails,\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n getQualificationDetails: dispatch.applicant.getQualificationDetailsAsync,\n getQualifications: dispatch.applicant.getQualificationsListAsync,\n clearQualifications: dispatch.qualifications.clearList,\n clearDetails: dispatch.applicant.clearQualificationDetails,\n setErrorHandler: dispatch.errors.setErrorHandler,\n});\n\nexport default connect(mapState, mapDispatch)(QualificationsListContainer);\n\ntype Props = ReturnType & ReturnType;\n","import React from 'react';\nimport {\n Card,\n ExamApplicationStatus,\n ExamApplicationTabs, ExamStatus,\n} from 'components';\nimport { Button } from 'react-bootstrap';\nimport { connect } from 'react-redux';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { RegistrationForExamContainer } from '../RegistrationForExamContainer';\nimport { useEffectProcessing, useGoBack, useLocalErrorHandler } from 'hooks';\n\nconst ExamApplicationDetailsContainer = (props: Props) => {\n useLocalErrorHandler(props.setErrorHandler);\n const [goBack, from] = useGoBack();\n\n const [showRegisterInfo, setShowRegisterInfo] = React.useState(false);\n\n const redirectionLink = React.useRef(null);\n const examStatus = React.useMemo(() => props.examApplicationDetails && props.examApplicationDetails.exam.status, [props.examApplicationDetails]);\n const examApplicationStatus = React.useMemo(() => props.examApplicationDetails && props.examApplicationDetails.status, [props.examApplicationDetails]);\n const draft = React.useMemo(() => examApplicationStatus === ExamApplicationStatus.Draft, [examApplicationStatus]);\n const changeStatus = React.useMemo(() => !examApplicationStatus || draft || examApplicationStatus === ExamApplicationStatus.CorrectionsRequired, [examApplicationStatus, draft]);\n\n const processing = useEffectProcessing(\n async () => {\n await props.getExamApplication(props.id);\n },\n [],\n () => {\n props.clearExamApplication();\n },\n );\n\n React.useEffect(() => {\n if (redirectionLink.current && props.onlineExamRedirectionUrl) {\n redirectionLink.current.click();\n }\n }, [redirectionLink, props.onlineExamRedirectionUrl]);\n\n const onRegisterButtonClick = async () => {\n if (!draft && examStatus === ExamStatus.IsApplying) {\n await props.createExamApplication(props.id);\n }\n setShowRegisterInfo(true);\n };\n\n const cardHeaderBtn = () => (\n changeStatus && !(from === 'exam-timetables' && draft) && (\n \n )\n );\n\n\n if (showRegisterInfo && props.examApplicationDetails) {\n return (\n setShowRegisterInfo(false)}\n />\n );\n }\n\n return (\n \n {props.examApplicationDetails ? (\n \n ) : null}\n \n );\n};\n\nconst mapState = (state: IRootState) => ({\n examApplicationDetails: state.examApplications.examApplicationDetails,\n apiError: state.errors.error,\n onlineExamRedirectionUrl: state.exam.onlineExamRedirectionUrl,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n getExamApplication: dispatch.examApplications.getExamApplication,\n clearExamApplication: () => dispatch.examApplications.setExamApplicationDetails(null),\n createExamApplication: dispatch.exam.createExamApplication,\n setErrorHandler: dispatch.errors.setErrorHandler,\n});\n\nexport default connect(mapState, mapDispatch)(ExamApplicationDetailsContainer);\n\ninterface ComponentOwnProps {\n id: string;\n}\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps & ComponentOwnProps;\n","import React from 'react';\nimport { ApplicantExamsContainer } from '../../containers';\n\nconst ApplicantExamsPage = () => ;\n\nexport default ApplicantExamsPage;\n","import React from 'react';\nimport { NotFound } from 'components';\n\nconst NotFoundPage = () => ;\n\nexport default NotFoundPage;\n","import * as React from 'react';\nimport { ExamApplicationsContainer } from '../../containers';\n\nconst ExamApplicationsPage = () => ;\n\nexport default ExamApplicationsPage;\n","import React from 'react';\nimport { ExamDetailsContainer } from '../../containers';\nimport { RouteComponentProps } from 'react-router';\n\nconst ExamDetailsPage = ({ match }: Props) => ;\n\nexport default ExamDetailsPage;\n\ninterface OwnProps {\n id: string;\n}\n\ntype Props = RouteComponentProps\n","import * as React from 'react';\nimport { ExamTimeTablesContainer } from '../../containers';\n\nconst ExamTimeTablesPage = () => ;\n\nexport default ExamTimeTablesPage;\n","import * as React from 'react';\nimport { ProfileContainer } from '../../containers';\n\nconst ProfilePage = () => ;\n\nexport default ProfilePage;\n","import React from 'react';\nimport { LoginContainer } from '../../containers';\n\nconst LoginPage = () => ;\n\nexport default LoginPage;\n","import React from 'react';\nimport { RegistrationContainer } from '../../containers';\n\nconst RegisterPage = () => ;\n\nexport default RegisterPage;\n","import React from 'react';\nimport { ResetPasswordContainer } from '../../containers';\n\nconst ResetPasswordPage = () => ;\n\nexport default ResetPasswordPage;\n","import React from 'react';\nimport { RouteComponentProps } from 'react-router';\nimport { EmailConfirmationContainer } from '../../containers';\n\nconst EmailConfirmationPage = ({ match }: Props) => ;\n\nexport default EmailConfirmationPage;\n\ninterface OwnProps {\n token: string;\n}\n\ntype Props = RouteComponentProps;\n","import React from 'react';\nimport { PaymentResultContainer } from '../../containers';\n\nconst PaymentResultPage = () => ;\n\nexport default PaymentResultPage;\n","import React from 'react';\nimport { QualificationsListContainer } from '../../containers';\n\nconst QualificationsListPage = () => ;\n\nexport default QualificationsListPage;\n","import React from 'react';\nimport { ExamApplicationDetailsContainer } from '../../containers';\nimport { RouteComponentProps } from 'react-router';\n\nconst ExamApplicationDetailsPage = ({ match }: Props) => ;\n\nexport default ExamApplicationDetailsPage;\n\ninterface OwnProps {\n id: string;\n}\n\ntype Props = RouteComponentProps\n","import * as React from 'react';\nimport UnAuthorizedLayout from '../layouts/unauth/UnAuthorizedLayout';\nimport { Redirect, Switch, Route } from 'react-router';\nimport { Location } from 'history';\nimport {\n EmailConfirmationPage,\n LoginPage,\n RegisterPage,\n ResetPasswordPage,\n} from '../pages';\n\ninterface UnAuthorizedHandlerProps {\n location: Location;\n processing: boolean[];\n}\n\nconst UnAuthorizedHandler: React.FC = (props) => {\n const { location, processing } = props;\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\n\nexport default UnAuthorizedHandler;\n","import React from 'react';\nimport { Location } from 'history';\nimport { connect } from 'react-redux';\nimport { Header, Loader } from 'components';\nimport { SidebarContainer } from '../../containers';\nimport { IRootState } from '../../redux/store/configureStore';\nimport { useReloader } from 'hooks';\nimport cx from 'classnames';\nimport styles from './AuthorizedLayout.module.scss';\nimport sidebarTabs from '../../routes/SidebarTabs';\n\nconst AuthorizedLayout = ({\n children, location, adaptive, authProcessing, auth, examApplicationsProcessing,\n}: Props) => {\n const reload = useReloader(location);\n\n return (\n
\n \n
\n \n {reload ? null : (\n
\n {(authProcessing || examApplicationsProcessing) && }\n {children}\n
\n )}\n
\n {authProcessing && (!auth || (auth && !auth.profile)) ? : null}\n
\n );\n};\n\nconst mapState = (state: IRootState) => ({\n auth: state.auth,\n authProcessing: Boolean(state.loading.models.auth),\n examApplicationsProcessing: Boolean(state.loading.models.examApplications),\n});\n\nexport default connect(mapState)(AuthorizedLayout);\n\ninterface AuthorizedLayoutOwnProps {\n children: JSX.Element[] | JSX.Element;\n location: Location;\n adaptive?: boolean;\n}\n\ntype connectedProps = ReturnType;\ntype Props = connectedProps & AuthorizedLayoutOwnProps;\n","import * as React from 'react';\nimport AuthorizedLayout from '../layouts/auth/AuthorizedLayout';\nimport { Location } from 'history';\nimport { Switch, Route } from 'react-router';\nimport {\n ProfilePage,\n NotFoundPage,\n ExamTimeTablesPage,\n ExamDetailsPage,\n ExamApplicationsPage,\n ApplicantExamsPage,\n EmailConfirmationPage,\n PaymentResultPage,\n QualificationsListPage, ExamApplicationDetailsPage,\n} from '../pages';\nimport { ErrorBoundary } from 'components';\n\nconst AuthorizedHandler = ({ location }: IProps) => (\n \n Loading...}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default AuthorizedHandler;\n\n\ninterface IProps {\n location: Location;\n}\n","import React from 'react';\nimport {\n Switch,\n Route,\n Redirect,\n withRouter,\n RouteComponentProps,\n} from 'react-router';\nimport { hasAccessTokenInLocalStorage, createReturnUrl, getReturnUrl } from '_helpers';\nimport { connect } from 'react-redux';\nimport { IRootState } from '../redux/store/configureStore';\nimport UnAuthorizedHandler from './UnAuthorizedHandler';\nimport AuthorizedHandler from './AuthorizedHandler';\n\nconst Routes = ({ processing }: Props) => {\n if (hasAccessTokenInLocalStorage()) {\n const returnUrl = getReturnUrl();\n\n return (\n \n {returnUrl && }\n \n \n \n\n \n\n (\n \n )}\n />\n \n );\n }\n\n createReturnUrl();\n\n return (\n \n (\n \n )}\n />\n \n \n );\n};\n\n\nconst mapState = (state: IRootState) => ({\n processing: [\n Boolean(!state.loading.effects.auth.sendRegistrationVerificationCode && state.loading.models.auth),\n Boolean(state.loading.models.examApplications),\n ],\n});\n\ntype connectedProps = ReturnType;\ntype Props = connectedProps & RouteComponentProps;\n\nexport default withRouter(connect(mapState)(Routes));\n","export const createReturnUrl = () => {\n const url = window.location.pathname;\n const search = new URLSearchParams(window.location.search);\n const from = search.get('from');\n\n if (url !== '/login' && url !== '/') {\n localStorage.setItem('ReturnUrl', `${url}${from ? `?from=${from}` : ''}`);\n }\n};\n\nexport const getReturnUrl = () => {\n const returnUrl = localStorage.getItem('ReturnUrl');\n localStorage.removeItem('ReturnUrl');\n\n return returnUrl;\n};\n","import * as React from 'react';\nimport { Provider } from 'react-redux';\nimport Routes from './routes/Routes';\nimport { Store } from 'redux';\nimport { History } from 'history';\nimport { ConnectedRouter } from 'connected-react-router';\n\nconst Root: React.FC = props => (\n \n \n \n \n \n);\n\nexport default Root;\n\n\ninterface RootProps {\n store: Store;\n history: History;\n}\n","import { ApiClient } from './ApiClient';\nimport { ApiConnector } from '_helpers';\nimport apiConfig from '../config/apiConfig.default';\n\nexport default new ApiConnector(ApiClient, apiConfig);\n","export default { API_BASE_URL: ''};\n","import {\n ILoginApplicant,\n IApplicant,\n IRegisterApplicant,\n IResetPassword,\n ISendVerificationCode,\n IUpdateProfile,\n LoginApplicant,\n RegisterApplicant,\n ResetPassword, SendVerificationCode,\n UpdateProfile,\n IVerificationCodeSendingStatus,\n SendVerificationCodeForUpdatePhone,\n ISendVerificationCodeForUpdatePhone,\n CheckVerificationCode,\n UpdatePhone,\n IUpdatePhone, ICheckVerificationCode,\n SendConfirmationEmailAgain,\n ISendConfirmationEmailAgain,\n ConfirmEmailByToken,\n IConfirmEmailByToken,\n ChangePassword,\n IChangePassword,\n IAuthResult,\n QualificationInfoList,\n Region,\n} from '../../api/ApiClient';\nimport { INotification } from 'components';\nimport { createModel } from '@rematch/core';\nimport { clearAuthToken, setAuthToken } from '_helpers';\nimport apiConnector from '../../api/ApiConnector';\n\nconst initialState: AuthState = {\n profile: null,\n token: '',\n registerForm: new RegisterApplicant().toJSON(),\n verificationStatus: null,\n qualificationList: null,\n regions: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setAuth(state, data: IAuthResult): AuthState {\n if (data && data.token) {\n setAuthToken(data.token);\n }\n return { ...state, ...data };\n },\n setRegisterForm(state: S, registerForm: Partial): AuthState {\n return { ...state, registerForm: { ...state.registerForm, ...registerForm } };\n },\n logout(): AuthState {\n clearAuthToken();\n\n return initialState;\n },\n setQualificationList(state, qualificationList: QualificationInfoList): AuthState {\n return { ...state, qualificationList };\n },\n },\n effects: (dispatch: any) => ({\n async login(data: ILoginApplicant) {\n const auth = await apiConnector.execApi(dispatch, apiClient => apiClient.login(new LoginApplicant(data)));\n\n if (!auth) return;\n\n this.setAuth({ ...auth });\n },\n async fetchProfile() {\n this.setAuth({\n profile: await apiConnector.execApi(dispatch, apiClient => apiClient.profile()),\n });\n },\n async register(data: IRegisterApplicant) {\n const auth = await apiConnector.execApi(dispatch, apiClient => apiClient.register(new RegisterApplicant(data)));\n\n if (!auth) return;\n\n this.setAuth({ ...auth });\n },\n async sendResetPasswordVerificationCodeAsync(data: ISendVerificationCode) {\n return await apiConnector.execApi(dispatch, apiClient => apiClient.sendResetPasswordVerificationCode(new SendVerificationCode(data)));\n },\n async checkResetPasswordVerificationCodeAsync(data: ICheckVerificationCode) {\n return await apiConnector.execApi(dispatch, apiClient => apiClient.checkResetPasswordVerificationCode(new CheckVerificationCode(data)));\n },\n async resetPassword(data: IResetPassword) {\n const auth = await apiConnector.execApi(dispatch, apiClient => apiClient.resetPassword(new ResetPassword(data)));\n\n if (auth) {\n this.setAuth({ ...auth });\n }\n\n return auth;\n },\n async updateProfile(data: IUpdateProfile) {\n const profile = await apiConnector.execApi(dispatch, apiClient => apiClient.updateProfile(new UpdateProfile(data)));\n if (profile) {\n this.setAuth({ profile });\n dispatch.notifications.addNotification([{ message: 'Данные профиля успешно обновлены!', appearance: 'success' }] as INotification[]);\n }\n return profile;\n },\n async sendRegistrationVerificationCode(payload: ISendVerificationCode) {\n const verificationStatus = await apiConnector.execApi(\n dispatch,\n apiClient => apiClient.sendRegistrationVerificationCode(new SendVerificationCode(payload)),\n );\n if (!verificationStatus) return false;\n this.setAuth({ verificationStatus });\n return true;\n },\n async checkRegistrationVerificationCode(data: ICheckVerificationCode) {\n const result = await apiConnector.execApi(\n dispatch,\n apiClient => apiClient.checkRegistrationVerificationCode(new CheckVerificationCode(data)),\n );\n return Boolean(result);\n },\n async sendUpdatePhoneVerificationCodeAsync(body: ISendVerificationCodeForUpdatePhone) {\n const res = await apiConnector.execApi(dispatch, apiClient => apiClient.sendUpdatePhoneVerificationCode(new SendVerificationCodeForUpdatePhone(body)));\n\n return res;\n },\n async checkUpdatePhoneVerificationCodeAsync(data: ICheckVerificationCode) {\n const res = await apiConnector.execApi(dispatch, apiClient => apiClient.checkUpdatePhoneVerificationCode(new CheckVerificationCode(data)));\n\n return res;\n },\n async updatePhoneAsync(body: IUpdatePhone) {\n const profile = await apiConnector.execApi(dispatch, apiClient => apiClient.updatePhone(new UpdatePhone(body)));\n\n if (profile) {\n this.setAuth({ profile });\n dispatch.notifications.addNotification([{ message: 'Телефон успешно обновлен!', appearance: 'success' }] as INotification[]);\n }\n },\n async sendConfirmationEmailAsync(body: ISendConfirmationEmailAgain) {\n const res = await apiConnector.execApi(dispatch, apiClient => apiClient.sendConfirmationEmailAgain(new SendConfirmationEmailAgain(body)));\n if (res) {\n dispatch.notifications.addNotification([{ message: 'Ссылка для подтверждения электронной почты успешно отправлена!', appearance: 'success' }] as INotification[]);\n }\n return res;\n },\n async confirmEmailByTokenAsync(body: IConfirmEmailByToken) {\n const res = await apiConnector.execApi(dispatch, apiClient => apiClient.confirmEmailByToken(new ConfirmEmailByToken(body)));\n if (res) {\n dispatch.notifications.addNotification([{ message: 'Email успешно подтвержден!', appearance: 'success' }] as INotification[]);\n }\n return res;\n },\n async changePasswordAsync(body: IChangePassword) {\n const res = await apiConnector.execApi(dispatch, apiClient => apiClient.changePassword(new ChangePassword(body)));\n\n if (res) {\n dispatch.notifications.addNotification([{ message: 'Пароль успешно изменен!', appearance: 'success' }] as INotification[]);\n }\n return res;\n },\n async getQualificationsAsync(payload: { residency: boolean }) {\n const result = await apiConnector.execApi(\n dispatch,\n apiClient => apiClient.getQualifications(\n undefined,\n undefined,\n payload.residency,\n undefined,\n undefined,\n undefined,\n 300,\n undefined,\n undefined,\n ),\n );\n if (!result) return;\n this.setQualificationList(result);\n },\n }),\n});\n\nexport interface AuthState {\n profile: IApplicant | null;\n token: string;\n registerForm: IRegisterApplicant;\n verificationStatus: IVerificationCodeSendingStatus | null;\n qualificationList: QualificationInfoList | null;\n regions: Region[] | null;\n}\n","export const setAuthToken = (token: string) => localStorage.setItem('token', token);\n\nexport const clearAuthToken = () => localStorage.removeItem('token');\n\nexport const getAuthToken = () => localStorage.getItem('token');\n","import { createModel } from '@rematch/core';\nimport { IApiError } from '../../api/ApiClient';\n\nconst initState: ErrorsState = {\n error: null,\n handler: 'global',\n};\n\nconst errors = createModel({\n state: initState,\n reducers: {\n handle(state: ErrorsState, error: IApiError): ErrorsState {\n return { ...state, error };\n },\n setErrorHandler(state: ErrorsState, handler: ErrorHandlerType): ErrorsState {\n return { ...state, handler };\n },\n clean(state: ErrorsState): ErrorsState {\n return { ...state, error: null };\n },\n },\n});\n\nexport default errors;\n\ntype ErrorHandlerType = 'local' | 'global';\n\ninterface ErrorsState {\n error: IApiError | null;\n handler: ErrorHandlerType;\n}\n","import {\n CreateExamApplication,\n IApplicantExamDetails,\n IApplicantExamList,\n IExamApplicationDetails,\n QualificationDocumentTemplateGroup,\n SubmitExamApplication,\n} from '../../api/ApiClient';\nimport { INotification } from 'components';\nimport { createModel } from '@rematch/core';\nimport apiConnector from '../../api/ApiConnector';\nimport { IExamsFilters, IFilterPart, IFromToDatePart } from 'components/models';\nimport { saveToLocalStorage, loadFromLocalStorage } from '_helpers';\n\nconst initialState: ExamState = {\n examsList: null,\n exam: null,\n examApplication: null,\n paymentUrl: null,\n documentTemplateGroups: null,\n onlineExamRedirectionUrl: null,\n filterState: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setExamState(state: S, data: (Pick | S | null)) {\n return { ...state, ...data };\n },\n setOnlineExamRedirectionUrl(state, onlineExamRedirectionUrl: string | null) {\n return { ...state, onlineExamRedirectionUrl };\n },\n setFilterState(state, filterState: IExamFilterState) {\n return { ...state, filterState };\n },\n },\n effects: (dispatch: any) => ({\n async fetchExams(payload: IExamsFilters & IFromToDatePart & IFilterPart) {\n this.setExamState({\n examsList: await apiConnector.execApi(dispatch, apiClient => apiClient.getExams(\n payload.regionIds,\n payload.qualificationIds,\n payload.from,\n payload.to,\n payload.page,\n payload.pageSize,\n payload.sortOrder,\n payload.sortField,\n )),\n });\n },\n async initFilterState(filterState: IExamFilterState, root: IRootState) {\n if(root.exam.filterState) return root.exam.filterState;\n const data = loadFromLocalStorage('exams-filter-state');\n if (data) {\n const state = JSON.parse(data) as IExamFilterState;\n this.setFilterState(state);\n return state;\n }\n this.setFilterState(filterState);\n return filterState;\n },\n async fetchExamsWithStateSafe(payload: IExamsFilters & IFromToDatePart & IFilterPart & {residency?: boolean;}, root: IRootState) {\n\n if(root.exam.filterState != null) {\n const filterState = {\n regionIds: payload.regionIds,\n qualificationIds: payload.qualificationIds,\n residency: payload.residency\n };\n this.setFilterState(filterState);\n saveToLocalStorage('exams-filter-state', JSON.stringify(filterState));\n }\n \n this.setExamState({\n examsList: await apiConnector.execApi(dispatch, apiClient => apiClient.getExams(\n payload.regionIds,\n payload.qualificationIds,\n payload.from,\n payload.to,\n payload.page,\n payload.pageSize,\n payload.sortOrder,\n payload.sortField,\n )),\n });\n },\n async uploadExamApplicationDocument(payload: UploadDocumentPayload) {\n this.setExamState({\n examApplication: await apiConnector.execApi(dispatch, api => api.uploadExamApplicationDocumentFix(\n payload.examApplicationId,\n payload.templateId,\n payload.file,\n )),\n });\n },\n async deleteExamApplicationDocument(payload: DeleteDocumentPayload) {\n this.setExamState({\n examApplication: await apiConnector.execApi(dispatch, api => api.deleteExamApplicationDocument(\n payload.examApplicationId,\n payload.documentId,\n )),\n });\n },\n async deleteExamApplicationDocumentSourceAsync(payload: DeleteDocumentSource) {\n this.setExamState({\n examApplication: await apiConnector.execApi(dispatch, api => api.deleteExamApplicationDocumentSource(\n payload.examApplicationId,\n payload.documentId,\n payload.sourceFileId,\n )),\n });\n },\n async submitExamApplication(data: ISubmitExamApplication) {\n const examApplication = await apiConnector.execApi(dispatch, api => api.submitExamApplication(data.examApplicationId, data.body));\n \n if (examApplication) {\n this.setExamState({ examApplication });\n dispatch.notifications.addNotification([{ message: 'Ваша заявка была успешно зарегистрирована', appearance: 'success' }] as INotification[]);\n }\n\n return examApplication;\n },\n async createExamApplication(examId: string) {\n const examApplication = await apiConnector.execApi(dispatch, api => api.createExamApplication(new CreateExamApplication({ examId })));\n this.setExamState({ examApplication });\n\n return examApplication;\n },\n async fetchExamApplication(id: string) {\n const examApplication = await apiConnector.execApi(dispatch, api => api.getExamApplication(id));\n this.setExamState({ examApplication });\n\n return examApplication;\n },\n async fetchExamDetails(id: string) {\n const exam = await apiConnector.execApi(dispatch, api => api.getExamDetails(id));\n let app = null;\n if (exam) {\n if (exam.examApplicationId) {\n const examApplication = await apiConnector.execApi(dispatch, api => api.getExamApplication(String(exam.examApplicationId)));\n app = examApplication;\n this.setExamState({\n exam,\n examApplication,\n });\n } else {\n this.setExamState({\n exam,\n examApplication: null,\n });\n }\n }\n this.setExamState({ exam });\n\n return app;\n },\n }),\n});\n\ninterface ExamState {\n examsList: IApplicantExamList | null;\n exam: IApplicantExamDetails | null;\n examApplication: IExamApplicationDetails | null;\n paymentUrl: string | null;\n documentTemplateGroups: QualificationDocumentTemplateGroup[] | null;\n onlineExamRedirectionUrl: string | null;\n filterState: IExamFilterState | null;\n}\n\ninterface DeleteDocumentPayload {\n examApplicationId: string;\n documentId: string;\n}\n\ninterface UploadDocumentPayload {\n examApplicationId: string;\n templateId: string;\n file: File;\n}\n\ninterface DeleteDocumentSource {\n examApplicationId: string;\n documentId: string;\n sourceFileId: string;\n}\n\ninterface ISubmitExamApplication {\n examApplicationId: string;\n body?: SubmitExamApplication;\n}\n\ninterface IExamFilterState {\n regionIds?: number[];\n qualificationIds?: string[];\n residency?: boolean;\n}\n\ninterface IRootState {\n //auth: AuthState;\n exam: ExamState;\n}\n","import {\n ApplicantQualification,\n ApplicantQualificationDetails,\n ApplicantIdentityDoc,\n SetApplicantPassport,\n ISetApplicantPassport,\n SetApplicantOtherIdentity,\n ISetApplicantOtherIdentity,\n QualificationDocumentTemplateGroup,\n ISendCodeToSignApplication,\n SendCodeToSignApplication,\n ApplicantDiploma,\n IUpdateApplicantDiploma,\n UpdateApplicantDiploma,\n} from '../../api/ApiClient';\nimport { INotification } from 'components';\nimport { createModel } from '@rematch/core';\nimport apiConnector from '../../api/ApiConnector';\n\nconst initialState: IState = {\n qualificationsList: null,\n qualificationDetails: null,\n applicantIdentityDoc: null,\n documentTemplateGroups: null,\n applicantDiploma: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setQualificationsList(state, qualificationsList: ApplicantQualification[] | null) {\n return { ...state, qualificationsList };\n },\n setQualificationDetails(state, qualificationDetails: ApplicantQualificationDetails | null) {\n return { ...state, qualificationDetails };\n },\n setDocumentTemplateGroups(state, documentTemplateGroups: QualificationDocumentTemplateGroup[] | null) {\n return { ...state, documentTemplateGroups };\n },\n setApplicantIdentityDoc(state, applicantIdentityDoc: ApplicantIdentityDoc | null) {\n return { ...state, applicantIdentityDoc };\n },\n setApplicantDiploma(state, applicantDiploma: ApplicantDiploma | null) {\n return { ...state, applicantDiploma };\n },\n clearState() {\n return {\n ...initialState,\n };\n },\n clearQualificationDetails(state): IState {\n return {\n ...state,\n qualificationDetails: null,\n };\n },\n },\n effects: (dispatch: any) => ({\n async getQualificationsListAsync() {\n const qualificationsList = await apiConnector.execApi(dispatch, apiClient => apiClient.getApplicantQualifications());\n\n this.setQualificationsList(qualificationsList);\n },\n async getQualificationDetailsAsync(examApplicationId: string) {\n const qualificationDetails = await apiConnector.execApi(dispatch, apiClient => apiClient.getApplicantQualificationDetails(examApplicationId));\n\n this.setQualificationDetails(qualificationDetails);\n\n return qualificationDetails;\n },\n async getIdentityDocAsync() {\n const applicantIdentityDoc = await apiConnector.execApi(dispatch, apiClient => apiClient.getIdentityDoc());\n\n this.setApplicantIdentityDoc(applicantIdentityDoc);\n return applicantIdentityDoc;\n },\n async getApplicantDiplomaAsync() {\n const diploma = await apiConnector.execApi(dispatch, apiClient => apiClient.getApplicantDiploma());\n this.setApplicantDiploma(diploma);\n return diploma;\n },\n async updateApplicantDiplomaAsync(data: IUpdateApplicantDiploma) {\n const diploma = await apiConnector.execApi(dispatch, apiClient => apiClient.updateApplicantDiploma(new UpdateApplicantDiploma(data)));\n\n this.setApplicantDiploma(diploma);\n return diploma;\n },\n async getDocumentTemplateGroupsAsync(qualificationId: string) {\n const documentTemplateGroups = await apiConnector.execApi(dispatch, apiClient => apiClient.getDocumentTemplateGroups(qualificationId));\n\n this.setDocumentTemplateGroups(documentTemplateGroups);\n\n return documentTemplateGroups;\n },\n async setApplicantPassportAsync(data: ISetApplicantPassport) {\n const applicantIdentityDoc = await apiConnector.execApi(dispatch, apiClient => apiClient.setApplicantPassport(new SetApplicantPassport(data)));\n\n this.setApplicantIdentityDoc(applicantIdentityDoc);\n // if (applicantIdentityDoc) {\n // dispatch.notifications.addNotification([{ message: 'Паспортные данные успешно обновлены!', appearance: 'success' }] as INotification[]);\n // }\n return applicantIdentityDoc;\n },\n async setApplicantOtherIdentityAsync(data: ISetApplicantOtherIdentity) {\n const applicantIdentityDoc = await apiConnector.execApi(dispatch, apiClient => apiClient.setApplicantOtherIdentity(new SetApplicantOtherIdentity(data)));\n\n this.setApplicantIdentityDoc(applicantIdentityDoc);\n\n // if (applicantIdentityDoc) {\n // dispatch.notifications.addNotification([{ message: 'Данные успешно обновлены!', appearance: 'success' }] as INotification[]);\n // }\n\n return applicantIdentityDoc;\n },\n async sendCodeToSignApplicationAsync(data: ISendCodeToSignApplicationProps) {\n const verificationCodeSendingStatus = await apiConnector.execApi(dispatch, apiClient => apiClient.sendCodeToSignApplication(\n data.examApplicationId,\n new SendCodeToSignApplication(data.body),\n ));\n\n return verificationCodeSendingStatus;\n },\n /* Clear state */\n clearExpertState() {\n this.clearState();\n },\n }),\n});\n\ninterface IState {\n qualificationsList: ApplicantQualification[] | null;\n qualificationDetails: ApplicantQualificationDetails | null;\n applicantIdentityDoc: ApplicantIdentityDoc | null;\n documentTemplateGroups: QualificationDocumentTemplateGroup[] | null;\n applicantDiploma: ApplicantDiploma | null;\n}\n\ninterface ISendCodeToSignApplicationProps {\n examApplicationId: string;\n body: ISendCodeToSignApplication;\n}\n","import { createModel } from '@rematch/core';\nimport { IApplicantExamList, MyExamStatus, ExamReviewStatus } from '../../api/ApiClient';\nimport apiConnector from '../../api/ApiConnector';\nimport { IExamApplicationDetails } from 'components/models';\n\nconst initialState: IState = {\n examApplicationsList: null,\n myExamApplicationsList: null,\n examApplicationDetails: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setExamApplicationList: (state, examApplicationsList: IState['examApplicationsList']): IState => ({ ...state, examApplicationsList }),\n setExamApplicationDetails: (state, examApplicationDetails: IState['examApplicationDetails']): IState => ({ ...state, examApplicationDetails }),\n setMyExamApplicationList: (state, myExamApplicationsList: IState['myExamApplicationsList']): IState => ({ ...state, myExamApplicationsList }),\n },\n effects: (dispatch: any) => ({\n async getExamApplication(id: string) {\n const examApplicationDetails = await apiConnector.execApi(\n dispatch,\n apiClient => apiClient.getExamApplication(id),\n );\n\n this.setExamApplicationDetails(examApplicationDetails);\n },\n async fetchExamApplicationsAsync(data: IGetExamApplications) {\n const examApplicationsList = await apiConnector.execApi(dispatch, apiClient => apiClient.getExamApplications(data.examReviewStatus, data.page, data.pageSize, data.sortOrder, data.sortField));\n\n this.setExamApplicationList(examApplicationsList);\n },\n async getMyExamApplications(data: IGetMyExamApplications) {\n const myExamApplicationsList = await apiConnector.execApi(dispatch, apiClient => apiClient.getMyExamApplicationsList(data.myExamStatus, data.page, data.pageSize, data.sortOrder, data.sortField));\n\n this.setMyExamApplicationList(myExamApplicationsList);\n },\n }),\n});\n\ninterface IGetExamApplications {\n examReviewStatus: ExamReviewStatus;\n page?: number;\n pageSize?: number;\n sortOrder?: boolean | undefined;\n sortField?: string;\n}\n\ninterface IGetMyExamApplications {\n myExamStatus: MyExamStatus;\n page?: number;\n pageSize?: number;\n sortOrder?: boolean | undefined;\n sortField?: string;\n}\n\ninterface IState {\n examApplicationsList: IApplicantExamList | null;\n examApplicationDetails: IExamApplicationDetails | null;\n myExamApplicationsList: IApplicantExamList | null;\n}\n","import { createModel } from '@rematch/core';\nimport { INotification } from 'components';\n\nconst initialState: IState = [];\n\nconst notifications = createModel({\n state: initialState,\n reducers: {\n addNotification(state: IState, notificationArr: INotification[]): IState {\n return [...notificationArr];\n },\n clean(): IState {\n return [];\n },\n },\n});\n\nexport default notifications;\n\ntype IState = INotification[];\n","import { createModel } from '@rematch/core';\nimport { INotification } from 'components';\n// import apiConnector from '../../api/ApiConnector';\nimport _ from 'lodash';\n\n// let intervalTimer = 0;\n// const UPDATE_INTERVAL = 60000;\n\nconst initialState: IState = {};\n\nconst eventsState = createModel({\n state: initialState,\n reducers: {\n setEventsState(state: IState, payload: { [key: string]: number }): IState {\n return _.isEqual(state, payload) ? state : { ...payload };\n },\n },\n effects: (dispatch: any) => ({\n async getEventState() {\n // const result = await apiConnector.execApi(dispatch, api => api.getEventsState(), { eventStateRequest: true });\n // if (!result) return;\n\n // this.updateEventState(result.eventsState);\n },\n updateEventState(updateEventState: { [key: string]: number } | undefined, state) {\n if (updateEventState) {\n const notifications = getNewNotifications(state.eventsState, updateEventState);\n if (notifications.length > 0) {\n const notificationsArr: INotification[] = notifications.map(n => ({ message: n, appearance: 'info' }));\n dispatch.notifications.addNotification(notificationsArr);\n }\n }\n // this.setEventsState(updateEventState || {});\n },\n startEventStatePoll() {\n // this.getEventState();\n // intervalTimer = window.setInterval(this.getEventState.bind(this), UPDATE_INTERVAL);\n },\n stopEventStatePoll() {\n // clearInterval(intervalTimer);\n },\n }),\n});\n\nexport default eventsState;\n\nconst getNewNotifications = (prevNotif: {[key: string]: number}, nextNotif: {[key: string]: number}) => {\n const actualNotificationKeys = Object.keys(nextNotif).filter((k) => {\n if (!prevNotif[k]) return true;\n if (prevNotif[k] >= nextNotif[k]) return false;\n return true;\n });\n return actualNotificationKeys.map(n => (notificationMessageMap[n] ? notificationMessageMap[n] : `Unknow message. Key: ${n}`));\n};\n\nconst notificationMessageMap: {[key: string]: string} = {\n ApplicantExamApplications: 'Обновлен статус заявки',\n ApplicantMyExamApplications: 'Добавлена новая аккредитация',\n};\n\ninterface IState {\n [key: string]: number;\n}\n","import { History } from 'history';\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\nimport { init, RematchRootState } from '@rematch/core';\nimport createLoadingPlugin from '@rematch/loading';\n// import createHistory from 'history/createBrowserHistory';\nimport auth from '../models/auth';\nimport errors from '../models/errors';\nimport exam from '../models/exam';\nimport applicant from '../models/applicant';\nimport examApplications from '../models/examApplications';\nimport notifications from '../models/notifications';\nimport eventsState from '../models/events';\nimport regions from '../models/regions';\nimport countries from '../models/countries';\nimport qualifications from '../models/qualifications';\n\nconst createHistory = require('history').createBrowserHistory;\n\nconst models = {\n auth,\n errors,\n examApplications,\n exam,\n regions,\n countries,\n qualifications,\n applicant,\n notifications,\n eventsState,\n};\n\nexport const browserHistory: History = createHistory();\n\nexport const store = init({\n models,\n plugins: [createLoadingPlugin({})],\n redux: {\n initialState: {},\n reducers: {\n router: connectRouter(browserHistory),\n },\n middlewares: [routerMiddleware(browserHistory)],\n },\n});\n\nexport type Store = typeof store;\nexport type Dispatch = typeof store.dispatch;\nexport type IRootState = RematchRootState & LoadingPlugin;\n\ninterface LoadingPlugin {\n loading: {\n global?: boolean;\n models: RematchRootState;\n effects: Dispatch;\n };\n}\n","import { createModel } from '@rematch/core';\nimport { Region } from '../../api/ApiClient';\nimport apiConnector from '../../api/ApiConnector';\n\nconst initialState: IState = {\n list: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setList(state, list: IState['list']) {\n return { ...state, list };\n },\n clearList(state) {\n return { ...state, list: null };\n },\n },\n effects: (dispatch: any) => ({\n async getRegionsAsync() {\n const regions = await apiConnector.execApi(dispatch, apiClient => apiClient.getRegions());\n\n this.setList(regions);\n },\n }),\n});\n\n\ninterface IState {\n list: Region[] | null;\n}\n","import { createModel } from '@rematch/core';\nimport { Country } from '../../api/ApiClient';\nimport apiConnector from '../../api/ApiConnector';\n\nconst initialState: IState = {\n list: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setList(state, list: IState['list']) {\n return { ...state, list };\n },\n clearList(state) {\n return { ...state, list: null };\n },\n },\n effects: (dispatch: any) => ({\n async getCountriesAsync() {\n const countries = await apiConnector.execApi(dispatch, apiClient => apiClient.getCountries());\n this.setList(countries);\n },\n }),\n});\n\n\ninterface IState {\n list: Country[] | null;\n}\n","import { createModel } from '@rematch/core';\nimport { QualificationInfoList } from '../../api/ApiClient';\nimport apiConnector from '../../api/ApiConnector';\nimport { IFilterPart, ISearchPart } from 'components/models';\n\nconst initialState: IState = {\n list: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setList(state, list: IState['list']) {\n return { ...state, list };\n },\n clearList(state) {\n return { ...state, list: null };\n },\n },\n effects: (dispatch: any) => ({\n async getQualificationsAsync(payload: IGetQualifications) {\n const list = await apiConnector.execApi(\n dispatch,\n apiClient => apiClient.getQualifications(\n payload.occupationalStandardId,\n payload.readyToUse,\n payload.residency,\n payload.searchField,\n payload.searchTerm,\n payload.page,\n payload.pageSize,\n payload.sortOrder,\n payload.sortField,\n ),\n );\n\n this.setList(list);\n return list;\n },\n }),\n});\n\ninterface IGetQualifications extends IFilterPart, ISearchPart {\n residency?: boolean;\n occupationalStandardId?: string | null;\n readyToUse?: boolean | null;\n}\n\n\ninterface IState {\n list: QualificationInfoList | null;\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport 'components/assets/sass/index.scss';\n\nimport Root from './Root';\nimport { store, browserHistory } from './redux/store/configureStore';\n\n\nReactDOM.render(\n ,\n document.getElementById('root'),\n);\n"],"sourceRoot":""}