{"version":3,"sources":["components/OnlineModal/OnlineModal.module.scss","../../shared/components/OnlineChat/OnlineChat.module.scss","../../shared/components/ExamQuestion/ExamQuestion.module.scss","../../shared/components/TheoreticalQuestionRedactor/TheoreticalQuestionRedactor.module.scss","../../shared/components/Sidebar/Sidebar.module.scss","../../shared/components/Common/Modals/PhoneModal/PhoneModal.module.scss","../../shared/components/ProfileInfoBlock/ProfileInfoBlock.module.scss","../../shared/components/EditableTable/EditableTable.module.scss","components/RegistrationForExam/IdentificationTab/ProfileStyles.module.scss","containers/RegistrationContainer/RegistrationStep.module.scss","../../shared/components/Card/Card.module.scss","../../shared/components/QualificationDetails/QualificationDetails.module.scss","../../shared/components/MultiSelectSection/MultiSelectSection.module.scss","../../shared/components/PracticalQuestionRedactor/PracticalQuestionRedactor.module.scss","../../shared/components/Common/CustomSwitch/CustomSwitch.module.scss","../../shared/components/DocumentUpLoader/DropZone/DropZone.module.scss","../../shared/components/CertificateModal/CertificateModal.module.scss","../../shared/components/UserVideo/UserVideo.module.scss","../../shared/components/Dropdown/Dropdown.module.scss","../../shared/components/Header/Header.module.scss","../../shared/components/Common/Modals/SmsSignModal/SmsSignModal.module.scss","../../shared/components/DateTimePicker/DateTimePicker.module.scss","../../shared/components/OnlineVideo/OnlineVideo.module.scss","../../shared/components/DotsSettings/DotsSettings.module.scss","components/RegistrationForExam/IdentificationTab/IdentificationStyles.module.scss","components/RegistrationForExam/RegistrationForExam.module.scss","../../shared/components/ExamTable/ExamTable.module.scss","../../shared/components/EditExperts/EditExperts.module.scss","../../shared/components/Identification/Identification.module.scss","../../shared/components/ExamWithPayment/ExamWithPayment.module.scss","../../shared/components/WebCamSwitch/WebCamSwitch.module.scss","../../shared/components/DocumentUpLoader/TemplateGroup/TemplateGroup.module.scss","../../shared/components/DocumentUpLoader/UploadedDocument/UploadedDocument.module.scss","../../shared/components/assets/svg/link_icon.svg","../../shared/components/Pagination/Pagination.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/assets/svg/qec/empty_certificate_icon.svg","../../shared/components/ExamApplicationsTable/ExamApplicationsTable.module.scss","../../shared/components/Common/ErrorPlaceholder/ErrorPlaceholder.module.scss","../../shared/components/Common/InputPassword/InputPassword.module.scss","../../shared/components/Common/Loader/Loader.module.scss","../../shared/components/OccupationalStandardDetails/OccupationalStandardDetails.module.scss","../../shared/components/QecTotalInfo/QecTotalInfo.module.scss","../../shared/components/EcDetails/EcDetails.module.scss","../../shared/components/UsersPage/index.module.scss","../../shared/components/Common/LoaderBtn/LoaderBtn.module.scss","../../shared/components/Common/EmptySection/EmptySection.module.scss","../../shared/components/assets/svg/empty_expert_table.svg","../../shared/components/Common/Modals/ResetPasswordModal/ResetPasswordModal.module.scss","../../shared/components/ProtocolLink/ProtocolLink.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/Common/ExtendedSelect/ExtendedSelect.module.scss","../../shared/components/Common/NotificationBundle/index.module.scss","../../shared/components/Common/CustomRadio/CustomRadio.module.scss","../../shared/components/assets/svg/sort_icon.svg","../../shared/components/ProtocolLink/download_icon.svg","../../shared/components/assets/svg/Loader_svg.svg","../../shared/components/Common/SimpleTable/SimpleTable.module.scss","../../shared/components/assets/svg/status_icon.svg","../../shared/components/AuthenticationForm/AuthenticationForm.module.scss","../../shared/components/assets/svg/spkfr/qec_admin_empty_table.svg","../../shared/components/assets/svg/applicants_icon.svg","../../shared/components/assets/svg/error_icon.svg","../../shared/components/Common/CustomCheckbox/CustomCheckbox.module.scss","../../shared/components/assets/svg/back_arrow.svg","../../shared/components/assets/svg/dashboard_logo_SPK.svg","../../shared/components/assets/svg/avatar.svg","../../shared/components/assets/svg/news_icon.svg","../../shared/components/Details/Details.module.scss","../../shared/components/VerifyEmailInput/VerifyEmailInput.module.scss","containers/ExamDetailsContainer/ExamDetailsContainer.module.scss","../../shared/components/EventButtons/EventButtons.module.scss","../../shared/components/Common/Modals/RejectModal/RejectModal.module.scss","../../shared/components/CheckedTable/CheckedTable.module.scss","../../shared/components/ExamApplicationDetails/ExamApplicationDetails.module.scss","../../shared/components/ApplicantExamDetailsTabs/ResultAndStatusTab/ResultAndStatusTab.module.scss","../../shared/components/ApplicantDocuments/ApplicantDocuments.module.scss","../../shared/components/TextLink/TextLink.module.scss","../../shared/components/StatementTab/StatementTab.module.scss","../../shared/components/SignedExpert/SignedExpert.module.scss","layouts/auth/AuthorizedLayout.module.scss","../../shared/components/ExamDetailsTabs/NokOrAkProtocolTab/NokOrAkProtocolTab.module.scss","../../shared/components/Common/BubbleLoader/BubbleLoader.module.scss","../../shared/components/DocumentUpLoader/DocumentUpLoader.module.scss","../../shared/components/PhoneInput/PhoneInput.module.scss","../../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/DragDrop/DragDrop.module.scss","../../shared/components/MultiSelectGroup/MultiSelectGroup.module.scss","../../shared/components/DocFileLink/DocFileLink.module.scss","../../shared/components/EmailConfirmationNotification/EmailConfirmationNotification.module.scss","../../shared/components/ExamDetailsTabs/SovietProtocolTab/SovietProtocolTab.module.scss","../../shared/components/AlertText/AlertText.module.scss","../../shared/components/Row/Row.module.scss","../../shared/components/AnimatedTabs/AnimatedTabs.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/ExamDetailsTabs/VideoTab/VideoTab.module.scss","../../shared/components/AddressLink/AddressLink.module.scss","../../shared/components/OverlayTrigger/OverlayTrigger.module.scss","../../shared/components/SexRadios/SexRadios.module.scss","../../shared/components/Status/Status.module.scss","../../shared/components/Textarea/Textarea.module.scss","../../shared/components/assets/svg/empty_payment_icon.svg","../../shared/components/ExamLog/ExamLog.module.scss","../../shared/components/assets/svg/attachment_Icon.svg","../../shared/components/CKText/CKText.module.scss","../../shared/components/assets/svg/add_icon.svg","../../shared/components/assets/svg/chairman_Icon.svg","../../shared/components/ExamDetailsTabs/ApplicantsTab/ApplicantsTab.module.scss","../../shared/components/ExamDetailsTabs/RulesTab/RulesTab.module.scss","../../shared/components/ExamDetailsTabs/SendProtocolModal/SendProtocolModal.module.scss","../../shared/components/ApplicantExamDetailsTabs/ApplicantExamDetailsTabs.module.scss","../../shared/components/CustomRadioGroup/CustomRadioGroup.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/TemplateGroup/rightArrow_icon.svg","../../shared/components/DocumentUpLoader/TemplateGroup/document_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/QualificationInfoDetails/cert-preview.jpg","../../shared/components/QualificationInfoDetails/QualificationInfoDetails.module.scss","../../shared/components/assets/svg/pen_icon.svg","../../shared/components/assets/svg/wait_time_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/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/const/Colors.ts","../../shared/_helpers/localStorageHelpers/hasAccessToken.ts","../../shared/_helpers/formatHelpers/createExamTimeDate.ts","../../shared/_helpers/formatHelpers/createYandexMapLink.ts","../../shared/_helpers/formatHelpers/getFormattedDuration.ts","../../shared/_helpers/formatHelpers/formatPhoneNumber.ts","../../shared/_helpers/formatHelpers/serialNumberToChar.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/WebRTC/MediaStreamProxy.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/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/ProtocolLink/ProtocolLink.tsx","../../shared/components/Common/Loader/Loader.tsx","../../shared/components/UnsavedFormModal/UnsavedFormModal.tsx","../../shared/components/Common/AdvancedTable/AdvancedTable.tsx","../../shared/components/ExamRequirement/ExamRequirement.tsx","../../shared/components/Common/InputText/InputText.tsx","../../shared/components/Common/SimpleTable/SimpleTable.tsx","../../shared/components/ExpertTabs/Qualifications/QualificationStatus/QualificationStatus.tsx","../../shared/components/ExpertTabs/Qualifications/Qualifications.tsx","../../shared/components/UsersPage/UsersPage.tsx","../../shared/components/ExamQuestion/ExamQuestion.tsx","../../shared/_helpers/getImageUrlFromText.ts","../../shared/components/AuthenticationForm/AuthenticationForm.tsx","../../shared/components/Common/ExtendedSelect/ExtendedSelect.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/Identification/Identification.tsx","../../shared/components/Common/ErrorBoundary/index.tsx","../../shared/components/TheoreticalQuestionRedactor/types.ts","../../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/ExamWithPayment/ExamWithPayment.tsx","../../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/ExamQuestionImage/ExamQuestionImage.tsx","../../shared/components/MultiSelectSection/MultiSelectSection.tsx","../../shared/components/PracticalQuestionRedactor/types.ts","../../shared/components/DateTimePicker/DateTimePicker.tsx","../../shared/components/CKText/CKText.tsx","../../shared/components/PracticalQuestionRedactor/PracticalQuestionRedactor.tsx","../../shared/components/CheckedTable/helpers.ts","../../shared/components/CheckedTable/CheckedTable.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/ProfileInfoBlock/ProfileInfoBlock.tsx","../../shared/components/ExamDetailsTabs/ExamDetailsTabs.tsx","../../shared/components/ExamDetailsTabs/ExpertsTab/ExpertsTab.tsx","../../shared/components/ExamDetailsTabs/ExamInfoTab/ExamInfoTab.tsx","../../shared/components/ExamDetailsTabs/RulesTab/RulesTab.tsx","../../shared/components/ApplicantExamDetailsTabs/ApplicantExamDetailsTabs.tsx","../../shared/components/ApplicantExamDetailsTabs/ResultAndStatusTab/ResultAndStatusTab.tsx","../../shared/components/AddressLink/AddressLink.tsx","../../shared/components/WebCamSwitch/WebCamSwitch.tsx","../../shared/components/UserVideo/UserVideo.tsx","../../shared/hooks/useLocalErrorHandler.ts","../../shared/hooks/useShowGlobalErrorModal.ts","../../shared/hooks/useReloader.ts","../../shared/hooks/useMouseLeaveDetector.ts","../../shared/components/OnlineChat/OnlineChat.tsx","../../shared/components/ApplicantDetailsTabs/ApplicantDetailsTabs.tsx","../../shared/components/AlertText/AlertText.tsx","../../shared/components/ApplicantDocuments/DocumentSwitch/DocumentSwitch.tsx","../../shared/components/ApplicantDocuments/ApplicantDocuments.tsx","../../shared/components/Row/Row.tsx","../../shared/components/OverlayTrigger/OverlayTrigger.tsx","../../shared/components/TextLink/TextLink.tsx","../../shared/components/DocumentUpLoader/TemplateGroup/TemplateGroup.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/QualificationInfoDetails/QualificationStatus/QualificationStatus.tsx","../../shared/components/QualificationInfoDetails/QualificationInfoDetails.tsx","../../shared/components/NotFound/NotFound.tsx","../../shared/components/ProfileInfoTab/ProfileInfoTab.tsx","../../shared/components/PracticalQuestionsTab/PracticalQuestionsTab.tsx","../../shared/components/TheoreticalQuestionsTab/TheoreticalQuestionsTab.tsx","../../shared/components/AnimatedTabs/AnimatedTabs.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","helpers/const/query.ts","containers/ApplicantExamsContainer/ApplicantExamsContainer.tsx","containers/ApplicantQualificationsContainer/ApplicantQualificationsContainer.tsx","containers/ExamApplicationsContainer/ExamApplicationsContainer.tsx","components/OnlineModal/VideoTest.tsx","components/OnlineModal/AudioTest.tsx","components/OnlineModal/ScreenTest.tsx","components/SystemSettings/SystemSettings.tsx","components/RegistrationForExam/IdentificationTab/IdentificationTab.tsx","components/RegistrationForExam/DocumentsTab/DocumentsTab.tsx","components/RegistrationForExam/RegistrationForExam.tsx","containers/RegistrationForExamContainer/RegistrationForExamContainer.tsx","containers/RegistrationContainer/RegistrationStep3.tsx","containers/ExamDetailsContainer/ExamDetailsContainer.tsx","containers/ExamTimeTablesContainer/ExamTimeTablesContainer.tsx","containers/LoginContainer/LoginContainer.tsx","containers/ProfileContainer/ProfileContainer.tsx","containers/RegistrationContainer/RegistrationStep1.tsx","containers/RegistrationContainer/RegistrationStep2.tsx","../../shared/_helpers/const/PersonalDataProcessingPolicy.ts","containers/RegistrationContainer/RegistrationContainer.tsx","containers/ResetPasswordContainer/ResetPasswordContainer.tsx","routes/listOfRoutes.ts","containers/SidebarContainer/SidebarContainer.tsx","containers/EmailConfirmationContainer/EmailConfirmationContainer.tsx","containers/PaymentResultContainer/PaymentResultContainer.tsx","containers/ExamRecognitionContainer/ExamRecognitionContainer.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/ApplicantQualificationsPage/ApplicantQualificationsPage.tsx","pages/EmailConfirmationPage/EmailConfirmationPage.tsx","pages/PaymentResultPage/PaymentResultPage.tsx","pages/ExamRecognitionPage/ExamRecognitionPage.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","index.tsx"],"names":["module","exports","tabsContainer","tab","icon","active","videoContainer","video","autoHeight","testContainer","testStepper","end","errorText","modalTitle","chatContainer","docs","document","document_image","document_title","document_text","document_switch","document_content","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","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","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","phone_input__helper","phone_container","invalid","align_center","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","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","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","card","card_title","card_title_small","card_title_withoutMargin","card__header","titleBorder","category","content__withoutPadding","headerChildContainer","title__withButton","fullHeight","errorPlaceholder","exitModalTitle","label","buttons_container","createBtn","small_field","container","fields","selectGroup","field_title","field_value","date_container","date_group","loadButton","review","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","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","header","header__link","collapseButton","hideMenuIcon","showMenuIcon","headerTitle","date","date_border","date_text","switch","infoContainer","title","examPart","iconsContainer","flare","dotsIcon","button","button_red","button_green","svg","buttonContainer","col","buttonsContainer","primaryButton","tabContainer","tabContainer_tab","tabContainer_tab_complete","table","table__header","table__body","qualification","qualification__name","qualification__centerName","qualification__address","placeholder","placeholder__title","placeholder__text","placeholder__button","pagination","filterBtnContainer","modal_radio_btn","tdClassName","practicalAnswer","switchRow","modalDialog","amountDescription","amountDescription__block","switch_darkness","switchIcon_webCam","switchIcon_webCam_white","switchIcon_screen","switchIcon_screen_white","switchPin","switchPin_white","document_disabled","document_button_hide","uploadedFile","uploadedFile_textContainer","uploadedFile_text","uploadedFile_text_progress","uploadedFile_progressBar","uploadedFile_deleteIcon","page_button","disabled","page_info","per_page_info","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","selectOptions","tableDate","container_title","container_text","table_header_text","th","wrapper","statusSelectOptions","groupClassName","datePicker","datePickerField","InputPassword","InputPassword__container","eye_open","eye_closed","container_full","container_bg","interactiveElement","code_field","template-container","font-small","delete-template-btn","eventButtonsContainer","internalNumberField","repeatInviteBtn","phoneHelper","loaderBtn","btn_content","btn_content_offset","row_input","downloadButton","documentUrl","downloadButton_disabled","prependContent","group","darkLabel","form","add_button","feedbackText","dark_style","light_style","radio__blue","radio_label","info__row","info__label","info__label_dark","info__value","info__valueManyRow","verifyContainer","verifyContainer_rotate","verifyContainer_low_right","convertIcon","arrowsIcon_rotate","rotate","inputGroup","ruleModalTextBlock","ruleModalTitle","rulesCategoryTitle","rulesCheckBox","rulesSubmitButton","rulesModalDialog","button_delete","button_add","rejectModal","rejectModal__header","rejectModal__body","rejectModal__footer","checked_table","incorrect_cell_auto","incorrect_cell_manual","address_icon","reviewText","link","row","link_text","link_icon","text","text_end","text_address","expertSignStatus","expertSignStatus_signed","signedButton","mainPanel","detailsContainer","protocolsContainer","protocolsDetailsContainer","bubble","fillCircle","phone_input__helper_disabled","phone_input__helper_withPadding","phone_input__helper_fixTop","dnd_btn","select_group","select","select_text","fileInfo","warningTitle","notificationText","toastContainer","row_title","row_value","TabBorder","Tabs_inModal","Tabs","__webpack_require__","p","videoTab","address_link","tooltip","copy","status","subStatus","textarea","textarea_resize","log_text","categoryTitle","RulesTab","recommendation","qualificationImage","image","profile__container","loadFromLocalStorage","key","localStorage","getItem","removeFromLocalStorage","removeItem","Color","hasAccessTokenInLocalStorage","accessToken","Boolean","createExamDate","timeDate","moscowLocalTime","clone","tz","moscowTime","format","localTime","time","hour","concat","createYandexMapLink","city","street","encodeURI","getFormattedDuration","duration","d","moment","utc","asMilliseconds","formatPhoneNumber","phone","match","replace","formatSecretPhoneNumber","serialNumberToChar","num","String","fromCharCode","ChatMessageType","VideoType","ColorStatus","color","subText","Object","classCallCheck","this","KurentoResponseIds","_VideoTypeMapping","defineProperty","Cam","Screen","KurentoRequestIds","_AlertsTypes","Violation","LightRed","Info","LightPurple","Error","Orange","Message","Default","appVersion","scripts","Array","prototype","slice","call","querySelectorAll","chunkCss","filter","href","includes","chunkJs","script","src","length","map","f","sp","split","sort","n","join","e","console","error","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","getVideoStreamWithTryAnotherDevices","_callee","options","videoDevices","regenerator_default","a","wrap","_context","prev","next","getVideoStream","abrupt","sent","t0","navigator","mediaDevices","enumerateDevices","then","devices","kind","getVideoStreamWithAllDevices","stop","_callee2","constraintsCreator","i","_context2","createVideoConstraints","bind","deviceId","newOptions","_callee3","videoStream","_context3","videoMediaStream","getUserMedia","audioMediaStream","getAudioTracks","MediaStream","getDisplayStream","_callee4","displayStream","_context4","displayMediaStream","getDisplayMedia","track","addTrack","RegExpErrorsText","mapAPIError","apiError","_","isEmpty","failures","general","message","mapValues","errors","RegExpConst","PHONE","EMAIL","NAME","PASSWORD","NUMBER","TimingSynchronizer","offset","locale","serverTime","diff","Date","applyOffset","zoneOffset","setDefault","now","calcOffset","instance","AppExceptionType","timingSynchronizer","getInstance","Protocol","ApiConnector","ApiClient","apiConfig","onlineEventsSubscriber","onlineMethods","initOnline","dispatch","_onlineEventsSubscriber","_connection","token","setTimeout","asyncToGenerator","mark","HubConnectionBuilder","withUrl","_url","accessTokenFactory","withAutomaticReconnect","build","start","_handleStartConnection","onreconnecting","log","onreconnected","onclose","_onlineMethodsClient","_onlineMethods","init","ev","on","method","t1","connection","sendSocketMessage","_ref2","socketMethod","_startConnectionPromise","_sendSocketMessage","_x","apply","arguments","execApi","_ref3","apiMethod","result","_result","_result2","suppressErrorAndReturnNull","apiClient","code","handleUnAuthorizeError","withoutErrorsHandle","eventStateRequest","clean","_apiClient","eventsState","updateEventState","errorHandler","finish","_x2","_x3","_x4","startsWith","API_BASE_URL","fetch","fetchWithSetHeaderToken","Promise","resolve","createClass","_sendSocketMessage2","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","_ref","checked","number","option","name","onClick","className","labelClassName","withoutFormDetect","rest","objectWithoutProperties","React","useEffect","setChangedInput","react_default","createElement","cx","styles","assign","style","display","id","onChange","htmlFor","Header","routes","sidebarToggled","dropdownItems","_useState","useState","_useState2","slicedToArray","emulateRequestError","toggleEmulateError","hasDropdownItems","data","setItem","isSameLinks","pathname","endsWith","Navbar","variant","body","querySelector","classList","contains","remove","add","react_router_dom","to","activeRoute","route","isArray","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","undefined","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","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","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","path","search","el","string","toLocaleLowerCase","nameOfBlock","renderLinkIcon","nameWords","charAt","toConsumableArray","renderSimpleNavLink","prop","exact","activeClassName","events","Common_NotificationBundle","Collapse","in","renderCollapseBlock","getEventsSum","eventsArr","reduce","acc","event","Sidebar","profile","profileTabs","tabs","onLogout","sidebarRef","createRef","openAvatar","setOpenAvatar","detectMobileOutsideClick","clientWidth","target","closest","logoSPKFR","background","avatar","lastName","firstName","mini","Sidebar_NavList","Pagination","prevPageStyleName","page","nextPageStyleName","pages","data-disabled","getAttribute","newPagination","min","max","parseInt","data-test-pagination-per-page","perPage","toString","ExamTable","onChooseExam","tableRows","onChangePagination","onClickPlaceholderButton","placeholderTitle","placeholderText","placeholderButtonText","placeholderIcon","hasNumberOfApplicants","Table","responsive","hover","columnHeader","rowData","data-test-exam-number","data-test-exam-id","qualificationEvaluationCenterName","examinationCenterName","address","numberOfApplicants","examType","components_Status_Status","MappedExamTypes","components_Pagination_Pagination","total","pageSize","Math","ceil","getPaginationObject","Common_EmptySection_EmptySection","newsIcon","onButtonClick","monthsList","days","day","padStart","ExamStatus","DatePicker","initialDate","from","withoutDetectChanges","datePickerSizeSm","isInvalid","initialBirthDate","year","month","datePickerDate","setDatePickerDate","handleBirthDayChange","formData","isDateFilled","daysInMonth","ymd","momentDate","yearsList","years","currentYear","getFullYear","t","getYears","Container","esm_Row","Col","xs","Common_ExtendedSelect_ExtendedSelect","smSize","withoutStrictValue","m","y","Form","Control","Feedback","Details","infoRows","withDarkRowLabel","Group","as","Row","controlId","cn","StringValue","ArrayStringValue","LinkStringValue","ReactNodeValue","renderSwitch","WarningModal","onHide","onAccess","appendFooterItem","titleClassNames","bodyClassNames","footerClassNames","accessBtnTittle","closeBtnTittle","dialogClassName","withoutCancelButton","withoutCloseIcon","withoutTitlePadding","withoutOverflow","large","disableAccessButton","Modal","data-test-warning-modal","centered","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","step","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","MappedExamStatuses","_MappedExamStatuses","AwaitingExpertConfirmation","IsApplying","Success","ApplyingFinished","IsPassing","Canceled","Red","Finishing","Finished","FinalizedResults","NokProtocolSigned","AkProtocolSigned","SovietProtocolSignedByMembers","SovietProtocolSignedByChairman","ExamSessionStatus","ExamSessionReadyStatuses","MappedExamApplicationStatuses","_MappedExamApplicatio","Draft","Primary","InReview","CorrectionsRequired","PaymentRequired","Paid","AdmittedToExam","Absent","NotPassed","Passed","WaitingForOnlineAccepting","HaveNotOnlineAuth","AppType","ExamType","DocumentType","IdentityDocType","Sex","FilteredExamStatus","_MappedExamSessionRea","WaitingForStart","ExamIsPassing","TheoreticalExamIsPassingAndSessionStarted","ExamSessionTimeout","PracticalExamIsPassingAndSessionStarted","ExamFinished","SessionFinished","PracticalQuestionType","TheoreticalQuestionType","ExamPartType","_MappedExamTypes","Online","Recertification","Intramural","CustomSwitchStatusEnum","ProtocolLink","additionalLabel","rel","downloadIcon","Loader","showBg","svg_full","LoaderSvg","withRouter","history","modalVisible","setModalVisible","lastLocation","setLastLocation","confirmedNavigation","setConfirmedNavigation","closeModal","handleConfirmNavigationClick","getShowModal","onbeforeunload","react_router","when","nextLocation","AdvancedTable","handleSearch","tableHeaders","handleRowClick","handleOrder","withoutPagination","handlePageChange","filters","handleSelectChange","initialFormData","x","fieldName","savedFilters","searchField","searchTerm","firstRun","setFirstRun","setFormData","typingTimer","setTypingTimer","inputTarget","setInputTarget","selectedOption","setSelectedOption","setFrom","setTo","haveDate","useMemo","isDate","dateValuesArr","columns","c","dateArr","minDate","maxDate","onInputKeyup","handleInputChange","onInputKeydown","onInputChange","fieldValue","newFormData","v","onHandleSelectChange","data-test-table","columnStyles","defaultValue","onKeyUp","onKeyDown","components_DateTimePicker_DateTimePicker","oldDateFrom","oldDateTo","dateFrom","dateTo","onHandleDateChange","firstDateProps","readOnly","secondDateProps","withoutLabels","withoutTime","item","rowNum","data-test-row-id","data-test-row-num","colSpan","CustomSwitch","_containerOptionalCla","_cn","_cn2","changed","pinClassName","iconClassName","isFixPosition","containerOptionalClasses","stopPropagation","data-test-switch","InputTotal","setRef","labelClassNames","withoutLabel","pattern","withDarkLabel","hasError","setHasError","has","column","InputGroup","Prepend","Text","node","SimpleTable","tableCellClassName","QualificationStatus","expireDate","isAfter","Qualifications","qualificationsList","cardTitle","cardCategory","onQualificationListRowClick","onHideErrorModal","showErrorModal","emptyDataProps","qualificationPlaceholderIcon","listTableRows","examApplicationId","issueDate","Qualifications_QualificationStatus_QualificationStatus","components_Card_Card","Common_SimpleTable_SimpleTable","minWidth","ExamRequirement","TabKey","ExamQuestion","theoreticalFactual","practicalFactual","withoutResult","userSelect","answerNumber","factualAnswersNumbers","selected","theoreticalQuestion","_getImageUrlFromText","imageUrls","textParts","sortedQuestionText","hasUrl","startImgUrl","imageUrl","getImageUrlFromText","components_CKText_CKText","components_ExamQuestionImage_ExamQuestionImage","criteriaForRate","answersHeader","answers","Offline","matchingAnswersHeader","essayAnswer","factual","openAnswerAnswer","correct","tabularAnswer","showCorrectAndApplicantAnswer","components_EditableTable_EditableTable","initialRows","applicantAnswerRows","headersSeparator","onlyWatch","correctAnswerRows","components_CheckedTable_CheckedTable","checkedCell","rows","tableType","ManualCheckTabular","matchingAnswers","j","correctAnswersNumbers","viewBox","fill","xmlns","fillRule","clipRule","b","matchingNumber","factualAnswer","InitFormErrors","InitFormData","rememberMe","AuthenticationForm","onLogin","subTitle","resetPasswordLink","registerLink","withRegister","withEmail","withPhone","withoutForgotPassword","formFieldErrors","setFormFieldErrors","getFieldErrorFromApiError","phoneError","emailError","passwordError","email","checkValidationErrors","handleSubmit","validResult","FormGroup","Common_CustomCheckbox_CustomCheckbox","data-test-password-group","FormLabel","Common_InputPassword","ExtendedSelect","multi","onChangeMulti","noOptionsMessage","notSelectedOptions","onMenuOpen","invalidTitle","customStyle","control","base","border","multiOptions","selectedOptions","findValue","classNames","data-test-extended-select","react_select_browser_esm","isDisabled","isMulti","classNamePrefix","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","DocType","ErrorBoundary","info","logErrorToMyService","stack","Component","Identification","stateData","buttonText","onSubmitPassport","onSubmitOther","onCancel","withoutSubmitButton","initErrors","identityDocType","serialNumber","issuedBy","dateOfIssue","registrationAddress","validErrors","setValidErrors","Passport","setIdentityDocType","setSerialNumber","setIssuedBy","setDateOfIssue","setRegistrationAddress","setTitle","setData","docTypeOptions","Other","passport","otherIdentity","hasOwnProperty","newErrors","checkFieldsErrors","submitData","val","isValidFormData","fieldsError","values","every","subData","_errors","components_Textarea_Textarea","components_DatePicker_DatePicker","span","ErrorPlaceholder","renderBody","errorIcon","k","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","FilterState","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","withoutNum","selectContainerClassName","right","onChangeSelect","getCurrentAnswer","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","DragDrop_DragDrop","TheoreticalQuestionRedactor_QuestionVariant","TheoreticalQuestionRedactor_MatchingRightVariant","createEmptyMatchingAnswer","ExamQuestionImage","MultipleChoiceTheoretical","maxWidth","Processed","QuestionType","DateTimePicker","fieldClassName","withStyledBorderSelect","checkSameDates","nDate","isSame","processSameDates","toDate","set","minute","fromDate","DateTime_default","inputProps","dayDate","timeFormat","closeOnSelect","CKText","dangerouslySetInnerHTML","__html","OpenAnswerPractical","prepareTableHeaders","h","lastItem","last","newAcc","getHeaderRowCount","separator","tooltipWrap","element","esm_OverlayTrigger","overlay","Tooltip","minHeight","CheckedTable","headerArr","rowCount","colCount","striped","getTableHeader","newRows","solution","splice","uniqueId","addSeparateRowToTable","cell","standard","RowRendererDrag","disabledMoving","gridLength","handleDeleteClick","RowRenderer_RowRendererNotDrag","dragChild","deleteIcon","RowRendererNotDrag","headersLength","handleCLickRowAdd","renderAddRowBtn","addIcon","RowRenderer","convertGridToSolution","grid","r","submitSolution","fromAnswerRows","hideTitle","tableId","tableRef","headersArr","multilineArr","multiline","readOnlyArr","readonly","headersWidth","_ref5","forbidMoving","prepareTaskGrid","answerRows","setGrid","_useState3","_useState4","tableWidth","setTableWidth","newGrid","handleRowDrop","sourceRow","nGrid","rowNumber","createItemCb","emptyGrid","totalGrid","handleCellInputChange","currentTarget","renderFields","_ref6","components_AutoGrowTextArea_AutoGrowTextArea","onKeyPress","nRow","nCol","handleSelectNextCell","getHeaderWidth","arr","EditableTable_RowRenderer","data-test-answer-table-cell","data-not-move","EmailConfirmation","onPush","tokenError","EmailConfirmationNotification","sendConfirmationEmail","showVerifyEmailModal","setShowVerifyEmailModal","sendEmail","sendEmailAgain","emailConfirmed","Common_NotificationSystem_NotificationSystem","AutoGrowTextArea","areaRef","autoGrowTextArea","onFocus","textField","clientHeight","scrollHeight","ProfileInfoBlock","canChange","cancelButtonText","onTryChange","onUpdatePhone","hideChangeButtons","canChangeOnlyPhone","withoutBirthDate","withoutSex","middleName","birthDate","sex","showModal","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","ExpertsTab","propsExperts","experts","handleExpertClick","appType","setExperts","isQec","Qec","isApplicant","Applicant","roleOptions","Common_AdvancedTable_AdvancedTable","fullName","chairman","expertId","createTableHeaders","newExperts","exp","expertIcon","ExamInfoTab","examDetails","components_Details_Details","DetailsStringValue","actualStartTime","DetailsReactNodeValue","components_AddressLink_AddressLink","withoutLink","practiceDefense","applicationsLimit","theoreticalQuestionsCount","theoreticalPartDuration","practicalQuestionsCount","practicalPartDuration","Expert","nokProtocolUrl","components_ProtocolLink_ProtocolLink","akProtocolUrl","sovietProtocolUrl","getInfoRowsFromExamDetails","rules","ResultAndStatusTab","examApplicationStatus","processedByNark","finalized","examStatus","narkPageUrl","certificateUrl","processingExamStatus","processingColorStatus","finalizedColorStatus","theoryStatus","isPassedTheory","practiceStatus","fullStatus","processStatus","renderRow","statusChangeTime","components_TextLink_TextLink","withIcon","ApplicantExamDetailsTabs","withoutExpertsTab","withoutInfoTab","withoutRulesTab","onlyResultAndStatus","resultAndStatusCardCategory","resultAndStatusCardTitle","examSessionDetails","inModal","examApplication","renderResultAndStatusChild","onChangeDocumentSwitch","isExpert","isSpkfr","Spkfr","getDefaultTab","Experts","ResultAndStatus","setActiveTab","activeTab","showDetails","renderResultAndStatus","ApplicantExamDetailsTabs_ResultAndStatusTab_ResultAndStatusTab","exam","components_AnimatedTabs_AnimatedTabs","activeKey","onSelect","Tab","eventKey","ExamDetailsTabs_ExamInfoTab_ExamInfoTab","recommendations","RecommendationTab","applicant","applicantIdentityDoc","components_ProfileInfoTab_ProfileInfoTab","ExamDetailsTabs_ExpertsTab_ExpertsTab","Rules","ExamDetailsTabs_RulesTab_RulesTab","documents","Documents","components_ApplicantDocuments_ApplicantDocuments","onChangeSwitch","StatementInfoTab","components_StatementTab_StatementTab","practicalQuestions","PracticalQuestions","components_PracticalQuestionsTab_PracticalQuestionsTab","applicantStatus","theoreticalQuestions","TheoreticalQuestions","components_TheoreticalQuestionsTab_TheoreticalQuestionsTab","AddressLink","addressIcon","WebCamSwitch","webCam","darkness","UserVideo","muted","camSwitch","onSwitch","videoType","withoutFullScreen","isWebCam","useLayoutEffect","srcObject","handleSwitch","useCallback","load","poster","ExclamationIcon","autoPlay","srcLang","FullScreenIcon","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","components_WebCamSwitch_WebCamSwitch","useLocalErrorHandler","handlerType","disable","useShowGlobalErrorModal","handler","toggleModal","useReloader","oldLocation","setOldLocation","setReload","useMouseLeaveDetector","ChatTabs","AlertText","DocumentSwitch","onSwitchClick","setActive","newActive","ApplicantDocuments","activeValues","setActiveValues","fileUrl","ApplicantDocuments_DocumentSwitch_DocumentSwitch","documentDescription","docsIcon","rowClassName","valueColor","Row_Row","OverlayTrigger","triggerText","_ref$placement","delay","hide","Popover","TextLink","TemplateGroup","templateGroup","templateNum","changeButtonText","template","documentIcon","description","rightArrowIcon","UploadedDocument","file","onDeleteFile","getDocFromTemplate","onDeleteSource","fileId","fileExtension","fileName","fileSize","documentTemplateId","isSource","progress","progressVal","size","parseFloat","toFixed","uploadIcon","ProgressBar","DropZone","onDrop","uploadedDocuments","loadingFile","lastDropTemplateId","showErrorUploadFile","setShowErrorUploadFile","templateId","uploadProps","dist_es","accept","fileRejection","getRootProps","getInputProps","doc","sourceFiles","getDocSourceFiles","DocumentUpLoader_UploadedDocument_UploadedDocument","DocumentUpLoader","onGoBack","documentTemplateGroups","deleteDocument","uploadDocument","deleteDocumentSource","nUploadedDocuments","correctionsRequired","goBackButtonText","onSelectTemplate","showWarningModal","setShowWarningModal","documentsPack","setDocumentsPack","selectedTemplateGroup","setSelectedTemplateGroup","selectedTemplateGroupNum","setSelectedTemplateGroupNum","setUploadedDocuments","setLoadingFile","setLastDropTemplateId","identificationDocument","templates","dropZoneDocuments","temp","documentId","sourceFileId","acceptedFiles","onUploadFile","DocumentUpLoader_DropZone_DropZone","DocumentUpLoader_TemplateGroup_TemplateGroup","PhoneInput","fixTop","fixLeft","QualificationInfoDetails","qualificationDetails","onBackClick","qecFullName","QualificationInfoDetails_QualificationStatus_QualificationStatus","CertPreview","NotFound","ProfileInfoTab","hideIdentity","PracticalQuestionsTab","factualPracticalQuestionAnswers","questionId","components_ExamQuestion_ExamQuestion","fontWeight","TheoreticalQuestionsTab","theoreticalCorrectQuestionsCount","factualTheoreticalQuestionAnswers","theoreticalFailedQuestionsCount","theoreticalCorrectPercent","round","theoreticalFailedPercent","AnimatedTabs","tabBorderStyle","setTabBorderStyle","setKey","tabsLength","firstTab","firstTabPaddingLeft","getComputedStyle","paddingLeft","leftStartPosition","getBoundingClientRect","selectedTab","top","ariaSelected","tabBound","tabStyle","paddingRight","firstTabY","selectedTabY","moveTabBorder","newKey","StatementTab","sendingText","setSendingText","showSendingTextError","setShowSendingTextError","_React$useMemo","examName","qualificationTitle","identification","applicantFullName","whiteSpace","certificateDeliveryAddress","components_SignedExpert_SignedExpert","commissionTitle","expert","signed","signedCode","SignedExpert","acceptInvite","acceptedInvite","components_OverlayTrigger_OverlayTrigger","penIcon","waitTimeIcon","DotsSettings","showButton","setShowButton","iconRef","handleClickOutside","iconType","SexRadios","Common_CustomRadio_CustomRadio","Female","VerifyEmailInput","setRotate","verifyEmailIcon","arrowsIcon","Status","Textarea","resize","formProps","Dropdown","CustomMenu","forwardRef","aProps","renderDropdownContent","esm_Dropdown","Toggle","Menu","Item","Link","Divider","UnAuthorizedLayout","react","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","processSendUpdatePhoneVerificationCode","_this28","_this29","processCheckUpdatePhoneVerificationCode","_this30","_this31","processUpdatePhone","_this32","_this33","processGetEventsState","_this34","EventsStateHolder","_this35","processGetCaptcha","_this36","_this37","processConfirmEmailByToken","_this38","_this39","processSendConfirmationEmailAgain","_this40","_this41","processCreateExamApplication","_this42","ExamApplicationDetails","examReviewStatus","sortOrder","sortField","_this43","encodeURIComponent","processGetExamApplicationsList","_this44","ApplicantExamList","_this45","processSendCodeToSignApplication","_this46","_this47","processSubmitExamApplication","_this48","myExamStatus","_this49","processGetMyExamApplicationsList","_this50","_this51","processGetExamApplication","_this52","qualificationId","_this53","processGetDocumentTemplateGroups","_this54","result200","_step","_iterator","_createForOfIteratorHelper","s","done","QualificationDocumentTemplateGroup","err","contentType","contentDisposition","_this55","content_","FormData","append","processUploadExamApplicationDocument","_this56","_this57","processDeleteExamApplicationDocument","_this58","_this59","processDeleteExamApplicationDocumentSource","_this60","_this61","toISOString","processGetExams","_this62","_this63","processGetExamDetails","_this64","ApplicantExamDetails","_this65","processGenerateOnlineExamRedirectionUrl","_this66","_this67","processGeneratePaymentUrl","_this68","_this69","processGetQualifications","_this70","_step2","_iterator2","ApplicantQualification","_this71","processGetQualificationDetails","_this72","ApplicantQualificationDetails","property","_data","ApplicantExam","examId","reviewComment","examPrice","qualificationLevel","occupationalStandardTitle","recertification","applicationSubmitDate","_step3","_iterator3","ExamExpert","_step4","_iterator4","toJSON","_step5","_iterator5","_step6","_iterator6","ApplicantPassport","ApplicantOtherIdentity","applicantId","level","regNumber","certRegNumber","examDate","secretCode","narkDocUrl","ChangePassword","CheckVerificationCode","ConfirmEmailByToken","CreateExamApplication","Exam","examinationCenterId","price","qualificationEvaluationCenterId","protocolNumber","examSessionStatus","examSessionReadyStatus","_step7","_iterator7","ExamApplicationDocument","agreementUrl","approveCode","_step8","_iterator8","submissionDate","_step9","_iterator9","SourceFile","_step10","_iterator10","ExamReviewStatus","region","position","GeneratePaymentUrl","MyExamStatus","LoginApplicant","QualificationDocumentTemplate","order","hasVariants","_step11","_iterator11","_step12","_iterator12","RegisterApplicant","ResetPassword","SendCodeToSignApplication","SendConfirmationEmailAgain","SendVerificationCode","SendVerificationCodeForUpdatePhone","SetApplicantOtherIdentity","SetApplicantPassport","SubmitExamApplication","UpdatePhone","UpdateProfile","wasSent","ApiException","_Error","ApiClient_createSuper","_this73","isApiException","wrapNativeSuper","_ApiClientBase","_super2","_this74","http2","baseUrl2","_this75","query","TIMETABLES","APPLICATIONS","APPLICANT_EXAMS","RECOGNITION","examsList","examApplications","myExamApplicationsList","fetchMyExamApplications","fetchMyExamApplicationsAsync","setErrorHandler","All","getStatus","statuses","components_ExamTable_ExamTable","ApplicantExamsContainer_objectSpread2","getQualificationsList","getQualificationsListAsync","getApplicantQualificationDetails","getQualificationDetailsAsync","setSelectedQualification","selectedQualification","setShowErrorModal","components_QualificationInfoDetails_QualificationInfoDetails","ExpertTabs_Qualifications_Qualifications","HEADER","ExamApplicationsContainer_objectSpread2","examApplicationsList","fetchExamApplications","fetchExamApplicationsAsync","checkApplicantStatus","app","notReadyForOnlineExam","examApplicationsListItem","VideoTest","steps","index","disableButton","TestVideoPoster","emoji","currStep","isError","setError","stream","setStream","setVideoDevices","currentVideoDevice","setCurrentVideoDevice","getVideoDevices","handleStart","mediaStream","getVideoTracks","getSettings","handleChangeVideoDevice","onNextTest","getTracks","videoPoster","TestVideoErrorPoster","components_UserVideo_UserVideo","aria-label","role","WebCamIcon","SETTINGS","strokeStyle","gradient","fillStyle","lineWidth","yOffset","capacity","frame","newarr","AudioTest","TestAudioPoster","errorVideo","TestAudioErrorPoster","audioAnalyzer","canvas","canvasCtx","initCanvas","getContext","context","createLinearGradient","g","addColorStop","createGradient","clearRect","fillRect","beginPath","moveTo","lineTo","stroke","clampY","getPoints","analyser","getByteTimeDomainData","dataArray","sliceWidth","bufferLength","temparr","audioContext","AudioContext","source","createMediaStreamSource","createAnalyser","fftSize","frequencyBinCount","Uint8Array","draw","diff1","diff2","diff3","diff4","xc","yc","quadraticCurveTo","requestAnimationFrame","MicroIcon","ScreenTest","TestDisplayPoster","errorPoster","onSuccess","screenPoster","ScreenIcon","OnlineModal","WebCam","isActive","tabsOrder","Micro","activeTabIndex","handleClose","MicrophoneIcon","fullWidth","OnlineModal_VideoTest","OnlineModal_AudioTest","OnlineModal_ScreenTest","SystemSettings","showBrowserModal","setShowBrowserModal","showVersionModal","setShowVersionModal","showSettingsModal","setShowSettingsModal","handleCloseSettingModal","handleSuccess","onModalSubmit","click","nWindow","chrome","webstore","runtime","yandex","opr","raw","userAgent","getChromeVersion","components_OnlineModal_OnlineModal","IdentificationTab","setApplicantPassport","setApplicantOtherIdentity","onUpdateProfile","initIdentificationErrors","initStatePassport","initStateIdentification","initStateProfile","stateProfile","setStateProfile","validProfileErrors","setValidProfileErrors","validIdentificationErrors","setIdentificationValidErrors","statePassport","setStatePassport","stateIdentification","setStateIdentification","newIdentificationErrors","newProfileErrors","valid","_errors2","identificationStyles","profileStyles","DocumentsTab","components_DocumentUpLoader_DocumentUpLoader","goToIdentificationTab","goToSendingTab","RegistrationForExam","documentsProps","sendingProps","sendCodeToSignApplication","createExamApplication","onSubmitSmsModal","identificationIcon","Sending","sendIcon","components_AlertText_AlertText","RegistrationForExam_IdentificationTab_IdentificationTab","RegistrationForExam_DocumentsTab_DocumentsTab","Modals_SmsSignModal_SmsSignModal","SexTranslation","submitExamApplication","fetchExamDetails","getDocumentTemplateGroups","getDocumentTemplateGroupsAsync","sendCodeToSignApplicationAsync","deleteExamApplicationDocument","uploadExamApplicationDocument","deleteExamApplicationDocumentSource","deleteExamApplicationDocumentSourceAsync","setApplicantPassportAsync","setApplicantOtherIdentityAsync","updateProfile","setWaitingSecond","_createExamApplication","_sendCodeToSignApplication2","components_RegistrationForExam_RegistrationForExam","URLSearchParams","onlineExamRedirectionUrl","generateOnlineExamRedirectionUrl","generateOnlineExamRedirectionUrlAsync","showRegisterInfo","setShowRegisterInfo","showRulesModal","setShowRulesModal","complianceRules","setComplianceRules","showSystem","setShowSystem","redirectionLink","draft","changeStatus","handleCloseShowSystem","onRegisterButtonClick","components_SystemSettings_SystemSettings","containers_RegistrationForExamContainer_RegistrationForExamContainer","components_ApplicantExamDetailsTabs_ApplicantExamDetailsTabs","akExperts","sovietExperts","manualCheck","examLogs","ExamTimeTablesContainer_objectSpread2","fetchExams","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","defaultState","sendRegistrationVerificationCode","clearErrors","setRegisterForm","nextStep","setForm","setErrors","_useState5","_useState6","_useState7","_useState8","formSubmit","validateErrors","isFormValid","handleChangeInput","newForm","phoneForVerify","registerForm","verificationStatus","checkRegistrationVerificationCode","prevStep","resendTimer","setResendTimer","data-test-verification-code-group","_e$target","personalChecked","defaultFormErrors","register","lkHost","hostname","setE","isNotValid","renderSexElement","handleSexChange","data-test-date-group","data-test-sex-group","targetNodeName","nodeName","data-test-first-checkbox","RegistrationContainer","RegistrationContainer_RegistrationStep1","RegistrationContainer_RegistrationStep2","RegistrationContainer_RegistrationStep3","sendResetPasswordVerificationCode","sendResetPasswordVerificationCodeAsync","checkResetPasswordVerificationCode","checkResetPasswordVerificationCodeAsync","pagePhone","setPagePhone","pageCode","setPageCode","goToStep","newStep","step1Props","_sendCode","step2Props","_checkCode","_resendCode","step3Props","_resetPassword2","ResetPasswordSteps_ResetPasswordFirstStep","ResetPasswordSteps_ResetPasswordSecondStep","ResetPasswordSteps_ResetPasswordThirdStep","DASHBOARD_ROUTES","TABS","ExamIcon","QualificationIcon","PROFILE_TABS","fetchProfile","startEventStatePoll","stopEventStatePoll","setTabs","_useShowGlobalErrorMo","REACT_APP_LOCAL_RUN_TESTS","menuMap","newList","l","updateTabEvents","menuEventsMap","components_Sidebar","components_EmailConfirmationNotification_EmailConfirmationNotification","Заявки в рассмотрении","Мои экзамены","confirmEmailByToken","confirmEmailByTokenAsync","checkToken","components_EmailConfirmation_EmailConfirmation","success","ExamRecognitionContainer_objectSpread2","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","ApplicantQualificationsPage","containers_ApplicantQualificationsContainer_ApplicantQualificationsContainer","EmailConfirmationPage","containers_EmailConfirmationContainer_EmailConfirmationContainer","PaymentResultPage","containers_PaymentResultContainer_PaymentResultContainer","ExamRecognitionPage","containers_ExamRecognitionContainer_ExamRecognitionContainer","UnAuthorizedHandler","unauth_UnAuthorizedLayout","models","examApplicationsProcessing","rootWrapper","containers_SidebarContainer_SidebarContainer","components_Header_Header","data-test-authorized-content","AuthorizedHandler","auth_AuthorizedLayout","fallback","Common_ErrorBoundary","returnUrl","getReturnUrl","render","routes_AuthorizedHandler","createReturnUrl","routes_UnAuthorizedHandler","Root","es","store","connected_react_router_esm","routes_Routes","api_ApiConnector","createModel","reducers","setAuth","clear","_login","apiConnector","_fetchProfile","t2","_register","_sendResetPasswordVerificationCodeAsync","_checkResetPasswordVerificationCodeAsync","_resetPassword","_callee6","_context6","_updateProfile","_callee7","_context7","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","paymentUrl","setExamState","setOnlineExamRedirectionUrl","_fetchExams","getExams","_uploadExamApplicationDocument","api","uploadExamApplicationDocumentFix","_deleteExamApplicationDocument","_deleteExamApplicationDocumentSourceAsync","payForExamApplication","_payForExamApplication","generatePaymentUrl","_submitExamApplication","fetchExamApplication","_fetchExamApplication","getExamApplication","_fetchExamDetails","getExamDetails","_generateOnlineExamRedirectionUrlAsync","setQualificationsList","setQualificationDetails","setDocumentTemplateGroups","setApplicantIdentityDoc","_getQualificationsListAsync","getQualifications","_getQualificationDetailsAsync","getQualificationDetails","_getIdentityDocAsync","_getDocumentTemplateGroupsAsync","_setApplicantPassportAsync","_setApplicantOtherIdentityAsync","_sendCodeToSignApplicationAsync","verificationCodeSendingStatus","clearExpertState","setExamApplicationList","setMyExamApplicationList","_fetchExamApplicationsAsync","getExamApplicationsList","_fetchMyExamApplicationsAsync","getMyExamApplicationsList","notificationArr","intervalTimer","setEventsState","isEqual","getEventState","_getEventState","getEventsState","getNewNotifications","notificationsArr","setInterval","clearInterval","prevNotif","nextNotif","notificationMessageMap","ApplicantExamApplications","ApplicantMyExamApplications","browserHistory","createHistory","require","createBrowserHistory","plugins","createLoadingPlugin","redux","router","connectRouter","middlewares","routerMiddleware","ReactDOM","src_Root","getElementById"],"mappings":"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","file":"static/js/main.aa418326.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 = {\"chatContainer\":\"OnlineChat_chatContainer__2wc4F\",\"tabsContainer\":\"OnlineChat_tabsContainer__3Ff7_\",\"tab\":\"OnlineChat_tab__3HOBU\",\"active\":\"OnlineChat_active__DJM1q\",\"docs\":\"OnlineChat_docs__fcN01\",\"document\":\"OnlineChat_document__2Ostk\",\"document_image\":\"OnlineChat_document_image__3ldyh\",\"document_title\":\"OnlineChat_document_title__5qvjl\",\"document_text\":\"OnlineChat_document_text__1jTSP\",\"document_switch\":\"OnlineChat_document_switch__zEebL\",\"document_content\":\"OnlineChat_document_content__2cVkZ\",\"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 = {\"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 = {\"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 = {\"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 = {\"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 = {\"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 = {\"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\"};","// 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 = {\"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\"};","// 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 = {\"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 = {\"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 = {\"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 = {\"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\"};","// 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 = {\"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\"};","// 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 = {\"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\",\"svg\":\"DotsSettings_svg__1g9G8\",\"buttonContainer\":\"DotsSettings_buttonContainer__3H444\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"align_center\":\"IdentificationStyles_align_center__2pnQC\",\"col\":\"IdentificationStyles_col__u9ctd\",\"buttonsContainer\":\"IdentificationStyles_buttonsContainer__2fiyF\"};","// 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 = {\"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\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttons_container\":\"EditExperts_buttons_container__1D26V\",\"pagination\":\"EditExperts_pagination__1uwkz\",\"filterBtnContainer\":\"EditExperts_filterBtnContainer__3-ShR\",\"modal_radio_btn\":\"EditExperts_modal_radio_btn__1I07V\",\"modalTitle\":\"EditExperts_modalTitle__2AXUT\",\"switchContainer\":\"EditExperts_switchContainer__o7EB6\",\"tdClassName\":\"EditExperts_tdClassName__1dEjx\"};","// 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 = {\"qualification\":\"ExamWithPayment_qualification__h6cbi\",\"qualification__name\":\"ExamWithPayment_qualification__name__2uK-l\",\"qualification__centerName\":\"ExamWithPayment_qualification__centerName__2CsET\",\"qualification__address\":\"ExamWithPayment_qualification__address__3IPoP\",\"switchRow\":\"ExamWithPayment_switchRow__2ImFt\",\"modalDialog\":\"ExamWithPayment_modalDialog__3Jf2Q\",\"amountDescription\":\"ExamWithPayment_amountDescription__1vVga\",\"amountDescription__block\":\"ExamWithPayment_amountDescription__block__AhTk_\"};","// 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 = {\"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 = {\"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\"};","module.exports = \"/static/media/link_icon.195b3231.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 = {\"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\"};","module.exports = \"/static/media/empty_certificate_icon.42b6079c.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\",\"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 = {\"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 = {\"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 = {\"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 = {\"template-container\":\"QecTotalInfo_template-container__Uy2hO\",\"buttons_container\":\"QecTotalInfo_buttons_container__3Edy7\",\"createBtn\":\"QecTotalInfo_createBtn__2n-uA\",\"cancelBtn\":\"QecTotalInfo_cancelBtn__NiX5l\",\"font-small\":\"QecTotalInfo_font-small__1mCdd\",\"font-extra-small\":\"QecTotalInfo_font-extra-small__2aSDK\",\"delete-template-btn\":\"QecTotalInfo_delete-template-btn__3Co3f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttons_container\":\"EcDetails_buttons_container__NqZ5L\",\"createBtn\":\"EcDetails_createBtn__15R6V\",\"cancelBtn\":\"EcDetails_cancelBtn__ooRFt\",\"eventButtonsContainer\":\"EcDetails_eventButtonsContainer__1PwqK\"};","// 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_\"};","module.exports = \"/static/media/empty_expert_table.c8086229.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row_input\":\"ResetPasswordModal_row_input__3qWsr\"};","// 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 = {\"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 = {\"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\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"radio__blue\":\"CustomRadio_radio__blue__3qAjw\",\"radio_label\":\"CustomRadio_radio_label__33YqX\"};","module.exports = \"/static/media/sort_icon.503a4912.svg\";","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/status_icon.94367a97.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"AuthenticationForm_content__elh13\"};","module.exports = \"/static/media/qec_admin_empty_table.ffc377de.svg\";","module.exports = \"/static/media/applicants_icon.af759383.svg\";","module.exports = \"/static/media/error_icon.7b3b7769.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"blue\":\"CustomCheckbox_blue__3Uv-9\"};","module.exports = \"/static/media/back_arrow.031f4750.svg\";","module.exports = \"/static/media/dashboard_logo_SPK.56bccf1c.svg\";","module.exports = \"/static/media/avatar.9a7806dd.svg\";","module.exports = \"/static/media/news_icon.99f024b3.svg\";","// 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 = {\"ruleModalTextBlock\":\"ExamDetailsContainer_ruleModalTextBlock__1F8gG\",\"ruleModalTitle\":\"ExamDetailsContainer_ruleModalTitle__3dZxI\",\"rulesCategoryTitle\":\"ExamDetailsContainer_rulesCategoryTitle__1Bi42\",\"rulesCheckBox\":\"ExamDetailsContainer_rulesCheckBox__1qOs3\",\"rulesSubmitButton\":\"ExamDetailsContainer_rulesSubmitButton__2RCFS\",\"rulesModalDialog\":\"ExamDetailsContainer_rulesModalDialog__BXsAI\"};","// 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 = {\"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 = {\"address_icon\":\"ExamApplicationDetails_address_icon__141vG\",\"reviewText\":\"ExamApplicationDetails_reviewText__3SmOb\",\"link\":\"ExamApplicationDetails_link__3XyXs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"ResultAndStatusTab_row__dgYGJ\"};","// 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 = {\"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 = {\"content\":\"AuthorizedLayout_content__AngNr\",\"mainPanel\":\"AuthorizedLayout_mainPanel__2npdR\",\"adaptive\":\"AuthorizedLayout_adaptive__2EBCw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"detailsContainer\":\"NokOrAkProtocolTab_detailsContainer__1ah_s\",\"protocolsContainer\":\"NokOrAkProtocolTab_protocolsContainer__2GLqZ\",\"protocolsDetailsContainer\":\"NokOrAkProtocolTab_protocolsDetailsContainer__1opGQ\"};","// 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 = {\"content\":\"DocumentUpLoader_content__1P-kc\",\"button\":\"DocumentUpLoader_button__1SHxl\"};","// 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/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 = {\"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 = {\"detailsContainer\":\"SovietProtocolTab_detailsContainer__3F6R_\"};","// 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 = {\"row\":\"Row_row__2By0w\",\"row_title\":\"Row_row_title__VDd7w\",\"row_value\":\"Row_row_value__1OOEz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"TabBorder\":\"AnimatedTabs_TabBorder__3aifl\",\"Tabs_inModal\":\"AnimatedTabs_Tabs_inModal__ApyrS\",\"Tabs\":\"AnimatedTabs_Tabs__20bCw\"};","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 = {\"video\":\"VideoTab_video__1DH1N\",\"videoTab\":\"VideoTab_videoTab__1z5Go\"};","// 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 = {\"tooltip\":\"OverlayTrigger_tooltip__3DhB-\",\"copy\":\"OverlayTrigger_copy__1e_Qw\"};","// 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/empty_payment_icon.8e384d05.svg\";","// 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/add_icon.ca22bb26.svg\";","module.exports = \"/static/media/chairman_Icon.2f725b0d.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"categoryTitle\":\"ApplicantsTab_categoryTitle__3I6iZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"RulesTab\":\"RulesTab_RulesTab__gQzGw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"SendProtocolModal_button__ozwmm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"recommendation\":\"ApplicantExamDetailsTabs_recommendation__3x1Wj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CustomRadioGroup_container__3d5ZC\"};","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/rightArrow_icon.d76b6465.svg\";","module.exports = \"/static/media/document_icon.66cccc0b.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 = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4QDKRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAARAAAAcgEyAAIAAAAUAAAAhIdpAAQAAAABAAAAmAAAAAAAAABIAAAAAQAAAEgAAAABUGl4ZWxtYXRvciAzLjMuMQAAMjAyMDowNzowNiAxNTowNzo3NAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAZKADAAQAAAABAAAAZAAAAAD/4QmSaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJQaXhlbG1hdG9yIDMuMy4xIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wNy0wNlQxNTowNzo3NCIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz4A/8AAEQgAZABkAwEiAAIRAQMRAf/EAB8A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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"qualificationImage\":\"QualificationInfoDetails_qualificationImage__1G4NZ\"};","module.exports = \"/static/media/pen_icon.e8752ffd.svg\";","module.exports = \"/static/media/wait_time_icon.e710c631.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.d3186e59.svg\";","module.exports = \"/static/media/drop.baa208f4.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","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 { 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 createYandexMapLink = (city: string, street: string) => encodeURI(`https://yandex.ru/maps?mode=search&text=${city} ${street}`);\n","import moment from 'moment';\n\nexport const getFormattedDuration = (duration: number) => {\n const d = moment.duration(duration, 'minutes');\n return moment.utc(d.asMilliseconds()).format('HH ч. mm м.');\n};\n","export const formatPhoneNumber = (phone: string) => {\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 null;\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","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\nexport const VideoTypeMapping = {\n [VideoType.Cam]: 'Веб-камера',\n [VideoType.Screen]: 'Экран',\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","/* eslint-disable @typescript-eslint/no-object-literal-type-assertion */\nconst MediaConstraints = {\n default: {\n audio: true,\n video: {\n width: 960,\n height: 720,\n frameRate: 8,\n aspectRatio: 1.33,\n } as MediaTrackConstraints,\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] === 'spkfr') { // prod: spkfr.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}spkfr.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","class MediaStreamProxy {\n audioMediaStream?: MediaStream;\n\n videoMediaStream?: MediaStream;\n\n displayMediaStream?: MediaStream;\n\n getVideoStreamWithTryAnotherDevices = async (options: MediaStreamConstraints): Promise => {\n try {\n return await this.getVideoStream(options);\n } catch (_) {\n const videoDevices = await navigator.mediaDevices.enumerateDevices()\n .then(devices => devices.filter(d => d.kind === 'videoinput'));\n return this.getVideoStreamWithAllDevices(options, videoDevices);\n }\n }\n\n getVideoStreamWithAllDevices = async (options: MediaStreamConstraints, videoDevices: MediaDeviceInfo[]) => {\n const constraintsCreator = this.createVideoConstraints.bind(this, options);\n let error;\n for (let i = 0; i < videoDevices.length; i += 1) {\n try {\n // eslint-disable-next-line no-await-in-loop\n return await this.getVideoStream(constraintsCreator(videoDevices[i].deviceId));\n } catch (e) {\n error = e;\n }\n }\n throw error;\n }\n\n createVideoConstraints = (options: MediaStreamConstraints, deviceId: string): MediaStreamConstraints => {\n const newOptions = { ...options };\n if (typeof newOptions.video === 'boolean') {\n newOptions.video = { };\n } else {\n newOptions.video = { ...(newOptions.video || {}) };\n }\n newOptions.video.deviceId = deviceId;\n return newOptions;\n }\n\n getVideoStream = async (options: MediaStreamConstraints): Promise => {\n if (this.videoMediaStream) return this.videoMediaStream;\n const videoStream = await navigator.mediaDevices.getUserMedia(options);\n\n this.videoMediaStream = videoStream;\n\n if (!this.audioMediaStream && videoStream.getAudioTracks().length) {\n this.audioMediaStream = new MediaStream(videoStream.getAudioTracks());\n }\n return videoStream;\n }\n\n getDisplayStream = async (options: MediaStreamConstraints): Promise => {\n if (this.displayMediaStream) return this.displayMediaStream;\n const displayStream: MediaStream = await (navigator.mediaDevices as any).getDisplayMedia(options);\n\n if (!this.audioMediaStream && options.audio) {\n this.audioMediaStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n }\n\n if (this.audioMediaStream && options.audio) {\n this.audioMediaStream.getAudioTracks().forEach(track => displayStream.addTrack(track));\n }\n\n this.displayMediaStream = displayStream;\n\n return displayStream;\n }\n}\n\nexport default new MediaStreamProxy();\n","export const RegExpErrorsText = {\n PHONE: 'Неверный формат телефона',\n EMAIL: 'Неверный формат почты',\n NAME: 'Неверный формат, допускаются Русские буквы, дефис и пробел, от 2-х до 30-ти символов',\n PASSWORD: 'Пароль должен состоять, как минимум, из 6-ти символов. Разрешается использовать латинские буквы в любом регистре, цифры и символы.',\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 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};\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 // Нормально работает для zoneOffset от 1 до 12:\n moment.tz.setDefault(`Etc/GMT-${zoneOffset}`);\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","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 {\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, onChange, from, to, disabled, withoutDetectChanges, datePickerSizeSm, isInvalid,\n}: IProps) => {\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 year = initialDate.format('YYYY');\n const day = initialDate.format('DD');\n const month = initialDate.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\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}\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 baceUrl() {\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 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 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 { CustomSwitch, Dropdown, IDropdownItem } from 'components';\nimport styles from './Header.module.scss';\nimport cx from 'classnames';\n\nconst Header = ({\n location,\n routes,\n adaptive,\n sidebarToggled,\n dropdownItems,\n}: HeaderProps) => {\n const [emulateRequestError, toggleEmulateError] = useState(false);\n const headerTitle = getHeaderTitle();\n const hasDropdownItems = dropdownItems && dropdownItems.length > 1;\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 = routes.find((route) => {\n if (Array.isArray(route.pathname)) {\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 isSameLinks(route.pathname);\n });\n return activeRoute && activeRoute.title;\n };\n\n const isSameLinks = (pathname: string) => {\n if (pathname.endsWith('/*')) return location.pathname.startsWith(pathname.split('/*')[0]);\n return pathname === 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 routes: HeaderRoutesTitle[];\n sidebarToggled?: boolean;\n adaptive?: boolean;\n dropdownItems?: IDropdownItem[] | null;\n}\n\ninterface HeaderRoutesTitle {\n pathname: string | string[];\n title: string;\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 = () => {\n if (checked === undefined) {\n setIsChecked(!isChecked);\n }\n\n if (onCheck) {\n onCheck();\n }\n };\n\n const classes = cx('checkbox', { 'checkbox-inline': inline }, { [styles.blue]: blue }, className);\n\n return (\n
\n \n \n
\n );\n};\n\nexport default CustomCheckbox;\n\ninterface CustomCheckboxProps {\n checked?: boolean;\n number: string;\n className?: string;\n label?: string;\n inline?: boolean;\n blue?: boolean;\n onCheck?: () => 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}: 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 {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\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\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';\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 events?: number;\n}\n\nexport interface SubItem {\n name: string;\n path: string;\n routes?: string[];\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 logoSPKFR from '../assets/svg/dashboard_logo_SPK.svg';\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 logo,\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 \"spkfr-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 logo?: string;\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,\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, qualificationEvaluationCenterName?: string, address?: string) => (\n
\n
\n {name}\n
\n
\n {qualificationEvaluationCenterName}\n
\n
\n {address}\n
\n
\n );\n\n const hasNumberOfApplicants = 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 && rowData.date.format('DD.MM.YYYY в HH:mm')}\n \n \n {renderQualification(\n rowData.name,\n rowData.examinationCenterName,\n rowData.address,\n )}\n \n {(hasNumberOfApplicants && ({rowData.numberOfApplicants}))}\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 name?: string;\n examinationCenterName?: string;\n qualificationEvaluationCenterName?: string;\n address?: string;\n numberOfApplicants?: 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 IsPassing = 'isPassing',\n Finishing = 'finishing',\n Finished = 'finished',\n FinalizedResults = 'finalizedResults',\n NokProtocolSigned = 'nokProtocolSigned',\n AkProtocolSigned = 'akProtocolSigned',\n SovietProtocolSignedByMembers = 'sovietProtocolSignedByMembers',\n SovietProtocolSignedByChairman = 'sovietProtocolSignedByChairman',\n}\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.IsPassing 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 [ExamStatus.FinalizedResults as string]: new ColorStatus(Color.Default, 'Подписание протокола НОК'),\n [ExamStatus.NokProtocolSigned as string]: new ColorStatus(Color.Default, 'Подписание протокола АК'),\n [ExamStatus.AkProtocolSigned as string]: new ColorStatus(Color.Default, 'Подписание решения Совета'),\n [ExamStatus.SovietProtocolSignedByMembers as string]: new ColorStatus(Color.Default, 'Подписание решения Совета'),\n [ExamStatus.SovietProtocolSignedByChairman as string]: new ColorStatus(Color.Success, 'Утвержден'),\n};\n\n\nexport enum ExamApplicationStatus {\n Draft = 'draft',\n InReview = 'inReview',\n CorrectionsRequired = 'correctionsRequired',\n PaymentRequired = 'paymentRequired',\n Canceled = 'canceled',\n Paid = 'paid',\n AdmittedToExam = 'admittedToExam',\n IsPassing = 'isPassing',\n Absent = 'absent',\n NotPassed = 'notPassed',\n Passed = 'passed',\n WaitingForOnlineAccepting = 'waitingForOnlineAccepting',\n HaveNotOnlineAuth = 'haveNotOnlineAuth',\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.PaymentRequired as string]: new ColorStatus(Color.Default, 'Одобрена, требуется оплата'),\n [ExamApplicationStatus.Canceled as string]: new ColorStatus(Color.Red, 'Отменен'),\n [ExamApplicationStatus.Paid as string]: new ColorStatus(Color.Default, 'Запись подтверждена'),\n [ExamApplicationStatus.AdmittedToExam as string]: new ColorStatus(Color.Success, 'Допущен к экзамену'),\n [ExamApplicationStatus.IsPassing as string]: new ColorStatus(Color.Default, 'Идет сдача'),\n [ExamApplicationStatus.Absent as string]: new ColorStatus(Color.Red, 'Неявка'),\n [ExamApplicationStatus.NotPassed as string]: new ColorStatus(Color.Red, 'Не сдан'),\n [ExamApplicationStatus.Passed as string]: new ColorStatus(Color.Success, 'Сдан'),\n [ExamApplicationStatus.WaitingForOnlineAccepting as string]: new ColorStatus(Color.Orange, 'Ожидает допуска'),\n [ExamApplicationStatus.HaveNotOnlineAuth as string]: new ColorStatus(Color.Default, 'Нет авторизации'),\n};\n\nexport enum ExamSessionStatus {\n Active = 'active',\n Completed = 'completed',\n}\n\nexport enum ExamSessionReadyStatuses {\n WaitingForStart = 'waitingForStart',\n ExamIsPassing = 'examIsPassing',\n TheoreticalExamIsPassingAndSessionStarted = 'theoreticalExamIsPassingAndSessionStarted',\n ExamSessionTimeout = 'examSessionTimeout',\n PracticalExamIsPassingAndSessionStarted = 'practicalExamIsPassingAndSessionStarted',\n ExamFinished = 'examFinished',\n SessionFinished = 'sessionFinished',\n}\n\nexport const MappedExamSessionReadyStatuses = {\n [ExamSessionReadyStatuses.WaitingForStart as string]: new ColorStatus(Color.Default, 'Ожидает начала'),\n [ExamSessionReadyStatuses.ExamIsPassing as string]: new ColorStatus(Color.Default, 'Идет сдача'),\n [ExamSessionReadyStatuses.TheoreticalExamIsPassingAndSessionStarted as string]: new ColorStatus(Color.Default, 'Идет сдача теоретической части экзамена'),\n [ExamSessionReadyStatuses.ExamSessionTimeout as string]: new ColorStatus(Color.Default, 'Перерыв'),\n [ExamSessionReadyStatuses.PracticalExamIsPassingAndSessionStarted 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 Qec = 'qec',\n Ec = 'ec',\n Spkfr = 'spkfr',\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 CertificateForExchange = 'certificateForExchange',\n NoCriminalRecord = 'noCriminalRecord',\n QualificationCertificate = 'qualificationCertificate',\n ConsentToProcessingPersonalData = 'consentToProcessingPersonalData',\n}\n\nexport enum IdentityDocType {\n Passport = 'passport',\n Other = 'other',\n}\n\nexport enum Sex {\n Male = 'male',\n Female = 'female',\n}\n\nexport enum FilteredExamStatus {\n AwaitingExpertConfirmation = 'awaitingExpertConfirmation',\n IsApplying = 'isApplying',\n ApplyingFinished = 'applyingFinished',\n IsPassing = 'isPassing',\n Finished = 'finished',\n FinalizedResults = 'finalizedResults',\n NokProtocolSigned = 'nokProtocolSigned',\n AkProtocolSigned = 'akProtocolSigned',\n Processed = 'processed',\n Canceled = 'canceled',\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","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, withoutBorder, withDarkRowLabel,\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 withoutBorder?: boolean;\n withDarkRowLabel?: 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}: WarningModalProps) => (\n \n \n \n {title}\n {dotsButtons ? : null}\n \n \n \n {children}\n \n \n {onAccess\n ? (\n \n {accessBtnTittle || 'Подтвердить'}\n \n )\n : null}\n {!withoutCancelButton && }\n {appendFooterItem && appendFooterItem()}\n \n \n );\n\ninterface WarningModalProps {\n title: string;\n show: boolean;\n accessBtnTittle?: string;\n closeBtnTittle?: string;\n titleClassNames?: string;\n bodyClassNames?: 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 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 styles from './ProtocolLink.module.scss';\nimport downloadIcon from './download_icon.svg';\nimport cn from 'classnames';\n\nconst ProtocolLink = ({ \n url, \n additionalLabel, \n disabled,\n text,\n}: IProps) => (\n \n \"downloadIcon\"\n \n {text || `Скачать ${additionalLabel || 'протокол'}`}\n \n \n);\n\nexport default ProtocolLink;\n\ninterface IProps {\n url?: string;\n additionalLabel?: string;\n disabled?: boolean;\n text?: string;\n}\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 React, { CSSProperties } 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';\n\nconst AdvancedTable = ({\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}: TableProps) => {\n const initialFormData: { [key: string]: string } = tableHeaders.reduce((acc, x) => ({ ...acc, [x.fieldName]: '' }), {});\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 haveDate = React.useMemo(() => !from && !to && tableHeaders.find(e => e.isDate), [tableHeaders]);\n const dateValuesArr = React.useMemo(() => (haveDate ? data.map(e => e.columns.find((c, i) => tableHeaders[i].isDate) as string) : undefined), [haveDate, data]);\n const dateArr = React.useMemo(() => dateValuesArr && dateValuesArr.length && dateValuesArr.map(e => moment(e)), [dateValuesArr]);\n const minDate = React.useMemo(() => (dateArr ? moment.min(dateArr) : undefined), [dateArr]);\n const maxDate = React.useMemo(() => (dateArr ? moment.max(dateArr) : undefined), [dateArr]);\n\n React.useEffect(() => {\n if (!from && minDate) {\n setFrom(minDate);\n }\n\n if (!to && maxDate) {\n setTo(maxDate);\n }\n }, [minDate, maxDate]);\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 }}\n secondDateProps={{ readOnly: true }}\n setFrom={setFrom}\n setTo={setTo}\n from={from}\n to={to}\n withoutLabels\n withoutTime\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 \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 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}\n\ninterface ISelectOption {\n label: string;\n value: string;\n}\n\ninterface IDateValue {\n from?: moment.Moment;\n to?: moment.Moment;\n}\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","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}: 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 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';\n\nconst SimpleTable = ({\n tableRows,\n handleRowClick,\n tableCellClassName,\n tableHeaders,\n handleOrder,\n placeholderIcon,\n placeholderTitle,\n placeholderText,\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 {renderTableHeaders()}\n \n \n \n {renderTableItem()}\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 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}\n","import React from 'react';\nimport moment from 'moment';\nimport { Color } from '_helpers';\n\nconst QualificationStatus = ({ expireDate }: IProps) => {\n const status = moment(expireDate).isAfter(moment());\n\n return status\n ? Действует\n : Не действует;\n};\n\nexport default QualificationStatus;\n\ninterface IProps {\n expireDate: moment.Moment;\n}\n","import React from 'react';\nimport {\n Card,\n WarningModal,\n SimpleTable,\n SimpleTableHeader,\n IEmptySectionProps,\n} from 'components';\nimport { QualificationStatus } from './QualificationStatus';\nimport { IApiError } from '_helpers/ApiConnector/types';\nimport qualificationPlaceholderIcon from '../../assets/svg/qec/empty_certificate_icon.svg';\nimport moment from 'moment';\n\nconst Qualifications = ({\n qualificationsList,\n cardTitle,\n cardCategory,\n apiError,\n onQualificationListRowClick,\n onHideErrorModal,\n showErrorModal,\n}: IProps) => {\n const emptyDataProps: IEmptySectionProps = {\n placeholderTitle: 'Нет присвоенных квалификаций',\n placeholderText: 'Здесь будут отображаться квалификации, присвоенные эксперту',\n placeholderButtonText: '',\n placeholderIcon: qualificationPlaceholderIcon,\n };\n\n const listTableHeaders: SimpleTableHeader[] = [\n { title: 'КВАЛИФИКАЦИЯ', columnStyles: { width: '100%' } },\n { title: 'СРОК ДЕЙСТВИЯ', columnStyles: { minWidth: '12rem' } },\n { title: 'СТАТУС' },\n ];\n\n const listTableRows = qualificationsList ? qualificationsList.map(({\n examApplicationId, title, issueDate, expireDate,\n }, i) => ({\n id: examApplicationId || i,\n columns: [\n title,\n `${issueDate.format('DD.MM.YYYY')} - ${expireDate.format('DD.MM.YYYY')}`,\n ,\n ],\n })) : [];\n\n const handleListRowClick = (examApplicationId: string | number) => {\n if (onQualificationListRowClick && qualificationsList) {\n onQualificationListRowClick(`${examApplicationId}`);\n }\n };\n\n return (\n \n \n\n {apiError && showErrorModal !== undefined && onHideErrorModal ? (\n \n ) : null}\n \n );\n};\n\nexport interface IProps {\n qualificationsList: IQualification[] | null;\n cardTitle: string;\n cardCategory: string;\n apiError: IApiError | null;\n showErrorModal?: boolean;\n onHideErrorModal?: () => void;\n onQualificationListRowClick?: (examApplicationId: string) => void;\n}\n\nexport interface IQualification {\n applicantId: string;\n examId: string;\n examApplicationId: string;\n title: string;\n level: string;\n regNumber: string;\n expireDate: moment.Moment;\n issueDate: moment.Moment;\n certRegNumber: string;\n assigned?: boolean;\n}\n\nexport default Qualifications;\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 QecUserForm, { IUserDetail } from './UserForm';\nimport userPlaceholderIcon from 'components/assets/svg/spkfr/qec_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 qecIdQuery?: 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 ExamQuestionImage,\n CKText,\n CheckedTable,\n EditableTable,\n} from 'components';\nimport {\n ITheoreticalQuestion,\n IPracticalQuestion,\n IFactualTheoreticalQuestionAnswer,\n IFactualPracticalQuestionAnswer,\n} from 'components/models';\nimport { PracticalQuestionType } from 'components/enums';\nimport { serialNumberToChar, getImageUrlFromText } from '_helpers';\nimport cx from 'classnames';\nimport styles from './ExamQuestion.module.scss';\n\nconst ExamQuestion = ({\n question, num, theoreticalFactual, practicalFactual, withoutResult,\n}: IProps) => {\n const correctAnswer = (answerNumber: number) => theoreticalFactual && theoreticalFactual.correctAnswersNumbers.find(correct => correct.number === answerNumber);\n const userSelect = (answerNumber: number) => theoreticalFactual && theoreticalFactual.factualAnswersNumbers.find(selected => selected.number === answerNumber);\n const correctMatchingAnswer = (answerNumber: number, matchingNumber: number) => theoreticalFactual && theoreticalFactual.correctAnswersNumbers.find(correct => correct.number === answerNumber && correct.matchingNumber === matchingNumber);\n\n const theoreticalQuestion = question as ITheoreticalQuestion;\n if (!theoreticalQuestion) return null;\n const { imageUrls, textParts } = getImageUrlFromText(question.text);\n\n return (\n
\n Вопрос {num}\n \n {textParts.map((text, i) => (\n
\n \n {imageUrls[i] && }\n
\n ))}\n
\n {practicalFactual && practicalFactual.criteriaForRate && (\n <>\n Критерии оценки\n
\n \n
\n \n )}\n {(theoreticalQuestion.type === 'ordering' || theoreticalQuestion.type === 'matching') && (\n
\n {theoreticalQuestion.answersHeader}\n {theoreticalQuestion.answers.map((answer, i) => (\n
\n {serialNumberToChar(answer.number)}.\n {answer.text}\n
\n ))}\n
\n )}\n {(!practicalFactual || practicalFactual.type !== PracticalQuestionType.Offline) && (\n \n {theoreticalQuestion.type === 'ordering' || theoreticalQuestion.type === 'matching' ? theoreticalQuestion.matchingAnswersHeader : 'ответ'}\n \n )}\n {practicalFactual && practicalFactual.essayAnswer ? (\n {practicalFactual.essayAnswer.factual}\n ) : null}\n {practicalFactual && practicalFactual.openAnswerAnswer ? (\n <>\n {practicalFactual.openAnswerAnswer.factual}\n {!practicalFactual.correct ? (\n <>\n Верный ответ:\n {practicalFactual.openAnswerAnswer.correct}\n \n ) : null}\n \n ) : null}\n {practicalFactual && practicalFactual.tabularAnswer ? (\n
\n {practicalFactual.tabularAnswer.map((table, i) => (\n
\n {table.showCorrectAndApplicantAnswer ? (\n <>\n {table.caption}\n \n \n \n ) : (!table.correctAnswerRows || table.correctAnswerRows.length === 0 ? (\n \n ) : (\n \n )\n )}\n
\n ))}\n
\n ) : null}\n
    \n {theoreticalFactual && (\n <>\n {!theoreticalQuestion.matchingAnswers && theoreticalQuestion.answers.length ? theoreticalQuestion.answers.map((answer, j) => (\n
  • \n
    \n {userSelect(answer.number) && (\n \n \n \n )}\n
    \n {answer.text}\n\n {practicalFactual && (\n {practicalFactual.openAnswerAnswer && practicalFactual.openAnswerAnswer.factual}\n )}\n
  • \n )) : theoreticalQuestion.matchingAnswers && theoreticalFactual.factualAnswersNumbers.sort((a, b) => a.number - b.number).map((answer, j) => (\n
  • \n {answer.number}.\n {serialNumberToChar(answer.matchingNumber || 1)}\n {theoreticalQuestion.type !== 'ordering' && theoreticalQuestion.matchingAnswers && theoreticalQuestion.matchingAnswers[answer.number - 1] && (\n {theoreticalQuestion.matchingAnswers[answer.number - 1].text}\n )}\n
  • \n ))}\n\n {theoreticalFactual.factualAnswer ? (\n {theoreticalFactual.factualAnswer}\n ) : !theoreticalFactual.factualAnswersNumbers.length && Ответ не указан}\n \n )}\n
\n {!withoutResult && (\n <>\n результат\n {theoreticalFactual && (\n \n {theoreticalFactual.correct ? 'Верно' : 'Не верно'}\n \n )}\n {practicalFactual && (\n \n {practicalFactual.correct ? 'Верно' : 'Не верно'}\n \n )}\n \n )}\n
\n );\n};\n\nexport interface IProps {\n question: ITheoreticalQuestion | IPracticalQuestion;\n num: number;\n theoreticalFactual?: IFactualTheoreticalQuestionAnswer;\n practicalFactual?: IFactualPracticalQuestionAnswer;\n withoutResult?: boolean;\n}\n\nexport default ExamQuestion;\n","export const getImageUrlFromText = (text: string): {imageUrls: string[]; textParts: string[]} => {\n let imageUrls: string[] = [];\n let textParts: string[] = [];\n let sortedQuestionText = text;\n let hasUrl = true;\n\n do {\n const startImgUrl = sortedQuestionText.split('{{')[1];\n const imageUrl = startImgUrl ? startImgUrl.split('}}')[0] : null;\n textParts = !textParts.length ? [sortedQuestionText.split('{{')[0]] : textParts;\n\n if (imageUrl) {\n textParts = [...textParts, startImgUrl.split('}}')[1]];\n imageUrls = [...imageUrls, imageUrl];\n sortedQuestionText = sortedQuestionText.replace(`{{${imageUrl}}}`, '');\n } else {\n hasUrl = false;\n }\n } while (hasUrl);\n\n return { imageUrls, textParts };\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 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 Select from 'react-select';\n// eslint-disable-next-line import/no-unresolved\nimport { Styles } from 'react-select/lib/styles';\nimport { isArray } from 'util';\nimport { formDetector } from '_helpers';\nimport classNames from 'classnames';\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 smSize,\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 };\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 = 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 noOptionsMessage || 'Нет опций'}\n isDisabled={disabled}\n isMulti={multi}\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}\n\nexport interface ISelectEvent {\n name: string;\n value: string;\n}\n\ninterface Props {\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 withoutDetectChanges?: boolean;\n withoutStrictValue?: boolean;\n smSize?: boolean;\n onChange: (event: ISelectEvent) => void;\n onChangeMulti?: (event: ISelectEvent[]) => void;\n onMenuOpen?: () => void;\n}\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';\n\nconst EmptySection = ({\n placeholderTitle, placeholderText, placeholderButtonText, onButtonClick, placeholderIcon,\n}: IProps) => (\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}\n","import React from 'react';\nimport {\n InputText,\n ExtendedSelect,\n DatePicker,\n LoaderBtn,\n Textarea,\n} from 'components';\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(DocType.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 [title, setTitle] = React.useState('');\n const [data, setData] = React.useState('');\n\n const docTypeOptions = [\n {\n label: 'Общегражданский паспорт',\n value: DocType.Passport,\n },\n {\n label: 'Другое',\n value: DocType.Other,\n },\n ];\n\n React.useEffect(() => {\n if (stateData && stateData.passport) {\n if (stateData.passport.serialNumber) {\n setIdentityDocType(DocType.Passport);\n setSerialNumber(stateData.passport.serialNumber);\n setIssuedBy(stateData.passport.issuedBy);\n setDateOfIssue(stateData.passport.dateOfIssue);\n setRegistrationAddress(stateData.passport.registrationAddress);\n setTitle('');\n setData('');\n }\n }\n\n if (stateData && stateData.otherIdentity) {\n setIdentityDocType(DocType.Other);\n setTitle(stateData.otherIdentity.title);\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: IPassport | IOther) => _.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: IPassport | IOther;\n\n if (identityDocType === DocType.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 === DocType.Other && onSubmitOther) {\n subData = {\n title,\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);\n setProcessing(false);\n }\n }\n };\n\n return (\n
\n \n \n \n ТИП ДОКУМЕНТА\n \n \n \n {\n setIdentityDocType(e.value as DocType);\n setValidErrors(initErrors);\n }}\n disabled={onlyWatch}\n />\n {validErrors.identityDocType}\n \n \n {identityDocType === DocType.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 setTitle(value);\n setValidErrors({ ...validErrors, title: '' });\n }}\n labelTitle=\"НАЗВАНИЕ ДОКУМЕНТА\"\n labelColSize={2}\n inputColSize={6}\n disabled={onlyWatch}\n fieldFailures={validErrors}\n placeholder=\"Укажите название документа\"\n inputClassNames={cn('p-0', styles.col)}\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\nexport interface IPassport {\n serialNumber: string;\n issuedBy: string;\n dateOfIssue: moment.Moment;\n registrationAddress: string;\n}\n\nexport interface IOther {\n title: string;\n data: string;\n}\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: IPassport) => void;\n onSubmitOther?: (data: IOther) => void;\n onCancel?: () => void;\n}\n\ninterface IStateData {\n passport?: IPassport;\n otherIdentity?: IOther;\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}\n\nenum DocType {\n Passport = 'passport',\n Other = 'other',\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","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 { 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","import React from 'react';\nimport {\n MultiSelectSection,\n IMultiSelectSectionFetchList,\n IExtendedSelectOption,\n PaginationData,\n ExamStatus,\n AdvancedTable,\n AdvancedTableHeader,\n AdvancedTableData,\n ExamType,\n MappedExamTypes,\n MappedExamStatuses,\n WarningModal,\n renderRow,\n CustomSwitch,\n ProtocolLink,\n Status,\n} from 'components';\nimport { Color, ColorStatus, formatPrice } from '_helpers';\nimport { Button } from 'react-bootstrap';\nimport emptyPaymentIcon from 'components/assets/svg/empty_payment_icon.svg';\nimport styles from './ExamWithPayment.module.scss';\nimport moment from 'moment';\n\nconst ExamWithPayment = ({\n examsPaymentList,\n getExamsWithPaymentList,\n onPush,\n qecList,\n qualificationList,\n from,\n ecList,\n examsPaymentFilters,\n getExamDetailsWithPayment,\n examWithPaymentDetails,\n sendMarkAsPaid,\n}: IProps) => {\n const initialState: IState = {\n paid: (examsPaymentFilters && examsPaymentFilters.paid) || undefined,\n examinationCenterIds: (examsPaymentFilters && examsPaymentFilters.examinationCenterIds) || [],\n qualificationIds: (examsPaymentFilters && examsPaymentFilters.qualificationIds) || [],\n qecIds: (examsPaymentFilters && examsPaymentFilters.qecIds) || [],\n };\n\n const [paid, setPaid] = React.useState(initialState.paid);\n const [qecIds, setQecIds] = React.useState(initialState.qecIds);\n const [qualificationIds, setQualificationIds] = React.useState(initialState.qualificationIds);\n const [examinationCenterIds, setExaminationCenterIds] = React.useState(initialState.examinationCenterIds);\n const [fetchProps, setFetchProps] = React.useState(undefined);\n const [showModal, setShowModal] = React.useState(false);\n const [processing, setProcessing] = React.useState(false);\n const [processingPaid, setProcessingPaid] = React.useState(false);\n\n const tableHeaders: AdvancedTableHeader[] = [\n { fieldName: '', title: 'Дата и время', columnStyles: { minWidth: '11rem' } },\n { fieldName: '', title: 'Квалификация', columnStyles: { width: '100%' } },\n { fieldName: '', title: 'Номер счета', columnStyles: { minWidth: '7rem' } },\n { fieldName: '', title: 'Сумма счета', columnStyles: { minWidth: '7rem' } },\n { fieldName: '', title: 'ТИП ЭКЗАМЕНА', columnStyles: { minWidth: '9rem' } },\n { fieldName: '', title: 'Статус', columnStyles: { minWidth: '9rem' } },\n ];\n\n const examStatusOptions: IExtendedSelectOption[] = [\n { label: 'Все', value: FilterState.All },\n { label: 'Оплаченные', value: FilterState.Paid },\n { label: 'Не оплаченные', value: FilterState.NotPaid },\n ];\n\n const renderQualification = (exam: IExamWithPayment) => (\n
\n
\n {exam.qualificationTitle}\n
\n
\n {exam.examinationCenterName}\n
\n
\n {exam.address}\n
\n
\n );\n\n const getTableData = (): AdvancedTableData[] => (examsPaymentList && examsPaymentList.items ? examsPaymentList.items.map(item => ({\n id: item.id,\n columns: [\n item.date.format('DD.MM.YYYY в HH:mm'),\n renderQualification(item),\n `${item.accountNumber ? item.accountNumber : '-'}`,\n <>{formatPrice(item.totalAmount)}
{item.amountDescription.split('\\n').map((text, i) => (text ? {text} : null))}
,\n MappedExamTypes[item.type].text,\n ,\n ],\n })) : []);\n\n const handleChooseExam = async (id?: string) => {\n if (!id || !examsPaymentList || processing) return;\n\n const exam = examsPaymentList.items.find(e => e.id === id);\n\n if (exam) {\n setProcessing(true);\n await getExamDetailsWithPayment(id);\n setShowModal(true);\n setProcessing(false);\n }\n };\n\n const onExamDetailsClick = () => {\n if (!examWithPaymentDetails) return;\n\n if (from) {\n onPush(`/exam/${examWithPaymentDetails.id}?from=${from}`);\n } else {\n onPush(`/exam/${examWithPaymentDetails.id}`);\n }\n };\n\n const getPaginationObject = () => {\n if (!examsPaymentList) return undefined;\n\n const { pageSize, page, total } = examsPaymentList;\n\n return { page, pageSize, total };\n };\n\n const handleChangePagination = (newPagination: PaginationData) => getExamsWithPaymentList({\n ...examsPaymentFilters,\n ...fetchProps,\n examinationCenterIds,\n qualificationIds,\n qecIds,\n paid,\n page: newPagination.page,\n pageSize: newPagination.perPage,\n });\n\n const fetchList = (data: IMultiSelectSectionFetchList) => {\n let checkPaid;\n if (data.filteredExamStatus as string === FilterState.NotPaid) {\n checkPaid = false;\n } else if (data.filteredExamStatus as string === FilterState.Paid) {\n checkPaid = true;\n }\n\n const props: IGetExamsPayment = {\n ...examsPaymentFilters,\n ...data,\n paid: checkPaid,\n };\n\n setFetchProps(props);\n setPaid(checkPaid);\n setQecIds(data.qecIds || []);\n setExaminationCenterIds(data.examinationCenterIds || []);\n setQualificationIds(data.qualificationIds || []);\n\n getExamsWithPaymentList({ ...props });\n };\n\n const getDefaultValue = () => {\n if (examsPaymentFilters && examsPaymentFilters.paid === true) {\n return FilterState.Paid;\n }\n\n if (examsPaymentFilters && examsPaymentFilters.paid === false) {\n return FilterState.NotPaid;\n }\n\n return FilterState.All;\n };\n\n const pagination = getPaginationObject();\n\n const onSwitchClick = async () => {\n if (sendMarkAsPaid && examWithPaymentDetails && !processingPaid) {\n const data: ISendMarkAsPaid = {\n examId: examWithPaymentDetails.id,\n body: {\n paid: !examWithPaymentDetails.paid || false,\n },\n };\n\n setProcessingPaid(true);\n await sendMarkAsPaid(data);\n if (pagination) {\n await handleChangePagination({ ...pagination, perPage: pagination.pageSize, pages: pagination.total });\n }\n await getExamDetailsWithPayment(examWithPaymentDetails.id);\n setProcessingPaid(false);\n }\n };\n\n return (\n <>\n {examsPaymentList && examsPaymentList.items ? (\n \n ) : null}\n\n \n\n setShowModal(false)}\n footerClassNames=\"p-0\"\n bodyClassNames=\"pb-0\"\n dialogClassName={styles.modalDialog}\n withoutCancelButton\n large\n >\n {examWithPaymentDetails ? (\n <>\n {renderRow('ТИП ЭКЗАМЕНА', MappedExamTypes[examWithPaymentDetails.type].text)}\n {renderRow('ЦОК', examWithPaymentDetails.qualificationEvaluationCenterName)}\n {renderRow('ЭЦ', examWithPaymentDetails.examinationCenterName)}\n {renderRow('ДАТА', examWithPaymentDetails.date.format('DD.MM.YYYY'))}\n {renderRow('ВРЕМЯ', examWithPaymentDetails.date.format('HH:mm по МСК'), 'mb-5')}\n\n {renderRow('СТАТУС ОБРАБОТКИ', MappedExamStatuses[examWithPaymentDetails.status].text, 'mb-5')}\n\n {renderRow('СОИСКАТЕЛЕЙ', examWithPaymentDetails.amountDescription.split('\\n').map((text, i) => (text ? {text} : null)))}\n {renderRow('ЭКСПЕРТОВ', `${examWithPaymentDetails.numberOfExperts} по 0 ₽ = 0 ₽`)}\n {renderRow('ИТОГО К ОПЛАТЕ', formatPrice(examWithPaymentDetails.totalAmount), 'mb-5')}\n\n {renderRow('СЧЕТ НА ОПЛАТУ', examWithPaymentDetails && (\n \n ))}\n {renderRow('АКТ', examWithPaymentDetails && (\n \n ))}\n {examWithPaymentDetails.aktExtraDocUrl && renderRow('ДОП. АКТ', examWithPaymentDetails && (\n \n ), 'mb-5')},\n\n {renderRow('СТАТУС ОПЛАТЫ ', examWithPaymentDetails && (\n \n ), styles.switchRow)}\n\n \n Подробная информация об экзамене\n \n \n ) : null}\n \n \n );\n};\n\nexport default ExamWithPayment;\n\ninterface IProps {\n examsPaymentList: IExamWithPaymentList | null;\n examWithPaymentDetails: IExamWithPaymentDetails | null;\n qualificationList?: IQualificationInfoList | null;\n examsPaymentFilters?: IGetExamsPayment | null;\n qecList?: IQualificationEvaluationCenters | null;\n ecList?: IExaminationCentersList | null;\n from?: string;\n getExamsWithPaymentList: (data: IGetExamsPayment) => void;\n getExamDetailsWithPayment: (examId: string) => void;\n onPush: (key: string) => void;\n sendMarkAsPaid?: (body: ISendMarkAsPaid) => void;\n}\n\ninterface IExamWithPaymentList {\n unpaidAmount: number;\n items: IExamWithPayment[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IExamWithPayment {\n totalAmount: number;\n paid: boolean;\n accountNumber?: string | undefined;\n accountDate?: moment.Moment | undefined;\n id: string;\n date: moment.Moment;\n amountDescription: string;\n qualificationId: string;\n examinationCenterId: string;\n qualificationTitle: string;\n qualificationLevel: string;\n occupationalStandardTitle: string;\n qualificationEvaluationCenterName: string;\n examinationCenterName: string;\n address: string;\n city: string;\n status: ExamStatus;\n statusChangeTime: moment.Moment;\n duration: number;\n price: number;\n recertification: boolean;\n type: ExamType;\n qualificationEvaluationCenterId: string;\n numberOfApplicants: number;\n protocolNumber?: number | undefined;\n}\n\ninterface IGetExamsPayment {\n paid?: boolean | undefined;\n qualificationIds?: string[];\n examinationCenterIds?: string[];\n qecIds?: string[];\n page?: number;\n pageSize?: number;\n sortOrder?: boolean | undefined;\n sortField?: string;\n to?: moment.Moment;\n from?: moment.Moment;\n}\n\ninterface IExaminationCentersList {\n items: IExaminationCenter[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IExaminationCenter {\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n city: string;\n address: string;\n default: boolean;\n}\n\ninterface IQualificationEvaluationCenters {\n items: IQualificationEvaluationCenter[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IQualificationEvaluationCenter {\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 level: string;\n regNumber: string;\n occupationalStandardId: string;\n occupationalStandardTitle: string;\n}\n\nenum FilterState {\n All = 'All',\n Paid = 'paid',\n NotPaid = 'notPaid'\n}\n\ninterface ITimeProps {\n from?: moment.Moment;\n to?: moment.Moment;\n}\n\ninterface IState {\n qecIds: string[];\n qualificationIds: string[];\n examinationCenterIds: string[];\n paid?: boolean;\n fromTime?: moment.Moment;\n toTime?: moment.Moment;\n}\n\ninterface IExamWithPaymentDetails {\n totalAmount: number;\n paid: boolean;\n amountDescription: string;\n accountNumber?: string | undefined;\n accountDate?: moment.Moment | undefined;\n aktDocUrl?: string | undefined;\n aktExtraDocUrl?: string | undefined;\n invoiceForPaymentUrl?: string | undefined;\n /** Список экспертов экзаменационной комиссии / подписантов протокола НОК */\n experts: IExamExpert[];\n /** Список подписантов протокола АК */\n akExperts: IExamExpert[];\n /** Список подписантов протокола совета */\n sovietExperts: IExamExpert[];\n actualStartTime?: moment.Moment | undefined;\n actualFinishTime?: moment.Moment | undefined;\n manualCheck: boolean;\n // examLogs: ExamLog[];\n nokProtocolUrl?: string | undefined;\n akProtocolUrl?: string | undefined;\n sovietProtocolUrl?: string | undefined;\n rules?: string | undefined;\n theoreticalQuestionsCount: number;\n theoreticalPartDuration: number;\n practicalQuestionsCount: number;\n practicalPartDuration: number;\n protocolDate?: moment.Moment | undefined;\n eventsState?: { [key: string]: number } | undefined;\n id: string;\n date: moment.Moment;\n qualificationId: string;\n examinationCenterId: string;\n qualificationTitle: string;\n qualificationLevel: string;\n occupationalStandardTitle: string;\n qualificationEvaluationCenterName: string;\n examinationCenterName: string;\n address: string;\n city: string;\n status: ExamStatus;\n statusChangeTime: moment.Moment;\n /** Продолжительность экзамена в минутах */\n duration: number;\n price: number;\n /** Переаттестация */\n recertification: boolean;\n type: ExamType;\n qualificationEvaluationCenterId: string;\n numberOfApplicants: number;\n numberOfExperts?: number;\n protocolNumber?: number | undefined;\n}\n\ninterface IExamExpert {\n regNumber: string;\n expertId: string;\n fullName: string;\n email: string;\n phone: string;\n region: string;\n /** Эксперт доступен для подписи протокола */\n active: boolean;\n /** Протокол пописан экспертом */\n signed: boolean;\n chairman: boolean;\n acceptedInvite?: boolean | undefined;\n position?: string | undefined;\n signedCode?: string | undefined;\n}\n\ninterface ISendMarkAsPaid {\n examId: string;\n body: IMarkAsPaid;\n}\n\ninterface IMarkAsPaid {\n paid: boolean;\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';\n\nconst ExamQuestionImage = ({ imageUrl }: IProps) => (\n
\n \"question_image\"\n
\n);\n\ninterface IProps {\n imageUrl: string;\n}\n\nexport default ExamQuestionImage;\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';\n\nconst MultiSelectSection = ({\n fetchList,\n qecList,\n qualificationList,\n ecList,\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 qecIds: (defaultIds && defaultIds.qecIds) || [],\n qualificationIds: (defaultIds && defaultIds.qualificationIds) || [],\n examinationCenterIds: (defaultIds && defaultIds.examinationCenterIds) || [],\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 [qecIds, setQecIds] = React.useState(initialState.qecIds);\n const [qualificationIds, setQualificationIds] = React.useState(initialState.qualificationIds);\n const [examinationCenterIds, setExaminationCenterIds] = React.useState(initialState.examinationCenterIds);\n const [from, setFrom] = React.useState(initialState.from);\n const [to, setTo] = React.useState(initialState.to);\n\n const getFetchListProps = () => ({\n ...pageOptions,\n examinationCenterIds,\n qualificationIds,\n qecIds,\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 getQecOptions = (): IExtendedSelectOption[] => (qecList ? qecList.items.map(qec => ({\n value: qec.id,\n label: qec.name,\n })) : []);\n\n const getEcOptions = (): IExtendedSelectOption[] => (ecList ? ecList.items.map(ec => ({\n value: ec.id,\n label: ec.fullName,\n })) : []);\n\n const getQualificationsOptions = (): IExtendedSelectOption[] => (qualificationList ? qualificationList.items.map(qualification => ({\n value: qualification.id,\n label: 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 onChangeQecSelect = (ids: string[], filterProps?: IFetchList) => {\n setQecIds(ids);\n fetchList({\n ...getFetchListProps(),\n ...filterProps,\n qecIds: ids,\n });\n };\n\n const onChangeEcSelect = (ids: string[], filterProps?: IFetchList) => {\n setExaminationCenterIds(ids);\n fetchList({\n ...getFetchListProps(),\n ...filterProps,\n examinationCenterIds: 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 {qecList && (\n onChangeSelect(e, onChangeQecSelect)}\n placeholder=\"Выберите один или несколько Центров Оценки Квалификаций\"\n value={qecIds.length ? qecIds : undefined}\n className={styles.selectGroup}\n />\n )}\n {ecList && (\n onChangeSelect(e, onChangeEcSelect)}\n placeholder=\"Выберите один или несколько Экзаменационный Центров\"\n value={examinationCenterIds.length ? examinationCenterIds : 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 examinationCenterIds?: string[];\n qecIds?: 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 qecList?: IQualificationEvaluationCenters | null;\n ecList?: IExaminationCentersList | 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 qecIds?: string[];\n qualificationIds?: string[];\n examinationCenterIds?: string[];\n}\n\nenum FilteredExamStatus {\n AwaitingExpertConfirmation = 'awaitingExpertConfirmation',\n IsApplying = 'isApplying',\n ApplyingFinished = 'applyingFinished',\n IsPassing = 'isPassing',\n Finished = 'finished',\n FinalizedResults = 'finalizedResults',\n NokProtocolSigned = 'nokProtocolSigned',\n AkProtocolSigned = 'akProtocolSigned',\n Processed = 'processed',\n Canceled = 'canceled',\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.IsPassing },\n { label: 'Финализация результатов', value: FilteredExamStatus.Finished },\n { label: 'Подписание протокола НОК', value: FilteredExamStatus.FinalizedResults },\n { label: 'Подписание протокола АК', value: FilteredExamStatus.NokProtocolSigned },\n { label: 'Подписание решения Совета', value: FilteredExamStatus.AkProtocolSigned },\n { label: 'Утвержден', value: FilteredExamStatus.Processed },\n { label: 'Отменен', value: FilteredExamStatus.Canceled },\n];\n\ninterface IExaminationCentersList {\n items: IExaminationCenter[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IExaminationCenter {\n id: string;\n regNumber: string;\n name: string;\n fullName: string;\n city: string;\n address: string;\n default: boolean;\n}\n\ninterface IQualificationEvaluationCenters {\n items: IQualificationEvaluationCenter[];\n page: number;\n pageSize: number;\n total: number;\n}\n\ninterface IQualificationEvaluationCenter {\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 level: string;\n regNumber: string;\n occupationalStandardId: string;\n occupationalStandardTitle: string;\n}\n\ninterface IState {\n selectedExamStatus: string;\n pageOptions: PaginationData;\n qecIds: string[];\n qualificationIds: string[];\n examinationCenterIds: string[];\n customProps?: IFetchList;\n from?: moment.Moment;\n to?: moment.Moment;\n}\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 { 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}: 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 return (\n \n
\n {!withoutLabels ? (\n \n С\n \n ) : null}\n\n \n
\n
\n {!withoutLabels ? (\n \n ПО\n \n ) : null}\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}\n\ninterface IReturnDate {\n to?: moment.Moment;\n from?: moment.Moment;\n}\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\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\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\ninterface IRowItem {\n text: string;\n colSpan?: number;\n}\n\nexport type IHeaderRows = IRowItem[][];\n","import React from 'react';\nimport { Table, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/Overlay';\nimport { getTableHeader, IHeaderRows } from './helpers';\nimport { ICheckedTable, ICheckedCell } from 'components/models';\nimport styles from './CheckedTable.module.scss';\nimport _ from 'lodash';\nimport cn from 'classnames';\n\nconst CheckedTable = ({\n table, tableType, checkedCell, headersSeparator,\n}: IProps) => {\n const headerArr = table.columns.map(col => col.header);\n const rowCount = checkedCell.length;\n const colCount = headerArr.length;\n\n const addSeparateRowToTable = (rows: JSX.Element[]) => {\n const newRows = rows.slice();\n\n if (checkedCell[rowCount - 1] && checkedCell[rowCount - 1][0].solution === 'total') {\n newRows.splice(rowCount - 1, 0, );\n }\n return newRows;\n };\n\n const renderTableHeaders = (headers: IHeaderRows) => headers.map((h, i) => (\n \n {h.map((header, j) => {header.text})}\n \n ));\n\n const renderTableItem = (rows: ICheckedCell[][]) => rows.map((row, i) => (\n \n {row.map((cell, j) => {\n if (i === rowCount - 1 && j === 0 && cell.solution === 'total') return ИТОГО:;\n return (\n \n {tooltipWrap(cell.standard || 'пустая ячейка', cell.solution || '')}\n \n );\n })}\n \n ));\n\n return (\n <>\n {table.caption && {table.caption}}\n \n \n {renderTableHeaders(getTableHeader(headerArr, headersSeparator))}\n \n \n {table.rows\n ? addSeparateRowToTable(renderTableItem(checkedCell))\n : null}\n \n
\n \n );\n};\n\nconst tooltipWrap = (text: string, element: React.ReactChild, placement: Placement = 'top') => (\n \n {text}\n \n )}\n >\n
{element}
\n \n);\n\nexport default CheckedTable;\n\ninterface IProps {\n table: ICheckedTable;\n checkedCell: ICheckedCell[][];\n headersSeparator: string;\n tableType?: 'manual' | 'autoCheck';\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 ExamApplicationDetails,\n ApplicantDocuments,\n AppType,\n ProfileInfoTab,\n AnimatedTabs,\n StatementTab,\n LoaderBtn,\n} from 'components';\nimport { IExamApplicationDetails } from 'components/models';\nimport { Tab, Button } from 'react-bootstrap';\nimport cn from 'classnames';\n\nconst ExamApplicationTabs = ({\n tab,\n examApplicationDetails,\n appType,\n examTabChild,\n docTabChild,\n identificationTabChild,\n withoutExamTab,\n withoutIdentificationTab,\n withoutTabPadding,\n withoutProfileTab,\n onChangeSwitch,\n disableSelectTab,\n inModal,\n onStatementCancel,\n onStatementSubmit,\n processing,\n}: IProps) => {\n React.useEffect(() => {\n setActiveTab(getTab());\n }, [tab, examApplicationDetails]);\n\n const getTab = (): TabKey => {\n if (tab && (\n (TabKey[tab] === TabKey.ExamTab && !withoutExamTab)\n || (TabKey[tab] === TabKey.IdentificationTab && !withoutIdentificationTab)\n || (TabKey[tab] === TabKey.ProfileTab && !withoutProfileTab)\n )) {\n return TabKey[tab];\n }\n\n return getDefaultTab();\n };\n\n const getDefaultTab = () => {\n let newTab = TabKey.ExamTab;\n\n if (withoutExamTab) newTab = TabKey.ProfileTab;\n if (withoutProfileTab && withoutExamTab) newTab = TabKey.IdentificationTab;\n if (withoutIdentificationTab) newTab = TabKey.DocumentsTab;\n\n return newTab;\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(getTab());\n\n const applicantProfile = examApplicationDetails.applicant;\n const applicantExam = examApplicationDetails.exam;\n const applicantStatus = examApplicationDetails.status;\n const { documents, reviewComment, recommendations } = examApplicationDetails;\n const tabClassName = cn('tab', 'mt-5', withoutTabPadding && 'p-0');\n\n return (\n !disableSelectTab && setActiveTab(key as TabKey)}\n inModal={inModal}\n >\n {!withoutExamTab ? (\n \n \n {examTabChild && examTabChild(() => setActiveTab(TabKey.IdentificationTab))}\n \n ) : null}\n\n {!withoutProfileTab ? (\n \n \n \n ) : null}\n\n {!withoutIdentificationTab ? (\n \n \n\n {identificationTabChild && identificationTabChild(() => setActiveTab(TabKey.DocumentsTab))}\n \n ) : null}\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 withoutExamTab?: boolean;\n withoutIdentificationTab?: boolean;\n withoutProfileTab?: boolean;\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 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 {\n ExamStatus,\n AppType,\n ExamType,\n AnimatedTabs,\n} from 'components';\nimport { IExamApplication } from 'components/models';\nimport { Tab } from 'react-bootstrap';\nimport { ApplicantsTab, IApplicantsTabProps } from './ApplicantsTab';\nimport { ExpertsTab } from './ExpertsTab';\nimport { ExamInfoTab, ExamInfoTabProps } from './ExamInfoTab';\nimport { RulesTab } from './RulesTab';\nimport { NokOrAkProtocolTab } from './NokOrAkProtocolTab';\nimport { SovietProtocolTab } from './SovietProtocolTab';\nimport { ISendProtocolProps, SendProtocolModal } from './SendProtocolModal';\nimport { VideoTab } from './VideoTab';\nimport { ExpertsSignProgress } from './ExpertsSignProgress';\nimport { IWebRTCReceiverType, Unread, VideoType } from '_helpers';\n\nconst ExamDetailsTabs = ({\n tab,\n applicantsTabProps,\n examDetails,\n examApplicationsList,\n withoutApplicantsTab,\n withoutExpertsTab,\n protocolModalProps,\n webRTC,\n unread,\n switchVideoType,\n onPreviewClick,\n appType,\n expertsSignProgressChild,\n handleExpertClick,\n}: IProps) => {\n const isExpert = appType === AppType.Expert;\n const isSpkfr = appType === AppType.Spkfr;\n const isApplicant = appType === AppType.Applicant;\n const isQec = appType === AppType.Qec;\n\n const isProtocols = () => examStatus === ExamStatus.FinalizedResults\n || examStatus === ExamStatus.AkProtocolSigned\n || examStatus === ExamStatus.NokProtocolSigned\n || examStatus === ExamStatus.SovietProtocolSignedByMembers\n || examStatus === ExamStatus.SovietProtocolSignedByChairman;\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.FinalizedResults) return TabKey.Nok;\n if (examStatus === ExamStatus.NokProtocolSigned) return TabKey.Ak;\n if (examStatus === ExamStatus.AkProtocolSigned\n || examStatus === ExamStatus.SovietProtocolSignedByMembers\n || examStatus === ExamStatus.SovietProtocolSignedByChairman) return TabKey.Soviet;\n if (examStatus === ExamStatus.IsPassing && examDetails && examDetails.type === ExamType.Online) return TabKey.Video;\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 setActiveTab(getDefaultTab());\n }, [examDetails]);\n\n const [activeTab, setActiveTab] = React.useState(getDefaultTab());\n const examStatus = examDetails.status;\n const examInCreateStatus = examStatus === ExamStatus.AwaitingExpertConfirmation;\n const showDetails = (isSpkfr || isApplicant || isQec) ? true : !isProtocols();\n const showNokOrAkProtocol = !isApplicant && !isQec && isProtocols() && examStatus !== ExamStatus.FinalizedResults;\n const showNokProtocol = !isApplicant && !isQec && examStatus === ExamStatus.FinalizedResults && isSpkfr;\n const showSovietProtocol = !isApplicant && !isQec && (examStatus === ExamStatus.AkProtocolSigned\n || examStatus === ExamStatus.SovietProtocolSignedByMembers\n || examStatus === ExamStatus.SovietProtocolSignedByChairman);\n\n const renderSendProtocolModal = () => {\n if (protocolModalProps && (\n examStatus === ExamStatus.FinalizedResults\n || (examStatus === ExamStatus.NokProtocolSigned && activeTab === TabKey.Ak)\n || ((examStatus === ExamStatus.AkProtocolSigned || examStatus === ExamStatus.SovietProtocolSignedByMembers) && activeTab === TabKey.Soviet)\n )) {\n return ;\n }\n\n return null;\n };\n\n if (examStatus === ExamStatus.FinalizedResults && isExpert) {\n return (\n <>\n true}\n />\n {renderSendProtocolModal()}\n \n );\n }\n\n return (\n <>\n setActiveTab(key as TabKey)}\n >\n {isExpert && examDetails && examApplicationsList && examStatus === ExamStatus.IsPassing && examDetails.type === ExamType.Online ? (\n \n \n \n ) : null}\n\n {showSovietProtocol ? (\n \n \n \n ) : null}\n\n {showNokOrAkProtocol ? (\n \n true}\n asAkProtocol\n />\n \n ) : null}\n\n {showNokOrAkProtocol || showNokProtocol ? (\n \n true}\n />\n \n ) : null}\n\n {showDetails ? (\n \n \n \n ) : null}\n\n {!withoutApplicantsTab && applicantsTabProps && examApplicationsList && showDetails && !examInCreateStatus ? (\n \n \n \n ) : null}\n\n {!withoutExpertsTab && showDetails ? (\n \n {examInCreateStatus || examDetails.experts.some(c => c.acceptedInvite !== true) ? (\n \n ) : (\n \n )}\n {expertsSignProgressChild}\n \n ) : null}\n\n {showDetails ? (\n \n \n \n ) : null}\n \n {renderSendProtocolModal()}\n \n );\n};\n\nexport default ExamDetailsTabs;\n\nexport interface IProps {\n examDetails: ExamInfoTabProps['examDetails'];\n appType: AppType;\n protocolModalProps?: ISendProtocolProps;\n examApplicationsList?: IExamApplicationList;\n applicantsTabProps?: IApplicantsTabProps;\n withoutApplicantsTab?: boolean;\n withoutExpertsTab?: boolean;\n expertsSignProgressChild?: React.ReactNode;\n tab?: TabType;\n webRTC?: {\n [id: string]: {\n receiver: IWebRTCReceiverType;\n connected: boolean;\n type: VideoType;\n };\n };\n unread?: { [id: string]: Unread };\n handleExpertClick?: (expertId: string) => void;\n switchVideoType?: (videoType: VideoType, applicantId: string) => void;\n onPreviewClick?: (applicationId: string) => void;\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 Ak = 'ak',\n Nok = 'nok',\n Soviet = 'soviet',\n Video = 'video',\n}\n\ntype TabType = 'applicants' | 'experts' | 'info' | 'rules' | 'ak' | 'nok' | 'soviet' | 'video'\n","import React from 'react';\nimport {\n Card,\n AdvancedTable,\n AdvancedTableHeader,\n AdvancedTableData,\n AppType,\n} from 'components';\nimport { IExamExpert } from 'components/models';\nimport { formatPhoneNumber } from '_helpers';\nimport expertIcon from 'components/assets/svg/empty_expert_table.svg';\n\nconst ExpertsTab = ({ experts: propsExperts, handleExpertClick, appType }: IProps) => {\n const [experts, setExperts] = React.useState(propsExperts);\n const isQec = appType === AppType.Qec;\n const isApplicant = appType === AppType.Applicant;\n\n const roleOptions = [\n {\n label: 'Все',\n value: 'undefined',\n },\n {\n label: 'Председатель комиссии',\n value: 'true',\n },\n {\n label: 'Член комиссии',\n value: 'false',\n },\n ];\n\n const createTableHeaders = () => {\n const tableHeaders: AdvancedTableHeader[] = [\n { fieldName: 'fullName', title: 'ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО' },\n { fieldName: 'chairman', title: 'РОЛЬ ЭКСПЕРТА', selectOptions: roleOptions },\n // { fieldName: 'region', title: 'СТАТУС', selectOptions: roleOptions },\n ];\n\n if (!isApplicant) {\n tableHeaders.splice(1, 0, { fieldName: 'phone', title: 'ТЕЛЕФОН' });\n }\n\n if (isQec) {\n tableHeaders.splice(2, 0, { fieldName: 'email', title: 'ПОЧТА' });\n }\n\n return tableHeaders;\n };\n\n const handleSearch = (fieldName: string, value: string) => {\n const key = fieldName as keyof IExamExpert;\n const val = value.toLocaleLowerCase();\n const newExperts = [...propsExperts];\n\n if (key === 'chairman') {\n if (val === 'undefined') {\n setExperts(propsExperts);\n } else {\n setExperts([\n ...newExperts.filter(exp => (val === 'true' ? exp.chairman : !exp.chairman)),\n ]);\n }\n } else if (val) {\n setExperts([\n ...newExperts.filter(exp => ((exp[key] || '') as string).toLocaleLowerCase().includes(val)),\n ]);\n } else {\n setExperts(propsExperts);\n }\n };\n\n const createTableData = (): AdvancedTableData[] => experts.map((item) => {\n const columns = [item.fullName, item.chairman ? 'Председатель комиссии' : 'Член комиссии'];\n\n if (!isApplicant) {\n columns.splice(1, 0, formatPhoneNumber(item.phone) || item.phone);\n }\n\n if (isQec) {\n columns.splice(2, 0, item.email);\n }\n\n return ({\n id: item.expertId,\n columns,\n });\n });\n\n const onRowClick = (id: string) => {\n if (handleExpertClick) {\n handleExpertClick(id);\n }\n };\n\n return (\n \n \n \n );\n};\n\nexport default ExpertsTab;\n\ninterface IProps {\n experts: IExamExpert[];\n appType: AppType;\n handleExpertClick?: (expertId: string) => void;\n}\n","import React from 'react';\nimport {\n Details,\n DetailsStringValue,\n DetailsReactNodeValue,\n DetailsArrayValue,\n AddressLink,\n ExamStatus,\n Card,\n ExamType,\n MappedExamTypes,\n MappedExamStatuses,\n AppType,\n ProtocolLink,\n Status,\n} from 'components';\nimport { IExamDetails } from 'components/models';\nimport { Color, createExamDate, getFormattedDuration } from '_helpers';\nimport moment from 'moment-timezone';\n\nconst ExamInfoTab = ({\n examDetails, appType, withoutPadding,\n}: IProps) => {\n const getInfoRowsFromExamDetails = () => {\n const infoRows: (DetailsReactNodeValue | DetailsStringValue | DetailsArrayValue)[] = [\n new DetailsStringValue('Тип экзамена', examDetails.type === ExamType.Recertification ? 'Признание аттестата' : MappedExamTypes[examDetails.type].text),\n new DetailsStringValue('ЦОК', examDetails.qualificationEvaluationCenterName),\n new DetailsStringValue('ЭЦ', examDetails.examinationCenterName),\n new DetailsStringValue('Дата экзамена', examDetails.date.format('DD.MM.YYYY')),\n new DetailsStringValue('Время проведения', createExamDate(examDetails.actualStartTime || examDetails.date)),\n new DetailsReactNodeValue('Место проведения', ),\n new DetailsStringValue('Общее время', examDetails.practiceDefense ? '-' : getFormattedDuration(examDetails.duration)),\n ];\n\n if (examDetails.applicationsLimit) {\n infoRows.push(new DetailsStringValue('Количество мест', `${examDetails.applicationsLimit}`));\n }\n\n infoRows.push(\n new DetailsStringValue('', ''),\n new DetailsStringValue('Теория', 'Ответы на вопросы'),\n new DetailsStringValue('Заданий в теории', `${examDetails.theoreticalQuestionsCount}`),\n new DetailsStringValue('Время на теорию', `${examDetails.theoreticalPartDuration} мин.`),\n new DetailsStringValue('', ''),\n );\n\n\n if (examDetails.practiceDefense) {\n infoRows.push(new DetailsStringValue('Практика', 'Защита проекта'));\n } else {\n infoRows.push(\n new DetailsStringValue('Практика', 'Решение задачи'),\n new DetailsStringValue('Заданий в практике', `${examDetails.practicalQuestionsCount}`),\n new DetailsStringValue('Время на практику', `${examDetails.practicalPartDuration} мин.`),\n );\n }\n\n const { status } = examDetails;\n\n if (appType !== AppType.Applicant) {\n infoRows.push(new DetailsReactNodeValue('Статус', ));\n }\n\n if (appType === AppType.Expert && status === ExamStatus.Finished) {\n infoRows.push(new DetailsStringValue('Требуется', 'Написание рекомендации для заключений', Color.Orange));\n }\n\n if (status === ExamStatus.NokProtocolSigned || status === ExamStatus.AkProtocolSigned\n || status === ExamStatus.SovietProtocolSignedByMembers || status === ExamStatus.SovietProtocolSignedByChairman) {\n if (examDetails.nokProtocolUrl) infoRows.push(new DetailsReactNodeValue('Протокол НОК', ));\n if (examDetails.akProtocolUrl) infoRows.push(new DetailsReactNodeValue('Протокол АК', ));\n if (examDetails.sovietProtocolUrl) infoRows.push(new DetailsReactNodeValue('Решение Совета', ));\n }\n\n return infoRows;\n };\n\n return (\n \n
\n \n );\n};\n\nexport default ExamInfoTab;\n\nexport interface IProps {\n examDetails: IExamDetails;\n appType: AppType;\n withoutPadding?: boolean;\n}\n\ninterface IPaymentDetails {\n totalAmount: number;\n paid: boolean;\n accountNumber?: string | undefined;\n accountDate?: moment.Moment | undefined;\n aktDocUrl?: string | undefined;\n invoiceForPaymentUrl?: string | undefined;\n sendMarkAsPaid?: () => Promise;\n processingPaid?: boolean;\n amountDescription: string;\n}\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 ExamStatus,\n AppType,\n ApplicantDocuments,\n ProfileInfoTab,\n Card,\n PracticalQuestionsTab,\n TheoreticalQuestionsTab,\n AnimatedTabs,\n StatementTab,\n} from 'components';\nimport { IExamApplicationDetails, IExamSessionDetails } from 'components/models';\nimport { Tab } from 'react-bootstrap';\nimport { ExpertsTab } from '../ExamDetailsTabs/ExpertsTab';\nimport { ExamInfoTab, ExamInfoTabProps } from '../ExamDetailsTabs/ExamInfoTab';\nimport { RulesTab } from '../ExamDetailsTabs/RulesTab';\nimport { ResultAndStatusTab } from './ResultAndStatusTab';\nimport styles from './ApplicantExamDetailsTabs.module.scss';\n\nconst ApplicantExamDetailsTabs = ({\n tab,\n examDetails,\n withoutExpertsTab,\n withoutInfoTab,\n withoutRulesTab,\n appType,\n onlyResultAndStatus,\n resultAndStatusCardCategory,\n resultAndStatusCardTitle,\n examSessionDetails,\n inModal,\n examApplication,\n renderResultAndStatusChild,\n onChangeDocumentSwitch,\n}: IProps) => {\n const isExpert = appType === AppType.Expert;\n const isSpkfr = appType === AppType.Spkfr;\n const isApplicant = appType === AppType.Applicant;\n const isQec = appType === AppType.Qec;\n\n const isProtocols = () => examStatus === ExamStatus.FinalizedResults\n || examStatus === ExamStatus.AkProtocolSigned\n || examStatus === ExamStatus.NokProtocolSigned\n || examStatus === ExamStatus.SovietProtocolSignedByMembers\n || examStatus === ExamStatus.SovietProtocolSignedByChairman;\n\n const checkTab = () => {\n if (tab) {\n if (TabKey[tab] === TabKey.Experts && withoutExpertsTab) return null;\n\n return TabKey[tab];\n }\n\n return null;\n };\n\n const getDefaultTab = () => {\n if (tab) return checkTab();\n if (!isExpert && !withoutInfoTab) return TabKey.Info;\n if (withoutInfoTab && examApplication) return TabKey.ResultAndStatus;\n if (examStatus === ExamStatus.IsApplying) return TabKey.Info;\n if (!withoutExpertsTab) return TabKey.Experts;\n\n return TabKey.Info;\n };\n\n React.useEffect(() => {\n setActiveTab(getDefaultTab());\n }, [examDetails]);\n\n const [activeTab, setActiveTab] = React.useState(getDefaultTab());\n const examStatus = examDetails.status;\n const showDetails = (isSpkfr || isApplicant || isQec) ? true : !isProtocols();\n\n const renderResultAndStatus = () => (examApplication ? (\n \n ) : null);\n\n if (onlyResultAndStatus) return renderResultAndStatus();\n\n return (\n <>\n setActiveTab(key as TabKey)}\n inModal={inModal}\n >\n {!withoutInfoTab && showDetails ? (\n \n \n \n ) : null}\n\n {examApplication ? (\n \n {renderResultAndStatus()}\n {renderResultAndStatusChild ? renderResultAndStatusChild() : null}\n \n ) : null}\n\n {examApplication && examApplication.recommendations ? (\n \n {examApplication.recommendations}\n \n ) : null}\n\n {examApplication && examApplication.applicant && examApplication.applicantIdentityDoc ? (\n \n \n \n \n \n ) : null}\n\n {!withoutExpertsTab && showDetails ? (\n \n \n \n ) : null}\n\n {!withoutRulesTab && showDetails ? (\n \n \n \n ) : null}\n\n {examApplication && examApplication.documents ? (\n \n \n \n \n \n ) : null}\n\n {examApplication && examApplication.signCode ? (\n \n \n \n ) : null}\n\n {examSessionDetails && examSessionDetails.practicalQuestions && examApplication && isSpkfr ? (\n \n \n \n \n \n ) : null}\n\n {examSessionDetails && examSessionDetails.theoreticalQuestions && examApplication && isSpkfr ? (\n \n \n \n \n \n ) : null}\n \n \n );\n};\n\nexport default ApplicantExamDetailsTabs;\n\nexport interface IProps {\n examDetails: ExamInfoTabProps['examDetails'];\n appType: AppType;\n examApplication?: IExamApplicationDetails | null;\n examSessionDetails?: IExamSessionDetails | null;\n withoutExpertsTab?: boolean;\n withoutInfoTab?: boolean;\n withoutRulesTab?: boolean;\n onlyResultAndStatus?: boolean;\n resultAndStatusCardTitle?: string | null;\n resultAndStatusCardCategory?: string | null;\n inModal?: boolean;\n tab?: TabType;\n renderResultAndStatusChild?: () => React.ReactNode;\n onChangeDocumentSwitch?: (change: boolean[]) => void;\n}\n\nenum TabKey {\n Experts = 'experts',\n Info = 'info',\n Rules = 'rules',\n Documents = 'documents',\n ResultAndStatus = 'resultAndStatus',\n Identification = 'identification',\n PracticalQuestions = 'practicalQuestions',\n TheoreticalQuestions = 'theoreticalQuestions',\n StatementInfoTab = 'statementInfo',\n RecommendationTab = 'recommendation',\n}\n\ntype TabType = keyof typeof TabKey;\n","import React from 'react';\nimport {\n AppType,\n Card,\n ExamApplicationStatus,\n ExamStatus,\n MappedExamApplicationStatuses,\n MappedExamStatuses,\n renderRow, TextLink,\n} from 'components';\nimport { Color, ColorStatus } from '_helpers';\nimport cn from 'classnames';\nimport styles from './ResultAndStatusTab.module.scss';\nimport moment from 'moment';\nimport CertPreview from '../../QualificationInfoDetails/cert-preview.jpg';\n\nconst ResultAndStatusTab = ({\n data, appType, cardCategory, cardTitle, withoutPadding,\n}: IProps) => {\n const {\n examApplicationStatus, processedByNark, finalized, examStatus, narkPageUrl, certificateUrl\n } = data;\n const processingExamStatus = (examStatus === ExamStatus.AwaitingExpertConfirmation\n || examStatus === ExamStatus.IsApplying\n || examStatus === ExamStatus.ApplyingFinished\n || examStatus === ExamStatus.IsPassing\n || examStatus === ExamStatus.Canceled || (!processedByNark && appType === AppType.Applicant))\n || examApplicationStatus === ExamApplicationStatus.Absent || examApplicationStatus === ExamApplicationStatus.Canceled;\n\n const processingColorStatus = processingExamStatus ? new ColorStatus(Color.Default, 'Обработка') : null;\n const finalizedColorStatus = !finalized ? new ColorStatus(Color.Default, 'Ожидает финализации') : null;\n\n const theoryStatus = processingColorStatus || (examApplicationStatus === ExamApplicationStatus.Passed || data.isPassedTheory === true\n ? new ColorStatus(Color.Success, 'Сдана')\n : new ColorStatus(Color.Red, 'Не сдана'));\n\n const practiceStatus = (processingColorStatus || finalizedColorStatus) || (examApplicationStatus === ExamApplicationStatus.Passed\n ? new ColorStatus(Color.Success, 'Сдана')\n : new ColorStatus(Color.Red, 'Не сдана'));\n\n const fullStatus = (processingColorStatus || finalizedColorStatus) || (examApplicationStatus === ExamApplicationStatus.Passed\n ? new ColorStatus(Color.Success, 'Экзамен сдан')\n : new ColorStatus(Color.Red, 'Экзамен не сдан'));\n\n let processStatus = MappedExamApplicationStatuses[data.examApplicationStatus].text;\n if (appType === AppType.Applicant && examStatus !== ExamStatus.Canceled) {\n processStatus = processedByNark ? 'Утвержден' : 'Обработка';\n } else if (!processingExamStatus) {\n switch (data.examStatus) {\n case ExamStatus.Finished:\n case ExamStatus.FinalizedResults:\n processStatus = 'На стороне ЦОК';\n break;\n case ExamStatus.NokProtocolSigned:\n case ExamStatus.AkProtocolSigned:\n case ExamStatus.SovietProtocolSignedByMembers:\n processStatus = 'На стороне СПКФР';\n break;\n default:\n processStatus = MappedExamStatuses[data.examStatus].text;\n break;\n }\n }\n\n return (\n \n {processingExamStatus ? null : renderRow('ТЕОРЕТИЧЕСКАЯ ЧАСТЬ', theoryStatus.text, styles.row, theoryStatus.color)}\n {processingExamStatus ? null : renderRow('ПРАКТИЧЕСКАЯ ЧАСТЬ', practiceStatus.text, styles.row, practiceStatus.color)}\n {processingExamStatus ? null : renderRow('ИТОГОВЫЙ РЕЗУЛЬТАТ', fullStatus.text, styles.row, fullStatus.color)}\n\n {renderRow('СТАТУС ОБРАБОТКИ', processStatus, cn(styles.row, !processingExamStatus && 'mt-5'))}\n {renderRow('ДАТА СТАТУСА ', data.statusChangeTime.format('DD.MM.YYYY'), styles.row)}\n\n {narkPageUrl && renderRow('ЗАПИСЬ В РЕЕСТРЕ', )}\n {certificateUrl && renderRow(examApplicationStatus === ExamApplicationStatus.Passed ? 'СВИДЕТЕЛЬСТВО' : 'ЗАКЛЮЧЕНИЕ', )}\n \n );\n};\n\nexport default ResultAndStatusTab;\n\nexport interface IProps {\n data: IResultAndStatus;\n appType: AppType;\n cardTitle?: string | null;\n cardCategory?: string | null;\n withoutPadding?: boolean;\n}\n\ninterface IResultAndStatus {\n isPassedTheory?: boolean | undefined;\n examApplicationStatus: ExamApplicationStatus;\n examStatus: ExamStatus;\n processedByNark: boolean;\n finalized: boolean;\n statusChangeTime: moment.Moment;\n narkPageUrl?: string | undefined;\n certificateUrl?: string | undefined;\n}\n","import React from 'react';\nimport { createYandexMapLink } from '_helpers';\nimport addressIcon from 'components/assets/svg/link_icon.svg';\nimport styles from './AddressLink.module.scss';\n\nconst AddressLink = ({ city, address, withoutLink }: IProps) => (\n <>\n {address}\n {!withoutLink ? (\n <>\n \"address_icon\"\n \n Смотреть на карте\n \n \n ) : null}\n \n);\n\nexport default AddressLink;\n\ninterface IProps {\n city: string;\n address: string;\n withoutLink?: boolean;\n}\n","import React from 'react';\nimport { CustomSwitch } from 'components';\nimport styles from './WebCamSwitch.module.scss';\nimport cn from 'classnames';\n\nconst WebCamSwitch = ({\n value, name, webCam, onClick, containerClassName, darkness,\n}: IProps) => (\n \n );\n\nexport default WebCamSwitch;\n\ninterface IProps {\n value: boolean;\n name: string;\n webCam?: boolean;\n containerClassName?: string;\n darkness?: boolean;\n onClick: () => void;\n}\n","import React from 'react';\nimport { Loader } from '../Common/Loader';\nimport { WebCamSwitch } from '../WebCamSwitch';\nimport { VideoType } from '_helpers';\nimport cn from 'classnames';\nimport styles from './UserVideo.module.scss';\nimport ExclamationIcon from './exclamation.svg';\nimport FullScreenIcon from './full-screen-icon.png';\n\nconst UserVideo = ({\n processing,\n videoStream,\n containerClassName,\n muted,\n camSwitch,\n onSwitch,\n videoType,\n connectionLost,\n withoutFullScreen,\n ...props\n}: UserVideoPropsType) => {\n const ref = React.useRef(null);\n const isWebCam = videoType === VideoType.Cam;\n\n React.useLayoutEffect(() => {\n if (ref.current) {\n ref.current.srcObject = videoStream || null;\n }\n }, [videoStream]);\n\n const handleSwitch = React.useCallback(() => {\n if (!onSwitch) return;\n\n if (isWebCam) {\n onSwitch(VideoType.Screen);\n return;\n }\n\n onSwitch(VideoType.Cam);\n }, [videoType]);\n\n React.useEffect(() => {\n if (connectionLost && ref.current) {\n ref.current.load();\n }\n }, [connectionLost]);\n\n const onFullScreenButtonClick = () => {\n if (ref && ref.current) {\n if (ref.current.requestFullscreen) {\n ref.current.requestFullscreen();\n // @ts-ignore\n } else if (ref.current.mozRequestFullScreen) { /* Firefox */\n // @ts-ignore\n ref.current.mozRequestFullScreen();\n // @ts-ignore\n } else if (ref.current.webkitRequestFullscreen) { /* Chrome, Safari and Opera */\n // @ts-ignore\n ref.current.webkitRequestFullscreen();\n // @ts-ignore\n } else if (ref.current.msRequestFullscreen) { /* IE/Edge */\n // @ts-ignore\n ref.current.msRequestFullscreen();\n }\n }\n };\n\n\n return (\n <>\n
\n {(processing || !videoStream) && !props.poster && (\n \n )}\n {(connectionLost) && (\n
props.onClick && props.onClick(e)}>\n \"ExclamationIcon\"\n Соискатель не транслирует видео\n
\n )}\n \n \n \n {!withoutFullScreen ? \"FullScreenIcon\" : null}\n
\n {camSwitch && (\n
\n \n Рабочий стол\n \n \n \n Веб-камера\n \n
\n )}\n \n );\n};\n\nexport default UserVideo;\n\ntype UserVideoPropsType = IProps & React.DetailedHTMLProps, HTMLVideoElement>\n\ninterface IProps extends React.RefAttributes {\n videoStream?: MediaStream;\n processing?: boolean;\n containerClassName?: string;\n camSwitch?: boolean;\n withoutFullScreen?: boolean;\n videoType?: VideoType;\n connectionLost?: boolean;\n onSwitch?: (type: VideoType) => void;\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 { 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';\nimport { IExamApplicationDetails } from '../models';\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 {props.examApplicationDetails && (\n setTab(ChatTabs.Docs)}\n className={cn(styles.tab, { [styles.active]: tab === ChatTabs.Docs })}\n >\n Документы\n \n )}\n
\n )}\n {(props.examApplicationDetails && tab === ChatTabs.Docs) ? (\n
\n {props.examApplicationDetails.documents.map((document, i) => (\n
\n \n \"documentImage\"\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 Docs= 'Docs',\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 examApplicationDetails?: IExamApplicationDetails | null;\n}\n","import React from 'react';\nimport {\n QualificationInfoDetails,\n Card,\n PersonalDataTab,\n Qualifications,\n ExamTable,\n MappedExamStatuses,\n ExamApplicationStatus,\n AnimatedTabs,\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 setSelectedQualification(null);\n\n return () => setSelectedQualification(null);\n }, []);\n\n React.useEffect(() => {\n setSelectedQualification(applicantQualificationDetails);\n }, [applicantQualificationDetails]);\n\n React.useEffect(() => {\n setActiveTab(getDefaultTab());\n }, [tab]);\n\n const [activeTab, setActiveTab] = React.useState(getDefaultTab());\n\n const [showErrorModal, setShowErrorModal] = React.useState(false);\n const [selectedQualification, setSelectedQualification] = React.useState(null);\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 setSelectedQualification(null);\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 const onQualificationListRowClick = async (examApplicationId: string) => {\n const res = await getApplicantQualificationDetails(examApplicationId);\n\n if (!res) {\n setShowErrorModal(true);\n }\n };\n\n if (selectedQualification) {\n return (\n setSelectedQualification(null)}\n cardCategory=\"Список квалификаций, присвоенных соискателю\"\n />\n );\n }\n\n return (\n \n setActiveTab(key as TabKey)}\n id=\"applicantDetailsTabs\"\n >\n \n \n \n \n setShowErrorModal(false)}\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 { 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 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';\n\nconst ApplicantDocuments = ({ documents, onChangeSwitch, withoutPadding }: IProps) => {\n const [activeValues, setActiveValues] = React.useState(documents.map(e => 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 Документ {i + 1} {renderSwitch(i)}\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}\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']) => (\n \n);\n\ninterface IProps {\n title: string;\n value?: string | React.ReactNode;\n rowClassName?: string;\n valueColor?: string;\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 React from 'react';\nimport addressIcon from 'components/assets/svg/link_icon.svg';\nimport styles from './TextLink.module.scss';\nimport cn from 'classnames';\n\nconst TextLink = ({\n text, withIcon, link, className, onClick,\n}: IProps) => (\n
\n {link ? (\n \n {text}\n {withIcon ? (\n \"address_icon\"\n ) : null}\n \n ) : (\n <>\n {text}\n {withIcon ? (\n \"address_icon\"\n ) : null}\n \n )}\n
\n );\n\nexport default TextLink;\n\ninterface IProps {\n text: string;\n link?: string;\n withIcon?: boolean;\n className?: string;\n onClick?: () => void;\n}\n","import React from 'react';\nimport rightArrowIcon from './rightArrow_icon.svg';\nimport documentIcon from './document_icon.svg';\nimport styles from './TemplateGroup.module.scss';\nimport cn from 'classnames';\n\nconst TemplateGroup = ({\n templateGroup, templateNum, onSelect, changeButtonText,\n}: IProps) => (\n
\n Вариант {templateNum}\n {templateGroup.map((template, j) => (\n
\n \"documentIcon\"\n {template.description}\n
\n ))}\n\n \n {changeButtonText || 'Перейти к загрузке документов'} \"rightArrowIcon\"\n \n
\n);\n\nexport default TemplateGroup;\n\ninterface IProps {\n templateGroup: ITemplate[];\n templateNum: number;\n changeButtonText?: string;\n onSelect?: () => void;\n}\n\ninterface ITemplate {\n id: string;\n order: number;\n variant: number;\n description: string;\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';\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 ? Документ {templateNum} : 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}\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 { TemplateGroup } from './TemplateGroup';\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 correctionsRequired,\n apiError,\n goBackButtonText,\n submitButtonText,\n withoutPadding,\n onSelectTemplate,\n}: IProps) => {\n const [showWarningModal, setShowWarningModal] = React.useState(false);\n const [documentsPack, setDocumentsPack] = React.useState([]);\n const [selectedTemplateGroup, setSelectedTemplateGroup] = React.useState(null);\n const [selectedTemplateGroupNum, setSelectedTemplateGroupNum] = React.useState(null);\n const [uploadedDocuments, setUploadedDocuments] = React.useState([]);\n const [loadingFile, setLoadingFile] = React.useState(null);\n const [lastDropTemplateId, setLastDropTemplateId] = React.useState(null);\n\n const identificationDocument = documentTemplateGroups.length > 0 ? documentTemplateGroups[0].templates : [];\n const dropZoneDocuments = selectedTemplateGroup ? [...identificationDocument, ...selectedTemplateGroup] : [];\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 React.useEffect(() => {\n const arr: ITemplate[][] = [];\n documentTemplateGroups.forEach((group) => {\n group.templates.forEach((template) => {\n if (!arr[template.variant]) {\n arr[template.variant] = [];\n }\n\n arr[template.variant].push(template);\n });\n });\n\n setDocumentsPack(arr);\n }, [documentTemplateGroups]);\n\n React.useEffect(() => {\n if (correctionsRequired && documentsPack.length && uploadedDocuments.length) {\n let num: number | null = null;\n let group: ITemplate[] | null = null;\n const { documentTemplateId } = uploadedDocuments[1];\n\n if (documentTemplateId) {\n documentsPack.find((temp, i) => {\n const res = temp.find(e => e.id === documentTemplateId);\n\n if (res) {\n num = i;\n group = documentsPack[i];\n }\n\n return res;\n });\n }\n\n if (num !== null && group !== null) {\n setSelectedTemplateGroup(group);\n setSelectedTemplateGroupNum(num);\n }\n } else {\n setSelectedTemplateGroup(null);\n setSelectedTemplateGroupNum(null);\n }\n }, [correctionsRequired]);\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 // const formData = new FormData();\n // formData.append('file', acceptedFiles[0]);\n\n // const xhr = new XMLHttpRequest();\n // xhr.open('POST', '/');\n // xhr.send(formData);\n // xhr.upload.onprogress = (event) => {\n // const percentages = +((event.loaded / event.total) * 100).toFixed(2);\n // setUploadProgress(percentages);\n // };\n // xhr.onreadystatechange = () => {\n // if (xhr.readyState !== 4) return;\n // if (xhr.status !== 200) {\n // /* handle error */\n // }\n // /* handle success */\n // };\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 const title = !selectedTemplateGroup ? 'Выберите пакет документов' : 'Загрузите документы';\n const category = !selectedTemplateGroup\n ? 'Выберите подходящий вам пакет документов для загрузки сканов'\n : `Вариант комплекта документов ${selectedTemplateGroupNum !== null ? (selectedTemplateGroupNum + 1) : ''}`;\n\n return (\n \n {!selectedTemplateGroup ? (\n <>\n {documentsPack.map((template, i) => i !== 0 && template && (\n {\n setSelectedTemplateGroup(template);\n setSelectedTemplateGroupNum(i);\n if (onSelectTemplate) {\n onSelectTemplate(true);\n }\n }}\n />\n ))}\n\n {onGoBack ? (\n \n ) : null}\n \n ) : (\n <>\n {dropZoneDocuments.map((template, i) => (template ? (\n \n ) : null))}\n setShowWarningModal(true)}\n className={styles.button}\n >\n Выбрать другой пакет документов\n \n {dropZoneDocuments.every(template => template && isUploadedDropZone(template.id)) ? (\n \n {submitButtonText || 'Следующий шаг'}\n \n ) : null}\n \n )}\n setShowWarningModal(false)}\n onAccess={() => {\n setShowWarningModal(false);\n setSelectedTemplateGroup(null);\n if (onSelectTemplate) {\n onSelectTemplate(false);\n }\n }}\n withoutTitlePadding\n >\n
\n В случае выбора другого пакета документов, вся информация по документам, загруженная до этого, будет удалена.\n Вы уверены, что хотите выбрать другой пакет документов для загрузки?\n
\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 onSelectTemplate?: (selectTemplate: boolean) => 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';\nimport moment from 'moment';\nimport { Color } from '_helpers';\n\nconst QualificationStatus = ({ expireDate }: IProps) => {\n const status = moment(expireDate).isAfter(moment());\n\n return status\n ? Действует\n : Не действует;\n};\n\nexport default QualificationStatus;\n\ninterface IProps {\n expireDate: moment.Moment;\n}\n","import React from 'react';\nimport { QualificationStatus } from './QualificationStatus';\nimport { Card, renderRow, TextLink } from 'components';\nimport { IApplicantQualificationDetails } from 'components/models';\nimport CertPreview from './cert-preview.jpg';\nimport styles from './QualificationInfoDetails.module.scss';\n\nconst QualificationInfoDetails = ({\n qualificationDetails, onBackClick, cardCategory, cardTitle, withoutBorder,\n}: IProps) => {\n const {\n expireDate, issueDate, title, qecFullName, narkPageUrl, certificateUrl,\n } = qualificationDetails;\n\n return (\n \n \n {renderRow('КВАЛИФИКАЦИЯ', title)}\n {renderRow('ЦОК', qecFullName)}\n {renderRow('ДАТА ПРИСВОЕНИЯ', issueDate.format('DD.MM.YYYY'))}\n {renderRow('ДАТА ОКОНЧАНИЯ', expireDate.format('DD.MM.YYYY'))}\n {renderRow('СТАТУС', )}\n {renderRow('ЗАПИСЬ В РЕЕСТРЕ', )}\n {certificateUrl && renderRow('СВИДЕТЕЛЬСТВО', \"certPreview\")}\n \n \n );\n};\n\nexport default QualificationInfoDetails;\n\ninterface IProps {\n qualificationDetails: IApplicantQualificationDetails;\n cardTitle?: string;\n cardCategory?: string;\n withoutBorder?: boolean;\n onBackClick: () => void;\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 } from 'components/models';\n\nconst ProfileInfoTab = ({ applicant, applicantIdentityDoc, hideIdentity }: IProps) => {\n const { identityDocType, passport, otherIdentity } = applicantIdentityDoc;\n\n return (\n
\n {!hideIdentity ? (\n <>\n {renderRow('Тип документа', identityDocType === 'passport' ? 'Общегражданский паспорт' : 'Другое')}\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.title)}\n {renderRow('Описание', otherIdentity.data)}\n \n ) : null}\n \n ) : null}\n\n {renderRow('Фамилия', applicant.lastName, !hideIdentity ? 'mt-5' : undefined)}\n {renderRow('Имя', applicant.firstName)}\n {renderRow('Отчество', applicant.middleName || '')}\n {renderRow('Дата рождения', applicant.birthDate.format('DD.MM.YYYY'))}\n
\n );\n};\n\nexport default ProfileInfoTab;\n\ninterface IProps {\n applicant: Omit;\n applicantIdentityDoc: IApplicantIdentityDoc;\n hideIdentity?: boolean;\n}\n","import React from 'react';\nimport {\n ExamQuestion,\n CustomSwitch,\n ExamApplicationStatus,\n CKText,\n} from 'components';\nimport { IExamSessionDetails } from 'components/models';\n\nconst PracticalQuestionsTab = ({ examSessionDetails, finalized, applicantStatus }: IProps) => (examSessionDetails.practicalQuestions ? (\n
\n {examSessionDetails.practicalQuestions.map((question, i) => {\n const props = {\n question,\n practicalFactual: examSessionDetails.factualPracticalQuestionAnswers.find(factual => factual.questionId === question.id),\n num: i + 1,\n };\n\n return ;\n })}\n {examSessionDetails.criteriaForRate &&
КРИТЕРИИ ОЦЕНКИ
}\n {finalized ? (\n
\n { }}\n containerClassName=\"m-auto\"\n />\n \n Практическая часть {`${applicantStatus === ExamApplicationStatus.Passed ? 'успешно сдана' : 'не сдана'}`}\n \n
\n ) : null}\n
\n) : null);\n\nexport default PracticalQuestionsTab;\n\ninterface IProps {\n examSessionDetails: IExamSessionDetails;\n applicantStatus: ExamApplicationStatus;\n finalized: boolean;\n}\n","import React from 'react';\nimport { ExamQuestion, CustomSwitch, renderRow } from 'components';\nimport { IExamSessionDetails } from 'components/models';\n\nconst TheoreticalQuestionsTab = ({ examSessionDetails, finalized }: IProps) => {\n const theoreticalCorrectQuestionsCount = examSessionDetails ? examSessionDetails.factualTheoreticalQuestionAnswers.filter(factual => factual.correct).length : 0;\n const theoreticalFailedQuestionsCount = examSessionDetails ? examSessionDetails.theoreticalQuestions.length - theoreticalCorrectQuestionsCount : 0;\n const theoreticalCorrectPercent = `(${(Math.round(10000.0 * theoreticalCorrectQuestionsCount / examSessionDetails.theoreticalQuestions.length) / 100)}%)`;\n const theoreticalFailedPercent = `(${(Math.round(10000.0 * theoreticalFailedQuestionsCount / examSessionDetails.theoreticalQuestions.length) / 100)}%)`;\n\n return (examSessionDetails.theoreticalQuestions ? (\n
\n {examSessionDetails.theoreticalQuestions.map((question, i) => {\n const props = {\n question,\n theoreticalFactual: examSessionDetails.factualTheoreticalQuestionAnswers.find(factual => factual.questionId === question.id),\n num: i + 1,\n };\n\n return ;\n })}\n\n
\n {renderRow('ВСЕГО ВОПРОСОВ:', `${examSessionDetails.theoreticalQuestions.length}`)}\n {renderRow('ВЕРНЫХ ОТВЕТОВ:', `${theoreticalCorrectQuestionsCount} ${theoreticalCorrectPercent}`)}\n {renderRow('НЕВЕРНЫХ ОТВЕТОВ:', `${theoreticalFailedQuestionsCount} ${theoreticalFailedPercent}`)}\n
\n\n {finalized ? (\n
\n { }}\n containerClassName=\"m-auto\"\n />\n \n Теоретическая часть {`${examSessionDetails.isPassedTheory ? 'успешно сдана' : 'не сдана'}`}\n \n
\n ) : null}\n
\n ) : null);\n};\n\nexport default TheoreticalQuestionsTab;\n\ninterface IProps {\n examSessionDetails: IExamSessionDetails;\n finalized: boolean;\n}\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","import React from 'react';\nimport { IExamApplicationDetails } from 'components/models';\nimport {\n Card,\n AutoGrowTextArea,\n LoaderBtn,\n SignedExpert,\n renderRow,\n} from 'components';\nimport { Button, Form } from 'react-bootstrap';\nimport styles from './StatementTab.module.scss';\nimport cn from 'classnames';\n\nconst StatementTab = ({\n onCancel,\n onSubmit,\n contentClassName,\n sendingText,\n setSendingText,\n examApplication,\n withoutPadding,\n submitButtonText,\n cancelButtonText,\n processing,\n}: IProps) => {\n const [showSendingTextError, setShowSendingTextError] = React.useState(false);\n const { applicant, applicantIdentityDoc, exam } = React.useMemo(() => examApplication, [examApplication]);\n\n const passport = applicantIdentityDoc && applicantIdentityDoc.passport;\n // const other = applicantIdentityDoc && applicantIdentityDoc.otherIdentity;\n const examName = exam ? `«${exam.qualificationTitle}»` : '';\n const identification = passport ? `паспорт № ${passport.serialNumber} выдан ${passport.issuedBy}` : '';\n const applicantFullName = `${applicant.lastName} ${applicant.firstName} ${applicant.middleName}`;\n\n const onOpenModal = () => {\n if (onSubmit) {\n if (sendingText !== '') {\n onSubmit();\n setShowSendingTextError(false);\n } else {\n setShowSendingTextError(true);\n }\n }\n };\n\n const onChangeTextArea = (e: React.ChangeEvent) => {\n if (setSendingText) {\n setSendingText(e.target.value);\n setShowSendingTextError(false);\n }\n };\n\n return (\n \n \n Я, {applicantFullName}, дата рождения {applicant.birthDate.format('DD.MM.YYYY')}, {identification}. Прошу допустить меня к сдаче профессионального экзамена по квалификации {examName} .
\n
\n Контактные данные:
\n
\n адрес регистрации по месту жительства:
\n {passport ? passport.registrationAddress : ''}
\n
\n контактный телефон:
\n +7 {applicant.phone}
\n
\n электронная почта:
\n {applicant.email}
\n
\n С Правилами проведения центром оценки квалификаций независимой оценки\n квалификации в форме профессионального экзамена, утвержденными постановлением\n Правительства Российской Федерации от 16.11.2016 г. № 1204 (Официальный интернет-\n портал правовой информации http://www.pravo.gov.ru, 22.11.2016), ознакомлен(а).\n
\n О готовности оформления свидетельства о квалификации или заключения о\n прохождении профессионального экзамена прошу уведомить по контактному телефону\n или адресу электронной почты, указанным в настоящем заявлении.\n
\n Оригинал Свидетельства профессионального экзамена прошу направить заказным почтовым отправлением с уведомлением по следующему адресу:
\n
\n\n {sendingText !== undefined && setSendingText ? (\n <>\n \n {showSendingTextError ? (\n \n Обязательное поле для заполнения\n \n ) : null}\n \n ) : (\n {examApplication.certificateDeliveryAddress}\n )}\n\n \n Приложения:
\n 1. Копия паспорта или иного документа, удостоверяющего личность.
\n 2. Копии документов, указанных в реестре сведений о проведении независимой
\n оценки квалификации, необходимых для прохождения профессионального
\n экзамена по оцениваемой квалификации.
\n
\n Я согласен(на) на обработку в соответствии с Федеральным законом от 27 июля\n 2006 г. № 152-ФЗ «О персональных данных» (Собрание законодательства Российской\n Федерации, 2006, № 31, ст. 3451) моих персональных данных, указанных в настоящем\n заявлении и прилагаемых к нему документах (фамилия, имя, отчество (при наличии), дата\n и место рождения, реквизиты документа, удостоверяющего личность, - наименование документа, серия, номер, кем выдан и когда, месте проживания (регистрации), место\n работы, образование и квалификация), а также результатов прохождения\n профессионального экзамена, присвоения квалификации и выдачи свидетельства о\n квалификации, внесения и хранения соответствующей информации в реестре сведений о\n проведении независимой оценки квалификации в соответствии с Федеральным законом от\n 03.07.2016 г. № 238-ФЗ «О независимой оценке квалификации».\n Я уведомлен(а) и понимаю, что под обработкой персональных данных\n подразумевается совершение следующих действий (операций): сбор, обработка, запись,\n систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение,\n использование, подтверждение, передача (распространение, предоставление, доступ),\n обезличивание, блокирование, удаление, уничтожение персональных данных по\n истечении срока действия настоящего согласия в соответствии с Федеральным законом\n от 27 июля 2006 г. № 152-ФЗ «О персональных данных».\n
\n {examApplication.signCode ? (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 children?: React.ReactNode;\n sendingText?: string;\n withoutPadding?: boolean;\n submitButtonText?: string;\n cancelButtonText?: string;\n processing?: boolean;\n setSendingText?: (text: string) => 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 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}\n\ntype IconType = 'logout' | 'delete' | 'plus';\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,\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 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';\n\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 \"spkfr-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 \\u0441\\u043e\\u0438\\u0441\\u043a\\u0430\\u0442\\u0435\\u043b\\u044c \\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 * @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 getExamApplicationsList(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.processGetExamApplicationsList(_response);\n });\n }\n\n protected processGetExamApplicationsList(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 from (optional) Дата экзамена, с\n * @param to (optional) Дата экзамена, по\n * @param examType (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(from: moment.Moment | null | undefined, to: moment.Moment | null | undefined, examType: ExamType | 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 (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 (examType === null)\n throw new Error(\"The parameter 'examType' cannot be null.\");\n else if (examType !== undefined)\n url_ += \"examType=\" + encodeURIComponent(\"\" + examType) + \"&\";\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 * @param id ид экзамена\n * @return Success\n */\n generateOnlineExamRedirectionUrl(id: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/exams/{id}/online-exam-redirection-url\";\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: \"POST\",\n headers: {\n \"Accept\": \"application/json\"\n }\n };\n\n return this.http.fetch(url_, options_).then((_response: Response) => {\n return this.processGenerateOnlineExamRedirectionUrl(_response);\n });\n }\n\n protected processGenerateOnlineExamRedirectionUrl(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 === 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 generatePaymentUrl(body: GeneratePaymentUrl): Promise {\n let url_ = this.baseUrl + \"/api/v1/payment/generate-url\";\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.processGeneratePaymentUrl(_response);\n });\n }\n\n protected processGeneratePaymentUrl(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 === 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 OK\n */\n getQualifications(): Promise {\n let url_ = this.baseUrl + \"/api/v1/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.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 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 getQualificationDetails(examApplicationId: string): Promise {\n let url_ = this.baseUrl + \"/api/v1/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.processGetQualificationDetails(_response);\n });\n }\n\n protected processGetQualificationDetails(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 isExpert!: boolean;\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.isExpert = _data[\"isExpert\"];\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[\"isExpert\"] = this.isExpert;\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 isExpert: boolean;\n}\n\nexport class ApplicantExam implements IApplicantExam {\n examId!: string;\n date!: moment.Moment;\n duration!: number;\n reviewComment?: string | undefined;\n examPrice!: number;\n qualificationTitle!: string;\n qualificationLevel!: string;\n occupationalStandardTitle!: string;\n examinationCenterName!: string;\n address!: string;\n qualificationEvaluationCenterName!: string;\n city!: string;\n examStatus!: ExamStatus;\n /** Переаттестация / Признание аттестата */\n recertification!: boolean;\n examType!: ExamType;\n /** Обработан в НАРК */\n processedByNark!: boolean;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | 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.duration = _data[\"duration\"];\n this.reviewComment = _data[\"reviewComment\"];\n this.examPrice = _data[\"examPrice\"];\n this.qualificationTitle = _data[\"qualificationTitle\"];\n this.qualificationLevel = _data[\"qualificationLevel\"];\n this.occupationalStandardTitle = _data[\"occupationalStandardTitle\"];\n this.examinationCenterName = _data[\"examinationCenterName\"];\n this.address = _data[\"address\"];\n this.qualificationEvaluationCenterName = _data[\"qualificationEvaluationCenterName\"];\n this.city = _data[\"city\"];\n this.examStatus = _data[\"examStatus\"];\n this.recertification = _data[\"recertification\"];\n this.examType = _data[\"examType\"];\n this.processedByNark = _data[\"processedByNark\"];\n this.examApplicationStatus = _data[\"examApplicationStatus\"];\n this.applicationSubmitDate = _data[\"applicationSubmitDate\"] ? moment(_data[\"applicationSubmitDate\"].toString()) : undefined;\n this.examApplicationId = _data[\"examApplicationId\"];\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[\"duration\"] = this.duration;\n data[\"reviewComment\"] = this.reviewComment;\n data[\"examPrice\"] = this.examPrice;\n data[\"qualificationTitle\"] = this.qualificationTitle;\n data[\"qualificationLevel\"] = this.qualificationLevel;\n data[\"occupationalStandardTitle\"] = this.occupationalStandardTitle;\n data[\"examinationCenterName\"] = this.examinationCenterName;\n data[\"address\"] = this.address;\n data[\"qualificationEvaluationCenterName\"] = this.qualificationEvaluationCenterName;\n data[\"city\"] = this.city;\n data[\"examStatus\"] = this.examStatus;\n data[\"recertification\"] = this.recertification;\n data[\"examType\"] = this.examType;\n data[\"processedByNark\"] = this.processedByNark;\n data[\"examApplicationStatus\"] = this.examApplicationStatus;\n data[\"applicationSubmitDate\"] = this.applicationSubmitDate ? this.applicationSubmitDate.toISOString() : undefined;\n data[\"examApplicationId\"] = this.examApplicationId;\n return data; \n }\n}\n\nexport interface IApplicantExam {\n examId: string;\n date: moment.Moment;\n duration: number;\n reviewComment?: string | undefined;\n examPrice: number;\n qualificationTitle: string;\n qualificationLevel: string;\n occupationalStandardTitle: string;\n examinationCenterName: string;\n address: string;\n qualificationEvaluationCenterName: string;\n city: string;\n examStatus: ExamStatus;\n /** Переаттестация / Признание аттестата */\n recertification: boolean;\n examType: ExamType;\n /** Обработан в НАРК */\n processedByNark: boolean;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n}\n\nexport class ApplicantExamDetails implements IApplicantExamDetails {\n examId!: string;\n date!: moment.Moment;\n duration!: number;\n reviewComment?: string | undefined;\n examPrice!: number;\n qualificationTitle!: string;\n qualificationLevel!: string;\n occupationalStandardTitle!: string;\n examinationCenterName!: string;\n address!: string;\n qualificationEvaluationCenterName!: string;\n city!: string;\n examStatus!: ExamStatus;\n /** Переаттестация / Признание аттестата */\n recertification!: boolean;\n examType!: ExamType;\n /** Обработан в НАРК */\n processedByNark!: boolean;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n practicalPartDuration!: number;\n practicalQuestionsCount!: number;\n theoreticalPartDuration!: number;\n theoreticalQuestionsCount!: number;\n rules?: string | undefined;\n isPassedTheory?: boolean | undefined;\n finalized!: boolean;\n /** Список экспертов экзаменационной комиссии / подписантов протокола НОК */\n experts!: ExamExpert[];\n statusChangeTime!: moment.Moment;\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 if (!data) {\n this.experts = [];\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.duration = _data[\"duration\"];\n this.reviewComment = _data[\"reviewComment\"];\n this.examPrice = _data[\"examPrice\"];\n this.qualificationTitle = _data[\"qualificationTitle\"];\n this.qualificationLevel = _data[\"qualificationLevel\"];\n this.occupationalStandardTitle = _data[\"occupationalStandardTitle\"];\n this.examinationCenterName = _data[\"examinationCenterName\"];\n this.address = _data[\"address\"];\n this.qualificationEvaluationCenterName = _data[\"qualificationEvaluationCenterName\"];\n this.city = _data[\"city\"];\n this.examStatus = _data[\"examStatus\"];\n this.recertification = _data[\"recertification\"];\n this.examType = _data[\"examType\"];\n this.processedByNark = _data[\"processedByNark\"];\n this.examApplicationStatus = _data[\"examApplicationStatus\"];\n this.applicationSubmitDate = _data[\"applicationSubmitDate\"] ? moment(_data[\"applicationSubmitDate\"].toString()) : undefined;\n this.examApplicationId = _data[\"examApplicationId\"];\n this.practicalPartDuration = _data[\"practicalPartDuration\"];\n this.practicalQuestionsCount = _data[\"practicalQuestionsCount\"];\n this.theoreticalPartDuration = _data[\"theoreticalPartDuration\"];\n this.theoreticalQuestionsCount = _data[\"theoreticalQuestionsCount\"];\n this.rules = _data[\"rules\"];\n this.isPassedTheory = _data[\"isPassedTheory\"];\n this.finalized = _data[\"finalized\"];\n if (Array.isArray(_data[\"experts\"])) {\n this.experts = [] as any;\n for (let item of _data[\"experts\"])\n this.experts!.push(ExamExpert.fromJS(item));\n }\n this.statusChangeTime = _data[\"statusChangeTime\"] ? moment(_data[\"statusChangeTime\"].toString()) : undefined;\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[\"duration\"] = this.duration;\n data[\"reviewComment\"] = this.reviewComment;\n data[\"examPrice\"] = this.examPrice;\n data[\"qualificationTitle\"] = this.qualificationTitle;\n data[\"qualificationLevel\"] = this.qualificationLevel;\n data[\"occupationalStandardTitle\"] = this.occupationalStandardTitle;\n data[\"examinationCenterName\"] = this.examinationCenterName;\n data[\"address\"] = this.address;\n data[\"qualificationEvaluationCenterName\"] = this.qualificationEvaluationCenterName;\n data[\"city\"] = this.city;\n data[\"examStatus\"] = this.examStatus;\n data[\"recertification\"] = this.recertification;\n data[\"examType\"] = this.examType;\n data[\"processedByNark\"] = this.processedByNark;\n data[\"examApplicationStatus\"] = this.examApplicationStatus;\n data[\"applicationSubmitDate\"] = this.applicationSubmitDate ? this.applicationSubmitDate.toISOString() : undefined;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"practicalPartDuration\"] = this.practicalPartDuration;\n data[\"practicalQuestionsCount\"] = this.practicalQuestionsCount;\n data[\"theoreticalPartDuration\"] = this.theoreticalPartDuration;\n data[\"theoreticalQuestionsCount\"] = this.theoreticalQuestionsCount;\n data[\"rules\"] = this.rules;\n data[\"isPassedTheory\"] = this.isPassedTheory;\n data[\"finalized\"] = this.finalized;\n if (Array.isArray(this.experts)) {\n data[\"experts\"] = [];\n for (let item of this.experts)\n data[\"experts\"].push(item.toJSON());\n }\n data[\"statusChangeTime\"] = this.statusChangeTime ? this.statusChangeTime.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface IApplicantExamDetails {\n examId: string;\n date: moment.Moment;\n duration: number;\n reviewComment?: string | undefined;\n examPrice: number;\n qualificationTitle: string;\n qualificationLevel: string;\n occupationalStandardTitle: string;\n examinationCenterName: string;\n address: string;\n qualificationEvaluationCenterName: string;\n city: string;\n examStatus: ExamStatus;\n /** Переаттестация / Признание аттестата */\n recertification: boolean;\n examType: ExamType;\n /** Обработан в НАРК */\n processedByNark: boolean;\n examApplicationStatus?: ExamApplicationStatus;\n applicationSubmitDate?: moment.Moment | undefined;\n examApplicationId?: string | undefined;\n practicalPartDuration: number;\n practicalQuestionsCount: number;\n theoreticalPartDuration: number;\n theoreticalQuestionsCount: number;\n rules?: string | undefined;\n isPassedTheory?: boolean | undefined;\n finalized: boolean;\n /** Список экспертов экзаменационной комиссии / подписантов протокола НОК */\n experts: ExamExpert[];\n statusChangeTime: moment.Moment;\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 title!: string;\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.title = _data[\"title\"];\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[\"title\"] = this.title;\n data[\"data\"] = this.data;\n return data; \n }\n}\n\n/** Другой документ */\nexport interface IApplicantOtherIdentity {\n /** название документа */\n title: string;\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 level!: string;\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.level = _data[\"level\"];\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[\"level\"] = this.level;\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 level: string;\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 level!: string;\n /** Регистрационный номер квалификации */\n regNumber!: string;\n /** Дата присвоения */\n issueDate!: moment.Moment;\n /** Дата окончания действия */\n expireDate!: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber!: string;\n examDate!: moment.Moment;\n occupationalStandardTitle!: string;\n qecFullName!: string;\n /** Секретный код НАРК */\n secretCode!: string;\n /** Ссылка на страницу реестр в НАРК */\n narkPageUrl!: string;\n /** Ссылка на документ в НАРК */\n narkDocUrl!: 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.level = _data[\"level\"];\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.occupationalStandardTitle = _data[\"occupationalStandardTitle\"];\n this.qecFullName = _data[\"qecFullName\"];\n this.secretCode = _data[\"secretCode\"];\n this.narkPageUrl = _data[\"narkPageUrl\"];\n this.narkDocUrl = _data[\"narkDocUrl\"];\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[\"level\"] = this.level;\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[\"occupationalStandardTitle\"] = this.occupationalStandardTitle;\n data[\"qecFullName\"] = this.qecFullName;\n data[\"secretCode\"] = this.secretCode;\n data[\"narkPageUrl\"] = this.narkPageUrl;\n data[\"narkDocUrl\"] = this.narkDocUrl;\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 level: string;\n /** Регистрационный номер квалификации */\n regNumber: string;\n /** Дата присвоения */\n issueDate: moment.Moment;\n /** Дата окончания действия */\n expireDate: moment.Moment;\n /** Регистрационный номер свидетельства */\n certRegNumber: string;\n examDate: moment.Moment;\n occupationalStandardTitle: string;\n qecFullName: string;\n /** Секретный код НАРК */\n secretCode: string;\n /** Ссылка на страницу реестр в НАРК */\n narkPageUrl: string;\n /** Ссылка на документ в НАРК */\n narkDocUrl: 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 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 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 DocumentType {\n Other = \"other\",\n IdentityDoc = \"identityDoc\",\n SecondaryEducationConfirmation = \"secondaryEducationConfirmation\",\n HigherEducationConfirmation = \"higherEducationConfirmation\",\n WorkExperienceConfirmation = \"workExperienceConfirmation\",\n ContinuingEducationConfirmation = \"continuingEducationConfirmation\",\n CertificateForExchange = \"certificateForExchange\",\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 qualificationId!: string;\n examinationCenterId!: string;\n qualificationTitle!: string;\n qualificationLevel!: string;\n occupationalStandardTitle!: string;\n qualificationEvaluationCenterName!: string;\n examinationCenterName!: string;\n address!: string;\n city!: string;\n status!: ExamStatus;\n statusChangeTime!: moment.Moment;\n /** Продолжительность экзамена в минутах */\n duration!: number;\n price!: number;\n /** Переаттестация */\n recertification!: boolean;\n type!: ExamType;\n qualificationEvaluationCenterId!: string;\n numberOfApplicants!: number;\n protocolNumber?: 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.qualificationId = _data[\"qualificationId\"];\n this.examinationCenterId = _data[\"examinationCenterId\"];\n this.qualificationTitle = _data[\"qualificationTitle\"];\n this.qualificationLevel = _data[\"qualificationLevel\"];\n this.occupationalStandardTitle = _data[\"occupationalStandardTitle\"];\n this.qualificationEvaluationCenterName = _data[\"qualificationEvaluationCenterName\"];\n this.examinationCenterName = _data[\"examinationCenterName\"];\n this.address = _data[\"address\"];\n this.city = _data[\"city\"];\n this.status = _data[\"status\"];\n this.statusChangeTime = _data[\"statusChangeTime\"] ? moment(_data[\"statusChangeTime\"].toString()) : undefined;\n this.duration = _data[\"duration\"];\n this.price = _data[\"price\"];\n this.recertification = _data[\"recertification\"];\n this.type = _data[\"type\"];\n this.qualificationEvaluationCenterId = _data[\"qualificationEvaluationCenterId\"];\n this.numberOfApplicants = _data[\"numberOfApplicants\"];\n this.protocolNumber = _data[\"protocolNumber\"];\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[\"qualificationId\"] = this.qualificationId;\n data[\"examinationCenterId\"] = this.examinationCenterId;\n data[\"qualificationTitle\"] = this.qualificationTitle;\n data[\"qualificationLevel\"] = this.qualificationLevel;\n data[\"occupationalStandardTitle\"] = this.occupationalStandardTitle;\n data[\"qualificationEvaluationCenterName\"] = this.qualificationEvaluationCenterName;\n data[\"examinationCenterName\"] = this.examinationCenterName;\n data[\"address\"] = this.address;\n data[\"city\"] = this.city;\n data[\"status\"] = this.status;\n data[\"statusChangeTime\"] = this.statusChangeTime ? this.statusChangeTime.toISOString() : undefined;\n data[\"duration\"] = this.duration;\n data[\"price\"] = this.price;\n data[\"recertification\"] = this.recertification;\n data[\"type\"] = this.type;\n data[\"qualificationEvaluationCenterId\"] = this.qualificationEvaluationCenterId;\n data[\"numberOfApplicants\"] = this.numberOfApplicants;\n data[\"protocolNumber\"] = this.protocolNumber;\n return data; \n }\n}\n\nexport interface IExam {\n id: string;\n date: moment.Moment;\n qualificationId: string;\n examinationCenterId: string;\n qualificationTitle: string;\n qualificationLevel: string;\n occupationalStandardTitle: string;\n qualificationEvaluationCenterName: string;\n examinationCenterName: string;\n address: string;\n city: string;\n status: ExamStatus;\n statusChangeTime: moment.Moment;\n /** Продолжительность экзамена в минутах */\n duration: number;\n price: number;\n /** Переаттестация */\n recertification: boolean;\n type: ExamType;\n qualificationEvaluationCenterId: string;\n numberOfApplicants: number;\n protocolNumber?: number | undefined;\n}\n\nexport class ExamApplicationDetails implements IExamApplicationDetails {\n status!: ExamApplicationStatus;\n finalized!: boolean;\n statusChangeTime!: moment.Moment;\n examSessionStatus?: ExamSessionStatus;\n recommendations?: string | undefined;\n examApplicationId!: string;\n applicationSubmitDate!: moment.Moment;\n /** Обработан в НАРК */\n processedByNark!: boolean;\n examSessionReadyStatus?: ExamSessionReadyStatuses;\n exam!: Exam;\n applicant!: Applicant;\n applicantIdentityDoc!: ApplicantIdentityDoc;\n documents!: ExamApplicationDocument[];\n reviewComment?: string | undefined;\n agreementUrl?: string | undefined;\n /** Ссылка на страницу реестр в НАРК */\n narkPageUrl?: string | undefined;\n /** СВИДЕТЕЛЬСТВО О КВАЛИФИКАЦИИ */\n certificateUrl?: string | undefined;\n certificateDeliveryAddress?: string | undefined;\n isPassedTheory?: boolean | undefined;\n signCode?: string | undefined;\n approveCode?: string | undefined;\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 }\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.examSessionStatus = _data[\"examSessionStatus\"];\n this.recommendations = _data[\"recommendations\"];\n this.examApplicationId = _data[\"examApplicationId\"];\n this.applicationSubmitDate = _data[\"applicationSubmitDate\"] ? moment(_data[\"applicationSubmitDate\"].toString()) : undefined;\n this.processedByNark = _data[\"processedByNark\"];\n this.examSessionReadyStatus = _data[\"examSessionReadyStatus\"];\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 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.agreementUrl = _data[\"agreementUrl\"];\n this.narkPageUrl = _data[\"narkPageUrl\"];\n this.certificateUrl = _data[\"certificateUrl\"];\n this.certificateDeliveryAddress = _data[\"certificateDeliveryAddress\"];\n this.isPassedTheory = _data[\"isPassedTheory\"];\n this.signCode = _data[\"signCode\"];\n this.approveCode = _data[\"approveCode\"];\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[\"examSessionStatus\"] = this.examSessionStatus;\n data[\"recommendations\"] = this.recommendations;\n data[\"examApplicationId\"] = this.examApplicationId;\n data[\"applicationSubmitDate\"] = this.applicationSubmitDate ? this.applicationSubmitDate.toISOString() : undefined;\n data[\"processedByNark\"] = this.processedByNark;\n data[\"examSessionReadyStatus\"] = this.examSessionReadyStatus;\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 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[\"agreementUrl\"] = this.agreementUrl;\n data[\"narkPageUrl\"] = this.narkPageUrl;\n data[\"certificateUrl\"] = this.certificateUrl;\n data[\"certificateDeliveryAddress\"] = this.certificateDeliveryAddress;\n data[\"isPassedTheory\"] = this.isPassedTheory;\n data[\"signCode\"] = this.signCode;\n data[\"approveCode\"] = this.approveCode;\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 examSessionStatus?: ExamSessionStatus;\n recommendations?: string | undefined;\n examApplicationId: string;\n applicationSubmitDate: moment.Moment;\n /** Обработан в НАРК */\n processedByNark: boolean;\n examSessionReadyStatus?: ExamSessionReadyStatuses;\n exam: Exam;\n applicant: Applicant;\n applicantIdentityDoc: ApplicantIdentityDoc;\n documents: ExamApplicationDocument[];\n reviewComment?: string | undefined;\n agreementUrl?: string | undefined;\n /** Ссылка на страницу реестр в НАРК */\n narkPageUrl?: string | undefined;\n /** СВИДЕТЕЛЬСТВО О КВАЛИФИКАЦИИ */\n certificateUrl?: string | undefined;\n certificateDeliveryAddress?: string | undefined;\n isPassedTheory?: boolean | undefined;\n signCode?: string | undefined;\n approveCode?: string | undefined;\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 PaymentRequired = \"paymentRequired\",\n Canceled = \"canceled\",\n Paid = \"paid\",\n AdmittedToExam = \"admittedToExam\",\n IsPassing = \"isPassing\",\n Absent = \"absent\",\n NotPassed = \"notPassed\",\n Passed = \"passed\",\n}\n\nexport class ExamExpert implements IExamExpert {\n regNumber!: string;\n expertId!: string;\n fullName!: string;\n email!: string;\n phone!: string;\n region!: string;\n /** Эксперт доступен для подписи протокола */\n active!: boolean;\n /** Протокол пописан экспертом */\n signed!: boolean;\n chairman!: boolean;\n acceptedInvite?: boolean | undefined;\n position?: string | undefined;\n signedCode?: string | undefined;\n\n constructor(data?: IExamExpert) {\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.regNumber = _data[\"regNumber\"];\n this.expertId = _data[\"expertId\"];\n this.fullName = _data[\"fullName\"];\n this.email = _data[\"email\"];\n this.phone = _data[\"phone\"];\n this.region = _data[\"region\"];\n this.active = _data[\"active\"];\n this.signed = _data[\"signed\"];\n this.chairman = _data[\"chairman\"];\n this.acceptedInvite = _data[\"acceptedInvite\"];\n this.position = _data[\"position\"];\n this.signedCode = _data[\"signedCode\"];\n }\n }\n\n static fromJS(data: any): ExamExpert {\n data = typeof data === 'object' ? data : {};\n let result = new ExamExpert();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"regNumber\"] = this.regNumber;\n data[\"expertId\"] = this.expertId;\n data[\"fullName\"] = this.fullName;\n data[\"email\"] = this.email;\n data[\"phone\"] = this.phone;\n data[\"region\"] = this.region;\n data[\"active\"] = this.active;\n data[\"signed\"] = this.signed;\n data[\"chairman\"] = this.chairman;\n data[\"acceptedInvite\"] = this.acceptedInvite;\n data[\"position\"] = this.position;\n data[\"signedCode\"] = this.signedCode;\n return data; \n }\n}\n\nexport interface IExamExpert {\n regNumber: string;\n expertId: string;\n fullName: string;\n email: string;\n phone: string;\n region: string;\n /** Эксперт доступен для подписи протокола */\n active: boolean;\n /** Протокол пописан экспертом */\n signed: boolean;\n chairman: boolean;\n acceptedInvite?: boolean | undefined;\n position?: string | undefined;\n signedCode?: string | undefined;\n}\n\nexport enum ExamReviewStatus {\n All = \"all\",\n Applying = \"applying\",\n Recorded = \"recorded\",\n}\n\nexport enum ExamSessionReadyStatuses {\n WaitingForStart = \"waitingForStart\",\n ExamIsPassing = \"examIsPassing\",\n TheoreticalExamIsPassingAndSessionStarted = \"theoreticalExamIsPassingAndSessionStarted\",\n ExamSessionTimeout = \"examSessionTimeout\",\n PracticalExamIsPassingAndSessionStarted = \"practicalExamIsPassingAndSessionStarted\",\n ExamFinished = \"examFinished\",\n SessionFinished = \"sessionFinished\",\n}\n\nexport enum ExamSessionStatus {\n Active = \"active\",\n Completed = \"completed\",\n}\n\nexport enum ExamStatus {\n AwaitingExpertConfirmation = \"awaitingExpertConfirmation\",\n IsApplying = \"isApplying\",\n ApplyingFinished = \"applyingFinished\",\n Canceled = \"canceled\",\n IsPassing = \"isPassing\",\n Finishing = \"finishing\",\n Finished = \"finished\",\n FinalizedResults = \"finalizedResults\",\n NokProtocolSigned = \"nokProtocolSigned\",\n AkProtocolSigned = \"akProtocolSigned\",\n SovietProtocolSignedByMembers = \"sovietProtocolSignedByMembers\",\n SovietProtocolSignedByChairman = \"sovietProtocolSignedByChairman\",\n}\n\nexport enum ExamType {\n Intramural = \"intramural\",\n Recertification = \"recertification\",\n Online = \"online\",\n}\n\nexport class GeneratePaymentUrl implements IGeneratePaymentUrl {\n examApplicationId!: string;\n\n constructor(data?: IGeneratePaymentUrl) {\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.examApplicationId = _data[\"examApplicationId\"];\n }\n }\n\n static fromJS(data: any): GeneratePaymentUrl {\n data = typeof data === 'object' ? data : {};\n let result = new GeneratePaymentUrl();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"examApplicationId\"] = this.examApplicationId;\n return data; \n }\n}\n\nexport interface IGeneratePaymentUrl {\n examApplicationId: string;\n}\n\nexport enum IdentityDocType {\n Passport = \"passport\",\n Other = \"other\",\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\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 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 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 }\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 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\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 title!: string;\n /** данные документа */\n data!: string;\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.title = _data[\"title\"];\n this.data = _data[\"data\"];\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[\"title\"] = this.title;\n data[\"data\"] = this.data;\n return data; \n }\n}\n\nexport interface ISetApplicantOtherIdentity {\n /** название документа */\n title: string;\n /** данные документа */\n data: string;\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 certificateDeliveryAddress!: string;\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.certificateDeliveryAddress = _data[\"certificateDeliveryAddress\"];\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[\"certificateDeliveryAddress\"] = this.certificateDeliveryAddress;\n return data; \n }\n}\n\nexport interface ISubmitExamApplication {\n captcha?: string | undefined;\n signCode: string;\n certificateDeliveryAddress: string;\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 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 }\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 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\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","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 {\n Card,\n ExamStatus,\n ExamTable,\n ExamType,\n MappedExamApplicationStatuses,\n} from 'components';\nimport { push } from 'connected-react-router';\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 { useLocalErrorHandler } from 'hooks';\nimport query from '../../helpers/const/query';\n\nconst ApplicantExamsContainer = ({\n onPush, fetchMyExamApplications, examsList, apiError, setErrorHandler,\n}: Props) => {\n const [filter, setFilter] = React.useState(MyExamStatus.All);\n const [processing, setProcessing] = React.useState(false);\n\n useLocalErrorHandler(setErrorHandler);\n\n React.useEffect(() => {\n const fetch = async () => {\n setProcessing(true);\n await fetchMyExamApplications({ myExamStatus: MyExamStatus.All, sortField: 'date', sortOrder: false });\n setProcessing(false);\n };\n\n fetch();\n }, [filter]);\n\n const HEADER = [\n 'Дата и время',\n 'Квалификация',\n 'Тип',\n 'СТАТУС',\n ];\n\n const getStatus = (exam: IApplicantExam) => {\n let status: ColorStatus;\n if (exam.processedByNark) {\n status = new ColorStatus(Color.Default, 'Утвержден');\n status.subStatus = exam.examApplicationStatus === ExamApplicationStatus.Passed ? new ColorStatus(Color.Success, 'Экзамен сдан') : new ColorStatus(Color.Red, 'Экзамен не сдан');\n } else if (exam.examType === ExamType.Online && exam.examApplicationStatus === ExamApplicationStatus.Paid && !localStorage.getItem('readyForOnlineExam')) {\n status = new ColorStatus(Color.Orange, 'Пройти проверку системы');\n } else {\n status = statuses[exam.examApplicationStatus || exam.examStatus] || new ColorStatus(Color.Default, (exam.examApplicationStatus || exam.examStatus).toString());\n }\n return status;\n };\n\n const getExamData = (exam: IApplicantExam) => ({\n ...exam,\n status: getStatus(exam),\n id: exam.examId,\n name: exam.qualificationTitle,\n });\n\n const tableRows = examsList ? examsList.items.map(getExamData) : [];\n\n return (\n \n {/*
\n setFilter(MyExamStatus.All)}\n disabled={!!fetchProcessing}\n />\n setFilter(MyExamStatus.Approved)}\n disabled={!!fetchProcessing}\n />\n setFilter(MyExamStatus.Processing)}\n disabled={!!fetchProcessing}\n />\n setFilter(MyExamStatus.Recorded)}\n disabled={!!fetchProcessing}\n />\n setFilter(MyExamStatus.Canceled)}\n disabled={!!fetchProcessing}\n />\n
*/}\n onPush(`/exam/${id}?from=${query.FROM.APPLICANT_EXAMS}`)}\n placeholderTitle=\"Экзамены отсутствуют\"\n placeholderText=\"Здесь будут отображаться все Ваши экзамены\"\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 fetchMyExamApplications: dispatch.examApplications.fetchMyExamApplicationsAsync,\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)(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.PaymentRequired as string]: new ColorStatus(Color.Orange, 'Требуется оплата'),\n [ExamApplicationStatus.Paid as string]: new ColorStatus(Color.Default, 'Вы записаны'),\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 { connect } from 'react-redux';\nimport { ApplicantQualificationDetails } from '../../api/ApiClient';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { Qualifications, QualificationInfoDetails } from 'components';\nimport { useLocalErrorHandler } from 'hooks';\n\nconst ApplicantQualificationsContainer = ({\n getQualificationsList,\n qualificationsList,\n apiError, \n setErrorHandler,\n getApplicantQualificationDetails,\n qualificationDetails,\n}: Props) => {\n useLocalErrorHandler(setErrorHandler);\n\n React.useEffect(() => {\n setSelectedQualification(qualificationDetails);\n }, [qualificationDetails]);\n\n const [selectedQualification, setSelectedQualification] = React.useState(null);\n const [showErrorModal, setShowErrorModal] = React.useState(false);\n\n React.useEffect(() => {\n setSelectedQualification(null);\n const fetch = async () => {\n await getQualificationsList();\n };\n\n fetch();\n }, []);\n\n const onQualificationListRowClick = async (examApplicationId: string) => {\n const res = await getApplicantQualificationDetails(examApplicationId);\n\n if (!res) {\n setShowErrorModal(true);\n }\n };\n\n if (selectedQualification) {\n return (\n setSelectedQualification(null)}\n cardCategory=\"Список квалификаций, присвоенных вам, как соискателю\"\n />\n );\n }\n\n return (\n setShowErrorModal(false)}\n />\n );\n};\n\nconst mapState = (state: IRootState) => ({\n qualificationDetails: state.applicant.qualificationDetails,\n qualificationsList: state.applicant.qualificationsList,\n apiError: state.errors.error,\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n setErrorHandler:dispatch.errors.setErrorHandler,\n getQualificationsList: dispatch.applicant.getQualificationsListAsync,\n getApplicantQualificationDetails: dispatch.applicant.getQualificationDetailsAsync,\n});\n\ntype connectedProps = ReturnType & ReturnType\ntype Props = connectedProps;\n\nexport default connect(mapState, mapDispatch)(ApplicantQualificationsContainer);\n","import React from 'react';\nimport {\n Card,\n ExamTable,\n ExamType,\n MappedExamApplicationStatuses,\n} from 'components';\nimport {\n ExamApplicationStatus,\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 { useLocalErrorHandler } from 'hooks';\nimport query from '../../helpers/const/query';\n\nconst ExamApplicationsContainer = ({\n fetchExamApplications, setErrorHandler, examApplicationsList, apiError, onPush,\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 fetchExamApplications({ examReviewStatus: ExamReviewStatus.All });\n setProcessing(false);\n };\n\n fetch();\n }, []);\n\n const handleChooseExam = (id: string) => {\n onPush(`/exam/${id}?from=${query.FROM.APPLICATIONS}`);\n };\n\n const notReadyForOnlineExam = (app: IApplicantExam) => {\n const readyForOnlineExam = localStorage.getItem('readyForOnlineExam');\n return !readyForOnlineExam && app.examType === ExamType.Online && app.examApplicationStatus === ExamApplicationStatus.Paid;\n };\n\n const checkApplicantStatus = (app: IApplicantExam) => {\n if (notReadyForOnlineExam(app)) {\n return new ColorStatus(Color.Orange, 'Пройти проверку системы');\n }\n\n return statuses[app.examApplicationStatus || ''];\n };\n\n const getFormatTableRows = (examApplicationsListItem: IApplicantExam) => ({\n ...examApplicationsListItem,\n id: examApplicationsListItem.examId,\n name: examApplicationsListItem.qualificationTitle,\n status: checkApplicantStatus(examApplicationsListItem),\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];\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.PaymentRequired as string]: new ColorStatus(Color.Orange, 'Требуется оплата'),\n [ExamApplicationStatus.Paid as string]: new ColorStatus(Color.Default, 'Вы записаны'),\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 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 * as React from 'react';\nimport styles from './OnlineModal.module.scss';\nimport WebCamIcon from 'components/assets/svg/exam/webcam_icon.svg';\nimport { ExtendedSelect, UserVideo } from 'components';\nimport cn from 'classnames';\nimport { Button } from 'react-bootstrap';\nimport TestVideoPoster from 'components/assets/gif/test_camera.gif';\nimport TestVideoErrorPoster from 'components/assets/gif/not_allowed_camera.gif';\n\nconst VideoTest: React.FC = (props) => {\n const steps: IStep[] = [\n {\n index: 1,\n text: '1. Нажмите на кнопку «Начать проверку веб-камеры»',\n buttonText: 'Начать проверку веб-камеры',\n },\n {\n index: 2,\n text: '2. Разрешите сайту использовать вашу камеру',\n buttonText: 'Начать проверку веб-камеры',\n disableButton: true,\n video: TestVideoPoster,\n },\n {\n index: 3,\n text: '3. Улыбнитесь!',\n buttonText: 'Начать проверку веб-камеры',\n disableButton: true,\n emoji: '😁',\n },\n {\n index: 4,\n text: '4. Если вы видите себя - значит все в порядке',\n buttonText: 'Вижу себя хорошо',\n emoji: '👍 🎉',\n },\n ];\n\n const errorText = [\n 'Мы заметили, что вы отклонили запрос на предоставление доступа к веб-камере.',\n 'В соответствии с Правилами проведения экзамена, вы должны предоставить доступ к вашей веб-камере.',\n 'Для исправления ситуации, пожалуйста, следуйте видео-инструкции слева или нажмите на кнопку «Начать проверку заново».',\n ];\n\n const [currStep, setStep] = React.useState(steps[0]);\n const [isError, setError] = React.useState(false);\n const [stream, setStream] = React.useState(null);\n\n const [videoDevices, setVideoDevices] = React.useState([]);\n const [currentVideoDevice, setCurrentVideoDevice] = React.useState(null);\n\n const getVideoDevices = React.useCallback(async () => {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n return devices.filter(d => d.kind === 'videoinput')\n .map(d => ({ ...d.toJSON(), label: d.label.split('(')[0] })) as MediaDeviceInfo[];\n } catch (e) {\n console.error('Ошибка при получении списка устройств:', e);\n return [] as MediaDeviceInfo[];\n }\n }, []);\n\n\n React.useEffect(() => {\n getVideoDevices().then(setVideoDevices);\n }, []);\n\n const handleStart = React.useCallback(async () => {\n if (navigator.mediaDevices) {\n try {\n setStep(steps[1]);\n const mediaStream = await navigator.mediaDevices.getUserMedia({\n video: true,\n });\n\n getVideoDevices().then(setVideoDevices);\n\n setStep(steps[3]);\n setStream(mediaStream);\n setCurrentVideoDevice(mediaStream.getVideoTracks()[0].getSettings().deviceId || null);\n } catch (e) {\n setError(true);\n }\n }\n }, []);\n\n const handleChangeVideoDevice = async (deviceId: string) => {\n setCurrentVideoDevice(deviceId);\n if (navigator.mediaDevices) {\n try {\n const mediaStream = await navigator.mediaDevices.getUserMedia({\n video: {\n deviceId,\n },\n });\n\n setStream(mediaStream);\n } catch (e) {\n setError(true);\n }\n }\n };\n\n const handler = React.useMemo(() => {\n if (isError) {\n return () => {\n setStep(steps[0]);\n setError(false);\n };\n }\n\n if (!currStep) {\n return props.onNextTest;\n }\n\n if (currStep.index === 1) {\n return handleStart;\n }\n\n if (currStep.index === 4) {\n return () => setStep(null);\n }\n\n return () => {\n };\n }, [currStep, isError]);\n\n const buttonText = React.useMemo(() => {\n if (isError) {\n return 'Начать проверку заново';\n }\n\n if (currStep) {\n return currStep.buttonText;\n }\n\n return 'Перейти к следующему шагу';\n }, [currStep, isError]);\n\n React.useEffect(() => () => {\n if (stream) {\n stream.getTracks().forEach(track => track.stop());\n }\n }, [stream]);\n\n const videoPoster = isError ? TestVideoErrorPoster : currStep ? currStep.video : undefined;\n\n return (\n
\n
\n {(!currStep || currStep.index > 1) && (\n \n )}\n {videoDevices.length > 1 && (!currStep || currStep.index > 1) && (\n ({ label: d.label, value: d.deviceId }))}\n onChange={e => handleChangeVideoDevice(e.value)}\n value={currentVideoDevice}\n />\n )}\n
\n
\n {currStep ? (\n isError ? (\n <>\n

Нет доступа к камере ️🤷🏻‍♂

\n {errorText.map((t, i) => (\n
\n {t}\n
\n ))}\n \n ) : (\n <>\n

Как пройти тест веб-камеры?

\n
    \n {steps.map((step, i) => (\n
  • \n {step.text} {step.emoji ? {step.emoji} : null}\n
  • \n ))}\n
\n \n )\n ) : (\n
\n \"WebCamIcon\"\n Веб-камера в порядке!\n
\n )}\n \n {buttonText}\n \n
\n
\n );\n};\n\ninterface IProps {\n onNextTest: () => void;\n}\n\ninterface IStep {\n index: number;\n text: string;\n buttonText: string;\n disableButton?: boolean;\n video?: string;\n emoji?: string;\n}\n\nexport default VideoTest;\n","import * as React from 'react';\nimport styles from './OnlineModal.module.scss';\nimport cn from 'classnames';\nimport { Button } from 'react-bootstrap';\nimport MicroIcon from 'components/assets/svg/microphone.svg';\nimport { UserVideo } from 'components';\n\nimport TestAudioPoster from 'components/assets/gif/test_audio.gif';\nimport TestAudioErrorPoster from 'components/assets/gif/not_allowed_audio.gif';\n\nconst SETTINGS = {\n width: 512,\n height: 256,\n step: 8,\n strokeStyle: '#47409D',\n gradient: [\n {\n stop: 0,\n color: 'rgb(161, 49, 151)',\n },\n {\n stop: 0.75,\n color: 'rgb(93, 205, 204)',\n },\n {\n stop: 1,\n color: 'rgb(35, 88, 133)',\n },\n ],\n fillStyle: 'white',\n lineWidth: 2,\n yOffset: 256 / 2,\n capacity: 64,\n};\n\nlet frame = 0;\n\nlet arr: any[] = [];\nlet newarr: any[] = [];\n\nconst AudioTest: React.FC = (props) => {\n const steps: IStep[] = [\n {\n index: 1,\n text: '1. Нажмите на кнопку «Начать проверку микрофона»',\n buttonText: 'Начать проверку микрофона',\n },\n {\n index: 2,\n text: '2. Разрешите сайту использовать ваш микрофон',\n buttonText: 'Начать проверку микрофона',\n disableButton: true,\n video: TestAudioPoster,\n },\n {\n index: 3,\n text: '3. Начните говорить или петь',\n buttonText: 'Начать проверку микрофона',\n disableButton: true,\n emoji: '😎',\n },\n {\n index: 4,\n text: '4. Если звуковая волна движется - все в порядке!',\n buttonText: 'Линия движется',\n emoji: '👍',\n },\n ];\n\n const errorText = [\n 'Мы заметили, что вы отклонили запрос на предоставление доступа к микрофону. ',\n 'В соответствии с Правилами проведения экзамена, вы должны предоставить доступ к микрофону.',\n 'Для исправления ситуации, пожалуйста, следуйте видео-инструкции слева или нажмите на кнопку «Начать проверку заново».',\n ];\n const errorVideo = TestAudioErrorPoster;\n\n const audioAnalyzer = React.useRef(null);\n const canvas = React.useRef(null);\n const canvasCtx = React.useRef(null);\n\n const [currStep, setStep] = React.useState(steps[0]);\n const [isError, setError] = React.useState(false);\n const [stream, setStream] = React.useState(null);\n\n\n const createGradient = (context: CanvasRenderingContext2D) => {\n const gradient = context.createLinearGradient(0, SETTINGS.height / 2, SETTINGS.width, SETTINGS.height / 2);\n\n SETTINGS.gradient.forEach(g => gradient.addColorStop(g.stop, g.color));\n\n return gradient;\n };\n\n const initCanvas = () => {\n if (!canvas.current) return;\n canvasCtx.current = canvas.current.getContext('2d');\n if (!canvasCtx.current) return;\n\n canvasCtx.current.strokeStyle = createGradient(canvasCtx.current);\n canvasCtx.current.lineWidth = SETTINGS.lineWidth;\n\n canvasCtx.current.clearRect(0, 0, canvas.current.width, canvas.current.height);\n canvasCtx.current.fillStyle = SETTINGS.fillStyle;\n canvasCtx.current.fillRect(0, 0, canvas.current.width, canvas.current.height);\n canvasCtx.current.beginPath();\n canvasCtx.current.moveTo(0, canvas.current.height / 2);\n canvasCtx.current.lineTo(canvas.current.width, canvas.current.height / 2);\n canvasCtx.current.stroke();\n };\n const clampY = (y: number) => Math.min(Math.max(y, 0), SETTINGS.height);\n const getPoints = (() => {\n audioAnalyzer.current.analyser.getByteTimeDomainData(audioAnalyzer.current.dataArray);\n\n\n const sliceWidth = SETTINGS.width / audioAnalyzer.current.bufferLength;\n let x = 0;\n const temparr = [];\n\n for (let i = 0; i < audioAnalyzer.current.bufferLength; i += 1) {\n const v = audioAnalyzer.current.dataArray[i] / 128.0;\n const y = v * SETTINGS.height;\n\n if (i % SETTINGS.capacity === 0) {\n temparr.push({\n x,\n y: y - SETTINGS.height / 2,\n });\n }\n\n x += sliceWidth;\n }\n\n\n return temparr;\n });\n\n const draw = () => {\n if (!canvas.current) return;\n if (!canvasCtx.current) return;\n\n if (frame % SETTINGS.step === 0) {\n newarr = getPoints();\n }\n\n if (frame === 0) {\n arr = getPoints();\n }\n\n canvasCtx.current.clearRect(0, 0, canvas.current.width, canvas.current.height);\n canvasCtx.current.fillStyle = SETTINGS.fillStyle;\n canvasCtx.current.fillRect(0, 0, canvas.current.width, canvas.current.height);\n\n canvasCtx.current.beginPath();\n\n canvasCtx.current.moveTo(0, canvas.current.height / 2);\n\n let i;\n for (i = 1; i < arr.length - 2; i += 1) {\n if (newarr.length > 0) {\n if (arr[i].y > newarr[i].y) {\n const diff1 = (arr[i].y - newarr[i].y) / SETTINGS.step;\n arr[i].y -= diff1;\n }\n\n if (arr[i].y < newarr[i].y) {\n const diff2 = (newarr[i].y - arr[i].y) / SETTINGS.step;\n arr[i].y += diff2;\n }\n\n if (arr[i + 1].y > newarr[i + 1].y) {\n const diff3 = (arr[i + 1].y - newarr[i + 1].y) / SETTINGS.step;\n arr[i + 1].y -= diff3;\n }\n\n if (arr[i + 1].y < newarr[i + 1].y) {\n const diff4 = (newarr[i + 1].y - arr[i + 1].y) / SETTINGS.step;\n arr[i + 1].y += diff4;\n }\n }\n\n const xc = (arr[i].x + arr[i + 1].x) / 2;\n const yc = (arr[i].y + arr[i + 1].y) / 2;\n canvasCtx.current.quadraticCurveTo(arr[i].x, clampY(arr[i].y), xc, clampY(yc));\n }\n\n canvasCtx.current.quadraticCurveTo(arr[i].x, clampY(arr[i].y), canvas.current.width, clampY(canvas.current.height / 2));\n canvasCtx.current.stroke();\n\n frame += 1;\n requestAnimationFrame(draw);\n };\n\n const init = (() => {\n if (!stream) return;\n\n const audioContext = new window.AudioContext();\n const source = audioContext.createMediaStreamSource(stream);\n const analyser = audioContext.createAnalyser();\n\n source.connect(analyser);\n\n analyser.fftSize = 2048;\n const bufferLength = analyser.frequencyBinCount;\n const dataArray = new Uint8Array(bufferLength);\n analyser.getByteTimeDomainData(dataArray);\n\n audioAnalyzer.current = {\n audioContext,\n source,\n analyser,\n dataArray,\n bufferLength,\n };\n\n initCanvas();\n draw();\n });\n\n React.useEffect(() => () => {\n if (stream) {\n stream.getTracks().forEach(track => track.stop());\n }\n }, [stream]);\n\n\n const handleStart = React.useCallback(async () => {\n if (navigator.mediaDevices) {\n try {\n setStep(steps[1]);\n const mediaStream = await navigator.mediaDevices.getUserMedia({\n audio: true,\n });\n\n setStep(steps[3]);\n setStream(mediaStream);\n } catch (e) {\n setError(true);\n }\n }\n }, []);\n\n React.useEffect(() => {\n if (stream) {\n init();\n }\n }, [stream]);\n\n const handler = React.useMemo(() => {\n if (isError) {\n return () => {\n setStep(steps[0]);\n setError(false);\n };\n }\n if (!currStep) {\n return props.onNextTest;\n }\n\n if (currStep.index === 1) {\n return handleStart;\n }\n\n if (currStep.index === 4) {\n return () => setStep(null);\n }\n\n return () => {\n };\n }, [currStep, isError]);\n\n const buttonText = React.useMemo(() => {\n if (isError) {\n return 'Начать проверку заново';\n }\n\n if (currStep) {\n return currStep.buttonText;\n }\n\n return 'Перейти к следующему шагу';\n }, [currStep, isError]);\n\n\n return (\n
\n {(!currStep || currStep.index > 2) && !isError && (\n \n )}\n {currStep && currStep.index === 2 && (\n \n )}\n
\n\n {currStep ? (\n isError ? (\n <>\n

Нет доступа к микрофону ️🤷🏻‍♂

\n {errorText.map((t, i) => (\n
\n {t}\n
\n ))}\n \n ) : (\n <>\n

Как пройти тест микрофона?

\n
    \n {steps.map((step, i) => (\n
  • \n {step.text} {step.emoji ? {step.emoji} : null}\n
  • \n ))}\n
\n \n )\n ) : (\n
\n \"ScreenIcon\"\n Микрофон в порядке!\n
\n )}\n \n {buttonText}\n \n
\n
\n );\n};\n\ninterface IProps {\n onNextTest: () => void;\n}\n\ninterface IStep {\n index: number;\n text: string;\n buttonText: string;\n disableButton?: boolean;\n video?: string;\n emoji?: string;\n}\n\nexport default AudioTest;\n","import * as React from 'react';\nimport styles from './OnlineModal.module.scss';\nimport ScreenIcon from 'components/assets/svg/exam/screen_icon.svg';\nimport { UserVideo } from 'components';\nimport cn from 'classnames';\nimport { Button } from 'react-bootstrap';\nimport TestDisplayPoster from 'components/assets/gif/test_display.gif';\n\n\nconst ScreenTest: React.FC = (props) => {\n const steps: IStep[] = [\n {\n index: 1,\n text: '1. Нажмите на кнопку «Проверить доступность экрана»',\n buttonText: 'Проверить доступность экрана',\n video: TestDisplayPoster,\n },\n {\n index: 2,\n text: '2. Дайте сайту доступ ко всему экрану вашего компьютера',\n buttonText: 'Проверить доступность экрана',\n disableButton: true,\n video: TestDisplayPoster,\n },\n {\n index: 3,\n text: '3. Если вы видите в окне ваш экран - все работает как надо!',\n buttonText: 'Вижу экран',\n emoji: '👍',\n },\n ];\n\n const errorText = [\n 'Мы заметили, что вы отклонили запрос на предоставление доступа к экрану. ',\n 'В соответствии с Правилами проведения экзамена, вы должны предоставить доступ к экрану.',\n 'Для исправления ситуации, пожалуйста, следуйте видео-инструкции слева или нажмите на кнопку «Начать проверку заново».',\n ];\n\n const errorPoster = TestDisplayPoster;\n\n const [currStep, setStep] = React.useState(steps[0]);\n const [isError, setError] = React.useState(false);\n const [stream, setStream] = React.useState(null);\n\n const handleStart = React.useCallback(async () => {\n if (navigator.mediaDevices) {\n try {\n setStep(steps[1]);\n const mediaStream = await (navigator.mediaDevices as any).getDisplayMedia({\n video: true,\n });\n\n setStep(steps[2]);\n setStream(mediaStream);\n } catch (e) {\n setError(true);\n }\n }\n }, []);\n\n const handler = React.useMemo(() => {\n if (isError) {\n return () => {\n setStep(steps[0]);\n setError(false);\n };\n }\n\n if (!currStep) {\n return props.onNextTest;\n }\n\n if (currStep.index === 1) {\n return handleStart;\n }\n\n if (currStep.index === 3) {\n return () => {\n setStep(null);\n props.onSuccess();\n };\n }\n\n return () => {\n };\n }, [currStep, isError]);\n\n const buttonText = React.useMemo(() => {\n if (isError) {\n return 'Начать проверку заново';\n }\n\n if (currStep) {\n return currStep.buttonText;\n }\n\n return 'Завершить техническую проверку';\n }, [currStep, isError]);\n\n React.useEffect(() => () => {\n if (stream) {\n stream.getTracks().forEach(track => track.stop());\n }\n }, [stream]);\n\n\n const screenPoster = isError ? errorPoster : currStep ? currStep.video : undefined;\n return (\n
\n
\n {(!currStep || currStep.index > 1) && (\n \n )}\n
\n
\n {currStep ? (\n isError ? (\n <>\n

Нет доступа к экрану ️🤷🏻‍♂

\n {errorText.map((t, i) => (\n
\n {t}\n
\n ))}\n \n ) : (\n <>\n

Как проверить доступность экрана?

\n
    \n {steps.map((step, i) => (\n
  • \n {step.text} {step.emoji ? {step.emoji} : null}\n
  • \n ))}\n
\n \n )\n ) : (\n
\n \"ScreenIcon\"\n Есть доступ к экрану\n
\n )}\n \n {buttonText}\n \n
\n
\n );\n};\n\ninterface IProps {\n onNextTest: () => void;\n onSuccess: () => void;\n}\n\ninterface IStep {\n index: number;\n text: string;\n buttonText: string;\n disableButton?: boolean;\n video?: string;\n emoji?: string;\n}\n\nexport default ScreenTest;\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 IdentificationOther,\n InputText,\n ExtendedSelect,\n DatePicker,\n LoaderBtn,\n Textarea,\n} from 'components';\nimport {\n IApplicantIdentityDoc,\n IApplicant,\n IApplicantPassport,\n IApplicantOtherIdentity,\n IUpdateProfile,\n} from 'components/models';\nimport { Form, Col, Button } 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 profile,\n apiError,\n setApplicantPassport,\n setApplicantOtherIdentity,\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 };\n\n const initStatePassport: IInitApplicantPassport = {\n serialNumber: '',\n issuedBy: '',\n dateOfIssue: undefined,\n registrationAddress: '',\n };\n\n const initStateIdentification: IApplicantOtherIdentity = {\n title: '',\n data: '',\n };\n\n const initStateProfile: IInitProfile = {\n lastName: '',\n firstName: '',\n middleName: '',\n email: '',\n birthDate: 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(DocType.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 const docTypeOptions = [\n {\n label: 'Общегражданский паспорт',\n value: DocType.Passport,\n },\n {\n label: 'Другое',\n value: DocType.Other,\n },\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(DocType.Passport);\n }\n\n if (identification && identification.otherIdentity) {\n setStateIdentification(identification.otherIdentity);\n setStatePassport(initStatePassport);\n setIdentityDocType(DocType.Other);\n }\n }, [identification]);\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, validIdentificationErrors]);\n\n const handleDateChange = (val: string, momentDate: moment.Moment) => {\n setStatePassport({ ...statePassport, dateOfIssue: momentDate });\n setIdentificationValidErrors({ ...validIdentificationErrors, dateOfIssue: '' });\n };\n\n const checkFieldsErrors = (submitData: IInitApplicantPassport | IApplicantOtherIdentity | IInitProfile) => _.mapValues(submitData, (val, key) => {\n // identification\n if (key === 'dateOfIssue' && !val) return 'Обязательное поле для заполнения';\n if (val === '') return 'Обязательное поле для заполнения';\n\n // profile\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') {\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 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 };\n\n // identification\n if (identityDocType === DocType.Passport && statePassport) {\n const errors = checkFieldsErrors(statePassport) as IInitIdentificationErrors;\n const { dateOfIssue } = statePassport;\n setIdentificationValidErrors(errors);\n\n if (isValidFormData(errors) && dateOfIssue) {\n setProcessing(true);\n await setApplicantPassport({ ...statePassport, dateOfIssue });\n setProcessing(false);\n valid = { ...valid, identification: true };\n }\n } else if (identityDocType === DocType.Other) {\n const errors = checkFieldsErrors(stateIdentification) as IInitIdentificationErrors;\n setIdentificationValidErrors(errors);\n\n if (isValidFormData(errors)) {\n setProcessing(true);\n await setApplicantOtherIdentity(stateIdentification);\n setProcessing(false);\n valid = { ...valid, identification: true };\n }\n }\n\n // profile\n const errors = checkFieldsErrors(stateProfile) as IInitProfileErrors;\n setValidProfileErrors(errors);\n const { birthDate } = stateProfile;\n\n if (isValidFormData(errors) && birthDate) {\n setProcessing(true);\n await onUpdateProfile({ ...profile, ...stateProfile, birthDate });\n setProcessing(false);\n valid = { ...valid, profile: true };\n }\n\n if (valid.identification && valid.profile) {\n goNext();\n }\n };\n\n return (\n \n
\n \n \n \n ТИП ДОКУМЕНТА\n \n \n \n {\n setIdentityDocType(e.value as DocType);\n setIdentificationValidErrors(initIdentificationErrors);\n }}\n />\n {validIdentificationErrors.identityDocType}\n \n \n\n {identityDocType === DocType.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 \n \n \n \n \n АДРЕС РЕГИСТРАЦИИ\n \n \n \n {\n setStatePassport({ ...statePassport, registrationAddress });\n setIdentificationValidErrors({ ...validIdentificationErrors, registrationAddress: '' });\n }}\n />\n \n \n \n ) : (\n <>\n {\n setStateIdentification({ ...stateIdentification, title: value });\n setIdentificationValidErrors({ ...validIdentificationErrors, title: '' });\n }}\n labelTitle=\"НАЗВАНИЕ ДОКУМЕНТА\"\n labelColSize={2}\n inputColSize={6}\n fieldFailures={validIdentificationErrors}\n placeholder=\"Укажите название документа\"\n inputClassNames={cn('p-0', identificationStyles.col)}\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 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 {!profile.email ? (\n {\n setStateProfile({ ...stateProfile, email: value });\n setValidProfileErrors({ ...validProfileErrors, email: '' });\n }}\n withDarkLabel\n />\n ) : null}\n
\n
ДАТА РОЖД.
\n
\n setStateProfile({ ...stateProfile, birthDate: newMoment })}\n />\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 profile: IApplicant;\n apiError?: IApiError | null;\n contentClassName?: string;\n goNext: () => void;\n goBack: () => void;\n setApplicantPassport: (data: IApplicantPassport) => void;\n setApplicantOtherIdentity: (data: IdentificationOther) => void;\n onUpdateProfile: (data: IUpdateProfile) => void;\n}\n\ninterface IInitProfileErrors {\n firstName: string;\n lastName: string;\n middleName: string;\n sex: string;\n email: string;\n birthDate: string;\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}\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 [key: string]: string;\n}\n\nenum DocType {\n Passport = 'passport',\n Other = 'other',\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 {\n Card,\n Loader,\n AlertText,\n IdentificationOther,\n IdentificationPassport,\n StatementTab,\n SmsSignModal,\n ExamApplicationStatus,\n} from 'components';\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\nconst RegistrationForExam = ({\n apiError,\n processing,\n documentsProps,\n goBack,\n sendingProps,\n setApplicantOtherIdentity,\n setApplicantPassport,\n onUpdateProfile,\n examApplication,\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 certificateDeliveryAddress = React.useMemo(() => (examApplication ? (examApplication.certificateDeliveryAddress || '') : ''), [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 const [sendingText, setSendingText] = React.useState(certificateDeliveryAddress);\n const [activeTab, setActiveTab] = React.useState(correctionsRequired ? TabKey.Documents : TabKey.Identification);\n\n const onSubmitSmsModal = async (signCode: string, captcha: string) => {\n const res = await sendCodeToSignApplication(captcha);\n\n if (res) {\n const created = await createExamApplication({\n signCode,\n captcha,\n certificateDeliveryAddress: sendingText,\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 sendingText={sendingText}\n setSendingText={setSendingText}\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 sendingProps: IStatementTabSendingProps;\n apiError: IApiError | null;\n processing?: boolean;\n setApplicantPassport: (data: IdentificationPassport) => void;\n setApplicantOtherIdentity: (data: IdentificationOther) => void;\n onUpdateProfile: (data: IUpdateProfile) => void;\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 { 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 fetchExamDetails,\n documentTemplateGroups,\n examApplication,\n getDocumentTemplateGroups,\n deleteExamApplicationDocument,\n deleteExamApplicationDocumentSource,\n uploadExamApplicationDocument,\n onPush,\n onGoBack,\n submitExamApplication,\n sendCodeToSignApplication,\n setApplicantOtherIdentity,\n setApplicantPassport,\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 }\n }\n };\n\n fetch();\n\n setProcessing(false);\n\n return () => setProcessing(false);\n }, [examId]);\n\n const goBack = () => {\n const urlParams = new URLSearchParams(window.location.search);\n const from = urlParams.get('from');\n\n if (onGoBack) {\n onGoBack();\n }\n\n if (from) {\n onPush(`/${from}`);\n } else {\n onPush('/exam-timetables');\n }\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: 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 {\n await updateProfile(data);\n await fetchExamDetails(examId);\n }}\n />\n );\n};\n\nconst mapState = (state: IRootState) => ({\n exam: state.exam.exam,\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 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 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,\n} from 'components';\nimport {\n Col,\n Form,\n FormControl,\n FormGroup,\n FormLabel,\n} from 'react-bootstrap';\nimport { mapAPIError, RegExpConst, personalDataProcessingPolicy } 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};\n\nconst defaultFormErrors = {\n email: '',\n sex: '',\n personalChecked: '',\n birthDate: '',\n captcha: '',\n};\n\nconst RegistrationStep3 = ({\n apiError, register, registerForm, authProcessing,\n}: Props) => {\n const [form, setForm] = useState(defaultState);\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 const doValidate = (formData: FormState) => {\n const validateErrors = { ...errors };\n\n const setE = (isNotValid: boolean) => (isNotValid ? 'Error' : '');\n const test = (field: string, regexp: RegExp) => setE(!regexp.test(field));\n\n validateErrors.email = test(formData.email, RegExpConst.EMAIL);\n validateErrors.birthDate = setE(!formData.birthDate);\n validateErrors.sex = setE(!formData.sex);\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 handleBirthDayChange = (ymd: string, time: moment.Moment) => {\n const newForm = {\n ...form,\n birthDate: time,\n };\n\n setForm(newForm);\n doValidate(newForm);\n };\n\n const handleSexChange = (sex: Sex) => {\n const newForm = {\n ...form,\n sex,\n };\n\n setForm(newForm);\n doValidate(newForm);\n };\n\n const handleToggleCheck = (targetNodeName: string, name: string) => {\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\n if (!doValidate(form)) return;\n\n await register({\n ...registerForm,\n email: form.email,\n birthDate: moment(form.birthDate || ''),\n sex: form.sex,\n captcha,\n });\n\n setCaptcha('');\n };\n\n const handleChangeInput = (name: string, value: string) => {\n const newForm = {\n ...form,\n [name]: value,\n };\n\n setForm(newForm);\n doValidate(newForm);\n };\n\n const renderSexElement = (sex: Sex) => (\n handleSexChange(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 \n \n\n \n
\n {renderSexElement(Sex.Male)}\n {renderSexElement(Sex.Female)}\n
\n
\n\n \n
\n
handleToggleCheck(e.target.nodeName, 'personalChecked')} data-test-first-checkbox>\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 apiError: state.errors.error,\n authProcessing: Boolean(state.loading.effects.auth.register),\n});\n\nconst mapDispatch = (dispatch: Dispatch) => ({\n register: dispatch.auth.register,\n});\n\nexport default connect(mapState, mapDispatch)(RegistrationStep3);\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 [key: string]: string | boolean | moment.Moment | null;\n}\n\nenum SexTranslation {\n 'male' = 'Мужской',\n 'female' = 'Женский',\n}\n","import React from 'react';\nimport {\n Card,\n WarningModal,\n Checkbox,\n ApplicantExamDetailsTabs,\n AlertText,\n ExamApplicationStatus,\n ExamStatus,\n ExamType,\n AppType,\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';\nimport { SystemSettings } from '../../components/SystemSettings';\nimport { IApplicantExamDetails } from '../../api/ApiClient';\nimport moment from 'moment';\nimport styles from './ExamDetailsContainer.module.scss';\n\nconst ExamDetailsContainer = ({\n setErrorHandler,\n fetchExamDetails,\n examId,\n exam,\n examApplication,\n onPush,\n apiError,\n createExamApplication,\n onlineExamRedirectionUrl,\n generateOnlineExamRedirectionUrl,\n}: Props) => {\n useLocalErrorHandler(setErrorHandler);\n\n const [processing, setProcessing] = React.useState(false);\n const [showRegisterInfo, setShowRegisterInfo] = React.useState(false);\n const [showRulesModal, setShowRulesModal] = React.useState(false);\n const [complianceRules, setComplianceRules] = React.useState(false);\n const [showSystem, setShowSystem] = 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 draft = React.useMemo(() => examApplicationStatus === ExamApplicationStatus.Draft, [examApplicationStatus]);\n const title = React.useMemo(() => (exam ? exam.qualificationTitle : ''), [exam]);\n const changeStatus = React.useMemo(() => !examApplicationStatus || draft || examApplicationStatus === ExamApplicationStatus.CorrectionsRequired, [examApplicationStatus, draft]);\n\n const urlParams = new URLSearchParams(window.location.search);\n const from = urlParams.get('from');\n\n React.useEffect(() => {\n setShowSystem(false);\n if (exam && notReadyForOnlineExam(exam)) {\n setShowSystem(true);\n }\n }, [exam]);\n\n const handleCloseShowSystem = React.useCallback(() => {\n if (exam && !notReadyForOnlineExam(exam)) {\n setShowSystem(false);\n }\n }, [exam]);\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 checkApplicantReadyStatus = () => examApplicationStatus && (\n examApplicationStatus === ExamApplicationStatus.Paid\n || examApplicationStatus === ExamApplicationStatus.IsPassing\n || examApplicationStatus === ExamApplicationStatus.AdmittedToExam);\n\n const checkExamReadyStatus = () => examStatus && (\n examStatus === ExamStatus.ApplyingFinished\n || examStatus === ExamStatus.IsPassing\n );\n\n const onRegisterButtonClick = async () => {\n if (!draft && examStatus === ExamStatus.IsApplying) {\n await createExamApplication(examId);\n }\n setShowRegisterInfo(true);\n };\n\n const notReadyForOnlineExam = (app: IApplicantExamDetails) => {\n const readyForOnlineExam = localStorage.getItem('readyForOnlineExam');\n return !readyForOnlineExam && app.examType === ExamType.Online && app.examApplicationStatus === ExamApplicationStatus.Paid;\n };\n\n const cardHeaderBtn = () => (\n <>\n {changeStatus ? (\n \n ) : null\n }\n {exam && exam.examType === ExamType.Online && checkApplicantReadyStatus() && checkExamReadyStatus() ? (\n \n ) : null}\n \n );\n\n const renderRulesModal = () => (\n setShowRulesModal(false)}\n titleClassNames={styles.ruleModalTitle}\n bodyClassNames=\"pb-0 pt-0\"\n footerClassNames=\"p-0\"\n dialogClassName={styles.rulesModalDialog}\n withoutCancelButton\n large\n >\n Пожалуйста, подтвердите, что вы внимательно ознакомились и согласны со всеми правилами проведения онлайн экзамена.\n
\n \n Настоящие Условия и Правила проведения экзамена (далее - "Правила") определяют порядок взаимодействия Вас, в качестве Соискателя (далее - "Соискателя" или "Вас") и Центра оценки квалификации (далее - "ЦОК") при использовании программного обеспечения "Автоматизированная система ЦОК" (далее - "АС ЦОК") при прохождении процедуры независимой оценки квалификации в онлайн режиме (далее - "Онлайн НОК" или "Экзамен"). Настоящие Правила также применяются ко всей информации (включая текстовую, графическую и визуальную), участвующей в процессе или появившейся в результате взаимодействия Соискателя с АС ЦОК (далее - "Контент").\n
\n
\n Для использования АС ЦОК Соискатель должен обладать компьютерным и программным обеспечением, а также Интернет-соединением, соответствующими техническим требованиям для работы в АС ЦОК в рамках прохождении процедуры независимой оценки квалификации в онлайн режиме:\n
\n
\n
    \n
  • \n Разрешение и fps веб-камеры
    \n Минимальное: 720p 30fps
    \n Рекомендуемое: 1080p 30fps
    \n
  • \n
    \n\n
  • Тип интернета: Выделенная линия (Ethernet или оптоволоконный канал)
  • \n
    \n\n
  • \n Скорость интернета на скачивание:
    \n Минимальное: 5 Mbps
    \n Рекомендуемое: 10 Mbps
    \n
  • \n
    \n\n
  • \n Скорость интернета на загрузку:
    \n Минимальное: 5 Mbps
    \n Рекомендуемое: 10 Mbps
    \n
  • \n
    \n\n
  • \n Оперативная память компьютера (RAM):
    \n Минимальное: 2 GB
    \n Рекомендуемое: 4 GB
    \n
  • \n
    \n\n
  • \n Процессорная частота
    \n Минимальное: Одноядерный 1 ГГц или выше
    \n Рекомендуемое: Двухъядерный 2 ГГц или выше (i3 / i5 / i7 или AMD)
    \n
  • \n
    \n\n
  • \n Доступность портов: 1935, 843, 80, 443, 61613, UDP/TCP 1935, 843, 80, 443, 61613, UDP/TCP
    \n
  • \n
    \n\n
  • \n Браузер: Google Chrome последней версии
    \n
  • \n
    \n\n
  • \n Исправно функционирующий микрофон (внешний или встроенный в веб-камеру)\n
  • \n
    \n
\n Соискатель также должен обеспечить приемлемые внешние условия на всем протяжении Онлайн НОК, включая, но не ограничиваясь:\n
\n
\n
    \n
  • хорошее освещение помещения, в котором будет проходить Онлайн НОК
  • \n
  • отсутствие каких-либо шумовых загрязнений
  • \n
  • отсутствие каких-либо помех передаче видео и/или аудио сигнала
  • \n
\n
\n ЦОК и/или Разработчик АС ЦОК не несут никакой ответственности за любые технические, сетевые или программные сбои, которые могут каким-либо образом повлиять на процесс прохождения Соискателем процедуры независимой оценки квалификации в онлайн режиме.\n
\n
\n Продолжая работу в АС ЦОК, Вы принимаете настоящие Правила и соглашаетесь неукоснительно им следовать. В случае Вашего несогласия с настоящими Правилами, немедленно прекратите использование АС ЦОК, осуществив выход из Вашего личного кабинета (далее - "ЛК").\n
\n
\n ЦОК оставляет за собой право в любой момент приостановить или прекратить предоставление доступа Соискателю к АС ЦОК без какого-либо предварительного уведомления Соискателя в случае, если ЦОК имеет основание полагать, что имело место нарушение настоящих Правил Соискателем.\n
\n
\n Соискатель несет полную ответственность за использование АС ЦОК, а также за все последствия, которые могут возникнуть в результате этого использования.\n
\n
\n Весь Контент, включая видеозапись Онлайн НОК Соискателя будет передан и просмотрен сотрудниками ЦОК, членами экспертной комиссии НОК, а также СПКФР. Сущность, функциональный набор, а также состав самих сервисов, входящих в состав АС ЦОК может быть изменен в любое время без предварительного уведомления Соискателя. Также, ЦОК может в любой момент приостановить или прекратить предоставление доступа Соискателю к АС ЦОК без какого-либо предварительного уведомления Соискателя.\n
\n
\n Соискателю запрещается вести фото и/или видео съемку, а также звуковую запись любого типа взаимодействия с АС ЦОК без письменного разрешения Разработчика АС ЦОК. Вы также не имеете права частично или полностью копировать вопросы и/или ответы из Экзамена, делиться ими, а также обсуждать их с кем-либо.\n
\n
\n Продолжая работу в АС ЦОК, Вы соглашаетесь предоставлять только правдивую и точную информацию в целях корректной идентификации ЦОК Вашей личности.\n
\n
\n Находясь в режиме Онлайн НОК, АС ЦОК будет удаленно подсоединяться к Вашему компьютеру в целях предоставления возможности Экспертам осуществлять мониторинг всего, что происходит на экране Вашего компьютера, а также Вашего комнатного окружения. Как часть процесса Онлайн НОК, Вы соглашаетесь содействовать Эксперту, проводящему экзамен (далее - "Эксперт НОК") в осмотре Вашего комнатного окружения при помощи веб-камеры. Вы также соглашаетесь поддерживать аудио и визуальный контакт с Экспертом НОК на протяжении всего процесса Онлайн НОК, а также позволяете АС ЦОК вести запись всего Экзамена, включая запись экрана Вашего компьютера. Вы также соглашаетесь с тем, что данные записи будут переданы на обработку в СПКФР.\n
\n
\n В случае некорректного поведения Соискателя во время Онлайн НОК, Эксперт НОК оставляет за собой право прекратить предоставление доступа к АС ЦОК.\n Продолжая использование АС ЦОК, Вы понимаете и принимаете, что Экзамен может быть прерван Экспертом НОК, включая, но не ограничиваясь следующими нарушениями со стороны Соискателя:\n
\n - Нарушение этических норм поведения
\n - Уклонение из зоны видимости веб-камеры
\n - Отключение микрофона
\n - Использование более одного средства ввода/вывода информации на компьютер
\n - Общение с третьими лицами в любой форме
\n - Предоставление доступа к своему компьютеру третьим лицам
\n - Использование вспомогательных или справочных материалов в любой форме
\n - Использование иных технически сложных устройств, помимо компьютера, на котором осуществляется Онлайн НОК.
\n - Намеренное игнорирование сообщений со стороны Эксперта НОК
\n - Многократный выход курсора из зоны Экзамена.\n
\n
\n Вы соглашаетесь и принимаете тот факт, что Разработчик АС ЦОК может в любое время вносить изменения в техническую и функциональную спецификацию АС ЦОК по своему усмотрению, а также с тем, что ЦОК и/или Разработчик АС ЦОК не несут какой-либо ответственности за недоступность или невозможность использовать АС ЦОК по любым причинам.\n
\n
\n Вы отчетливо понимаете и соглашаетесь с тем, что вся информация, вносимая Вами в АС ЦОК будет передаваться через сеть Интернет и процесс этой передачи находится вне зоны контроля ЦОК и/или Разработчика АС ЦОК. В этой связи, у ЦОК и/или Разработчика АС ЦОК не может возникать никаких обязательств или ответственности за возможную потерю, удаление или отсутствие возможности передать или сохранить такой Контент.\n ЦОК и/или Разработчика АС ЦОК не несут никакой ответственности за потерю или повреждение Ваших компьютерных систем, электронно-цифровых устройств или компьютерных сетей, при использование Вами АС ЦОК.\n ЦОК и/или Разработчика АС ЦОК также не несут никакой ответственности за последствия или ущерб, нанесенный возможными DDoS-атаками, вирусами или любыми другими технически опасными средствами, способными заразить и повредить Ваше компьютерное оборудование, программы, устройства или данные, в результате использования АС ЦОК.\n
\n
\n ЦОК и/или Разработчик АС ЦОК ни при каких обстоятельствах не несут ответственность за любые задержки и/или сбои в работе АС ЦОК.\n
\n
\n Ни при каких обстоятельствах СПКФР, ЦОК и/или Разработчик АС ЦОК не могут нести ответственность за любого рода ущерб (включая, но не ограничиваясь: упущенную выгоду и/или возможности, недополученную прибыль, моральный ущерб, потери по времени, простои, ущерб репутации, судебные или расходы на юристов и адвокатов итд.)\n
\n
\n Настоящие Правила могут быть изменены в любое время без предварительного уведомления Соискателя. Любые такие изменения вступаю в силу немедленно и безусловно превалируют над всеми предыдущими версиями настоящих Правил. Продолжая использовать АС ЦОК после таких изменений, Вы автоматически соглашаетесь соблюдать и придерживаться новых Правил.\n Ознакомление с последней актуальной версией Правил является обязанностью Соискателя.\n
\n
\n Вы также соглашаетесь на обработку в соответствии с Федеральным законом от 27 июля 2006 г. № 152-ФЗ «О персональных данных» (Собрание законодательства Российской Федерации, 2006, № 31, ст. 3451) своих персональных данных, указанных в заявлении на прохождение независимой оценки квалификации и прилагаемых к нему документах (фамилия, имя, отчество (при наличии), дата и место рождения, реквизиты документа, удостоверяющего личность, - наименование документа, серия, номер, кем выдан и когда, месте проживания (регистрации), место работы, образование и квалификация), а также результатов прохождения профессионального экзамена, присвоения квалификации и выдачи свидетельства о квалификации, внесения и хранения соответствующей информации в реестре сведений о проведении независимой оценки квалификации в соответствии с Федеральным законом от 03.07.2016 г. № 238-ФЗ «О независимой оценке квалификации». Вы уведомлены и понимаете, что под обработкой персональных данных подразумевается совершение следующих действий (операций): сбор, обработка, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, подтверждение, передача (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных по истечении срока действия настоящего согласия в соответствии с Федеральным законом от 27 июля 2006 г. № 152-ФЗ «О персональных данных».\n
\n
\n setComplianceRules(!complianceRules)}\n number=\"1\"\n blue\n />\n generateOnlineExamRedirectionUrl(examId)}\n disabled={!complianceRules}\n >\n Подтвердить и перейти к следующему шагу\n \n {onlineExamRedirectionUrl\n ? (\n \n onlineExamRedirectionUrl\n \n )\n : null}\n \n );\n\n\n if (showSystem) {\n return (\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 : null\n }\n {exam ? (\n \n ) : null}\n {renderRulesModal()}\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 generateOnlineExamRedirectionUrl: dispatch.exam.generateOnlineExamRedirectionUrlAsync,\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","import React from 'react';\nimport { connect } from 'react-redux';\nimport { ExamTable, Card, MappedExamApplicationStatuses } from 'components';\nimport { push } from 'connected-react-router';\nimport { IApplicantExam, ExamStatus, ExamApplicationStatus } from '../../api/ApiClient';\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 ExamTimeTablesContainer = ({\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.TIMETABLES}`);\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];\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.PaymentRequired as string]: new ColorStatus(Color.Orange, 'Требуется оплата'),\n [ExamApplicationStatus.Paid as string]: new ColorStatus(Color.Default, 'Вы записаны'),\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\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 \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","export const personalDataProcessingPolicy = 'https://images.spkfr.ru/personal-data-processing-policy.pdf';\n","import React, { useState } from 'react';\nimport RegistrationStep1 from './RegistrationStep1';\nimport RegistrationStep2 from './RegistrationStep2';\nimport RegistrationStep3 from './RegistrationStep3';\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 && }\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","export const DASHBOARD_ROUTES = [\n {\n title: 'Настройки профиля',\n pathname: '/my-profile',\n },\n {\n title: 'Экзамены',\n pathname: ['/exam-timetables', '/exam-applications', '/exam-recognition', '/exam/*', '/applicant-exams'],\n },\n {\n title: 'Квалификации',\n pathname: ['/applicant-qualifications', '/applicant-qualification-details/*'],\n },\n {\n title: 'Подтверждение почты',\n pathname: ['/confirm-email/*'],\n },\n {\n title: 'Успешная оплата',\n pathname: ['/payment/success'],\n },\n {\n title: 'Ошибка при оплате',\n pathname: ['/payment/fail'],\n },\n];\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport {\n Sidebar,\n WarningModal,\n NotificationSystem,\n SidebarMenuMapType,\n updateTabEvents,\n SidebarTab,\n EmailConfirmationNotification,\n} from 'components';\nimport { Location } from 'history';\nimport { push } from 'connected-react-router';\nimport { DASHBOARD_ROUTES } from '../../routes/listOfRoutes';\nimport { Dispatch, IRootState } from '../../redux/store/configureStore';\nimport { useShowGlobalErrorModal } from 'hooks';\nimport ExamIcon from 'components/assets/svg/sidebar/exams.svg';\nimport QualificationIcon from 'components/assets/svg/sidebar/qualif.svg';\n\nconst TABS: SidebarTab[] = [\n {\n name: 'Экзамены',\n icon: ExamIcon,\n state: 'exams',\n routes: DASHBOARD_ROUTES[1].pathname,\n list: [\n {\n name: 'Расписание экзаменов',\n path: '/exam-timetables',\n routes: ['/exam/*?from=exam-timetables'],\n },\n {\n name: 'Признание аттестата',\n path: '/exam-recognition',\n routes: ['/exam/*?from=exam-recognition'],\n },\n {\n name: 'Заявки в рассмотрении',\n path: '/exam-applications',\n routes: ['/exam/*?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 routes: DASHBOARD_ROUTES[2].pathname,\n list: [\n {\n name: 'Мои квалификации',\n path: '/applicant-qualifications',\n routes: ['/applicant-qualifications'],\n },\n ],\n },\n];\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, 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 ExamApplicationStatus,\n ExamType,\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({ examType: ExamType.Recertification });\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 examType: ExamType.Recertification,\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];\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.PaymentRequired as string]: new ColorStatus(Color.Orange, 'Требуется оплата'),\n [ExamApplicationStatus.Paid as string]: new ColorStatus(Color.Default, 'Вы записаны'),\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 { 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 { ApplicantQualificationsContainer } from '../../containers';\n\nconst ApplicantQualificationsPage = () => ;\n\nexport default ApplicantQualificationsPage;\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 * as React from 'react';\nimport { ExamRecognitionContainer } from '../../containers';\n\nconst ExamRecognitionPage = () => ;\n\nexport default ExamRecognitionPage;\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 { DASHBOARD_ROUTES } from '../../routes/listOfRoutes';\nimport { IRootState } from '../../redux/store/configureStore';\nimport { useReloader } from 'hooks';\nimport cx from 'classnames';\nimport styles from './AuthorizedLayout.module.scss';\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 ApplicantQualificationsPage,\n EmailConfirmationPage,\n PaymentResultPage,\n ExamRecognitionPage,\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} from '../../api/ApiClient';\nimport { INotification } from 'components';\nimport { createModel } from '@rematch/core';\nimport { 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};\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 localStorage.clear();\n\n return initialState;\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 const result = await apiConnector.execApi(dispatch, apiClient => apiClient.sendResetPasswordVerificationCode(new SendVerificationCode(data)));\n\n return result;\n },\n async checkResetPasswordVerificationCodeAsync(data: ICheckVerificationCode) {\n const result = await apiConnector.execApi(dispatch, apiClient => apiClient.checkResetPasswordVerificationCode(new CheckVerificationCode(data)));\n\n return result;\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 }),\n});\n\ninterface AuthState {\n profile: IApplicant | null;\n token: string;\n registerForm: IRegisterApplicant;\n verificationStatus: IVerificationCodeSendingStatus | 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 GeneratePaymentUrl,\n IApplicantExamDetails,\n IApplicantExamList,\n IExamApplicationDetails,\n QualificationDocumentTemplateGroup,\n ExamType,\n SubmitExamApplication,\n} from '../../api/ApiClient';\nimport { INotification } from 'components';\nimport { createModel } from '@rematch/core';\nimport moment from 'moment';\nimport apiConnector from '../../api/ApiConnector';\n\nconst initialState: ExamState = {\n examsList: null,\n exam: null,\n examApplication: null,\n paymentUrl: null,\n documentTemplateGroups: null,\n onlineExamRedirectionUrl: 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 },\n effects: (dispatch: any) => ({\n async fetchExams(payload: GetExamsQuery) {\n this.setExamState({\n examsList: await apiConnector.execApi(dispatch, apiClient => apiClient.getExams(\n payload.from,\n payload.to,\n payload.examType,\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 payForExamApplication(id: string) {\n const paymentUrl = await apiConnector.execApi(dispatch, api => api.generatePaymentUrl(new GeneratePaymentUrl({ examApplicationId: id })));\n\n if (paymentUrl) {\n this.setExamState({ paymentUrl });\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 async generateOnlineExamRedirectionUrlAsync(examId: string) {\n const onlineExamRedirectionUrl = await apiConnector.execApi(dispatch, apiClient => apiClient.generateOnlineExamRedirectionUrl(examId));\n\n this.setOnlineExamRedirectionUrl(onlineExamRedirectionUrl);\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}\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 GetExamsQuery {\n from?: moment.Moment | null;\n to?: moment.Moment | null;\n examType?: ExamType;\n page?: number;\n pageSize?: number;\n sortOrder?: boolean | null;\n sortField?: string | null;\n}\n\ninterface ISubmitExamApplication {\n examApplicationId: string;\n body?: SubmitExamApplication;\n}\n","import {\n ApplicantQualification,\n ApplicantQualificationDetails,\n ApplicantIdentityDoc,\n SetApplicantPassport,\n ISetApplicantPassport,\n SetApplicantOtherIdentity,\n ISetApplicantOtherIdentity,\n QualificationDocumentTemplateGroup,\n ISendCodeToSignApplication,\n SendCodeToSignApplication,\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};\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 clearState() {\n return {\n ...initialState,\n };\n },\n },\n effects: (dispatch: any) => ({\n async getQualificationsListAsync() {\n const qualificationsList = await apiConnector.execApi(dispatch, apiClient => apiClient.getQualifications());\n\n this.setQualificationsList(qualificationsList);\n },\n async getQualificationDetailsAsync(examApplicationId: string) {\n const qualificationDetails = await apiConnector.execApi(dispatch, apiClient => apiClient.getQualificationDetails(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 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}\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';\n\nconst initialState: IState = {\n examApplicationsList: null,\n myExamApplicationsList: null,\n};\n\nexport default createModel({\n state: initialState,\n reducers: {\n setExamApplicationList(state, examApplicationsList: IApplicantExamList) {\n return { ...state, examApplicationsList };\n },\n setMyExamApplicationList(state, myExamApplicationsList: IApplicantExamList) {\n return { ...state, myExamApplicationsList };\n },\n },\n effects: (dispatch: any) => ({\n async fetchExamApplicationsAsync(data: IGetExamApplications) {\n const examApplicationsList = await apiConnector.execApi(dispatch, apiClient => apiClient.getExamApplicationsList(data.examReviewStatus, data.page, data.pageSize, data.sortOrder, data.sortField));\n\n this.setExamApplicationList(examApplicationsList);\n },\n async fetchMyExamApplicationsAsync(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 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';\nimport apiConnector from '../../api/ApiConnector';\nimport _ from 'lodash';\n\nlet intervalTimer = 0;\nconst 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';\n\nconst createHistory = require('history').createBrowserHistory;\n\nconst models = {\n auth,\n errors,\n examApplications,\n exam,\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 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":""}