{"version":3,"sources":["pages/Worksheet/Worksheet.module.scss","pages/Terminal/Terminal.module.scss","pages/Requests/Requests.module.scss","pages/Dashboard/Dashboard.module.scss","components/NewRequestDialog/NewRequestDialog.module.scss","pages/PersonalCard/PersonalCard.module.css","pages/Dashboard/InfoPanel.module.scss","pages/ReportViewer/ReportViewer.module.scss","components/CenterPicker.module.scss","pages/Presence/Presence.module.scss","pages/PlanState/PlanState.module.scss","components/PageLayout/PageLayout.module.scss","pages/Dashboard/SettingsDialog.module.scss","components/MonthPicker/MonthPicker.module.scss","components/NavBar/NavBar.module.scss","pages/Plan/Department/DepartmentPlan.module.scss","pages/LastPasses/LastPasses.module.scss","components/Timeline/Timeline.module.scss","pages/Plan/shared/Accounts.module.scss","pages/Plan/My/MyPlan.module.scss","components/CategoriesPicker/CategoriesPicker.module.scss","components/AppHeader/AppHeader.module.css","pages/WorsksheetState/WorksheetState.module.scss","components/LanguageDropDown/LanguageDropDown.module.css","components/Timeline/headers/HoursHeader.module.scss","components/Timeline/headers/DayHeader.module.scss","components/Timeline/markers/VerticalLines.module.scss","components/NavbarMonthPicker/NavbarMonthPicker.module.scss","pages/Plan/shared/IntervalDetailDialog.module.scss","pages/Worksheet/PictureDialog.module.scss","pages/startup/SlimPageLayout.module.scss","pages/startup/LogInForm.module.scss","pages/PasswordChange/PasswordChange.module.scss","assets/images/flag_cz.gif","assets/images/flag_en.gif","assets/images/flag_sk.gif","pages/Dashboard/ChangePersonDialog.module.css","pages/Requests/RequestDetail.module.scss","components/Spinner/SpinnerBox.module.scss","components/ErrorNotification.module.scss","assets/images/avatar-140.jpg","components/Timeline/cells/SidebarCell.module.scss","components/Timeline/cells/ContentCell.module.scss","components/Timeline/stacking/Stack.module.scss","components/Timeline/positioning/GridPositioner.module.scss","components/Timeline/cells/CornerCell.module.scss","components/Timeline/cells/ColumnCell.module.scss","pages/Plan/My/SigningDialog.module.scss","pages/Plan/My/ChangeRequestDialog.module.scss","pages/Unavailability/Unavailability.module.scss","pages/Unavailability/UnavailabilityDetail.module.scss","assets/images/cspic_RazitkoPLKulate.png","assets/images/skpic_RazitkoPLKulate.png","assets/images/enpic_RazitkoPLKulate.png","pages/Worksheet/AttachmentsDialog.module.scss","pages/ReportViewer/template.html","pages/ReportViewer/templateChrome.html","components/NavbarDayPicker/NavbarDayPicker.module.scss","components/CenterPickerDialog.module.scss","assets/images/ANeT_Time_100x100.png","components/AppFooter/classes.module.scss","pages/startup/CustomerCodeForm.module.scss","components/debug/ErrorsButton.module.scss","pages/Help/Help.module.scss","pages/Overtime/Overtime.module.scss","extensions/Promise.ts","extensions/Date.ts","hooks/useAppSelector.ts","redux/selectors/selectStrings.ts","hooks/useStrings.ts","helpers/handleResponseError.ts","redux/actions/app.ts","components/PageLayout/PageLayout.tsx","components/NavBar/NavBar.tsx","pages/404.tsx","constants/languages.ts","constants/strings.ts","constants/languageStrings/strings.en.ts","constants/languageStrings/strings.cs.ts","constants/languageStrings/strings.sk.ts","localization/selectTranslations.ts","redux/slices/localization.ts","hooks/useAppDispatch.ts","components/LanguageDropDown/LanguageDropDown.tsx","redux/actions/dashboard.ts","redux/selectors/selectUserFullname.ts","redux/actions/substitutions.ts","hooks/usePermissions.ts","constants/permissions.ts","pages/Dashboard/SettingsDialog.tsx","redux/selectors/selectEndpoint.ts","pages/Dashboard/ChangePersonDialog.tsx","pages/Dashboard/formatMinutesAsHours.ts","pages/Dashboard/Balance.tsx","pages/Dashboard/Vacation.tsx","hooks/useFormatDate.ts","components/DateTimeFormatter.tsx","components/PermissionGuard.tsx","model/app/DelegatedAuthStyle.ts","redux/actions/userList.ts","model/errors/LoginError.ts","constants/common.ts","redux/middlewares/tokenPersistor.ts","redux/actions/user.ts","pages/Dashboard/InfoPanel.tsx","pages/Dashboard/Dashboard.tsx","redux/actions/localStorage/deleteSavedUser.ts","components/LogoutButton.tsx","model/wflReq.ts","redux/actions/wflStateChange.ts","utils/localization/LocalizationUtils.ts","pages/Requests/RequestDetail.tsx","redux/actions/absenceInsertion.ts","redux/actions/dropdowns/accounts.ts","components/AccountDropdown/AccountDropdown.tsx","components/NewRequestDialog/CustomCalendar.tsx","components/NewRequestDialog/CustomPopup.tsx","redux/actions/requestsForApproval.ts","components/PersonsForApprovalDropdown/PersonsForApprovalDropdown.tsx","redux/selectors/selectIxsRef.ts","components/NewRequestDialog/NewRequestDialog.tsx","redux/actions/myRequests.ts","components/Spinner/SpinnerBox.tsx","components/ErrorNotification.tsx","pages/Requests/MyRequests/MyRequests.tsx","pages/Requests/RequestsForApproval/RequestsForApproval.tsx","redux/actions/personalCard.ts","pages/PersonalCard/PersonalCard.tsx","components/Timeline/cells/SidebarCell.tsx","components/Timeline/utils.ts","components/Timeline/context/IntervalContextMenuHandlerContext.ts","components/Timeline/context/IntervalClickHandlerContext.ts","components/Timeline/context/GroupContext.ts","components/Timeline/intervals/Interval.tsx","components/Timeline/positioning/GridPositioner.tsx","model/Color.ts","components/Timeline/generators.ts","components/Timeline/positioning/AbsolutePositioner.tsx","components/Timeline/stacking/Stack.tsx","components/Timeline/context/StacksContext.ts","components/Timeline/cells/ContentCell.tsx","components/Timeline/utils/GridItem.tsx","components/Timeline/rows/GroupRow.tsx","components/Timeline/cells/CornerCell.tsx","components/Timeline/context/HoursMultiplierContext.ts","components/Timeline/headers/HoursHeader.tsx","components/Timeline/headers/DayHeader.tsx","components/Timeline/cells/ColumnCell.tsx","components/Timeline/headers/Header.tsx","components/Timeline/markers/VerticalLines.tsx","components/Timeline/Timeline.tsx","helpers/getHeaders.ts","helpers/getResponseJson.ts","redux/actions/plan/my.ts","pages/Plan/My/groups.ts","components/NavbarMonthPicker/NavbarMonthPicker.tsx","pages/Plan/shared/resolveAccounts.ts","pages/Plan/shared/deserialize.ts","pages/Plan/shared/resolveTitle.ts","pages/Plan/My/transformation.ts","pages/Plan/shared/IntervalDetailDialog.tsx","pages/Plan/shared/Accounts.tsx","pages/Plan/My/NowGroupMarker.tsx","redux/actions/plan/signing.ts","pages/Plan/My/SigningDialog.tsx","pages/Plan/My/DayCell.tsx","redux/actions/plan/changing.ts","pages/Plan/My/ChangeRequestDialog.tsx","components/WindowClickListener.tsx","hooks/useWindowClick.ts","pages/Plan/My/MyPlan.tsx","redux/actions/unavailability.ts","pages/Unavailability/UnavailabilityDetail.tsx","components/Pickers/TranslatedDatePicker.tsx","components/Pickers/TranslatedTimePicker.tsx","pages/Unavailability/NewUnavailability.tsx","pages/Unavailability/Unavailability.tsx","redux/actions/worksheet.ts","pages/Worksheet/PictureDialog.tsx","pages/Worksheet/AttachmentsDialog.tsx","pages/Worksheet/Worksheet.tsx","pages/testing/Timeline.tsx","redux/actions/reports.ts","components/MonthPicker/MonthPicker.tsx","constants/reports.ts","pages/ReportViewer/ReportViewer.tsx","pages/testing/Stack.tsx","constants/config.ts","utils/Analytics.ts","redux/actions/config.ts","components/NavbarDayPicker/NavbarDayPicker.tsx","redux/actions/plan/department.ts","pages/Plan/Department/transformation.ts","components/Timeline/markers/NowColumnMarker.tsx","pages/Plan/Department/parseDisplayMode.ts","pages/Plan/Department/SelectedCenterButton.tsx","redux/actions/localStorage/buildKey.ts","redux/actions/localStorage/setItem.ts","redux/actions/localStorage/getItem.ts","redux/actions/centerPicker.ts","redux/actions/dropdowns/categories.ts","components/CategoriesPicker/CategoriesPicker.tsx","components/CenterPicker.tsx","components/CenterPickerDialog.tsx","pages/Plan/Department/TooMuchPersonsWarning.tsx","pages/Plan/Department/SelectedCenterTooltip.tsx","pages/Plan/Department/DepartmentPlan.tsx","pages/startup/ConfigDownloading.tsx","components/AppHeader/AppHeader.tsx","components/AppFooter/AppFooter.tsx","pages/startup/SlimPageLayout.tsx","pages/startup/LogInForm.tsx","pages/startup/AuthErrorRenderer.tsx","pages/startup/CustomerCodeForm.tsx","pages/startup/AuthLayout.tsx","pages/startup/ServerChecking.tsx","pages/startup/LicenseGuard.tsx","pages/startup/StartUp.tsx","redux/actions/terminal.ts","pages/Terminal/Terminal.tsx","redux/actions/passesLoader.ts","constants/dates.ts","pages/LastPasses/LastPasses.tsx","redux/slices/errorsVisibility.ts","components/debug/ErrorsButton.tsx","redux/slices/errorsList.ts","components/debug/ErrorsDialog.tsx","components/debug/ErrorsManager.tsx","pages/WorsksheetState/WorksheetState.tsx","redux/actions/worksheetState.ts","components/TooMuchPersonNotification.tsx","model/LeftPanelParams.ts","redux/actions/presence.ts","pages/Presence/Presence.tsx","pages/Presence/PresenceDetail.tsx","pages/PlanState/PlanState.tsx","redux/actions/planState.ts","pages/PlanState/PlanStateDetail.tsx","redux/actions/passwordChange.ts","pages/PasswordChange/PasswordChange.tsx","utils/Timer.ts","pages/Help/Help.tsx","redux/actions/overtime.ts","pages/Overtime/Overtime.tsx","App.tsx","redux/selectors/selectLanguage.ts","redux/reducers/config.ts","redux/reducers/errors.ts","redux/reducers/user.ts","redux/reducers/myRequests.ts","redux/reducers/absenceInsertion.ts","redux/reducers/dashboard.ts","redux/reducers/requestsForApproval.ts","redux/reducers/wflStateChange.ts","redux/reducers/personalCard.ts","redux/reducers/worksheet.ts","redux/reducers/reports.ts","redux/reducers/unavailability.ts","redux/reducers/plan/my.ts","redux/reducers/plan/department.ts","redux/reducers/plan/signing.ts","redux/reducers/plan/changing.ts","redux/reducers/plan.ts","redux/reducers/dropdowns/accounts.ts","redux/reducers/dropdowns/dropdowns.ts","redux/reducers/terminal.ts","redux/reducers/passesLoader.ts","redux/reducers/centerPicker.ts","redux/reducers/passwordChange.ts","redux/reducers/worksheetState.ts","redux/reducers/presence.ts","redux/reducers/planState.ts","redux/reducers/dropdowns/categories.ts","redux/reducers/userList.ts","redux/middlewares/tokenRefresher.ts","redux/reducers/overtime.ts","redux/reducers/substitutions.ts","redux/reducers/session.ts","redux/reducers/app.ts","redux/actions/errors.ts","index.tsx","redux/middlewares/crashReporter.ts","redux/middlewares/rejectedAsyncActionsReporter.ts","redux/reducers/root.ts"],"names":["module","exports","Promise","wait","ms","result","res","setTimeout","Date","prototype","toISOStringIgnoringTZ","year","this","getFullYear","month","getMonth","toString","padStart","date","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","toJSON","withTime","time","getMilliseconds","getTimeOfDay","getTime","getStartOfDay","firstDayOfMonth","lastDayOfMonth","getEndOfDay","firstDayOfWeek","d","valueOf","setDate","getDay","lastDayOfWeek","addSeconds","addMinutes","addHours","addDays","days","undefined","addMonths","months","dt","Math","min","addYears","years","getTimeOfDayValue","getTimezoneOffset","getFullDateString","today","addTime","useAppSelector","selector","equalityFn","useSelector","selectStrings","state","localization","strings","useStrings","handleResponseError","response","a","ok","body","headers","get","startsWith","clone","json","text","extra","url","status","statusText","Array","from","entries","Error","JSON","stringify","fetchStartup","createAsyncThunk","arg","api","requestOptions","method","Accept","signal","fetch","getState","config","endpoint","resetNotification","createAction","setCustomerCode","checkLicense","Authorization","session","user","token","access_token","PageLayout","props","notificationVisible","s","app","errorResponse","successResponse","dispatch","useDispatch","useEffect","className","classes","layout","header","contentContainer","children","footer","onScrollPrevious","previousButton","icon","disabled","canScrollPrevious","onClick","onScrollNext","nextButton","canScrollNext","notificationTop","direction","type","style","closable","onClose","responses","NavBar","tokenFetching","isAuthenticating","dataFetching","dashboard","isFetching","history","useHistory","menu","items","every","i","id","push","content","common","Help","some","classNames","styles","toolbar","primary","canNavigateRoot","LinkButton","to","canNavigateBack","previousPage","heading","title","label","labelContent","textField","onItemClick","e","item","window","location","hash","substring","replaceAll","popupSettings","anchorAlign","horizontal","vertical","popupAlign","popupClass","popup","animate","display","alignItems","padding","ArrowBack","NotFoundPage","message","PageNotFound","PageNotFoundTitle","textAlign","languages","shortcut","code","iconSrc","enFlagSource","czFlagSource","skFlagSource","initialLanguage","en","AllCatsLabel","Category","Begin","Cancel","Center","Close","Confirm","Day","Delete","DeleteAll","End","ErrorNotification","ErrorNotificationClient","ErrorNotificationServer","For","Person","Change","Label","Language","NameNote","No","Approve","Deny","NoItems","OC","Save","Shortcut","Yes","continue","ConfigurationDownloading","LicenseChecking","ServerChecking","Msg_AppDisabledByLicense","Balance","BalanceError","VacationBalance","EmailForNotifications","Logout","ChangePerson","DepartmentPlan","FreeShifts","MyAccount","MyPlan","MyRequests","MyUnavailabilities","OnlineTerminal","MyWorksheet","Reports","RequestsToApprove","RequestsToApprovePlnunava","PersonalCard","PlansStates","Presence","WorkSheetStates","NotComputed","Days","Hours","Hours4","AdditionalVacation","AdditionalVacation2","Overtime","lastPasses","TitleLP","NoPasses","login","Username","Password","Remember","Login","LoginDialog","CustomerCode","CustomerCodeChange","login_error_user_not_registered","login_error_invalid_grant","login_error_invalid_grant_multitenant","login_error_locked_account","login_error_app_usage_not_allowed","login_error_user_expired","passwordChange","oldPassword","newPassword","newPasswordVerification","error_not_same","error_contains_username","error_contains_3_chars","error_contains_sequence","error_password_in_history","error_invalid_old_password","reports","ErrorSource","WorksheetTitle","Params","JustPlan","JustReality","Both","Month","MonthFrom","MonthTo","Extended","LoadReport","Codes","PrintChanges","ShowBreaks","ShowIntervals","ToDate","requests","Approved","ApprovedBy","CancelRequest","Canceled","Comment","CreatedReq","DaysUpTo4","DefaultAccount","ErrorRequiredNote","ErrorRequiredNoteUnava","Expired","ForPerson","FromDate","Fullday","IsWrongDayOrder","NewReq","NewRequest","NewRequestFor","NoData","NoAccounts","Pending","Reject","Rejected","RejectedElectronically","RejectedHand","RejectedBy","RemainingDay","RemainingDays","RemainingDaysUpTo4","RequestSingle","ReqForApproval","Search","ShowOnly","StateName","Type","SelectAll","ApproveSelected","RejectSelected","MassApprove","terminals","GPSText","ChoosePass","NotificationText","NotificationEnText","NotificationErrorText","Settings","TitleTerminals","NoPass","personalCard","EmploymentNumber","Phone","Profession","ValidFrom","ValidTo","LastPassage","unavailability","CreatedUnavailability","New","NewUnavailability","NoteComment","TimeFrom","TimeTo","Unavailability","Unavailabilities","worksheet","Absence","AccountDefName","ApprovedWS","BalanceNext","CalendarFund","ComputeTo","Confirmed","DaysWS","ErrorWS","Model","MonthAccounts","MyWorksheetTitle","NameWS","NoDataWorksheetNull","PassesWS","Period","ShiftsFund","Sign","Signature","SignTitle","SignatureNeededWarning","State_Approved","State_Confirmed","State_Open","State_SignedElectronically","State_SignedHandwritten","TransferPast","TransferNext","Worked","Attachments","NoAttachments","TakePicture","AttachmentName","AttachmentNote","NewAttachemnt","Upload","worksheetStates","TitleWSStates","AllChosen","OnlyApprovedWS","OnlyCreated","OnlyConfirmed","OnlySigned","OnlySignedHandwritten","OnlyUnSigned","planStates","Application","Checked","CheckedHand","Unchecked","Checkedby","ChangeFrom","ChangedBy","DateFrom","DateTo","DetailCheck","DetailRequest","NotPassed","OnlyNotPassed","OnlyChecked","OnlyCheckedHand","OnlyUnchecked","OnlyApprovedPS","OnlyApprovedPSHand","OnlyRejected","OnlyRejectedHand","Waiting","OnlyWaiting","PreferedKind","ApprovedState","ApprovedStateHand","TitlePS","plan","WasSubmittedBy","PlanWasChangedBy","Legend","DetailPlan","RequestDetail","PlanChange","ApprovalOfPlanChanges","AcquaintanceWithPlan","Msg_ConfirmAcquaintWithYourPlanPlease","Msg_ApprovePlanChanges","PlanName","N3Days","Week","Msg_TooMuchPersons","OutsideOfWorkplace","Recalculate","NotPublished","ContainsUnpublished","presence","DetailPresence","AllPersons","Present","OnlyInconsistent","OnlyNotPresent","OnlyPresent","OnlyWithShift","LastPassName","LastPassTime","MaxCount","ShiftName","Absent","Unknown","TerminalPres","TitlePresence","overtime","Title","DialogTitle","Note","From","To","Account","debug","ErrorsMany","ShowError","Msg_ClickForCopyDetailsIntoClipboard","Msg_DetailsSuccessfullyCopiedIntoClipboard","centerPicker","NotSelected","NoSubcenters","IncludingSubcenters","over_limit","attachment_upload_success","attachment_upload_error","date_reserved_unava","license_error","actions","DepartmentPlanSelfServiceApp_RunApp","MyPlanSelfServiceApp_RunApp","MyRequestsSelfServiceApp_RunApp","MyUnavailabilitiesSelfServiceApp_RunApp","MyWSSelfServiceApp_RunApp","OvertimeSelfServiceApp_RunApp","PlanStatesSelfServiceApp_RunApp","PresenceSelfServiceApp_RunApp","ReportsSelfServiceApp_RunApp","RequestsApprovalSelfServiceApp_RunApp","TerminalSelfServiceApp_RunApp","UnavasApprovalSelfServiceApp_RunApp","WorksheetStatesSelfServiceApp_RunApp","substitutions","Substitution","Add","Edit","Undo","cs","sk","selectTranslations","language","createClearCopyRecursively","section","dolly","field","Object","hasOwnProperty","call","element","localizationSlice","createSlice","name","initialState","reducers","init","reducer","action","payload","prepare","browserLangIsoCode","navigator","find","l","set","useAppDispatch","LanguageDropDown","renderRow","lang","row","src","alt","width","height","data","slice","defaultValue","dataItemKey","itemRender","li","dataItem","React","cloneElement","valueRender","span","onChange","value","fetchDashboardData","selectUserFullname","actual","userList","users","ixs_ref","selectedIxsRef","fullname","firstname","givenName","lastname","surname","degBef","degreeBefore","degAft","degreeAfter","pn","personalNumber","order","orderOfEmployment","replace","fetchSubstitutions","Headers","append","editSubstitution","createSubstitution","toggleSubstitution","usePermissions","invis","userInvisibleActions","disab","userDisabledActions","concat","permissions","run","absence","check","approve","reqNote","enable","showDetails","showContacts","showReason","rejectNote","gps","edit","attachments","sign","balance","vacation","addVacation","addVacation2","Substitutions","SettingsDialog","useState","substitutionsAllowed","substitutionsEnabled","substitionsEnabled","normalUser","sidSubst","closeIcon","FullName","EmailInput","locale","Item1","Item2","substitution","filter","f","deleted","new","edited","r","textPerson","email","emailForNotifications","anyPeopleForSubst","people","length","loading","dialogVisible","setDialogVisible","subst","setSubst","paramRow","look","List","map","sub","ListItem","key","dense","textDecoration","ListItemText","secondary","start","toLocaleDateString","end","ListItemSecondaryAction","IconButton","edge","Clear","SubstitutionDialog","newSubst","setFilter","setStart","setEnd","ixsref","person","setPerson","uncheckedActions","setUncheckedActions","mappedActions","desc","sort","b","localeCompare","normalize","str","toLocaleUpperCase","flexDirection","filterable","onFilterChange","includes","ChangePersonDialog","persons","flexGrow1","Component","connect","formatMinutesAsHours","abs","trunc","mins","isComputed","hasError","Vacation","parts","nameEN","nameCZ","nameSK","defaultName","toLocaleLowerCase","join","useFormatDate","format","kendoFormatDate","DateTimeFormatter","formatDate","PermissionGuard","isInvisible","p","permission","DelegatedAuthStyle","fetchSelectedUserTicket","poradi","idZast","fetchUserList","LoginError","_code","LOCALSTORAGE_CUSTOMERCODE","KEY_REFRESH_TOKEN","fetchToken","refreshToken","credentials","username","encodeURIComponent","password","ticket","multiTenant","customerCode","handleResponse","clearError","logout","redirectToDelegatedAuth","document","cookie","href","encodeURI","redirectToDelegatedLogout","requireRunAppPermission","normalizeToken","error","error_description","split","userRoles","EDialog","selectedIxsref","panel","info","gutterBottom","flex","fontFamily","fontSize","target","id_zast","then","str_text","lastPassage","deleteSavedUser","localStorage","setItem","BASE_KEY","LogoutButton","Dashboard","abortable","handleMenuItemClick","setState","visibleDialog","console","warn","handleSettingsDialogClose","None","handleChangePersonDialogClose","createMenuItems","onFetchData","abort","grid","col1","col2","buttonsContainer","checkAllowed","changeAllowed","MyPlanBadge","MyWorksheetBadge","visibleButtons","myRequests","MyRequestsBadge","MyRequestsPlnunavaBadge","RequestsForOvertimeBadge","requestsForApproval","RequestsForApprovalBadge","plnunavaForApproval","RequestsForApprovalPlnunavaBadge","ReactDOM","createPortal","Fragment","isApprovable","isApprover","isApproverPlnunava","BaseBadge","Badge","color","badge","overlap","badgeContent","count","isLoading","countCheck","requestsCounts","planCheck","countApprove","planApprove","isCheckAllowed","isChangeAllowed","wsRequests","worksheetRequestCount","my","myPlnunava","forApproval","forApprovalPlnunava","RequestsAgend","wflChangeState","reqBody","rejectWithValue","wflChangeStateMultiple","formatString","string","remainingDaysString","StateResolver","readOnly","created","approved","rejected","IconResolver","ApproverInfoResolver","Approver","DateModified","reqiredNote","event","note","comment","queryParam","Value","ID","Value2","Value3","reqNotePerm","onStateChange","dialogTitle","State","Applicant","ReqText","Created","getRemainingDays","RemainingDaysFloor","valid","cancel","onChangeState","insertAbsencesToMultipleDates","objectID","Requests","createIPOABSes","createPLNUNAVA","args","unava","IXS_REF","userID","DATE_REF","dayOfBegin","STARTTIME","timeOfBegin","ENDTIME","timeOfEnd","DATE_CREATE","NOTE","dayOfEnd","absences","isAllDay","begin","day","ID_UCET","accountID","ABS","accountABS","DATUM","CAS_OD","CAS_DO","isOverMidnight","fetchAccounts","account","NAZEV","ZKRATKA","strav","STRAV","workflow","WORKFLOW","AccountDropdown","dropdowns","accounts","onSelect","selectedAccount","onlyHolidayAccounts","onlyWorkflowAccounts","CustomCalendar","navigation","clientWidth","CustomPopup","collision","fetchRequestsForApprovalDatasource","IncludeChildren","SelectedIxsStr","SelectedTab","Sort","BoolValue","CurrentAgenda","fetchIporefsForWFL","isRequest","iporef","OcFullName","fetchIporefsForWFLWithFilter","PersonsForApprovalDropdown","isFilterEnabled","datasource","onFilterRemote","filteredData","onLoadNewSubset","change","onSelectIxsref","isDatasourceFetching","isFetchingFilter","handleChange","personsForApproval","fetching","personsForApprovalWithFilter","selectIxsRef","sid","selectAuthIxsRef","position","top","left","transform","NewRequestDialog","handleDayOfBeginChange","nativeEvent","MouseEvent","checkCorrectDateOrder","handleTimeOfBeginChange","handleDayOfEndChange","dayBegin","dayEnd","isWrongDayOrder","handleTimeOfEndChange","handleSaveButtonClick","onSave","Unavalabilities","userId","canceled","saved","isCommentEmpty","handleIsAllDayChange","handlePersonSelect","handleAccountSelect","tomorrow","defaults","steps","minute","dateTo","autoFocus","isSaving","z","canSelectPerson","dropdownList","onlyWorkflow","checkboxRow","checked","pickingRow","calendar","absenceInsertion","inserting","unwrapResult","fetchMyRequestsDatasource","IsActual","IsRequests","SpinnerBox","container","stretchToWindow","size","marginBottom","err","parse","notification","expandMode","getErrorTitle","expanded","wordBreak","ErrorNotificationText","handleOnlyPendingChange","onlyPending","onDatasourceFetch","handleDetailRequestDialogClose","dialog","detail","newRequest","htmlFor","isChecked","getItem","dataSource","ipo","detailData","Text","separator","indexOf","substr","lastIndexOf","rows","openNewRequestDialog","noData","divider","button","openDetailDialog","accountName","getAccountText","getFromTo","RequestsForApproval","checkedReqs","selectionMode","searchText","isAbsenceApprover","isEverythingselected","isNothingSelected","multiDialogVisible","multiStatus","prevProps","prevState","snapshot","reqId","Number","match","params","req","m","navBarElementIn","navBarElementOut","iconClass","searchBar","placeholder","searchData","footerIn","footerOut","footerCount","getChechboxIconClass","toggleSelection","flexGrow","changePending","disableGutters","onContextMenu","preventDefault","ListItemIcon","checkboxIn","checkboxHidden","checkboxOut","checkbox","noWrapText","reqs","Expdate","onSetStateMultiple","fetchPersonalCardData","Loading","ErrorGuard","Content","avatar","avatarSource","defaultAvatarSource","phone","centerName","profession","colL","validFrom","colR","validTo","lastPassageTime","SidebarCell","cell","gridRowStart","rowIndex","gridRowEnd","gridColumnStart","gridColumnEnd","contentRenderer","group","time2minutes","time2seconds","IntervalContextMenuHandlerContext","createContext","IntervalClickHandlerContext","GroupContext","Interval","handleClick","useContext","handleContextMenu","interval","overflowX","whiteSpace","border","cursor","margin","GridPositioner","beginPerct","beginTime","endPerct","endTime","positioner","paddingLeft","paddingRight","zIndex","layer","Color","_parts","red","green","blue","alpha","floor","random","pbColor","generateRandomIntervals","intervals","generateRandomInterval","stackID","uuidv4","hour","backgroundColor","toCSSRGBA","char","generateGroups","groups","weekday","AbsolutePositioner","beginPos","stackWidth","computePosition","dummy","visibility","Stack","ref","createRef","handleResize","current","addEventListener","removeEventListener","stack","intr","StacksContext","ContentCell","stacks","columnIndex","visibleIfEmpty","GridItem","column","overflow","GroupRow","sidebarCellContentRenderer","columns","col","index","cellMarker","cellMarkerRenderer","beginDay","endDay","CornerCell","HoursMultiplierContext","HoursHeader","multiplier","DayHeader","Intl","DateTimeFormat","textAlignCenter","ColumnCell","dayHeaderContentRenderer","Header","cornerCellContentRenderer","VerticalLines","sections","useMemo","empty","defaultStacks","Timeline","hoursMultiplier","Provider","onIntervalClick","onIntervalContextMenu","gridTemplateColumns","sidebarColumnWidth","gridTemplateRows","groupSidebarCellContentRenderer","virtualized","recalculatedIDs","fetchedIDs","intervalsNotRecalculated","intervalsFetching","columnMarker","columnMarkerRenderer","STATIC_ROWS_COUNT","verticalLinesCount","getHeaders","GetResponseJson","adress","options","DATA_ADDRESS","fetchMyPlanData","fetchMyPlanDataPrevious","fetchMyPlanDataNext","scrollMyPlanPrevious","scrollMyPlanNext","resetMyPlanData","fetchOldestMonthWithMyPlanRequest","serializedDate","lastDay","moment","endOf","currentDate","startOf","add","loadMessages","csMessages","isOpen","setIsOpen","selectedMonth","toLocaleString","bottomView","topView","onPick","resolveAccounts","intrs","legends","forEach","trim","fromPbColor","deserialize","resolveTitle","transformDataForTimeline","base","toDate","second","background","borderColor","parent","intervalLen","diff","firstDay","borderRight","currentDay","borderLeft","flat","IntervalDetailDialog","owner","outsideOfWorkplace","Accounts","table","acc","colorCell","NowGroupMarker","SECONDS_PER_PERCENT","intervalID","render","now","percent","marginLeft","setInterval","timeout","clearInterval","confirmSignRequests","APP_VERSION_MAJOR","SigningDialog","isSigning","signing","currentPage","signingRequests","customizableText","customizableTexts","reduce","prev","curr","fullname_zadal","datum_zadal","ids","onSigned","DayCell","numDay","strDay","isHoliday","page","publicHolidays","dayInWeek","isBold","signedDays","isSigned","signableDays","isSignable","changeableDays","isChangeable","fontWeight","updateChangeRequests","Item3","ChangeRequestDialog","isUpdating","changing","changeRequests","updateRequest","onUpdated","WindowClickListener","VirtualizeSwipeableViews","virtualize","SwipeableViews","signNotifTimeoutID","approveNotifTimeoutID","scrollableRef","isNewRequestVisible","unshift","isNewRequestDisabled","createContextMenuItems","contextMenu","isNewRequestItemVisible","handleMonthChange","onResetMyPlanData","handleNewRequestDialogClose","handleTimelineItemClick","IntervalDetail","lastClickedInterval","handleTimelineItemContextMenu","shift","visible","offset","clientX","clientY","handleContextMenuSelect","handleWindowClick","handleDetailDialogClose","handleSigningDialogClose","handleSigningDialogSigned","isSigningWarningVisible","promise","handleChangeRequestDialogUpdated","handleSigningWarningClose","handleApprovingingWarningClose","isApprovingWarningVisible","slideRenderer","pageLayout","nextPage","scrollPrevious","onScrollMyPlanPrevious","newMonth","onFetchDataPrevious","scrollNext","onScrollMyPlanNext","onFetchDataNext","stringDate","paramDate","paramsDate","isNaN","line","scroll","timestamp","loaded","signingRequestId","lastSigningRequestId","approvingRequestId","lastApprovingRequestId","clearTimeout","scrollToLine","monthOffset","justifyContent","containsUnpublished","noteRow","SignButton","Signing","ChangeButton","minHeight","overscanSlideBefore","overscanSlideAfter","onChangeIndex","index1","index0","show","getPageState","sigReqs","apprReqs","isFetchingPrevious","isFetchingNext","canSign","signButton","canChange","changeButton","fetchUnavalabilities","createUnavailability","deleteUnavailability","UnavailabilityDetail","ID_UNAVA","onDeleteUnavailability","toLocaleTimeString","makeFrom","makeTo","onDelete","delete","isUnavailabilityDeleting","unavailabilityDelete","isSuccessfullyDeleted","succesful","selectedDay","selectedTime","fromDateChange","dateFrom","fromTimeChanged","timeFrom","timeTo","toTimeChanged","ixsRef","param","onCreateUnavailability","originalEvent","isUnavailabilityCreating","datePicker","unavailabilityCreate","isSuccessfullyCreated","handleDialogsClose","isApprovablePlnunava","onDashboardDataFetch","titleFont","makeTitle","dateTimeCreated","unavailabilityFetch","fetchWorksheetDataForMonth","SelectedIxsRef","fetchWorksheetDataForPreviousMonth","arg1","StartDate","EndDate","computeTo","fetchWorksheetDataForNextMonth","scrollWorksheetPrevious","scrollWorksheetNext","resetWorksheetData","getParamsForWorksheet","signWorksheet","getAttachments","uploadAttachment","formData","FormData","ext","filename","file","URLSearchParams","y","n","resetUploadAttachment","dataURL","maxSize","callback","filetype","quality","callback1","image","Image","onload","maxWidth","maxHeight","imageWidth","imageHeight","canvas","createElement","ctx","getContext","drawImage","toBlob","blob","toDataURL","PictureDialog","setName","setNote","isUploading","worksheetAttachment","successful","setFile","setSrc","uploadQuality","uploadSize","ResizeImage","img","required","maxLength","AttachmentsDialog","pictureSrc","setPictureSrc","pictureFile","setPictureFile","pictureDialogVisible","setPictureDialogVisible","attachemnts","att","id_att","ellipsis","toFixed","poznamka","attachment","elem","URL","createObjectURL","download","appendChild","click","removeChild","openFile","accept","files","reader","FileReader","readAsDataURL","handleInputChange","getElementById","Worksheet","timer","handleComputeTo","setDateForCountTo","onResetWorksheetData","checkboxVisibleDueCurrentmonth","checkboxVisibleDueNotApproved","Potvrdil","pole","SumOdpracCell","cellNumber","SumOdprac","minutesToHours","SumAbsenceCell","SumOmluv","SumOmluvNe","SumBalanceCell","SumSaldo","SumSaldoSprevodem","odpracCell","worked","absenceCell","balanceCell","hoursCell","Hodiny","daysCell","Dny","toggleDialog","isVisible","handleSigning","onPostSigning","setDateIntoParam","dataSourcePrevious","dataSourceNext","onScrollWorksheetPrevious","onScrollWorksheetNext","zobrHodDec","warningnote","attachmentsDialogVisible","Lang","actMonthNumber","actYear","setMonth","setFullYear","checkIsActMonth","todayWithoutTime","actMonth","PLIST_FORDAY","parseInt","HODNOTA","controlDate","isSigningAllowed","signRequest","signDate","onFetchParams","input","zobr","countTo","controlFordayParam","checkAndSetIfSignRequest","minutesTotal","isNegative","parseFloat","passTime","DEN","number","errorDates","PracListChyby","IpodensmenCeleks","passesArr","UCET_VISIBILITY","UCET","Pruchody","pass","CasPruchodu","getPassTimeString","TypPruchoduTxt","RowHeader","getCurrentDayNumberName","SMENA_NAZEV","Poznamka","passes","ODPRAC","OMLUV","OMLUV_NE","SALDO","SumFooter","CeleJmeno","Podepsal","PodepsalKind","Schvalil","search","datum","prepareData","worksheetLayout","nameRow","Mesic","Stredisko","stamp","enstampSource","czstampSource","skstampSource","AnyPublished","gridStyle","scrollable","footerCell","labels","FondDlePlanuSmenMinuty","FondDlePlanuSmenSmeny","ZobrazitKalFond","FondDleKalendareMinuty","FondStanovDleKalendareMinuty","PrevodMinuly","PrevodDoDalsiho","SaldoVPristim","larger","PracListMesUcty","getLocalDateTimeString","SchvalilKdy","PotvrdilKdy","PodepsalKdy","agreeWithWS","attachmentsAllowed","paramsError","paramsFetching","nodata","dialogStyle","getFullName","setDialogText","isSinging","signSpinnerBox","signSpinner","datasourcePrevious","datasourceNext","worksheetParams","worksheetSign","firstDate","showAttachments","TimelinePage","fetchReportData","classname","reportItems","fetchReportsItems","monthButt","buttons","reportsListItems","shortname","longname","neededParams","paramsRestristrions","isMobileOrTablet","innerWidth","isChrome","test","userAgent","vendor","isApple","ReportViewer","fullName","list","isFetchingReport","selectedReport","setSelectedReport","setDateFrom","setDateTo","selectedErrorSource","setSelectedErrorSource","extendedDetail","setExtendedDetail","setSelectedMonth","selectedMonthFrom","setSelectedMonthFrom","selectedMonthTo","setSelectedMonthTo","setSelectedAccount","showIntervals","setShowIntervals","showBreaks","setShowBreaks","printCodes","setPrintCodes","printChanges","setPrintChanges","save","useRef","report","fileName","base64","binStr","atob","len","arr","Uint8Array","charCodeAt","Blob","base64ToBlob","downloadPDFApple","downloadPDF","newWindow","open","templateChrome","template","write","close","focus","saveOrOpenPDF","parameters","para","controlAndSetParams","ParamRow","resultItems","caption","sortDataAndAdd2StaticReports","openParametersDialog","startDate","endDate","StackTestPage","syncEndpointOriginWithClient","autoLogoutMinutes","infoText","initializeGoogleAnalytics","script","setAttribute","async","head","dataLayer","gtag","arguments","fetchConfig","process","toISOString","partialConfig","gaId","googleAnalyticsId","protocol","hostname","port","setDay","labelRenderer","INTERVALS_ADDRESS","getDataBody","selected","Item4","includingSubcenters","Item5","categories","getIntervalsBody","recalculate","ixsRefs","fetchDepartmentPlanData","fetchDepartmentPlanDataIntervals","fetchDepartmentPlanDataIntervalsRecalculate","fetchDepartmentPlanPreviousData","fetchDepartmentPlanDataPreviousIntervals","fetchDepartmentPlanDataIntervalsPreviousRecalculate","fetchDepartmentPlanNextData","fetchDepartmentPlanDataNextIntervals","fetchDepartmentPlanDataIntervalsNextRecalculate","scrollDepartmentPlanPrevious","scrollDepartmentPlanNext","resetDeparmentPlanData","ownerID","NowColumnMarker","parseDisplayMode","raw","SelectedCenterButton","forwardRef","center","buildKey","isAuthenticated","realKey","fetchCenterLevel","searchParams","partialResult","childrens","parents","selectCenter","selectCategory","resetCategory","initialize","loadedCenter","include","DOMAIN","centerID","fetchPossibleCategories","CategoriesPicker","defaultItem","NAZEV_KAT","IXS_KAT","selectedCategory","onResetCategory","cat","root","description","dropdown","onOpen","onFetch","CenterPicker","Navigation","CheckboxContainer","IncludingSubcentersCheckbox","Body","isPresence","checkboxContainer","nav","child","CenterPickerDialog","selectCenterWithSave","onConfirm","TooMuchPersonsWarning","max","department","maxAllowedPersonsCount","_0","SelectedCenterTooltip","Tooltip","resolveHoursMultiplier","displayMode","createColumnsConfig","endOfDay","handleDayChange","onResetData","getParams","lastClickedGroup","handleDialogClose","handleSelectedCenterButtonClick","handleCenterPickerDialogConfirm","fetchData","memo","TooMuchPersonsGuard","guarded","that","arrow","personInfoContainer","innerProps","dayOfWeek","next","Layout","newDay","fetchDataPrevious","fetchDataNext","initializeCenterPicker","notFetched","notFetchedIxsRefs","notRecalculated","notRecalculatedIxsRefs","shouldFetchNext","onFetchDataIntervals","onFetchDataIntervalsRecalculated","notFetchedNext","notRecalculatedNext","onFetchDataNextIntervals","onFetchDataNextIntervalsRecalculated","notFetchedPrevious","notRecalculatedPrevious","onFetchDataPreviousIntervals","onFetchDataPreviousIntervalsRecalculated","maxCount","shortHeading","longHeading","getPageStata","isPreviousFetching","isCurrentFetching","isNextFetching","tooMuchPersons","ConfigDownloading","AppHeader","logoSource","AppFooter","__COMMIT_HASH__","SlimPageLayout","LogInForm","setUsername","setPassword","remember","setRemember","rememberedUsername","rememberedPassword","onSubmit","fieldset","autoComplete","changeCode","onCodeClear","AuthErrorRenderer","tmpl","resolveErrorMsg","CustomerCodeForm","setCode","onSetCode","AuthLayout","isDelegatedAuthEnabled","delegatedAuthStyle","delegatedAuthCustomizableText","secondaryText","secondaryCustomizableText","codeValid","setCodeValid","automaticRedirection","gap","manualRedirectionWithVisibleForm","isChecking","LicenseGuard","isAppEnabled","isEnabled","StartUp","fetchSecuredPassesDatasource","noPass","$id","PRITOMNOST","PRUCHOD_TERM","PRUCHOD_SMER","insertPass","Terminal","timeUpdateIntervalID","timeOutId","isComponentMounted","locationTimeout","openSettingsDialog","newConfig","button3","button4","button5","button6","handleDropdownChange","dropdownVal","locatingDone","passToInsert","curTime","settings","success","pomConfig","create","oldConfig","onLoadIpopts","buttonsConf","convertToConfiguration","isGPSPositionAllowed","isSecureContext","generateGPS","lat","lng","button1","button2","ControlConfigPermissions","savedConfig","operation","ConfigConvertToString","grayColor","greenColor","redColor","Geolocation","getCurrentPosition","coords","latitude","longitude","log","enableHighAccuracy","maximumAge","generateGPSAndInsertPass","ipoprt","IXS_REF_ZMENA","authIxsRef","CAS","TERMINAL","PLATNOST","POZNAMKA","GPS","getGPSLocationString","prt","onInsertPass","notify","insertResult","isFetchingPasses","isFetchingResult","passesFetchError","setColorClassNameBasedOnValue","dropdownlist","contentStyle","settingsLayout","settingsDropdownlist","getButtonStyle","onDialogClose","fetchLastPasses","dateOptions","timeOptions","LastPasses","getCorrectDateTimeFormat","noPasses","firstRow","typeStyle","errorsVisibilitySlice","errors","errorsListSlice","remove","removeAll","onRemove","onRemoveAll","lastCopyInfo","setLastCopyInfo","timeoutID","setTimeoutID","handleListItemClick","clipboard","writeText","catch","reason","finally","execCommand","textArea","select","unsecuredCopyToClipboard","primaryTypographyProps","noWrap","DeleteForever","ErrorsManager","isButtonVisible","isDialogVisible","areVisible","fetchWorksheetStates","argParam","CheckedCategories","InternalMaxLimitParam","TooMuchPersonNotification","SelectedPresence","ActivePersonsOnly","ValidPersonsOnly","LoadUnconfirmed","LoadConfirmed","LoadOpened","LoadSigned","LoadApproved","LoadUnsigned","LoadAll","Kind","WorksheetState","onLoadStates","handleFilterChange","SetAllOptionsFalse","Signed","SignedKind","Email","getMailToAddress","centerButton","inlineCount","GetState","handleMailClick","data-rel","handleSingleNumberClick","worksheetsWithState","fetchPresenceData","CheckedIxsStrs","fetchPresenceTranslations","fetchPassesTranslations","fetchAccountsTranslations","_arg","PresenceDetail","getPassTranslation","passesTranslations","PK_VALUE","PREKLAD","LAST_TIME","STR_TEXT","getCorrectDateTimeString","TERM_TXT","SMENA","presenceData","isFetchingData","presenceError","presenceTranslations","isPresenceTranslationsFetching","presenceTranslationError","isPassesTranslationsFetching","passesTranslationError","accountsTranslations","isAccountsTranslationsFetching","accountsTranslationError","isReasonVisible","setVisibleDialog","setDetailData","presenceOptions","getPresenceTranslation","getAccountTranslation","id_ucet","phoneNumberArray","arrayNumber","TELEFON1","TELEFON2","TELEFON3","isConnectionError","isCheckedAllPersons","isCheckedOnlyPresent","isCheckedOnlyAbsent","isCheckedOnlyInconsintent","isCheckedWithPlannedShift","Detail","gray","smer","EMAIL2","isExistingMail","EPlanState","fetchPlanStates","getParamsForPlanStates","PlanStateDetail","dateInput","getCorrectDateString","PrefKind","CheckedBy","App","LoadNotPassed","LoadNotChecked","LoadChecked","LoadWaiting","LoadRejected","HandWritten","PlanState","option","ApprovedHand","selectedState","getPeriod","getHeaderTitle","period","lastDayNumber","getTabsHeaders","tabs","Tab","getTabsBodies","panels","TabPanel","dir","getList","axis","tabBodies","handleChangeIndex","newValue","periodNumber","onLoadParams","Ixsref","Tabs","indicatorColor","textColor","variant","aria-label","withoutTabs","planWithState","planStatesParams","recommendedDays","other","role","hidden","aria-labelledby","changePassword","UserName","OldPassword","NewPassword","getPasswordParam","getOldPaswordVisible","PasswordChange","timerID","setOldPassword","setNewPassword","setNewPasswordVerification","inputError","setInputError","strict","passwordParam","passwordOldVisible","changeClaim","userName","getReversed","sequence","reverse","xyz","initial","usrName","toLowerCase","pswd","contains3SameCharactersInRow","charSequence","regex3CharacterSequence","RegExp","regex3NumberSequence","containsUprisingOrDownrisingSequenceOf3","anchor","useParams","helpFrame","ResetTimer","duration","fetchOvertime","setOvertimeStatus","Id","getInterval","StatusIcon","selectedItem","setSelectedItem","approvable","OvertimeDetail","setStatus","sessionStorage","canRunWindowsAuth","autologout","documentElement","perm","exact","path","component","AuthenticatedGuard","unauthenticated","passwordInvalid","UserLanguageLoader","per","userLangCode","configReducer","createReducer","builder","addCase","pending","fulfilled","errorsReducer","combineReducers","userReducer","requestID","meta","requestId","myRequestsReducer","absenceInsertionReducer","dashboardReducer","requestsForApprovalReducer","personsForApprovingReducer","personsForApprovingWithFilterReducer","wflChangeStateReducer","personalCardReducer","worksheetReducer","worksheetParamsReducer","signingWorksheetReducer","attachmentWorksheetReducer","reportsReducer","$value","reportItemsReducer","getDataRecursively","uploaded","unavalabilityFetchReducer","unavalabilityCreateReducer","unavalabilityDeleteReducer","myReducer","requestIdPrevious","requestIdNext","getPage","updatePage","fetchedIxsRefs","recalculatedIxsRefs","departmentReducer","currentRequestID","previousRequestID","nextRequestID","signingReducer","changingReducer","planReducer","accountsReducer","dropdownsReducer","terminalReducer","checkValidity","cpt","PRUCHOD_TXT","passInsertReducer","lastPassReducer","centerPickerReducer","passwordChangeReducer","changed","passwordParamReducer","passwordOldVisibleReducer","worksheetStateReducer","Results","GetCountFromRawData","InlineCount","presenceReducer","getCount","presenceTranslationsReducer","passesTranslationsReducer","accountsTranslationsReducer","planStateReducer","planStateParametersReducer","categoriesReducer","timeoutId","userListReducer","overtimeReducer","substitutionReducer","sessionReducer","appReducer","reportError","skMessages","load","require","middlewares","getDefaultMiddleware","logger","serializeError","store","refresh_token","removeItem","expireIn","expires_in","endsWith","configureStore","middleware"],"mappings":"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","file":"static/js/main.f13c692a.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"Worksheet_layout__3nP7e\",\"cellNumber\":\"Worksheet_cellNumber__1N5KB\",\"row\":\"Worksheet_row__fZV56\",\"nameRow\":\"Worksheet_nameRow__3Rk-U\",\"colL\":\"Worksheet_colL__YUooZ\",\"colR\":\"Worksheet_colR__3LBt0\",\"labels\":\"Worksheet_labels__3D4r0\",\"larger\":\"Worksheet_larger__16HAM\",\"signSpinnerBox\":\"Worksheet_signSpinnerBox__2wjU5\",\"signSpinner\":\"Worksheet_signSpinner__2r4EL\",\"dialogStyle\":\"Worksheet_dialogStyle__QtxJZ\",\"stamp\":\"Worksheet_stamp__1a_17\",\"signButton\":\"Worksheet_signButton__32XKY\",\"pulsing\":\"Worksheet_pulsing__zJ3m8\",\"z\":\"Worksheet_z__3jw2c\",\"nodata\":\"Worksheet_nodata__3Kluy\",\"noteRow\":\"Worksheet_noteRow__5J729\",\"worksheetLayout\":\"Worksheet_worksheetLayout__3iMii\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"Terminal_layout__3JO8D\",\"settingsLayout\":\"Terminal_settingsLayout__2I6Ho\",\"redColor\":\"Terminal_redColor__1Dr9m\",\"greenColor\":\"Terminal_greenColor__3UhwM\",\"grayColor\":\"Terminal_grayColor__jcS8Q\",\"z\":\"Terminal_z__3_KCE\",\"timer\":\"Terminal_timer__24MdG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialogTitle\":\"Requests_dialogTitle__3UY9h\",\"accountName\":\"Requests_accountName__2ecUn\",\"created\":\"Requests_created__YMf8I\",\"aprooved\":\"Requests_aprooved__3qzTZ\",\"rejected\":\"Requests_rejected__3Z0P0\",\"icon\":\"Requests_icon__1OaOm\",\"searchBar\":\"Requests_searchBar__2PWHc\",\"noData\":\"Requests_noData__Xs-Yn\",\"datePicker\":\"Requests_datePicker__cwSjh\",\"noWrapText\":\"Requests_noWrapText__1yJNy\",\"checkbox\":\"Requests_checkbox__2p_pd\",\"footerCount\":\"Requests_footerCount__3979Y\",\"checkboxIn\":\"Requests_checkboxIn__3oe5-\",\"checkboxHidden\":\"Requests_checkboxHidden__oGENj\",\"checkboxOut\":\"Requests_checkboxOut__39ff3\",\"navBarElementIn\":\"Requests_navBarElementIn__JysuQ\",\"navBarElementOut\":\"Requests_navBarElementOut__1z038\",\"footerOut\":\"Requests_footerOut__329AF\",\"footerIn\":\"Requests_footerIn__1PpJu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentContainer\":\"Dashboard_contentContainer__3CRxv\",\"buttonsContainer\":\"Dashboard_buttonsContainer__3OU_4\",\"badge\":\"Dashboard_badge__1t_k8\",\"terminals\":\"Dashboard_terminals__IYPd5\",\"mb1\":\"Dashboard_mb1__34DjN\",\"grid\":\"Dashboard_grid__q0W2D\",\"col1\":\"Dashboard_col1__2ICxt\",\"col2\":\"Dashboard_col2__38mjR\",\"icon\":\"Dashboard_icon__2wMpx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pickingRow\":\"NewRequestDialog_pickingRow__1Am90\",\"checkboxRow\":\"NewRequestDialog_checkboxRow__3AsUL\",\"dropdownList\":\"NewRequestDialog_dropdownList__1tShC\",\"z\":\"NewRequestDialog_z__3hUv5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentContainer\":\"PersonalCard_contentContainer__28xda\",\"avatar\":\"PersonalCard_avatar__3xAWZ\",\"row\":\"PersonalCard_row__39rLt\",\"colL\":\"PersonalCard_colL__EKFkU\",\"colR\":\"PersonalCard_colR__2lbzB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"InfoPanel_panel__1vFmS\",\"info\":\"InfoPanel_info__2Ntcx\",\"gutterBottom\":\"InfoPanel_gutterBottom__bWtoJ\",\"textPerson\":\"InfoPanel_textPerson__35JLI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paramRow\":\"ReportViewer_paramRow__3Ahx3\",\"check\":\"ReportViewer_check__3fCCc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CenterPicker_root__1lgEn\",\"checkboxContainer\":\"CenterPicker_checkboxContainer__EixQ9\",\"nav\":\"CenterPicker_nav__2I6pn\",\"selected\":\"CenterPicker_selected__2PJnX\",\"list\":\"CenterPicker_list__3olep\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"params\":\"Presence_params__3VIQy\",\"centerButton\":\"Presence_centerButton__3lSWL\",\"green\":\"Presence_green__3zopx\",\"gray\":\"Presence_gray__2hcph\",\"red\":\"Presence_red__1_hMs\",\"noData\":\"Presence_noData__3gsIO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"params\":\"PlanState_params__1CHu1\",\"dropdown\":\"PlanState_dropdown__3YL7k\",\"centerButton\":\"PlanState_centerButton__mkV0g\",\"noData\":\"PlanState_noData__F2soN\",\"tabs\":\"PlanState_tabs__32xYG\",\"tabBodies\":\"PlanState_tabBodies__2-3kU\",\"withoutTabs\":\"PlanState_withoutTabs__3EszO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"PageLayout_layout__247Sl\",\"contentContainer\":\"PageLayout_contentContainer__JDhec\",\"notificationTop\":\"PageLayout_notificationTop__1q5r8\",\"nextButton\":\"PageLayout_nextButton__2Db5a\",\"previousButton\":\"PageLayout_previousButton__2IQeL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textPerson\":\"SettingsDialog_textPerson__y6RA_\",\"paramRow\":\"SettingsDialog_paramRow__2EPXZ\",\"check\":\"SettingsDialog_check__1ogH-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"window\":\"MonthPicker_window__119Bf\",\"flex\":\"MonthPicker_flex__3_Vqe\",\"buttons\":\"MonthPicker_buttons__3jFR_\",\"monthButt\":\"MonthPicker_monthButt__3hcwt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toolbar\":\"NavBar_toolbar__pappz\",\"primary\":\"NavBar_primary__1LehI\",\"heading\":\"NavBar_heading__1AJ-3\",\"popup\":\"NavBar_popup__NKStD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"shortHeading\":\"DepartmentPlan_shortHeading__2worH\",\"longHeading\":\"DepartmentPlan_longHeading__2AldV\",\"personInfoContainer\":\"DepartmentPlan_personInfoContainer__BOidE\",\"dayOfWeek\":\"DepartmentPlan_dayOfWeek__2mdxX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"LastPasses_icon__36kCf\",\"noData\":\"LastPasses_noData__2di5s\",\"firstRow\":\"LastPasses_firstRow__1rBmJ\",\"noPasses\":\"LastPasses_noPasses__sKz_v\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Timeline_container__sWLDL\",\"even\":\"Timeline_even__KX9A5\",\"intervalsFetching\":\"Timeline_intervalsFetching__1Jw9B\",\"intervalsNotRecalculated\":\"Timeline_intervalsNotRecalculated__3Ws4_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"Accounts_table__3FWln\",\"title\":\"Accounts_title__1DJTS\",\"colorCell\":\"Accounts_colorCell__p5Jhv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"signButton\":\"MyPlan_signButton__1_zwZ\",\"orangePulsing\":\"MyPlan_orangePulsing__3PNpl\",\"changeButton\":\"MyPlan_changeButton__3cUgS\",\"redPulsing\":\"MyPlan_redPulsing__2hMX9\",\"scrollable\":\"MyPlan_scrollable__3Z77L\",\"noteRow\":\"MyPlan_noteRow__2g0yE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CategoriesPicker_root__8egCL\",\"dropdown\":\"CategoriesPicker_dropdown__1UXva\",\"description\":\"CategoriesPicker_description__3j1sZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"AppHeader_header__X9aJA\",\"heading\":\"AppHeader_heading__3z9Iu\",\"lang\":\"AppHeader_lang__3Jtnn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"params\":\"WorksheetState_params__GhQ2S\",\"dropdown\":\"WorksheetState_dropdown__RAeU1\",\"centerButton\":\"WorksheetState_centerButton__1PN38\",\"noData\":\"WorksheetState_noData__2AeKU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"LanguageDropDown_row__31kS9\",\"shortcut\":\"LanguageDropDown_shortcut__21NtC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"HoursHeader_container__219ay\",\"item\":\"HoursHeader_item__1matY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DayHeader_container__16MA-\",\"textAlignCenter\":\"DayHeader_textAlignCenter__2vFzP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"VerticalLines_container__2MyHW\",\"item\":\"VerticalLines_item__tjsqn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"window\":\"NavbarMonthPicker_window__2vRnQ\",\"year\":\"NavbarMonthPicker_year__34Lcu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paramRow\":\"IntervalDetailDialog_paramRow__3tRIt\",\"check\":\"IntervalDetailDialog_check__1AQM3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"img\":\"PictureDialog_img__pfW8k\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"SlimPageLayout_layout__3OE2s\",\"body\":\"SlimPageLayout_body__2hfgA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fieldset\":\"LogInForm_fieldset__2dNl8\",\"changeCode\":\"LogInForm_changeCode__136zz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"PasswordChange_layout__2wQYF\",\"body\":\"PasswordChange_body__3eRMg\",\"fieldset\":\"PasswordChange_fieldset__3NlB7\"};","module.exports = \"data:image/gif;base64,R0lGODlhGQARAIMAAGcCUAcBszQAigAAwE9Ms1pXy6AEB6ZDcMYAANddXeBhX6Ge36Kh4dnZ2dTT4vT09CH5BAAAAP8ALAAAAAAZABEAAARSkLhHq734tRBW/hkXFGBJiRxjfihHrlcrqvApuxN8o7S5c4PAQZEoGo+J30BgQDif0OctCIhaobJl88pFUblghEgbBge+ZTA5DQYY3vC4fA6PAAA7\"","module.exports = \"data:image/gif;base64,R0lGODdhGQARAIMAAAQCnC4srEFAs3JxxvwCBPxxcYmJz7u847/A5PyZmfy4t9DR6vzDwujp9O7w9vr8+ywAAAAAGQARAAAEi/DJAWodimhFLRhSKCGBhWkEZwWIKCyh053b7IRLCRgiSacDlsjgAbxih8zmcJPkTIOooSlRpkQOQzSa6Hq/BVThS06gzui0es1uu9+MuHxu1iTmeMY22hBZFSINex1GMBIOSSgKTDgCRTwhPn9BLSFEAAGGDzIXkxdUCwI9Oh+eFUIiE0U/Kh4gEhEAOw==\"","module.exports = \"data:image/gif;base64,R0lGODlhGQARAIMAAHcBSwUAtQsNw1guoLkBAZ0rW8kEBNdWVrKx5MOVtOSamumvrvLDvtnZ2fHY2PT08yH5BAAAAP8ALAAAAAAZABEAAARtsL1Jq7046805U8qygIrTVQdBGMtqMCciH+ziKHQi7zwfBIKC4XBgEA2Dn3LJBAoZNhCySf0Fh8Vjstq8EgAD1ZTbHACYBQFZCWiDl0G3fN422O3b633Pt7vuA3p9gwZ/hId7hoiIKo2Oj5CPEQA7\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"ChangePersonDialog_label__1BVRY\",\"flexGrow1\":\"ChangePersonDialog_flexGrow1__2ISPO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cancel\":\"RequestDetail_cancel__c68EO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SpinnerBox_container__3nFiE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notification\":\"ErrorNotification_notification__1ExoH\"};","module.exports = \"data:image/jpeg;base64,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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cell\":\"SidebarCell_cell__10QK_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cell\":\"ContentCell_cell__1365l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stack\":\"Stack_stack__2DGWM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"positioner\":\"GridPositioner_positioner__3u_3e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cell\":\"CornerCell_cell__1JFQo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cell\":\"ColumnCell_cell__JRh5q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customizableText\":\"SigningDialog_customizableText__1hn3c\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customizableText\":\"ChangeRequestDialog_customizableText__3so7P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleFont\":\"Unavailability_titleFont__3ZbGM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"delete\":\"UnavailabilityDetail_delete__19zS8\"};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH0AAAB9CAMAAAC4XpwXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAALW1tba0t7a2tre3t7i2ubi6t7i4uLm5ubm7uLq6uru7u7u5vLq8ubu9ury6vb27vry+u7y8vL29vb2/vL6+vr+/v77Avb/BvsG/wsDCv8DAwMHBwcHDwMLCwsPDw8PBxMLEwcPFwsTCxcTGw8TExMXFxcbEx8bGxsfHx8fFyMbIxcfJxsnHysjIyMnJycrKysvLy8zKzczMzM3Nzc7Ozs/Pz9HP0tDQ0NHR0dLS0tPT09TS1dTU1NXV1dbW1tfX19fV2NjY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+nn6ujo6Onp6erq6uvr6+zs7O3t7e7u7u/v7+/t8PHv8vDw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXvDzgAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGXRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjEyQwRr7AAAGBFJREFUaEOdW/tjGrl6ddvthY662xsp0t5eaaXu3kqdue3FULDr2MVO43ds/GiMcdLa5G1g9P//So9gYAYMjtOTxDEzwBlJ3+McMawM/z84fb211TBaKMa0qaxu7pycZ2e+D9/L/vb1Vp3ZyHLJieGcxYIKbTmXQq1ufvclfBf76WZFSMO0kJxzJQzXjGoW4UH4XaiySl7cZs99Ep7OfrxhFNGyzDm1prF12Lp4c3132+ncXJ7tbVcdJ5I7oURJvrzIXvFtPJG9u+YIlZFjsrJ10h7cez8YeO/vB77vU/zz/vO7gy2tmNJcUbvzxBl4EvtljUnLEm7WTj/3wATq1Kfp/f2nL1/6fVxGGv7hz93JC0UVJ9xVrrPXPoonsB87JYgq68bFFxAAvc/nJzuNmjUqVsyaeHVj5/XVx16gHwz6rXVLpeRs/QkL8E32NxVmsNJxK8z0wH+8OqzEVEviNIkRdZZyzLXUQsdrux2sCJ7z9aDKmWa88SZ7j6X4FnudWsH06tswMP/pdR2RbRHymA2OAVJKhQQ4I0zzuGwbrW7q7316UzPMcl27yd5mCR5n340MY2LtAwbkv55VuVKUckZ53Ng8Or28fnc3HN7dXJ7sbdZip0oChNyunYULHVzXMGPUHmbvtBiPsb+TLOa23sF79T9uxkIqLqxa27vuZk8o4ra9W+dCaCqpbH4Af9quE1QDd5U9YREeYd/iypRMC1Hm2+soa4wyt32WnVyMdlMLoajRL7re93utmDIt97KTC7CUvVsVLnLNkM7v17gpx0I1O9m5x3C1ZpmkVFdvQ05uasZsbdFcjbCM/TwmGPq176V3O4w6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\"","module.exports = __webpack_public_path__ + \"static/media/skpic_RazitkoPLKulate.e8318f2f.png\";","module.exports = __webpack_public_path__ + \"static/media/enpic_RazitkoPLKulate.5def240e.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ellipsis\":\"AttachmentsDialog_ellipsis__34CGA\"};","// Module\nvar code = \" $FILENAME$.pdf \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" $FILENAME$.pdf
$SAVE$

\";\n// Exports\nmodule.exports = code;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialog\":\"NavbarDayPicker_dialog__30H5x\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialog\":\"CenterPickerDialog_dialog__2CHCQ\"};","module.exports = \"data:image/png;base64,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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"classes_footer__2tOb5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fieldset\":\"CustomerCodeForm_fieldset__3nw1C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"ErrorsButton_button__2umlB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"helpFrame\":\"Help_helpFrame__204jc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"Overtime_icon__1NE46\"};","Promise.wait = (ms, result) => {\n return new Promise(res => {\n setTimeout(() => res(result), ms);\n });\n};\n\nexport default null;\n","// eslint-disable-next-line no-extend-native\nDate.prototype.toISOStringIgnoringTZ = function () {\n const year = this.getFullYear();\n const month = (this.getMonth() + 1).toString().padStart(2, \"0\");\n const date = this.getDate().toString().padStart(2, \"0\");\n\n const hours = this.getHours().toString().padStart(2, \"0\");\n const minutes = this.getMinutes().toString().padStart(2, \"0\");\n const seconds = this.getSeconds().toString().padStart(2, \"0\");\n\n return `${year}-${month}-${date}T${hours}:${minutes}:${seconds}Z`;\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.toJSON = function () {\n return this.toISOStringIgnoringTZ();\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.withTime = function (time: Date) {\n return new Date(\n this.getFullYear(),\n this.getMonth(),\n this.getDate(),\n time.getHours(),\n time.getMinutes(),\n time.getSeconds(),\n time.getMilliseconds()\n );\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.getTimeOfDay = function () {\n return this.getTime() - this.getStartOfDay().getTime();\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.firstDayOfMonth = function (): Date {\n return new Date(this.getFullYear(), this.getMonth(), 1);\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.lastDayOfMonth = function (): Date {\n return new Date(this.getFullYear(), this.getMonth() + 1, 0, 23, 59);\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.getStartOfDay = function (): Date {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.getEndOfDay = function (): Date {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate(), 23, 59);\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.firstDayOfWeek = function (): Date {\n // set to Monday of this week\n var d: Date = new Date(this.valueOf());\n d.setDate(d.getDate() - ((d.getDay() + 6) % 7));\n d = d.getStartOfDay();\n return d;\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.lastDayOfWeek = function (): Date {\n // set to Monday of this week\n var d: Date = new Date(this.valueOf());\n d.setDate(d.getDate() - ((d.getDay() + 6) % 7) + 6);\n d = d.getEndOfDay();\n return d;\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.addSeconds = function (seconds: number): Date {\n return new Date(this.getTime() + seconds * 1000);\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.addMinutes = function (minutes: number): Date {\n return new Date(this.getTime() + minutes * 60 * 1000);\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.addHours = function (hours: number): Date {\n return new Date(this.getTime() + hours * 60 * 60 * 1000);\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.addDays = function (days: number): Date {\n if (this === undefined) return this;\n var result = new Date(this.getTime());\n result.setDate(result.getDate() + days);\n return result;\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.addMonths = function (months: number): Date {\n if (this === undefined) {\n return this;\n }\n\n var dt = new Date(this.getFullYear(), this.getMonth() + 1 + months, 0);\n dt.setDate(Math.min(dt.getDate(), this.getDate()));\n return dt;\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.addYears = function (years: number): Date {\n if (this === undefined) return this;\n return new Date(this.getFullYear() + years, this.getMonth(), this.getDate());\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.getTimeOfDayValue = function (): number {\n var res = (this.valueOf() - this.getTimezoneOffset() * 60 * 1000) % 86400000;\n if (res < 0) {\n //před 1970\n res = 24 * 60 * 60 * 1000 + res;\n }\n\n return res;\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.getFullDateString = function (): string {\n let today: Date = new Date();\n return today.getFullYear() + \"_\" + (today.getMonth() + 1) + \"_\" + today.getDate();\n};\n\n// eslint-disable-next-line no-extend-native\nDate.prototype.addTime = function (time: Date): Date {\n return new Date(this.valueOf() + time.getTimeOfDayValue());\n};\n\nexport default null;\n","import { useSelector } from \"react-redux\";\nimport { IRootState } from \"../redux/reducers/root\";\n\nexport function useAppSelector(\n selector: (state: IRootState) => TSelected,\n equalityFn?: (left: TSelected, right: TSelected) => boolean\n) {\n return useSelector(selector, equalityFn);\n}\n","import { IRootState } from \"../reducers/root\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\n\nexport function selectStrings(state: IRootState): IStrings {\n return state.localization.strings;\n}\n","import { selectStrings } from \"../redux/selectors/selectStrings\";\nimport { useAppSelector } from \"./useAppSelector\";\n\nexport function useStrings() {\n return useAppSelector(selectStrings);\n}\n","export async function handleResponseError(response: Response) {\n if (response.ok) return response;\n\n let body: string = \"\";\n\n if (response.headers.get(\"Content-Type\")?.startsWith(\"application/json\")) {\n try {\n body = await response.clone().json();\n } catch (e) {\n throw e;\n }\n } else {\n body = await response.clone().text();\n }\n\n const extra = {\n url: response.url,\n status: response.status,\n statusText: response.statusText,\n headers: Array.from(response.headers.entries()),\n body: body,\n };\n\n throw new Error(JSON.stringify(extra));\n}\n","import { createAction, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { DelegatedAuthStyle } from \"../../model/app/DelegatedAuthStyle\";\n\ninterface StartupResult {\n isAppEnabled: boolean;\n canRunWindowsAuth: boolean;\n isDelegatedAuthEnabled: boolean;\n delegatedAuthStyle: DelegatedAuthStyle;\n delegatedAuthCustomizableText: string;\n secondaryCustomizableText: string;\n multiTenant: boolean;\n substitutionsEnabled: boolean;\n}\n\nexport const fetchStartup = createAsyncThunk, void, { state: IRootState }>(\n \"app/startup/fetch\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n signal: api.signal,\n };\n\n const response = await fetch(\n api.getState().config.config.endpoint + \"/controllers/SelfService/Startup\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return (await response.json()) as Partial;\n }\n);\n\nexport const resetNotification = createAction(\"app/notification/reset\");\n\nexport const setCustomerCode = createAction(\"app/setCustomerCode\");\n\nexport const checkLicense = createAsyncThunk(\"app/license\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n };\n\n const response = await fetch(\n api.getState().config.config.endpoint + \"/breeze/IpoData/IsSelfServiceLicenseValid\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n});\n","import { Slide } from \"@progress/kendo-react-animation\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { Notification, NotificationGroup } from \"@progress/kendo-react-notification\";\nimport React, { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { resetNotification } from \"../../redux/actions/app\";\nimport classes from \"./PageLayout.module.scss\";\n\ninterface IProps {\n header?: React.ReactNode;\n footer?: React.ReactNode;\n onScrollPrevious?: () => void;\n onScrollNext?: () => void;\n canScrollPrevious?: boolean;\n canScrollNext?: boolean;\n}\n\nexport function PageLayout(props: React.PropsWithChildren) {\n const notificationVisible = useAppSelector(s => s.app.notificationVisible);\n const errorResponse = useAppSelector(s => s.app.errorResponse);\n const successResponse = useAppSelector(s => s.app.successResponse);\n const dispatch = useDispatch();\n const strings = useStrings();\n const getString = () =>\n successResponse\n ? strings.responses[successResponse as keyof typeof strings.responses]\n : strings.responses[errorResponse as keyof typeof strings.responses];\n\n useEffect(() => {\n if (notificationVisible) setTimeout(() => dispatch(resetNotification()), 3000);\n }, [notificationVisible, dispatch]);\n\n return (\n <>\n
\n
{props.header}
\n
{props.children}
\n
{props.footer}
\n {props.onScrollPrevious && (\n \n )}\n {props.onScrollNext && (\n \n )}\n
\n \n \n {notificationVisible && (\n dispatch(resetNotification())}\n >\n {getString()}\n \n )}\n \n \n \n );\n}\n","import React from \"react\";\nimport { Toolbar, DropDownButton, DropDownButtonItemClickEvent } from \"@progress/kendo-react-buttons\";\nimport styles from \"./NavBar.module.scss\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport classNames from \"classnames\";\nimport { ArrowBack } from \"@material-ui/icons\";\nimport { IBaseMenuItem } from \"./IBaseMenuItem\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\n\ninterface INavBarProps {\n canNavigateRoot?: boolean;\n canNavigateBack?: boolean;\n previousPage?: string;\n label: string;\n labelContent?: React.ReactNode;\n\n menu?: {\n items: I[];\n onItemClick?: (item: I) => void;\n };\n}\n\nexport function NavBar(props: React.PropsWithChildren) {\n const strings = useStrings();\n const tokenFetching = useAppSelector(s => s.session.user.isAuthenticating);\n const dataFetching = useAppSelector(s => s.session.dashboard.isFetching);\n const history = useHistory();\n\n if (props.menu !== undefined && props.menu.items.every(i => i.id !== 0)) {\n props.menu.items.push({\n id: 0,\n content: strings.common.Help,\n icon: props.menu.items.some(i => i.icon !== undefined) ? \"none\" : undefined,\n });\n }\n\n function handleMenuItemClick(e: DropDownButtonItemClickEvent) {\n if (e.item?.id === 0) {\n history.push(\"/help/\" + window.location.hash.substring(2).replaceAll(\"/\", \"_\"));\n }\n props.menu?.onItemClick && props.menu.onItemClick(e.item);\n }\n\n return (\n \n {props.canNavigateRoot ? : null}\n {props.canNavigateBack ? : null}\n

\n {props.labelContent ?? props.label}\n

\n {props.children}\n {props.menu ? (\n \n ) : null}\n
\n );\n}\n\nfunction LinkButton(props: { to: string }) {\n return (\n \n \n \n );\n}\n","import React from \"react\";\nimport { PageLayout } from \"../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../components/NavBar/NavBar\";\nimport { useAppSelector } from \"../hooks/useAppSelector\";\n\nexport default function NotFoundPage() {\n const message = useAppSelector(s => s.localization.strings.app.PageNotFound);\n const title = useAppSelector(s => s.localization.strings.app.PageNotFoundTitle);\n\n return (\n }>\n
\n

{message}

\n
\n
\n );\n}\n","import { ILanguage } from \"../model/localization/ILanguage\";\nimport czFlagSource from \"../assets/images/flag_cz.gif\";\nimport enFlagSource from \"../assets/images/flag_en.gif\";\nimport skFlagSource from \"../assets/images/flag_sk.gif\";\n\nexport const languages: ReadonlyArray = [\n { id: -1, shortcut: \"EN\", code: \"en\", iconSrc: enFlagSource },\n { id: -2, shortcut: \"CZ\", code: \"cs\", iconSrc: czFlagSource },\n { id: -3, shortcut: \"SK\", code: \"sk\", iconSrc: skFlagSource },\n];\n\nexport const initialLanguage = languages[0];\n","import { IStringsBundle } from \"../model/localization/IStringsBundle\";\nimport { en } from \"./languageStrings/strings.en\";\nimport { cs } from \"./languageStrings/strings.cs\";\nimport { sk } from \"./languageStrings/strings.sk\";\n\nexport const strings: IStringsBundle = {\n en,\n cs,\n sk,\n};\n","export const en = {\n common: {\n AllCatsLabel: \"\",\n Category: \"Category\",\n Begin: \"Begin\",\n Cancel: \"Cancel\",\n Center: \"Center\",\n Close: \"Close\",\n Confirm: \"Confirm\",\n Day: \"Day\",\n Delete: \"Delete\",\n DeleteAll: \"Delete all\",\n End: \"End\",\n ErrorNotification: \"An unexpected error occurred.\",\n ErrorNotificationClient: \"Data not available, check your connection.\",\n ErrorNotificationServer: \"An error occurred on the server, contact your administrator.\",\n For: \"For\",\n Person: \"Person\",\n Change: \"Change\",\n Help: \"Help\",\n Label: \"Label\",\n Language: \"Language\",\n NameNote: \"Name\",\n No: \"No\",\n Approve: \"Approve\",\n Deny: \"Reject\",\n NoItems: \"No items\",\n OC: \"Personal number\",\n Save: \"Save\",\n Shortcut: \"Shortcut\",\n Yes: \"Yes\",\n continue: \"Continue\",\n },\n app: {\n ConfigurationDownloading: \"Configuration downloading\",\n LicenseChecking: \"License checking\",\n ServerChecking: \"Server checking\",\n Msg_AppDisabledByLicense: \"Application usage disabled by license.\",\n PageNotFound: \"Page not found.\",\n PageNotFoundTitle: \"404\",\n },\n dashboard: {\n Balance: \"Balance\",\n BalanceError: \"Balance error\",\n VacationBalance: \"Vacation balance\",\n EmailForNotifications: \"Email for notifications\",\n Logout: \"Logout\",\n ChangePerson: \"Change person\",\n DepartmentPlan: \"Department plan\",\n FreeShifts: \"Free Shifts\",\n MyAccount: \"My account\",\n MyPlan: \"My plan\",\n MyRequests: \"My requests\",\n MyUnavailabilities: \"My unavailability\",\n OnlineTerminal: \"Terminal\",\n MyWorksheet: \"My worksheet\",\n Reports: \"Reports\",\n RequestsToApprove: \"Requests to approve\",\n RequestsToApprovePlnunava: \"Unavailabilities to approve\",\n PersonalCard: \"Personal card\",\n PlansStates: \"States of plans\",\n Presence: \"Presence\",\n WorkSheetStates: \"States of worksheets\",\n NotComputed: \"Not computed\",\n Days: \"Days\",\n Hours: \"Hours\",\n Hours4: \"Hours\",\n AdditionalVacation: \"Additional vacation balance I\",\n AdditionalVacation2: \"Additional vacation balance II\",\n Overtime: \"My overtime\",\n },\n lastPasses: {\n TitleLP: \"Passes\",\n NoPasses: \"No passes...\",\n },\n login: {\n Username: \"Username\",\n Password: \"Password\",\n Remember: \"Remember me\",\n Login: \"Login\",\n LoginDialog: \"Login dialog\",\n CustomerCode: \"Customer code\",\n CustomerCodeChange: \"Change customer code\",\n login_error_user_not_registered: \"Login error: User does not have a WebTime account.\",\n login_error_invalid_grant: \"Invalid username or password.\",\n login_error_invalid_grant_multitenant: \"Invalid username, password or customer code.\",\n login_error_locked_account: \"Account temporary locked for {0} minutes.\",\n login_error_app_usage_not_allowed: \"Invalid username or password.\",\n login_error_user_expired: \"The person is not valid.\",\n //login_error_app_usage_not_allowed: 'You are not allowed to use this app.',\n },\n passwordChange: {\n title: \"Password Change\",\n oldPassword: \"Original password\",\n newPassword: \"New password\",\n newPasswordVerification: \"New password verification\",\n error_not_same: \"New passwords do not match!\",\n error_contains_username: \"Password can not contain user name\",\n error_contains_3_chars: \"Password can not contain 3 same characters in a row\",\n error_contains_sequence: \"Password can not contain a rising sequence of characters\",\n error_password_in_history: \"The new password is identical with one password in history!\",\n error_invalid_old_password: \"The original password is not valid!\",\n },\n reports: {\n ErrorSource: \"Error source\",\n WorksheetTitle: \"Worksheet\",\n Params: \"Enter parameters\",\n JustPlan: \"Only plan\",\n JustReality: \"Only reality\",\n Both: \"Plan and reality\",\n Month: \"Month\",\n MonthFrom: \"Month from\",\n MonthTo: \"Month to\",\n Extended: \"Entended detail\",\n LoadReport: \"Load\",\n Codes: \"Show codes\",\n PrintChanges: \"Chow changes\",\n ShowBreaks: \"Show breaks\",\n ShowIntervals: \"Show intervals\",\n ToDate: \"To date\",\n },\n requests: {\n Approve: \"Appprove\",\n Approved: \"Appproved\",\n ApprovedBy: \"Appproved by\",\n CancelRequest: \"Cancel request\",\n Canceled: \"Canceled\",\n Comment: \"Note\",\n CreatedReq: \"Created\",\n DaysUpTo4: \"days\",\n DefaultAccount: \"Choose account\",\n ErrorRequiredNote: \"In case of rejecting you must enter a note.\",\n ErrorRequiredNoteUnava: \"A note is required to enter a request.\",\n Expired: \"After deadline\",\n ForPerson: \"For Person\",\n FromDate: \"From\",\n Fullday: \"Full day\",\n IsWrongDayOrder: \"The end day cannot be before the start day!\",\n NewReq: \"New\",\n NewRequest: \"New request\",\n NewRequestFor: \"New request for...\",\n NoData: \"No requests...\",\n NoAccounts: \"No accounts for workflow\",\n Pending: \"Pending\",\n Reject: \"Reject\",\n Rejected: \"Rejected\",\n RejectedElectronically: \"Rejected electonically\",\n RejectedHand: \"Rejected by hand\",\n RejectedBy: \"Rejected by\",\n RemainingDay: \"1 day left for approval\",\n RemainingDays: \"$0$ days left for approval\",\n RemainingDaysUpTo4: \"$0$ days left for approval\",\n RequestSingle: \"Request\",\n ReqForApproval: \"Requests\",\n Search: \"Search...\",\n ShowOnly: \"Only pending requests\",\n StateName: \"State\",\n ToDate: \"To\",\n Type: \"Type\",\n SelectAll: \"Select all\",\n ApproveSelected: \"Approve selected requests?\",\n RejectSelected: \"Reject selected requests?\",\n MassApprove: \"Mass approval\",\n },\n terminals: {\n GPSText: \"with location\",\n ChoosePass: \"Select a passage\",\n NotificationText: \"\",\n NotificationEnText: \"passage was inserted\",\n NotificationErrorText: \"Pass was not inserted due to connection error!\",\n Settings: \"Settings\",\n TitleTerminals: \"Terminal\",\n NoPass: \"\",\n },\n personalCard: {\n EmploymentNumber: \"Employment number\",\n Phone: \"Phone\",\n Profession: \"Profession\",\n ValidFrom: \"Valid from\",\n ValidTo: \"Valid to\",\n LastPassage: \"Last passage\",\n },\n unavailability: {\n CreatedUnavailability: \"Created\",\n New: \"New\",\n NewUnavailability: \"New unavailability\",\n NoteComment: \"Note\",\n TimeFrom: \"Time from\",\n TimeTo: \"Time to\",\n Unavailability: \"My unavailability\",\n Unavailabilities: \"Unavailabilities\",\n },\n worksheet: {\n Absence: \"Abs.\",\n AccountDefName: \"Account\",\n ApprovedWS: \"Approved by\",\n BalanceNext: \"Balance in the next period\",\n CalendarFund: \"Calendar fund\",\n ComputeTo: \"Compute to\",\n Confirmed: \"Confirmed by\",\n DaysWS: \"Days\",\n ErrorWS: \"Error\",\n Model: \"Model\",\n MonthAccounts: \"Monthly accounts\",\n MyWorksheetTitle: \"Worksheet\",\n NameWS: \"Name\",\n NoDataWorksheetNull: \"No data, please check if you have rights to see your worksheet.\",\n PassesWS: \"Passes\",\n Period: \"Period\",\n ShiftsFund: \"Shift fund\",\n Sign: \"Sign\",\n Signature: \"Signed\",\n SignTitle: \"Signing worksheet\",\n SignatureNeededWarning: \"Sign your worksheet!\",\n State_Approved: \"Approved\",\n State_Confirmed: \"Confirmed\",\n State_Open: \"Opened\",\n State_SignedElectronically: \"Signed electronically\",\n State_SignedHandwritten: \"Signed by hand\",\n TransferPast: \"Transfer from the past\",\n TransferNext: \"Transfer to the next period\",\n Worked: \"Work.\",\n Attachments: \"Attachments\",\n NoAttachments: \"No attachments are added.\",\n TakePicture: \"Take a picture\",\n AttachmentName: \"Name\",\n AttachmentNote: \"Note\",\n NewAttachemnt: \"New attachment\",\n Upload: \"Upload\",\n },\n worksheetStates: {\n TitleWSStates: \"Worksheet states\",\n AllChosen: \"All\",\n OnlyApprovedWS: \"Only approved\",\n OnlyCreated: \"Only opened\",\n OnlyConfirmed: \"Only confirmed\",\n OnlySigned: \"Only signed electronically\",\n OnlySignedHandwritten: \"Only by hand\",\n OnlyUnSigned: \"Only unsigned\",\n },\n planStates: {\n Application: \"Application\",\n Checked: \"Checked electronically\",\n CheckedHand: \"Checked by hand\",\n Unchecked: \"Unchecked\",\n Checkedby: \"Checked by\",\n ChangeFrom: \"Changed from\",\n ChangedBy: \"Approved by\",\n DateFrom: \"Period start\",\n DateTo: \"Period end\",\n DetailCheck: \"Check detail\",\n DetailRequest: \"Detail of change request\",\n NotPassed: \"Not passed\",\n OnlyNotPassed: \"Only not passed\",\n OnlyChecked: \"Only Checked electronically\",\n OnlyCheckedHand: \"Only Checked by hand\",\n OnlyUnchecked: \"Only Unchecked\",\n OnlyApprovedPS: \"Only Approved electronically\",\n OnlyApprovedPSHand: \"Only Approved by hand\",\n OnlyRejected: \"Only Rejected electronically\",\n OnlyRejectedHand: \"Only Rejected by hand\",\n Waiting: \"Waiting\",\n OnlyWaiting: \"Only Waiting\",\n PreferedKind: \"Preferred kind\",\n ApprovedState: \"Approved electronically\",\n ApprovedStateHand: \"Approved by hand\",\n TitlePS: \"Plan states\",\n },\n plan: {\n WasSubmittedBy: \"Was submitted by\",\n PlanWasChangedBy: \"Plan was changed by\",\n Legend: \"Legend\",\n DetailPlan: \"Detail\",\n RequestDetail: \"Request detail\",\n PlanChange: \"Plan change\",\n ApprovalOfPlanChanges: \"Approval of plan changes\",\n AcquaintanceWithPlan: \"Acquaintance with a plan\",\n Msg_ConfirmAcquaintWithYourPlanPlease: \"Confirm acquaint with your plan please.\",\n Msg_ApprovePlanChanges: \"Approve the plan changes.\",\n PlanName: \"Plan\",\n N3Days: \"3-Days\",\n Week: \"Week\",\n Msg_TooMuchPersons: 'Center \"{0}\" includes more persons than is allowed to load ({1}).',\n OutsideOfWorkplace: \"Outside of workplace\",\n Recalculate: \"Recalculate plans\",\n NotPublished: \"The plan is not published for this month.\",\n ContainsUnpublished: \"This month contains an interval with an unpublished plan.\",\n },\n presence: {\n DetailPresence: \"Presence detail\",\n AllPersons: \"All persons\",\n Present: \"Present\",\n OnlyInconsistent: \"Only with presence inconsistencies\",\n OnlyNotPresent: \"Only absent persons\",\n OnlyPresent: \"Only present persons\",\n OnlyWithShift: \"Only with planned shifts\",\n LastPassName: \"Last pass\",\n LastPassTime: \"Time of last pass\",\n MaxCount: 'Center \"{0}\" includes more persons than is allowed to load (1000).',\n ShiftName: \"Shift\",\n Absent: \"Absent\",\n Unknown: \"Unknown\",\n TerminalPres: \"Terminal\",\n TitlePresence: \"Presence\",\n },\n overtime: {\n Title: \"Overtime\",\n DialogTitle: \"Overtime\",\n Day: \"Day\",\n Note: \"Note\",\n From: \"Start\",\n To: \"End\",\n Account: \"Account\",\n },\n debug: {\n ErrorsMany: \"Errors\",\n ShowError: \"Show errors\",\n Msg_ClickForCopyDetailsIntoClipboard: \"Click for copy details into clipboard.\",\n Msg_DetailsSuccessfullyCopiedIntoClipboard: \"Details successfully copied into clipboard.\",\n },\n centerPicker: {\n NotSelected: \"Not selected\",\n NoSubcenters: \"No subcenters\",\n IncludingSubcenters: \"Including subcenters\",\n },\n responses: {\n over_limit: \"Vacation balance exceeded.\",\n attachment_upload_success: \"Attachment upload succeeded.\",\n attachment_upload_error: \"Attachment upload failed.\",\n date_reserved_unava: \"Selected period already contains unavailability.\",\n license_error: \"Number of SelfService users exceeds the number of licenses.\",\n },\n actions: {\n DepartmentPlanSelfServiceApp_RunApp: \"Department plan\",\n MyPlanSelfServiceApp_RunApp: \"My plan\",\n MyRequestsSelfServiceApp_RunApp: \"My requests\",\n MyUnavailabilitiesSelfServiceApp_RunApp: \"My unavailability\",\n MyWSSelfServiceApp_RunApp: \"My worksheet\",\n OvertimeSelfServiceApp_RunApp: \"My overtime\",\n PlanStatesSelfServiceApp_RunApp: \"States of plans\",\n PresenceSelfServiceApp_RunApp: \"Presence\",\n ReportsSelfServiceApp_RunApp: \"Reports\",\n RequestsApprovalSelfServiceApp_RunApp: \"Requests to approve\",\n TerminalSelfServiceApp_RunApp: \"Terminal\",\n UnavasApprovalSelfServiceApp_RunApp: \"Unavailabilities to approve\",\n WorksheetStatesSelfServiceApp_RunApp: \"States of worksheets\",\n },\n substitutions: {\n Person: \"Person:\",\n From: \"From:\",\n To: \"To:\",\n Substitution: \"Substitution\",\n Add: \"Add\",\n Edit: \"Edit\",\n Undo: \"Undo\",\n },\n};\n","export const cs = {\n common: {\n AllCatsLabel: \"\",\n Category: \"Kategorie\",\n Begin: \"Začátek\",\n Cancel: \"Zrušit\",\n Center: \"Středisko\",\n Close: \"Zavřít\",\n Confirm: \"Potvrdit\",\n Day: \"Den\",\n Delete: \"Smazat\",\n DeleteAll: \"Smazat vše\",\n End: \"Konec\",\n ErrorNotification: \"Došlo k neočekávané chybě.\",\n ErrorNotificationClient: \"Data nejsou dostupná, zkontrolujte připojení.\",\n ErrorNotificationServer: \"Došlo k chybě na serveru, kontaktujte správce.\",\n For: \"Pro\",\n Person: \"Osoba\",\n Change: \"Změnit\",\n Help: \"Nápověda\",\n Label: \"Popisek\",\n Language: \"Jazyk\",\n NameNote: \"Název\",\n No: \"Ne\",\n Approve: \"Odsouhlasit\",\n Deny: \"Zamítnout\",\n NoItems: \"Žádné položky\",\n OC: \"Osobní číslo\",\n Save: \"Uložit\",\n Shortcut: \"Zkratka\",\n Yes: \"Ano\",\n continue: \"Pokračovat\",\n },\n app: {\n ConfigurationDownloading: \"Stahování konfigurace\",\n LicenseChecking: \"Kontrola licence\",\n ServerChecking: \"Kontrola serveru\",\n Msg_AppDisabledByLicense: \"Použití aplikace je zakázáno licencí.\",\n PageNotFound: \"Stránka nenalezena.\",\n PageNotFoundTitle: \"404\",\n },\n dashboard: {\n Balance: \"Saldo\",\n BalanceError: \"Chyba salda\",\n VacationBalance: \"Zůstatek dovolené\",\n EmailForNotifications: \"Email pro notifikace\",\n ChangePerson: \"Změnit osobu\",\n DepartmentPlan: \"Plán oddělení\",\n FreeShifts: \"Volné směny\",\n Logout: \"Odhlásit\",\n MyAccount: \"Můj účet\",\n MyPlan: \"Můj plán\",\n MyRequests: \"Moje požadavky\",\n MyUnavailabilities: \"Moje nedostupnost\",\n OnlineTerminal: \"Terminál\",\n MyWorksheet: \"Můj pracovní list\",\n Reports: \"Reporty\",\n RequestsToApprove: \"Požadavky ke schválení\",\n RequestsToApprovePlnunava: \"Schvalování nedostupností\",\n PersonalCard: \"Karta osoby\",\n PlansStates: \"Stavy plánů\",\n Presence: \"Přítomnost\",\n WorkSheetStates: \"Stavy pracovních listů\",\n NotComputed: \"Nespočteno\",\n Days: \"Dní\",\n Hours: \"Hodiny\",\n Hours4: \"Hodin\",\n AdditionalVacation: \"Zůstatek dodatkové dovolené I\",\n AdditionalVacation2: \"Zůstatek dodatkové dovolené II\",\n Overtime: \"Moje přesčasy\",\n },\n lastPasses: {\n TitleLP: \"Průchody\",\n NoPasses: \"Žádné průchody...\",\n },\n login: {\n Username: \"Uživatelské jméno\",\n Password: \"Heslo\",\n Remember: \"Zapamatovat údaje\",\n Login: \"Přihlásit\",\n LoginDialog: \"Přihlašovací dialog\",\n CustomerCode: \"Kód zákazníka\",\n CustomerCodeChange: \"Změnit kód zákazníka\",\n login_error_user_not_registered: \"Chyba přihlášení: Uživatel nemá založen účet pro WebTime.\",\n login_error_invalid_grant: \"Neplatné uživatelské jméno nebo heslo.\",\n login_error_invalid_grant_multitenant: \"Neplatné uživatelské jméno, heslo nebo kód zákazníka.\",\n login_error_locked_account: \"Účet dočasně zablokován na {0} minut.\",\n login_error_app_usage_not_allowed: \"Neplatné uživatelské jméno nebo heslo.\",\n login_error_user_expired: \"Osoba mimo platnost.\",\n //login_error_app_usage_not_allowed: 'Nemáte povoleno používat tuto aplikaci.',\n },\n passwordChange: {\n title: \"Změna hesla\",\n oldPassword: \"Původní heslo\",\n newPassword: \"Nové heslo\",\n newPasswordVerification: \"Potvrzení nového hesla\",\n error_not_same: \"Nová hesla se neshodují!\",\n error_contains_username: \"Heslo nesmí obsahovat uživatelské jméno\",\n error_contains_3_chars: \"Heslo nesmí obsahovat sekvenci 3 opakujících se znaků\",\n error_contains_sequence: \"Heslo nesmí obsahovat stoupající nebo klesající posloupnost znaků\",\n error_password_in_history: \"Nové heslo je identické s některým heslem v historii!\",\n error_invalid_old_password: \"Původní heslo není platné!\",\n },\n reports: {\n ErrorSource: \"Zdroj chyby\",\n WorksheetTitle: \"Pracovní list\",\n Params: \"Zadejte parametry reportu\",\n JustPlan: \"Jen plán\",\n JustReality: \"Jen skutečnost\",\n Both: \"Plán i skutečnost\",\n Month: \"Měsíc\",\n MonthFrom: \"Měsíc od\",\n MonthTo: \"Měsíc do\",\n Extended: \"Rozšířený výpis\",\n LoadReport: \"Načíst\",\n Codes: \"Zobrazovat kódy\",\n PrintChanges: \"Zobrazovat změny\",\n ShowBreaks: \"Zobrazovat přestávky\",\n ShowIntervals: \"Zobrazovat intervaly\",\n ToDate: \"K datu\",\n },\n requests: {\n Approve: \"Schválit\",\n Approved: \"Schválen\",\n ApprovedBy: \"Schválil\",\n CancelRequest: \"Zrušit požadavek\",\n Canceled: \"Zrušen\",\n Comment: \"Poznámka\",\n CreatedReq: \"Vytvořen\",\n DaysUpTo4: \"dny\",\n DefaultAccount: \"Vyberte účet\",\n ErrorRequiredNote: \"Pro zamítnutí je potřeba zapsat poznámku.\",\n ErrorRequiredNoteUnava: \"Pro zadání požadavku je povinná poznámku.\",\n Expired: \"Po termínu\",\n ForPerson: \"Pro osobu\",\n FromDate: \"Od\",\n Fullday: \"Celodenní\",\n IsWrongDayOrder: \"Den konce nemůže být před dnem začátku!\",\n NewReq: \"Nový\",\n NewRequest: \"Nový požadavek\",\n NewRequestFor: \"Nový požadavek pro...\",\n NoData: \"Žádné požadavky...\",\n NoAccounts: \"Žádné účty pro plánování požadavků\",\n Pending: \"Čekající\",\n Reject: \"Zamítnout\",\n Rejected: \"Zamítnut\",\n RejectedElectronically: \"Zamítnut elektronicky\",\n RejectedHand: \"Zamítnut ručně\",\n RejectedBy: \"Zamítnul\",\n RemainingDay: \"Do konce seznámení zbývá 1 den\",\n RemainingDays: \"Do konce seznámení zbývá $0$ dní\",\n RemainingDaysUpTo4: \"Do konce seznámení zbývájí $0$ dny\",\n RequestSingle: \"Požadavek\",\n ReqForApproval: \"Požadavky\",\n Search: \"Hledat...\",\n ShowOnly: \"Jen čekající požadavky\",\n StateName: \"Stav\",\n ToDate: \"Do\",\n Type: \"Typ\",\n SelectAll: \"Vybrat vše\",\n ApproveSelected: \"Schválit vybrané požadavky?\",\n RejectSelected: \"Zamítnout vybrané požadavky?\",\n MassApprove: \"Hromadné schvalování\",\n },\n terminals: {\n GPSText: \"na souřadnicích\",\n ChoosePass: \"Vyberte průchod\",\n NotificationText: \"Byl vložen průchod typu\",\n NotificationEnText: \"\",\n NotificationErrorText: \"Průchod nebyl vložen! Zkontrolujte připojení\",\n Settings: \"Nastavení\",\n TitleTerminals: \"Terminál\",\n NoPass: \"<Žádný průchod>\",\n },\n personalCard: {\n EmploymentNumber: \"Číslo prac. poměru\",\n Phone: \"Telefon\",\n Profession: \"Profese\",\n ValidFrom: \"Platný od\",\n ValidTo: \"Platný do\",\n LastPassage: \"Poslední průchod\",\n },\n unavailability: {\n CreatedUnavailability: \"Vytvořeno\",\n New: \"Nová\",\n NewUnavailability: \"Nová nedostupnost\",\n NoteComment: \"Poznámka\",\n TimeFrom: \"Čas od\",\n TimeTo: \"Čas do\",\n Unavailability: \"Mé nedostupnosti\",\n Unavailabilities: \"Nedostupnosti\",\n },\n worksheet: {\n Absence: \"Abs.\",\n AccountDefName: \"Účet\",\n ApprovedWS: \"Schváleno\",\n BalanceNext: \"Saldo v příštím období\",\n CalendarFund: \"Fond dle kalendáře sjednaný/stanovený\",\n ComputeTo: \"Počítat do\",\n Confirmed: \"Potvrzeno\",\n DaysWS: \"Dny\",\n ErrorWS: \"Chyba\",\n Model: \"Model\",\n MonthAccounts: \"Měsíční účty\",\n MyWorksheetTitle: \"Pracovní list\",\n NameWS: \"Jméno\",\n NoDataWorksheetNull: \"Žádná data k zobrazení, zkontrolujte přístup na svou osobu.\",\n PassesWS: \"Průchody\",\n Period: \"Období\",\n ShiftsFund: \"Fond dle směn\",\n Sign: \"Podepsat\",\n Signature: \"Podepsal\",\n SignTitle: \"Podepsání pracovního listu\",\n SignatureNeededWarning: \"Podepište si svůj pracovní list!\",\n State_Approved: \"Schválený\",\n State_Confirmed: \"Potvrzený\",\n State_Open: \"Otevřený\",\n State_SignedElectronically: \"Podepsaný elektronicky\",\n State_SignedHandwritten: \"Podepsaný ručně\",\n TransferPast: \"Převod z minula\",\n TransferNext: \"Převod do dalšího období\",\n Worked: \"Odpr.\",\n Attachments: \"Přílohy\",\n NoAttachments: \"Nejsou přiloženy žádné přilohy.\",\n TakePicture: \"Vyfotit\",\n AttachmentName: \"Název\",\n AttachmentNote: \"Poznámka\",\n NewAttachemnt: \"Nová přiloha\",\n Upload: \"Nahrát\",\n },\n worksheetStates: {\n TitleWSStates: \"Stavy PL\",\n AllChosen: \"Vše\",\n OnlyApprovedWS: \"Jen schválené\",\n OnlyCreated: \"Jen otevřené\",\n OnlyConfirmed: \"Jen potvrzené\",\n OnlySigned: \"Jen podepsané elektronicky\",\n OnlySignedHandwritten: \"Jen podpsané ručním podpisem\",\n OnlyUnSigned: \"Jen nepodepsané\",\n },\n planStates: {\n Application: \"Aplikace\",\n Checked: \"Seznámen elektronicky\",\n CheckedHand: \"Seznámen ručně\",\n Unchecked: \"Neseznámen\",\n Checkedby: \"Seznámil\",\n ChangeFrom: \"Změna od\",\n ChangedBy: \"Odsouhlasil\",\n DateFrom: \"Období od\",\n DateTo: \"Období do\",\n DetailCheck: \"Detail seznámení\",\n DetailRequest: \"Detail požadavku na změnu\",\n NotPassed: \"Nepředaný\",\n OnlyNotPassed: \"Jen nepředané\",\n OnlyChecked: \"Jen seznámené elektronicky\",\n OnlyCheckedHand: \"Jen seznámené ručně\",\n OnlyUnchecked: \"Jen neseznámené\",\n OnlyApprovedPS: \"Jen odsouhlasené elektronicky\",\n OnlyApprovedPSHand: \"Jen odsouhlasené ručně\",\n OnlyRejected: \"Jen zamítnuté elektronicky\",\n OnlyRejectedHand: \"Jen zamítnuté ručně\",\n Waiting: \"Čekající na odsouhlasení\",\n OnlyWaiting: \"Jen čekající na odsouhlasení\",\n ApprovedState: \"Odsouhlasen elektronicky\",\n ApprovedStateHand: \"Odsouhlasen ručně\",\n PreferedKind: \"Preferovaný způsob\",\n TitlePS: \"Stavy plánů\",\n },\n plan: {\n WasSubmittedBy: \"Předal k seznámení\",\n PlanWasChangedBy: \"Plán změnil\",\n Legend: \"Legenda\",\n DetailPlan: \"Detail\",\n RequestDetail: \"Detail požadavku\",\n PlanChange: \"Změna plánu\",\n ApprovalOfPlanChanges: \"Odsouhlasení změn plánu\",\n AcquaintanceWithPlan: \"Seznámení s plánem\",\n Msg_ConfirmAcquaintWithYourPlanPlease: \"Potvrďte prosím seznámení se svým plánem.\",\n Msg_ApprovePlanChanges: \"Odsouhlaste změny v plánu.\",\n PlanName: \"Plán\",\n N3Days: \"3-Dny\",\n Week: \"Týden\",\n Msg_TooMuchPersons: 'Středisko \"{0}\" zahrnuje víc osob než je povoleno načíst ({1}).',\n OutsideOfWorkplace: \"Mimo pracoviště\",\n Recalculate: \"Přepočítat plány\",\n NotPublished: \"Pro tento měsíc nebyl předán plán k seznámení.\",\n ContainsUnpublished: \"Tento měsíc obsahuje období, pro které nebyl předán plán k seznámení.\",\n },\n presence: {\n DetailPresence: \"Detail přítomnosti\",\n AllPersons: \"Všechny osoby\",\n Present: \"Přítomen\",\n OnlyInconsistent: \"Jen s nesrovnalostmi přítomnosti\",\n OnlyNotPresent: \"Pouze nepřítomné osoby\",\n OnlyPresent: \"Pouze přítomné osoby\",\n OnlyWithShift: \"Jen s naplánovanou směnou\",\n LastPassName: \"Poslední průchod\",\n LastPassTime: \"Čas posledního průchodu\",\n MaxCount: 'Středisko \"{0}\" zahrnuje víc osob než je povoleno načíst (1000).',\n ShiftName: \"Směna\",\n Absent: \"Nepřítomen\",\n Unknown: \"Nezjištěn\",\n TerminalPres: \"Terminál\",\n TitlePresence: \"Přítomnost\",\n },\n overtime: {\n Title: \"Přesčasy\",\n DialogTitle: \"Přesčas\",\n Day: \"Den\",\n Note: \"Poznámka\",\n From: \"Začátek\",\n To: \"Konec\",\n Account: \"Účet\",\n },\n debug: {\n ErrorsMany: \"Chyby\",\n ShowError: \"Zobrazit chyby\",\n Msg_ClickForCopyDetailsIntoClipboard: \"Klikněte pro zkopírování podrobností do schránky.\",\n Msg_DetailsSuccessfullyCopiedIntoClipboard: \"Podrobnosti úspěšně zkopírovány do schránky.\",\n },\n centerPicker: {\n NotSelected: \"Nevybráno\",\n NoSubcenters: \"Žádná podstřediska\",\n IncludingSubcenters: \"Včetně podstředisek\",\n },\n responses: {\n over_limit: \"Překročen zůstatek dovolené.\",\n attachment_upload_success: \"Přiloha byla nahrána.\",\n attachment_upload_error: \"Nahrání přílohy se nezdařilo.\",\n date_reserved_unava: \"Vybrané období již obsahuje nedostupnost.\",\n license_error: \"Počet uživatelů SelfService překračuje počet licencí.\",\n },\n actions: {\n DepartmentPlanSelfServiceApp_RunApp: \"Plán oddělení\",\n MyPlanSelfServiceApp_RunApp: \"Můj plán\",\n MyRequestsSelfServiceApp_RunApp: \"Moje požadavky\",\n MyUnavailabilitiesSelfServiceApp_RunApp: \"Moje nedostupnosti\",\n MyWSSelfServiceApp_RunApp: \"Můj pracovní list\",\n OvertimeSelfServiceApp_RunApp: \"Moje přesčasy\",\n PlanStatesSelfServiceApp_RunApp: \"Stavy plánů\",\n PresenceSelfServiceApp_RunApp: \"Přítomnost\",\n ReportsSelfServiceApp_RunApp: \"Reporty\",\n RequestsApprovalSelfServiceApp_RunApp: \"Požadavky ke schválení\",\n TerminalSelfServiceApp_RunApp: \"Terminál\",\n UnavasApprovalSelfServiceApp_RunApp: \"Nedostupnosti ke schválení\",\n WorksheetStatesSelfServiceApp_RunApp: \"Stavy pracovních listů\",\n },\n substitutions: {\n Person: \"Osoba:\",\n From: \"Od:\",\n To: \"Do:\",\n Substitution: \"Zastupování\",\n Add: \"Přidat\",\n Edit: \"Upravit\",\n Undo: \"Vrátit\",\n },\n};\n","export const sk = {\n common: {\n AllCatsLabel: \"\",\n Category: \"Kategórie\",\n Begin: \"Začiatok\",\n Cancel: \"Zrušiť\",\n Center: \"Stredisko\",\n Close: \"Zavrieť\",\n Confirm: \"Potvrdiť\",\n Day: \"Deň\",\n Delete: \"Zmazať\",\n DeleteAll: \"Zmazať všetko\",\n End: \"Koniec\",\n ErrorNotification: \"Došlo k neočakávanej chybe.\",\n ErrorNotificationClient: \"Dáta nie sú dostupné, zkontrolujte připojení.\",\n ErrorNotificationServer: \"Došlo k chybe na serveri, kontaktujte správce.\",\n For: \"Pre\",\n Person: \"Osoba\",\n Change: \"Zmeniť\",\n Help: \"Nápoveda\",\n Label: \"Popisok\",\n Language: \"Jazyk\",\n NameNote: \"Názov\",\n No: \"Nie\",\n NoItems: \"Žiadne položky\",\n OC: \"Osobné číslo\",\n Save: \"Uložiť\",\n Shortcut: \"Skratka\",\n Yes: \"Áno\",\n Approve: \"Schváliť\",\n Deny: \"Zamietnuť\",\n continue: \"Pokračovať\",\n },\n app: {\n ConfigurationDownloading: \"Sťahovanie konfigurácie\",\n LicenseChecking: \"Kontrola licencie\",\n ServerChecking: \"Kontrola servera\",\n Msg_AppDisabledByLicense: \"Použitie aplikácie je zakázané licenciou.\",\n PageNotFound: \"Stránka nenájdená.\",\n PageNotFoundTitle: \"404\",\n },\n dashboard: {\n Balance: \"Saldo\",\n BalanceError: \"Chyba salda\",\n VacationBalance: \"Zostatok dovolenky\",\n EmailForNotifications: \"Email pre notifikácie\",\n ChangePerson: \"Zmeniť osobu\",\n DepartmentPlan: \"Plán oddelenia\",\n FreeShifts: \"Voľné zmeny\",\n Logout: \"Odhlásiť\",\n MyAccount: \"Môj účet\",\n MyPlan: \"Môj plán\",\n MyRequests: \"Moje požiadavky\",\n MyUnavailabilities: \"Moja nedostupnosť\",\n OnlineTerminal: \"Terminál\",\n MyWorksheet: \"Môj pracovný list\",\n Reports: \"Reporty\",\n RequestsToApprove: \"Požiadavky na schválenie\",\n RequestsToApprovePlnunava: \"Schvaľovanie nedostupností\",\n PersonalCard: \"Karta osoby\",\n PlansStates: \"Stavy plánov\",\n Presence: \"Prítomnosť\",\n WorkSheetStates: \"Stavy pracovných listov\",\n NotComputed: \"Nespočítané\",\n Days: \"Dní\",\n Hours: \"Hodiny\",\n Hours4: \"Hodín\",\n AdditionalVacation: \"Zostatok dodatkovej dovolenky I\",\n AdditionalVacation2: \"Zostatok dodatkovej dovolenky II\",\n Overtime: \"Moje nadčasy\",\n },\n lastPasses: {\n TitleLP: \"Priechody\",\n NoPasses: \"Žiadne priechody...\",\n },\n login: {\n Username: \"Užívateľské meno\",\n Password: \"Heslo\",\n Remember: \"Zapamätať údaje\",\n Login: \"Prihlásiť\",\n LoginDialog: \"Prihlasovací dialóg\",\n CustomerCode: \"Kód zákazníka\",\n CustomerCodeChange: \"Zmeniť kód zákazníka\",\n login_error_user_not_registered: \"Chyba prihlásenia: Užívateľ nemá založený účet pre WebTime.\",\n login_error_invalid_grant: \"Neplatné užívateľské meno alebo heslo.\",\n login_error_invalid_grant_multitenant: \"Neplatné uživateľské meno, heslo alebo kód zákazníka.\",\n login_error_locked_account: \"Účet dočasne zablokovaný na {0} minút.\",\n login_error_app_usage_not_allowed: \"Neplatné užívateľské meno alebo heslo.\",\n login_error_user_expired: \"Osoba mimo platnosť.\",\n //login_error_app_usage_not_allowed: 'Nemáte povolené používať túto aplikáciu.',\n },\n passwordChange: {\n title: \"Zmena hesla\",\n oldPassword: \"Pôvodné heslo\",\n newPassword: \"Nové heslo\",\n newPasswordVerification: \"Potvrdenie nového hesla\",\n error_not_same: \"Nové heslá sa nezhodujú!\",\n error_contains_username: \"Heslo nesmie obsahovať užívateľské meno\",\n error_contains_3_chars: \"Heslo nesmie obsahovať sekvenciu 3 opakujúcich sa znakov\",\n error_contains_sequence: \"Heslo nesmie obsahovať stúpajúci alebo klesajúci postupnosť znakov\",\n error_password_in_history: \"Nové heslo je identické s niektorým heslom v histórii!\",\n error_invalid_old_password: \"Pôvodné heslo nie je platné!\",\n },\n reports: {\n ErrorSource: \"Zdroj chyby\",\n WorksheetTitle: \"Pracovný list\",\n Params: \"Zadajte parametre reportu\",\n JustPlan: \"Len plán\",\n JustReality: \"Len skutočnosť\",\n Both: \"Plán aj skutočnosť\",\n Month: \"Mesiac\",\n MonthFrom: \"Mesiac od\",\n MonthTo: \"Mesiac do\",\n Extended: \"Rozšírený výpis\",\n LoadReport: \"Načítať\",\n Codes: \"Zobrazovať kódy\",\n PrintChanges: \"Zobrazovať zmeny\",\n ShowBreaks: \"Zobrazovať prestávky\",\n ShowIntervals: \"Zobrazovať intervaly\",\n ToDate: \"K dátumu\",\n },\n requests: {\n Approve: \"Schváliť\",\n Approved: \"Schválený\",\n ApprovedBy: \"Schválil\",\n CancelRequest: \"Zrušiť požiadavku\",\n Canceled: \"Zrušený\",\n Comment: \"Poznámka\",\n CreatedReq: \"Vytvorený\",\n DaysUpTo4: \"dni\",\n DefaultAccount: \"Vyberte účet\",\n ErrorRequiredNote: \"Pre zamietnutia je potreba zapísať poznámku\",\n ErrorRequiredNoteUnava: \"Na zadanie požiadavky je potrebná poznámka.\",\n Expired: \"Po termíne\",\n ForPerson: \"Pre osobu\",\n FromDate: \"Od\",\n Fullday: \"Celodenné\",\n IsWrongDayOrder: \"Deň konca nemôže byť pred dňom začiatku!\",\n NewReq: \"Nový\",\n NewRequest: \"Nová požiadavka\",\n NewRequestFor: \"Nová požiadavka pre ...\",\n NoData: \"Žiadne požiadavky ...\",\n NoAccounts: \"Žiadne účty pre plánovanie požiadaviek\",\n Pending: \"Čakajúci\",\n Reject: \"Zamietnuť\",\n Rejected: \"Zamietnutý\",\n RejectedElectronically: \"Zamietnutý elektronicky\",\n RejectedHand: \"Zamietnutý ručně\",\n RejectedBy: \"Zamietol\",\n RemainingDay: \"Do konca zoznámenie zostáva 1 deň\",\n RemainingDays: \"Do konca zoznámenie zostáva $0$ dní\",\n RemainingDaysUpTo4: \"Do konca zoznámenie zostávajú $0$ dni\",\n RequestSingle: \"Požiadavka\",\n ReqForApproval: \"Požiadavky\",\n Search: \"Hľadať ...\",\n ShowOnly: \"Len čakajúce požiadavky\",\n StateName: \"Stav\",\n ToDate: \"Do\",\n Type: \"Typ\",\n SelectAll: \"Vybrať všetky\",\n ApproveSelected: \"Schváliť vybrané požiadavky?\",\n RejectSelected: \"Zamietnuť vybrané požiadavky?\",\n MassApprove: \"Hromadné schvaľovanie\",\n },\n terminals: {\n GPSText: \"na súradniciach\",\n ChoosePass: \"Vyberte priechod\",\n NotificationText: \"Bol vložený priechod typu\",\n NotificationEnText: \"\",\n NotificationErrorText: \"Priechod nebol vložený! Skontrolujte pripojenie.\",\n Settings: \"Nastavenie\",\n TitleTerminals: \"Terminál\",\n NoPass: \"<Žiadny priechod>\",\n },\n personalCard: {\n EmploymentNumber: \"Číslo prac. pomeru\",\n Phone: \"Telefón\",\n Profession: \"Profesia\",\n ValidFrom: \"Platný od\",\n ValidTo: \"Platný do\",\n LastPassage: \"Posledný priechod\",\n },\n unavailability: {\n CreatedUnavailability: \"Vytvorené\",\n New: \"Nová\",\n NewUnavailability: \"Nová nedostupnosť\",\n NoteComment: \"Poznámka\",\n TimeFrom: \"Čas od\",\n TimeTo: \"Čas do\",\n Unavailability: \"Moje nedostupnosti\",\n Unavailabilities: \"Nedostupnosti\",\n },\n worksheet: {\n Absence: \"Abs.\",\n AccountDefName: \"Účet\",\n ApprovedWS: \"Schválené\",\n BalanceNext: \"Saldo v budúcom období\",\n CalendarFund: \"Fond podľa kalendára dohodnutý/stanovený\",\n ComputeTo: \"Počítať do\",\n Confirmed: \"Potvrdené\",\n DaysWS: \"Dni\",\n ErrorWS: \"Chyba\",\n Model: \"Model\",\n MonthAccounts: \"Mesačné účty\",\n MyWorksheetTitle: \"Pracovný list\",\n NameWS: \"Meno\",\n NoDataWorksheetNull: \"Žiadne dáta na zobrazenie, skontrolujte prístup na svoju osobu.\",\n PassesWS: \"Priechody\",\n Period: \"Obdobie\",\n ShiftsFund: \"Fond podľa zmien\",\n Sign: \"Podpísať\",\n Signature: \"Podpísal\",\n SignTitle: \"Podpísanie pracovného listu\",\n SignatureNeededWarning: \"Podpíšte si svoj pracovný list!\",\n State_Approved: \"Schválený\",\n State_Confirmed: \"Potvrdený\",\n State_Open: \"Otvorený\",\n State_SignedElectronically: \"Podpísaný elektronicky\",\n State_SignedHandwritten: \"Podpísaný ručne\",\n TransferPast: \"Prevod z minula\",\n TransferNext: \"Prevod do ďalšieho obdobia\",\n Worked: \"Odpr.\",\n Attachments: \"Prílohy\",\n NoAttachments: \"Nie sú priložené žiadne prílohy.\",\n TakePicture: \"Vyfotit\",\n AttachmentName: \"Názov\",\n AttachmentNote: \"Poznámka\",\n NewAttachemnt: \"Nová priloha\",\n Upload: \"Nahrať\",\n },\n worksheetStates: {\n TitleWSStates: \"Stavy PL\",\n AllChosen: \"Všetky\",\n OnlyApprovedWS: \"Iba schválené\",\n OnlyCreated: \"Iba otvorené\",\n OnlyConfirmed: \"Iba potvrdené\",\n OnlySigned: \"Iba podpísané elektronicky\",\n OnlySignedHandwritten: \"Iba podpísané ručne\",\n OnlyUnSigned: \"Iba nepodpísané\",\n },\n planStates: {\n Application: \"Aplikácia\",\n Checked: \"Oboznámený elektronicky\",\n CheckedHand: \"Oboznámený ručne\",\n Unchecked: \"Neoboznámený\",\n Checkedby: \"Oboznámil\",\n ChangeFrom: \"Zmena od\",\n ChangedBy: \"Odsúhlasil\",\n DateFrom: \"Obdobie od\",\n DateTo: \"Obdobie do\",\n DetailCheck: \"Detail oboznámenia\",\n DetailRequest: \"Detail požiadavky na zmenu\",\n NotPassed: \"Nepostúpený\",\n OnlyNotPassed: \"Iba nepostúpené\",\n OnlyChecked: \"Iba oboznámené elektronicky\",\n OnlyCheckedHand: \"Iba oboznámené ručne\",\n OnlyUnchecked: \"Iba neoboznámené\",\n OnlyApprovedPS: \"Iba odsúhlasené elektronicky\",\n OnlyApprovedPSHand: \"Iba odsúhlasené ručne\",\n OnlyRejected: \"Iba zamietnuté elektronicky\",\n OnlyRejectedHand: \"Iba zamietnuté ručne\",\n Waiting: \"Čakajúce na odsúhlasenie\",\n OnlyWaiting: \"Iba čakajúce na odsúhlasenie\",\n ApprovedState: \"Odsúhlasený elektronicky\",\n ApprovedStateHand: \"Odsúhlasený ručne\",\n PreferedKind: \"Preferovaný spôsob\",\n TitlePS: \"Stavy plánov\",\n },\n plan: {\n WasSubmittedBy: \"Odovzdal na oboznámenie\",\n PlanWasChangedBy: \"Plán zmenil\",\n Legend: \"Legenda\",\n DetailPlan: \"Detail\",\n RequestDetail: \"Detail požiadavky\",\n PlanChange: \"Zmena plánu\",\n ApprovalOfPlanChanges: \"Odsúhlasenie zmien plánu\",\n AcquaintanceWithPlan: \"Zoznámenie s plánom\",\n Msg_ConfirmAcquaintWithYourPlanPlease: \"Potvrďte prosím zoznámenie so svojím plánom.\",\n Msg_ApprovePlanChanges: \"Odsúhlaste zmeny v pláne.\",\n PlanName: \"Plán\",\n N3Days: \"3-Dni\",\n Week: \"Týždeň\",\n Msg_TooMuchPersons: 'Stredisko \"{0}\" zahŕňa viac osôb ako je povolené načítať ({1}).',\n OutsideOfWorkplace: \"Mimo pracoviska\",\n Recalculate: \"Prepočítať plány\",\n NotPublished: \"Pre tento mesiac nebol predložen plán na zoznámenie.\",\n ContainsUnpublished: \"Tento mesiac obsahuje obdobie, pre ktoré nebol predložen plán na zoznámenie.\",\n },\n presence: {\n DetailPresence: \"Detail prítomnosti\",\n AllPersons: \"Všetky osoby\",\n Present: \"Prítomný\",\n OnlyInconsistent: \"Len s nezrovnalosťami prítomnosti\",\n OnlyNotPresent: \"Len neprítomné osoby\",\n OnlyPresent: \"Len prítomné osoby\",\n OnlyWithShift: \"Len s naplánovanou zmenou\",\n Absent: \"Neprítomný\",\n Unknown: \"Nezistený\",\n LastPassName: \"Posledný priechod\",\n LastPassTime: \"Čas posledného priechodu\",\n MaxCount: 'Stredisko \"{0}\" zahŕňa viac osôb ako je povolené načítať (1000).',\n ShiftName: \"Zmena\",\n TerminalPres: \"Terminál\",\n TitlePresence: \"Prítomnosť\",\n },\n overtime: {\n Title: \"Nadčasy\",\n DialogTitle: \"Nadčas\",\n Day: \"Deň\",\n Note: \"Poznámka\",\n From: \"Začíatok\",\n To: \"Koniec\",\n Account: \"Účet\",\n },\n debug: {\n ErrorsMany: \"Chyby\",\n ShowError: \"Zobraziť chyby\",\n Msg_ClickForCopyDetailsIntoClipboard: \"Kliknite pre skopírovanie podrobností do schránky.\",\n Msg_DetailsSuccessfullyCopiedIntoClipboard: \"Podrobnosti úspešne skopírované do schránky.\",\n },\n centerPicker: {\n NotSelected: \"Nevybrané\",\n NoSubcenters: \"Žiadne podstrediská\",\n IncludingSubcenters: \"Vrátane podstredísk\",\n },\n responses: {\n over_limit: \"Prekročený zostatok dovolenky.\",\n attachment_upload_success: \"Príloha bola nahraná.\",\n attachment_upload_error: \"Nahrávanie prílohy sa nepodarilo.\",\n date_reserved_unava: \"Vybrané obdobie už obsahuje nedostupnosť.\",\n license_error: \"Počet užívateľov SelfService prekračuje počet licencií.\",\n },\n actions: {\n DepartmentPlanSelfServiceApp_RunApp: \"Plán oddelenia\",\n MyPlanSelfServiceApp_RunApp: \"Môj plán\",\n MyRequestsSelfServiceApp_RunApp: \"Moje požiadavky\",\n MyUnavailabilitiesSelfServiceApp_RunApp: \"Moja nedostupnosť\",\n MyWSSelfServiceApp_RunApp: \"Môj pracovný list\",\n OvertimeSelfServiceApp_RunApp: \"Moje nadčasy\",\n PlanStatesSelfServiceApp_RunApp: \"Stavy plánov\",\n PresenceSelfServiceApp_RunApp: \"Prítomnosť\",\n ReportsSelfServiceApp_RunApp: \"Reporty\",\n RequestsApprovalSelfServiceApp_RunApp: \"Požiadavky na schválenie\",\n TerminalSelfServiceApp_RunApp: \"Terminál\",\n UnavasApprovalSelfServiceApp_RunApp: \"Schvaľovanie nedostupností\",\n WorksheetStatesSelfServiceApp_RunApp: \"Stavy pracovných listov\",\n },\n substitutions: {\n Person: \"Osoba:\",\n From: \"Od:\",\n To: \"Do:\",\n Substitution: \"Zastupovanie\",\n Add: \"Pridať\",\n Edit: \"Upraviť\",\n Undo: \"Vrátiť\",\n },\n};\n","import { ILanguage } from \"../model/localization/ILanguage\";\nimport { IStrings } from \"../constants/languageStrings/IStrings\";\nimport { IStringsSection } from \"../model/localization/IStringsSection\";\nimport { strings } from \"../constants/strings\";\n\nexport function selectTranslations(language: ILanguage): IStrings {\n return strings[language.code] ?? createClearCopyRecursively(strings.en as unknown as IStringsSection);\n}\n\nfunction createClearCopyRecursively(section: IStringsSection): IStringsSection {\n const dolly: IStringsSection = {};\n\n for (const field in section) {\n if (Object.prototype.hasOwnProperty.call(section, field)) {\n const element = section[field];\n\n if (typeof element === \"object\") dolly[field] = createClearCopyRecursively(element);\n else if (typeof element === \"string\") dolly[field] = `_${field}`;\n else dolly[field] = element;\n }\n }\n\n return dolly;\n}\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { initialLanguage, languages } from \"../../constants/languages\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { selectTranslations } from \"../../localization/selectTranslations\";\n\nexport interface ILocalizationState {\n language: ILanguage;\n strings: IStrings;\n}\n\ntype SetPayload = {\n language: ILanguage;\n strings: IStrings;\n};\n\nexport const localizationSlice = createSlice({\n name: \"localization\",\n initialState: {\n language: initialLanguage,\n strings: selectTranslations(initialLanguage),\n } as ILocalizationState,\n reducers: {\n init: {\n reducer: (state, action: PayloadAction) => ({\n language: action.payload.language,\n strings: action.payload.strings,\n }),\n prepare: () => {\n const browserLangIsoCode = navigator?.language ?? \"\";\n const language = languages.find(l => browserLangIsoCode.startsWith(l.code)) ?? initialLanguage;\n\n return {\n payload: {\n language: language,\n strings: selectTranslations(language),\n },\n };\n },\n },\n set: {\n reducer: (state, action: PayloadAction) => ({\n language: action.payload.language,\n strings: action.payload.strings,\n }),\n prepare: (language: ILanguage) => ({\n payload: {\n language: language,\n strings: selectTranslations(language),\n },\n }),\n },\n },\n});\n","import { useDispatch } from \"react-redux\";\nimport { AppDispatch } from \"..\";\n\nexport function useAppDispatch() {\n return useDispatch();\n}\n","import React from \"react\";\nimport { DropDownList, ListItemProps } from \"@progress/kendo-react-dropdowns\";\nimport styles from \"./LanguageDropDown.module.css\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { languages } from \"../../constants/languages\";\nimport { localizationSlice } from \"../../redux/slices/localization\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\n\ninterface Props {\n label?: string;\n}\n\nexport function LanguageDropDown(props: Props) {\n function renderRow(lang: ILanguage) {\n return (\n
\n {lang.shortcut}\n {lang.shortcut}\n
\n );\n }\n\n function renderItem(li: React.ReactElement, props: ListItemProps) {\n const lang = props.dataItem as ILanguage;\n\n return React.cloneElement(li, li.props, renderRow(lang));\n }\n\n function renderValue(span: React.ReactElement, language: ILanguage) {\n if (language == null) return span;\n else return React.cloneElement(span, span.props, renderRow(language));\n }\n\n const language = useAppSelector(s => s.localization.language);\n const dispatch = useAppDispatch();\n return (\n dispatch(localizationSlice.actions.set(e.value))}\n />\n );\n}\n\nexport default LanguageDropDown;\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { IDashboardData } from \"../../model/dashboard/IDashboardData\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { selectEndpoint } from \"../selectors/selectEndpoint\";\nimport { AppThunkAction } from \"../../model/redux/AppThunkAction\";\n\nexport const fetchDashboardData = createAsyncThunk(\n \"dashboard/data/fetch\",\n async function (arg, api) {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Accept-Language\": api.getState().localization.language.code,\n \"Authorization\": `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n signal: api.signal,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/DashboardData\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n\nexport function updatePersonalPreferences(): AppThunkAction {\n return async (dispatch, getState) => {\n const locale = getState().localization.language.code;\n\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${getState().session.user.token?.access_token}`,\n },\n body: JSON.stringify({\n Item1: locale,\n Item2: getState().session.substitution.substitutions.filter(\n f => (f.deleted && !f.new) || f.edited || (f.new && !f.deleted)\n ),\n }),\n };\n\n const r = await fetch(\n selectEndpoint(getState()) + \"/controllers/SelfService/UpdatePersonalPreferences\",\n requestOptions\n );\n await handleResponseError(r);\n };\n}\n","import { IRootState } from \"../reducers/root\";\n\nexport function selectUserFullname(state: IRootState, actual?: boolean): string {\n if (!actual) {\n return (\n state.session.userList.users.find(user => user.ixs_ref === state.session.userList.selectedIxsRef)\n ?.fullname ?? \"\"\n );\n }\n\n const token = state.session.user.token;\n\n const firstname = token?.givenName ?? \"\";\n const lastname = token?.surname ?? \"\";\n const degBef = token?.degreeBefore ?? \"\";\n const degAft = token?.degreeAfter ?? \"\";\n const pn = token?.personalNumber ?? \"\";\n const order = token?.orderOfEmployment ?? \"\";\n\n return `${lastname} ${firstname} ${degBef} ${degAft} ${pn} (${order})`.replace(/ {2,}/, \" \").replace(\"()\", \"\");\n}\n","import { createAction, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { ISubstitutuinState } from \"../reducers/substitutions\";\nimport { IRootState } from \"../reducers/root\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\n\nexport const fetchSubstitutions = createAsyncThunk, void, { state: IRootState }>(\n \"substitution/fetchSubstitutions\",\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/GetSubstitutions\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n let result = await response.json();\n return result;\n }\n);\n\nexport const editSubstitution = createAction<{\n id: number;\n ixsref: string;\n start: string;\n end: string;\n actions: string[];\n}>(\"substitution/editSubstitution\");\n\nexport const createSubstitution = createAction<{\n ixsref: string;\n start: string;\n end: string;\n actions: string[];\n}>(\"substitution/createSubstitution\");\n\nexport const toggleSubstitution = createAction(\"substitution/toggleSubstitution\");\n","import { useAppSelector } from \"./useAppSelector\";\n\nexport function usePermissions() {\n const token = useAppSelector(s => s.session.user.token);\n let invis: string[] = token?.userInvisibleActions ?? [];\n let disab: string[] = token?.userDisabledActions ?? [];\n return invis.concat(disab);\n}\n","export const permissions = {\n app: {\n run: \"SelfServiceApp_RunApp\",\n },\n // passes: {\n // \trun: \"PassesApp_RunApp\",\n // },\n // persons: {\n // \trun: \"PersonsApp_RunApp\",\n // },\n plan: {\n run: \"MyPlanSelfServiceApp_RunApp\",\n absence: \"PlanApp_Absence\",\n check: \"PlanSelfServiceApp_CheckPlan\",\n approve: \"PlanSelfServiceApp_ApprovePlan\",\n reqNote: \"PlanSelfServiceApp_RequiredNote\",\n },\n categoryFilter: {\n enable: \"SelfServiceApp_CategoryFilter\",\n },\n departmentPlan: {\n run: \"DepartmentPlanSelfServiceApp_RunApp\",\n absence: \"SelfServiceApp_InsertAbsence\",\n },\n planStates: {\n run: \"PlanStatesSelfServiceApp_RunApp\",\n },\n presence: {\n run: \"PresenceSelfServiceApp_RunApp\",\n showDetails: \"PresenceSelfServiceApp_DetailVisibility\",\n showContacts: \"SelfServiceApp_ContactsVisibility\",\n showReason: \"PresenceSelfServiceApp_AbsenceReason\",\n },\n reports: {\n run: \"ReportsSelfServiceApp_RunApp\",\n },\n myRequests: {\n run: \"MyRequestsSelfServiceApp_RunApp\",\n },\n requestsForApproval: {\n run: \"RequestsApprovalSelfServiceApp_RunApp\",\n rejectNote: \"SelfServiceApp_RejectNote\",\n },\n unavailabilitiesForApproval: {\n run: \"UnavasApprovalSelfServiceApp_RunApp\",\n },\n terminal: {\n run: \"TerminalSelfServiceApp_RunApp\",\n gps: \"SelfServiceApp_TerminalGPS\",\n },\n unavailabilities: {\n run: \"MyUnavailabilitiesSelfServiceApp_RunApp\",\n edit: \"SelfServiceApp_EditUnavalabilities\",\n },\n workSheet: {\n attachments: \"WorkSheetApp_Attachments\",\n run: \"MyWSSelfServiceApp_RunApp\",\n sign: \"SelfServiceApp_SignWS\",\n },\n workSheetStates: {\n run: \"WorksheetStatesSelfServiceApp_RunApp\",\n },\n dashboard: {\n balance: \"DashboardSelfServiceApp_BalanceVisibility\",\n vacation: \"DashboardSelfServiceApp_VacationVisibility\",\n addVacation: \"DashboardSelfServiceApp_AddVacationVisibility\",\n addVacation2: \"DashboardSelfServiceApp_AddVacation2Visibility\",\n },\n reportsDocuments: {\n ErrorSyntax: \"ReportsSelfServiceApp_ErrorSyntax\",\n MissingPasses: \"ReportsSelfServiceApp_MissingPasses\",\n EvidenceZP: \"ReportsSelfServiceApp_EvidenceZP\",\n MonthStatBalance: \"ReportsSelfServiceApp_MonthStatBalance\",\n Plan: \"ReportsSelfServiceApp_Plan\",\n ErrorZP: \"ReportsSelfServiceApp_ErrorZP\",\n PotencialOvertimes: \"ReportsSelfServiceApp_PotencialOvertimes\",\n LatePasses: \"ReportsSelfServiceApp_LatePasses\",\n WorkSheet: \"ReportsSelfServiceApp_WorkSheet\",\n FirstLastPasses: \"ReportsSelfServiceApp_FirstLastPasses\",\n DailyAccounts: \"ReportsSelfServiceApp_DailyAccounts\",\n Overtimes: \"ReportsSelfServiceApp_Overtimes\",\n VacationStatistics: \"ReportsSelfServiceApp_VacationStatistics\",\n MissedShifts: \"ReportsSelfServiceApp_MissedShifts\",\n VacationRemaining: \"ReportsSelfServiceApp_VacationRemaining\",\n },\n overtime: {\n run: \"OvertimeSelfServiceApp_RunApp\",\n },\n settings: {\n Substitutions: \"SelfServiceApp_Substitutions\",\n },\n};\n","import React, { useEffect, useState } from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport styles from \"./SettingsDialog.module.scss\";\nimport { Checkbox, Input } from \"@progress/kendo-react-inputs\";\nimport LanguageDropDown from \"../../components/LanguageDropDown/LanguageDropDown\";\nimport { updatePersonalPreferences } from \"../../redux/actions/dashboard\";\nimport { localizationSlice } from \"../../redux/slices/localization\";\nimport { selectUserFullname } from \"../../redux/selectors/selectUserFullname\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport {\n createSubstitution,\n editSubstitution,\n fetchSubstitutions,\n toggleSubstitution,\n} from \"../../redux/actions/substitutions\";\nimport { DropDownList } from \"@progress/kendo-react-dropdowns\";\nimport { DatePicker, DatePickerChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { IconButton, List, ListItem, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\nimport { Clear, Edit, Undo } from \"@material-ui/icons\";\nimport { IntlProvider } from \"@progress/kendo-react-intl\";\nimport { usePermissions } from \"../../hooks/usePermissions\";\nimport { permissions } from \"../../constants/permissions\";\nimport { Substitution } from \"../../redux/reducers/substitutions\";\n\ninterface IOwnProps {\n onClose?: () => void;\n}\n\nexport function SettingsDialog(props: IOwnProps) {\n const [initialLanguage] = useState(useAppSelector(s => s.localization.language));\n\n const substitutionsAllowed = !usePermissions().some(s => s === permissions.settings.Substitutions);\n const substitutionsEnabled = useAppSelector(s => s.app.substitionsEnabled);\n const normalUser = useAppSelector(s => !s.session.user.token?.sidSubst);\n\n const dispatch = useAppDispatch();\n\n function handleSaveClick() {\n dispatch(updatePersonalPreferences());\n\n props.onClose && props.onClose();\n }\n\n function handleCloseClick() {\n dispatch(localizationSlice.actions.set(initialLanguage));\n\n props.onClose && props.onClose();\n }\n\n const strings = useStrings();\n return (\n \n \n \n \n {substitutionsAllowed && substitutionsEnabled && normalUser && }\n \n \n \n \n \n );\n}\n\nexport default SettingsDialog;\n\nfunction FullName() {\n const fullname = useAppSelector(s => selectUserFullname(s));\n return {fullname};\n}\n\nfunction EmailInput() {\n const strings = useStrings();\n const email = useAppSelector(s => s.session.dashboard.data?.emailForNotifications);\n\n return ;\n}\n\nfunction Substitutions() {\n const dispatch = useAppDispatch();\n const substitutions = useAppSelector(s => s.session.substitution.substitutions);\n const anyPeopleForSubst = useAppSelector(s => s.session.substitution.people.length > 0);\n const loading = useAppSelector(s => s.session.substitution.isFetching);\n const [dialogVisible, setDialogVisible] = useState(false);\n const [subst, setSubst] = useState();\n const strings = useStrings();\n\n useEffect(() => {\n dispatch(fetchSubstitutions());\n }, [dispatch]);\n\n return (\n <>\n
\n {strings.substitutions.Substitution}\n {\n setSubst(undefined);\n setDialogVisible(true);\n }}\n >\n {!loading && strings.substitutions.Add}\n \n
\n \n {substitutions.map(sub => (\n \n \n \n {!sub.deleted && (\n {\n setSubst(sub);\n setDialogVisible(true);\n }}\n >\n \n \n )}\n {\n dispatch(toggleSubstitution(sub.id));\n }}\n >\n {sub.deleted ? : }\n \n \n \n ))}\n \n {dialogVisible && setDialogVisible(false)} />}\n \n );\n}\n\nfunction SubstitutionDialog(props: { subst?: Substitution; onClose: () => void }) {\n const dispatch = useAppDispatch();\n const strings = useStrings();\n const people = useAppSelector(s => s.session.substitution.people);\n const actions = useAppSelector(s => s.session.substitution.actions);\n const lang = useAppSelector(s => s.localization.language.code);\n const newSubst = !props.subst;\n const min = new Date().getStartOfDay();\n const [filter, setFilter] = useState(\"\");\n\n const [start, setStart] = useState(newSubst ? min : new Date(props.subst!.start));\n const [end, setEnd] = useState(newSubst ? min : new Date(props.subst!.end));\n const [person, setPerson] = useState(\n newSubst ? (people.length > 0 ? people[0] : undefined) : people.find(f => f.ixsref === props.subst!.ixsref)\n );\n\n const [uncheckedActions, setUncheckedActions] = useState(newSubst ? [] : props.subst!.actions);\n\n const mappedActions = actions\n .map(a => ({ id: a.id, desc: strings.actions[a.id as keyof typeof strings.actions] ?? a.id }))\n .sort((a, b) => a.desc.localeCompare(b.desc));\n\n const handleSave = () => {\n if (person) {\n dispatch(\n newSubst\n ? createSubstitution({\n ixsref: person?.ixsref,\n start: start.toISOStringIgnoringTZ(),\n end: end.toISOStringIgnoringTZ(),\n actions: uncheckedActions,\n })\n : editSubstitution({\n id: props.subst!.id,\n ixsref: person?.ixsref,\n start: start.toISOStringIgnoringTZ(),\n end: end.toISOStringIgnoringTZ(),\n actions: uncheckedActions,\n })\n );\n props.onClose();\n }\n };\n\n const handleStartChange = (e: DatePickerChangeEvent) => {\n if (e.value) {\n setStart(e.value);\n if (e.value > end) {\n setEnd(e.value);\n }\n }\n };\n\n const normalize = (str: string) =>\n str\n .normalize(\"NFD\")\n .replace(/\\p{Diacritic}/gu, \"\")\n .toLocaleUpperCase();\n\n return (\n \n \n \n
\n \n setFilter(e.filter.value)}\n data={people.filter(f => normalize(f.name).includes(normalize(filter)))}\n textField=\"name\"\n value={person}\n onChange={e => setPerson(e.value)}\n />\n
\n
\n \n min ? min : new Date(props.subst!.start)\n }\n value={start}\n onChange={handleStartChange}\n />\n
\n
\n \n e.value && setEnd(e.value)} />\n
\n \n {mappedActions.map(a => (\n \n s === a.id)}\n onChange={e =>\n e.value\n ? setUncheckedActions(uncheckedActions.filter(f => f !== a.id))\n : setUncheckedActions([...uncheckedActions, a.id])\n }\n />\n \n ))}\n \n
\n
\n \n \n \n \n
\n );\n}\n","import { IRootState } from \"../reducers/root\";\n\nexport function selectEndpoint(state: IRootState): string {\n return state.config.config.endpoint;\n}\n","import React, { MouseEventHandler } from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport styles from \"./ChangePersonDialog.module.css\";\nimport { DropDownList } from \"@progress/kendo-react-dropdowns\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\n\ninterface IOwnProps {\n onClose?: MouseEventHandler;\n}\n\ninterface IStateProps {\n strings: IStrings;\n}\n\nclass ChangePersonDialog extends React.Component {\n private readonly persons = [];\n\n public render() {\n return (\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default connect(state => ({\n strings: state.localization?.strings,\n}))(ChangePersonDialog);\n","export function formatMinutesAsHours(minutes: number): string {\n const sign = minutes < 0 ? \"-\" : \"\";\n minutes = Math.abs(minutes);\n const hours = Math.trunc(minutes / 60);\n const mins = (minutes % 60).toString().padStart(2, \"0\");\n\n return `${sign}${hours}:${mins}`;\n}\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { selectStrings } from \"../../redux/selectors/selectStrings\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IBalanceResult } from \"../../model/dashboard/IBalanceResult\";\nimport { formatMinutesAsHours } from \"./formatMinutesAsHours\";\n\nexport function Balance() {\n const strings = useSelector(selectStrings);\n const balance = useSelector(s => s.session.dashboard.data?.balance);\n\n let text = \"\";\n if (!balance?.isComputed) {\n text = strings.dashboard.NotComputed + \"!\";\n } else if (balance.hasError) {\n text = strings.dashboard.BalanceError + \"!\";\n } else {\n text = formatMinutesAsHours(balance.minutes);\n }\n\n return <>{text};\n}\n","import React from \"react\";\nimport { formatMinutesAsHours } from \"./formatMinutesAsHours\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { IVacationResult } from \"../../model/dashboard/IVacationResult\";\n\nexport function Vacation(props: { vacation?: IVacationResult; defaultName: string }) {\n const strings = useStrings();\n const lang = useAppSelector(s => s.localization.language.id);\n let days: number = props.vacation?.days ?? 0;\n let minutes: number = props.vacation?.minutes ?? 0;\n\n const parts: string[] = [];\n\n if (lang === -1 && props.vacation?.nameEN) parts.push(props.vacation.nameEN);\n else if (lang === -2 && props.vacation?.nameCZ) parts.push(props.vacation.nameCZ);\n else if (lang === -3 && props.vacation?.nameSK) parts.push(props.vacation.nameSK);\n else parts.push(props.defaultName);\n\n parts.push(\": \");\n\n parts.push(`${days} ${strings.dashboard.Days.toLocaleLowerCase()}, `);\n\n parts.push(`${formatMinutesAsHours(minutes)} ${strings.dashboard.Hours4.toLocaleLowerCase()}`);\n\n return <>{parts.join(\"\")};\n}\n","import { useAppSelector } from \"./useAppSelector\";\nimport { formatDate as kendoFormatDate, DateFormatOptions } from \"@telerik/kendo-intl\";\n\nexport function useFormatDate() {\n const locale = useAppSelector(s => s.localization.language.code);\n\n return function formatDate(value: Date, format: string | DateFormatOptions): string {\n return kendoFormatDate(value, format, locale);\n };\n}\n","import React from \"react\";\nimport { useFormatDate } from \"../hooks/useFormatDate\";\nimport { DateFormatOptions } from \"@telerik/kendo-intl\";\n\ninterface IProps {\n value: Date;\n format: string | DateFormatOptions;\n}\n\nexport function DateTimeFormatter(props: IProps) {\n const formatDate = useFormatDate();\n\n return <>{formatDate(props.value, props.format)};\n}\n","import React, { PropsWithChildren } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { IRootState } from \"../redux/reducers/root\";\n\ninterface IProps {\n permission: string;\n}\n\nexport function PermissionGuard(props: PropsWithChildren) {\n const invisiblePermissions = useSelector(s => {\n const token = s.session.user.token;\n\n return [...(token?.userInvisibleActions ?? []), ...(token?.userDisabledActions ?? [])];\n });\n\n const isInvisible = invisiblePermissions.some(p => p === props.permission);\n\n return <>{isInvisible ? null : props.children};\n}\n\nexport default PermissionGuard;\n","export enum DelegatedAuthStyle {\n automaticRedirection = 0,\n manualRedirectionWithHiddenForm = 1,\n manualRedirectionWithVisibleForm = 2,\n}\n","import { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { IUserList } from \"../../model/IUserList\";\n\nconst DOMAIN = \"UserList\";\n\nexport const fetchSelectedUserTicket = createAsyncThunk(\n `${DOMAIN}/fetchSelectedUser`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n const response = await fetch(\n arg.poradi !== null\n ? api.getState().config.config.endpoint +\n \"/breeze/IpoData/GetAuthUserTicketSelfService?poradi=\" +\n arg.poradi\n : api.getState().config.config.endpoint +\n \"/breeze/IpoData/GetAuthUserTicket?idZast=\" +\n (arg.idZast ?? -1),\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n\nexport const fetchUserList = createAsyncThunk(\n `${DOMAIN}/fetchUserList`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n const response = await fetch(\n api.getState().config.config.endpoint + \"/breeze/IpoData/GetUserList\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n","export class LoginError extends Error {\n private _code: string;\n\n public get code(): string {\n return this._code;\n }\n\n constructor(code: string, message?: string) {\n super(message);\n this.name = \"LoginError\";\n this._code = code;\n }\n}\n","export const VENDOR = \"ANeT\";\n\nexport const APP_NAME = \"SelfService\";\n\nexport const APP_VERSION_MAJOR = \"2\";\nexport const APP_VERSION_MINOR = __APP_VERSION_MINOR__;\nexport const APP_VERSION = APP_VERSION_MAJOR + \".\" + APP_VERSION_MINOR;\n\nexport const COMMIT_HASH = __COMMIT_HASH__;\n\nexport const InternalMaxLimitParam = 1000;\n\nexport const LOCALSTORAGE_CUSTOMERCODE = `${VENDOR}/${APP_NAME}/customerCode`;\n","import { IRootState } from \"../reducers/root\";\nimport { fetchToken, logout } from \"../actions/user\";\nimport { ThunkMiddleware } from \"redux-thunk\";\nimport { VENDOR, APP_NAME } from \"../../constants/common\";\n\nexport const KEY_REFRESH_TOKEN = `${VENDOR}|${APP_NAME}|refreshToken`;\n\nexport const tokenPersistor: ThunkMiddleware = store => next => action => {\n const result = next(action);\n\n switch (action.type) {\n case fetchToken.fulfilled.type:\n sessionStorage.setItem(KEY_REFRESH_TOKEN, store.getState().session.user.token?.refresh_token ?? \"\");\n break;\n case fetchToken.rejected.type:\n case logout.type:\n sessionStorage.removeItem(KEY_REFRESH_TOKEN);\n break;\n }\n\n return result;\n};\n","import { createAsyncThunk, createAction, ThunkAction, Action } from \"@reduxjs/toolkit\";\nimport { ICredentials } from \"../../model/security/ICredentials\";\nimport { IRootState } from \"../reducers/root\";\nimport { INormalizedToken, IRawToken } from \"../../model/security/tokens\";\nimport { LoginError } from \"../../model/errors/LoginError\";\nimport { permissions } from \"../../constants/permissions\";\nimport { KEY_REFRESH_TOKEN } from \"../middlewares/tokenPersistor\";\nimport { AppThunkAction } from \"../../model/redux/AppThunkAction\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { DelegatedAuthStyle } from \"../../model/app/DelegatedAuthStyle\";\n\nconst DOMAIN = \"user\";\n\ninterface FetchTokenArgs {\n credentials?: ICredentials;\n ticket?: string;\n refreshToken?: string;\n}\n\nexport const fetchToken = createAsyncThunk(\n `${DOMAIN}/token/fetch`,\n async (arg, api) => {\n let body = \"\";\n\n if (arg.refreshToken) {\n body = `grant_type=refresh_token&refresh_token=${arg?.refreshToken}`;\n } else if (arg.credentials) {\n body = `grant_type=password&username=${arg.credentials.username}&password=${encodeURIComponent(\n arg.credentials.password\n )}`;\n } else if (arg.ticket) {\n body = `grant_type=password&username=${arg.ticket}`;\n } else {\n throw new Error(\"Fetch token require any credentials type.\");\n }\n\n if (api.getState().app.multiTenant) {\n body += `&customerCode=${api.getState().app.customerCode}`;\n }\n\n body += \"&application=selfservice\";\n\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: body,\n signal: api.signal,\n };\n\n const response = await fetch(api.getState().config.config?.endpoint + \"/Token\", requestOptions);\n\n return await handleResponse(response);\n }\n);\n\nexport const clearError = createAction(`${DOMAIN}/error/clear`);\n\nexport const logout = createAction(`${DOMAIN}/logout`);\n\nconst INFINITE_LOOP_PROTECTION_COOKIE = \"infiniteLoopProtection\";\n\nexport function tryLoginAutomatically(): ThunkAction, IRootState, void, Action> {\n return async (dispatch, getState) => {\n const token = sessionStorage.getItem(KEY_REFRESH_TOKEN);\n\n if (token) {\n await dispatch(\n fetchToken({\n refreshToken: token,\n })\n );\n }\n\n if (getState().session.user.isAuthenticated) return;\n\n if (getState().app.isDelegatedAuthEnabled) {\n if (document.cookie.indexOf(INFINITE_LOOP_PROTECTION_COOKIE) === -1) {\n if (getState().app.delegatedAuthStyle === DelegatedAuthStyle.automaticRedirection) {\n dispatch(redirectToDelegatedAuth());\n }\n } else {\n // infinite loop protection cookie found\n // expire infinite loop protection cookie\n document.cookie = `${INFINITE_LOOP_PROTECTION_COOKIE}=; Max-Age=0; SameSite=Lax`;\n\n const ticket = await dispatch(fetchDelegatedTicket());\n\n if (ticket !== null) {\n await dispatch(fetchToken({ ticket: ticket }));\n }\n }\n } else if (getState().app.canRunWindowsAuth) {\n const ticket = await dispatch(fetchWindowsTicket());\n\n if (ticket !== null) {\n await dispatch(fetchToken({ ticket: ticket }));\n }\n }\n };\n}\n\nexport function redirectToDelegatedAuth(): AppThunkAction {\n return (dispatch, getState) => {\n document.cookie = `${INFINITE_LOOP_PROTECTION_COOKIE}=true; SameSite=Lax`;\n window.location.href = `${getState().config.config.endpoint}/Test/TestAuth.aspx?r=${encodeURI(\n window.location.href\n )}`;\n };\n}\n\nexport function redirectToDelegatedLogout(): AppThunkAction {\n return (dispatch, getState) => {\n document.cookie = `${INFINITE_LOOP_PROTECTION_COOKIE}=true; SameSite=Lax`;\n window.location.href = `${getState().config.config.endpoint}/Test/TestAuth.aspx?u=${encodeURI(\n window.location.href\n )}`;\n };\n}\n\nexport function fetchDelegatedTicket(): ThunkAction, IRootState, void, Action> {\n return async (dispatch, getState) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n };\n\n const response = await fetch(\n getState().config.config.endpoint + \"/controllers/customcontrollers/AuthIdentity/AuthUserTicket\",\n requestOptions\n );\n\n if (response.ok) {\n const ticket = await response.json();\n\n return ticket === \"\" ? null : ticket;\n } else {\n return null;\n }\n };\n}\n\nexport function fetchWindowsTicket(): ThunkAction, IRootState, void, Action> {\n return async (dispatch, getState) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n credentials: \"include\",\n };\n\n const response = await fetch(\n getState().config.config.endpoint + \"/controllers/customcontrollers/WindowsIdentity/WindowsUserTicket\",\n requestOptions\n );\n\n if (response.ok) {\n const ticket = await response.json();\n\n return ticket === \"\" ? null : ticket;\n } else {\n return null;\n }\n };\n}\n\nexport function fetchUserLanguage(): AppThunkAction> {\n return async (dispatch, getState) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${getState().session.user.token?.access_token}`,\n },\n };\n\n const response = await fetch(\n getState().config.config.endpoint + \"/controllers/SelfService/UserLanguage\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n };\n}\n\nasync function handleResponse(response: Response): Promise {\n const data = await response.json();\n\n if (response.status === 200) {\n const token = normalizeToken(data);\n\n requireRunAppPermission(token);\n\n return token;\n } else if (response.status === 400) {\n throw new LoginError(data.error, data.error_description);\n } else {\n throw new Error(response.statusText);\n }\n}\n\nfunction normalizeToken(token: IRawToken): INormalizedToken {\n return {\n ...token,\n userDisabledActions: token.userDisabledActions.split(\",\").filter((p: string) => p !== \"\"),\n userInvisibleActions: token.userInvisibleActions.split(\",\").filter((p: string) => p !== \"\"),\n userRoles: token.userRoles.split(\",\").filter((p: string) => p !== \"\"),\n };\n}\n\nfunction requireRunAppPermission(token: INormalizedToken): void {\n if (token.userDisabledActions.some(p => p === permissions.app.run))\n throw new LoginError(\"login_error_app_usage_not_allowed\", \"You are not allowed to use this application.\");\n}\n","import React from \"react\";\nimport styles from \"./InfoPanel.module.scss\";\nimport classNames from \"classnames\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { IDashboardData } from \"../../model/dashboard/IDashboardData\";\nimport { selectUserFullname } from \"../../redux/selectors/selectUserFullname\";\nimport { Balance } from \"./Balance\";\nimport { Vacation } from \"./Vacation\";\nimport { DateTimeFormatter } from \"../../components/DateTimeFormatter\";\nimport PermissionGuard from \"../../components/PermissionGuard\";\nimport { permissions } from \"../../constants/permissions\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { DropDownList } from \"@progress/kendo-react-dropdowns\";\nimport { fetchSelectedUserTicket } from \"../../redux/actions/userList\";\nimport { fetchToken } from \"../../redux/actions/user\";\nimport { fetchDashboardData } from \"../../redux/actions/dashboard\";\n\ninterface IStateProps {\n strings: IStrings;\n fullname?: string;\n data?: IDashboardData;\n}\n\nfunction InfoPanel(props: IStateProps) {\n const dispatch = useAppDispatch();\n const userList = useAppSelector(s => s.session.userList.users);\n const selectedIxsref = useAppSelector(s => s.session.userList.selectedIxsRef);\n const tokenFetching = useAppSelector(s => s.session.user.isAuthenticating);\n const dataFetching = useAppSelector(s => s.session.dashboard.isFetching);\n const data = useAppSelector(s => s.session.dashboard.data);\n return (\n
\n
\n

\n {!(userList.length > 1) && {props.fullname}}\n {userList.length > 1 && (\n f.ixs_ref === selectedIxsref)}\n onChange={e => {\n dispatch(\n fetchSelectedUserTicket({\n poradi: e.target.value.poradi,\n idZast: e.target.value.id_zast,\n })\n ).then(res =>\n dispatch(\n fetchToken({\n credentials: {\n username: res.payload as string,\n password: \"\",\n },\n })\n ).then(() => {\n dispatch(fetchDashboardData());\n })\n );\n }}\n data={userList}\n />\n )}\n

\n {userList.length > 1 && (\n
\n {props.strings.common.Center +\n \": \" +\n userList.find(f => f.ixs_ref === selectedIxsref)?.str_text}\n
\n )}\n \n {props.data?.balance && (\n
\n {props.strings.dashboard.Balance + \":\"} \n
\n )}\n
\n
\n \n \n \n \n
\n \n
\n \n
\n \n
\n
\n {props.data?.lastPassage && (\n
\n \n \n \n \n {props.data?.lastPassage.text?.toLocaleUpperCase()}\n
\n )}\n
\n
\n );\n}\n\nexport default connect(\n state =>\n ({\n strings: state.localization.strings,\n fullname: selectUserFullname(state),\n data: state.session.dashboard.data,\n } as IStateProps)\n)(InfoPanel);\n","import React from \"react\";\nimport { Badge } from \"@material-ui/core\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport styles from \"./Dashboard.module.scss\";\nimport classNames from \"classnames\";\nimport SettingsDialog from \"./SettingsDialog\";\nimport ChangePersonDialog from \"./ChangePersonDialog\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport InfoPanel from \"./InfoPanel\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { fetchDashboardData } from \"../../redux/actions/dashboard\";\nimport { IBaseMenuItem } from \"../../components/NavBar/IBaseMenuItem\";\nimport ReactDOM from \"react-dom\";\nimport PermissionGuard from \"../../components/PermissionGuard\";\nimport { permissions } from \"../../constants/permissions\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { IAbortable } from \"../../model/IAbortable\";\nimport { AppDispatch } from \"../..\";\nimport { LogoutButton } from \"../../components/LogoutButton\";\n\nenum EDialog {\n None,\n Settings,\n ChangePerson,\n}\n\ninterface IDashboardState {\n visibleDialog: EDialog;\n}\n\ninterface IDispatchProps {\n onFetchData: () => IAbortable;\n}\n\ninterface IStateProps {\n strings: IStrings;\n checkAllowed: boolean;\n changeAllowed: boolean;\n visibleButtons: {\n myRequests: boolean;\n requestsForApproval: boolean;\n plnunavaForApproval: boolean;\n };\n isFetching: boolean;\n}\n\ntype Props = IStateProps & IDispatchProps & RouteChildrenProps;\n\nclass Dashboard extends React.Component {\n private abortable: IAbortable | undefined;\n\n constructor(props: Props) {\n super(props);\n this.state = {\n visibleDialog: EDialog.None,\n };\n }\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n case 1:\n this.setState({ visibleDialog: EDialog.Settings });\n break;\n case 2:\n this.setState({ visibleDialog: EDialog.ChangePerson });\n break;\n case 3:\n this.props.history.push(\"/personal-card\");\n break;\n case 4:\n this.props.history.push(\"/change-password\");\n break;\n default:\n item.id && console.warn(\"Unhandled menu item: \", item);\n }\n };\n\n private handleSettingsDialogClose = () =>\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n private handleChangePersonDialogClose = () =>\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n private createMenuItems = () => {\n const strings = this.props.strings;\n return [\n { id: 1, content: strings.dashboard.MyAccount, icon: \"none\" },\n // { id: 2, content: strings.dashboard.ChangePerson, icon: \"none\" },\n { id: 3, content: strings.dashboard.PersonalCard, icon: \"user\" },\n { id: 4, content: strings.passwordChange.title, icon: \"none\" },\n ] as IBaseMenuItem[];\n };\n\n componentDidMount() {\n this.abortable = this.props.onFetchData();\n }\n\n componentWillUnmount() {\n this.abortable?.abort();\n }\n\n public render() {\n return (\n \n \n \n }\n >\n
\n
\n
\n \n
\n
\n
\n \n this.props.history.push(\"/plan/my\")}\n >\n \n {this.props.strings.dashboard.MyPlan.toLocaleUpperCase()}\n {(this.props.checkAllowed || this.props.changeAllowed) && }\n \n \n \n this.props.history.push(\"/my-worksheet\")}\n primary\n >\n \n {this.props.strings.dashboard.MyWorksheet.toLocaleUpperCase()}\n \n \n \n \n \n\n {this.props.visibleButtons.myRequests && (\n \n this.props.history.push(\"/my-requests\")}\n primary\n >\n \n {this.props.strings.dashboard.MyRequests.toLocaleUpperCase()}\n \n \n \n )}\n\n \n this.props.history.push(\"/my-unavailability\")}\n primary\n >\n \n \n {this.props.strings.dashboard.MyUnavailabilities.toLocaleUpperCase()}\n \n \n \n \n\n \n this.props.history.push(\"/overtime\")}\n primary\n >\n \n {this.props.strings.dashboard.Overtime}\n \n \n \n\n {/* */}\n \n this.props.history.push(\"/plan/department\")}\n >\n \n {this.props.strings.dashboard.DepartmentPlan.toLocaleUpperCase()}\n \n \n\n {this.props.visibleButtons.requestsForApproval && (\n \n this.props.history.push(\"/requests-approve\")}\n >\n \n \n {this.props.strings.dashboard.RequestsToApprove.toLocaleUpperCase()}\n \n \n \n \n )}\n\n {this.props.visibleButtons.plnunavaForApproval && (\n \n this.props.history.push(\"/unavailabilities-approve\")}\n >\n \n \n {this.props.strings.dashboard.RequestsToApprovePlnunava.toLocaleUpperCase()}\n \n \n \n \n )}\n\n \n this.props.history.push(\"/plan/states\")}\n >\n \n {this.props.strings.dashboard.PlansStates.toLocaleUpperCase()}\n \n \n\n \n this.props.history.push(\"/worksheet/states\")}\n >\n \n {this.props.strings.dashboard.WorkSheetStates.toLocaleUpperCase()}\n \n \n\n \n this.props.history.push(\"/presence\")}\n >\n \n {this.props.strings.dashboard.Presence.toLocaleUpperCase()}\n \n \n\n \n this.props.history.push(\"/reports\")}\n >\n \n {this.props.strings.dashboard.Reports.toLocaleUpperCase()}\n \n \n\n \n this.props.history.push(\"/online-terminal\")}\n className={styles.terminals}\n >\n \n {this.props.strings.dashboard.OnlineTerminal.toLocaleUpperCase()}\n \n \n
\n
\n
\n {ReactDOM.createPortal(\n \n {this.state.visibleDialog === EDialog.Settings && (\n \n )}\n {this.state.visibleDialog === EDialog.ChangePerson && (\n \n )}\n ,\n document.body\n )}\n
\n \n );\n }\n}\n\nexport default connect(\n state =>\n ({\n strings: state.localization.strings,\n checkAllowed:\n !state.session.user.token?.userDisabledActions.some(p => p === permissions.plan.check) ?? false,\n changeAllowed:\n !state.session.user.token?.userDisabledActions.some(p => p === permissions.plan.approve) ?? false,\n visibleButtons: {\n myRequests: state.session.dashboard.data?.isApprovable ?? false,\n requestsForApproval: state.session.dashboard.data?.isApprover ?? false,\n plnunavaForApproval: state.session.dashboard.data?.isApproverPlnunava ?? false,\n },\n isFetching: state.session.user.isAuthenticating || state.session.dashboard.isFetching,\n } as IStateProps),\n (dispatch: AppDispatch) => ({\n onFetchData: () => dispatch(fetchDashboardData()),\n })\n)(Dashboard);\n\nfunction BaseBadge(props: { loading: boolean; count: number }) {\n return (\n }\n />\n );\n}\n\nfunction MyPlanBadge() {\n const isLoading = useAppSelector(s => s.session.dashboard.isFetching);\n const countCheck = useAppSelector(s => s.session.dashboard.data?.requestsCounts?.planCheck ?? 0);\n const countApprove = useAppSelector(s => s.session.dashboard.data?.requestsCounts?.planApprove ?? 0);\n const isCheckAllowed =\n !useAppSelector(s => s.session.user.token?.userDisabledActions.some(p => p === permissions.plan.check)) ??\n false;\n const isChangeAllowed =\n !useAppSelector(s => s.session.user.token?.userDisabledActions.some(p => p === permissions.plan.approve)) ??\n false;\n const count =\n isCheckAllowed && isChangeAllowed\n ? countCheck + countApprove\n : isCheckAllowed\n ? countCheck\n : isChangeAllowed\n ? countApprove\n : 0;\n\n return ;\n}\n\nfunction MyWorksheetBadge() {\n const isLoading = useAppSelector(s => s.session.dashboard.isFetching);\n const count = useAppSelector(s => s.session.dashboard.data?.wsRequests?.worksheetRequestCount ?? 0);\n\n return ;\n}\n\nfunction MyRequestsBadge() {\n const isLoading = useAppSelector(s => s.session.dashboard.isFetching);\n const count = useAppSelector(s => s.session.dashboard.data?.requestsCounts?.my ?? 0);\n\n return ;\n}\n\nfunction MyRequestsPlnunavaBadge() {\n const isLoading = useAppSelector(s => s.session.dashboard.isFetching);\n const count = useAppSelector(s => s.session.dashboard.data?.requestsCounts?.myPlnunava ?? 0);\n\n return ;\n}\n\nfunction RequestsForApprovalBadge() {\n const isLoading = useAppSelector(s => s.session.dashboard.isFetching);\n const count = useAppSelector(s => s.session.dashboard.data?.requestsCounts?.forApproval ?? 0);\n\n return ;\n}\n\nfunction RequestsForApprovalPlnunavaBadge() {\n const isLoading = useAppSelector(s => s.session.dashboard.isFetching);\n const count = useAppSelector(s => s.session.dashboard.data?.requestsCounts?.forApprovalPlnunava ?? 0);\n\n return ;\n}\n\nfunction RequestsForOvertimeBadge() {\n const isLoading = useAppSelector(s => s.session.dashboard.isFetching);\n const count = useAppSelector(s => s.session.dashboard.data?.requestsCounts?.overtime ?? 0);\n\n return ;\n}\n","export function deleteSavedUser() {\n const BASE_KEY = \"ANeT/SelfService/login\";\n const REMEMBERED_USERNAME_KEY = BASE_KEY + \"/user/username\";\n const REMEMBERED_PASSWORD_KEY = BASE_KEY + \"/user/password\";\n localStorage.setItem(REMEMBERED_USERNAME_KEY, \"\");\n localStorage.setItem(REMEMBERED_PASSWORD_KEY, \"\");\n}\n","import React from \"react\";\nimport { logout, redirectToDelegatedLogout } from \"../redux/actions/user\";\nimport { useStrings } from \"../hooks/useStrings\";\nimport { useAppDispatch } from \"../hooks/useAppDispatch\";\nimport { deleteSavedUser } from \"../redux/actions/localStorage/deleteSavedUser\";\nimport { useHistory } from \"react-router-dom\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { useAppSelector } from \"../hooks/useAppSelector\";\n\nexport function LogoutButton() {\n const strings = useStrings();\n const dispatch = useAppDispatch();\n const history = useHistory();\n const tokenFetching = useAppSelector(s => s.session.user.isAuthenticating);\n\n function handleButtonClick() {\n history.push(\"/\");\n dispatch(redirectToDelegatedLogout());\n dispatch(logout());\n deleteSavedUser();\n }\n\n return (\n \n );\n}\n","export interface WflReq {\n Applicant: string;\n Approver: string;\n Created: string;\n DateModified: string;\n ID: number;\n Note: string;\n RemainingDays: number;\n RemainingDaysFloor: number;\n ReqText: string;\n State: number;\n Expdate: string;\n}\n\nexport enum RequestsAgend {\n Requests,\n Unavalabilities,\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { QueryParam2, QueryParam3 } from \"../../model/CommonQueryParams\";\n\nconst DOMAIN = \"Requests\";\n\nexport const wflChangeState = createAsyncThunk<{}, QueryParam3, { state: IRootState }>(\n `${DOMAIN}/wflChangeState`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n let reqBody: string = JSON.stringify(arg);\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: reqBody,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SetWflRequestStatusSelfService\",\n requestOptions\n );\n\n const data = await response.json();\n\n if (response.status === 200) return data;\n else return api.rejectWithValue(data);\n }\n);\n\nexport const wflChangeStateMultiple = createAsyncThunk<{}, QueryParam2, { state: IRootState }>(\n `${DOMAIN}/wflChangeStateMultiple`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n let reqBody: string = JSON.stringify(arg);\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: reqBody,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SetWflRequestStatusMultiple\",\n requestOptions\n );\n\n if (response.status === 200) return;\n else return api.rejectWithValue(response.status);\n }\n);\n","import { IStrings } from \"../../constants/languageStrings/IStrings\";\n\nexport const formatString = (string: string, value: string | number) => string.replaceAll(\"$0$\", value.toString());\n\nexport const remainingDaysString = (strings: IStrings, days: number) => {\n if (days < 0) return strings.requests.Expired;\n else if (days === 0) return formatString(strings.requests.RemainingDays, 0);\n else if (days < 2) return strings.requests.RemainingDay;\n else if (days < 5) return formatString(strings.requests.RemainingDaysUpTo4, days);\n else return formatString(strings.requests.RemainingDays, days);\n};\n","import React, { MouseEventHandler } from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport styles from \"./Requests.module.scss\";\nimport { Input } from \"@progress/kendo-react-inputs\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { wflChangeState } from \"../../redux/actions/wflStateChange\";\nimport { QueryParam3 } from \"../../model/CommonQueryParams\";\nimport { WflReq } from \"../../model/wflReq\";\nimport PermissionGuard from \"../../components/PermissionGuard\";\nimport { permissions } from \"../../constants/permissions\";\nimport { Error } from \"@progress/kendo-react-labels\";\nimport classes from \"./RequestDetail.module.scss\";\nimport { remainingDaysString } from \"../../utils/localization/LocalizationUtils\";\n\nclass RequestDetail extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n reqiredNote: false,\n };\n }\n private StateResolver = (state: number) => {\n const strings = this.props.strings;\n if (state === 0) {\n return (\n \n );\n } else if (state === 1) {\n return (\n \n );\n } else if (state === 2) {\n return (\n \n );\n } else {\n return ;\n }\n };\n\n private IconResolver = (state: number) => {\n if (state === 0) {\n return ;\n } else if (state === 1) {\n return ;\n } else if (state === 2) {\n return ;\n }\n };\n\n private getRemainingDays(RemainingDays: number): string {\n const strings = this.props.strings;\n return remainingDaysString(strings, RemainingDays);\n }\n\n private ApproverInfoResolver = (state: number) => {\n const strings = this.props.strings;\n if (state === 1) {\n return (\n \n );\n } else if (state === 2) {\n return (\n \n );\n }\n };\n\n async onChangeState(event: React.MouseEvent, status: number): Promise {\n let note: string = this.state !== null && this.state.comment !== undefined ? this.state.comment : \"\";\n let queryParam: QueryParam3 = {\n Value: this.props.data.ID,\n Value2: status,\n Value3: note,\n };\n if (status === 2 && note === \"\" && !this.props.reqNotePerm) {\n this.setState({ reqiredNote: true });\n } else {\n await this.props.onStateChange(queryParam);\n this.props.onClose && this.props.onClose(event);\n }\n }\n\n public render() {\n return (\n \n \n {this.IconResolver(this.props.data.State)}\n \n }\n width=\"90%\"\n closeIcon={false}\n >\n \n \n \n {this.StateResolver(this.props.data.State)}\n {this.ApproverInfoResolver(this.props.data.State)}\n {this.props.data.Note ? (\n \n ) : (\n <>\n )}\n {this.props.isApprover && this.props.data.State === 0 ? (\n
\n this.setState({ comment: e.value })}\n />\n {this.state.reqiredNote && !this.props.reqNotePerm && (\n {this.props.strings.requests.ErrorRequiredNote}\n )}\n
\n ) : (\n <>\n )}\n\n \n \n {/* Delete only when state is created - pending */}\n {this.props.data.State === 0 && !this.props.isApprover && (\n \n \n \n )}\n {/* approving and rejecting is allowed only in approver module */}\n {this.props.isApprover && this.props.data.State === 0 && (\n \n )}\n {this.props.isApprover && this.props.data.State === 0 && (\n \n )}\n \n \n );\n }\n}\n\ninterface IOwnProps {\n onClose?: MouseEventHandler;\n data: WflReq;\n isApprover: boolean;\n}\n\ninterface IStateProps {\n strings: IStrings;\n reqNotePerm: boolean;\n}\n\ninterface IState {\n comment?: string;\n reqiredNote?: boolean;\n}\n\ninterface IDispatchProps {\n onStateChange: (e: QueryParam3) => void;\n}\n\ntype IProps = IOwnProps & IStateProps & IDispatchProps & IState;\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n reqNotePerm:\n state.session.user.token?.userDisabledActions.some(p => p === permissions.requestsForApproval.rejectNote) ??\n false,\n }),\n {\n onStateChange: (e: QueryParam3) => wflChangeState(e),\n }\n)(RequestDetail);\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { IPOABS } from \"../../model/IPOABS\";\nimport { QueryParam } from \"../../model/CommonQueryParams\";\nimport { INewRequestParams } from \"../../model/INewRequestParams\";\nimport { PLNUNAVA } from \"../../model/PLNUNAVA\";\nimport { RequestsAgend } from \"../../model/wflReq\";\n\nconst DOMAIN = \"myRequests\";\n\nexport const insertAbsencesToMultipleDates = createAsyncThunk(\n `${DOMAIN}/insertAbsencesToMultipleDates`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify({\n Value: arg.objectID === RequestsAgend.Requests ? createIPOABSes(arg) : createPLNUNAVA(arg),\n } as QueryParam),\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint +\n (arg.objectID === RequestsAgend.Requests\n ? \"/breeze/IpoData/InsertAbsenceForSelfService\"\n : \"/breeze/IpoData/InsertUnavaForSelfService\"),\n requestOptions\n );\n\n const data = await response.json();\n\n if (response.status === 200) return data;\n else return api.rejectWithValue(data);\n }\n);\n\nfunction createPLNUNAVA(args: INewRequestParams): PLNUNAVA {\n const unava: PLNUNAVA = {\n IXS_REF: args.userID,\n DATE_REF: args.dayOfBegin,\n STARTTIME: new Date(\n args.dayOfBegin.getFullYear(),\n args.dayOfBegin.getMonth(),\n args.dayOfBegin.getDate(),\n args.timeOfBegin.getHours(),\n args.timeOfBegin.getMinutes()\n ),\n ENDTIME: new Date(\n args.dayOfBegin.getFullYear(),\n args.dayOfBegin.getMonth(),\n args.dayOfBegin.getDate(),\n args.timeOfEnd.getHours(),\n args.timeOfEnd.getMinutes()\n ),\n DATE_CREATE: new Date(),\n NOTE: args.comment,\n };\n if (unava.STARTTIME!.getTime() >= unava.ENDTIME!.getTime()) {\n unava.ENDTIME = unava.ENDTIME!.addDays(1);\n }\n return unava;\n}\n\nfunction createIPOABSes(args: INewRequestParams): IPOABS[] {\n if (args.dayOfBegin > args.dayOfEnd) throw new Error(\"Day of begin has to be greater or equal to day of end.\");\n\n const absences: IPOABS[] = [];\n\n if (args.isAllDay) {\n const begin = args.dayOfBegin.getStartOfDay();\n const end = args.dayOfEnd.getStartOfDay();\n for (let day = begin; day.getTime() <= end.getTime(); day = day.addDays(1)) {\n absences.push({\n IXS_REF: args.userID,\n ID_UCET: args.accountID,\n ABS: args.accountABS,\n DATUM: day,\n CAS_OD: null,\n CAS_DO: null,\n } as IPOABS);\n }\n } else {\n const isOverMidnight = args.timeOfBegin.getTimeOfDay() > args.timeOfEnd.getTimeOfDay();\n absences.push({\n IXS_REF: args.userID,\n ID_UCET: args.accountID,\n ABS: args.accountABS,\n DATUM: args.dayOfBegin.getStartOfDay(),\n CAS_OD: args.dayOfBegin.withTime(args.timeOfBegin),\n CAS_DO: args.dayOfBegin.addDays(isOverMidnight ? 1 : 0).withTime(args.timeOfEnd),\n } as IPOABS);\n }\n\n return absences;\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IAccount } from \"../../../model/IAccount\";\nimport { IRootState } from \"../../reducers/root\";\n\nconst DOMAIN = \"dropdowns/accounts\";\n\nexport const fetchAccounts = createAsyncThunk(\n `${DOMAIN}/fetch`,\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${api.getState().session.user?.token?.access_token}`,\n },\n body: JSON.stringify({\n Value: api.getState().localization.language.code,\n }),\n signal: api.signal,\n };\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SelfService_GetIpocacs\",\n requestOptions\n );\n\n const data = (await response.json()) as unknown[];\n\n if (response.status === 200) {\n return data.map(\n (account: any) =>\n ({\n id: account.ID_UCET,\n value: account.NAZEV,\n abs: account.ZKRATKA,\n strav: account.STRAV,\n workflow: account.WORKFLOW,\n } as IAccount)\n );\n } else return api.rejectWithValue(data);\n }\n);\n","import React, { useEffect } from \"react\";\nimport { DropDownList } from \"@progress/kendo-react-dropdowns\";\nimport { IAccount } from \"../../model/IAccount\";\nimport { fetchAccounts } from \"../../redux/actions/dropdowns/accounts\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\n\nexport default function AccountDropdown(props: {\n onSelect: (account: IAccount) => void;\n selectedAccount: IAccount | undefined;\n onlyHolidayAccounts?: boolean;\n onlyWorkflowAccounts?: boolean;\n disabled?: boolean;\n}) {\n const strings = useAppSelector(s => s.localization.strings);\n const loading = useAppSelector(s => s.session.dropdowns.accounts.isFetching);\n const dispatch = useAppDispatch();\n const onSelect = props.onSelect;\n const account = props.selectedAccount;\n const onlyHolidayAccounts = props.onlyHolidayAccounts;\n const onlyWorkflowAccounts = props.onlyWorkflowAccounts;\n const payload = useAppSelector(s => s.session.dropdowns.accounts.payload);\n const accounts = payload?.filter(\n f =>\n (!onlyHolidayAccounts || f.strav === 1 || f.strav === 2 || f.strav === 10) &&\n (!onlyWorkflowAccounts || f.workflow === 1)\n );\n\n useEffect(() => {\n if (accounts === undefined && !loading) {\n dispatch(fetchAccounts());\n }\n }, [dispatch, accounts, loading]);\n\n useEffect(() => {\n if (!account && accounts && accounts.length > 0) {\n onSelect(accounts[0]);\n }\n }, [accounts, account, onSelect]);\n\n return (\n \n {accounts?.length === 0 ? (\n

{strings.requests.NoAccounts}

\n ) : (\n props.onSelect(e.value)}\n value={props.selectedAccount}\n disabled={props.disabled}\n />\n )}\n
\n );\n}\n","import React from \"react\";\nimport { Calendar, CalendarProps } from \"@progress/kendo-react-dateinputs\";\n\n/** Custom popup který řeší přetečení šířky kalendáře na malých (šířka < 390px) zařízeních. */\nexport default function CustomCalendar(props: CalendarProps) {\n return = 390} />;\n}\n","import React from \"react\";\nimport { Popup, PopupProps } from \"@progress/kendo-react-popup\";\n\n/** Custom popup který řeší zobrazení popupu mimo viditelnou oblast na malých zařízeních. */\nexport default function CustomPopup(props: PopupProps) {\n return (\n \n );\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { QueryParam } from \"../../model/CommonQueryParams\";\nimport { IporefForWidget } from \"../../model/IporefForWidget\";\nimport { IRootState } from \"../reducers/root\";\n\nconst DOMAIN = \"RequestsForApproval\";\n\nexport const fetchRequestsForApprovalDatasource = createAsyncThunk<\n {},\n [string, boolean, boolean],\n { state: IRootState }\n>(`${DOMAIN}/fetchRequestsForApprovalDatasource`, async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n let reqBody = {\n IncludeChildren: true,\n SelectedIxsStr: \"0\",\n SelectedTab: \"tab-centers\",\n Sort: arg[0],\n BoolValue: arg[1],\n CurrentAgenda: arg[2] ? \"requests\" : \"unavailabilities\",\n };\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(reqBody),\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/GetWflApprovingTabForSelfService\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n});\n\nexport const fetchIporefsForWFL = createAsyncThunk(\n `${DOMAIN}/fetchIporefsForWFL`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint +\n (arg.isRequest\n ? \"/breeze/IpoData/SelfService_GetListOfPersonWFL\"\n : \"/breeze/IpoData/SelfService_GetListOfPersonPlnunavaWFL\"),\n requestOptions\n );\n\n const data = (await response.json()) as unknown[];\n\n if (response.status === 200) {\n return data.map(\n (iporef: any) =>\n ({\n OcFullName: iporef.OcFullName,\n IXS_REF: iporef.IXS_REF,\n } as IporefForWidget)\n );\n } else return api.rejectWithValue(data);\n }\n);\n\nexport const fetchIporefsForWFLWithFilter = createAsyncThunk<\n {},\n { filter: string; isRequest: boolean },\n { state: IRootState }\n>(`${DOMAIN}/fetchIporefsForWFLWithFilter`, async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify({\n Value: arg.filter,\n } as QueryParam),\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint +\n (arg.isRequest\n ? \"/breeze/IpoData/SelfService_GetListOfPersonWFLFilter\"\n : \"/breeze/IpoData/SelfService_GetListOfPersonPlnunavaWFLFilter\"),\n requestOptions\n );\n\n const data = await response.json();\n\n if (response.status === 200) {\n return data.map(\n (iporef: any) =>\n ({\n OcFullName: iporef.OcFullName,\n IXS_REF: iporef.IXS_REF,\n } as IporefForWidget)\n );\n } else return api.rejectWithValue(data);\n});\n","import React from \"react\";\nimport { DropDownList, DropDownListFilterChangeEvent, DropDownListChangeEvent } from \"@progress/kendo-react-dropdowns\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { IporefForWidget } from \"../../model/IporefForWidget\";\nimport { fetchIporefsForWFL, fetchIporefsForWFLWithFilter } from \"../../redux/actions/requestsForApproval\";\nimport { AppDispatch } from \"../..\";\n\ninterface IOwnProps {\n data?: IporefForWidget[];\n isFilterEnabled?: boolean;\n onSelectIxsref?: (person: IporefForWidget) => void;\n disabled?: boolean;\n isRequest: boolean;\n}\n\ninterface IDispatchProps {\n onLoadNewSubset: (e: { isRequest: boolean }) => Promise;\n onFilterRemote: (e: { filter: string; isRequest: boolean }) => Promise;\n}\n\ninterface IStateProps {\n strings: IStrings;\n datasource?: IporefForWidget[];\n isDatasourceFetching?: boolean;\n\n isFetchingFilter?: boolean;\n filteredData?: IporefForWidget[];\n}\n\ntype IProps = IOwnProps & IDispatchProps & IStateProps;\n\nclass PersonsForApprovalDropdown extends React.Component {\n state = {\n isFilterEnabled: false,\n data: this.props.datasource,\n };\n\n async componentDidMount() {\n await this.props.onLoadNewSubset({ isRequest: this.props.isRequest });\n this.setState({ data: this.props.datasource });\n }\n\n onFilterChange = async (event: DropDownListFilterChangeEvent) => {\n if (event.filter.value.length > 2) {\n await this.props.onFilterRemote({ filter: event.filter.value, isRequest: this.props.isRequest });\n this.setState({\n isFilterEnabled: true,\n data: this.props.filteredData,\n });\n } else if (event.filter.value.length === 2 && this.state.isFilterEnabled) {\n this.setState({\n isFilterEnabled: false,\n data: this.props.datasource,\n });\n }\n };\n\n handleChange(change: DropDownListChangeEvent): void {\n this.props.onSelectIxsref && this.props.onSelectIxsref(change.value);\n }\n\n public render() {\n return (\n this.onFilterChange(event)}\n onChange={change => this.handleChange(change)}\n popupSettings={{\n height: \"288px\",\n }}\n disabled={this.props.disabled}\n />\n );\n }\n}\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n\n datasource: state.session.personsForApproval.datasource,\n\n isDatasourceFetching: state.session.personsForApproval.fetching,\n\n filteredData: state.session.personsForApprovalWithFilter.datasource,\n isFetchingFilter: state.session.personsForApprovalWithFilter.fetching,\n }),\n (dispatch: AppDispatch) => ({\n onFilterRemote: (e: { filter: string; isRequest: boolean }) => dispatch(fetchIporefsForWFLWithFilter(e)),\n onLoadNewSubset: (e: { isRequest: boolean }) => dispatch(fetchIporefsForWFL(e)),\n })\n)(PersonsForApprovalDropdown);\n","import { IRootState } from \"../reducers/root\";\n\nexport function selectIxsRef(state: IRootState): string {\n return (\n (state.session.user.token?.sidSubst !== \"\"\n ? state.session.user.token?.sidSubst\n : state.session.user.token?.sid) ?? \"\"\n );\n}\n\n// uživatel, který prošel přihlášením\nexport function selectAuthIxsRef(state: IRootState): string {\n const user = state.session.userList.users.find(f => f.ixs_ref === state.session.userList.selectedIxsRef);\n if (user?.poradi == null) return state.session.user.token?.sid ?? \"\";\n else return selectIxsRef(state);\n}\n","import React from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport classes from \"./NewRequestDialog.module.scss\";\nimport { DatePicker, DatePickerChangeEvent, TimePicker, TimePickerChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { Checkbox, CheckboxChangeEvent, Input } from \"@progress/kendo-react-inputs\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { ILocalizationState } from \"../../redux/slices/localization\";\nimport { insertAbsencesToMultipleDates } from \"../../redux/actions/absenceInsertion\";\nimport { IporefForWidget } from \"../../model/IporefForWidget\";\nimport { IAccount } from \"../../model/IAccount\";\nimport { IntlProvider } from \"@progress/kendo-react-intl\";\nimport AccountDropdown from \"../../components/AccountDropdown/AccountDropdown\";\nimport { AppDispatch } from \"../..\";\nimport { unwrapResult } from \"@reduxjs/toolkit\";\nimport CustomCalendar from \"./CustomCalendar\";\nimport CustomPopup from \"./CustomPopup\";\nimport { INewRequestParams } from \"../../model/INewRequestParams\";\nimport { NotificationGroup, Notification } from \"@progress/kendo-react-notification\";\nimport { Slide } from \"@progress/kendo-react-animation\";\nimport PersonsForApprovalDropdown from \"../PersonsForApprovalDropdown/PersonsForApprovalDropdown\";\nimport { selectIxsRef } from \"../../redux/selectors/selectIxsRef\";\nimport { RequestsAgend } from \"../../model/wflReq\";\nimport { Error } from \"@progress/kendo-react-labels\";\n\nconst position = {\n top: 0,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n};\nclass NewRequestDialog extends React.Component {\n constructor(props: Props) {\n super(props);\n let tomorrow: Date = new Date().addDays(1).getStartOfDay();\n this.state = {\n dayOfBegin: this.props.defaults?.begin.getStartOfDay() ?? tomorrow,\n timeOfBegin:\n this.props.defaults?.begin ??\n (props.isRequest ? new Date(0, 0, 0, 8, 0, 0, 0) : new Date(0, 0, 0, 0, 0, 0, 0)),\n dayOfEnd: this.props.defaults?.end.getStartOfDay() ?? tomorrow,\n account: undefined,\n isWrongDayOrder: false,\n timeOfEnd:\n this.props.defaults?.end ??\n (props.isRequest ? new Date(0, 0, 0, 16, 30, 0, 0) : new Date(0, 0, 0, 23, 59, 0, 0)),\n isAllDay: this.props.defaults?.isAllDay ?? true,\n person: undefined,\n comment: \"\",\n isCommentEmpty: false,\n };\n }\n\n private handleDayOfBeginChange = (e: DatePickerChangeEvent) => {\n const dayOfBegin = e.value!;\n // checking of second datepicker only when selecting date in picker\n if (e.nativeEvent instanceof MouseEvent) {\n this.setState(state => ({\n dayOfBegin: dayOfBegin,\n dayOfEnd: state.dayOfEnd < dayOfBegin ? dayOfBegin : state.dayOfEnd,\n }));\n } else {\n this.setState(state => ({ dayOfBegin: dayOfBegin }));\n this.checkCorrectDateOrder(dayOfBegin, this.state.dayOfEnd);\n }\n };\n\n private handleTimeOfBeginChange = (e: TimePickerChangeEvent) => {\n const timeOfBegin = e.value!;\n this.setState({ timeOfBegin: timeOfBegin });\n };\n\n private handleDayOfEndChange = (e: DatePickerChangeEvent) => {\n const dayOfEnd = e.value!;\n // checking of second datepicker only when selecting date in picker\n if (e.nativeEvent instanceof MouseEvent) {\n this.setState(state => ({\n dayOfEnd: dayOfEnd,\n dayOfBegin: state.dayOfBegin > dayOfEnd ? dayOfEnd : state.dayOfBegin,\n }));\n } else {\n this.setState(state => ({ dayOfEnd: dayOfEnd }));\n this.checkCorrectDateOrder(this.state.dayOfBegin, dayOfEnd);\n }\n };\n\n private checkCorrectDateOrder = (dayBegin: Date, dayEnd: Date) => {\n if (dayBegin > dayEnd) {\n this.setState({ isWrongDayOrder: true });\n } else this.setState({ isWrongDayOrder: false });\n };\n\n private handleTimeOfEndChange = (e: TimePickerChangeEvent) => {\n const timeOfEnd = e.value!;\n this.setState({ timeOfEnd: timeOfEnd });\n };\n\n private handleSaveButtonClick = () => {\n if (!this.state.account && this.props.isRequest) return;\n if (!this.props.isRequest && this.state.comment === \"\") {\n this.setState({ isCommentEmpty: true });\n return;\n }\n this.props\n .onSave({\n objectID: this.props.isRequest ? RequestsAgend.Requests : RequestsAgend.Unavalabilities,\n accountID: this.state.account ? this.state.account.id : 0,\n accountABS: this.state.account ? this.state.account.abs : \"\",\n userID: this.state.person?.IXS_REF ?? this.props.userId ?? \"\",\n isAllDay: this.state.isAllDay,\n dayOfBegin: this.state.dayOfBegin,\n dayOfEnd: this.state.dayOfEnd,\n timeOfBegin: this.state.timeOfBegin,\n timeOfEnd: this.state.timeOfEnd,\n comment: this.state.comment ?? \"\",\n })\n .then(\n () =>\n this.props.onClose &&\n this.props.onClose({\n canceled: false,\n saved: true,\n })\n );\n };\n\n private handleIsAllDayChange = (event: CheckboxChangeEvent) => {\n const isAllDay = event.value;\n\n this.setState(state => ({\n isAllDay: isAllDay,\n dayOfEnd: isAllDay ? state.dayOfBegin : state.dayOfEnd,\n }));\n };\n\n private handlePersonSelect = (person: IporefForWidget): void => {\n this.setState({ person: person });\n };\n\n private handleAccountSelect = (account: IAccount): void => {\n this.setState({ account: account });\n };\n\n public render() {\n const steps = { minute: 30 };\n const isOverMidnight =\n !this.state.isAllDay && this.state.timeOfBegin.getTimeOfDay() > this.state.timeOfEnd.getTimeOfDay();\n const dateTo = isOverMidnight ? this.state.dayOfBegin.addDays(1) : this.state.dayOfEnd;\n return (\n \n \n !this.props.isSaving &&\n this.props.onClose &&\n this.props.onClose({\n canceled: true,\n saved: false,\n })\n }\n >\n \n \n {this.state.isWrongDayOrder && (\n \n {this.props.strings.requests.IsWrongDayOrder}\n \n )}\n \n \n\n {this.props.canSelectPerson && (\n
\n \n
\n )}\n {this.props.isRequest && (\n <>\n
\n \n
\n
\n \n
\n
\n \n \n {!this.state.isAllDay && (\n \n )}\n
\n
\n \n \n {!this.state.isAllDay && (\n \n )}\n
\n \n )}\n {!this.props.isRequest && (\n <>\n
\n \n \n
\n
\n \n {\n \n }\n
\n
\n \n {\n \n }\n
\n
\n this.setState({ comment: e.target.value?.toString() ?? \"\" })}\n />\n {this.state.isCommentEmpty && (\n {this.props.strings.requests.ErrorRequiredNoteUnava}\n )}\n
\n \n )}\n \n \n this.props.onClose &&\n this.props.onClose({\n canceled: true,\n saved: false,\n })\n }\n >\n {this.props.strings.common.Close}\n \n\n \n {this.props.strings.common.Save}\n \n \n \n
\n );\n }\n}\n\ninterface IState {\n isAllDay: boolean;\n dayOfBegin: Date;\n timeOfBegin: Date;\n dayOfEnd: Date;\n timeOfEnd: Date;\n account?: IAccount;\n isWrongDayOrder: boolean;\n person?: IporefForWidget;\n isCommentEmpty: boolean;\n comment: string;\n}\n\ninterface IOwnProps {\n onClose?: (e: ICloseEvent) => void;\n isRequest: boolean;\n canSelectPerson: boolean;\n onlyWorkflow: boolean;\n parentAgend?: RequestsAgend;\n defaults?: {\n begin: Date;\n end: Date;\n isAllDay: boolean;\n };\n}\n\ninterface IStateProps extends ILocalizationState {\n userId?: string;\n isSaving: boolean;\n}\n\ninterface IDispatchProps {\n onSave: (p: INewRequestParams) => Promise;\n}\n\ntype Props = IOwnProps & IStateProps & IDispatchProps;\n\nexport interface ICloseEvent {\n canceled: boolean;\n saved: boolean;\n}\n\nexport default connect(\n state => ({\n ...state.localization,\n userId: selectIxsRef(state),\n isSaving: state.session.absenceInsertion.inserting,\n }),\n (dispatch: AppDispatch) => ({\n onSave: p => dispatch(insertAbsencesToMultipleDates(p)).then(unwrapResult).then(),\n })\n)(NewRequestDialog);\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { WflReq } from \"../../model/wflReq\";\nimport { IRootState } from \"../reducers/root\";\n\nconst DOMAIN = \"myRequests\";\n\nexport const fetchMyRequestsDatasource = createAsyncThunk<\n WflReq,\n { BoolValue: boolean; IsRequests: boolean },\n { state: IRootState }\n>(`${DOMAIN}/fetchMyRequestsDatasource`, async function (arg, api) {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n let reqBody = {\n IsActual: false,\n BoolValue: arg.BoolValue,\n CurrentAgenda: arg.IsRequests ? \"requests\" : \"unavailabilities\",\n };\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(reqBody),\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/GetWflRequestsTabForMobile\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n});\n","import React, { PropsWithChildren } from \"react\";\nimport styles from \"./SpinnerBox.module.scss\";\n\ninterface IProps extends PropsWithChildren<{}> {\n /** Size of spinner in rem units. Defaults to 5rem. */\n size?: number;\n stretchToWindow?: boolean;\n}\n\nexport function SpinnerBox(props: IProps) {\n return (\n
\n \n {props.children}\n
\n );\n}\n","import React from \"react\";\nimport { Notification } from \"@progress/kendo-react-notification\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { PanelBar, PanelBarItem } from \"@progress/kendo-react-layout\";\nimport styles from \"../components/ErrorNotification.module.scss\";\nimport { IAppError } from \"../model/errors/IAppError\";\nimport { selectStrings } from \"../redux/selectors/selectStrings\";\nimport { useSelector } from \"react-redux\";\nimport { IStrings } from \"../constants/languageStrings/IStrings\";\n\n/**\n * Komponenta pro chybový text který neobsahuje tzv. bílé znaky.\n */\nexport function ErrorNotification(props: { error?: SerializedError }) {\n const strings = useSelector(selectStrings);\n let err: IAppError | undefined = undefined;\n if (props.error != null && props.error.message != null) {\n try {\n err = JSON.parse(props.error.message);\n } catch (error) {\n err = undefined;\n }\n }\n\n return (\n
\n \n \n \n
{props.error?.message}
\n
\n
\n
\n
\n );\n}\n\nexport function getErrorTitle(\n err: IAppError | undefined,\n error: SerializedError | undefined,\n strings: IStrings\n): string {\n if (err != null) {\n if (err.status >= 500) {\n return strings.common.ErrorNotificationServer;\n }\n if (err.status >= 400 && err.status < 500) {\n return strings.common.ErrorNotificationClient;\n }\n } else if (error?.name === \"TypeError\") {\n return strings.common.ErrorNotificationClient;\n }\n return strings.common.ErrorNotification;\n}\n\nexport function ErrorNotificationText(props: { text?: string }) {\n return (\n \n
{props.text}
\n
\n );\n}\n","import React from \"react\";\nimport { PageLayout } from \"../../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../../components/NavBar/NavBar\";\nimport styles from \"../Requests.module.scss\";\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport { Checkbox } from \"@progress/kendo-react-inputs\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport RequestDetail from \"../RequestDetail\";\nimport NewRequestDialog from \"./../../../components/NewRequestDialog/NewRequestDialog\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../../redux/reducers/root\";\nimport { fetchMyRequestsDatasource } from \"../../../redux/actions/myRequests\";\nimport { IStrings } from \"../../../constants/languageStrings/IStrings\";\nimport { IBaseMenuItem } from \"../../../components/NavBar/IBaseMenuItem\";\nimport { WflReq } from \"../../../model/wflReq\";\nimport PermissionGuard from \"../../../components/PermissionGuard\";\nimport { permissions } from \"../../../constants/permissions\";\nimport { SpinnerBox } from \"../../../components/Spinner/SpinnerBox\";\nimport { ErrorNotification } from \"../../../components/ErrorNotification\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { remainingDaysString } from \"../../../utils/localization/LocalizationUtils\";\n\nexport class MyRequests extends React.Component {\n constructor(props: IProps) {\n super(props);\n //TODO: fix potential error throw when getItem() is called\n let isChecked: boolean =\n localStorage.getItem(this.props.isRequest ? \"isCheckedMyRequests\" : \"isCheckedUnavailabilities\") === \"true\";\n this.state = {\n onlyPending: isChecked,\n dialog: {\n detail: false,\n newRequest: false,\n },\n };\n }\n\n async componentDidMount() {\n this.props.onDatasourceFetch &&\n this.props.onDatasourceFetch({ BoolValue: this.state.onlyPending, IsRequests: this.props.isRequest });\n }\n\n openDetailDialog(id: number) {\n if (this.props.dataSource !== undefined) {\n let data = this.props.dataSource.find(ipo => ipo.ID === id);\n this.setState({ detailData: data });\n this.setState({ dialog: { detail: true } });\n }\n }\n\n async openNewRequestDialog() {\n this.setState({ dialog: { newRequest: true } });\n }\n\n handleOnlyPendingChange = () => {\n let result: boolean = !this.state.onlyPending;\n localStorage.setItem(\n this.props.isRequest ? \"isCheckedMyRequests\" : \"isCheckedUnavailabilities\",\n result.toString()\n );\n this.setState({ onlyPending: result });\n this.props.onDatasourceFetch &&\n this.props.onDatasourceFetch({ BoolValue: result, IsRequests: this.props.isRequest });\n };\n\n private handleDetailRequestDialogClose = () => {\n this.setState({ dialog: { detail: false } });\n this.setState({ dialog: { newRequest: false } });\n this.props.onDatasourceFetch &&\n this.props.onDatasourceFetch({\n BoolValue: this.state.onlyPending,\n IsRequests: this.props.isRequest,\n });\n };\n\n private createMenuItems = () => {\n const strings = this.props.strings;\n return [\n {\n id: 1,\n content: (\n \n \n \n ),\n },\n ] as IBaseMenuItem[];\n };\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n case 1:\n this.handleOnlyPendingChange();\n break;\n default:\n item.id && console.warn(\"Unhandled menu item: \", item);\n }\n };\n\n private getRemainingDays(RemainingDays: number, State: number): React.ReactNode {\n const strings = this.props.strings;\n if (State === 0) {\n return remainingDaysString(strings, RemainingDays);\n }\n }\n\n private getAccountText(Text: string): React.ReactNode {\n if (this.props.isRequest) {\n let separator: string = Text.indexOf(\".\") === -1 ? \"/\" : \".\";\n return Text.substr(0, Text.indexOf(separator) - 2);\n } else {\n return Text.substr(Text.lastIndexOf(\":\") + 4);\n }\n }\n\n private getFromTo(Text: string): React.ReactNode {\n let separator: string = Text.indexOf(\".\") === -1 ? \"/\" : \".\";\n if (this.props.isRequest) {\n return Text.substr(Text.indexOf(separator) - 2);\n } else {\n return Text.substring(Text.indexOf(separator) - 2, Text.lastIndexOf(\":\") + 4);\n }\n }\n\n render() {\n let rows: WflReq[] = this.props.dataSource || [];\n return (\n \n \n \n \n \n }\n >\n {this.props.isDatasourceFetching ? (\n \n ) : (\n <>\n {this.props.error ? (\n \n ) : (\n \n {rows.length === 0 && (\n \n )}\n {/* řádky */}\n {rows.map((row: WflReq, key: any) => (\n this.openDetailDialog(row.ID)}\n >\n \n \n {this.getAccountText(row.ReqText)}\n \n

\n {/* {localization.strings.requests.From + \" \"}{row.from}{\" \"+localization.strings.requests.To + \" \"}{row.to} */}\n {this.getFromTo(row.ReqText)}\n \n }\n secondary={\n \n {this.getRemainingDays(row.RemainingDaysFloor, row.State)}\n \n }\n />\n \n
\n {row.State === 0 && (\n \n )}\n {row.State === 1 && (\n \n )}\n {row.State === 2 && (\n \n )}\n {row.State === 3 && (\n \n )}\n
\n
\n \n ))}\n
\n )}\n \n )}\n\n {this.state.dialog.detail && (\n \n )}\n {this.state.dialog.newRequest && (\n \n )}\n \n );\n }\n}\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n\n isDatasourceFetching: state.session.myRequests?.isFetching,\n dataSource: state.session.myRequests?.datasource,\n error: state.session.myRequests?.error,\n }),\n {\n onDatasourceFetch: e => fetchMyRequestsDatasource(e),\n }\n)(MyRequests);\n\ninterface IOwnProps {\n isRequest: boolean;\n}\n\ninterface IStateProps {\n strings: IStrings;\n\n isDatasourceFetching?: boolean;\n dataSource?: WflReq[];\n error?: SerializedError;\n}\n\ninterface IDispatchProps {\n onDatasourceFetch: (e: { BoolValue: boolean; IsRequests: boolean }) => void;\n}\n\ninterface IState {\n onlyPending: boolean;\n detailData?: WflReq;\n dialog: {\n detail?: boolean;\n newRequest?: boolean;\n };\n}\n\ntype IProps = IStateProps & IDispatchProps & RouteChildrenProps & IOwnProps;\n","import React, { ReactNode } from \"react\";\nimport { PageLayout } from \"../../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../../components/NavBar/NavBar\";\nimport styles from \"../Requests.module.scss\";\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport { Checkbox, Input } from \"@progress/kendo-react-inputs\";\nimport { RouteChildrenProps, RouteComponentProps } from \"react-router-dom\";\nimport RequestDetail from \"../RequestDetail\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../../redux/reducers/root\";\nimport { IStrings } from \"../../../constants/languageStrings/IStrings\";\nimport { fetchRequestsForApprovalDatasource } from \"../../../redux/actions/requestsForApproval\";\nimport { IBaseMenuItem } from \"../../../components/NavBar/IBaseMenuItem\";\nimport { WflReq } from \"../../../model/wflReq\";\nimport NewRequestDialog from \"../../../components/NewRequestDialog/NewRequestDialog\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { SpinnerBox } from \"../../../components/Spinner/SpinnerBox\";\nimport { ErrorNotification } from \"../../../components/ErrorNotification\";\nimport { ListItemIcon } from \"@material-ui/core\";\nimport { wflChangeStateMultiple } from \"../../../redux/actions/wflStateChange\";\nimport { permissions } from \"../../../constants/permissions\";\nimport { QueryParam2 } from \"../../../model/CommonQueryParams\";\nimport { DialogActionsBar, Dialog } from \"@progress/kendo-react-dialogs\";\nimport { remainingDaysString } from \"../../../utils/localization/LocalizationUtils\";\n\nexport class RequestsForApproval extends React.Component {\n constructor(props: IProps) {\n super(props);\n let isChecked: boolean = localStorage.getItem(\"isCheckedApprovalRequests\") === \"true\";\n this.state = {\n onlyPending: isChecked,\n searchText: \"\",\n dialog: {\n detail: false,\n newRequest: false,\n },\n selectionMode: false,\n checkedReqs: [],\n multiDialogVisible: false,\n multiStatus: 0,\n };\n }\n\n async componentDidMount() {\n (await this.props.onDatasourceFetch) &&\n this.props.onDatasourceFetch([this.state.searchText, this.state.onlyPending, this.props.isRequest]);\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void {\n const reqId = Number(this.props.match?.params.id);\n if (reqId > 0) {\n this.openDetailDialog(reqId);\n }\n }\n\n openDetailDialog(id: number) {\n if (this.props.dataSource !== undefined) {\n let data = this.props.dataSource.find(ipo => ipo.ID === id);\n if (data !== undefined) {\n this.setState({ detailData: data });\n this.setState({ dialog: { detail: true } });\n this.props.history.push(this.props.isRequest ? \"/requests-approve\" : \"/unavailabilities-approve\");\n }\n }\n }\n\n async openNewRequestDialog() {\n this.setState({ dialog: { newRequest: true } });\n }\n\n handleOnlyPendingChange = () => {\n let result: boolean = !this.state.onlyPending;\n localStorage.setItem(\"isCheckedApprovalRequests\", result.toString());\n this.setState({ onlyPending: result, checkedReqs: [], selectionMode: false });\n this.props.onDatasourceFetch &&\n this.props.onDatasourceFetch([this.state.searchText, result, this.props.isRequest]);\n };\n\n private handleDetailRequestDialogClose = () => {\n this.setState({ dialog: { detail: false } });\n this.setState({ dialog: { newRequest: false } });\n this.props.onDatasourceFetch &&\n this.props.onDatasourceFetch([this.state.searchText, this.state.onlyPending, this.props.isRequest]);\n };\n\n private createMenuItems = () => {\n const strings = this.props.strings;\n var items = [\n {\n id: 1,\n content: (\n \n \n \n ) as ReactNode,\n },\n ];\n if (this.props.isAbsenceApprover === undefined || this.props.isAbsenceApprover || !this.props.isRequest) {\n items.push({ id: 2, content: this.props.strings.requests.NewRequestFor });\n }\n if (!this.state.selectionMode) {\n items.push({\n id: 3,\n content: this.props.strings.requests.MassApprove,\n });\n }\n return items as IBaseMenuItem[];\n };\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n case 2:\n this.openNewRequestDialog();\n break;\n case 1:\n this.handleOnlyPendingChange();\n break;\n case 3:\n this.setState({ selectionMode: !this.state.selectionMode, checkedReqs: [] });\n break;\n default:\n item.id && console.warn(\"Unhandled value: \" + item.id);\n }\n };\n\n private getRemainingDays(RemainingDays: number, State: number): React.ReactNode {\n const strings = this.props.strings;\n if (State === 0) {\n return remainingDaysString(strings, RemainingDays);\n }\n }\n\n private getAccountText(Text: string): React.ReactNode {\n if (this.props.isRequest) {\n let separator: string = Text.indexOf(\".\") === -1 ? \"/\" : \".\";\n return Text.substr(0, Text.indexOf(separator) - 2);\n } else {\n return Text.substr(Text.lastIndexOf(\":\") + 4);\n }\n }\n\n private getFromTo(Text: string): React.ReactNode {\n let separator: string = Text.indexOf(\".\") === -1 ? \"/\" : \".\";\n if (this.props.isRequest) {\n return Text.substr(Text.indexOf(separator) - 2);\n } else {\n return Text.substring(Text.indexOf(separator) - 2, Text.lastIndexOf(\":\") + 4);\n }\n }\n\n private searchData(): void {\n this.props.onDatasourceFetch &&\n this.props.onDatasourceFetch([this.state.searchText, this.state.onlyPending, this.props.isRequest]);\n }\n\n private isEverythingselected = () =>\n this.state.checkedReqs.length === this.props.dataSource?.filter(f => f.State === 0).length;\n\n private isNothingSelected = () => this.state.checkedReqs.length === 0;\n\n private toggleSelection(req?: WflReq): void {\n if (req) {\n if (req.State === 0) {\n if (this.state.checkedReqs.some(s => s === req.ID)) {\n this.setState({ checkedReqs: this.state.checkedReqs.filter(f => f !== req.ID) });\n } else {\n this.setState({ checkedReqs: this.state.checkedReqs.concat([req.ID]) });\n }\n }\n } else {\n if (this.isEverythingselected()) {\n this.setState({ checkedReqs: [] });\n } else {\n this.setState({ checkedReqs: this.props.dataSource?.filter(f => f.State === 0).map(m => m.ID) ?? [] });\n }\n }\n }\n\n private getChechboxIconClass() {\n return this.state.checkedReqs.length === 0\n ? \"k-icon k-i-checkbox\"\n : this.isEverythingselected()\n ? \"k-icon k-i-checkbox-checked\"\n : \"k-icon k-i-tri-state-indeterminate\";\n }\n\n render() {\n let rows: WflReq[] = this.props.dataSource || [];\n return (\n \n this.setState({ multiDialogVisible: true, multiStatus: 1 })}\n disabled={this.isNothingSelected()}\n />\n {this.props.reqNotePerm && (\n this.setState({ multiDialogVisible: true, multiStatus: 2 })}\n disabled={this.isNothingSelected()}\n />\n )}\n this.setState({ searchText: e.value })}\n />\n this.searchData()}\n />\n \n }\n footer={\n
\n
\n \n {this.state.checkedReqs.length +\n \"/\" +\n this.props.dataSource?.filter(f => f.State === 0).length}\n \n
\n
\n this.toggleSelection()}\n >\n {this.props.strings.requests.SelectAll}\n \n
\n \n
\n
\n }\n >\n {(this.props.isDatasourceFetching || this.props.changePending) && }\n {this.props.error && }\n {!this.props.isDatasourceFetching && !this.props.changePending && !this.props.error && (\n <>\n {rows.length === 0 && (\n \n )}\n \n {/* řádky */}\n {rows.map((row: WflReq, key: any) => (\n {\n if (this.state.selectionMode) this.toggleSelection(row);\n else this.openDetailDialog(row.ID);\n }}\n onContextMenu={e => {\n e.preventDefault();\n if (this.state.selectionMode) this.toggleSelection(row);\n else if (row.State === 0)\n this.setState({ selectionMode: true, checkedReqs: [row.ID] });\n else this.setState({ selectionMode: true, checkedReqs: [] });\n }}\n >\n \n s === row.ID)}\n >\n \n \n
\n \n {row.Applicant + \" - \" + this.getAccountText(row.ReqText)}\n \n
\n
\n \n {this.getFromTo(row.ReqText)}\n \n
\n
\n }\n secondary={\n \n {this.getRemainingDays(row.RemainingDaysFloor, row.State)}\n \n }\n />\n \n
\n {row.State === 0 && (\n \n )}\n {row.State === 1 && (\n \n )}\n {row.State === 2 && (\n \n )}\n {row.State === 3 && }\n
\n
\n \n ))}\n \n \n )}\n {this.state.dialog.detail && (\n \n )}\n {this.state.multiDialogVisible && (\n \n \n \n {\n this.setState({ multiDialogVisible: false });\n const reqs = this.props.dataSource\n ?.filter(f => this.state.checkedReqs.includes(f.ID))\n .sort((a, b) => +new Date(a.Expdate) - +new Date(b.Expdate))\n .map(m => m.ID);\n this.props\n .onSetStateMultiple({ Value: reqs, Value2: this.state.multiStatus })\n .then(() =>\n this.props.onDatasourceFetch([\n this.state.searchText,\n this.state.onlyPending,\n this.props.isRequest,\n ])\n );\n this.setState({ checkedReqs: [], selectionMode: false });\n }}\n >\n {this.props.strings.common.Yes}\n \n \n \n )}\n {this.state.dialog.newRequest && (\n \n )}\n \n );\n }\n}\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n\n isDatasourceFetching: state.session.requestsForApproval?.isFetching,\n changePending: state.session.wflChangeState.inserting,\n error: state.session.requestsForApproval?.error,\n dataSource: state.session.requestsForApproval?.datasource,\n isAbsenceApprover: state.session.dashboard.data?.isAbsenceApprover,\n reqNotePerm:\n state.session.user.token?.userDisabledActions.some(p => p === permissions.requestsForApproval.rejectNote) ??\n false,\n }),\n {\n onDatasourceFetch: e => fetchRequestsForApprovalDatasource(e),\n onSetStateMultiple: e => wflChangeStateMultiple(e),\n }\n)(RequestsForApproval);\n\ninterface IOwnProps {\n isRequest: boolean;\n}\n\ninterface IStateProps {\n strings: IStrings;\n isDatasourceFetching?: boolean;\n changePending?: boolean;\n error?: SerializedError;\n dataSource?: WflReq[];\n isAbsenceApprover?: boolean;\n reqNotePerm: boolean;\n}\n\ninterface IDispatchProps {\n onDatasourceFetch: (e: [string, boolean, boolean]) => void;\n onSetStateMultiple: (e: QueryParam2) => any;\n}\n\ninterface IState {\n onlyPending: boolean;\n detailData?: WflReq;\n searchText: string;\n dialog: {\n detail?: boolean;\n newRequest?: boolean;\n };\n selectionMode: boolean;\n checkedReqs: number[];\n multiDialogVisible: boolean;\n multiStatus: number;\n}\n\ntype IProps = IStateProps & IDispatchProps & RouteChildrenProps & ComponentProps & IOwnProps;\n\ninterface RouteInfo {\n id: string;\n}\ninterface ComponentProps extends RouteComponentProps {}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { IPersonalCardData } from \"../../model/IPersonalCardData\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\n\nexport const fetchPersonalCardData = createAsyncThunk, void, { state: IRootState }>(\n \"personalCard/data/fetch\",\n async function (arg, api) {\n let requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n signal: api.signal,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/controllers/SelfService/PersonalCard\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n","import React, { PropsWithChildren, useEffect } from \"react\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport { Input } from \"@progress/kendo-react-inputs\";\nimport styles from \"./PersonalCard.module.css\";\nimport { fetchPersonalCardData } from \"../../redux/actions/personalCard\";\nimport { IBaseMenuItem } from \"../../components/NavBar/IBaseMenuItem\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport defaultAvatarSource from \"../../assets/images/avatar-140.jpg\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { useFormatDate } from \"../../hooks/useFormatDate\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\n\nexport function PersonalCard() {\n const dispatch = useAppDispatch();\n useEffect(() => {\n const abortable = dispatch(fetchPersonalCardData());\n return () => abortable.abort();\n }, [dispatch]);\n\n function createMenuItems() {\n return [] as IBaseMenuItem[];\n }\n\n function handleMenuItemClick(item: IBaseMenuItem) {\n switch (item.id) {\n default:\n item.id && console.warn(\"Unhandled menu item: \", item);\n }\n }\n\n const strings = useStrings();\n return (\n \n }\n >\n
\n \n \n \n \n \n
\n \n );\n}\n\nexport default PersonalCard;\n\nfunction Loading(props: PropsWithChildren<{}>) {\n const isLoading = useAppSelector(s => s.session.personalCard.isFetching);\n\n if (isLoading) {\n return ;\n }\n\n return <>{props.children};\n}\n\nfunction ErrorGuard(props: PropsWithChildren<{}>) {\n const error = useAppSelector(s => s.session.personalCard.error);\n\n if (error) {\n return ;\n }\n\n return <>{props.children};\n}\n\nfunction Content() {\n const strings = useStrings();\n const formatDate = useFormatDate();\n const data = useAppSelector(s => s.session.personalCard.data) ?? {};\n\n return (\n <>\n \n
\n \n \n \n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n );\n}\n","import React from \"react\";\nimport styles from \"./SidebarCell.module.scss\";\nimport { IGroup } from \"../types\";\nimport classNames from \"classnames\";\n\ninterface IProps {\n group: G;\n rowIndex: number;\n className?: string;\n contentRenderer?: (props: { group: G }) => React.ReactNode;\n}\n\nexport const SidebarCell = (props: IProps) => (\n \n {props.contentRenderer ? props.contentRenderer({ group: props.group }) : {props.group.title}}\n \n);\n","export function time2minutes(time: Date): number {\n return time.getHours() * 60 + time.getMinutes();\n}\n\nexport function time2seconds(time: Date): number {\n return time.getHours() * 60 * 60 + time.getMinutes() * 60 + time.getSeconds();\n}\n","import React from \"react\";\nimport { IntervalContextMenuHandler } from \"../types\";\n\nexport const IntervalContextMenuHandlerContext = React.createContext>(() => {});\n","import React from \"react\";\nimport { IntervalClickHandler } from \"../types\";\n\nexport const IntervalClickHandlerContext = React.createContext>(() => {});\n","import React from \"react\";\nimport { IGroup } from \"../types\";\n\nexport const GroupContext = React.createContext({ id: -1, title: \"\" });\n","import React, { useContext } from \"react\";\nimport { IInterval } from \"../types\";\nimport { IntervalContextMenuHandlerContext } from \"../context/IntervalContextMenuHandlerContext\";\nimport { IntervalClickHandlerContext } from \"../context/IntervalClickHandlerContext\";\nimport { GroupContext } from \"../context/GroupContext\";\n\ninterface IProps {\n interval: IInterval;\n}\n\nexport function Interval(props: IProps) {\n const handleClick = useContext(IntervalClickHandlerContext);\n const handleContextMenu = useContext(IntervalContextMenuHandlerContext);\n const group = useContext(GroupContext);\n return (\n handleClick && handleClick(props.interval, group, e)}\n onContextMenu={e => handleContextMenu && handleContextMenu(props.interval, group, e)}\n >\n {props.interval.title}\n \n );\n}\n","import React from \"react\";\nimport { IInterval } from \"../types\";\nimport { time2minutes } from \"../utils\";\nimport styles from \"./GridPositioner.module.scss\";\nimport { Interval } from \"../intervals/Interval\";\n\nexport function GridPositioner(props: { interval: IInterval }) {\n const beginPerct = (100 / 1440) * time2minutes(props.interval.beginTime);\n const endPerct = 100 - (100 / 1440) * time2minutes(props.interval.endTime);\n\n return (\n \n \n \n );\n}\n","export type ColorParts = {\n red: number;\n green: number;\n blue: number;\n alpha: number;\n};\n\nexport class Color {\n private _parts: ColorParts;\n\n public get parts(): ColorParts {\n return { ...this._parts };\n }\n\n constructor(parts: ColorParts) {\n this._parts = { ...parts };\n }\n\n public static random(): Color {\n return new Color({\n blue: Math.floor(Math.random() * 255),\n green: Math.floor(Math.random() * 255),\n red: Math.floor(Math.random() * 255),\n alpha: 1,\n });\n }\n\n /** Parse ANeT encoded RGB color into Color type. */\n public static fromPbColor(pbColor: number | null): Color {\n if (pbColor == null || pbColor <= 0) {\n return new Color({ red: 0, green: 0, blue: 0, alpha: 0 });\n }\n\n const red = pbColor % 256;\n const green = Math.floor((pbColor - red) % 65536) / 256;\n const blue = Math.floor((pbColor - red - green) / 65536);\n\n return new Color({ red, green, blue, alpha: 1 });\n }\n\n /** Encode Color type into CSS rgba() string. */\n public toCSSRGBA(): string {\n return `rgba(${this._parts.red}, ${this._parts.green}, ${this._parts.blue}, ${this._parts.alpha})`;\n }\n}\n","import { formatDate } from \"@telerik/kendo-intl\";\nimport { IInterval, IGroup } from \"./types\";\nimport { Color } from \"../../model/Color\";\nimport { Key } from \"react\";\n\nexport function generateRandomIntervals(count: number): IInterval[] {\n const intervals: IInterval[] = [];\n\n for (let day = 1; day <= count; day++) {\n intervals.push(generateRandomInterval(day, 1));\n intervals.push(generateRandomInterval(day, 2, \"Odpracováno\"));\n intervals.push(generateRandomInterval(day, 2, \"Přestávka\"));\n }\n\n return intervals;\n}\n\nexport function createCustomIntervals(): IInterval[] {\n const intervals: IInterval[] = [\n {\n id: 1,\n title: \"Od\",\n day: new Date(2020, 0, 1),\n beginTime: new Date(2020, 0, 1, 1, 0),\n endTime: new Date(2020, 0, 1, 23, 0),\n style: {\n backgroundColor: Color.random().toCSSRGBA(),\n },\n group: {\n id: 1,\n },\n },\n {\n id: 2,\n title: \"PO\",\n day: new Date(2020, 0, 1),\n beginTime: new Date(2020, 0, 1, 9, 0),\n endTime: new Date(2020, 0, 1, 15, 0),\n style: {\n backgroundColor: Color.random().toCSSRGBA(),\n zIndex: 2,\n },\n group: {\n id: 2,\n },\n },\n ];\n\n return intervals;\n}\n\nexport function generateRandomInterval(day: number, stackID: Key, title?: string): IInterval {\n let hours = Math.floor(Math.random() * 23);\n let minutes = Math.floor(Math.random() * 59);\n let begin = new Date(2020, 0, day, hours, minutes);\n\n hours = Math.floor(Math.random() * 23);\n minutes = Math.floor(Math.random() * 59);\n let end = new Date(2020, 0, day, hours, minutes);\n\n if (begin.getTime() > end.getTime()) [begin, end] = [end, begin];\n\n return {\n id: uuidv4(),\n title: title\n ? title\n : formatDate(begin, { hour: \"2-digit\", minute: \"2-digit\" }) +\n \"-\" +\n formatDate(end, { hour: \"2-digit\", minute: \"2-digit\" }),\n day: new Date(2020, 0, day),\n beginTime: begin,\n endTime: end,\n style: {\n backgroundColor: Color.random().toCSSRGBA(),\n },\n group: {\n id: day,\n stackID: stackID,\n },\n };\n}\n\nfunction uuidv4() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, char => {\n const r = (Math.random() * 16) | 0;\n const v = char === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport function generateDummyInterval(): IInterval {\n return {\n id: uuidv4(),\n title: \"dummy\",\n day: new Date(),\n beginTime: new Date(),\n endTime: new Date(),\n group: {\n id: -1,\n },\n style: {\n visibility: \"hidden\",\n },\n };\n}\n\nexport function generateGroups(): IGroup[] {\n const groups: IGroup[] = [];\n\n for (let day = 1; day <= 30; day++) {\n groups.push({\n id: day,\n title: formatDate(new Date(2020, 0, day), { day: \"numeric\", weekday: \"short\" }),\n });\n }\n\n return groups;\n}\n","import React from \"react\";\nimport { IInterval } from \"../types\";\nimport { Interval } from \"../intervals/Interval\";\nimport { time2seconds } from \"../utils\";\n\ninterface IProps {\n stackWidth: number;\n interval: IInterval;\n}\n\nexport function AbsolutePositioner(props: IProps) {\n function computePosition() {\n const beginPerct = (100 / (24 * 60 * 60)) * time2seconds(props.interval.beginTime);\n const endPerct = (100 / (24 * 60 * 60)) * time2seconds(props.interval.endTime);\n\n const beginPos = (props.stackWidth / 100) * beginPerct;\n const endPos = (props.stackWidth / 100) * endPerct;\n\n return { left: beginPos, width: endPos - beginPos };\n }\n\n return (\n \n \n \n );\n}\n","import React, { PropsWithChildren } from \"react\";\nimport styles from \"./Stack.module.scss\";\nimport { IInterval } from \"../types\";\nimport { GridPositioner } from \"../positioning/GridPositioner\";\nimport { generateDummyInterval } from \"../generators\";\nimport { AbsolutePositioner } from \"../positioning/AbsolutePositioner\";\n\nconst dummy = generateDummyInterval();\n\ntype IProps = PropsWithChildren<{ intervals: IInterval[] }>;\n\ninterface IState {\n width: number;\n}\n\nexport class Stack extends React.Component {\n private ref = React.createRef();\n\n public state: Readonly = {\n width: 0,\n };\n\n private handleResize = (e: Event) => {\n this.setState({ width: this.ref.current?.clientWidth ?? 0 });\n };\n\n componentDidMount() {\n this.setState({ width: this.ref.current?.clientWidth ?? 0 });\n\n window.addEventListener(\"resize\", this.handleResize);\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.handleResize);\n }\n\n public render() {\n return (\n
\n {this.props.intervals.map(intr => (\n \n ))}\n \n
\n );\n }\n}\n","import React from \"react\";\nimport { IStack } from \"../types\";\n\nexport const StacksContext = React.createContext([]);\n","import React, { useContext } from \"react\";\nimport styles from \"./ContentCell.module.scss\";\nimport { IGroup, IInterval } from \"../types\";\nimport { Stack } from \"../stacking/Stack\";\nimport classNames from \"classnames\";\nimport { StacksContext } from \"../context/StacksContext\";\n\ninterface IProps {\n intervals: I[];\n group: G;\n rowIndex: number;\n columnIndex: number;\n className?: string;\n}\n\nexport const ContentCell = (props: IProps) => {\n const stacks = useContext(StacksContext);\n return (\n \n {stacks.map(stack => {\n const intervals = props.intervals.filter(intr => (intr.group.stackID ?? 1) === stack.id);\n\n return intervals.length > 0 || stack.visibleIfEmpty ? (\n \n ) : null;\n })}\n \n );\n};\n","import React, { PropsWithChildren } from \"react\";\n\ninterface IProps {\n row: {\n start: number;\n end: number;\n };\n column: {\n start: number;\n end: number;\n };\n}\n\nexport const GridItem = (props: PropsWithChildren) => (\n \n {props.children}\n \n);\n","import React from \"react\";\nimport { IGroup, IInterval, IColumnConfig } from \"../types\";\nimport { SidebarCell } from \"../cells/SidebarCell\";\nimport { ContentCell } from \"../cells/ContentCell\";\nimport { GridItem } from \"../utils/GridItem\";\n\ninterface IProps {\n group: G;\n intervals: IInterval[];\n rowIndex: number;\n columns: IColumnConfig[];\n className?: string;\n sidebarCellContentRenderer?: (props: { group: G }) => React.ReactNode;\n cellMarkerRenderer?: (props: { group: G; column: IColumnConfig }) => React.ReactNode;\n}\n\nexport const GroupRow = (props: IProps) => (\n <>\n \n {props.columns.map((col, index) => {\n const cellMarker =\n props.cellMarkerRenderer &&\n props.cellMarkerRenderer({\n group: props.group,\n column: col,\n });\n return (\n \n p.day.getTime() >= col.beginDay.getTime() && p.day.getTime() <= col.endDay.getTime()\n )}\n rowIndex={props.rowIndex}\n columnIndex={1 + index + 1}\n className={props.className}\n />\n {cellMarker && (\n \n {cellMarker}\n \n )}\n \n );\n })}\n \n);\n","import React from \"react\";\nimport classes from \"./CornerCell.module.scss\";\n\ninterface IProps {\n contentRenderer?: () => React.ReactNode;\n}\n\nexport const CornerCell = (props: IProps) => (\n \n {props.contentRenderer && props.contentRenderer()}\n \n);\n","import React from \"react\";\n\nexport const HoursMultiplierContext = React.createContext(1);\n","import React, { useContext } from \"react\";\nimport classes from \"./HoursHeader.module.scss\";\nimport { HoursMultiplierContext } from \"../context/HoursMultiplierContext\";\n\nexport function HoursHeader() {\n const multiplier = useContext(HoursMultiplierContext);\n\n const hours: number[] = [];\n\n for (let hour = 0; hour <= 22; hour += multiplier) {\n hours.push(hour);\n }\n\n return (\n
\n {hours.map(hour => (\n
\n {hour.toString().padStart(2, \"0\")}\n
\n ))}\n
\n );\n}\n","import React from \"react\";\nimport classes from \"./DayHeader.module.scss\";\nimport { IColumnConfig } from \"../types\";\n\ninterface IProps {\n column: IColumnConfig;\n contentRenderer?: (props: { column: IColumnConfig }) => React.ReactNode;\n}\n\nexport const DayHeader = (props: IProps) => {\n const f = new Intl.DateTimeFormat();\n const content =\n props.contentRenderer &&\n props.contentRenderer({\n column: props.column,\n });\n\n return content === null ? null : (\n
\n {props.contentRenderer ? (\n content\n ) : (\n
\n {f.format(props.column.beginDay)} - {f.format(props.column.endDay)}\n
\n )}\n
\n );\n};\n","import React from \"react\";\nimport { HoursHeader } from \"../headers/HoursHeader\";\nimport classes from \"./ColumnCell.module.scss\";\nimport { IColumnConfig } from \"../types\";\nimport { DayHeader } from \"../headers/DayHeader\";\n\ninterface IProps {\n column: IColumnConfig;\n columnIndex: number;\n dayHeaderContentRenderer?: (props: { column: IColumnConfig }) => React.ReactNode;\n}\n\nexport const ColumnCell = (props: IProps) => (\n \n \n \n \n);\n","import React from \"react\";\nimport { IColumnConfig } from \"../types\";\nimport { CornerCell } from \"../cells/CornerCell\";\nimport { ColumnCell } from \"../cells/ColumnCell\";\n\ninterface IProps {\n columns: IColumnConfig[];\n cornerCellContentRenderer?: () => React.ReactNode;\n dayHeaderContentRenderer?: (props: { column: IColumnConfig }) => React.ReactNode;\n}\n\nexport const Header = (props: IProps) => (\n <>\n \n {props.columns.map((col, index) => (\n \n ))}\n \n);\n","import React, { useMemo } from \"react\";\nimport classes from \"./VerticalLines.module.scss\";\n\ninterface IProps {\n count: number;\n}\n\nexport const VerticalLines = (props: IProps) => {\n const sections = useMemo(() => {\n const parts: null[] = [];\n for (let i = 1; i <= props.count; i++) {\n parts.push(null);\n }\n\n return (\n <>\n {parts.map((empty, index) => (\n
\n ))}\n \n );\n }, [props.count]);\n\n return
{sections}
;\n};\n","import React from \"react\";\nimport { IGroup, IInterval, IntervalContextMenuHandler, IntervalClickHandler, IColumnConfig, IStack } from \"./types\";\nimport { GroupRow } from \"./rows/GroupRow\";\nimport { IntervalContextMenuHandlerContext } from \"./context/IntervalContextMenuHandlerContext\";\nimport { IntervalClickHandlerContext } from \"./context/IntervalClickHandlerContext\";\nimport { Header } from \"./headers/Header\";\nimport classes from \"./Timeline.module.scss\";\nimport { HoursMultiplierContext } from \"./context/HoursMultiplierContext\";\nimport { VerticalLines } from \"./markers/VerticalLines\";\nimport { GridItem } from \"./utils/GridItem\";\nimport { GroupContext } from \"./context/GroupContext\";\nimport { StacksContext } from \"./context/StacksContext\";\n\nconst STATIC_ROWS_COUNT = 1;\nconst STATIC_COLS_COUNT = 1;\nconst DEFAULT_HOURS_MULTIPLIER = 2;\n\nconst defaultStacks: IStack[] = [\n { id: 1, visibleIfEmpty: true },\n { id: 2, visibleIfEmpty: true },\n { id: 3, visibleIfEmpty: false },\n];\n\ninterface IProps {\n groups: G[];\n stacks?: IStack[];\n intervals: I[];\n columns: IColumnConfig[];\n sidebarColumnWidth?: string;\n hoursMultiplier?: number;\n verticalLinesCount?: number;\n onIntervalClick?: IntervalClickHandler;\n onIntervalContextMenu?: IntervalContextMenuHandler;\n cornerCellContentRenderer?: () => React.ReactNode;\n groupSidebarCellContentRenderer?: (props: { group: G }) => React.ReactNode;\n dayHeaderContentRenderer?: (props: { column: IColumnConfig }) => React.ReactNode;\n columnMarkerRenderer?: (props: { column: IColumnConfig }) => React.ReactNode;\n cellMarkerRenderer?: (props: { group: G; column: IColumnConfig }) => React.ReactNode;\n fetchedIDs?: string[];\n recalculatedIDs?: string[];\n virtualized?: boolean;\n}\n\nexport default function Timeline(props: IProps) {\n const hoursMultiplier = props.hoursMultiplier ?? DEFAULT_HOURS_MULTIPLIER;\n return (\n \n \n {})}>\n {})}>\n \"1fr\")\n .join(\" \")}`,\n gridTemplateRows: `repeat(${props.groups.length + STATIC_ROWS_COUNT}, auto)`,\n }}\n >\n {/*
*/}\n \n {/*
*/}\n {props.groups.map((group, index) => (\n \n intr.group.id === group.id)}\n sidebarCellContentRenderer={props.groupSidebarCellContentRenderer}\n cellMarkerRenderer={props.cellMarkerRenderer}\n className={\n !props.virtualized || props.recalculatedIDs?.some(s => s === group.id)\n ? undefined\n : props.fetchedIDs?.some(s => s === group.id)\n ? classes.intervalsNotRecalculated\n : classes.intervalsFetching\n }\n />\n \n ))}\n {props.columns.map((col, index) => {\n const columnMarker =\n props.columnMarkerRenderer &&\n props.columnMarkerRenderer({\n column: col,\n });\n return (\n \n {columnMarker && (\n \n {columnMarker}\n \n )}\n \n \n \n \n );\n })}\n \n
\n
\n
\n
\n );\n}\n","import { IRootState } from \"../redux/reducers/root\";\n\nexport default function getHeaders(api: { getState: () => IRootState }) {\n return {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${api.getState().session.user.token?.access_token}`,\n };\n}\n","import { IRootState } from \"../redux/reducers/root\";\nimport { handleResponseError } from \"./handleResponseError\";\n\nexport default async function GetResponseJson(\n api: { getState: () => IRootState },\n adress: string,\n options: RequestInit\n) {\n const response = await fetch(api.getState().config.config.endpoint + adress, options);\n await handleResponseError(response);\n return await response.json();\n}\n","import { createAction, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../../reducers/root\";\nimport { IMyPlanData } from \"../../../model/plan/my/IMyPlanData\";\nimport getHeaders from \"../../../helpers/getHeaders\";\nimport GetResponseJson from \"../../../helpers/getResponseJson\";\n\ntype Arg = {\n month: Date;\n};\n\nconst DATA_ADDRESS = \"/breeze/IpoData/SelfService_GetMyPlanData\";\n\nexport const fetchMyPlanData = createAsyncThunk(\n \"plan/my/data/fetch\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: JSON.stringify({\n Item1: arg.month,\n }),\n signal: api.signal,\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n }\n);\n\nexport const fetchMyPlanDataPrevious = createAsyncThunk(\n \"plan/my/data/fetchPrevious\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: JSON.stringify({\n Item1: arg.month.addMonths(-1),\n }),\n signal: api.signal,\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n }\n);\nexport const fetchMyPlanDataNext = createAsyncThunk(\n \"plan/my/data/fetchNext\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: JSON.stringify({\n Item1: arg.month.addMonths(1),\n }),\n signal: api.signal,\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n }\n);\n\nexport const scrollMyPlanPrevious = createAction(\"plan/my/previous\");\n\nexport const scrollMyPlanNext = createAction(\"plan/my/next\");\n\nexport const resetMyPlanData = createAction(\"plan/my/reset\");\n\nexport const fetchOldestMonthWithMyPlanRequest = createAsyncThunk(\n \"plan/my/oldestmonthWithPlanRequest/fetch\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: getHeaders(api),\n signal: api.signal,\n };\n const serializedDate = (await GetResponseJson(\n api,\n \"/controllers/SelfService/OldestMonthWithMyPlanRequest\",\n requestOptions\n )) as string | null;\n return serializedDate;\n }\n);\n","import moment from \"moment\";\nimport { IMyPlanTimelineGroup } from \"../../../model/plan/types\";\n\nexport function generateGroups(month: Date): IMyPlanTimelineGroup[] {\n const lastDay = moment(month).endOf(\"month\").date();\n\n const groups: IMyPlanTimelineGroup[] = [];\n\n let currentDate = moment(month).startOf(\"month\");\n for (let date = 1; date <= lastDay; date++) {\n const day = new Date(month.getFullYear(), month.getMonth(), date);\n groups.push({\n id: day.getTime(),\n title: \"\",\n day: day,\n });\n currentDate = currentDate.add(1, \"day\");\n }\n\n return groups;\n}\n","import React from \"react\";\nimport { Calendar, CalendarChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { Dialog } from \"@progress/kendo-react-dialogs\";\nimport styles from \"./NavbarMonthPicker.module.scss\";\nimport { IntlProvider, loadMessages, LocalizationProvider } from \"@progress/kendo-react-intl\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport ReactDOM from \"react-dom\";\n\nimport csMessages from \"../../assets/cs.json\";\nloadMessages(csMessages, \"cs\");\n\ninterface IOwnProps {\n onPick: (month: Date) => void;\n selectedMonth: Date;\n}\n\ninterface IStateProps {\n language: ILanguage;\n}\n\ntype IProps = IOwnProps & IStateProps;\n\nfunction NavbarMonthPicker(props: IProps) {\n const [isOpen, setIsOpen] = React.useState(false);\n\n const handleChange = (event: CalendarChangeEvent) => {\n setIsOpen(false);\n\n const month = new Date(event.value.getFullYear(), event.value.getMonth(), 1);\n props.onPick(month);\n };\n\n const month = new Date(props.selectedMonth.getFullYear(), props.selectedMonth.getMonth(), 1);\n return (\n <>\n \n {isOpen &&\n ReactDOM.createPortal(\n setIsOpen(false)} autoFocus>\n \n \n \n \n \n ,\n document.body\n )}\n \n );\n}\n\nexport default connect(state => ({\n language: state.localization.language,\n}))(NavbarMonthPicker);\n","import { SerializedInterval, IAccount } from \"../../../model/plan/types\";\nimport { Color } from \"../../../model/Color\";\n\nexport function resolveAccounts(intrs: SerializedInterval[]): IAccount[] {\n const legends: IAccount[] = [];\n const map: { [AccountID: number]: boolean } = {};\n\n intrs.forEach(intr => {\n if (intr.accountID && !map[intr.accountID]) {\n legends.push({\n id: intr.accountID,\n name: intr.name.trim(),\n shortcut: intr.shortcut?.trim(),\n color: Color.fromPbColor(intr.color).toCSSRGBA(),\n });\n map[intr.accountID] = true;\n }\n });\n\n return legends;\n}\n","import { SerializedInterval, DeserializedInterval } from \"../../../model/plan/types\";\n\nexport function deserialize(intrs: SerializedInterval[]): DeserializedInterval[] {\n return intrs.map(\n intr =>\n ({\n ...intr,\n day: new Date(intr.day),\n begin: new Date(intr.begin),\n end: new Date(intr.end),\n } as DeserializedInterval)\n );\n}\n","import moment from \"moment\";\nimport { DeserializedInterval } from \"../../../model/plan/types\";\n\nexport function resolveTitle(intr: DeserializedInterval): string {\n if (intr.type === \"IPODENSMEN\" || intr.type === \"PLNCHANGE\") {\n return `${moment(intr.begin).format(\"HH:mm\")}-${moment(intr.end).format(\"HH:mm\")}`;\n }\n\n const title = intr.shortcut?.trim() ?? intr.name?.trim();\n\n if (intr.type === \"WFLREQUEST\") return `(${title})`;\n\n return title;\n}\n","import moment from \"moment\";\nimport { SerializedInterval, IPlanTimelineInterval } from \"../../../model/plan/types\";\nimport { Color } from \"../../../model/Color\";\nimport { deserialize } from \"../shared/deserialize\";\nimport { resolveTitle } from \"../shared/resolveTitle\";\n\nexport function transformDataForTimeline(intrs: SerializedInterval[]): IPlanTimelineInterval[] {\n let id = 1;\n\n return deserialize(intrs)\n .map(intr => {\n const day = moment(new Date(intr.begin)).startOf(\"day\");\n const begin = moment(new Date(intr.begin));\n const end = moment(new Date(intr.end));\n\n const base: IPlanTimelineInterval = {\n id: `${day.toDate().getTime()}.${id++}`,\n group: {\n id: day.toDate().getTime(),\n stackID: (() => {\n switch (intr.type) {\n case \"PLNCHANGE\":\n return 0;\n case \"IPODENSMEN\":\n return 1;\n case \"IPOPOH\":\n return 3;\n default:\n return 2;\n }\n })(),\n },\n title: resolveTitle(intr),\n day: day.toDate(),\n beginTime: begin.toDate(),\n endTime: intr.isAllDay ? end.set({ hour: 23, minute: 59, second: 59 }).toDate() : end.toDate(),\n style: {\n background:\n intr.type === \"IPODENSMEN\" || intr.type === \"PLNCHANGE\"\n ? new Color({ red: 255, green: 255, blue: 255, alpha: 1 }).toCSSRGBA()\n : Color.fromPbColor(intr.color).toCSSRGBA(),\n color:\n intr.color !== null && (intr.type === \"IPODENSMEN\" || intr.type === \"PLNCHANGE\")\n ? Color.fromPbColor(intr.color).toCSSRGBA()\n : undefined,\n borderColor: intr.type === \"PLNCHANGE\" ? \"red\" : \"black\",\n },\n layer: intr.type === \"IPOPREST\" || intr.type === \"PLNCHANGE\" ? 1 : undefined,\n parent: intr,\n };\n\n const intervalLen = end.clone().startOf(\"day\").diff(begin.clone().startOf(\"day\"), \"day\") + 1;\n\n if (intervalLen > 1) {\n var result = [];\n const firstDay = begin.clone().startOf(\"day\");\n result.push({\n ...base,\n id: `${day.toDate().getTime()}.${id++}`,\n day: firstDay.toDate(),\n beginTime: begin.toDate(),\n endTime: begin.clone().endOf(\"day\").toDate(),\n style: {\n ...base.style,\n borderRight: \"none\",\n },\n });\n for (let i = 1; i < intervalLen; i++) {\n var currentDay = firstDay.clone().add(i, \"day\");\n var style;\n if (i === intervalLen - 1) {\n style = {\n ...base.style,\n borderLeft: \"none\",\n };\n } else {\n style = {\n ...base.style,\n borderRight: \"none\",\n borderLeft: \"none\",\n };\n }\n result.push({\n ...base,\n id: `${day.toDate().getTime()}.${id++}`,\n group: {\n ...base.group,\n id: currentDay.toDate().getTime(),\n },\n day: currentDay.toDate(),\n beginTime: currentDay.toDate(),\n endTime: i === intervalLen - 1 ? end.toDate() : currentDay.clone().endOf(\"day\").toDate(),\n style: style,\n });\n }\n return result;\n } else return [base];\n })\n .flat();\n}\n","import React from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { Input } from \"@progress/kendo-react-inputs\";\nimport { IPlanTimelineInterval } from \"../../../model/plan/types\";\nimport { IPerson } from \"../../../model/plan/IPerson\";\nimport { useStrings } from \"../../../hooks/useStrings\";\nimport { useFormatDate } from \"../../../hooks/useFormatDate\";\nimport styles from \"./IntervalDetailDialog.module.scss\";\nimport { Checkbox } from \"@progress/kendo-react-inputs\";\n\ninterface IOwnProps {\n interval: IPlanTimelineInterval;\n owner?: IPerson;\n onClose?: () => void;\n}\n\nexport function IntervalDetailDialog(props: IOwnProps) {\n const strings = useStrings();\n const formatDate = useFormatDate();\n\n const intr = props.interval;\n const parent = intr.parent;\n return (\n props.onClose && props.onClose()}\n >\n {props.owner && (\n \n )}\n \n {parent.shortcut && }\n \n \n {intr.parent.type === \"IPOPOH\" && (\n
\n \n \n
\n )}\n \n \n \n \n );\n}\n\nexport default IntervalDetailDialog;\n","import React from \"react\";\nimport { IAccount } from \"../../../model/plan/types\";\nimport classes from \"./Accounts.module.scss\";\nimport { useStrings } from \"../../../hooks/useStrings\";\n\ninterface IOwnProps {\n accounts: IAccount[];\n}\n\nfunction Accounts(props: IOwnProps) {\n const strings = useStrings();\n return (\n \n {strings.plan.Legend}\n \n \n {props.accounts.map(acc => (\n \n \n \n \n ))}\n \n
{acc.name + (acc.shortcut ? ` (${acc.shortcut})` : \"\")}
\n
\n );\n}\n\nexport default Accounts;\n","import React from \"react\";\nimport { IColumnConfig, IGroup } from \"../../../components/Timeline/types\";\n\ninterface IProps {\n column: IColumnConfig;\n group: G;\n timeout?: number;\n}\n\ninterface IState {\n now: Date;\n}\n\nexport class NowGroupMarker extends React.Component, IState> {\n private readonly SECONDS_PER_PERCENT = 100 / (24 * 60 * 60);\n\n private intervalID?: number;\n\n constructor(props: IProps) {\n super(props);\n\n if (props.column.beginDay.getTime() > props.column.endDay.getTime())\n throw new Error(\"Begin time have to be lower then end time.\");\n\n this.state = {\n now: new Date(),\n };\n }\n\n componentDidMount() {\n this.intervalID = setInterval(() => {\n this.setState({\n now: new Date(),\n });\n }, this.props.timeout ?? 10000) as unknown as number;\n }\n\n componentWillUnmount() {\n clearInterval(this.intervalID);\n }\n\n public render = () => {\n const now = this.state.now;\n const begin = this.props.column.beginDay;\n const end = this.props.column.endDay;\n\n if (\n now.getTime() < begin.getTime() ||\n now.getTime() > end.getTime() ||\n new Date(this.props.group.id).getDate() !== now.getDate()\n )\n return null;\n\n const actual = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds();\n\n const percent = this.SECONDS_PER_PERCENT * actual;\n\n return (\n \n );\n };\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../../reducers/root\";\nimport { handleResponseError } from \"../../../helpers/handleResponseError\";\nimport { APP_VERSION } from \"../../../constants/common\";\n\nexport const confirmSignRequests = createAsyncThunk(\n \"plan/my/sign/requests/confirm\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n body: JSON.stringify({\n Item1: arg,\n Item2: APP_VERSION,\n }),\n signal: api.signal,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/controllers/SelfService/ConfirmPlanSignRequests\",\n requestOptions\n );\n\n await handleResponseError(response);\n }\n);\n","import React from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { confirmSignRequests } from \"../../../redux/actions/plan/signing\";\nimport { unwrapResult } from \"@reduxjs/toolkit\";\nimport { selectUserFullname } from \"../../../redux/selectors/selectUserFullname\";\nimport { ErrorNotification } from \"../../../components/ErrorNotification\";\nimport classes from \"./SigningDialog.module.scss\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\nimport { useAppDispatch } from \"../../../hooks/useAppDispatch\";\nimport { useStrings } from \"../../../hooks/useStrings\";\nimport { useFormatDate } from \"../../../hooks/useFormatDate\";\n\ninterface IOwnProps {\n onClose?: () => void;\n onSigned?: () => void;\n}\n\ntype Props = IOwnProps;\n\nfunction SigningDialog(props: Props) {\n const dispatch = useAppDispatch();\n const strings = useStrings();\n const formatDate = useFormatDate();\n const isSigning = useAppSelector(s => s.session.plan.signing.isSigning);\n const error = useAppSelector(s => s.session.plan.signing.error);\n const fullname = useAppSelector(selectUserFullname);\n const requests = useAppSelector(s => s.session.plan.my.currentPage?.signingRequests ?? []);\n const customizableText = useAppSelector(s => s.session.plan.my.currentPage?.customizableTexts.sign ?? \"\");\n\n const handleSignButtonClick = () => {\n const ids = requests.map(r => r.id);\n\n dispatch(confirmSignRequests(ids))\n .then(unwrapResult)\n .then(() => props.onSigned && props.onSigned());\n };\n\n return (\n !isSigning && props.onClose && props.onClose()}\n >\n

\n {strings.common.Person}: \n {fullname}\n

\n

\n {strings.worksheet.Period}: \n {requests\n .map(r => (\n \n {formatDate(new Date(r.begin), \"d\")}\n - \n {formatDate(new Date(r.end), \"d\")}\n \n ))\n .reduce((prev, curr) => (\n <>\n {prev}, {curr}\n \n ))}\n

\n

\n {strings.plan.WasSubmittedBy}: \n {requests[0].fullname_zadal + \" \" + formatDate(new Date(requests[0].datum_zadal), \"d\")}\n

\n {customizableText && (\n

\n {customizableText}\n

\n )}\n {error && }\n \n \n \n {strings.common.Confirm}\n \n \n \n );\n}\n\nexport default SigningDialog;\n","import React from \"react\";\nimport { useFormatDate } from \"../../../hooks/useFormatDate\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\nimport { permissions } from \"../../../constants/permissions\";\nimport { IMyPlanPageProps } from \"./MyPlan\";\n\nexport function DayCell(props: { day: Date; page: IMyPlanPageProps }) {\n const day = props.day;\n\n const formatDate = useFormatDate();\n const numDay = formatDate(day, \"d.\");\n const strDay = formatDate(day, \"EEEEEE\");\n\n const publicHolidays = props.page.publicHolidays.map(s => new Date(s));\n const isHoliday = publicHolidays.some(s => s.getTime() === day.getTime());\n\n const dayInWeek = day.getDay();\n const isBold = isHoliday || [0, 6].includes(dayInWeek); // Sobota nebo Neděle\n\n const isCheckAllowed =\n !useAppSelector(s => s.session.user.token?.userDisabledActions.some(p => p === permissions.plan.check)) ??\n false;\n const isChangeAllowed =\n !useAppSelector(s => s.session.user.token?.userDisabledActions.some(p => p === permissions.plan.approve)) ??\n false;\n\n const signedDays = props.page.signedDays.map(s => new Date(s));\n const isSigned = isCheckAllowed ? signedDays.some(d => d.getTime() === day.getTime()) : false;\n\n const signableDays = props.page.signableDays.map(s => new Date(s));\n const isSignable = isCheckAllowed ? signableDays.some(d => d.getTime() === day.getTime()) : false;\n\n const changeableDays = props.page.changeableDays.map(s => new Date(s));\n const isChangeable = isChangeAllowed ? changeableDays.some(d => d.getTime() === day.getTime()) : false;\n\n function renderLockIcon() {\n if (isChangeable)\n return ;\n else if (isSigned) return ;\n else if (isSignable)\n return ;\n }\n\n return (\n \n \n
{numDay}
\n
{strDay}
\n \n {renderLockIcon()}\n \n );\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../../reducers/root\";\nimport { handleResponseError } from \"../../../helpers/handleResponseError\";\nimport { APP_VERSION } from \"../../../constants/common\";\n\nexport const updateChangeRequests = createAsyncThunk(\n \"plan/my/change/requests/update\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n body: JSON.stringify({\n Item1: arg.ids,\n Item2: arg.approved,\n Item3: APP_VERSION,\n }),\n signal: api.signal,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/UpdatePlanChangeRequests\",\n requestOptions\n );\n\n await handleResponseError(response);\n }\n);\n","import React from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { selectUserFullname } from \"../../../redux/selectors/selectUserFullname\";\nimport classes from \"./ChangeRequestDialog.module.scss\";\nimport { useStrings } from \"../../../hooks/useStrings\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\nimport { ErrorNotification } from \"../../../components/ErrorNotification\";\nimport { useFormatDate } from \"../../../hooks/useFormatDate\";\nimport { useAppDispatch } from \"../../../hooks/useAppDispatch\";\nimport { updateChangeRequests } from \"../../../redux/actions/plan/changing\";\nimport { unwrapResult } from \"@reduxjs/toolkit\";\n\ninterface IOwnProps {\n onClose?: () => void;\n onUpdated?: () => void;\n}\n\ntype Props = IOwnProps;\n\nfunction ChangeRequestDialog(props: Props) {\n const strings = useStrings();\n const isUpdating = useAppSelector(s => s.session.plan.changing.isUpdating);\n const error = useAppSelector(s => s.session.plan.changing.error);\n const fullname = useAppSelector(selectUserFullname);\n const requests = useAppSelector(s => s.session.plan.my.currentPage?.changeRequests ?? []);\n const customizableText = useAppSelector(s => s.session.plan.my.currentPage?.customizableTexts.change ?? \"\");\n const formatDate = useFormatDate();\n const dispatch = useAppDispatch();\n\n function updateRequest(approved: boolean) {\n const ids = requests.map(r => r.id);\n\n dispatch(\n updateChangeRequests({\n ids: ids,\n approved: approved,\n })\n )\n .then(unwrapResult)\n .then(() => props.onUpdated && props.onUpdated());\n }\n\n return (\n !isUpdating && props.onClose && props.onClose()}\n >\n

\n {strings.common.Person}: \n {fullname}\n

\n {requests.map(r => (\n

\n {strings.common.Day}: \n \n {formatDate(new Date(r.day), \"d\")}, {r.intervals[0] != null ? r.intervals[0].name : \"\"}\n \n

\n ))}\n

\n {strings.plan.PlanWasChangedBy}: \n {requests[0].fullname_zadal}\n

\n {customizableText && (\n

\n {customizableText}\n

\n )}\n {error && }\n \n \n updateRequest(false)}\n style={{ color: \"red\" }}\n >\n {strings.common.Deny}\n \n updateRequest(true)}\n style={{ color: \"green\" }}\n >\n {strings.common.Approve}\n \n \n \n );\n}\n\nexport default ChangeRequestDialog;\n","import React, { PropsWithChildren } from \"react\";\nimport { useWindowClick } from \"../hooks/useWindowClick\";\n\nexport function WindowClickListener(props: PropsWithChildren<{ onClick: () => void }>) {\n useWindowClick(props.onClick);\n\n return <>{props.children};\n}\n","import { useEffect } from \"react\";\n\nexport function useWindowClick(onClick: () => void) {\n useEffect(() => {\n window.addEventListener(\"click\", onClick);\n\n return () => window.removeEventListener(\"click\", onClick);\n }, [onClick]);\n}\n","import React, { PropsWithChildren } from \"react\";\nimport { PageLayout } from \"../../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../../components/NavBar/NavBar\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../../redux/reducers/root\";\nimport { IStrings } from \"../../../constants/languageStrings/IStrings\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport Timeline from \"../../../components/Timeline/Timeline\";\nimport moment from \"moment\";\nimport {\n fetchMyPlanData,\n fetchMyPlanDataNext,\n fetchMyPlanDataPrevious,\n fetchOldestMonthWithMyPlanRequest,\n resetMyPlanData,\n scrollMyPlanNext,\n scrollMyPlanPrevious,\n} from \"../../../redux/actions/plan/my\";\nimport { generateGroups } from \"./groups\";\nimport NavbarMonthPicker from \"../../../components/NavbarMonthPicker/NavbarMonthPicker\";\nimport NewRequestDialog, { ICloseEvent } from \"./../../../components/NewRequestDialog/NewRequestDialog\";\nimport { resolveAccounts } from \"../shared/resolveAccounts\";\nimport { transformDataForTimeline } from \"./transformation\";\nimport { Popup, Offset } from \"@progress/kendo-react-popup\";\nimport { Menu, MenuItem, MenuSelectEvent } from \"@progress/kendo-react-layout\";\nimport IntervalDetailDialog from \"../shared/IntervalDetailDialog\";\nimport { IPlanTimelineInterval, IAccount, IMyPlanTimelineGroup } from \"../../../model/plan/types\";\nimport { IBaseMenuItem } from \"../../../components/NavBar/IBaseMenuItem\";\nimport ReactDOM from \"react-dom\";\nimport Accounts from \"../shared/Accounts\";\nimport { NowGroupMarker } from \"./NowGroupMarker\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport SigningDialog from \"./SigningDialog\";\nimport { SpinnerBox } from \"../../../components/Spinner/SpinnerBox\";\nimport { NotificationGroup, Notification } from \"@progress/kendo-react-notification\";\nimport { Slide } from \"@progress/kendo-react-animation\";\nimport classes from \"./MyPlan.module.scss\";\nimport { permissions } from \"../../../constants/permissions\";\nimport { DayCell } from \"./DayCell\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\nimport ChangeRequestDialog from \"./ChangeRequestDialog\";\nimport { AppDispatch } from \"../../..\";\nimport { useStrings } from \"../../../hooks/useStrings\";\nimport { unwrapResult } from \"@reduxjs/toolkit\";\nimport { ErrorNotification } from \"../../../components/ErrorNotification\";\nimport { IAbortable } from \"../../../model/IAbortable\";\nimport { WindowClickListener } from \"../../../components/WindowClickListener\";\nimport { SerializedDateTime } from \"../../../model/SerializedDateTime\";\nimport { IMyPlanData } from \"../../../model/plan/my/IMyPlanData\";\nimport SwipeableViews from \"react-swipeable-views\";\nimport { SlideRenderProps, virtualize } from \"react-swipeable-views-utils\";\n\nconst SELECTED_MONTH_KEY = \"ANeT/SelfService/plan/my/selectedMonth\";\n\nenum EDialog {\n None,\n NewRequest,\n IntervalDetail,\n Signing,\n Change,\n}\n\ninterface IState {\n selectedMonth: Date;\n paramsDate?: Date;\n visibleDialog: EDialog;\n /** Default values for NewRequest component. */\n defaults?: {\n begin: Date;\n end: Date;\n isAllDay: boolean;\n };\n contextMenu: {\n visible: boolean;\n offset?: Offset;\n isNewRequestItemVisible?: boolean;\n };\n lastClickedInterval?: IPlanTimelineInterval;\n lastSigningRequestId?: number;\n lastApprovingRequestId?: number;\n isSigningWarningVisible: boolean;\n isApprovingWarningVisible: boolean;\n index: number;\n}\n\ninterface IDispatchProps {\n dispatch: AppDispatch;\n onFetchDataPrevious: (month: Date) => IAbortable;\n onFetchData: (month: Date) => IAbortable;\n onFetchDataNext: (month: Date) => IAbortable;\n onScrollMyPlanPrevious: () => void;\n onScrollMyPlanNext: () => void;\n onResetMyPlanData: () => void;\n}\n\nexport interface IMyPlanPageProps {\n isLoading: boolean;\n loaded: boolean;\n intervals: IPlanTimelineInterval[];\n publicHolidays: string[];\n accounts: IAccount[];\n signedDays: SerializedDateTime[];\n signableDays: SerializedDateTime[];\n changeableDays: SerializedDateTime[];\n containsUnpublished: boolean;\n}\n\ninterface IStateProps {\n previousPage: IMyPlanPageProps;\n currentPage: IMyPlanPageProps;\n nextPage: IMyPlanPageProps;\n strings: IStrings;\n signingRequestId?: number;\n approvingRequestId?: number;\n isNewRequestDisabled: boolean;\n isNewRequestVisible: boolean;\n}\n\ninterface RouteInfo {\n date: string;\n}\ninterface ComponentProps extends RouteComponentProps {}\n\ntype Props = IStateProps & IDispatchProps & ComponentProps;\n\nconst VirtualizeSwipeableViews = virtualize(SwipeableViews);\n\nclass MyPlan extends React.Component {\n private signNotifTimeoutID?: number;\n private approveNotifTimeoutID?: number;\n\n private scrollableRef = React.createRef();\n\n private abortable: IAbortable | undefined = undefined;\n\n constructor(props: Props) {\n super(props);\n const stringDate: string = props.match?.params.date;\n const paramDate: Date | null =\n stringDate != null\n ? new Date(Number(stringDate.substring(0, 4)), Number(stringDate.substring(4, 6)) - 1, 1)\n : null;\n this.state = {\n paramsDate: paramDate != null && !isNaN(paramDate.getTime()) ? paramDate : undefined,\n selectedMonth: paramDate != null && !isNaN(paramDate.getTime()) ? paramDate : new Date(Date.now()),\n visibleDialog: EDialog.None,\n contextMenu: {\n visible: false,\n isNewRequestItemVisible: false,\n },\n isSigningWarningVisible: false,\n isApprovingWarningVisible: false,\n index: 0,\n };\n }\n\n private createMenuItems = () => {\n const strings = this.props.strings;\n const items: IBaseMenuItem[] = [];\n\n if (this.props.isNewRequestVisible)\n items.unshift({\n id: 1,\n content: strings.requests.NewRequest,\n disabled: this.props.isNewRequestDisabled,\n });\n\n return items;\n };\n\n private createContextMenuItems = () => {\n const strings = this.props.strings;\n const items = [{ id: 1, text: strings.plan.DetailPlan, disabled: false }];\n\n if (this.state.contextMenu.isNewRequestItemVisible && this.props.isNewRequestVisible)\n items.push({\n id: 2,\n text: strings.requests.NewRequest,\n disabled: this.props.isNewRequestDisabled,\n });\n\n return items;\n };\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n case 1:\n this.setState({\n defaults: undefined, // clear\n visibleDialog: EDialog.NewRequest,\n });\n break;\n default:\n item.id && console.warn(\"Unhandled value:\", item.id);\n }\n };\n\n private handleMonthChange = (month: Date) => {\n if (this.state.selectedMonth.getTime() !== month.getTime()) {\n this.setState({ selectedMonth: month });\n this.props.onResetMyPlanData();\n }\n };\n\n private handleNewRequestDialogClose = (e: ICloseEvent) => {\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n if (!e.canceled && e.saved) this.abortable = this.props.onFetchData(this.state.selectedMonth);\n };\n\n private handleTimelineItemClick = (interval: IPlanTimelineInterval) => {\n this.setState({\n visibleDialog: EDialog.IntervalDetail,\n lastClickedInterval: interval,\n });\n };\n\n private handleTimelineItemContextMenu = (\n interval: IPlanTimelineInterval,\n group: IMyPlanTimelineGroup,\n e: React.MouseEvent\n ) => {\n e.preventDefault();\n\n const shift = interval.parent.type === \"IPODENSMEN\" ? interval.parent : null;\n\n this.setState({\n defaults: shift\n ? {\n begin: shift.begin,\n end: shift.end,\n isAllDay: false,\n }\n : undefined,\n contextMenu: {\n visible: true,\n offset: {\n left: e.clientX,\n top: e.clientY,\n },\n isNewRequestItemVisible: shift != null && shift.day.getTime() >= new Date().getTime(),\n },\n lastClickedInterval: interval,\n });\n };\n\n private handleContextMenuSelect = (e: MenuSelectEvent) => {\n switch (e.item.data) {\n case 1:\n this.setState({\n visibleDialog: EDialog.IntervalDetail,\n });\n break;\n case 2:\n this.setState({\n visibleDialog: EDialog.NewRequest,\n });\n break;\n default:\n console.warn(\"Unhandled value:\", e.item.data);\n }\n };\n\n private handleWindowClick = () => {\n this.setState({\n contextMenu: {\n visible: false,\n },\n });\n };\n\n private handleDetailDialogClose = () =>\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n private handleSigningDialogClose = () =>\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n private handleSigningDialogSigned = () => {\n this.setState({\n visibleDialog: EDialog.None,\n isSigningWarningVisible: false,\n });\n\n const promise = this.props.dispatch(fetchOldestMonthWithMyPlanRequest());\n this.abortable = promise;\n promise.then(unwrapResult).then(result => {\n const month = result ? new Date(result) : null;\n if (month) {\n this.setState({ selectedMonth: month });\n this.props.onFetchData(month);\n } else this.abortable = this.props.onFetchData(this.state.selectedMonth);\n });\n };\n\n private handleChangeRequestDialogUpdated = () => {\n this.setState({ visibleDialog: EDialog.None });\n\n const promise = this.props.dispatch(fetchOldestMonthWithMyPlanRequest());\n this.abortable = promise;\n promise.then(unwrapResult).then(result => {\n const month = result ? new Date(result) : null;\n if (month) {\n this.setState({ selectedMonth: month });\n this.props.onFetchData(month);\n } else this.abortable = this.props.onFetchData(this.state.selectedMonth);\n });\n };\n\n private handleSigningWarningClose = () => {\n this.setState({ isSigningWarningVisible: false });\n };\n\n private handleApprovingingWarningClose = () => {\n this.setState({ isApprovingWarningVisible: false });\n };\n\n private scrollToLine(line: number) {\n const HEADER_HEIGHT = 23;\n const LINE_HEIGHT = 49;\n\n this.scrollableRef.current?.scroll({\n top: HEADER_HEIGHT + LINE_HEIGHT * line,\n });\n }\n\n async componentDidMount() {\n this.props.onResetMyPlanData();\n const promise = this.props.dispatch(fetchOldestMonthWithMyPlanRequest());\n this.abortable = promise;\n const result = await promise.then(unwrapResult);\n let month = result ? new Date(result) : null;\n\n if (month === null) {\n const timestamp = Date.parse(localStorage.getItem(SELECTED_MONTH_KEY) ?? \"\");\n month = new Date(!isNaN(timestamp) ? timestamp : Date.now());\n }\n if (this.state.paramsDate != null) {\n month = this.state.paramsDate;\n }\n\n this.setState({ selectedMonth: month });\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (\n this.state.selectedMonth.getTime() !== prevState.selectedMonth.getTime() ||\n this.state.selectedMonth.getTime() === this.state.paramsDate?.getTime()\n ) {\n this.setState({ paramsDate: undefined });\n localStorage.setItem(SELECTED_MONTH_KEY, this.state.selectedMonth.toISOStringIgnoringTZ());\n if (!this.props.currentPage.loaded) {\n this.abortable = this.props.onFetchData(this.state.selectedMonth);\n }\n }\n\n if (this.props.signingRequestId && this.props.signingRequestId !== this.state.lastSigningRequestId) {\n this.setState(\n (prevState, props) =>\n ({\n lastSigningRequestId: props.signingRequestId,\n isSigningWarningVisible: true,\n } as IState)\n );\n this.signNotifTimeoutID = setTimeout(\n () => this.setState({ isSigningWarningVisible: false }),\n 5000\n ) as unknown as number;\n } else if (\n !this.state.isSigningWarningVisible &&\n this.props.approvingRequestId &&\n this.props.approvingRequestId !== this.state.lastApprovingRequestId\n ) {\n this.setState(\n (prevState, props) =>\n ({\n lastApprovingRequestId: props.approvingRequestId,\n isApprovingWarningVisible: true,\n } as IState)\n );\n this.approveNotifTimeoutID = setTimeout(\n () => this.setState({ isApprovingWarningVisible: false }),\n 5000\n ) as unknown as number;\n }\n\n if (!this.state.isSigningWarningVisible && prevState.isSigningWarningVisible) {\n clearTimeout(this.signNotifTimeoutID);\n }\n\n if (!this.state.isApprovingWarningVisible && prevState.isApprovingWarningVisible) {\n clearTimeout(this.approveNotifTimeoutID);\n }\n\n const now = new Date();\n if (\n prevProps.currentPage.isLoading !== this.props.currentPage.isLoading &&\n now.getFullYear() === this.state.selectedMonth.getFullYear() &&\n now.getMonth() === this.state.selectedMonth.getMonth()\n ) {\n this.scrollToLine(now.getDate() - 2);\n }\n\n if (this.props.currentPage.loaded && !this.props.currentPage.isLoading) {\n if (!this.props.nextPage.loaded && !this.props.nextPage.isLoading) {\n this.props.onFetchDataNext(this.state.selectedMonth);\n } else if (!this.props.previousPage.loaded && !this.props.previousPage.isLoading) {\n this.props.onFetchDataPrevious(this.state.selectedMonth);\n }\n }\n }\n\n componentWillUnmount() {\n this.abortable?.abort();\n clearTimeout(this.signNotifTimeoutID);\n clearTimeout(this.approveNotifTimeoutID);\n }\n\n pageLayout(dataSource: IMyPlanPageProps, monthOffset?: 1 | undefined | -1) {\n const selectedMonth = this.state.selectedMonth.addMonths(monthOffset ?? 0);\n return (\n <>\n \n \n (\n \n {this.props.strings.common.Day}\n \n )}\n dayHeaderContentRenderer={() => null}\n groupSidebarCellContentRenderer={props => (\n \n )}\n cellMarkerRenderer={props => }\n />\n {dataSource.containsUnpublished && (\n \n \n {this.props.strings.plan.ContainsUnpublished}\n \n )}\n
\n \n
\n
\n
\n \n );\n }\n\n private slideRenderer = (props: SlideRenderProps) => {\n if (props.index < this.state.index)\n return
{this.pageLayout(this.props.previousPage, -1)}
;\n else if (props.index > this.state.index)\n return
{this.pageLayout(this.props.nextPage, 1)}
;\n else return
{this.pageLayout(this.props.currentPage)}
;\n };\n\n private scrollPrevious = () => {\n this.props.onScrollMyPlanPrevious();\n const newMonth = this.state.selectedMonth.addMonths(-1);\n this.setState({ selectedMonth: newMonth });\n this.props.onFetchDataPrevious(newMonth);\n };\n\n private scrollNext = () => {\n this.props.onScrollMyPlanNext();\n const newMonth = this.state.selectedMonth.addMonths(1);\n this.setState({ selectedMonth: newMonth });\n this.props.onFetchDataNext(newMonth);\n };\n\n public render() {\n return (\n \n \n this.setState({ visibleDialog: EDialog.Signing })} />\n this.setState({ visibleDialog: EDialog.Change })} />\n \n }\n >\n {\n this.setState({ index: index1 });\n if (index0 < index1) {\n this.scrollNext();\n } else {\n this.scrollPrevious();\n }\n }}\n />\n {ReactDOM.createPortal(\n \n {this.state.visibleDialog === EDialog.NewRequest && (\n \n )}\n this.handleWindowClick()}>\n \n \n {this.createContextMenuItems().map(item => (\n \n ))}\n \n \n \n {this.state.visibleDialog === EDialog.IntervalDetail && (\n \n )}\n {this.state.visibleDialog === EDialog.Signing && (\n \n )}\n {this.state.visibleDialog === EDialog.Change && (\n this.setState({ visibleDialog: EDialog.None })}\n onUpdated={this.handleChangeRequestDialogUpdated}\n />\n )}\n \n \n {this.state.isSigningWarningVisible && (\n \n {this.props.strings.plan.Msg_ConfirmAcquaintWithYourPlanPlease}\n \n )}\n \n \n {this.state.isApprovingWarningVisible && !this.state.isSigningWarningVisible && (\n \n {this.props.strings.plan.Msg_ApprovePlanChanges}\n \n )}\n \n \n ,\n document.body\n )}\n \n );\n }\n}\n\nfunction getPageState(page?: IMyPlanData) {\n return {\n intervals: transformDataForTimeline([\n ...(page?.intervals ?? []),\n ...(page?.changeRequests.map(r => r.intervals).reduce((prev, curr) => [...prev, ...curr], []) ?? []),\n ]),\n accounts: resolveAccounts(page?.intervals ?? []),\n publicHolidays: page?.publicHolidays ?? [],\n signedDays: page?.signedDays ?? [],\n signableDays: page?.signableDays ?? [],\n changeableDays: page?.changeableDays ?? [],\n containsUnpublished: page?.containsUnpublished ?? false,\n };\n}\n\nexport default connect(\n state => {\n const sigReqs = state.session.user.token?.userDisabledActions.some(p => p === permissions.plan.check)\n ? []\n : state.session.plan.my.currentPage?.signingRequests ?? [];\n const apprReqs = state.session.user.token?.userDisabledActions.some(p => p === permissions.plan.approve)\n ? []\n : state.session.plan.my.currentPage?.changeRequests ?? [];\n const token = state.session.user.token;\n\n const props: IStateProps = {\n previousPage: {\n ...getPageState(state.session.plan.my.previousPage),\n isLoading: state.session.plan.my.isFetchingPrevious,\n loaded: !!state.session.plan.my.previousPage,\n },\n currentPage: {\n ...getPageState(state.session.plan.my.currentPage),\n isLoading: state.session.plan.my.isFetching,\n loaded: !!state.session.plan.my.currentPage,\n },\n nextPage: {\n ...getPageState(state.session.plan.my.nextPage),\n isLoading: state.session.plan.my.isFetchingNext,\n loaded: !!state.session.plan.my.nextPage,\n },\n strings: state.localization.strings,\n signingRequestId: sigReqs.length ? sigReqs[0].id : undefined,\n approvingRequestId: apprReqs.length ? apprReqs[0].id : undefined,\n isNewRequestVisible: token?.userInvisibleActions.every(p => p !== permissions.plan.absence) ?? false,\n isNewRequestDisabled: token?.userDisabledActions.some(p => p === permissions.plan.absence) ?? true,\n };\n\n return props;\n },\n (dispatch: AppDispatch) => ({\n dispatch: dispatch,\n onFetchDataPrevious: month => dispatch(fetchMyPlanDataPrevious({ month: month })),\n onFetchData: month => dispatch(fetchMyPlanData({ month: month })),\n onFetchDataNext: month => dispatch(fetchMyPlanDataNext({ month: month })),\n onScrollMyPlanPrevious: () => dispatch(scrollMyPlanPrevious()),\n onScrollMyPlanNext: () => dispatch(scrollMyPlanNext()),\n onResetMyPlanData: () => dispatch(resetMyPlanData()),\n })\n)(MyPlan);\n\nfunction SignButton(props: { onClick?: () => void }) {\n const strings = useStrings();\n const canSign = useAppSelector(s => (s.session.plan.my.currentPage?.signingRequests.length ?? 0) > 0);\n const isCheckAllowed =\n !useAppSelector(s => s.session.user.token?.userDisabledActions.some(p => p === permissions.plan.check)) ??\n false;\n\n return !canSign || !isCheckAllowed ? null : (\n \n );\n}\n\nfunction ChangeButton(props: { onClick?: () => void }) {\n const canChange = useAppSelector(s => (s.session.plan.my.currentPage?.changeRequests.length ?? 0) > 0);\n const isChangeAllowed =\n !useAppSelector(s => s.session.user.token?.userDisabledActions.some(p => p === permissions.plan.approve)) ??\n false;\n const strings = useStrings();\n\n return !canChange || !isChangeAllowed ? null : (\n \n \n \n \n \n \n );\n }\n}\n\ninterface IOwnProps {\n onClose?: MouseEventHandler;\n data: PLNUNAVA;\n}\n\ninterface IStateProps {\n strings: IStrings;\n language: ILanguage;\n user: string;\n\n isUnavailabilityDeleting?: boolean;\n isSuccessfullyDeleted?: boolean;\n}\n\ninterface IState {\n comment?: string;\n}\n\ninterface IDispatchProps {\n onDeleteUnavailability: (e: QueryParam) => void;\n}\n\ntype IProps = IOwnProps & IStateProps & IDispatchProps & IState;\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n language: state.localization.language,\n user: selectUserFullname(state),\n\n isUnavailabilityDeleting: state.session.unavailabilityDelete.isFetching,\n isSuccessfullyDeleted: state.session.unavailabilityDelete.succesful,\n }),\n {\n onDeleteUnavailability: (e: QueryParam) => deleteUnavailability(e),\n }\n)(UnavailabilityDetail);\n","import React from \"react\";\nimport { DatePicker, DatePickerChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IntlProvider, LocalizationProvider, loadMessages } from \"@progress/kendo-react-intl\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\n\nimport csMessages from \"../../assets/cs.json\";\nloadMessages(csMessages, \"cs\");\n\ninterface IOwnProps {\n onPick: (day: Date) => void;\n selectedDay: Date;\n}\n\ninterface IStateProps {\n language: ILanguage;\n}\n\ntype IProps = IOwnProps & IStateProps;\n\nfunction TranslatedDatePicker(props: IProps) {\n const handleChange = (event: DatePickerChangeEvent) => {\n if (event.value !== null) {\n const day = new Date(event.value);\n props.onPick(day);\n }\n };\n\n let day: Date = new Date(props.selectedDay);\n return (\n <>\n \n \n \n \n \n \n );\n}\n\nexport default connect(state => ({\n language: state.localization.language,\n}))(TranslatedDatePicker);\n","import React from \"react\";\nimport { TimePicker, TimePickerChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IntlProvider, LocalizationProvider, loadMessages } from \"@progress/kendo-react-intl\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\n\nimport csMessages from \"../../assets/cs.json\";\nloadMessages(csMessages, \"cs\");\n\ninterface IOwnProps {\n onPick: (time: Date) => void;\n selectedTime: Date;\n steps: number;\n}\n\ninterface IStateProps {\n language: ILanguage;\n}\n\ntype IProps = IOwnProps & IStateProps;\n\nfunction TranslatedTimePicker(props: IProps) {\n const handleChange = (event: TimePickerChangeEvent) => {\n if (event.value !== null) {\n const day = new Date(event.value);\n props.onPick(day);\n }\n };\n\n let time: Date = new Date(props.selectedTime);\n let steps = {\n minute: props.steps,\n };\n\n return (\n <>\n \n \n \n \n \n \n );\n}\n\nexport default connect(state => ({\n language: state.localization.language,\n}))(TranslatedTimePicker);\n","import React from \"react\";\nimport { Dialog, DialogActionsBar, DialogCloseEvent } from \"@progress/kendo-react-dialogs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport styles from \"../Requests/Requests.module.scss\";\nimport { Input } from \"@progress/kendo-react-inputs\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { ILocalizationState } from \"../../redux/slices/localization\";\nimport { IntlProvider } from \"@progress/kendo-react-intl\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { PLNUNAVA } from \"../../model/PLNUNAVA\";\nimport { QueryParam } from \"../../model/CommonQueryParams\";\nimport { createUnavailability } from \"../../redux/actions/unavailability\";\nimport TranslatedDatePicker from \"../../components/Pickers/TranslatedDatePicker\";\nimport TranslatedTimePicker from \"../../components/Pickers/TranslatedTimePicker\";\nimport { selectIxsRef } from \"../../redux/selectors/selectIxsRef\";\n\nclass NewRequest extends React.Component {\n constructor(props: IProps) {\n super(props);\n let tomorrow: Date = new Date().addDays(1).getStartOfDay();\n this.state = {\n dateFrom: this.props.defaults?.day ?? tomorrow,\n timeFrom: this.props.defaults?.begin ?? new Date(0, 0, 0, 0, 0, 0, 0),\n timeTo: this.props.defaults?.end ?? new Date(0, 0, 0, 23, 59, 0, 0),\n comment: \"\",\n };\n }\n\n fromDateChange = (day: Date) => {\n this.setState({ dateFrom: day });\n };\n\n fromTimeChanged = (time: Date) => {\n this.setState({ timeFrom: time });\n if (this.state.timeTo! < time) {\n this.setState({ timeTo: time });\n }\n };\n\n toTimeChanged = (time: Date) => {\n this.setState({ timeTo: time });\n if (this.state.timeFrom! > time) {\n this.setState({ timeFrom: time });\n }\n };\n\n private handleSaveButtonClick = async (event: React.MouseEvent) => {\n const unava: PLNUNAVA = {\n IXS_REF: this.props.ixsRef ?? \"\",\n DATE_REF: this.state.dateFrom!,\n NOTE: this.state.comment,\n STARTTIME: this.state.dateFrom!.addTime(this.state.timeFrom!),\n ENDTIME: this.state.dateFrom!.addTime(this.state.timeTo!),\n DATE_CREATE: new Date(),\n };\n let param: QueryParam = { Value: unava };\n this.props.onCreateUnavailability && (await this.props.onCreateUnavailability(param));\n\n this.props.onClose &&\n this.props.onClose({\n originalEvent: event,\n canceled: false,\n saved: true,\n });\n };\n\n public render() {\n let steps: number = 30;\n return (\n \n \n {this.props.isUnavailabilityCreating ? (\n \n ) : (\n <>\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n {\n this.setState({ comment: e.value })}\n />\n }\n \n )}\n\n \n \n this.props.onClose &&\n this.props.onClose({\n originalEvent: e,\n canceled: true,\n saved: false,\n })\n }\n disabled={this.props.isUnavailabilityCreating}\n >\n {this.props.localization.strings.common.Cancel}\n \n\n \n \n \n
\n );\n }\n}\n\ninterface IState {\n dateFrom?: Date;\n timeFrom?: Date | null;\n timeTo?: Date | null;\n comment: string;\n}\n\ninterface IOwnProps {\n onClose?: (e: CloseEvent | DialogCloseEvent) => void;\n defaults?: {\n day: Date;\n begin: Date;\n end: Date;\n isAllDay: boolean;\n };\n}\n\ninterface IStateProps {\n localization: ILocalizationState;\n ixsRef?: string;\n\n isUnavailabilityCreating?: boolean;\n isSuccessfullyCreated?: boolean;\n}\n\ninterface IDispatchProps {\n onCreateUnavailability: (e: QueryParam) => Promise;\n}\n\ntype IProps = IOwnProps & IStateProps & IDispatchProps;\n\nexport interface CloseEvent {\n originalEvent: React.MouseEvent;\n canceled: boolean;\n saved: boolean;\n}\n\nexport default connect(\n state => ({\n localization: state.localization,\n ixsRef: selectIxsRef(state),\n\n isUnavailabilityCreating: state.session.unavailabilityCreate.isFetching,\n isSuccessfullyCreated: state.session.unavailabilityCreate.succesful,\n }),\n {\n onCreateUnavailability: (e: QueryParam) => createUnavailability(e) as any,\n }\n)(NewRequest);\n","import React from \"react\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport List from \"@material-ui/core/List\";\nimport styles from \"./Unavailability.module.scss\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { PLNUNAVA } from \"../../model/PLNUNAVA\";\nimport { QueryParam } from \"../../model/CommonQueryParams\";\nimport { fetchUnavalabilities } from \"../../redux/actions/unavailability\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { ListItem, ListItemText, ListItemSecondaryAction } from \"@material-ui/core\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport UnavailabilityDetail from \"./UnavailabilityDetail\";\nimport NewUnavailability from \"./NewUnavailability\";\nimport PermissionGuard from \"../../components/PermissionGuard\";\nimport { permissions } from \"../../constants/permissions\";\nimport { IBaseMenuItem } from \"../../components/NavBar/IBaseMenuItem\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { selectIxsRef } from \"../../redux/selectors/selectIxsRef\";\nimport { fetchDashboardData } from \"../../redux/actions/dashboard\";\nexport class Unavailability extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n dialog: {\n detail: false,\n newRequest: false,\n },\n };\n }\n\n async componentDidMount() {\n let param: QueryParam = { Value: this.props.ixsRef };\n if (this.props.isApprovablePlnunava === undefined) {\n await this.props.onDashboardDataFetch();\n this.props.history.push(\"my-unavailability\");\n }\n await this.props.onDatasourceFetch(param);\n }\n\n openDetailDialog(row: PLNUNAVA) {\n this.setState({\n detailData: row,\n dialog: {\n detail: true,\n },\n });\n }\n\n async openNewRequestDialog() {\n this.setState({ dialog: { newRequest: true } });\n }\n\n private handleDialogsClose = async () => {\n this.setState({ dialog: { detail: false } });\n this.setState({ dialog: { newRequest: false } });\n let param: QueryParam = { Value: this.props.ixsRef };\n await this.props.onDatasourceFetch(param);\n };\n\n private createMenuItems = () => {\n return [] as IBaseMenuItem[];\n };\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n default:\n item.id && console.warn(\"Unhandled menu item: \", item);\n }\n };\n\n makeTitle(row: PLNUNAVA): string {\n if (row.STARTTIME === null) {\n return new Date(row.DATE_REF).toLocaleDateString(this.props.language.code);\n } else {\n return (\n new Date(row.STARTTIME).toLocaleDateString(this.props.language.code) +\n \" \" +\n new Date(row.STARTTIME).toLocaleTimeString(this.props.language.code) +\n \" - \" +\n new Date(row.ENDTIME!).toLocaleDateString(this.props.language.code) +\n \" \" +\n new Date(row.ENDTIME!).toLocaleTimeString(this.props.language.code)\n );\n }\n }\n\n dateTimeCreated(row: PLNUNAVA): string {\n if (row.DATE_CREATE !== null) {\n return (\n new Date(row.DATE_CREATE).toLocaleDateString(this.props.language.code) +\n \" \" +\n new Date(row.DATE_CREATE).toLocaleTimeString(this.props.language.code)\n );\n } else return \"\";\n }\n\n render() {\n let rows = this.props.dataSource || [];\n return (\n \n \n this.openNewRequestDialog()}\n disabled={\n this.props.isApprovablePlnunava || this.props.isApprovablePlnunava === undefined\n }\n >\n {this.props.strings.requests.NewReq}\n \n \n \n }\n >\n {this.props.isDatasourceFetching && }\n {this.props.error && }\n {!this.props.isDatasourceFetching && (\n \n {/* řádky */}\n {rows.length > 0 ? (\n rows.map((row, key) => (\n this.openDetailDialog(row)}>\n \n {this.makeTitle(row)}\n

\n {/* {localization.strings.requests.From + \" \"}{row.from}{\" \"+localization.strings.requests.To + \" \"}{row.to} */}\n {row.NOTE}\n \n }\n secondary={\n \n {this.props.strings.unavailability.CreatedUnavailability +\n \": \" +\n this.dateTimeCreated(row)}\n \n }\n />\n \n
\n ))\n ) : (\n {this.props.strings.common.NoItems}\n )}\n
\n )}\n {this.state.dialog.detail && this.state.detailData !== undefined && (\n \n )}\n {this.state.dialog.newRequest && (\n \n )}\n \n );\n }\n}\n\ninterface IStateProps {\n strings: IStrings;\n language: ILanguage;\n ixsRef?: string;\n isApprovablePlnunava?: boolean;\n\n isDatasourceFetching?: boolean;\n dataSource?: PLNUNAVA[];\n error?: SerializedError;\n}\n\ninterface IDispatchProps {\n onDatasourceFetch: (e: QueryParam) => Promise;\n onDashboardDataFetch: () => Promise;\n}\n\ninterface IState {\n detailData?: PLNUNAVA;\n dialog: {\n detail?: boolean;\n newRequest?: boolean;\n };\n}\n\ntype IProps = IStateProps & IDispatchProps & RouteChildrenProps;\nexport default connect(\n state => ({\n strings: state.localization.strings,\n language: state.localization.language,\n ixsRef: selectIxsRef(state),\n isApprovablePlnunava: state.session.dashboard.data?.isApprovablePlnunava,\n\n isDatasourceFetching: state.session.unavailabilityFetch.isFetching || state.session.dashboard.isFetching,\n dataSource: state.session.unavailabilityFetch.datasource,\n error: state.session.unavailabilityFetch.error,\n }),\n {\n onDatasourceFetch: (e: QueryParam) => fetchUnavalabilities(e) as any,\n onDashboardDataFetch: () => fetchDashboardData() as any,\n }\n)(Unavailability);\n","import { createAction, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { LeftPanelParams } from \"../../model/LeftPanelParams\";\nimport { QueryParam3 } from \"../../model/CommonQueryParams\";\nimport { APP_VERSION } from \"../../constants/common\";\nimport { selectIxsRef } from \"../selectors/selectIxsRef\";\nimport getHeaders from \"../../helpers/getHeaders\";\nimport GetResponseJson from \"../../helpers/getResponseJson\";\nimport { PracListResultMobile } from \"../../model/WorksheetModels\";\nimport { IWorksheetAttachment } from \"../reducers/worksheet\";\n\nconst DOMAIN = \"worksheet\";\nconst DATA_ADDRESS = \"/breeze/IpoData/GetMonthByLeftPanelParamsSelfService\";\n\nexport const fetchWorksheetDataForMonth = createAsyncThunk<\n PracListResultMobile,\n LeftPanelParams,\n { state: IRootState }\n>(`${DOMAIN}/fetchWorksheetDataForMonth`, async function (arg, api) {\n arg.SelectedIxsRef = selectIxsRef(api.getState());\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: JSON.stringify(arg),\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n});\n\nexport const fetchWorksheetDataForPreviousMonth = createAsyncThunk<\n PracListResultMobile,\n { params: LeftPanelParams; computeTo: number },\n { state: IRootState }\n>(`${DOMAIN}/fetchWorksheetDataForPreviousMonth`, async function (arg, api) {\n arg.params.SelectedIxsRef = selectIxsRef(api.getState());\n const arg1 = {\n ...arg.params,\n StartDate: arg.params.StartDate?.addMonths(-1),\n EndDate:\n arg.computeTo === 2 &&\n new Date().getFullYear() === arg.params.StartDate?.addMonths(-1).getFullYear() &&\n new Date().getMonth() === arg.params.StartDate.addMonths(-1).getMonth()\n ? new Date().getStartOfDay()\n : arg.params.StartDate,\n };\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: JSON.stringify(arg1),\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n});\n\nexport const fetchWorksheetDataForNextMonth = createAsyncThunk<\n PracListResultMobile,\n { params: LeftPanelParams; computeTo: number },\n { state: IRootState }\n>(`${DOMAIN}/fetchWorksheetDataForNextMonth`, async function (arg, api) {\n arg.params.SelectedIxsRef = selectIxsRef(api.getState());\n const arg1 = {\n ...arg.params,\n StartDate: arg.params.StartDate?.addMonths(1),\n EndDate:\n arg.computeTo === 2 &&\n new Date().getFullYear() === arg.params.StartDate?.addMonths(1).getFullYear() &&\n new Date().getMonth() === arg.params.StartDate.addMonths(1).getMonth()\n ? new Date().getStartOfDay()\n : arg.params.StartDate?.addMonths(2),\n };\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: JSON.stringify(arg1),\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n});\n\nexport const scrollWorksheetPrevious = createAction(`${DOMAIN}/scrollWorksheetPrevious`);\n\nexport const scrollWorksheetNext = createAction(`${DOMAIN}/scrollWorksheetNext`);\n\nexport const resetWorksheetData = createAction(`${DOMAIN}/resetWorksheetData`);\n\nexport const getParamsForWorksheet = createAsyncThunk<{}, void, { state: IRootState }>(\n `${DOMAIN}/getParamsForWorksheet`,\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: getHeaders(api),\n };\n return GetResponseJson(api, \"/breeze/IpoData/SelfService_GetPListParams\", requestOptions);\n }\n);\n\nexport const signWorksheet = createAsyncThunk<{}, QueryParam3, { state: IRootState }>(\n `${DOMAIN}/signWorksheet`,\n async (arg, api) => {\n arg.Value3 = APP_VERSION;\n let reqBody: string = JSON.stringify(arg);\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: reqBody,\n };\n return GetResponseJson(api, \"/breeze/IpoData/SelfService_SignWorksheet\", requestOptions);\n }\n);\n\nexport const getAttachments = createAsyncThunk(\n `${DOMAIN}/getAttachments`,\n async (arg, api) => {\n let reqBody: string = JSON.stringify({\n SelectedIxsRef: selectIxsRef(api.getState()),\n StartDate: arg.date,\n });\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: reqBody,\n };\n return GetResponseJson(api, \"/breeze/IpoData/GetWorkSheetAttachments\", requestOptions);\n }\n);\n\nexport const uploadAttachment = createAsyncThunk<\n {},\n { file: Blob; filename: string; date: Date; name: string; note: string },\n { state: IRootState }\n>(`${DOMAIN}/uploadAttachment`, async (arg, api) => {\n const formData = new FormData();\n const ext = arg.filename.split(\".\").slice(-1);\n formData.append(\"file\", arg.file, arg.name + \".\" + ext);\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n signal: api.signal,\n body: formData,\n };\n const params = new URLSearchParams({\n r: selectIxsRef(api.getState()),\n m: (arg.date.getMonth() + 1).toString(),\n y: arg.date.getFullYear().toString(),\n n: arg.note,\n });\n return GetResponseJson(api, \"/breeze/IpoData/UploadAttachment?\" + params, requestOptions);\n});\n\nexport const resetUploadAttachment = createAction(`${DOMAIN}/resetUploadAttachment`);\n","import React, { useEffect, useState } from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport styles from \"./PictureDialog.module.scss\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { Input } from \"@progress/kendo-react-inputs\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport { resetUploadAttachment, uploadAttachment } from \"../../redux/actions/worksheet\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\n\nasync function ResizeImage(\n dataURL: string,\n maxSize: number,\n callback: (blob: Blob | null) => void,\n filetype?: string,\n quality?: number,\n callback1?: (dataUrl: string) => void\n) {\n const image = new Image();\n image.src = dataURL;\n\n image.onload = function () {\n const maxWidth = maxSize;\n const maxHeight = maxSize;\n let imageWidth = image.width;\n let imageHeight = image.height;\n\n if (imageWidth > imageHeight) {\n if (imageWidth > maxWidth) {\n imageHeight *= maxWidth / imageWidth;\n imageWidth = maxWidth;\n }\n } else {\n if (imageHeight > maxHeight) {\n imageWidth *= maxHeight / imageHeight;\n imageHeight = maxHeight;\n }\n }\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = imageWidth;\n canvas.height = imageHeight;\n\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(image, 0, 0, imageWidth, imageHeight);\n\n canvas.toBlob(blob => callback(blob), filetype, quality);\n callback1?.(canvas.toDataURL(filetype, quality));\n };\n}\n\nexport default function PictureDialog(props: { src: string; file?: File; date: Date; onClose: () => void }) {\n const dispatch = useAppDispatch();\n const [name, setName] = useState(\"\");\n const [note, setNote] = useState(\"\");\n const isUploading = useAppSelector(s => s.session.worksheetAttachment.isUploading);\n const successful = useAppSelector(s => s.session.worksheetAttachment.successful);\n const strings = useAppSelector(s => s.localization.strings);\n const [file, setFile] = useState(null);\n const filename = props.file?.name ?? \"\";\n const [src, setSrc] = useState(\"\");\n const quality = useAppSelector(s => s.config.config.uploadQuality);\n const maxSize = useAppSelector(s => s.config.config.uploadSize);\n\n useEffect(() => {\n if (successful) {\n dispatch(resetUploadAttachment());\n props.onClose();\n }\n }, [successful, props, dispatch]);\n useEffect(() => {\n ResizeImage(props.src, maxSize, setFile, props.file?.type, quality, setSrc);\n }, [props, quality, maxSize]);\n\n useEffect(() => {\n if (filename !== \"\") {\n setName(filename.split(\".\").slice(0, -1).join(\".\") ?? \"\");\n }\n }, [props, filename]);\n\n return (\n \n {src !== \"\" ? (\n \"\"\n ) : (\n
\n \n
\n )}\n setName(e.value)}\n required\n disabled={isUploading || filename === \"\"}\n maxLength={100}\n />\n setNote(e.value)}\n disabled={isUploading}\n maxLength={255}\n />\n \n \n {\n if (file !== null) {\n dispatch(\n uploadAttachment({\n file: file!,\n filename: filename,\n date: props.date,\n name: name,\n note: note,\n })\n );\n }\n }}\n >\n {strings.worksheet.Upload}\n \n \n
\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport { getAttachments } from \"../../redux/actions/worksheet\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { IWorksheetAttachment } from \"../../redux/reducers/worksheet\";\nimport { List, ListItem, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\nimport styles from \"./AttachmentsDialog.module.scss\";\nimport PictureDialog from \"./PictureDialog\";\n\nfunction getSize(n: number) {\n if (n < 1024) return n + \"B\";\n n = n / 1024;\n if (n < 1024) return n.toFixed(1) + \"KB\";\n n = n / 1024;\n if (n < 1024) return n.toFixed(1) + \"MB\";\n n = n / 1024;\n return n.toFixed(1) + \"GB\";\n}\n\nexport default function AttachmentsDialog(props: { onClose: () => void; month: Date }) {\n const isLoading = useAppSelector(s => s.session.worksheetAttachment.isLoading);\n const strings = useAppSelector(s => s.localization.strings);\n const dispatch = useAppDispatch();\n const [pictureSrc, setPictureSrc] = useState(\"\");\n const [pictureFile, setPictureFile] = useState(undefined);\n const [pictureDialogVisible, setPictureDialogVisible] = useState(false);\n const attachemnts = useAppSelector(s => s.session.worksheetAttachment.attachments);\n const token = useAppSelector(s => s.session.user.token?.access_token);\n const endpoint = useAppSelector(s => s.config.config.endpoint);\n const ixsref = useAppSelector(s =>\n s.session.user.token?.sidSubst !== \"\" ? s.session.user.token?.sidSubst : s.session.user.token?.sid\n );\n\n useEffect(() => {\n if (!pictureDialogVisible) {\n const date = new Date(props.month.getFullYear(), props.month.getMonth(), 1);\n dispatch(getAttachments({ date: date }));\n }\n }, [dispatch, props.month, pictureDialogVisible]);\n\n const handleInputChange = (event: React.ChangeEvent) => {\n const file = event.target?.files?.[0];\n const reader = new FileReader();\n reader.onload = function (e) {\n setPictureSrc(e.target?.result as string);\n setPictureFile(file);\n };\n if (file !== undefined) {\n setPictureDialogVisible(true);\n setPictureSrc(\"\");\n setPictureFile(undefined);\n reader.readAsDataURL(file);\n }\n };\n\n const openFile = (attachment: IWorksheetAttachment) => {\n const date = new Date(props.month.getFullYear(), props.month.getMonth(), 1);\n fetch(endpoint + \"/breeze/IpoData/DownloadAttachment\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"authorization\": \"bearer \" + token,\n },\n body: JSON.stringify({ SelectedIxsRef: ixsref, StartDate: date, SelectedIxsStr: attachment.name }),\n }).then(res => {\n res.blob().then(blob => {\n const elem = window.document.createElement(\"a\");\n elem.href = window.URL.createObjectURL(blob);\n elem.download = attachment.name;\n document.body.appendChild(elem);\n elem.click();\n document.body.removeChild(elem);\n });\n });\n };\n\n return (\n <>\n \n {isLoading ? (\n \n ) : attachemnts.length > 0 ? (\n \n {attachemnts.map(att => {\n return (\n \n \n \n openFile(att)}\n />\n \n \n );\n })}\n \n ) : (\n {strings.worksheet.NoAttachments}\n )}\n handleInputChange(e)}\n />\n \n document.getElementById(\"f-u\")?.click()}\n >\n {strings.worksheet.TakePicture}\n \n \n \n {pictureDialogVisible && (\n setPictureDialogVisible(false)}\n />\n )}\n \n );\n}\n","import React from \"react\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { LeftPanelParams } from \"../../model/LeftPanelParams\";\nimport {\n fetchWorksheetDataForMonth,\n fetchWorksheetDataForNextMonth,\n fetchWorksheetDataForPreviousMonth,\n getParamsForWorksheet,\n resetWorksheetData,\n scrollWorksheetNext,\n scrollWorksheetPrevious,\n signWorksheet,\n} from \"../../redux/actions/worksheet\";\nimport { Grid, GridColumn as Column, GridCellProps } from \"@progress/kendo-react-grid\";\nimport { PracListResultMobile } from \"../../model/WorksheetModels\";\nimport styles from \"./Worksheet.module.scss\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { Input, Checkbox } from \"@progress/kendo-react-inputs\";\nimport classNames from \"classnames\";\nimport NavbarMonthPicker from \"../../components/NavbarMonthPicker/NavbarMonthPicker\";\nimport { IParameter } from \"../../model/IParameter\";\nimport { DialogActionsBar, Dialog } from \"@progress/kendo-react-dialogs\";\nimport { QueryParam2 } from \"../../model/CommonQueryParams\";\nimport { Slide } from \"@progress/kendo-react-animation\";\nimport czstampSource from \"../../assets/images/cspic_RazitkoPLKulate.png\";\nimport skstampSource from \"../../assets/images/skpic_RazitkoPLKulate.png\";\nimport enstampSource from \"../../assets/images/enpic_RazitkoPLKulate.png\";\n\nimport csMessages from \"../../assets/cs.json\";\nimport { loadMessages, LocalizationProvider } from \"@progress/kendo-react-intl\";\nimport { NotificationGroup, Notification } from \"@progress/kendo-react-notification\";\nimport { IBaseMenuItem } from \"../../components/NavBar/IBaseMenuItem\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { permissions } from \"../../constants/permissions\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport { selectIxsRef } from \"../../redux/selectors/selectIxsRef\";\nimport AttachmentsDialog from \"./AttachmentsDialog\";\nimport SwipeableViews from \"react-swipeable-views\";\nimport { SlideRenderProps, virtualize } from \"react-swipeable-views-utils\";\n\nloadMessages(csMessages, \"cs\");\ninterface IStateProps {\n strings: IStrings;\n language: ILanguage;\n dataSource?: PracListResultMobile;\n dataSourcePrevious?: PracListResultMobile;\n dataSourceNext?: PracListResultMobile;\n error?: SerializedError;\n params?: IParameter[];\n paramsError?: SerializedError;\n paramsFetching?: boolean;\n ixsref?: string;\n isFetching?: boolean;\n isFetchingPrevious?: boolean;\n isFetchingNext?: boolean;\n isSinging?: boolean;\n isSigningAllowed?: boolean;\n signRequest?: Date;\n attachmentsAllowed: boolean;\n}\n\ninterface IState {\n index: number;\n selectedMonth: Date;\n params: {\n zobrHodDec: boolean;\n };\n computeTo: number;\n warningnote: boolean;\n dialog: {\n isVisible: boolean;\n };\n attachmentsDialogVisible: boolean;\n}\n\ninterface IDispatchProps {\n onFetchData: (e: LeftPanelParams) => void;\n onFetchDataPrevious: (e: LeftPanelParams, computeTo: number) => void;\n onFetchDataNext: (e: LeftPanelParams, computeTo: number) => void;\n onFetchParams: () => Promise;\n onPostSigning: (e: QueryParam2) => Promise;\n onScrollWorksheetPrevious: () => void;\n onScrollWorksheetNext: () => void;\n onResetWorksheetData: () => void;\n}\n\ninterface WorksheetGridData {\n day: string;\n shift: string;\n note: string;\n passes: string;\n worked: string;\n absence: string;\n balance: string;\n}\n\ninterface WorksheetGridDatas extends Array {}\n\nconst param: LeftPanelParams = {\n StartDate: new Date(2020, 4, 1),\n EndDate: new Date(2020, 4, 30),\n};\n\nconst position = {\n top: 0,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n};\n\nfunction convertToBoolean(input: string): boolean {\n return JSON.parse(input);\n}\n\ntype IProps = IStateProps & IDispatchProps & ComponentProps;\n\ninterface RouteInfo {\n date: string;\n}\ninterface ComponentProps extends RouteComponentProps {}\n\nconst VirtualizeSwipeableViews = virtualize(SwipeableViews);\n\nclass Worksheet extends React.Component {\n private timer?: NodeJS.Timer;\n\n constructor(props: IProps) {\n super(props);\n const stringDate: string = props.match?.params.date;\n const paramDate: Date | null =\n stringDate != null\n ? new Date(Number(stringDate.substring(0, 4)), Number(stringDate.substring(4, 6)) - 1, 1)\n : null;\n const now = new Date();\n this.state = {\n // isNaN beacause of invalid date input\n selectedMonth: paramDate != null && !isNaN(paramDate.getTime()) ? paramDate : now,\n params: {\n zobrHodDec: false,\n },\n computeTo: 0,\n warningnote: false,\n dialog: {\n isVisible: false,\n },\n attachmentsDialogVisible: false,\n index: 0,\n };\n this.setDateIntoParam(this.state.selectedMonth.getMonth(), this.state.selectedMonth.getFullYear());\n param.Lang = this.props.language.code;\n }\n\n private checkIsActMonth(actMonthNumber: number, actYear: number): boolean {\n const today: Date = new Date();\n return actMonthNumber === today.getMonth() && actYear === today.getFullYear();\n }\n\n private setDateIntoParam(actMonthNumber: number, actYear: number) {\n param.StartDate?.setMonth(actMonthNumber);\n param.StartDate?.setFullYear(actYear);\n if (this.state.computeTo && this.checkIsActMonth(actMonthNumber, actYear)) this.setDateForCountTo();\n else param.EndDate = new Date(actYear, actMonthNumber + 1, 1, 0, 0, 0);\n }\n\n private handleComputeTo = (value: boolean) => {\n if (value) {\n this.setDateForCountTo();\n } else {\n param.EndDate = new Date(\n this.state.selectedMonth.getFullYear(),\n this.state.selectedMonth.getMonth() + 1,\n 1,\n 0,\n 0,\n 0\n );\n }\n this.setState({ computeTo: value ? 2 : 1 });\n value ? localStorage.setItem(\"PLIST_CBPOCDO\", \"2\") : localStorage.setItem(\"PLIST_CBPOCDO\", \"1\");\n this.props.onResetWorksheetData();\n this.props.onFetchData(param);\n };\n\n setDateForCountTo = () => {\n let today: Date = new Date();\n param.EndDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());\n };\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n case 1:\n this.handleComputeTo(this.state.computeTo !== 2);\n break;\n default:\n item.id && console.warn(\"Unhandled menu item: \", item);\n }\n };\n\n private createMenuItems = (strings: IStrings) => {\n let currentDay: Date = new Date();\n let checkboxVisibleDueCurrentmonth: boolean =\n currentDay.getMonth() === this.state.selectedMonth.getMonth() &&\n currentDay.getFullYear() === this.state.selectedMonth.getFullYear();\n let checkboxVisibleDueNotApproved: boolean = this.props.dataSource?.Potvrdil === null;\n const computeTo = {\n id: 1,\n text: (\n this.handleComputeTo(event.value)}\n >\n ),\n };\n let pole: any = [\n {\n id: 0,\n text: strings.common.Help,\n },\n ];\n if (checkboxVisibleDueCurrentmonth && checkboxVisibleDueNotApproved) {\n pole.unshift(computeTo);\n }\n return pole;\n };\n\n controlFordayParam(): void {\n let today: Date = new Date();\n let todayWithoutTime: Date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\n let actMonth: number = today.getMonth();\n let PLIST_FORDAY: number = parseInt(\n this.props.params?.find(ipo => ipo.NAZEV?.trim() === \"PLIST_FORDAY\")?.HODNOTA!\n );\n let controlDate: Date = new Date(todayWithoutTime.setDate(todayWithoutTime.getDate() - PLIST_FORDAY));\n if (controlDate.getMonth() < actMonth) {\n this.setDateIntoParam(controlDate.getMonth(), controlDate.getFullYear());\n this.setState({ selectedMonth: controlDate });\n }\n }\n\n checkAndSetIfSignRequest(): void {\n if (this.props.isSigningAllowed && this.props.signRequest !== null && this.props.signRequest !== undefined) {\n let signDate: Date = new Date(this.props.signRequest);\n this.setDateIntoParam(signDate.getMonth(), signDate.getFullYear());\n this.setState({\n selectedMonth: signDate,\n warningnote: true,\n });\n this.timer = setTimeout(() => {\n this.setState({ warningnote: false });\n }, 3000);\n }\n }\n\n async componentDidMount() {\n this.props.onResetWorksheetData();\n await this.props.onFetchParams();\n if (this.props.params) {\n let zobr: boolean = convertToBoolean(\n this.props.params?.find(ipo => ipo.NAZEV?.trim() === \"VYP_ZOBRHODDEC\")?.HODNOTA!\n );\n let countTo: number = +this.props.params?.find(ipo => ipo.NAZEV?.trim() === \"PLIST_CBPOCDO\")?.HODNOTA!;\n if (countTo === 0 && localStorage.getItem(\"PLIST_CBPOCDO\") !== null)\n countTo = +localStorage.getItem(\"PLIST_CBPOCDO\")!;\n else if (localStorage.getItem(\"PLIST_CBPOCDO\") === null) countTo = 2;\n this.setState({\n params: {\n zobrHodDec: zobr,\n },\n computeTo: countTo,\n });\n\n this.controlFordayParam();\n this.checkAndSetIfSignRequest();\n if (\n this.state.computeTo === 2 &&\n this.checkIsActMonth(this.state.selectedMonth.getMonth(), this.state.selectedMonth.getFullYear())\n )\n this.setDateForCountTo();\n this.props.onFetchData(param);\n }\n }\n\n componentWillUnmount() {\n if (this.timer) clearTimeout(this.timer);\n }\n\n public minutesToHours(minutesTotal: number): string {\n let isNegative: boolean = minutesTotal < 0;\n let abs: number = Math.abs(minutesTotal);\n let hours: number = Math.floor(abs / 60);\n let minutes: number = abs % 60;\n\n if (this.state.params.zobrHodDec) return (isNegative ? \"-\" : \"\") + parseFloat((abs / 60).toString()).toFixed(2);\n else\n return (\n (isNegative ? \"-\" : \"\") +\n hours +\n \":\" +\n (minutes === 0 ? \"00\" : minutes.toString().length === 1 ? \"0\" + minutes : minutes)\n );\n }\n\n public getPassTimeString(passTime: Date): string {\n let hours: string = passTime.getHours().toString();\n let minutes: string = passTime.getMinutes().toString();\n if (minutes.length === 1) minutes = \"0\" + minutes;\n return hours + \":\" + minutes + \" \";\n }\n\n getCurrentDayNumberName(DEN: Date): string {\n let currentDay: Date = new Date(DEN);\n let number: string = currentDay.getDate().toString();\n let name: string = currentDay.toLocaleDateString(this.props.language.code, { weekday: \"short\" });\n name = this.props.language.code === \"en\" ? name.substring(0, 2) : name;\n return number + \".\" + name;\n }\n\n public prepareData(dataSource?: PracListResultMobile): WorksheetGridDatas {\n let data: WorksheetGridDatas = [];\n let errorDates: Date[] = [];\n dataSource?.PracListChyby.forEach(error => {\n errorDates.push(error.DATUM);\n });\n dataSource?.IpodensmenCeleks.forEach(element => {\n let passesArr: string = \"\";\n if (element.UCET_VISIBILITY === true) passesArr = element.UCET;\n else {\n if (element.Pruchody != null) {\n element.Pruchody.forEach(pass => {\n let passTime: Date = new Date(pass.CasPruchodu);\n let time: string = this.getPassTimeString(passTime);\n let type: string = pass.TypPruchoduTxt.trim() + \" \";\n passesArr += time + type;\n });\n } else {\n passesArr = element.RowHeader;\n }\n }\n let row: WorksheetGridData = {\n day: element.Pruchody != null ? this.getCurrentDayNumberName(element.DEN) : \"\",\n shift: element.Pruchody != null ? element.SMENA_NAZEV : \"\",\n note: element.Poznamka,\n passes: passesArr,\n worked: element.ODPRAC ? this.minutesToHours(element.ODPRAC) : \"\",\n absence: element.OMLUV\n ? this.minutesToHours(element.OMLUV)\n : element.OMLUV_NE\n ? \"(\" + this.minutesToHours(element.OMLUV_NE) + \")\"\n : \"\",\n balance:\n element.Pruchody != null\n ? element.SALDO\n ? this.minutesToHours(element.SALDO)\n : errorDates.find(ipo => ipo === element.DEN)\n ? this.props.strings.worksheet.ErrorWS\n : \"\"\n : element.SumFooter,\n };\n data.push(row);\n });\n return data;\n }\n\n public SumOdpracCell = (dataSource?: PracListResultMobile) => {\n return (\n \n
\n {dataSource?.SumOdprac ? this.minutesToHours(dataSource?.SumOdprac) : \"0\"}\n
\n \n );\n };\n\n public SumAbsenceCell = (dataSource?: PracListResultMobile) => {\n return (\n \n
\n {(dataSource?.SumOmluv ? this.minutesToHours(dataSource?.SumOmluv) : \"\") +\n (dataSource?.SumOmluvNe != null\n ? \" (\" + this.minutesToHours(dataSource?.SumOmluvNe!) + \")\"\n : \"\")}\n
\n \n );\n };\n\n public SumBalanceCell = (dataSource?: PracListResultMobile) => {\n return (\n \n
\n {(dataSource?.SumSaldo ? this.minutesToHours(dataSource?.SumSaldo) : \"\") +\n (dataSource?.SumSaldoSprevodem\n ? \" (\" + this.minutesToHours(dataSource?.SumSaldoSprevodem) + \")\"\n : \"\")}\n
\n \n );\n };\n\n odpracCell = (props: GridCellProps) => {\n return (\n \n
{props.dataItem.worked}
\n \n );\n };\n\n absenceCell = (props: GridCellProps) => {\n return (\n \n
{props.dataItem.absence}
\n \n );\n };\n\n balanceCell = (props: GridCellProps) => {\n return (\n \n
{props.dataItem.balance}
\n \n );\n };\n\n hoursCell = (props: GridCellProps) => {\n return (\n \n
{props.dataItem.Hodiny}
\n \n );\n };\n\n daysCell = (props: GridCellProps) => {\n return (\n \n
{props.dataItem.Dny}
\n \n );\n };\n\n toggleDialog = () => {\n this.setState({\n dialog: {\n isVisible: !this.state.dialog.isVisible,\n },\n });\n };\n\n getFullName(dataSource?: PracListResultMobile): string {\n return dataSource?.CeleJmeno + \" \" + dataSource?.OC;\n }\n\n getState(dataSource?: PracListResultMobile): string {\n if (dataSource != null) {\n return dataSource.Podepsal !== null\n ? dataSource.PodepsalKind //this.props.strings.worksheet.State_Signed :\n : dataSource.Potvrdil !== null\n ? this.props.strings.worksheet.State_Confirmed\n : dataSource.Schvalil !== null\n ? this.props.strings.worksheet.State_Approved\n : this.props.strings.worksheet.State_Open;\n }\n return \"\";\n }\n\n setDialogText(row: string): string {\n let search: string = \"PLIST_TEXT\" + row;\n return this.props.params?.find(ipo => ipo.NAZEV?.trim() === search)?.HODNOTA!;\n }\n\n private agreeWithWS(): void {\n this.toggleDialog();\n }\n\n private handleSigning = async () => {\n await this.props.onPostSigning({ Value: this.props.ixsref || \"\", Value2: this.state.selectedMonth });\n this.toggleDialog();\n this.props.onFetchData(param);\n };\n\n public handleMonthChange = (month: Date) => {\n this.setState({\n selectedMonth: month,\n });\n this.setDateIntoParam(month.getMonth(), month.getFullYear());\n this.props.onResetWorksheetData();\n this.props.onFetchData(param);\n };\n\n getLocalDateTimeString(date: Date | null | undefined) {\n if (!date) return \"\";\n let datum: Date = new Date(date);\n return (\n datum.toLocaleDateString(this.props.language.code) +\n \" \" +\n datum.toLocaleTimeString(this.props.language.code)\n );\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void {\n if (this.props.dataSource && !this.props.isFetching) {\n if (!this.props.dataSourceNext && !this.props.isFetchingNext)\n this.props.onFetchDataNext(param, this.state.computeTo);\n else if (!this.props.dataSourcePrevious && !this.props.isFetchingPrevious)\n this.props.onFetchDataPrevious(param, this.state.computeTo);\n }\n }\n\n pageLayout(dataSource?: PracListResultMobile) {\n const props = this.props;\n let data: WorksheetGridDatas = this.prepareData(dataSource);\n if (dataSource) {\n return (\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n {dataSource?.Potvrdil !== null && (\n \n )}\n {dataSource.AnyPublished ? (\n <>\n \n \n \n {data.some(ipo => ipo.note !== \"\") && (\n \n )}\n \n this.SumOdpracCell(dataSource)}\n />\n this.SumAbsenceCell(dataSource)}\n />\n this.SumBalanceCell(dataSource)}\n />\n \n {dataSource.ContainsUnpublished && (\n \n \n {this.props.strings.plan.ContainsUnpublished}\n \n )}\n
\n \n {this.props.strings.worksheet.ShiftsFund +\n \": \" +\n this.minutesToHours(dataSource?.FondDlePlanuSmenMinuty!) +\n \" [ \" +\n dataSource?.FondDlePlanuSmenSmeny +\n \" ]\"}\n \n
\n {dataSource?.ZobrazitKalFond && (\n
\n \n {this.props.strings.worksheet.CalendarFund +\n \": \" +\n this.minutesToHours(dataSource?.FondDleKalendareMinuty) +\n \" / \" +\n this.minutesToHours(dataSource?.FondStanovDleKalendareMinuty)}\n \n
\n )}\n
\n \n {this.props.strings.worksheet.TransferPast +\n \": \" +\n this.minutesToHours(dataSource?.PrevodMinuly ?? 0)}\n \n \n {this.props.strings.worksheet.TransferNext +\n \": \" +\n this.minutesToHours(dataSource?.PrevodDoDalsiho ?? 0)}\n \n
\n
\n \n {this.props.strings.worksheet.BalanceNext +\n \": \" +\n this.minutesToHours(dataSource?.SaldoVPristim ?? 0)}\n \n
\n
\n \n {this.props.strings.worksheet.MonthAccounts}\n \n
\n \n \n \n \n \n \n {dataSource?.Schvalil && (\n
\n \n {this.props.strings.worksheet.ApprovedWS +\n \": \" +\n (dataSource?.Schvalil ?? \"\") +\n \" \" +\n this.getLocalDateTimeString(dataSource?.SchvalilKdy)}\n \n
\n )}\n {dataSource?.Potvrdil && (\n
\n \n {this.props.strings.worksheet.Confirmed +\n \": \" +\n (dataSource?.Potvrdil ?? \"\") +\n \" \" +\n this.getLocalDateTimeString(dataSource?.PotvrdilKdy)}\n \n
\n )}\n {dataSource?.Podepsal && (\n
\n \n {this.props.strings.worksheet.Signature +\n \": \" +\n (dataSource?.Podepsal ?? \"\") +\n \" \" +\n this.getLocalDateTimeString(dataSource?.PodepsalKdy)}\n \n
\n )}\n \n ) : (\n \n \n {this.props.strings.plan.NotPublished}\n \n )}\n
\n
\n
\n );\n } else return ;\n }\n\n private slideRenderer = (props: SlideRenderProps) => {\n if (props.index < this.state.index)\n return
{this.pageLayout(this.props.dataSourcePrevious)}
;\n else if (props.index > this.state.index)\n return
{this.pageLayout(this.props.dataSourceNext)}
;\n else return
{this.pageLayout(this.props.dataSource)}
;\n };\n\n private scrollPrevious = () => {\n this.props.onScrollWorksheetPrevious();\n const newMonth = this.state.selectedMonth.addMonths(-1);\n this.setDateIntoParam(newMonth.getMonth(), newMonth.getFullYear());\n this.setState({ selectedMonth: newMonth });\n this.props.onFetchDataPrevious(param, this.state.computeTo);\n };\n\n private scrollNext = () => {\n this.props.onScrollWorksheetNext();\n const newMonth = this.state.selectedMonth.addMonths(1);\n this.setDateIntoParam(newMonth.getMonth(), newMonth.getFullYear());\n this.setState({ selectedMonth: newMonth });\n this.props.onFetchDataNext(param, this.state.computeTo);\n };\n\n public render() {\n const props = this.props;\n return (\n \n \n {this.props.dataSource?.Potvrdil !== null &&\n this.props.dataSource?.Podepsal === null &&\n this.props.isSigningAllowed && (\n this.agreeWithWS()}\n >\n )}\n {this.props.attachmentsAllowed && (\n this.setState({ attachmentsDialogVisible: true })}\n />\n )}\n \n }\n >\n {this.state.attachmentsDialogVisible && (\n this.setState({ attachmentsDialogVisible: false })}\n />\n )}\n {this.props.isSigningAllowed && (\n \n \n {this.state.warningnote && (\n this.setState({ warningnote: false })}\n >\n {this.props.strings.worksheet.SignatureNeededWarning}\n \n )}\n \n \n )}\n {!(this.props.error || this.props.paramsError || this.props.dataSource === null) && (\n {\n this.setState({ index: index1 });\n if (index0 < index1) {\n this.scrollNext();\n } else {\n this.scrollPrevious();\n }\n }}\n />\n )}\n {(this.props.error || this.props.paramsError) && (\n
\n )}\n {!this.props.paramsFetching && !this.props.isFetching && this.props.dataSource == null && (\n
{this.props.strings.worksheet.NoDataWorksheetNull}
\n )}\n {this.state.dialog.isVisible && (\n \n

{this.props.strings.common.Person + \": \" + this.getFullName(this.props.dataSource)}

\n

\n {this.props.strings.worksheet.Period +\n \": \" +\n this.state.selectedMonth.toLocaleString(this.props.language.code, { month: \"long\" }) +\n \" \" +\n this.state.selectedMonth.getFullYear()}\n

\n

{this.setDialogText(\"\")}

\n

{this.setDialogText(\"2\")}

\n

{this.setDialogText(\"3\")}

\n \n {!this.props.isSinging && (\n \n )}\n {!this.props.isSinging && (\n \n )}\n {this.props.isSinging && (\n
\n \n
\n )}\n
\n \n )}\n \n );\n }\n}\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n language: state.localization.language,\n ixsref: selectIxsRef(state),\n dataSource: state.session.worksheet.datasource,\n dataSourcePrevious: state.session.worksheet.datasourcePrevious,\n dataSourceNext: state.session.worksheet.datasourceNext,\n isFetching: state.session.worksheet.isFetching,\n isFetchingPrevious: state.session.worksheet.isFetchingPrevious,\n isFetchingNext: state.session.worksheet.isFetchingNext,\n error: state.session.worksheet.error,\n params: state.session.worksheetParams.params,\n paramsError: state.session.worksheetParams.error,\n paramsFetching: state.session.worksheetParams.isFetching,\n isSigningAllowed:\n !state.session.user.token?.userDisabledActions.some(p => p === permissions.workSheet.sign) ?? false,\n isSinging: state.session.worksheetSign.isFetching,\n signRequest: state.session.dashboard.data?.wsRequests?.firstDate,\n attachmentsAllowed:\n (state.session.worksheet.datasource?.showAttachments ?? false) &&\n (!(\n state.session.user.token?.userDisabledActions.some(p => p === permissions.workSheet.attachments) ||\n state.session.user.token?.userInvisibleActions.some(p => p === permissions.workSheet.attachments)\n ) ??\n false),\n }),\n {\n onFetchData: (e: LeftPanelParams) => fetchWorksheetDataForMonth(e),\n onFetchDataPrevious: (e: LeftPanelParams, computeTo: number) =>\n fetchWorksheetDataForPreviousMonth({ params: e, computeTo }),\n onFetchDataNext: (e: LeftPanelParams, computeTo: number) =>\n fetchWorksheetDataForNextMonth({ params: e, computeTo }),\n onFetchParams: () => getParamsForWorksheet() as any,\n onPostSigning: (e: QueryParam2) => signWorksheet(e) as any,\n onScrollWorksheetPrevious: scrollWorksheetPrevious,\n onScrollWorksheetNext: scrollWorksheetNext,\n onResetWorksheetData: resetWorksheetData,\n }\n)(Worksheet);\n","import React from \"react\";\nimport Timeline from \"../../components/Timeline/Timeline\";\nimport { generateGroups, generateRandomIntervals } from \"../../components/Timeline/generators\";\n\nexport default function TimelinePage() {\n return (\n \n );\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { QueryParam2, ReportParam } from \"../../model/CommonQueryParams\";\n\nconst DOMAIN = \"reports\";\n\nexport const fetchReportData = createAsyncThunk<\n {},\n QueryParam2[]>,\n { state: IRootState }\n>(`${DOMAIN}/fetchReportData`, async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n //arg.SelectedIxsref = api.getState().authentication.token?.sid;\n if (arg != null) {\n if (arg.Value2 != null) {\n arg.Value2.push({ Item1: \"lang\", Item2: api.getState().localization.language.code });\n }\n const classname = api\n .getState()\n .session.reportItems.data?.find(f => f.classname.startsWith(arg.Value ?? \"\"))?.classname;\n arg.Value = classname ?? arg.Value;\n }\n\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(arg),\n };\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SelfService_GetReport\",\n requestOptions\n );\n\n const data = await response.json();\n\n if (response.status === 200) return data;\n else return api.rejectWithValue(data);\n});\n\nexport const fetchReportsItems = createAsyncThunk<{}, void, { state: IRootState }>(\n `${DOMAIN}/fetchReportsItems`,\n function (arg, api) {\n let requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n };\n\n return fetch(\n api.getState().config.config?.endpoint +\n `/api/Reports/ReportsHierarchicalData?culture=${\n api.getState().localization.language.code\n }&callingApp=SelfService`,\n requestOptions\n ).then(response => response.json());\n }\n);\n","import React from \"react\";\nimport { Calendar, CalendarChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { Dialog } from \"@progress/kendo-react-dialogs\";\nimport styles from \"../MonthPicker/MonthPicker.module.scss\";\nimport { IntlProvider, LocalizationProvider, loadMessages } from \"@progress/kendo-react-intl\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { Button } from \"@progress/kendo-react-buttons\";\n\nimport csMessages from \"../../assets/cs.json\";\nloadMessages(csMessages, \"cs\");\n\ninterface IOwnProps {\n onPick: (month: Date) => void;\n selectedMonth: Date;\n}\n\ninterface IStateProps {\n language: ILanguage;\n}\n\ntype IProps = IOwnProps & IStateProps;\n\nfunction MonthPicker(props: IProps) {\n const [isOpen, setIsOpen] = React.useState(false);\n\n const handleChange = (event: CalendarChangeEvent) => {\n setIsOpen(false);\n\n const month = new Date(event.value.getFullYear(), event.value.getMonth(), 1);\n props.onPick(month);\n };\n\n const month = new Date(props.selectedMonth.getFullYear(), props.selectedMonth.getMonth(), 1);\n return (\n <>\n
\n \n props.onPick(props.selectedMonth.addMonths(-1))}\n >\n props.onPick(props.selectedMonth.addMonths(1))}\n >\n
\n {isOpen && (\n
\n \n \n \n \n \n \n \n
\n )}\n \n );\n}\n\nexport default connect(state => ({\n language: state.localization.language,\n}))(MonthPicker);\n","import { ReportsListItems } from \"../model/ReportItem\";\n\n/*\nParams:\n1 - PersonsDropdown,\n2 - FromDate,\n3 - ToDate,\n4 - HolidaysDropdown,\n5 - MonthPicker od,\n6 - MonthPicker do,\n7 - Error source,\n8 - AccountDropdown,\n9 - Detailed output,\n10 - Show breaks,\n11 - Show Intrevals,\n12 - Show codes\n*/\n\nexport const reportsListItems: ReadonlyArray = [\n {\n id: 1,\n shortname: \"VacationPerson\",\n longname: \"ANeTReportsLibrary.DovolenaStatistika.DovolenaZustatekOsoba\",\n neededParams: [1, 2],\n paramsRestristrions: [\"pstypixsref\", \"pstypdatumod\"],\n permissions: \"ReportsSelfServiceApp_VacationRemaining\",\n },\n {\n id: 2,\n shortname: \"VacationStatistiscsPerson\",\n longname: \"ANeTReportsLibrary.DovolenaStatistika.DovolenaCerpaniOsoba\",\n neededParams: [1, 3, 4],\n paramsRestristrions: [\"pstypixsref\", \"pstypholiday\", \"pstypaktualnirok\"],\n permissions: \"ReportsSelfServiceApp_VacationStatistics\",\n },\n {\n id: 3,\n shortname: \"Worksheet\",\n longname: \"ANeT.ReportsLibrary.WorkSheet.ReportWorkSheet, ANeTReportsLibrary\",\n neededParams: [1, 13, 10, 11],\n paramsRestristrions: [\"IxsRef\", \"dateRef\", \"DateTo\", \"zobrPrestavky\", \"zobrIntervaly\", \"accessIxsRef\"],\n permissions: \"ReportsSelfServiceApp_WorkSheet\",\n },\n {\n id: 4,\n shortname: \"Plan\",\n longname: \"ANeT.ReportsLibrary.PlanApp.ReportPlanOsoby, ANeTReportsLibrary\",\n neededParams: [1, 13, 12],\n paramsRestristrions: [\n \"ixsRef\",\n \"ixsRefs\",\n \"dateStart\",\n \"dateEnd\",\n \"printCodes\",\n \"printChanges\",\n \"specialSlots\",\n \"accessIxsRef\",\n \"pstypuserid\",\n ],\n permissions: \"ReportsSelfServiceApp_Plan\",\n },\n {\n id: 5,\n shortname: \"MissingPassesErrors\",\n longname: \"ANeTReportsLibrary.StatistikaChyb.ChybyChybejiciPruchodyOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\"],\n permissions: \"ReportsSelfServiceApp_MissingPasses\",\n },\n {\n id: 6,\n shortname: \"SyntaxErrors\",\n longname: \"ANeTReportsLibrary.StatistikaChyb.ChybyChybySyntaxeOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\"],\n permissions: \"ReportsSelfServiceApp_ErrorSyntax\",\n },\n {\n id: 7,\n shortname: \"ZPErrors\",\n longname: \"ANeTReportsLibrary.StatistikaChyb.ChybyPoruseniZPOsoba\",\n neededParams: [1, 2, 3, 7],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\", \"zdroj\"],\n permissions: \"ReportsSelfServiceApp_ErrorZP\",\n },\n {\n id: 8,\n shortname: \"PotencialOvertimeErrors\",\n longname: \"ANeTReportsLibrary.StatistikaChyb.ChybyPotencialniPrescasyOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\"],\n permissions: \"ReportsSelfServiceApp_PotencialOvertimes\",\n },\n {\n id: 9,\n shortname: \"LateArrivalErrors\",\n longname: \"ANeTReportsLibrary.StatistikaChyb.ChybyPozdniPrichodyPredcasneOdchodyOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\"],\n permissions: \"ReportsSelfServiceApp_LatePasses\",\n },\n {\n id: 10,\n shortname: \"FirstArrivalsErrors\",\n longname: \"ANeTReportsLibrary.StatistikaChyb.ChybyPrvniPrichodyOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\"],\n permissions: \"ReportsSelfServiceApp_FirstLastPasses\",\n },\n {\n id: 11,\n shortname: \"MissedShiftsErrors\",\n longname: \"ANeTReportsLibrary.StatistikaChyb.ChybyZameskaneSmenyOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\"],\n permissions: \"ReportsSelfServiceApp_MissedShifts\",\n },\n {\n id: 12,\n shortname: \"EvidenceZP\",\n longname: \"ANeTReportsLibrary.EvidenceDleZP.EvidenceDleZPOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsref\", \"datumod\", \"datumdo\"],\n permissions: \"ReportsSelfServiceApp_EvidenceZP\",\n },\n {\n id: 13,\n shortname: \"DailyAccounts\",\n longname: \"ANeTReportsLibrary.DenUctyPrehled.DenUctyPrehledOsoba\",\n neededParams: [1, 2, 3, 8],\n paramsRestristrions: [\"pstypixsref\", \"pstypdatumod\", \"pstypdatumdo\", \"pstypiducet\"],\n permissions: \"ReportsSelfServiceApp_DailyAccounts\",\n },\n {\n id: 14,\n shortname: \"Overtimes\",\n longname: \"ANeT.ReportsLibrary.PrehledPrescasu.PrescasyOsoba\",\n neededParams: [1, 2, 3],\n paramsRestristrions: [\"ixsRef\", \"dateFrom\", \"dateTo\"],\n permissions: \"ReportsSelfServiceApp_Overtimes\",\n },\n {\n id: 15,\n shortname: \"BalanceStatistics\",\n longname: \"ANeTReportsLibrary.StatistikaSalda.SaldoMesicOsoba\",\n neededParams: [1, 5, 6, 9],\n paramsRestristrions: [\"pstypixsref\", \"pstypmesicod\", \"pstypmesicdo\", \"pstypbooleanuni\"],\n permissions: \"ReportsSelfServiceApp_MonthStatBalance\",\n },\n];\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport styles from \"./ReportViewer.module.scss\";\nimport { DialogActionsBar, Dialog } from \"@progress/kendo-react-dialogs\";\nimport { ReportParam } from \"../../model/CommonQueryParams\";\nimport { fetchReportData, fetchReportsItems } from \"../../redux/actions/reports\";\nimport { ReportItem, ReportItemWithPermission, ReportsListItems } from \"../../model/ReportItem\";\nimport { List, ListItem, ListItemText } from \"@material-ui/core\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { DatePicker, DatePickerChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { IntlProvider } from \"@progress/kendo-react-intl\";\nimport { Checkbox, Input } from \"@progress/kendo-react-inputs\";\nimport MonthPicker from \"../../components/MonthPicker/MonthPicker\";\nimport AccountDropdown from \"../../components/AccountDropdown/AccountDropdown\";\nimport { reportsListItems } from \"../../constants/reports\";\nimport { DropDownList } from \"@progress/kendo-react-dropdowns\";\nimport { selectUserFullname } from \"../../redux/selectors/selectUserFullname\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport template from \"./template.html\";\nimport templateChrome from \"./templateChrome.html\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { selectIxsRef } from \"../../redux/selectors/selectIxsRef\";\nimport { IAccount } from \"../../model/IAccount\";\n\nconst isMobileOrTablet = window.innerWidth <= 600;\nconst isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\nconst isApple =\n /iPhone/.test(navigator.userAgent) || /iPad/.test(navigator.userAgent) || /Macintosh/.test(navigator.userAgent);\n\nexport default function ReportViewer() {\n const dispatch = useAppDispatch();\n const strings = useStrings();\n\n const code = useAppSelector(s => s.localization.language.code);\n const ixsRef = useAppSelector(selectIxsRef);\n const fullName = useAppSelector(selectUserFullname);\n const fetching = useAppSelector(s => s.session.reports.isFetching);\n const data = useAppSelector(s => s.session.reports.data);\n const list = useAppSelector(s => s.session.reportItems.data);\n const isFetchingReport = useAppSelector(s => s.session.reportItems.isFetching);\n const permissions = useAppSelector(s => s.session.user.token?.userInvisibleActions ?? []);\n\n const [selectedReport, setSelectedReport] = useState();\n const [dateFrom, setDateFrom] = useState(new Date().firstDayOfMonth());\n const [dateTo, setDateTo] = useState(new Date().lastDayOfMonth());\n const [selectedErrorSource, setSelectedErrorSource] = useState(strings.reports.JustPlan);\n const [extendedDetail, setExtendedDetail] = useState(false);\n const [selectedMonth, setSelectedMonth] = useState(new Date());\n const [selectedMonthFrom, setSelectedMonthFrom] = useState(new Date());\n const [selectedMonthTo, setSelectedMonthTo] = useState(new Date());\n const [selectedAccount, setSelectedAccount] = useState();\n const [showIntervals, setShowIntervals] = useState(false);\n const [showBreaks, setShowBreaks] = useState(false);\n const [printCodes, setPrintCodes] = useState(false);\n const [printChanges, setPrintChanges] = useState(false);\n const [dialogVisible, setDialogVisible] = useState(false);\n\n const save = useRef(strings.common.Save);\n const report = useRef();\n\n useEffect(() => {\n save.current = strings.common.Save;\n }, [strings]);\n\n useEffect(() => {\n report.current = selectedReport;\n }, [selectedReport]);\n\n useEffect(() => {\n dispatch(fetchReportsItems());\n }, [dispatch, code]);\n\n /*\n Params:\n 1 - PersonsDropdown,\n 2 - FromDate,\n 3 - ToDate,\n 4 - HolidaysDropdown,\n 5 - MonthPicker od,\n 6 - MonthPicker do,\n 7 - Error source,\n 8 - AccountDropdown,\n 9 - Detailed output,\n 10 - Show breaks,\n 11 - Show Intrevals,\n 12 - Show codes\n */\n const controlAndSetParams = (): ReportParam[] => {\n const parameters: ReportParam[] = [];\n selectedReport?.paramsRestristrions.forEach((param: string) => {\n const para: ReportParam = {};\n para.Item1 = param;\n switch (param) {\n case \"pstypixsref\":\n case \"ixsRef\":\n case \"ixsRefs\":\n case \"IxsRef\":\n case \"pstypuserid\":\n case \"accessIxsRef\":\n case \"ixsref\": {\n para.Item2 = ixsRef;\n break;\n }\n case \"pstypdatumod\":\n case \"dateRef\":\n case \"dateStart\":\n case \"dateFrom\":\n case \"datumod\": {\n para.Item2 = dateFrom?.getStartOfDay().toISOStringIgnoringTZ();\n break;\n }\n case \"pstypdatumdo\":\n case \"dateEnd\":\n case \"dateTo\":\n case \"DateTo\":\n case \"pstypaktualnirok\":\n case \"datumdo\": {\n para.Item2 = dateTo?.getStartOfDay().toISOStringIgnoringTZ();\n break;\n }\n case \"pstypmesicod\": {\n para.Item2 = selectedMonthFrom?.firstDayOfMonth().toISOStringIgnoringTZ();\n break;\n }\n case \"pstypmesicdo\": {\n para.Item2 = selectedMonthTo?.lastDayOfMonth().toISOStringIgnoringTZ();\n break;\n }\n case \"pstypholiday\":\n case \"pstypiducet\": {\n para.Item2 = selectedAccount?.id.toString();\n break;\n }\n case \"zdroj\": {\n para.Item2 = selectedErrorSource?.toString();\n break;\n }\n case \"pstypbooleanuni\": {\n para.Item2 = extendedDetail?.toString();\n break;\n }\n case \"zobrPrestavky\": {\n para.Item2 = showBreaks?.toString();\n break;\n }\n case \"zobrIntervaly\": {\n para.Item2 = showIntervals?.toString();\n break;\n }\n case \"printCodes\": {\n para.Item2 = printCodes?.toString();\n break;\n }\n case \"printChanges\": {\n para.Item2 = printChanges?.toString();\n break;\n }\n case \"specialSlots\": {\n para.Item2 = \"\";\n break;\n }\n }\n parameters.push(para);\n });\n return parameters;\n };\n\n useEffect(() => {\n const fileName = report.current?.shortname + \"_\" + new Date().getFullDateString();\n\n const downloadPDF = () => {\n const a = document.createElement(\"a\");\n a.href = `data:application/pdf;base64,${data}`;\n a.download = fileName;\n a.click();\n };\n\n const base64ToBlob = (base64: any) => {\n const binStr = atob(base64);\n const len = binStr.length;\n const arr = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = binStr.charCodeAt(i);\n }\n return new Blob([arr], { type: \"application/pdf\" });\n };\n\n const downloadPDFApple = () => {\n const a = document.createElement(\"a\");\n a.href = URL.createObjectURL(base64ToBlob(data));\n a.download = fileName;\n a.target = \"_blank\";\n a.click();\n };\n\n if (data && report.current) {\n if (isApple) {\n downloadPDFApple();\n } else if (isMobileOrTablet) {\n downloadPDF();\n } else {\n const newWindow = window.open(\"\", \"_blank\");\n if (newWindow) {\n const content = (isChrome ? templateChrome : template)\n .replaceAll(\"$DATA$\", data.toString())\n .replaceAll(\"$FILENAME$\", fileName)\n .replaceAll(\"$SAVE$\", save.current);\n newWindow.document.write(content);\n newWindow.document.close();\n newWindow.window.focus();\n }\n }\n }\n setSelectedReport(undefined);\n }, [data]);\n\n const saveOrOpenPDF = () => {\n const params = controlAndSetParams();\n dispatch(fetchReportData({ Value: selectedReport?.longname, Value2: params }));\n };\n\n const openParametersDialog = (className: string) => {\n const item = reportsListItems.find(ipo => className.startsWith(ipo.longname));\n setSelectedReport(item);\n setDialogVisible(true);\n };\n\n const toggleDialog = () => {\n setDialogVisible(!dialogVisible);\n };\n\n const handleSaving = () => {\n saveOrOpenPDF();\n toggleDialog();\n };\n\n const fromDateChange = (event: DatePickerChangeEvent) => {\n setDateFrom(event.value!);\n if (dateTo! < event.value!) {\n setDateTo(event.value!);\n }\n };\n\n const toDateChange = (event: DatePickerChangeEvent) => {\n setDateTo(event.value!);\n if (dateFrom! > event.value!) {\n setDateFrom(event.value!);\n }\n };\n\n const handleMonthChange = (month: Date) => {\n const startDate = month.firstDayOfMonth();\n const endDate = month.addMonths(1).firstDayOfMonth();\n setDateFrom(startDate);\n setDateTo(endDate);\n setSelectedMonth(month);\n };\n\n const sortDataAndAdd2StaticReports = () => {\n const reports: ReportItem[] = [];\n reports.push({\n caption: strings.reports.WorksheetTitle,\n classname: \"ANeT.ReportsLibrary.WorkSheet.ReportWorkSheet, ANeTReportsLibrary\",\n items: [],\n });\n reports.push({\n caption: strings.plan.PlanName,\n classname: \"ANeT.ReportsLibrary.PlanApp.ReportPlanOsoby, ANeTReportsLibrary\",\n items: [],\n });\n list?.forEach(element => {\n reports.push(element);\n });\n const reportsResult: ReportItemWithPermission[] = reports.map(report => ({\n ...report,\n permission: reportsListItems.find(ipo => report.classname.startsWith(ipo.longname))?.permissions ?? \"\",\n }));\n return reportsResult.sort((a, b) => a.caption.localeCompare(b.caption));\n };\n\n function ParamRow(props: React.PropsWithChildren<{ index: number; label: string }>) {\n return !!selectedReport?.neededParams.some(s => s === props.index) ? (\n
\n \n {props.children}\n
\n ) : (\n <>\n );\n }\n\n const resultItems = sortDataAndAdd2StaticReports();\n return (\n }>\n \n
\n {!(isFetchingReport || fetching) && list && (\n \n {resultItems.map(\n (row, key) =>\n !permissions.includes(row.permission) && (\n openParametersDialog(row.classname)}\n >\n \n \n )\n )}\n \n )}\n {dialogVisible && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setSelectedMonthFrom(e)} />\n \n \n setSelectedMonthTo(e)} />\n \n \n setSelectedErrorSource(e.value)}\n value={selectedErrorSource}\n />\n \n \n \n \n \n \n \n \n setExtendedDetail(e.value)}\n />\n \n \n setShowBreaks(e.value)}\n />\n \n \n setShowIntervals(e.value)}\n />\n \n \n setPrintCodes(e.value)}\n />\n \n \n setPrintChanges(e.value)}\n />\n \n \n \n \n {isMobileOrTablet ? strings.common.Save : strings.reports.LoadReport}\n \n \n \n )}\n {(isFetchingReport || fetching) && }\n
\n
\n
\n );\n}\n","import React from \"react\";\nimport { Stack } from \"../../components/Timeline/stacking/Stack\";\nimport { generateRandomInterval } from \"../../components/Timeline/generators\";\n\nexport function StackTestPage() {\n return (\n <>\n
Pro otestování prováděj resize okna a sleduj resize prvku.
\n
\n
1. Po
\n \n
\n \n );\n}\n","import { IFileConfig } from \"../model/config/IFileConfig\";\n\nexport const defaults: IFileConfig = {\n endpoint: \"http://localhost/WebTimeServer\",\n syncEndpointOriginWithClient: true,\n debug: false,\n autoLogoutMinutes: 0,\n infoText: \"\",\n uploadSize: 1200,\n uploadQuality: 0.5,\n};\n","export function initializeGoogleAnalytics(id: string) {\n const script = document.createElement(\"script\");\n script.setAttribute(\"src\", `https://www.googletagmanager.com/gtag/js?id=${id}`);\n script.async = true;\n document.head.appendChild(script);\n\n window.dataLayer = window.dataLayer || [];\n window.gtag = function () {\n window.dataLayer.push(arguments);\n };\n\n window.gtag(\"js\", new Date());\n window.gtag(\"config\", id);\n}\n\nexport function gtag(...args: any[]) {\n window.gtag?.(...args);\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { defaults } from \"../../constants/config\";\nimport { IConfig } from \"../../model/config/IConfig\";\nimport { IFileConfig } from \"../../model/config/IFileConfig\";\nimport { initializeGoogleAnalytics } from \"../../utils/Analytics\";\n\nexport const fetchConfig = createAsyncThunk(\"config/fetch\", async (arg, api) => {\n const response = await fetch(process.env.PUBLIC_URL + \"/config.json?\" + new Date().toISOString(), {\n headers: {\n Accept: \"application/json\",\n },\n signal: api.signal,\n });\n\n let partialConfig: Partial = {};\n if (response.status !== 404) {\n await handleResponseError(response);\n\n partialConfig = await response.json();\n\n const gaId = partialConfig.googleAnalyticsId;\n if (gaId) initializeGoogleAnalytics(gaId);\n }\n\n const config: IFileConfig = {\n endpoint: partialConfig.endpoint ?? defaults.endpoint,\n syncEndpointOriginWithClient:\n partialConfig.syncEndpointOriginWithClient ?? defaults.syncEndpointOriginWithClient,\n debug: partialConfig.debug ?? defaults.debug,\n autoLogoutMinutes: partialConfig.autoLogoutMinutes ?? defaults.autoLogoutMinutes,\n infoText: partialConfig.infoText ?? defaults.infoText,\n uploadSize: partialConfig.uploadSize ?? defaults.uploadSize,\n uploadQuality: partialConfig.uploadQuality ?? defaults.uploadQuality,\n };\n\n // sync endpoint protocol & port with client\n if (config.syncEndpointOriginWithClient) {\n const endpoint = new URL(config.endpoint);\n const location = window.location;\n\n endpoint.protocol = location.protocol;\n endpoint.hostname = location.hostname;\n endpoint.port = location.port;\n\n config.endpoint = endpoint.toString();\n }\n\n return {\n endpoint: config.endpoint,\n debug: config.debug,\n autoLogoutMinutes: config.autoLogoutMinutes,\n infoText: config.infoText,\n uploadSize: config.uploadSize,\n uploadQuality: config.uploadQuality,\n } as IConfig;\n});\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Calendar, CalendarChangeEvent } from \"@progress/kendo-react-dateinputs\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { Dialog } from \"@progress/kendo-react-dialogs\";\nimport styles from \"./NavbarDayPicker.module.scss\";\nimport { IntlProvider } from \"@progress/kendo-react-intl\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { formatDate } from \"@telerik/kendo-intl\";\n\ninterface IOwnProps {\n onPick: (day: Date) => void;\n selectedDay: Date;\n labelRenderer?: (day: Date) => React.ReactNode;\n}\n\ninterface IStateProps {\n language: ILanguage;\n}\n\ntype IProps = IOwnProps & IStateProps;\n\nfunction NavbarDayPicker(props: IProps) {\n const [isOpen, setIsOpen] = React.useState(false);\n const [day, setDay] = React.useState(props.selectedDay);\n\n const handleChange = (event: CalendarChangeEvent) => {\n setIsOpen(false);\n\n const day = new Date(event.value.getFullYear(), event.value.getMonth(), event.value.getDate());\n setDay(day);\n props.onPick(day);\n };\n\n const month = new Date(props.selectedDay.getFullYear(), props.selectedDay.getMonth(), props.selectedDay.getDate());\n return (\n <>\n \n {isOpen &&\n ReactDOM.createPortal(\n setIsOpen(false)}>\n \n \n \n ,\n document.body\n )}\n \n );\n}\n\nexport default connect(state => ({\n language: state.localization.language,\n}))(NavbarDayPicker);\n","import { createAction, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../../reducers/root\";\nimport { IDepartmentPlanData } from \"../../../model/plan/department/IDepartmentPlanData\";\nimport getHeaders from \"../../../helpers/getHeaders\";\nimport GetResponseJson from \"../../../helpers/getResponseJson\";\n\ntype Arg = {\n from: Date;\n to: Date;\n};\ntype IntervalsArg = Arg & {\n ixsRefs: string[];\n};\n\nconst DATA_ADDRESS = \"/breeze/IpoData/SelfService_GetDepartmentPlanData\";\nconst INTERVALS_ADDRESS = \"/breeze/IpoData/SelfService_GetDepartmentPlanDataIntervals\";\n\nconst getDataBody = (api: { getState: () => IRootState }, arg: Arg) => {\n return JSON.stringify({\n Item1: arg.from,\n Item2: arg.to,\n Item3: api.getState().session.centerPicker.selected?.id,\n Item4: api.getState().session.centerPicker.includingSubcenters,\n Item5: api.getState().session.categories.selected,\n });\n};\n\nconst getIntervalsBody = (arg: IntervalsArg, recalculate: boolean) => {\n return JSON.stringify({\n Item1: arg.from,\n Item2: arg.to,\n Item3: arg.ixsRefs,\n Item4: recalculate,\n });\n};\n\nexport const fetchDepartmentPlanData = createAsyncThunk, Arg, { state: IRootState }>(\n \"plan/department/data/fetch\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getDataBody(api, arg),\n signal: api.signal,\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n }\n);\n\nexport const fetchDepartmentPlanDataIntervals = createAsyncThunk<\n Partial,\n IntervalsArg,\n { state: IRootState }\n>(\"plan/department/data/intervals\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getIntervalsBody(arg, false),\n signal: api.signal,\n };\n return await GetResponseJson(api, INTERVALS_ADDRESS, requestOptions);\n});\n\nexport const fetchDepartmentPlanDataIntervalsRecalculate = createAsyncThunk<\n Partial,\n IntervalsArg,\n { state: IRootState }\n>(\"plan/department/data/recalculate\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getIntervalsBody(arg, true),\n signal: api.signal,\n };\n return await GetResponseJson(api, INTERVALS_ADDRESS, requestOptions);\n});\n\nexport const fetchDepartmentPlanPreviousData = createAsyncThunk<\n Partial,\n Arg,\n { state: IRootState }\n>(\"plan/department/data/previous/fetch\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getDataBody(api, arg),\n signal: api.signal,\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n});\n\nexport const fetchDepartmentPlanDataPreviousIntervals = createAsyncThunk<\n Partial,\n IntervalsArg,\n { state: IRootState }\n>(\"plan/department/data/previous/intervals\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getIntervalsBody(arg, false),\n signal: api.signal,\n };\n return await GetResponseJson(api, INTERVALS_ADDRESS, requestOptions);\n});\n\nexport const fetchDepartmentPlanDataIntervalsPreviousRecalculate = createAsyncThunk<\n Partial,\n IntervalsArg,\n { state: IRootState }\n>(\"plan/department/data/previous/recalculate\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getIntervalsBody(arg, true),\n signal: api.signal,\n };\n return await GetResponseJson(api, INTERVALS_ADDRESS, requestOptions);\n});\n\nexport const fetchDepartmentPlanNextData = createAsyncThunk, Arg, { state: IRootState }>(\n \"plan/department/data/next/fetch\",\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getDataBody(api, arg),\n signal: api.signal,\n };\n return await GetResponseJson(api, DATA_ADDRESS, requestOptions);\n }\n);\n\nexport const fetchDepartmentPlanDataNextIntervals = createAsyncThunk<\n Partial,\n IntervalsArg,\n { state: IRootState }\n>(\"plan/department/data/next/intervals\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getIntervalsBody(arg, false),\n signal: api.signal,\n };\n return await GetResponseJson(api, INTERVALS_ADDRESS, requestOptions);\n});\n\nexport const fetchDepartmentPlanDataIntervalsNextRecalculate = createAsyncThunk<\n Partial,\n IntervalsArg,\n { state: IRootState }\n>(\"plan/department/data/next/recalculate\", async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: getHeaders(api),\n body: getIntervalsBody(arg, true),\n signal: api.signal,\n };\n return await GetResponseJson(api, INTERVALS_ADDRESS, requestOptions);\n});\n\nexport const scrollDepartmentPlanPrevious = createAction(\"plan/department/previous\");\n\nexport const scrollDepartmentPlanNext = createAction(\"plan/department/next\");\n\nexport const resetDeparmentPlanData = createAction(\"plan/department/reset\");\n","import moment from \"moment\";\nimport { SerializedInterval, IPlanTimelineInterval } from \"../../../model/plan/types\";\nimport { Color } from \"../../../model/Color\";\nimport { deserialize } from \"../shared/deserialize\";\nimport { resolveTitle } from \"../shared/resolveTitle\";\n\nexport function transformDataForTimeline(intrs: SerializedInterval[]): IPlanTimelineInterval[] {\n let id = 1;\n\n return deserialize(intrs)\n .map(intr => {\n const day = moment(new Date(intr.begin)).startOf(\"day\");\n const begin = moment(new Date(intr.begin));\n const end = moment(new Date(intr.end));\n\n const base: IPlanTimelineInterval = {\n id: `${day.toDate().getTime()}.${id++}`,\n group: {\n id: intr.ownerID,\n stackID: (() => {\n switch (intr.type) {\n case \"IPODENSMEN\":\n return 1;\n case \"IPOPOH\":\n return 3;\n default:\n return 2;\n }\n })(),\n },\n title: resolveTitle(intr),\n day: day.toDate(),\n beginTime: begin.toDate(),\n endTime: intr.isAllDay ? end.set({ hour: 23, minute: 59, second: 59 }).toDate() : end.toDate(),\n style: {\n background:\n intr.type === \"IPODENSMEN\"\n ? new Color({ red: 255, green: 255, blue: 255, alpha: 1 }).toCSSRGBA()\n : Color.fromPbColor(intr.color).toCSSRGBA(),\n color:\n intr.type === \"IPODENSMEN\" && intr.color !== null\n ? Color.fromPbColor(intr.color).toCSSRGBA()\n : undefined,\n },\n layer: intr.type === \"IPOPREST\" ? 1 : undefined,\n parent: intr,\n };\n\n const intervalLen = end.clone().startOf(\"day\").diff(begin.clone().startOf(\"day\"), \"day\") + 1;\n\n if (intervalLen > 1) {\n var result = [];\n const firstDay = begin.clone().startOf(\"day\");\n for (let i = 0; i < intervalLen; i++) {\n var currentDay = firstDay.clone().add(i, \"day\");\n var style;\n if (i === 0) {\n style = {\n ...base.style,\n borderRight: \"none\",\n };\n } else if (i === intervalLen - 1) {\n style = {\n ...base.style,\n borderLeft: \"none\",\n };\n } else {\n style = {\n ...base.style,\n borderRight: \"none\",\n borderLeft: \"none\",\n };\n }\n result.push({\n ...base,\n id: `${day.toDate().getTime()}.${id++}`,\n day: currentDay.toDate(),\n beginTime: i === 0 ? begin.toDate() : currentDay.toDate(),\n endTime: i === intervalLen - 1 ? end.toDate() : currentDay.clone().endOf(\"day\").toDate(),\n style: style,\n });\n }\n return result;\n } else return [base];\n })\n .flat();\n}\n","import React from \"react\";\nimport { IColumnConfig } from \"../types\";\n\ninterface IMarkerProps {\n column: IColumnConfig;\n timeout?: number;\n}\n\ninterface IState {\n now: Date;\n}\n\nexport class NowColumnMarker extends React.Component {\n private readonly SECONDS_PER_PERCENT = 100 / (24 * 60 * 60);\n\n private intervalID?: number;\n\n constructor(props: IMarkerProps) {\n super(props);\n\n if (props.column.beginDay.getTime() > props.column.endDay.getTime())\n throw new Error(\"Begin time have to be lower then end time.\");\n\n this.state = {\n now: new Date(),\n };\n }\n\n componentDidMount() {\n this.intervalID = setInterval(() => {\n this.setState({\n now: new Date(),\n });\n }, this.props.timeout ?? 10000) as unknown as number;\n }\n\n componentWillUnmount() {\n clearInterval(this.intervalID);\n }\n\n public render = () => {\n const now = this.state.now;\n const begin = this.props.column.beginDay;\n const end = this.props.column.endDay;\n\n if (now.getTime() < begin.getTime() || now.getTime() > end.getTime()) return null;\n\n const actual = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds();\n\n const percent = this.SECONDS_PER_PERCENT * actual;\n\n return (\n \n );\n };\n}\n","import { DisplayMode } from \"./DepartmentPlan\";\n\nexport function parseDisplayMode(raw: number): DisplayMode {\n if (isNaN(raw)) return 1;\n\n if ([1, 3, 7].every(p => p !== raw)) return 1;\n\n return raw as DisplayMode;\n}\n","import React from \"react\";\nimport { Button, ButtonProps } from \"@progress/kendo-react-buttons\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\nimport { useStrings } from \"../../../hooks/useStrings\";\n\nexport const SelectedCenterButton = React.forwardRef((props, ref) => {\n const strings = useStrings();\n const center = useAppSelector(s => s.session.centerPicker.selected);\n return (\n \n );\n});\n","import { AppThunkAction } from \"../../../model/redux/AppThunkAction\";\nimport { VENDOR, APP_NAME } from \"../../../constants/common\";\n\nexport function buildKey(key: string): AppThunkAction {\n return (dispatch, getState) => {\n const parts: string[] = [`${VENDOR}.${APP_NAME}`, key];\n\n const user = getState().session.user;\n if (user.isAuthenticated && user.token?.sid) parts.push(user.token?.sid);\n\n return parts.join(\"|\");\n };\n}\n","import { AppThunkAction } from \"../../../model/redux/AppThunkAction\";\nimport { buildKey } from \"./buildKey\";\n\nexport function setItem(key: string, value: T): AppThunkAction {\n return dispatch => {\n const realKey = dispatch(buildKey(key));\n\n try {\n const json = JSON.stringify(value);\n localStorage.setItem(realKey, json);\n } catch (e) {\n console.error(e);\n }\n };\n}\n","import { AppThunkAction } from \"../../../model/redux/AppThunkAction\";\nimport { buildKey } from \"./buildKey\";\n\nexport function getItem(key: string): AppThunkAction {\n return (dispatch, getState) => {\n const realKey = dispatch(buildKey(key));\n\n try {\n const json = localStorage.getItem(realKey);\n\n if (json === null) return null;\n\n return JSON.parse(json);\n } catch (e) {\n console.error(e);\n }\n\n return null;\n };\n}\n","import { createAsyncThunk, createAction } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../reducers/root\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { ICenterLevelResult } from \"../../model/ICenterLevelResult\";\nimport { ICenter } from \"../../model/ICenter\";\nimport { AppThunkAction } from \"../../model/redux/AppThunkAction\";\nimport { setItem } from \"./localStorage/setItem\";\nimport { getItem } from \"./localStorage/getItem\";\n\nconst DOMAIN = \"picker/center\";\n\nexport const fetchCenterLevel = createAsyncThunk(\n `${DOMAIN}/level/fetch`,\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${api.getState().session.user.token?.access_token}`,\n },\n signal: api.signal,\n };\n\n const url = new URL(api.getState().config.config?.endpoint + \"/breeze/SelfService/CenterLevel\");\n url.searchParams.set(\"centerID\", arg ?? \"\");\n\n const response = await fetch(url.toString(), requestOptions);\n\n await handleResponseError(response);\n\n const partialResult = (await response.json()) as Partial;\n\n return {\n childrens: [],\n loaded: null,\n parents: [],\n ...partialResult,\n } as ICenterLevelResult;\n }\n);\n\nconst CENTER_ID_KEY = DOMAIN + \"/selected/id\";\n\nexport const selectCenter = createAction(`${DOMAIN}/select`);\n\nexport function selectCenterWithSave(center: ICenter): AppThunkAction {\n return dispatch => {\n dispatch(selectCenter(center));\n\n dispatch(setItem(CENTER_ID_KEY, center.id));\n };\n}\n\nconst INCLUDING_SUBCENTERS_KEY = DOMAIN + \"/includingSubcenters\";\n\nexport const includingSubcenters = createAction(`${DOMAIN}/subcenters/including`);\n\nexport function includeSubcentersWithSave(include: boolean): AppThunkAction {\n return dispatch => {\n dispatch(includingSubcenters(include));\n\n dispatch(setItem(INCLUDING_SUBCENTERS_KEY, include));\n };\n}\n\nexport const selectCategory = createAction(`${DOMAIN}/selectCategory`);\n\nexport function SelectedCategorySave(ixs_kat: number): AppThunkAction {\n return dispatch => {\n dispatch(selectCategory(ixs_kat));\n //dispatch(setItem(SELECTED_CATEGORY_KEY, ixs_kat));\n };\n}\n\nexport const resetCategory = createAction(`${DOMAIN}/resetCategory`);\n\nexport function ResetCategorySave(): AppThunkAction {\n return dispatch => {\n dispatch(resetCategory());\n };\n}\n\nexport function initialize(): AppThunkAction> {\n return async (dispatch, getState) => {\n const state = getState().session.centerPicker;\n\n if (state.isFetching || state.loadedCenter !== null) return;\n\n const include = dispatch(getItem(INCLUDING_SUBCENTERS_KEY)) ?? true;\n\n if (include !== null) dispatch(includingSubcenters(include));\n\n const centerID = dispatch(getItem(CENTER_ID_KEY));\n\n if (centerID !== null) {\n await dispatch(fetchCenterLevel(centerID));\n }\n\n if (getState().session.centerPicker.loadedCenter === null) {\n await dispatch(fetchCenterLevel(null));\n }\n };\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { IRootState } from \"../../reducers/root\";\nimport { handleResponseError } from \"../../../helpers/handleResponseError\";\nimport { IPOREFKAT } from \"../../reducers/dropdowns/categories\";\n\nconst DOMAIN = \"dropdowns/categories\";\n\nexport const fetchPossibleCategories = createAsyncThunk(\n `${DOMAIN}/fetchPossibleCategories`,\n async (arg, api) => {\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${api.getState().session.user?.token?.access_token}`,\n },\n body: JSON.stringify({\n Item1:\n api.getState().session.centerPicker.loadedCenter != null\n ? api.getState().session.centerPicker.loadedCenter!.id\n : \"0\",\n Item2: api.getState().session.centerPicker.includingSubcenters,\n }),\n signal: api.signal,\n };\n\n const action: string = \"/breeze/IpoData/SelfService_GetAvailableKats\";\n\n const response = await fetch(api.getState().config.config?.endpoint + action, requestOptions);\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n","import { DropDownList, DropDownListChangeEvent } from \"@progress/kendo-react-dropdowns\";\nimport React from \"react\";\nimport classes from \"./CategoriesPicker.module.scss\";\nimport { fetchPossibleCategories } from \"../../redux/actions/dropdowns/categories\";\nimport { IPOREFKAT } from \"../../redux/reducers/dropdowns/categories\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { resetCategory } from \"../../redux/actions/centerPicker\";\n\ninterface IOwnProps {\n onSelect?: (category: IPOREFKAT) => void;\n disabled?: boolean;\n}\n\ninterface IDispatchProps {\n onFetch: () => void;\n onResetCategory: () => void;\n}\n\ninterface IStateProps {\n strings: IStrings;\n categories: IPOREFKAT[];\n isFetching: boolean;\n}\n\ninterface IState {\n selectedCategory: number;\n}\n\ntype Props = IOwnProps & IDispatchProps & IStateProps;\n\nclass CategoriesPicker extends React.Component {\n private defaultItem: IPOREFKAT = { NAZEV_KAT: this.props.strings.common.AllCatsLabel, IXS_KAT: 0 };\n state = {\n selectedCategory: 0,\n };\n\n async componentDidMount() {\n this.props.onResetCategory && this.props.onResetCategory();\n }\n\n private handleChange(e: DropDownListChangeEvent): void {\n const cat = e.value as IPOREFKAT;\n this.setState({ selectedCategory: cat.IXS_KAT || 0 });\n this.props.onSelect && this.props.onSelect(cat);\n }\n\n public render() {\n return (\n
\n
\n \n
\n this.handleChange(change)}\n onOpen={() => this.props.onFetch && this.props.onFetch()}\n />\n
\n
\n
\n );\n }\n}\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n categories: state.session.categories.categories,\n isFetching: state.session.categories.isFetching,\n }),\n {\n onFetch: () => fetchPossibleCategories(),\n onResetCategory: () => resetCategory(),\n }\n)(CategoriesPicker);\n","import React, { useEffect, PropsWithChildren } from \"react\";\nimport { fetchCenterLevel, initialize, includeSubcentersWithSave, selectCategory } from \"../redux/actions/centerPicker\";\nimport { SpinnerBox } from \"./Spinner/SpinnerBox\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { List, ListItem } from \"@material-ui/core\";\nimport classes from \"./CenterPicker.module.scss\";\nimport { selectStrings } from \"../redux/selectors/selectStrings\";\nimport { useAppDispatch } from \"../hooks/useAppDispatch\";\nimport { useAppSelector } from \"../hooks/useAppSelector\";\nimport { Checkbox } from \"@progress/kendo-react-inputs\";\nimport { useStrings } from \"../hooks/useStrings\";\nimport CategoriesPicker from \"./CategoriesPicker/CategoriesPicker\";\nimport PermissionGuard from \"./PermissionGuard\";\nimport { permissions } from \"../constants/permissions\";\n\ninterface IProps {\n isPresence?: boolean;\n}\n\nexport function CenterPicker(props: IProps) {\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n dispatch(initialize());\n }, [dispatch]);\n\n return (\n
\n
\n \n \n \n \n
\n \n \n {!props.isPresence && dispatch(selectCategory(e.IXS_KAT))} />}\n \n
\n );\n}\n\nfunction CheckboxContainer(props: PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nfunction IncludingSubcentersCheckbox() {\n const dispatch = useAppDispatch();\n const includingSubcenters = useAppSelector(s => s.session.centerPicker.includingSubcenters);\n const strings = useStrings();\n return (\n dispatch(includeSubcentersWithSave(!includingSubcenters))}\n label={strings.centerPicker.IncludingSubcenters}\n />\n );\n}\n\nfunction Navigation() {\n const dispatch = useAppDispatch();\n const actual = useAppSelector(s => s.session.centerPicker.loadedCenter);\n const parents = useAppSelector(s => s.session.centerPicker.parents);\n const isLoading = useAppSelector(s => s.session.centerPicker.isFetching);\n return (\n
\n \n ))}\n \n
\n );\n}\n\nfunction Header(props: PropsWithChildren<{}>) {\n return
{props.children}
;\n}\n\nfunction Body() {\n const dispatch = useAppDispatch();\n const childrens = useAppSelector(s => s.session.centerPicker.childrens);\n const isLoading = useAppSelector(s => s.session.centerPicker.isFetching);\n const strings = useAppSelector(selectStrings);\n\n return isLoading ? (\n \n ) : (\n \n {childrens.length > 0 ? (\n childrens.map(child => (\n dispatch(fetchCenterLevel(child.id))}\n >\n {child.name}\n \n ))\n ) : (\n {strings.centerPicker.NoSubcenters}!\n )}\n \n );\n}\n","import React from \"react\";\nimport { ICenter } from \"../model/ICenter\";\nimport { IRootState } from \"../redux/reducers/root\";\nimport { useSelector } from \"react-redux\";\nimport { selectStrings } from \"../redux/selectors/selectStrings\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { CenterPicker } from \"./CenterPicker\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { useAppDispatch } from \"../hooks/useAppDispatch\";\nimport { selectCenterWithSave } from \"../redux/actions/centerPicker\";\nimport classes from \"./CenterPickerDialog.module.scss\";\nimport { useAppSelector } from \"../hooks/useAppSelector\";\n\ninterface IProps {\n onClose?: () => void;\n onConfirm?: (center: ICenter, includingSubcenters: boolean) => void;\n isPresence?: boolean;\n}\n\nexport function CenterPickerDialog(props: IProps) {\n const dispatch = useAppDispatch();\n const center = useSelector(s => s.session.centerPicker.loadedCenter);\n const strings = useSelector(selectStrings);\n const includingSubcenters = useAppSelector(s => s.session.centerPicker.includingSubcenters);\n\n function handleConfirmButtonClick() {\n if (center === null) return;\n\n dispatch(selectCenterWithSave(center));\n props.onConfirm && props.onConfirm(center, includingSubcenters);\n }\n\n return (\n \n \n \n \n \n \n \n );\n}\n","import React from \"react\";\nimport { Notification } from \"@progress/kendo-react-notification\";\nimport { useStrings } from \"../../../hooks/useStrings\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\n\nexport function TooMuchPersonsWarning() {\n const strings = useStrings();\n const centerName = useAppSelector(s => s.session.centerPicker.selected?.name ?? \"\");\n const includingSubcenters = useAppSelector(s => s.session.centerPicker.includingSubcenters);\n const max = useAppSelector(s => s.session.plan.department.maxAllowedPersonsCount);\n\n const _0 =\n centerName + (includingSubcenters ? `, ${strings.centerPicker.IncludingSubcenters.toLocaleLowerCase()}` : \"\");\n return (\n \n {strings.plan.Msg_TooMuchPersons.replace(\"{0}\", _0).replace(\"{1}\", max.toString())}\n \n );\n}\n","import React from \"react\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\nimport { TooltipProps, Tooltip } from \"@material-ui/core\";\n\ntype Props = Omit;\n\nexport function SelectedCenterTooltip(props: Props) {\n const centerName = useAppSelector(s => s.session.centerPicker.selected?.name ?? \"\");\n\n return ;\n}\n","import React, { memo, PropsWithChildren } from \"react\";\nimport { PageLayout } from \"../../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../../components/NavBar/NavBar\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../../redux/reducers/root\";\nimport { IStrings } from \"../../../constants/languageStrings/IStrings\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport Timeline from \"../../../components/Timeline/Timeline\";\nimport { ILanguage } from \"../../../model/localization/ILanguage\";\nimport NavbarDayPicker from \"../../../components/NavbarDayPicker/NavbarDayPicker\";\nimport { resolveAccounts } from \"../shared/resolveAccounts\";\nimport { Popup, Offset } from \"@progress/kendo-react-popup\";\nimport { Menu, MenuItem, MenuSelectEvent } from \"@progress/kendo-react-layout\";\nimport IntervalDetailDialog from \"../shared/IntervalDetailDialog\";\nimport { IPlanTimelineInterval, IAccount } from \"../../../model/plan/types\";\nimport { IBaseMenuItem } from \"../../../components/NavBar/IBaseMenuItem\";\nimport {\n fetchDepartmentPlanData,\n fetchDepartmentPlanDataIntervals,\n fetchDepartmentPlanDataIntervalsNextRecalculate,\n fetchDepartmentPlanDataIntervalsPreviousRecalculate,\n fetchDepartmentPlanDataIntervalsRecalculate,\n fetchDepartmentPlanDataNextIntervals,\n fetchDepartmentPlanDataPreviousIntervals,\n fetchDepartmentPlanNextData,\n fetchDepartmentPlanPreviousData,\n resetDeparmentPlanData,\n scrollDepartmentPlanNext,\n scrollDepartmentPlanPrevious,\n} from \"../../../redux/actions/plan/department\";\nimport { formatDate } from \"@telerik/kendo-intl\";\nimport { IPerson } from \"../../../model/plan/IPerson\";\nimport { IGroup, IColumnConfig } from \"../../../components/Timeline/types\";\nimport { transformDataForTimeline } from \"./transformation\";\nimport Accounts from \"../shared/Accounts\";\nimport moment from \"moment\";\nimport classes from \"./DepartmentPlan.module.scss\";\nimport { NowColumnMarker } from \"../../../components/Timeline/markers/NowColumnMarker\";\nimport { parseDisplayMode } from \"./parseDisplayMode\";\nimport { SpinnerBox } from \"../../../components/Spinner/SpinnerBox\";\nimport { Tooltip } from \"@material-ui/core\";\nimport ReactDOM from \"react-dom\";\nimport { SelectedCenterButton } from \"./SelectedCenterButton\";\nimport { AppDispatch } from \"../../..\";\nimport { initialize as initializeCenterPicker } from \"../../../redux/actions/centerPicker\";\nimport { CenterPickerDialog } from \"../../../components/CenterPickerDialog\";\nimport { TooMuchPersonsWarning } from \"./TooMuchPersonsWarning\";\nimport { SelectedCenterTooltip } from \"./SelectedCenterTooltip\";\nimport { useAppSelector } from \"../../../hooks/useAppSelector\";\nimport { ErrorNotification } from \"../../../components/ErrorNotification\";\nimport { IAbortable } from \"../../../model/IAbortable\";\nimport { WindowClickListener } from \"../../../components/WindowClickListener\";\nimport { IDepartmentPage } from \"../../../redux/reducers/plan/department\";\nimport SwipeableViews from \"react-swipeable-views\";\nimport { SlideRenderProps, virtualize } from \"react-swipeable-views-utils\";\n\nconst BASE_KEY = \"ANeT/SelfService/plan/department\";\nconst DISPLAY_MODE_KEY = BASE_KEY + \"/displayMode\";\nconst SELECTED_DAY_KEY = BASE_KEY + \"/selectedDay\";\nconst FETCH_COUNT_PRIMARY = 15;\nconst FETCH_COUNT_SECONDARY = 40;\n\n/** 1-denní, 3-denní, 7-denní */\nexport type DisplayMode = 1 | 3 | 7;\n\ninterface IDepartmentPlanTimelineGroup extends IGroup {\n person: IPerson;\n}\n\nenum EDialog {\n None,\n IntervalDetail,\n CenterPicker,\n}\n\ninterface IState {\n selectedDay: Date;\n displayMode: DisplayMode;\n visibleDialog: EDialog;\n /** For future shift interval */\n contextMenu: {\n visible: boolean;\n offset?: Offset;\n };\n lastClickedInterval?: IPlanTimelineInterval;\n lastClickedGroup?: IDepartmentPlanTimelineGroup;\n index: number;\n}\n\ninterface IDispatchProps {\n dispatch: AppDispatch;\n onFetchData: (e: { from: Date; to: Date }) => IAbortable;\n onFetchDataIntervals: (e: { from: Date; to: Date; ixsRefs: string[] }) => IAbortable;\n onFetchDataIntervalsRecalculated: (e: { from: Date; to: Date; ixsRefs: string[] }) => IAbortable;\n onFetchDataPrevious: (e: { from: Date; to: Date }) => IAbortable;\n onFetchDataPreviousIntervals: (e: { from: Date; to: Date; ixsRefs: string[] }) => IAbortable;\n onFetchDataPreviousIntervalsRecalculated: (e: { from: Date; to: Date; ixsRefs: string[] }) => IAbortable;\n onFetchDataNext: (e: { from: Date; to: Date }) => IAbortable;\n onFetchDataNextIntervals: (e: { from: Date; to: Date; ixsRefs: string[] }) => IAbortable;\n onFetchDataNextIntervalsRecalculated: (e: { from: Date; to: Date; ixsRefs: string[] }) => IAbortable;\n onResetData: () => void;\n onScrollPrevious: () => void;\n onScrollNext: () => void;\n}\n\ninterface IPageProps {\n intervals: IPlanTimelineInterval[];\n accounts: IAccount[];\n shouldFetchNext: boolean;\n publicHolidays: Date[];\n groups: IDepartmentPlanTimelineGroup[];\n fetchedIDs: string[];\n recalculatedIDs: string[];\n persons: IPerson[];\n loaded: boolean;\n isLoading: boolean;\n date?: string;\n}\n\ninterface IStateProps {\n previousPage: IPageProps;\n currentPage: IPageProps;\n nextPage: IPageProps;\n strings: IStrings;\n language: ILanguage;\n}\n\ntype IProps = IStateProps & IDispatchProps & RouteChildrenProps;\n\nconst VirtualizeSwipeableViews = virtualize(SwipeableViews);\n\nclass DepartmentPlan extends React.Component {\n private abortable: IAbortable | undefined;\n\n constructor(props: IProps) {\n super(props);\n\n const timestamp = Date.parse(localStorage.getItem(SELECTED_DAY_KEY) ?? \"\");\n const now = new Date(!isNaN(timestamp) ? timestamp : new Date());\n\n this.state = {\n selectedDay: new Date(now.getFullYear(), now.getMonth(), now.getDate()),\n displayMode: parseDisplayMode(parseInt(localStorage.getItem(DISPLAY_MODE_KEY) ?? \"\")),\n visibleDialog: EDialog.None,\n contextMenu: {\n visible: false,\n },\n index: 0,\n };\n }\n\n private resolveHoursMultiplier = (): number => {\n switch (this.state.displayMode) {\n case 1:\n return 2;\n case 3:\n return 6;\n case 7:\n return 12;\n default:\n return 24;\n }\n };\n\n private fetchData(): IAbortable {\n return this.props.onFetchData({\n from: this.state.selectedDay.addDays(-1), // needed due to multiday intervals\n to: this.state.selectedDay.addDays(this.state.displayMode - 1),\n });\n }\n\n private fetchDataPrevious(): IAbortable {\n return this.props.onFetchDataPrevious({\n from: this.state.selectedDay.addDays(-1 - this.state.displayMode), // needed due to multiday intervals\n to: this.state.selectedDay.addDays(this.state.displayMode - 1 - this.state.displayMode),\n });\n }\n\n private fetchDataNext(): IAbortable {\n return this.props.onFetchDataNext({\n from: this.state.selectedDay.addDays(-1 + this.state.displayMode), // needed due to multiday intervals\n to: this.state.selectedDay.addDays(this.state.displayMode - 1 + this.state.displayMode),\n });\n }\n\n private createMenuItems = () => {\n const strings = this.props.strings;\n return [\n { id: 1, content: strings.common.Day },\n { id: 3, content: strings.plan.N3Days },\n { id: 7, content: strings.plan.Week },\n ] as IBaseMenuItem[];\n };\n\n private createContextMenuItems = () => {\n const strings = this.props.strings;\n const items = [{ id: 1, text: strings.plan.DetailPlan }];\n\n return items;\n };\n\n private createColumnsConfig = (shift?: -1 | 1) => {\n const columns: IColumnConfig[] = [];\n\n for (let i = 0; i < this.state.displayMode; i++) {\n const day = this.state.selectedDay.addDays(i + (shift ?? 0) * this.state.displayMode);\n const endOfDay = moment(day).endOf(\"day\").toDate();\n columns.push({\n id: `${day.getTime()}:${this.state.displayMode}`,\n beginDay: day,\n endDay: endOfDay,\n });\n }\n\n return columns;\n };\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n case 1:\n case 3:\n case 7:\n this.setState(prevState => {\n const displayMode = parseDisplayMode(item.id as unknown as number);\n return {\n selectedDay: displayMode === 7 ? prevState.selectedDay.firstDayOfWeek() : prevState.selectedDay,\n displayMode: displayMode,\n };\n });\n break;\n default:\n item.id && console.warn(\"Unhandled value:\", item.id);\n }\n };\n\n private handleDayChange = (day: Date) => {\n this.setState(prevState => ({\n selectedDay: prevState.displayMode === 7 ? day.firstDayOfWeek() : day,\n }));\n this.props.onResetData();\n this.props.onFetchData(this.getParams());\n };\n\n private handleTimelineItemClick = (interval: IPlanTimelineInterval, group: IDepartmentPlanTimelineGroup) => {\n this.setState({\n visibleDialog: EDialog.IntervalDetail,\n lastClickedInterval: interval,\n lastClickedGroup: group,\n });\n };\n\n private handleTimelineItemContextMenu = (\n interval: IPlanTimelineInterval,\n group: IDepartmentPlanTimelineGroup,\n e: React.MouseEvent\n ) => {\n e.preventDefault();\n\n this.setState({\n contextMenu: {\n visible: true,\n offset: {\n left: e.clientX,\n top: e.clientY,\n },\n },\n lastClickedInterval: interval,\n lastClickedGroup: group,\n });\n };\n\n private handleContextMenuSelect = (e: MenuSelectEvent) => {\n switch (e.item.data) {\n case 1:\n this.setState({\n visibleDialog: EDialog.IntervalDetail,\n });\n break;\n default:\n console.warn(\"Unhandled value:\", e.item.data);\n }\n };\n\n private handleWindowClick = () =>\n this.setState({\n contextMenu: {\n visible: false,\n },\n });\n\n private handleDialogClose = () =>\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n private handleSelectedCenterButtonClick = () =>\n this.setState({\n visibleDialog: EDialog.CenterPicker,\n });\n\n private handleCenterPickerDialogConfirm = () => {\n this.handleDialogClose();\n this.props.onResetData();\n this.abortable = this.fetchData();\n };\n\n componentDidMount() {\n this.props.onResetData();\n this.props.dispatch(initializeCenterPicker()).then(() => (this.abortable = this.fetchData()));\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n if (this.state.selectedDay.getTime() !== prevState.selectedDay.getTime()) {\n localStorage.setItem(SELECTED_DAY_KEY, this.state.selectedDay.toISOStringIgnoringTZ());\n }\n if (this.state.displayMode !== prevState.displayMode) {\n localStorage.setItem(DISPLAY_MODE_KEY, JSON.stringify(this.state.displayMode));\n this.props.onResetData();\n this.abortable = this.fetchData();\n }\n\n if (this.props.currentPage.loaded && !this.props.currentPage.isLoading) {\n if (!this.props.nextPage.loaded && !this.props.nextPage.isLoading) {\n this.props.onFetchDataNext(this.getParams([], 1));\n } else if (!this.props.previousPage.loaded && !this.props.previousPage.isLoading) {\n this.props.onFetchDataPrevious(this.getParams([], -1));\n } else {\n let notFetched = this.notFetchedIxsRefs(this.props.currentPage, FETCH_COUNT_PRIMARY);\n let notRecalculated = this.notRecalculatedIxsRefs(this.props.currentPage, FETCH_COUNT_PRIMARY);\n if (this.props.currentPage.shouldFetchNext && notFetched.length > 0) {\n this.props.onFetchDataIntervals(this.getParams(notFetched));\n } else if (this.props.currentPage.shouldFetchNext && notRecalculated.length > 0) {\n this.props.onFetchDataIntervalsRecalculated(this.getParams(notRecalculated));\n } else if (notRecalculated.length === 0) {\n let notFetchedNext = this.notFetchedIxsRefs(this.props.nextPage, FETCH_COUNT_SECONDARY);\n let notRecalculatedNext = this.notRecalculatedIxsRefs(this.props.nextPage, FETCH_COUNT_SECONDARY);\n if (this.props.nextPage.shouldFetchNext && notFetchedNext.length > 0) {\n this.props.onFetchDataNextIntervals(this.getParams(notFetchedNext, 1));\n } else if (this.props.nextPage.shouldFetchNext && notRecalculatedNext.length > 0) {\n this.props.onFetchDataNextIntervalsRecalculated(this.getParams(notRecalculatedNext, 1));\n } else if (notRecalculatedNext.length === 0) {\n let notFetchedPrevious = this.notFetchedIxsRefs(this.props.previousPage, FETCH_COUNT_SECONDARY);\n let notRecalculatedPrevious = this.notRecalculatedIxsRefs(\n this.props.previousPage,\n FETCH_COUNT_SECONDARY\n );\n\n if (this.props.previousPage.shouldFetchNext && notFetchedPrevious.length > 0) {\n this.props.onFetchDataPreviousIntervals(this.getParams(notFetchedPrevious, -1));\n } else if (this.props.previousPage.shouldFetchNext && notRecalculatedPrevious.length > 0) {\n this.props.onFetchDataPreviousIntervalsRecalculated(\n this.getParams(notRecalculatedPrevious, -1)\n );\n }\n }\n }\n }\n }\n }\n\n notFetchedIxsRefs(page: IPageProps, maxCount: number) {\n return page.persons\n .map(m => m.id)\n .filter(f => !page.fetchedIDs.some(s => s === f))\n .slice(0, maxCount);\n }\n notRecalculatedIxsRefs(page: IPageProps, maxCount: number) {\n return page.persons\n .map(m => m.id)\n .filter(f => !page.recalculatedIDs.some(s => s === f))\n .slice(0, maxCount);\n }\n\n componentWillUnmount() {\n this.abortable?.abort();\n }\n\n pageLayout = memo(\n function pageLayout(props: {\n that: DepartmentPlan;\n dataSource: IPageProps;\n shift?: -1 | 1;\n displayMode: DisplayMode;\n }) {\n return (\n \n \n \n \n \n \n }\n >\n (\n \n \n \n \n \n )}\n groupSidebarCellContentRenderer={props => {\n const person = props.group.person;\n return (\n \n
\n
{person.name}
\n
{person.personalNumber}
\n
\n
\n );\n }}\n dayHeaderContentRenderer={innerProps => {\n const day = innerProps.column.beginDay;\n\n const isHoliday = props.dataSource.publicHolidays.some(\n s => s.getTime() === day.getTime()\n );\n\n const dayInWeek = day.getDay();\n const isBold = isHoliday || [0, 6].includes(dayInWeek); // Sobota nebo Neděle\n\n return (\n \n \n {formatDate(day, \"EEEEEE\", props.that.props.language.code)} \n \n {formatDate(day, \"m\", props.that.props.language.code)}\n \n );\n }}\n columnMarkerRenderer={props => }\n />\n
\n \n
\n \n
\n
\n );\n },\n (prev, next) => {\n if (prev.dataSource.isLoading !== next.dataSource.isLoading) return false;\n if (prev.dataSource.fetchedIDs.length !== next.dataSource.fetchedIDs.length) return false;\n if (prev.dataSource.recalculatedIDs.length !== next.dataSource.recalculatedIDs.length) return false;\n if (prev.dataSource.loaded !== next.dataSource.loaded) return false;\n if (prev.dataSource.date !== next.dataSource.date) return false;\n return true;\n }\n );\n\n getParams(ixsRefs?: string[], shift?: -1 | 0 | 1) {\n return {\n from: this.state.selectedDay.addDays(-1 + (shift ?? 0) * this.state.displayMode),\n to: this.state.selectedDay.addDays(this.state.displayMode - 1 + (shift ?? 0) * this.state.displayMode),\n ixsRefs: ixsRefs ?? [],\n };\n }\n\n private slideRenderer = (props: SlideRenderProps) => {\n const Layout = this.pageLayout;\n if (props.index < this.state.index) {\n return (\n
\n \n
\n );\n } else if (props.index > this.state.index) {\n return (\n
\n \n
\n );\n } else {\n return (\n
\n \n
\n );\n }\n };\n\n private scrollPrevious = () => {\n this.props.onScrollPrevious();\n const newDay = this.state.selectedDay.addDays(-this.state.displayMode);\n this.setState({ selectedDay: newDay });\n this.fetchDataPrevious();\n };\n\n private scrollNext = () => {\n this.props.onScrollNext();\n const newDay = this.state.selectedDay.addDays(this.state.displayMode);\n this.setState({ selectedDay: newDay });\n this.fetchDataNext();\n };\n\n public render() {\n return (\n \n {this.props.strings.plan.PlanName}\n \n {this.props.strings.dashboard.DepartmentPlan}\n \n \n }\n menu={{\n items: this.createMenuItems(),\n onItemClick: this.handleMenuItemClick,\n }}\n >\n {\n const displayMode = this.state.displayMode;\n let day = this.state.selectedDay;\n\n if (displayMode > 1) {\n if (displayMode === 7) day = day.firstDayOfWeek();\n\n const locale = this.props.language.code;\n return `${formatDate(day, \"m\", locale)} - ${formatDate(\n day.addDays(displayMode - 1),\n \"m\",\n locale\n )}`;\n }\n\n return null;\n }}\n />\n \n }\n >\n {\n this.setState({ index: index1 });\n if (index0 < index1) {\n this.scrollNext();\n } else {\n this.scrollPrevious();\n }\n }}\n />\n {ReactDOM.createPortal(\n \n \n \n \n {this.createContextMenuItems().map(item => (\n \n ))}\n \n \n \n {this.state.visibleDialog === EDialog.IntervalDetail && (\n \n )}\n {this.state.visibleDialog === EDialog.CenterPicker && (\n \n )}\n ,\n document.body\n )}\n \n );\n }\n}\n\nfunction getPageStata(page: IDepartmentPage | undefined, isLoading: boolean) {\n return {\n loaded: !!page,\n isLoading: isLoading,\n groups: mapPersons2TimelineGroups(page?.persons ?? []),\n intervals: transformDataForTimeline(page?.intervals ?? []),\n shouldFetchNext: !!page?.shouldFetchNext,\n accounts: resolveAccounts(page?.intervals ?? []),\n publicHolidays: page?.publicHolidays.map(s => new Date(s)) ?? [],\n fetchedIDs: page?.fetchedIDs ?? [],\n recalculatedIDs: page?.recalculatedIDs ?? [],\n persons: page?.persons ?? [],\n date: page?.date,\n };\n}\n\nexport default connect(\n state => ({\n previousPage: getPageStata(\n state.session.plan.department.previousPage,\n state.session.plan.department.isPreviousFetching\n ),\n currentPage: getPageStata(\n state.session.plan.department.currentPage,\n state.session.plan.department.isCurrentFetching\n ),\n nextPage: getPageStata(state.session.plan.department.nextPage, state.session.plan.department.isNextFetching),\n strings: state.localization.strings,\n language: state.localization.language,\n }),\n (dispatch: AppDispatch) => ({\n dispatch: dispatch,\n onFetchData: (e: { from: Date; to: Date }) => dispatch(fetchDepartmentPlanData(e)),\n onFetchDataIntervals: (e: { from: Date; to: Date; ixsRefs: string[] }) =>\n dispatch(fetchDepartmentPlanDataIntervals(e)),\n onFetchDataIntervalsRecalculated: (e: { from: Date; to: Date; ixsRefs: string[] }) =>\n dispatch(fetchDepartmentPlanDataIntervalsRecalculate(e)),\n onFetchDataPrevious: (e: { from: Date; to: Date }) => dispatch(fetchDepartmentPlanPreviousData(e)),\n onFetchDataPreviousIntervals: (e: { from: Date; to: Date; ixsRefs: string[] }) =>\n dispatch(fetchDepartmentPlanDataPreviousIntervals(e)),\n onFetchDataPreviousIntervalsRecalculated: (e: { from: Date; to: Date; ixsRefs: string[] }) =>\n dispatch(fetchDepartmentPlanDataIntervalsPreviousRecalculate(e)),\n onFetchDataNext: (e: { from: Date; to: Date }) => dispatch(fetchDepartmentPlanNextData(e)),\n onFetchDataNextIntervals: (e: { from: Date; to: Date; ixsRefs: string[] }) =>\n dispatch(fetchDepartmentPlanDataNextIntervals(e)),\n onFetchDataNextIntervalsRecalculated: (e: { from: Date; to: Date; ixsRefs: string[] }) =>\n dispatch(fetchDepartmentPlanDataIntervalsNextRecalculate(e)),\n onResetData: () => dispatch(resetDeparmentPlanData()),\n onScrollPrevious: () => dispatch(scrollDepartmentPlanPrevious()),\n onScrollNext: () => dispatch(scrollDepartmentPlanNext()),\n })\n)(DepartmentPlan);\n\nfunction mapPersons2TimelineGroups(persons: IPerson[]): IDepartmentPlanTimelineGroup[] {\n return persons.map(p => ({\n id: p.id,\n title: \"\",\n person: p,\n }));\n}\n\nfunction Loading(props: PropsWithChildren<{}>) {\n const isLoading = useAppSelector(\n s => s.session.plan.department.isCurrentFetching || s.session.centerPicker.isFetching\n );\n\n if (isLoading) {\n return ;\n }\n\n return <>{props.children};\n}\n\nfunction ErrorGuard(props: PropsWithChildren<{}>) {\n const error = useAppSelector(s => s.session.plan.department.error);\n\n if (error) {\n return ;\n }\n\n return <>{props.children};\n}\n\nfunction TooMuchPersonsGuard(props: PropsWithChildren<{ guarded?: React.ReactNode }>) {\n const tooMuchPersons = useAppSelector(s => !!s.session.plan.department.currentPage?.tooMuchPersons);\n\n if (tooMuchPersons) {\n return <>{props.guarded};\n }\n\n return <>{props.children};\n}\n","import React, { PropsWithChildren } from \"react\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\n\nfunction ConfigDownloading(props: PropsWithChildren<{}>) {\n const strings = useStrings();\n const isFetching = useAppSelector(s => s.config.isFetching);\n const error = useAppSelector(s => s.config.error);\n\n if (isFetching) {\n return {strings.app.ConfigurationDownloading + \"...\"};\n } else if (error) {\n return ;\n } else {\n return {props.children};\n }\n}\n\nexport default ConfigDownloading;\n","import React from \"react\";\nimport LanguageDropDown from \"../LanguageDropDown/LanguageDropDown\";\nimport styles from \"./AppHeader.module.css\";\nimport logoSource from \"../../assets/images/ANeT_Time_100x100.png\";\n\nexport function AppHeader() {\n return (\n
\n \"ANeT-SelfService\"\n
\n

\n ANeT\n
\n SelfService\n

\n
\n
\n \n
\n
\n );\n}\n","import React from \"react\";\nimport { APP_VERSION, COMMIT_HASH } from \"../../constants/common\";\nimport classes from \"./classes.module.scss\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\n\nexport default function AppFooter() {\n const infoText = useAppSelector(s => s.config.config.infoText);\n return (\n
\n {infoText}\n
\n Copyright © \n ANeT\n \n  {new Date().getFullYear()} ver.: {APP_VERSION}\n \n \n {process.env.REACT_APP_BUILD && build: {process.env.REACT_APP_BUILD}}\n
\n {COMMIT_HASH}\n
\n );\n}\n","import React, { PropsWithChildren } from \"react\";\nimport classes from \"./SlimPageLayout.module.scss\";\nimport { AppHeader } from \"../../components/AppHeader/AppHeader\";\nimport AppFooter from \"../../components/AppFooter/AppFooter\";\n\nexport function SlimPageLayout(props: PropsWithChildren<{}>) {\n return (\n
\n \n
{props.children}
\n \n
\n );\n}\n\nexport default SlimPageLayout;\n","import React, { useState, FormEvent, useEffect } from \"react\";\nimport { Checkbox, CheckboxChangeEvent, Input } from \"@progress/kendo-react-inputs\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport classes from \"./LogInForm.module.scss\";\nimport { fetchToken } from \"../../redux/actions/user\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { deleteSavedUser } from \"../../redux/actions/localStorage/deleteSavedUser\";\n\nconst BASE_KEY = \"ANeT/SelfService/login\";\nconst REMEMBERED_USERNAME_KEY = BASE_KEY + \"/user/username\";\nconst REMEMBERED_PASSWORD_KEY = BASE_KEY + \"/user/password\";\nconst REMEMBERED_CHECKBOX_KEY = BASE_KEY + \"/remember\";\n\nfunction LogInForm(props: { onCodeClear: () => void }) {\n const [username, setUsername] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [remember, setRemember] = useState(\n JSON.parse(localStorage.getItem(REMEMBERED_CHECKBOX_KEY) || \"false\") || false\n );\n const multiTenant = useAppSelector(s => s.app.multiTenant);\n\n useEffect(() => {\n const rememberedUsername = localStorage.getItem(REMEMBERED_USERNAME_KEY);\n if (rememberedUsername !== \"\" && rememberedUsername != null) {\n setUsername(rememberedUsername);\n }\n const rememberedPassword = localStorage.getItem(REMEMBERED_PASSWORD_KEY);\n if (rememberedPassword !== \"\" && rememberedPassword != null) {\n setPassword(rememberedPassword);\n }\n }, []);\n\n const dispatch = useAppDispatch();\n\n function handleFormSubmit(e: FormEvent) {\n e.preventDefault();\n if (remember) {\n localStorage.setItem(REMEMBERED_USERNAME_KEY, username);\n localStorage.setItem(REMEMBERED_PASSWORD_KEY, password);\n } else {\n deleteSavedUser();\n }\n localStorage.setItem(REMEMBERED_CHECKBOX_KEY, JSON.stringify(remember));\n\n dispatch(\n fetchToken({\n credentials: {\n username: username,\n password: password,\n },\n })\n );\n }\n\n const strings = useStrings();\n const isAuthenticating = useAppSelector(s => s.session.user.isAuthenticating);\n const handleCheck = (event: CheckboxChangeEvent) => setRemember(event.value);\n return (\n
\n
\n setUsername(event.value)}\n value={username}\n required={true}\n disabled={isAuthenticating}\n autoComplete=\"username\"\n />\n setPassword(event.value)}\n value={password}\n required={false}\n disabled={isAuthenticating}\n autoComplete=\"current-password\"\n />\n \n \n \n
\n \n {strings.login.Login}\n \n {multiTenant && (\n
\n {strings.login.CustomerCodeChange}\n
\n )}\n \n );\n}\n\nexport default LogInForm;\n","import React from \"react\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { ErrorNotificationText } from \"../../components/ErrorNotification\";\n\nexport function AuthErrorRenderer() {\n const error = useAppSelector(s => s.session.user.error);\n const multiTenant = useAppSelector(s => s.app.multiTenant);\n const strings = useStrings();\n\n function resolveErrorMsg(): string {\n const code = error?.code;\n\n if (code) {\n let tmpl: string = \"Chyba\";\n if (code === \"login_error_invalid_grant\")\n tmpl = multiTenant\n ? strings.login.login_error_invalid_grant_multitenant\n : strings.login.login_error_invalid_grant;\n else if (code === \"login_error_locked_account\") tmpl = strings.login.login_error_locked_account;\n else if (code === \"login_error_app_usage_not_allowed\" || code === \"login_error_invalid_permissions\")\n tmpl = strings.login.login_error_app_usage_not_allowed;\n else if (code === \"login_error_user_not_registered\") tmpl = strings.login.login_error_user_not_registered;\n else if (code === \"login_error_user_expired\") tmpl = strings.login.login_error_user_expired;\n else if (code === \"login_error_invalid_license\") tmpl = strings.app.Msg_AppDisabledByLicense;\n\n return tmpl?.replace(\"{0}\", error?.message ?? \"?\") ?? code;\n }\n\n return error?.message ?? \"?\";\n }\n\n return error ? : <>;\n}\n","import { Button } from \"@progress/kendo-react-buttons\";\nimport { Input } from \"@progress/kendo-react-inputs\";\nimport React, { useState } from \"react\";\nimport classes from \"./CustomerCodeForm.module.scss\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\n\nexport default function CustomerCodeForm(props: { code: string; onSetCode: (code: string) => void }) {\n const [code, setCode] = useState(props.code);\n const strings = useAppSelector(s => s.localization.strings);\n return (\n
props.onSetCode(code)}>\n
\n setCode(event.value)}\n value={code}\n required={true}\n />\n
\n \n
\n );\n}\n","import React, { useState } from \"react\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { DelegatedAuthStyle } from \"../../model/app/DelegatedAuthStyle\";\nimport LogInForm from \"./LogInForm\";\nimport { redirectToDelegatedAuth } from \"../../redux/actions/user\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { PanelBar, PanelBarItem } from \"@progress/kendo-react-layout\";\nimport { AuthErrorRenderer } from \"./AuthErrorRenderer\";\nimport CustomerCodeForm from \"./CustomerCodeForm\";\nimport { setCustomerCode } from \"../../redux/actions/app\";\nimport { LOCALSTORAGE_CUSTOMERCODE } from \"../../constants/common\";\n\nexport function AuthLayout() {\n const isDelegatedAuthEnabled = useAppSelector(s => s.app.isDelegatedAuthEnabled);\n const style = useAppSelector(s => s.app.delegatedAuthStyle);\n const customizableText = useAppSelector(s => s.app.delegatedAuthCustomizableText);\n const secondaryText = useAppSelector(s => s.app.secondaryCustomizableText);\n const dispatch = useAppDispatch();\n const strings = useStrings();\n const isAuthenticating = useAppSelector(s => s.session.user.isAuthenticating);\n const customerCode = useAppSelector(s => s.app.customerCode);\n const multiTenant = useAppSelector(s => s.app.multiTenant);\n const [codeValid, setCodeValid] = useState(customerCode !== \"\");\n\n if (multiTenant && !codeValid) {\n return (\n {\n localStorage.setItem(LOCALSTORAGE_CUSTOMERCODE, code);\n dispatch(setCustomerCode(code));\n setCodeValid(true);\n }}\n />\n );\n }\n\n if (!isDelegatedAuthEnabled || style === DelegatedAuthStyle.automaticRedirection) {\n return (\n <>\n setCodeValid(false)} />\n {secondaryText}\n
\n \n \n );\n }\n\n return (\n
\n {customizableText}\n dispatch(redirectToDelegatedAuth())}\n >\n {strings.login.Login}\n \n \n \n
\n setCodeValid(false)} />\n
\n \n
\n {secondaryText}\n
\n \n
\n );\n}\n","import React, { PropsWithChildren } from \"react\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\n\nexport function ServerChecking(props: PropsWithChildren<{}>) {\n const strings = useStrings();\n const isChecking = useAppSelector(s => s.app.isFetching);\n const error = useAppSelector(s => s.app.error);\n\n if (isChecking) {\n return {strings.app.ServerChecking + \" ...\"};\n }\n\n if (error) {\n return ;\n }\n\n return <>{props.children};\n}\n\nexport default ServerChecking;\n","import React, { PropsWithChildren } from \"react\";\nimport { ErrorNotificationText } from \"../../components/ErrorNotification\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\n\nexport function LicenseGuard(props: PropsWithChildren<{}>) {\n const isAppEnabled = useAppSelector(s => s.app.isEnabled);\n const strings = useStrings();\n\n if (!isAppEnabled) {\n return ;\n }\n\n return <>{props.children};\n}\n\nexport default LicenseGuard;\n","import React from \"react\";\nimport ConfigDownloading from \"./ConfigDownloading\";\nimport SlimPageLayout from \"./SlimPageLayout\";\nimport { AuthLayout } from \"./AuthLayout\";\nimport ServerChecking from \"./ServerChecking\";\nimport LicenseGuard from \"./LicenseGuard\";\n\nexport default function StartUp() {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { QueryParam3 } from \"../../model/CommonQueryParams\";\nimport { IPOCPT } from \"../../model/terminal/IPOCPT\";\nimport { IRootState } from \"../reducers/root\";\n\nconst DOMAIN = \"Terminal\";\n\nexport const fetchSecuredPassesDatasource = createAsyncThunk(\n `${DOMAIN}/fetchSecuredPassesDatasource`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n let lang: string =\n api.getState().localization.language.code === \"cs\" ? \"cs-CZ\" : api.getState().localization.language.code;\n let reqBody = {\n Value: lang,\n };\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(reqBody),\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/GetSecuredIpocptsForMobile\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n let result = await response.json();\n let noPass = {\n $id: -1,\n PRITOMNOST: -1,\n PRUCHOD_TERM: api.getState().localization.strings.terminals.NoPass,\n PRUCHOD_SMER: null,\n };\n result.unshift(noPass);\n return result;\n }\n);\n\nexport const insertPass = createAsyncThunk<{}, QueryParam3, { state: IRootState }>(\n `${DOMAIN}/insertPass`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(arg),\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/InsertNewIpoprtFromOnlineTerm\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n","import React from \"react\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport Geolocation from \"react-native-geolocation-service\";\nimport { IPOCPT, TerminalConfig } from \"../../model/terminal/IPOCPT\";\nimport { fetchSecuredPassesDatasource, insertPass } from \"../../redux/actions/terminal\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { IBaseMenuItem } from \"../../components/NavBar/IBaseMenuItem\";\nimport { DropDownList, DropDownListChangeEvent } from \"@progress/kendo-react-dropdowns\";\nimport styles from \"../Terminal/Terminal.module.scss\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { Slide } from \"@progress/kendo-react-animation\";\nimport { NotificationGroup, Notification } from \"@progress/kendo-react-notification\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { Input } from \"@progress/kendo-react-inputs\";\nimport { QueryParam3 } from \"../../model/CommonQueryParams\";\nimport { IPOPRT } from \"../../model/terminal/IPOPRT\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { permissions } from \"../../constants/permissions\";\nimport classNames from \"classnames\";\nimport { selectAuthIxsRef, selectIxsRef } from \"../../redux/selectors/selectIxsRef\";\n\nconst position = {\n top: 0,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n};\nclass Terminal extends React.Component {\n private timeUpdateIntervalID?: number;\n private timeOutId?: number;\n private isComponentMounted?: boolean;\n private locationTimeout?: NodeJS.Timer;\n\n defaultItem: IPOCPT = {\n PRUCHOD_TERM: this.props.strings.terminals.ChoosePass,\n PRITOMNOST: -1,\n PRUCHOD_SMER: 0,\n };\n constructor(props: IProps) {\n super(props);\n this.state = {\n dropdownVal: this.defaultItem,\n locatingDone: false,\n passToInsert: undefined,\n note: \"\",\n curTime: new Date().toLocaleString(),\n dialog: {\n settings: false,\n },\n notification: {\n visible: false,\n text: \"\",\n success: true,\n },\n };\n }\n\n private createMenuItems = () => {\n const strings = this.props.strings;\n const items: IBaseMenuItem[] = [{ id: 1, content: strings.terminals.Settings }];\n\n return items;\n };\n\n private handleMenuItemClick = (item: IBaseMenuItem) => {\n switch (item.id) {\n case 1:\n this.openSettingsDialog();\n break;\n default:\n item.id && console.warn(\"Unhandled menu item: \", item);\n }\n };\n\n async openSettingsDialog() {\n let pomConfig: TerminalConfig = Object.create(this.state.oldConfig!);\n this.setState({\n dialog: {\n settings: true,\n },\n newConfig: pomConfig,\n });\n }\n\n async componentDidMount() {\n this.props.onLoadIpopts && (await this.props.onLoadIpopts());\n let buttonsConf: TerminalConfig | null = this.convertToConfiguration(\n localStorage.getItem(\"terminalConfiguration\")\n );\n this.setState({ oldConfig: buttonsConf });\n this.timeUpdateIntervalID = setInterval(() => {\n this.setState({\n curTime: new Date().toLocaleString(),\n });\n }, 1000) as unknown as number;\n if (this.props.isGPSPositionAllowed && window.isSecureContext) {\n this.generateGPS();\n } else {\n this.setState({ locatingDone: true });\n }\n this.isComponentMounted = true;\n }\n\n componentWillUnmount() {\n clearInterval(this.timeUpdateIntervalID);\n clearTimeout(this.timeOutId);\n this.isComponentMounted = false;\n }\n\n public ConfigConvertToString(input: TerminalConfig | null): string {\n if (input !== null) {\n return JSON.stringify(input);\n }\n return \"\";\n }\n\n public getGPSLocationString(): string {\n return this.state.position != null\n ? this.state.position.lat.toString().substring(0, 11) +\n \",\" +\n this.state.position.lng.toString().substring(0, 11)\n : \"\";\n }\n\n public convertToConfiguration(input: string | null): TerminalConfig {\n if (input === \"\" || input === null) {\n let config: TerminalConfig = {\n button1: this.props.data.find(ipo => ipo.PRITOMNOST === 1),\n button2: this.props.data.find(ipo => ipo.PRITOMNOST === 21),\n };\n return config;\n } else {\n let config: TerminalConfig = this.ControlConfigPermissions(JSON.parse(input));\n\n config.button1 = this.props.data.find(ipo => ipo.PRITOMNOST === 1);\n config.button2 = this.props.data.find(ipo => ipo.PRITOMNOST === 21);\n return config;\n }\n }\n\n private ControlConfigPermissions(savedConfig: TerminalConfig): TerminalConfig {\n savedConfig.button3 = this.props.data.some(ipo => ipo.PRITOMNOST === savedConfig.button3?.PRITOMNOST)\n ? savedConfig.button3\n : undefined;\n savedConfig.button4 = this.props.data.some(ipo => ipo.PRITOMNOST === savedConfig.button4?.PRITOMNOST)\n ? savedConfig.button4\n : undefined;\n savedConfig.button5 = this.props.data.some(ipo => ipo.PRITOMNOST === savedConfig.button5?.PRITOMNOST)\n ? savedConfig.button5\n : undefined;\n savedConfig.button6 = this.props.data.some(ipo => ipo.PRITOMNOST === savedConfig.button6?.PRITOMNOST)\n ? savedConfig.button6\n : undefined;\n return savedConfig;\n }\n\n async onDialogClose(operation: number): Promise {\n if (operation === 1) {\n let config: TerminalConfig = this.state.oldConfig!;\n config.button1 = this.props.data.find(ipo => ipo.PRITOMNOST === 1);\n config.button2 = this.props.data.find(ipo => ipo.PRITOMNOST === 21);\n config.button3 =\n this.state.newConfig !== null && this.state.newConfig?.button3 !== null\n ? this.state.newConfig?.button3\n : undefined;\n config.button4 =\n this.state.newConfig !== null && this.state.newConfig?.button4 !== null\n ? this.state.newConfig?.button4\n : undefined;\n config.button5 =\n this.state.newConfig !== null && this.state.newConfig?.button5 !== null\n ? this.state.newConfig?.button5\n : undefined;\n config.button6 =\n this.state.newConfig !== null && this.state.newConfig?.button6 !== null\n ? this.state.newConfig?.button6\n : undefined;\n\n let pomConfig: TerminalConfig = JSON.parse(JSON.stringify(config));\n localStorage.setItem(\"terminalConfiguration\", this.ConfigConvertToString(pomConfig));\n this.setState({\n dialog: {\n settings: false,\n },\n oldConfig: pomConfig,\n });\n } else {\n this.setState({\n dialog: {\n settings: false,\n },\n });\n }\n }\n\n handleChange = (e: DropDownListChangeEvent, i: number) => {\n let config: TerminalConfig = this.state.newConfig!;\n const value = e.target.value.$id > -1 ? e.target.value : undefined;\n if (i === 3) config.button3 = value;\n if (i === 4) config.button4 = value;\n if (i === 5) config.button5 = value;\n if (i === 6) config.button6 = value;\n this.setState({\n newConfig: config,\n });\n };\n\n private getButtonStyle(direction: number | null | undefined): string {\n if (direction == null) return styles.grayColor;\n return direction === 1 ? styles.greenColor : direction === 2 ? styles.redColor : styles.grayColor;\n }\n\n public setColorClassNameBasedOnValue(config: TerminalConfig | undefined | null, index: number): string {\n if (config != null) {\n return index === 3\n ? config.button3?.PRUCHOD_SMER === 2\n ? styles.redColor\n : config.button3?.PRUCHOD_SMER === 1\n ? styles.greenColor\n : \"\"\n : index === 4\n ? config.button4?.PRUCHOD_SMER === 2\n ? styles.redColor\n : config.button4?.PRUCHOD_SMER === 1\n ? styles.greenColor\n : \"\"\n : index === 5\n ? config.button5?.PRUCHOD_SMER === 2\n ? styles.redColor\n : config.button5?.PRUCHOD_SMER === 1\n ? styles.greenColor\n : \"\"\n : index === 6\n ? config.button6?.PRUCHOD_SMER === 2\n ? styles.redColor\n : config.button6?.PRUCHOD_SMER === 1\n ? styles.greenColor\n : \"\"\n : \"\";\n }\n return \"\";\n }\n\n public generateGPS(): void {\n Geolocation.getCurrentPosition(\n position => {\n if (this.isComponentMounted) {\n this.setState({\n position: {\n lat: position.coords.latitude,\n lng: position.coords.longitude,\n },\n locatingDone: true,\n });\n if (this.state.passToInsert) {\n this.insertPass(this.state.passToInsert);\n }\n }\n },\n error => {\n // See error code charts below.\n console.log(error.code, error.message);\n if (this.isComponentMounted) {\n this.setState({ locatingDone: true });\n if (this.state.passToInsert) {\n this.insertPass(this.state.passToInsert);\n }\n }\n return error.code;\n },\n { enableHighAccuracy: true, timeout: 15000, maximumAge: 10000 }\n );\n }\n\n public insertPass(pass: IPOCPT | null | undefined) {\n if (this.state.locatingDone) {\n if (this.locationTimeout) clearTimeout(this.locationTimeout);\n this.setState({ passToInsert: undefined });\n this.generateGPSAndInsertPass(pass);\n } else {\n this.setState({ passToInsert: pass });\n this.locationTimeout = setTimeout(() => {\n this.setState({ passToInsert: undefined });\n this.generateGPSAndInsertPass(pass);\n }, 5000);\n }\n }\n\n public async generateGPSAndInsertPass(pass: IPOCPT | null | undefined) {\n if (pass != null) {\n let ipoprt: IPOPRT = {\n IXS_REF: this.props.ixsRef ? this.props.ixsRef : \"\",\n IXS_REF_ZMENA: this.props.authIxsRef ? this.props.authIxsRef : \"\",\n PRITOMNOST: pass.PRITOMNOST,\n CAS: new Date(),\n TERMINAL: -3,\n PLATNOST: 1,\n POZNAMKA: this.state.note,\n GPS: this.getGPSLocationString(),\n };\n let prt: QueryParam3 = { Value: JSON.stringify(ipoprt) };\n await this.props.onInsertPass(prt);\n let notify: string = \"\";\n let success: boolean = true;\n if (this.props.insertResult) {\n notify =\n this.props.lang.code === \"en\"\n ? pass.PRUCHOD_TERM + \" \" + this.props.strings.terminals.NotificationEnText\n : this.props.strings.terminals.NotificationText + \" \" + pass.PRUCHOD_TERM;\n } else {\n notify = this.props.strings.terminals.NotificationErrorText;\n success = false;\n }\n this.setState({\n notification: {\n visible: true,\n text: notify,\n success: success,\n },\n note: \"\",\n });\n this.timeOutId = setTimeout(() => {\n this.setState({ notification: { visible: false } });\n }, 3000) as unknown as number;\n }\n }\n\n public handleDropdownChange = (event: DropDownListChangeEvent) => {\n if ((event.value as IPOCPT).PRITOMNOST !== -1) {\n this.insertPass(event.value);\n this.setState({ dropdownVal: this.defaultItem });\n }\n };\n\n public render() {\n return (\n \n \n \n }\n >\n \n \n {this.state.notification.visible && (\n this.setState({ notification: { visible: false } })}\n >\n {this.state.notification.text}\n \n )}\n \n \n\n {this.props.isFetchingPasses || this.props.isFetchingResult || this.state.passToInsert ? (\n \n ) : (\n <>\n {this.props.passesFetchError ? (\n \n ) : (\n
\n \n
\n {this.state.oldConfig != null && this.state.oldConfig.button1 != null && (\n \n this.insertPass(\n this.state.oldConfig != null ? this.state.oldConfig.button1 : null\n )\n }\n >\n {this.state.oldConfig != null && this.state.oldConfig.button1 != null\n ? this.state.oldConfig.button1.PRUCHOD_TERM\n : \"\"}\n \n )}\n {this.state.oldConfig != null && this.state.oldConfig.button2 != null && (\n \n this.insertPass(\n this.state.oldConfig != null ? this.state.oldConfig.button2 : null\n )\n }\n >\n {this.state.oldConfig != null && this.state.oldConfig.button2 != null\n ? this.state.oldConfig.button2.PRUCHOD_TERM\n : \"\"}\n \n )}\n
\n
\n \n this.insertPass(\n this.state.oldConfig != null ? this.state.oldConfig.button3 : null\n )\n }\n >\n {this.state.oldConfig != null && this.state.oldConfig.button3 != null\n ? this.state.oldConfig.button3.PRUCHOD_TERM\n : \"\"}\n \n \n this.insertPass(\n this.state.oldConfig != null ? this.state.oldConfig.button4 : null\n )\n }\n >\n {this.state.oldConfig != null && this.state.oldConfig.button4 != null\n ? this.state.oldConfig.button4.PRUCHOD_TERM\n : \"\"}\n \n
\n
\n \n this.insertPass(\n this.state.oldConfig != null ? this.state.oldConfig.button5 : null\n )\n }\n >\n {this.state.oldConfig != null && this.state.oldConfig.button5 != null\n ? this.state.oldConfig.button5.PRUCHOD_TERM\n : \"\"}\n \n \n this.insertPass(\n this.state.oldConfig != null ? this.state.oldConfig.button6 : null\n )\n }\n >\n {this.state.oldConfig != null && this.state.oldConfig.button6 != null\n ? this.state.oldConfig.button6.PRUCHOD_TERM\n : \"\"}\n \n
\n
\n \n
\n
\n this.setState({ note: e.value })}\n />\n
\n
\n )}\n \n )}\n {this.state.dialog.settings && (\n \n \n \n }\n width=\"100%\"\n closeIcon={false}\n className={styles.dialog}\n contentStyle={{ padding: \"1px\" }}\n >\n
\n
\n {this.state.newConfig != null && this.state.newConfig.button1 != null && (\n
\n \n
\n )}\n {this.state.newConfig != null && this.state.newConfig.button2 != null && (\n
\n \n
\n )}\n
\n
\n \n this.handleChange(change, 3)}\n >\n
\n \n this.handleChange(change, 4)}\n >\n
\n \n
\n \n this.handleChange(change, 5)}\n >\n
\n \n this.handleChange(change, 6)}\n >\n \n \n \n \n \n \n \n \n )}\n \n );\n }\n}\n\ninterface IOwnProps {\n data: IPOCPT[];\n insertResult: boolean;\n\n isFetchingPasses: boolean;\n isFetchingResult: boolean;\n\n isGPSPositionAllowed: boolean;\n\n passesFetchError: SerializedError;\n}\n\ninterface IStateProps {\n strings: IStrings;\n lang: ILanguage;\n ixsRef?: string;\n authIxsRef?: string;\n}\n\ninterface IState {\n position?: {\n lat: number;\n lng: number;\n };\n passToInsert: IPOCPT | null | undefined;\n locatingDone: boolean;\n curTime: string;\n note: string;\n dropdownVal: IPOCPT;\n oldConfig?: TerminalConfig | null;\n newConfig?: TerminalConfig | null;\n dialog: {\n settings: boolean;\n };\n notification: {\n visible: boolean;\n text?: string;\n success?: boolean;\n };\n}\n\ninterface IDispatchProps {\n onLoadIpopts: () => Promise;\n onInsertPass: (e: QueryParam3) => Promise;\n}\n\ntype IProps = IOwnProps & IStateProps & IDispatchProps & IState & RouteChildrenProps;\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n lang: state.localization.language,\n ixsRef: selectIxsRef(state),\n authIxsRef: selectAuthIxsRef(state),\n data: state.session.terminals.passes,\n insertResult: state.session.insertPass.result,\n\n isFetchingPasses: state.session.terminals.isFetching,\n isFetchingResult: state.session.insertPass.isFetching,\n\n isGPSPositionAllowed:\n !state.session.user.token?.userDisabledActions.some(p => p === permissions.terminal.gps) ?? false,\n\n passesFetchError: state.session.terminals.error,\n }),\n {\n onLoadIpopts: () => fetchSecuredPassesDatasource() as any,\n onInsertPass: (e: QueryParam3) => insertPass(e) as any,\n }\n)(Terminal);\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { LastPass } from \"../../model/terminal/IPOPRT\";\nimport { IRootState } from \"../reducers/root\";\n\nconst DOMAIN = \"LastPasses\";\n\nexport const fetchLastPasses = createAsyncThunk(\n `${DOMAIN}/fetchLastPasses`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SelfService_GetLastPasses\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n","export const dateOptions: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"numeric\",\n};\n\nexport const timeOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n};\n","import React, { useEffect } from \"react\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport { fetchLastPasses } from \"../../redux/actions/passesLoader\";\nimport styles from \"./LastPasses.module.scss\";\nimport { List, ListItem, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\nimport { LastPass } from \"../../model/terminal/IPOPRT\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { dateOptions, timeOptions } from \"../../constants/dates\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\n\nexport default function LastPasses() {\n const strings = useAppSelector(s => s.localization.strings);\n const lang = useAppSelector(s => s.localization.language);\n const rows = useAppSelector(s => s.session.lastPasses.passes);\n const isFetching = useAppSelector(s => s.session.lastPasses.isFetching);\n const error = useAppSelector(s => s.session.lastPasses.error);\n const dispatch = useAppDispatch();\n\n const getCorrectDateTimeFormat = (date: Date): string => {\n const datum: Date = new Date(date);\n return datum.toLocaleString(lang.code, dateOptions) + \" \" + datum.toLocaleTimeString(lang.code, timeOptions);\n };\n\n useEffect(() => {\n dispatch(fetchLastPasses());\n }, [dispatch]);\n\n const showPosition = (GPS: string | undefined): void => {\n if (GPS != null) {\n window.open(\"https://maps.google.com?q=\" + GPS);\n }\n };\n\n return (\n }\n >\n {isFetching ? (\n \n ) : (\n <>\n {error ? (\n \n ) : (\n \n {!rows?.length && }\n {/* řádky */}\n {rows?.map((row: LastPass, key: any) => (\n \n \n
\n \n \n
\n \n \n }\n secondary={row.Note && }\n />\n \n {row.GPS !== \"\" && row.GPS != null && (\n
\n showPosition(row.GPS)}\n iconClass=\"k-icon k-i-marker-pin-target\"\n >\n
\n )}\n
\n
\n ))}\n
\n )}\n \n )}\n \n );\n}\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\n\nexport type ErrorsVisibilityState = boolean;\n\nexport const errorsVisibilitySlice = createSlice({\n name: \"errors/visibility\",\n initialState: false as ErrorsVisibilityState,\n reducers: {\n set: (state, action: PayloadAction) => action.payload,\n },\n});\n","import React from \"react\";\nimport classes from \"./ErrorsButton.module.scss\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { errorsVisibilitySlice } from \"../../redux/slices/errorsVisibility\";\n\ninterface IStateProps {\n strings: IStrings;\n count: number;\n}\n\ninterface IDispatchProps {\n onClick: () => void;\n}\n\ntype Props = IStateProps & IDispatchProps;\n\nconst ErrorsButton = (props: Props) => (\n \n);\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n count: state.errors.list.length,\n }),\n dispatch => ({\n onClick: () => dispatch(errorsVisibilitySlice.actions.set(true)),\n })\n)(ErrorsButton);\n","import { Key } from \"react\";\nimport { SerializedError, createSlice, PayloadAction, Action } from \"@reduxjs/toolkit\";\n\nexport interface IErrorContainer {\n id: Key;\n action: string;\n error: SerializedError;\n}\n\nexport type ErrorsListState = IErrorContainer[];\n\nlet id = 1;\n\nexport const errorsListSlice = createSlice({\n name: \"errors/list\",\n initialState: [] as ErrorsListState,\n reducers: {\n add: {\n reducer: (state, action: PayloadAction) => [...state, action.payload],\n prepare: (action: PayloadAction) => ({\n payload: {\n id: id++,\n action: action.type,\n error: action.payload ?? action.error,\n } as IErrorContainer,\n }),\n },\n remove: (state, action: PayloadAction) => state.filter(p => p.id !== action.payload),\n removeAll: (state, action: Action) => [],\n },\n});\n","import React, { Key, useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Dialog, DialogActionsBar } from \"@progress/kendo-react-dialogs\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { errorsListSlice, IErrorContainer } from \"../../redux/slices/errorsList\";\nimport { List, ListItem, ListItemText, ListItemSecondaryAction, IconButton } from \"@material-ui/core\";\nimport { DeleteForever } from \"@material-ui/icons\";\nimport { Button } from \"@progress/kendo-react-buttons\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { errorsVisibilitySlice } from \"../../redux/slices/errorsVisibility\";\n\ninterface IStateProps {\n strings: IStrings;\n errors: IErrorContainer[];\n}\n\ninterface IDispatchProps {\n onClose: () => void;\n onRemove: (id: Key) => void;\n onRemoveAll: () => void;\n}\n\ntype Props = IStateProps & IDispatchProps;\n\nconst ErrorsDialog = (props: Props) => {\n const [lastCopyInfo, setLastCopyInfo] = useState<{ id: Key; text?: string } | undefined>();\n const [timeoutID, setTimeoutID] = useState(0);\n\n useEffect(() => () => clearTimeout(timeoutID), [timeoutID]);\n\n const handleListItemClick = (e: IErrorContainer) => {\n clearTimeout(timeoutID);\n const text = JSON.stringify(e, null, \"\\t\");\n\n if (window.isSecureContext) {\n navigator.clipboard\n .writeText(text)\n .then(() => {\n setLastCopyInfo({\n id: e.id,\n text: props.strings.debug.Msg_DetailsSuccessfullyCopiedIntoClipboard,\n });\n })\n .catch(reason => {\n console.error(reason);\n setLastCopyInfo({\n id: e.id,\n text: reason,\n });\n })\n .finally(() => {\n const id = setTimeout(() => setLastCopyInfo(undefined), 3000) as unknown as number;\n setTimeoutID(id);\n });\n } else if (!!document.execCommand) {\n unsecuredCopyToClipboard(text);\n setLastCopyInfo({\n id: e.id,\n text: props.strings.debug.Msg_DetailsSuccessfullyCopiedIntoClipboard,\n });\n const id = setTimeout(() => setLastCopyInfo(undefined), 3000) as unknown as number;\n setTimeoutID(id);\n }\n };\n\n function unsecuredCopyToClipboard(text: string) {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n try {\n document.execCommand(\"copy\");\n } catch (err) {\n console.error(\"Unable to copy to clipboard\", err);\n }\n document.body.removeChild(textArea);\n }\n\n return (\n \n \n {props.errors.map(e => (\n handleListItemClick(e)}>\n \n \n props.onRemove(e.id)}\n >\n \n \n \n \n ))}\n \n \n {\n props.onRemoveAll();\n props.onClose();\n }}\n >\n {`${props.strings.common.DeleteAll} & ${props.strings.common.Close}`}\n \n \n \n );\n};\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n errors: state.errors.list,\n }),\n dispatch => ({\n onClose: () => dispatch(errorsVisibilitySlice.actions.set(false)),\n onRemove: id => dispatch(errorsListSlice.actions.remove(id)),\n onRemoveAll: () => dispatch(errorsListSlice.actions.removeAll()),\n })\n)(ErrorsDialog);\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { useSelector } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport ErrorsButton from \"./ErrorsButton\";\nimport ErrorsDialog from \"./ErrorsDialog\";\n\nexport function ErrorsManager() {\n const isButtonVisible = useSelector(s => s.errors.list.length > 0);\n const isDialogVisible = useSelector(s => s.errors.areVisible);\n\n return ReactDOM.createPortal(\n <>\n {isButtonVisible && }\n {isDialogVisible && }\n ,\n document.body\n );\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport styles from \"./WorksheetState.module.scss\";\nimport { List, ListItem, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { WorkSheetMassRequestParams, WorkSheetStatesSelfServiceParams } from \"../../model/LeftPanelParams\";\nimport { fetchWorksheetStates } from \"../../redux/actions/worksheetState\";\nimport { DropDownList, DropDownListChangeEvent } from \"@progress/kendo-react-dropdowns\";\nimport NavbarMonthPicker from \"../../components/NavbarMonthPicker/NavbarMonthPicker\";\nimport { WorkSheetPersons } from \"../../model/IWorksheetState\";\nimport { Button, DropDownButton } from \"@progress/kendo-react-buttons\";\nimport { SelectedCenterTooltip } from \"../Plan/Department/SelectedCenterTooltip\";\nimport { SelectedCenterButton } from \"../Plan/Department/SelectedCenterButton\";\nimport { initialize as initializeCenterPicker } from \"../../redux/actions/centerPicker\";\nimport { CenterPickerDialog } from \"../../components/CenterPickerDialog\";\nimport { AppDispatch } from \"../..\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { TooMuchPersonNotification } from \"../../components/TooMuchPersonNotification\";\nimport { InternalMaxLimitParam } from \"../../constants/common\";\nimport PermissionGuard from \"../../components/PermissionGuard\";\nimport { permissions } from \"../../constants/permissions\";\nimport { IBaseMenuItem } from \"../../components/NavBar/IBaseMenuItem\";\n\nenum EDialog {\n None,\n CenterPicker,\n}\n\nconst param: WorkSheetStatesSelfServiceParams = {\n StartDate: new Date(2020, 4, 1),\n EndDate: new Date(2020, 4, 30),\n SelectedTab: \"tab-centers\",\n ActivePersonsOnly: true,\n ValidPersonsOnly: true,\n LoadUnconfirmed: false,\n LoadConfirmed: false,\n LoadOpened: false,\n LoadSigned: true,\n LoadApproved: false,\n LoadUnsigned: false,\n LoadAll: false,\n Kind: 1,\n};\n\nclass WorksheetState extends React.Component {\n constructor(props: IProps) {\n super(props);\n const now = new Date().addMonths(-1);\n this.state = {\n selectedMonth: now,\n visibleDialog: EDialog.None,\n };\n this.setDateIntoParam(now.getMonth(), now.getFullYear());\n }\n\n private options: string[] = [\n this.props.strings.worksheetStates.AllChosen,\n this.props.strings.worksheetStates.OnlyCreated,\n this.props.strings.worksheetStates.OnlyApprovedWS,\n this.props.strings.worksheetStates.OnlyConfirmed,\n this.props.strings.worksheetStates.OnlySigned,\n this.props.strings.worksheetStates.OnlySignedHandwritten,\n this.props.strings.worksheetStates.OnlyUnSigned,\n ];\n\n setDateIntoParam(actMonthNumber: number, actYear: number) {\n param.StartDate?.setMonth(actMonthNumber);\n param.StartDate?.setFullYear(actYear);\n param.EndDate = new Date(actYear, actMonthNumber + 1, 1, 0, 0, 0);\n }\n async componentDidMount() {\n this.SetAllOptionsFalse();\n param.LoadUnsigned = true;\n this.props\n .dispatch(initializeCenterPicker())\n .then(async () => this.props.onLoadStates && this.props.onLoadStates(param));\n }\n\n public handleMonthChange = (month: Date) => {\n this.setDateIntoParam(month.getMonth(), month.getFullYear());\n this.setState({ selectedMonth: month });\n this.props.onLoadStates && this.props.onLoadStates(param);\n };\n\n private SetAllOptionsFalse() {\n param.LoadApproved =\n param.LoadConfirmed =\n param.LoadOpened =\n param.LoadAll =\n param.LoadSigned =\n param.LoadUnconfirmed =\n param.LoadUnsigned =\n false;\n param.Kind = 0;\n }\n\n private handleFilterChange = (event: DropDownListChangeEvent) => {\n this.SetAllOptionsFalse();\n switch (event.value) {\n case this.options[0]:\n param.LoadAll = true;\n break;\n case this.options[1]:\n param.LoadOpened = true;\n break;\n case this.options[2]:\n param.LoadApproved = true;\n break;\n case this.options[3]:\n param.LoadConfirmed = true;\n break;\n case this.options[4]:\n param.LoadSigned = true;\n param.Kind = 1;\n break;\n case this.options[5]:\n param.LoadSigned = true;\n param.Kind = 0;\n break;\n case this.options[6]:\n param.LoadUnsigned = true;\n break;\n }\n this.props.onLoadStates && this.props.onLoadStates(param);\n };\n\n private GetState(row: WorkSheetPersons): string {\n if (row.Signed)\n return row.SignedKind === 0\n ? this.props.strings.worksheet.State_SignedHandwritten\n : this.props.strings.worksheet.State_SignedElectronically;\n else if (row.Confirmed) return this.props.strings.worksheet.State_Confirmed;\n else if (row.Approved) return this.props.strings.worksheet.State_Approved;\n else return this.props.strings.worksheet.State_Open;\n }\n\n private getMailToAddress(row: WorkSheetPersons): string {\n const mailTo: string = \"mailto:\";\n return mailTo + row.Email;\n }\n\n private handleMailClick(e: React.MouseEvent, row: WorkSheetPersons): void {\n e.preventDefault();\n window.location.href = this.getMailToAddress(row);\n }\n\n private handleSingleNumberClick(e: React.MouseEvent, row: WorkSheetPersons): void {\n e.preventDefault();\n window.location.href = \"tel:\" + row.Phone[0];\n }\n\n private handleDialogClose = () =>\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n private handleSelectedCenterButtonClick = () =>\n this.setState({\n visibleDialog: EDialog.CenterPicker,\n });\n\n private handleCenterPickerDialogConfirm = () => {\n this.handleDialogClose();\n this.props.onLoadStates && this.props.onLoadStates(param);\n };\n\n public render() {\n let rows: WorkSheetPersons[] = this.props.data || [];\n return (\n \n \n \n }\n >\n
\n \n \n \n \n
\n {this.props.isFetching && }\n {this.props.error && }\n {this.props.inlineCount > InternalMaxLimitParam && (\n \n )}\n {!this.props.isFetching && !this.props.error && this.props.inlineCount <= InternalMaxLimitParam && (\n \n {rows.length === 0 && (\n \n )}\n {/* řádky */}\n {rows.map((row: WorkSheetPersons, key: any) => (\n \n {row.FullName}}\n secondary={{this.GetState(row)}}\n />\n \n \n
\n {row.Email !== \"\" && row.Email != null && (\n this.handleMailClick(e, row)}\n >\n )}\n {row.Phone.length > 1 && (\n (\n \n {number}\n \n ))}\n >\n )}\n {row.Phone.length === 1 && (\n this.handleSingleNumberClick(e, row)}\n >\n )}\n
\n
\n
\n
\n ))}\n
\n )}\n {ReactDOM.createPortal(\n \n {this.state.visibleDialog === EDialog.CenterPicker && (\n \n )}\n ,\n document.body\n )}\n \n );\n }\n}\n\ninterface IOwnProps {\n data: WorkSheetPersons[];\n inlineCount: number;\n isFetching: boolean;\n error: SerializedError;\n}\n\ninterface IStateProps {\n strings: IStrings;\n lang: ILanguage;\n}\n\ninterface IState {\n selectedMonth: Date;\n visibleDialog: EDialog;\n}\n\ninterface IDispatchProps {\n dispatch: AppDispatch;\n onLoadStates: (e: WorkSheetMassRequestParams) => void;\n}\n\ntype IProps = IOwnProps & IStateProps & IDispatchProps & IState;\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n lang: state.localization.language,\n data: state.session.worksheetStates.worksheetsWithState,\n inlineCount: state.session.worksheetStates.inlineCount,\n isFetching: state.session.worksheetStates.isFetching,\n error: state.session.worksheetStates.error,\n }),\n (dispatch: AppDispatch) => ({\n dispatch: dispatch,\n onLoadStates: (e: WorkSheetMassRequestParams) => dispatch(fetchWorksheetStates(e)),\n })\n)(WorksheetState);\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { InternalMaxLimitParam } from \"../../constants/common\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { QueryParam } from \"../../model/CommonQueryParams\";\nimport { WorkSheetPersons } from \"../../model/IWorksheetState\";\nimport { WorkSheetMassRequestParams } from \"../../model/LeftPanelParams\";\nimport { IRootState } from \"../reducers/root\";\n\nconst DOMAIN = \"WorksheetState\";\n\nexport const fetchWorksheetStates = createAsyncThunk<\n WorkSheetPersons[],\n WorkSheetMassRequestParams,\n { state: IRootState }\n>(`${DOMAIN}/fetchWorksheetStates`, async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n let argParam: QueryParam = { Value: arg };\n arg.SelectedIxsStr = api.getState().session.centerPicker.selected?.id;\n arg.IncludeChildren = api.getState().session.centerPicker.includingSubcenters;\n arg.CheckedCategories = [api.getState().session.categories.selected];\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(argParam),\n };\n //`/breeze/IpoData/GetPresenceByLeftPanelParams?$skip=0&$top=${maxDataLoad}&$inlinecount=allpages`\n const response = await fetch(\n api.getState().config.config?.endpoint +\n `/breeze/IpoData/SelfService_GetWorksheetStates?$skip=0&$top=${\n InternalMaxLimitParam + 1\n }&$inlinecount=allpages`,\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n});\n","import React from \"react\";\nimport { Notification } from \"@progress/kendo-react-notification\";\nimport { useSelector } from \"react-redux\";\nimport { IRootState } from \"../redux/reducers/root\";\nimport { ICenter } from \"../model/ICenter\";\nimport { selectStrings } from \"../redux/selectors/selectStrings\";\nimport { useAppSelector } from \"../hooks/useAppSelector\";\n\nexport function TooMuchPersonNotification() {\n const center = useSelector(s => s.session.centerPicker.loadedCenter);\n const strings = useSelector(selectStrings);\n const includingSubcenters = useAppSelector(s => s.session.centerPicker.includingSubcenters);\n\n return (\n \n {strings.presence.MaxCount.replace(\n \"{0}\",\n center?.name +\n (includingSubcenters ? `, ${strings.centerPicker.IncludingSubcenters.toLocaleLowerCase()}` : \"\")\n )}\n \n );\n}\n","export interface LeftPanelParams {\n ActivePersonsOnly?: boolean;\n ValidPersonsOnly?: boolean;\n StartDate?: Date;\n EndDate?: Date;\n ModeWorkSheet?: boolean;\n FlagList?: number[];\n IsActual?: boolean;\n BoolValue?: boolean;\n CheckedCategories?: number[] | null;\n SelectedIxsStr?: string;\n CheckedIxsStrs?: string[];\n IncludeChildren?: boolean;\n SelectedIxsRef?: string;\n SelectedTab?: string;\n SelectedPresence?: SelectedPresence;\n Sort?: string;\n AlwaysShownIxsRefs?: any[];\n ModeVisits?: boolean;\n CurrentAgenda?: string;\n Lang?: string;\n}\n\nexport interface WorkSheetMassRequestParams extends LeftPanelParams {\n LoadConfirmed: boolean;\n LoadUnconfirmed: boolean;\n LoadSigned: boolean;\n}\n\nexport interface WorkSheetStatesSelfServiceParams extends WorkSheetMassRequestParams {\n LoadApproved: boolean;\n LoadOpened: boolean;\n LoadUnsigned: boolean;\n LoadAll: boolean;\n Kind: number;\n}\n\nexport interface PlanStatesSelfServiceParams extends LeftPanelParams {\n LoadNotPassed: boolean;\n LoadNotChecked: boolean;\n LoadChecked: boolean;\n\n LoadWaiting: boolean;\n LoadApproved: boolean;\n LoadRejected: boolean;\n\n HandWritten: boolean;\n}\n\nexport enum SelectedPresence {\n isCheckedAllPersons = 0,\n isCheckedOnlyPresent = 1,\n isCheckedOnlyAbsent = 2,\n isCheckedOnlyInconsintent = 3,\n isCheckedWithPlannedShift = 4,\n}\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { InternalMaxLimitParam } from \"../../constants/common\";\nimport { handleResponseError } from \"../../helpers/handleResponseError\";\nimport { IPresenceForPerson } from \"../../model/IPresenceForPerson\";\nimport { LeftPanelParams } from \"../../model/LeftPanelParams\";\nimport { Translation } from \"../../model/presenceTranslation\";\nimport { IRootState } from \"../reducers/root\";\n\nconst DOMAIN = \"Presence\";\n\nexport const fetchPresenceData = createAsyncThunk(\n `${DOMAIN}/fetchPresenceData`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n let center: string[] = [api.getState().session.centerPicker.selected?.id || \"\"];\n arg.CheckedIxsStrs = center;\n arg.SelectedIxsStr = api.getState().session.centerPicker.selected?.id || \"\";\n arg.IncludeChildren = api.getState().session.centerPicker.includingSubcenters;\n const requestOptions: RequestInit = {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(arg),\n };\n // internal paramter due to performance issues\n const response = await fetch(\n api.getState().config.config?.endpoint +\n `/breeze/IpoData/GetPresenceByLeftPanelParams?$skip=0&$top=${InternalMaxLimitParam + 1}`,\n requestOptions\n );\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n\nexport const fetchPresenceTranslations = createAsyncThunk(\n `${DOMAIN}/fetchPresenceTranslations`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SelfService_GetPresenceTranslations\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n\nexport const fetchPassesTranslations = createAsyncThunk(\n `${DOMAIN}/fetchPassesTranslations`,\n async (arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SelfService_GetPassesTranslations\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n\nexport const fetchAccountsTranslations = createAsyncThunk(\n `${DOMAIN}/fetchAccountsTranslations`,\n async (_arg, api) => {\n let headers = new Headers();\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Authorization\", `Bearer ${api.getState().session.user?.token?.access_token}`);\n const requestOptions: RequestInit = {\n method: \"GET\",\n headers: headers,\n };\n const response = await fetch(\n api.getState().config.config?.endpoint + \"/breeze/IpoData/SelfService_GetAccountsTranslations\",\n requestOptions\n );\n\n await handleResponseError(response);\n\n return await response.json();\n }\n);\n","import { List, ListItem, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\nimport { Button, DropDownButton } from \"@progress/kendo-react-buttons\";\nimport { DropDownList, DropDownListChangeEvent } from \"@progress/kendo-react-dropdowns\";\nimport React, { useEffect, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { CenterPickerDialog } from \"../../components/CenterPickerDialog\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport PermissionGuard from \"../../components/PermissionGuard\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { TooMuchPersonNotification } from \"../../components/TooMuchPersonNotification\";\nimport { InternalMaxLimitParam } from \"../../constants/common\";\nimport { permissions } from \"../../constants/permissions\";\nimport { useAppDispatch } from \"../../hooks/useAppDispatch\";\nimport { useAppSelector } from \"../../hooks/useAppSelector\";\nimport { useStrings } from \"../../hooks/useStrings\";\nimport { IPresenceForPerson } from \"../../model/IPresenceForPerson\";\nimport { LeftPanelParams, SelectedPresence } from \"../../model/LeftPanelParams\";\nimport { initialize as initializeCenterPicker } from \"../../redux/actions/centerPicker\";\nimport {\n fetchAccountsTranslations,\n fetchPassesTranslations,\n fetchPresenceData,\n fetchPresenceTranslations,\n} from \"../../redux/actions/presence\";\nimport { SelectedCenterButton } from \"../Plan/Department/SelectedCenterButton\";\nimport styles from \"./Presence.module.scss\";\nimport PresenceDetail from \"./PresenceDetail\";\n\nenum EDialog {\n None,\n CenterPicker,\n Detail,\n}\n\nconst param: LeftPanelParams = {\n StartDate: new Date(),\n ActivePersonsOnly: false,\n ValidPersonsOnly: true,\n CurrentAgenda: \"ANeTPresenceApp\",\n SelectedTab: \"tab-centers\",\n SelectedPresence: 0,\n SelectedIxsStr: \"null\",\n SelectedIxsRef: \"aimpI s.session.presence.presenceData);\n const isFetchingData = useAppSelector(s => s.session.presence.isFetching);\n const presenceError = useAppSelector(s => s.session.presence.error);\n\n const presenceTranslations = useAppSelector(s => s.session.presenceTranslations.presenceTranslations);\n const isPresenceTranslationsFetching = useAppSelector(s => s.session.presenceTranslations.isFetching);\n const presenceTranslationError = useAppSelector(s => s.session.presenceTranslations.error);\n\n const isPassesTranslationsFetching = useAppSelector(s => s.session.passesTranslations.isFetching);\n const passesTranslationError = useAppSelector(s => s.session.passesTranslations.error);\n\n const accountsTranslations = useAppSelector(s => s.session.accountsTranslations.accountsTranslations);\n const isAccountsTranslationsFetching = useAppSelector(s => s.session.accountsTranslations.isFetching);\n const accountsTranslationError = useAppSelector(s => s.session.accountsTranslations.error);\n\n const isReasonVisible = useAppSelector(\n s => !s.session.user.token?.userInvisibleActions.some(s => s === permissions.presence.showReason) ?? false\n );\n const count = useAppSelector(s => s.session.presence.count);\n\n const [visibleDialog, setVisibleDialog] = useState(EDialog.None);\n const [detailData, setDetailData] = useState();\n\n const presenceOptions = [\n strings.presence.AllPersons,\n strings.presence.OnlyPresent,\n strings.presence.OnlyNotPresent,\n strings.presence.OnlyInconsistent,\n strings.presence.OnlyWithShift,\n ];\n\n const handleFilterChange = (event: DropDownListChangeEvent) => {\n switch (event.value) {\n case presenceOptions[0]:\n param.SelectedPresence = SelectedPresence.isCheckedAllPersons;\n break;\n case presenceOptions[1]:\n param.SelectedPresence = SelectedPresence.isCheckedOnlyPresent;\n break;\n case presenceOptions[2]:\n param.SelectedPresence = SelectedPresence.isCheckedOnlyAbsent;\n break;\n case presenceOptions[3]:\n param.SelectedPresence = SelectedPresence.isCheckedOnlyInconsintent;\n break;\n case presenceOptions[4]:\n param.SelectedPresence = SelectedPresence.isCheckedWithPlannedShift;\n break;\n default:\n param.SelectedPresence = SelectedPresence.isCheckedAllPersons;\n break;\n }\n param.StartDate = param.EndDate = new Date();\n dispatch(fetchPresenceData(param));\n };\n\n useEffect(() => {\n dispatch(initializeCenterPicker())\n .then(() => dispatch(fetchPresenceTranslations()))\n .then(() => dispatch(fetchPassesTranslations()))\n .then(() => dispatch(fetchAccountsTranslations()))\n .then(() => dispatch(fetchPresenceData(param)));\n }, [dispatch]);\n\n const handleDialogClose = () => setVisibleDialog(EDialog.None);\n\n const handleSelectedCenterButtonClick = () => setVisibleDialog(EDialog.CenterPicker);\n\n const handleCenterPickerDialogConfirm = () => {\n handleDialogClose();\n dispatch(fetchPresenceData(param));\n };\n\n const getPresenceTranslation = (presence: number | null): string =>\n presenceTranslations.find(ipo => ipo.PK_VALUE === presence?.toString())?.PREKLAD ?? \"\";\n\n const getAccountTranslation = (id_ucet: number | null): string =>\n accountsTranslations.find(ipo => ipo.PK_VALUE === id_ucet?.toString())?.PREKLAD ?? \"\";\n\n const isExistingMail = (row: IPresenceForPerson): boolean => row.EMAIL2 !== \"\" && row.EMAIL2 != null;\n\n const getHiddenReason = (smer: number): string =>\n smer === 0 ? strings.presence.Unknown : smer === 1 ? strings.presence.Present : strings.presence.Absent;\n\n const phoneNumberArray = (row: IPresenceForPerson): string[] => {\n const arrayNumber: string[] = [];\n if (row.TELEFON1) {\n arrayNumber.push(row.TELEFON1);\n }\n if (row.TELEFON2) {\n arrayNumber.push(row.TELEFON2);\n }\n if (row.TELEFON3) {\n arrayNumber.push(row.TELEFON3);\n }\n return arrayNumber;\n };\n\n const handleSingleNumberClick = (e: React.MouseEvent, row: IPresenceForPerson) => {\n e.preventDefault();\n window.location.href = \"tel:\" + phoneNumberArray(row)[0];\n };\n\n const getMailToAddress = (row: IPresenceForPerson): string => \"mailto:\" + row.EMAIL2;\n\n const handleMailClick = (e: React.MouseEvent, row: IPresenceForPerson): void => {\n e.preventDefault();\n window.location.href = getMailToAddress(row);\n };\n\n const openDetailDialog = (ixs_ref: string) => {\n if (data) {\n const dataSource = data.find(ipo => ipo.IXS_REF === ixs_ref);\n setDetailData(dataSource);\n setVisibleDialog(EDialog.Detail);\n }\n };\n\n const handleDetailPresenceDialogClose = () => setVisibleDialog(EDialog.None);\n\n const isFetching = () =>\n isFetchingData ||\n isPassesTranslationsFetching ||\n isPresenceTranslationsFetching ||\n isAccountsTranslationsFetching;\n\n const isConnectionError = () =>\n presenceError || passesTranslationError || presenceTranslationError || accountsTranslationError;\n\n return (\n }>\n
\n \n \n
\n {isFetching() && }\n {isConnectionError() && (\n \n )}\n {!isFetching() &&\n !isConnectionError() &&\n // condition for internal parameter max count presence due to performance issues\n (count <= InternalMaxLimitParam ? (\n \n {!data?.length && }\n {/* řádky */}\n {data?.map((row: IPresenceForPerson, key: any) => (\n openDetailDialog(row.IXS_REF)}>\n \n {row.FullName}\n
\n \n {isReasonVisible\n ? row.ID_UCET\n ? getAccountTranslation(row.ID_UCET)\n : getPresenceTranslation(row.PRITOMNOST)\n : getHiddenReason(row.PRUCHOD_SMER)}\n \n \n }\n />\n \n \n {isExistingMail(row) && (\n \n \n \n );\n }\n}\n\ninterface IOwnProps {\n onClose?: MouseEventHandler;\n detailData: IPresenceForPerson;\n}\n\ninterface IStateProps {\n strings: IStrings;\n lang: ILanguage;\n passesTranslations: Translation[];\n}\n\ntype IProps = IOwnProps & IStateProps;\n\nexport default connect(state => ({\n strings: state.localization.strings,\n lang: state.localization.language,\n passesTranslations: state.session.passesTranslations.passesTranslations,\n}))(PresenceDetail);\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { IStrings } from \"../../constants/languageStrings/IStrings\";\nimport { connect } from \"react-redux\";\nimport { IRootState } from \"../../redux/reducers/root\";\nimport { PageLayout } from \"../../components/PageLayout/PageLayout\";\nimport { NavBar } from \"../../components/NavBar/NavBar\";\nimport styles from \"./PlanState.module.scss\";\nimport { List, ListItem, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\nimport { ILanguage } from \"../../model/localization/ILanguage\";\nimport { PlanStatesSelfServiceParams } from \"../../model/LeftPanelParams\";\nimport { DropDownList, DropDownListChangeEvent } from \"@progress/kendo-react-dropdowns\";\nimport NavbarMonthPicker from \"../../components/NavbarMonthPicker/NavbarMonthPicker\";\nimport { Button, DropDownButton } from \"@progress/kendo-react-buttons\";\nimport { SelectedCenterTooltip } from \"../Plan/Department/SelectedCenterTooltip\";\nimport { SelectedCenterButton } from \"../Plan/Department/SelectedCenterButton\";\nimport { initialize as initializeCenterPicker } from \"../../redux/actions/centerPicker\";\nimport { CenterPickerDialog } from \"../../components/CenterPickerDialog\";\nimport { AppDispatch } from \"../..\";\nimport { SpinnerBox } from \"../../components/Spinner/SpinnerBox\";\nimport { SerializedError } from \"@reduxjs/toolkit\";\nimport { ErrorNotification } from \"../../components/ErrorNotification\";\nimport { TooMuchPersonNotification } from \"../../components/TooMuchPersonNotification\";\nimport { InternalMaxLimitParam } from \"../../constants/common\";\nimport { fetchPlanStates, getParamsForPlanStates } from \"../../redux/actions/planState\";\nimport { IPlanPerson } from \"../../model/IPlanPerson\";\nimport Tabs from \"@material-ui/core/Tabs\";\nimport Tab from \"@material-ui/core/Tab\";\nimport SwipeableViews from \"react-swipeable-views\";\nimport PlanStateDetail from \"./PlanStateDetail\";\nimport PermissionGuard from \"../../components/PermissionGuard\";\nimport { permissions } from \"../../constants/permissions\";\nimport { IBaseMenuItem } from \"../../components/NavBar/IBaseMenuItem\";\n\nenum EDialog {\n None,\n Detail,\n CenterPicker,\n}\n\nenum EPlanState {\n NotPassed,\n Unchecked,\n Checked,\n CheckedHand,\n\n Waiting,\n Approved,\n ApprovedHand,\n Rejected,\n RejectedHand,\n}\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n dir?: string;\n index: any;\n value: any;\n}\ninterface ActualState {\n state: EPlanState;\n option: string;\n str: string;\n}\n\nconst param: PlanStatesSelfServiceParams = {\n StartDate: new Date(2020, 4, 1),\n EndDate: new Date(2020, 4, 30),\n SelectedTab: \"tab-centers\",\n ActivePersonsOnly: true,\n ValidPersonsOnly: true,\n\n LoadNotPassed: true,\n LoadNotChecked: false,\n LoadChecked: false,\n\n LoadWaiting: false,\n LoadApproved: false,\n LoadRejected: false,\n\n HandWritten: false,\n};\n\nclass PlanState extends React.Component {\n private planStates: ActualState[] = [\n {\n state: EPlanState.NotPassed,\n option: this.props.strings.planStates.OnlyNotPassed,\n str: this.props.strings.planStates.NotPassed,\n },\n {\n state: EPlanState.Unchecked,\n option: this.props.strings.planStates.OnlyUnchecked,\n str: this.props.strings.planStates.Unchecked,\n },\n {\n state: EPlanState.Checked,\n option: this.props.strings.planStates.OnlyChecked,\n str: this.props.strings.planStates.Checked,\n },\n {\n state: EPlanState.CheckedHand,\n option: this.props.strings.planStates.OnlyCheckedHand,\n str: this.props.strings.planStates.CheckedHand,\n },\n\n {\n state: EPlanState.Waiting,\n option: this.props.strings.planStates.OnlyWaiting,\n str: this.props.strings.planStates.Waiting,\n },\n {\n state: EPlanState.Approved,\n option: this.props.strings.planStates.OnlyApprovedPS,\n str: this.props.strings.planStates.ApprovedState,\n },\n {\n state: EPlanState.ApprovedHand,\n option: this.props.strings.planStates.OnlyApprovedPSHand,\n str: this.props.strings.planStates.ApprovedStateHand,\n },\n {\n state: EPlanState.Rejected,\n option: this.props.strings.planStates.OnlyRejected,\n str: this.props.strings.requests.RejectedElectronically,\n },\n {\n state: EPlanState.RejectedHand,\n option: this.props.strings.planStates.OnlyRejectedHand,\n str: this.props.strings.requests.RejectedHand,\n },\n ];\n\n constructor(props: IProps) {\n super(props);\n const now = new Date();\n this.state = {\n selectedMonth: now,\n visibleDialog: EDialog.None,\n selectedState: this.planStates[0],\n index: 0,\n };\n this.setDateIntoParam(now.getMonth(), now.getFullYear());\n }\n\n setDateIntoParam(actMonthNumber: number, actYear: number) {\n param.StartDate?.setMonth(actMonthNumber);\n param.StartDate?.setFullYear(actYear);\n param.EndDate = new Date(actYear, actMonthNumber + 1, 1, 0, 0, 0);\n }\n async componentDidMount() {\n this.props\n .dispatch(initializeCenterPicker())\n .then(async () => this.props.onLoadParams && this.props.onLoadParams())\n .then(async () => this.props.onLoadStates && this.props.onLoadStates(param));\n }\n\n public handleMonthChange = (month: Date) => {\n this.setDateIntoParam(month.getMonth(), month.getFullYear());\n this.setState({ selectedMonth: month });\n this.props.onLoadStates && this.props.onLoadStates(param);\n };\n\n private SetAllOptionsFalse() {\n param.LoadApproved =\n param.LoadChecked =\n param.LoadNotChecked =\n param.LoadRejected =\n param.LoadWaiting =\n param.LoadNotPassed =\n param.HandWritten =\n false;\n this.setState({ selectedState: this.planStates[0] });\n }\n\n private handleFilterChange = (event: DropDownListChangeEvent) => {\n this.SetAllOptionsFalse();\n switch (event.value) {\n case this.planStates[0]:\n param.LoadNotPassed = true;\n this.setState({ selectedState: this.planStates[0] });\n break;\n case this.planStates[1]:\n param.LoadNotChecked = true;\n this.setState({ selectedState: this.planStates[1] });\n break;\n case this.planStates[2]:\n param.LoadChecked = true;\n this.setState({ selectedState: this.planStates[2] });\n break;\n case this.planStates[3]:\n param.LoadChecked = param.HandWritten = true;\n this.setState({ selectedState: this.planStates[3] });\n break;\n case this.planStates[4]:\n param.LoadWaiting = true;\n this.setState({ selectedState: this.planStates[4] });\n break;\n case this.planStates[5]:\n param.LoadApproved = true;\n this.setState({ selectedState: this.planStates[5] });\n break;\n case this.planStates[6]:\n param.LoadApproved = param.HandWritten = true;\n this.setState({ selectedState: this.planStates[6] });\n break;\n case this.planStates[7]:\n param.LoadRejected = true;\n this.setState({ selectedState: this.planStates[7] });\n break;\n case this.planStates[8]:\n param.LoadRejected = param.HandWritten = true;\n this.setState({ selectedState: this.planStates[8] });\n break;\n }\n this.props.onLoadStates && this.props.onLoadStates(param);\n };\n\n private GetState(row: IPlanPerson): string {\n return this.state.selectedState.str;\n }\n\n private getMailToAddress(row: IPlanPerson): string {\n const mailTo: string = \"mailto:\";\n return mailTo + row.Email;\n }\n\n private handleMailClick(e: React.MouseEvent, row: IPlanPerson): void {\n e.preventDefault();\n window.location.href = this.getMailToAddress(row);\n }\n\n private handleSingleNumberClick(e: React.MouseEvent, row: IPlanPerson): void {\n e.preventDefault();\n window.location.href = \"tel:\" + row.Phone[0];\n }\n\n private handleDialogClose = () =>\n this.setState({\n visibleDialog: EDialog.None,\n });\n\n private handleSelectedCenterButtonClick = () =>\n this.setState({\n visibleDialog: EDialog.CenterPicker,\n });\n\n private handleCenterPickerDialogConfirm = () => {\n this.handleDialogClose();\n this.props.onLoadStates && this.props.onLoadStates(param);\n };\n\n private getPeriod = (): number => {\n if (this.props.param === 0 || this.props.param >= 30) {\n return 0;\n } else if (this.props.param > 0 && this.props.param <= 7) {\n return 4;\n } else if (this.props.param >= 14 && this.props.param <= 20) {\n return 2;\n } else return 0;\n };\n\n private getHeaderTitle = (period: number, index: number): string => {\n let month: string = (this.state.selectedMonth.getMonth() + 1).toString();\n let lastDayNumber: string = this.state.selectedMonth.lastDayOfMonth().getDate().toString();\n if (period === 2) {\n if (index === 0) {\n return \"1. - 15.\" + month;\n } else if (index === 1) {\n return \"16. - \" + lastDayNumber + \".\" + month;\n }\n }\n if (period === 4) {\n if (index === 0) {\n return \"1. - 7.\" + month;\n } else if (index === 1) {\n return \"8. - 14.\" + month;\n } else if (index === 2) {\n return \"15. - 21.\" + month;\n } else if (index === 3) {\n return \"22. - \" + lastDayNumber + \".\" + month;\n }\n }\n return \"\";\n };\n\n private getTabsHeaders = () => {\n let tabs = [];\n for (let i: number = 0; i < this.getPeriod(); i++) {\n tabs.push();\n }\n return tabs;\n };\n\n private getTabsBodies = (rows: IPlanPerson[]) => {\n let panels = [];\n for (let i: number = 0; i < this.getPeriod(); i++) {\n panels.push(\n \n {this.getList(rows, i)}\n \n );\n }\n return (\n \n {panels}\n \n );\n };\n\n private openDetailDialog(row: IPlanPerson) {\n if (this.props.data !== undefined) {\n let dataSource = this.props.data.find(\n ipo =>\n ipo.Ixsref === row.Ixsref &&\n ipo.DateFrom === row.DateFrom &&\n ipo.DateTo === row.DateTo &&\n ipo.Type === row.Type\n );\n this.setState({ detailData: dataSource! });\n this.setState({ visibleDialog: EDialog.Detail });\n }\n }\n\n private handleChangeIndex = (index: number) => {\n this.setState({ index: index });\n };\n\n private handleChange = (event: React.ChangeEvent<{}>, newValue: number) => {\n this.setState({ index: newValue });\n };\n\n private getList = (rows: IPlanPerson[], periodNumber: number) => {\n let period: number = this.getPeriod();\n let result: IPlanPerson[] = [];\n if (period === 2) {\n if (periodNumber === 0)\n result = rows.filter(\n ipo =>\n new Date(ipo.DateFrom!).getDate() > 0 &&\n new Date(ipo.DateFrom!).getDate() <= 15 &&\n (ipo.DateTo == null || new Date(ipo.DateTo!).getDate() <= 31)\n );\n else if (periodNumber === 1)\n result = rows.filter(\n ipo =>\n new Date(ipo.DateFrom!).getDate() > 0 &&\n (ipo.DateTo == null || new Date(ipo.DateTo!).getDate() > 15)\n );\n } else if (period === 4) {\n if (periodNumber === 0)\n result = rows.filter(\n ipo =>\n new Date(ipo.DateFrom!).getDate() > 0 &&\n new Date(ipo.DateFrom!).getDate() <= 7 &&\n (ipo.DateTo == null || new Date(ipo.DateTo!).getDate() <= 7)\n );\n else if (periodNumber === 1)\n result = rows.filter(\n ipo =>\n new Date(ipo.DateFrom!).getDate() > 0 &&\n new Date(ipo.DateFrom!).getDate() <= 14 &&\n (ipo.DateTo == null || new Date(ipo.DateTo!).getDate() <= 14)\n );\n else if (periodNumber === 2)\n result = rows.filter(\n ipo =>\n new Date(ipo.DateFrom!).getDate() > 0 &&\n new Date(ipo.DateFrom!).getDate() <= 21 &&\n (ipo.DateTo == null || new Date(ipo.DateTo!).getDate() <= 21)\n );\n else if (periodNumber === 3)\n result = rows.filter(\n ipo =>\n new Date(ipo.DateFrom!).getDate() > 0 &&\n new Date(ipo.DateFrom!).getDate() <= 31 &&\n (ipo.DateTo == null || new Date(ipo.DateTo!).getDate() <= 31)\n );\n } else result = rows;\n return (\n <>\n \n {result.length === 0 && (\n \n )}\n {/* řádky */}\n {result.map((row: IPlanPerson, key: any) => (\n this.openDetailDialog(row)}>\n \n {row.OcFullName}\n

\n {\"Datum od \" + new Date(row.DateFrom!).toLocaleDateString(this.props.lang.code)}\n

\n {\"Datum do \" +\n (row.DateTo != null\n ? new Date(row.DateTo).toLocaleDateString(this.props.lang.code)\n : \"\")}\n \n }\n secondary={{this.GetState(row)}}\n />\n \n \n
\n {row.Email !== \"\" && row.Email != null && (\n this.handleMailClick(e, row)}\n >\n )}\n {row.Phone.length > 1 && (\n (\n \n {number}\n \n ))}\n >\n )}\n {row.Phone.length === 1 && (\n this.handleSingleNumberClick(e, row)}\n >\n )}\n
\n
\n
\n
\n ))}\n
\n \n );\n };\n\n public render() {\n let rows: IPlanPerson[] = this.props.data || [];\n return (\n \n \n \n }\n >\n
\n \n \n \n \n
\n {this.props.isFetching && }\n {this.props.error && }\n {this.props.inlineCount > InternalMaxLimitParam && (\n \n )}\n {!this.props.isFetching && !this.props.error && this.props.inlineCount <= InternalMaxLimitParam && (\n <>\n {this.getPeriod() > 0 ? (\n <>\n {this.getTabsBodies(rows)}\n \n {this.getTabsHeaders()}\n \n \n ) : (\n
{this.getList(rows, 0)}
\n )}\n \n )}\n {this.state.visibleDialog === EDialog.Detail && (\n \n )}\n {ReactDOM.createPortal(\n \n {this.state.visibleDialog === EDialog.CenterPicker && (\n \n )}\n ,\n document.body\n )}\n
\n );\n }\n}\n\ninterface IOwnProps {\n data: IPlanPerson[];\n inlineCount: number;\n isFetching: boolean;\n error: SerializedError;\n param: number;\n}\n\ninterface IStateProps {\n strings: IStrings;\n lang: ILanguage;\n}\n\ninterface IState {\n selectedMonth: Date;\n visibleDialog: EDialog;\n selectedState: ActualState;\n selectedTab?: number;\n index: number;\n detailData?: IPlanPerson;\n}\n\ninterface IDispatchProps {\n dispatch: AppDispatch;\n onLoadStates: (e: PlanStatesSelfServiceParams) => void;\n onLoadParams: () => void;\n}\n\ntype IProps = IOwnProps & IStateProps & IDispatchProps & IState;\n\nexport default connect(\n state => ({\n strings: state.localization.strings,\n lang: state.localization.language,\n data: state.session.planStates.planWithState,\n inlineCount: state.session.planStates.inlineCount,\n param: state.session.planStatesParams.recommendedDays,\n isFetching: state.session.planStates.isFetching && state.session.planStatesParams.isFetching,\n error: state.session.planStates.error && state.session.planStatesParams.error,\n }),\n (dispatch: AppDispatch) => ({\n dispatch: dispatch,\n onLoadStates: (e: PlanStatesSelfServiceParams) => dispatch(fetchPlanStates(e)),\n onLoadParams: () => dispatch(getParamsForPlanStates()),\n })\n)(PlanState);\n\nexport function TabPanel(props: TabPanelProps) {\n const { children, value, index, ...other } = props;\n\n return (\n