{"version":3,"sources":["_DATA/Api/index.ts","Contexts/Api/index.ts","Store/Actions/Localization/index.ts","Store/Reducers/Localization/index.ts","Store/Actions/Authentication/index.ts","Store/Reducers/Authentication/index.ts","Store/Actions/Interface/ChangeApiRequestStatus/index.ts","Store/Actions/Interface/ChangeModalMessage/index.tsx","Store/Reducers/Interface/index.ts","Store/Actions/Api/ChangeApiRequestTokenValue/index.ts","Store/Reducers/Api/index.ts","Store/index.ts","reportWebVitals.ts","_Services/Hooks/UseTypedSelector/index.ts","_DATA/Theme/index.ts","Contexts/Theme/index.ts","_DATA/Router/index.ts","Contexts/Router/index.ts","Components/UI/Loaders/MainContent/index.tsx","Components/UI/Loaders/ApiRequest/index.tsx","Components/UI/Containers/Block/index.tsx","Utilities/Animations/Scrolling/index.js","Components/UI/Communicates/Messages/Default/index.tsx","Components/UI/Communicates/Messages/Error/index.tsx","Components/UI/Forms/Reset/index.tsx","Components/UI/Forms/SwitchPage/index.tsx","Components/UI/Forms/Group/Fields/index.tsx","Components/UI/Forms/Group/index.tsx","Components/UI/Forms/Field/index.tsx","Components/UI/Forms/Buttons/Default/index.tsx","Components/Views/Pages/NotAuthenticated/Register/Steps/Step1/index.tsx","Components/UI/Forms/Group/Header/index.tsx","Components/Views/Pages/NotAuthenticated/Register/Steps/Step2/index.tsx","Components/UI/Forms/Field/Checkbox/index.tsx","_Services/Interfaces/Http/Request/Headers/index.ts","Components/Views/Pages/NotAuthenticated/Register/Steps/Step3/Regulation/index.tsx","Components/Views/Pages/NotAuthenticated/Register/Steps/Step3/index.tsx","Components/Views/Pages/NotAuthenticated/Register/Steps/Step4/index.tsx","Components/Views/Pages/NotAuthenticated/Register/Steps/index.tsx","Utilities/Validators/Pesel/index.ts","Utilities/Validators/Password/index.ts","Assets/Images/wallpaper_1.jpg","Assets/Images/wallpaper_2.jpg","Components/UI/Containers/Block/Picture/index.tsx","Assets/Images/logo.png","Components/Views/Parts/Header/index.tsx","_Services/Utilities/RequestToken/Prepare/index.ts","Components/Views/Pages/NotAuthenticated/Register/index.tsx","Components/UI/Forms/Field/InfoLink/index.tsx","Components/Views/Pages/NotAuthenticated/Login/Form/index.tsx","_Services/Utilities/Requests/Method/Prepare/index.ts","_Services/Utilities/Requests/Headers/Prepare/index.ts","_Services/Utilities/Requests/Body/Prepare/index.ts","_Services/Utilities/Requests/index.ts","_Services/Application/Requests/User/GetData/index.ts","Components/Views/Pages/NotAuthenticated/Login/index.tsx","Components/Views/Pages/NotAuthenticated/PasswordReset/Steps/Step1/index.tsx","Components/Views/Pages/NotAuthenticated/PasswordReset/Steps/Step2/index.tsx","Components/Views/Pages/NotAuthenticated/PasswordReset/Steps/Step3/index.tsx","Components/Views/Pages/NotAuthenticated/PasswordReset/Steps/index.tsx","Components/Views/Pages/NotAuthenticated/PasswordReset/index.tsx","Components/Views/Pages/NotAuthenticated/index.tsx","Components/Views/Parts/Notifications/index.tsx","Assets/Icons/notification.png","Components/UI/Communicates/Session/Button/index.tsx","Components/UI/Communicates/Session/Header/index.tsx","Components/UI/Communicates/Session/Information/index.tsx","Components/UI/Communicates/Session/LeftTime/index.tsx","Components/UI/Communicates/Session/index.tsx","Components/Views/Parts/BarBottom/Element/index.tsx","Assets/Icons/Menu/monitory_notes.png","Components/Views/Parts/BarBottom/index.tsx","Assets/Icons/Menu/start.png","Assets/Icons/Menu/start_active.png","Assets/Icons/Menu/dispositions.png","Assets/Icons/Menu/dispositions_active.png","Assets/Icons/Menu/monitory_notes_active.png","Assets/Icons/Menu/terminals.png","Assets/Icons/Menu/terminals_active.png","Assets/Icons/Menu/more.png","Assets/Icons/Menu/more_active.png","_Services/Utilities/Responses/index.ts","Components/UI/Content/Information/index.tsx","_DATA/Globals/index.ts","Assets/Icons/arrival.png","Assets/Icons/arrival_active.png","Components/Views/Pages/Authenticated/MonitoryNotes/MonitoryNotesList/MonitoryNote/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/MonitoryNotesList/index.tsx","Components/Views/Pages/Authenticated/HomePage/index.tsx","Components/UI/Containers/Block/Header/index.tsx","Components/Views/Pages/Authenticated/Terminals/List/Terminals/Terminal/index.tsx","Components/Views/Pages/Authenticated/Terminals/List/Terminals/index.tsx","Components/Views/Pages/Authenticated/Terminals/List/Legend/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/Terminals/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/_Parts/Dispositions/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/_Parts/Compartments/Compartment/Products/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/_Parts/Compartments/Compartment/Receivers/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/_Parts/Compartments/Compartment/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/_Parts/Compartments/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/_Parts/ScheduleWindow/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/_Parts/NoteInformation/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/Create/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/DeclareArrival/SubmitStatus/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/DeclareArrival/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/Terminals/Terminal/MonitoryNote/index.tsx","_Services/Application/Requests/MonitoryNotes/Delete/index.ts","Components/Views/Pages/Authenticated/MonitoryNotes/Terminals/Terminal/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/MonitoryNote/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/Delete/index.tsx","Components/Views/Pages/Authenticated/MonitoryNotes/index.tsx","Components/Views/Pages/Authenticated/Dispositions/Terminals/index.tsx","Components/Views/Pages/Authenticated/Dispositions/Terminal/index.tsx","Components/Views/Pages/Authenticated/Dispositions/Disposition/index.tsx","Components/Views/Pages/Authenticated/Dispositions/index.tsx","Components/Views/Pages/Authenticated/Terminals/List/Switcher/index.tsx","Components/Views/Pages/Authenticated/Terminals/List/index.tsx","Components/Views/Pages/Authenticated/Terminals/index.tsx","Components/Views/Pages/Authenticated/Settings/Home/index.tsx","Components/Views/Pages/Authenticated/Settings/_Parts/Verification/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyProfile/index.tsx","Utilities/Object/GetKeyValue/index.ts","Components/Views/Pages/Authenticated/Settings/User/MyDocuments/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/QuizLink/index.tsx","Assets/Images/136.Play.png","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpCourse/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/Switcher/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/ExtraLinks/ExtraLink/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/QuizNextButton/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/SessionExtend/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/ExtraLinks/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/Quastion/TimeLeft/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/Quastion/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/BhpCourses/BhpQuiz/Finalization/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyBhpCourses/index.tsx","Assets/Icons/document.png","Components/Views/Pages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport/Documents/Switcher/index.tsx","Utilities/Documents/FromBinary/index.ts","Components/Views/Pages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport/Documents/List/Document/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport/Documents/List/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/index.tsx","Components/Views/Pages/Authenticated/Settings/User/MyFinishedTransports/index.tsx","Components/Views/Pages/Authenticated/Settings/User/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/Vehicles/Vehicle/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/Vehicles/ActiveSet/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/Vehicles/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/Terminals/Favourites/Terminal/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/Terminals/Favourites/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/Terminals/AddToFavourite/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/Terminals/index.tsx","Components/Views/Pages/Authenticated/Settings/Favorite/index.tsx","Components/Views/Pages/Authenticated/Settings/Account/RemoveAccount/index.tsx","Components/Views/Pages/Authenticated/Settings/Account/ChangePassword/index.tsx","Components/Views/Pages/Authenticated/Settings/Account/DisconnectWithOperator/index.tsx","Components/Views/Pages/Authenticated/Settings/Account/index.tsx","Components/Views/Pages/Authenticated/Settings/Information/Contact/Phone/index.tsx","Components/Views/Pages/Authenticated/Settings/Information/Contact/Mail/index.tsx","Components/Views/Pages/Authenticated/Settings/Information/Contact/index.tsx","Components/Views/Pages/Authenticated/Settings/Information/Regulations/index.tsx","Components/Views/Pages/Authenticated/Settings/Information/index.tsx","Components/Views/Pages/Authenticated/Settings/About/index.tsx","Components/Views/Pages/Authenticated/Settings/index.tsx","Components/Views/Pages/Authenticated/Notifications/NotificationsList/index.tsx","Components/Views/Pages/Authenticated/Notifications/index.tsx","Components/Views/Pages/Authenticated/index.tsx","Components/index.tsx","Components/UI/Modals/Message/Default/index.tsx","Application.tsx","index.tsx"],"names":["APPLICATION_API_DATA","API_ROOT_URL","ENV","API_URL","ApplicationApiContext","React","createContext","CHANGE_LANGUAGE","APP_ACTIVE_LANGUAGE_KEY","APP_NAME","storedActiveLanguage","localStorage","getItem","LocalizationInitialState","activeLanguage","JSON","parse","languageID","languageCode","LocalizationReducer","state","action","type","setItem","stringify","newLanguage","LOG_USER_IN","LOG_USER_OUT","LOG_USER_IN_ACTION","LOGGED_USER","user","LOG_USER_OUT_ACTION","APP_LOGGED_USER_KEY","storedLoggedUser","AuthenticationInitialState","loggedUser","AuthenticationReducer","removeItem","CHANGE_API_REQUEST_STATUS","CHANGE_API_REQUEST_STATUS_ACTION","status","CHANGE_MODAL_MESSAGE","CHANGE_MODAL_MESSAGE_ACTION","message","messageType","acceptHandler","declineHandler","content","InterfaceState","apiRequestStatus","modalMessage","InterfaceReducer","CHANGE_API_REQUEST_TOKEN","CHANGE_API_REQUEST_TOKEN_ACTION","token","APP_REST_API_TOKEN_KEY","storedApiToken","storedApiTokenObject","storedApiTokenLeftTime","Date","getTime","tokenCreateDate","tokenValidTime","ApiState","requestToken","ApiReducer","newToken","Object","assign","ApplicationReducer","combineReducers","localization","authentication","interface","api","ApplicationStore","createStore","applyMiddleware","thunk","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","useTypedSelector","useSelector","APPLICATION_THEME_SETTINGS","defaultColor","primaryColor","primarySpecialColor","secondaryColor","secondarySpecialColor","ApplicationThemeContext","APPLICATION_ROUTER","COMMON","HOME","URL","NOT_AUTHENTICATED","REGISTER","LOGIN","PASSWORD_RESET","AUTHENTICATED","MONITORY_NOTES","MONITORY_NOTES_LIST","MONITORY_NOTE_CREATE","MONITORY_NOTE_DETAILS","DISPOSITIONS","DISPOSITION","TERMINAL_DISPOSITIONS_LIST","DISPOSITIONS_TERMINALS_LIST","PETROL_BASES","PETROL_BASES_LIST","PETROL_BASE","SETTINGS","MAIN_PAGE","SETTINGS_USER_PAGE","SETTINGS_USER_DATA_PAGE","SETTINGS_MY_DOCUMENTS_PAGE","SETTINGS_MY_BHP_PAGE","QUIZ","QUIZDESC","QUIZEXTRALINKS","QUIZQUASTION","QUIZFINALIZATION","SETTINGS_FINISHED_TRANSPORTS_PAGE","SETTINGS_MY_FAVORITE_PAGE","SETTINGS_MY_FAVORITE_VEHICLES_PAGE","SETTINGS_MY_FAVORITE_TERMINALS_PAGE","SETTINGS_ACCOUNT_PAGE","SETTINGS_DELETE_ACCOUNT_PAGE","SETTINGS_CHANGE_PASSWORD_PAGE","SETTINGS_DISCONNECT_FROM_OPERATOR_PAGE","SETTINGS_INFORMATION_PAGE","SETTINGS_REGULATIONS_PAGE","SETTINGS_CONTACT_PAGE","SETTINGS_CONTACT_FORM_PAGE","SETTINGS_ABOUT_PAGE","MESSAGES","MESSAGES_LIST","MESSAGE","ERRORS","E404","ApplicationRouterContext","MainContentLoaderComponent","loaderType","componentStyles","loaderColor","loaderWidth","loaderHeight","cssClasses","THEME","useContext","display","padding","Container","fluid","className","style","Row","height","alignItems","justifyContent","color","width","RestApiRequestLoaderComponent","MainContent","BlockContentContainerComponent","forwardRef","children","as","ref","scrollToDomElement","target","offset","current","$","animate","scrollTop","top","DefaultMessageComponent","messageText","Col","xs","Alert","variant","ErrorMessageComponent","Default","FormResetComponent","formResetHandler","lg","onClick","FormSwitchPageComponent","switchLabel","switchButtonURL","switchButtonText","to","title","FormFieldsGroupFieldsComponent","FormFieldsGroupComponent","FormFieldComponent","sm","xl","fieldValue","fieldValueHandler","fieldControlID","fieldType","fieldLabel","fieldPlaceholder","fieldError","fieldDisabledStatus","fieldLegend","autoComplete","props","PROPS","min","placeholder","useState","inputFieldType","setInputFieldType","inputFieldShowContentStatus","setInputFieldShowContentStatus","Form","Group","controlId","Label","Control","value","onChange","disabled","DefaultFormButton","buttonText","clickHandler","size","Button","RegisterFormStep1Component","registerFormStep","registerFormStepHandler","registerFormErrors","formUserIdNumber","formUserIdNumberHandler","formUserFirstName","formUserFirstNameHandler","formUserLastName","formUserLastNameHandler","REST_API_REQUEST_STATUS","String","e","FormFieldsGroupHeaderComponent","headerText","headerLabel","RegisterFormStep2Component","formUserPassword","formUserPasswordHandler","formUserPasswordRepeat","formUserPasswordRepeatHandler","formUserPIN","formUserPINHandler","formUserPhoneNumber","formUserPhoneNumberHandler","formUserGeneratedID","formUserGeneratedLogin","formUserGeneratedPasswordRequirements","registrationProcess","FormCheckboxFieldComponent","fieldCheckedStatus","fieldCheckedStatusHandler","fieldLabelClickHandler","fileSourceHandler","checkboxClasses","push","join","undefined","DEFAULT_REQUEST_HEADERS","UserRegistrationRegulationComponent","regulationData","index","regulationsAcceptations","regulationsAcceptationsHandler","DISPATCHER","useDispatch","REST_API_URL","regulationAcceptedStatus","setRegulationAcceptedStatus","GET_REGULATIONS_FILE","a","fetch","method","headers","body","UserId","RegulationId","RESPONSE","json","CONTENT","Docs","DocData","binaryString","window","atob","len","length","bytes","Uint8Array","i","charCodeAt","PDF","Blob","PDF_URL","createObjectURL","open","Name","RegisterFormStep3Component","formUserRegulations","formUserRegulationsHandler","formUserRegulationsAcceptedStatusHandler","formUserRegulationsAcceptedStatus","formUserPrivacyAcceptedStatus","formUserPrivacyAcceptedStatusHandler","fromEntries","map","reg","setRegulationsAcceptations","allRegulationsAcceptedStatus","values","filter","r","useEffect","Regulations","regulation","Error","RegisterFormStep4Component","formUserSMSCode","formUserSMSCodeHandler","formUserSMSCodeValidTime","formUserSMSCodeValidTimeHandler","formUserSMSCodeNumber","leftSmsCodeValidTime","setLeftSmsCodeValidTime","activeCountDown","setActiveCountDown","clearTimeout","interval","setTimeout","leftMinutes","Math","floor","leftSeconds","formattedTime","toString","console","log","span","marginTop","RegisterFormStepsComponent","FIRST_STEP_CONTAINER_REF","useRef","SECOND_STEP_CONTAINER_REF","THIRD_STEP_CONTAINER_REF","FOURTH_STEP_CONTAINER_REF","DOM_ELEMENT","ROUTER","LOGIN_PAGE_URL","validatePeselNumber","pesel","weight","sum","controlNumber","substring","validateUserPassword","string","lengthValidation","numberValidation","match","lettersValidation","specialCharsValidation","BlockContentPictureComponent","headerPictureType","src","PAGE_IMAGE_1","PAGE_IMAGE_2","alt","ApplicationHeaderComponent","Block","LOGO","userFirstName","userLastName","prepareRestApiRequestToken","Headers","TOKEN_VALUE","get","TOKEN_VALID_TIME","TOKEN_AUTHORIZATION","tokenValue","RegisterPageComponent","STORED_REGISTER_FORM_DATA","setRegisterFormStep","setRegisterFormErrors","setFormUserIdNumber","setFormUserFirstName","setFormUserLastName","formUserOperationGuid","setFormUserOperationGuid","setFormUserGeneratedID","setFormUserGeneratedLogin","setFormUserGeneratedPasswordRequirements","setFormUserPassword","setFormUserPasswordRepeat","setFormUserPIN","setFormUserPhoneNumber","formUserFormalsStatus","setFormUserFormalsStatus","setFormUserRegulations","setFormUserRegulationsAcceptedStatus","setFormUserPrivacyAcceptedStatus","formUserFormalsAcceptationDate","setFormUserFormalsAcceptationDate","setFormUserSMSCode","setFormUserSMSCodeNumber","setFormUserSMSCodeValidTime","enterKeyPressCount","setEnterKeyPressCount","n","HANDLER","key","document","addEventListener","removeEventListener","newRegisterFormStep","changeRegisterFormStep","REGISTER_FORM_REQUEST_HANDLER","finalStep","REGISTER_FORM_STEP_URL","REGISTER_FORM_STEP_DATA","firstname","surname","OperationGUID","Password","btoa","CardPIN","Phone","RegulationsAcceptDate","VerificationCode","error","code","UserMessage","registerFormStep1ResponseHandler","registerFormStep2ResponseHandler","registerFormStep3ResponseHandler","registerFormStep4ResponseHandler","success","data","validateRegisterFormStep1","formErrors","entries","operationGUID","generatedUserId","generatedUserLogin","Login","generatedUserPasswordRequirements","PasswordRequirments","storeRegisterFormData","validateRegisterFormStep2","validateRegisterFormStep3","codeNo","VerificationCodeNo","smsCodeValidDate","VerificationCodeValidDate","smsCodeValidLeftTime","validateRegisterFormStep4","userID","userLogin","userLoginTime","userLastActivityTime","step","formError","stepResponse","updatedFields","resetRegisterFormHandler","Helmet","registerFormErrorsHandler","userIdNumber","userPassword","userPasswordRepeat","userPIN","isNaN","userPhoneNumber","validator","isMobilePhone","userSMSCode","FormFieldInfoLinkComponent","linkLabel","linkURL","linkText","LoginFormComponent","loginFormErrors","loginFormSubmitHandler","formUserLogin","formUserLoginHandler","REGISTER_PAGE_URL","PASSWORD_RESET_PAGE_URL","onSubmit","preventDefault","loginProcess","prepareApiRequestMethod","prepareApiRequestHeaders","AUTH_TOKEN","REQUEST_HEADERS","headerName","headerValue","append","prepareApiRequestBody","REST_API_REQUEST","DATA","TOKEN","METHOD","REQUEST_METHOD","REQUEST_BODY","dispatch","RESPONSE_BODY","FormData","Response","statusText","GET_USER_DATA_API_REQUEST","USER_ID","USER_REST_API_URL","REQUEST_TOKEN","ERROR","CODE","USER_REQUEST_DATA","ContentType","USER_DATA_RESPONSE","USER_RESPONSE_CONTENT","USER","ERROR_RESPONSE_CONTENT","LoginFormFieldsDefaults","LoginPageComponent","formUserLoginDefault","formUserPasswordDefault","LOGIN_FORM_ERRORS","SET_LOGIN_FORM_ERRORS","setFormUserLogin","LOGIN_FORM_SUBMIT_HANDLER","LOGIN_FORM_REQUEST_HANDLER","_LOGIN_REQUEST_DATA","UserLogin","LOGIN_RESPONSE","LOGIN_RESPONSE_CONTENT","USER_RESPONSE","Driver","Firstname","Surname","APP_TITLE","PasswordResetFormStep1Component","passwordResetFormStep","passwordResetFormStepHandler","passwordResetFormErrors","PasswordResetFormStep2Component","formUserSmsCode","formUserSmsCodeHandler","formUserSmsCodeValidDate","formUserSmsCodeValidTime","setFormUserSmsCodeValidTime","activeCountDownTimeOut","setActiveCountDownTimeOut","timeout","marginBottom","PasswordResetFormStep3Component","formUserNewPassword","formUserNewPasswordHandler","formUserNewPasswordRepeat","formUserNewPasswordRepeatHandler","PasswordResetStepsComponent","passwordResetProcess","PasswordResetPageComponent","STORED_PASSWORD_RESET_FORM_DATA","passwordResetSubmitSuccessStatus","setPasswordResetSubmitSuccessStatus","setPasswordResetErrors","setPasswordResetFormStep","setFormUserSmsCodeValidDate","setFormUserSmsCode","formUserId","setFormUserId","setFormUserNewPassword","setFormUserNewPasswordRepeat","storePasswordResetFormData","PASSWORD_RESET_FORM_DATA","STORE_FORM_DATA","newPasswordResetFormStep","changePasswordResetStepHandler","validatePasswordResetFormStep1","validatePasswordResetFormStep2","validatePasswordResetFormStep3","passwordResetFormRequestHandler","RESPONSE_STATUS","PASSWORD_RESET_API_URL","RESPONSE_CONTENT","passwordResetFormStep1ResponseHandler","passwordResetFormStep2ResponseHandler","passwordResetFormStep3ResponseHandler","response","operationGuid","userId","NotAuthenticatedUserComponent","HOME_PAGE_URL","path","exact","render","Register","PasswordReset","ApplicationNotificationsComponent","USER_NOTIFICATIONS","SessionEndingExtendButtonComponent","REST_API_DATA","REST_API_REQUEST_TOKEN","REFRESH_TOKEN_ERROR","SET_REFRESH_TOKEN_ERROR","REFRESH_TOKEN_REQUEST_HANDLER","REFRESH_TOKEN_API_URL","REFRESH_TOKEN_REQUEST_DATA","REFRESH_TOKEN_RESPONSE","ErrorCode","SessionEndingHeaderTextComponent","SessionEndingInformationTextComponent","SessionEndingLeftTimeComponent","LEFT_SESSION_TIME","leftSessionMinutes","leftSessionSeconds","SessionEndingCommunicateComponent","BottomBarElementComponent","location","menuElementURL","menuElementText","menuElementTitle","menuElementIcon","menuElementActiveIcon","menuElementCssClass","menuElementExactStatus","elementActiveStatus","pathname","includes","ApplicationBottomBarComponent","SESSION_ACTIVE_TIME","SET_SESSION_ACTIVE_TIME","now","SESSION_END_TIME","SET_SESSION_END_TIME","ACTIVE_SESSION_TIMEOUT","SET_ACTIVE_SESSION_TIMEOUT","COUNTDOWN","MONITORY_NOTES_URL","DISPOSITIONS_URL","PETROL_BASES_URL","SETTINGS_PAGE_URL","BottomBarMenu","startMenuElement","dispositionsMenuElement","monitoryNotesElement","monitoryNotesMenuIcon","terminalsElement","moreOptionsElement","BottomBarMenuElements","element","Session","REST_API_RESPONSE_CONTENT_HANDLER","DEFAULT_RESPONSE_CONTENT","ERROR_CODE","ERROR_MESSAGE","text","RESPONSE_MESSAGE","ContentInformationComponent","contentMessage","APPLICATION_GLOBALS","MONTHS","LABELS","MonitoryNoteListElementComponent","MONITORY_NOTE","MONITORY_NOTE_LIST_TYPE","FIRST","MONTH_LABELS","PROCESS_START_DATE_DAY","PROCESS_START_DATE_HOUR","PROCESS_START_DATE_MINUTES","PROCESS_START_DATE_MONTH","NOTE_SUBMIT_AVAILABILITY","NOTE_INFO_TEXT_AVAILABILITY","ProcessStartDate","MONITORY_NOTES_PROCESS_START_DATE","getDate","getMonth","getHours","getMinutes","MinDelayForSubmit","IsSubmitted","IsDetailed","MONITORY_NOTE_TRUCKS","FrontTruckRegNo","RearTruckRegNo","truck","CSS_CLASSES","NavLink","TransportNotificationNo","TerminalNo","monitoryNoteId","terminalName","ARRIVAL_ACTIVE_ICON","ARRIVAL_ICON","MonitoryNotesListComponent","MONITORY_NOTES_LIST_TYPE","sort","monitoryNote1","monitoryNote2","MONITORY_NOTES_LIST_MESSAGE","MonitoryNote","HomePageComponent","SET_MONITORY_NOTES","MONITORY_NOTES_ERROR","SET_MONITORY_NOTES_ERROR","MONITORY_NOTES_API_URL","MONITORY_NOTES_REQUEST_DATA","Today","GET_MONITORY_NOTES","MONITORY_NOTES_RESPONSE","MONITORY_NOTES_RESPONSE_CONTENT","TransportNotifications","BlockContentHeaderComponent","pageTitle","TerminalsListTerminalComponent","TERMINAL","TERMINALS_LIST_TYPE","TERMINAL_URL","TerminalName","TransportWaitForSubmitCount","TransportWaitForEntryCount","TransportOpenedCount","DispCount","TransportNotificationCount","TerminalsListComponent","TERMINALS","FAVORITE","SHOW_ALL_PETROL_BASES_STATUS","TerminalsList","Terminal","TerminalsListLegendComponent","MonitoryNotesTerminalsComponent","COMPONENT_REF","INTERFACE_DATA","MONITORY_NOTES_TERMINALS","SET_MONITORY_NOTES_TERMINALS","MONITORY_NOTES_TERMINALS_ERROR","SET_MONITORY_NOTES_TERMINALS_ERROR","Favorite","Mode","GET_MONITORY_NOTES_TERMINALS","trim","Terminals","ACTIVE_MONITORY_NOTES_TERMINALS","terminal","FAVORITE_TERMINALS","OTHER_TERMINALS","MonitoryNoteDispositionsComponent","MONITORY_NOTE_PROCESS_TYPE","LOAD_CONTENT","LOAD_CONTENT_HANDLER","removeDispositionsHandler","showDispositions","setShowDispositions","availableDispositions","setAvailableDispositions","availableDispositionsError","setAvailableDispositionsError","selectedFrontVehicle","selectedRearVehicle","dispositionsListApiURL","DISPOSITIONS_LIST_REQUEST_DATA","FrontVehicleRegNo","RearVehicleRegNo","getAvailableDispositions","DISPOSITIONS_RESPONSE","Disps","selectedDispositions","disposition","DispNo","DispositionsList","dispositionSentNumbers","DispItems","product","SENTNumber","Array","from","Set","dispositionSelectedStatus","ValidFrom","dateFormat","ValidTo","CompartmentProductsComponent","compartmentActiveProduct","compartmentActiveProductHandler","compartmentActiveProductCapacity","compartmentActiveProductCapacityHandler","compartmentCapacity","compartmentPosition","compartmentProducts","compartmentSelectedProduct","compartmentModifyHandler","editable","querySelectorAll","elem","blur","productQuantity","QtyAvail","productCompartments","usedProductCapacity","leftProductCapacity","compartmentMaximumProductLoad","productId","usedCapacity","leftCapacity","ProductShortName","pattern","inputMode","max","CompartmentProductReceiversComponent","PRODUCT_RECEIVER_ID","PRODUCT_RECEIVER_HANDLER","PRODUCT_DATA","PRODUCT_RECEIVER_CHANGE_STATUS","SET_PRODUCT_RECEIVER_CHANGE_STATUS","CHANGE_PRODUCT_RECEIVER_CHANGE_STATUS","SET_PRODUCT_RECEIVER","SET_PRODUCT_RECEIVERS","SET_PRODUCT_RECEIVER_ERROR","PRODUCT_RECEIVER","PRODUCT_RECEIVERS","PRODUCT_RECEIVER_ERROR","productReceiversFilter","setProductReceiversFilter","GET_PRODUCT_RECEIVERS","DispPos","Pos","FilterString","RECEIVERS_RESPONSE","Receivers","delayForResearch","ProductReceivers","productReceiver","ReceiverMasterNo","ReceiverInfo","margin","ReceiverName","MonitoryNoteCompartmentComponent","compartment","products","compartmentClearHandler","compartmentId","compartmentData","capacity","compartmentProductData","compartmentDefaultVol","DefaultVol","compartmentEditActiveStatus","setCompartmentEditActiveStatus","activeProductId","ProductMasterNo","compartmentActiveProductId","setCompartmentActiveProductId","compartmentProduct","setCompartmentActiveProduct","activeProductCapacity","setCompartmentActiveProductCapacity","compartmentProductReceiver","setCompartmentProductReceiver","compartmentVehicle","productID","availableQuantity","usedQuantity","id","cap","Number","productCapacity","receiverId","MonitoryNoteCompartmentsComponent","MONITORY_NOTE_DETAILED_STATUS","MONITORY_NOTE_ACTION_TYPE","MONITORY_NOTE_DETAILED_STATUS_HANDLER","EDITABLE","CompartmentsList","ProductsList","MonitoryNoteScheduleWindowComponent","MONITORY_NOTE_HANDLER","SCHEDULE_WINDOW_LOADED_STATUS_HANDLER","MONITORY_NOTE_SCHEDULE_WINDOW","SET_MONITORY_NOTE_SCHEDULE_WINDOW","MONITORY_NOTE_SCHEDULE_WINDOW_ERROR","SET_MONITORY_NOTE_SCHEDULE_WINDOW_ERROR","GET_MONITORY_NOTE_SCHEDULE_WINDOW","SCHEDULE_WINDOW_REQUEST_BODY","SCHEDULE_WINDOW_API_URL","SCHEDULE_WINDOW_RESPONSE","Schedules","SCHEDULE_DATE","slice","SCHEDULE_ID","ScheduleId","selectedScheduleDate","setSelectedScheduleDate","selectedScheduleId","setSelectedScheduleId","SCHEDULE_WINDOW_LIST","schedule","scheduleId","scheduleTime","Time","SCHEDULE_WINDOW","scheduleDate","scheduleData","SCHEDULE_WINDOW_DATES","keys","ScheduleWindowDates","ScheduleWindowTimes","IsBooked","MonitoryNoteInformationComponent","MONITORY_NOTE_DATA","selectedFrontTruck","setSelectedFrontTruck","frontVehicleIsTank","VEHICLES","FRONT","IsTank","availableMonitoryNoteVehicles","dispositionVehicles","DispVehicles","dispositionVehicle","vehicleIsTankStatus","vehicleIsFrontStatus","IsFront","vehicleRegistrationNumber","RegNo","add","monitoryNoteFrontVehicles","TERMINAL_NAME","selectedFrontTruckRegNo","vehicleRegNo","CreateMonitoryNotePageComponent","MONITORY_NOTE_SUBMIT_SUCCESS","SET_MONITORY_SUBMIT_SUCCESS","MONITORY_NOTE_DEFAULTS","TERMINAL_ID","REAR","Compartments","Products","MONITORY_NOTE_LOADED_STATUS","SET_MONITORY_NOTE_LOADED_STATUS","SET_MONITORY_NOTE","MONITORY_NOTE_ERROR","SET_MONITORY_NOTE_ERROR","MONITORY_NOTE_IS_DETAILED_STATUS","SET_MONITORY_NOTE_IS_DETAILED_STATUS","SCHEDULE_WINDOW_LOADED_STATUS","SET_SCHEDULE_WINDOW_LOADED_STATUS","COMPONENT_SCROLL_HANDLER","SET_COMPONENT_SCROLL_HANDLER","GET_SELECTED_DISPOSITIONS","DISPOSITION_API_URL","DISPOSITION_LIST","DISPOSITION_REQUEST_DATA","DISPOSITION_RESPONSE","DISPOSITION_RESPONSE_CONTENT","COMPARTMENTS","CompPos","MaxVol","MONITORY_NOTE_CREATE_SUBMIT_HANDLER","selectedCompartments","requestCompartments","DISPOSITION_PRODUCTS","compartmentVehicleRegNo","TruckRegNo","Qty","MONITORY_NOTE_CREATE_REQUEST_HANDLER","MONITORY_NOTE_API_URL","MONITORY_NOTE_RESPONSE","remove","removeDisposition","updatedDispositions","disp","compartmentID","compartmentProductId","compartmentProductCapacity","selectedCompartment","selectedProduct","MonitoryNoteSubmitStatusComponent","STATUS","SUCCESS_STATUS_BUTTON_HANDLER","ERROR_STATUS_BUTTON_HANDLER","DeclareArrivalPageComponent","MONITORY_NOTE_ID","MONITORY_NOTE_SUBMIT_STATUS","SET_MONITORY_NOTE_SUBMIT_STATUS","MONITORY_NOTE_SUBMIT_STATUS_ERROR","SET_MONITORY_NOTE_SUBMIT_STATUS_ERROR","MONITORY_NOTE_STATUS_DISPLAY","SET_MONITORY_NOTE_STATUS_DISPLAY","MONITORY_NOTE_REQUEST_DATA","GET_MONITORY_NOTE","VEHICLES_LIST","SET_VEHICLES_LIST","SET_VEHICLES_LIST_ERROR","VEHICLES_LIST_API_URL","VEHICLES_LIST_REQUEST_DATA","Favourite","GET_VEHICLES_LIST","VEHICLES_RESPONSE","Vehicles","vehicle","SELECTED_FRONT_VEHICLE","SELECTED_REAR_VEHICLE","COMPARTMENT_ID","COMPARTMENT","PRODUCT","SET_MONITORY_NOTE_DETAILED_STATUS","DECLARE_ARRIVAL_REQUEST_HANDLE","MONITORY_NOTE_REQUEST_BODY","SubmitDate","MONITORY_NOTE_STATUS_API_URL","MONITORY_NOTE_STATUS_REQUEST_DATA","START_TIME","CHECK_MONITORY_NOTE_STATUS_REQUEST","MONITORY_NOTE_STATUS_RESPONSE","MONITORY_NOTE_STATUS","Result","Message","TerminalMonitoryNoteComponent","monitoryNoteDeleteHandler","MONITORY_NOTE_INDEX","noteProcessStartDate","noteProcessStartDateDay","noteProcessStartDateMonth","noteProcessStartDateHour","noteProcessStartDateMinutes","timeToStart","ceil","noteTrucks","arrivalActiveIcon","arrivalIcon","DELETE_MONITORY_NOTE_REQUEST_HANDLER","REST_API_ENDPOINT_URL","MONITORY_NOTE_DELETE_REQUEST_DATA","MonitoryNotesTerminalComponent","params","terminalId","MONITORY_NOTE_DELETE_STATUS","SET_MONITORY_NOTE_DELETE_STATUS","SET_MONITORY_NOTES_MESSAGE","MONITORY_NOTE_DELETE_HANDLER","DELETE_RESPONSE","MonitoryNotesList","monitoryNote","MonitoryNoteComponent","SET_MONITORY_NOTE_MESSAGE","SUBMIT_MONITORY_NOTE_REQUEST_HANDLER","DeleteMonitoryNotePageComponent","DELETE_MONITORY_NOTE_REQUEST","MonitoryNotesPageComponent","MONITORY_NOTE_TERMINALS_LIST_URL","Create","DeclareArrival","DispositionsTerminalsListPageComponent","DISPOSITIONS_TERMINALS","SET_DISPOSITIONS_TERMINALS","DISPOSITIONS_TERMINALS_ERROR","SET_DISPOSITIONS_TERMINALS_ERROR","DISPOSITIONS_TERMINALS_API_URL","DISPOSITIONS_TERMINALS_REQUEST_DATA","GET_DISPOSITIONS_LIST_PAGE_DATA","ACTIVE_TERMINALS","TerminalDispositionsListPageComponent","VEHICLES_LIST_ERROR","SET_SELECTED_FRONT_VEHICLE","SET_SELECTED_REAR_VEHICLE","DISPOSITIONS_LIST","SET_DISPOSITIONS_LIST","DISPOSITIONS_LIST_ERROR","SET_DISPOSITIONS_LIST_ERROR","DISPOSITIONS_LIST_API_URL","GET_STATIONS_DISPOSITIONS_LIST","SELECTED_DISPOSITIONS","SET_SELECTED_DISPOSITIONS","selectedDispositionsList","vehicle1","vehicle2","ACTIVE_FRONT_VEHICLE","VEHICLE","Active","ACTIVE_REAR_VEHICLE","AVAILABLE_VEHICLES","SELECTED_FRONT_VEHICLE_IS_TANK","DispositionList","productsOwnersNames","productsReceiversNames","productsSENTValues","forEach","ClientName","DISPOSITION_SELECTED_STATUS","DISPOSITION_IS_VALID_STATUS","sent","TerminalMasterNo","replaceAll","dispositionId","updatedSelectedDispositionsList","item","selectedDispositionsListHandler","monitoryNoteIcon","AVAILABLE_FRONT_VEHICLES","AVAILABLE_REAR_VEHICLES","FRONT_VEHICLE","Type","USABLE_DISPOSITIONS","CREATE_MONITORY_NOTE_DATA","REAR_VEHICLE","vehicleRegNr","CHANGE_SELECTED_FRONT_VEHICLE","TypeName","DispositionPageComponent","DISPOSITION_ID","DISPOSITION_DATA","SET_DISPOSITION_DATA","DISPOSITION_ERROR","SET_DISPOSITION_ERROR","GET_DISPOSITION_DATA","ProductSalesName","QtyUnitName","DispositionsPageComponent","DISPOSITIONS_TERMINALS_LIST_URL","TERMINAL_DISPOSITIONS_LIST_URL","DISPOSITION_URL","Disposition","TerminalsListDisplaySwitcherComponent","SHOW_ALL_PETROL_BASES_STATUS_HANDLER","TerminalsListPageComponent","TERMINALS_LIST","SET_TERMINALS_LIST","TERMINALS_LIST_ERROR","SET_TERMINALS_LIST_ERROR","GET_TERMINALS_LIST","TERMINALS_LIST_API_URL","TERMINALS_LIST_REQUEST_DATA","TERMINALS_LIST_RESPONSE","SET_SHOW_ALL_PETROL_BASES_STATUS","terminal1","terminal2","TerminalsPageComponent","TERMINALS_LIST_URL","SettingsPageHomeViewComponent","SETTINGS_PAGE_URLS","SettingsSMSCodeVerificationComponent","verificationStatusHandler","requestStep1URL","requestStep2URL","verificationFormOperationGuid","setVerificationFormOperationGuid","verificationFormErrors","setVerificationFormErrors","verificationFormStep","setVerificationFormStep","verificationPINNumber","setVerificationPINNumber","verificationSMSCode","setVerificationSMSCode","time","verificationSMSCodeValidDate","setVerificationSMSCodeValidDate","verificationSMSCodeNumber","setVerificationSMSCodeNumber","verificationSMSCodeNumberLockStatus","setVerificationSMSCodeNumberLockStatus","verificationCodeSubmitHandler","process","validatePinCodeStep","validateSMSCodeStep","VERIFICATION_CODE_REQUEST_HANDLER","API_REQUEST_URL","API_REQUEST_DATA","AUTHORIZATION_RESPONSE","smsCodeValidDateTime","GENERATE_VERIFICATION_CODE","VERIFICATION_CODE_RESPONSE","pinCode","pinNumber","smsCode","textAlign","SettingsMyProfilePageComponent","USER_AUTHENTICATED_STATUS","SET_USER_AUTHENTICATED_STATUS","USER_PROFILE_DATA","SET_USER_PROFILE_DATA","USER_PROFILE_ERROR","SET_USER_PROFILE_ERROR","USER_PROFILE_API_URL","USER_PROFILE_REQUEST_DATA","GET_USER_PROFILE_DATA","USER_LOGIN","USER_DRIVER_DATA","UserCardsList","Cards","card","CardNo","ExpireDate","UserOperatorsList","Applicants","operator","fdName","ShortName","Country","Birthdate","PESEL","getObjectKeyValue","obj","DOCUMENTS","A","D","O","P","T","SettingsMyDocumentsPageComponent","userVerifiedStatus","setUserVerifiedStatus","USER_MY_DOCUMENTS_DATA","SET_USER_MY_DOCUMENTS_DATA","USER_MY_DOCUMENTS_ERROR","SET_USER_MY_DOCUMENTS_ERROR","USER_MY_DOCUMENTS_API_URL","USER_MY_DOCUMENTS_REQUEST_DATA","GET_USER_MY_DOCUMENTS_DATA","userDocuments","DriverDocs","UserDocuments","documentType","documentNumber","DocNo","documentExpireDate","Expire","BhpQuizPageComponent","TERMINAL_NO","terminalNo","BHPCOURSE","SET_BHPCOURSE","BHPCOURSE_ERROR","SET_BHPCOURSE_RESPONSE_ERROR","QUIZROUTE","GET_BHPCOURSE","BHPCOURSE_API_URL","BHPCOURSE_REQUEST_DATA","BHPCOURSE_RESPONSE","minHeight","QuizDesc","InitializationText","ExtraLinks","bhpCourse","quastionNo","QuizLinkComponent","EXPIRE","EXPIREPERIOD","TERMINALNO","expirePeriodDate","setDate","DOCUMENTS_TYPES","BhpCourseComponent","BHP_COURSE","documentTerminal","documentExpirePeriod","ExpirePeriod","QuizLink","BhpQuizDisplaySwitcherComponent","SHOW_ALL_BHP_QUZIZES_STATUS","SHOW_ALL_BHP_QUZIZES_STATUS_HANDLER","BhpCoursesPageComponent","USER_MY_BHP_DATA","SET_USER_MY_BHP_DATA","USER_MY_BHP_ERROR","SET_USER_MY_BHP_ERROR","SET_SHOW_ALL_BHP_QUZIZES_STATUS","USER_MY_BHP_API_URL","USER_MY_BHP_REQUEST_DATA","GET_USER_MY_BHP_DATA","userBHP","DriverBHPs","UserBHPFavorites","bhp","BhpCourse","UserBHPOthers","ExtraLinkComponent","LINK","INDEX","ONENDED","url","controls","onEnded","QuizNextButtonComponent","TO","TITLE","DISABLED","marginLeft","SessionExtendComponent","SESSIONMAXTIMESECONDS","sessionStart","myInterval","setInterval","secoundsToTokenExpired","sessionTimeSeconds","clearInterval","BhpQuizExtraLinksPageComponent","playersEnded","link","PlayersEnded","setPlayersEnded","onPlayerEnded","players","SessionExtend","ExtraLink","QuizNextButton","every","APP_bhp_quiz_allow_start_without_film","TimeLeftComponent","ENDTIME","timeLeft","setTime","timeExpired","padStart","getSeconds","BhpQuizQuastionPageComponent","ANSWERS_INPUT","answers","QUASTIONNO","endTime","setEndTime","ANSWERS","setAnswers","setMinutes","Duration","isChecked","radioValue","result","QuestionNo","Questions","Answers","AnswerNo","onAnswerChange","event","answer","newAnswers","TimeLeft","fontSize","QuestionText","graphic","getPictogram","Graphics","Check","Input","checked","htmlFor","AnswerText","BhpQuizFinalizationPageComponent","TIMEEXPIRED","BHPCURSE_FINALIZATION","SET_BHPCOURSE_FINALIZATION","GET_BHPCOURSE_FINALIZATION","BHPCOURSE_FINALIZATION_REQUEST_DATA","QuizNo","BHPCOURSE_FINALIZATION_RESPONSE","FinalizationText","SettingsMyBhpCoursesPageComponent","MYBHPCOURSES_URL","MYBHPCOURSES_QUIZDESC_URL","MYBHPCOURSES_QUIZEXTRALINKS_URL","MYBHPCOURSES_QUIZQUASTION_URL","MYBHPCOURSES_QUIZFINALIZATION_URL","BhpCourses","BhpQuiz","TransportDocumentsSwitcherComponent","SHOW_DOCUMENTS_STATUS","SHOW_DOCUMENTS_STATUS_HANDLER","DOCUMENT_ICON","generateDocumentFromBinary","FILE","fileType","binaryStringLen","OUTPUT_FILE","OUTPUT_FILE_URL","TransportDocumentComponent","DOCUMENT","DocName","DocTypeName","TransportDocumentsListComponent","TRANSPORT","TRANSPORT_DOCUMENTS_LIST","SET_TRANSPORT_DOCUMENTS_LIST","TRANSPORT_DOCUMENTS_ERROR","SET_TRANSPORT_DOCUMENTS_ERROR","TransportNo","TRANSPORT_DOCUMENTS_API_URL","TRANSPORT_DOCUMENTS_REQUEST_DATA","GET_TRANSPORT_DOCUMENTS","TRANSPORT_DOCUMENTS_RESPONSE","RESPONSE_TEXT","TransportDocumentsList","FinishedTransportComponent","TRANSPORT_SHOW_DOCUMENTS_STATUS","SET_TRANSPORT_SHOW_DOCUMENTS_STATUS","RECEIVERS","Comapertments","CloseDate","MyFinishedTransportsListComponent","TRANSPORTS_LIST","TransportsList","SettingsMyFinishedTransportsPageComponent","DATE_FROM_FILTER","SET_DATE_FROM_FILTER","DATE_TO_FILTER","SET_DATE_TO_FILTER","USER_FINISHED_TRANSPORTS","SET_USER_FINISHED_TRANSPORTS","USER_FINISHED_TRANSPORTS_ERROR","SET_USER_FINISHED_TRANSPORTS_ERROR","USER_FINISHED_TRANSPORTS_API_URL","USER_FINISHED_TRANSPORTS_REQUEST_DATA","DateFrom","DateTo","GET_USER_FINISHED_TRANSPORTS","Transports","NEW_DATE_FROM","NEW_DATE_TO","SettingsPageUserViewComponent","FavouriteVehiclesVehicleComponent","REMOVE_FROM_FAVORITES_HANDLER","VehiclesActiveSetComponent","FAVORITE_VEHICLES","ACTIVE_VEHICLE_STATUS_HANDLER","FRONT_FAVORITE_VEHICLES","REAR_FAVORITE_VEHICLES","SELECTED_ACTIVE_FRONT_VEHICLE","SET_SELECTED_ACTIVE_FRONT_VEHICLE","SELECTED_ACTIVE_REAR_VEHICLE","SET_SELECTED_ACTIVE_REAR_VEHICLE","FAVORITE_VEHICLES_LIST","CHANGE_ACTIVE_VEHICLE","vehicleType","ACTIVE_VEHICLE","TRIGGER","FrontVehiclesList","RearVehiclesList","SettingsMyFavouriteVehiclesPageComponent","VEHICLES_LIST_UPDATE_TRIGGER","SET_VEHICLES_LIST_UPDATE_TRIGGER","VEHICLES_LIST_RESPONSE","SELECTED_VEHICLE","SET_SELECTED_VEHICLE","OTHER_VEHICLES_LIST","VEHICLE_ACTIVE_STATUS_HANDLER","V","ADD_TO_FAVORITES_HANDLER","VEHICLE_REG_NO","ACTION","CHANGE_VEHICLE_ACTIVE_STATUS_REQUEST_METHOD","CHANGE_VEHICLE_ACTIVE_STATUS_REQUEST_DATA","FavoriteVehiclesList","OtherVehiclesList","FavouriteTerminalsElementComponent","TERMINAL_DATA","TERMINALS_LIST_HANDLER","removeFromFavoritesStatus","setRemoveFromFavoritesStatus","removeFromFavoritesMessage","setRemoveFromFavoritesMessage","changeRemoveFromFavoritesMessage","removeFromFavoritesRequestHandler","REMOVE_TERMINAL_API_URL","REMOVE_TERMINAL_REQUEST_DATA","REMOVE_TERMINAL_RESPONSE","href","FavouriteTerminalsListComponent","FavouriteTerminalsList","AddFavouriteTerminalComponent","selectedTerminalId","setSelectedTerminalId","addTerminalToFavoritesMessage","setAddTerminalToFavoritesMessage","changeAddTerminalToFavoritesMessage","addTerminalToFavoritesRequestHandler","ADD_TERMINAL_API_URL","ADD_TERMINAL_REQUEST_DATA","ADD_TERMINAL_RESPONSE","paddingLeft","paddingRight","SettingsMyFavouriteTerminalsPageComponent","UPDATE_TERMINAL_LIST_HANDLER","eventType","UPDATED_TERMINALS_LIST","FAVORITE_TERMINALS_LIST","NOT_FAVORITE_TERMINALS_LIST","SettingsPageFavoriteViewComponent","SettingsRemoveAccountPageComponent","DELETE_USER_ACCOUNT_ERROR","SET_DELETE_USER_ACCOUNT_ERROR","DELETE_ACCOUNT_HANDLER","USER_REMOVE_RESPONSE","SettingsChangePasswordPageComponent","setOperationGuid","userNewPasswordError","setUserNewPasswordError","userNewPasswordSubmitSuccess","setUserNewPasswordSubmitSuccess","userNewPassword","setUserNewPassword","userNewPasswordRepeat","setUserNewPasswordRepeat","resetChangePasswordState","NEW_PASSWORD_SUBMIT_HANDLER","errors","newPassword","newPasswordRepeat","NEW_PASSWORD_REQUEST_HANDLER","CHANGE_PASSWORD_API_URL","CHANGE_PASSWORD_REQUEST_DATA","CHANGE_PASSWORD_RESPONSE","password","changeUserNewPassword","changeUserNewPasswordRepeat","SettingsDisconnectWithOperatorPageComponent","USER_PROFILE_MESSAGE","SET_USER_PROFILE_MESSAGE","USER_OPERATORS_RESPONSE","USER_DATA","USER_OPERATORS","OperatorsList","OPERATOR_REMOVE_HANDLER","MasterNo","operatorId","ApplicantMasterNo","DISCONNECT_WITH_OPERATOR_RESPONSE","SettingsPageAccountViewComponent","ContactPagePhoneComponent","contactData","contactPhoneNumber","Address","ContactPageMailComponent","contactFormOpenStatus","setContactFormOpenStatus","contactFormErrors","setContactFormErrors","contactFormSubmitStatus","setContactFormSubmitStatus","contactFormSubject","setContactFormSubject","contactFormContent","setContactFormContent","contactMailAddress","contactMailReasons","Reasons","CONTACT_FORM_SUBMIT_HANDLER","formSubject","formContent","CONTACT_FORM_REQUEST_HANDLER","CONTACT_FORM_SEND_MESSAGE_API_URL","CONTACT_FORM_SEND_MESSAGE_REQUEST_DATA","Reason","Text","CONTACT_FORM_RESPONSE","subject","reason","Order","SettingsContactPageComponent","CONTACT_PAGE_DATA","SET_CONTACT_PAGE_DATA","CONTACT_PAGE_ERROR","SET_CONTACT_PAGE_ERROR","CONTACT_PAGE_DATA_API_URL","CONTACT_PAGE_DATA_REQUEST_DATA","GET_CONTACT_PAGE_DATA","CONTACT_PAGE_RESPONSE","contactsTypes","Contacts","CONTACT_PAGE_TYPES","contact","MAIL_CONTACT_TYPE","M","PHONE_CONTACT_TYPE","SettingsRegulationsPageComponent","USER_REGULATIONS","SET_USER_REGULATIONS","USER_REGULATIONS_ERROR","SET_USER_REGULATIONS_ERROR","USER_REGULATIONS_API_URL","USER_REGULATIONS_REQUEST_DATA","GET_USER_REGULATIONS","REGULATIONS_RESPONSE","GET_REGULATION_FILE_HANDLER","regulationId","REGULATION_API_URL","REGULATION_REQUEST_DATA","newWindow","REGULATION_RESPONSE","RegulationsList","REGULATION","SettingsPageInformationViewComponent","SettingsAboutPageComponent","SettingsPageComponent","SETTINGS_MAIN_PAGE_URL","SETTINGS_USER_PAGE_URL","SETTINGS_FAVORITE_PAGE_URL","SETTINGS_ACCOUNT_PAGE_URL","SETTINGS_INFORMATION_PAGE_URL","SETTINGS_ABOUT_PAGE_URL","NotificationsListPageComponent","NOTIFICATIONS","NotificationsList","NOTIFICATION","Caption","NotificationId","NotificationsPageComponent","MESSAGES_LIST_URL","MESSAGE_URL","AuthenticatedUserComponent","SET_USER_NOTIFICATIONS","NOTIFICATIONS_API_URL","NOTIFICATIONS_REQUEST_DATA","GET_USER_NOTIFICATIONS","NOTIFICATIONS_RESPONSE","NOTIFICATIONS_RESPONSE_TEXT","Notifications","NOTIFICATIONS_LIST","TERMINALS_URL","NOTIFICATIONS_PAGE_URL","HomePage","MonitoryNotes","Settings","ApplicationComponent","Authenticated","NotAuthenticated","ModalMessageComponent","openStatus","closeHandler","ReactDOM","createPortal","Application","MODAL_MESSAGE","Provider","StrictMode","store","getElementById"],"mappings":"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","file":"static/js/main.c7d1510c.chunk.js","sourcesContent":["import ENV from \"react-dotenv\";\r\n\r\n\r\nexport type APPLICATION_API_DATA_TYPE = {\r\n API_ROOT_URL: string | null\r\n};\r\n\r\n\r\nexport const APPLICATION_API_DATA:APPLICATION_API_DATA_TYPE = {\r\n API_ROOT_URL: ENV?.API_URL || null\r\n};\r\n\r\n\r\nexport default APPLICATION_API_DATA;\r\n","import React from \"react\";\r\n\r\n\r\nimport APPLICATION_API_DATA, {APPLICATION_API_DATA_TYPE} from \"@API\";\r\n\r\n\r\nexport const ApplicationApiContext = React.createContext(null);\r\n\r\n\r\nexport {\r\n APPLICATION_API_DATA\r\n};\r\n\r\n\r\nexport default ApplicationApiContext;\r\n","export type LanguageInterface = {\r\n languageID: number,\r\n languageCode: string\r\n};\r\n\r\nexport const CHANGE_LANGUAGE:string = 'CHANGE_LANGUAGE';\r\n\r\n\r\nexport type CHANGE_LANGUAGE_ACTION_TYPE = {\r\n type: string,\r\n newLanguage: LanguageInterface\r\n};\r\n\r\nexport const CHANGE_LANGUAGE_ACTION = (newLanguage: LanguageInterface): CHANGE_LANGUAGE_ACTION_TYPE => {\r\n return {\r\n type: CHANGE_LANGUAGE,\r\n newLanguage: newLanguage\r\n };\r\n};\r\n\r\n\r\nexport type LOCALIZATION_STATE_TYPE = {\r\n activeLanguage: LanguageInterface | null\r\n};\r\n\r\n\r\n\r\n","import ENV from \"react-dotenv\";\r\n\r\n\r\nimport {\r\n LanguageInterface, CHANGE_LANGUAGE, CHANGE_LANGUAGE_ACTION_TYPE,\r\n LOCALIZATION_STATE_TYPE\r\n} from \"@Actions/Localization\";\r\n\r\n\r\nconst {APP_NAME} = ENV || {};\r\nconst APP_ACTIVE_LANGUAGE_KEY = (APP_NAME || \"\") + \"_APP_ACTIVE_LANGUAGE\";\r\n\r\n\r\nconst storedActiveLanguage = localStorage.getItem(APP_ACTIVE_LANGUAGE_KEY);\r\n\r\nconst storedActiveLanguageObject: LanguageInterface =\r\n !!storedActiveLanguage ? JSON.parse(storedActiveLanguage) : {\r\n languageID: 1,\r\n languageCode: \"PL\"\r\n }\r\n;\r\n\r\n\r\nconst LocalizationInitialState: LOCALIZATION_STATE_TYPE = {\r\n activeLanguage: storedActiveLanguageObject\r\n};\r\n\r\n\r\ntype ACTION_TYPES = | CHANGE_LANGUAGE_ACTION_TYPE;\r\n\r\n\r\n\r\nexport const LocalizationReducer = (state = LocalizationInitialState, action: ACTION_TYPES) => {\r\n\r\n switch (action.type) {\r\n\r\n case CHANGE_LANGUAGE:\r\n localStorage.setItem(APP_ACTIVE_LANGUAGE_KEY, JSON.stringify(action.newLanguage));\r\n return {...state, activeLanguage: action.newLanguage};\r\n\r\n default:\r\n return state;\r\n\r\n }\r\n\r\n};\r\n\r\n\r\nexport default LocalizationReducer;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nexport const LOG_USER_IN:string = 'LOG_USER_IN';\r\n\r\nexport const LOG_USER_OUT: string = \"LOG_USER_OUT\";\r\n\r\n\r\nexport type AUTHENTICATION_ACTION_TYPE = {\r\n type: string,\r\n user?: LOGGED_USER_INTERFACE | null\r\n};\r\n\r\n\r\nexport const LOG_USER_IN_ACTION = (LOGGED_USER: LOGGED_USER_INTERFACE | null): AUTHENTICATION_ACTION_TYPE => {\r\n return {\r\n type: LOG_USER_IN,\r\n user: LOGGED_USER\r\n };\r\n};\r\n\r\nexport const LOG_USER_OUT_ACTION = (): AUTHENTICATION_ACTION_TYPE => {\r\n return {\r\n type: LOG_USER_OUT\r\n };\r\n};\r\n\r\n\r\nexport type AUTHENTICATION_STATE_TYPE = {\r\n loggedUser: LOGGED_USER_INTERFACE | null\r\n};\r\n","import ENV from \"react-dotenv\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {\r\n LOG_USER_IN, LOG_USER_OUT, AUTHENTICATION_ACTION_TYPE,\r\n AUTHENTICATION_STATE_TYPE\r\n} from \"@Actions/Authentication\";\r\n\r\n\r\n\r\nconst {APP_NAME} = ENV || {};\r\nconst APP_LOGGED_USER_KEY = (APP_NAME || \"\") + \"_APP_LOGGED_USER\";\r\n\r\n\r\nconst storedLoggedUser: string | null = localStorage.getItem(APP_LOGGED_USER_KEY);\r\nconst storedLoggedUserObject: LOGGED_USER_INTERFACE = !!storedLoggedUser ? JSON.parse(storedLoggedUser) : null;\r\n\r\n\r\nconst AuthenticationInitialState: AUTHENTICATION_STATE_TYPE = {\r\n loggedUser: storedLoggedUserObject\r\n};\r\n\r\n\r\nexport const AuthenticationReducer = (\r\n state = AuthenticationInitialState,\r\n action: AUTHENTICATION_ACTION_TYPE\r\n) => {\r\n\r\n switch (action.type) {\r\n\r\n case LOG_USER_IN:\r\n localStorage.setItem(APP_LOGGED_USER_KEY, JSON.stringify(action.user));\r\n return {...state, loggedUser: action.user};\r\n\r\n case LOG_USER_OUT:\r\n localStorage.removeItem(APP_LOGGED_USER_KEY);\r\n return {...state, loggedUser: null};\r\n\r\n default:\r\n return state;\r\n\r\n }\r\n\r\n};\r\n\r\n\r\nexport default AuthenticationReducer;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport {INTERFACE_ACTION_TYPE} from \"@Actions/Interface\";\r\n\r\n\r\nexport const CHANGE_API_REQUEST_STATUS:string = \"CHANGE_API_REQUEST_STATUS\";\r\n\r\n\r\nexport const CHANGE_API_REQUEST_STATUS_ACTION = (status: boolean = false): INTERFACE_ACTION_TYPE => {\r\n return {\r\n type: CHANGE_API_REQUEST_STATUS,\r\n status: status\r\n };\r\n};\r\n\r\n\r\nexport default CHANGE_API_REQUEST_STATUS_ACTION;\r\n","export const CHANGE_MODAL_MESSAGE = \"CHANGE_MODAL_MESSAGE\";\r\n\r\n\r\nexport const CHANGE_MODAL_MESSAGE_ACTION = (\r\n message?: string | null,\r\n messageType?: \"DEFAULT\" | \"ERROR\" | \"SUCCESS\",\r\n acceptHandler?: () => void,\r\n declineHandler?: () => void\r\n) => {\r\n return {\r\n type: CHANGE_MODAL_MESSAGE,\r\n message: {\r\n messageType: messageType,\r\n content: message,\r\n acceptHandler: acceptHandler,\r\n declineHandler: declineHandler\r\n }\r\n }\r\n};\r\n\r\n\r\nexport default CHANGE_MODAL_MESSAGE_ACTION;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\n/** @import Global Interface Data State Type */\r\nimport INTERFACE_STATE_TYPE from \"@Actions/Interface\";\r\n\r\n/** @import Global Api Request Status Action, Global Interface Data Action Type */\r\nimport {\r\n CHANGE_API_REQUEST_STATUS, // Global Api Request Status Action\r\n CHANGE_MODAL_MESSAGE,\r\n INTERFACE_ACTION_TYPE // Global Interface Data Action Type\r\n} from \"@Actions/Interface\";\r\n\r\n\r\n/** @interface InterfaceState Global Interface Data Default State */\r\nconst InterfaceState = {\r\n apiRequestStatus: false, // Global Api Request Status\r\n modalMessage: null\r\n};\r\n\r\n\r\nexport const InterfaceReducer = (\r\n state: INTERFACE_STATE_TYPE = InterfaceState,\r\n action: INTERFACE_ACTION_TYPE\r\n): INTERFACE_STATE_TYPE => {\r\n\r\n switch (action.type) {\r\n\r\n case CHANGE_API_REQUEST_STATUS:\r\n return {...state, apiRequestStatus: action.status || false};\r\n\r\n case CHANGE_MODAL_MESSAGE:\r\n return {...state, modalMessage: action?.message?.content ? action.message : null};\r\n\r\n default:\r\n return state;\r\n\r\n }\r\n\r\n};\r\n\r\n\r\nexport default InterfaceReducer;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\n\r\nimport {API_ACTION_TYPE} from \"@Actions/Api\";\r\n\r\n\r\nexport const CHANGE_API_REQUEST_TOKEN:string = \"CHANGE_API_REQUEST_TOKEN\";\r\n\r\n\r\nexport const CHANGE_API_REQUEST_TOKEN_ACTION = (token: AUTHORIZATION_TOKEN_INTERFACE | null = null): API_ACTION_TYPE => {\r\n return {\r\n type: CHANGE_API_REQUEST_TOKEN,\r\n token: token\r\n };\r\n};\r\n\r\n\r\nexport default CHANGE_API_REQUEST_TOKEN_ACTION;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport ENV from \"react-dotenv\";\r\n\r\n\r\nimport API_STATE_TYPE , {\r\n API_ACTION_TYPE,\r\n CHANGE_API_REQUEST_TOKEN\r\n} from \"@Actions/Api\";\r\n\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\n\r\nconst {APP_NAME} = ENV || {};\r\nconst APP_REST_API_TOKEN_KEY = (APP_NAME || \"\") + \"_APP_REQUEST_TOKEN\";\r\n\r\n\r\nconst storedApiToken: string | null = localStorage.getItem(APP_REST_API_TOKEN_KEY);\r\nconst storedApiTokenObject: AUTHORIZATION_TOKEN_INTERFACE = !!storedApiToken ? JSON.parse(storedApiToken) : null;\r\n\r\nlet storedApiTokenLeftTime: number = 0;\r\n\r\nif (storedApiTokenObject) {\r\n storedApiTokenLeftTime = ((new Date()).getTime() - +storedApiTokenObject.tokenCreateDate) / 1000;\r\n if (storedApiTokenLeftTime > 300) storedApiTokenLeftTime = 0;\r\n storedApiTokenObject.tokenValidTime = (storedApiTokenObject.tokenValidTime || 0) - storedApiTokenLeftTime;\r\n if (storedApiTokenLeftTime === 0) localStorage.removeItem(APP_REST_API_TOKEN_KEY);\r\n}\r\n\r\n\r\nconst ApiState: API_STATE_TYPE = {\r\n requestToken: storedApiTokenObject\r\n};\r\n\r\n\r\nexport const ApiReducer = (\r\n state = ApiState,\r\n action: API_ACTION_TYPE\r\n): API_STATE_TYPE => {\r\n\r\n switch (action.type) {\r\n\r\n case CHANGE_API_REQUEST_TOKEN:\r\n const newToken: AUTHORIZATION_TOKEN_INTERFACE = Object.assign({}, action.token);\r\n localStorage.setItem(APP_REST_API_TOKEN_KEY, JSON.stringify(newToken));\r\n return {...state, requestToken: newToken || null};\r\n\r\n default:\r\n return state;\r\n\r\n }\r\n\r\n};\r\n\r\n\r\nexport default ApiReducer;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\n\r\nimport {createStore, combineReducers, applyMiddleware} from \"redux\";\r\n\r\nimport thunk from 'redux-thunk';\r\n\r\n\r\nimport LocalizationReducer from \"@Reducers/Localization\";\r\nimport AuthenticationReducer from \"@Reducers/Authentication\";\r\nimport InterfaceReducer from \"@Reducers/Interface\";\r\nimport ApiReducer from \"@Reducers/Api\";\r\n\r\n\r\nexport type ApplicationStateInterface = {\r\n localization: typeof LocalizationReducer;\r\n authentication: typeof AuthenticationReducer;\r\n interface: typeof InterfaceReducer;\r\n api: typeof ApiReducer;\r\n}\r\n\r\n\r\nconst ApplicationReducer = combineReducers({\r\n localization: LocalizationReducer,\r\n authentication: AuthenticationReducer,\r\n interface: InterfaceReducer,\r\n api: ApiReducer\r\n});\r\n\r\n\r\nconst ApplicationStore = createStore(\r\n ApplicationReducer, {}, applyMiddleware(thunk)\r\n);\r\n\r\n\r\nexport default ApplicationStore;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport {useSelector, TypedUseSelectorHook} from 'react-redux';\r\n\r\nimport {ApplicationStateInterface} from \"@Store\";\r\n\r\n\r\nexport const useTypedSelector: TypedUseSelectorHook = useSelector;\r\n\r\n\r\nexport default useTypedSelector;\r\n","export type APPLICATION_THEME_SETTINGS_TYPE = {\r\n defaultColor: string,\r\n primaryColor: string,\r\n primarySpecialColor: string,\r\n secondaryColor: string,\r\n secondarySpecialColor: string\r\n};\r\n\r\n\r\nexport const APPLICATION_THEME_SETTINGS:APPLICATION_THEME_SETTINGS_TYPE = {\r\n defaultColor: \"#222222\",\r\n primaryColor: \"#222222\",\r\n primarySpecialColor: \"#000080\",\r\n secondaryColor: \"#000\",\r\n secondarySpecialColor: \"#55AF3C\",\r\n};\r\n\r\n\r\nexport default APPLICATION_THEME_SETTINGS;\r\n","import React from \"react\";\r\n\r\n\r\nimport APPLICATION_THEME_SETTINGS, {APPLICATION_THEME_SETTINGS_TYPE} from \"@DATA/Theme\";\r\n\r\n\r\nexport const ApplicationThemeContext = React.createContext(null);\r\n\r\n\r\nexport {\r\n APPLICATION_THEME_SETTINGS\r\n};\r\n\r\n\r\nexport default ApplicationThemeContext;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\n\r\nexport const APPLICATION_ROUTER:APPLICATION_ROUTER_INTERFACE = {\r\n COMMON: {\r\n HOME: {URL: \"/\"}\r\n },\r\n NOT_AUTHENTICATED: {\r\n REGISTER: {URL: \"/rejestracja\"},\r\n LOGIN: {URL: \"/logowanie\"},\r\n PASSWORD_RESET: {URL: \"/reset-hasla\"}\r\n },\r\n AUTHENTICATED: {\r\n HOME: {URL: \"/\"},\r\n MONITORY_NOTES: {\r\n MONITORY_NOTES_LIST: {URL: \"/awizacje\"},\r\n MONITORY_NOTE_CREATE: {URL: \"/awizacje/utworz\"},\r\n MONITORY_NOTE_DETAILS: {URL: \"/awizacje/:monitoryNoteId\"},\r\n // MONITORY_NOTE_SUBMIT: {URL: \"/awizacje/utworz\"},\r\n // MONITORY_NOTE_DELETE: {URL: \"/awizacje/utworz\"},\r\n },\r\n DISPOSITIONS: {\r\n DISPOSITION: {URL: \"/dyspozycje/:terminalId/:dispositionId\"},\r\n TERMINAL_DISPOSITIONS_LIST: {URL: \"/dyspozycje/:terminalId\"},\r\n DISPOSITIONS_TERMINALS_LIST: {URL: \"/dyspozycje\"}\r\n },\r\n PETROL_BASES: {\r\n PETROL_BASES_LIST: {URL: \"/bazy-paliw\"},\r\n PETROL_BASE: {URL: \"/bazy-paliw/:petrolBaseId\"}\r\n },\r\n SETTINGS: {\r\n MAIN_PAGE: {URL: \"/ustawienia\"},\r\n SETTINGS_USER_PAGE: {URL: \"/ustawienia/profil\"},\r\n SETTINGS_USER_DATA_PAGE: {URL: \"/ustawienia/profil/moje-dane\"},\r\n SETTINGS_MY_DOCUMENTS_PAGE: {URL: \"/ustawienia/profil/moje-dokumenty\"},\r\n SETTINGS_MY_BHP_PAGE: {\r\n MAIN_PAGE: {URL: \"/ustawienia/profil/moje-szkolenia-bhp\"},\r\n QUIZ: {\r\n QUIZDESC: {URL: \"/ustawienia/profil/moje-szkolenia-bhp/quiz\"},\r\n QUIZEXTRALINKS: {URL: \"/ustawienia/profil/moje-szkolenia-bhp/quiz/extralinks\"},\r\n QUIZQUASTION: {URL: \"/ustawienia/profil/moje-szkolenia-bhp/quiz/quastion\"},\r\n QUIZFINALIZATION: {URL: \"/ustawienia/profil/moje-szkolenia-bhp/quiz/finalization\"}\r\n }\r\n },\r\n SETTINGS_FINISHED_TRANSPORTS_PAGE: {URL: \"/ustawienia/profil/moje-zakończone-transporty\"},\r\n SETTINGS_MY_FAVORITE_PAGE: {URL: \"/ustawienia/ulubione\"},\r\n SETTINGS_MY_FAVORITE_VEHICLES_PAGE: {URL: \"/ustawienia/ulubione/moje-ulubione-pojazdy\"},\r\n SETTINGS_MY_FAVORITE_TERMINALS_PAGE: {URL: \"/ustawienia/ulubione/moje-ulubione-bazy-paliw\"},\r\n SETTINGS_ACCOUNT_PAGE: {URL: \"/ustawienia/konto\"},\r\n SETTINGS_DELETE_ACCOUNT_PAGE: {URL: \"/ustawienia/konto/usuń-konto\"},\r\n SETTINGS_CHANGE_PASSWORD_PAGE: {URL: \"/ustawienia/konto/zmiana-hasla\"},\r\n SETTINGS_DISCONNECT_FROM_OPERATOR_PAGE: {URL: \"/ustawienia/konto/odlacz-od-przewoznika\"},\r\n SETTINGS_INFORMATION_PAGE: {URL: \"/ustawienia/informacje\"},\r\n SETTINGS_REGULATIONS_PAGE: {URL: \"/ustawienia/informacje/regulaminy\"},\r\n SETTINGS_CONTACT_PAGE: {URL: \"/ustawienia/informacje/kontakt\"},\r\n SETTINGS_CONTACT_FORM_PAGE: {URL: \"/ustawienia/informacje/kontakt/napisz-do-nas\"},\r\n SETTINGS_ABOUT_PAGE: {URL: \"/ustawienia/o-aplikacji\"}\r\n },\r\n MESSAGES: {\r\n MESSAGES: {URL: \"/wiadomosci\"},\r\n MESSAGES_LIST: {URL: \"/wiadomosci\"},\r\n MESSAGE: {URL: \"/wiadomosci/:messageId\"},\r\n }\r\n },\r\n ERRORS: {\r\n E404: {URL: \"/\"}\r\n }\r\n};\r\n\r\n\r\nexport default APPLICATION_ROUTER;\r\n","import React from \"react\";\r\n\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\nimport APPLICATION_ROUTER from \"@ROUTER\";\r\n\r\n\r\nexport const ApplicationRouterContext = React.createContext(APPLICATION_ROUTER);\r\n\r\n\r\nexport {\r\n APPLICATION_ROUTER\r\n};\r\n\r\n\r\nexport default ApplicationRouterContext;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\n/** Import Main React Library Object */\r\nimport React, {useContext} from \"react\";\r\n\r\n/** Import Theme Context - Information for colors, etc... */\r\nimport ApplicationThemeContext from \"@Contexts/Theme\";\r\n\r\n/** Import React Bootstrap Components */\r\nimport {Container, Row} from \"react-bootstrap\";\r\n\r\n/** Import React Spinners Components */\r\nimport Loader from \"react-loader-spinner\"; // Loader Animation Component\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\"; // Loader Animation CSS Stylesheet\r\n\r\n\r\n/** @type MainContentLoaderProps - Props List for Main Content Loader Component */\r\ntype MainContentLoaderProps = {\r\n loaderType?: \"Audio\" | \"BallTriangle\" | \"Bars\" | \"Circles\" | \"Grid\" | \"Hearts\" | \"Oval\" | \"Puff\" | \"Rings\" | \"TailSpin\" | \"ThreeDots\" | \"Watch\" | \"RevolvingDot\" | \"Triangle\" | \"Plane\" | \"MutatingDots\" | \"CradleLoader\"; // Loader Type\r\n componentStyles?: object | null; // Loader Overwritten CSS\r\n loaderColor?: string | null; // Loader Color\r\n loaderWidth?: number; // Loader Width Size\r\n loaderHeight?: number; // Loader Height Size\r\n cssClasses?: string; // Loader CSS Classes\r\n};\r\n\r\n\r\n/**\r\n * @visibleName Main Content Loader Component\r\n *\r\n * @return JSX.Element\r\n */\r\nexport const MainContentLoaderComponent = ({\r\n loaderType = \"BallTriangle\", componentStyles = null, loaderColor = \"#FFF\",\r\n loaderWidth = 150, loaderHeight = 150, cssClasses = \"\"\r\n}: MainContentLoaderProps): JSX.Element => {\r\n\r\n\r\n const THEME = useContext(ApplicationThemeContext);\r\n\r\n\r\n componentStyles = {display: \"flex\", padding: 0, ...componentStyles};\r\n\r\n loaderColor = loaderColor || THEME?.secondarySpecialColor || \"#FFF\";\r\n\r\n cssClasses = (cssClasses ? `${cssClasses} ` : \"\") + \"main-content-loader-component\";\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MainContentLoaderComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\n/** Import Main React Library Object */\r\nimport React from \"react\";\r\n\r\n\r\n/** Import Component Children Components */\r\nimport MainContentLoaderComponent from \"@Components/UI/Loaders/MainContent\"; // Content Loader Component\r\n\r\n\r\n/** @type RestApiRequestLoaderProps - Props List for Main Rest Api Request Loader Component */\r\ntype RestApiRequestLoaderProps = {};\r\n\r\n\r\n/**\r\n * @visibleName REST API Request Loader Component\r\n *\r\n * @return JSX.Element\r\n */\r\nexport const RestApiRequestLoaderComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /**\r\n * @description render Component Content\r\n * @return JSX.Element\r\n */\r\n return (\r\n // UI Component - Main Content Loader\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default RestApiRequestLoaderComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Container, Row} from \"react-bootstrap\";\r\n\r\n\r\ntype BlockContentContainerComponentProps = {\r\n forwardRef?: React.ForwardedRef | null;\r\n children?: | React.ReactChild | React.ReactChild[] | boolean | React.ReactNode | React.ReactNodeArray;\r\n as?: \"header\" | \"footer\" | \"main\" | \"article\" | \"aside\" | \"nav\" | \"div\";\r\n cssClasses?: string;\r\n};\r\n\r\n\r\nexport const BlockContentContainerComponent: React.FC = ({\r\n forwardRef = null,\r\n children = null,\r\n as = \"div\", cssClasses = \"\"\r\n}): JSX.Element => {\r\n\r\n\r\n cssClasses = (!!cssClasses ? `${cssClasses} ` : \"\") + \"block-container-component\";\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BlockContentContainerComponent;\r\n","import $ from \"jquery\";\r\n\r\n\r\nexport const scrollToDomElement = (target, offset = 100) => {\r\n\t\r\n\tif (!target && !target?.current) {\r\n\t\treturn null;\r\n\t}\r\n\t\r\n\tif (target?.current) target = target?.current;\r\n\t\r\n\t$(\"body, html\").animate(\r\n\t\t{\r\n\t\t\tscrollTop: $(target).offset().top - offset\r\n\t\t},\r\n\t\t1000\r\n\t);\r\n\t\r\n}\r\n\r\n\r\nexport default scrollToDomElement;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Alert} from \"react-bootstrap\";\r\n\r\n\r\ntype DefaultMessageComponentProps = {\r\n messageText: string,\r\n messageType?: \"info\" | \"danger\" | \"warning\" | \"success\"\r\n};\r\n\r\n\r\nexport const DefaultMessageComponent: React.FC = ({\r\n messageText, messageType= \"info\"\r\n}): JSX.Element => {\r\n\r\n\r\n return (\r\n \r\n \r\n {messageText}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DefaultMessageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\n\r\n\r\ntype ErrorMessageComponentProps = {\r\n messageText?: string\r\n};\r\n\r\n\r\nexport const ErrorMessageComponent: React.FC = ({\r\n messageText\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!messageText) return null;\r\n\r\n\r\n return (\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default ErrorMessageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype FormResetComponentProps = {\r\n formResetHandler(): void\r\n};\r\n\r\n\r\nexport const FormResetComponent: React.FC = ({formResetHandler}): JSX.Element | null => {\r\n\r\n if (!formResetHandler) return null;\r\n\r\n return (\r\n \r\n {`Resetuj formularz`}\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormResetComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype FormSwitchPageComponentProps = {\r\n switchLabel?: string;\r\n switchButtonURL: string;\r\n switchButtonText: string;\r\n};\r\n\r\n\r\nexport const FormSwitchPageComponent: React.FC = ({\r\n switchLabel = \"\",\r\n switchButtonURL, switchButtonText\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!switchButtonURL || !switchButtonText) return null;\r\n\r\n\r\n return (\r\n \r\n\r\n {!!switchLabel &&\r\n\t {switchLabel}\r\n }\r\n\r\n {!!switchButtonURL &&\r\n\t \r\n\t\t {switchButtonText}\r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormSwitchPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Row} from \"react-bootstrap\";\r\n\r\n\r\ntype FormFieldsGroupFieldsProps = {\r\n children?: | React.ReactChild | React.ReactChild[];\r\n};\r\n\r\n\r\nexport const FormFieldsGroupFieldsComponent: React.FC = ({\r\n children = null\r\n}): JSX.Element => {\r\n\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormFieldsGroupFieldsComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype FormFieldsGroupProps = {\r\n children?: | React.ReactChild | React.ReactChild[] | boolean;\r\n forwardRef?: React.ForwardedRef | null,\r\n cssClasses?: string\r\n};\r\n\r\n\r\nexport const FormFieldsGroupComponent: React.FC = ({\r\n children = null,\r\n forwardRef = null,\r\n cssClasses = \"\"\r\n}): JSX.Element => {\r\n\r\n\r\n cssClasses = (cssClasses ? `${cssClasses} ` : \"\") + \"form-fields-group-component\";\r\n\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormFieldsGroupComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState} from \"react\";\r\n\r\n\r\nimport {Col, Form} from \"react-bootstrap\";\r\nimport {AiFillEye, AiFillEyeInvisible, AiOutlineEye} from \"react-icons/all\";\r\n\r\n\r\ntype FormFieldType = {\r\n xs?: any;\r\n lg?: any;\r\n sm?: any;\r\n xl?: any;\r\n fieldValue: string;\r\n fieldValueHandler(e: React.ChangeEvent): void;\r\n fieldControlID?: string,\r\n fieldType?: \"text\" | \"number\" | \"password\" | \"email\" | \"date\";\r\n fieldLabel?: string | null;\r\n fieldPlaceholder?: string | null;\r\n fieldError?: string | null;\r\n fieldDisabledStatus?: boolean;\r\n fieldLegend?: string | null;\r\n cssClasses?: string;\r\n autoComplete?: string;\r\n props?: any;\r\n};\r\n\r\n\r\nexport const FormFieldComponent: React.FC = ({\r\n xs = 12, lg= null, sm= null, xl = null,\r\n fieldValue, fieldValueHandler, fieldControlID = \"\",\r\n fieldType = \"text\",\r\n fieldLabel = null, fieldPlaceholder = null,\r\n fieldError = null,\r\n fieldDisabledStatus = false,\r\n fieldLegend = null,\r\n cssClasses = \"\",\r\n autoComplete = \"off\",\r\n ...props\r\n}): JSX.Element => {\r\n\r\n\r\n cssClasses = (cssClasses ? `${cssClasses} ` : \"\") + \"form-field-component\";\r\n\r\n\r\n const PROPS: any = {};\r\n\r\n if (fieldType === \"number\") PROPS.min = \"0\";\r\n if (fieldType !== \"password\") PROPS.placeholder = fieldPlaceholder || fieldLabel || \"\";\r\n\r\n\r\n const [inputFieldType, setInputFieldType]= useState(fieldType);\r\n const [inputFieldShowContentStatus, setInputFieldShowContentStatus]= useState(false);\r\n\r\n const changeInputFieldShowContentStatus = () => {\r\n setInputFieldType(!inputFieldShowContentStatus ? \"text\" : fieldType);\r\n setInputFieldShowContentStatus(!inputFieldShowContentStatus);\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!fieldLabel &&\r\n {fieldLabel}:\r\n }\r\n\r\n \r\n\r\n\r\n {(fieldType === \"password\" || inputFieldShowContentStatus) &&\r\n changeInputFieldShowContentStatus()}>\r\n {inputFieldShowContentStatus ? : }\r\n \r\n }\r\n\r\n {!!fieldError &&\r\n\t {fieldError}\r\n }\r\n\r\n {!!fieldLegend &&\r\n\t {fieldLegend}\r\n }\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormFieldComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Button, Form} from \"react-bootstrap\";\r\n\r\n\r\ntype DefaultFormButtonProps = {\r\n buttonText: string;\r\n clickHandler(): any;\r\n disabled?: boolean;\r\n controlId?: string;\r\n cssClasses?: string;\r\n size?: \"lg\" | \"sm\" | undefined;\r\n variant?: string\r\n};\r\n\r\n\r\nexport const DefaultFormButton: React.FC = ({\r\n buttonText, clickHandler,\r\n disabled = false,\r\n controlId = \"\", cssClasses = \"\", size = \"lg\", variant = \"primary\"\r\n}): JSX.Element => {\r\n\r\n\r\n cssClasses = (cssClasses ? `${cssClasses} ` : \"\") + \"user-form-button-container text-center\";\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DefaultFormButton;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport {REGISTER_FORM_STEP_TYPE, RegisterFormErrorsInterface} from \"@UIPages/NotAuthenticated/Register\";\r\n\r\n\r\ntype RegisterFormStep1Props = {\r\n forwardRef?: React.ForwardedRef | null;\r\n registerFormStep: REGISTER_FORM_STEP_TYPE, registerFormStepHandler(step: number, final?: boolean): void;\r\n registerFormErrors: RegisterFormErrorsInterface,\r\n formUserIdNumber: string; formUserIdNumberHandler(e: React.ChangeEvent): void;\r\n formUserFirstName: string; formUserFirstNameHandler(e: React.ChangeEvent): void;\r\n formUserLastName: string; formUserLastNameHandler(e: React.ChangeEvent): void;\r\n};\r\n\r\n\r\nexport const RegisterFormStep1Component: React.FC = ({\r\n forwardRef = null,\r\n registerFormStep, registerFormStepHandler, registerFormErrors,\r\n formUserIdNumber, formUserIdNumberHandler,\r\n formUserFirstName,formUserFirstNameHandler,\r\n formUserLastName,formUserLastNameHandler\r\n}): JSX.Element => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n formUserIdNumberHandler(e)}\r\n fieldType={\"text\"} fieldLabel={`PESEL`} fieldControlID={`register-form-user-id-number`}\r\n fieldPlaceholder={\" \"}\r\n fieldDisabledStatus={registerFormStep !== 1 || !!REST_API_REQUEST_STATUS}\r\n fieldError={registerFormErrors?.formUserIdNumber}\r\n />\r\n\r\n formUserFirstNameHandler(e)}\r\n fieldLabel={`Imię`} fieldControlID={`register-form-user-first-name`}\r\n fieldPlaceholder={\" \"}\r\n fieldDisabledStatus={registerFormStep !== 1 || !!REST_API_REQUEST_STATUS}\r\n fieldError={registerFormErrors?.formUserFirstName}\r\n autoComplete={\"on\"}\r\n />\r\n\r\n formUserLastNameHandler(e)}\r\n fieldLabel={`Nazwisko`} fieldControlID={`register-form-user-last-name`}\r\n fieldPlaceholder={\" \"}\r\n fieldDisabledStatus={registerFormStep !== 1 || !!REST_API_REQUEST_STATUS}\r\n fieldError={registerFormErrors?.formUserLastName}\r\n autoComplete={\"on\"}\r\n />\r\n\r\n \r\n\r\n <>\r\n {registerFormStep === 1 &&\r\n registerFormStepHandler(2)}\r\n controlId={`register-form-user-step1-submit`}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n cssClasses={`register-form-user-step-submit`}\r\n />\r\n }\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default RegisterFormStep1Component;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\ntype FormFieldsGroupHeaderProps = {\r\n headerText: string,\r\n headerLabel?: string | null,\r\n children?: | React.ReactChild | React.ReactChild[];\r\n cssClasses?: string\r\n};\r\n\r\n\r\nexport const FormFieldsGroupHeaderComponent: React.FC = ({\r\n headerText,\r\n headerLabel = null,\r\n children = null,\r\n cssClasses = \"\"\r\n}): JSX.Element => {\r\n\r\n\r\n cssClasses = (cssClasses ? `${cssClasses} ` : \"\") + \"form-fields-group-header-component\";\r\n\r\n\r\n return (\r\n \r\n\r\n {!!headerLabel &&\r\n \r\n {headerLabel}\r\n \r\n }\r\n\r\n \r\n

\r\n {headerText}\r\n

\r\n \r\n\r\n {!!children &&\r\n\t \r\n {children}\r\n\t \r\n }\r\n\r\n
\r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormFieldsGroupHeaderComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\n\r\n\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport {REGISTER_FORM_STEP_TYPE, RegisterFormErrorsInterface} from \"@UIPages/NotAuthenticated/Register\";\r\n\r\n\r\ntype RegisterFormStep2Props = {\r\n forwardRef?: React.ForwardedRef | null;\r\n registerFormStep: REGISTER_FORM_STEP_TYPE, registerFormStepHandler(step: number, final?: boolean): void;\r\n registerFormErrors: RegisterFormErrorsInterface,\r\n formUserPassword: string; formUserPasswordHandler(e: React.ChangeEvent): void;\r\n formUserPasswordRepeat: string; formUserPasswordRepeatHandler(e: React.ChangeEvent): void;\r\n formUserPIN: string, formUserPINHandler(e: React.ChangeEvent): void;\r\n formUserPhoneNumber: string, formUserPhoneNumberHandler(e: React.ChangeEvent): void;\r\n formUserGeneratedID: string, formUserGeneratedLogin: string, formUserGeneratedPasswordRequirements: [],\r\n};\r\n\r\n\r\nexport const RegisterFormStep2Component: React.FC = ({\r\n forwardRef = null,\r\n registerFormStep, registerFormStepHandler, registerFormErrors,\r\n formUserPassword, formUserPasswordHandler,\r\n formUserPasswordRepeat, formUserPasswordRepeatHandler,\r\n formUserPIN, formUserPINHandler,\r\n formUserPhoneNumber, formUserPhoneNumberHandler,\r\n formUserGeneratedID, formUserGeneratedLogin, formUserGeneratedPasswordRequirements\r\n}): JSX.Element | null => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n if (!formUserGeneratedID) return null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n {`Zapamiętaj ją - będzie służyła do logowania się do systemu`}\r\n \r\n\r\n \r\n\r\n formUserPasswordHandler(e)}\r\n fieldType={\"password\"} fieldLabel={`Hasło`} fieldControlID={`register-form-user-password`}\r\n fieldDisabledStatus={registerFormStep !== 2 || !!REST_API_REQUEST_STATUS}\r\n fieldError={registerFormErrors?.formUserPassword}\r\n fieldLegend={`Hasło powinno składać się z minimum 8 znaków, oraz zawierać cyfrę, wielką literę i znak specjalny`}\r\n />\r\n\r\n formUserPasswordRepeatHandler(e)}\r\n fieldType={\"password\"} fieldLabel={`Powtórz Hasło`} fieldControlID={`register-form-user-password-repeat`}\r\n fieldDisabledStatus={registerFormStep !== 2 || !!REST_API_REQUEST_STATUS}\r\n fieldError={registerFormErrors?.formUserPasswordRepeat}\r\n />\r\n\r\n formUserPINHandler(e)}\r\n fieldType={`password`} fieldLabel={`Pin do karty kierowcy`} fieldControlID={`register-form-user-pin`}\r\n fieldDisabledStatus={registerFormStep !== 2 || !!REST_API_REQUEST_STATUS}\r\n fieldError={registerFormErrors?.formUserPIN}\r\n fieldLegend={`Aktualny PIN, używany przez Ciebie w kiosku MM`}\r\n />\r\n\r\n formUserPhoneNumberHandler(e)}\r\n fieldType={`number`} fieldLabel={`Nr Telefonu`} fieldControlID={`register-form-user-phone-number`}\r\n fieldDisabledStatus={registerFormStep !== 2 || !!REST_API_REQUEST_STATUS}\r\n fieldError={registerFormErrors?.formUserPhoneNumber}\r\n fieldLegend={`Aktualny nr Telefonu, zarejestrowany w CDOK`}\r\n />\r\n\r\n <>\r\n {registerFormStep === 2 && !registerFormErrors?.registrationProcess &&\r\n\t \r\n }\r\n \r\n\r\n \r\n\r\n <>\r\n {registerFormStep === 2 &&\r\n\t\t registerFormStepHandler(3)}\r\n\t\t\t controlId={`register-form-user-step2-submit`}\r\n\t\t\t disabled={!!REST_API_REQUEST_STATUS}\r\n\t\t\t cssClasses={`register-form-user-step-submit`}\r\n\t\t />\r\n }\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default RegisterFormStep2Component;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Row, Col, Form} from \"react-bootstrap\";\r\n\r\nimport {AiOutlineCheck} from \"react-icons/all\";\r\n\r\n\r\ntype FormCheckboxFieldType = {\r\n xs?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\r\n lg?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\r\n sm?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\r\n xl?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\r\n fieldCheckedStatus: boolean;\r\n fieldCheckedStatusHandler(): void;\r\n fieldLabel: string;\r\n fieldLabelClickHandler?(): void;\r\n fieldError?: string | null;\r\n fieldDisabledStatus?: boolean;\r\n cssClasses?: string;\r\n fileSourceHandler?: any;\r\n};\r\n\r\n\r\nexport const FormCheckboxFieldComponent: React.FC = ({\r\n xs = 12, lg= null, sm= null, xl = null,\r\n fieldCheckedStatus, fieldCheckedStatusHandler,\r\n fieldLabel = \"\", fieldLabelClickHandler = null,\r\n fieldError = null,\r\n fieldDisabledStatus = false,\r\n cssClasses = \"\", fileSourceHandler = null,\r\n}): JSX.Element => {\r\n\r\n cssClasses = (cssClasses ? `${cssClasses} ` : \"\") + \"form-field-component checkbox-field-component\";\r\n\r\n const checkboxClasses = [\"checkbox\"];\r\n\r\n if (fieldCheckedStatus === true) checkboxClasses.push(\"checked\")\r\n if (fieldCheckedStatus !== true && !!fieldError) checkboxClasses.push(\"error\");\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n {!!fieldCheckedStatus && }\r\n \r\n \r\n\r\n \r\n fieldLabelClickHandler ? fieldLabelClickHandler() : null}>\r\n {fieldLabel}\r\n \r\n {fieldCheckedStatus !== true && !!fieldError &&\r\n\t {fieldError}\r\n }\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormCheckboxFieldComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nexport const DEFAULT_REQUEST_HEADERS: HeadersInit = {\r\n \"content-type\": \"application/json\"\r\n};\r\n\r\n\r\nexport default DEFAULT_REQUEST_HEADERS;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormCheckboxFieldComponent from \"@Components/UI/Forms/Field/Checkbox\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport {useDispatch} from \"react-redux\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nexport const UserRegistrationRegulationComponent = ({regulationData, index, formUserGeneratedID, regulationsAcceptations, regulationsAcceptationsHandler} : {regulationData: any, index: number, formUserGeneratedID: string, regulationsAcceptations: any, regulationsAcceptationsHandler: any}) => {\r\n\r\n\r\n /** @var {DISPATCHER} Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @var {REST_API_URL} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL;\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n const [regulationAcceptedStatus, setRegulationAcceptedStatus] = useState(false);\r\n\r\n const changeRegulationAcceptedStatus = (status: boolean) => {\r\n setRegulationAcceptedStatus(status);\r\n regulationsAcceptationsHandler({...regulationsAcceptations, [index]: status});\r\n };\r\n\r\n const GET_REGULATIONS_FILE = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const RESPONSE = await fetch(`${REST_API_URL}/App/Regulation/Get/Docs`, {\r\n method: \"POST\", headers: DEFAULT_REQUEST_HEADERS,\r\n body: JSON.stringify({\r\n UserId: formUserGeneratedID, RegulationId: regulationData?.RegulationId\r\n })\r\n });\r\n\r\n if (RESPONSE.status === 200) {\r\n const CONTENT: any = await RESPONSE.json();\r\n if (!CONTENT?.Docs[0]?.DocData) return;\r\n \r\n const binaryString = window.atob(CONTENT.Docs[0].DocData);\r\n const len = binaryString.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; ++i) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n\r\n const PDF = new Blob([bytes], {type: 'application/pdf'});\r\n\r\n const PDF_URL = URL.createObjectURL(PDF);\r\n window.open(PDF_URL);\r\n } else {\r\n\r\n }\r\n\r\n } catch (e) {}\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n };\r\n\r\n return (\r\n <>\r\n changeRegulationAcceptedStatus(!regulationAcceptedStatus)}\r\n fieldLabel={regulationData.Name}\r\n fieldLabelClickHandler={GET_REGULATIONS_FILE}\r\n fieldError={null}\r\n fieldDisabledStatus={REST_API_REQUEST_STATUS}\r\n />\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default UserRegistrationRegulationComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormCheckboxFieldComponent from \"@Components/UI/Forms/Field/Checkbox\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport {REGISTER_FORM_STEP_TYPE, RegisterFormErrorsInterface} from \"@UIPages/NotAuthenticated/Register\";\r\nimport UserRegistrationRegulationComponent from \"@UIPages/NotAuthenticated/Register/Steps/Step3/Regulation\";\r\nimport {useDispatch} from \"react-redux\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\ntype RegisterFormStep3Props = {\r\n forwardRef?: React.ForwardedRef | null;\r\n registerFormStep: REGISTER_FORM_STEP_TYPE, registerFormStepHandler(step: number, final?: boolean): void;\r\n registerFormErrors: RegisterFormErrorsInterface,\r\n formUserRegulations: any;\r\n formUserRegulationsHandler: any;\r\n formUserRegulationsAcceptedStatus: boolean; formUserRegulationsAcceptedStatusHandler(status: boolean): void;\r\n formUserPrivacyAcceptedStatus: boolean; formUserPrivacyAcceptedStatusHandler(status: boolean): void;\r\n formUserGeneratedID: string;\r\n};\r\n\r\n\r\nexport const RegisterFormStep3Component: React.FC = ({\r\n forwardRef,\r\n registerFormStep, registerFormStepHandler,\r\n registerFormErrors,\r\n formUserRegulations, formUserRegulationsHandler, formUserGeneratedID,\r\n formUserRegulationsAcceptedStatus, formUserRegulationsAcceptedStatusHandler,\r\n formUserPrivacyAcceptedStatus, formUserPrivacyAcceptedStatusHandler\r\n}): JSX.Element => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n const [regulationsAcceptations, setRegulationsAcceptations] = useState(\r\n Object.fromEntries(formUserRegulations.map((reg: any, i: number) => [i, false]))\r\n );\r\n\r\n const allRegulationsAcceptedStatus: boolean = !!(Object.values(regulationsAcceptations).filter((r: any) => !!r).length);\r\n\r\n useEffect(() => {\r\n formUserRegulationsAcceptedStatusHandler(allRegulationsAcceptedStatus);\r\n }, [allRegulationsAcceptedStatus]);\r\n\r\n\r\n const Regulations = formUserRegulations.map((regulation: any, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {Regulations}\r\n\r\n {registerFormErrors?.formUserRegulations &&\r\n \r\n }\r\n\r\n \r\n\r\n <>\r\n {registerFormStep === 3 &&\r\n\t\t registerFormStepHandler(4)}\r\n\t\t\t controlId={`register-form-user-step3-submit`}\r\n\t\t\t disabled={!!REST_API_REQUEST_STATUS}\r\n\t\t\t cssClasses={`register-form-user-step-submit`}\r\n\t\t />\r\n }\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default RegisterFormStep3Component;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState, useEffect} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport {REGISTER_FORM_STEP_TYPE, RegisterFormErrorsInterface} from \"@UIPages/NotAuthenticated/Register\";\r\n\r\n\r\ntype RegisterFormStep4Props = {\r\n forwardRef?: React.ForwardedRef | null;\r\n registerFormStep: REGISTER_FORM_STEP_TYPE, registerFormStepHandler(step: number, final?: boolean): void;\r\n registerFormErrors: RegisterFormErrorsInterface,\r\n formUserSMSCode: string; formUserSMSCodeHandler(e: React.ChangeEvent | string): void;\r\n formUserSMSCodeValidTime: number; formUserSMSCodeValidTimeHandler(time: number): void;\r\n formUserSMSCodeNumber?: any;\r\n};\r\n\r\n\r\nexport const RegisterFormStep4Component: React.FC = ({\r\n forwardRef = null,\r\n registerFormStep, registerFormStepHandler, registerFormErrors,\r\n formUserSMSCode, formUserSMSCodeHandler,\r\n formUserSMSCodeValidTime, formUserSMSCodeValidTimeHandler, formUserSMSCodeNumber\r\n}): JSX.Element => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n const [leftSmsCodeValidTime, setLeftSmsCodeValidTime] = useState(formUserSMSCodeValidTime || 0);\r\n const [activeCountDown, setActiveCountDown] = useState(null);\r\n\r\n useEffect(() => {\r\n if (formUserSMSCodeValidTime === 0) return;\r\n if (activeCountDown) window.clearTimeout(activeCountDown);\r\n formUserSMSCodeHandler(\"\");\r\n setLeftSmsCodeValidTime(formUserSMSCodeValidTime);\r\n formUserSMSCodeValidTimeHandler(0);\r\n }, [formUserSMSCodeValidTime]);\r\n\r\n useEffect(() => {\r\n if (leftSmsCodeValidTime > 0) {\r\n const interval = setTimeout(() => setLeftSmsCodeValidTime(leftSmsCodeValidTime - 1), 1000);;\r\n setActiveCountDown(interval);\r\n }\r\n }, [leftSmsCodeValidTime]);\r\n\r\n\r\n const leftMinutes = Math.floor(leftSmsCodeValidTime / 60) || 0\r\n const leftSeconds = leftSmsCodeValidTime % 60 || 0;\r\n\r\n const formattedTime = `${(leftMinutes < 10 ? \"0\" : \"\" ) + leftMinutes.toString()}:${(leftSeconds < 10 ? \"0\" : \"\" ) + leftSeconds.toString()}`;\r\n\r\n console.log(registerFormErrors)\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n\r\n formUserSMSCodeHandler(e)}\r\n fieldType={\"number\"} fieldLabel={`Podaj kod weryfikacyjny nr ${formUserSMSCodeNumber}`} fieldControlID={`register-form-user-sms-code`}\r\n fieldDisabledStatus={registerFormStep !== 4 || !!REST_API_REQUEST_STATUS || !(leftSmsCodeValidTime > 0)}\r\n fieldError={registerFormErrors?.formUserSMSCode}\r\n cssClasses={\"text-center\"}\r\n fieldLegend={registerFormStep === 4 ? `Pozostały czas: ${formattedTime}` : null}\r\n />\r\n\r\n \r\n\r\n <>\r\n {registerFormStep === 4 &&\r\n registerFormStepHandler(5, true)}\r\n controlId={`register-form-user-step5-submit`}\r\n disabled={!!REST_API_REQUEST_STATUS || !(leftSmsCodeValidTime > 0)}\r\n cssClasses={`register-form-user-step-submit`}\r\n />\r\n }\r\n \r\n\r\n <>\r\n {registerFormStep === 4 &&\r\n\t\t \r\n\t\t\t registerFormStepHandler(4, false)}\r\n\t\t\t\t controlId={`register-form-user-step4-submit`}\r\n\t\t\t\t disabled={!!REST_API_REQUEST_STATUS}\r\n\t\t\t\t cssClasses={`register-form-user-step-submit`}\r\n\t\t\t\t size={\"sm\"}\r\n\t\t\t />\r\n\t\t \r\n }\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default RegisterFormStep4Component;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useRef, useEffect, useContext} from \"react\";\r\n\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\nimport {Row, Col} from \"react-bootstrap\";\r\n\r\n\r\nimport scrollToDomElement from \"@Utilities/Animations/Scrolling\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport FormResetComponent from \"@Components/UI/Forms/Reset\";\r\nimport FormSwitchPageComponent from \"@Components/UI/Forms/SwitchPage\";\r\n\r\n\r\nimport RegisterFormStep1Component from \"@UIPages/NotAuthenticated/Register/Steps/Step1\";\r\nimport RegisterFormStep2Component from \"@UIPages/NotAuthenticated/Register/Steps/Step2\";\r\nimport RegisterFormStep3Component from \"@UIPages/NotAuthenticated/Register/Steps/Step3\";\r\nimport RegisterFormStep4Component from \"@UIPages/NotAuthenticated/Register/Steps/Step4\";\r\n\r\n\r\nimport {REGISTER_FORM_STEP_TYPE, RegisterFormErrorsInterface} from \"@UIPages/NotAuthenticated/Register\";\r\n\r\n\r\ntype RegisterFormStepsProps = {\r\n registerFormStep: REGISTER_FORM_STEP_TYPE, registerFormStepHandler(step: number, final?: boolean): void;\r\n registerFormErrors: RegisterFormErrorsInterface, registerFormErrorsHandler: any, formResetHandler(): void;\r\n formUserIdNumber: string; formUserIdNumberHandler(e: React.ChangeEvent): void;\r\n formUserFirstName: string; formUserFirstNameHandler(e: React.ChangeEvent): void;\r\n formUserLastName: string; formUserLastNameHandler(e: React.ChangeEvent): void;\r\n formUserGeneratedID: string, formUserGeneratedLogin: string, formUserGeneratedPasswordRequirements: [],\r\n formUserPassword: string; formUserPasswordHandler(e: React.ChangeEvent): void,\r\n formUserPasswordRepeat: string; formUserPasswordRepeatHandler(e: React.ChangeEvent): void;\r\n formUserPIN: string; formUserPINHandler(e: React.ChangeEvent): void;\r\n formUserPhoneNumber: string; formUserPhoneNumberHandler(e: React.ChangeEvent): void;\r\n formUserRegulations: any, formUserRegulationsHandler: any,\r\n formUserRegulationsAcceptedStatus: boolean; formUserRegulationsAcceptedStatusHandler(status: boolean): void;\r\n formUserPrivacyAcceptedStatus: boolean; formUserPrivacyAcceptedStatusHandler(status: boolean): void;\r\n formUserSMSCode: string; formUserSMSCodeHandler(e: React.ChangeEvent | string): void;\r\n formUserSMSCodeValidTime: number, formUserSMSCodeValidTimeHandler(time: number): void;\r\n formUserSMSCodeNumber?: any\r\n};\r\n\r\n\r\nexport const RegisterFormStepsComponent: React.FC = ({\r\n registerFormStep, registerFormStepHandler, registerFormErrors, formResetHandler,\r\n formUserIdNumber,formUserIdNumberHandler,\r\n formUserFirstName, formUserFirstNameHandler,\r\n formUserLastName, formUserLastNameHandler,\r\n formUserPassword, formUserPasswordHandler,\r\n formUserPasswordRepeat, formUserPasswordRepeatHandler,\r\n formUserGeneratedID, formUserGeneratedLogin, formUserGeneratedPasswordRequirements,\r\n formUserPIN, formUserPINHandler,\r\n formUserPhoneNumber, formUserPhoneNumberHandler,\r\n formUserRegulations, formUserRegulationsHandler,\r\n formUserRegulationsAcceptedStatus, formUserRegulationsAcceptedStatusHandler,\r\n formUserPrivacyAcceptedStatus, formUserPrivacyAcceptedStatusHandler,\r\n formUserSMSCode, formUserSMSCodeHandler,\r\n formUserSMSCodeValidTime, formUserSMSCodeValidTimeHandler, formUserSMSCodeNumber\r\n}): JSX.Element => {\r\n\r\n\r\n const FIRST_STEP_CONTAINER_REF = useRef(null);\r\n const SECOND_STEP_CONTAINER_REF = useRef(null);\r\n const THIRD_STEP_CONTAINER_REF = useRef(null);\r\n const FOURTH_STEP_CONTAINER_REF = useRef(null);\r\n\r\n useEffect(() => {\r\n let DOM_ELEMENT = null;\r\n if (registerFormStep === 1) DOM_ELEMENT = FIRST_STEP_CONTAINER_REF;\r\n if (registerFormStep === 2) DOM_ELEMENT = SECOND_STEP_CONTAINER_REF;\r\n if (registerFormStep === 3) DOM_ELEMENT = THIRD_STEP_CONTAINER_REF;\r\n if (registerFormStep === 4) DOM_ELEMENT = FOURTH_STEP_CONTAINER_REF;\r\n scrollToDomElement(DOM_ELEMENT);\r\n return () => {};\r\n }, [registerFormStep]);\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const LOGIN_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.LOGIN.URL;\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {registerFormStep === 1 &&\r\n\t \r\n }\r\n\r\n {registerFormStep === 2 &&\r\n }\r\n\r\n {registerFormStep === 3 &&\r\n \r\n }\r\n\r\n {registerFormStep === 4 &&\r\n }\r\n\r\n {!!registerFormErrors?.registrationProcess &&\r\n \r\n }\r\n\r\n {registerFormStep > 1 &&\r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default RegisterFormStepsComponent;\r\n","export const validatePeselNumber = (pesel: string): boolean | string => {\r\n\r\n if (!pesel || pesel.length !== 11) {\r\n return false;\r\n }\r\n\r\n let weight: number[] = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];\r\n let sum: number = 0;\r\n let controlNumber: number = +pesel.substring(10, 11);\r\n\r\n for (let i: number = 0; i < weight.length; i++) {\r\n sum += (+pesel.substring(i, i + 1) * weight[i]);\r\n }\r\n\r\n sum = sum % 10;\r\n\r\n return (10 - sum) % 10 === controlNumber;\r\n\r\n};\r\n\r\n\r\nexport default validatePeselNumber;\r\n","export const validateUserPassword = (string: string): boolean => {\r\n\r\n const lengthValidation: boolean = string.length > 7;\r\n const numberValidation: boolean = string.match(/\\d/g) ? true : false;\r\n const lettersValidation: boolean = string.match(/[a-z]/) && string.match(/[A-Z]/) ? true : false;\r\n const specialCharsValidation: boolean = string.match(/[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/) ? true : false;\r\n\r\n return lengthValidation && numberValidation && lettersValidation && specialCharsValidation;\r\n\r\n};\r\n\r\n\r\nexport default validateUserPassword;\r\n","export default __webpack_public_path__ + \"static/media/wallpaper_1.38a75403.jpg\";","export default __webpack_public_path__ + \"static/media/wallpaper_2.69aa09d4.jpg\";","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport PAGE_IMAGE_1 from \"@Images/wallpaper_1.jpg\";\r\nimport PAGE_IMAGE_2 from \"@Images/wallpaper_2.jpg\";\r\n\r\n\r\ntype BlockContentPictureProps = {\r\n headerPictureType: 1 | 2\r\n};\r\n\r\n\r\nexport const BlockContentPictureComponent: React.FC = ({\r\n headerPictureType = 1\r\n}): JSX.Element => {\r\n\r\n\r\n return (\r\n \r\n {`Aplikacja\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BlockContentPictureComponent;\r\n","export default __webpack_public_path__ + \"static/media/logo.42c4ef68.png\";","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport LOGO from \"@Images/logo.png\";\r\n\r\n\r\ntype ApplicationHeaderComponentProps = {\r\n cssClasses?: string;\r\n};\r\n\r\n\r\nexport const ApplicationHeaderComponent: React.FC = ({\r\n cssClasses = \"\"\r\n}): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n {``}\r\n \r\n \r\n\r\n {!!LOGGED_USER &&\r\n\t \r\n\t\t {`Witaj`}\r\n\t\t {LOGGED_USER?.userFirstName} {LOGGED_USER?.userLastName}\r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default ApplicationHeaderComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\n/** Import ENVIRONMENTAL VARIABLES */\r\nimport ENV from \"react-dotenv\";\r\n\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\n\r\nexport const prepareRestApiRequestToken = (Headers: Headers): AUTHORIZATION_TOKEN_INTERFACE | null => {\r\n\r\n let TOKEN_VALUE: string | null = Headers.get(\"Authorization\");\r\n let TOKEN_VALID_TIME: string | number | null = Headers.get(\"AuthorizationLifetime\");\r\n\r\n if (+ENV?.TOKEN_AUTHORIZATION === 0) {\r\n TOKEN_VALUE = TOKEN_VALUE || \"auth\";\r\n TOKEN_VALID_TIME = TOKEN_VALID_TIME || 300;\r\n }\r\n\r\n if (!TOKEN_VALUE || !TOKEN_VALID_TIME) return null;\r\n\r\n return {\r\n tokenValue: TOKEN_VALUE,\r\n tokenValidTime: +TOKEN_VALID_TIME,\r\n tokenCreateDate: (new Date()).getTime()\r\n };\r\n\r\n}\r\n\r\n\r\nexport default prepareRestApiRequestToken;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport ENV from \"react-dotenv\";\r\n\r\n\r\nimport React, {useState, useEffect, useContext} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\n\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport {LOG_USER_IN_ACTION} from \"@Actions/Authentication\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport {Helmet} from \"react-helmet\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport validator from \"validator\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\n\r\nimport RegisterFormStepsComponent from \"@UIPages/NotAuthenticated/Register/Steps\";\r\n\r\n\r\nimport validatePeselNumber from \"@Utilities/Validators/Pesel\";\r\nimport validateUserPassword from \"@Utilities/Validators/Password\";\r\nimport {Col} from \"react-bootstrap\";\r\nimport BlockContentPictureComponent from \"@Components/UI/Containers/Block/Picture\";\r\nimport ApplicationHeaderComponent from \"@UIParts/Header\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\nexport interface RegisterFormErrorsInterface {\r\n registrationProcess?: string;\r\n formUserIdNumber?: string | null;\r\n formUserFirstName?: string | null;\r\n formUserLastName?: string | null;\r\n formUserPassword?: string | null;\r\n formUserPasswordRepeat?: string | null;\r\n formUserPIN?: string | null;\r\n formUserPhoneNumber?: string | null;\r\n formUserRegulations?: string | null;\r\n formUserPrivacy?: string | null;\r\n formUserSMSCode?: string | null;\r\n}\r\n\r\n\r\ninterface RegisterFormFieldsInterface {\r\n formUserIdNumber?: string;\r\n formUserFirstName?: string;\r\n formUserLastName?: string;\r\n formUserOperationGuid?: string,\r\n formUserGeneratedID?: string,\r\n formUserGeneratedLogin?: string,\r\n formUserGeneratedPasswordRequirements?: [],\r\n formUserPassword?: string;\r\n formUserPasswordRepeat?: string;\r\n formUserPIN?: string;\r\n formUserPhoneNumber?: string;\r\n formUserFormalsStatus?: boolean,\r\n formUserRegulations?: [],\r\n formUserRegulationAcceptedStatus?: boolean;\r\n formUserPrivacyAcceptedStatus?: boolean;\r\n formUserFormalsAcceptationDate?: Date | null;\r\n formUserSMSCode?: string;\r\n formUserSMSCodeValidTime?: number;\r\n formUserSMSCodeNumber?: number;\r\n}\r\n\r\n\r\nconst RegisterFormFields: RegisterFormFieldsInterface = {\r\n formUserIdNumber: \"\",\r\n formUserFirstName: \"\",\r\n formUserLastName: \"\",\r\n formUserOperationGuid: \"\",\r\n formUserGeneratedID: \"\",\r\n formUserGeneratedLogin: \"\",\r\n formUserGeneratedPasswordRequirements: [],\r\n formUserPassword: \"\",\r\n formUserPasswordRepeat: \"\",\r\n formUserPIN: \"\",\r\n formUserPhoneNumber: \"\",\r\n formUserFormalsStatus: false,\r\n formUserRegulations: [],\r\n formUserRegulationAcceptedStatus: false,\r\n formUserPrivacyAcceptedStatus: false,\r\n formUserFormalsAcceptationDate: null,\r\n formUserSMSCode: \"\",\r\n formUserSMSCodeValidTime: 0,\r\n formUserSMSCodeNumber: 1\r\n};\r\n\r\n\r\ninterface REGISTER_FORM_REQUEST_HANDLER_INTERFACE {\r\n error?: boolean, code?: number, message?: string,\r\n success?: boolean, data?: any\r\n}\r\n\r\ntype REGISTER_FORM_REQUEST_HANDLER_RETURN_TYPE = REGISTER_FORM_REQUEST_HANDLER_INTERFACE | null;\r\n\r\n\r\nexport type REGISTER_FORM_STEP_TYPE = 1 | 2 | 3 | 4 | 5;\r\n\r\n\r\nexport const RegisterPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @type {UserInterface | null} Application Logged User (from Global Store Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @var {APP_NAME} Application Name - Environment Variable */\r\n const {APP_NAME} = ENV || {};\r\n\r\n\r\n /** @var {STORED_REGISTER_FORM_DATA} Stored in local storage Register Form Data */\r\n const STORED_REGISTER_FORM_DATA = localStorage.getItem(`${APP_NAME}_REGISTER_FORM_DATA`);\r\n /** @var {REGISTER_FORM_DATA} Parsed stored Register Form Data */\r\n const REGISTER_FORM_DATA = STORED_REGISTER_FORM_DATA ? JSON.parse(STORED_REGISTER_FORM_DATA) : RegisterFormFields;\r\n\r\n\r\n /** @var {DISPATCHER} Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @var {REST_API_URL} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL;\r\n\r\n\r\n /** */\r\n const [registerFormStep, setRegisterFormStep] = useState(1);\r\n\r\n /** */\r\n const [registerFormErrors, setRegisterFormErrors] = useState({});\r\n\r\n\r\n /**\r\n * @var {formUserIdNumberDefault}\r\n * @var {formUserFirstNameDefault}\r\n * @var {formUserLastNameDefault}\r\n * @var {formUserOperationGuidDefault}\r\n * @var {formUserGeneratedIDDefault}\r\n * @var {formUserGeneratedLoginDefault}\r\n * @var {formUserGeneratedPasswordRequirementsDefault}\r\n * @var {}\r\n * @var {}\r\n * @var {}\r\n * */\r\n // const {\r\n // formUserIdNumber: formUserIdNumberDefault,\r\n // formUserFirstName: formUserFirstNameDefault, formUserLastName: formUserLastNameDefault,\r\n // formUserOperationGuid: formUserOperationGuidDefault,\r\n // formUserGeneratedID: formUserGeneratedIDDefault, formUserGeneratedLogin: formUserGeneratedLoginDefault,\r\n // formUserGeneratedPasswordRequirements: formUserGeneratedPasswordRequirementsDefault,\r\n // formUserPIN: formUserPINDefault, formUserPhoneNumber: formUserPhoneNumberDefault,\r\n // formUserFormalsStatus: formUserFormalsStatusDefault, formUserRegulations: formUserRegulationsDefault,\r\n // formUserRegulationsAcceptedStatus: formUserRegulationsAcceptedStatusDefault,\r\n // formUserPrivacyAcceptedStatus: formUserPrivacyAcceptedStatusDefault,\r\n // formUserFormalsAcceptationDate: formUserFormalsAcceptationDateDefault\r\n // } = REGISTER_FORM_DATA;\r\n\r\n\r\n /** @var {} */\r\n const [formUserIdNumber, setFormUserIdNumber] = useState(\"\");\r\n /** @var {} */\r\n const [formUserFirstName, setFormUserFirstName] = useState(\"\");\r\n /** @var {} */\r\n const [formUserLastName, setFormUserLastName] = useState(\"\");\r\n\r\n /** @var {} */\r\n const [formUserOperationGuid, setFormUserOperationGuid] = useState(\"\");\r\n /** @var {} */\r\n const [formUserGeneratedID, setFormUserGeneratedID] = useState(\"\");\r\n /** @var {} */\r\n const [formUserGeneratedLogin, setFormUserGeneratedLogin] = useState(\"\");\r\n /** @var {} */\r\n const [formUserGeneratedPasswordRequirements, setFormUserGeneratedPasswordRequirements] = useState<[]>([]);\r\n\r\n /** @var {} */\r\n const [formUserPassword, setFormUserPassword] = useState(\"\");\r\n /** @var {} */\r\n const [formUserPasswordRepeat, setFormUserPasswordRepeat] = useState(\"\");\r\n /** @var {} */\r\n const [formUserPIN, setFormUserPIN] = useState(\"\");\r\n /** @var {} */\r\n const [formUserPhoneNumber, setFormUserPhoneNumber] = useState(\"\");\r\n\r\n /** @var {} */\r\n const [formUserFormalsStatus, setFormUserFormalsStatus] = useState(false);\r\n const [formUserRegulations, setFormUserRegulations] = useState<[] | boolean>([]);\r\n /** @var {} */\r\n const [formUserRegulationsAcceptedStatus, setFormUserRegulationsAcceptedStatus] = useState(false);\r\n /** @var {} */\r\n const [formUserPrivacyAcceptedStatus, setFormUserPrivacyAcceptedStatus] = useState(false);\r\n /** @var {} */\r\n const [formUserFormalsAcceptationDate, setFormUserFormalsAcceptationDate] = useState(null);\r\n\r\n /** @var {} */\r\n const [formUserSMSCode, setFormUserSMSCode] = useState(\"\");\r\n const [formUserSMSCodeNumber, setFormUserSMSCodeNumber] = useState(1);\r\n /** @var {} */\r\n const [formUserSMSCodeValidTime, setFormUserSMSCodeValidTime] = useState(0);\r\n\r\n /** @var {} */\r\n const [registerFormSubmitSuccessStatus, setRegisterFormSubmitSuccessStatus] = useState(false)\r\n\r\n\r\n /**\r\n * @Hooks - Did Mount (after first Render)\r\n * Set Active Register form Step\r\n */\r\n useEffect(() => {\r\n let registerFormStep: REGISTER_FORM_STEP_TYPE = 1;\r\n if (formUserGeneratedID && !!formUserIdNumber) registerFormStep = 2;\r\n if (formUserFormalsStatus) registerFormStep = 3;\r\n if (formUserFormalsAcceptationDate && !!formUserSMSCodeValidTime) registerFormStep = 4;\r\n setRegisterFormStep(registerFormStep);\r\n return () => {\r\n\r\n };\r\n }, []);\r\n\r\n\r\n /**\r\n *\r\n * @param e\r\n */\r\n const changeFormUserIdNumberHandler = (e: React.ChangeEvent): void => {\r\n if (registerFormStep !== 1) return; // if step != 1 do nothing\r\n /** @var {} */\r\n const userIdNumber: string = e.target.value;\r\n if (validatePeselNumber(userIdNumber)) setRegisterFormErrors({...registerFormErrors, formUserIdNumber: null});\r\n setFormUserIdNumber(userIdNumber); // update Register Form User ID Number\r\n };\r\n\r\n const changeFormUserFirstName = (e: React.ChangeEvent): void => {\r\n if (registerFormStep !== 1) return; // if step != 1 do nothing\r\n /** @var {} */\r\n const userFirstName: string = e.target.value;\r\n if (userFirstName.length > 2) setRegisterFormErrors({...registerFormErrors, formUserFirstName: null});\r\n setFormUserFirstName(userFirstName); // update Register Form User First Name\r\n };\r\n\r\n const changeFormUserLastName = (e: React.ChangeEvent): void => {\r\n if (registerFormStep !== 1) return; // if step != 1 do nothing\r\n const userLastName: string = e.target.value;\r\n if (userLastName.length > 2) setRegisterFormErrors({...registerFormErrors, formUserLastName: null});\r\n setFormUserLastName(userLastName); // update Register Form User Last Name\r\n };\r\n\r\n const changeFormUserPassword = (e: React.ChangeEvent): void => {\r\n if (registerFormStep !== 2) return;\r\n const userPassword = e.target.value;\r\n if (validateUserPassword(userPassword)) setRegisterFormErrors({...registerFormErrors, formUserPassword: null});\r\n setFormUserPassword(userPassword);\r\n };\r\n\r\n const changeFormUserPasswordRepeat = (e: React.ChangeEvent): void => {\r\n if (registerFormStep !== 2) return;\r\n const userPasswordRepeat = e.target.value;\r\n if (userPasswordRepeat === formUserPassword) setRegisterFormErrors({...registerFormErrors, formUserPasswordRepeat: null});\r\n setFormUserPasswordRepeat(userPasswordRepeat);\r\n };\r\n\r\n const changeFormUserPIN = (e: React.ChangeEvent): void => {\r\n if (registerFormStep !== 2) return;\r\n const userPIN = e.target.value;\r\n if (userPIN.length > 4) return;\r\n if (userPIN.length === 4 && !isNaN(+formUserPIN)) setRegisterFormErrors({...registerFormErrors, formUserPIN: null});\r\n setFormUserPIN(userPIN);\r\n };\r\n\r\n const changeFormUserPhoneNumber = (e: React.ChangeEvent): void => {\r\n if (registerFormStep !== 2) return;\r\n const userPhoneNumber = e.target.value;\r\n if (validator.isMobilePhone(userPhoneNumber, [\"pl-PL\"])) setRegisterFormErrors({...registerFormErrors, formUserPhoneNumber: null});\r\n setFormUserPhoneNumber(userPhoneNumber);\r\n };\r\n\r\n const changeFormUserSMSCode = (e: React.ChangeEvent | string): void => {\r\n if (registerFormStep !== 4) return;\r\n const userSMSCode = typeof e === \"string\" ? e : e.target.value;\r\n if (userSMSCode.length > 6) return;\r\n if (userSMSCode.length === 6) setRegisterFormErrors({...registerFormErrors, formUserSMSCode: null});\r\n setFormUserSMSCode(userSMSCode);\r\n };\r\n\r\n\r\n const [enterKeyPressCount, setEnterKeyPressCount] = useState(0);\r\n\r\n useEffect(() => {\r\n let n = 0;\r\n const HANDLER = (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\") setEnterKeyPressCount(++n);\r\n }\r\n document.addEventListener(\"keydown\", HANDLER);\r\n return () => document.removeEventListener(\"keydown\", HANDLER);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (enterKeyPressCount === 0) return;\r\n let newRegisterFormStep = registerFormStep;\r\n if (registerFormStep === 1) newRegisterFormStep = 2;\r\n if (registerFormStep === 2) newRegisterFormStep = 3;\r\n if (registerFormStep === 3) newRegisterFormStep = 4;\r\n if (registerFormStep === 4) newRegisterFormStep = 5;\r\n changeRegisterFormStep(newRegisterFormStep);\r\n }, [enterKeyPressCount]);\r\n\r\n\r\n const REGISTER_FORM_REQUEST_HANDLER = async (finalStep: boolean = false): Promise => {\r\n\r\n if (!REST_API_URL) return null;\r\n\r\n let REGISTER_FORM_STEP_URL: string = `${REST_API_URL}/User`;\r\n let REGISTER_FORM_STEP_DATA: string = \"\";\r\n\r\n switch (registerFormStep) {\r\n case 1:\r\n REGISTER_FORM_STEP_URL += \"/Registration/Initialization\";\r\n REGISTER_FORM_STEP_DATA = JSON.stringify({\r\n pesel: formUserIdNumber, firstname: formUserFirstName, surname: formUserLastName\r\n });\r\n break;\r\n case 2:\r\n REGISTER_FORM_STEP_URL += \"/Registration/Step1\";\r\n REGISTER_FORM_STEP_DATA = JSON.stringify({\r\n OperationGUID: formUserOperationGuid,\r\n UserId: formUserGeneratedID,\r\n Password: btoa(formUserPassword), CardPIN: formUserPIN, Phone: formUserPhoneNumber\r\n });\r\n break;\r\n case 3:\r\n REGISTER_FORM_STEP_URL += \"/Registration/Step2\";\r\n REGISTER_FORM_STEP_DATA = JSON.stringify({\r\n OperationGUID: formUserOperationGuid,\r\n UserId: formUserGeneratedID,\r\n RegulationsAcceptDate: new Date()\r\n });\r\n break;\r\n case 4:\r\n REGISTER_FORM_STEP_URL += finalStep ? \"/Registration/Finalization\" : \"/GenerateVerificationCode\";\r\n if (finalStep) {\r\n REGISTER_FORM_STEP_DATA = JSON.stringify({\r\n OperationGUID: formUserOperationGuid,\r\n UserId: formUserGeneratedID,\r\n VerificationCode: formUserSMSCode\r\n });\r\n } else {\r\n REGISTER_FORM_STEP_DATA = JSON.stringify({\r\n OperationGUID: formUserOperationGuid,\r\n UserId: formUserGeneratedID\r\n });\r\n }\r\n break;\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const RESPONSE = await fetch(\r\n REGISTER_FORM_STEP_URL, {\r\n method: \"POST\",\r\n headers: {\"Content-Type\": \"application/json\"},\r\n body: REGISTER_FORM_STEP_DATA\r\n }\r\n );\r\n\r\n const CONTENT = RESPONSE.status !== 204 ? await RESPONSE.json() : null;\r\n\r\n if (RESPONSE.status !== 200 && RESPONSE.status !== 204) {\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n if (RESPONSE.status === 409) {\r\n return {error: true, code: registerFormStep, message: CONTENT?.UserMessage};\r\n } else {\r\n return {error: true, code: 500, message: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"};\r\n }\r\n }\r\n\r\n switch (registerFormStep) {\r\n case 1:\r\n registerFormStep1ResponseHandler(CONTENT);\r\n break;\r\n case 2:\r\n registerFormStep2ResponseHandler(CONTENT);\r\n break;\r\n case 3:\r\n registerFormStep3ResponseHandler(CONTENT);\r\n break;\r\n case 4:\r\n if (finalStep) {\r\n registerFormStep4ResponseHandler();\r\n } else {\r\n DISPATCHER(CHANGE_API_REQUEST_TOKEN_ACTION(\r\n prepareRestApiRequestToken(RESPONSE.headers)\r\n ));\r\n registerFormStep3ResponseHandler(CONTENT);\r\n }\r\n break;\r\n }\r\n\r\n } catch (e) {\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n return {error: true, code: 500, message: \"Błąd połączenia z serwisem - skontaktuj się z CDOK\"};\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n return {success: true, data: {}};\r\n\r\n };\r\n\r\n\r\n const validateRegisterFormStep1 = (): boolean => {\r\n\r\n const formErrors: RegisterFormErrorsInterface = {};\r\n\r\n // if (!validatePeselNumber(formUserIdNumber)) formErrors.formUserIdNumber = \"Niepoprawny numer pesel\";\r\n if (formUserFirstName.length < 3) formErrors.formUserFirstName = \"Podane Imię jest zbyt krótkie\";\r\n if (formUserLastName.length < 3) formErrors.formUserLastName = \"Podane Nazwisko jest zbyt krótkie\";\r\n\r\n setRegisterFormErrors(formErrors);\r\n\r\n return !Object.entries(formErrors).length;\r\n\r\n }\r\n\r\n const registerFormStep1ResponseHandler = (content: any): void => {\r\n\r\n const {\r\n OperationGUID: operationGUID,\r\n UserId: generatedUserId,\r\n Login: generatedUserLogin,\r\n PasswordRequirments: generatedUserPasswordRequirements\r\n } = content;\r\n\r\n setFormUserOperationGuid(operationGUID);\r\n setFormUserGeneratedID(generatedUserId);\r\n setFormUserGeneratedLogin(generatedUserLogin);\r\n setFormUserGeneratedPasswordRequirements(generatedUserPasswordRequirements);\r\n\r\n storeRegisterFormData({\r\n formUserOperationGuid: operationGUID,\r\n formUserGeneratedID: generatedUserId,\r\n formUserGeneratedLogin: generatedUserLogin,\r\n formUserGeneratedPasswordRequirements: generatedUserPasswordRequirements\r\n });\r\n\r\n };\r\n\r\n\r\n const validateRegisterFormStep2 = (): boolean => {\r\n\r\n const formErrors: RegisterFormErrorsInterface = {};\r\n\r\n if (!validateUserPassword(formUserPassword)) formErrors.formUserPassword = \"Podane Hasło jest nieprawidłowe\";\r\n if (formUserPasswordRepeat !== formUserPassword) formErrors.formUserPasswordRepeat = \"Podane Hasła różnią się\";\r\n // if (formUserPIN.length !== 4 || isNaN(+formUserPIN)) formErrors.formUserPIN = \"Podany PIN ma nieprawidłowy format\";\r\n // if (!validator.isMobilePhone(formUserPhoneNumber, [\"pl-PL\"])) formErrors.formUserPhoneNumber = \"Podane Numer Telefonu jest nieprawidłowy\";\r\n if (formUserPhoneNumber.length < 9) formErrors.formUserPhoneNumber = \"Podane Numer Telefonu jest nieprawidłowy\";\r\n\r\n setRegisterFormErrors(formErrors);\r\n\r\n return !Object.entries(formErrors).length;\r\n\r\n }\r\n\r\n\r\n const registerFormStep2ResponseHandler = (CONTENT: any): void => {\r\n storeRegisterFormData({formUserFormalsStatus: true, formUserRegulations: CONTENT.Regulations});\r\n setFormUserFormalsStatus(true);\r\n setFormUserRegulations(CONTENT.Regulations?.length ? CONTENT.Regulations : false);\r\n };\r\n\r\n\r\n const validateRegisterFormStep3 = (): boolean => {\r\n\r\n const formErrors: RegisterFormErrorsInterface = {};\r\n\r\n if (!formUserRegulationsAcceptedStatus) formErrors.formUserRegulations = \"Akceptacja Regulaminów jest obowiązkowa\";\r\n\r\n setRegisterFormErrors(formErrors);\r\n\r\n return !Object.entries(formErrors).length;\r\n\r\n };\r\n\r\n\r\n const registerFormStep3ResponseHandler = (content: any): void => {\r\n const {\r\n VerificationCodeNo: codeNo,\r\n VerificationCodeValidDate: smsCodeValidDate\r\n } = content;\r\n const smsCodeValidDateTime = new Date(smsCodeValidDate);\r\n const smsCodeValidLeftTime = smsCodeValidDateTime.getTime() - (new Date()).getTime();\r\n storeRegisterFormData({formUserFormalsAcceptationDate: new Date()});\r\n setFormUserFormalsAcceptationDate(new Date());\r\n setFormUserSMSCodeValidTime(Math.floor(smsCodeValidLeftTime / 1000));\r\n setFormUserSMSCodeNumber(+codeNo || 1);\r\n };\r\n\r\n\r\n const validateRegisterFormStep4 = (): boolean => {\r\n\r\n const formErrors: RegisterFormErrorsInterface = {};\r\n\r\n // if (formUserSMSCode.length !== 6 || isNaN(+formUserSMSCode)) formErrors.formUserSMSCode = \"Kod jest nieprawidłowy\";\r\n\r\n setRegisterFormErrors(formErrors);\r\n\r\n return !Object.entries(formErrors).length;\r\n\r\n };\r\n\r\n const registerFormStep4ResponseHandler = (): void => {\r\n\r\n localStorage.removeItem(`${APP_NAME}_REGISTER_FORM_DATA`);\r\n\r\n DISPATCHER(LOG_USER_IN_ACTION({\r\n userID: formUserGeneratedID,\r\n userLogin: formUserGeneratedLogin,\r\n userFirstName: formUserFirstName,\r\n userLastName: formUserLastName,\r\n userLoginTime: new Date(),\r\n userLastActivityTime: new Date()\r\n }));\r\n\r\n };\r\n\r\n\r\n\r\n const changeRegisterFormStep = async (step: REGISTER_FORM_STEP_TYPE, finalStep: boolean = false): Promise => {\r\n\r\n let formError: boolean = false;\r\n\r\n switch (registerFormStep) {\r\n case 1: formError = !validateRegisterFormStep1(); break;\r\n case 2: formError = !validateRegisterFormStep2(); break;\r\n case 3: formError = !validateRegisterFormStep3(); break;\r\n case 4: if (finalStep) formError = !validateRegisterFormStep4(); break;\r\n default: return null;\r\n }\r\n\r\n if (formError) return null;\r\n\r\n const stepResponse = await REGISTER_FORM_REQUEST_HANDLER(finalStep);\r\n\r\n if (!stepResponse || stepResponse?.error) {\r\n setRegisterFormErrors({...registerFormErrors, registrationProcess: stepResponse?.message});\r\n return null;\r\n }\r\n\r\n setRegisterFormStep(step);\r\n\r\n return true;\r\n\r\n };\r\n\r\n\r\n const storeRegisterFormData = (updatedFields?: RegisterFormFieldsInterface) => {\r\n\r\n // const REGISTER_FORM_DATA = {\r\n // formUserIdNumber, formUserFirstName, formUserLastName,\r\n // formUserOperationGuid, formUserGeneratedID, formUserGeneratedLogin, formUserGeneratedPasswordRequirements,\r\n // formUserPIN, formUserPhoneNumber,\r\n // formUserFormalsStatus, formUserRegulationsAcceptedStatus, formUserPrivacyAcceptedStatus, formUserFormalsAcceptationDate\r\n // };\r\n\r\n // const STORE_FORM_DATA = {...REGISTER_FORM_DATA, ...updatedFields};\r\n // localStorage.setItem(`${APP_NAME}_REGISTER_FORM_DATA`, JSON.stringify(STORE_FORM_DATA));\r\n\r\n };\r\n\r\n\r\n const resetRegisterFormHandler = () => {\r\n\r\n setFormUserIdNumber(\"\");\r\n setFormUserFirstName(\"\");\r\n setFormUserLastName(\"\");\r\n\r\n setFormUserGeneratedID(\"\");\r\n setFormUserGeneratedLogin(\"\");\r\n setFormUserGeneratedPasswordRequirements([]);\r\n\r\n setFormUserPassword(\"\");\r\n setFormUserPasswordRepeat(\"\");\r\n setFormUserPIN(\"\");\r\n setFormUserPhoneNumber(\"\");\r\n\r\n setFormUserFormalsStatus(false);\r\n setFormUserFormalsAcceptationDate(null);\r\n setFormUserRegulationsAcceptedStatus(false);\r\n setFormUserPrivacyAcceptedStatus(false);\r\n\r\n setFormUserSMSCode(\"\");\r\n setFormUserSMSCodeValidTime(0);\r\n\r\n setRegisterFormStep(1);\r\n setRegisterFormErrors({});\r\n\r\n localStorage.removeItem(`${APP_NAME}_REGISTER_FORM_DATA`);\r\n\r\n };\r\n\r\n\r\n useEffect(() => {\r\n return () => resetRegisterFormHandler();\r\n }, []);\r\n\r\n\r\n if (LOGGED_USER && LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (registerFormStep === 5) return null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n {`SAMER®TAS eKiosk - Rejestracja`}\r\n \r\n\r\n \r\n\r\n \r\n {`eKiosk - Aplikacja dla Kierowcy`}\r\n \r\n\r\n \r\n\r\n {formUserRegulations === false ?\r\n\r\n \r\n\r\n :\r\n\r\n \r\n\r\n }\r\n\r\n \r\n )\r\n\r\n};\r\n\r\n\r\nexport default RegisterPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype FormFieldInfoLinkComponentProps = {\r\n linkLabel?: string;\r\n linkURL: string;\r\n linkText: string;\r\n};\r\n\r\n\r\nexport const FormFieldInfoLinkComponent: React.FC = ({\r\n linkLabel = \"\", linkURL, linkText\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!linkURL || !linkText) return null;\r\n\r\n\r\n return (\r\n \r\n \r\n {linkText}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FormFieldInfoLinkComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useRef} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Row, Col, Form} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport FormFieldInfoLinkComponent from \"@Components/UI/Forms/Field/InfoLink\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\nimport FormSwitchPageComponent from \"@Components/UI/Forms/SwitchPage\";\r\n\r\n\r\nimport {LoginFormErrorsInterface} from \"@UIPages/NotAuthenticated/Login\";\r\n\r\n\r\ntype LoginFormComponentProps = {\r\n loginFormErrors: LoginFormErrorsInterface;\r\n formUserLogin: string; formUserLoginHandler(e: React.ChangeEvent): void;\r\n formUserPassword: string; formUserPasswordHandler(e: React.ChangeEvent): void;\r\n loginFormSubmitHandler(): void\r\n};\r\n\r\n\r\nexport const LoginFormComponent: React.FC = ({\r\n loginFormErrors, loginFormSubmitHandler,\r\n formUserLogin, formUserLoginHandler,\r\n formUserPassword, formUserPasswordHandler\r\n}): JSX.Element | null => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const REGISTER_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.REGISTER.URL;\r\n const PASSWORD_RESET_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.PASSWORD_RESET.URL;\r\n\r\n\r\n return (\r\n \r\n e.preventDefault()}>\r\n\r\n \r\n\r\n \r\n\r\n formUserLoginHandler(e)}\r\n fieldType={\"text\"} fieldLabel={`Użytkownik`} fieldControlID={`login-form-user-login`}\r\n fieldPlaceholder={\" \"}\r\n fieldDisabledStatus={!!REST_API_REQUEST_STATUS}\r\n fieldError={loginFormErrors?.formUserLogin}\r\n autoComplete={\"on\"}\r\n />\r\n\r\n formUserPasswordHandler(e)}\r\n fieldType={\"password\"} fieldLabel={`Hasło`} fieldControlID={`login-form-user-password`}\r\n fieldDisabledStatus={!!REST_API_REQUEST_STATUS}\r\n fieldError={loginFormErrors?.formUserPassword}\r\n autoComplete={\"on\"}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n loginFormSubmitHandler()}\r\n controlId={`login-form-submit`}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n cssClasses={`login-form-submit`}\r\n />\r\n\r\n \r\n\r\n <>\r\n {!!loginFormErrors?.loginProcess &&\r\n \r\n }\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default LoginFormComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nexport const prepareApiRequestMethod = (method: \"POST\" | \"DELETE\" | \"PUT\" = \"POST\"): string => {\r\n\r\n return method;\r\n\r\n};\r\n\r\n\r\nexport default prepareApiRequestMethod;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\n\r\nexport const prepareApiRequestHeaders = (AUTH_TOKEN: AUTHORIZATION_TOKEN_INTERFACE | null = null): HeadersInit => {\r\n\r\n\r\n const REQUEST_HEADERS: HeadersInit = new Headers();\r\n\r\n for (let [headerName, headerValue] of Object.entries(DEFAULT_REQUEST_HEADERS)) {\r\n REQUEST_HEADERS.append(headerName, headerValue);\r\n }\r\n\r\n if (AUTH_TOKEN?.tokenValue) {\r\n REQUEST_HEADERS.append(\"Authorization\", AUTH_TOKEN?.tokenValue);\r\n }\r\n\r\n return REQUEST_HEADERS;\r\n\r\n};\r\n\r\n\r\nexport default prepareApiRequestHeaders;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nexport const prepareApiRequestBody = (data: any): string => {\r\n\r\n return JSON.stringify(data);\r\n\r\n};\r\n\r\n\r\nexport default prepareApiRequestBody;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport ApplicationStore from \"@Store\";\r\n\r\n\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\n\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\n\r\nimport prepareApiRequestMethod from \"@Services/Utilities/Requests/Method/Prepare\";\r\nimport prepareApiRequestHeaders from \"@Services/Utilities/Requests/Headers/Prepare\";\r\nimport prepareApiRequestBody from \"@Services/Utilities/Requests/Body/Prepare\";\r\n\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\nimport REQUEST_METHODS_TYPE from \"@Services/Interfaces/Http/Request/Methods\";\r\n\r\n\r\nexport const REST_API_REQUEST = async (\r\n URL: string,\r\n DATA: any,\r\n TOKEN: AUTHORIZATION_TOKEN_INTERFACE | null = null,\r\n METHOD: REQUEST_METHODS_TYPE = \"POST\"\r\n): Promise => {\r\n\r\n let RESPONSE;\r\n\r\n const REQUEST_METHOD: string = prepareApiRequestMethod(METHOD)\r\n const REQUEST_HEADERS: HeadersInit = prepareApiRequestHeaders(TOKEN);\r\n const REQUEST_BODY: string = prepareApiRequestBody(DATA);\r\n\r\n await ApplicationStore.dispatch(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n RESPONSE = await fetch(URL, {\r\n method: REQUEST_METHOD,\r\n headers: REQUEST_HEADERS,\r\n body: REQUEST_BODY\r\n });\r\n\r\n ApplicationStore.dispatch(CHANGE_API_REQUEST_TOKEN_ACTION(\r\n prepareRestApiRequestToken(RESPONSE.headers)\r\n ));\r\n\r\n } catch (e) {\r\n\r\n const RESPONSE_BODY = new FormData();\r\n RESPONSE_BODY.append(\"UserMessage\", \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\");\r\n\r\n RESPONSE = new Response(\r\n RESPONSE_BODY,\r\n {status: 400, statusText: String(e)}\r\n );\r\n\r\n }\r\n\r\n await ApplicationStore.dispatch(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n return RESPONSE;\r\n\r\n};\r\n\r\n\r\nexport default REST_API_REQUEST;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport USER_DATA_RESPONSE_INTERFACE from \"@Services/Application/Responses/User/Data\";\r\n\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\nimport USER_INTERFACE from \"@Services/Application/Interfaces/Users/User\";\r\n\r\n\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\nexport const GET_USER_DATA_API_REQUEST = async (\r\n USER_ID: string,\r\n USER_REST_API_URL: string,\r\n REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE | null = null\r\n): Promise => {\r\n\r\n\r\n if (!USER_ID || !REQUEST_TOKEN || !USER_REST_API_URL) {\r\n return {\r\n ERROR: {\r\n CODE: 400,\r\n MESSAGE: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"\r\n }\r\n };\r\n }\r\n\r\n\r\n const USER_REQUEST_DATA = {UserId: USER_ID, ContentType: \"G\"};\r\n\r\n try {\r\n\r\n const USER_DATA_RESPONSE = await REST_API_REQUEST(\r\n USER_REST_API_URL, USER_REQUEST_DATA, REQUEST_TOKEN\r\n );\r\n\r\n if (USER_DATA_RESPONSE.status === 200) {\r\n\r\n const USER_RESPONSE_CONTENT: USER_INTERFACE = await USER_DATA_RESPONSE.json();\r\n\r\n return {\r\n USER: USER_RESPONSE_CONTENT,\r\n TOKEN: prepareRestApiRequestToken(USER_DATA_RESPONSE.headers)\r\n };\r\n\r\n } else {\r\n\r\n const ERROR_RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await USER_DATA_RESPONSE.json();\r\n\r\n return {\r\n ERROR: {\r\n CODE: USER_DATA_RESPONSE.status,\r\n MESSAGE: ERROR_RESPONSE_CONTENT.UserMessage\r\n }\r\n }\r\n\r\n }\r\n\r\n } catch (e) {\r\n return {\r\n ERROR: {\r\n CODE: 599,\r\n MESSAGE: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"\r\n }\r\n }\r\n }\r\n\r\n};\r\n\r\n\r\nexport default GET_USER_DATA_API_REQUEST;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n/** Import ENVIRONMENTAL VARIABLES */\r\nimport ENV from \"react-dotenv\";\r\n\r\n/** Import Main React Library Object, with Hooks */\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\n/** Import Redux Hook - Dispatcher for Actions on Global State Store Object */\r\nimport {useDispatch} from \"react-redux\";\r\n/** Import Redux Hook - Getter for Data from Application State Store Object */\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n/** Import REST API Request Status Action - Change Global Rest API Request Status */\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n/** Import User Login Action - Login User in Global State Store */\r\nimport {LOG_USER_IN_ACTION} from \"@Actions/Authentication\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\n/** Import API Context - REST API Endpoints URLS */\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\n/** Import Helmet Module - Managing Head of the document (like title, etc...) */\r\nimport {Helmet} from \"react-helmet\";\r\n\r\n\r\n/** Import Router Modules - Application Routing System */\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\n/** Import Component Grid Components */\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\"; // Main Content Block\r\n\r\n\r\n/** Import Component Children Components */\r\nimport LoginFormComponent from \"@UIPages/NotAuthenticated/Login/Form\";\r\nimport ApplicationHeaderComponent from \"@UIParts/Header\";\r\nimport {Col} from \"react-bootstrap\";\r\nimport BlockContentPictureComponent from \"@Components/UI/Containers/Block/Picture\";\r\nimport GET_USER_DATA_API_REQUEST from \"@Services/Application/Requests/User/GetData\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\n\r\n\r\n\r\n/** @interface LoginFormFieldsInterface - Login Form Fields Types */\r\ninterface LoginFormFieldsInterface {\r\n formUserLogin: string; // User Login Value\r\n formUserPassword: string; // User Password Value\r\n}\r\n\r\n/** @const {LoginFormFieldsInterface} LoginFormFieldsDefaults - Login Form Fields Default Values */\r\nconst LoginFormFieldsDefaults: LoginFormFieldsInterface = {\r\n formUserLogin: \"\",\r\n formUserPassword: \"\"\r\n};\r\n\r\n/** @interface LoginFormErrorsInterface - Login Form Errors Types */\r\nexport interface LoginFormErrorsInterface {\r\n loginProcess?: string | null; // Process Error - API Response Error\r\n formUserLogin?: string | null; // Incorrect User Login Value Error\r\n formUserPassword?: string | null; // Incorrect Password Value Error\r\n}\r\n\r\n\r\n/** @type LoginPageComponentProps - Props List for Login Page Component */\r\ntype LoginPageComponentProps = {};\r\n\r\n\r\n/**\r\n * @visibleName User Login Page Component\r\n *\r\n * @return JSX.Element\r\n */\r\nexport const LoginPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const {UserInterface | null} LOGGED_USER - Application Global State Logged User Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const DISPATCHER Global State Store Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {string} REST_API_URL Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL;\r\n\r\n /* Get Default Values for Login Form Fields */\r\n const {\r\n formUserLogin: formUserLoginDefault,\r\n formUserPassword: formUserPasswordDefault\r\n } = LoginFormFieldsDefaults;\r\n\r\n /** const {LOGIN_FORM_ERRORS, SET_LOGIN_FORM_ERRORS} - State - Login Page Form Errors Object */\r\n const [LOGIN_FORM_ERRORS, SET_LOGIN_FORM_ERRORS] = useState({});\r\n\r\n /** const {string, function} - State - Login Page Form User Login Value */\r\n const [formUserLogin, setFormUserLogin] = useState(formUserLoginDefault);\r\n /** const {string, function} - State - Login Page Form User Password Value */\r\n const [formUserPassword, setFormUserPassword] = useState(formUserPasswordDefault);\r\n\r\n /* Login Page Form User Login Value Handler */\r\n const changeFormUserLogin = (e: React.ChangeEvent): void => {\r\n /** @const {string} userLogin - User Login Field Input Value */\r\n const userLogin: string = e.target.value;\r\n /* Check if userLogin length is Correct */\r\n if (userLogin.length > 5) SET_LOGIN_FORM_ERRORS({...LOGIN_FORM_ERRORS, formUserLogin: null}); // Remove User Login Field Error (if present)\r\n setFormUserLogin(userLogin); // Set User Login Field actual State Value\r\n };\r\n\r\n /* Login Page Form User Password Value Handler */\r\n const changeFormUserPassword = (e: React.ChangeEvent): void => {\r\n /** @const {string} userPassword - User Password Field Input Value */\r\n const userPassword: string = e.target.value;\r\n /* Check if userPassword length is Correct */\r\n if (userPassword.length > 7) SET_LOGIN_FORM_ERRORS({...LOGIN_FORM_ERRORS, formUserPassword: null}); // Remove User Password Field Error (if present)\r\n setFormUserPassword(userPassword); // Set User Password Field actual State Value\r\n };\r\n\r\n\r\n const [enterKeyPressCount, setEnterKeyPressCount] = useState(0);\r\n\r\n useEffect(() => {\r\n let n = 0;\r\n const HANDLER = (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\") setEnterKeyPressCount(++n);\r\n }\r\n document.addEventListener(\"keydown\", HANDLER);\r\n return () => document.removeEventListener(\"keydown\", HANDLER);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (enterKeyPressCount === 0) return;\r\n LOGIN_FORM_SUBMIT_HANDLER();\r\n }, [enterKeyPressCount]);\r\n\r\n\r\n /* Check if User is already Logged */\r\n if (LOGGED_USER && LOGGED_USER?.userID) return ; // User is Logged - Redirect to Home Page\r\n\r\n\r\n /**\r\n * @async LOGIN_FORM_SUBMIT_HANDLER\r\n *\r\n * HANDLE User Login Submit\r\n * CALL User Login Request\r\n *\r\n */\r\n const LOGIN_FORM_SUBMIT_HANDLER = async () => {\r\n\r\n /* Reset Login Form Errors */\r\n SET_LOGIN_FORM_ERRORS({}); // Remove All Previous Errors\r\n\r\n /** @const {formErrors} - Login Form Submit Errors Object */\r\n const formErrors: LoginFormErrorsInterface = {};\r\n\r\n /* Validate User Login Field Value - Before Request */\r\n if (formUserLogin.length < 6) formErrors.formUserLogin = \"Podany identyfikator jest zbyt krótki\"; // Set Login Field Error Message\r\n /* Validate User Password Field Value - Before Request */\r\n if (formUserPassword.length < 6) formErrors.formUserPassword = \"Podane hasło jest zbyt krótkie\"; // Set Login Field Error Message\r\n\r\n /* Set User Login Form Errors */\r\n SET_LOGIN_FORM_ERRORS(formErrors);\r\n\r\n /* Check if Login Form Errors Appeared */\r\n if (Object.entries(formErrors).length) return null; // Stop Form Submit Handling\r\n\r\n /* No Errors - Handle Login Request */\r\n await LOGIN_FORM_REQUEST_HANDLER();\r\n\r\n };\r\n\r\n\r\n const LOGIN_FORM_REQUEST_HANDLER = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n const _LOGIN_REQUEST_DATA = {UserLogin: formUserLogin, Password: btoa(formUserPassword)};\r\n\r\n try {\r\n\r\n const LOGIN_RESPONSE = await REST_API_REQUEST(`${REST_API_URL}/User/Login`, _LOGIN_REQUEST_DATA);\r\n\r\n if (LOGIN_RESPONSE.status === 200) {\r\n\r\n const LOGIN_RESPONSE_CONTENT: any = await LOGIN_RESPONSE.json();\r\n\r\n let TOKEN: AUTHORIZATION_TOKEN_INTERFACE | null = prepareRestApiRequestToken(LOGIN_RESPONSE.headers);\r\n\r\n const {UserId: USER_ID} = LOGIN_RESPONSE_CONTENT;\r\n\r\n const USER_RESPONSE = await GET_USER_DATA_API_REQUEST(USER_ID, `${REST_API_URL}/User/Get`, TOKEN);\r\n\r\n if (USER_RESPONSE?.USER) {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_TOKEN_ACTION(USER_RESPONSE.TOKEN));\r\n\r\n const USER = USER_RESPONSE?.USER?.Driver;\r\n\r\n const userLogin = USER ? USER_RESPONSE.USER.Login : \"\";\r\n const userFirstName = USER ? USER[0]?.Firstname : \"\";\r\n const userLastName = USER ? USER[0]?.Surname : \"\";\r\n\r\n DISPATCHER(LOG_USER_IN_ACTION({\r\n userID: USER_ID, userLogin,\r\n userFirstName: userFirstName || \"\",\r\n userLastName: userLastName || \"\",\r\n userLoginTime: new Date(), userLastActivityTime: new Date()\r\n }));\r\n\r\n } else {\r\n SET_LOGIN_FORM_ERRORS({...LOGIN_FORM_ERRORS, loginProcess: USER_RESPONSE.ERROR?.MESSAGE});\r\n }\r\n\r\n } else {\r\n const ERROR_RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await LOGIN_RESPONSE.json();\r\n SET_LOGIN_FORM_ERRORS({...LOGIN_FORM_ERRORS, loginProcess: ERROR_RESPONSE_CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_LOGIN_FORM_ERRORS({...LOGIN_FORM_ERRORS, loginProcess: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n {`${ENV?.APP_TITLE || \"eKiosk\"} - Logowanie`}\r\n \r\n\r\n \r\n\r\n \r\n {`eKiosk - Aplikacja dla Kierowcy`}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n )\r\n\r\n};\r\n\r\n\r\nexport default LoginPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\n\r\n\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport {PasswordResetFormStepType, PasswordResetErrorsInterface} from \"@UIPages/NotAuthenticated/PasswordReset\";\r\nimport {Col} from \"react-bootstrap\";\r\n\r\ntype PasswordResetFormStep1Props = {\r\n forwardRef?: React.ForwardedRef | null;\r\n passwordResetFormStep: PasswordResetFormStepType; passwordResetFormStepHandler(step: number, final?: boolean): void;\r\n passwordResetFormErrors: PasswordResetErrorsInterface;\r\n formUserLogin: string; formUserLoginHandler(e: React.ChangeEvent): void;\r\n formUserPIN: string; formUserPINHandler(e: React.ChangeEvent): void;\r\n};\r\n\r\n\r\nexport const PasswordResetFormStep1Component: React.FC = ({\r\n forwardRef = null,\r\n passwordResetFormStep, passwordResetFormStepHandler, passwordResetFormErrors,\r\n formUserLogin, formUserLoginHandler,\r\n formUserPIN,formUserPINHandler\r\n}): JSX.Element | null => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n formUserLoginHandler(e)}\r\n fieldType={\"text\"} fieldLabel={`Nazwa Użytkownika`} fieldControlID={`password-reset-form-user-login`}\r\n fieldDisabledStatus={passwordResetFormStep !== 1 || !!REST_API_REQUEST_STATUS}\r\n fieldError={passwordResetFormErrors?.formUserLogin}\r\n autoComplete={\"off\"}\r\n />\r\n\r\n formUserPINHandler(e)}\r\n fieldType={\"password\"} fieldLabel={`PIN do karty kierowcy`} fieldControlID={`password-reset-form-user-pin`}\r\n fieldDisabledStatus={passwordResetFormStep !== 1 || !!REST_API_REQUEST_STATUS}\r\n fieldError={passwordResetFormErrors?.formUserPIN}\r\n fieldLegend={\"Aktualny PIN, używany przez Ciebie na kiosku MM\"}\r\n />\r\n\r\n \r\n\r\n <>\r\n {passwordResetFormStep === 1 &&\r\n passwordResetFormStepHandler(2)}\r\n controlId={`password-reset-form-step1-submit`}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n cssClasses={`password-reset-form-step-submit`}\r\n />\r\n }\r\n \r\n\r\n \r\n\r\n );\r\n\r\n};\r\n\r\n\r\nexport default PasswordResetFormStep1Component;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState, useEffect} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport {PasswordResetFormStepType, PasswordResetErrorsInterface} from \"@UIPages/NotAuthenticated/PasswordReset\";\r\nimport {Col} from \"react-bootstrap\";\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\n\r\ntype PasswordResetFormStep2Props = {\r\n forwardRef?: React.ForwardedRef | null;\r\n passwordResetFormStep: PasswordResetFormStepType; passwordResetFormStepHandler(step: number, final?: boolean): void;\r\n passwordResetFormErrors: PasswordResetErrorsInterface;\r\n formUserSmsCode: string; formUserSmsCodeHandler(e: React.ChangeEvent | string): void; formUserSmsCodeValidDate: string;\r\n};\r\n\r\nexport const PasswordResetFormStep2Component: React.FC = ({\r\n forwardRef = null,\r\n passwordResetFormStep, passwordResetFormStepHandler, passwordResetFormErrors,\r\n formUserSmsCode, formUserSmsCodeHandler, formUserSmsCodeValidDate\r\n}): JSX.Element | null => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n const [formUserSmsCodeValidTime, setFormUserSmsCodeValidTime] = useState(0);\r\n const [activeCountDownTimeOut, setActiveCountDownTimeOut] = useState(null);\r\n\r\n useEffect(() => {\r\n const smsCodeValidDateTime = new Date(formUserSmsCodeValidDate);\r\n const smsCodeValidLeftTime = smsCodeValidDateTime.getTime() - (new Date()).getTime();\r\n if (!smsCodeValidLeftTime || smsCodeValidLeftTime < 0) return;\r\n if (activeCountDownTimeOut) window.clearTimeout(activeCountDownTimeOut);\r\n formUserSmsCodeHandler(\"\");\r\n setFormUserSmsCodeValidTime(Math.floor(smsCodeValidLeftTime / 1000));\r\n return () => setFormUserSmsCodeValidTime(0);\r\n }, [formUserSmsCodeValidDate]);\r\n\r\n useEffect(() => {\r\n if (formUserSmsCodeValidTime > 0) {\r\n const timeout = setTimeout(() => setFormUserSmsCodeValidTime(formUserSmsCodeValidTime - 1), 1000);;\r\n setActiveCountDownTimeOut(timeout);\r\n } else {\r\n window.clearTimeout(activeCountDownTimeOut);\r\n }\r\n }, [formUserSmsCodeValidTime]);\r\n\r\n\r\n const leftMinutes = Math.floor(formUserSmsCodeValidTime / 60) || 0\r\n const leftSeconds = formUserSmsCodeValidTime % 60 || 0;\r\n\r\n const formattedTime = `${(leftMinutes < 10 ? \"0\" : \"\" ) + leftMinutes.toString()}:${(leftSeconds < 10 ? \"0\" : \"\" ) + leftSeconds.toString()}`;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n formUserSmsCodeHandler(e)}\r\n fieldType={\"number\"} fieldLabel={`Podaj kod weryfikacyjny`} fieldControlID={`password-reset-form-user-sms-code`}\r\n fieldDisabledStatus={passwordResetFormStep !== 2 || !!REST_API_REQUEST_STATUS}\r\n fieldError={passwordResetFormErrors?.formUserSmsCode}\r\n fieldLegend={`Pozostały czas: ${formattedTime}`}\r\n />\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n <>\r\n {passwordResetFormStep === 2 &&\r\n passwordResetFormStepHandler(3)}\r\n controlId={`password-reset-form-step2-submit`}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n cssClasses={`password-reset-form-step-submit`}\r\n />\r\n }\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default PasswordResetFormStep2Component;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport {PasswordResetFormStepType, PasswordResetErrorsInterface} from \"@UIPages/NotAuthenticated/PasswordReset\";\r\n\r\n\r\ntype PasswordResetFormStep3Props = {\r\n forwardRef?: React.ForwardedRef | null;\r\n passwordResetFormStep: PasswordResetFormStepType; passwordResetFormStepHandler(step: number, final?: boolean): void;\r\n passwordResetFormErrors: PasswordResetErrorsInterface;\r\n formUserNewPassword: string; formUserNewPasswordHandler(e: React.ChangeEvent | string): void;\r\n formUserNewPasswordRepeat: string; formUserNewPasswordRepeatHandler(e: React.ChangeEvent | string): void;\r\n};\r\n\r\nexport const PasswordResetFormStep3Component: React.FC = ({\r\n forwardRef = null,\r\n passwordResetFormStep, passwordResetFormStepHandler, passwordResetFormErrors,\r\n formUserNewPassword, formUserNewPasswordHandler,\r\n formUserNewPasswordRepeat, formUserNewPasswordRepeatHandler\r\n}): JSX.Element | null => {\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n formUserNewPasswordHandler(e)}\r\n fieldType={\"password\"} fieldLabel={`Hasło`} fieldControlID={`register-form-user-password`}\r\n fieldDisabledStatus={passwordResetFormStep !== 3 || !!REST_API_REQUEST_STATUS}\r\n fieldError={passwordResetFormErrors?.formUserNewPassword}\r\n fieldLegend={`Hasło powinno składać się z minimum 8 znaków, oraz zawierać cyfrę, wielką literę i znak specjalny`}\r\n />\r\n\r\n formUserNewPasswordRepeatHandler(e)}\r\n fieldType={\"password\"} fieldLabel={`Powtórz Hasło`} fieldControlID={`register-form-user-password-repeat`}\r\n fieldDisabledStatus={passwordResetFormStep !== 3 || !!REST_API_REQUEST_STATUS}\r\n fieldError={passwordResetFormErrors?.formUserNewPasswordRepeat}\r\n />\r\n\r\n \r\n\r\n <>\r\n {passwordResetFormStep === 3 &&\r\n\t\t passwordResetFormStepHandler(4)}\r\n\t\t\t controlId={`password-reset-form-step2-submit`}\r\n\t\t\t disabled={!!REST_API_REQUEST_STATUS}\r\n\t\t\t cssClasses={`password-reset-form-step-submit`}\r\n\t\t />\r\n }\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default PasswordResetFormStep3Component;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useRef, useEffect, useContext} from \"react\";\r\n\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\nimport {Row, Col} from \"react-bootstrap\";\r\n\r\n\r\nimport scrollToDomElement from \"@Utilities/Animations/Scrolling\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport FormResetComponent from \"@Components/UI/Forms/Reset\";\r\nimport FormSwitchPageComponent from \"@Components/UI/Forms/SwitchPage\";\r\n\r\n\r\nimport PasswordResetFormStep1Component from \"@UIPages/NotAuthenticated/PasswordReset/Steps/Step1\";\r\nimport PasswordResetFormStep2Component from \"@UIPages/NotAuthenticated/PasswordReset/Steps/Step2\";\r\n\r\n\r\nimport {PasswordResetFormStepType, PasswordResetErrorsInterface} from \"@UIPages/NotAuthenticated/PasswordReset\";\r\nimport PasswordResetFormStep3Component from \"@UIPages/NotAuthenticated/PasswordReset/Steps/Step3\";\r\n\r\n\r\ntype PasswordResetFormStepsProps = {\r\n passwordResetFormStep: PasswordResetFormStepType; passwordResetFormStepHandler(step: number, final?: boolean): void;\r\n passwordResetFormErrors: PasswordResetErrorsInterface; formResetHandler(): void;\r\n formUserLogin: string; formUserLoginHandler(e: React.ChangeEvent): void;\r\n formUserPIN: string; formUserPINHandler(e: React.ChangeEvent): void;\r\n formUserSmsCode: string; formUserSmsCodeHandler(e: React.ChangeEvent | string): void; formUserSmsCodeValidDate: string;\r\n formUserNewPassword: string, formUserNewPasswordHandler(e: React.ChangeEvent): void;\r\n formUserNewPasswordRepeat: string; formUserNewPasswordRepeatHandler(e: React.ChangeEvent): void,\r\n};\r\n\r\n\r\nexport const PasswordResetStepsComponent: React.FC = ({\r\n passwordResetFormStep, passwordResetFormStepHandler,\r\n passwordResetFormErrors, formResetHandler,\r\n formUserLogin, formUserLoginHandler,\r\n formUserPIN, formUserPINHandler,\r\n formUserSmsCode, formUserSmsCodeHandler, formUserSmsCodeValidDate,\r\n formUserNewPassword, formUserNewPasswordHandler,\r\n formUserNewPasswordRepeat, formUserNewPasswordRepeatHandler\r\n}): JSX.Element | null => {\r\n\r\n\r\n const FIRST_STEP_CONTAINER_REF = useRef(null);\r\n const SECOND_STEP_CONTAINER_REF = useRef(null);\r\n const THIRD_STEP_CONTAINER_REF = useRef(null);\r\n\r\n\r\n useEffect(() => {\r\n let DOM_ELEMENT = null;\r\n if (passwordResetFormStep === 1) DOM_ELEMENT = FIRST_STEP_CONTAINER_REF;\r\n if (passwordResetFormStep === 2) DOM_ELEMENT = SECOND_STEP_CONTAINER_REF;\r\n if (passwordResetFormStep === 3) DOM_ELEMENT = THIRD_STEP_CONTAINER_REF;\r\n scrollToDomElement(DOM_ELEMENT, 100);\r\n return () => {};\r\n }, [passwordResetFormStep]);\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const REGISTER_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.REGISTER.URL;\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {passwordResetFormStep === 1 &&\r\n\t \r\n }\r\n\r\n {passwordResetFormStep === 2 &&\r\n \r\n }\r\n\r\n {passwordResetFormStep === 3 &&\r\n\t \r\n }\r\n\r\n {!!passwordResetFormErrors?.passwordResetProcess &&\r\n\t \r\n }\r\n\r\n {passwordResetFormStep > 1 &&\r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default PasswordResetStepsComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport {LOG_USER_IN_ACTION} from \"@Actions/Authentication\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Helmet} from \"react-helmet\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport {LoginFormErrorsInterface} from \"@UIPages/NotAuthenticated/Login\";\r\nimport ENV from \"react-dotenv\";\r\nimport validateUserPassword from \"@Utilities/Validators/Password\";\r\nimport PasswordResetStepsComponent from \"@UIPages/NotAuthenticated/PasswordReset/Steps\";\r\nimport internal from \"stream\";\r\nimport {REGISTER_FORM_STEP_TYPE} from \"@UIPages/NotAuthenticated/Register\";\r\nimport ApplicationHeaderComponent from \"@UIParts/Header\";\r\nimport {Col} from \"react-bootstrap\";\r\nimport BlockContentPictureComponent from \"@Components/UI/Containers/Block/Picture\";\r\nimport CHANGE_MODAL_MESSAGE_ACTION from \"@Actions/Interface/ChangeModalMessage\";\r\n\r\n\r\ninterface PasswordResetFormFieldsInterface {\r\n formUserLogin?: string;\r\n formUserPIN?: string;\r\n formUserOperationGuid?: string,\r\n formUserSmsCodeValidDate?: string,\r\n formUserSmsCode?: string;\r\n formUserId?: string;\r\n formUserNewPassword?: string;\r\n formUserNewPasswordRepeat?: string;\r\n}\r\n\r\nconst PasswordResetFormFields: PasswordResetFormFieldsInterface = {\r\n formUserLogin: \"\",\r\n formUserPIN: \"\",\r\n formUserOperationGuid: \"\",\r\n formUserSmsCodeValidDate: \"\",\r\n formUserSmsCode: \"\",\r\n formUserId: \"\",\r\n formUserNewPassword: \"\",\r\n formUserNewPasswordRepeat: \"\"\r\n};\r\n\r\nexport interface PasswordResetErrorsInterface {\r\n passwordResetProcess?: string | null;\r\n formUserLogin?: string | null;\r\n formUserPIN?: string | null;\r\n formUserSmsCode?: string | null;\r\n formUserNewPassword?: string | null;\r\n formUserNewPasswordRepeat?: string | null;\r\n}\r\n\r\n\r\nexport type PasswordResetFormStepType = 1 | 2 | 3 | 4;\r\n\r\n\r\ntype PasswordResetPageComponentProps = {};\r\n\r\n\r\nexport const PasswordResetPageComponent: React.FC = ({}): JSX.Element | null => {\r\n\r\n\r\n /** @type {UserInterface | null} Application Logged User (from Global Store Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @var {DISPATCHER} Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @var {REST_API_URL} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL;\r\n\r\n\r\n /** @var {APP_NAME} Application Name - Environment Variable */\r\n const {APP_NAME} = ENV || {};\r\n\r\n\r\n /** @var {STORED_PASSWORD_RESET_FORM_DATA} Stored in local storage Password Reset Form Data */\r\n const STORED_PASSWORD_RESET_FORM_DATA = localStorage.getItem(`${APP_NAME}_PASSWORD_RESET_FORM_DATA`);\r\n /** @var {PASSWORD_RESET_FORM_DATA} Parsed stored Password Reset Form Data */\r\n const PASSWORD_RESET_FORM_DATA = STORED_PASSWORD_RESET_FORM_DATA ? JSON.parse(STORED_PASSWORD_RESET_FORM_DATA) : PasswordResetFormFields;\r\n\r\n const {\r\n formUserLogin: formUserLoginDefault, formUserPIN: formUserPINDefault,\r\n formUserOperationGuid: formUserOperationGuidDefault, formUserSmsCodeValidDate: formUserSmsCodeValidDateDefault,\r\n formUserSmsCode: formUserSmsCodeDefault, formUserId: formUserIdDefault,\r\n formUserNewPassword: formUserNewPasswordDefault, formUserNewPasswordRepeat: formUserNewPasswordRepeatDefault\r\n } = PasswordResetFormFields;\r\n\r\n\r\n const [passwordResetSubmitSuccessStatus, setPasswordResetSubmitSuccessStatus] = useState(false);\r\n\r\n const [passwordResetFormErrors, setPasswordResetErrors] = useState({});\r\n const [passwordResetFormStep, setPasswordResetFormStep] = useState(1);\r\n\r\n const [formUserLogin, setFormUserLogin] = useState(\"\");\r\n const [formUserPIN, setFormUserPIN] = useState(\"\");\r\n\r\n const [formUserOperationGuid, setFormUserOperationGuid] = useState(\"\");\r\n const [formUserSmsCodeValidDate, setFormUserSmsCodeValidDate] = useState(\"\");\r\n const [formUserSmsCode, setFormUserSmsCode] = useState(\"\");\r\n\r\n const [formUserId, setFormUserId] = useState(\"\");\r\n\r\n const [formUserNewPassword, setFormUserNewPassword] = useState(\"\");\r\n const [formUserNewPasswordRepeat, setFormUserNewPasswordRepeat] = useState(\"\");\r\n\r\n\r\n /**\r\n * @Hooks - Did Mount (after first Render)\r\n * Set Active Register form Step\r\n */\r\n useEffect(() => {\r\n let passwordResetFormStep: PasswordResetFormStepType = 1;\r\n if (formUserOperationGuid) passwordResetFormStep = 2;\r\n if (formUserId) passwordResetFormStep = 3;\r\n setPasswordResetFormStep(passwordResetFormStep);\r\n }, []);\r\n\r\n\r\n const changeFormUserLogin = (e: React.ChangeEvent): void => {\r\n if (passwordResetFormStep !== 1) return; // if step != 1 do nothing\r\n /** @var {} */\r\n const userLogin: string = e.target.value;\r\n if (userLogin.length > 2) setPasswordResetErrors({...passwordResetFormErrors, formUserLogin: null});\r\n setFormUserLogin(userLogin);\r\n };\r\n\r\n const changeFormUserPIN = (e: React.ChangeEvent): void => {\r\n if (passwordResetFormStep !== 1) return;\r\n const userPIN = e.target.value;\r\n // if (userPIN.length > 4) return;\r\n // if (userPIN.length === 4 && !isNaN(+formUserPIN)) setPasswordResetErrors({...passwordResetFormErrors, formUserPIN: null});\r\n setFormUserPIN(userPIN);\r\n };\r\n\r\n const changeFormUserSmsCode = (e: React.ChangeEvent | string): void => {\r\n if (passwordResetFormStep !== 2) return;\r\n const userSMSCode = typeof e === \"string\" ? e : e.target.value;\r\n if (userSMSCode.length > 6) return;\r\n if (userSMSCode.length === 6) setPasswordResetErrors({...passwordResetFormErrors, formUserSmsCode: null});\r\n setFormUserSmsCode(userSMSCode);\r\n };\r\n\r\n const changeFormUserNewPassword = (e: React.ChangeEvent): void => {\r\n if (passwordResetFormStep !== 3) return;\r\n const userPassword = e.target.value;\r\n if (validateUserPassword(userPassword)) setPasswordResetErrors({...passwordResetFormErrors, formUserNewPassword: null});\r\n setFormUserNewPassword(userPassword);\r\n };\r\n\r\n const changeFormUserNewPasswordRepeat = (e: React.ChangeEvent): void => {\r\n if (passwordResetFormStep !== 3) return;\r\n const userPasswordRepeat = e.target.value;\r\n if (userPasswordRepeat === formUserNewPassword ) setPasswordResetErrors({...passwordResetFormErrors, formUserNewPasswordRepeat: null});\r\n setFormUserNewPasswordRepeat(userPasswordRepeat);\r\n };\r\n\r\n\r\n const storePasswordResetFormData = (updatedFields?: PasswordResetFormFieldsInterface) => {\r\n\r\n const PASSWORD_RESET_FORM_DATA = {\r\n formUserLogin, formUserPIN,\r\n formUserOperationGuid, formUserSmsCodeValidDate, formUserSmsCode,\r\n formUserId\r\n };\r\n\r\n const STORE_FORM_DATA = {...PASSWORD_RESET_FORM_DATA, ...updatedFields};\r\n localStorage.setItem(`${APP_NAME}_PASSWORD_RESET_FORM_DATA`, JSON.stringify(STORE_FORM_DATA));\r\n\r\n };\r\n\r\n\r\n const resetPasswordResetFormHandler = () => {\r\n\r\n setFormUserLogin(\"\");\r\n setFormUserPIN(\"\");\r\n\r\n setFormUserOperationGuid(\"\");\r\n setFormUserSmsCodeValidDate(\"\");\r\n setFormUserSmsCode(\"\");\r\n\r\n setFormUserId(\"\");\r\n\r\n setFormUserNewPassword(\"\");\r\n setFormUserNewPasswordRepeat(\"\");\r\n\r\n setPasswordResetErrors({});\r\n setPasswordResetFormStep(1);\r\n\r\n setPasswordResetSubmitSuccessStatus(false);\r\n\r\n localStorage.removeItem(`${APP_NAME}_PASSWORD_RESET_FORM_DATA`);\r\n\r\n };\r\n\r\n\r\n const [enterKeyPressCount, setEnterKeyPressCount] = useState(0);\r\n\r\n useEffect(() => {\r\n let n = 0;\r\n const HANDLER = (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\") setEnterKeyPressCount(++n);\r\n }\r\n document.addEventListener(\"keydown\", HANDLER);\r\n return () => document.removeEventListener(\"keydown\", HANDLER);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (enterKeyPressCount === 0) return;\r\n let newPasswordResetFormStep: PasswordResetFormStepType = passwordResetFormStep;\r\n if (passwordResetFormStep === 1) newPasswordResetFormStep = 2;\r\n if (passwordResetFormStep === 2) newPasswordResetFormStep = 3;\r\n if (passwordResetFormStep === 3) newPasswordResetFormStep = 4;\r\n changePasswordResetStepHandler(newPasswordResetFormStep);\r\n }, [enterKeyPressCount]);\r\n\r\n\r\n if (LOGGED_USER && LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (passwordResetFormStep > 3) return null;\r\n\r\n\r\n const changePasswordResetStepHandler = async (step: PasswordResetFormStepType): Promise => {\r\n\r\n let formError;\r\n\r\n switch (passwordResetFormStep) {\r\n case 1:\r\n formError = !validatePasswordResetFormStep1();\r\n break;\r\n case 2:\r\n formError = !validatePasswordResetFormStep2();\r\n break;\r\n case 3:\r\n formError = !validatePasswordResetFormStep3();\r\n break;\r\n default:\r\n formError = true;\r\n }\r\n\r\n if (formError) return null;\r\n\r\n const passwordResetRequestStatus = await passwordResetFormRequestHandler(step);\r\n\r\n if (!passwordResetRequestStatus) return null;\r\n\r\n setPasswordResetFormStep(step);\r\n\r\n };\r\n\r\n\r\n const validatePasswordResetFormStep1 = () => {\r\n\r\n const formErrors: PasswordResetErrorsInterface = {};\r\n\r\n //if (formUserLogin.length < 8) formErrors.formUserLogin = \"Nazwa użytkownika jest zbyt krótka\";\r\n // if (formUserPIN.length !== 4 || isNaN(+formUserPIN)) formErrors.formUserPIN = \"PIN ma nieprawidłowy format\";\r\n\r\n setPasswordResetErrors(formErrors);\r\n\r\n return !(Object.entries(formErrors).length > 0);\r\n\r\n };\r\n\r\n const validatePasswordResetFormStep2 = () => {\r\n\r\n const formErrors: PasswordResetErrorsInterface = {};\r\n\r\n // if (formUserSmsCode.length !== 6) formErrors.formUserSmsCode = \"Nieprawidłowy kod weryfikacyjny\";\r\n\r\n setPasswordResetErrors(formErrors);\r\n\r\n return !(Object.entries(formErrors).length > 0);\r\n\r\n };\r\n\r\n const validatePasswordResetFormStep3 = () => {\r\n\r\n const formErrors: PasswordResetErrorsInterface = {};\r\n\r\n if (!validateUserPassword(formUserNewPassword)) formErrors.formUserNewPassword = \"Podane hasło ma nieprawidłowy format\";\r\n if (formUserNewPasswordRepeat !== formUserNewPassword) formErrors.formUserNewPasswordRepeat = \"Podane hasła różnią się\";\r\n\r\n setPasswordResetErrors(formErrors);\r\n\r\n return !(Object.entries(formErrors).length > 0);\r\n\r\n };\r\n\r\n\r\n const passwordResetFormRequestHandler = async (step?: PasswordResetFormStepType): Promise => {\r\n\r\n if (!REST_API_URL) return false;\r\n\r\n let RESPONSE_STATUS: boolean = false;\r\n\r\n let PASSWORD_RESET_API_URL: string = `${REST_API_URL}/User`;\r\n let PASSWORD_RESET_FORM_DATA: string;\r\n\r\n switch (passwordResetFormStep) {\r\n case 1:\r\n PASSWORD_RESET_API_URL += \"/ResetPwd/Initialization\";\r\n PASSWORD_RESET_FORM_DATA = JSON.stringify({Login: formUserLogin, CardPIN: formUserPIN});\r\n break;\r\n case 2:\r\n PASSWORD_RESET_API_URL += \"/ResetPwd/Step1\";\r\n PASSWORD_RESET_FORM_DATA = JSON.stringify({Login: formUserLogin, OperationGUID: formUserOperationGuid, VerificationCode: formUserSmsCode});\r\n break;\r\n case 3:\r\n PASSWORD_RESET_API_URL += \"/ResetPwd/Finalization\";\r\n PASSWORD_RESET_FORM_DATA = JSON.stringify({UserId: formUserId, OperationGUID: formUserOperationGuid, Password: btoa(formUserNewPassword)});\r\n break;\r\n default:\r\n return false;\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const RESPONSE = await fetch(PASSWORD_RESET_API_URL, {\r\n method: \"POST\",\r\n headers: {\"Content-Type\": \"application/json\"},\r\n body: PASSWORD_RESET_FORM_DATA\r\n });\r\n\r\n const RESPONSE_CONTENT: any = RESPONSE.status === 204 ? null : await RESPONSE.json();\r\n\r\n if (RESPONSE.status === 200 || RESPONSE.status === 204) {\r\n\r\n switch (passwordResetFormStep) {\r\n case 1:\r\n passwordResetFormStep1ResponseHandler(RESPONSE_CONTENT);\r\n RESPONSE_STATUS = true;\r\n break;\r\n case 2:\r\n passwordResetFormStep2ResponseHandler(RESPONSE_CONTENT);\r\n RESPONSE_STATUS = true;\r\n break;\r\n case 3:\r\n RESPONSE_STATUS = true;\r\n passwordResetFormStep3ResponseHandler();\r\n break;\r\n default:\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n return false;\r\n }\r\n\r\n } else {\r\n setPasswordResetErrors({...passwordResetFormErrors, passwordResetProcess: RESPONSE_CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n setPasswordResetErrors({...passwordResetFormErrors, passwordResetProcess: \"Błąd połączenia z serwisem - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n return RESPONSE_STATUS;\r\n\r\n };\r\n\r\n\r\n const passwordResetFormStep1ResponseHandler = (response: any) => {\r\n\r\n const {OperationGUID: operationGuid, VerificationCodeValidDate: smsCodeValidDate} = response;\r\n\r\n setFormUserOperationGuid(operationGuid);\r\n setFormUserSmsCodeValidDate(smsCodeValidDate);\r\n\r\n storePasswordResetFormData({\r\n formUserOperationGuid: operationGuid, formUserSmsCodeValidDate: smsCodeValidDate\r\n });\r\n\r\n };\r\n\r\n\r\n const passwordResetFormStep2ResponseHandler = (response: any) => {\r\n\r\n const {UserId: userId} = response;\r\n\r\n setFormUserId(userId);\r\n\r\n storePasswordResetFormData({formUserId: userId});\r\n\r\n };\r\n\r\n\r\n const passwordResetFormStep3ResponseHandler = () => {\r\n\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(`Hasło zostało zmienione`, \"SUCCESS\"));\r\n\r\n setPasswordResetSubmitSuccessStatus(true);\r\n\r\n };\r\n\r\n\r\n if (passwordResetSubmitSuccessStatus === true) {\r\n return ;\r\n }\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n {`${ENV.APP_TITLE} - Resetowanie Hasła`}\r\n \r\n\r\n \r\n\r\n \r\n {`eKiosk - Aplikacja dla Kierowcy`}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n )\r\n\r\n};\r\n\r\n\r\nexport default PasswordResetPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\n/** Import Main React Library Object, with Hooks */\r\nimport React, {useContext} from \"react\";\r\n\r\n/** Import Redux Hook - Getter for Data from Application State Store Object */\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n/** Import Router Context - Routes URLs List */\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n/** Import Router Interface - Router Object Type */\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\n/** Import User Interface - Logged User Object Type */\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\n/** Import Router Modules - Application Routing System */\r\nimport {Redirect, Route, Switch} from \"react-router-dom\";\r\n\r\n\r\n/** Import Component Children Components */\r\nimport RegisterPageComponent from \"@UIPages/NotAuthenticated/Register\"; // Register Page Component\r\nimport LoginPageComponent from \"@UIPages/NotAuthenticated/Login\"; // Login Page Component\r\nimport PasswordResetPageComponent from \"@UIPages/NotAuthenticated/PasswordReset\"; // Password Reset Page Component\r\n\r\n\r\n/** @type NotAuthenticatedUserProps - Props List for Not Authenticated User Component */\r\ntype NotAuthenticatedUserProps = {};\r\n\r\n\r\n/**\r\n * @visibleName Not Authenticated User Component\r\n *\r\n * @return JSX.Element\r\n */\r\nexport const NotAuthenticatedUserComponent: React.FC = (): JSX.Element | null => {\r\n\r\n /** @const {UserInterface | null} LOGGED_USER - Application Global State Logged User Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {APPLICATION_ROUTER_INTERFACE} ROUTER - Application Global Routes List Object */\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n /* Check if User is Logged */\r\n if (!!LOGGED_USER && !!LOGGED_USER?.userID) return ; // User is Logged - Redirect to Home Page\r\n\r\n /* Check if Router Object present */\r\n if (!ROUTER) return ; // No Router Object - Redirect to 404 Page\r\n\r\n\r\n /** @const {string} HOME_PAGE_URL - Router Home Page URL Address */\r\n const HOME_PAGE_URL: string = ROUTER.AUTHENTICATED.HOME.URL;\r\n /** @const {string} HOME_PAGE_URL - Router Register Page URL Address */\r\n const REGISTER_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.REGISTER.URL;\r\n /** @const {string} HOME_PAGE_URL - Router Login Page URL Address */\r\n const LOGIN_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.LOGIN.URL;\r\n /** @const {string} HOME_PAGE_URL - Router Password Reset Page URL Address */\r\n const PASSWORD_RESET_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.PASSWORD_RESET.URL;\r\n\r\n\r\n /**\r\n * @description render Component Content\r\n * @return JSX.Element\r\n */\r\n return (\r\n // Not Authenticated User Pages Router\r\n \r\n {/* Register Page URL - exact URL */}\r\n \r\n // Register Page Component\r\n }\r\n />\r\n {/* Login Page URL - exact URL */}\r\n \r\n // Login Page Component\r\n }\r\n />\r\n {/* Password Reset Page URL - exact URL */}\r\n \r\n \r\n }\r\n />\r\n {/* Home Page URL - exact URL */}\r\n \r\n // Redirect to Login Page URL\r\n }\r\n />\r\n {/* No Match - Redirect to Login Page URL */}\r\n // Redirect to Login Page URL\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default NotAuthenticatedUserComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport notificationIcon from \"@Icons/notification.png\";\r\n\r\n\r\ntype ApplicationHeaderComponentProps = {\r\n USER_NOTIFICATIONS: any;\r\n};\r\n\r\n\r\nexport const ApplicationNotificationsComponent: React.FC = ({\r\n USER_NOTIFICATIONS = []\r\n}): JSX.Element | null => {\r\n\r\n\r\n return (\r\n \r\n \r\n {`Skrzynka\r\n {USER_NOTIFICATIONS.length}\r\n \r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default ApplicationNotificationsComponent;\r\n","export default \"data:image/png;base64,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\"","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Button, Col} from \"react-bootstrap\";\r\n\r\n\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nexport const SessionEndingExtendButtonComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [REFRESH_TOKEN_ERROR, SET_REFRESH_TOKEN_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_REFRESH_TOKEN_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n const REFRESH_TOKEN_REQUEST_HANDLER = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n const REFRESH_TOKEN_API_URL = `${REST_API_URL}/App/RefreshToken`;\r\n\r\n const REFRESH_TOKEN_REQUEST_DATA = {UserId: LOGGED_USER.userID};\r\n\r\n try {\r\n\r\n const REFRESH_TOKEN_RESPONSE = await REST_API_REQUEST(\r\n REFRESH_TOKEN_API_URL,\r\n REFRESH_TOKEN_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (REFRESH_TOKEN_RESPONSE.status === 204) {\r\n DISPATCHER(CHANGE_API_REQUEST_TOKEN_ACTION(\r\n prepareRestApiRequestToken(REFRESH_TOKEN_RESPONSE.headers)\r\n ));\r\n } else {\r\n const ERROR_RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await REFRESH_TOKEN_RESPONSE.json();\r\n SET_REFRESH_TOKEN_ERROR({ErrorCode: REFRESH_TOKEN_RESPONSE.status, UserMessage: ERROR_RESPONSE_CONTENT.UserMessage})\r\n }\r\n\r\n } catch (e) {\r\n SET_REFRESH_TOKEN_ERROR({ErrorCode: 599, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!REFRESH_TOKEN_ERROR &&\r\n \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SessionEndingExtendButtonComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nexport const SessionEndingHeaderTextComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n return (\r\n \r\n\r\n {`Za chwilę`} wylogujemy Cię
{`z Twojego konta`}
\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SessionEndingHeaderTextComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nexport const SessionEndingInformationTextComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n return (\r\n \r\n {`Aby pozostać w aplikacji eKiosk kliknij w poniższy przycisk`}\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SessionEndingInformationTextComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype SessionEndingLeftTime = {\r\n LEFT_SESSION_TIME: number\r\n};\r\n\r\n\r\nexport const SessionEndingLeftTimeComponent: React.FC = ({\r\n LEFT_SESSION_TIME = 0\r\n}): JSX.Element | null => {\r\n\r\n\r\n\r\n let leftSessionMinutes: number | string = Math.floor(LEFT_SESSION_TIME / 60);\r\n let leftSessionSeconds: number | string = Math.floor(LEFT_SESSION_TIME % 60);\r\n\r\n if (leftSessionMinutes < 10) {\r\n leftSessionMinutes = `0${leftSessionMinutes}`;\r\n }\r\n\r\n if (leftSessionSeconds < 10) {\r\n leftSessionSeconds = `0${leftSessionSeconds}`;\r\n }\r\n\r\n return (\r\n \r\n\r\n {leftSessionMinutes}\r\n {`:`}\r\n {leftSessionSeconds}\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SessionEndingLeftTimeComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Button, Col, Row} from \"react-bootstrap\";\r\nimport SessionEndingExtendButtonComponent from \"@Components/UI/Communicates/Session/Button\";\r\nimport SessionEndingHeaderTextComponent from \"@Components/UI/Communicates/Session/Header\";\r\nimport SessionEndingInformationTextComponent from \"@Components/UI/Communicates/Session/Information\";\r\nimport SessionEndingLeftTimeComponent from \"@Components/UI/Communicates/Session/LeftTime\";\r\n\r\n\r\ntype SessionEndingCommunicateProps = {\r\n LEFT_SESSION_TIME: number;\r\n};\r\n\r\n\r\nexport const SessionEndingCommunicateComponent: React.FC = ({\r\n LEFT_SESSION_TIME = 0\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!LEFT_SESSION_TIME) return null;\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SessionEndingCommunicateComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport BottomBarMenuItemType from \"@UIParts/BarBottom/_Interfaces/MenuElement\";\r\n\r\n\r\nexport const BottomBarElementComponent: React.FC = ({\r\n location,\r\n menuElementURL, menuElementText, menuElementTitle,\r\n menuElementIcon, menuElementActiveIcon, menuElementCssClass,\r\n menuElementExactStatus = false\r\n}): JSX.Element | null => {\r\n\r\n\r\n const elementActiveStatus =\r\n !menuElementExactStatus ? location.pathname.includes(menuElementURL) : location.pathname === menuElementURL\r\n ;\r\n\r\n\r\n return (\r\n
  • \r\n\r\n \r\n {menuElementTitle}\r\n {menuElementText}\r\n \r\n\r\n
  • \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BottomBarElementComponent;\r\n","export default \"data:image/png;base64,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\"","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport {LOG_USER_OUT_ACTION} from \"@Actions/Authentication\";\r\n\r\n\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport SessionEndingCommunicateComponent from \"@Components/UI/Communicates/Session\";\r\n\r\nimport BottomBarMenuInterface from \"@UIParts/BarBottom/_Interfaces/Menu\";\r\nimport BottomBarElementComponent from \"@UIParts/BarBottom/Element\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\n\r\nimport startMenuIcon from \"@Icons/Menu/start.png\";\r\nimport startMenuActiveIcon from \"@Icons/Menu/start_active.png\";\r\nimport dispositionsMenuIcon from \"@Icons/Menu/dispositions.png\";\r\nimport dispositionsMenuActiveIcon from \"@Icons/Menu/dispositions_active.png\";\r\nimport monitoryNotesMenuIcon from \"@Icons/Menu/monitory_notes.png\";\r\nimport monitoryNotesMenuActiveIcon from \"@Icons/Menu/monitory_notes_active.png\";\r\nimport terminalsMenuIcon from \"@Icons/Menu/terminals.png\";\r\nimport terminalsMenuActiveIcon from \"@Icons/Menu/terminals_active.png\";\r\nimport moreMenuIcon from \"@Icons/Menu/more.png\";\r\nimport moreMenuActiveIcon from \"@Icons/Menu/more_active.png\";\r\n\r\n\r\ntype BottomBarComponentProps = {location: any};\r\n\r\n\r\nexport const ApplicationBottomBarComponent: React.FC = ({location}): JSX.Element | null => {\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [SESSION_ACTIVE_TIME, SET_SESSION_ACTIVE_TIME] = useState(REST_API_REQUEST_TOKEN?.tokenValidTime || 0);\r\n const [SESSION_END_TIME, SET_SESSION_END_TIME] = useState(Date.now() + SESSION_ACTIVE_TIME * 1000);\r\n const [ACTIVE_SESSION_TIMEOUT, SET_ACTIVE_SESSION_TIMEOUT] = useState(null);\r\n\r\n useEffect(() => {\r\n if (SESSION_ACTIVE_TIME > 0) {\r\n if (ACTIVE_SESSION_TIMEOUT) window.clearTimeout(ACTIVE_SESSION_TIMEOUT);\r\n const COUNTDOWN = setTimeout(\r\n () => SET_SESSION_ACTIVE_TIME(Math.floor( (SESSION_END_TIME - Date.now())/1000 )), 1000\r\n );\r\n SET_ACTIVE_SESSION_TIMEOUT(COUNTDOWN);\r\n } else {\r\n DISPATCHER(LOG_USER_OUT_ACTION());\r\n }\r\n }, [SESSION_ACTIVE_TIME]);\r\n\r\n useEffect(() => {\r\n if (SESSION_ACTIVE_TIME === 0) return;\r\n SET_SESSION_ACTIVE_TIME(REST_API_REQUEST_TOKEN.tokenValidTime || 0);\r\n SET_SESSION_END_TIME(Date.now() + (REST_API_REQUEST_TOKEN.tokenValidTime || 0) * 1000);\r\n }, [REST_API_REQUEST_TOKEN?.tokenValue]);\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID || !ROUTER) return null;\r\n\r\n\r\n const HOME_PAGE_URL: string = ROUTER.AUTHENTICATED.HOME.URL;\r\n const MONITORY_NOTES_URL: string = ROUTER.AUTHENTICATED.MONITORY_NOTES.MONITORY_NOTES_LIST.URL;\r\n const DISPOSITIONS_URL: string = ROUTER.AUTHENTICATED.DISPOSITIONS.DISPOSITIONS_TERMINALS_LIST.URL;\r\n const PETROL_BASES_URL: string = ROUTER.AUTHENTICATED.PETROL_BASES.PETROL_BASES_LIST.URL;\r\n const SETTINGS_PAGE_URL: string = ROUTER.AUTHENTICATED.SETTINGS.MAIN_PAGE.URL;\r\n\r\n\r\n const BottomBarMenu:BottomBarMenuInterface = {\r\n startMenuElement: {menuElementURL: HOME_PAGE_URL || \"/\", menuElementText: \"Start\", menuElementTitle: \"Strona Główna\", menuElementIcon: startMenuIcon, menuElementActiveIcon: startMenuActiveIcon, menuElementExactStatus: true, location: location},\r\n dispositionsMenuElement: {menuElementURL: DISPOSITIONS_URL || \"/\", menuElementText: \"Dyspozycje\", menuElementTitle: \"Twoje Dyspozycje\", menuElementIcon: dispositionsMenuIcon, menuElementActiveIcon: dispositionsMenuActiveIcon, location: location},\r\n monitoryNotesElement: {menuElementURL: MONITORY_NOTES_URL || \"/\", menuElementText: \"Awizacje\", menuElementTitle: \"Twoje Awizacje\", menuElementIcon: monitoryNotesMenuIcon, menuElementActiveIcon: monitoryNotesMenuActiveIcon, location: location},\r\n terminalsElement: {menuElementURL: PETROL_BASES_URL || \"/\", menuElementText: \"Bazy Paliw\", menuElementTitle: \"Twoje Bazy Paliw\", menuElementIcon: terminalsMenuIcon, menuElementActiveIcon: terminalsMenuActiveIcon, location: location},\r\n moreOptionsElement: {menuElementURL: SETTINGS_PAGE_URL || \"/\", menuElementText: \"Więcej\", menuElementTitle: \"Więcej opcji\", menuElementIcon: moreMenuIcon, menuElementActiveIcon: moreMenuActiveIcon, location: location}\r\n };\r\n\r\n\r\n const BottomBarMenuElements = Object.values(BottomBarMenu).map((element) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n\r\n {SESSION_ACTIVE_TIME < 60 &&\r\n\t \r\n }\r\n\r\n \r\n {BottomBarMenuElements}\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default ApplicationBottomBarComponent;\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAACACAYAAADnCyxOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAIkSURBVHja7N1NboMwEEBhjDhDczEfk4ull0gXLRWbVsKt7PHwvVWUDcJPYX6wJ2U5se/7c8Fwaq2P43M5y3m9Xm+WZzyllPdDUiEntqRCTmxJq2WIDUEEgSCCQBAIIgj/ztZaQFm6a7Q2A7bWC54bevidvzShPeLEIBBEEAgCQQSBIIJAEAgiCASBIIJAEEEgCD+x9bpQ77NHWV7Jb73k9D5Bse/7M4OkNaOcZfncRZPhxOCaUU4mSemThNklyeIIQlhBtdbH6G3C5xPTBAWTNLucbnVQrfUxIlBnqIM2iyVJAEEEIXsMyjZJq1dMTdvN7nFPPSSt5LTRq8e3khNbkiRBFgeCCGpPRTMPvejRjE3dzZ5dTrc6aFQ3W6Ea8IbEIBCEAY+4qDEo+qP39s3S6FuEb98sjb6xUbM0uCRJgiwOBBHUnsLO0IeLvAP19s3S6NuDb98sVahOshCSBBBEEPLGIOeDAgsa1ZPLMMwidTfbnITAcrJIkiQQhLCCzEmY4BdkTsIEabY5CRMUqpqlkgSCQBBGxaAMx09GxFFzEi7eR29J5iRcYERfz9bf4JIkCbI4EERQe1qa7Qh+7wasOQmB5XSrg7LMSUhbqI66OTEIBBEEgkAQQSAIBBEEgggCQSCIIBAEgggCQZlpfuWd7b8YUgnK/LdnHnEgiCAQBIIIAkEEYSzl6AooPoOJ+TrqUo4vSIon5/sXdJZkecZzPqrzMQCs7EjkXgHnJgAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAAB8CAYAAAB9uw7bAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAIjSURBVHja7Nq9apRRFIbRdw9Ro5VaCBY2glYWaqM3YGVlp71VvAN7G2/AO7ARQbuAhYWFgpW12AZEkWgSIhFm29glMIOZzF/WA9N9BM5ZH/vMGVJJTlTVi2imVdVuJVmtql3bMfO2B/ZgfoIBQzBgCMYCtjLmcz+q6pXt+v+6+36SM6OeW62qHvH5ZDsPfanbGLHHW8aUM0MwYAgGDMGAIRgwBAOGYAgGDMGAIRgwBAOGYMDQVFo5yj9eVa+TXJvymn52900Y+7uU5PKU17RpTAmGM2PMuvvlYDD4OOU17XQ3jAN6MhwOvfLGFAzBgCEYMATDpW+SPUxyccn27EuS5wuHUVVrSW4sGcab7j4SDGPKmaFZnBl7/z7L1N5CYnT3be+7MQVDMGAIBgzBcOmbcBeSnJzDdf9J8vVYYVTVeubzh8LP3X3VmBIMGJqfM6O7Hyc5P4fr/nUcv02te9+NKRiCAUMwYAiGS99EpQeDZ919Zcpr2uruezD238BvZfq/2m4aU4LhzBizqnrf3d+nfWbAOKDhcPjI+25MwRAMGIIBQzBc+ibcnSTnlmCfviV5u+g38KdJri8BxrvuPnIMY8qZIRjH+QDv7rtJTi3BPv1ehm9TG953YwqGYMAQDBiCAUMwBAOGYMAQDBiCAUMwYAgGDMFQMv6/6pxN8sB2HarTox6oJKtVtWuvZt62MeXMEAwYggFDh71nDJN8sBUzb+fvAEvobeFfSU+7AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGIAAABMCAYAAACWA2JIAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAARMSURBVHja7J3PS9tgGMefhOh1B+nFS/8CD8IGw2PYrrOX14KFCvUwdU1ZWZ1Qtcqqk/1qbRNqL562ivKedvMyr95lILvZcymMCnoZzS6pxJimSZM3bezzhVJoQvv2+bzPr7fNGw58EKU0CQEVIUTx43M4n4wsQ3Al+QGL88DgQTYyU1hOAHEODI8GdwnICgxnYXw0PEMwRiicAYI8BC4tO43RDvOTNCQhVtLDEBhAsG0446zolof6TYZO3o9S2g9UVxPk5OSEi0ajMgCA0AcEqdfgvCr5Wq3W2uLiYt/vRQhRlpeXX4qi+Mpt5WNRrEj9AuN5vkwpVQkhiuB0dusH7HV/QAhRtJkpA4DkBkJHBwcHs6IoJgFAbrfbqWg06nlfYOLZTrxJppSC4GamEEKUdDr9fGZmJmYW91yUxHUGoOs8z6vdxtBr3IZJAgAAqqqmOI7rO+TeS9a9QlO9Xt/NZDIbdgyqDdaJ8XyvzG5vb9/F4/GCSW7s2QtY2KprXmw0Gk9CodBOr6TN9fqALoktGfAuWrI71qurq4+rq6vrLgoaSVVVjuO4svHAzc1NZmFh4ZtZ+dpRRnv++ki7acnh95A8/t6S0dsEowtqQMLY1DGVfHZ29hMA7kDwJiEHje+DRFGc1UchHiEMh3g0gbOlCK9DVMcrRhYEIUS5vr5+b5JE9Y+6Xz8MjbRHJBKJL3qjm5wSrtVqb/0YiwCoO6Ob5cjx8fEipfQfgmCoYrH4AQA2h2EsIwtCS5KbwzIerJoQBApBIAgUgkAQwdbl5eW+H931SC9xNJvNdYtTJACQcrlcGvsIxlpaWvpIKW2ZHMpgaBoOdZY75FwuJ6NH+NNdWxp6amoqSSn9gx4xQAgYmrB8RSEIBIFCECgEgSACpouLiwquNTEUIURpNBpWP5VKACDl8/k32Fkz1srKyg6l9K/h5cwgxoKh6aHCoFtrymazVfQIxjo+Pk4BQMnqnOnp6deU0t8IgpG0taYSVk0oBIEgUAgCQaAQBIJ4RFJVNeXHWtPI9hGEEOXo6EgYGxsr6l5+sIPA3NwcXrrFWvPz8/tgfekWgAf7HqJHOJPppVuxWGyhVqs9QxAMVS6XtwBg2+qcSCTyNBKJJBEEI2lrTdtYNaEQBIJAIQgEgUIQXuj09PQX/p1m8JIODw9foEcwlLZN0Jre6IZHHUOTT0okEp8tjB4GALlUKm35MRZca9IZ3ezA5OTkNqW0ySr0dfIPr3dVcL8zfaC0t7f3CYbk8q0HS7y6nRcf80aLg9739Z43mIYm3f6vMAJAfFe73U7xPK8aS2LBqqowAEEoHnhht936He2Wb7IdP4KxCaBXU+ioanJ5n4RA6vz8/EehUHByFwDbN3iyTNZuZWPA8oAN+71QKMQBAKrVanZiYmLX7kyuVCoboVAo74XhmYPwAJRdyU5nZxevdnRfI+P5Xq1DcUENGXaA+rWLsRf6PwCxncCW5n/0eAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUQAAAFECAYAAABf6kfGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVZSURBVHja7N1Bbuo6AIZRuxLCG/QuyiQLYVJ2wQZtMegbAFIKITjl6ZYk54wpAyN9+oPSEMOLjsfjZwB4Aznnwyt/H/+HAH75GIA3sXslkM1B7IVQAIFZBbI1jE1BvMRQCIHZhrElivFZCEspm5TS3nkCc1ZK6VJKp7EwRqsQsBZHgiiGwBqjGMUQEMWzj9tX1Fo3zglYuqHWResQsBJvgiiGwNqj+OEsAHoL0ToErMR8sBABLgQRQBABfoq+PwQIIYSwsxABXDIDCCLAIPchArgPEcAlM4AgAozxtBtg7TztBuDhQrQSgTWvw7uFmHM+1Fo7ZwQsXa21e/qbKtvt9uSogKUbap2fIQVWf6k8GkRRBNYWw9EgXqNYStmklPbOEJizUkqXUjo9iuHTIFqLwNJX4eQg9qIYhBGYUwhDON9B0/LiOPXde2EMAgm8YwCvWkP46yA2BBLgT0wNIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKxdfPUNjsfjp2ME3kHO+fBPgzgQwC8fA/Amdq8EsjmIvRAKIDCrQLaGsSmIlxgKITDbMLZEMT4LYSllk1LaO09gzkopXUrpNBbGaBUC1uJIEMUQWGMUoxgConj2cfuKWuvGOQFLN9S6aB0CVuJNEMUQWHsUP5wFQG8hWoeAlZgPFiLAhSACCCLAT9H3hwAhhBB2FiKAS2YAQQQY5D5EAPchArhkBhBEgDGedgOsnafdADxciFYisOZ1eLcQc86HWmvnjIClq7V2T39TZbvdnhwVsHRDrfMzpMDqL5VHgyiKwNpiOBrEaxRLKZuU0t4ZAnNWSulSSqdHMXwaRGsRWPoqnBzEXhSDMAJzCmEI5ztoWl4cp757L4xBIIF3DOBVawh/HcSGQAL8iakBvAvi9/e3UwQI/pcZQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRAEEEEEQAQQQQRABBBBBEAEEEEEQAQQQQRABBBBBEAEEEEEQAQQQQRABBBBBEAEEEEEQAQQQQRABBBBBEAEEEEEQAQQQQRABBBBBEAEEEEEQAQQQQRABBBBBEAEEEQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAEEEUAQAQQRQBABBBFAEAFWJL76Bsfj8dMxAu8g53z4p0EcCOCXjwF4E7tXAtkcxF4IBRCYVSBbw9gUxEsMhRCYbRhbohifhbCUskkp7Z0nMGellC6ldBoLY7QKAWtxJIhiCKwxilEMAVE8u7sxu9a6cU7A0g21LlqHgJV4E0QxBNYeRf/LDNBfiNYhYCXmg4UIcCGIAIII8FP0/SFACCGEnYUI4JIZQBABBrkPEcB9iAAumQEEEWCMp90Aa+dpNwAPF6KVCKx5Hd4txJzzodbaOSNg6Wqt3dPfVNlutydHBSzdUOv8DCmw+kvl0SCKIrC2GI4G8RrFUsompbR3hsCclVK6lNLpUQyfBtFaBJa+CicHsRfFIIzAnEIYwvkOmpYXx6nv3gtjEEjgHQN41RrCXwexIZAAf2JqAG/9BwAA//8DABFKo2Ei+D3CAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\n\r\ninterface ERROR_RESPONSE_INTERFACE {\r\n ERROR_CODE: number;\r\n ERROR_MESSAGE: string;\r\n ERROR_DATA?: any | null;\r\n}\r\n\r\n\r\ninterface REST_API_RESPONSE_CONTENT_INTERFACE {\r\n ERROR?: ERROR_RESPONSE_INTERFACE;\r\n DATA?: any;\r\n}\r\n\r\n\r\nexport const REST_API_RESPONSE_CONTENT_HANDLER = async (RESPONSE: Response): Promise => {\r\n\r\n\r\n const DEFAULT_RESPONSE_CONTENT = {ERROR: {\r\n ERROR_CODE: 599,\r\n ERROR_MESSAGE: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"\r\n }};\r\n\r\n if (!RESPONSE) return DEFAULT_RESPONSE_CONTENT;\r\n\r\n\r\n if (RESPONSE.status === 200 || RESPONSE.status === 204) {\r\n\r\n let RESPONSE_CONTENT: any = await RESPONSE.text();\r\n\r\n if (RESPONSE.status === 200) {\r\n try {\r\n RESPONSE_CONTENT = JSON.parse(RESPONSE_CONTENT);\r\n } catch (e) {\r\n RESPONSE_CONTENT = null;\r\n }\r\n }\r\n\r\n return {DATA: RESPONSE_CONTENT}\r\n\r\n }\r\n\r\n else {\r\n\r\n let RESPONSE_MESSAGE: string = await RESPONSE.text();\r\n\r\n if (RESPONSE.status !== 500) {\r\n try {\r\n const RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = JSON.parse(RESPONSE_MESSAGE);\r\n RESPONSE_MESSAGE = RESPONSE_CONTENT.UserMessage;\r\n } catch (e) {\r\n // console.log(e);\r\n RESPONSE_MESSAGE = \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\";\r\n }\r\n }\r\n\r\n return {ERROR: {\r\n ERROR_CODE: RESPONSE.status, ERROR_MESSAGE: RESPONSE_MESSAGE\r\n }};\r\n\r\n }\r\n\r\n};\r\n\r\n\r\nexport default REST_API_RESPONSE_CONTENT_HANDLER;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype ContentInformationProps = {\r\n contentMessage: string;\r\n cssClasses?: string;\r\n};\r\n\r\n\r\nexport const ContentInformationComponent: React.FC = ({\r\n contentMessage,\r\n cssClasses = \"\"\r\n}) : JSX.Element | null => {\r\n\r\n\r\n if (!contentMessage) return null;\r\n\r\n\r\n cssClasses = \"content default-system-message\" + (cssClasses ? ` ${cssClasses}` : \"\")\r\n\r\n\r\n return (\r\n \r\n {contentMessage}\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default ContentInformationComponent;\r\n","export const APPLICATION_GLOBALS: any = {\r\n MONTHS: {\r\n LABELS: {\r\n 1: \"Stycznia\", 2: \"Lutego\", 3: \"Marca\",\r\n 4: \"Kwietnia\", 5: \"Maja\", 6: \"Czerwca\",\r\n 7: \"Lipca\", 8: \"Sierpnia\", 9: \"Września\",\r\n 10: \"Października\", 11: \"Listopada\", 12: \"Grudnia\"\r\n }\r\n }\r\n};\r\n\r\n\r\nexport default APPLICATION_GLOBALS;\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport {Row, Col} from \"react-bootstrap\";\r\n\r\n\r\nimport APPLICATION_GLOBALS from \"@GLOBALS\";\r\n\r\n\r\nimport {AiFillDelete} from \"react-icons/all\";\r\n\r\nimport ARRIVAL_ICON from \"@Icons/arrival.png\";\r\nimport ARRIVAL_ACTIVE_ICON from \"@Icons/arrival_active.png\";\r\n\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\n\r\n\r\ntype MonitoryNoteListElementProps = {\r\n MONITORY_NOTE: MONITORY_NOTE_INTERFACE;\r\n MONITORY_NOTE_LIST_TYPE?: \"LIST\" | \"HOME\";\r\n FIRST?: boolean;\r\n};\r\n\r\n\r\nexport const MonitoryNoteListElementComponent: React.FC = ({\r\n MONITORY_NOTE,\r\n MONITORY_NOTE_LIST_TYPE = \"LIST\",\r\n FIRST = false\r\n}) : JSX.Element | null => {\r\n\r\n\r\n if (!MONITORY_NOTE) return null;\r\n\r\n const {MONTHS: {LABELS: MONTH_LABELS}} = APPLICATION_GLOBALS;\r\n\r\n //if (!MONITORY_NOTE?.ProcessStartDate) return null;\r\n let PROCESS_START_DATE_DAY: number | string = '';\r\n let PROCESS_START_DATE_HOUR: number | string = '';\r\n let PROCESS_START_DATE_MINUTES: number | string = '';\r\n let PROCESS_START_DATE_MONTH: number = 0;\r\n let NOTE_SUBMIT_AVAILABILITY: boolean | undefined = false;\r\n let NOTE_INFO_TEXT_AVAILABILITY: boolean | undefined = false;\r\n if (MONITORY_NOTE?.ProcessStartDate)\r\n {\r\n const MONITORY_NOTES_PROCESS_START_DATE = new Date(MONITORY_NOTE?.ProcessStartDate);\r\n\r\n PROCESS_START_DATE_DAY = MONITORY_NOTES_PROCESS_START_DATE.getDate();\r\n if (PROCESS_START_DATE_DAY < 10) PROCESS_START_DATE_DAY = `0${PROCESS_START_DATE_DAY}`;\r\n\r\n PROCESS_START_DATE_MONTH = MONITORY_NOTES_PROCESS_START_DATE.getMonth() + 1;\r\n\r\n PROCESS_START_DATE_HOUR = MONITORY_NOTES_PROCESS_START_DATE.getHours();\r\n if (PROCESS_START_DATE_HOUR < 10) PROCESS_START_DATE_HOUR = `0${PROCESS_START_DATE_HOUR}`;\r\n\r\n PROCESS_START_DATE_MINUTES = MONITORY_NOTES_PROCESS_START_DATE.getMinutes();\r\n if (PROCESS_START_DATE_MINUTES < 10) PROCESS_START_DATE_MINUTES = `0${PROCESS_START_DATE_MINUTES}`;\r\n\r\n const TIME_TO_START: number = (MONITORY_NOTES_PROCESS_START_DATE.getTime() - (new Date()).getTime()) / 1000 / 60; \r\n \r\n NOTE_SUBMIT_AVAILABILITY = TIME_TO_START <= +(MONITORY_NOTE?.MinDelayForSubmit || 0) && !MONITORY_NOTE.IsSubmitted && MONITORY_NOTE?.IsDetailed && new Date() <= new Date(MONITORY_NOTES_PROCESS_START_DATE);\r\n }\r\n else\r\n {\r\n NOTE_INFO_TEXT_AVAILABILITY = true;\r\n }\r\n\r\n const MONITORY_NOTE_TRUCKS = [MONITORY_NOTE.FrontTruckRegNo, MONITORY_NOTE.RearTruckRegNo].filter((truck: any) => !!truck);\r\n\r\n\r\n let CSS_CLASSES = \"monitory-notes-list-element-component monitory-notes-list-element\"\r\n\r\n if (MONITORY_NOTE_LIST_TYPE === \"HOME\") CSS_CLASSES += \" home-page-monitory-note\";\r\n\r\n if (MONITORY_NOTE.IsSubmitted) CSS_CLASSES += \" submitted\";\r\n\r\n if (FIRST) CSS_CLASSES += \" selected\";\r\n\r\n //const NOTE_SUBMIT_AVAILABILITY = TIME_TO_START <= +(MONITORY_NOTE?.MinDelayForSubmit || 0) && !MONITORY_NOTE.IsSubmitted && MONITORY_NOTE?.IsDetailed && new Date() <= new Date(MONITORY_NOTES_PROCESS_START_DATE);\r\n\r\n return (\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n {MONITORY_NOTE?.ProcessStartDate != undefined &&\r\n \r\n {PROCESS_START_DATE_DAY}\r\n {MONTH_LABELS[PROCESS_START_DATE_MONTH]} \r\n {PROCESS_START_DATE_HOUR}:{PROCESS_START_DATE_MINUTES}\r\n \r\n }\r\n {MONITORY_NOTE?.ProcessStartDate == undefined &&\r\n \r\n Data: brak\r\n Godzina: brak\r\n \r\n }\r\n \r\n\r\n \r\n {`Awizacja`}: \r\n {MONITORY_NOTE?.TransportNotificationNo}\r\n \r\n\r\n \r\n {MONITORY_NOTE_TRUCKS.join(\" / \")}\r\n \r\n\r\n \r\n {`Baza paliw`}: \r\n {MONITORY_NOTE.TerminalNo}\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n {NOTE_SUBMIT_AVAILABILITY &&\r\n \r\n \r\n {`Zgłoś\r\n {`Zgłoś przybycie`}\r\n \r\n \r\n }\r\n\r\n {NOTE_INFO_TEXT_AVAILABILITY &&\r\n \r\n {`Zgłoś przybycie na kiosku stacjonarnym`}\r\n \r\n }\r\n\r\n {/*{!MONITORY_NOTE?.IsSubmitted && MONITORY_NOTE_LIST_TYPE === \"LIST\" &&*/}\r\n\t {/**/}\r\n\t\t {/* */}\r\n\t\t\t {/* */}\r\n\t\t {/* */}\r\n\t {/**/}\r\n {/*}*/}\r\n\r\n {!!MONITORY_NOTE?.IsSubmitted &&\r\n \r\n {``}\r\n {`Przedłożona`}\r\n \r\n }\r\n\r\n \r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteListElementComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Row, Col} from \"react-bootstrap\";\r\n\r\n\r\nimport ContentInformationComponent from \"@Components/UI/Content/Information\";\r\n\r\n\r\nimport MonitoryNoteListElementComponent from \"@UIPages/Authenticated/MonitoryNotes/MonitoryNotesList/MonitoryNote\";\r\n\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\n\r\n\r\ntype MonitoryNotesListProps = {\r\n MONITORY_NOTES: MONITORY_NOTE_INTERFACE[];\r\n MONITORY_NOTES_LIST_TYPE?: \"LIST\" | \"HOME\";\r\n};\r\n\r\n\r\nexport const MonitoryNotesListComponent: React.FC = ({\r\n MONITORY_NOTES,\r\n MONITORY_NOTES_LIST_TYPE = \"LIST\"\r\n}) : JSX.Element | null => {\r\n\r\n\r\n if (!MONITORY_NOTES) return null;\r\n\r\n\r\n MONITORY_NOTES?.sort((\r\n monitoryNote1: MONITORY_NOTE_INTERFACE,\r\n monitoryNote2: MONITORY_NOTE_INTERFACE\r\n ) =>\r\n new Date(monitoryNote1?.ProcessStartDate || \"\")\r\n >\r\n new Date(monitoryNote2?.ProcessStartDate || \"\") ? 1 : -1\r\n );\r\n\r\n\r\n let MONITORY_NOTES_LIST_MESSAGE = \"Nie masz żadnych Awizacji\";\r\n\r\n if (MONITORY_NOTES_LIST_TYPE === \"HOME\") {\r\n MONITORY_NOTES_LIST_MESSAGE = `Nie masz na dziś żadnych Awizacji`;\r\n }\r\n\r\n\r\n const MONITORY_NOTES_LIST = MONITORY_NOTES.map((MONITORY_NOTE, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {MONITORY_NOTES?.length > 0 ?\r\n\r\n MONITORY_NOTES_LIST\r\n\r\n :\r\n\r\n \r\n\r\n }\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNotesListComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport REST_API_RESPONSE_CONTENT_HANDLER from \"@Services/Utilities/Responses\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentPictureComponent from \"@Components/UI/Containers/Block/Picture\";\r\n\r\n\r\nimport MonitoryNotesListComponent from \"@UIPages/Authenticated/MonitoryNotes/MonitoryNotesList\";\r\n\r\n\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\n\r\n\r\n\r\ntype HomePageComponentProps = {};\r\n\r\n\r\nexport const HomePageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {AUTHORIZATION_TOKEN_INTERFACE} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [MONITORY_NOTES, SET_MONITORY_NOTES] = useState(null);\r\n const [MONITORY_NOTES_ERROR, SET_MONITORY_NOTES_ERROR] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return;\r\n\r\n const MONITORY_NOTES_API_URL: string = `${REST_API_URL}/TransportNotification/List`;\r\n\r\n const MONITORY_NOTES_REQUEST_DATA = {UserId: LOGGED_USER?.userID, Today: true};\r\n\r\n const GET_MONITORY_NOTES = async (): Promise => {\r\n\r\n try {\r\n\r\n const MONITORY_NOTES_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTES_API_URL,\r\n MONITORY_NOTES_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n const MONITORY_NOTES_RESPONSE_CONTENT = await REST_API_RESPONSE_CONTENT_HANDLER(MONITORY_NOTES_RESPONSE);\r\n\r\n if (MONITORY_NOTES_RESPONSE_CONTENT.ERROR) {\r\n SET_MONITORY_NOTES_ERROR({ErrorCode: MONITORY_NOTES_RESPONSE_CONTENT.ERROR.ERROR_CODE, UserMessage: MONITORY_NOTES_RESPONSE_CONTENT.ERROR.ERROR_MESSAGE});\r\n } else {\r\n SET_MONITORY_NOTES(MONITORY_NOTES_RESPONSE_CONTENT.DATA?.TransportNotifications || []);\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTES_ERROR({ErrorCode: 599, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_MONITORY_NOTES();\r\n\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_MONITORY_NOTES(null);\r\n SET_MONITORY_NOTES_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!MONITORY_NOTES_ERROR && }\r\n\r\n {!!MONITORY_NOTES &&\r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default HomePageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\nimport ENV from \"react-dotenv\";\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Helmet} from \"react-helmet\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype BlockContentHeaderProps = {\r\n headerText: string;\r\n pageTitle?: boolean;\r\n};\r\n\r\n\r\nexport const BlockContentHeaderComponent: React.FC = ({\r\n headerText, pageTitle = false\r\n}): JSX.Element => {\r\n\r\n\r\n return (\r\n\r\n\r\n \r\n\r\n {headerText}\r\n\r\n {/* Helmet Module Component - Set Document Title */}\r\n {pageTitle &&\r\n\t \r\n\t\t {`${ENV.APP_TITLE} - ${headerText}`}\r\n\t \r\n }\r\n {/* /Helmet Module Component - Set Document Title */}\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BlockContentHeaderComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport TERMINAL_INTERFACE from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\n\r\n\r\ntype TerminalProps = {\r\n TERMINAL: TERMINAL_INTERFACE;\r\n TERMINALS_LIST_TYPE?: \"TERMINALS\" | \"FAVORITE_TERMINALS\" | \"DISPOSITIONS\" | \"MONITORY_NOTES\";\r\n};\r\n\r\n\r\nexport const TerminalsListTerminalComponent: React.FC = ({\r\n TERMINAL, TERMINALS_LIST_TYPE = \"TERMINALS\"\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!TERMINAL) return null;\r\n\r\n\r\n let TERMINAL_URL: string | null = \"/bazy-paliw\";\r\n\r\n switch (TERMINALS_LIST_TYPE) {\r\n case \"DISPOSITIONS\":\r\n TERMINAL_URL = \"/dyspozycje/\" + TERMINAL.TerminalNo;\r\n break;\r\n case \"MONITORY_NOTES\":\r\n TERMINAL_URL = \"/awizacje/terminale/\" + TERMINAL.TerminalNo;\r\n break;\r\n case \"FAVORITE_TERMINALS\":\r\n break;\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n {!!TERMINAL?.TerminalName &&\r\n\t \r\n\t\t {TERMINAL?.TerminalName}\r\n\t \r\n }\r\n\r\n \r\n \r\n\r\n {TERMINALS_LIST_TYPE === \"TERMINALS\" &&\r\n \r\n {TERMINAL?.TransportWaitForSubmitCount || 0}\r\n \r\n }\r\n\r\n {TERMINALS_LIST_TYPE === \"TERMINALS\" &&\r\n \r\n {TERMINAL?.TransportWaitForEntryCount || 0}\r\n \r\n }\r\n\r\n {TERMINALS_LIST_TYPE === \"TERMINALS\" &&\r\n \r\n {TERMINAL?.TransportOpenedCount}\r\n \r\n }\r\n\r\n \r\n {TERMINAL?.DispCount}\r\n \r\n\r\n \r\n {TERMINAL?.TransportNotificationCount}\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TerminalsListTerminalComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport TerminalsListTerminalComponent from \"@UIPages/Authenticated/Terminals/List/Terminals/Terminal\";\r\n\r\n\r\nimport TERMINAL_INTERFACE from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\n\r\n\r\ntype TerminalsListProps = {\r\n TERMINALS: TERMINAL_INTERFACE[];\r\n TERMINALS_LIST_TYPE?: \"TERMINALS\" | \"FAVORITE_TERMINALS\" | \"DISPOSITIONS\" | \"MONITORY_NOTES\";\r\n FAVORITE?: boolean;\r\n SHOW_ALL_PETROL_BASES_STATUS?: boolean;\r\n};\r\n\r\n\r\nexport const TerminalsListComponent: React.FC = ({\r\n TERMINALS, TERMINALS_LIST_TYPE = \"TERMINALS\", FAVORITE = false,\r\n SHOW_ALL_PETROL_BASES_STATUS = true\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!TERMINALS || !SHOW_ALL_PETROL_BASES_STATUS) return null;\r\n\r\n\r\n const TerminalsList = TERMINALS.map((TERMINAL: TERMINAL_INTERFACE, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {FAVORITE ? \"Ulubione\" : \"Pozostałe\"}\r\n \r\n\r\n {TERMINALS.length < 1 ?\r\n \r\n {FAVORITE ? \"Brak ulubionych baz paliw\" : \"Brak baz paliw\"}\r\n \r\n :\r\n TerminalsList\r\n }\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TerminalsListComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\ntype TerminalsListLegendProps = {\r\n TERMINALS_LIST_TYPE?: \"TERMINALS\" | \"FAVORITE_TERMINALS\" | \"DISPOSITIONS\" | \"MONITORY_NOTES\";\r\n};\r\n\r\n\r\nexport const TerminalsListLegendComponent: React.FC = ({\r\n TERMINALS_LIST_TYPE = \"TERMINALS\"\r\n}): JSX.Element | null => {\r\n\r\n\r\n return (\r\n \r\n\r\n {TERMINALS_LIST_TYPE === \"TERMINALS\" &&\r\n\t \r\n\t\t \r\n\t\t {`Liczba transp. oczekujących na przedłożenie`}\r\n\t \r\n }\r\n\r\n {TERMINALS_LIST_TYPE === \"TERMINALS\" &&\r\n\t \r\n\t\t \r\n\t\t {`Liczba transp. oczekujących na wjazd`}\r\n\t \r\n }\r\n\r\n {TERMINALS_LIST_TYPE === \"TERMINALS\" &&\r\n\t \r\n\t\t \r\n\t\t {`Liczba transp. w trakcie załadunku`}\r\n\t \r\n }\r\n\r\n \r\n \r\n {`Liczba moich dyspozycji`}\r\n \r\n\r\n \r\n \r\n {`Liczba moich awizacji`}\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TerminalsListLegendComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\nimport React, {useContext, useRef, useState, useEffect} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport TerminalsListComponent from \"@UIPages/Authenticated/Terminals/List/Terminals\";\r\nimport TerminalsListLegendComponent from \"@UIPages/Authenticated/Terminals/List/Legend\";\r\n\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport TERMINAL_INTERFACE from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\ntype MonitoryNotesTerminalsProps = {};\r\n\r\n\r\nexport const MonitoryNotesTerminalsComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} LOGGED_USER - Application Global State Logged User Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [MONITORY_NOTES_TERMINALS, SET_MONITORY_NOTES_TERMINALS] = useState([]);\r\n const [MONITORY_NOTES_TERMINALS_ERROR, SET_MONITORY_NOTES_TERMINALS_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n const MONITORY_NOTES_API_URL: string = REST_API_URL + \"/Terminal/List\";\r\n\r\n const MONITORY_NOTES_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID,\r\n Favorite: false,\r\n Mode: \"D\"\r\n };\r\n\r\n const GET_MONITORY_NOTES_TERMINALS = async (): Promise => {\r\n\r\n try {\r\n\r\n const MONITORY_NOTES_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTES_API_URL,\r\n MONITORY_NOTES_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (MONITORY_NOTES_RESPONSE.status === 200) {\r\n const CONTENT: string = await MONITORY_NOTES_RESPONSE.text();\r\n SET_MONITORY_NOTES_TERMINALS(CONTENT?.trim() ? JSON.parse(CONTENT)?.Terminals : []);\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTES_RESPONSE.json();\r\n SET_MONITORY_NOTES_TERMINALS_ERROR({ErrorCode: MONITORY_NOTES_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTES_TERMINALS_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_MONITORY_NOTES_TERMINALS();\r\n\r\n }, [REST_API_URL]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_MONITORY_NOTES_TERMINALS([]);\r\n SET_MONITORY_NOTES_TERMINALS_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const ACTIVE_MONITORY_NOTES_TERMINALS = MONITORY_NOTES_TERMINALS.filter(\r\n (terminal: TERMINAL_INTERFACE) => !!terminal?.TransportNotificationCount\r\n );\r\n\r\n\r\n const FAVORITE_TERMINALS = ACTIVE_MONITORY_NOTES_TERMINALS.filter(\r\n (terminal: TERMINAL_INTERFACE) => !!terminal?.Favorite\r\n );\r\n\r\n const OTHER_TERMINALS = ACTIVE_MONITORY_NOTES_TERMINALS.filter(\r\n (terminal: TERMINAL_INTERFACE) => !terminal?.Favorite\r\n );\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!MONITORY_NOTES_TERMINALS_ERROR ?\r\n\r\n \r\n\r\n :\r\n\r\n ACTIVE_MONITORY_NOTES_TERMINALS.length > 0 ?\r\n <>\r\n\r\n \r\n\r\n {OTHER_TERMINALS.length > 0 &&\r\n \r\n }\r\n\r\n \r\n\r\n \r\n :\r\n\r\n !REST_API_REQUEST_STATUS &&\r\n \r\n {`Nie masz żadnych Awizacji`}\r\n \r\n\r\n }\r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default MonitoryNotesTerminalsComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState, useEffect, useContext} from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport PRODUCT_INTERFACE from \"@Services/Application/Interfaces/Products/Product\";\r\nimport dateFormat from \"dateformat\";\r\nimport {AiOutlineCheck} from \"react-icons/all\";\r\nimport DISPOSITION_INTERFACE from \"@Services/Application/Interfaces/Dispositions/Disposition\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\n\r\ntype MonitoryNoteDispositionsProps = {\r\n MONITORY_NOTE: MONITORY_NOTE_INTERFACE | null;\r\n MONITORY_NOTE_PROCESS_TYPE: \"edition\" | \"delete\" | \"submit\" | \"create\";\r\n LOAD_CONTENT: boolean;\r\n LOAD_CONTENT_HANDLER(status: boolean): void;\r\n removeDispositionsHandler?(disposition: DISPOSITION_INTERFACE, remove: boolean): void;\r\n};\r\n\r\nexport const MonitoryNoteDispositionsComponent: React.FC = ({\r\n MONITORY_NOTE = null, MONITORY_NOTE_PROCESS_TYPE,\r\n LOAD_CONTENT, LOAD_CONTENT_HANDLER,\r\n removeDispositionsHandler\r\n}): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [showDispositions, setShowDispositions] = useState(!!(MONITORY_NOTE_PROCESS_TYPE === \"delete\" || MONITORY_NOTE_PROCESS_TYPE === \"submit\"));\r\n\r\n const [availableDispositions, setAvailableDispositions] = useState(null);\r\n const [availableDispositionsError, setAvailableDispositionsError] = useState(null);\r\n\r\n const selectedFrontVehicle = MONITORY_NOTE?.FrontTruckRegNo;\r\n const selectedRearVehicle = MONITORY_NOTE?.RearTruckRegNo;\r\n\r\n useEffect(() => {\r\n\r\n if (!selectedFrontVehicle) return;\r\n\r\n if (!MONITORY_NOTE) return;\r\n\r\n const dispositionsListApiURL = REST_API_URL + \"/Disp/List\";\r\n\r\n const DISPOSITIONS_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n TerminalNo: MONITORY_NOTE.TerminalNo,\r\n FrontVehicleRegNo: selectedFrontVehicle || null,\r\n RearVehicleRegNo: selectedRearVehicle || null\r\n };\r\n\r\n const getAvailableDispositions = async () => {\r\n\r\n try {\r\n\r\n const DISPOSITIONS_RESPONSE = await REST_API_REQUEST(\r\n dispositionsListApiURL,\r\n DISPOSITIONS_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (DISPOSITIONS_RESPONSE.status === 200) {\r\n const CONTENT: string = await DISPOSITIONS_RESPONSE.text();\r\n setAvailableDispositions(CONTENT.trim() ? JSON.parse(CONTENT)?.Disps : []);\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await DISPOSITIONS_RESPONSE.json();\r\n setAvailableDispositionsError({ErrorCode: DISPOSITIONS_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n setAvailableDispositionsError({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n if (!!LOAD_CONTENT_HANDLER) LOAD_CONTENT_HANDLER(true);\r\n\r\n };\r\n\r\n getAvailableDispositions();\r\n\r\n }, [selectedFrontVehicle, selectedRearVehicle]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n setAvailableDispositions(null);\r\n setAvailableDispositionsError(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!MONITORY_NOTE || !MONITORY_NOTE?.Disps) return null;\r\n\r\n\r\n if (!!availableDispositionsError) return \r\n\r\n\r\n if (!LOAD_CONTENT) return null;\r\n\r\n\r\n if (!availableDispositions) return null;\r\n\r\n\r\n const selectedDispositions = MONITORY_NOTE?.Disps.map((disposition) => disposition.DispNo);\r\n\r\n\r\n const DispositionsList = availableDispositions.map(\r\n (disposition) => {\r\n\r\n let dispositionSentNumbers = null;\r\n\r\n if (disposition.DispItems) {\r\n dispositionSentNumbers = disposition.DispItems.filter(\r\n (product: PRODUCT_INTERFACE) => !!product.SENTNumber\r\n ).map(\r\n (product: PRODUCT_INTERFACE) => product.SENTNumber\r\n )\r\n dispositionSentNumbers = Array.from(new Set(dispositionSentNumbers));\r\n }\r\n\r\n const dispositionSelectedStatus = selectedDispositions.includes(disposition.DispNo);\r\n\r\n\r\n if (![\"create\", \"edition\"].includes(MONITORY_NOTE_PROCESS_TYPE) && !dispositionSelectedStatus) return null;\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n removeDispositionsHandler ? removeDispositionsHandler(disposition, dispositionSelectedStatus) : null}>\r\n {!!dispositionSelectedStatus && }\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {!!disposition.DispNo &&\r\n\t \r\n\t\t \r\n \r\n\t {disposition.DispNo}\r\n \r\n {!!dispositionSentNumbers && dispositionSentNumbers?.length > 0 &&\r\n\t\t\t \r\n {dispositionSentNumbers.join(\"
    \")}\r\n\t\t\t \r\n }\r\n
    \r\n\t \r\n }\r\n\r\n \r\n {!!disposition.ValidFrom && {`od`}}\r\n {!!disposition.ValidFrom &&\r\n {dateFormat(new Date(disposition.ValidFrom), \"dd-mm-yyyy\")}\r\n }\r\n {!!disposition.ValidTo && {`do`}}\r\n {!!disposition.ValidTo &&\r\n {dateFormat(new Date(disposition.ValidTo), \"dd-mm-yyyy\")}\r\n }\r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n \r\n );\r\n }\r\n );\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n MONITORY_NOTE_PROCESS_TYPE === \"delete\" || MONITORY_NOTE_PROCESS_TYPE === \"submit\" ? null : setShowDispositions(!showDispositions)}>\r\n {!!showDispositions && }\r\n \r\n {`Pokaż Dyspozycje`}\r\n \r\n\r\n {!!showDispositions && DispositionsList}\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteDispositionsComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useEffect, useState} from \"react\";\r\n\r\n\r\nimport {Col, Row, Form} from \"react-bootstrap\";\r\n\r\n\r\ntype CompartmentProductsProps = {\r\n compartmentPosition: any,\r\n compartmentCapacity: any,\r\n compartmentProducts: any;\r\n compartmentSelectedProduct?: any;\r\n compartmentModifyHandler: any;\r\n compartmentActiveProduct?: any;\r\n compartmentActiveProductHandler?: any;\r\n compartmentActiveProductCapacity?: any;\r\n compartmentActiveProductCapacityHandler?: any;\r\n editable?: boolean;\r\n};\r\n\r\n\r\nexport const CompartmentProductsComponent: React.FC = ({\r\n compartmentActiveProduct, compartmentActiveProductHandler,\r\n compartmentActiveProductCapacity, compartmentActiveProductCapacityHandler,\r\n compartmentPosition, compartmentCapacity, compartmentProducts, compartmentSelectedProduct,\r\n compartmentModifyHandler, editable = true\r\n}): JSX.Element | null => { \r\n\r\n useEffect(() => {\r\n const HANDLER = (e: KeyboardEvent) => {\r\n for (let elem of Array.from(document.querySelectorAll(\"input\"))) {\r\n if (e.key === \"Enter\") {\r\n elem.blur();\r\n }\r\n }\r\n }\r\n document.addEventListener(\"keydown\", HANDLER);\r\n return () => document.removeEventListener(\"keydown\", HANDLER);\r\n }, []);\r\n\r\n\r\n if (!compartmentProducts) return null;\r\n\r\n\r\n const selectedProduct = compartmentActiveProduct ? compartmentProducts[compartmentActiveProduct] : {};\r\n\r\n const {\r\n // Qty: productQuantity,\r\n QtyAvail: productQuantity,\r\n productCompartments\r\n }: {Qty: number, QtyAvail: number, productCompartments: number[]} = selectedProduct || {};\r\n\r\n\r\n let usedProductCapacity = 0;\r\n\r\n if (productCompartments && Object.entries(productCompartments).length) {\r\n for (let usedCapacity of Object.entries(productCompartments)) {\r\n usedProductCapacity += +usedCapacity[1] || 0;\r\n }\r\n }\r\n\r\n const leftProductCapacity = productQuantity - usedProductCapacity;\r\n\r\n const compartmentMaximumProductLoad = compartmentCapacity > leftProductCapacity ? leftProductCapacity : compartmentCapacity;\r\n\r\n \r\n return (\r\n \r\n \r\n\r\n \r\n {`Produkt`}\r\n \r\n \r\n {Object.entries(compartmentProducts).map(([productId, product]: any) => {\r\n if (!product) return null;\r\n const {QtyAvail: productQuantity, productCompartments}: {QtyAvail: any, productCompartments: number[]} = product;\r\n let usedCapacity = 0;\r\n if (productCompartments) {\r\n for (let capacity of Object.values(productCompartments)) {\r\n usedCapacity += +capacity;\r\n }\r\n }\r\n // console.log(productCompartments, usedCapacity);\r\n const leftCapacity = productQuantity - usedCapacity;\r\n // if (leftCapacity < 1) return null;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n \r\n {`Ilość [dm3]`}\r\n\t \r\n {`/`}{compartmentCapacity}\r\n \r\n\r\n \r\n \r\n )\r\n\r\n};\r\n\r\n\r\nexport default CompartmentProductsComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\n\r\nimport {Col, Row, Form, Button} from \"react-bootstrap\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport PRODUCT_INTERFACE from \"@Services/Application/Interfaces/Products/Product\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport {MdCancel, MdChangeCircle} from \"react-icons/all\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\n\r\ntype CompartmentProductReceiversProps = {\r\n PRODUCT_RECEIVER_ID: string;\r\n PRODUCT_RECEIVER_HANDLER: any;\r\n PRODUCT_DATA?: PRODUCT_INTERFACE | null;\r\n editable?: boolean;\r\n};\r\n\r\nexport const CompartmentProductReceiversComponent: React.FC = ({\r\n PRODUCT_RECEIVER_ID, PRODUCT_RECEIVER_HANDLER, PRODUCT_DATA = null,\r\n editable = true\r\n}): JSX.Element | null => {\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {AUTHORIZATION_TOKEN_INTERFACE} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n\r\n const [PRODUCT_RECEIVER_CHANGE_STATUS, SET_PRODUCT_RECEIVER_CHANGE_STATUS] = useState(false);\r\n\r\n const CHANGE_PRODUCT_RECEIVER_CHANGE_STATUS = (status: boolean) => {\r\n if (status === false) {\r\n SET_PRODUCT_RECEIVER(PRODUCT_RECEIVER_ID);\r\n SET_PRODUCT_RECEIVERS([]);\r\n SET_PRODUCT_RECEIVER_ERROR(null);\r\n }\r\n SET_PRODUCT_RECEIVER_CHANGE_STATUS(status);\r\n };\r\n\r\n const [PRODUCT_RECEIVER, SET_PRODUCT_RECEIVER] = useState(PRODUCT_RECEIVER_ID || \"BRAK\");\r\n const [PRODUCT_RECEIVERS, SET_PRODUCT_RECEIVERS] = useState<[] | null>([]);\r\n const [PRODUCT_RECEIVER_ERROR, SET_PRODUCT_RECEIVER_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n SET_PRODUCT_RECEIVER(PRODUCT_RECEIVER_ID);\r\n }, [PRODUCT_RECEIVER_ID, PRODUCT_DATA]);\r\n\r\n useEffect(() => {\r\n CHANGE_PRODUCT_RECEIVER_CHANGE_STATUS(false);\r\n }, [PRODUCT_DATA]);\r\n\r\n const [productReceiversFilter, setProductReceiversFilter] = useState(\"\");\r\n\r\n useEffect(() => {\r\n\r\n if (!PRODUCT_RECEIVER_CHANGE_STATUS) return;\r\n\r\n //if (!REST_API_URL || !LOGGED_USER?.userID || !PRODUCT_RECEIVER) return;\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return;\r\n\r\n\r\n const GET_PRODUCT_RECEIVERS = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const RECEIVERS_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/TransportNotification/Receiver/List`,\r\n {\r\n UserId: LOGGED_USER?.userID,\r\n DispNo: PRODUCT_DATA?.DispNo,\r\n DispPos: PRODUCT_DATA?.Pos,\r\n FilterString: productReceiversFilter\r\n },\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (RECEIVERS_RESPONSE.status === 200) {\r\n const CONTENT: any = await RECEIVERS_RESPONSE.json();\r\n SET_PRODUCT_RECEIVERS(CONTENT?.Receivers);\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await RECEIVERS_RESPONSE.json();\r\n SET_PRODUCT_RECEIVER_ERROR({ErrorCode: RECEIVERS_RESPONSE.status, UserMessage: CONTENT?.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_PRODUCT_RECEIVER_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n const delayForResearch = setTimeout(()=>GET_PRODUCT_RECEIVERS(), 1000);\r\n return ()=>clearTimeout(delayForResearch);\r\n\r\n\r\n }, [productReceiversFilter]);\r\n\r\n useEffect(() => {\r\n return () => {setProductReceiversFilter(\"\")};\r\n }, []);\r\n\r\n\r\n if (PRODUCT_RECEIVER_ERROR) return ;\r\n\r\n\r\n if (!PRODUCT_DATA) return null;\r\n\r\n\r\n const ProductReceivers: any = PRODUCT_RECEIVERS?.filter(\r\n (productReceiver: any) => productReceiver.ReceiverMasterNo?.includes(productReceiversFilter) || productReceiver.ReceiverInfo?.includes(productReceiversFilter)\r\n ).map((productReceiver: any) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n {`Miejsce dostawy`}\r\n {editable ?\r\n PRODUCT_RECEIVER_CHANGE_STATUS ?\r\n CHANGE_PRODUCT_RECEIVER_CHANGE_STATUS(false)}/>\r\n :\r\n CHANGE_PRODUCT_RECEIVER_CHANGE_STATUS(true)} />\r\n :\r\n null\r\n }\r\n \r\n\r\n SET_PRODUCT_RECEIVER(e.target.value)}\r\n disabled={!(PRODUCT_RECEIVER_CHANGE_STATUS && editable)}\r\n >\r\n {!PRODUCT_RECEIVER_CHANGE_STATUS && }\r\n {ProductReceivers?.length > 0 ? ProductReceivers : }\r\n \r\n\r\n \r\n\r\n {PRODUCT_RECEIVER_CHANGE_STATUS &&\r\n\t \r\n\t\t \r\n\t\t\t {`Filtruj`}\r\n\t\t \r\n\t\t setProductReceiversFilter(e.target.value)}\r\n\t\t\t disabled={!(PRODUCT_RECEIVER_CHANGE_STATUS && editable)}\r\n\t\t />\r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default CompartmentProductReceiversComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState, useEffect} from \"react\";\r\n\r\n\r\nimport {Button, Col, Form, Row} from \"react-bootstrap\";\r\n\r\nimport {AiFillDelete, AiFillEdit, AiOutlineCheck, MdCancel, MdChangeCircle} from \"react-icons/all\";\r\n\r\n\r\nimport CompartmentProductsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Compartments/Compartment/Products\";\r\nimport CompartmentProductReceiversComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Compartments/Compartment/Receivers\";\r\n\r\n\r\nimport COMPARTMENT_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Compartment\";\r\nimport PRODUCT_INTERFACE from \"@Services/Application/Interfaces/Products/Product\";\r\n\r\n\r\ntype MonitoryNoteCompartmentsProps = {\r\n editable: boolean;\r\n compartment: [string, COMPARTMENT_INTERFACE];\r\n products?: PRODUCT_INTERFACE[];\r\n compartmentModifyHandler?: any;\r\n compartmentClearHandler?: any;\r\n};\r\n\r\nexport const MonitoryNoteCompartmentComponent: React.FC = ({\r\n editable = false, compartment,\r\n products = null,\r\n compartmentModifyHandler = null, compartmentClearHandler = null\r\n}): JSX.Element | null => {\r\n\r\n\r\n const [compartmentId, compartmentData] = compartment;\r\n\r\n const {\r\n capacity: compartmentCapacity, product: compartmentProductData, DefaultVol: compartmentDefaultVol\r\n } = compartmentData;\r\n\r\n const [compartmentEditActiveStatus, setCompartmentEditActiveStatus] = useState(!!compartmentProductData);\r\n\r\n const changeCompartmentEditActiveStatus = (status: boolean) => {\r\n if (status === false) {\r\n compartmentClearHandler(compartmentId, compartmentActiveProductId);\r\n }\r\n setCompartmentEditActiveStatus(status);\r\n };\r\n\r\n const activeProductId: any = compartmentProductData ? `${compartmentProductData?.DispNo}${compartmentProductData?.ProductMasterNo}${compartmentProductData?.Pos}` : \"\";\r\n const [compartmentActiveProductId, setCompartmentActiveProductId] = useState(activeProductId);\r\n\r\n const changeCompartmentActiveProductId = (e: React.ChangeEvent) => {\r\n const productID = e.target.value;\r\n if (!productID) {\r\n compartmentClearHandler(compartmentId, compartmentActiveProductId);\r\n }\r\n\r\n let product: any = (!!products && !!productID) ? products[productID as any] : null;\r\n let availableQuantity = product?.QtyAvail;\r\n let usedQuantity = 0;\r\n\r\n if (!product) return;\r\n\r\n for (let [id, cap] of Object.entries(product.productCompartments)) {\r\n if (id === compartmentId) continue;\r\n usedQuantity += Number(cap) || 0;\r\n }\r\n\r\n availableQuantity -= usedQuantity;\r\n\r\n let productCapacity = compartmentDefaultVol || 0;\r\n if (productCapacity > availableQuantity) productCapacity = availableQuantity;\r\n if (productCapacity < 0) productCapacity = 0;\r\n if (productCapacity > +(compartmentCapacity || 0)) productCapacity = +(compartmentCapacity || 0);\r\n\r\n setCompartmentActiveProductId(productID);\r\n setCompartmentActiveProductCapacity(productCapacity || \"\"); \r\n };\r\n\r\n const compartmentProduct: any = (!!products && !!compartmentActiveProductId) ? products[compartmentActiveProductId] : null;\r\n const [compartmentActiveProduct, setCompartmentActiveProduct] = useState(compartmentProduct);\r\n\r\n const activeProductCapacity: any = compartmentProduct?.productCompartments && !!compartmentId ? compartmentProduct?.productCompartments[compartmentId] : \"\";\r\n const [compartmentActiveProductCapacity, setCompartmentActiveProductCapacity] = useState(activeProductCapacity);\r\n\r\n const changeCompartmentActiveProductCapacity = (e: React.ChangeEvent) => {\r\n\r\n let productCapacity = +e.target.value;\r\n\r\n let availableQuantity = compartmentProduct?.QtyAvail;\r\n let usedQuantity = 0;\r\n\r\n if (!compartmentProduct) return;\r\n\r\n for (let [id, cap] of Object.entries(compartmentProduct.productCompartments)) {\r\n if (id === compartmentId) continue;\r\n usedQuantity += Number(cap) || 0;\r\n }\r\n\r\n availableQuantity -= usedQuantity;\r\n\r\n if (productCapacity > availableQuantity) productCapacity = availableQuantity;\r\n if (productCapacity < 0) productCapacity = 0;\r\n if (productCapacity > +(compartmentCapacity || 0)) productCapacity = +(compartmentCapacity || 0);\r\n\r\n setCompartmentActiveProductCapacity(productCapacity);\r\n\r\n compartmentModifyHandler(\r\n compartmentId,\r\n compartmentActiveProductId, productCapacity, compartmentProductReceiver\r\n );\r\n\r\n };\r\n\r\n const [compartmentProductReceiver, setCompartmentProductReceiver] = useState(compartmentProduct?.ReceiverMasterNo || \"\");\r\n\r\n const changeCompartmentProductReceiver = (receiverId: string) => {\r\n setCompartmentProductReceiver(receiverId);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (activeProductId === compartmentActiveProductId || !compartmentActiveProductId) return;\r\n compartmentModifyHandler(\r\n compartmentId,\r\n compartmentActiveProductId,\r\n compartmentActiveProductCapacity,\r\n // compartmentProductReceiver\r\n );\r\n }, [compartmentActiveProductId, compartmentActiveProductCapacity]);\r\n\r\n useEffect(() => {\r\n if (!compartmentProductReceiver || !compartmentActiveProductId) return;\r\n if (compartmentProductReceiver === compartmentProduct.ReceiverMasterNo) return;\r\n compartmentModifyHandler(\r\n compartmentId,\r\n compartmentActiveProductId,\r\n compartmentActiveProductCapacity,\r\n compartmentProductReceiver\r\n );\r\n }, [compartmentProductReceiver]);\r\n\r\n useEffect(() => {\r\n setCompartmentActiveProductId(activeProductId);\r\n }, [activeProductId]);\r\n\r\n useEffect(() => {\r\n setCompartmentActiveProduct(compartmentProduct);\r\n }, [compartmentActiveProductId]);\r\n\r\n useEffect(() => {\r\n setCompartmentEditActiveStatus(!!compartmentProduct);\r\n setCompartmentProductReceiver(compartmentProduct?.ReceiverMasterNo || \"\");\r\n setCompartmentActiveProductCapacity(compartmentProduct?.productCompartments[compartmentId] || \"\");\r\n }, [compartmentProduct, compartmentActiveProductId]);\r\n\r\n\r\n const compartmentPosition: string = compartmentId[1];\r\n const compartmentVehicle: string = compartmentId[0];\r\n\r\n const VEHICLES: any = {\"F\": \"Pojazd Przedni\", \"R\": \"Pojazd Tylny\"};\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n editable ? changeCompartmentEditActiveStatus(!compartmentEditActiveStatus) : null}>\r\n {compartmentEditActiveStatus && }\r\n \r\n {VEHICLES[compartmentVehicle]}\r\n {`/`}\r\n Komora {compartmentPosition}\r\n \r\n\r\n {compartmentEditActiveStatus &&\r\n <>\r\n\r\n \r\n\r\n {!!compartmentActiveProduct &&\r\n\t \r\n }\r\n\r\n \r\n }\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteCompartmentComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState} from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\nimport {AiOutlineCheck} from \"react-icons/all\";\r\n\r\n\r\nimport MonitoryNoteCompartmentComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Compartments/Compartment\";\r\n\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport COMPARTMENT_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Compartment\";\r\n\r\n\r\n\r\ntype MonitoryNoteCompartmentsProps = {\r\n EDITABLE?: boolean;\r\n compartmentModifyHandler?: any;\r\n compartmentClearHandler?: any;\r\n MONITORY_NOTE: MONITORY_NOTE_INTERFACE | null;\r\n MONITORY_NOTE_ACTION_TYPE?: \"creation\" | null;\r\n MONITORY_NOTE_DETAILED_STATUS?: boolean | null;\r\n MONITORY_NOTE_DETAILED_STATUS_HANDLER?: any;\r\n LOAD_CONTENT?: boolean;\r\n};\r\n\r\n\r\nexport const MonitoryNoteCompartmentsComponent: React.FC = ({\r\n MONITORY_NOTE, MONITORY_NOTE_ACTION_TYPE = null,\r\n MONITORY_NOTE_DETAILED_STATUS, MONITORY_NOTE_DETAILED_STATUS_HANDLER,\r\n compartmentModifyHandler = null,\r\n compartmentClearHandler = null,\r\n EDITABLE = true, LOAD_CONTENT = true\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!MONITORY_NOTE || !MONITORY_NOTE?.CompartmentsList) return null;\r\n\r\n\r\n if (!LOAD_CONTENT) return null;\r\n\r\n\r\n const CompartmentsList = Object.entries(MONITORY_NOTE?.CompartmentsList).map((compartment: any) => {\r\n\r\n return (\r\n \r\n );\r\n\r\n });\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n EDITABLE ? MONITORY_NOTE_DETAILED_STATUS_HANDLER(!MONITORY_NOTE_DETAILED_STATUS) : null}>{MONITORY_NOTE_DETAILED_STATUS && }\r\n {`Plan załadunku`}\r\n \r\n\r\n {!!MONITORY_NOTE_DETAILED_STATUS && CompartmentsList}\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteCompartmentsComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\n\r\nimport {Col, Form, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\nimport ContentInformationComponent from \"@Components/UI/Content/Information\";\r\n\r\n\r\ntype MonitoryNoteScheduleWindowProps = {\r\n MONITORY_NOTE: MONITORY_NOTE_INTERFACE | null;\r\n MONITORY_NOTE_HANDLER?(MONITORY_NOTE: MONITORY_NOTE_INTERFACE): void;\r\n MONITORY_NOTE_ACTION_TYPE?: \"edition\" | \"creation\" | \"submit\" | \"delete\";\r\n EDITABLE?: boolean;\r\n LOAD_CONTENT?: boolean;\r\n SCHEDULE_WINDOW_LOADED_STATUS_HANDLER(status: boolean): void;\r\n};\r\n\r\n\r\nexport const MonitoryNoteScheduleWindowComponent: React.FC = ({\r\n MONITORY_NOTE, MONITORY_NOTE_HANDLER = null,\r\n MONITORY_NOTE_ACTION_TYPE = \"edition\",\r\n EDITABLE = true,\r\n LOAD_CONTENT = true,\r\n SCHEDULE_WINDOW_LOADED_STATUS_HANDLER\r\n}): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(state => state.api);\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [MONITORY_NOTE_SCHEDULE_WINDOW, SET_MONITORY_NOTE_SCHEDULE_WINDOW] = useState(null);\r\n const [MONITORY_NOTE_SCHEDULE_WINDOW_ERROR, SET_MONITORY_NOTE_SCHEDULE_WINDOW_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE) return;\r\n\r\n if (MONITORY_NOTE_SCHEDULE_WINDOW) return;\r\n\r\n const GET_MONITORY_NOTE_SCHEDULE_WINDOW = async () => {\r\n\r\n const SCHEDULE_WINDOW_REQUEST_BODY: any = {\r\n UserId: LOGGED_USER?.userID || null,\r\n TerminalNo: MONITORY_NOTE.TerminalNo,\r\n FrontTruckRegNo: MONITORY_NOTE.FrontTruckRegNo || null,\r\n RearTruckRegNo: MONITORY_NOTE.RearTruckRegNo || null,\r\n Disps: MONITORY_NOTE.Disps\r\n };\r\n\r\n if (MONITORY_NOTE_ACTION_TYPE !== \"creation\") SCHEDULE_WINDOW_REQUEST_BODY[\"TransportNotificationNo\"] = MONITORY_NOTE?.TransportNotificationNo;\r\n\r\n try {\r\n\r\n const SCHEDULE_WINDOW_API_URL: string = REST_API_URL + \"/TransportNotification/Schedule\";\r\n\r\n const SCHEDULE_WINDOW_RESPONSE = await REST_API_REQUEST(\r\n SCHEDULE_WINDOW_API_URL,\r\n SCHEDULE_WINDOW_REQUEST_BODY,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (SCHEDULE_WINDOW_RESPONSE.status === 200) {\r\n\r\n const CONTENT: any = await SCHEDULE_WINDOW_RESPONSE.text();\r\n SET_MONITORY_NOTE_SCHEDULE_WINDOW(CONTENT.trim() ? JSON.parse(CONTENT)?.Schedules : []);\r\n\r\n if (!!SCHEDULE_WINDOW_LOADED_STATUS_HANDLER) SCHEDULE_WINDOW_LOADED_STATUS_HANDLER(true);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await SCHEDULE_WINDOW_RESPONSE.json();\r\n SET_MONITORY_NOTE_SCHEDULE_WINDOW_ERROR({ErrorCode: SCHEDULE_WINDOW_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTE_SCHEDULE_WINDOW_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_MONITORY_NOTE_SCHEDULE_WINDOW();\r\n\r\n }, [MONITORY_NOTE?.Disps]);\r\n\r\n\r\n const SCHEDULE_DATE = MONITORY_NOTE?.ProcessStartDate?.slice(0, 10) || \"0\";\r\n const SCHEDULE_ID = MONITORY_NOTE?.ScheduleId || \"\";\r\n\r\n const [selectedScheduleDate, setSelectedScheduleDate] = useState(SCHEDULE_DATE);\r\n const [selectedScheduleId, setSelectedScheduleId] = useState(SCHEDULE_ID);\r\n\r\n const changeSelectedScheduleDate = (e: React.ChangeEvent) => {\r\n const selectedScheduleDate = e.target.value;\r\n setSelectedScheduleId(\"0\");\r\n setSelectedScheduleDate(selectedScheduleDate);\r\n if (MONITORY_NOTE_HANDLER) {\r\n MONITORY_NOTE_HANDLER({...MONITORY_NOTE, ScheduleId: null, IsBooked: false, ProcessStartDate: selectedScheduleDate}); \r\n }\r\n };\r\n\r\n const changeSelectedScheduleId = (e: React.ChangeEvent) => {\r\n const selectedScheduleId = e.target.value;\r\n setSelectedScheduleId(selectedScheduleId);\r\n if (MONITORY_NOTE_HANDLER) {\r\n MONITORY_NOTE_HANDLER({...MONITORY_NOTE, ScheduleId: selectedScheduleId, IsBooked: !!selectedScheduleId});\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_MONITORY_NOTE_SCHEDULE_WINDOW(null);\r\n SET_MONITORY_NOTE_SCHEDULE_WINDOW_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOAD_CONTENT) return null;\r\n\r\n\r\n if (!MONITORY_NOTE_SCHEDULE_WINDOW) return null;\r\n\r\n\r\n if (MONITORY_NOTE_SCHEDULE_WINDOW_ERROR) return ;\r\n\r\n const SCHEDULE_WINDOW_LIST = MONITORY_NOTE_SCHEDULE_WINDOW.map(\r\n (schedule: any) => [schedule?.Date, {scheduleId: schedule?.ScheduleId, scheduleTime: schedule?.Time}]\r\n );\r\n\r\n const SCHEDULE_WINDOW: any = {};\r\n\r\n for (let [scheduleDate, scheduleData] of SCHEDULE_WINDOW_LIST) {\r\n if (!SCHEDULE_WINDOW[scheduleDate]) SCHEDULE_WINDOW[scheduleDate] = [];\r\n SCHEDULE_WINDOW[scheduleDate].push(scheduleData);\r\n }\r\n\r\n const SCHEDULE_WINDOW_DATES = Object.keys(SCHEDULE_WINDOW);\r\n const ScheduleWindowDates = SCHEDULE_WINDOW_DATES.map((scheduleDate) =>\r\n \r\n );\r\n\r\n const SCHEDULE_WINDOW_TIMES = SCHEDULE_WINDOW[selectedScheduleDate] || [];\r\n const ScheduleWindowTimes = SCHEDULE_WINDOW_TIMES.map((schedule: any) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {`Okno czasowe`}\r\n \r\n\r\n {!!MONITORY_NOTE_SCHEDULE_WINDOW && MONITORY_NOTE_SCHEDULE_WINDOW.length > 0 ?\r\n \r\n \r\n\r\n \r\n \r\n \r\n {ScheduleWindowDates}\r\n \r\n \r\n\r\n {selectedScheduleDate !== \"0\" && SCHEDULE_WINDOW_DATES.includes(selectedScheduleDate) &&\r\n\t \r\n\t\t \r\n \r\n {ScheduleWindowTimes}\r\n\t\t \r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteScheduleWindowComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState} from \"react\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\n\r\n\r\nimport {Col, Form, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport {MONITORY_NOTE_DATA_INTERFACE} from \"@UIPages/Authenticated/MonitoryNotes/Create\";\r\n\r\n\r\ntype MonitoryNoteInformationProps = {\r\n MONITORY_NOTE_PROCESS_TYPE: \"creation\" | \"edition\" | \"submitting\";\r\n MONITORY_NOTE: MONITORY_NOTE_INTERFACE | null;\r\n MONITORY_NOTE_HANDLER?(MONITORY_NOTE: MONITORY_NOTE_INTERFACE): void;\r\n MONITORY_NOTE_DATA?: MONITORY_NOTE_DATA_INTERFACE;\r\n EDITABLE?: boolean;\r\n LOAD_CONTENT?: boolean;\r\n LOAD_CONTENT_HANDLER?(STATUS: boolean): void;\r\n};\r\n\r\nexport const MonitoryNoteInformationComponent: React.FC = ({\r\n MONITORY_NOTE_PROCESS_TYPE = \"edition\",\r\n MONITORY_NOTE, MONITORY_NOTE_HANDLER = null, MONITORY_NOTE_DATA = null,\r\n EDITABLE = true,\r\n LOAD_CONTENT = true, LOAD_CONTENT_HANDLER\r\n}): JSX.Element | null => {\r\n\r\n\r\n const [selectedFrontTruck, setSelectedFrontTruck] = useState(MONITORY_NOTE?.FrontTruckRegNo || \"\");\r\n\r\n const changeSelectedFrontTruck = (e: React.ChangeEvent) => {\r\n const selectedFrontTruckRegNo = e.target.value;\r\n setSelectedFrontTruck(selectedFrontTruckRegNo);\r\n if (!!MONITORY_NOTE_HANDLER) {\r\n MONITORY_NOTE_HANDLER({...MONITORY_NOTE, FrontTruckRegNo: selectedFrontTruckRegNo});\r\n }\r\n };\r\n\r\n\r\n if (!MONITORY_NOTE || !MONITORY_NOTE?.Disps || !MONITORY_NOTE?.FrontTruckRegNo) return null;\r\n\r\n\r\n if (!LOAD_CONTENT) return null;\r\n\r\n\r\n const frontVehicleIsTank: boolean = !!MONITORY_NOTE_DATA?.VEHICLES?.FRONT?.IsTank;\r\n\r\n\r\n const availableMonitoryNoteVehicles = new Set();\r\n\r\n if (!frontVehicleIsTank) {\r\n for (let monitoryNoteDisposition of MONITORY_NOTE?.Disps) {\r\n const {DispVehicles: dispositionVehicles} = monitoryNoteDisposition;\r\n if (!dispositionVehicles) continue;\r\n for (let dispositionVehicle of dispositionVehicles) {\r\n const {\r\n IsTank: vehicleIsTankStatus, IsFront: vehicleIsFrontStatus, RegNo: vehicleRegistrationNumber\r\n } = dispositionVehicle;\r\n if (vehicleIsTankStatus || !vehicleIsFrontStatus) continue;\r\n availableMonitoryNoteVehicles.add(vehicleRegistrationNumber);\r\n }\r\n }\r\n }\r\n\r\n const monitoryNoteFrontVehicles = Array.from(availableMonitoryNoteVehicles);\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {(!!MONITORY_NOTE_DATA?.TERMINAL?.TERMINAL_NAME || !!MONITORY_NOTE?.TerminalNo) &&\r\n\t \r\n\t\t {`Baza Paliw`} {MONITORY_NOTE_DATA?.TERMINAL?.TERMINAL_NAME || MONITORY_NOTE?.TerminalNo}\r\n\t \r\n }\r\n\r\n \r\n \r\n \r\n {`Pojazd przedni`}:\r\n 0 && MONITORY_NOTE_PROCESS_TYPE === \"edition\" && EDITABLE)}>\r\n {frontVehicleIsTank && }\r\n {monitoryNoteFrontVehicles.map((vehicleRegNo: any) =>\r\n \r\n )}\r\n \r\n \r\n \r\n {`Pojazd tylny`}:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteInformationComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\nimport {Button, Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\n\r\nimport MonitoryNoteDispositionsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Dispositions\";\r\nimport MonitoryNoteCompartmentsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Compartments\";\r\n\r\n\r\nimport MonitoryNoteScheduleWindowComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/ScheduleWindow\";\r\nimport scrollToDomElement from \"@Utilities/Animations/Scrolling\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\nimport MonitoryNoteInformationComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/NoteInformation\";\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport DISPOSITION_INTERFACE from \"@Services/Application/Interfaces/Dispositions/Disposition\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport MonitoryNotePictureComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Picture\";\r\nimport COMPARTMENT_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Compartment\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport {CHANGE_API_REQUEST_TOKEN} from \"@Actions/Api\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\nimport ContentInformationComponent from \"@Components/UI/Content/Information\";\r\nimport CHANGE_MODAL_MESSAGE_ACTION from \"@Actions/Interface/ChangeModalMessage\";\r\nimport MainContentLoaderComponent from \"@Components/UI/Loaders/MainContent\";\r\nimport RestApiRequestLoaderComponent from \"@Components/UI/Loaders/ApiRequest\";\r\n\r\n\r\nexport interface MONITORY_NOTE_DATA_INTERFACE {\r\n DISPOSITIONS?: string[];\r\n TERMINAL?: {TERMINAL_NAME?: string; TERMINAL_ID?: string}\r\n VEHICLES?: {FRONT?: VEHICLE_INTERFACE; REAR?: VEHICLE_INTERFACE};\r\n}\r\n\r\n\r\ntype CreateMonitoryNotePageProps = {location: any};\r\n\r\n\r\nexport const CreateMonitoryNotePageComponent: React.FC = ({\r\n location\r\n}): JSX.Element | null => {\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const MONITORY_NOTE_DATA: MONITORY_NOTE_DATA_INTERFACE = location?.state;\r\n\r\n\r\n const {\r\n DISPOSITIONS, TERMINAL, VEHICLES\r\n } = MONITORY_NOTE_DATA;\r\n\r\n\r\n const [MONITORY_NOTE_SUBMIT_SUCCESS, SET_MONITORY_SUBMIT_SUCCESS] = useState(false);\r\n\r\n\r\n const MONITORY_NOTE_DEFAULTS: MONITORY_NOTE_INTERFACE = {\r\n UserId: LOGGED_USER?.userID,\r\n TerminalNo: TERMINAL?.TERMINAL_ID || null,\r\n ScheduleId: null,\r\n FrontTruckRegNo: VEHICLES?.FRONT?.RegNo || null,\r\n RearTruckRegNo: VEHICLES?.REAR?.RegNo || null,\r\n IsBooked: false,\r\n IsDetailed: false,\r\n Disps: [],\r\n Compartments: [],\r\n CompartmentsList: {},\r\n Products: null,\r\n ProductsList: {}\r\n };\r\n\r\n const [MONITORY_NOTE_LOADED_STATUS, SET_MONITORY_NOTE_LOADED_STATUS] = useState(false);\r\n\r\n const [MONITORY_NOTE, SET_MONITORY_NOTE] = useState(MONITORY_NOTE_DEFAULTS);\r\n const [MONITORY_NOTE_ERROR, SET_MONITORY_NOTE_ERROR] = useState(null);\r\n\r\n const [MONITORY_NOTE_IS_DETAILED_STATUS, SET_MONITORY_NOTE_IS_DETAILED_STATUS] = useState(true);\r\n\r\n const [SCHEDULE_WINDOW_LOADED_STATUS, SET_SCHEDULE_WINDOW_LOADED_STATUS] = useState(false);\r\n\r\n const [COMPONENT_SCROLL_HANDLER, SET_COMPONENT_SCROLL_HANDLER] = useState(false);\r\n\r\n useEffect(() => {\r\n if (COMPONENT_REF && COMPONENT_REF?.current) {\r\n scrollToDomElement(COMPONENT_REF, 100);\r\n }\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n if (COMPONENT_SCROLL_HANDLER) {\r\n scrollToDomElement(COMPONENT_REF, 100);\r\n SET_COMPONENT_SCROLL_HANDLER(false);\r\n }\r\n }, [COMPONENT_SCROLL_HANDLER]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {SET_MONITORY_NOTE(MONITORY_NOTE_DEFAULTS);};\r\n }, []);\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!REST_API_URL || !LOGGED_USER.userID) return;\r\n\r\n if (!DISPOSITIONS || !DISPOSITIONS.length) SET_MONITORY_NOTE_ERROR({ErrorCode: 400, UserMessage: \"Nie wybrano Dyspozycji\"});\r\n if (!TERMINAL?.TERMINAL_ID) SET_MONITORY_NOTE_ERROR({ErrorCode: 400, UserMessage: \"Nie wybrano Bazy Paliw\"});\r\n if (!VEHICLES?.FRONT?.RegNo && !VEHICLES?.REAR?.RegNo) SET_MONITORY_NOTE_ERROR({ErrorCode: 400, UserMessage: \"Nie wybrano Pojazdów\"});\r\n\r\n const GET_SELECTED_DISPOSITIONS = async (): Promise => {\r\n\r\n const DISPOSITION_API_URL: string = REST_API_URL + \"/Disp/Get\";\r\n\r\n const DISPOSITION_LIST: DISPOSITION_INTERFACE[] = [];\r\n\r\n if (DISPOSITIONS) {\r\n\r\n let TOKEN: AUTHORIZATION_TOKEN_INTERFACE | null = Object.assign({}, REST_API_REQUEST_TOKEN);\r\n\r\n for (let DISPOSITION of DISPOSITIONS) {\r\n\r\n try {\r\n\r\n const DISPOSITION_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n DispNo: DISPOSITION\r\n };\r\n\r\n const DISPOSITION_RESPONSE = await REST_API_REQUEST(\r\n DISPOSITION_API_URL,\r\n DISPOSITION_REQUEST_DATA,\r\n TOKEN\r\n );\r\n\r\n if (DISPOSITION_RESPONSE.status !== 200) continue;\r\n\r\n const DISPOSITION_RESPONSE_CONTENT: DISPOSITION_INTERFACE = await DISPOSITION_RESPONSE.json();\r\n\r\n TOKEN = prepareRestApiRequestToken(DISPOSITION_RESPONSE.headers);\r\n\r\n DISPOSITION_LIST.push(DISPOSITION_RESPONSE_CONTENT)\r\n\r\n } catch (e) {\r\n continue\r\n }\r\n\r\n }\r\n\r\n await DISPATCHER(CHANGE_API_REQUEST_TOKEN_ACTION(TOKEN));\r\n\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, Disps: DISPOSITION_LIST});\r\n\r\n };\r\n\r\n GET_SELECTED_DISPOSITIONS();\r\n\r\n }, [REST_API_URL, DISPOSITIONS]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n const COMPARTMENTS: any = {};\r\n\r\n if (VEHICLES?.FRONT?.IsTank && VEHICLES?.FRONT?.Compartments) {\r\n for (let compartment of VEHICLES?.FRONT?.Compartments) {\r\n COMPARTMENTS[`F${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"F\",\r\n compartmentPosition: `F${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n if (VEHICLES?.REAR?.IsTank && VEHICLES?.REAR?.Compartments) {\r\n for (let compartment of VEHICLES?.REAR?.Compartments) {\r\n COMPARTMENTS[`R${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"R\",\r\n compartmentPosition: `R${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n\r\n const Products: any = {};\r\n\r\n if (MONITORY_NOTE?.Disps) {\r\n for (let disposition of MONITORY_NOTE?.Disps) {\r\n if (!disposition?.DispItems) continue;\r\n for (let product of disposition?.DispItems) {\r\n const productID: string = disposition.DispNo + (product?.ProductMasterNo || product?.ProductShortName || \"\") + product.Pos;\r\n Products[productID] = {...product, DispNo: disposition?.DispNo, productCompartments: {}};\r\n }\r\n }\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, ProductsList: Products, CompartmentsList: COMPARTMENTS});\r\n\r\n }, [MONITORY_NOTE?.FrontTruckRegNo, MONITORY_NOTE?.RearTruckRegNo, MONITORY_NOTE?.Disps]);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n const MODIFY_COMPARTMENT_HANDLER = (compartmentID: any, compartmentProductId: any, compartmentProductCapacity: number, compartmentProductReceiver: string) => {\r\n\r\n const selectedCompartment = MONITORY_NOTE?.CompartmentsList[compartmentID];\r\n const selectedProduct = MONITORY_NOTE?.ProductsList[compartmentProductId];\r\n\r\n if (!selectedProduct) return;\r\n\r\n selectedCompartment.product = selectedProduct;\r\n selectedCompartment.productCapacity = compartmentProductCapacity || 0;\r\n\r\n selectedProduct.productCompartments[compartmentID] = compartmentProductCapacity;\r\n if (compartmentProductReceiver) selectedProduct.ReceiverMasterNo = compartmentProductReceiver;\r\n\r\n SET_MONITORY_NOTE({\r\n ...MONITORY_NOTE,\r\n ProductsList: {...MONITORY_NOTE?.ProductsList, [compartmentProductId]: selectedProduct},\r\n CompartmentsList: {...MONITORY_NOTE?.CompartmentsList, [compartmentID]: selectedCompartment}\r\n });\r\n\r\n };\r\n\r\n\r\n const CLEAR_COMPARTMENT_HANDLER = (compartmentID: any, compartmentProductId: any) => {\r\n\r\n const selectedCompartment = MONITORY_NOTE?.CompartmentsList[compartmentID];\r\n const selectedProduct = MONITORY_NOTE?.ProductsList[compartmentProductId];\r\n\r\n selectedCompartment.product = null;\r\n delete selectedProduct?.productCompartments[compartmentID];\r\n\r\n // SET_MONITORY_NOTE({\r\n // ...MONITORY_NOTE,\r\n // ProductsList: {...MONITORY_NOTE?.ProductsList, [compartmentProductId]: selectedProduct},\r\n // CompartmentsList: {...MONITORY_NOTE?.CompartmentsList, [compartmentID]: selectedCompartment}\r\n // });\r\n\r\n SET_MONITORY_NOTE({\r\n ...MONITORY_NOTE,\r\n ProductsList: {...MONITORY_NOTE?.ProductsList, [compartmentProductId]: selectedProduct},\r\n });\r\n\r\n };\r\n\r\n\r\n const MONITORY_NOTE_CREATE_SUBMIT_HANDLER = async (): Promise => {\r\n\r\n const selectedCompartments: any = MONITORY_NOTE?.CompartmentsList ? Object.values(MONITORY_NOTE?.CompartmentsList).filter(\r\n (compartment: any) => !!compartment?.product\r\n ) : null;\r\n\r\n const requestCompartments: COMPARTMENT_INTERFACE[] = [];\r\n\r\n if (selectedCompartments && MONITORY_NOTE_IS_DETAILED_STATUS) {\r\n\r\n const DISPOSITION_PRODUCTS: any = {};\r\n\r\n if (MONITORY_NOTE?.Disps) {\r\n for (let disposition of MONITORY_NOTE.Disps) {\r\n if (disposition.DispItems) {\r\n for (let product of disposition.DispItems) {\r\n if (product.ProductMasterNo) {\r\n DISPOSITION_PRODUCTS[product.ProductMasterNo] = disposition.DispNo;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let compartment of selectedCompartments) {\r\n\r\n const {\r\n compartmentPosition, compartmentVehicle,\r\n product, productCapacity\r\n } = compartment;\r\n\r\n if (!product || !compartmentVehicle) continue;\r\n\r\n if (+productCapacity < 500) continue;\r\n\r\n let compartmentVehicleRegNo: string = \"\";\r\n if (compartmentVehicle === \"F\") compartmentVehicleRegNo = MONITORY_NOTE?.FrontTruckRegNo || \"\";\r\n if (compartmentVehicle === \"R\") compartmentVehicleRegNo = MONITORY_NOTE?.RearTruckRegNo || \"\";\r\n\r\n requestCompartments.push({\r\n Pos: +compartmentPosition[1], TruckRegNo: compartmentVehicleRegNo,\r\n DispNo: product.DispNo, DispPos: product.Pos,\r\n Qty: +productCapacity,\r\n ReceiverMasterNo: product.ReceiverMasterNo\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n if (MONITORY_NOTE_IS_DETAILED_STATUS && requestCompartments.length < 1) {\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 1, UserMessage: \"Jeśli plan załadunku jest aktywny, przynajmniej jedna komora powinna zawierać w pełni skonfiigurowany produkt\"})\r\n SET_COMPONENT_SCROLL_HANDLER(true);\r\n return;\r\n }\r\n\r\n const REQUEST_BODY: any = {\r\n UserId: LOGGED_USER?.userID,\r\n TerminalNo: TERMINAL?.TERMINAL_ID,\r\n FrontTruckRegNo: MONITORY_NOTE?.FrontTruckRegNo || null,\r\n RearTruckRegNo: MONITORY_NOTE?.RearTruckRegNo || null,\r\n Compartments: requestCompartments,\r\n Disps: MONITORY_NOTE?.Disps,\r\n ScheduleId: MONITORY_NOTE?.ScheduleId || null,\r\n IsBooked: !!MONITORY_NOTE?.ScheduleId,\r\n IsDetailed: !!requestCompartments?.length\r\n };\r\n\r\n await MONITORY_NOTE_CREATE_REQUEST_HANDLER(REQUEST_BODY);\r\n\r\n };\r\n\r\n\r\n const MONITORY_NOTE_CREATE_REQUEST_HANDLER = async (REQUEST_BODY: any) => {\r\n\r\n try {\r\n\r\n const MONITORY_NOTE_API_URL: string = REST_API_URL + \"/TransportNotification\";\r\n\r\n const MONITORY_NOTE_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTE_API_URL,\r\n REQUEST_BODY,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (MONITORY_NOTE_RESPONSE.status === 204) {\r\n\r\n SET_MONITORY_NOTE(MONITORY_NOTE_DEFAULTS);\r\n SET_MONITORY_SUBMIT_SUCCESS(true);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTE_RESPONSE.json();\r\n SET_MONITORY_NOTE_ERROR({UserMessage: CONTENT?.UserMessage, ErrorCode: MONITORY_NOTE_RESPONSE.status});\r\n SET_COMPONENT_SCROLL_HANDLER(true);\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTE_ERROR({UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\", ErrorCode: 500});\r\n SET_COMPONENT_SCROLL_HANDLER(true);\r\n }\r\n\r\n };\r\n\r\n\r\n if (MONITORY_NOTE_SUBMIT_SUCCESS === true) {\r\n return ;\r\n }\r\n\r\n\r\n if (!MONITORY_NOTE?.Disps) return ;\r\n\r\n\r\n if (!MONITORY_NOTE?.Disps?.length) return ;\r\n\r\n\r\n const LOADED = !!MONITORY_NOTE && !!VEHICLES && !!MONITORY_NOTE?.CompartmentsList && !!MONITORY_NOTE?.ProductsList && MONITORY_NOTE_IS_DETAILED_STATUS !== null;\r\n\r\n\r\n if (!LOADED) return null;\r\n\r\n\r\n const removeDispositionHandler = (disposition: DISPOSITION_INTERFACE, remove = true) => {\r\n\r\n if (!MONITORY_NOTE?.Disps) return;\r\n\r\n if (!remove) {\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, Disps: [...MONITORY_NOTE.Disps, disposition]});\r\n return;\r\n }\r\n\r\n if (MONITORY_NOTE?.Disps.length < 2) {\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(\r\n \"Nie można usunąć dyspozycji - awizacja musi posiadać przynajmniej jedną dyspozycję.\",\r\n ));\r\n return;\r\n }\r\n\r\n const removeDisposition = () => {\r\n if (!MONITORY_NOTE?.Disps) return;\r\n const updatedDispositions = MONITORY_NOTE.Disps.filter((disp) => disp.DispNo !== disposition.DispNo);\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, Disps: updatedDispositions});\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(null));\r\n };\r\n\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(\r\n \"Anulowanie dyspozycji spowoduje usunięcie pozycji planu załadunku związanego z tą dyspozycją. Czy chcesz kontynuować ? \",\r\n \"DEFAULT\",\r\n removeDisposition,\r\n () => {}\r\n ));\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!MONITORY_NOTE_ERROR && }\r\n\r\n {!MONITORY_NOTE_LOADED_STATUS && !REST_API_REQUEST_STATUS && }\r\n\r\n {!!MONITORY_NOTE &&\r\n\t \r\n }\r\n\r\n {!!MONITORY_NOTE && SCHEDULE_WINDOW_LOADED_STATUS &&\r\n\t \r\n }\r\n\r\n {!!MONITORY_NOTE &&\r\n\t \r\n }\r\n\r\n {!!MONITORY_NOTE &&\r\n\t \r\n }\r\n\r\n <>\r\n {!!MONITORY_NOTE_LOADED_STATUS && (MONITORY_NOTE.ProcessStartDate == undefined || MONITORY_NOTE.ProcessStartDate == '0' || MONITORY_NOTE.IsBooked) &&\r\n\t\t MONITORY_NOTE_CREATE_SUBMIT_HANDLER()}>\r\n\t\t\t \r\n\t\t \r\n }\r\n \r\n\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default CreateMonitoryNotePageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Button, Col, Row} from \"react-bootstrap\";\r\n\r\nimport {BsCheckLg, BsExclamationLg} from \"react-icons/all\";\r\n\r\nimport {BeatLoader} from \"react-spinners\";\r\n\r\n\r\ntype MonitoryNoteSubmitStatusProps = {\r\n STATUS: 0 | 1 | -1 | -2;\r\n MESSAGE: string;\r\n SUCCESS_STATUS_BUTTON_HANDLER(): void;\r\n ERROR_STATUS_BUTTON_HANDLER(status: number): void;\r\n};\r\n\r\nexport const MonitoryNoteSubmitStatusComponent: React.FC = ({\r\n STATUS, MESSAGE,\r\n SUCCESS_STATUS_BUTTON_HANDLER, ERROR_STATUS_BUTTON_HANDLER\r\n}) : JSX.Element | null => {\r\n\r\n\r\n const STATUS_BUTTON_HANDLER = () => {\r\n if (STATUS === 1) {\r\n return SUCCESS_STATUS_BUTTON_HANDLER();\r\n } else if (STATUS === -1) {\r\n return ERROR_STATUS_BUTTON_HANDLER(-1);\r\n }\r\n return ERROR_STATUS_BUTTON_HANDLER(0);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {STATUS === 0 && {MESSAGE}}\r\n {STATUS === 0 && }\r\n {STATUS === 1 && }\r\n {STATUS === -1 || STATUS === -2 && }\r\n \r\n\r\n {(STATUS === 1 || STATUS === -1 || STATUS === -2) &&\r\n\t \r\n {MESSAGE}\r\n\t \r\n }\r\n\r\n {(STATUS === 1 || STATUS === -1 || STATUS === -2) &&\r\n\t \r\n\t\t \r\n\t \r\n }\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteSubmitStatusComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Location} from \"history\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Button, Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport WarningMessageComponent from \"@Components/UI/Communicates/Messages/Warning\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\nimport MonitoryNoteInformationComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/NoteInformation\";\r\nimport MonitoryNoteDispositionsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Dispositions\";\r\nimport MonitoryNoteCompartmentsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Compartments\";\r\n\r\n\r\nimport PETROL_TERMINAL_IMAGE from \"@Images/petrol_terminal.jpg\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport MonitoryNotePictureComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Picture\";\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\nimport BlockContentPictureComponent from \"@Components/UI/Containers/Block/Picture\";\r\nimport MonitoryNoteScheduleWindowComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/ScheduleWindow\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\nimport MonitoryNoteSubmitStatusComponent from \"@UIPages/Authenticated/MonitoryNotes/DeclareArrival/SubmitStatus\";\r\nimport MainContentLoaderComponent from \"@Components/UI/Loaders/MainContent\";\r\nimport RestApiRequestLoaderComponent from \"@Components/UI/Loaders/ApiRequest\";\r\n\r\n\r\n\r\ninterface LocationInterface {\r\n from: {pathname: string};\r\n monitoryNoteId: string | number;\r\n terminalName: string;\r\n}\r\n\r\ntype DeclareArrivalPageProps = {location: any};\r\n\r\n\r\nconst DEFAULT_REQUEST_HEADERS: HeadersInit = {\"content-Type\": \"application/json\"};\r\n\r\n\r\nexport const DeclareArrivalPageComponent: React.FC = ({\r\n location\r\n}): JSX.Element | null => {\r\n\r\n\r\n const MONITORY_NOTE_ID = location.state.monitoryNoteId;\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n\r\n /** @type {UserInterface | null} Application Logged User (from Global Store Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [MONITORY_NOTE_LOADED_STATUS, SET_MONITORY_NOTE_LOADED_STATUS] = useState(false);\r\n\r\n\r\n const [MONITORY_NOTE, SET_MONITORY_NOTE] = useState(null);\r\n const [MONITORY_NOTE_ERROR, SET_MONITORY_NOTE_ERROR] = useState(null);\r\n\r\n const [MONITORY_NOTE_SUBMIT_STATUS, SET_MONITORY_NOTE_SUBMIT_STATUS] = useState(false);\r\n const [MONITORY_NOTE_SUBMIT_STATUS_ERROR, SET_MONITORY_NOTE_SUBMIT_STATUS_ERROR] = useState(0);\r\n\r\n const [MONITORY_NOTE_STATUS_DISPLAY, SET_MONITORY_NOTE_STATUS_DISPLAY] = useState(null);\r\n\r\n const [SCHEDULE_WINDOW_LOADED_STATUS, SET_SCHEDULE_WINDOW_LOADED_STATUS] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE_ID) return;\r\n\r\n if (!!MONITORY_NOTE) return;\r\n\r\n const MONITORY_NOTE_API_URL: string = REST_API_URL + \"/TransportNotification/Get\";\r\n\r\n interface MONITORY_NOTE_REQUEST_DATA_INTERFACE {\r\n UserId: number | string,\r\n TransportNotificationNo: number | string\r\n }\r\n\r\n const MONITORY_NOTE_REQUEST_DATA: MONITORY_NOTE_REQUEST_DATA_INTERFACE = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n TransportNotificationNo: MONITORY_NOTE_ID // Monitory Note ID\r\n };\r\n\r\n interface MonitoryNoteResponseInterface {\r\n ProcessStartDate?: string; // DateTime string for Process Start\r\n MinDelayForSubmit?: number; // Minutes before Process Start\r\n Compartments?: any // List of Monitory Note Vehicle Compartments\r\n }\r\n\r\n const GET_MONITORY_NOTE = async (): Promise => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true)); // Set Status to true\r\n\r\n try {\r\n /** @const {Response} REST API Monitory Note Data Response */\r\n const MONITORY_NOTE_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTE_API_URL,\r\n MONITORY_NOTE_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (MONITORY_NOTE_RESPONSE.status === 200) { // Success Response\r\n\r\n const CONTENT: MonitoryNoteResponseInterface = await MONITORY_NOTE_RESPONSE.json(); // JSON Object\r\n SET_MONITORY_NOTE(CONTENT); // Set Monitory Note Data new State\r\n\r\n } else { // Error Response\r\n\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTE_RESPONSE.json();\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: MONITORY_NOTE_RESPONSE.status, UserMessage: CONTENT.UserMessage}); // Set Monitory Note Page Error\r\n\r\n }\r\n } catch (e) { // Error Appeared\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"}); // Set Monitory Note Page Error\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_MONITORY_NOTE();\r\n\r\n }, [MONITORY_NOTE_ID]);\r\n\r\n\r\n const [VEHICLES_LIST, SET_VEHICLES_LIST] = useState(null);\r\n const [VEHICLES_LIST_ERROR, SET_VEHICLES_LIST_ERROR] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE) return;\r\n\r\n if (VEHICLES_LIST) return;\r\n\r\n const VEHICLES_LIST_API_URL = REST_API_URL + \"/Vehicle/List\";\r\n\r\n const VEHICLES_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n Mode: \"A\",\r\n Favourite: false\r\n };\r\n\r\n const GET_VEHICLES_LIST = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const VEHICLES_RESPONSE = await REST_API_REQUEST(\r\n VEHICLES_LIST_API_URL,\r\n VEHICLES_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (VEHICLES_RESPONSE.status === 200) {\r\n\r\n const CONTENT: string = await VEHICLES_RESPONSE.text();\r\n SET_VEHICLES_LIST(CONTENT.trim() ? JSON.parse(CONTENT)?.Vehicles : []);\r\n\r\n } else {\r\n\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n\r\n }\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_VEHICLES_LIST();\r\n\r\n }, [MONITORY_NOTE]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n const COMPARTMENTS: any = {};\r\n\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return;\r\n\r\n if (!!MONITORY_NOTE?.CompartmentsList) return;\r\n\r\n const VEHICLES: any = Object.fromEntries(VEHICLES_LIST?.map((vehicle: VEHICLE_INTERFACE) => [vehicle.RegNo, vehicle]));\r\n\r\n const SELECTED_FRONT_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n const SELECTED_REAR_VEHICLE = VEHICLES[MONITORY_NOTE?.RearTruckRegNo || \"\"];\r\n\r\n if (SELECTED_FRONT_VEHICLE?.IsTank && SELECTED_FRONT_VEHICLE?.Compartments) {\r\n for (let compartment of SELECTED_FRONT_VEHICLE?.Compartments) {\r\n COMPARTMENTS[`F${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"F\",\r\n compartmentPosition: `F${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n if (SELECTED_REAR_VEHICLE?.IsTank && SELECTED_REAR_VEHICLE?.Compartments) {\r\n for (let compartment of SELECTED_REAR_VEHICLE?.Compartments) {\r\n COMPARTMENTS[`R${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"R\",\r\n compartmentPosition: `R${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, CompartmentsList: COMPARTMENTS});\r\n\r\n }, [MONITORY_NOTE?.FrontTruckRegNo, VEHICLES_LIST]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE?.CompartmentsList) return;\r\n\r\n const Products: any = {};\r\n\r\n if (MONITORY_NOTE?.Disps) {\r\n for (let disposition of MONITORY_NOTE?.Disps) {\r\n if (!disposition?.DispItems) continue;\r\n for (let product of disposition?.DispItems) {\r\n const productID: string = disposition.DispNo + (product?.ProductMasterNo || product?.ProductShortName || \"\") + product.Pos;\r\n Products[productID] = {...product, DispNo: disposition?.DispNo, productCompartments: {}};\r\n }\r\n }\r\n }\r\n\r\n if (MONITORY_NOTE?.Compartments) {\r\n for (let compartment of MONITORY_NOTE?.Compartments) {\r\n let compartmentVehicle: string = \"\";\r\n if (compartment?.TruckRegNo === MONITORY_NOTE?.FrontTruckRegNo) compartmentVehicle = \"F\";\r\n if (compartment?.TruckRegNo === MONITORY_NOTE?.RearTruckRegNo) compartmentVehicle = \"R\";\r\n if (!compartmentVehicle) continue;\r\n const COMPARTMENT_ID = `${compartmentVehicle}${compartment?.Pos}`;\r\n const COMPARTMENT = MONITORY_NOTE?.CompartmentsList[COMPARTMENT_ID];\r\n const PRODUCT: any = Products[`${compartment.DispNo}${compartment?.ProductMasterNo}${compartment.DispPos}` || \"\"] || null; // SZTYWNO!\r\n COMPARTMENT.product = PRODUCT;\r\n COMPARTMENT.productCapacity = compartment.Qty;\r\n if (PRODUCT) PRODUCT.productCompartments[COMPARTMENT_ID] = compartment.Qty;\r\n }\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, ProductsList: Products});\r\n\r\n }, [MONITORY_NOTE?.CompartmentsList]);\r\n\r\n\r\n const [MONITORY_NOTE_DETAILED_STATUS, SET_MONITORY_NOTE_DETAILED_STATUS] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return;\r\n SET_MONITORY_NOTE_DETAILED_STATUS(!!MONITORY_NOTE?.Compartments?.length);\r\n }, [MONITORY_NOTE?.ProductsList]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_MONITORY_NOTE(null);\r\n SET_MONITORY_NOTE_ERROR(null);\r\n SET_VEHICLES_LIST(null);\r\n SET_VEHICLES_LIST_ERROR(null);\r\n SET_MONITORY_NOTE_DETAILED_STATUS(null);\r\n SET_MONITORY_NOTE_LOADED_STATUS(false);\r\n };\r\n }, []);\r\n\r\n\r\n if (MONITORY_NOTE_SUBMIT_STATUS === true) return \r\n\r\n\r\n if (MONITORY_NOTE_SUBMIT_STATUS_ERROR === -1) return ;\r\n\r\n\r\n if (!MONITORY_NOTE_ID) return ;\r\n\r\n\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return null;\r\n\r\n\r\n const VEHICLES: any = !VEHICLES_LIST ? {} : Object.fromEntries(VEHICLES_LIST?.map((vehicle: VEHICLE_INTERFACE) => [vehicle.RegNo, vehicle]));\r\n\r\n const SELECTED_FRONT_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n const SELECTED_REAR_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n\r\n\r\n const DECLARE_ARRIVAL_REQUEST_HANDLE = async() => {\r\n\r\n const MONITORY_NOTE_API_URL = REST_API_URL + \"/TransportNotification/Submit\";\r\n\r\n const MONITORY_NOTE_REQUEST_BODY = {\r\n UserId: LOGGED_USER?.userID, TransportNotificationNo: MONITORY_NOTE_ID, SubmitDate: new Date()\r\n };\r\n\r\n try {\r\n\r\n const MONITORY_NOTE_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTE_API_URL,\r\n MONITORY_NOTE_REQUEST_BODY,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n let TOKEN: AUTHORIZATION_TOKEN_INTERFACE | null = null;\r\n\r\n if (MONITORY_NOTE_RESPONSE.headers.get(\"Authorization\")) {\r\n TOKEN = prepareRestApiRequestToken(MONITORY_NOTE_RESPONSE.headers);\r\n }\r\n\r\n if (MONITORY_NOTE_RESPONSE.status === 204) {\r\n\r\n const MONITORY_NOTE_STATUS_API_URL = `${REST_API_URL}/TransportNotification/Submit/GetResult`;\r\n\r\n const MONITORY_NOTE_STATUS_REQUEST_DATA = {UserId: LOGGED_USER.userID, TransportNotificationNo: MONITORY_NOTE.TransportNotificationNo};\r\n\r\n const START_TIME = (new Date()).getTime() / 1000;\r\n\r\n const CHECK_MONITORY_NOTE_STATUS_REQUEST = async (START_TIME: number) => {\r\n\r\n const MONITORY_NOTE_STATUS_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTE_STATUS_API_URL,\r\n MONITORY_NOTE_STATUS_REQUEST_DATA,\r\n TOKEN\r\n );\r\n\r\n if (MONITORY_NOTE_STATUS_RESPONSE.status === 200) {\r\n\r\n TOKEN = prepareRestApiRequestToken(MONITORY_NOTE_STATUS_RESPONSE.headers);\r\n\r\n const MONITORY_NOTE_STATUS = await MONITORY_NOTE_STATUS_RESPONSE.json();\r\n\r\n if (((new Date()).getTime() / 1000 - START_TIME) > 60) {\r\n MONITORY_NOTE_STATUS.Result = -2;\r\n MONITORY_NOTE_STATUS.Message = \"Minął czas oczekiwania\";\r\n }\r\n\r\n SET_MONITORY_NOTE_STATUS_DISPLAY(\r\n {\r\n status: +MONITORY_NOTE_STATUS.Result,\r\n message: MONITORY_NOTE_STATUS.Message\r\n }\r\n );\r\n\r\n if (+MONITORY_NOTE_STATUS.Result === 0) {\r\n await setTimeout(() => CHECK_MONITORY_NOTE_STATUS_REQUEST(START_TIME), 5000);\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n await CHECK_MONITORY_NOTE_STATUS_REQUEST(START_TIME);\r\n\r\n } else {\r\n let CONTENT: any = await MONITORY_NOTE_RESPONSE.text();\r\n if (CONTENT.trim()) {\r\n CONTENT = JSON.parse(CONTENT);\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: MONITORY_NOTE_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n\r\n const COMPONENT_DATA_LOADED_STATUS = !!MONITORY_NOTE && !!VEHICLES_LIST && !!MONITORY_NOTE?.CompartmentsList && !!MONITORY_NOTE?.ProductsList && MONITORY_NOTE_DETAILED_STATUS !== null;\r\n\r\n if (!COMPONENT_DATA_LOADED_STATUS) return null;\r\n\r\n\r\n if (MONITORY_NOTE_STATUS_DISPLAY) {\r\n\r\n const MONITORY_NOTE_SUBMIT_STATUS_ERROR_HANDLER = (status: number) => {\r\n SET_MONITORY_NOTE_STATUS_DISPLAY(null);\r\n SET_MONITORY_NOTE_SUBMIT_STATUS_ERROR(status);\r\n }\r\n\r\n return (\r\n SET_MONITORY_NOTE_SUBMIT_STATUS(true)}\r\n ERROR_STATUS_BUTTON_HANDLER={MONITORY_NOTE_SUBMIT_STATUS_ERROR_HANDLER}\r\n />\r\n );\r\n\r\n }\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {MONITORY_NOTE_ERROR && }\r\n\r\n {!MONITORY_NOTE_LOADED_STATUS && !REST_API_REQUEST_STATUS && }\r\n\r\n {!!MONITORY_NOTE_LOADED_STATUS &&\r\n\t \r\n\t\t {`Po zgłoszeniu przybycia dowolne zmiany będziesz mógł przeprowadzić tylko z poziomu stacjonarnego kiosku MM`}\r\n\t \r\n }\r\n\r\n {!!MONITORY_NOTE_LOADED_STATUS &&\r\n\t \r\n\t\t \r\n\t \r\n }\r\n\r\n \r\n\r\n {!!MONITORY_NOTE && SCHEDULE_WINDOW_LOADED_STATUS &&\r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DeclareArrivalPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState} from \"react\";\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\nimport {AiFillDelete, GiConfirmed, MdCancel} from \"react-icons/all\";\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\n\r\n\r\nimport arrivalIcon from \"@Icons/arrival.png\";\r\nimport arrivalActiveIcon from \"@Icons/arrival_active.png\";\r\n\r\n\r\ntype TerminalMonitoryNoteProps = {\r\n MONITORY_NOTE: MONITORY_NOTE_INTERFACE;\r\n monitoryNoteDeleteHandler: any;\r\n MONITORY_NOTE_INDEX?: number;\r\n};\r\n\r\n\r\nconst MONTH_LABELS: any = {\r\n 1: \"Stycznia\",\r\n 2: \"Lutego\",\r\n 3: \"Marca\",\r\n 4: \"Kwietnia\",\r\n 5: \"Maja\",\r\n 6: \"Czerwca\",\r\n 7: \"Lipca\",\r\n 8: \"Sierpnia\",\r\n 9: \"Września\",\r\n 10: \"Października\",\r\n 11: \"Listopada\",\r\n 12: \"Grudnia\"\r\n};\r\n\r\n\r\nexport const TerminalMonitoryNoteComponent: React.FC = ({\r\n MONITORY_NOTE, monitoryNoteDeleteHandler,\r\n MONITORY_NOTE_INDEX = -1\r\n}): JSX.Element | null => {\r\n\r\n\r\n const [monitoryNoteDeleteStatus, setMonitoryNoteDeleteStatus] = useState(false);\r\n\r\n\r\n if (!MONITORY_NOTE) return null;\r\n\r\n const {\r\n TransportNotificationNo: monitoryNoteId,\r\n } = MONITORY_NOTE;\r\n\r\n const noteProcessStartDate = new Date(MONITORY_NOTE?.ProcessStartDate || \"\");\r\n\r\n const noteProcessStartDateDay = noteProcessStartDate.getDate();\r\n const noteProcessStartDateMonth = noteProcessStartDate.getMonth() + 1;\r\n const noteProcessStartDateHour = noteProcessStartDate.getHours();\r\n const noteProcessStartDateMinutes = noteProcessStartDate.getMinutes();\r\n\r\n const timeToStart = Math.ceil((noteProcessStartDate.getTime() - (new Date()).getTime()) / 1000 / 60);\r\n\r\n const noteTrucks = [MONITORY_NOTE?.FrontTruckRegNo, MONITORY_NOTE?.RearTruckRegNo].filter((truck: any) => !!truck)\r\n\r\n\r\n const NOTE_SUBMIT_AVAILABILITY = timeToStart <= +(MONITORY_NOTE?.MinDelayForSubmit || 0) && !MONITORY_NOTE?.IsSubmitted && !!MONITORY_NOTE?.IsDetailed && new Date() <= new Date(noteProcessStartDate);\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n {MONITORY_NOTE?.ProcessStartDate != undefined &&\r\n \r\n {noteProcessStartDateDay < 10 ? \"0\" : \"\"}{noteProcessStartDateDay}\r\n {MONTH_LABELS[noteProcessStartDateMonth]} \r\n \r\n {noteProcessStartDateHour < 10 ? \"0\" : \"\"}{noteProcessStartDateHour}:{noteProcessStartDateMinutes < 10 ? \"0\" : \"\"}{noteProcessStartDateMinutes}\r\n \r\n \r\n }\r\n {MONITORY_NOTE?.ProcessStartDate == undefined &&\r\n \r\n Data: brak\r\n Godzina: brak\r\n \r\n }\r\n \r\n \r\n {`Awizacja`}: \r\n {MONITORY_NOTE?.TransportNotificationNo}\r\n \r\n \r\n {noteTrucks.join(\" / \")}\r\n \r\n \r\n {`Baza paliw`}: \r\n {MONITORY_NOTE?.TerminalNo || \"\"}\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {NOTE_SUBMIT_AVAILABILITY &&\r\n\t \r\n\t\t \r\n\t\t\t {`Zgłoś\r\n\t\t\t {`Zgłoś przybycie`}\r\n\t\t \r\n\t \r\n }\r\n\r\n {!MONITORY_NOTE?.IsSubmitted &&\r\n\t \r\n\t\t \r\n\t\t\t \r\n\t\t \r\n\t \r\n }\r\n\r\n {!!MONITORY_NOTE?.IsSubmitted &&\r\n\t\t\t \r\n\t\t\t\t {``}\r\n\t\t\t\t {`Przedłożona`}\r\n\t\t\t \r\n }\r\n\r\n \r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TerminalMonitoryNoteComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nexport const DELETE_MONITORY_NOTE_REQUEST_HANDLER = async (\r\n REST_API_ENDPOINT_URL: string, MONITORY_NOTE_ID: string, USER_ID: string | number\r\n): Promise => {\r\n\r\n if (!REST_API_ENDPOINT_URL || !MONITORY_NOTE_ID || !USER_ID) {\r\n return {ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"};\r\n }\r\n\r\n const MONITORY_NOTE_DELETE_REQUEST_DATA = {\r\n UserId: USER_ID, TransportNotificationNo: MONITORY_NOTE_ID\r\n };\r\n\r\n try {\r\n\r\n const RESPONSE = await fetch(REST_API_ENDPOINT_URL, {\r\n method: \"DELETE\", headers: DEFAULT_REQUEST_HEADERS,\r\n body: JSON.stringify(MONITORY_NOTE_DELETE_REQUEST_DATA)\r\n });\r\n\r\n if (RESPONSE.status === 204) {\r\n return {success: true};\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await RESPONSE.json();\r\n return {ErrorCode: RESPONSE.status, UserMessage: CONTENT.UserMessage};\r\n }\r\n\r\n } catch (e) {\r\n return {ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"};\r\n }\r\n\r\n return {ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"};\r\n\r\n};\r\n\r\n\r\nexport default DELETE_MONITORY_NOTE_REQUEST_HANDLER;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useRef, useState, useEffect} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {TERMINAL_INTERFACE} from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport WarningMessageComponent from \"@Components/UI/Communicates/Messages/Warning\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\nimport TerminalMonitoryNoteComponent from \"@UIPages/Authenticated/MonitoryNotes/Terminals/Terminal/MonitoryNote\";\r\nimport DELETE_MONITORY_NOTE_REQUEST_HANDLER from \"@Services/Application/Requests/MonitoryNotes/Delete\";\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\nimport ContentInformationComponent from \"@Components/UI/Content/Information\";\r\n\r\n\r\ntype MonitoryNotesTerminalProps = {\r\n location: any;\r\n match: any;\r\n};\r\n\r\n\r\nexport const MonitoryNotesTerminalComponent: React.FC = ({\r\n location, match\r\n}): JSX.Element | null => {\r\n\r\n\r\n const TERMINAL_ID: string | null = match?.params?.terminalId || null;\r\n const TERMINAL_NAME: string | null = location?.state?.terminalName || null;\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} LOGGED_USER - Application Global State Logged User Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [MONITORY_NOTES, SET_MONITORY_NOTES] = useState<[] | null>(null);\r\n const [MONITORY_NOTE_DELETE_STATUS, SET_MONITORY_NOTE_DELETE_STATUS] = useState(false);\r\n const [MONITORY_NOTES_MESSAGE, SET_MONITORY_NOTES_MESSAGE] = useState(null);\r\n const [MONITORY_NOTES_ERROR, SET_MONITORY_NOTES_ERROR] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE_DELETE_STATUS && MONITORY_NOTES !== null) {\r\n return;\r\n } else {\r\n SET_MONITORY_NOTE_DELETE_STATUS(false);\r\n }\r\n\r\n if (!TERMINAL_ID) return;\r\n\r\n if (MONITORY_NOTES) return;\r\n\r\n const MONITORY_NOTES_API_URL: string = REST_API_URL + \"/TransportNotification/List\";\r\n\r\n const MONITORY_NOTES_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID,\r\n TerminalNo: TERMINAL_ID,\r\n Today: false\r\n };\r\n\r\n const GET_MONITORY_NOTES = async (): Promise => {\r\n\r\n try {\r\n\r\n const MONITORY_NOTES_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTES_API_URL,\r\n MONITORY_NOTES_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (MONITORY_NOTES_RESPONSE.status === 200) {\r\n\r\n const CONTENT: string = await MONITORY_NOTES_RESPONSE.text();\r\n SET_MONITORY_NOTES(CONTENT?.trim() ? JSON.parse(CONTENT)?.TransportNotifications : []);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTES_RESPONSE.json();\r\n SET_MONITORY_NOTES_ERROR({ErrorCode: MONITORY_NOTES_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTES_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_MONITORY_NOTES();\r\n\r\n }, [REST_API_URL, MONITORY_NOTE_DELETE_STATUS]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_MONITORY_NOTES(null);\r\n SET_MONITORY_NOTES_ERROR(null);\r\n SET_MONITORY_NOTES_MESSAGE(null);\r\n SET_MONITORY_NOTE_DELETE_STATUS(false);\r\n };\r\n }, []);\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!TERMINAL_ID) return ;\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (MONITORY_NOTES_ERROR) return ;\r\n\r\n\r\n if (!MONITORY_NOTES) return null;\r\n\r\n\r\n const MONITORY_NOTE_DELETE_HANDLER = async (monitoryNoteId: string) => {\r\n\r\n try {\r\n\r\n const DELETE_RESPONSE = await DELETE_MONITORY_NOTE_REQUEST_HANDLER(\r\n `${REST_API_URL}/TransportNotification`,\r\n monitoryNoteId,\r\n LOGGED_USER?.userID\r\n );\r\n\r\n if (DELETE_RESPONSE?.success) {\r\n SET_MONITORY_NOTES_MESSAGE(\"Awizacja została usunięta\");\r\n SET_MONITORY_NOTE_DELETE_STATUS(true);\r\n } else {\r\n SET_MONITORY_NOTES_ERROR(DELETE_RESPONSE);\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTES_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n\r\n MONITORY_NOTES?.sort(\r\n (monitoryNote1: MONITORY_NOTE_INTERFACE, monitoryNote2: MONITORY_NOTE_INTERFACE) => {\r\n return new Date(monitoryNote1?.ProcessStartDate || \"\") > new Date(monitoryNote2?.ProcessStartDate || \"\") ? 1 : -1;\r\n }\r\n );\r\n\r\n\r\n const MonitoryNotesList = MONITORY_NOTES.map((monitoryNote: MONITORY_NOTE_INTERFACE, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n {!!MonitoryNotesList && MonitoryNotesList.length > 0 ?\r\n\r\n MonitoryNotesList\r\n :\r\n\r\n \r\n\r\n }\r\n\r\n \r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNotesTerminalComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useRef, useState, useEffect} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport {Button, Col} from \"react-bootstrap\";\r\n\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport GET_MONITORY_NOTE_REQUEST_HANDLER from \"@Services/Application/Requests/MonitoryNotes/Get/Single\";\r\nimport MonitoryNoteInformationComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/NoteInformation\";\r\nimport MonitoryNoteDispositionsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Dispositions\";\r\nimport MonitoryNoteScheduleWindowComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/ScheduleWindow\";\r\nimport MonitoryNoteCompartmentsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Compartments\";\r\nimport MODIFY_MONITORY_NOTE_REQUEST_HANDLER from \"@Services/Application/Requests/MonitoryNotes/Put\";\r\nimport MonitoryNotePictureComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Picture\";\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\nimport COMPARTMENT_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Compartment\";\r\nimport scrollToDomElement from \"@Utilities/Animations/Scrolling\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport DISPOSITION_INTERFACE from \"@Services/Application/Interfaces/Dispositions/Disposition\";\r\nimport CHANGE_MODAL_MESSAGE_ACTION from \"@Actions/Interface/ChangeModalMessage\";\r\nimport MainContentLoaderComponent from \"@Components/UI/Loaders/MainContent\";\r\nimport RestApiRequestLoaderComponent from \"@Components/UI/Loaders/ApiRequest\";\r\n\r\n\r\ntype MonitoryNoteComponentProps = {\r\n match: any;\r\n};\r\n\r\n\r\nexport const MonitoryNoteComponent: React.FC = ({match}): JSX.Element | null => {\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const MONITORY_NOTE_ID: string = match?.params?.monitoryNoteId;\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n /** @const {UserInterface | null} LOGGED_USER - Application Global State Logged User Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [MONITORY_NOTE_LOADED_STATUS, SET_MONITORY_NOTE_LOADED_STATUS] = useState(false);\r\n\r\n\r\n const [MONITORY_NOTE, SET_MONITORY_NOTE] = useState(null);\r\n const [MONITORY_NOTE_ERROR, SET_MONITORY_NOTE_ERROR] = useState(null);\r\n const [MONITORY_NOTE_MESSAGE, SET_MONITORY_NOTE_MESSAGE] = useState(null);\r\n\r\n const [MONITORY_NOTE_SUBMIT_STATUS, SET_MONITORY_NOTE_SUBMIT_STATUS] = useState(false);\r\n\r\n const [MONITORY_NOTE_DETAILED_STATUS, SET_MONITORY_NOTE_DETAILED_STATUS] = useState(null);\r\n\r\n const [SCHEDULE_WINDOW_LOADED_STATUS, SET_SCHEDULE_WINDOW_LOADED_STATUS] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE) return;\r\n\r\n if (!!COMPONENT_REF && COMPONENT_REF?.current) {\r\n scrollToDomElement(COMPONENT_REF, 100);\r\n }\r\n\r\n }, [MONITORY_NOTE_ERROR, MONITORY_NOTE?.TransportNotificationNo]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (MONITORY_NOTE) return;\r\n\r\n const GET_MONITORY_NOTE = async (): Promise => {\r\n\r\n const MONITORY_NOTE_REQUEST_DATA = {\r\n UserId: LOGGED_USER.userID,\r\n TransportNotificationNo: MONITORY_NOTE_ID\r\n };\r\n\r\n try {\r\n\r\n const MONITORY_NOTE_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/TransportNotification/Get`,\r\n MONITORY_NOTE_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (MONITORY_NOTE_RESPONSE.status === 200) {\r\n\r\n const RESPONSE_CONTENT: MONITORY_NOTE_INTERFACE = await MONITORY_NOTE_RESPONSE.json();\r\n SET_MONITORY_NOTE(RESPONSE_CONTENT);\r\n\r\n } else {\r\n const ERROR_RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTE_RESPONSE.json();\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: MONITORY_NOTE_RESPONSE.status, UserMessage: ERROR_RESPONSE_CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_MONITORY_NOTE();\r\n\r\n }, [MONITORY_NOTE_ID]);\r\n\r\n\r\n const [VEHICLES_LIST, SET_VEHICLES_LIST] = useState(null);\r\n const [VEHICLES_LIST_ERROR, SET_VEHICLES_LIST_ERROR] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE) return;\r\n\r\n if (VEHICLES_LIST) return;\r\n\r\n const VEHICLES_LIST_API_URL = REST_API_URL + \"/Vehicle/List\";\r\n\r\n const VEHICLES_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n Mode: \"A\", Favourite: false\r\n };\r\n\r\n const GET_VEHICLES_LIST = async () => {\r\n\r\n try {\r\n\r\n const VEHICLES_RESPONSE = await REST_API_REQUEST(\r\n VEHICLES_LIST_API_URL,\r\n VEHICLES_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (VEHICLES_RESPONSE.status === 200) {\r\n\r\n const CONTENT: string = await VEHICLES_RESPONSE.text();\r\n SET_VEHICLES_LIST(CONTENT.trim() ? JSON.parse(CONTENT)?.Vehicles : []);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_VEHICLES_LIST();\r\n\r\n }, [MONITORY_NOTE]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n const COMPARTMENTS: any = {};\r\n\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return;\r\n\r\n if (!!MONITORY_NOTE?.CompartmentsList) return;\r\n\r\n const VEHICLES: any = Object.fromEntries(VEHICLES_LIST?.map((vehicle: VEHICLE_INTERFACE) => [vehicle.RegNo, vehicle]));\r\n\r\n const SELECTED_FRONT_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n const SELECTED_REAR_VEHICLE = VEHICLES[MONITORY_NOTE?.RearTruckRegNo || \"\"];\r\n\r\n if (SELECTED_FRONT_VEHICLE?.IsTank && SELECTED_FRONT_VEHICLE?.Compartments) {\r\n for (let compartment of SELECTED_FRONT_VEHICLE?.Compartments) {\r\n COMPARTMENTS[`F${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"F\",\r\n compartmentPosition: `F${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n if (SELECTED_REAR_VEHICLE?.IsTank && SELECTED_REAR_VEHICLE?.Compartments) {\r\n for (let compartment of SELECTED_REAR_VEHICLE?.Compartments) {\r\n COMPARTMENTS[`R${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"R\",\r\n compartmentPosition: `R${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, CompartmentsList: COMPARTMENTS});\r\n\r\n }, [MONITORY_NOTE?.FrontTruckRegNo, VEHICLES_LIST]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE?.CompartmentsList) return;\r\n\r\n const Products: any = {};\r\n\r\n if (MONITORY_NOTE?.Disps) {\r\n for (let disposition of MONITORY_NOTE?.Disps) {\r\n if (!disposition?.DispItems) continue;\r\n for (let product of disposition?.DispItems) {\r\n const productID: string = disposition.DispNo + (product?.ProductMasterNo || product?.ProductShortName || \"\") + product.Pos;\r\n Products[productID] = {...product, DispNo: disposition?.DispNo, productCompartments: {}};\r\n }\r\n }\r\n }\r\n\r\n if (MONITORY_NOTE?.Compartments) {\r\n for (let compartment of MONITORY_NOTE?.Compartments) {\r\n let compartmentVehicle: string = \"\";\r\n if (compartment?.TruckRegNo === MONITORY_NOTE?.FrontTruckRegNo) compartmentVehicle = \"F\";\r\n if (compartment?.TruckRegNo === MONITORY_NOTE?.RearTruckRegNo) compartmentVehicle = \"R\";\r\n if (!compartmentVehicle) continue;\r\n const COMPARTMENT_ID = `${compartmentVehicle}${compartment?.Pos}`;\r\n const COMPARTMENT = MONITORY_NOTE?.CompartmentsList[COMPARTMENT_ID];\r\n const PRODUCT: any = Products[`${compartment.DispNo}${compartment?.ProductMasterNo}${compartment.DispPos}` || \"\"] || null; // SZTYWNO!\r\n COMPARTMENT.product = PRODUCT;\r\n COMPARTMENT.productCapacity = compartment.Qty;\r\n if (PRODUCT) PRODUCT.productCompartments[COMPARTMENT_ID] = compartment.Qty;\r\n }\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, ProductsList: Products});\r\n\r\n }, [MONITORY_NOTE?.CompartmentsList, MONITORY_NOTE?.Disps]);\r\n\r\n\r\n useEffect(() => {\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return;\r\n SET_MONITORY_NOTE_DETAILED_STATUS(!!MONITORY_NOTE?.Compartments?.length);\r\n }, [MONITORY_NOTE?.ProductsList]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_MONITORY_NOTE(null);\r\n SET_MONITORY_NOTE_ERROR(null);\r\n SET_VEHICLES_LIST(null);\r\n SET_VEHICLES_LIST_ERROR(null);\r\n SET_MONITORY_NOTE_DETAILED_STATUS(null);\r\n SET_MONITORY_NOTE_LOADED_STATUS(false);\r\n };\r\n }, []);\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!MONITORY_NOTE_ID) return ;\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return null;\r\n\r\n\r\n const VEHICLES = Object.fromEntries(VEHICLES_LIST.map((vehicle: VEHICLE_INTERFACE) => [vehicle.RegNo, vehicle]));\r\n\r\n const SELECTED_FRONT_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n const SELECTED_REAR_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n\r\n\r\n const MODIFY_COMPARTMENT_HANDLER = (compartmentID: any, compartmentProductId: any, compartmentProductCapacity: number, compartmentProductReceiver: string) => {\r\n\r\n const selectedCompartment = MONITORY_NOTE?.CompartmentsList[compartmentID];\r\n const selectedProduct = MONITORY_NOTE?.ProductsList[compartmentProductId];\r\n\r\n selectedCompartment.product = JSON.parse(JSON.stringify(selectedProduct));\r\n\r\n selectedCompartment.productCapacity = compartmentProductCapacity;\r\n\r\n selectedProduct.productCompartments[compartmentID] = compartmentProductCapacity;\r\n if (compartmentProductReceiver) selectedProduct.ReceiverMasterNo = compartmentProductReceiver;\r\n\r\n };\r\n\r\n const CLEAR_COMPARTMENT_HANDLER = (compartmentID: any, compartmentProductId: any) => {\r\n\r\n const selectedCompartment = MONITORY_NOTE?.CompartmentsList[compartmentID];\r\n const selectedProduct = MONITORY_NOTE?.ProductsList[compartmentProductId];\r\n\r\n selectedCompartment.product = null;\r\n delete selectedProduct?.productCompartments[compartmentID];\r\n\r\n SET_MONITORY_NOTE({\r\n ...MONITORY_NOTE,\r\n ProductsList: {...MONITORY_NOTE?.ProductsList, [compartmentProductId]: selectedProduct}\r\n });\r\n\r\n };\r\n\r\n\r\n const SUBMIT_MONITORY_NOTE_REQUEST_HANDLER = async () => {\r\n\r\n const selectedCompartments: any = MONITORY_NOTE?.CompartmentsList ? Object.values(MONITORY_NOTE?.CompartmentsList).filter(\r\n (compartment: any) => !!compartment?.product\r\n ) : null;\r\n\r\n const requestCompartments: COMPARTMENT_INTERFACE[] = [];\r\n\r\n if (selectedCompartments && MONITORY_NOTE_DETAILED_STATUS) {\r\n\r\n const DISPOSITION_PRODUCTS: any = {};\r\n\r\n if (MONITORY_NOTE?.Disps) {\r\n for (let disposition of MONITORY_NOTE.Disps) {\r\n if (disposition.DispItems) {\r\n for (let product of disposition.DispItems) {\r\n if (product.ProductMasterNo) {\r\n DISPOSITION_PRODUCTS[product.ProductMasterNo] = disposition.DispNo;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let compartment of selectedCompartments) {\r\n\r\n const {\r\n compartmentPosition, compartmentVehicle,\r\n product, productCapacity\r\n } = compartment;\r\n\r\n if (!product || !compartmentVehicle) continue;\r\n\r\n if (+productCapacity < 500) continue;\r\n\r\n let compartmentVehicleRegNo: string = \"\";\r\n if (compartmentVehicle === \"F\") compartmentVehicleRegNo = MONITORY_NOTE?.FrontTruckRegNo || \"\";\r\n if (compartmentVehicle === \"R\") compartmentVehicleRegNo = MONITORY_NOTE?.RearTruckRegNo || \"\";\r\n\r\n requestCompartments.push({\r\n Pos: +compartmentPosition[1], TruckRegNo: compartmentVehicleRegNo,\r\n DispNo: product.DispNo, DispPos: product.Pos,\r\n Qty: +productCapacity,\r\n ReceiverMasterNo: product.ReceiverMasterNo\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n if (MONITORY_NOTE_DETAILED_STATUS && requestCompartments.length < 1) {\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 1, UserMessage: \"Jeśli plan załadunku jest aktywny, przynajmniej jedna komora powinna zawierać w pełni skonfiigurowany produkt\"})\r\n return;\r\n }\r\n\r\n\r\n try {\r\n\r\n const MONITORY_NOTE_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/TransportNotification`,\r\n {\r\n ...MONITORY_NOTE,\r\n IsDetailed: requestCompartments.length > 0,\r\n Compartments: requestCompartments,\r\n UserId: LOGGED_USER.userID\r\n },\r\n REST_API_REQUEST_TOKEN,\r\n \"PUT\"\r\n );\r\n\r\n if (MONITORY_NOTE_RESPONSE.status === 200 || MONITORY_NOTE_RESPONSE.status === 204) {\r\n\r\n SET_MONITORY_NOTE_MESSAGE({messageType: \"success\", messageText: \"Awizacja została zmodyfikowana\"})\r\n SET_MONITORY_NOTE_SUBMIT_STATUS(true);\r\n\r\n } else {\r\n const ERROR_RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTE_RESPONSE.json();\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: MONITORY_NOTE_RESPONSE.status, UserMessage: ERROR_RESPONSE_CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n\r\n if (MONITORY_NOTE_SUBMIT_STATUS === true) return ;\r\n\r\n\r\n const LOADED = !!MONITORY_NOTE && !!VEHICLES_LIST && !!MONITORY_NOTE?.CompartmentsList && !!MONITORY_NOTE?.ProductsList && MONITORY_NOTE_DETAILED_STATUS !== null;\r\n\r\n if (!LOADED) return null;\r\n\r\n\r\n const removeDispositionHandler = (disposition: DISPOSITION_INTERFACE, remove = false) => {\r\n\r\n if (!MONITORY_NOTE?.Disps) return;\r\n\r\n if (!remove) {\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, Disps: [...MONITORY_NOTE.Disps, disposition]});\r\n return;\r\n }\r\n\r\n if (MONITORY_NOTE?.Disps.length < 2) {\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(\r\n \"Nie można usunąć dyspozycji - awizacja musi posiadać przynajmniej jedną dyspozycję.\",\r\n ));\r\n return;\r\n }\r\n\r\n const removeDisposition = () => {\r\n if (!MONITORY_NOTE?.Disps) return;\r\n const updatedDispositions = MONITORY_NOTE.Disps.filter((disp) => disp.DispNo !== disposition.DispNo);\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, Disps: updatedDispositions});\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(null));\r\n };\r\n\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(\r\n \"Anulowanie dyspozycji spowoduje usunięcie pozycji planu załadunku związanego z tą dyspozycją. Czy chcesz kontynuować ? \",\r\n \"DEFAULT\",\r\n removeDisposition,\r\n () => {}\r\n ));\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!MONITORY_NOTE_ERROR && }\r\n\r\n {!MONITORY_NOTE_LOADED_STATUS && !REST_API_REQUEST_STATUS && }\r\n\r\n\t \r\n\r\n \r\n\r\n\t \r\n\r\n \r\n\r\n\r\n {!!MONITORY_NOTE_LOADED_STATUS && !MONITORY_NOTE?.IsSubmitted && (MONITORY_NOTE.ProcessStartDate == undefined || MONITORY_NOTE.ProcessStartDate == '0' || MONITORY_NOTE.IsBooked) && \r\n\t \r\n\t\t \r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNoteComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Location} from \"history\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Button, Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport WarningMessageComponent from \"@Components/UI/Communicates/Messages/Warning\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\nimport MonitoryNoteInformationComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/NoteInformation\";\r\nimport MonitoryNoteDispositionsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Dispositions\";\r\nimport MonitoryNoteCompartmentsComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Compartments\";\r\n\r\n\r\nimport PETROL_TERMINAL_IMAGE from \"@Images/petrol_terminal.jpg\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport MONITORY_NOTE_INTERFACE from \"@Services/Application/Interfaces/MonitoryNotes/MonitoryNote\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport MonitoryNotePictureComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/Picture\";\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\nimport BlockContentPictureComponent from \"@Components/UI/Containers/Block/Picture\";\r\nimport DELETE_MONITORY_NOTE_REQUEST_HANDLER from \"@Services/Application/Requests/MonitoryNotes/Delete\";\r\nimport MonitoryNoteScheduleWindowComponent from \"@UIPages/Authenticated/MonitoryNotes/_Parts/ScheduleWindow\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\nimport MainContentLoaderComponent from \"@Components/UI/Loaders/MainContent\";\r\nimport RestApiRequestLoaderComponent from \"@Components/UI/Loaders/ApiRequest\";\r\n\r\n\r\n\r\ninterface LocationInterface {\r\n from: {pathname: string};\r\n monitoryNoteId: string | number;\r\n terminalName: string;\r\n}\r\n\r\ntype DeleteMonitoryNotePageProps = {location: any};\r\n\r\n\r\nconst DEFAULT_REQUEST_HEADERS: HeadersInit = {\"content-Type\": \"application/json\"};\r\n\r\n\r\nexport const DeleteMonitoryNotePageComponent: React.FC = ({\r\n location\r\n}): JSX.Element | null => {\r\n\r\n\r\n const MONITORY_NOTE_ID = location.state.monitoryNoteId;\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n /** @type {UserInterface | null} Application Logged User (from Global Store Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [MONITORY_NOTE_LOADED_STATUS, SET_MONITORY_NOTE_LOADED_STATUS] = useState(false);\r\n\r\n\r\n const [MONITORY_NOTE, SET_MONITORY_NOTE] = useState(null);\r\n const [MONITORY_NOTE_ERROR, SET_MONITORY_NOTE_ERROR] = useState(null);\r\n\r\n const [MONITORY_NOTE_SUBMIT_STATUS, SET_MONITORY_NOTE_SUBMIT_STATUS] = useState(false);\r\n\r\n const [SCHEDULE_WINDOW_LOADED_STATUS, SET_SCHEDULE_WINDOW_LOADED_STATUS] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE_ID) return;\r\n\r\n if (!!MONITORY_NOTE) return;\r\n\r\n const MONITORY_NOTE_API_URL: string = REST_API_URL + \"/TransportNotification/Get\";\r\n\r\n interface MONITORY_NOTE_REQUEST_DATA_INTERFACE {\r\n UserId: number | string,\r\n TransportNotificationNo: number | string\r\n }\r\n\r\n const MONITORY_NOTE_REQUEST_DATA: MONITORY_NOTE_REQUEST_DATA_INTERFACE = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n TransportNotificationNo: MONITORY_NOTE_ID // Monitory Note ID\r\n };\r\n\r\n interface MonitoryNoteResponseInterface {\r\n ProcessStartDate?: string; // DateTime string for Process Start\r\n MinDelayForSubmit?: number; // Minutes before Process Start\r\n Compartments?: any // List of Monitory Note Vehicle Compartments\r\n }\r\n\r\n const GET_MONITORY_NOTE = async (): Promise => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true)); // Set Status to true\r\n\r\n try {\r\n\r\n const MONITORY_NOTE_RESPONSE = await REST_API_REQUEST(\r\n MONITORY_NOTE_API_URL,\r\n MONITORY_NOTE_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (MONITORY_NOTE_RESPONSE.status === 200) {\r\n\r\n const CONTENT: MonitoryNoteResponseInterface = await MONITORY_NOTE_RESPONSE.json(); // JSON Object\r\n SET_MONITORY_NOTE(CONTENT);\r\n\r\n } else {\r\n\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTE_RESPONSE.json();\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: MONITORY_NOTE_RESPONSE.status, UserMessage: CONTENT.UserMessage}); // Set Monitory Note Page Error\r\n\r\n }\r\n } catch (e) { // Error Appeared\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"}); // Set Monitory Note Page Error\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_MONITORY_NOTE();\r\n\r\n }, [MONITORY_NOTE_ID]);\r\n\r\n\r\n const [VEHICLES_LIST, SET_VEHICLES_LIST] = useState(null);\r\n const [VEHICLES_LIST_ERROR, SET_VEHICLES_LIST_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE) return;\r\n\r\n if (VEHICLES_LIST) return;\r\n\r\n const VEHICLES_LIST_API_URL = REST_API_URL + \"/Vehicle/List\";\r\n\r\n const VEHICLES_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n Mode: \"A\",\r\n Favourite: false\r\n };\r\n\r\n const GET_VEHICLES_LIST = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const VEHICLES_RESPONSE = await REST_API_REQUEST(\r\n VEHICLES_LIST_API_URL,\r\n VEHICLES_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (VEHICLES_RESPONSE.status === 200) {\r\n\r\n const CONTENT: string = await VEHICLES_RESPONSE.text();\r\n SET_VEHICLES_LIST(CONTENT.trim() ? JSON.parse(CONTENT)?.Vehicles : []);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_VEHICLES_LIST();\r\n\r\n }, [MONITORY_NOTE]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n const COMPARTMENTS: any = {};\r\n\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return;\r\n\r\n if (!!MONITORY_NOTE?.CompartmentsList) return;\r\n\r\n const VEHICLES: any = Object.fromEntries(VEHICLES_LIST?.map((vehicle: VEHICLE_INTERFACE) => [vehicle.RegNo, vehicle]));\r\n\r\n const SELECTED_FRONT_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n const SELECTED_REAR_VEHICLE = VEHICLES[MONITORY_NOTE?.RearTruckRegNo || \"\"];\r\n\r\n if (SELECTED_FRONT_VEHICLE?.IsTank && SELECTED_FRONT_VEHICLE?.Compartments) {\r\n for (let compartment of SELECTED_FRONT_VEHICLE?.Compartments) {\r\n COMPARTMENTS[`F${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"F\",\r\n compartmentPosition: `F${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n if (SELECTED_REAR_VEHICLE?.IsTank && SELECTED_REAR_VEHICLE?.Compartments) {\r\n for (let compartment of SELECTED_REAR_VEHICLE?.Compartments) {\r\n COMPARTMENTS[`R${compartment.CompPos}`] = {\r\n product: null,\r\n capacity: compartment.MaxVol,\r\n DefaultVol: compartment.DefaultVol,\r\n productCompartments: {},\r\n compartmentVehicle: \"R\",\r\n compartmentPosition: `R${compartment.CompPos}`\r\n };\r\n }\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, CompartmentsList: COMPARTMENTS});\r\n\r\n }, [MONITORY_NOTE?.FrontTruckRegNo, VEHICLES_LIST]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!MONITORY_NOTE?.CompartmentsList) return;\r\n\r\n const Products: any = {};\r\n\r\n if (MONITORY_NOTE?.Disps) {\r\n for (let disposition of MONITORY_NOTE?.Disps) {\r\n if (!disposition?.DispItems) continue;\r\n for (let product of disposition?.DispItems) {\r\n const productID: string = disposition.DispNo + (product?.ProductMasterNo || product?.ProductShortName || \"\") + product.Pos;\r\n Products[productID] = {...product, DispNo: disposition?.DispNo, productCompartments: {}};\r\n }\r\n }\r\n }\r\n\r\n if (MONITORY_NOTE?.Compartments) {\r\n for (let compartment of MONITORY_NOTE?.Compartments) {\r\n let compartmentVehicle: string = \"\";\r\n if (compartment?.TruckRegNo === MONITORY_NOTE?.FrontTruckRegNo) compartmentVehicle = \"F\";\r\n if (compartment?.TruckRegNo === MONITORY_NOTE?.RearTruckRegNo) compartmentVehicle = \"R\";\r\n if (!compartmentVehicle) continue;\r\n const COMPARTMENT_ID = `${compartmentVehicle}${compartment?.Pos}`;\r\n const COMPARTMENT = MONITORY_NOTE?.CompartmentsList[COMPARTMENT_ID];\r\n const PRODUCT: any = Products[`${compartment.DispNo}${compartment?.ProductMasterNo}${compartment.DispPos}` || \"\"] || null; // SZTYWNO!\r\n COMPARTMENT.product = PRODUCT;\r\n COMPARTMENT.productCapacity = compartment.Qty;\r\n if (PRODUCT) PRODUCT.productCompartments[COMPARTMENT_ID] = compartment.Qty;\r\n }\r\n }\r\n\r\n SET_MONITORY_NOTE({...MONITORY_NOTE, ProductsList: Products});\r\n\r\n }, [MONITORY_NOTE?.CompartmentsList]);\r\n\r\n\r\n const [MONITORY_NOTE_DETAILED_STATUS, SET_MONITORY_NOTE_DETAILED_STATUS] = useState(null);\r\n\r\n useEffect(() => {\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return;\r\n SET_MONITORY_NOTE_DETAILED_STATUS(!!MONITORY_NOTE?.Compartments?.length);\r\n }, [MONITORY_NOTE?.ProductsList]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_MONITORY_NOTE(null);\r\n SET_MONITORY_NOTE_ERROR(null);\r\n SET_VEHICLES_LIST(null);\r\n SET_VEHICLES_LIST_ERROR(null);\r\n SET_MONITORY_NOTE_DETAILED_STATUS(null);\r\n SET_MONITORY_NOTE_LOADED_STATUS(false);\r\n };\r\n }, []);\r\n\r\n\r\n if (MONITORY_NOTE_SUBMIT_STATUS === true) return \r\n\r\n\r\n if (!MONITORY_NOTE_ID) return ;\r\n\r\n\r\n if (MONITORY_NOTE_ERROR) return ;\r\n\r\n\r\n if (!MONITORY_NOTE || !VEHICLES_LIST) return null;\r\n\r\n\r\n const VEHICLES: any = !VEHICLES_LIST ? {} : Object.fromEntries(VEHICLES_LIST?.map((vehicle: VEHICLE_INTERFACE) => [vehicle.RegNo, vehicle]));\r\n\r\n const SELECTED_FRONT_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n const SELECTED_REAR_VEHICLE = VEHICLES[MONITORY_NOTE?.FrontTruckRegNo || \"\"];\r\n\r\n\r\n const MODIFY_COMPARTMENT_HANDLER = (compartmentID: any, compartmentProductId: any, compartmentProductCapacity: number) => {\r\n\r\n const selectedCompartment = MONITORY_NOTE?.CompartmentsList[compartmentID];\r\n const selectedProduct = MONITORY_NOTE?.ProductsList[compartmentProductId];\r\n\r\n selectedCompartment.product = selectedProduct;\r\n selectedCompartment.productCapacity = compartmentProductCapacity;\r\n\r\n selectedProduct.productCompartments[compartmentID] = compartmentProductCapacity;\r\n\r\n SET_MONITORY_NOTE({\r\n ...MONITORY_NOTE,\r\n ProductsList: {...MONITORY_NOTE?.ProductsList, [compartmentProductId]: selectedProduct},\r\n CompartmentsList: {...MONITORY_NOTE?.CompartmentsList, [compartmentID]: selectedCompartment}\r\n });\r\n\r\n };\r\n\r\n const CLEAR_COMPARTMENT_HANDLER = (compartmentID: any, compartmentProductId: any) => {\r\n\r\n const selectedCompartment = MONITORY_NOTE?.CompartmentsList[compartmentID];\r\n const selectedProduct = MONITORY_NOTE?.ProductsList[compartmentProductId];\r\n\r\n selectedCompartment.product = null;\r\n delete selectedProduct?.productCompartments[compartmentID];\r\n\r\n SET_MONITORY_NOTE({\r\n ...MONITORY_NOTE,\r\n ProductsList: {...MONITORY_NOTE?.ProductsList, [compartmentProductId]: selectedProduct},\r\n CompartmentsList: {...MONITORY_NOTE?.CompartmentsList, [compartmentID]: selectedCompartment}\r\n });\r\n\r\n };\r\n\r\n\r\n const DELETE_MONITORY_NOTE_REQUEST = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const MONITORY_NOTE_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/TransportNotification`,\r\n {UserId: LOGGED_USER.userID, TransportNotificationNo: MONITORY_NOTE_ID},\r\n REST_API_REQUEST_TOKEN,\r\n \"DELETE\"\r\n );\r\n\r\n if (MONITORY_NOTE_RESPONSE.status === 200 || MONITORY_NOTE_RESPONSE.status === 204) {\r\n SET_MONITORY_NOTE_SUBMIT_STATUS(true);\r\n } else {\r\n const ERROR_RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await MONITORY_NOTE_RESPONSE.json();\r\n SET_MONITORY_NOTE_ERROR({UserMessage: ERROR_RESPONSE_CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_MONITORY_NOTE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n\r\n const COMPONENT_DATA_LOADED_STATUS = !!MONITORY_NOTE && !!VEHICLES_LIST && !!MONITORY_NOTE?.CompartmentsList && !!MONITORY_NOTE?.ProductsList && MONITORY_NOTE_DETAILED_STATUS !== null;\r\n\r\n if (!COMPONENT_DATA_LOADED_STATUS) return null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!MONITORY_NOTE_LOADED_STATUS && !REST_API_REQUEST_STATUS && }\r\n\r\n {!!MONITORY_NOTE_LOADED_STATUS &&\r\n\t \r\n\t\t {`Po odwołaniu awizacji nadal będziesz mógł skorzystać z dyspozycji z poziomu stacjonarnego kiosku MM`}\r\n\t \r\n }\r\n\r\n {!!MONITORY_NOTE_LOADED_STATUS &&\r\n\t \r\n\t\t \r\n\t \r\n }\r\n\r\n \r\n\r\n {!!SCHEDULE_WINDOW_LOADED_STATUS &&\r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DeleteMonitoryNotePageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport MonitoryNotesTerminalsComponent from \"@UIPages/Authenticated/MonitoryNotes/Terminals\";\r\nimport CreateMonitoryNotePageComponent from \"@UIPages/Authenticated/MonitoryNotes/Create\";\r\nimport DeclareArrivalPageComponent from \"@UIPages/Authenticated/MonitoryNotes/DeclareArrival\";\r\nimport MonitoryNotesTerminalComponent from \"@UIPages/Authenticated/MonitoryNotes/Terminals/Terminal\";\r\nimport MonitoryNoteComponent from \"@UIPages/Authenticated/MonitoryNotes/MonitoryNote\";\r\nimport DeleteMonitoryNotePageComponent from \"@UIPages/Authenticated/MonitoryNotes/Delete\";\r\nimport MonitoryNoteDetailsComponent from \"@UIPages/Authenticated/MonitoryNotes/MonitoryNoteDetails\";\r\n\r\n\r\ntype MonitoryNotesPageComponentProps = {};\r\n\r\n\r\nexport const MonitoryNotesPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const MONITORY_NOTES_LIST_URL = ROUTER.AUTHENTICATED.MONITORY_NOTES.MONITORY_NOTES_LIST.URL;\r\n const MONITORY_NOTE_CREATE = \"/awizacje/utworz\";\r\n const MONITORY_NOTE_DECLARE_ARRIVE = \"/awizacje/zglos-przybycie\";\r\n const MONITORY_NOTE_TERMINALS_LIST_URL = \"/awizacje\";\r\n const MONITORY_NOTE_TERMINAL_URL = \"/awizacje/terminale/:terminalId\";\r\n const MONITORY_NOTE_URL = \"/awizacje/:monitoryNoteId\";\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n {/* */}\r\n {/* */}\r\n {/* }*/}\r\n {/*/>*/}\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default MonitoryNotesPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n/** Import ENVIRONMENTAL VARIABLES */\r\nimport ENV from \"react-dotenv\";\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Helmet} from \"react-helmet\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\n\r\nimport TerminalsListComponent from \"@UIPages/Authenticated/Terminals/List/Terminals\";\r\nimport TerminalsListLegendComponent from \"@UIPages/Authenticated/Terminals/List/Legend\";\r\n\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport TERMINAL_INTERFACE from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\ntype DispositionsTerminalsListPageProps = {};\r\n\r\n\r\nexport const DispositionsTerminalsListPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [DISPOSITIONS_TERMINALS, SET_DISPOSITIONS_TERMINALS] = useState([]);\r\n const [DISPOSITIONS_TERMINALS_ERROR, SET_DISPOSITIONS_TERMINALS_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return;\r\n\r\n const DISPOSITIONS_TERMINALS_API_URL = REST_API_URL + \"/Terminal/List\";\r\n\r\n const DISPOSITIONS_TERMINALS_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n Favorite: false,\r\n Mode: \"D\"\r\n }\r\n\r\n const GET_DISPOSITIONS_LIST_PAGE_DATA = async (): Promise => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const DISPOSITIONS_RESPONSE = await REST_API_REQUEST(\r\n DISPOSITIONS_TERMINALS_API_URL,\r\n DISPOSITIONS_TERMINALS_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (DISPOSITIONS_RESPONSE.status === 200) {\r\n const CONTENT: {Terminals: TERMINAL_INTERFACE[]} = await DISPOSITIONS_RESPONSE.json();\r\n SET_DISPOSITIONS_TERMINALS(CONTENT?.Terminals);\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await DISPOSITIONS_RESPONSE.json();\r\n SET_DISPOSITIONS_TERMINALS_ERROR({ErrorCode: DISPOSITIONS_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_DISPOSITIONS_TERMINALS_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_DISPOSITIONS_LIST_PAGE_DATA();\r\n\r\n return () => {};\r\n\r\n }, [REST_API_URL]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_DISPOSITIONS_TERMINALS([]);\r\n SET_DISPOSITIONS_TERMINALS_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n\r\n const ACTIVE_TERMINALS = DISPOSITIONS_TERMINALS.filter(\r\n (terminal: TERMINAL_INTERFACE) => !!terminal?.DispCount\r\n );\r\n\r\n const FAVORITE_TERMINALS = ACTIVE_TERMINALS.filter(\r\n (terminal: TERMINAL_INTERFACE) => !!terminal.Favorite\r\n );\r\n\r\n const OTHER_TERMINALS = ACTIVE_TERMINALS.filter(\r\n (terminal: TERMINAL_INTERFACE) => !terminal.Favorite\r\n );\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {/* Helmet Module Component - Set Document Title */}\r\n \r\n {`${ENV.APP_TITLE} - Moje dyspozycje`}\r\n \r\n {/* /Helmet Module Component - Set Document Title */}\r\n\r\n {!!DISPOSITIONS_TERMINALS_ERROR ?\r\n\r\n \r\n\r\n :\r\n\r\n ACTIVE_TERMINALS.length > 0 ?\r\n <>\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n :\r\n\r\n !REST_API_REQUEST_STATUS &&\r\n \r\n {`Nie masz żadnych Dyspozycji`}\r\n \r\n\r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DispositionsTerminalsListPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n/** Import ENVIRONMENTAL VARIABLES */\r\nimport ENV from \"react-dotenv\";\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport DISPOSITION_INTERFACE from \"@Services/Application/Interfaces/Dispositions/Disposition\";\r\nimport PRODUCT_INTERFACE from \"@Services/Application/Interfaces/Products/Product\";\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\n\r\n\r\nimport {Helmet} from \"react-helmet\";\r\n\r\n\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport {Button, Col, Form, Row} from \"react-bootstrap\";\r\n\r\nimport {AiOutlineCheck} from \"react-icons/all\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport WarningMessageComponent from \"@Components/UI/Communicates/Messages/Warning\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport MainContentLoaderComponent from \"@Components/UI/Loaders/MainContent\";\r\nimport BlockContentPictureComponent from \"@Components/UI/Containers/Block/Picture\";\r\n\r\n\r\nimport monitoryNoteIcon from \"@Icons/Menu/monitory_notes.png\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\nimport ContentInformationComponent from \"@Components/UI/Content/Information\";\r\n\r\n\r\ntype DispositionsStationsListPageProps = {\r\n match?: any; location?: any;\r\n};\r\n\r\n\r\nexport const TerminalDispositionsListPageComponent: React.FC = ({\r\n match, location\r\n}): JSX.Element | null => {\r\n\r\n\r\n const TERMINAL_ID = match?.params?.terminalId;\r\n const TERMINAL_NAME = location?.state?.terminalName;\r\n const selectedDispositions: DISPOSITION_INTERFACE[] | undefined = location?.state?.selectedDispositions;\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [VEHICLES_LIST, SET_VEHICLES_LIST] = useState(null);\r\n const [VEHICLES_LIST_ERROR, SET_VEHICLES_LIST_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!LOGGED_USER?.userID || !REST_API_URL) return;\r\n\r\n if (VEHICLES_LIST) return;\r\n\r\n const VEHICLES_LIST_API_URL = REST_API_URL + \"/Vehicle/List\";\r\n\r\n const VEHICLES_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, Mode: \"A\", Favourite: false\r\n };\r\n\r\n const GET_VEHICLES_LIST = async () => {\r\n\r\n try {\r\n\r\n const VEHICLES_RESPONSE = await REST_API_REQUEST(\r\n VEHICLES_LIST_API_URL,\r\n VEHICLES_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (VEHICLES_RESPONSE.status === 200) {\r\n const CONTENT: string = await VEHICLES_RESPONSE.text();\r\n SET_VEHICLES_LIST(CONTENT.trim() ? JSON.parse(CONTENT)?.Vehicles : []);\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_VEHICLES_LIST();\r\n\r\n }, [TERMINAL_ID]);\r\n\r\n\r\n const [SELECTED_FRONT_VEHICLE, SET_SELECTED_FRONT_VEHICLE] = useState(\"\");\r\n const [SELECTED_REAR_VEHICLE, SET_SELECTED_REAR_VEHICLE] = useState(\"\");\r\n\r\n const CHANGE_SELECTED_FRONT_VEHICLE = (vehicleRegNr: string) => {\r\n SET_SELECTED_FRONT_VEHICLE(vehicleRegNr);\r\n if (AVAILABLE_VEHICLES[vehicleRegNr]?.IsTank) SET_SELECTED_REAR_VEHICLE(\"-1\");\r\n SET_SELECTED_DISPOSITIONS([]);\r\n };\r\n\r\n const CHANGE_SELECTED_REAR_VEHICLE = (vehicleRegNr: string) => {\r\n SET_SELECTED_REAR_VEHICLE(vehicleRegNr);\r\n SET_SELECTED_DISPOSITIONS([]);\r\n };\r\n\r\n\r\n const [DISPOSITIONS_LIST, SET_DISPOSITIONS_LIST] = useState<[] | null>(null);\r\n const [DISPOSITIONS_LIST_ERROR, SET_DISPOSITIONS_LIST_ERROR] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (!TERMINAL_ID || !VEHICLES_LIST) return;\r\n\r\n if (!SELECTED_FRONT_VEHICLE || !SELECTED_REAR_VEHICLE) return;\r\n\r\n const DISPOSITIONS_LIST_API_URL = REST_API_URL + \"/Disp/List\";\r\n\r\n const DISPOSITIONS_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n TerminalNo: TERMINAL_ID,\r\n FrontVehicleRegNo: SELECTED_FRONT_VEHICLE !== \"-1\" ? SELECTED_FRONT_VEHICLE : null,\r\n RearVehicleRegNo: SELECTED_REAR_VEHICLE !== \"-1\" ? SELECTED_REAR_VEHICLE : null\r\n };\r\n\r\n const GET_STATIONS_DISPOSITIONS_LIST = async () => {\r\n\r\n try {\r\n\r\n const DISPOSITIONS_RESPONSE = await REST_API_REQUEST(\r\n DISPOSITIONS_LIST_API_URL,\r\n DISPOSITIONS_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (DISPOSITIONS_RESPONSE.status === 200) {\r\n const CONTENT: string = await DISPOSITIONS_RESPONSE.text();\r\n SET_DISPOSITIONS_LIST(CONTENT.trim() ? JSON.parse(CONTENT)?.Disps : []);\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await DISPOSITIONS_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: DISPOSITIONS_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_DISPOSITIONS_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_STATIONS_DISPOSITIONS_LIST();\r\n\r\n }, [SELECTED_FRONT_VEHICLE, SELECTED_REAR_VEHICLE]);\r\n\r\n\r\n const [SELECTED_DISPOSITIONS, SET_SELECTED_DISPOSITIONS] = useState([]);\r\n\r\n const selectedDispositionsListHandler = (dispositionId: string) => {\r\n let updatedSelectedDispositionsList = [];\r\n if (SELECTED_DISPOSITIONS.includes(dispositionId)) {\r\n updatedSelectedDispositionsList = SELECTED_DISPOSITIONS.filter(item => item !== dispositionId)\r\n } else {\r\n updatedSelectedDispositionsList = [...SELECTED_DISPOSITIONS, dispositionId];\r\n }\r\n SET_SELECTED_DISPOSITIONS(updatedSelectedDispositionsList);\r\n };\r\n\r\n useEffect(() => {\r\n if (!selectedDispositions || !selectedDispositions.length) return;\r\n const selectedDispositionsList = selectedDispositions ? selectedDispositions.map((disp) => disp.DispNo) : [];\r\n SET_SELECTED_DISPOSITIONS(selectedDispositionsList);\r\n }, [selectedDispositions]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_VEHICLES_LIST(null);\r\n SET_DISPOSITIONS_LIST(null);\r\n SET_SELECTED_FRONT_VEHICLE(\"\");\r\n SET_SELECTED_REAR_VEHICLE(\"\");\r\n };\r\n }, []);\r\n\r\n\r\n VEHICLES_LIST?.sort(\r\n (vehicle1, vehicle2) => vehicle1.Favorite && !vehicle2.Favorite ? -1 : 1\r\n );\r\n\r\n const ACTIVE_FRONT_VEHICLE = VEHICLES_LIST?.filter(\r\n (VEHICLE) => !!VEHICLE.Active && !!VEHICLE.IsFront\r\n )[0];\r\n\r\n const ACTIVE_REAR_VEHICLE = VEHICLES_LIST?.filter(\r\n (VEHICLE) => !!VEHICLE.Active && !VEHICLE.IsFront\r\n )[0];\r\n\r\n useEffect(() => {\r\n if (!VEHICLES_LIST) return;\r\n SET_SELECTED_FRONT_VEHICLE(ACTIVE_FRONT_VEHICLE?.RegNo || \"-1\");\r\n SET_SELECTED_REAR_VEHICLE(ACTIVE_REAR_VEHICLE?.RegNo || \"-1\");\r\n }, [VEHICLES_LIST]);\r\n\r\n // useEffect(() => {\r\n // if (!ACTIVE_FRONT_VEHICLE) return;\r\n // SET_SELECTED_FRONT_VEHICLE(ACTIVE_REAR_VEHICLE?.RegNo || \"-1\");\r\n // }, [ACTIVE_FRONT_VEHICLE]);\r\n //\r\n // useEffect(() => {\r\n // if (!ACTIVE_REAR_VEHICLE) return;\r\n // SET_SELECTED_REAR_VEHICLE(ACTIVE_REAR_VEHICLE?.RegNo || \"-1\");\r\n // }, [ACTIVE_REAR_VEHICLE]);\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n\r\n if (VEHICLES_LIST_ERROR) return ;\r\n\r\n\r\n if (DISPOSITIONS_LIST_ERROR) return ;\r\n\r\n\r\n if (!DISPOSITIONS_LIST || !VEHICLES_LIST) return ;\r\n\r\n\r\n if (VEHICLES_LIST?.length === 0) return \r\n\r\n\r\n const AVAILABLE_VEHICLES = Object.fromEntries(\r\n VEHICLES_LIST.map((vehicle: VEHICLE_INTERFACE) => [vehicle.RegNo, vehicle])\r\n );\r\n\r\n\r\n const SELECTED_FRONT_VEHICLE_IS_TANK = !!AVAILABLE_VEHICLES[SELECTED_FRONT_VEHICLE]?.IsTank;\r\n\r\n\r\n const DispositionList = DISPOSITIONS_LIST.map((disposition: DISPOSITION_INTERFACE) => {\r\n\r\n const productsOwnersNames = new Set();\r\n const productsReceiversNames = new Set();\r\n const productsSENTValues = new Set();\r\n\r\n disposition?.DispItems?.forEach((product: PRODUCT_INTERFACE) => {\r\n if (product.ClientName) productsOwnersNames.add(product.ClientName);\r\n if (product.ReceiverName) productsReceiversNames.add(product.ReceiverName);\r\n productsSENTValues.add(product.SENTNumber);\r\n });\r\n\r\n\r\n const DISPOSITION_SELECTED_STATUS = SELECTED_DISPOSITIONS.includes(disposition.DispNo);\r\n const DISPOSITION_IS_VALID_STATUS = (new Date(disposition.ValidTo || \"\")).getTime() > (new Date()).getTime();\r\n\r\n const dispositionSentNumbers = Array.from(productsSENTValues).map((sent: any, i: number) =>\r\n {sent}\r\n );\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n {disposition?.DispNo}\r\n \r\n\r\n {!!disposition.ValidFrom && !!disposition.ValidTo &&\r\n\t \r\n\t\t {`od`}\r\n\t\t {dateFormat(new Date(disposition.ValidFrom), \"dd-mm-yyyy\")}\r\n\t\t {`do`}\r\n\t\t {dateFormat(new Date(disposition.ValidTo), \"dd-mm-yyyy\")}\r\n\t \r\n }\r\n\r\n {dispositionSentNumbers.length > 0 &&\r\n\t \r\n {dispositionSentNumbers}\r\n\t \r\n }\r\n\r\n \r\n {`Zleceniodawca:`}\r\n {Array.from(productsOwnersNames).join(\", \")}\r\n \r\n\r\n {productsReceiversNames.size > 0 &&\r\n\t \r\n\t\t {`Odbiorca:`}\r\n\t\t {Array.from(productsReceiversNames).join(\", \")}\r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {!disposition.IsBooked && ((!!SELECTED_FRONT_VEHICLE && SELECTED_FRONT_VEHICLE !== \"-1\" && !!SELECTED_REAR_VEHICLE && SELECTED_REAR_VEHICLE !== \"-1\") || SELECTED_FRONT_VEHICLE_IS_TANK === true) &&\r\n\t \r\n selectedDispositionsListHandler(disposition.DispNo)} className={DISPOSITION_SELECTED_STATUS ? \"checked\" : \"\"}>\r\n {DISPOSITION_SELECTED_STATUS && }\r\n \r\n\t \r\n }\r\n\r\n {!!disposition.IsBooked &&\r\n\t \r\n\t\t \r\n\t\t {`Zaawizowana`}\r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n );\r\n\r\n });\r\n\r\n\r\n const AVAILABLE_FRONT_VEHICLES = Object.fromEntries(\r\n Object.entries(AVAILABLE_VEHICLES).filter(([vehicleRegNo, vehicle]: [string, VEHICLE_INTERFACE]) => !!vehicleRegNo && !!vehicle.IsFront)\r\n );\r\n\r\n const AVAILABLE_REAR_VEHICLES = Object.fromEntries(\r\n Object.entries(AVAILABLE_VEHICLES).filter((\r\n [vehicleRegNo, vehicle]: [string, VEHICLE_INTERFACE]\r\n ) => {\r\n if (!SELECTED_FRONT_VEHICLE) return !!vehicleRegNo && !vehicle.IsFront;\r\n const FRONT_VEHICLE: VEHICLE_INTERFACE = AVAILABLE_VEHICLES[SELECTED_FRONT_VEHICLE];\r\n if (!FRONT_VEHICLE?.Type) return;\r\n if (FRONT_VEHICLE?.Type === \"C\") return !!vehicleRegNo && !vehicle.IsFront && vehicle.Type === \"N\";\r\n if (FRONT_VEHICLE?.Type === \"A\") return !!vehicleRegNo && !vehicle.IsFront && vehicle.Type === \"P\";\r\n })\r\n );\r\n\r\n\r\n const USABLE_DISPOSITIONS: number = DISPOSITIONS_LIST.filter(\r\n (disposition: DISPOSITION_INTERFACE) => !disposition.IsBooked\r\n ).length;\r\n\r\n\r\n interface CREATE_MONITORY_NOTE_DATA_INTERFACE {\r\n DISPOSITIONS?: string[];\r\n TERMINAL?: {TERMINAL_NAME: string; TERMINAL_ID: string}\r\n VEHICLES?: {FRONT: VEHICLE_INTERFACE; REAR: VEHICLE_INTERFACE};\r\n }\r\n\r\n const CREATE_MONITORY_NOTE_DATA: CREATE_MONITORY_NOTE_DATA_INTERFACE = {\r\n DISPOSITIONS: SELECTED_DISPOSITIONS,\r\n TERMINAL: {TERMINAL_NAME, TERMINAL_ID},\r\n VEHICLES: {\r\n FRONT: AVAILABLE_VEHICLES[SELECTED_FRONT_VEHICLE] || null,\r\n REAR: AVAILABLE_VEHICLES[SELECTED_REAR_VEHICLE] || null\r\n }\r\n };\r\n\r\n\r\n const FRONT_VEHICLE = AVAILABLE_FRONT_VEHICLES[SELECTED_FRONT_VEHICLE] || null;\r\n const REAR_VEHICLE = AVAILABLE_REAR_VEHICLES[SELECTED_REAR_VEHICLE] || null;\r\n\r\n\r\n return (\r\n \r\n\r\n {/* Helmet Module Component - Set Document Title */}\r\n \r\n {`${ENV.APP_TITLE} - Dyspozycje dla ${TERMINAL_NAME}`}\r\n \r\n {/* /Helmet Module Component - Set Document Title */}\r\n\r\n \r\n\r\n \r\n {`Baza Paliw ${TERMINAL_NAME}`}\r\n \r\n\r\n <>\r\n {(USABLE_DISPOSITIONS > 0 || SELECTED_FRONT_VEHICLE || SELECTED_REAR_VEHICLE) &&\r\n \r\n \r\n \r\n
    {`Pojazd przedni`}
    \r\n {Object.entries(AVAILABLE_FRONT_VEHICLES).length > 0 ?\r\n CHANGE_SELECTED_FRONT_VEHICLE(e.target.value)}>\r\n \r\n {Object.entries(AVAILABLE_FRONT_VEHICLES).map(([vehicleRegNo, vehicle]: [string, VEHICLE_INTERFACE]) => )}\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n
    {`Pojazd tylny`}
    \r\n\t 0)} onChange={(e) => CHANGE_SELECTED_REAR_VEHICLE(e.target.value)}>\r\n \r\n {Object.entries(AVAILABLE_REAR_VEHICLES).map(([vehicleRegNo, vehicle]: [string, VEHICLE_INTERFACE]) => )}\r\n\t \r\n \r\n
    \r\n \r\n }\r\n \r\n\r\n {USABLE_DISPOSITIONS > 0 && !(!!FRONT_VEHICLE && FRONT_VEHICLE?.IsTank || !!FRONT_VEHICLE && !!REAR_VEHICLE) &&\r\n \r\n\t {`Jeżeli chcesz utworzyć nową Awizację wybierz najpierw zestaw pojazdów`}\r\n \r\n }\r\n\r\n \r\n \r\n {DispositionList?.length > 0 ?\r\n DispositionList\r\n :\r\n \r\n }\r\n \r\n \r\n\r\n <>\r\n {SELECTED_DISPOSITIONS.length > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n\r\n
    \r\n )\r\n\r\n};\r\n\r\n\r\nexport default TerminalDispositionsListPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\nimport DISPOSITION_INTERFACE from \"@Services/Application/Interfaces/Dispositions/Disposition\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport {Col, Row} from \"react-bootstrap\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport dateFormat from \"dateformat\";\r\nimport PRODUCT_INTERFACE from \"@Services/Application/Interfaces/Products/Product\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\ntype DispositionPageProps = {match: any};\r\n\r\n\r\nexport const DispositionPageComponent: React.FC = ({match}): JSX.Element | null => {\r\n\r\n\r\n const DISPOSITION_ID: string | null = match?.params?.dispositionId || null;\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [DISPOSITION_DATA, SET_DISPOSITION_DATA] = useState(null);\r\n const [DISPOSITION_ERROR, SET_DISPOSITION_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!DISPOSITION_ID || !REST_API_URL || !LOGGED_USER?.userID) return;\r\n\r\n const DISPOSITION_API_URL = `${REST_API_URL}/Disp/Get`;\r\n\r\n const DISPOSITION_REQUEST_DATA = {\r\n \"UserId\": LOGGED_USER?.userID, \"DispNo\": DISPOSITION_ID.replaceAll(\"--\", \"/\")\r\n };\r\n\r\n const GET_DISPOSITION_DATA = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const DISPOSITION_RESPONSE = await REST_API_REQUEST(\r\n DISPOSITION_API_URL,\r\n DISPOSITION_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_TOKEN_ACTION(\r\n prepareRestApiRequestToken(DISPOSITION_RESPONSE.headers)\r\n ));\r\n\r\n if (DISPOSITION_RESPONSE.status === 200) {\r\n const RESPONSE_CONTENT: DISPOSITION_INTERFACE = await DISPOSITION_RESPONSE.json();\r\n SET_DISPOSITION_DATA(RESPONSE_CONTENT);\r\n SET_DISPOSITION_ERROR(null);\r\n\r\n } else {\r\n const RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await DISPOSITION_RESPONSE.json();\r\n SET_DISPOSITION_ERROR({ErrorCode: DISPOSITION_RESPONSE.status, UserMessage: RESPONSE_CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_DISPOSITION_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_DISPOSITION_DATA();\r\n\r\n return () => {\r\n SET_DISPOSITION_DATA(null);\r\n SET_DISPOSITION_ERROR(null);\r\n };\r\n\r\n }, [DISPOSITION_ID, REST_API_URL]);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!DISPOSITION_ID) return ;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!DISPOSITION_ERROR &&\r\n \r\n }\r\n\r\n {DISPOSITION_DATA &&\r\n \r\n \r\n\r\n\t \r\n\t\t \r\n\t\t\t \r\n\t\t\t\t {DISPOSITION_DATA?.TerminalMasterNo}\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t {`Ważna od`}\r\n\t\t\t\t {dateFormat(DISPOSITION_DATA.ValidFrom, \"dd-mm-yyyy\")}\r\n\t\t\t\t {`do`}\r\n\t\t\t\t {dateFormat(DISPOSITION_DATA.ValidTo, \"dd-mm-yyyy\")}\r\n\t\t\t \r\n\t\t \r\n\t \r\n\r\n {!!DISPOSITION_DATA.IsBooked &&\r\n\t \r\n\t \r\n \r\n {`Zaawizowana`}\r\n \r\n \r\n {`Godzina rozpoczęcia nalewu`}:\r\n {dateFormat(DISPOSITION_DATA.ProcessStartDate, \"dd-mm-yyyy HH:MM\")}\r\n \r\n \r\n\t \r\n }\r\n\r\n {!!DISPOSITION_DATA.DispItems && DISPOSITION_DATA.DispItems.length > 0 &&\r\n\t \r\n\t\t \r\n\r\n\t\t\t \r\n\t\t\t\t {`Produkty`}\r\n\t\t\t \r\n\r\n {DISPOSITION_DATA.DispItems.map((PRODUCT: PRODUCT_INTERFACE) =>\r\n \r\n \r\n \r\n {PRODUCT.ProductSalesName || PRODUCT.ProductShortName}\r\n \r\n {!!PRODUCT.SENTNumber &&\r\n\t \r\n\t\t {PRODUCT.SENTNumber}\r\n\t \r\n }\r\n \r\n {`Numer`}:\r\n {PRODUCT.ProductMasterNo}\r\n \r\n \r\n {`Ilość`}:\r\n {PRODUCT.Qty} {PRODUCT.QtyUnitName}\r\n \r\n \r\n {`Klient`}:\r\n {PRODUCT.ClientName}\r\n \r\n \r\n {`Miejsce Dostawy`}:\r\n {PRODUCT.ReceiverName}\r\n \r\n \r\n \r\n )}\r\n\r\n\t\t \r\n\t \r\n }\r\n\r\n \r\n \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DispositionPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport DispositionsTerminalsListPageComponent from \"@UIPages/Authenticated/Dispositions/Terminals\";\r\nimport TerminalDispositionsListPageComponent from \"@UIPages/Authenticated/Dispositions/Terminal\";\r\nimport DispositionPageComponent from \"@UIPages/Authenticated/Dispositions/Disposition\";\r\n\r\n\r\ntype DispositionsPageComponentProps = {};\r\n\r\n\r\nexport const DispositionsPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!LOGGED_USER?.userID) return ;\r\n\r\n\r\n const DISPOSITIONS_TERMINALS_LIST_URL = ROUTER.AUTHENTICATED.DISPOSITIONS.DISPOSITIONS_TERMINALS_LIST.URL;\r\n const TERMINAL_DISPOSITIONS_LIST_URL = ROUTER.AUTHENTICATED.DISPOSITIONS.TERMINAL_DISPOSITIONS_LIST.URL;\r\n const DISPOSITION_URL = ROUTER.AUTHENTICATED.DISPOSITIONS.DISPOSITION.URL;\r\n\r\n\r\n return (\r\n \r\n\r\n {!!DISPOSITIONS_TERMINALS_LIST_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n {!!TERMINAL_DISPOSITIONS_LIST_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n {!!DISPOSITION_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DispositionsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Button, Col} from \"react-bootstrap\";\r\n\r\n\r\ntype TerminalsListDisplaySwitcherProps = {\r\n SHOW_ALL_PETROL_BASES_STATUS: boolean;\r\n SHOW_ALL_PETROL_BASES_STATUS_HANDLER(status: boolean): void;\r\n};\r\n\r\n\r\nexport const TerminalsListDisplaySwitcherComponent: React.FC = ({\r\n SHOW_ALL_PETROL_BASES_STATUS, SHOW_ALL_PETROL_BASES_STATUS_HANDLER\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (SHOW_ALL_PETROL_BASES_STATUS) return null;\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TerminalsListDisplaySwitcherComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Col} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\n\r\nimport TerminalsListComponent from \"@UIPages/Authenticated/Terminals/List/Terminals\";\r\nimport TerminalsListDisplaySwitcherComponent from \"@UIPages/Authenticated/Terminals/List/Switcher\";\r\nimport TerminalsListLegendComponent from \"@UIPages/Authenticated/Terminals/List/Legend\";\r\n\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport TERMINAL_INTERFACE from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\ntype TerminalsListPageProps = {};\r\n\r\n\r\nexport const TerminalsListPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [TERMINALS_LIST, SET_TERMINALS_LIST] = useState(null);\r\n const [TERMINALS_LIST_ERROR, SET_TERMINALS_LIST_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n const GET_TERMINALS_LIST = async (): Promise => {\r\n\r\n if (!REST_API_URL) return;\r\n\r\n const TERMINALS_LIST_API_URL = REST_API_URL + \"/Terminal/List\";\r\n\r\n const TERMINALS_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n Favorite: false,\r\n Mode: \"B\"\r\n };\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const TERMINALS_LIST_RESPONSE = await REST_API_REQUEST(\r\n TERMINALS_LIST_API_URL,\r\n TERMINALS_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (TERMINALS_LIST_RESPONSE.status === 200) {\r\n\r\n const CONTENT: any = await TERMINALS_LIST_RESPONSE.json();\r\n SET_TERMINALS_LIST(CONTENT.Terminals);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await TERMINALS_LIST_RESPONSE.json();\r\n SET_TERMINALS_LIST_ERROR({ErrorCode: TERMINALS_LIST_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_TERMINALS_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_TERMINALS_LIST();\r\n\r\n }, []);\r\n\r\n\r\n const [SHOW_ALL_PETROL_BASES_STATUS, SET_SHOW_ALL_PETROL_BASES_STATUS] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_TERMINALS_LIST(null);\r\n SET_TERMINALS_LIST_ERROR(null);\r\n SET_SHOW_ALL_PETROL_BASES_STATUS(false);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n\r\n const TERMINALS = !!TERMINALS_LIST ? TERMINALS_LIST?.sort(\r\n (terminal1, terminal2) => {\r\n if (!terminal1?.TransportNotificationCount || !terminal2?.TransportNotificationCount || !terminal1?.DispCount || !terminal2?.DispCount) {\r\n return 0;\r\n }\r\n return terminal1?.TransportNotificationCount > terminal2?.TransportNotificationCount ? -1 :\r\n terminal1?.DispCount > terminal2?.DispCount ? -1 : 1;\r\n }) : null;\r\n\r\n const FAVORITE_TERMINALS = !!TERMINALS ? TERMINALS?.filter((terminal) => !!terminal.Favorite) : [];\r\n\r\n const OTHER_TERMINALS = !!TERMINALS ? TERMINALS?.filter((terminal) => !terminal.Favorite) : [];\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!TERMINALS_LIST_ERROR ?\r\n\r\n \r\n\r\n :\r\n\r\n !!TERMINALS ?\r\n <>\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n :\r\n\r\n !REST_API_REQUEST_STATUS &&\r\n \r\n {`Brak paz paliw`}\r\n \r\n\r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TerminalsListPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport TerminalsListPageComponent from \"@UIPages/Authenticated/Terminals/List\";\r\n\r\n\r\ntype TerminalsPageProps = {};\r\n\r\n\r\nexport const TerminalsPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const TERMINALS_LIST_URL = ROUTER.AUTHENTICATED.PETROL_BASES.PETROL_BASES_LIST.URL;\r\n const TERMINAL_URL = ROUTER.AUTHENTICATED.PETROL_BASES.PETROL_BASE.URL;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n null}\r\n />\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TerminalsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport {LOG_USER_OUT_ACTION} from \"@Actions/Authentication\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {NavLink, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport ApplicationHeaderComponent from \"@UIParts/Header\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\ntype SettingsPageHomeViewProps = {};\r\n\r\n\r\nexport const SettingsPageHomeViewComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const SETTINGS_PAGE_URLS = ROUTER.AUTHENTICATED.SETTINGS;\r\n\r\n const {\r\n SETTINGS_USER_DATA_PAGE, SETTINGS_MY_DOCUMENTS_PAGE, SETTINGS_MY_BHP_PAGE, SETTINGS_FINISHED_TRANSPORTS_PAGE,\r\n SETTINGS_MY_FAVORITE_VEHICLES_PAGE, SETTINGS_MY_FAVORITE_TERMINALS_PAGE,\r\n SETTINGS_DELETE_ACCOUNT_PAGE, SETTINGS_CHANGE_PASSWORD_PAGE,\r\n SETTINGS_REGULATIONS_PAGE, SETTINGS_CONTACT_PAGE, SETTINGS_ABOUT_PAGE, SETTINGS_DISCONNECT_FROM_OPERATOR_PAGE\r\n } = SETTINGS_PAGE_URLS;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {`Moje dane`}\r\n \r\n \r\n \r\n \r\n {`Moje dokumenty`}\r\n \r\n \r\n \r\n \r\n {`Moje szkolenia BHP`}\r\n \r\n \r\n \r\n \r\n {`Moje zakończone transporty`}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {`Moje ulubione pojazdy`}\r\n \r\n \r\n \r\n \r\n {`Moje ulubione bazy paliw`}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {`Usuń konto`}\r\n \r\n \r\n \r\n \r\n {`Zmień hasło`}\r\n \r\n \r\n \r\n \r\n {`Odłącz przewoźnika`}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {`Regulaminy i klauzule`}\r\n \r\n \r\n \r\n \r\n {`Kontakt`}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {`O aplikacji`}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {e.preventDefault(); DISPATCHER(LOG_USER_OUT_ACTION())}}>\r\n {`Wyloguj się`}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsPageHomeViewComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Button, Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldsGroupFieldsComponent from \"@Components/UI/Forms/Group/Fields\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\n\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\n\r\ninterface VerificationFormErrorsInterface {\r\n process?: string | null;\r\n pinNumber?: string | null;\r\n smsCode?: string | null;\r\n}\r\n\r\n\r\ntype SettingsSMSCodeVerificationProps = {\r\n verificationStatusHandler(response: any): any;\r\n requestStep1URL?: string;\r\n requestStep2URL?: string;\r\n};\r\n\r\n\r\nexport const SettingsSMSCodeVerificationComponent: React.FC = ({\r\n verificationStatusHandler,\r\n requestStep1URL = \"/User/Verification/Initialization\",\r\n requestStep2URL = \"/User/Verification/Finalization\"\r\n}): JSX.Element | null => {\r\n\r\n\r\n /** @type {UserInterface | null} Application Logged User (from Global Store Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @var {REST_API_URL} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const REST_API_REQUEST_STATUS = useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n const [verificationFormOperationGuid, setVerificationFormOperationGuid] = useState(\"\");\r\n\r\n const [verificationFormErrors, setVerificationFormErrors] = useState({});\r\n const [verificationFormStep, setVerificationFormStep] = useState<1 | 2>(1);\r\n\r\n const [verificationPINNumber, setVerificationPINNumber] = useState(\"\");\r\n const [verificationSMSCode, setVerificationSMSCode] = useState(\"\");\r\n const [verificationSMSCodeValidDate, setVerificationSMSCodeValidDate] = useState({code: 1, time: 300});\r\n const [verificationSMSCodeNumber, setVerificationSMSCodeNumber] = useState(1);\r\n const [verificationSMSCodeNumberLockStatus, setVerificationSMSCodeNumberLockStatus] = useState(false);\r\n\r\n const changeVerificationPINNumber = (e: React.ChangeEvent): void => {\r\n const pinCode = e.target.value;\r\n // if (pinCode.length === 4 && !isNaN(+pinCode)) setVerificationFormErrors({...verificationFormErrors, pinNumber: null});\r\n setVerificationPINNumber(pinCode);\r\n };\r\n\r\n const changeVerificationSMSCode = (e: React.ChangeEvent): void => {\r\n const smsCode = e.target.value;\r\n // if (smsCode.length === 6 && !isNaN(+smsCode)) setVerificationFormErrors({...verificationFormErrors, smsCode: null});\r\n setVerificationSMSCode(smsCode);\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n setVerificationFormErrors({});\r\n setVerificationFormStep(1);\r\n setVerificationPINNumber(\"\");\r\n setVerificationSMSCode(\"\");\r\n setVerificationSMSCodeNumberLockStatus(false);\r\n };\r\n }, []);\r\n\r\n\r\n const [leftSmsCodeValidTime, setLeftSmsCodeValidTime] = useState(0);\r\n const [activeCountDown, setActiveCountDown] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n if (leftSmsCodeValidTime > 0) {\r\n if (activeCountDown) window.clearTimeout(activeCountDown);\r\n const interval = setTimeout(() => setLeftSmsCodeValidTime(leftSmsCodeValidTime - 1), 1000);;\r\n setActiveCountDown(interval);\r\n }\r\n }, [leftSmsCodeValidTime]);\r\n\r\n\r\n useEffect(() => {\r\n if (activeCountDown) window.clearTimeout(activeCountDown);\r\n if (verificationFormStep !== 2) return;\r\n if (verificationSMSCodeValidDate === 0) return;\r\n setLeftSmsCodeValidTime(verificationSMSCodeValidDate.time);\r\n }, [verificationSMSCodeValidDate]);\r\n\r\n\r\n const leftMinutes = Math.floor(leftSmsCodeValidTime / 60) || 0\r\n const leftSeconds = leftSmsCodeValidTime % 60 || 0;\r\n\r\n const formattedTime = `${(leftMinutes < 10 ? \"0\" : \"\" ) + leftMinutes.toString()}:${(leftSeconds < 10 ? \"0\" : \"\" ) + leftSeconds.toString()}`;\r\n\r\n\r\n const [enterKeyPressCount, setEnterKeyPressCount] = useState(0);\r\n\r\n useEffect(() => {\r\n let n = 0;\r\n const HANDLER = (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\") setEnterKeyPressCount(++n);\r\n }\r\n document.addEventListener(\"keydown\", HANDLER);\r\n return () => document.removeEventListener(\"keydown\", HANDLER);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (enterKeyPressCount === 0) return;\r\n verificationCodeSubmitHandler();\r\n }, [enterKeyPressCount]);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n\r\n const verificationCodeSubmitHandler = () => {\r\n\r\n let formError: boolean;\r\n\r\n setVerificationFormErrors({...verificationFormErrors, process: null});\r\n\r\n switch (verificationFormStep) {\r\n case 1:\r\n formError = !validatePinCodeStep();\r\n // formError = false;\r\n break;\r\n case 2:\r\n formError = !validateSMSCodeStep();\r\n break;\r\n default:\r\n formError = false;\r\n }\r\n\r\n if (formError) return null;\r\n\r\n };\r\n\r\n const validatePinCodeStep = () => {\r\n // if (verificationPINNumber.length !== 4 || isNaN(+verificationPINNumber)) {\r\n // setVerificationFormErrors({...verificationFormErrors, pinNumber: \"PIN ma nieprawidłowy format\", process: null})\r\n // return false;\r\n // }\r\n VERIFICATION_CODE_REQUEST_HANDLER();\r\n return true;\r\n };\r\n\r\n const validateSMSCodeStep = () => {\r\n // if (verificationSMSCode.length !== 6 || isNaN(+verificationSMSCode)) {\r\n // setVerificationFormErrors({...verificationFormErrors, smsCode: \"Kod ma nieprawidłowy format\", process: null})\r\n // return false;\r\n // }\r\n VERIFICATION_CODE_REQUEST_HANDLER();\r\n return true;\r\n };\r\n\r\n\r\n const VERIFICATION_CODE_REQUEST_HANDLER = async () => {\r\n\r\n if (!REST_API_URL || !LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n let RESPONSE: any;\r\n\r\n let API_REQUEST_URL: string = REST_API_URL;\r\n let API_REQUEST_DATA: any;\r\n\r\n switch (verificationFormStep) {\r\n case 1:\r\n API_REQUEST_URL += requestStep1URL;\r\n API_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n CardPIN: verificationPINNumber\r\n };\r\n break;\r\n case 2:\r\n API_REQUEST_URL += requestStep2URL;\r\n API_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n OperationGUID: verificationFormOperationGuid,\r\n VerificationCode: verificationSMSCode\r\n };\r\n break;\r\n default:\r\n return null;\r\n }\r\n\r\n try {\r\n\r\n const AUTHORIZATION_RESPONSE = await REST_API_REQUEST(\r\n API_REQUEST_URL,\r\n API_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (AUTHORIZATION_RESPONSE.status !== 200 && AUTHORIZATION_RESPONSE.status !== 204) {\r\n RESPONSE = {error: true, message: (await AUTHORIZATION_RESPONSE.json())?.UserMessage};\r\n if (verificationFormStep === 2 && AUTHORIZATION_RESPONSE.status === 409) {\r\n setVerificationSMSCodeNumberLockStatus(true);\r\n }\r\n } else {\r\n setVerificationFormStep(verificationFormStep === 1 ? 2 : 1);\r\n switch (verificationFormStep) {\r\n case 1:\r\n const CONTENT: any = await AUTHORIZATION_RESPONSE?.json();\r\n setVerificationFormOperationGuid(CONTENT?.OperationGUID);\r\n const smsCodeValidDateTime = new Date(CONTENT?.VerificationCodeValidDate);\r\n const smsCodeValidLeftTime = Math.ceil((smsCodeValidDateTime.getTime() - (new Date()).getTime()) / 1000);\r\n setVerificationSMSCodeValidDate({code: +CONTENT?.VerificationCodeNo || 1, time: smsCodeValidLeftTime});\r\n setVerificationSMSCodeNumber(+CONTENT?.VerificationCodeNo || 1);\r\n break;\r\n case 2:\r\n verificationStatusHandler({OperationGUID: verificationFormOperationGuid});\r\n break;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n } catch (e) {\r\n console.log(e)\r\n RESPONSE = {error: true, message: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"};\r\n }\r\n\r\n if (RESPONSE?.error) setVerificationFormErrors({...verificationFormErrors, process: RESPONSE?.message});\r\n\r\n return RESPONSE;\r\n\r\n };\r\n\r\n\r\n const GENERATE_VERIFICATION_CODE = async () => {\r\n\r\n try {\r\n\r\n const VERIFICATION_CODE_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/User/GenerateVerificationCode`,\r\n {\r\n UserId: LOGGED_USER?.userID,\r\n OperationGUID: verificationFormOperationGuid\r\n },\r\n REST_API_REQUEST_TOKEN\r\n )\r\n\r\n const CONTENT: any = await VERIFICATION_CODE_RESPONSE.json();\r\n\r\n if (VERIFICATION_CODE_RESPONSE.status === 200) {\r\n setVerificationSMSCode(\"\");\r\n setVerificationSMSCodeNumberLockStatus(false);\r\n const smsCodeValidDateTime = new Date(CONTENT?.VerificationCodeValidDate);\r\n const smsCodeValidLeftTime = Math.ceil((smsCodeValidDateTime.getTime() - (new Date()).getTime()) / 1000);\r\n setVerificationSMSCodeValidDate({code: +CONTENT?.VerificationCodeNo || 1, time: smsCodeValidLeftTime});\r\n setVerificationSMSCodeNumber(+CONTENT?.VerificationCodeNo || 1);\r\n setVerificationFormErrors({process: null});\r\n } else {\r\n setVerificationFormErrors({process: CONTENT?.UserMessage});\r\n if (activeCountDown) window.clearTimeout(activeCountDown);\r\n setActiveCountDown(null);\r\n setLeftSmsCodeValidTime(-1);\r\n }\r\n\r\n } catch (e) {\r\n setVerificationFormErrors({process: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n if (activeCountDown) window.clearTimeout(activeCountDown);\r\n setActiveCountDown(null);\r\n setLeftSmsCodeValidTime(-1);\r\n }\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n <>\r\n {verificationFormStep === 1 &&\r\n\t \r\n }\r\n \r\n\r\n <>\r\n {verificationFormStep === 2 && !verificationSMSCodeNumberLockStatus &&\r\n 0 ? `Pozostały czas: ${formattedTime}` : null}\r\n fieldDisabledStatus={!(leftSmsCodeValidTime > 0)}\r\n />\r\n }\r\n \r\n\r\n <>\r\n {leftSmsCodeValidTime !== -1 && !verificationSMSCodeNumberLockStatus &&\r\n \r\n\t \r\n \r\n }\r\n \r\n\r\n\r\n \r\n\r\n <>\r\n {!!verificationFormErrors?.process &&\r\n \r\n }\r\n \r\n\r\n <>\r\n {leftSmsCodeValidTime !== -1 && !verificationSMSCodeNumberLockStatus &&\r\n verificationCodeSubmitHandler()}\r\n controlId={`user-verification-submit`}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n cssClasses={`user-verification-submit`}\r\n />\r\n }\r\n \r\n\r\n <>\r\n {leftSmsCodeValidTime !== -1 && verificationFormStep === 2 &&\r\n \r\n \r\n \r\n }\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsSMSCodeVerificationComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport USER_INTERFACE from \"@Services/Application/Interfaces/Users/User\";\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport SettingsSMSCodeVerificationComponent from \"@UIPages/Authenticated/Settings/_Parts/Verification\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\ntype MyProfilePageProps = {};\r\n\r\n\r\nexport const SettingsMyProfilePageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [USER_AUTHENTICATED_STATUS, SET_USER_AUTHENTICATED_STATUS] = useState(false);\r\n\r\n const CHANGE_USER_AUTHENTICATED_STATUS = (response: any) => {\r\n if (response.OperationGUID) SET_USER_AUTHENTICATED_STATUS(true);\r\n }\r\n\r\n /** @var {[object, function]} State - User Profile Data Object, User Profile Data Object Setter */\r\n const [USER_PROFILE_DATA, SET_USER_PROFILE_DATA] = useState(null);\r\n /** @var {[boolean, function]} State - User Profile Component Error, User Profile Component Error Setter */\r\n const [USER_PROFILE_ERROR, SET_USER_PROFILE_ERROR] = useState(null);\r\n\r\n\r\n /** @hook {didMount, didUpdate} Get Terminals List from REST API */\r\n useEffect(() => {\r\n\r\n if (!USER_AUTHENTICATED_STATUS) return;\r\n\r\n /* Check if Monitory Note ID, API URL Present, User Logged */\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return; // No Valid Data - Stop\r\n\r\n /** @const USER_PROFILE_API_URL User Profile REST API Endpoint URL */\r\n const USER_PROFILE_API_URL: string = REST_API_URL + \"/User/Get\";\r\n\r\n /** @const USER_PROFILE_REQUEST_DATA User Profile Request Data Object */\r\n const USER_PROFILE_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n ContentType: \"G\" // Data Return Mode - Main User Data\r\n };\r\n\r\n /** @async {function} User Profile Data Request Handler */\r\n const GET_USER_PROFILE_DATA = async (): Promise => {\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true)); // Set Status to true\r\n\r\n try {\r\n\r\n const USER_DATA_RESPONSE = await REST_API_REQUEST(\r\n USER_PROFILE_API_URL,\r\n USER_PROFILE_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (USER_DATA_RESPONSE.status === 200) {\r\n\r\n const CONTENT = await USER_DATA_RESPONSE.text();\r\n if (CONTENT.trim()) {\r\n SET_USER_PROFILE_DATA(JSON.parse(CONTENT));\r\n }\r\n\r\n } else {\r\n if (USER_DATA_RESPONSE.status === 409) {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await USER_DATA_RESPONSE.json();\r\n SET_USER_PROFILE_ERROR({ErrorCode: CONTENT.ErrorCode, UserMessage: CONTENT.UserMessage});\r\n } else {\r\n SET_USER_PROFILE_ERROR({ErrorCode: USER_DATA_RESPONSE.status, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_USER_PROFILE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_USER_PROFILE_DATA();\r\n\r\n }, [USER_AUTHENTICATED_STATUS]);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!!USER_PROFILE_ERROR) return ;\r\n\r\n\r\n if (!USER_AUTHENTICATED_STATUS) return ;\r\n\r\n\r\n if (!USER_PROFILE_DATA) return null;\r\n\r\n\r\n const {\r\n Login: USER_LOGIN, Driver: USER_DRIVER_DATA,\r\n } = USER_PROFILE_DATA;\r\n\r\n\r\n if (!USER_DRIVER_DATA) return null;\r\n\r\n\r\n const UserCardsList = USER_DRIVER_DATA[0] && USER_DRIVER_DATA[0]?.Cards?.length ? USER_DRIVER_DATA[0]?.Cards.map(\r\n (card: any, i: number) => {\r\n return (\r\n \r\n {card?.CardNo}\r\n {!!card?.ExpireDate &&\r\n\t {`ważna do`} {dateFormat(card?.ExpireDate, \"dd-mm-yyyy\")}\r\n }\r\n ({card?.Active ? \"aktywna\" : \"nieaktywna\"})\r\n \r\n );\r\n }\r\n ) : \"Brak\";\r\n\r\n const UserOperatorsList = USER_DRIVER_DATA[0] && USER_DRIVER_DATA[0]?.Applicants?.length ? USER_DRIVER_DATA[0]?.Applicants.map(\r\n (operator: any, i: number) => {\r\n return (\r\n \r\n {operator?.fdName || operator?.ShortName}\r\n \r\n );\r\n }\r\n ) : \"Brak\";\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n {USER_DRIVER_DATA[0]?.Firstname} {USER_DRIVER_DATA[0]?.Surname}\r\n \r\n \r\n {`login`}:\r\n {USER_LOGIN}\r\n \r\n \r\n {`kraj`}:\r\n {USER_DRIVER_DATA[0]?.Country}\r\n \r\n \r\n {`data urodzenia`}:\r\n {dateFormat(USER_DRIVER_DATA[0]?.Birthdate, \"dd-mm-yyyy\")}\r\n \r\n \r\n {`pesel`}:\r\n {USER_DRIVER_DATA[0]?.PESEL}\r\n \r\n \r\n {`telefon`}:\r\n {USER_DRIVER_DATA[0]?.Phone}\r\n \r\n \r\n \r\n\r\n {UserCardsList.length > 0 &&\r\n \r\n \r\n \r\n {`Karty`}\r\n \r\n {UserCardsList}\r\n \r\n \r\n }\r\n\r\n {UserOperatorsList.length > 0 &&\r\n \r\n \r\n \r\n {`Zgłaszający`}\r\n \r\n {UserOperatorsList}\r\n \r\n \r\n }\r\n\r\n \r\n \r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsMyProfilePageComponent;\r\n","export const getObjectKeyValue = function (obj: T, key: U): any {\r\n if (!Object.keys(obj).includes(key.toString())) {\r\n return null;\r\n }\r\n return obj[key];\r\n};\r\n\r\n\r\nexport default getObjectKeyValue;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport USER_INTERFACE, {DOCUMENT_INTERFACE} from \"@Services/Application/Interfaces/Users/User\";\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\nimport getObjectKeyValue from \"@Utilities/Object/GetKeyValue\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport SettingsSMSCodeVerificationComponent from \"@UIPages/Authenticated/Settings/_Parts/Verification\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\ntype MyDocumentsPageProps = {};\r\n\r\n\r\ninterface DOCUMENTS_INTERFACE {\r\n A: string;\r\n D: string;\r\n O: string;\r\n P: string;\r\n T: string;\r\n}\r\n\r\nconst DOCUMENTS: DOCUMENTS_INTERFACE = {\r\n A: \"Zaświadczenie ADR\",\r\n D: \"Prawo jazdy\",\r\n O: \"Dowód osobisty\",\r\n P: \"Paszport\",\r\n T: \"Zaświadczenie TDT\"\r\n}\r\n\r\n\r\nexport const SettingsMyDocumentsPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [userVerifiedStatus, setUserVerifiedStatus] = useState(false);\r\n\r\n const changeUserVerifiedStatus = (response: any) => {\r\n if (response.OperationGUID) setUserVerifiedStatus(true);\r\n }\r\n\r\n\r\n /** @var {[object, function]} State - User Profile Data Object, User Profile Data Object Setter */\r\n const [USER_MY_DOCUMENTS_DATA, SET_USER_MY_DOCUMENTS_DATA] = useState(null);\r\n /** @var {[boolean, function]} State - User Profile Component Error, User Profile Component Error Setter */\r\n const [USER_MY_DOCUMENTS_ERROR, SET_USER_MY_DOCUMENTS_ERROR] = useState(null);\r\n\r\n\r\n /** @hook {didMount, didUpdate} Get Terminals List from REST API */\r\n useEffect(() => {\r\n\r\n if (!userVerifiedStatus) return;\r\n\r\n /* Check if Monitory Note ID, API URL Present, User Logged */\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return; // No Valid Data - Stop\r\n\r\n /** @const USER_MY_DOCUMENTS_API_URL User Profile REST API Endpoint URL */\r\n const USER_MY_DOCUMENTS_API_URL: string = REST_API_URL + \"/User/Get\";\r\n\r\n /** @const USER_MY_DOCUMENTS_REQUEST_DATA User Profile Request Data Object */\r\n const USER_MY_DOCUMENTS_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n ContentType: \"D\" // Data Return Mode - Main User Data\r\n };\r\n\r\n /** @async {function} User Profile Data Request Handler */\r\n const GET_USER_MY_DOCUMENTS_DATA = async (): Promise => {\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true)); // Set Status to true\r\n\r\n try {\r\n\r\n const USER_DATA_RESPONSE = await REST_API_REQUEST(\r\n USER_MY_DOCUMENTS_API_URL,\r\n USER_MY_DOCUMENTS_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (USER_DATA_RESPONSE.status === 200) {\r\n const CONTENT = await USER_DATA_RESPONSE.text();\r\n if (CONTENT.trim()) {\r\n SET_USER_MY_DOCUMENTS_DATA(JSON.parse(CONTENT));\r\n }\r\n } else {\r\n if (USER_DATA_RESPONSE.status === 409) {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await USER_DATA_RESPONSE.json();\r\n SET_USER_MY_DOCUMENTS_ERROR({ErrorCode: CONTENT.ErrorCode, UserMessage: CONTENT.UserMessage});\r\n } else {\r\n SET_USER_MY_DOCUMENTS_ERROR({ErrorCode: USER_DATA_RESPONSE.status, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_USER_MY_DOCUMENTS_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_USER_MY_DOCUMENTS_DATA();\r\n\r\n }, [userVerifiedStatus]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {SET_USER_MY_DOCUMENTS_ERROR(null);};\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!userVerifiedStatus) return ;\r\n\r\n\r\n const {DriverDocs: userDocuments} = USER_MY_DOCUMENTS_DATA || {};\r\n\r\n\r\n const UserDocuments = !userDocuments ? null : userDocuments.map((document: DOCUMENT_INTERFACE, i: number) => {\r\n\r\n const {Type: documentType, DocNo: documentNumber, Expire: documentExpireDate} = document;\r\n\r\n return (\r\n \r\n \r\n \r\n {getObjectKeyValue(DOCUMENTS, documentType)}\r\n \r\n \r\n {`numer`}:\r\n {documentNumber}\r\n \r\n \r\n {`ważny do`}:\r\n {dateFormat(documentExpireDate, \"dd-mm-yyyy\")}\r\n \r\n \r\n \r\n );\r\n\r\n });\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n\t \r\n\t\t \r\n {!!USER_MY_DOCUMENTS_ERROR && }\r\n {UserDocuments}\r\n\t\t \r\n\t \r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsMyDocumentsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\n\r\nimport { useDispatch } from \"react-redux\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport { Button, Col } from \"react-bootstrap\";\r\n\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport { BHPCOURSE_INTERFACE } from \"@Services/Application/Interfaces/Users/User\";\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport { Row } from \"react-bootstrap\";\r\nimport { APPLICATION_ROUTER_INTERFACE } from \"@DATA/Router/Interfaces/Router\";\r\nimport { ApplicationRouterContext } from \"@Contexts/Router\";\r\n\r\ntype BhpQuizPageProps = { match?: any; location?: any; };\r\n\r\nexport const BhpQuizPageComponent: React.FC = ({\r\n match, location\r\n}): JSX.Element | null => {\r\n\r\n const TERMINAL_NO = location?.state?.terminalNo;\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA: ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA: ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n const [BHPCOURSE, SET_BHPCOURSE] = useState(null)\r\n const [BHPCOURSE_ERROR, SET_BHPCOURSE_RESPONSE_ERROR] = useState(null);\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n const QUIZROUTE = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ;\r\n\r\n useEffect(() => {\r\n\r\n const GET_BHPCOURSE = async (): Promise => {\r\n\r\n if (!REST_API_URL) return;\r\n\r\n const BHPCOURSE_API_URL = REST_API_URL + \"/Terminal/Quiz/Initialization\";\r\n\r\n const BHPCOURSE_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n TerminalNo: TERMINAL_NO\r\n };\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const BHPCOURSE_RESPONSE = await REST_API_REQUEST(\r\n BHPCOURSE_API_URL,\r\n BHPCOURSE_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (BHPCOURSE_RESPONSE.status === 200) {\r\n\r\n const CONTENT: any = await BHPCOURSE_RESPONSE.json();\r\n SET_BHPCOURSE(CONTENT);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await BHPCOURSE_RESPONSE.json();\r\n SET_BHPCOURSE_RESPONSE_ERROR({ ErrorCode: BHPCOURSE_RESPONSE.status, UserMessage: CONTENT.UserMessage });\r\n }\r\n\r\n } catch (e) {\r\n SET_BHPCOURSE_RESPONSE_ERROR({ ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\" });\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_BHPCOURSE();\r\n\r\n }, [TERMINAL_NO]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_BHPCOURSE(null);\r\n SET_BHPCOURSE_RESPONSE_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!BHPCOURSE_ERROR ?\r\n\r\n \r\n\r\n :\r\n\r\n !!BHPCOURSE ?\r\n\r\n \r\n \r\n\r\n
    \r\n \r\n \r\n \r\n {TERMINAL_NO}\r\n \r\n \r\n {BHPCOURSE.QuizDesc}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {BHPCOURSE.InitializationText}\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n { (!BHPCOURSE.ExtraLinks || BHPCOURSE.ExtraLinks?.length == 0) ?\r\n\r\n \r\n \r\n \r\n\r\n :\r\n\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n \r\n\r\n :\r\n\r\n !REST_API_REQUEST_STATUS &&\r\n \r\n {`Brak szkoleń`}\r\n \r\n }\r\n
    \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BhpQuizPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, { useContext } from \"react\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@DATA/Router/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport PLAY_ICON from \"@Images/136.Play.png\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\n\r\ntype QuizLinkProps = {\r\n EXPIRE: string;\r\n EXPIREPERIOD: number;\r\n TERMINALNO: string;\r\n};\r\n\r\n\r\nexport const QuizLinkComponent: React.FC = ({\r\n EXPIRE, EXPIREPERIOD, TERMINALNO\r\n}): JSX.Element | null => {\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n const QUIZROUTE = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ;\r\n\r\n var expirePeriodDate = new Date(EXPIRE);\r\n expirePeriodDate.setDate(expirePeriodDate.getDate() - EXPIREPERIOD)\r\n var isQuizLinkVisible = expirePeriodDate < new Date() || EXPIRE == undefined;\r\n\r\n if (!isQuizLinkVisible) return null;\r\n\r\n return (\r\n \r\n
    \r\n {``}\r\n
    Przeprowadź szkolenie
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n\r\nexport default QuizLinkComponent;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALEAAACxCAYAAACLKVzFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQlSURBVHhe7djLbSNHFIZR2TE4AIcgQFsn4YWj9MJJOC97CKg0DYnT04963Ft1zqbBDVcff1z2CwAAAMAc3t7efvvrnz/+e/8I3fzy/rztc8B///lvte+GPb++P6uzyvTSbIm3rDItdYm4EDMtNDsnnnFi0ELXJd6yytQyLOJCzNw1POJCzFzV9Sbe417mqjBLvGWVOSNkxIWYOSJ0xIWY2RPmJt7jXmZPiiXessp8li7iQswUaSMuxEyKm3iPe5n0S7xlldc0VcSFmNcyZcSFmNeQ/ibe415ew9RLvGWV57VMxIWY5zP1OfGME2M+yy3xllWew9IRF2LOTcQbYs5puZt4j3s5J0v8A1Y5DxH/hJjjE/FBYo7LTXyQezkuS3yBVY5FxDeIOQbnxA1OjBgscSVWeRwRVybm/kTciJj7cRM34kfdjyXuwCq3JeKOxNyGiAcQc11u4gH84OuyxINZ5ftEHISYrxNxMGI+z00cjDE4zxIHZpWPEXECYt7nnEjAQOyzxMlY5a9EnJSYvxNxcmJ2E6dnPCzxVFZdZRFPaLWYRTyxVWJ2E09slWGxxIuYeZVFvJgZY3ZOLGbGsbHEC5tllUVM+phFzIesMbuJ+ZB1iCwxT2VaZRGzK0PMIuaQyDG7iTkk8khZYk6Ltsoi5rIoMTsnuCzKcFliqhi5yiKmqhExi5gmesbsJqaJnqNmiWmu9SqLmG5axSxiuqsds5uY7moPniVmqBqrLGJCuBOziAnlSsxuYkK5MoYiJj0RE8qVc8JNTAj+2JFWjVdszgmGqRHwgyWmu1rxFiKmm9rxFiKmuVbxFm5immod8IMlpoke8RYipqqe8RbOCaoZEfCDJea2UfEWIuay0fEWIua0KPEWbmJOiRbwgyXmkIjxFiJmV+R4CxHzVIZ4CzcxX2QK+MES8yFbvIWISRtv4ZxYXPaAHyzxomaItxDxYmaKtxDxImaMt3ATL2DmgB8s8cRmj7cQ8YRWibcQ8URWi7dwE09i1YAfLHFyK8dbiDgp8X4n4mTE+5WbOBEBP2eJExDvPhEHJt5jnBNBCfg4SxyMeM8TcRDivU7Eg4n3PjfxQAKuwxIPIN66RNyReNsQcQfibctN3JiA27PEjYi3HxFXJt7+nBMVCXgMS1yBeMcS8Q3ijUHEF4g3FjfxSQKOxxIfJN64RPwT4o1PxD8g3jzcxE8IOBdLvCHenET8jXhzWzpi8c5h2ZtYwPNYbonFO59lIhbvvJY4JwQ8t6mXWLxrmDJi8a5lqojFu6ZpbmIBryv9EouXtBGLlyJdxOLls1Q3sYB5JsUSi5c9oSMWL0eEjFi8nBHuJhYwZ4VZYvFy1fCIxctdwyIWL7UMuYkFTE1dl1i8tNAlYvHSUvNzQsC01myJxUs6r6+vv199zQawsJeX/wF6rkbRtdiBhQAAAABJRU5ErkJggg==\"","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport { BHP_INTERFACE, DOCUMENT_INTERFACE } from \"@Services/Application/Interfaces/Users/User\";\r\nimport getObjectKeyValue from \"@Utilities/Object/GetKeyValue\";\r\nimport dateFormat from \"dateformat\";\r\nimport React from \"react\";\r\n\r\n\r\nimport {Button, Col, Row} from \"react-bootstrap\";\r\nimport QuizLinkComponent from \"../QuizLink\";\r\n\r\nconst DOCUMENTS_TYPES: any = {\r\n \"B\": \"Szkolenie BHP\"\r\n};\r\n\r\ntype BhpCourseProps = {\r\n BHP_COURSE: BHP_INTERFACE;\r\n};\r\n\r\nexport const BhpCourseComponent: React.FC = ({\r\n BHP_COURSE\r\n}): JSX.Element | null => {\r\n\r\n const {\r\n //Type: documentType,\r\n DocNo: documentNumber, TerminalMasterNo: documentTerminal, Expire: documentExpireDate, ExpirePeriod: documentExpirePeriod\r\n } = BHP_COURSE;\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n {{getObjectKeyValue(DOCUMENTS_TYPES, BHP_COURSE?.Type)}}\r\n \r\n \r\n {`baza paliw`}:\r\n {documentTerminal}\r\n \r\n \r\n {`numer`}:\r\n {documentNumber || '-'}\r\n \r\n \r\n {`ważny do`}:\r\n {documentExpireDate == undefined ? '-' : dateFormat(documentExpireDate, \"dd-mm-yyyy\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default BhpCourseComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Button, Col} from \"react-bootstrap\";\r\n\r\n\r\ntype BhpQuizDisplaySwitcherProps = {\r\n SHOW_ALL_BHP_QUZIZES_STATUS: boolean;\r\n SHOW_ALL_BHP_QUZIZES_STATUS_HANDLER(status: boolean): void;\r\n};\r\n\r\n\r\nexport const BhpQuizDisplaySwitcherComponent: React.FC = ({\r\n SHOW_ALL_BHP_QUZIZES_STATUS, SHOW_ALL_BHP_QUZIZES_STATUS_HANDLER\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (SHOW_ALL_BHP_QUZIZES_STATUS) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BhpQuizDisplaySwitcherComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport USER_INTERFACE, {BHP_INTERFACE} from \"@Services/Application/Interfaces/Users/User\";\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport SettingsSMSCodeVerificationComponent from \"@UIPages/Authenticated/Settings/_Parts/Verification\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport ContentInformationComponent from \"@Components/UI/Content/Information\";\r\nimport BhpCourseComponent from \"./BhpCourse\";\r\nimport BhpQuizDisplaySwitcherComponent from \"./Switcher\";\r\n\r\n\r\n\r\n\r\n\r\ntype BhpCoursesPageProps = {};\r\n\r\n\r\nexport const BhpCoursesPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [userVerifiedStatus, setUserVerifiedStatus] = useState(false);\r\n\r\n const changeUserVerifiedStatus = (response: any) => {\r\n if (response.OperationGUID) setUserVerifiedStatus(true);\r\n };\r\n\r\n /** @var {[object, function]} State - User Profile Data Object, User Profile Data Object Setter */\r\n const [USER_MY_BHP_DATA, SET_USER_MY_BHP_DATA] = useState(null);\r\n /** @var {[boolean, function]} State - User Profile Component Error, User Profile Component Error Setter */\r\n const [USER_MY_BHP_ERROR, SET_USER_MY_BHP_ERROR] = useState(null);\r\n\r\n const [SHOW_ALL_BHP_QUZIZES_STATUS, SET_SHOW_ALL_BHP_QUZIZES_STATUS] = useState(false);\r\n\r\n /** @hook {didMount, didUpdate} Get Terminals List from REST API */\r\n useEffect(() => {\r\n\r\n if (!userVerifiedStatus) return;\r\n\r\n /* Check if Monitory Note ID, API URL Present, User Logged */\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return; // No Valid Data - Stop\r\n\r\n /** @const USER_MY_BHP_API_URL User Profile REST API Endpoint URL */\r\n const USER_MY_BHP_API_URL: string = REST_API_URL + \"/User/Get\";\r\n\r\n /** @const USER_MY_BHP_REQUEST_DATA User Profile Request Data Object */\r\n const USER_MY_BHP_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n ContentType: \"B\" // Data Return Mode - Main User Data\r\n };\r\n\r\n /** @async {function} User Profile Data Request Handler */\r\n const GET_USER_MY_BHP_DATA = async (): Promise => {\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true)); // Set Status to true\r\n\r\n try {\r\n\r\n const USER_DATA_RESPONSE = await REST_API_REQUEST(\r\n USER_MY_BHP_API_URL,\r\n USER_MY_BHP_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (USER_DATA_RESPONSE.status === 200) {\r\n const CONTENT = await USER_DATA_RESPONSE.text();\r\n if (CONTENT.trim()) {\r\n SET_USER_MY_BHP_DATA(JSON.parse(CONTENT));\r\n }\r\n } else {\r\n if (USER_DATA_RESPONSE.status === 409) {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await USER_DATA_RESPONSE.json();\r\n SET_USER_MY_BHP_ERROR({ErrorCode: CONTENT.ErrorCode, UserMessage: CONTENT.UserMessage});\r\n } else {\r\n SET_USER_MY_BHP_ERROR({ErrorCode: USER_DATA_RESPONSE.status, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_USER_MY_BHP_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_USER_MY_BHP_DATA();\r\n\r\n }, [userVerifiedStatus]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {SET_USER_MY_BHP_ERROR(null);};\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!userVerifiedStatus) return ;\r\n\r\n\r\n const {DriverBHPs: userBHP} = USER_MY_BHP_DATA || {};\r\n \r\n const UserBHPFavorites = !userBHP ? null : userBHP.map((bhp: BHP_INTERFACE, i: number) => {\r\n\r\n const {Favorite: documentFavorite} = bhp;\r\n\r\n return (\r\n (!!documentFavorite) && \r\n )\r\n });\r\n\r\n const UserBHPOthers = !userBHP ? null : userBHP.map((bhp: BHP_INTERFACE, i: number) => {\r\n\r\n const {Favorite: documentFavorite} = bhp;\r\n\r\n return (\r\n (!documentFavorite) && \r\n )\r\n\r\n });\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n {!!USER_MY_BHP_ERROR && }\r\n\r\n {((!!UserBHPFavorites && UserBHPFavorites?.length > 0) || (!!UserBHPOthers && UserBHPOthers?.length > 0)) ? \r\n \r\n \r\n \r\n Ulubione terminale\r\n \r\n {UserBHPFavorites}\r\n {UserBHPOthers?.length &&\r\n \r\n } \r\n {SHOW_ALL_BHP_QUZIZES_STATUS && \r\n <>\r\n \r\n Pozostałe terminale\r\n \r\n {UserBHPOthers} \r\n \r\n }\r\n \r\n \r\n :\r\n\r\n !USER_MY_BHP_ERROR && \r\n }\r\n\r\n \r\n \r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default BhpCoursesPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\nimport { Col } from \"react-bootstrap\";\r\nimport ReactPlayer from \"react-player\";\r\n\r\n\r\ntype ExtraLinkProps = {\r\n LINK: string;\r\n INDEX: number;\r\n ONENDED: any;\r\n};\r\n\r\nexport const ExtraLinkComponent: React.FC = ({\r\n LINK, INDEX, ONENDED\r\n}): JSX.Element | null => {\r\n\r\n const onEnded = ()=>{\r\n ONENDED(INDEX);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ExtraLinkComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport { Button} from \"react-bootstrap\";\r\n\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\ntype QuizNextButtonProps = {\r\n TO: any;\r\n TITLE: string\r\n DISABLED: boolean;\r\n};\r\n\r\n\r\nexport const QuizNextButtonComponent: React.FC = ({\r\n TO, TITLE, DISABLED\r\n}): JSX.Element | null => {\r\n\r\n\r\n\r\n return (\r\n <>\r\n {DISABLED ?\r\n\r\n \r\n\r\n :\r\n \r\n \r\n \r\n \r\n }\r\n \r\n )\r\n};\r\n\r\n\r\nexport default QuizNextButtonComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\ntype SessionExtendComponentProps = { SESSIONMAXTIMESECONDS: number; };\r\n\r\nexport const SessionExtendComponent: React.FC = ({\r\n SESSIONMAXTIMESECONDS\r\n}): JSX.Element | null => {\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n const [sessionStart, setSessionStart] = useState(new Date());\r\n\r\n useEffect(() => {\r\n let myInterval = setInterval(() => { \r\n if(REST_API_REQUEST_TOKEN.tokenValidTime && REST_API_REQUEST_TOKEN.tokenCreateDate) {\r\n let secoundsToTokenExpired : number = REST_API_REQUEST_TOKEN.tokenValidTime - ((new Date()).getTime() - +REST_API_REQUEST_TOKEN.tokenCreateDate)/1000;\r\n let sessionTimeSeconds : number = ((new Date()).getTime() - sessionStart.getTime())/1000;\r\n if(secoundsToTokenExpired < 70 && sessionTimeSeconds < SESSIONMAXTIMESECONDS){\r\n REFRESH_TOKEN_REQUEST_HANDLER();\r\n }\r\n }\r\n }, 5000)\r\n return () => {\r\n clearInterval(myInterval);\r\n };\r\n });\r\n\r\n\r\n const REFRESH_TOKEN_REQUEST_HANDLER = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n const REFRESH_TOKEN_API_URL = `${REST_API_URL}/App/RefreshToken`;\r\n\r\n const REFRESH_TOKEN_REQUEST_DATA = {UserId: LOGGED_USER.userID};\r\n\r\n try {\r\n\r\n const REFRESH_TOKEN_RESPONSE = await REST_API_REQUEST(\r\n REFRESH_TOKEN_API_URL,\r\n REFRESH_TOKEN_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (REFRESH_TOKEN_RESPONSE.status === 204) {\r\n DISPATCHER(CHANGE_API_REQUEST_TOKEN_ACTION(\r\n prepareRestApiRequestToken(REFRESH_TOKEN_RESPONSE.headers)\r\n ));\r\n } \r\n\r\n } catch (e) {\r\n \r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n return null;\r\n};\r\n\r\n\r\nexport default SessionExtendComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, { useContext, useState } from \"react\";\r\n\r\nimport { useDispatch } from \"react-redux\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport { Col } from \"react-bootstrap\";\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\nimport { BHPCOURSE_INTERFACE } from \"@Services/Application/Interfaces/Users/User\";\r\n\r\nimport { Row } from \"react-bootstrap\";\r\nimport { APPLICATION_ROUTER_INTERFACE } from \"@DATA/Router/Interfaces/Router\";\r\nimport { ApplicationRouterContext } from \"@Contexts/Router\";\r\nimport ExtraLinkComponent from \"./ExtraLink\";\r\nimport QuizNextButtonComponent from \"../QuizNextButton\";\r\n\r\nimport ENV from \"react-dotenv\";\r\nimport SessionExtendComponent from \"../SessionExtend\";\r\n\r\ntype BhpQuizExtraLinksPageProps = { match?: any; location?: any; };\r\n\r\nexport const BhpQuizExtraLinksPageComponent: React.FC = ({\r\n match, location\r\n}): JSX.Element | null => {\r\n\r\n const BHPCOURSE: BHPCOURSE_INTERFACE = location?.state?.bhpCourse;\r\n const TERMINAL_NO : string = location?.state?.terminalNo;\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA: ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n const QUIZROUTE = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ;\r\n\r\n var playersEnded: Boolean[] = [];\r\n\r\n BHPCOURSE.ExtraLinks?.map((link, index) => (\r\n playersEnded[index]=false\r\n ))\r\n\r\n const [PlayersEnded, setPlayersEnded] = useState(playersEnded);\r\n \r\n const onPlayerEnded = (index:number) => {\r\n let players = JSON.parse(JSON.stringify(PlayersEnded));\r\n players[index]= true;\r\n setPlayersEnded(players);\r\n }\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!BHPCOURSE ?\r\n\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {`Film instruktażowy`}\r\n \r\n \r\n\r\n \r\n \r\n {BHPCOURSE.ExtraLinks?.map((link, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n value==true) && ENV?.APP_bhp_quiz_allow_start_without_film !== \"true\" }\r\n />\r\n \r\n\r\n
    \r\n \r\n\r\n :\r\n\r\n \r\n {`Brak informacji o kursie. Spróbuj ponownie później.`}\r\n \r\n }\r\n
    \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BhpQuizExtraLinksPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@DATA/Router/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\n\r\ntype TimeLeftProps = {\r\n ENDTIME: Date;\r\n};\r\n\r\nexport const TimeLeftComponent: React.FC = ({\r\n ENDTIME\r\n}): JSX.Element | null => {\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n const QUIZROUTE = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ;\r\n\r\n var timeLeft = new Date()\r\n timeLeft.setTime(ENDTIME.getTime() - timeLeft.getTime());\r\n\r\n const [date, setDate] = useState(timeLeft);\r\n\r\n useEffect(() => {\r\n let myInterval = setInterval(() => {\r\n setDate(new Date());\r\n }, 1000)\r\n return () => {\r\n clearInterval(myInterval);\r\n };\r\n });\r\n\r\n if (timeLeft.getTime() < 0) {\r\n return \r\n }\r\n\r\n return (\r\n Pozostało {('' + timeLeft.getMinutes()).padStart(2, '0')}:{('' + timeLeft.getSeconds()).padStart(2, '0')}\r\n );\r\n};\r\n\r\n\r\nexport default TimeLeftComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\n\r\nimport { useDispatch } from \"react-redux\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport { Button, Col, Form } from \"react-bootstrap\";\r\n\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\nimport { BHPCOURSE_INTERFACE, BHPCOURSE_QUIZ_ANSWERS_INTERFACE } from \"@Services/Application/Interfaces/Users/User\";\r\n\r\nimport { Row } from \"react-bootstrap\";\r\nimport { APPLICATION_ROUTER_INTERFACE } from \"@DATA/Router/Interfaces/Router\";\r\nimport { ApplicationRouterContext } from \"@Contexts/Router\";\r\nimport TimeLeftComponent from \"./TimeLeft\";\r\nimport QuizNextButtonComponent from \"../QuizNextButton\";\r\nimport SessionExtendComponent from \"../SessionExtend\";\r\n\r\ntype BhpQuizQuastionPageProps = { match?: any; location?: any; };\r\n\r\nexport const BhpQuizQuastionPageComponent: React.FC = ({\r\n match, location\r\n}): JSX.Element | null => {\r\n\r\n const BHPCOURSE: BHPCOURSE_INTERFACE = location?.state?.bhpCourse;\r\n const ANSWERS_INPUT: BHPCOURSE_QUIZ_ANSWERS_INTERFACE[] = location?.state?.answers ?? [];\r\n const QUASTIONNO: number = location?.state?.quastionNo;\r\n const TERMINAL_NO : string = location?.state?.terminalNo;\r\n //var ENDTIME: Date = location?.state?.endTime;\r\n\r\n const[ENDTIME, setEndTime] = useState(location?.state?.endTime);\r\n\r\n const [ANSWERS, setAnswers] = useState(ANSWERS_INPUT);\r\n\r\n if (ENDTIME == undefined) {\r\n var endTime = new Date();\r\n endTime.setMinutes(endTime.getMinutes() + BHPCOURSE.Duration);\r\n setEndTime(endTime);\r\n }\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA: ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n const QUIZROUTE = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ;\r\n\r\n const isChecked = (radioValue: string) => {\r\n let result = false;\r\n if (!!ANSWERS && !!ANSWERS[QUASTIONNO] && ANSWERS[QUASTIONNO].QuestionNo == BHPCOURSE.Questions[QUASTIONNO].QuestionNo) {\r\n ANSWERS[QUASTIONNO].Answers.forEach(element => {\r\n if (element.AnswerNo == radioValue) {\r\n result = true;\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n const onAnswerChange = (event: any) => {\r\n let answer: BHPCOURSE_QUIZ_ANSWERS_INTERFACE =\r\n {\r\n QuestionNo: BHPCOURSE.Questions[QUASTIONNO].QuestionNo,\r\n Answers: []\r\n }\r\n answer.Answers.push({ AnswerNo: event.target.value });\r\n let newAnswers = JSON.parse(JSON.stringify(ANSWERS_INPUT));\r\n newAnswers[QUASTIONNO] = answer;\r\n setAnswers(newAnswers);\r\n }\r\n\r\n const getPictogram = (graphic:string):string => {\r\n try{\r\n return atob(graphic);\r\n }catch{\r\n return ''\r\n }\r\n }\r\n\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n {!!BHPCOURSE.Questions[QUASTIONNO] ?\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Pytanie {QUASTIONNO + 1} z {BHPCOURSE.Questions.length}\r\n \r\n\r\n \r\n {BHPCOURSE.Questions[QUASTIONNO].QuestionText}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {BHPCOURSE.Questions[QUASTIONNO].Answers.map(answer => (\r\n \r\n \r\n {answer.AnswerText}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {QUASTIONNO == 0 ?\r\n\r\n \r\n\r\n :\r\n\r\n \r\n \r\n \r\n }\r\n\r\n {QUASTIONNO + 1 == BHPCOURSE.Questions.length ?\r\n\r\n \r\n\r\n :\r\n \r\n }\r\n\r\n \r\n\r\n \r\n \r\n\r\n :\r\n\r\n \r\n {`Brak informacji o pytaniu. Spróbuj ponownie później.`}\r\n \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BhpQuizQuastionPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\n\r\nimport { useDispatch } from \"react-redux\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport { Button, Col } from \"react-bootstrap\";\r\n\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport { Row } from \"react-bootstrap\";\r\nimport { APPLICATION_ROUTER_INTERFACE } from \"@DATA/Router/Interfaces/Router\";\r\nimport { ApplicationRouterContext } from \"@Contexts/Router\";\r\nimport { BHPCOURSE_INTERFACE } from \"@Services/Application/Interfaces/Users/User\";\r\nimport { BHPCOURSE_QUIZ_ANSWERS_INTERFACE } from \"@Services/Application/Interfaces/Users/User\";\r\nimport { BHPCOURSE_FINALIZATION_INTERFACE } from \"@Services/Application/Interfaces/Users/User\";\r\n\r\ntype BhpQuizFinalizationPageProps = { match?: any; location?: any; };\r\n\r\nexport const BhpQuizFinalizationPageComponent: React.FC = ({\r\n match, location\r\n}): JSX.Element | null => {\r\n\r\n const BHPCOURSE: BHPCOURSE_INTERFACE = location?.state?.bhpCourse;\r\n const ANSWERS: BHPCOURSE_QUIZ_ANSWERS_INTERFACE[] = location?.state?.answers ?? [];\r\n const TIMEEXPIRED: boolean = location?.state?.timeExpired ?? false;\r\n const TERMINAL_NO: string = location?.state.terminalNo;\r\n\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA: ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA: ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n const [BHPCURSE_FINALIZATION, SET_BHPCOURSE_FINALIZATION] = useState(null)\r\n const [BHPCOURSE_ERROR, SET_BHPCOURSE_RESPONSE_ERROR] = useState(null);\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n useEffect(() => {\r\n\r\n const GET_BHPCOURSE_FINALIZATION = async (): Promise => {\r\n\r\n if (!REST_API_URL) return;\r\n\r\n const BHPCOURSE_API_URL = REST_API_URL + \"/Terminal/Quiz/Finalization\";\r\n\r\n const BHPCOURSE_FINALIZATION_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n QuizNo: BHPCOURSE.QuizNo,\r\n Questions: ANSWERS\r\n };\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const BHPCOURSE_FINALIZATION_RESPONSE = await REST_API_REQUEST(\r\n BHPCOURSE_API_URL,\r\n BHPCOURSE_FINALIZATION_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (BHPCOURSE_FINALIZATION_RESPONSE.status === 200) {\r\n\r\n const CONTENT: any = await BHPCOURSE_FINALIZATION_RESPONSE.json();\r\n SET_BHPCOURSE_FINALIZATION(CONTENT);\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await BHPCOURSE_FINALIZATION_RESPONSE.json();\r\n SET_BHPCOURSE_RESPONSE_ERROR({ ErrorCode: BHPCOURSE_FINALIZATION_RESPONSE.status, UserMessage: CONTENT.UserMessage });\r\n }\r\n\r\n } catch (e) {\r\n SET_BHPCOURSE_RESPONSE_ERROR({ ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\" });\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n if (!TIMEEXPIRED) {\r\n GET_BHPCOURSE_FINALIZATION();\r\n }\r\n else {\r\n SET_BHPCOURSE_RESPONSE_ERROR({ ErrorCode: 500, UserMessage: \"Upłynął czas przeznaczony na udzielenie odpowiedzi.\" })\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_BHPCOURSE_FINALIZATION(null);\r\n SET_BHPCOURSE_RESPONSE_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!BHPCOURSE_ERROR ?\r\n\r\n
    \r\n \r\n
    \r\n\r\n :\r\n\r\n !!BHPCURSE_FINALIZATION ?\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n {BHPCURSE_FINALIZATION.Result == 1 ?\r\n GRATULACJE
    Szkolenie zaliczone
    \r\n :\r\n NIESTETY
    Szkolenie nie zaliczone
    \r\n }\r\n \r\n\r\n \r\n {BHPCURSE_FINALIZATION.FinalizationText}\r\n \r\n
    \r\n \r\n
    \r\n \r\n\r\n :\r\n\r\n !REST_API_REQUEST_STATUS &&\r\n \r\n {`Czekam na odpowiedz z serwera`}\r\n \r\n }\r\n \r\n {BHPCURSE_FINALIZATION?.Result == 1 ?\r\n <>\r\n :\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n\r\n};\r\n\r\n\r\nexport default BhpQuizFinalizationPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, { useContext } from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport { Switch, Route, Redirect } from \"react-router-dom\";\r\nimport BhpQuizPageComponent from \"./BhpCourses/BhpQuiz\";\r\nimport BhpCoursesPageComponent from \"./BhpCourses\";\r\nimport BhpQuizExtraLinksPageComponent from \"./BhpCourses/BhpQuiz/ExtraLinks\";\r\nimport BhpQuizQuastionPageComponent from \"./BhpCourses/BhpQuiz/Quastion\";\r\nimport BhpQuizFinalizationPageComponent from \"./BhpCourses/BhpQuiz/Finalization\";\r\n\r\n\r\ntype SettingsMyBhpCoursesPageProps = {};\r\n\r\nexport const SettingsMyBhpCoursesPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const MYBHPCOURSES_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.MAIN_PAGE.URL;\r\n const MYBHPCOURSES_QUIZDESC_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ.QUIZDESC.URL;\r\n const MYBHPCOURSES_QUIZEXTRALINKS_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ.QUIZEXTRALINKS.URL;\r\n const MYBHPCOURSES_QUIZQUASTION_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ.QUIZQUASTION.URL;\r\n const MYBHPCOURSES_QUIZFINALIZATION_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_BHP_PAGE.QUIZ.QUIZFINALIZATION.URL;\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsMyBhpCoursesPageComponent;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALEAAACxCAYAAACLKVzFAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSItDnYQccjQOlkQFRFcpIpFsFDaCq06mFz6BU0akhQXR8G14ODHYtXBxVlXB1dBEPwAcXNzUnSREv+XFFrEeHDcj3f3HnfvAKFZZarZMw6ommWkE3Exl18VA68IIoAQopiVmKknM4tZeI6ve/j4ehfjWd7n/hwhpWAywCcSzzHdsIg3iKc3LZ3zPnGYlSWF+Jx4zKALEj9yXXb5jXPJYYFnho1sep44TCyWuljuYlY2VOIp4oiiapQv5FxWOG9xVqt11r4nf2GwoK1kuE5zBAksIYkURMioo4IqLMRo1Ugxkab9uId/2PGnyCWTqwJGjgXUoEJy/OB/8Ltbszg54SYF40Dvi21/RIHALtBq2Pb3sW23TgD/M3Cldfy1JjDzSXqjo0WOgIFt4OK6o8l7wOUOMPSkS4bkSH6aQrEIvJ/RN+WBwVugf83trb2P0wcgS10t3wAHh8BoibLXPd7d193bv2fa/f0AzD9yy3qFKT8AAAAGYktHRABVAK8APPT7nR4AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQflDAcNJhbtqFAPAAADQ0lEQVR42u3dMYsddRTG4ffcJCRRs6VFKivt7MROSxsxoFZ+iXwBQSyEdNqns1MIgoWCgp1CLGIlRmxEUWMTghs1Ufkfi1hq3L13szN37vPANsnCzJz5cfdkdvcmAQAAAAAAAAAAgKnUhMc+lWTlFkxmJPlTxJscuOp6kie0NJnPu/vpJVyIV0JEDCIGESNiEDGIGDZycsbn9l13v+4Wra+q3kyyZxIPbsDXq6rv83HNlDae8Y37zPeqdQJEDCIGESNiEDGTuiNiEDGIGESMiGEWThrBcnX3xSRn/+Ovb4iYbfCOdQJEDCIGO3GSh5Kcd6snd/tB/WNyFyJ+tqo+0NDk3u/uC9YJEDEiBhGDiEHEiBhmxw8AJamqt8cYl0xibY9N+SxexPfcTPKVMaxtWCdAxIgYRAwiBhEjYhAxiBhEjIhBxCBiEDEiBhGDiEHEiBhEDCIGEbN7/Mr+ZrN7YYLj/pDkqvGL+Cg8XFVXJjjue939ovFbJxAxiBjsxDOw392PT3Dc20Yv4qMyknxjDNYJEDGIGBGDiEHEiBi2nOfE69urqu+XdlHd/VqSt0S8GyrJ3gKv64x1AkQM1onjcqeq3ljgTvypiHfH3THGq8ZgnQARg4gRMYgYRIyIYct5Try+M6vV6tIcT2yM8VmSd0XM/znd3Rdn+eV1tTo7xtiZiK0TiBisE9trJPlppud2S8QcxH53n5/jiXW3dQJEDCIGESNiEDGIGA7Kc+LNXgCenOC4t5J8a/wiPgrnquqLCY7r/7GzTiBiEDHYiefi1+5+boLj/mz0Ij4qfyX5yBisEyBiEDEiBhHDgiO+6faw7RHvuz0chOfE63ukqj5ZwoV09+Ukl0W8my8ATy3iy/Fq9eEYwzoBIgbrxLH7I8mVJVzIGONLEe+m37r7ZWOwToCIYc7rxPNV9ctBP7m7X0rysVsq4rmd27lDfP4pt9M6ASIGEYOIETFsoSmfTnyde9+6PawTSfb+5c9/dztFfKy6+4LxY50AESNiEDGIGESMiEHEIGJEbASIGEQMm/G+E0m6+5WqesYk1nZaxNN79J8PrBMgYhAxIgYRg4jhkHbhEds17yM8Cz8aAQAAAAAAAAAz9DchWpunI4u+YAAAAABJRU5ErkJggg==\"","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport DOCUMENT_ICON from \"@Icons/document.png\";\r\n\r\n\r\ntype TransportDocumentsSwitcherProps = {\r\n SHOW_DOCUMENTS_STATUS: boolean;\r\n SHOW_DOCUMENTS_STATUS_HANDLER(STATUS: boolean): void;\r\n};\r\n\r\n\r\nexport const TransportDocumentsSwitcherComponent: React.FC = ({\r\n SHOW_DOCUMENTS_STATUS, SHOW_DOCUMENTS_STATUS_HANDLER\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!SHOW_DOCUMENTS_STATUS_HANDLER) return null;\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n SHOW_DOCUMENTS_STATUS_HANDLER(!SHOW_DOCUMENTS_STATUS)}>\r\n {``}\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TransportDocumentsSwitcherComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nexport const generateDocumentFromBinary = (FILE: string, fileType = \"application/pdf\") : void | null => {\r\n\r\n if (!FILE) return null;\r\n\r\n const binaryString = window.atob(FILE);\r\n const binaryStringLen = binaryString.length;\r\n\r\n const bytes = new Uint8Array(binaryStringLen);\r\n\r\n for (let i = 0; i < binaryStringLen; ++i) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n\r\n const OUTPUT_FILE = new Blob([bytes], {type: fileType});\r\n\r\n const OUTPUT_FILE_URL = URL.createObjectURL(OUTPUT_FILE);\r\n\r\n window.open(OUTPUT_FILE_URL);\r\n\r\n};\r\n\r\n\r\nexport default generateDocumentFromBinary;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport DOCUMENT_ICON from \"@Icons/document.png\";\r\n\r\n\r\nimport DOCUMENT_INTERFACE from \"@Services/Application/Interfaces/Documents/Document\";\r\n\r\n\r\nimport generateDocumentFromBinary from \"@Utilities/Documents/FromBinary\";\r\n\r\n\r\ntype TransportDocumentProps = {\r\n DOCUMENT: DOCUMENT_INTERFACE;\r\n};\r\n\r\n\r\nexport const TransportDocumentComponent: React.FC = ({\r\n DOCUMENT\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!DOCUMENT) return null;\r\n\r\n const DOCUMENT_DOWNLOAD_HANDLER = () => {\r\n generateDocumentFromBinary(DOCUMENT.DocData || \"\");\r\n };\r\n\r\n return (\r\n \r\n DOCUMENT.DocData ? DOCUMENT_DOWNLOAD_HANDLER() : null}>\r\n\r\n \r\n {DOCUMENT.DocName}\r\n \r\n\r\n \r\n {DOCUMENT.DocTypeName}\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TransportDocumentComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\nimport TransportDocumentComponent from \"@UIPages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport/Documents/List/Document\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\nimport TRANSPORT_INTERFACE from \"@Services/Application/Interfaces/Transports/Transport\";\r\nimport DOCUMENT_INTERFACE from \"@Services/Application/Interfaces/Documents/Document\";\r\n\r\n\r\n\r\ntype TransportDocumentsListProps = {\r\n TRANSPORT: TRANSPORT_INTERFACE;\r\n};\r\n\r\n\r\nexport const TransportDocumentsListComponent: React.FC = ({\r\n TRANSPORT\r\n}): JSX.Element | null => {\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [TRANSPORT_DOCUMENTS_LIST, SET_TRANSPORT_DOCUMENTS_LIST] = useState(null);\r\n const [TRANSPORT_DOCUMENTS_ERROR, SET_TRANSPORT_DOCUMENTS_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!LOGGED_USER?.userID || !REST_API_URL || !TRANSPORT.TransportNo) return;\r\n\r\n const TRANSPORT_DOCUMENTS_API_URL = `${REST_API_URL}/Transport/Get/Docs`;\r\n\r\n const TRANSPORT_DOCUMENTS_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n TransportNo: TRANSPORT.TransportNo\r\n };\r\n\r\n const GET_TRANSPORT_DOCUMENTS = async (): Promise => {\r\n\r\n try {\r\n\r\n const TRANSPORT_DOCUMENTS_RESPONSE = await REST_API_REQUEST(\r\n TRANSPORT_DOCUMENTS_API_URL,\r\n TRANSPORT_DOCUMENTS_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (TRANSPORT_DOCUMENTS_RESPONSE.status === 200) {\r\n const RESPONSE_TEXT: any = await TRANSPORT_DOCUMENTS_RESPONSE.text();\r\n if (RESPONSE_TEXT.trim()) {\r\n const RESPONSE_CONTENT: DOCUMENT_INTERFACE[] = JSON.parse(RESPONSE_TEXT).Docs;\r\n SET_TRANSPORT_DOCUMENTS_LIST(RESPONSE_CONTENT);\r\n } else {\r\n SET_TRANSPORT_DOCUMENTS_LIST([]);\r\n }\r\n } else {\r\n const RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await TRANSPORT_DOCUMENTS_RESPONSE.json();\r\n SET_TRANSPORT_DOCUMENTS_ERROR({ErrorCode: TRANSPORT_DOCUMENTS_RESPONSE.status, UserMessage: RESPONSE_CONTENT.UserMessage})\r\n }\r\n\r\n } catch (e) {\r\n SET_TRANSPORT_DOCUMENTS_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_TRANSPORT_DOCUMENTS();\r\n\r\n }, [TRANSPORT]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_TRANSPORT_DOCUMENTS_LIST(null);\r\n SET_TRANSPORT_DOCUMENTS_ERROR(null);\r\n };\r\n }, []);\r\n\r\n if (!TRANSPORT) return null;\r\n\r\n\r\n const TransportDocumentsList = TRANSPORT_DOCUMENTS_LIST?.map((DOCUMENT, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {!!TRANSPORT_DOCUMENTS_ERROR && }\r\n\r\n {!!TRANSPORT_DOCUMENTS_LIST &&\r\n\r\n TRANSPORT_DOCUMENTS_LIST.length < 1 ?\r\n\r\n \r\n {`Brak dokumentów`}\r\n \r\n\r\n :\r\n\r\n TransportDocumentsList\r\n\r\n }\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default TransportDocumentsListComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState, useEffect} from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\n\r\n\r\nimport TransportDocumentsSwitcherComponent from \"@UIPages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport/Documents/Switcher\";\r\nimport TransportDocumentsListComponent from \"@UIPages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport/Documents/List\";\r\n\r\n\r\nimport TRANSPORT_INTERFACE from \"@Services/Application/Interfaces/Transports/Transport\";\r\n\r\n\r\nconst MONTH_LABELS: any = {\r\n 1: \"Stycznia\",\r\n 2: \"Lutego\",\r\n 3: \"Marca\",\r\n 4: \"Kwietnia\",\r\n 5: \"Maja\",\r\n 6: \"Czerwca\",\r\n 7: \"Lipca\",\r\n 8: \"Sierpnia\",\r\n 9: \"Września\",\r\n 10: \"Października\",\r\n 11: \"Listopada\",\r\n 12: \"Grudnia\"\r\n};\r\n\r\n\r\ntype FinishedTransportProps = {\r\n TRANSPORT: TRANSPORT_INTERFACE\r\n};\r\n\r\nexport const FinishedTransportComponent: React.FC = ({\r\n TRANSPORT\r\n}): JSX.Element | null => {\r\n\r\n\r\n const [TRANSPORT_SHOW_DOCUMENTS_STATUS, SET_TRANSPORT_SHOW_DOCUMENTS_STATUS] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_TRANSPORT_SHOW_DOCUMENTS_STATUS(false);\r\n };\r\n }, []);\r\n\r\n\r\n if (!TRANSPORT) return null;\r\n\r\n\r\n // const SENT_NUMBERS = TRANSPORT.Comapertments?.map((COMPARTMENT) => {\r\n // return !!COMPARTMENT.SENTNumber ? {COMPARTMENT.ReceiverName} : null;\r\n // });\r\n\r\n const RECEIVERS = TRANSPORT.Comapertments?.map((COMPARTMENT, i: number) => {\r\n return !!COMPARTMENT.ReceiverName ? {COMPARTMENT.ReceiverName} : null;\r\n });\r\n\r\n\r\n return (\r\n <>\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n {(!!TRANSPORT.CloseDate || !!TRANSPORT.TerminalName) &&\r\n\t \r\n {!!TRANSPORT.CloseDate && {dateFormat(TRANSPORT.CloseDate, \"HH:MM\")}}\r\n {!!TRANSPORT.TerminalName && {TRANSPORT.TerminalName}}\r\n\t \r\n }\r\n\r\n {!!TRANSPORT.CloseDate &&\r\n\t \r\n\t\t {dateFormat(TRANSPORT.CloseDate, \"d\")}\r\n\t\t {MONTH_LABELS[dateFormat(TRANSPORT.CloseDate, \"m\")]}\r\n\t \r\n }\r\n\r\n {(!!TRANSPORT.FrontTruckRegNo || !!TRANSPORT.RearTruckRegNo) &&\r\n \r\n {!!TRANSPORT.FrontTruckRegNo && {TRANSPORT.FrontTruckRegNo}}\r\n {!!TRANSPORT.FrontTruckRegNo && !!TRANSPORT.RearTruckRegNo && {`/`}}\r\n {!!TRANSPORT.RearTruckRegNo && {TRANSPORT.RearTruckRegNo}}\r\n \r\n }\r\n\r\n {!!RECEIVERS && RECEIVERS.length > 0 &&\r\n \r\n {`Odbiorcy`}:\r\n \r\n {RECEIVERS}\r\n \r\n \r\n }\r\n\r\n {TRANSPORT.TransportNo &&\r\n \r\n {`Nr transportu`}:\r\n {TRANSPORT.TransportNo}\r\n \r\n }\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n {TRANSPORT_SHOW_DOCUMENTS_STATUS &&\r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n\r\n};\r\n\r\n\r\nexport default FinishedTransportComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport FinishedTransportComponent from \"@UIPages/Authenticated/Settings/User/MyFinishedTransports/TransportsList/Transport\";\r\n\r\n\r\nimport TRANSPORT_INTERFACE from \"@Services/Application/Interfaces/Transports/Transport\";\r\n\r\n\r\ntype MyFinishedTransportsProps = {\r\n TRANSPORTS_LIST: TRANSPORT_INTERFACE[] | null;\r\n};\r\n\r\nexport const MyFinishedTransportsListComponent: React.FC = ({\r\n TRANSPORTS_LIST\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!TRANSPORTS_LIST) return null;\r\n\r\n\r\n const TransportsList = TRANSPORTS_LIST.map((TRANSPORT, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n {TRANSPORTS_LIST.length < 1 ?\r\n\r\n \r\n {`Brak wyników`}\r\n \r\n\r\n :\r\n\r\n TransportsList\r\n\r\n }\r\n\r\n \r\n \r\n );\r\n\r\n\r\n};\r\n\r\n\r\nexport default MyFinishedTransportsListComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\n\r\nimport {Col, Form, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\nimport scrollToDomElement from \"@Utilities/Animations/Scrolling\";\r\n\r\n\r\nimport SettingsSMSCodeVerificationComponent from \"@UIPages/Authenticated/Settings/_Parts/Verification\";\r\n\r\nimport MyFinishedTransportsListComponent from \"@UIPages/Authenticated/Settings/User/MyFinishedTransports/TransportsList\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\nimport TRANSPORT_INTERFACE from \"@Services/Application/Interfaces/Transports/Transport\";\r\n\r\n\r\ntype MyFinishedTransportsPageProps = {};\r\n\r\n\r\nexport const SettingsMyFinishedTransportsPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [USER_AUTHENTICATED_STATUS, SET_USER_AUTHENTICATED_STATUS] = useState(false);\r\n\r\n const CHANGE_USER_AUTHENTICATED_STATUS = (response: any) => {\r\n if (response.OperationGUID) SET_USER_AUTHENTICATED_STATUS(true);\r\n }\r\n\r\n const [DATE_FROM_FILTER, SET_DATE_FROM_FILTER] = useState(dateFormat(new Date(), \"yyyy-mm-dd\"));\r\n const [DATE_TO_FILTER, SET_DATE_TO_FILTER] = useState(dateFormat(new Date(), \"yyyy-mm-dd\"));\r\n\r\n const CHANGE_DATE_FROM_FILTER = (e: React.ChangeEvent): void => {\r\n const NEW_DATE_FROM = e.target.value;\r\n SET_DATE_FROM_FILTER(NEW_DATE_FROM);\r\n };\r\n const CHANGE_DATE_TO_FILTER = (e: React.ChangeEvent): void => {\r\n const NEW_DATE_TO = e.target.value;\r\n SET_DATE_TO_FILTER(NEW_DATE_TO);\r\n };\r\n\r\n const [USER_FINISHED_TRANSPORTS, SET_USER_FINISHED_TRANSPORTS] = useState(null);\r\n const [USER_FINISHED_TRANSPORTS_ERROR, SET_USER_FINISHED_TRANSPORTS_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!LOGGED_USER?.userID || !REST_API_URL) return;\r\n\r\n const USER_FINISHED_TRANSPORTS_API_URL = `${REST_API_URL}/Transport/List`;\r\n\r\n const USER_FINISHED_TRANSPORTS_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n DateFrom: DATE_FROM_FILTER,\r\n DateTo: DATE_TO_FILTER\r\n };\r\n\r\n const GET_USER_FINISHED_TRANSPORTS = async (): Promise => {\r\n\r\n try {\r\n\r\n const USER_DATA_RESPONSE = await REST_API_REQUEST(\r\n USER_FINISHED_TRANSPORTS_API_URL,\r\n USER_FINISHED_TRANSPORTS_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (USER_DATA_RESPONSE.status === 200) {\r\n const RESPONSE_TEXT: any = await USER_DATA_RESPONSE.text();\r\n if (RESPONSE_TEXT.trim()) {\r\n const RESPONSE_CONTENT: TRANSPORT_INTERFACE[] = JSON.parse(RESPONSE_TEXT).Transports;\r\n SET_USER_FINISHED_TRANSPORTS(RESPONSE_CONTENT);\r\n } else {\r\n SET_USER_FINISHED_TRANSPORTS([]);\r\n }\r\n } else {\r\n const RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await USER_DATA_RESPONSE.json();\r\n SET_USER_FINISHED_TRANSPORTS_ERROR({ErrorCode: USER_DATA_RESPONSE.status, UserMessage: RESPONSE_CONTENT.UserMessage})\r\n }\r\n\r\n } catch (e) {\r\n console.log(e);\r\n SET_USER_FINISHED_TRANSPORTS_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_USER_FINISHED_TRANSPORTS();\r\n\r\n }, [DATE_FROM_FILTER, DATE_TO_FILTER]);\r\n\r\n\r\n useEffect(() => {\r\n if (COMPONENT_REF.current) {\r\n scrollToDomElement(COMPONENT_REF.current);\r\n }\r\n return () => {\r\n SET_USER_FINISHED_TRANSPORTS(null);\r\n SET_USER_FINISHED_TRANSPORTS_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!USER_AUTHENTICATED_STATUS) return ;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!USER_FINISHED_TRANSPORTS_ERROR && }\r\n\r\n \r\n \r\n \r\n {`Data od`}\r\n \r\n \r\n \r\n {`Data do`}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsMyFinishedTransportsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport SettingsMyProfilePageComponent from \"@UIPages/Authenticated/Settings/User/MyProfile\";\r\nimport SettingsMyDocumentsPageComponent from \"@UIPages/Authenticated/Settings/User/MyDocuments\";\r\nimport SettingsMyBhpCoursesPageComponent from \"@UIPages/Authenticated/Settings/User/MyBhpCourses\";\r\nimport SettingsMyFinishedTransportsPageComponent from \"@UIPages/Authenticated/Settings/User/MyFinishedTransports\";\r\n\r\n\r\ntype SettingsPageUserViewProps = {};\r\n\r\n\r\nexport const SettingsPageUserViewComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const SETTINGS_PAGE_URLS = ROUTER.AUTHENTICATED.SETTINGS;\r\n\r\n const {\r\n MAIN_PAGE,\r\n SETTINGS_USER_DATA_PAGE,\r\n SETTINGS_MY_DOCUMENTS_PAGE,\r\n SETTINGS_MY_BHP_PAGE,\r\n SETTINGS_FINISHED_TRANSPORTS_PAGE,\r\n } = SETTINGS_PAGE_URLS;\r\n\r\n\r\n return (\r\n \r\n\r\n } />\r\n\r\n } />\r\n\r\n } />\r\n\r\n } />\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsPageUserViewComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\nimport {AiFillDelete} from \"react-icons/all\";\r\n\r\n\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\n\r\n\r\ntype FavouriteVehiclesVehicleProps = {\r\n VEHICLE: VEHICLE_INTERFACE;\r\n REMOVE_FROM_FAVORITES_HANDLER(VEHICLE: VEHICLE_INTERFACE): void;\r\n\r\n};\r\n\r\n\r\nexport const FavouriteVehiclesVehicleComponent: React.FC = ({\r\n VEHICLE,\r\n REMOVE_FROM_FAVORITES_HANDLER\r\n}): JSX.Element | null => {\r\n\r\n\r\n const REMOVE_VEHICLE_FROM_FAVORITES = (): void => {\r\n REMOVE_FROM_FAVORITES_HANDLER(VEHICLE);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {VEHICLE.TypeName}\r\n {VEHICLE.RegNo}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FavouriteVehiclesVehicleComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState, useEffect} from \"react\";\r\n\r\n\r\nimport {Col, Form, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\n\r\n\r\ntype VehiclesActiveSetProps = {\r\n FAVORITE_VEHICLES: VEHICLE_INTERFACE[];\r\n ACTIVE_VEHICLE_STATUS_HANDLER(VEHICLE: VEHICLE_INTERFACE | null, ACTION: \"ON\" | \"OFF\", TRIGGER: \"ON\" | \"OFF\", TOKEN?: any): void;\r\n};\r\n\r\n\r\nexport const VehiclesActiveSetComponent: React.FC = ({\r\n FAVORITE_VEHICLES, ACTIVE_VEHICLE_STATUS_HANDLER\r\n}): JSX.Element | null => {\r\n\r\n\r\n const FRONT_FAVORITE_VEHICLES = FAVORITE_VEHICLES.filter((VEHICLE) => !!VEHICLE.IsFront);\r\n const REAR_FAVORITE_VEHICLES = FAVORITE_VEHICLES.filter((VEHICLE) => !VEHICLE.IsFront);\r\n\r\n const ACTIVE_FRONT_VEHICLE = FAVORITE_VEHICLES.filter((VEHICLE) => !!VEHICLE.IsFront && !!VEHICLE.Active)[0];\r\n const ACTIVE_REAR_VEHICLE = FAVORITE_VEHICLES.filter((VEHICLE) => !VEHICLE.IsFront && !!VEHICLE.Active)[0];\r\n\r\n const [SELECTED_ACTIVE_FRONT_VEHICLE, SET_SELECTED_ACTIVE_FRONT_VEHICLE] = useState(ACTIVE_FRONT_VEHICLE || null);\r\n const [SELECTED_ACTIVE_REAR_VEHICLE, SET_SELECTED_ACTIVE_REAR_VEHICLE] = useState(ACTIVE_REAR_VEHICLE || null);\r\n\r\n const FAVORITE_VEHICLES_LIST = Object.fromEntries(FAVORITE_VEHICLES.map(\r\n (VEHICLE: VEHICLE_INTERFACE) => [VEHICLE.RegNo, VEHICLE]\r\n ));\r\n\r\n const CHANGE_ACTIVE_VEHICLE = async (e: React.ChangeEvent, vehicleType: \"F\" | \"R\") => {\r\n\r\n const vehicleRegNo = e.target.value;\r\n\r\n let ACTIVE_VEHICLE = null;\r\n\r\n if (vehicleType === \"F\") ACTIVE_VEHICLE = ACTIVE_FRONT_VEHICLE;\r\n if (vehicleType === \"R\") ACTIVE_VEHICLE = ACTIVE_REAR_VEHICLE;\r\n\r\n const VEHICLE = FAVORITE_VEHICLES_LIST[vehicleRegNo];\r\n\r\n let TOKEN = null;\r\n\r\n if (!vehicleRegNo || !!ACTIVE_VEHICLE) {\r\n const TRIGGER = !((vehicleType === \"F\" && FRONT_FAVORITE_VEHICLES.length > 1) || (vehicleType === \"R\" && REAR_FAVORITE_VEHICLES.length > 1));\r\n TOKEN = await ACTIVE_VEHICLE_STATUS_HANDLER(ACTIVE_VEHICLE, \"OFF\", TRIGGER ? \"ON\" : \"OFF\");\r\n }\r\n\r\n await ACTIVE_VEHICLE_STATUS_HANDLER(VEHICLE, \"ON\", \"OFF\", TOKEN);\r\n\r\n if (vehicleType === \"F\") SET_SELECTED_ACTIVE_FRONT_VEHICLE(VEHICLE || null)\r\n if (vehicleType === \"R\") SET_SELECTED_ACTIVE_REAR_VEHICLE(VEHICLE || null)\r\n\r\n };\r\n\r\n useEffect(() => {\r\n SET_SELECTED_ACTIVE_FRONT_VEHICLE(ACTIVE_FRONT_VEHICLE || null);\r\n }, [ACTIVE_FRONT_VEHICLE]);\r\n\r\n useEffect(() => {\r\n SET_SELECTED_ACTIVE_REAR_VEHICLE(ACTIVE_REAR_VEHICLE || null);\r\n }, [ACTIVE_REAR_VEHICLE]);\r\n\r\n const FrontVehiclesList = FRONT_FAVORITE_VEHICLES.map((VEHICLE, i: number) =>\r\n \r\n );\r\n\r\n const RearVehiclesList = REAR_FAVORITE_VEHICLES.map((VEHICLE, i: number) =>\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {`Aktywny zestaw pojazdów`}\r\n \r\n\r\n \r\n \r\n\r\n \r\n {`Pojazd przedni`}\r\n 0)}\r\n value={SELECTED_ACTIVE_FRONT_VEHICLE?.RegNo || \"\"}\r\n onChange={(e: React.ChangeEvent) => CHANGE_ACTIVE_VEHICLE(e, \"F\")}\r\n >\r\n \r\n {FrontVehiclesList}\r\n \r\n \r\n\r\n \r\n {`Pojazd tylny`}\r\n 0)}\r\n value={SELECTED_ACTIVE_REAR_VEHICLE?.RegNo || \"\"}\r\n onChange={(e: React.ChangeEvent) => CHANGE_ACTIVE_VEHICLE(e, \"R\")}\r\n >\r\n \r\n {RearVehiclesList}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default VehiclesActiveSetComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport {useDispatch} from \"react-redux\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport {TERMINAL_INTERFACE} from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport VEHICLE_INTERFACE from \"@Services/Application/Interfaces/Vehicles/Vehicle\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport {Button, Col, Form, Row} from \"react-bootstrap\";\r\nimport FavouriteVehiclesVehicleComponent from \"@UIPages/Authenticated/Settings/Favorite/Vehicles/Vehicle\";\r\nimport VehiclesActiveSetComponent from \"@UIPages/Authenticated/Settings/Favorite/Vehicles/ActiveSet\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\ntype MyFavouriteVehiclesPageProps = {};\r\n\r\n\r\nexport const SettingsMyFavouriteVehiclesPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n /** @const {APPLICATION_ROUTER_INTERFACE} Global Router Object */\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n /** @var {[object, function]} State - Vehicles List Object, Vehicles List Object Setter */\r\n const [VEHICLES_LIST, SET_VEHICLES_LIST] = useState([]);\r\n /** @var {[boolean, function]} State - Vehicles List Component Error, Vehicles List Component Error Setter */\r\n const [VEHICLES_LIST_ERROR, SET_VEHICLES_LIST_ERROR] = useState(null);\r\n\r\n const [VEHICLES_LIST_UPDATE_TRIGGER, SET_VEHICLES_LIST_UPDATE_TRIGGER] = useState(false);\r\n\r\n /** @hook {didMount, didUpdate} Get Vehicles List from REST API */\r\n useEffect(() => {\r\n\r\n if (VEHICLES_LIST_UPDATE_TRIGGER) SET_VEHICLES_LIST_UPDATE_TRIGGER(false);\r\n\r\n if (VEHICLES_LIST.length > 0 && !VEHICLES_LIST_UPDATE_TRIGGER) return;\r\n\r\n const VEHICLES_LIST_API_URL: string = REST_API_URL + \"/Vehicle/List\";\r\n\r\n const VEHICLES_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n Mode: \"A\" // Data Return Mode - Simplified\r\n };\r\n\r\n const GET_VEHICLES_LIST = async (): Promise => {\r\n\r\n try {\r\n\r\n const VEHICLES_LIST_RESPONSE = await REST_API_REQUEST(\r\n VEHICLES_LIST_API_URL,\r\n VEHICLES_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN,\r\n );\r\n\r\n if (VEHICLES_LIST_RESPONSE.status === 200) {\r\n const CONTENT: {Vehicles: VEHICLE_INTERFACE[]} = await VEHICLES_LIST_RESPONSE.json();\r\n SET_VEHICLES_LIST(CONTENT?.Vehicles);\r\n } else {\r\n if (VEHICLES_LIST_RESPONSE.status === 409) {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_LIST_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: CONTENT.ErrorCode, UserMessage: CONTENT.UserMessage});\r\n } else {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_LIST_RESPONSE.status, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_VEHICLES_LIST();\r\n\r\n }, [VEHICLES_LIST_UPDATE_TRIGGER]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_VEHICLES_LIST([]);\r\n SET_VEHICLES_LIST_ERROR(null);\r\n SET_VEHICLES_LIST_UPDATE_TRIGGER(false);\r\n };\r\n }, []);\r\n\r\n\r\n const [SELECTED_VEHICLE, SET_SELECTED_VEHICLE] = useState(\"\");\r\n\r\n\r\n /** Check if User is Logged */\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ; // User is not logged => Redirect to LOGIN Page\r\n\r\n\r\n /** Check if Router is present */\r\n if (!ROUTER) return ; // No Router Object - Redirect to 404 Page\r\n\r\n\r\n if (!VEHICLES_LIST) return null;\r\n\r\n\r\n const FAVORITE_VEHICLES_LIST = VEHICLES_LIST.filter((VEHICLE) => !!VEHICLE.Favorite);\r\n const OTHER_VEHICLES_LIST = VEHICLES_LIST.filter((VEHICLE) => !VEHICLE.Favorite);\r\n\r\n\r\n const REMOVE_FROM_FAVORITES_HANDLER = async (VEHICLE: VEHICLE_INTERFACE | null): Promise => {\r\n\r\n if (!VEHICLE) return;\r\n\r\n let TOKEN = REST_API_REQUEST_TOKEN;\r\n\r\n if (VEHICLE.Active) {\r\n TOKEN = await VEHICLE_ACTIVE_STATUS_HANDLER(VEHICLE, \"OFF\", \"OFF\");\r\n }\r\n\r\n try {\r\n\r\n const VEHICLES_LIST_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/Vehicle/Favorite`,\r\n {UserId: LOGGED_USER?.userID, RegNo: VEHICLE.RegNo},\r\n TOKEN,\r\n \"DELETE\"\r\n );\r\n\r\n if (VEHICLES_LIST_RESPONSE.status === 204) {\r\n\r\n const UPDATED_VEHICLES_LIST = VEHICLES_LIST.filter((V) => V.RegNo !== VEHICLE.RegNo);\r\n SET_VEHICLES_LIST_UPDATE_TRIGGER(true);\r\n\r\n } else {\r\n\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_LIST_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_LIST_RESPONSE.status, UserMessage: CONTENT?.UserMessage});\r\n\r\n }\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n }\r\n\r\n\r\n const ADD_TO_FAVORITES_HANDLER = async (VEHICLE_REG_NO: string): Promise => {\r\n\r\n if (!VEHICLE_REG_NO) return;\r\n\r\n try {\r\n\r\n const VEHICLES_LIST_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/Vehicle/Favorite`,\r\n {UserId: LOGGED_USER?.userID, RegNo: VEHICLE_REG_NO},\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (VEHICLES_LIST_RESPONSE.status === 204) {\r\n\r\n SET_SELECTED_VEHICLE(\"\");\r\n SET_VEHICLES_LIST_UPDATE_TRIGGER(true);\r\n\r\n } else {\r\n\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_LIST_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_LIST_RESPONSE.status, UserMessage: CONTENT?.UserMessage});\r\n\r\n }\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n }\r\n\r\n\r\n const VEHICLE_ACTIVE_STATUS_HANDLER = async (VEHICLE: VEHICLE_INTERFACE | null, ACTION: \"ON\" | \"OFF\", TRIGGER: \"ON\" | \"OFF\" = \"ON\", TOKEN?: any): Promise => {\r\n\r\n if (!VEHICLE) return;\r\n\r\n const CHANGE_VEHICLE_ACTIVE_STATUS_REQUEST_METHOD = ACTION === \"OFF\" ? \"DELETE\" : \"POST\";\r\n\r\n const CHANGE_VEHICLE_ACTIVE_STATUS_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n RegNo: VEHICLE.RegNo,\r\n IsFront: !!VEHICLE.IsFront\r\n };\r\n\r\n try {\r\n\r\n const VEHICLES_LIST_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/Vehicle/Active`,\r\n CHANGE_VEHICLE_ACTIVE_STATUS_REQUEST_DATA,\r\n TOKEN || REST_API_REQUEST_TOKEN,\r\n CHANGE_VEHICLE_ACTIVE_STATUS_REQUEST_METHOD\r\n );\r\n\r\n if (VEHICLES_LIST_RESPONSE.status === 204) {\r\n\r\n if (TRIGGER === \"ON\") {\r\n SET_VEHICLES_LIST_UPDATE_TRIGGER(true);\r\n }\r\n\r\n SET_VEHICLES_LIST_ERROR(null);\r\n\r\n } else {\r\n\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await VEHICLES_LIST_RESPONSE.json();\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: VEHICLES_LIST_RESPONSE.status, UserMessage: CONTENT?.UserMessage});\r\n\r\n }\r\n\r\n return prepareRestApiRequestToken(VEHICLES_LIST_RESPONSE.headers);\r\n\r\n } catch (e) {\r\n SET_VEHICLES_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n }\r\n\r\n const FavoriteVehiclesList = FAVORITE_VEHICLES_LIST.map((VEHICLE, i: number) =>\r\n \r\n );\r\n\r\n\r\n const OtherVehiclesList = OTHER_VEHICLES_LIST.map((VEHICLE, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n <>{!!VEHICLES_LIST_ERROR && }\r\n\r\n {!VEHICLES_LIST_ERROR &&\r\n }\r\n\r\n\r\n {!VEHICLES_LIST_ERROR &&\r\n\t \r\n\t\t {`Ulubione`}\r\n\t \r\n }\r\n\r\n {!VEHICLES_LIST_ERROR && OtherVehiclesList.length > 0 &&\r\n\t \r\n\t\t \r\n\t\t\t \r\n\t\t\t\t SET_SELECTED_VEHICLE(e.target.value)}>\r\n\t\t\t\t\t \r\n {OtherVehiclesList}\r\n\t\t\t\t \r\n\t\t\t \r\n\r\n\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\r\n\t\t \r\n\t \r\n }\r\n\r\n {!VEHICLES_LIST_ERROR &&\r\n \r\n \r\n\r\n {FavoriteVehiclesList.length < 1 ?\r\n \r\n {`Brak ulubionych pojazdów`}\r\n \r\n :\r\n FavoriteVehiclesList\r\n }\r\n\r\n \r\n \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsMyFavouriteVehiclesPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport {TERMINAL_INTERFACE} from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\nimport {AiFillDelete, AiFillSave, MdCancel} from \"react-icons/all\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\ntype FavouriteTerminalsElementProps = {\r\n TERMINAL_DATA: TERMINAL_INTERFACE | null;\r\n TERMINALS_LIST_HANDLER(eventType: string, terminalId?: string | null): void;\r\n};\r\n\r\n\r\nexport const FavouriteTerminalsElementComponent: React.FC = ({\r\n TERMINAL_DATA = null,\r\n TERMINALS_LIST_HANDLER = null\r\n}): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [removeFromFavoritesStatus, setRemoveFromFavoritesStatus] = useState(false);\r\n const [removeFromFavoritesMessage, setRemoveFromFavoritesMessage] = useState(null);\r\n\r\n const changeRemoveFromFavoritesStatus = (status: boolean): void => {\r\n setRemoveFromFavoritesMessage(null);\r\n setRemoveFromFavoritesStatus(status);\r\n }\r\n\r\n const changeRemoveFromFavoritesMessage = (message: string | null): void => {\r\n setRemoveFromFavoritesStatus(false);\r\n setRemoveFromFavoritesMessage(message);\r\n }\r\n\r\n useEffect(() => {\r\n return () => {\r\n setRemoveFromFavoritesStatus(false);\r\n setRemoveFromFavoritesMessage(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!TERMINAL_DATA || !TERMINALS_LIST_HANDLER) return null;\r\n\r\n\r\n const {\r\n TerminalNo: terminalId,\r\n TerminalName: terminalName\r\n } = TERMINAL_DATA;\r\n\r\n\r\n const removeFromFavoritesRequestHandler = async () => {\r\n\r\n /** @const REMOVE_TERMINAL_API_URL Terminals List REST API Endpoint URL */\r\n const REMOVE_TERMINAL_API_URL: string = REST_API_URL + \"/Terminal/Favorite\";\r\n\r\n /** @const REMOVE_TERMINAL_REQUEST_DATA Terminals List Request Data Object */\r\n const REMOVE_TERMINAL_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n TerminalNo: terminalId // Data Return Mode - Simplified\r\n };\r\n\r\n try {\r\n\r\n const REMOVE_TERMINAL_RESPONSE = await REST_API_REQUEST(\r\n REMOVE_TERMINAL_API_URL,\r\n REMOVE_TERMINAL_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN,\r\n \"DELETE\"\r\n );\r\n\r\n if (REMOVE_TERMINAL_RESPONSE.status === 204) {\r\n TERMINALS_LIST_HANDLER(\"remove\", terminalId);\r\n } else {\r\n if (REMOVE_TERMINAL_RESPONSE.status === 409) {\r\n const ERROR: HTTP_ERROR_RESPONSE_INTERFACE = await REMOVE_TERMINAL_RESPONSE.json();\r\n changeRemoveFromFavoritesMessage(ERROR.UserMessage);\r\n } else {\r\n changeRemoveFromFavoritesMessage(\"Wystąpił nieokreślony błąd\");\r\n }\r\n }\r\n\r\n } catch (e) {\r\n TERMINALS_LIST_HANDLER(\"error\");\r\n }\r\n\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {terminalName}\r\n \r\n\r\n \r\n {/*{!!removeFromFavoritesStatus &&*/}\r\n {/* removeFromFavoritesRequestHandler()}>*/}\r\n {/* */}\r\n {/**/}\r\n {/*}*/}\r\n removeFromFavoritesRequestHandler()}>\r\n {removeFromFavoritesStatus ? : }\r\n \r\n \r\n\r\n {/*{!!removeFromFavoritesStatus &&*/}\r\n\t {/**/}\r\n\t\t {/* {`Potwierdź usunięcie Stacji Paliw z Listy Ulubionych`}*/}\r\n\t {/**/}\r\n {/*}*/}\r\n\r\n {!!removeFromFavoritesMessage &&\r\n \r\n {removeFromFavoritesMessage}\r\n \r\n }\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FavouriteTerminalsElementComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {TERMINAL_INTERFACE} from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport WarningMessageComponent from \"@Components/UI/Communicates/Messages/Warning\";\r\n\r\n\r\nimport FavouriteTerminalsElementComponent from \"@UIPages/Authenticated/Settings/Favorite/Terminals/Favourites/Terminal\";\r\n\r\n\r\ntype FavouriteTerminalsListProps = {\r\n TERMINALS_LIST: TERMINAL_INTERFACE[] | null;\r\n TERMINALS_LIST_HANDLER(eventType: string, terminalId?: string | null): void;\r\n};\r\n\r\n\r\nexport const FavouriteTerminalsListComponent: React.FC = ({\r\n TERMINALS_LIST = null, TERMINALS_LIST_HANDLER = null\r\n}): JSX.Element | null => {\r\n\r\n\r\n if (!TERMINALS_LIST || !TERMINALS_LIST_HANDLER) return null;\r\n\r\n\r\n const FavouriteTerminalsList = TERMINALS_LIST.map((terminal: TERMINAL_INTERFACE, i: number) =>\r\n \r\n );\r\n\r\n\r\n return (\r\n \r\n \r\n {TERMINALS_LIST.length < 1 ?\r\n \r\n {`Brak ulubionych baz paliw`}\r\n \r\n :\r\n FavouriteTerminalsList\r\n }\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default FavouriteTerminalsListComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport {TERMINAL_INTERFACE} from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport {Button, Col, Form, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\ntype AddFavouriteTerminalProps = {\r\n TERMINALS_LIST: TERMINAL_INTERFACE[] | null;\r\n TERMINALS_LIST_HANDLER(eventType: string, terminalId?: string | null): void;\r\n};\r\n\r\n\r\nexport const AddFavouriteTerminalComponent: React.FC = ({\r\n TERMINALS_LIST = null, TERMINALS_LIST_HANDLER = null\r\n}): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [selectedTerminalId, setSelectedTerminalId] = useState(\"0\");\r\n const [addTerminalToFavoritesMessage, setAddTerminalToFavoritesMessage] = useState(null);\r\n\r\n const changeSelectedTerminalId = (terminalId: string): void => {\r\n setAddTerminalToFavoritesMessage(null);\r\n setSelectedTerminalId(terminalId);\r\n }\r\n\r\n const changeAddTerminalToFavoritesMessage = (message: string | null): void => {\r\n setSelectedTerminalId(\"0\");\r\n setAddTerminalToFavoritesMessage(message);\r\n }\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n setSelectedTerminalId(\"0\");\r\n setAddTerminalToFavoritesMessage(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!TERMINALS_LIST?.length || !TERMINALS_LIST_HANDLER) return null;\r\n\r\n\r\n const TerminalsList = TERMINALS_LIST.map((terminal: TERMINAL_INTERFACE, i: number) => {\r\n const {TerminalNo: terminalId, TerminalName: terminalName} = terminal;\r\n return (\r\n \r\n );\r\n });\r\n\r\n\r\n const addTerminalToFavoritesRequestHandler = async () => {\r\n\r\n /* Check if Monitory Note ID, API URL Present, User Logged */\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return; // No Valid Data - Stop\r\n\r\n /** @const ADD_TERMINAL_API_URL Terminals List REST API Endpoint URL */\r\n const ADD_TERMINAL_API_URL: string = REST_API_URL + \"/Terminal/Favorite\";\r\n\r\n /** @const ADD_TERMINAL_REQUEST_DATA Terminals List Request Data Object */\r\n const ADD_TERMINAL_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n TerminalNo: selectedTerminalId // Data Return Mode - Simplified\r\n };\r\n\r\n try {\r\n\r\n const ADD_TERMINAL_RESPONSE = await REST_API_REQUEST(\r\n ADD_TERMINAL_API_URL,\r\n ADD_TERMINAL_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (ADD_TERMINAL_RESPONSE.status === 204) {\r\n TERMINALS_LIST_HANDLER(\"add\", selectedTerminalId);\r\n } else {\r\n if (ADD_TERMINAL_RESPONSE.status === 409) {\r\n const ERROR: HTTP_ERROR_RESPONSE_INTERFACE = await ADD_TERMINAL_RESPONSE.json();\r\n changeAddTerminalToFavoritesMessage(ERROR.UserMessage);\r\n } else {\r\n changeAddTerminalToFavoritesMessage(\"Wystąpił nieokreślony błąd\");\r\n }\r\n }\r\n\r\n } catch (e) {\r\n TERMINALS_LIST_HANDLER(\"error\");\r\n }\r\n\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {`Ulubione`}\r\n \r\n\r\n {addTerminalToFavoritesMessage &&\r\n \r\n }\r\n\r\n \r\n changeSelectedTerminalId(e.target.value)}>\r\n \r\n {TerminalsList}\r\n \r\n \r\n\r\n\t \r\n\t\t \r\n\t \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default AddFavouriteTerminalComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport {TERMINAL_INTERFACE} from \"@Services/Application/Interfaces/Terminals/Terminal\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport FavouriteTerminalsListComponent from \"@UIPages/Authenticated/Settings/Favorite/Terminals/Favourites\";\r\nimport AddFavouriteTerminalComponent from \"@UIPages/Authenticated/Settings/Favorite/Terminals/AddToFavourite\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\nconst DEFAULT_REQUEST_HEADERS: HeadersInit = {\"content-Type\": \"application/json\"};\r\n\r\n\r\ntype MyFavouriteTerminalsPageProps = {};\r\n\r\n\r\nexport const SettingsMyFavouriteTerminalsPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n /** @const {APPLICATION_ROUTER_INTERFACE} Global Router Object */\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n /** @var {[object, function]} State - Terminals List Object, Terminals List Object Setter */\r\n const [TERMINALS_LIST, SET_TERMINALS_LIST] = useState(null);\r\n /** @var {[boolean, function]} State - Terminals List Component Error, Terminals List Component Error Setter */\r\n const [TERMINALS_LIST_ERROR, SET_TERMINALS_LIST_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (TERMINALS_LIST) return;\r\n\r\n const TERMINALS_LIST_API_URL: string = REST_API_URL + \"/Terminal/List\";\r\n\r\n const TERMINALS_LIST_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID,\r\n Mode: \"S\"\r\n };\r\n\r\n const GET_TERMINALS_LIST = async (): Promise => {\r\n\r\n try {\r\n\r\n const TERMINALS_LIST_RESPONSE = await REST_API_REQUEST(\r\n TERMINALS_LIST_API_URL,\r\n TERMINALS_LIST_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (TERMINALS_LIST_RESPONSE.status === 200) {\r\n const CONTENT = await TERMINALS_LIST_RESPONSE.text();\r\n if (CONTENT.trim()) {\r\n SET_TERMINALS_LIST(JSON.parse(CONTENT)?.Terminals || []);\r\n } else {\r\n SET_TERMINALS_LIST([]);\r\n }\r\n } else {\r\n if (TERMINALS_LIST_RESPONSE.status === 409) {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await TERMINALS_LIST_RESPONSE.json();\r\n SET_TERMINALS_LIST_ERROR({ErrorCode: CONTENT.ErrorCode, UserMessage: CONTENT.UserMessage});\r\n } else {\r\n SET_TERMINALS_LIST_ERROR({ErrorCode: TERMINALS_LIST_RESPONSE.status, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_TERMINALS_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_TERMINALS_LIST();\r\n\r\n return () => {\r\n SET_TERMINALS_LIST(null);\r\n SET_TERMINALS_LIST_ERROR(null);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n /** Check if User is Logged */\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ; // User is not logged => Redirect to LOGIN Page\r\n\r\n\r\n /** Check if Router is present */\r\n if (!ROUTER) return ; // No Router Object - Redirect to 404 Page\r\n\r\n\r\n const UPDATE_TERMINAL_LIST_HANDLER = (eventType: \"error\" | \"remove\" | \"add\", terminalId?: string | null): void => {\r\n\r\n if (eventType === \"error\") {\r\n SET_TERMINALS_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n return;\r\n }\r\n\r\n let UPDATED_TERMINALS_LIST: TERMINAL_INTERFACE[] = [];\r\n\r\n if ([\"remove\", \"add\"].includes(eventType)) {\r\n UPDATED_TERMINALS_LIST = TERMINALS_LIST ? TERMINALS_LIST.map(\r\n (terminal: TERMINAL_INTERFACE) =>\r\n terminal.TerminalNo === terminalId ? {...terminal, Favorite: eventType === \"add\" ? true : false} : terminal\r\n ) : [];\r\n } else {\r\n SET_TERMINALS_LIST_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n SET_TERMINALS_LIST(UPDATED_TERMINALS_LIST);\r\n\r\n };\r\n\r\n\r\n const FAVORITE_TERMINALS_LIST = TERMINALS_LIST ? TERMINALS_LIST?.filter((terminal: TERMINAL_INTERFACE) => !!terminal.Favorite) : null;\r\n const NOT_FAVORITE_TERMINALS_LIST =TERMINALS_LIST ? TERMINALS_LIST?.filter((terminal: TERMINAL_INTERFACE) => !terminal.Favorite) : null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!TERMINALS_LIST_ERROR && }\r\n\r\n {!!!TERMINALS_LIST_ERROR && TERMINALS_LIST &&\r\n\t <>\r\n \r\n\r\n \r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsMyFavouriteTerminalsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\nimport SettingsMyFavouriteVehiclesPageComponent from \"@UIPages/Authenticated/Settings/Favorite/Vehicles\";\r\nimport SettingsMyFavouriteTerminalsPageComponent from \"@UIPages/Authenticated/Settings/Favorite/Terminals\";\r\n\r\n\r\ntype SettingsPageFavoriteViewProps = {};\r\n\r\n\r\nexport const SettingsPageFavoriteViewComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const SETTINGS_PAGE_URLS = ROUTER.AUTHENTICATED.SETTINGS;\r\n\r\n const {\r\n MAIN_PAGE,\r\n SETTINGS_MY_FAVORITE_VEHICLES_PAGE,\r\n SETTINGS_MY_FAVORITE_TERMINALS_PAGE,\r\n } = SETTINGS_PAGE_URLS;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsPageFavoriteViewComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport {LOG_USER_OUT_ACTION} from \"@Actions/Authentication\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport SettingsSMSCodeVerificationComponent from \"@UIPages/Authenticated/Settings/_Parts/Verification\";\r\nimport {useDispatch} from \"react-redux\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport {Button, Col} from \"react-bootstrap\";\r\nimport ERROR_SYSTEM_MESSAGE_INTERFACE from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_MODAL_MESSAGE_ACTION from \"@Actions/Interface/ChangeModalMessage\";\r\n\r\n\r\ntype RemoveAccountPageProps = {};\r\n\r\n\r\nexport const SettingsRemoveAccountPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [USER_AUTHENTICATED_STATUS, SET_USER_AUTHENTICATED_STATUS] = useState(false);\r\n\r\n const CHANGE_USER_AUTHENTICATED_STATUS = (response: any) => {\r\n if (response.OperationGUID) SET_USER_AUTHENTICATED_STATUS(true);\r\n }\r\n\r\n const [DELETE_USER_ACCOUNT_ERROR, SET_DELETE_USER_ACCOUNT_ERROR] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_USER_AUTHENTICATED_STATUS(false);\r\n SET_DELETE_USER_ACCOUNT_ERROR(null);\r\n };\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!USER_AUTHENTICATED_STATUS) return ;\r\n\r\n\r\n const DELETE_ACCOUNT_HANDLER = async () => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const USER_REMOVE_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/User`,\r\n {UserId: LOGGED_USER?.userID},\r\n REST_API_REQUEST_TOKEN,\r\n \"DELETE\"\r\n );\r\n\r\n if (USER_REMOVE_RESPONSE.status === 204) {\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(`Konto zostało usunięte`, \"SUCCESS\"));\r\n DISPATCHER(LOG_USER_OUT_ACTION());\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await USER_REMOVE_RESPONSE.json();\r\n SET_DELETE_USER_ACCOUNT_ERROR({ErrorCode: USER_REMOVE_RESPONSE.status, UserMessage: CONTENT?.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_DELETE_USER_ACCOUNT_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"})\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!DELETE_USER_ACCOUNT_ERROR &&\r\n \r\n }\r\n\r\n {!DELETE_USER_ACCOUNT_ERROR &&\r\n\t \r\n\t\t {`Usunięcie konta jest nieodwracalne. Po usunięciu konta, aby ponownie używać aplikacji eKiosk należy się ponownie zarejestrować`}\r\n\t \r\n }\r\n\r\n {!DELETE_USER_ACCOUNT_ERROR &&\r\n\t \r\n\t\t \r\n\t \r\n }\r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsRemoveAccountPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport USER_INTERFACE from \"@Services/Application/Interfaces/Users/User\";\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport dateFormat from \"dateformat\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport {Col, Form, Row} from \"react-bootstrap\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport SettingsSMSCodeVerificationComponent from \"@UIPages/Authenticated/Settings/_Parts/Verification\";\r\nimport validateUserPassword from \"@Utilities/Validators/Password\";\r\nimport FormFieldsGroupComponent from \"@Components/UI/Forms/Group\";\r\nimport FormFieldsGroupHeaderComponent from \"@Components/UI/Forms/Group/Header\";\r\nimport FormFieldComponent from \"@Components/UI/Forms/Field\";\r\nimport DefaultFormButton from \"@Components/UI/Forms/Buttons/Default\";\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\nimport CHANGE_MODAL_MESSAGE_ACTION from \"@Actions/Interface/ChangeModalMessage\";\r\n\r\n\r\ntype ChangePasswordPageProps = {};\r\n\r\n\r\nexport const SettingsChangePasswordPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [userVerifiedStatus, setUserVerifiedStatus] = useState(false);\r\n\r\n const userVerifiedStatusHandler = (response: any) => {\r\n const {OperationGUID: operationGuid} = response;\r\n setOperationGuid(operationGuid);\r\n };\r\n\r\n const [operationGuid, setOperationGuid] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setUserVerifiedStatus(operationGuid ? true : false);\r\n }, [operationGuid]);\r\n\r\n\r\n const [userNewPasswordError, setUserNewPasswordError] = useState({});\r\n const [userNewPasswordSubmitSuccess, setUserNewPasswordSubmitSuccess] = useState(false);\r\n\r\n const [userNewPassword, setUserNewPassword] = useState(\"\");\r\n const [userNewPasswordRepeat, setUserNewPasswordRepeat] = useState(\"\");\r\n\r\n const changeUserNewPassword = (e: React.ChangeEvent) => {\r\n const password = e.target.value;\r\n if (validateUserPassword(password)) setUserNewPasswordError({...userNewPasswordError, newPassword: null});\r\n setUserNewPassword(password);\r\n };\r\n\r\n const changeUserNewPasswordRepeat = (e: React.ChangeEvent) => {\r\n const password = e.target.value;\r\n if (userNewPassword === password) setUserNewPasswordError({...userNewPasswordError, newPasswordRepeat: null});\r\n setUserNewPasswordRepeat(password);\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n resetChangePasswordState();\r\n };\r\n }, []);\r\n\r\n const resetChangePasswordState = () => {\r\n setUserNewPassword(\"\");\r\n setUserNewPasswordRepeat(\"\");\r\n setUserNewPasswordSubmitSuccess(false);\r\n setUserNewPasswordError({});\r\n setOperationGuid(\"\");\r\n };\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!userVerifiedStatus) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n\r\n const NEW_PASSWORD_SUBMIT_HANDLER = async () => {\r\n\r\n const errors: any = {};\r\n\r\n if (!validateUserPassword(userNewPassword)) errors.newPassword = \"Podane hasło ma nieprawidłowy format\";\r\n if (userNewPassword !== userNewPasswordRepeat) errors.newPasswordRepeat = \"Podane hasła różnią się\";\r\n\r\n setUserNewPasswordError(errors);\r\n\r\n if (Object.entries(errors).length) return null;\r\n\r\n await NEW_PASSWORD_REQUEST_HANDLER();\r\n\r\n };\r\n\r\n\r\n const NEW_PASSWORD_REQUEST_HANDLER = async () => {\r\n\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return; // No Valid Data - Stop\r\n\r\n const CHANGE_PASSWORD_API_URL: string = REST_API_URL + \"/User/ChangePwd/Finalization\";\r\n\r\n const CHANGE_PASSWORD_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n OperationGUID: operationGuid,\r\n Password: btoa(userNewPassword)\r\n };\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const CHANGE_PASSWORD_RESPONSE = await REST_API_REQUEST(\r\n CHANGE_PASSWORD_API_URL,\r\n CHANGE_PASSWORD_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n const CONTENT = await CHANGE_PASSWORD_RESPONSE.text();\r\n\r\n if (CHANGE_PASSWORD_RESPONSE.status === 204) {\r\n DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(`Hasło zostało zmienione`, \"SUCCESS\"));\r\n setUserNewPasswordSubmitSuccess(true);\r\n } else {\r\n setUserNewPasswordError({process: JSON.parse(CONTENT)?.UserMessage})\r\n }\r\n\r\n } catch (e) {\r\n\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n\r\n if (userNewPasswordSubmitSuccess === true) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n changeUserNewPassword(e)}\r\n fieldType={\"password\"} fieldLabel={`Hasło`} fieldControlID={`form-user-password`}\r\n fieldDisabledStatus={!!REST_API_REQUEST_STATUS}\r\n fieldError={userNewPasswordError?.newPassword}\r\n fieldLegend={`Hasło powinno składać się z minimum 8 znaków, oraz zawierać cyfrę, wielką literę i znak specjalny`}\r\n />\r\n\r\n changeUserNewPasswordRepeat(e)}\r\n fieldType={\"password\"} fieldLabel={`Powtórz hasło`} fieldControlID={`form-user-password-repeat`}\r\n fieldDisabledStatus={!!REST_API_REQUEST_STATUS}\r\n fieldError={userNewPasswordError?.newPasswordRepeat}\r\n />\r\n\r\n \r\n\r\n NEW_PASSWORD_SUBMIT_HANDLER()}\r\n controlId={`change-password-submit`}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n cssClasses={`change-password-submit`}\r\n />\r\n\r\n \r\n \r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsChangePasswordPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useState} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\n\r\nimport SettingsSMSCodeVerificationComponent from \"@UIPages/Authenticated/Settings/_Parts/Verification\";\r\nimport USER_INTERFACE from \"@Services/Application/Interfaces/Users/User\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {useDispatch} from \"react-redux\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport {Col, Row} from \"react-bootstrap\";\r\nimport {BiTrash} from \"react-icons/all\";\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\ntype DisconnectWithOperatorPageProps = {};\r\n\r\n\r\nexport const SettingsDisconnectWithOperatorPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [USER_AUTHENTICATED_STATUS, SET_USER_AUTHENTICATED_STATUS] = useState(false);\r\n\r\n const CHANGE_USER_AUTHENTICATED_STATUS = (response: any) => {\r\n if (response.OperationGUID) SET_USER_AUTHENTICATED_STATUS(true);\r\n }\r\n\r\n\r\n /** @var {[object, function]} State - User Profile Data Object, User Profile Data Object Setter */\r\n const [USER_PROFILE_DATA, SET_USER_PROFILE_DATA] = useState(null);\r\n /** @var {[boolean, function]} State - User Profile Component Error, User Profile Component Error Setter */\r\n const [USER_PROFILE_ERROR, SET_USER_PROFILE_ERROR] = useState(null);\r\n\r\n\r\n const [USER_PROFILE_MESSAGE, SET_USER_PROFILE_MESSAGE] = useState(\"\");\r\n\r\n\r\n /** @hook {didMount, didUpdate} Get Terminals List from REST API */\r\n useEffect(() => {\r\n\r\n if (!USER_AUTHENTICATED_STATUS) return;\r\n\r\n /* Check if Monitory Note ID, API URL Present, User Logged */\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return; // No Valid Data - Stop\r\n\r\n /** @const USER_PROFILE_API_URL User Profile REST API Endpoint URL */\r\n const USER_PROFILE_API_URL: string = REST_API_URL + \"/User/Get\";\r\n\r\n /** @const USER_PROFILE_REQUEST_DATA User Profile Request Data Object */\r\n const USER_PROFILE_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n ContentType: \"G\" // Data Return Mode - Main User Data\r\n };\r\n\r\n /** @async {function} User Profile Data Request Handler */\r\n const GET_USER_PROFILE_DATA = async (): Promise => {\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true)); // Set Status to true\r\n\r\n try {\r\n\r\n const USER_OPERATORS_RESPONSE = await REST_API_REQUEST(\r\n USER_PROFILE_API_URL,\r\n USER_PROFILE_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (USER_OPERATORS_RESPONSE.status === 200) {\r\n const CONTENT = await USER_OPERATORS_RESPONSE.text();\r\n if (CONTENT.trim()) {\r\n SET_USER_PROFILE_DATA(JSON.parse(CONTENT));\r\n }\r\n } else {\r\n if (USER_OPERATORS_RESPONSE.status === 409) {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await USER_OPERATORS_RESPONSE.json();\r\n SET_USER_PROFILE_ERROR({ErrorCode: CONTENT.ErrorCode, UserMessage: CONTENT.UserMessage});\r\n } else {\r\n SET_USER_PROFILE_ERROR({ErrorCode: USER_OPERATORS_RESPONSE.status, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_USER_PROFILE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n /* Change Global Rest Api Request Status Action */\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n GET_USER_PROFILE_DATA();\r\n\r\n }, [USER_AUTHENTICATED_STATUS, USER_PROFILE_MESSAGE]);\r\n\r\n\r\n useEffect(() => {\r\n if (!USER_PROFILE_DATA) return;\r\n if (USER_PROFILE_DATA?.Driver && USER_PROFILE_DATA?.Driver?.length && USER_PROFILE_DATA?.Driver[0]) {\r\n if (USER_PROFILE_DATA?.Driver[0]?.Applicants && USER_PROFILE_DATA?.Driver[0]?.Applicants?.length === 1) {\r\n SET_USER_PROFILE_MESSAGE(\"Jesteś powiązany tylko z jednym przewoźnikiem. Odłączenie jest niemożliwe.\");\r\n }\r\n }\r\n return () => {\r\n SET_USER_PROFILE_MESSAGE(\"\");\r\n };\r\n }, [USER_PROFILE_DATA]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_USER_PROFILE_DATA(null);\r\n SET_USER_PROFILE_ERROR(null);\r\n SET_USER_PROFILE_MESSAGE(\"\");\r\n }\r\n }, [])\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n if (!USER_AUTHENTICATED_STATUS) return ;\r\n\r\n\r\n // if (!USER_PROFILE_DATA) return null;\r\n\r\n\r\n const {Driver: USER_DATA} = USER_PROFILE_DATA || {};\r\n\r\n const USER_OPERATORS: any = USER_DATA && USER_DATA?.length > 0 ? USER_DATA[0]?.Applicants : [];\r\n\r\n const OperatorsList = USER_OPERATORS.map((operator: any) => {\r\n return (\r\n \r\n \r\n 1 ? 10 : 12} className={\"operator-name\"}>\r\n {operator?.fdName || operator?.ShortName}\r\n \r\n {USER_OPERATORS.length > 1 &&\r\n\t \r\n OPERATOR_REMOVE_HANDLER(operator?.MasterNo)}>\r\n \r\n \r\n\t \r\n }\r\n \r\n \r\n );\r\n });\r\n\r\n\r\n const OPERATOR_REMOVE_HANDLER = async (operatorId: string) => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const DISCONNECT_WITH_OPERATOR_RESPONSE = await REST_API_REQUEST(\r\n `${REST_API_URL}/User/Applicant/Delete`,\r\n {UserId: LOGGED_USER?.userID, ApplicantMasterNo: operatorId},\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (DISCONNECT_WITH_OPERATOR_RESPONSE.status === 204) {\r\n SET_USER_PROFILE_MESSAGE(\"Zgłoszenie zostało przyjęte\");\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await DISCONNECT_WITH_OPERATOR_RESPONSE.json();\r\n SET_USER_PROFILE_ERROR({ErrorCode: DISCONNECT_WITH_OPERATOR_RESPONSE.status, UserMessage: CONTENT.UserMessage});\r\n }\r\n\r\n } catch(e) {\r\n SET_USER_PROFILE_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!USER_PROFILE_ERROR && }\r\n\r\n {!USER_PROFILE_ERROR &&\r\n\t \r\n\t\t {`Przewoźnicy`}\r\n\t \r\n }\r\n\r\n {!!USER_PROFILE_MESSAGE &&\r\n \r\n\t {USER_PROFILE_MESSAGE}\r\n \r\n }\r\n\r\n {USER_OPERATORS?.length < 1 && !USER_PROFILE_ERROR ?\r\n \r\n {`Brak powiązanych przewoźników`}\r\n \r\n :\r\n OperatorsList\r\n }\r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsDisconnectWithOperatorPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport SettingsRemoveAccountPageComponent from \"@UIPages/Authenticated/Settings/Account/RemoveAccount\";\r\nimport SettingsChangePasswordPageComponent from \"@UIPages/Authenticated/Settings/Account/ChangePassword\";\r\nimport SettingsDisconnectWithOperatorPageComponent from \"@UIPages/Authenticated/Settings/Account/DisconnectWithOperator\";\r\n\r\n\r\ntype SettingsPageAccountViewProps = {};\r\n\r\n\r\nexport const SettingsPageAccountViewComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const SETTINGS_PAGE_URLS = ROUTER.AUTHENTICATED.SETTINGS;\r\n\r\n const {\r\n MAIN_PAGE,\r\n SETTINGS_DELETE_ACCOUNT_PAGE,\r\n SETTINGS_CHANGE_PASSWORD_PAGE,\r\n SETTINGS_DISCONNECT_FROM_OPERATOR_PAGE\r\n } = SETTINGS_PAGE_URLS;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsPageAccountViewComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React from \"react\";\r\n\r\n\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\nimport {AiFillPhone} from \"react-icons/all\";\r\n\r\n\r\ninterface CONTACT_REASONS_INTERFACE {\r\n Order: number;\r\n Text: string;\r\n}\r\n\r\n\r\ninterface CONTACT_TYPE_INTERFACE {\r\n Type: \"M\" | \"P\",\r\n Address: string,\r\n Reasons?: CONTACT_REASONS_INTERFACE[]\r\n}\r\n\r\n\r\ntype ContactPageProps = {contactData: CONTACT_TYPE_INTERFACE};\r\n\r\n\r\nexport const ContactPagePhoneComponent: React.FC = ({contactData = null}): JSX.Element | null => {\r\n\r\n\r\n if (!contactData) return null;\r\n\r\n\r\n const {Address: contactPhoneNumber} = contactData;\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n {`Infolinia`}\r\n \r\n\r\n \r\n \r\n {contactPhoneNumber}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {`Koszt połączeń według cennika operatora`}\r\n \r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default ContactPagePhoneComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useState, useEffect, useContext} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport {Button, Col, Form, Row} from \"react-bootstrap\";\r\n\r\nimport {AiFillMail} from \"react-icons/all\";\r\n\r\nimport DefaultMessageComponent from \"@Components/UI/Communicates/Messages/Default\";\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\ninterface CONTACT_REASONS_INTERFACE {\r\n Order: number;\r\n Text: string;\r\n}\r\n\r\n\r\ninterface CONTACT_TYPE_INTERFACE {\r\n Type: \"M\" | \"P\",\r\n Address: string,\r\n Reasons?: CONTACT_REASONS_INTERFACE[]\r\n}\r\n\r\n\r\ntype ContactPageMailProps = {contactData: CONTACT_TYPE_INTERFACE};\r\n\r\n\r\nexport const ContactPageMailComponent: React.FC = ({contactData = null}): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n const REST_API_REQUEST_STATUS= useTypedSelector(\r\n (state):ReturnType => state.interface\r\n )?.apiRequestStatus;\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [contactFormOpenStatus, setContactFormOpenStatus] = useState(false);\r\n\r\n\r\n const [contactFormErrors, setContactFormErrors] = useState({});\r\n const [contactFormSubmitStatus, setContactFormSubmitStatus] = useState(false);\r\n\r\n const [contactFormSubject, setContactFormSubject] = useState(\"0\");\r\n const [contactFormContent, setContactFormContent] = useState(\"\");\r\n\r\n const changeContactFormSubject = (subject: string) => {\r\n if (subject !== \"0\") setContactFormErrors({...contactFormErrors, formSubject: null});\r\n setContactFormSubject(subject)\r\n };\r\n\r\n const changeContactFormContent = (content: string) => {\r\n if (content.length > 9) setContactFormErrors({...contactFormErrors, formContent: null});\r\n setContactFormContent(content)\r\n };\r\n\r\n\r\n const resetContactForm = () => {\r\n setContactFormOpenStatus(false);\r\n setContactFormErrors({});\r\n setContactFormSubmitStatus(false);\r\n setContactFormSubject(\"0\");\r\n setContactFormContent(\"\");\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n resetContactForm();\r\n };\r\n }, []);\r\n\r\n\r\n if (!contactData) return null;\r\n\r\n\r\n const {Address: contactMailAddress, Reasons: contactMailReasons} = contactData;\r\n\r\n\r\n if (contactFormSubmitStatus) return ;\r\n\r\n\r\n const CONTACT_FORM_SUBMIT_HANDLER = async () => {\r\n\r\n const errors: any = {};\r\n\r\n if (contactFormSubject === \"0\") errors.formSubject = \"Wybierz temat\";\r\n if (contactFormContent.length < 10) errors.formContent = \"Treść wiadomośći jest zbyt krótka\";\r\n\r\n setContactFormErrors(errors);\r\n\r\n if (Object.entries(errors).length) return null;\r\n\r\n await CONTACT_FORM_REQUEST_HANDLER();\r\n\r\n };\r\n\r\n\r\n const CONTACT_FORM_REQUEST_HANDLER = async () => {\r\n\r\n const CONTACT_FORM_SEND_MESSAGE_API_URL = REST_API_URL + \"/App/Mail/Send\";\r\n\r\n const CONTACT_FORM_SEND_MESSAGE_REQUEST_DATA = {\r\n UserId: LOGGED_USER.userID,\r\n Address: contactMailAddress,\r\n Reason: contactFormSubject,\r\n Text: contactFormContent\r\n };\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true));\r\n\r\n try {\r\n\r\n const CONTACT_FORM_RESPONSE = await REST_API_REQUEST(\r\n CONTACT_FORM_SEND_MESSAGE_API_URL,\r\n CONTACT_FORM_SEND_MESSAGE_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (CONTACT_FORM_RESPONSE.status === 204) {\r\n setContactFormSubmitStatus(true);\r\n } else {\r\n const CONTENT = await CONTACT_FORM_RESPONSE.json();\r\n setContactFormErrors({process: CONTENT.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n setContactFormErrors({process: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"})\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false));\r\n\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n {`Formularz Kontaktowy`}\r\n \r\n\r\n \r\n \r\n {contactMailAddress}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {contactFormOpenStatus &&\r\n \r\n \r\n\r\n {!!contactFormErrors?.process &&\r\n \r\n }\r\n\r\n \r\n {`Wybierz temat`}:\r\n changeContactFormSubject(e.target.value)}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n >\r\n \r\n {contactMailReasons?.map((reason: CONTACT_REASONS_INTERFACE) =>\r\n \r\n )}\r\n \r\n {contactFormErrors?.formSubject && {contactFormErrors?.formSubject}}\r\n \r\n\r\n \r\n {`Treść Wiadomośći`}:\r\n changeContactFormContent(e.target.value)}\r\n disabled={!!REST_API_REQUEST_STATUS}\r\n />\r\n {contactFormErrors?.formContent && {contactFormErrors?.formContent}}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n }\r\n\r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default ContactPageMailComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useRef, useState, useEffect} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\n\r\nimport ContactPagePhoneComponent from \"@UIPages/Authenticated/Settings/Information/Contact/Phone\";\r\nimport {ContactPageMailComponent} from \"@UIPages/Authenticated/Settings/Information/Contact/Mail\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\n\r\ninterface CONTACT_REASONS_INTERFACE {\r\n Order: number;\r\n Text: string;\r\n}\r\n\r\n\r\ninterface CONTACT_TYPE_INTERFACE {\r\n Type: \"M\" | \"P\",\r\n Address: string,\r\n Reasons?: CONTACT_REASONS_INTERFACE[]\r\n}\r\n\r\n\r\ninterface CONTACT_PAGE_INTERFACE {\r\n Contacts: CONTACT_TYPE_INTERFACE[]\r\n}\r\n\r\n\r\ntype ContactPageProps = {};\r\n\r\n\r\nexport const SettingsContactPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n const [CONTACT_PAGE_DATA, SET_CONTACT_PAGE_DATA] = useState(null);\r\n const [CONTACT_PAGE_ERROR, SET_CONTACT_PAGE_ERROR] = useState(null);\r\n\r\n useEffect(() => {\r\n\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return;\r\n\r\n const CONTACT_PAGE_DATA_API_URL: string = REST_API_URL + \"/App/Contact/List\";\r\n\r\n const CONTACT_PAGE_DATA_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n };\r\n\r\n const GET_CONTACT_PAGE_DATA = async (): Promise => {\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(true)); // Set Status to true\r\n\r\n try {\r\n\r\n const CONTACT_PAGE_RESPONSE = await REST_API_REQUEST(\r\n CONTACT_PAGE_DATA_API_URL,\r\n CONTACT_PAGE_DATA_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (CONTACT_PAGE_RESPONSE.status === 200) {\r\n const CONTENT: CONTACT_PAGE_INTERFACE = await CONTACT_PAGE_RESPONSE.json();\r\n SET_CONTACT_PAGE_DATA(CONTENT);\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await CONTACT_PAGE_RESPONSE.json();\r\n SET_CONTACT_PAGE_ERROR({UserMessage: CONTENT?.UserMessage});\r\n }\r\n\r\n } catch (e) {\r\n SET_CONTACT_PAGE_ERROR({UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n DISPATCHER(CHANGE_API_REQUEST_STATUS_ACTION(false)); // Set Status to false\r\n\r\n }\r\n\r\n GET_CONTACT_PAGE_DATA();\r\n\r\n }, [REST_API_URL]);\r\n\r\n\r\n useEffect(() => {\r\n return () => {\r\n SET_CONTACT_PAGE_DATA(null);\r\n };\r\n }, []);\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const {Contacts: contactsTypes} = CONTACT_PAGE_DATA || {};\r\n\r\n\r\n const CONTACT_PAGE_TYPES = contactsTypes ? Object.fromEntries(contactsTypes.map((contact: any) => [contact.Type, contact])) : null;\r\n\r\n const MAIL_CONTACT_TYPE = CONTACT_PAGE_TYPES?.M || null;\r\n const PHONE_CONTACT_TYPE = CONTACT_PAGE_TYPES?.P || null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!CONTACT_PAGE_ERROR && }\r\n\r\n \r\n\r\n \r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsContactPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\nimport parse from 'html-react-parser';\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport $ from \"jquery\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport USER_INTERFACE from \"@Services/Application/Interfaces/Users/User\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport {Redirect, NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport {Col} from \"react-bootstrap\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\ntype RegulationsPageProps = {};\r\n\r\n\r\nexport const SettingsRegulationsPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** @const {string} Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n /** @const {object} REST_API_DATA - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const {} REST_API_REQUEST_TOKEN - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n /** @var {[object, function]} State - User Profile Data Object, User Profile Data Object Setter */\r\n const [USER_REGULATIONS, SET_USER_REGULATIONS] = useState<[] | null>(null);\r\n /** @var {[boolean, function]} State - User Profile Component Error, User Profile Component Error Setter */\r\n const [USER_REGULATIONS_ERROR, SET_USER_REGULATIONS_ERROR] = useState(null);\r\n\r\n const [USER_REGULATION_DOCUMENT, SET_USER_REGULATION_DOCUMENT] = useState(null);\r\n\r\n /** @hook {didMount, didUpdate} Get Terminals List from REST API */\r\n useEffect(() => {\r\n\r\n // if (!userVerifiedStatus) return;\r\n\r\n /* Check if Monitory Note ID, API URL Present, User Logged */\r\n if (!REST_API_URL || !LOGGED_USER?.userID) return; // No Valid Data - Stop\r\n\r\n const USER_REGULATIONS_API_URL: string = REST_API_URL + \"/App/Regulation/List\";\r\n\r\n const USER_REGULATIONS_REQUEST_DATA = {\r\n UserId: LOGGED_USER?.userID, // Logged User ID\r\n };\r\n\r\n const GET_USER_REGULATIONS = async (): Promise => {\r\n\r\n try {\r\n\r\n const REGULATIONS_RESPONSE = await REST_API_REQUEST(\r\n USER_REGULATIONS_API_URL,\r\n USER_REGULATIONS_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (REGULATIONS_RESPONSE.status === 200) {\r\n const CONTENT = await REGULATIONS_RESPONSE.text();\r\n if (CONTENT.trim()) {\r\n SET_USER_REGULATIONS(JSON.parse(CONTENT).Regulations);\r\n }\r\n } else {\r\n if (REGULATIONS_RESPONSE.status === 409) {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await REGULATIONS_RESPONSE.json();\r\n SET_USER_REGULATIONS_ERROR({ErrorCode: CONTENT.ErrorCode, UserMessage: CONTENT.UserMessage});\r\n } else {\r\n SET_USER_REGULATIONS_ERROR({ErrorCode: REGULATIONS_RESPONSE.status, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n }\r\n\r\n } catch (e) {\r\n SET_USER_REGULATIONS_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n GET_USER_REGULATIONS();\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n return () => {SET_USER_REGULATIONS_ERROR(null);};\r\n }, [])\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const GET_REGULATION_FILE_HANDLER = async (regulationId: number) => {\r\n\r\n if (!regulationId) return;\r\n\r\n const REGULATION_API_URL = `${REST_API_URL}/App/Regulation/Get/Docs`;\r\n\r\n const REGULATION_REQUEST_DATA = {UserId: LOGGED_USER?.userID, RegulationId: regulationId};\r\n\r\n try {\r\n const newWindow = window.open();\r\n\r\n const REGULATION_RESPONSE = await REST_API_REQUEST(\r\n REGULATION_API_URL,\r\n REGULATION_REQUEST_DATA,\r\n REST_API_REQUEST_TOKEN\r\n );\r\n\r\n if (REGULATION_RESPONSE.status === 200) {\r\n\r\n const CONTENT: any = await REGULATION_RESPONSE.json();\r\n\r\n if (!CONTENT?.Docs[0]?.DocData) return;\r\n\r\n const binaryString = window.atob(CONTENT.Docs[0].DocData);\r\n const len = binaryString.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; ++i) {\r\n bytes[i] = binaryString.charCodeAt(i);\r\n }\r\n\r\n const PDF = new Blob([bytes], {type: 'application/pdf'});\r\n\r\n const PDF_URL = URL.createObjectURL(PDF);\r\n \r\n if(newWindow) newWindow.location = PDF_URL;\r\n\r\n } else {\r\n const CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await REGULATION_RESPONSE.json();\r\n SET_USER_REGULATIONS_ERROR({ErrorCode: REGULATION_RESPONSE.status, UserMessage: CONTENT.UserMessage})\r\n }\r\n\r\n } catch (e) {\r\n SET_USER_REGULATIONS_ERROR({ErrorCode: 500, UserMessage: \"Wystąpił nieokreślony błąd - skontaktuj się z CDOK\"});\r\n }\r\n\r\n };\r\n\r\n\r\n const RegulationsList = USER_REGULATIONS?.map((REGULATION: any) =>\r\n {\r\n return (\r\n \r\n {e.preventDefault(); GET_REGULATION_FILE_HANDLER(REGULATION.RegulationId)}}>\r\n {REGULATION.Name}\r\n \r\n \r\n );\r\n }\r\n ) || null;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {!!USER_REGULATIONS_ERROR && }\r\n\r\n {!!USER_REGULATIONS && USER_REGULATIONS?.length < 1 ?\r\n \r\n {`Brak regulaminów`}\r\n \r\n :\r\n RegulationsList\r\n }\r\n\r\n \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsRegulationsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport SettingsContactPageComponent from \"@UIPages/Authenticated/Settings/Information/Contact\";\r\nimport SettingsRegulationsPageComponent from \"@UIPages/Authenticated/Settings/Information/Regulations\";\r\n\r\n\r\ntype SettingsPageInformationViewProps = {};\r\n\r\n\r\nexport const SettingsPageInformationViewComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return null;\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const SETTINGS_PAGE_URLS = ROUTER.AUTHENTICATED.SETTINGS;\r\n\r\n const {\r\n MAIN_PAGE,\r\n SETTINGS_REGULATIONS_PAGE,\r\n SETTINGS_CONTACT_PAGE\r\n } = SETTINGS_PAGE_URLS;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsPageInformationViewComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useEffect, useRef, useState} from \"react\";\r\nimport parse from 'html-react-parser';\r\nimport {useDispatch} from \"react-redux\";\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport $ from \"jquery\";\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\nimport USER_INTERFACE from \"@Services/Application/Interfaces/Users/User\";\r\nimport {HTTP_ERROR_RESPONSE_INTERFACE} from \"@Services/Interfaces/Http/Response/Error\";\r\nimport {ERROR_SYSTEM_MESSAGE_INTERFACE} from \"@Services/Application/Interfaces/_Messages/Errors\";\r\n\r\nimport DEFAULT_REQUEST_HEADERS from \"@Services/Interfaces/Http/Request/Headers\";\r\n\r\n\r\nimport {Redirect, NavLink} from \"react-router-dom\";\r\n\r\n\r\nimport ErrorMessageComponent from \"@Components/UI/Communicates/Messages/Error\";\r\n\r\n\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport {Col, Row} from \"react-bootstrap\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\nimport ENV from \"react-dotenv\";\r\n\r\ntype AboutPageProps = {};\r\n\r\nexport const SettingsAboutPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n /** @const {UserInterface | null} Application Logged User (from Global Store Object) */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state): ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {ENV?.APP_TITLE}
    \r\n {\"Wersja 0.0.1.3\"}\r\n \r\n
    \r\n \r\n\r\n
    \r\n );\r\n\r\n}\r\n\r\n\r\nexport default SettingsAboutPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport SettingsPageHomeViewComponent from \"@UIPages/Authenticated/Settings/Home\";\r\nimport SettingsPageUserViewComponent from \"@UIPages/Authenticated/Settings/User\";\r\nimport SettingsPageFavoriteViewComponent from \"@UIPages/Authenticated/Settings/Favorite\";\r\nimport SettingsPageAccountViewComponent from \"@UIPages/Authenticated/Settings/Account\";\r\nimport SettingsPageInformationViewComponent from \"@UIPages/Authenticated/Settings/Information\";\r\nimport SettingsAboutPageComponent from \"@UIPages/Authenticated/Settings/About\";\r\n\r\n\r\ntype SettingsPageComponentProps = {};\r\n\r\n\r\nexport const SettingsPageComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const SETTINGS_MAIN_PAGE_URL = ROUTER.AUTHENTICATED.SETTINGS.MAIN_PAGE.URL;\r\n const SETTINGS_USER_PAGE_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_USER_PAGE.URL;\r\n const SETTINGS_FAVORITE_PAGE_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_MY_FAVORITE_PAGE.URL;\r\n const SETTINGS_ACCOUNT_PAGE_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_ACCOUNT_PAGE.URL;\r\n const SETTINGS_INFORMATION_PAGE_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_INFORMATION_PAGE.URL;\r\n const SETTINGS_ABOUT_PAGE_URL = ROUTER.AUTHENTICATED.SETTINGS.SETTINGS_ABOUT_PAGE.URL;\r\n\r\n\r\n return (\r\n \r\n\r\n {!!SETTINGS_MAIN_PAGE_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n {!!SETTINGS_USER_PAGE_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n {!!SETTINGS_FAVORITE_PAGE_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n {!!SETTINGS_ACCOUNT_PAGE_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n {!!SETTINGS_INFORMATION_PAGE_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n {!!SETTINGS_ABOUT_PAGE_URL &&\r\n\t \r\n \r\n }\r\n\t />\r\n }\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default SettingsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect, useRef} from \"react\";\r\nimport BlockContentHeaderComponent from \"@Components/UI/Containers/Block/Header\";\r\nimport BlockContentContainerComponent from \"@Components/UI/Containers/Block\";\r\nimport {Col, Row} from \"react-bootstrap\";\r\nimport {NavLink} from \"react-router-dom\";\r\n\r\n\r\ntype NotificationsListPageProps = {\r\n NOTIFICATIONS: any;\r\n};\r\n\r\n\r\nexport const NotificationsListPageComponent: React.FC = ({\r\n NOTIFICATIONS = []\r\n}): JSX.Element | null => {\r\n\r\n\r\n /** @const {React.Ref} My Favourite Terminals Page Container DOM Ref */\r\n const COMPONENT_REF: React.Ref = useRef(null);\r\n\r\n\r\n if (!NOTIFICATIONS) return null\r\n\r\n\r\n const NotificationsList = NOTIFICATIONS.map((NOTIFICATION: any, i: number) => {\r\n if (!NOTIFICATION.Caption && !NOTIFICATION.Text) return null;\r\n return (\r\n \r\n e.preventDefault()} className={\"notifications-list-notification-content\"}>\r\n {!!NOTIFICATION.Caption &&\r\n\t \r\n\t\t {NOTIFICATION.Caption}\r\n\t \r\n }\r\n {!!NOTIFICATION.Text &&\r\n\t \r\n\t\t {NOTIFICATION.Text}\r\n\t \r\n }\r\n \r\n \r\n );\r\n });\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {NOTIFICATIONS.length < 1 ?\r\n \r\n {`Brak powiadomień`}\r\n \r\n :\r\n NotificationsList\r\n }\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default NotificationsListPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext} from \"react\";\r\n\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\nimport {Switch, Route, Redirect} from \"react-router-dom\";\r\n\r\n\r\nimport NotificationsListPageComponent from \"@UIPages/Authenticated/Notifications/NotificationsList\";\r\n\r\n\r\ntype NotificationsPageProps = {\r\n NOTIFICATIONS: any;\r\n};\r\n\r\n\r\nexport const NotificationsPageComponent: React.FC = ({\r\n NOTIFICATIONS = []\r\n}): JSX.Element | null => {\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n if (!LOGGED_USER || !LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const MESSAGES_LIST_URL = ROUTER.AUTHENTICATED.MESSAGES.MESSAGES_LIST.URL;\r\n const MESSAGE_URL = ROUTER.AUTHENTICATED.MESSAGES.MESSAGE.URL;\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n null\r\n }\r\n />\r\n\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default NotificationsPageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\nimport React, {useContext, useState, useEffect} from \"react\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport CHANGE_API_REQUEST_STATUS_ACTION from \"@Actions/Interface/ChangeApiRequestStatus\";\r\nimport CHANGE_API_REQUEST_TOKEN_ACTION from \"@Actions/Api/ChangeApiRequestTokenValue\";\r\n\r\n\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n\r\n\r\nimport ApplicationApiContext from \"@Contexts/Api\";\r\n\r\n\r\nimport {Redirect, Route, Switch} from \"react-router-dom\";\r\n\r\n\r\nimport ApplicationHeaderComponent from \"@UIParts/Header\";\r\nimport ApplicationNotificationsComponent from \"@UIParts/Notifications\";\r\nimport ApplicationBottomBarComponent from \"@UIParts/BarBottom\";\r\n\r\n\r\nimport HomePageComponent from \"@UIPages/Authenticated/HomePage\";\r\nimport MonitoryNotesPageComponent from \"@UIPages/Authenticated/MonitoryNotes\";\r\nimport DispositionsPageComponent from \"@UIPages/Authenticated/Dispositions\";\r\nimport TerminalsPageComponent from \"@UIPages/Authenticated/Terminals\";\r\nimport SettingsPageComponent from \"@UIPages/Authenticated/Settings\";\r\n\r\nimport NotificationsPageComponent from \"@UIPages/Authenticated/Notifications\";\r\n\r\n\r\nimport HTTP_ERROR_RESPONSE_INTERFACE from \"@Services/Interfaces/Http/Response/Error\";\r\n\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\nimport AUTHORIZATION_TOKEN_INTERFACE from \"@Reducers/Api/RequestToken\";\r\n\r\nimport NOTIFICATION_INTERFACE from \"@Services/Application/Interfaces/Notifications/Notification\";\r\n\r\n\r\nimport REST_API_REQUEST from \"@Services/Utilities/Requests\";\r\n\r\nimport prepareRestApiRequestToken from \"@Services/Utilities/RequestToken/Prepare\";\r\n\r\n\r\ntype AuthenticatedUserComponentProps = {};\r\n\r\n\r\nexport const AuthenticatedUserComponent: React.FC = (): JSX.Element | null => {\r\n\r\n\r\n /** @const Global State Actions Dispatcher */\r\n const DISPATCHER = useDispatch();\r\n\r\n\r\n const LOGGED_USER: LOGGED_USER_INTERFACE = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /** const ROUTER {APPLICATION_ROUTER_INTERFACE} - Application Router Data Object */\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n\r\n /** @const REST_API_URL {string} - Global Rest Api Root URL Address */\r\n const REST_API_URL = useContext(ApplicationApiContext)?.API_ROOT_URL || null;\r\n\r\n\r\n /** @const REST_API_DATA {object} - Application State Store Rest Api Data */\r\n const REST_API_DATA:ReturnType = useTypedSelector(\r\n (state) => state.api\r\n );\r\n\r\n /** @const REST_API_REQUEST_TOKEN {AUTHORIZATION_TOKEN_INTERFACE} - Application Rest Api Request Token */\r\n const REST_API_REQUEST_TOKEN: AUTHORIZATION_TOKEN_INTERFACE = REST_API_DATA?.requestToken || null;\r\n\r\n\r\n const [USER_NOTIFICATIONS, SET_USER_NOTIFICATIONS] = useState([]);\r\n\r\n useEffect(() => {\r\n\r\n const NOTIFICATIONS_API_URL = `${REST_API_URL}/App/Notification/List`;\r\n\r\n const NOTIFICATIONS_REQUEST_DATA: any = {UserId: LOGGED_USER?.userID};\r\n\r\n /* Rest API User Notifications Request Handler */\r\n const GET_USER_NOTIFICATIONS = async (): Promise => {\r\n\r\n /* Create REST API Request */\r\n try {\r\n\r\n /* User Notifications API Request */\r\n const NOTIFICATIONS_RESPONSE = await REST_API_REQUEST(\r\n NOTIFICATIONS_API_URL, // API Request Endpoint URL\r\n NOTIFICATIONS_REQUEST_DATA, // API Request Data\r\n REST_API_REQUEST_TOKEN // API Request Actual AUTH TOKEN\r\n );\r\n\r\n /* Check Response Status */\r\n if (NOTIFICATIONS_RESPONSE.status === 200) { // Response OK\r\n /* Read Response Body */\r\n const NOTIFICATIONS_RESPONSE_TEXT: string = await NOTIFICATIONS_RESPONSE.text(); // Response Text\r\n /* Check if Response Body is not empty */\r\n if (NOTIFICATIONS_RESPONSE_TEXT.trim()) { // Response Body is not empty\r\n /* Parse Response Text */\r\n const NOTIFICATIONS: NOTIFICATION_INTERFACE[] = JSON.parse(NOTIFICATIONS_RESPONSE_TEXT)?.Notifications;\r\n /* Remove Empty Notifications */\r\n const NOTIFICATIONS_LIST = NOTIFICATIONS?.filter( // Filter Notifications\r\n ((NOTIFICATION: any) => !!NOTIFICATION.Caption || !!NOTIFICATION.Text) // Remove Notifications without Data\r\n )\r\n /* Update Component State */\r\n SET_USER_NOTIFICATIONS(NOTIFICATIONS_LIST); // Set Notifications List\r\n }\r\n } else { // Defined Response Error\r\n if (NOTIFICATIONS_RESPONSE.status === 409) {\r\n /* Parse Error Response Content */\r\n const ERROR_RESPONSE_CONTENT: HTTP_ERROR_RESPONSE_INTERFACE = await NOTIFICATIONS_RESPONSE.json();\r\n /* Report Response Error */\r\n console.log(NOTIFICATIONS_RESPONSE.status, ERROR_RESPONSE_CONTENT.UserMessage);\r\n }\r\n }\r\n\r\n } catch (e) { // REST API Request Error\r\n /* Report Request Error */\r\n console.log(e);\r\n }\r\n\r\n };\r\n\r\n /* Trigger API Notifications List Request */\r\n GET_USER_NOTIFICATIONS(); // Run Async API Request\r\n\r\n return () => {\r\n SET_USER_NOTIFICATIONS([])\r\n };\r\n\r\n }, []);\r\n\r\n\r\n if (!LOGGED_USER?.userID) return ;\r\n\r\n\r\n if (!ROUTER) return ;\r\n\r\n\r\n const LOGIN_PAGE_URL: string = ROUTER.NOT_AUTHENTICATED.LOGIN.URL;\r\n const HOME_PAGE_URL: string = ROUTER.AUTHENTICATED.HOME.URL;\r\n\r\n const MONITORY_NOTES_URL: string = ROUTER.AUTHENTICATED.MONITORY_NOTES.MONITORY_NOTES_LIST.URL;\r\n const DISPOSITIONS_URL: string = ROUTER.AUTHENTICATED.DISPOSITIONS.DISPOSITIONS_TERMINALS_LIST.URL;\r\n const TERMINALS_URL: string = ROUTER.AUTHENTICATED.PETROL_BASES.PETROL_BASES_LIST.URL;\r\n const SETTINGS_PAGE_URL: string = ROUTER.AUTHENTICATED.SETTINGS.MAIN_PAGE.URL;\r\n\r\n const NOTIFICATIONS_PAGE_URL: string = ROUTER.AUTHENTICATED.MESSAGES.MESSAGES.URL;\r\n\r\n\r\n return (\r\n <>\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n }\r\n />\r\n\r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default AuthenticatedUserComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n\r\n/** Import Main React Library Object, with Hooks */\r\nimport React, {useContext} from \"react\";\r\n\r\n/** Import Redux Hook - Getter for Data from Application State Store Object */\r\nimport {useTypedSelector} from \"@Services/Hooks/UseTypedSelector\";\r\n\r\n/** Import Router Context - Routes URLs List */\r\nimport ApplicationRouterContext from \"@Contexts/Router\";\r\n/** Import Router Interface - Router Object Type */\r\nimport APPLICATION_ROUTER_INTERFACE from \"@ROUTER/Interfaces/Router\";\r\n\r\n/** Import User Interface - Logged User Object Type */\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\n/** Import Router Modules - Application Routing System */\r\nimport {Route} from \"react-router-dom\";\r\n\r\n\r\n/** Import Component Children Components */\r\nimport NotAuthenticatedUserComponent from \"@UIPages/NotAuthenticated\"; // Not Authenticated User Component (Login, Register, etc...)\r\nimport AuthenticatedUserComponent from \"@UIPages/Authenticated\"; // Authenticated User Component (Dispositions, Monitory Notes, etc...)\r\n\r\n\r\n/** @type ApplicationComponentProps - Props List for Application Main Content Component */\r\ntype ApplicationComponentProps = {};\r\n\r\n\r\n/**\r\n * @visibleName Application Main Content Component\r\n *\r\n * @return JSX.Element\r\n */\r\nexport const ApplicationComponent: React.FC = (): JSX.Element => {\r\n\r\n /** @const {UserInterface | null} LOGGED_USER - Application Global State Logged User Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE | null = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n /** @const {APPLICATION_ROUTER_INTERFACE} ROUTER - Application Global Routes List Object */\r\n const ROUTER: APPLICATION_ROUTER_INTERFACE = useContext(ApplicationRouterContext);\r\n\r\n /** @const {string} HOME_PAGE_URL - Router Home Page URL Address */\r\n const HOME_PAGE_URL: string = ROUTER?.COMMON?.HOME?.URL || \"/\";\r\n\r\n\r\n /**\r\n * @description render Component Content\r\n * @return JSX.Element\r\n */\r\n return (\r\n <>\r\n {/* Check if User is Logged (User object in / not in memory */}\r\n {!!LOGGED_USER && !!LOGGED_USER?.userID ?\r\n // User is Logged - Authenticated User Component\r\n } />\r\n :\r\n // User is not Logged - Not Authenticated User Component\r\n } />\r\n }\r\n \r\n );\r\n\r\n};\r\n\r\n\r\n/** @export {React.FC} Application - Application Main Content Component */\r\nexport default ApplicationComponent;\r\n","import ReactDOM from \"react-dom\";\r\nimport React from \"react\";\r\n\r\n\r\nimport {Row, Col, Button} from \"react-bootstrap\";\r\n\r\n\r\nimport {AiOutlineClose} from \"react-icons/all\";\r\n\r\n\r\ninterface ModalMessageComponentProps {\r\n type?: \"DEFAULT\" | \"SUCCESS\" | \"ERROR\";\r\n message: string;\r\n openStatus: boolean;\r\n closeHandler(): void;\r\n acceptHandler?(): void;\r\n declineHandler?(): void;\r\n}\r\n\r\n\r\nexport const ModalMessageComponent: React.FC = ({\r\n type = \"DEFAULT\",\r\n message,\r\n openStatus = false, closeHandler,\r\n acceptHandler, declineHandler\r\n}) : JSX.Element | null => {\r\n\r\n\r\n if (!message || !openStatus) return null;\r\n\r\n\r\n let cssClasses = \"modal-message modal-message-component\";\r\n\r\n\r\n switch (type) {\r\n case \"SUCCESS\":\r\n cssClasses += \" success-message\";\r\n break;\r\n case \"ERROR\":\r\n cssClasses += \" error-message\";\r\n }\r\n\r\n\r\n return (ReactDOM.createPortal(\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n {message}\r\n\r\n {(!!acceptHandler || !!declineHandler) &&\r\n\t \r\n {!!acceptHandler &&\r\n\t\t \r\n\t\t\t \r\n\t\t \r\n }\r\n\r\n {!!declineHandler &&\r\n\t\t \r\n\t\t\t \r\n\t\t \r\n }\r\n\t \r\n }\r\n\r\n \r\n\r\n \r\n \r\n ,document.body\r\n ));\r\n\r\n};\r\n\r\n\r\nexport default ModalMessageComponent;\r\n","/*\r\n Merrid Controls. Wszelkie prawa zastrzeżone.\r\n Plik zawiera kody Źródłowe będące własnością firmy Merrid Controls.\r\n Nie wolno ich rozpowszechniać w całości lub fragmentach bez wyraźnej zgody właściciela.\r\n*/\r\n\r\n/** Import ENVIRONMENTAL VARIABLES */\r\nimport ENV from \"react-dotenv\";\r\n\r\n/** Import Main React Library Object */\r\nimport React, {useEffect} from \"react\";\r\n\r\n/** Import Redux Hook - Getter for Data from Application State Store Object */\r\nimport useTypedSelector from \"@Services/Hooks/UseTypedSelector\";\r\n\r\nimport {useDispatch} from \"react-redux\";\r\n\r\nimport CHANGE_MODAL_MESSAGE_ACTION from \"@Actions/Interface/ChangeModalMessage\";\r\n\r\n\r\n/** Import Theme Context - Information for colors, etc... */\r\nimport ApplicationThemeContext, {APPLICATION_THEME_SETTINGS} from \"@Contexts/Theme\";\r\n/** Import Router Context - Routes URLs List */\r\nimport ApplicationRouterContext, {APPLICATION_ROUTER} from \"@Contexts/Router\";\r\n\r\n/** Import User Interface - Logged User Object Type */\r\nimport LOGGED_USER_INTERFACE from \"@Store/Interfaces/Authentication/User\";\r\n\r\n\r\n/** Import Helmet Module - Managing Head of the document (like title, etc...) */\r\nimport {Helmet} from \"react-helmet\";\r\n\r\n/** Import Router Module - HOC for Application Routing */\r\nimport {BrowserRouter as Router} from \"react-router-dom\";\r\n\r\n/** Import React Bootstrap Components */\r\nimport {Container} from \"react-bootstrap\";\r\n\r\n\r\n/** Import Component Children Components */\r\nimport RestApiRequestLoaderComponent from \"@Components/UI/Loaders/ApiRequest\"; // REST API Request Loader COmponent\r\n\r\nimport ApplicationComponent from \"@Components\";\r\nimport ModalMessageComponent from \"@Components/UI/Modals/Message/Default\";\r\n\r\n\r\n/** @type ApplicationProps - Props List for Main Application Component */\r\ntype ApplicationProps = {};\r\n\r\n\r\n/**\r\n * @visibleName Main Application High Order Component\r\n *\r\n * @return JSX.Element\r\n */\r\nexport const Application: React.FC = (): JSX.Element => {\r\n\r\n const DISPATCHER = useDispatch();\r\n\r\n /** @const {object} INTERFACE_DATA - Application State Store Interface Data */\r\n const INTERFACE_DATA:ReturnType = useTypedSelector(\r\n (state) => state.interface\r\n );\r\n\r\n /** @const {boolean} REST_API_REQUEST_STATUS - Application Global State Rest Api Request Status */\r\n const REST_API_REQUEST_STATUS: boolean = INTERFACE_DATA?.apiRequestStatus || false;\r\n\r\n const MODAL_MESSAGE = INTERFACE_DATA?.modalMessage || null;\r\n\r\n /** @const {UserInterface | null} LOGGED_USER - Application Global State Logged User Object */\r\n const LOGGED_USER: LOGGED_USER_INTERFACE | null = useTypedSelector(\r\n (state):ReturnType => state?.authentication\r\n )?.loggedUser || null;\r\n\r\n\r\n /**\r\n * @description render Component Content\r\n * @return JSX.Element\r\n */\r\n return (\r\n // Theme Context - HOC for Theme Data\r\n \r\n {/* Router Context - HOC for Routes URLs List */}\r\n \r\n {/* React Router DOM Component - Application Routing System */}\r\n \r\n\r\n {/* Helmet Module Component - Set Document Title */}\r\n \r\n {ENV?.APP_TITLE || \"\"}\r\n \r\n {/* /Helmet Module Component - Set Document Title */}\r\n\r\n {!!MODAL_MESSAGE &&\r\n\t DISPATCHER(CHANGE_MODAL_MESSAGE_ACTION(null))}\r\n acceptHandler={MODAL_MESSAGE.acceptHandler} declineHandler={MODAL_MESSAGE.declineHandler}\r\n\t />\r\n }\r\n\r\n {/* REST API REQUEST LOADER COMPONENT */}\r\n {!!REST_API_REQUEST_STATUS && }\r\n {/* /REST API REQUEST LOADER COMPONENT */}\r\n\r\n {/* Main Application DOM Container Element */}\r\n \r\n {/* Application Main Content Component */}\r\n \r\n \r\n {/* /Main Application DOM Container Element */}\r\n\r\n \r\n {/* /React Router DOM Component - Application Routing System */}\r\n \r\n {/* /Router Context - HOC for Routes URLs List */}\r\n \r\n // Theme Context - HOC for Theme Data\r\n );\r\n\r\n};\r\n\r\n\r\n/** @export {React.FC} Application - Main HO Application Component */\r\nexport default Application;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport {Provider as StoreProvider} from \"react-redux\";\r\n\r\n\r\nimport ApplicationApiContext, {APPLICATION_API_DATA} from \"@Contexts/Api\";\r\n\r\n\r\nimport ApplicationStore from \"@Store\";\r\n\r\n\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\n\r\nimport Application from \"./Application\";\r\n\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n\r\nreportWebVitals();\r\n"],"sourceRoot":""}