{"version":3,"sources":["actions/notificationActions.ts","components/SnackbarNotifier.tsx","helpers/decodeToken.tsx","services/sessionStorageService.ts","store/dashboard.ts","store/notification.ts","store/sawmill.ts","store/stacks.ts","store/stack.ts",".generated/api/models/AccountingEnumDto.ts",".generated/api/models/CurrencyEnumDto.ts",".generated/api/models/ExportFormatEnumDto.ts",".generated/api/models/FieldTypeEnumResponse.ts",".generated/api/models/LevelOfInvoiceEnumDto.ts",".generated/api/models/ResolutionEnumDto.ts",".generated/api/models/RoleEnumDto.ts",".generated/api/models/SettlementTypeEnumDto.ts",".generated/api/models/StackDateTypeDto.ts",".generated/api/models/StackFileTypeEnumDto.ts",".generated/api/models/StackNumberingEnumDto.ts",".generated/api/models/StackStateEnumDto.ts",".generated/api/models/StateEnumDto.ts",".generated/api/models/UnitEnumResponse.ts",".generated/api/models/ValidationTypeEnumResponse.ts","store/index.ts","store/login.ts","components/flowDialog/FlowDialogStore.ts","store/organization.ts","store/organizations.ts","store/department.ts","static/media/Kobenhavn.ttf","theme/theme.tsx","helpers/history.ts","services/apiService.ts","actions/userActions.ts","translations/translations.ts","components/ValidatedTextInput.tsx","static/media/logo2x.png","components/spinners/ButtonSpinner.tsx","pages/Login.tsx","static/media/HDLogSystemsCMYK.png","pages/NotAuthorized.tsx","components/ValidatedPasswordInput.tsx","pages/ConfirmAccount.tsx","pages/ResetPassword.tsx","pages/ForgotPassword.tsx","actions/stackActions.ts","components/PageToolbar.tsx","actions/sawmillActions.ts","components/spinners/OverlaySpinner.tsx","icons/SawmillIcon.tsx","components/StacksTable.tsx","components/DateRangePicker.tsx","components/StacksMapInfoCard.tsx","components/StacksMap.tsx","helpers/authorizedDepartments.ts","components/FilterDrawer.tsx","components/MultiSelectFilter.tsx","helpers/filterOptions.ts","components/Autocomplete.tsx","components/RangeFilter.tsx","components/SelectFilter.tsx","pages/Stacks.tsx","components/stackDetail/FieldView.tsx","components/stackDetail/SectionView.tsx","actions/organizationActions.ts","actions/departmentActions.ts","components/spinners/PageSpinner.tsx","pages/Stack.tsx","components/SnackbarComponent.tsx","components/flowDialog/FlowDialog.tsx","static/flags/gbr.svg","static/flags/dnk.svg","static/flags/deu.svg","static/flags/pol.svg","components/createOrganizationFlow/CreateOrganizationStep.tsx","helpers/countries.ts","components/createOrganizationFlow/AddUserToOrganizationStep.tsx","components/LevelOfInvoiceSelect.tsx","components/SettlementTypeSelect.tsx","components/AccountingSelect.tsx","components/CurrencySelect.tsx","helpers/validation.ts","components/createOrganizationFlow/AddContractInfoStep.tsx","components/createOrganizationFlow/AddMeasurementCardStep.tsx","components/OrganizationsTable.tsx","pages/Organizations.tsx","components/createDepartmentFlow/CreateDepartmentStep.tsx","components/UserAutocomplete.tsx","components/createDepartmentFlow/AddAdminToDepartmentStep.tsx","components/DepartmentsTable.tsx","components/organizationTabsContent/DepartmentsTab.tsx","components/StyledCard.tsx","components/StyledCardContent.tsx","components/EditCard.tsx","components/organizationTabsContent/OrganizationCard.tsx","components/organizationTabsContent/ContactInformationCard.tsx","components/organizationTabsContent/UploadLogoCard.tsx","components/organizationTabsContent/AddressCard.tsx","components/organizationTabsContent/OrganizationDetailsTab.tsx","components/organizationTabsContent/CreateEditContactDialog.tsx","components/organizationTabsContent/ContactsTabTable.tsx","components/organizationTabsContent/ContactsTab.tsx","components/ConfirmDialog.tsx","components/organizationTabsContent/ContractCard.tsx","components/organizationTabsContent/ContractTab.tsx","components/organizationTabsContent/MeasurementCard.tsx","components/organizationTabsContent/MeasurementCardTab.tsx","components/organizationTabsContent/CreateEditUserDialog.tsx","components/organizationTabsContent/UsersTabTable.tsx","components/organizationTabsContent/UsersTab.tsx","components/organizationTabsContent/CreateEditDialog.tsx","components/organizationTabsContent/CreateEditSawmillUserDialog.tsx","components/organizationTabsContent/SawmillCard.tsx","components/organizationTabsContent/CreateEditSawmillDialog.tsx","components/organizationTabsContent/SawmillsTab.tsx","pages/Organization.tsx","components/MailingList.tsx","components/departmentTabsContent/DepartmentCard.tsx","components/departmentTabsContent/IntegrationDepartmentId.tsx","components/departmentTabsContent/DepartmentDetailsTab.tsx","components/departmentTabsContent/CreateEditDepartmentContactDialog.tsx","components/departmentTabsContent/DepartmentContactsTabTable.tsx","components/departmentTabsContent/DepartmentContactsTab.tsx","components/departmentTabsContent/CreateEditDepartmentUserDialog.tsx","components/departmentTabsContent/DepartmentUsersTabTable.tsx","components/departmentTabsContent/DepartmentUsersTab.tsx","components/departmentTabsContent/CustomerNumberCard.tsx","components/departmentTabsContent/ContractTab.tsx","pages/Department.tsx","actions/dashboardActions.ts","components/dashboard/CountCard.tsx","components/dashboard/VolumeCard.tsx","pages/Dashboard.tsx","pages/Page404.tsx","static/media/bg.jpg","layouts/LoginLayout.tsx","shared/Navigation.tsx","components/DepartmentSelect.tsx","layouts/AppLayout.tsx","static/media/logo_white-3x.png","shared/AuthRoute.tsx","components/SawmillStacksTable.tsx","pages/SawmillStacks.tsx","shared/Routes.tsx","App.tsx","helpers/units.ts","static/media/HDLogSystemsCMYK.svg","static/media/bue.png","helpers/FieldId.ts","components/pdf/AnnotatedImage.tsx","components/pdf/DiameterDistributionChart.tsx","components/pdf/StackMeasurementReport.tsx","layouts/PdfLayout.tsx","index.tsx","store/configureStore.ts"],"names":["ENQUEUE_SNACKBAR","CLOSE_SNACKBAR","REMOVE_SNACKBAR","enqueueSnackbar","message","options","key","type","notification","Date","getTime","Math","random","enqueueError","variant","removeSnackbar","notificationActions","error","msg","response","data","errorMessage","SnackbarNotifier","useSnackbar","closeSnackbar","useState","displayed","setDisplayed","dispatch","useDispatch","notifications","useSelector","state","useEffect","forEach","id","dismissed","includes","onClose","event","reason","myKey","onExited","filter","getTokenData","token","decodedToken","jwt","isGlobalAdmin","is_global_admin","username","sub","expirationTimestamp","exp","sessionKeys","SessionStorageService","sessionStorage","setItem","refreshToken","getItem","removeItem","UPDATE_DASHBOARD_MEASUREMENT_CARD","UPDATE_DASHBOARD_STACK_STATISTICS","UPDATE_DASHBOARD_FILTER_OPTIONS","countFiltersApplied","filters","count","sawmillIds","length","surveyors","treeSpecies","assortments","areaNumber","assortmentLengthMin","assortmentLengthMax","initialState","UPDATE_SAWMILL_LIST","UPDATE_STACK_MEASUREMENT_CARD","UPDATE_STACK_LIST","UPDATE_STACK_COORDINATES","UPDATE_STACK_MAP_INFO","SIGNAL_STACK_LIST_LOADING","SIGNAL_STACK_COORDINATES_LOADING","UPDATE_STACK_FILTER_OPTIONS","STACK_DELETE","STACK_DELETE_SUCCESS","STACK_DELETE_ERROR","UPDATE_ARCHIVE_DOWNLOAD_PROGRESS","UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS","UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS","states","registrators","search","fullMeasurement","UPDATE_STACK","STACK_ERROR","AccountingEnumDto","CurrencyEnumDto","ExportFormatEnumDto","FieldTypeEnumResponse","LevelOfInvoiceEnumDto","ResolutionEnumDto","RoleEnumDto","SettlementTypeEnumDto","StackDateTypeDto","StackFileTypeEnumDto","StackNumberingEnumDto","StackStateEnumDto","StateEnumDto","UnitEnumResponse","ValidationTypeEnumResponse","reducers","isLoggedIn","incomingAction","undefined","getToken","user","password","action","userAccess","userInfo","departments","organizations","sawmills","sawmillUserInfo","flowDialog","step","isProcessing","buttonDisabled","isCompleted","callbackFn","disabled","dashboard","stackStatistics","filtersApplied","filterOptions","measurementCard","updatedAt","organization","name","logo","currentContract","nextContract","stack","stackResponse","fieldMap","values","fields","field","defaultValue","sections","displayConfigurationAdmin","displaySection","fieldId","value","push","title","stackStateFromResponse","stacks","coordinates","isLoadingStacks","isLoadingCoordinates","stacksDeleting","departmentIds","showMap","mapInfo","stackId","concat","x","archiveDownloadProgress","progress","accumulatedCsvDownloadProgress","accumulatedCsvDownloadAllProgress","department","map","dismissAll","sort","a","b","localeCompare","kobenhavn","fontFamily","fontStyle","fontWeight","src","Kobenhavn","unicodeRange","primaryColor","alpha","secondaryColor","buttonPrimaryColor","warningColor","defaultTheme","createMuiTheme","theme","palette","primary","main","light","dark","secondary","background","default","spacing","factor","typography","join","fontSize","body2","body1","subtitle1","h1","h2","h3","h4","h5","overrides","MuiCssBaseline","body","backgroundColor","MuiToolbar","gutters","breakpoints","up","paddingLeft","paddingRight","MuiPaper","root","color","MuiDialog","paperWidthMd","maxWidth","paper","padding","MuiDialogTitle","MuiDialogContent","overflow","height","flex","whiteSpace","MuiDialogActions","MuiTableContainer","MuiButton","margin","minWidth","contained","boxShadow","containedPrimary","outlinedSecondary","borderColor","textPrimary","textSecondary","MuiTextField","MuiFormControl","MuiStepLabel","active","MuiInputLabel","outlined","MuiLink","MuiSnackbarContent","appBarTheme","MuiOutlinedInput","borderWidth","notchedOutline","MuiSelect","paddingTop","paddingBottom","iconOutlined","kobenhavnFont","MuiListItem","marginBottom","history","createBrowserHistory","refreshPromise","axiosRequestConfig","headers","Authorization","paramsSerializer","params","qs","stringify","arrayFormat","refreshTokenIfExpired","getRefreshToken","expirationDate","refDate","setMinutes","getMinutes","ApiService","setToken","setRefreshToken","console","warn","authAxios","axios","create","interceptors","request","use","config","promise","get","baseUrl","orgId","organizationId","contract","put","country","createOrg","post","contractInformation","addUserToOrg","email","phone","roles","enableAutoEmails","editUserInOrg","addAdminRequest","createSawmillRequest","sawmillId","renameSawmillRequest","delete","stackIds","assignStacksToSawmillRequest","sawmillUser","sawmillUserId","departmentId","addUserToDept","userEmail","deptId","editUserInDept","measurementCardId","stackNumbering","exportFormat","departmentNumber","createDept","customerNumber","organizationAddress","file","formData","FormData","append","organizationContactInformation","updateOrganization","onDownloadProgress","responseType","loginRequest","refreshRequest","userId","confirmAccount","resetPassword","newPassword","contactId","userActions","login","referrer","failure","then","tokenResponse","success","getUserInfo","resp","getUserAccessModel","sawmillRelations","catch","logout","clearToken","getSawmillUserInfo","Promise","resolve","all","getOrganizations","organizationRelations","getDepartments","departmentRelations","relation","DEPARTMENT_ADMIN","getDepartmentList","index","orgRole","ORGANIZATION_ADMIN","resources","en","translations","da","de","pl","getLanguage","language","navigator","i18n","initReactI18next","init","lng","fallbackLng","ns","apiTranslateToLanguage","languages","Object","keys","split","getLanguagePart","apiTranslate","useStyles","makeStyles","textAlign","ValidatedTextInput","props","inputName","required","label","autoFocus","handleChangeCallback","classes","setErrorMessage","t","useTranslation","setValue","handleChange","e","target","test","TextField","fullWidth","autoComplete","onChange","onBlur","Typography","className","spinner","width","ButtonSpinner","isLoading","children","CircularProgress","size","container","display","flexDirection","alignItems","img","form","submit","alignRight","alignCenter","Login","location","useLocation","submitPressed","setSubmitPressed","isDisabled","setIsDisabeld","inputs","setInputs","isLoggingIn","Container","Paper","alt","onSubmit","preventDefault","handleSubmit","Grid","item","xs","Link","href","role","Button","startIcon","NotAuthorized","disableElevation","onClick","back","ValidatedPasswordInput","input","setInput","repeat","requirements","re","desc","errors","validationErrors","ConfirmAccount","query","URLSearchParams","confirmationSuccess","setConfirmationSuccess","setError","setPassword","isInputValid","component","successContainer","successText","marginTop","successLink","ResetPassword","to","ForgotPassword","setUsername","forgotPassword","stackActions","getOrganizationMeasurementCard","updateStackMeasurementCard","getStacks","getStackFilterOptions","getStacksForSawmillUser","from","getSawmillStackMapList","page","pageSize","stackQueryRequest","getSawmillStackList","updateStackList","refreshStacks","getState","getStackById","deleteStackById","deleteStack","downloadStackArchive","progressEvent","loaded","total","round","blobby","filename","contentDispositionHeader","indexOf","matches","exec","replace","objectUrl","window","URL","createObjectURL","anchor","document","createElement","appendChild","download","click","revokeObjectURL","removeChild","downloadAccumulatedCsv","downloadAccumulatedCSV","downloadAllAccumulatedCsv","downloadAccumulatedCSVFromFilter","getStackMapInfoById","updateStackFilterOptions","dateType","prevFilters","getStackMapList","getStackList","pageToolbar","boxSizing","zIndex","minHeight","PageToolbar","sawmillActions","getSawmillsByOrganizationId","updateSawmillList","getSawmillList","addSawmillToOrganization","callback","createSawmill","users","renameSawmill","sawmillIndex","findIndex","sawmill","deleteSawmill","addUserToSawmill","addSawmillUser","assignStacksToSawmill","updateSawmillUser","find","sawmillUserIndex","removeSawmillUser","position","backdrop","top","left","right","bottom","OverlaySpinner","clsx","SawmillIcon","SvgIcon","viewBox","d","pagination","tableHeadCell","tableCell","tableRow","textDecoration","cursor","preDataView","textBold","measuredIcon","marginRight","dialogContent","maxHeight","drawer","justifyContent","checkbox","radio","isMeasured","MEASURED","ASSIGNED_TO_SAWMILL","dateFromSelectedDateType","lastModifiedDateTime","toLocaleDateString","registrationDateTime","measurementDateTime","assignedToSawmillDateTime","invoiceableDateTime","StacksTable","onPageChanged","onPageSizeChanged","useHistory","useParams","selectedStackIds","setSelectedStackIds","isAssignDialogOpen","setAssignDialogOpen","isAssignDialogLoading","setAssignDialogLoading","selectedSawmill","setSelectedSawmill","setDateType","confirmStackDelete","setConfirmStackDelete","deptMap","dept","handleAssignDialogClose","str","cancelDeleteStack","numSelected","rowCount","stateToString","PRE_REGISTRATION","TableContainer","Table","aria-label","stickyHeader","TableHead","TableRow","TableCell","Checkbox","indeterminate","checked","align","match","offset","toLowerCase","TableBody","hover","stopPropagation","selectedIndex","newSelected","slice","handleSelectRowClick","stackNumber","polterId","registrator","surveyor","FiberManualRecord","IconButton","Delete","TablePagination","rowsPerPageOptions","totalCount","rowsPerPage","onChangePage","newPage","onChangeRowsPerPage","Number","backIconButtonText","labelDisplayedRows","info","labelRowsPerPage","nextIconButtonText","Drawer","open","GetApp","Dialog","aria-labelledby","aria-describedby","DialogTitle","DialogContent","DialogContentText","DialogActions","List","RadioGroup","i","Fragment","ListItem","ListItemIcon","ListItemText","FormControlLabel","control","Radio","Divider","now","date","setHours","setSeconds","setMilliseconds","lastMonth","setMonth","getMonth","utcToLocalWithoutTz","utc","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","localToUTCWithoutTz","local","UTC","getFullYear","getDate","getHours","getSeconds","DateRangePickerComponent","defaultStartDate","startDate","setStartDate","defaultEndDate","endDate","setEndDate","getFormat","notifyChange","valid","isNaN","setStartDateFn","setEndDateFn","invalidOrderMessage","invalidDateMessage","invalidFrom","invalidTo","orderError","utils","DateFnsUtils","locale","enCA","itemClass","inputVariant","format","autoOk","InputAdornmentProps","helperText","InputProps","clearable","endAdornment","fixCardPadding","marginBotton","cardContent","buttonMargin","lastChanged","lastModified","CardItem","style","direction","StacksMapInfoCard","closeSelectedStackInfo","disableStackDetailLink","useMap","Card","CardHeader","justify","closePopup","Cancel","CardContent","toString","mapBottomPadding","mapSizing","StyledPop","styled","Popup","FitBounds","bounds","fitBounds","StacksMap","timeout","disableStackDetailLinks","debounce","func","wait","clearTimeout","setTimeout","setStacks","worldBounds","L","LatLngBounds","mapBounds","setMapBounds","selectedStack","setSelectedStack","notMeasured","selectedStackMarkerColor","setSelectedStackMarkerColor","latitudes","coordinate","latitude","longitudes","longitude","min","max","LatLng","getMarkerColor","measured","getMarkerOpacity","MapContainer","scrollWheelZoom","TileLayer","attribution","url","chunkedLoading","showCoverageOnHover","polygonOptions","weight","opacity","fillOpacity","CircleMarker","center","pathOptions","fillColor","radius","interactive","eventHandlers","newStack","closeButton","keepInView","onOpen","getAuthorizedDepartments","orgDepartments","accessibleDepartments","org","accessibleDept","resetButton","resetButtonContainer","FilterDrawer","onResetFilters","MultiSelectFilter","items","onSelect","select","SelectProps","MenuProps","multiple","renderValue","MenuItem","translateFieldOptions","optionIds","fieldOptions","translatedOptions","optionId","option","fieldOption","text","translateFilterOptions","registratorField","fieldIds","surveyorField","treeSpeciesField","assortmentField","assortment","assortmentLength","trueLabel","falseLabel","paperRoot","borderRadius","borderTop","borderRight","borderBottom","borderLeft","fieldWithDD","fieldset","textField","dropdown","dropdownOption","listStyle","Autocomplete","getOptionLabel","filteredOptions","setFilteredOptions","storedValue","sortedOptions","setOptions","lowerCaseValue","handleClickAway","handleSelect","ClickAwayListener","onClickAway","noValidate","filtered","onFocus","onKeyDown","InputAdornment","tabIndex","autoCorrect","spellCheck","valueLabel","thumb","border","marginLeft","track","rail","sliderContainer","sliderContainerDisabled","disabledText","ThumbComponent","RangeFilter","rmin","rmax","rvalue","gutterBottom","Slider","valueLabelDisplay","onChangeCommitted","newValue","SelectFilter","showAllOption","toolbar","filterContainer","filterRow","overlaySpinner","datePickerContainer","flexGrow","table","filterSelect","filterButtonRoot","selectContainer","boolToString","Stacks","useRef","setFilters","translatedFilterOptions","setTranslatedFilterOptions","extendedFiltersVisible","setExtendedFiltersVisible","setDepartmentIds","setShowMap","searchString","setSearchString","change","setChange","firstUpdate","current","delayDebounce","updateFilter","set","updateListFilter","searchParams","INVOICEABLE","toISOString","getAll","showMapValue","JSON","parse","s","queryChanged","parseFloat","parseInt","Switch","updateShowMap","LAST_CHANGED","toLocaleString","unit","image","formatList","classNameValue","formatDoubleWithFixed","v","fixed","toFixed","formatDouble","formatInteger","FieldView","formattedValue","selectedKeys","units","fieldType","DOUBLE","ARRAY_OF_DOUBLE","formatDoubleArray","ARRAY_OF_INT","formatIntArray","BOOLEAN","formatBoolean","DATE","formatDate","INTEGER","MULTIPLE_OPTIONS","optionsField","STRING","TEXT","OPTIONS","KEY_VALUE_PAIR_STRING_INT","keyValuePairStringIntField","classNameKey","translatedValue","formatKeyValuePairStringInt","IMAGE","POSITION","accuracy","formatPosition","DEDUCTIONS","deductionsField","keyUnit","deductionsCount","averageCount","item1","item2","formatDeductions","MANUAL_AREA","sectionAHeights","sectionALength","sectionBHeights","sectionBLength","sectionAHeightsTitle","sectionALengthTitle","sectionBHeightsTitle","sectionBLengthTitle","formatManualArea","content","SectionView","section","getOrganizationLogo","status","organizationActions","createOrganization","clearOrganization","getOrganizationById","addAdminToOrg","addOrganizationAdmin","addContractualInfo","contractinformation","updateContractInformation","updateCurrentContract","getCurrentContract","getNextContract","updateNextContract","getOrganizationsDetailed","editMeasurementCard","CSV","updateMeasurementCardInformation","assignMeasurementCardToOrg","departmentName","createDeptment","addContact","addOrganizationContact","editContact","updateOrganizationContact","deleteContact","deleteOrganizationContact","updateOrganizationName","organizationName","updateOrganizationContactDetails","updateOrganizationAddressDetails","updateOrganizationLogo","oldLogo","addUserToOrganization","editUserInOrganization","departmentActions","getDepartmentById","clearDepartment","updateDepartmentInfo","updateCustomerNumber","updateDepartmentCustomerNumber","addAdminToDept","addDepartmentAdmin","addUserToDepartment","editUserInDeptment","addDepartmentContact","updateDepartmentContact","deleteDepartmentContact","addEmailToDepartmentMailingList","removeEmailFromDepartmentMailingList","PageSpinner","toolbarTitle","overflowY","buttonClass","Stack","goBack","SnackbarComponent","handleClose","isOpen","snackbarStyles","Snackbar","anchorOrigin","vertical","horizontal","SnackbarContent","snackLinkStyle","noMarginBottom","lastButton","FlowDialog","snackLinkText","snackLink","contentHeight","snackIsOpen","setSnackOpen","childrenArr","React","Children","toArray","stepToShow","isButtonDisabled","handleCancel","disableBackdropClick","disableEscapeKeyDown","disableTypography","Stepper","activeStep","alternativeLabel","child","isValidElement","stepTitleString","Step","StepLabel","buttonText","pathname","noMargine","flagStyles","CreateOrganizationStep","setOrganizationName","countries","alpha2Code","flag","flagUk","flagDK","flagDE","flagPL","getCountries","selectedCountry","setSelectedCountry","organizationError","FormControl","InputLabel","Select","AddUserToOrganizationStep","contactName","contactEmail","contactPhone","emailError","setEmailError","handleButtonState","LevelOfInvoiceSelect","ORGANIZATION","DEPARTMENT","SettlementTypeSelect","settlementType","AccountingSelect","accounting","CurrencySelect","currency","customerNumberRE","guaranteedVolumeRE","topMargin","datePickerItem","AddContractInfoStep","levelOfInvoice","fullMeasurementPrice","pieceMeasurementPrice","guaranteedVolume","inputProps","dateValue","onEndDateChange","AddMeasurementCardStep","measurementCards","setMeasurementCards","AUTO_GENERATED","measurementCardsError","setMeasurementCardsError","getMeasurementCardList","details","MANUEL","card","measurementCardName","tableHead","statusIcon","getFormattedDate","dateString","OrganizationsTable","organizationsData","setOrganizationsData","getLevelOfInvoice","handleDelete","confirm","deleteOrganization","alert","prevData","administrator","contactPhoneNumber","warnings","contractExpiresSoon","expireDate","isMissingCustomerNumber","departmentsWithMissingCustomerNumber","dep","generatePath","AuthRoutes","Department","headingButton","plusIcon","lineHeight","Organizations","setIsOpen","CreateDepartmentStep","deptError","UserAutocomplete","onSelectOption","onChangeName","filteredUsers","setFilteredUsers","isPopoverVisible","setisPopoverVisible","tempUsers","AddAdminToDepartmentStep","departmentError","tableContainer","tableContainerWide","DepartmentsTable","inTab","handleDepartmentClick","numberOfUsers","DepartmentsTab","StyledCard","withStyles","StyledCardContent","EditCard","editMode","isValid","onEdit","onSave","onCancel","requireGlobalAdmin","CancelOutlined","OrganizationCard","setEditMode","setIsLoading","isMounted","setIsMounted","resetInput","md","link","ContactInformationCard","webSite","contactInformation","startsWith","button","buttonContainer","UploadLogoCard","accept","files","capture","hidden","AddressCard","street","city","zipCode","streetNumber","addressInformation","cardContainer","flexShrink","uploadLogoContainer","OrganizationDetailsTab","dialogContentHeigh","dialogContentAuto","CreateEditContactDialog","contact","setIsButtonDisabled","newContact","setNewContact","handleEmailChange","addOrEditCallback","handleCloseDialog","addButton","actionsButton","buttonRoot","rowInactive","ContactsTabTable","contacts","setContacts","setContact","isMenuOpen","setIsMenuOpen","anchorEl","setAnchorEl","isDialogOpen","setIsDialogOpen","handleOpenDialog","handleRemoveFromList","handleHideContextActions","getContacts","contactRow","tempContact","currentTarget","handleShowContextActions","Menu","keepMounted","ContactsTab","ConfirmDialog","onConfirm","confirmButtonText","ContractCard","isNextContract","confirmDialogOpen","setConfirmDialogOpen","getCurrency","getAccounting","getSettlementType","saveHandler","handleConfirmDialogYes","inputToSave","ContractTab","MeasurementCard","defaultExportFormat","MeasurementCardTab","CreateEditUserDialog","missingEmail","setMissingEmail","newRoles","setNewRoles","ACTIVE","newUser","setNewUser","handleChangeRoles","NOT_SET","REGISTRATOR","SURVEYOR","INTEGRATION","some","UsersTabTable","setUsers","setUser","handleToggleActive","deactivateUserInOrganization","activateUserInOrganization","userRow","INACTIVE","UsersTab","dialogContentHeight","CreateEditDialog","canSubmit","CreateEditSawmillUserDialog","setInputValid","isEmailValid","setEmailValid","newSawmillUser","setNewSawmillUser","createEditCallback","menu","SawmillCard","onDelete","sawmillUsersLoading","setSawmillUsersLoading","activeSawmillUser","setActiveSawmillUser","setDialogOpen","CreateEditSawmillDialog","newSawmill","setNewSawmill","SawmillsTab","activeSawmill","setActiveSawmill","deleteInProgress","setDeleteInProgress","confirmSawmillDelete","setConfirmSawmillDelete","handleEditSawmill","handleDeleteSawmillClicked","flexContainer","tabPanel","tabBox","TabPanel","other","Box","p","a11yProps","Organization","queryString","tabIdParam","tabId","tab","setTab","Tabs","indicatorColor","textColor","Tab","icon","addContainer","chips","emailRegExp","MailingList","emails","onAdd","emailToAdd","setEmailToAdd","emailValid","emailsAdding","setEmailsAdding","emailsDeleting","setEmailsDeleting","prevItems","handleAddClicked","isDeleting","Chip","deleteIcon","DepartmentCard","IntegrationDepartmentId","path","DepartmentDetailsTab","mailingList","CreateEditDepartmentContactDialog","DepartmentContactsTabTable","DepartmentContactsTab","CreateEditDepartmentUserDialog","DepartmentUsersTabTable","deactivateUserInDepartment","activateUserInDepartment","DepartmentUsersTab","explainer","CustomerNumberCard","dashboardActions","getStackStatistics","updateDashboardStackStatistics","updateDashboardFilterOptions","updateDashboardMeasurementCard","chart","actions","CountCard","dates","minDate","maxDate","resolution","HOURLY","DAILY","MONTHLY","setDate","paddedValues","paddedDates","maxValue","labels","datasets","pointRadius","animation","layout","scales","xAxes","time","unitStepSize","yAxes","grid","drawBorder","ticks","plugins","legend","tooltip","enabled","maintainAspectRatio","CardActions","chartContainer","VolumeCard","tooltipFormat","pageContainer","countCard","volume","CountCardGrid","Dashboard","timeZone","Intl","DateTimeFormat","resolvedOptions","setDatasets","getFromFilterOrDefault","getToFilterOrDefault","bins","pregistration","pieceCount","assignedToSawmill","bin","preregistrations","fullMeasurements","unzipBins","StacksLink","Array","isArray","paramValue","paramKey","daysBetween","getResolutionFromDateRange","Map","Page404","bg","backgroundPosition","backgroundRepeat","backgroundSize","LoginLayout","listText","menuFooter","version","Navigation","ThemeProvider","SawmillStacks","selected","process","DepartmentSelect","urlSplit","targetComponent","toolbarIcon","mixins","appBar","transition","transitions","easing","sharp","duration","leavingScreen","appBarShift","enteringScreen","menuButton","menuButtonHidden","drawerPaper","drawerPaperClose","overflowX","appBarSpacer","organizationsButton","orgName","deptSelect","AppLayout","showList","linkToOrg","AppBar","Toolbar","AuthRoute","Component","exact","render","userHasAccess","checkIfUserHasAccess","NonAuthRoutes","Notauthorized","requestedPath","SawmillStacksTable","setOrganizations","setDepartments","newOrganizations","newDepartments","organizationOptions","setOrganizationOptions","departmentOptions","setDepartmentOptions","selectedOrganizationIds","setSelectedOrganizationIds","selectedDepartmentIds","setSelectedDepartmentIds","getUniqueDepartmentIds","organizationIds","departmentSet","Set","add","newDepartmentOptions","Routes","startRoute","setStartRoute","DashboardWithDepartment","App","isReady","setIsReady","titleTemplate","defaultTitle","CssBaseline","unitConversions","METERS","CENTIMETERS","FEET","INCHES","SQUARE_METERS","SQUARE_FEET","CUBIC_METERS","CUBIC_FEET","siConversions","PERCENTAGES","PIECES","convert","convertToSI","FieldId","logLength","netVolume","logDiameters","logDiameterAvg","logAmount","logsTotal","joistCount","frontImageCertified","backImageCertified","frontArea","backArea","referenceArea","stackUUID","applicationID","calibrationID","frontHeights","backHeights","frontInterval","backInterval","frontUUID","backUUID","frontAreaPolygonPts","backAreaPolygonPts","stackLength","locationMeasurement","totalRaummeter","manualBackArea","AnnotatedImage","annotation","setWidth","setHeight","annotationJ","setAnnotationJ","Image","onload","atob","xSize","annotations","logs","log","cx","cy","r","strokeWidth","stroke","fill","stack_area","points","point","y","reference_area","stack_heights","stackHeight","bar","leftBarLabel","rightBarLabel","barLabel","stretch","barCenter","labelFromLimit","calcDiameterDistributionData","binLimits","diameters","netVolumeUnit","binLimit","limit","totalVolume","diameter","PI","DiameterDistributionChart","countTitle","volumeTitle","volumeUnit","diameterUnit","distribution","maxCount","setMaxCount","maxVolume","setMaxVolume","dist","countPercentage","percentage","volumePercentage","wrap","elevation","alignContent","logStackProGrey","certifiedBlue","bue","organizationLogo","headerContainer","mainTitle","mainValue","tableTitle","tableListItem","tableBlue","tableBold","bodyContainer","diagramContainer","float","bodySection","firstColumn","imageContainer","imageContainerCertified","imageContainerTopCaption","imageContainerTopCaptionCertified","imageContainerBottomCaption","closeupImage","nobreak","pageBreakInside","pageBreakAfter","pageBreakBefore","caption","remark","warning","qrCode","mapContainer","StyledDivider","testStackReportData","header","certified","bold","blueIndex","frontImage","topCaption","bottomCaption","backImage","footer","diameterDistributionData","lat","stackReportDataFromResponse","reportConfig","findField","useFullMeasurementReportLayout","reportLayout","adminReportLayoutForFullMeasurement","adminReportLayoutForLogCount","showCertificateInfo","boldFields","mapField","fieldValueToString","heights","heightUnit","interval","intervalUnit","determinedHeightOfPolygonTitle","certifiedFields","reportData","reportHeaderFields","reportBodySections","frontBackWarning","frontValue","backValue","absoluteDifference","abs","average","isDifferenceGreaterThan15Percent","frontHeightUnit","frontIntervalUnit","frontImageOverlay","uuid","areaPolygonPts","frontTitle","polygonBasesTitle","perMeterOfPileTitle","backHeightUnit","backIntervalUnit","backImageOverlay","backTitle","topCaptionBack","closeupImageOverlay","organizationLogoImage","remarkTitle","remarkValue","remarkBlueIndex","remarkBlueLength","remarkAfterBlueIndex","substring","reportFooter","logDiametersUnit","logDiameterAvgUnit","fieldIdForDiameterDistributionVolume","diameterDistributionVolume","volumeForDiameterDistributionUnit","logLengthUnit","diameterUnits","volumeForDiameterDistribution","volumeForDiameterDistributionUnitStr","diameterDistributionIntervals","diameterDistributionNumberPrStrengthClass","diameterDistributionCubicMeterPrStrengthClass","calcDiameterDistribution","formatMultipleOptions","fixedLat","fixedLng","ew","result","manualAreaField","AHeigthsTitle","ALengthTitle","BHeightTitle","BLengthTitle","AHeightsTitle","ImageContainer","StackMeasurementReport","stackReportData","setStackReportData","toBounds","zoomControl","attributionControl","maxZoom","subdomains","Marker","PdfLayout","getElementsByTagName","getAttribute","basename","store","middleware","thunk","routerMiddleware","rootReducer","combineReducers","createStore","compose","applyMiddleware","configureStore","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.712e8929.chunk.js","sourcesContent":["import { SnackbarMessage, OptionsObject } from 'notistack';\nimport { Notification } from 'store/notification';\nimport { AxiosError } from 'axios';\n\nexport const ENQUEUE_SNACKBAR = 'ENQUEUE_SNACKBAR';\nexport const CLOSE_SNACKBAR = 'CLOSE_SNACKBAR';\nexport const REMOVE_SNACKBAR = 'REMOVE_SNACKBAR';\n\ninterface EnqueueSnackbarAction {\n type: typeof ENQUEUE_SNACKBAR;\n key: string | number;\n notification: Notification;\n}\n\ninterface CloseSnackbarAction {\n type: typeof CLOSE_SNACKBAR;\n key: string | number;\n dismissAll: boolean;\n}\n\ninterface RemoveSnackbarAction {\n type: typeof REMOVE_SNACKBAR;\n key: string | number;\n}\n\nexport type NotificationActions =\n | EnqueueSnackbarAction\n | CloseSnackbarAction\n | RemoveSnackbarAction;\n\nexport const enqueueSnackbar = (\n message: SnackbarMessage,\n options?: OptionsObject,\n) => {\n const key = options?.key;\n return {\n type: ENQUEUE_SNACKBAR,\n notification: {\n message,\n options,\n key: key || new Date().getTime() + Math.random(),\n },\n };\n};\n\nexport const enqueueError = (message: string) =>\n enqueueSnackbar(message, { variant: 'error' });\n\nexport const enqueueErrorResponse = (error: AxiosError) => {\n const msg = error?.response?.data?.errorMessage;\n if (msg) {\n return enqueueError(msg);\n } else {\n return enqueueError(error.message);\n }\n};\n\nexport const closeSnackbar = (key?: string | number) => ({\n type: CLOSE_SNACKBAR,\n dismissAll: !key, // dismiss all if no key has been defined\n key,\n});\n\nexport const removeSnackbar = (key: string | number) => ({\n type: REMOVE_SNACKBAR,\n key,\n});\n\nexport const notificationActions = {\n enqueueSnackbar,\n enqueueError,\n enqueueErrorResponse,\n closeSnackbar,\n removeSnackbar,\n};\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport { useSnackbar } from 'notistack';\nimport { removeSnackbar } from 'actions/notificationActions';\n\n// Transfer redux notifications to SnackbarProvider\nconst SnackbarNotifier: React.FC = () => {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const [displayed, setDisplayed] = useState>([]);\n const dispatch = useDispatch();\n const notifications = useSelector(\n (state: ApplicationState) => state.notification.notifications || [],\n );\n\n const storeDisplayed = (id: number | string) => {\n setDisplayed((displayed) => [...displayed, id]);\n };\n\n const removeDisplayed = (id: number | string) => {\n setDisplayed((displayed) => [...displayed.filter((key) => id !== key)]);\n };\n\n useEffect(() => {\n notifications.forEach(\n ({ key, message, options = {}, dismissed = false }) => {\n if (dismissed) {\n // dismiss snackbar using notistack\n closeSnackbar(key);\n return;\n }\n\n // do nothing if snackbar is already displayed\n if (displayed.includes(key)) return;\n\n // display snackbar using notistack\n enqueueSnackbar(message, {\n key,\n ...options,\n onClose: (event, reason, myKey) => {\n if (options.onClose) {\n options.onClose(event, reason, myKey);\n }\n },\n onExited: (event, myKey) => {\n // remove this snackbar from redux store\n dispatch(removeSnackbar(myKey));\n removeDisplayed(myKey);\n },\n });\n\n // keep track of snackbars that we've displayed\n storeDisplayed(key);\n },\n );\n }, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\n\n return null;\n};\n\nexport default SnackbarNotifier;\n","import jwt from 'jwt-decode';\n\nexport const getTokenData = (token: string) => {\n const decodedToken: any = jwt(token);\n const isGlobalAdmin: boolean = decodedToken.is_global_admin;\n const username: string = decodedToken.sub;\n const expirationTimestamp: number = decodedToken.exp;\n\n return { isGlobalAdmin, username, expirationTimestamp };\n};\n","const sessionKeys = {\n Token: 'token',\n RefreshToken: 'refreshToken',\n};\n\nexport class SessionStorageService {\n static setToken(token: string): void {\n sessionStorage.setItem(sessionKeys.Token, token);\n }\n\n static setRefreshToken(refreshToken: string): void {\n sessionStorage.setItem(sessionKeys.RefreshToken, refreshToken);\n }\n\n static getToken(): string | null {\n return sessionStorage.getItem(sessionKeys.Token);\n }\n\n static getRefreshToken(): string | null {\n return sessionStorage.getItem(sessionKeys.RefreshToken);\n }\n\n static clearToken(): void {\n sessionStorage.removeItem(sessionKeys.Token);\n sessionStorage.removeItem(sessionKeys.RefreshToken);\n }\n}\n","import { Reducer } from 'redux';\nimport {\n MeasurementCardResponse,\n ResolutionEnumDto,\n StackFilterOptionsResponse,\n StackStatisticsQueryRequest,\n StackStatisticsResponse,\n} from '../.generated/api';\n\nexport const UPDATE_DASHBOARD_MEASUREMENT_CARD =\n 'UPDATE_DASHBOARD_MEASUREMENT_CARD';\nexport const UPDATE_DASHBOARD_STACK_STATISTICS =\n 'UPDATE_DASHBOARD_STACK_STATISTICS';\nexport const UPDATE_DASHBOARD_FILTER_OPTIONS =\n 'UPDATE_DASHBOARD_FILTER_OPTIONS';\n\nexport interface DashboardState {\n measurementCard?: MeasurementCardResponse | null;\n stackStatistics?: StackStatisticsResponse | null;\n filters?: StackStatisticsQueryRequest;\n filtersApplied: number;\n updatedAt?: Date; // latest statistics query timestamp\n filterOptions?: StackFilterOptionsResponse | null;\n}\n\nexport interface UpdateDashboardMeasurementCard {\n type: typeof UPDATE_DASHBOARD_MEASUREMENT_CARD;\n measurementCard?: MeasurementCardResponse | null;\n}\n\nexport interface UpdateDashboardStackStatistics {\n type: typeof UPDATE_DASHBOARD_STACK_STATISTICS;\n stackStatistics?: StackStatisticsResponse | null;\n filters?: StackStatisticsQueryRequest;\n}\n\nexport interface UpdateDashboardFilterOptions {\n type: typeof UPDATE_DASHBOARD_FILTER_OPTIONS;\n filterOptions?: StackFilterOptionsResponse | null;\n}\ntype DashboardActionTypes =\n | UpdateDashboardStackStatistics\n | UpdateDashboardMeasurementCard\n | UpdateDashboardFilterOptions;\n\nconst countFiltersApplied = (filters?: StackStatisticsQueryRequest) => {\n let count = 0;\n if (filters) {\n filters.sawmillIds && (count += filters.sawmillIds.length);\n filters.surveyors && (count += filters.surveyors.length);\n filters.treeSpecies && (count += filters.treeSpecies.length);\n filters.assortments && (count += filters.assortments.length);\n filters.areaNumber && count++;\n filters.assortmentLengthMin && filters.assortmentLengthMax && count++;\n }\n return count;\n};\n\nconst dashboardReducer: Reducer = (\n state: DashboardState | undefined,\n incomingAction: DashboardActionTypes,\n): DashboardState => {\n if (state === undefined) {\n return {\n stackStatistics: null,\n filtersApplied: 0,\n filterOptions: null,\n measurementCard: null,\n };\n }\n switch (incomingAction.type) {\n case UPDATE_DASHBOARD_MEASUREMENT_CARD:\n return {\n ...state,\n measurementCard: incomingAction.measurementCard,\n };\n case UPDATE_DASHBOARD_STACK_STATISTICS:\n return {\n ...state,\n stackStatistics: incomingAction.stackStatistics,\n filters: incomingAction.filters,\n filtersApplied: countFiltersApplied(incomingAction.filters),\n updatedAt: new Date(),\n };\n case UPDATE_DASHBOARD_FILTER_OPTIONS: {\n return {\n ...state,\n filterOptions: incomingAction.filterOptions,\n };\n }\n default:\n return state;\n }\n};\n\nexport { dashboardReducer };\n","import { SnackbarMessage, OptionsObject } from 'notistack';\n\nimport {\n ENQUEUE_SNACKBAR,\n CLOSE_SNACKBAR,\n REMOVE_SNACKBAR,\n NotificationActions,\n} from 'actions/notificationActions';\n\nexport type Notification = {\n message: SnackbarMessage;\n key: number | string;\n options?: OptionsObject;\n dismissed?: boolean;\n};\n\nexport interface NotificationState {\n notifications: Notification[];\n}\n\nconst initialState: NotificationState = {\n notifications: [],\n};\n\nexport function notificationReducer(\n state = initialState,\n action: NotificationActions,\n): NotificationState {\n switch (action.type) {\n case ENQUEUE_SNACKBAR:\n return {\n ...state,\n notifications: [...state.notifications, action.notification],\n };\n\n case CLOSE_SNACKBAR:\n return {\n ...state,\n notifications: state.notifications.map((notification) =>\n action.dismissAll || notification.key === action.key\n ? { ...notification, dismissed: true }\n : { ...notification },\n ),\n };\n\n case REMOVE_SNACKBAR:\n return {\n ...state,\n notifications: state.notifications.filter(\n (notification) => notification.key !== action.key,\n ),\n };\n\n default:\n return state;\n }\n}\n","import { Reducer } from 'redux';\nimport { SawmillResponse } from '../.generated/api';\n\nexport const UPDATE_SAWMILL_LIST = 'UPDATE_SAWMILL_LIST';\n\n// export interface SawmillUser {\n// email: string;\n// name: string;\n// phone: string;\n// }\n\n// export interface Sawmill {\n// id: string;\n// name: string;\n// users: SawmillUser[];\n// }\n\nexport interface SawmillState {\n sawmills?: SawmillResponse[];\n}\n\nexport interface UpdateSawmillList {\n type: typeof UPDATE_SAWMILL_LIST;\n sawmills?: SawmillResponse[];\n}\n\ntype SawmillsActionTypes = UpdateSawmillList;\n\nconst sawmillReducer: Reducer = (\n state: SawmillState | undefined,\n incomingAction: SawmillsActionTypes,\n): SawmillState => {\n if (state === undefined) {\n return {\n sawmills: [],\n };\n }\n switch (incomingAction.type) {\n case UPDATE_SAWMILL_LIST:\n return {\n ...state,\n sawmills: incomingAction.sawmills?.sort((a, b) =>\n a.name.localeCompare(b.name),\n ),\n };\n default:\n return state;\n }\n};\n\nexport { sawmillReducer };\n","import { Reducer } from 'redux';\nimport {\n ListStacksResponseItemPaginatedResponse,\n MeasurementCardResponse,\n StackCoordinateResponse,\n StackFilterOptionsResponse,\n StackMapInfoResponse,\n StacksQueryPagedRequest,\n} from '../.generated/api';\nimport { IStackQuery } from './models/IStackQuery';\n\nexport const UPDATE_STACK_MEASUREMENT_CARD = 'UPDATE_STACK_MEASUREMENT_CARD';\nexport const UPDATE_STACK_LIST = 'UPDATE_STACK_LIST';\nexport const UPDATE_STACK_COORDINATES = 'UPDATE_STACK_COORDINATES';\nexport const UPDATE_STACK_MAP_INFO = 'UPDATE_STACK_MAP_INFO';\nexport const SIGNAL_STACK_LIST_LOADING = 'SIGNAL_STACK_LIST_LOADING';\nexport const SIGNAL_STACK_COORDINATES_LOADING =\n 'SIGNAL_STACK_COORDINATES_LOADING';\nexport const UPDATE_STACK_FILTER_OPTIONS = 'UPDATE_STACK_FILTER_OPTIONS';\nexport const STACK_DELETE = 'STACK_DELETE';\nexport const STACK_DELETE_SUCCESS = 'STACK_DELETE_SUCCESS';\nexport const STACK_DELETE_ERROR = 'STACK_DELETE_ERROR';\nexport const UPDATE_ARCHIVE_DOWNLOAD_PROGRESS =\n 'UPDATE_ARCHIVE_DOWNLOAD_PROGRESS';\nexport const UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS =\n 'UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS';\nexport const UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS =\n 'UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS';\n\nexport interface StackListState {\n measurementCard?: MeasurementCardResponse | null;\n stacks: ListStacksResponseItemPaginatedResponse | null;\n updatedAt?: Date; // latest stack query timestamp\n coordinates: StackCoordinateResponse[];\n mapInfo?: StackMapInfoResponse;\n isLoadingStacks: boolean;\n isLoadingCoordinates: boolean;\n filters: IStackQuery;\n filtersApplied: number;\n stacksDeleting: string[];\n filterOptions?: StackFilterOptionsResponse | null;\n archiveDownloadProgress?: number; // negative means progress without total, [0-100] means percentage progress.\n accumulatedCsvDownloadProgress?: number; // negative means progress without total, [0-100] means percentage progress.\n accumulatedCsvDownloadAllProgress?: number; // negative means progress without total, [0-100] means percentage progress.\n}\n\nexport interface UpdateStackMeasurementCard {\n type: typeof UPDATE_STACK_MEASUREMENT_CARD;\n measurementCard?: MeasurementCardResponse | null;\n}\n\nexport interface UpdateStackList {\n type: typeof UPDATE_STACK_LIST;\n stacks: ListStacksResponseItemPaginatedResponse | null;\n filters: IStackQuery;\n}\n\nexport interface UpdateStackCoordinates {\n type: typeof UPDATE_STACK_COORDINATES;\n coordinates: StackCoordinateResponse[];\n}\n\nexport interface UpdateStackMapInfo {\n type: typeof UPDATE_STACK_MAP_INFO;\n mapInfo?: StackMapInfoResponse;\n}\n\nexport interface SignalStackListLoading {\n type: typeof SIGNAL_STACK_LIST_LOADING;\n}\n\nexport interface SignalStackCoordinatesLoading {\n type: typeof SIGNAL_STACK_COORDINATES_LOADING;\n}\n\nexport interface UpdateStackFilterOptions {\n type: typeof UPDATE_STACK_FILTER_OPTIONS;\n filterOptions?: StackFilterOptionsResponse | null;\n}\n\nexport interface StackDelete {\n type: typeof STACK_DELETE;\n stackId: string;\n}\n\nexport interface StackDeleteSuccess {\n type: typeof STACK_DELETE_SUCCESS;\n stackId: string;\n}\n\nexport interface StackDeleteError {\n type: typeof STACK_DELETE_ERROR;\n stackId: string;\n}\n\nexport interface UpdateArchiveDownloadProgress {\n type: typeof UPDATE_ARCHIVE_DOWNLOAD_PROGRESS;\n progress?: number;\n}\n\nexport interface UpdateAccumulatedCsvDownloadProgress {\n type: typeof UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS;\n progress?: number;\n}\n\nexport interface UpdateAccumulatedCsvDownloadAllProgress {\n type: typeof UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS;\n progress?: number;\n}\n\nconst countFiltersApplied = (filters: StacksQueryPagedRequest) => {\n let count = 0;\n filters.states && (count += filters.states.length);\n filters.sawmillIds && (count += filters.sawmillIds.length);\n filters.registrators && (count += filters.registrators.length);\n filters.surveyors && (count += filters.surveyors.length);\n filters.search && filters.search.length > 0 && count++;\n filters.treeSpecies && (count += filters.treeSpecies.length);\n filters.assortments && (count += filters.assortments.length);\n filters.areaNumber && count++;\n filters.assortmentLengthMin && filters.assortmentLengthMax && count++;\n filters.fullMeasurement && count++;\n return count;\n};\n\ntype StackListActionTypes =\n | UpdateStackMeasurementCard\n | UpdateStackList\n | UpdateStackCoordinates\n | UpdateStackMapInfo\n | SignalStackListLoading\n | SignalStackCoordinatesLoading\n | UpdateStackFilterOptions\n | StackDelete\n | StackDeleteSuccess\n | StackDeleteError\n | UpdateArchiveDownloadProgress\n | UpdateAccumulatedCsvDownloadProgress\n | UpdateAccumulatedCsvDownloadAllProgress;\n\nconst stackListReducer: Reducer = (\n state: StackListState | undefined,\n incomingAction: StackListActionTypes,\n): StackListState => {\n if (state === undefined) {\n return {\n measurementCard: null,\n stacks: null,\n filterOptions: null,\n coordinates: [],\n isLoadingStacks: false,\n isLoadingCoordinates: false,\n stacksDeleting: [],\n filters: {\n departmentIds: [],\n showMap: 'true',\n },\n filtersApplied: 0,\n };\n }\n\n switch (incomingAction.type) {\n case UPDATE_STACK_MEASUREMENT_CARD:\n return {\n ...state,\n measurementCard: incomingAction.measurementCard,\n };\n case UPDATE_STACK_LIST:\n return {\n ...state,\n stacks: incomingAction.stacks,\n filters: incomingAction.filters,\n filtersApplied: countFiltersApplied(incomingAction.filters),\n isLoadingStacks: false,\n updatedAt: new Date(),\n };\n case UPDATE_STACK_COORDINATES:\n return {\n ...state,\n coordinates: incomingAction.coordinates,\n isLoadingCoordinates: false,\n };\n case UPDATE_STACK_MAP_INFO:\n return {\n ...state,\n mapInfo: incomingAction.mapInfo,\n };\n case SIGNAL_STACK_LIST_LOADING:\n return {\n ...state,\n isLoadingStacks: true,\n };\n case SIGNAL_STACK_COORDINATES_LOADING:\n return {\n ...state,\n isLoadingCoordinates: true,\n };\n case UPDATE_STACK_FILTER_OPTIONS:\n return {\n ...state,\n filterOptions: incomingAction.filterOptions,\n };\n case STACK_DELETE: {\n if (state.stacksDeleting.includes(incomingAction.stackId)) {\n return state;\n }\n\n return {\n ...state,\n stacksDeleting: state.stacksDeleting.concat(incomingAction.stackId),\n };\n }\n case STACK_DELETE_SUCCESS:\n return state.stacks\n ? {\n ...state,\n stacks: {\n ...state.stacks,\n data:\n state.stacks.data.filter(\n (stack) => stack.stackId !== incomingAction.stackId,\n ) ?? [],\n },\n stacksDeleting: state.stacksDeleting.filter(\n (x) => x !== incomingAction.stackId,\n ),\n }\n : state;\n case STACK_DELETE_ERROR:\n return {\n ...state,\n stacksDeleting: state.stacksDeleting.filter(\n (x) => x !== incomingAction.stackId,\n ),\n };\n case UPDATE_ARCHIVE_DOWNLOAD_PROGRESS:\n return {\n ...state,\n archiveDownloadProgress: incomingAction.progress,\n };\n case UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS:\n return {\n ...state,\n accumulatedCsvDownloadProgress: incomingAction.progress,\n };\n case UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS:\n return {\n ...state,\n accumulatedCsvDownloadAllProgress: incomingAction.progress,\n };\n\n default:\n return state;\n }\n};\n\nexport { stackListReducer };\n","import { Reducer } from 'redux';\nimport { GetStackResponse, FieldResponse } from '../.generated/api';\n\nexport const UPDATE_STACK = 'UPDATE_STACK';\nexport const STACK_ERROR = 'STACK_ERROR';\n\nexport interface StackSection {\n title: Record;\n fields: Array;\n}\n\nexport interface StackState {\n sections?: StackSection[];\n stack?: GetStackResponse;\n}\n\nexport interface UpdateStack {\n type: typeof UPDATE_STACK;\n stack?: GetStackResponse;\n}\nexport interface StackError {\n type: typeof STACK_ERROR;\n}\n\n// do some pre processing before saving to stack state\nfunction stackStateFromResponse(stackResponse: GetStackResponse): StackState {\n // build field map and set values\n // TODO: field values may be removed in the future, so values should be forwarded separately.\n const fieldMap: Record = {};\n const values = stackResponse?.values ?? {};\n stackResponse?.measurementCard?.fields?.forEach((field) => {\n if (field.id) {\n field.defaultValue = values[field.id];\n fieldMap[field.id] = field;\n }\n });\n\n // build sections from display configuration and field map\n const sections: StackSection[] = [];\n stackResponse?.measurementCard?.displayConfigurationAdmin?.sections?.forEach(\n (displaySection) => {\n const fields: FieldResponse[] = [];\n for (const fieldId of displaySection.fields) {\n const field = fieldMap[fieldId];\n const value = values[fieldId];\n if (field && value != null) {\n fields.push(field);\n }\n }\n if (fields.length > 0) {\n sections.push({\n title: displaySection.title,\n fields: fields,\n });\n }\n },\n );\n\n return {\n sections: sections,\n stack: stackResponse,\n };\n}\n\ntype StackActionTypes = UpdateStack | StackError;\n\nconst stackReducer: Reducer = (\n state: StackState | undefined,\n incomingAction: StackActionTypes,\n): StackState => {\n if (state === undefined) {\n return {};\n }\n switch (incomingAction.type) {\n case UPDATE_STACK:\n return incomingAction.stack\n ? stackStateFromResponse(incomingAction.stack)\n : {};\n case STACK_ERROR:\n return {\n sections: [],\n };\n default:\n return state;\n }\n};\n\nexport { stackReducer };\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum AccountingEnumDto {\n DANISH = 'Danish',\n GERMAN = 'German'\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum CurrencyEnumDto {\n DKK = 'DKK',\n EUR = 'EUR',\n USD = 'USD',\n GBP = 'GBP'\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ExportFormatEnumDto {\n CSV = 'Csv',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum FieldTypeEnumResponse {\n BOOLEAN = 'Boolean',\n STRING = 'String',\n TEXT = 'Text',\n INTEGER = 'Integer',\n DOUBLE = 'Double',\n DATE = 'Date',\n POSITION = 'Position',\n IMAGE = 'Image',\n OPTIONS = 'Options',\n MULTIPLE_OPTIONS = 'MultipleOptions',\n KEY_VALUE_PAIR_STRING_INT = 'KeyValuePairStringInt',\n ARRAY_OF_INT = 'ArrayOfInt',\n ARRAY_OF_DOUBLE = 'ArrayOfDouble',\n MANUAL_AREA = 'ManualArea',\n DEDUCTIONS = 'Deductions',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum LevelOfInvoiceEnumDto {\n ORGANIZATION = 'Organization',\n DEPARTMENT = 'Department',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ResolutionEnumDto {\n HOURLY = 'Hourly',\n DAILY = 'Daily',\n MONTHLY = 'Monthly',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum RoleEnumDto {\n ORGANIZATION_ADMIN = 'OrganizationAdmin',\n DEPARTMENT_ADMIN = 'DepartmentAdmin',\n REGISTRATOR = 'Registrator',\n SURVEYOR = 'Surveyor',\n INTEGRATION = 'Integration',\n NOT_SET = 'NotSet',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum SettlementTypeEnumDto {\n FixedPriceNoMinimumVolume = 'FixedPriceNoMinimumVolume',\n FixedPriceWithMinimumVolume = 'FixedPriceWithMinimumVolume',\n DynamicPrice1 = 'DynamicPrice1',\n DynamicPrice2 = 'DynamicPrice2'\n}\n","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum StackDateTypeDto {\n PRE_REGISTRATION = 'PreRegistration',\n MEASURED = 'Measured',\n LOADED_INTO_SYSTEM = 'LoadedIntoSystem',\n ASSIGNED_TO_SAWMILL = 'AssignedToSawmill',\n LAST_CHANGED = 'LastChanged',\n INVOICEABLE = 'Invoiceable',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum StackFileTypeEnumDto {\n FRONT_IMAGE = 'FrontImage',\n BACK_IMAGE = 'BackImage',\n CLOSEUP_IMAGE = 'CloseupImage',\n FRONT_IMAGE_ANNOTATIONS = 'FrontImageAnnotations',\n BACK_IMAGE_ANNOTATIONS = 'BackImageAnnotations',\n CLOSEUP_IMAGE_ANNOTATIONS = 'CloseupImageAnnotations',\n REPORT = 'Report',\n LDAT = 'LDAT',\n XML = 'XML',\n CSV = 'Csv',\n HESSEN_ELDAT = 'HessenELDAT',\n OTHER = 'Other',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum StackNumberingEnumDto {\n AUTO_GENERATED = 'AutoGenerated',\n MANUEL = 'Manuel',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum StackStateEnumDto {\n PRE_REGISTRATION = 'PreRegistration',\n MEASURED = 'Measured',\n ASSIGNED_TO_SAWMILL = 'AssignedToSawmill',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum StateEnumDto {\n ACTIVE = 'Active',\n INACTIVE = 'Inactive',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum UnitEnumResponse {\n SQUARE_FEET = 'SquareFeet',\n INCHES = 'Inches',\n METERS = 'Meters',\n CENTIMETERS = 'Centimeters',\n CUBIC_METERS = 'CubicMeters',\n SQUARE_METERS = 'SquareMeters',\n FEET = 'Feet',\n PERCENTAGES = 'Percentages',\n PIECES = 'Pieces',\n CUBIC_FEET = 'CubicFeet',\n}","/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\n\nexport enum ValidationTypeEnumResponse {\n MIN_VALUE = 'MinValue',\n MAX_VALUE = 'MaxValue',\n REQUIRED_FOR_PREREGISTRATION = 'RequiredForPreregistration',\n REQUIRED_FOR_MEASUREMENT = 'RequiredForMeasurement',\n MIN_SUM = 'MinSum',\n MAX_SUM = 'MaxSum',\n MIN_CHAR_LENGTH = 'MinCharLength',\n MAX_CHAR_LENGTH = 'MaxCharLength',\n MIN_ALLOWED_OPTIONS = 'MinAllowedOptions',\n MAX_ALLOWED_OPTIONS = 'MaxAllowedOptions',\n}","import { RouterState } from 'connected-react-router';\nimport {\n flowDialogReducer,\n FlowDialogState,\n} from 'components/flowDialog/FlowDialogStore';\nimport { loginReducer, LoginState } from 'store/login';\nimport { dashboardReducer, DashboardState } from 'store/dashboard';\nimport { organizationReducer, OrganizationState } from 'store/organization';\nimport { departmentReducer, DepartmentState } from 'store/department';\nimport { notificationReducer, NotificationState } from 'store/notification';\nimport { sawmillReducer, SawmillState } from 'store/sawmill';\nimport {\n organizationListReducer,\n OrganizationListState,\n} from 'store/organizations';\n\nimport { stackListReducer, StackListState } from 'store/stacks';\nimport { stackReducer, StackState } from 'store/stack';\n\nexport interface ApplicationState {\n router: RouterState;\n isLoggedIn: LoginState;\n flowDialog: FlowDialogState;\n dashboard: DashboardState;\n organization: OrganizationState;\n organizations: OrganizationListState;\n stack: StackState;\n stacks: StackListState;\n department: DepartmentState;\n notification: NotificationState;\n sawmills: SawmillState;\n}\n\nexport const reducers = {\n isLoggedIn: loginReducer,\n flowDialog: flowDialogReducer,\n dashboard: dashboardReducer,\n organization: organizationReducer,\n organizations: organizationListReducer,\n stack: stackReducer,\n stacks: stackListReducer,\n department: departmentReducer,\n notification: notificationReducer,\n sawmills: sawmillReducer,\n};\n\nexport interface AppThunkAction {\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\n}\n","import { Reducer } from 'redux';\nimport { IUser, IUserAccess } from './models';\nimport { getTokenData } from '../helpers/decodeToken';\nimport { SessionStorageService } from 'services/sessionStorageService';\nimport { SawmillUserInfoResponse } from '.generated/api';\n\nexport interface LoginState {\n isLoggedIn: boolean;\n user?: IUser;\n userAccess?: IUserAccess;\n error?: string;\n sawmillUserInfo?: SawmillUserInfoResponse;\n}\nexport interface LogInAction {\n type: 'LOGIN_SUCCESS';\n user: IUser;\n}\nexport interface LogInFailure {\n type: 'LOGIN_FAILURE';\n username: string;\n}\nexport interface LogOutAction {\n type: 'LOGOUT';\n}\n\nexport interface SetUserInfoAction {\n type: 'SET_USER_INFO';\n userInfo: IUserAccess;\n}\n\nexport interface SetSawmillUserInfoAction {\n type: 'SET_SAWMILL_USER_INFO';\n userInfo: SawmillUserInfoResponse;\n}\n\ntype LogInActionTypes =\n | LogInAction\n | LogInFailure\n | LogOutAction\n | SetUserInfoAction\n | SetSawmillUserInfoAction;\n\nconst loginReducer: Reducer = (\n state: LoginState | undefined,\n incomingAction: LogInActionTypes,\n): LoginState => {\n if (state === undefined) {\n const token = SessionStorageService.getToken();\n if (token) {\n const tokenData = getTokenData(token);\n const user: IUser = {\n username: tokenData.username,\n password: '',\n };\n\n return {\n isLoggedIn: true,\n user: user,\n };\n } else {\n return { isLoggedIn: false };\n }\n }\n\n const action = incomingAction;\n\n switch (action.type) {\n case 'LOGIN_SUCCESS':\n return { ...state, isLoggedIn: true, user: action.user };\n case 'LOGIN_FAILURE':\n return { isLoggedIn: false, error: action.username };\n case 'LOGOUT':\n return { isLoggedIn: false };\n case 'SET_USER_INFO': {\n return {\n isLoggedIn: state.isLoggedIn,\n user: state.user,\n error: state.error,\n userAccess: {\n isGlobalAdmin: action.userInfo.isGlobalAdmin,\n departments: action.userInfo.departments,\n organizations: action.userInfo.organizations,\n sawmills: action.userInfo.sawmills,\n },\n };\n }\n case 'SET_SAWMILL_USER_INFO':\n return { ...state, sawmillUserInfo: action.userInfo };\n default:\n return state;\n }\n};\n\nexport { loginReducer };\n","import { Reducer } from 'redux';\n\nexport interface FlowDialogState {\n step: number;\n buttonDisabled?: boolean;\n callbackFn?: () => void;\n isProcessing: boolean;\n isCompleted?: boolean;\n}\n\nexport interface SetStepAction {\n type: 'SET_STEP';\n step: number;\n}\n\nexport interface DisableButtonAction {\n type: 'DISABLE_BUTTON';\n disabled: boolean;\n}\n\nexport interface SetCallbackAction {\n type: 'SET_CALLBACK';\n callbackFn: () => void;\n}\n\nexport interface SetIsProcessing {\n type: 'SET_IS_PROCESSING';\n isProcessing: boolean;\n}\n\nexport interface SetFlowCompleted {\n type: 'SET_FLOW_COMPLETED';\n}\n\nexport interface ClearFlowCompleted {\n type: 'CLEAR_FLOW_COMPLETED';\n}\n\ntype FlowDialogActionTypes =\n | SetStepAction\n | SetCallbackAction\n | DisableButtonAction\n | SetIsProcessing\n | SetFlowCompleted\n | ClearFlowCompleted;\n\nconst flowDialogReducer: Reducer = (\n state: FlowDialogState | undefined,\n incomingAction: FlowDialogActionTypes,\n): FlowDialogState => {\n if (state === undefined) {\n return { step: 1, isProcessing: false };\n }\n const action = incomingAction;\n\n switch (action.type) {\n case 'SET_STEP':\n return {\n ...state,\n step: action.step,\n buttonDisabled: false,\n isProcessing: false,\n isCompleted: false,\n };\n case 'SET_CALLBACK':\n return {\n ...state,\n callbackFn: action.callbackFn,\n };\n case 'DISABLE_BUTTON':\n return {\n ...state,\n buttonDisabled: action.disabled,\n };\n case 'SET_IS_PROCESSING':\n return {\n ...state,\n isProcessing: action.isProcessing,\n };\n case 'SET_FLOW_COMPLETED':\n return {\n ...state,\n isProcessing: false,\n isCompleted: true,\n };\n case 'CLEAR_FLOW_COMPLETED':\n return {\n ...state,\n isCompleted: false,\n };\n default:\n return state;\n }\n};\n\nexport { flowDialogReducer };\n","import { Reducer } from 'redux';\nimport {\n ContractInformationRequest,\n ContractInformationResponse,\n CreateOrganizationResponse,\n OrganizationResponse,\n} from '../.generated/api';\n\nexport interface OrganizationState {\n name: string;\n id: string;\n error?: string;\n organization?: OrganizationResponse | null;\n currentContract?: ContractInformationResponse | null;\n nextContract?: ContractInformationResponse | null;\n logo?: string;\n}\nexport interface CreateOrganizationActionSuccess {\n type: 'CREATE_ORGANIZATION_SUCCESS';\n organization: CreateOrganizationResponse;\n}\n\nexport interface GetOrganizationByIdError {\n type: 'GET_ORGANIZATION_ERROR';\n error: string;\n}\n\nexport interface GetOrganizationByIdSuccess {\n type: 'GET_ORGANIZATION_SUCCESS';\n organization: OrganizationResponse;\n}\n\nexport interface CreateOrganizationActionFailure {\n type: 'CREATE_ORGANIZATION_FAILURE';\n error: string;\n}\nexport interface OrganizationResetStateAction {\n type: 'ORGANIZAION_RESET_STATE';\n}\n\nexport interface CreateOrganizationRemoveErrorAction {\n type: 'ORGANIZATION_REMOVE_ERROR';\n}\n\nexport interface UpdateOrganizationErrorAction {\n type: 'UPDATE_ORGANIZATION_ERROR';\n error: string;\n}\n\nexport interface UpdateOrganizationSuccessAction {\n type: 'UPDATE_ORGANIZATION_SUCCESS';\n}\n\nexport interface UpdateOrganizationLogoAction {\n type: 'UPDATE_ORGANIZATION_LOGO';\n logo?: string;\n}\n\nexport interface UpdateCurrentContractAction {\n type: 'UPDATE_CURRENT_CONTRACT';\n currentContract?: ContractInformationResponse | null;\n}\n\nexport interface UpdateNextContractAction {\n type: 'UPDATE_NEXT_CONTRACT';\n nextContract?: ContractInformationResponse | null;\n}\n\ntype CreateOrganizationActionTypes =\n | CreateOrganizationActionSuccess\n | CreateOrganizationActionFailure\n | OrganizationResetStateAction\n | CreateOrganizationRemoveErrorAction\n | GetOrganizationByIdSuccess\n | GetOrganizationByIdError\n | UpdateOrganizationErrorAction\n | UpdateOrganizationSuccessAction\n | UpdateOrganizationLogoAction\n | UpdateCurrentContractAction\n | UpdateNextContractAction;\n\nconst organizationReducer: Reducer<\n OrganizationState,\n CreateOrganizationActionTypes\n> = (\n state: OrganizationState | undefined,\n incomingAction: CreateOrganizationActionTypes,\n): OrganizationState => {\n if (state === undefined) {\n return { name: '', id: '' };\n }\n\n switch (incomingAction.type) {\n case 'GET_ORGANIZATION_SUCCESS':\n return {\n ...state,\n error: undefined,\n organization: incomingAction.organization,\n };\n case 'GET_ORGANIZATION_ERROR':\n return {\n ...state,\n error: incomingAction.error,\n organization: null,\n };\n case 'CREATE_ORGANIZATION_SUCCESS':\n return {\n name: incomingAction.organization.name,\n id: incomingAction.organization.id,\n };\n case 'CREATE_ORGANIZATION_FAILURE':\n return {\n ...state,\n };\n case 'UPDATE_ORGANIZATION_ERROR':\n return {\n ...state,\n error: incomingAction.error,\n };\n case 'UPDATE_ORGANIZATION_SUCCESS':\n return {\n ...state,\n error: undefined,\n };\n case 'UPDATE_ORGANIZATION_LOGO':\n return {\n ...state,\n logo: incomingAction.logo,\n };\n case 'UPDATE_CURRENT_CONTRACT':\n return {\n ...state,\n currentContract: incomingAction.currentContract,\n };\n case 'UPDATE_NEXT_CONTRACT':\n return {\n ...state,\n nextContract: incomingAction.nextContract,\n };\n case 'ORGANIZATION_REMOVE_ERROR':\n return {\n ...state,\n error: undefined,\n };\n case 'ORGANIZAION_RESET_STATE':\n return {\n name: '',\n id: '',\n };\n default:\n return state;\n }\n};\n\nexport { organizationReducer };\n","import { Reducer } from 'redux';\nimport { ListOrganizationsDetailedResponseItem } from '../.generated/api';\n\nexport interface OrganizationListState {\n organizations: ListOrganizationsDetailedResponseItem[] | null;\n}\nexport interface OrganizationListSuccess {\n type: 'ORGANIZATION_LIST_SUCCESS';\n organizations: ListOrganizationsDetailedResponseItem[] | null;\n}\n\ntype OrganizationListActionTypes = OrganizationListSuccess;\n\nconst organizationListReducer: Reducer<\n OrganizationListState,\n OrganizationListActionTypes\n> = (\n state: OrganizationListState | undefined,\n incomingAction: OrganizationListActionTypes,\n): OrganizationListState => {\n if (state === undefined) {\n return { organizations: null };\n }\n\n switch (incomingAction.type) {\n case 'ORGANIZATION_LIST_SUCCESS':\n return {\n organizations: incomingAction.organizations,\n };\n default:\n return state;\n }\n};\n\nexport { organizationListReducer };\n","import { Reducer } from 'redux';\nimport {\n CreateDepartmentResponse,\n DepartmentResponse,\n} from '../.generated/api';\n\nexport interface DepartmentState {\n department?: DepartmentResponse | null;\n name: string;\n id: string;\n error?: string;\n}\n\nexport interface CreateDepartmentActionSuccess {\n type: 'CREATE_DEPARTMENT_SUCCESS';\n department: CreateDepartmentResponse;\n}\nexport interface CreateDepartmentActionFailure {\n type: 'CREATE_DEPARTMENT_FAILURE';\n error: string;\n}\nexport interface GetDepartmentByIdError {\n type: 'GET_DEPARTMENT_ERROR';\n error: string;\n}\n\nexport interface GetDepartmentByIdSuccess {\n type: 'GET_DEPARTMENT_SUCCESS';\n department: DepartmentResponse;\n}\n\nexport interface CreateDepartmentResetStateAction {\n type: 'DEPARTMENT_STATE_RESET';\n}\n\nexport interface CreateDepartmentRemoveErrorAction {\n type: 'DEPARTMENT_REMOVE_ERROR';\n}\n\ntype CreateDepartmentActionTypes =\n | GetDepartmentByIdError\n | GetDepartmentByIdSuccess\n | CreateDepartmentActionSuccess\n | CreateDepartmentActionFailure\n | CreateDepartmentResetStateAction\n | CreateDepartmentRemoveErrorAction;\n\nconst departmentReducer: Reducer<\n DepartmentState,\n CreateDepartmentActionTypes\n> = (\n state: DepartmentState | undefined,\n incomingAction: CreateDepartmentActionTypes,\n): DepartmentState => {\n if (state === undefined) {\n return { name: '', id: '' };\n }\n\n switch (incomingAction.type) {\n case 'GET_DEPARTMENT_SUCCESS':\n return {\n name: state.name,\n id: state.id,\n error: undefined,\n department: incomingAction.department,\n };\n case 'GET_DEPARTMENT_ERROR':\n return {\n name: state.name,\n id: state.id,\n error: incomingAction.error,\n department: null,\n };\n case 'CREATE_DEPARTMENT_SUCCESS':\n return {\n name: incomingAction.department.name,\n id: incomingAction.department.id,\n error: undefined,\n };\n case 'CREATE_DEPARTMENT_FAILURE':\n return {\n name: state.name,\n id: state.id,\n error: incomingAction.error,\n };\n case 'DEPARTMENT_STATE_RESET':\n return {\n name: '',\n id: '',\n error: undefined,\n department: null,\n };\n case 'DEPARTMENT_REMOVE_ERROR':\n return { name: state.name, id: state.id, error: undefined };\n default:\n return state;\n }\n};\n\nexport { departmentReducer };\n","export default __webpack_public_path__ + \"static/media/Kobenhavn.71d869c3.ttf\";","import { createMuiTheme } from '@material-ui/core/styles';\nimport Kobenhavn from 'static/media/Kobenhavn.ttf';\n\nconst kobenhavn = {\n fontFamily: 'Kobenhavn',\n fontStyle: 'normal',\n fontWeight: 'normal',\n src: `\n local('Kobenhavn'),\n url(${Kobenhavn}) format('embedded-opentype'),\n url(${Kobenhavn}) format('woff2'),\n url(${Kobenhavn}) format('woff'),\n url(${Kobenhavn}) format('truetype'),\n url(${Kobenhavn}) format('svg')\n `,\n unicodeRange:\n 'U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF',\n};\n\nexport const primaryColor = (alpha = '1') => {\n return `rgba(40, 71, 92,${alpha})`; // cadet\n};\nexport const secondaryColor = (alpha = '1') => {\n return `rgba(91, 110, 125,${alpha})`;\n};\nexport const buttonPrimaryColor = () => {\n return 'rgba(0,166,75,1)'; // green\n};\nconst buttonHoverColor = () => {\n return 'rgba(70, 181, 113, 1)';\n};\n\nconst buttonActiveColor = () => {\n return 'rgba(0, 100, 58, 1)';\n};\n\nexport const buttonInactiveColor = () => {\n return 'rgba(180, 184, 194, 1)';\n};\n\nexport const warningColor = 'rgb(237,106,50)';\nexport const errorColor = 'rgb(244,67,54)';\n\nconst defaultTheme = createMuiTheme();\n\nconst theme = createMuiTheme({\n palette: {\n type: 'light',\n primary: {\n main: primaryColor(),\n light: primaryColor('0.1'),\n dark: primaryColor('0.8'),\n },\n secondary: {\n main: secondaryColor(),\n light: secondaryColor('0.1'),\n dark: secondaryColor('0.9'),\n },\n error: {\n main: warningColor,\n },\n background: {\n default: secondaryColor('0.1'),\n },\n },\n spacing: (factor) => `${0.5 * factor}rem`,\n typography: {\n fontFamily: ['Calibri', 'Arial', 'sans-serif'].join(','),\n fontSize: 14,\n body2: {\n fontSize: '0.9rem',\n },\n body1: {\n fontSize: '0.9rem',\n },\n\n subtitle1: {\n fontSize: '1rem',\n fontFamily: [kobenhavn.fontFamily, 'Calibri', 'Arial', 'sans-serif'].join(\n ',',\n ),\n },\n h1: {\n fontSize: '2rem',\n fontFamily: [kobenhavn.fontFamily, 'Calibri', 'Arial', 'sans-serif'].join(\n ',',\n ),\n },\n h2: {\n fontSize: '1.8rem',\n fontFamily: [kobenhavn.fontFamily, 'Calibri', 'Arial', 'sans-serif'].join(\n ',',\n ),\n },\n h3: {\n fontSize: '1.6rem',\n fontFamily: [kobenhavn.fontFamily, 'Calibri', 'Arial', 'sans-serif'].join(\n ',',\n ),\n },\n h4: {\n fontSize: '1.4rem',\n fontFamily: [kobenhavn.fontFamily, 'Calibri', 'Arial', 'sans-serif'].join(\n ',',\n ),\n },\n h5: {\n fontSize: '1.2rem',\n fontFamily: [kobenhavn.fontFamily, 'Calibri', 'Arial', 'sans-serif'].join(\n ',',\n ),\n },\n },\n overrides: {\n MuiCssBaseline: {\n '@global': {\n '@font-face': [kobenhavn],\n body: {\n backgroundColor: '#F2F3F5',\n },\n },\n },\n MuiToolbar: {\n gutters: {\n [defaultTheme.breakpoints.up('sm')]: {\n paddingLeft: '1rem',\n paddingRight: '1rem',\n },\n },\n },\n MuiPaper: {\n root: {\n backgroundColor: '#fff',\n color: primaryColor(),\n },\n },\n MuiDialog: {\n paperWidthMd: {\n maxWidth: '50rem',\n },\n paper: {\n padding: '2rem',\n },\n },\n MuiDialogTitle: {\n root: {\n padding: '0 0 1.5rem 0',\n },\n },\n MuiDialogContent: {\n root: {\n paddingLeft: '0',\n paddingRight: '0',\n overflow: 'hidden',\n height: '9.5rem',\n flex: 'auto',\n whiteSpace: 'pre-line',\n },\n },\n MuiDialogActions: {\n root: {\n padding: '2rem 0 0 0',\n },\n },\n MuiTableContainer: {\n root: {\n background: '#ffffff',\n },\n },\n MuiButton: {\n root: {\n margin: '0.5rem',\n minWidth: '8rem',\n '&$disabled': {\n color: buttonInactiveColor(),\n },\n },\n contained: {\n margin: '0.5rem',\n boxShadow: 'none',\n '&$disabled': {\n backgroundColor: buttonInactiveColor(),\n color: '#fff',\n boxShadow: 'none',\n },\n '&:hover': {\n backgroundColor: buttonHoverColor(),\n boxShadow: 'none',\n },\n },\n containedPrimary: {\n backgroundColor: buttonPrimaryColor(),\n '&:hover': {\n backgroundColor: buttonHoverColor(),\n },\n },\n outlinedSecondary: {\n '&:hover': {},\n '&:active': {\n backgroundColor: buttonActiveColor(),\n color: '#fff',\n borderColor: buttonHoverColor(),\n },\n '&$disabled': {\n backgroundColor: '#fff',\n color: buttonInactiveColor(),\n borderColor: buttonInactiveColor(),\n },\n },\n textPrimary: {\n color: primaryColor(),\n },\n textSecondary: {\n color: secondaryColor(),\n },\n },\n MuiTextField: {\n root: {\n '& .MuiOutlinedInput-root': {\n '&.Mui-focused fieldset': {\n borderColor: buttonPrimaryColor(),\n },\n },\n },\n },\n MuiFormControl: {\n root: {\n '& .MuiOutlinedInput-root': {\n '&.Mui-focused fieldset': {\n borderColor: buttonPrimaryColor(),\n },\n },\n },\n },\n MuiStepLabel: {\n active: {\n '&.MuiStepLabel-active': {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n '&.MuiStepLabel-completed': {\n color: primaryColor(),\n },\n },\n },\n MuiInputLabel: {\n root: {\n '&$focused': {\n color: buttonPrimaryColor(),\n },\n },\n outlined: {\n '&$shrink': {\n color: buttonPrimaryColor(),\n },\n },\n },\n MuiLink: {\n root: {\n fontWeight: 'bold',\n },\n },\n MuiSnackbarContent: {\n root: {\n backgroundColor: primaryColor(),\n color: '#fff',\n },\n },\n },\n});\n\nconst appBarTheme = createMuiTheme({\n ...theme,\n overrides: {\n ...theme.overrides,\n MuiOutlinedInput: {\n root: {\n color: '#fff',\n '&$focused $notchedOutline': {\n borderColor: '#fff',\n borderWidth: 1,\n },\n '&:hover $notchedOutline': {\n borderColor: '#fff',\n },\n },\n notchedOutline: {\n borderColor: '#fff',\n },\n },\n MuiSelect: {\n root: {\n paddingTop: '0.7rem',\n paddingBottom: '0.7rem',\n },\n iconOutlined: {\n color: '#fff',\n },\n },\n },\n});\n\nconst kobenhavnFont = createMuiTheme({\n ...theme,\n typography: {\n fontFamily: [kobenhavn.fontFamily, 'Calibri', 'Arial', 'sans-serif'].join(\n ',',\n ),\n },\n overrides: {\n MuiListItem: {\n root: {\n paddingTop: '0.2rem',\n paddingBottom: '0.2rem',\n marginBottom: '0.5rem',\n '&$selected': {\n backgroundColor: primaryColor(),\n '&:hover': {\n backgroundColor: 'rgb(113,130,143)',\n },\n },\n\n '&:hover': {\n backgroundColor: 'rgb(113,130,143)',\n },\n },\n },\n },\n});\n\nexport { theme, kobenhavnFont, appBarTheme };\n","import { createBrowserHistory } from 'history';\n\nexport const history = createBrowserHistory();\n","import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\n\nimport {\n AddressInformationResponse,\n AddUserToOrganizationRequest,\n ContractInformationRequest,\n ContactInformationRequest,\n ContactInformationResponse,\n CreateDepartmentRequest,\n CreateDepartmentResponse,\n CreateOrganizationRequest,\n CreateOrganizationResponse,\n ExportFormatEnumDto,\n ListOrganizationsResponse,\n OrganizationResponse,\n RoleEnumDto,\n StackNumberingEnumDto,\n StateEnumDto,\n UpdateAddressInformationRequest,\n GetStackResponse,\n UserInfoResponse,\n ListStacksResponse,\n DepartmentResponse,\n AddDepartmentUserRequest,\n UserModelDto,\n LoginRequest,\n LoginResponse,\n ListDepartmentsResponse,\n UpdateOrganizationUserRequest,\n UpdateDepartmentUserRequest,\n GetMeasurementCardListResponse,\n MeasurementCardInformationRequest,\n AddEmailToMailingListRequest,\n RemoveEmailFromMailingListRequest,\n AddAdministratorRequest,\n AddOrganizationContactRequest,\n UpdateOrganizationContactRequest,\n OrganizationLogoResponse,\n StackMapListResponse,\n StackMapInfoResponse,\n StackStatisticsResponse,\n StackFilterOptionsResponse,\n MeasurementCardResponse,\n CreateSawmillResponse,\n CreateSawmillRequest,\n RenameSawmillRequest,\n SawmillResponsePaginatedResponse,\n AssignStacksToSawmillRequest,\n AddSawmillUserRequest,\n UpdateSawmillUserRequest,\n SawmillUserInfoResponse,\n RefreshTokenResponse,\n RefreshRequest,\n ContractInformationResponse,\n UpdateDepartmentCustomerNumberRequest,\n ListOrganizationsDetailedResponse,\n DownloadArchiveRequest,\n DownloadAccumulatedRequest,\n DownloadAccumulatedFromFilterRequest,\n StacksQueryPagedRequest,\n StacksBySawmillQueryPagedRequest,\n StackFilterOptionsQueryRequest,\n StackStatisticsQueryRequest,\n} from '../.generated/api';\nimport { SessionStorageService } from './sessionStorageService';\n\nimport qs from 'qs';\nimport { getTokenData } from 'helpers/decodeToken';\n\nexport interface GetSawmillListFilter {\n organizationId: string;\n page: number;\n pageSize: number;\n}\n\nconst axiosRequestConfig = (): AxiosRequestConfig => {\n const token = SessionStorageService.getToken();\n return {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n paramsSerializer: (params) => {\n return qs.stringify(params, { arrayFormat: 'repeat' });\n },\n };\n};\n\nlet refreshPromise: Promise | undefined; // refresh operation in progress\nconst expirationOffsetInMinutes = 10;\n\nasync function refreshTokenIfExpired(): Promise {\n // console.log('refresh if expired');\n const token = SessionStorageService.getToken();\n const refreshToken = SessionStorageService.getRefreshToken();\n if (token && refreshToken) {\n const { username, expirationTimestamp } = getTokenData(token);\n if (username && expirationTimestamp) {\n const expirationDate = new Date(expirationTimestamp * 1000 /* s => ms */);\n const refDate = new Date();\n refDate.setMinutes(refDate.getMinutes() + expirationOffsetInMinutes); // refresh x minutes before expiration\n // console.log('compare expiration dates', expirationDate, refDate);\n if (expirationDate < refDate) {\n try {\n const response = await ApiService.refreshToken(\n username,\n refreshToken,\n );\n SessionStorageService.setToken(response.data.token);\n SessionStorageService.setRefreshToken(response.data.refreshToken);\n } catch (error) {\n console.warn('Refresh token failed', error);\n }\n }\n }\n }\n}\n\n// create axios instance that checks for token expiration.\nconst authAxios = axios.create();\nauthAxios.interceptors.request.use(async (config: AxiosRequestConfig) => {\n if (refreshPromise) {\n // reusing current refresh promise will prevent multiple refresh calls from being sent simultaniously.\n // also multiple Api calls may wait on the same refresh token call.\n // console.log('reuse promise', refreshPromise);\n await refreshPromise;\n return config;\n }\n const promise = refreshTokenIfExpired();\n refreshPromise = promise;\n await promise;\n refreshPromise = undefined;\n return config;\n});\n\nexport class ApiService {\n static baseUrl = 'api/v1';\n\n static refreshTokenIfExpired(): Promise {\n return refreshTokenIfExpired();\n }\n\n static async getUserInfo(): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/user-info`,\n axiosRequestConfig(),\n );\n }\n\n static async getSawmillUserInfo(): Promise<\n AxiosResponse\n > {\n return authAxios.get(\n `${ApiService.baseUrl}/user-info/sawmill`,\n axiosRequestConfig(),\n );\n }\n\n static async getOrganizationMeasurementCard(\n orgId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/organization/${orgId}/measurement-card`,\n axiosRequestConfig(),\n );\n }\n\n static async getMeasurementCardList(): Promise<\n AxiosResponse\n > {\n return authAxios.get(\n `${ApiService.baseUrl}/measurement-card/list`,\n axiosRequestConfig(),\n );\n }\n\n static async getOrganizations(): Promise<\n AxiosResponse\n > {\n return authAxios.get(\n `${ApiService.baseUrl}/organization/list?page=1&pageSize=100`,\n axiosRequestConfig(),\n );\n }\n\n static async getOrganizationsDetailed(): Promise<\n AxiosResponse\n > {\n return authAxios.get(\n `${ApiService.baseUrl}/organization/list/detailed?page=1&pageSize=100`,\n axiosRequestConfig(),\n );\n }\n\n static async getOrganizationById(\n organizationId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/organization/${organizationId}`,\n axiosRequestConfig(),\n );\n }\n\n static async getCurrentContract(\n orgId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/organization/${orgId}/contract-information`,\n axiosRequestConfig(),\n );\n }\n\n static async getNextContract(\n orgId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/organization/${orgId}/contract-information/next`,\n axiosRequestConfig(),\n );\n }\n\n static async updateNextContract(\n orgId: string,\n contract: ContractInformationRequest,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${orgId}/contract-information/next`,\n contract,\n axiosRequestConfig(),\n );\n }\n\n static async createOrganization(\n name: string,\n country: string,\n ): Promise> {\n const createOrg: CreateOrganizationRequest = { name, country };\n return authAxios.post(\n `${ApiService.baseUrl}/organization`,\n createOrg,\n axiosRequestConfig(),\n );\n }\n\n static async updateContractInformation(\n organizationId: string,\n contractInformation: ContractInformationRequest,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/contract-information`,\n contractInformation,\n axiosRequestConfig(),\n );\n }\n\n static async addUserToOrganization(\n organizationId: string,\n user: {\n name: string;\n userEmail: string;\n phone: string;\n state: StateEnumDto;\n roles: RoleEnumDto[];\n enableAutoEmails: boolean;\n },\n ): Promise {\n const addUserToOrg: AddUserToOrganizationRequest = {\n ...user,\n };\n\n return authAxios.post(\n `${ApiService.baseUrl}/organization/${organizationId}/user`,\n addUserToOrg,\n axiosRequestConfig(),\n );\n }\n\n static async editUserInOrganization(\n organizationId: string,\n email: string,\n name: string,\n phone: string,\n roles: RoleEnumDto[],\n enableAutoEmails: boolean,\n ): Promise {\n const editUserInOrg: UpdateOrganizationUserRequest = {\n name,\n phone,\n roles,\n enableAutoEmails,\n };\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/user/${email}`,\n editUserInOrg,\n axiosRequestConfig(),\n );\n }\n\n static async addOrganizationAdmin(\n organizationId: string,\n email: string,\n name: string,\n phone: string,\n ): Promise {\n const addAdminRequest: AddAdministratorRequest = {\n email,\n name,\n phone,\n };\n return authAxios.post(\n `${ApiService.baseUrl}/organization/${organizationId}/add-administrator`,\n addAdminRequest,\n axiosRequestConfig(),\n );\n }\n\n static async deactivateUserInOrganization(\n organizationId: string,\n email: string,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/user/${email}/deactivate`,\n null,\n axiosRequestConfig(),\n );\n }\n\n static async activateUserInOrganization(\n organizationId: string,\n email: string,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/user/${email}/activate`,\n null,\n axiosRequestConfig(),\n );\n }\n\n static async createSawmill(\n organizationId: string,\n name: string,\n ): Promise> {\n const createSawmillRequest: CreateSawmillRequest = {\n organizationId,\n name,\n };\n return authAxios.post(\n `${ApiService.baseUrl}/sawmill`,\n createSawmillRequest,\n axiosRequestConfig(),\n );\n }\n\n static async renameSawmill(\n sawmillId: string,\n name: string,\n ): Promise {\n const renameSawmillRequest: RenameSawmillRequest = {\n name,\n };\n return authAxios.put(\n `${ApiService.baseUrl}/sawmill/${sawmillId}/rename`,\n renameSawmillRequest,\n axiosRequestConfig(),\n );\n }\n\n static async deleteSawmill(sawmillId: string): Promise {\n return authAxios.delete(\n `${ApiService.baseUrl}/sawmill/${sawmillId}`,\n axiosRequestConfig(),\n );\n }\n\n static async getSawmillList(\n filter: GetSawmillListFilter,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/sawmill/list`,\n { ...axiosRequestConfig(), params: { ...filter } },\n );\n }\n\n static async assignStacksToSawmill(\n sawmillId: string,\n stackIds: string[],\n ): Promise {\n const assignStacksToSawmillRequest: AssignStacksToSawmillRequest = {\n stackIds,\n };\n return authAxios.post(\n `${ApiService.baseUrl}/sawmill/${sawmillId}/assign-stacks`,\n assignStacksToSawmillRequest,\n axiosRequestConfig(),\n );\n }\n\n static async addSawmillUser(\n sawmillId: string,\n sawmillUser: AddSawmillUserRequest,\n ): Promise {\n return authAxios.post(\n `${ApiService.baseUrl}/sawmill/${sawmillId}/user`,\n sawmillUser,\n axiosRequestConfig(),\n );\n }\n\n static async updateSawmillUser(\n sawmillId: string,\n sawmillUserId: string,\n sawmillUser: UpdateSawmillUserRequest,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/sawmill/${sawmillId}/user/${sawmillUserId}`,\n sawmillUser,\n axiosRequestConfig(),\n );\n }\n\n static async removeSawmillUser(\n sawmillId: string,\n sawmillUserId: string,\n ): Promise {\n return authAxios.delete(\n `${ApiService.baseUrl}/sawmill/${sawmillId}/user/${sawmillUserId}`,\n axiosRequestConfig(),\n );\n }\n\n static async addUserToDepartment(\n departmentId: string,\n user: UserModelDto,\n ): Promise {\n const addUserToDept: AddDepartmentUserRequest = {\n name: user.name,\n email: user.userEmail,\n phone: user.phone,\n roles: user.roles,\n enableAutoEmails: user.enableAutoEmails,\n };\n\n return authAxios.post(\n `${ApiService.baseUrl}/department/${departmentId}/user`,\n addUserToDept,\n axiosRequestConfig(),\n );\n }\n\n static async editUserInDeptment(\n deptId: string,\n email: string,\n name: string,\n phone: string,\n roles: RoleEnumDto[],\n enableAutoEmails: boolean,\n ): Promise {\n const editUserInDept: UpdateDepartmentUserRequest = {\n name,\n phone,\n roles,\n enableAutoEmails,\n };\n\n return authAxios.put(\n `${ApiService.baseUrl}/department/${deptId}/user/${email}`,\n editUserInDept,\n axiosRequestConfig(),\n );\n }\n\n static async deactivateUserInDepartment(\n departmentId: string,\n email: string,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/department/${departmentId}/user/${email}/deactivate`,\n null,\n axiosRequestConfig(),\n );\n }\n\n static async activateUserInDepartment(\n departmentId: string,\n email: string,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/department/${departmentId}/user/${email}/activate`,\n null,\n axiosRequestConfig(),\n );\n }\n\n static async updateMeasurementCardInformation(\n organizationId: string,\n measurementCardId: string,\n stackNumbering: StackNumberingEnumDto,\n exportFormat: ExportFormatEnumDto,\n ): Promise {\n const request: MeasurementCardInformationRequest = {\n measurementCardId,\n stackNumbering,\n exportFormat,\n };\n\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/measurement-card-information`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async createDeptment(\n organizationId: string,\n name: string,\n departmentNumber?: number,\n ): Promise> {\n const createDept: CreateDepartmentRequest = {\n name,\n organizationId,\n departmentNumber,\n };\n\n return authAxios.post(\n `${ApiService.baseUrl}/department`,\n createDept,\n axiosRequestConfig(),\n );\n }\n\n static async getDepartmentById(\n departmentId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/department/${departmentId}`,\n axiosRequestConfig(),\n );\n }\n\n static async addDepartmentAdmin(\n departmentId: string,\n email: string,\n name: string,\n phone: string,\n ): Promise {\n const addAdminRequest: AddAdministratorRequest = {\n email,\n name,\n phone,\n };\n return authAxios.post(\n `${ApiService.baseUrl}/department/${departmentId}/add-administrator`,\n addAdminRequest,\n axiosRequestConfig(),\n );\n }\n\n static async updateOrganizationName(\n organizationId: string,\n name: string,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/rename`,\n { name },\n axiosRequestConfig(),\n );\n }\n\n static async updateDepartmentInfo(\n departmentId: string,\n name: string,\n departmentNumber?: number,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/department/${departmentId}/info`,\n { name, departmentNumber },\n axiosRequestConfig(),\n );\n }\n\n static async updateDepartmentCustomerNumber(\n departmentId: string,\n customerNumber: UpdateDepartmentCustomerNumberRequest,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/department/${departmentId}/customer-number`,\n customerNumber,\n axiosRequestConfig(),\n );\n }\n\n static async updateOrganizationAddressDetails(\n organizationId: string,\n organizationAddress: AddressInformationResponse,\n ): Promise {\n const request: UpdateAddressInformationRequest = {\n ...organizationAddress,\n };\n\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/address-information`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async getOrganizationLogo(\n organizationId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/organization/${organizationId}/logo`,\n axiosRequestConfig(),\n );\n }\n\n static async updateOrganizationLogo(\n organizationId: string,\n file: string | Blob,\n ): Promise {\n const formData = new FormData();\n\n formData.append('file', file);\n\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/logo`,\n formData,\n axiosRequestConfig(),\n );\n }\n\n static async updateOrganizationContactDetails(\n organizationId: string,\n organizationContactInformation: ContactInformationResponse,\n ): Promise {\n const updateOrganization: ContactInformationRequest = {\n ...organizationContactInformation,\n };\n\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/contact-information`,\n updateOrganization,\n axiosRequestConfig(),\n );\n }\n\n static async getStackById(\n stackId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/stack/${stackId}`,\n axiosRequestConfig(),\n );\n }\n\n static async downloadStackArchive(\n stackIds: string[],\n onDownloadProgress?: (event: any) => void,\n ): Promise {\n const request: DownloadArchiveRequest = { stackIds };\n return authAxios.put(\n `${ApiService.baseUrl}/stack/download-archive`,\n request,\n {\n ...axiosRequestConfig(),\n responseType: 'blob',\n onDownloadProgress,\n },\n );\n }\n\n static async downloadAccumulatedCSV(\n measurementCardId: string,\n stackIds: string[],\n onDownloadProgress?: (event: any) => void,\n ): Promise {\n const request: DownloadAccumulatedRequest = { measurementCardId, stackIds };\n return authAxios.put(\n `${ApiService.baseUrl}/stack/download-accumulated-csv`,\n request,\n {\n ...axiosRequestConfig(),\n responseType: 'blob',\n onDownloadProgress,\n },\n );\n }\n\n static async downloadAccumulatedCSVFromFilter(\n request: DownloadAccumulatedFromFilterRequest,\n onDownloadProgress?: (event: any) => void,\n ): Promise {\n return authAxios.put(\n `${ApiService.baseUrl}/stack/download-accumulated-csv-from-filter`,\n request,\n {\n ...axiosRequestConfig(),\n responseType: 'blob',\n onDownloadProgress,\n },\n );\n }\n\n static async deleteStack(stackId: string): Promise {\n return authAxios.delete(\n `${ApiService.baseUrl}/stack/${stackId}`,\n axiosRequestConfig(),\n );\n }\n\n static async getStackList(\n request: StacksQueryPagedRequest,\n ): Promise> {\n return authAxios.put(\n `${ApiService.baseUrl}/stack/list`,\n request,\n {\n ...axiosRequestConfig(),\n },\n );\n }\n\n static async getStackMapList(\n request: StacksQueryPagedRequest,\n ): Promise> {\n return authAxios.put(\n `${ApiService.baseUrl}/stack/map-list`,\n request,\n {\n ...axiosRequestConfig(),\n },\n );\n }\n\n static async getSawmillStackList(\n request: StacksBySawmillQueryPagedRequest,\n ): Promise> {\n return authAxios.put(\n `${ApiService.baseUrl}/stack/list/sawmill`,\n request,\n {\n ...axiosRequestConfig(),\n },\n );\n }\n\n static async getSawmillStackMapList(\n request: StacksBySawmillQueryPagedRequest,\n ): Promise> {\n return authAxios.put(\n `${ApiService.baseUrl}/stack/map-list/sawmill`,\n request,\n {\n ...axiosRequestConfig(),\n },\n );\n }\n\n static async getStackMapInfoById(\n stackId: string,\n ): Promise> {\n return authAxios.get(\n `${ApiService.baseUrl}/stack/${stackId}/map-info`,\n {\n ...axiosRequestConfig(),\n },\n );\n }\n\n static async getStackFilterOptions(\n request: StackFilterOptionsQueryRequest,\n ): Promise> {\n return authAxios.put(\n `${ApiService.baseUrl}/stack/filter-options`,\n request,\n {\n ...axiosRequestConfig(),\n },\n );\n }\n\n static async login(\n username: string,\n password: string,\n ): Promise> {\n const loginRequest: LoginRequest = { username, password };\n return axios.post(\n `${ApiService.baseUrl}/auth/login`,\n loginRequest,\n );\n }\n\n static async refreshToken(\n username: string,\n refreshToken: string,\n ): Promise> {\n const refreshRequest: RefreshRequest = { userId: username, refreshToken };\n\n return axios.post(\n `${ApiService.baseUrl}/auth/refresh-token`,\n refreshRequest,\n );\n }\n\n static async getDepartmentList(): Promise<\n AxiosResponse\n > {\n return authAxios.get(\n `${ApiService.baseUrl}/department/list`,\n axiosRequestConfig(),\n );\n }\n\n static async confirmAccount(\n email: string,\n password: string,\n token: string,\n ): Promise {\n const confirmAccount = {\n email,\n password,\n token,\n };\n return axios.post(\n `${ApiService.baseUrl}/auth/confirm-account`,\n confirmAccount,\n );\n }\n\n static async forgotPassword(username: string): Promise {\n return axios.post(`${ApiService.baseUrl}/auth/forgot-password`, {\n email: username,\n });\n }\n\n static async resetPassword(\n email: string,\n password: string,\n token: string,\n ): Promise {\n const resetPassword = {\n email,\n newPassword: password,\n token,\n };\n return axios.post(\n `${ApiService.baseUrl}/auth/reset-password`,\n resetPassword,\n );\n }\n\n static async getStackStatistics(\n request: StackStatisticsQueryRequest,\n ): Promise> {\n return authAxios.put(\n `${ApiService.baseUrl}/stack/statistics`,\n request,\n {\n ...axiosRequestConfig(),\n },\n );\n }\n\n static async addEmailToDepartmentMailingList(\n departmentId: string,\n email: string,\n ): Promise {\n const request: AddEmailToMailingListRequest = { email };\n return authAxios.put(\n `${ApiService.baseUrl}/department/${departmentId}/add-email-to-mailing-list`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async removeEmailFromDepartmentMailingList(\n departmentId: string,\n email: string,\n ): Promise {\n const request: RemoveEmailFromMailingListRequest = { email };\n return authAxios.put(\n `${ApiService.baseUrl}/department/${departmentId}/remove-email-from-mailing-list`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async addOrganizationContact(\n organizationId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n ): Promise {\n const request: AddOrganizationContactRequest = {\n email,\n name,\n phone,\n };\n\n return authAxios.post(\n `${ApiService.baseUrl}/organization/${organizationId}/contact`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async updateOrganizationContact(\n organizationId: string,\n contactId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n ): Promise {\n const request: UpdateOrganizationContactRequest = {\n name,\n email,\n phone,\n };\n\n return authAxios.put(\n `${ApiService.baseUrl}/organization/${organizationId}/contact/${contactId}`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async deleteOrganizationContact(\n organizationId: string,\n contactId: string,\n ): Promise {\n return authAxios.delete(\n `${ApiService.baseUrl}/organization/${organizationId}/contact/${contactId}`,\n axiosRequestConfig(),\n );\n }\n\n static async deleteOrganization(\n organizationId: string,\n ): Promise {\n return authAxios.delete(\n `${ApiService.baseUrl}/organization/${organizationId}`,\n axiosRequestConfig(),\n );\n }\n\n static async addDepartmentContact(\n departmentId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n ): Promise {\n const request: AddOrganizationContactRequest = {\n email,\n name,\n phone,\n };\n\n return authAxios.post(\n `${ApiService.baseUrl}/department/${departmentId}/contact`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async updateDepartmentContact(\n departmentId: string,\n contactId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n ): Promise {\n const request: UpdateOrganizationContactRequest = {\n name,\n email,\n phone,\n };\n\n return authAxios.put(\n `${ApiService.baseUrl}/department/${departmentId}/contact/${contactId}`,\n request,\n axiosRequestConfig(),\n );\n }\n\n static async deleteDepartmentContact(\n departmentId: string,\n contactId: string,\n ): Promise {\n return authAxios.delete(\n `${ApiService.baseUrl}/department/${departmentId}/contact/${contactId}`,\n axiosRequestConfig(),\n );\n }\n}\n","import { IUser } from 'store/models';\nimport { history } from 'helpers/history';\nimport { getTokenData } from 'helpers/decodeToken';\nimport { RoleEnumDto, UserInfoResponse } from '../.generated/api';\nimport { SessionStorageService } from 'services/sessionStorageService';\nimport { ApiService } from 'services/apiService';\nimport { RelationItem } from 'store/models/UserAccess';\nimport { notificationActions } from './notificationActions';\nimport { ApplicationState } from 'store';\nimport { Action, Dispatch } from 'redux';\nimport { ThunkAction, ThunkDispatch } from 'redux-thunk';\n\nexport const userActions = {\n login,\n logout,\n getUserInfo,\n getSawmillUserInfo,\n};\n\nfunction getUserInfo(): ThunkAction {\n return (dispatch: ThunkDispatch) => {\n ApiService.getUserInfo()\n .then((resp) => {\n getUserAccessModel(resp.data).then((values) => {\n if (values) {\n dispatch({\n type: 'SET_USER_INFO',\n userInfo: {\n organizations: values[0],\n departments: values[1],\n sawmills: resp.data.sawmillRelations,\n isGlobalAdmin: false,\n },\n });\n }\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction getSawmillUserInfo(): ThunkAction<\n void,\n ApplicationState,\n void,\n Action\n> {\n return (dispatch: ThunkDispatch) => {\n ApiService.getSawmillUserInfo().then((response) => {\n dispatch({\n type: 'SET_SAWMILL_USER_INFO',\n userInfo: response.data,\n });\n });\n };\n}\n\nfunction login(\n username: string,\n password: string,\n referrer?: string,\n): ThunkAction {\n return (dispatch: Dispatch): void => {\n dispatch(failure()); // clear previous error\n ApiService.login(username, password)\n .then((response) => {\n const tokenResponse = response.data;\n\n SessionStorageService.setToken(tokenResponse.token);\n SessionStorageService.setRefreshToken(tokenResponse.refreshToken);\n\n const tokenData = getTokenData(tokenResponse.token);\n\n if (tokenData.isGlobalAdmin) {\n dispatch({\n type: 'SET_USER_INFO',\n userInfo: {\n organizations: [],\n departments: [],\n isGlobalAdmin: true,\n },\n });\n\n dispatch(\n success({\n username,\n password,\n }),\n );\n\n history.push(referrer ?? '/organizations');\n } else {\n ApiService.getUserInfo().then((resp) => {\n getUserAccessModel(resp.data).then((values) => {\n if (values) {\n dispatch({\n type: 'SET_USER_INFO',\n userInfo: {\n organizations: values[0],\n departments: values[1],\n isGlobalAdmin: false,\n sawmills: resp.data.sawmillRelations,\n },\n });\n dispatch(\n success({\n username,\n password,\n }),\n );\n history.push(referrer ?? '/');\n }\n });\n });\n }\n })\n .catch(() => {\n // TODO MAL: Check if error is result and use error information is available\n dispatch(failure(username));\n });\n };\n\n function success(user: IUser) {\n return { type: 'LOGIN_SUCCESS', user };\n }\n\n function failure(username?: string) {\n return { type: 'LOGIN_FAILURE', username };\n }\n}\n\nfunction logout(): ThunkAction {\n return (dispatch: Dispatch) => {\n SessionStorageService.clearToken();\n dispatch({ type: 'ORGANIZAION_RESET_STATE' });\n dispatch({ type: 'DEPARTMENT_STATE_RESET' });\n dispatch(success());\n history.push('/');\n };\n\n function success() {\n return { type: 'LOGOUT' };\n }\n}\n\nconst getUserAccessModel = (resp: UserInfoResponse) => {\n return new Promise>((resolve) => {\n Promise.all([\n getOrganizations(resp.organizationRelations),\n getDepartments(resp.departmentRelations),\n ]).then((values) => {\n resolve(values);\n });\n });\n};\n\nconst getDepartments = (departmentRelations: RelationItem[]) => {\n return new Promise((resolve) => {\n const departments: {\n id: string;\n organizationId: string;\n roles: RoleEnumDto[];\n }[] = [];\n let orgId: string;\n if (\n departmentRelations.filter((relation) =>\n relation.roles.includes(RoleEnumDto.DEPARTMENT_ADMIN),\n ).length > 0\n ) {\n ApiService.getDepartmentList().then((resp) => {\n departmentRelations\n .filter((relation) =>\n relation.roles.includes(RoleEnumDto.DEPARTMENT_ADMIN),\n )\n .forEach((relation, index) => {\n orgId = resp?.data?.data?.filter(\n (department) => department.id === relation.id,\n )[0]?.organizationId;\n\n departments.push({\n id: relation.id,\n organizationId: orgId,\n roles: relation.roles,\n });\n if (\n index ===\n departmentRelations.filter((relation) =>\n relation.roles.includes(RoleEnumDto.DEPARTMENT_ADMIN),\n ).length -\n 1\n ) {\n resolve(departments);\n }\n });\n });\n } else {\n resolve(departments);\n }\n });\n};\n\nconst getOrganizations = (organizationRelations: RelationItem[]) => {\n return new Promise((resolve) => {\n const organizations: {\n id: string;\n roles: RoleEnumDto[];\n }[] = [];\n organizationRelations?.forEach((orgRole) => {\n if (orgRole.roles.includes(RoleEnumDto.ORGANIZATION_ADMIN)) {\n organizations.push({\n id: orgRole.id,\n roles: orgRole.roles,\n });\n }\n });\n resolve(organizations);\n });\n};\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport translationsEN from 'translations/en.json';\nimport translationsDA from 'translations/da.json';\nimport translationsDE from 'translations/de.json';\nimport translationsPL from 'translations/pl.json';\n\nexport const resources = {\n en: { translations: translationsEN },\n da: { translations: translationsDA },\n de: { translations: translationsDE },\n pl: { translations: translationsPL },\n};\n\nconst getLanguage = (): string => {\n const language = navigator.language;\n switch (language) {\n case 'da-DK':\n return 'da';\n case 'en-US':\n case 'en-GB':\n case 'en-CA':\n return 'en';\n case 'de-AT':\n case 'de-DE':\n case 'de-CH':\n return 'de';\n case 'pl-PL':\n return 'pl';\n default:\n return language;\n }\n};\n\nconst getLanguagePart = (language: string) => {\n // ISO 639-1 Browser language \"da\", \"en\", \"de\", \"da-DK\", \"en-GB\" etc. to\n // language part e.g. \"da\", \"en\", \"de\"\n return language.split('-')[0];\n};\n\ni18n.use(initReactI18next).init({\n lng: getLanguage(),\n fallbackLng: 'en',\n ns: ['translations'],\n resources,\n});\n\nexport const apiTranslateToLanguage = (\n translations?: Record,\n language?: string,\n): string => {\n if (!translations) {\n return '';\n }\n const languages = Object.keys(translations);\n if (languages.length === 0) {\n return '';\n }\n if (language) {\n const languagePart = getLanguagePart(language);\n const value = translations[languagePart];\n if (value) {\n return value;\n }\n }\n const value = translations[languages[0]];\n if (value) {\n // some language found\n return value;\n }\n return '';\n};\nexport const apiTranslate = (translations: Record): string => {\n const languages = Object.keys(translations);\n if (languages.length === 0) {\n return '';\n }\n\n const language = getLanguage();\n return apiTranslateToLanguage(translations, language);\n};\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { TextField, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport 'translations/translations';\n\nconst useStyles = makeStyles((theme) => ({\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\ntype ValidatedInputProps = {\n inputName: string;\n required: boolean;\n autoFocus: boolean;\n label: string;\n type: string;\n margin?: 'normal' | 'none' | 'dense' | undefined;\n defaultValue?: string;\n handleChangeCallback: (name: string, value: string, error: boolean) => void;\n};\n\nconst ValidatedTextInput: React.FC = (props) => {\n const {\n inputName,\n type,\n required,\n label,\n autoFocus,\n margin,\n defaultValue,\n handleChangeCallback,\n } = props;\n const classes = useStyles();\n const [errorMessage, setErrorMessage] = useState();\n const { t } = useTranslation(['translations']);\n const [value, setValue] = useState(defaultValue || '');\n\n const handleChange = (e: React.FocusEvent) => {\n const { name, value } = e.target;\n setValue(value);\n\n const emailRE = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\n\n if (required && !value) {\n setErrorMessage(t('validation.required'));\n handleChangeCallback(name, '', true);\n return;\n }\n\n if (type === 'email' && !!value && !emailRE.test(value)) {\n setErrorMessage(t('validation.email_invalid'));\n handleChangeCallback(name, '', true);\n return;\n }\n\n setErrorMessage(undefined);\n handleChangeCallback(name, value, false);\n };\n\n useEffect(() => {\n if (defaultValue) {\n setValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <>\n \n\n \n {!!errorMessage && errorMessage}\n \n \n );\n};\n\nexport { ValidatedTextInput };\n","export default __webpack_public_path__ + \"static/media/logo2x.5b3d8833.png\";","import React from 'react';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n spinner: {\n height: '22px',\n width: '22px',\n },\n}));\n\ninterface ButtonSpinnerProps {\n isLoading?: boolean;\n children?: React.ReactNode;\n progress?: number;\n}\n\nconst ButtonSpinner: React.FC = ({\n isLoading,\n children,\n progress,\n}) => {\n const classes = useStyles();\n return (\n <>\n {isLoading ? (\n = 0\n ? 'determinate'\n : 'indeterminate'\n }\n value={progress}\n size=\"22\"\n className={classes.spinner}\n />\n ) : (\n children\n )}\n \n );\n};\n\nexport default ButtonSpinner;\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n Paper,\n Typography,\n Container,\n Grid,\n Button,\n Link,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { ApplicationState } from 'store';\nimport { userActions } from 'actions/userActions';\nimport { ValidatedTextInput } from 'components/ValidatedTextInput';\nimport logo from 'static/media/logo2x.png';\nimport 'translations/translations';\nimport ButtonSpinner from 'components/spinners/ButtonSpinner';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n paddingTop: '8%',\n },\n paper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '25rem',\n margin: 'auto',\n padding: '1.8rem 3.125rem',\n },\n img: {\n maxWidth: '18rem',\n marginBottom: '2rem',\n },\n form: {\n width: '100%', // Fix IE 11 issue.\n },\n submit: {\n margin: theme.spacing(6, 0, 1, 0),\n paddingRight: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n color: '#fff',\n fontWeight: 'bold',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n alignRight: {\n textAlign: 'right',\n },\n alignCenter: {\n textAlign: 'center',\n },\n}));\n\ntype LocationProps = {\n referrer?: string;\n};\n\nconst Login: React.FC = () => {\n const classes = useStyles();\n const error = useSelector(\n (state: ApplicationState) => state.isLoggedIn.error,\n );\n\n const location = useLocation();\n const [submitPressed, setSubmitPressed] = useState(false);\n const [isDisabled, setIsDisabeld] = useState(true);\n\n const [inputs, setInputs] = useState({\n username: '',\n password: '',\n });\n const { username, password } = inputs;\n const dispatch = useDispatch();\n const { t } = useTranslation(['translations']);\n\n useEffect(() => {\n if (inputs.password && inputs.username) {\n setIsDisabeld(false);\n } else {\n setIsDisabeld(true);\n }\n }, [inputs]);\n\n const handleChange = (name: string, value: string) => {\n setInputs((inputs) => ({ ...inputs, [name]: value }));\n if (value === '' || !value) {\n setIsDisabeld(true);\n }\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setSubmitPressed(true);\n dispatch(userActions.login(username, password, location.state?.referrer));\n };\n\n const isLoggingIn = submitPressed && !error;\n\n return (\n \n \n \"Logo\"\n
handleSubmit(e)}>\n \n\n \n \n {error && `${error}: ${t('login_page.errors.login_failed')}`}\n \n \n \n \n {t('login_page.forgot_password_link')}\n \n \n \n }\n >\n {t('login_page.sign_in')}\n \n \n \n \n
\n
\n );\n};\n\nexport { Login };\n","export default __webpack_public_path__ + \"static/media/HDLogSystemsCMYK.70db4eb8.png\";","import React from 'react';\nimport { Button, Container, Paper, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { userActions } from 'actions/userActions';\nimport logo from 'static/media/HDLogSystemsCMYK.png';\nimport 'translations/translations';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n paddingTop: '8%',\n },\n paper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '25rem',\n margin: 'auto',\n padding: '1.8rem 3.125rem',\n },\n img: {\n maxWidth: '18rem',\n marginBottom: '2rem',\n },\n form: {\n width: '100%', // Fix IE 11 issue.\n },\n submit: {\n margin: theme.spacing(6, 0, 1, 0),\n paddingRight: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n color: '#fff',\n fontWeight: 'bold',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n alignRight: {\n textAlign: 'right',\n },\n alignCenter: {\n textAlign: 'center',\n },\n}));\n\nconst NotAuthorized = () => {\n const dispatch = useDispatch();\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n\n return (\n \n \n \"Logo\"\n\n {t('validation.no_access')}\n\n {\n dispatch(userActions.logout());\n }}\n >\n {t('login_page.log_out')}\n \n {\n history.back();\n }}\n >\n {t('common.go_back')}\n \n \n \n );\n};\n\nexport { NotAuthorized };\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { TextField, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport 'translations/translations';\n\nconst useStyles = makeStyles((theme) => ({\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\ntype ValidatedPasswordInputProps = {\n inputName: string;\n autoFocus: boolean;\n handleChangeCallback: (name: string, value: string, error: boolean) => void;\n};\n\nconst ValidatedPasswordInput: React.FC = (\n props,\n) => {\n const { inputName, autoFocus, handleChangeCallback } = props;\n const classes = useStyles();\n\n const [input, setInput] = useState<{ password?: string; repeat?: string }>(\n {},\n );\n\n const [errorMessage, setErrorMessage] = useState({\n password: '',\n repeat: '',\n });\n\n const { t } = useTranslation(['translations']);\n\n const handleChange = (e: React.FocusEvent) => {\n const { name, value } = e.target;\n setInput({ ...input, [name]: value });\n };\n\n useEffect(() => {\n const lowerCaseRE = /^(?=.*[a-z])/;\n const upperCaseRE = /^(?=.*[A-Z])/;\n const numberRE = /^(?=.*[0-9])/;\n const specialRE = /^(?=.*\\W)/; // non-alphanumeric\n const minimumRE = /^(?=.{6,})/;\n\n const requirements = [\n { re: lowerCaseRE, desc: t('validation.lowercase') },\n { re: upperCaseRE, desc: t('validation.uppercase') },\n { re: numberRE, desc: t('validation.number') },\n { re: specialRE, desc: t('validation.special') },\n { re: minimumRE, desc: t('validation.minimum_n', { count: 6 }) },\n ];\n\n const errors = { password: '', repeat: '' };\n\n // only validate after first input change\n if (input.password !== undefined) {\n if (!input.password) {\n errors.password = t('validation.required');\n } else {\n const validationErrors = requirements.filter(\n ({ re }) => !input.password || !re.test(input.password),\n );\n if (validationErrors.length > 0) {\n errors.password = `${validationErrors\n .map(({ desc }) => desc)\n .join('. ')}.`;\n }\n }\n }\n\n // only validate after first input change\n if (input.repeat !== undefined) {\n if (!input.repeat) {\n errors.repeat = t('validation.required');\n } else if (!!input.repeat && input.repeat !== input.password) {\n errors.repeat = t('validation.password_mismatch');\n }\n }\n\n setErrorMessage(errors);\n\n if (input.password && input.repeat && !errors.password && !errors.repeat) {\n handleChangeCallback(inputName, input.password, false);\n } else {\n handleChangeCallback(inputName, '', true);\n }\n }, [input]);\n\n return (\n <>\n \n\n \n {!!errorMessage.password && errorMessage.password}\n \n\n \n\n \n {!!errorMessage.repeat && errorMessage.repeat}\n \n \n );\n};\n\nexport { ValidatedPasswordInput };\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\n\nimport {\n Paper,\n Typography,\n Container,\n Grid,\n Button,\n CircularProgress,\n Link,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { ValidatedPasswordInput } from 'components/ValidatedPasswordInput';\nimport logo from 'static/media/logo2x.png';\nimport 'translations/translations';\n\nimport { ApiService } from 'services/apiService';\nimport { userActions } from 'actions/userActions';\nimport { useDispatch } from 'react-redux';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n paddingTop: '8%',\n },\n paper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '25rem',\n margin: 'auto',\n padding: '1.8rem 3.125rem',\n },\n img: {\n maxWidth: '18rem',\n marginBottom: '2rem',\n },\n form: {\n width: '100%', // Fix IE 11 issue.\n },\n submit: {\n margin: theme.spacing(6, 0, 1, 0),\n paddingRight: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n color: '#fff',\n fontWeight: 'bold',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n alignCenter: {\n textAlign: 'center',\n },\n}));\n\nconst ConfirmAccount = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const query = new URLSearchParams(useLocation().search);\n const email = query.get('email');\n const token = query.get('token');\n\n const [confirmationSuccess, setConfirmationSuccess] = useState<\n boolean | null\n >(null);\n const [error, setError] = useState(null);\n const [password, setPassword] = useState('');\n\n const { t } = useTranslation(['translations']);\n\n const handleChange = (name: string, value: string) => {\n setPassword(value);\n };\n\n const isInputValid = password.length > 0;\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n\n if (email && token) {\n setConfirmationSuccess(false); // signal submit in progress\n ApiService.confirmAccount(email, password, token)\n .then(() => {\n setConfirmationSuccess(true);\n })\n .catch((error) => {\n setConfirmationSuccess(null); // switch off submit signal\n setError(error.response?.data?.errorMessage);\n });\n }\n };\n\n const handleLogout = () => {\n dispatch(userActions.logout());\n };\n\n return (\n \n \n \"Logo\"\n {confirmationSuccess ? (\n <>\n
{t('confirm_account_page.confirmation_success')}
\n \n {t('confirm_account_page.proceed_to_login')}\n \n \n {t('confirm_account_page.proceed_to_app_login')}\n \n \n ) : confirmationSuccess === false ? (\n \n ) : (\n
handleSubmit(e)}>\n \n {t('confirm_account_page.title')} {email}\n \n\n \n \n {error && `${error}: ${t('login_page.errors.login_failed')}`}\n \n \n \n \n {t('common.submit')}\n \n \n \n \n )}\n
\n
\n );\n};\n\nexport { ConfirmAccount };\n","import React, { useState } from 'react';\nimport { useLocation, Link } from 'react-router-dom';\nimport { ValidatedPasswordInput } from 'components/ValidatedPasswordInput';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n Paper,\n Typography,\n Container,\n Grid,\n Button,\n CircularProgress,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport logo from 'static/media/logo2x.png';\nimport 'translations/translations';\n\nimport { ApiService } from 'services/apiService';\nimport { buttonPrimaryColor } from 'theme/theme';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n paddingTop: '8%',\n },\n paper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '25rem',\n margin: 'auto',\n padding: '1.8rem 3.125rem',\n },\n img: {\n maxWidth: '18rem',\n marginBottom: '2rem',\n },\n form: {\n width: '100%', // Fix IE 11 issue.\n },\n submit: {\n margin: theme.spacing(6, 0, 1, 0),\n paddingRight: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n color: '#fff',\n fontWeight: 'bold',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n alignRight: {\n textAlign: 'right',\n },\n alignCenter: {\n textAlign: 'center',\n },\n successContainer: {\n width: '100%',\n },\n successText: {\n marginTop: '0',\n },\n successLink: {\n color: buttonPrimaryColor(),\n },\n}));\n\nconst ResetPassword = () => {\n const classes = useStyles();\n const query = new URLSearchParams(useLocation().search);\n const email = query.get('email');\n const token = query.get('token');\n\n const [confirmationSuccess, setConfirmationSuccess] = useState<\n boolean | null\n >(null);\n const [error, setError] = useState(null);\n const [password, setPassword] = useState('');\n\n const { t } = useTranslation(['translations']);\n\n const handleChange = (name: string, value: string) => {\n setPassword(value);\n };\n\n const isInputValid = password.length > 0;\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n\n if (email && token) {\n setConfirmationSuccess(false); // signal submit in progress\n ApiService.resetPassword(email, password, token)\n .then(() => {\n setConfirmationSuccess(true);\n })\n .catch((error) => {\n setConfirmationSuccess(null); // switch off submit signal\n setError(error.response?.data?.errorMessage);\n });\n }\n };\n\n return (\n \n \n \"Logo\"\n {confirmationSuccess ? (\n
\n

\n {t('reset_password_page.success')}\n

\n \n {t('reset_password_page.go_back_link')}\n \n
\n ) : confirmationSuccess === false ? (\n \n ) : (\n
handleSubmit(e)}>\n \n {t('reset_password_page.title')} {email}\n \n\n \n \n {error &&\n `${error}: ${t('reset_password_page.errors.reset_failed')}`}\n \n\n \n \n \n {t('common.submit')}\n \n \n \n \n )}\n
\n
\n );\n};\n\nexport { ResetPassword };\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n Paper,\n Typography,\n Container,\n Grid,\n Button,\n CircularProgress,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ValidatedTextInput } from 'components/ValidatedTextInput';\nimport logo from 'static/media/logo2x.png';\nimport 'translations/translations';\nimport { ApiService } from 'services/apiService';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n paddingTop: '8%',\n },\n paper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '25rem',\n margin: 'auto',\n padding: '1.8rem 3.125rem',\n },\n img: {\n maxWidth: '18rem',\n marginBottom: '2rem',\n },\n form: {\n width: '100%', // Fix IE 11 issue.\n },\n submit: {\n margin: theme.spacing(6, 0, 1, 0),\n paddingRight: theme.spacing(5),\n paddingLeft: theme.spacing(5),\n color: '#fff',\n fontWeight: 'bold',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n alignRight: {\n textAlign: 'right',\n },\n alignCenter: {\n textAlign: 'center',\n },\n}));\n\nconst ForgotPassword = () => {\n const classes = useStyles();\n const [isDisabled, setIsDisabeld] = useState(true);\n const [confirmationSuccess, setConfirmationSuccess] = useState<\n boolean | null\n >(null);\n const [error, setError] = useState(false);\n\n const [username, setUsername] = useState('');\n\n const { t } = useTranslation(['translations']);\n\n useEffect(() => {\n if (username) {\n setIsDisabeld(false);\n } else {\n setIsDisabeld(true);\n }\n }, [username]);\n\n const handleChange = (name: string, value: string) => {\n setUsername(value);\n };\n\n const handleSubmit = () => {\n if (username) {\n setConfirmationSuccess(false);\n ApiService.forgotPassword(username)\n .then(() => {\n setConfirmationSuccess(true);\n })\n .catch(() => {\n setConfirmationSuccess(null);\n setError(true);\n });\n }\n };\n\n return (\n \n \n \"Logo\"\n {confirmationSuccess ? (\n
{t('reset_password_page.request_success')}
\n ) : confirmationSuccess === false ? (\n \n ) : (\n
\n \n \n {error && t('reset_password_page.request_failed')}\n \n \n \n \n {t('reset_password_page.request_change')}\n \n \n \n
\n )}\n
\n
\n );\n};\n\nexport { ForgotPassword };\n","import {\n UPDATE_STACK_LIST,\n STACK_DELETE,\n STACK_DELETE_SUCCESS,\n STACK_DELETE_ERROR,\n UPDATE_STACK_FILTER_OPTIONS,\n SIGNAL_STACK_LIST_LOADING,\n UPDATE_ARCHIVE_DOWNLOAD_PROGRESS,\n SIGNAL_STACK_COORDINATES_LOADING,\n UPDATE_STACK_COORDINATES,\n UPDATE_STACK_MAP_INFO,\n UpdateStackMeasurementCard,\n UPDATE_STACK_MEASUREMENT_CARD,\n UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS,\n UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS,\n} from '../store/stacks';\nimport { UPDATE_STACK, STACK_ERROR } from '../store/stack';\nimport { ApiService } from 'services/apiService';\nimport { notificationActions } from 'actions/notificationActions';\nimport {\n DownloadAccumulatedFromFilterRequest,\n ListStacksResponseItemPaginatedResponse,\n MeasurementCardResponse,\n StackFilterOptionsQueryRequest,\n StackFilterOptionsResponse,\n StackQueryRequest,\n StacksBySawmillQueryPagedRequest,\n} from '.generated/api';\nimport { ApplicationState } from 'store';\nimport { IStackQuery } from '../store/models/IStackQuery';\n\nexport const stackActions = {\n getOrganizationMeasurementCard,\n getStacks,\n getStackFilterOptions,\n getStacksForSawmillUser,\n refreshStacks,\n getStackById,\n deleteStackById,\n downloadStackArchive,\n downloadAccumulatedCsv,\n downloadAllAccumulatedCsv,\n getStackMapInfoById,\n};\n\nfunction downloadStackArchive(stackIds: string[]) {\n return (dispatch: any) => {\n dispatch({\n type: UPDATE_ARCHIVE_DOWNLOAD_PROGRESS,\n progress: -1,\n });\n\n ApiService.downloadStackArchive(stackIds, (progressEvent) => {\n if (progressEvent.loaded && progressEvent.total) {\n dispatch({\n type: UPDATE_ARCHIVE_DOWNLOAD_PROGRESS,\n progress: Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n ),\n });\n }\n })\n .then((response) => {\n const blobby = response.data;\n\n let filename = 'archive.zip';\n\n const contentDispositionHeader =\n response.headers['content-disposition'];\n if (contentDispositionHeader) {\n if (\n contentDispositionHeader &&\n contentDispositionHeader.indexOf('attachment') !== -1\n ) {\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n const matches = filenameRegex.exec(contentDispositionHeader);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n }\n\n const objectUrl = window.URL.createObjectURL(blobby);\n const anchor = document.createElement('a');\n document.body.appendChild(anchor);\n anchor.href = objectUrl;\n anchor.download = filename;\n anchor.click();\n window.URL.revokeObjectURL(objectUrl);\n document.body.removeChild(anchor);\n\n dispatch({\n type: UPDATE_ARCHIVE_DOWNLOAD_PROGRESS,\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch({\n type: UPDATE_ARCHIVE_DOWNLOAD_PROGRESS,\n });\n });\n };\n}\n\nfunction downloadAccumulatedCsv(measurementCardId: string, stackIds: string[]) {\n return (dispatch: any) => {\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS,\n progress: -1,\n });\n\n ApiService.downloadAccumulatedCSV(\n measurementCardId,\n stackIds,\n (progressEvent) => {\n if (progressEvent.loaded && progressEvent.total) {\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS,\n progress: Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n ),\n });\n }\n },\n )\n .then((response) => {\n const blobby = response.data;\n\n let filename = 'accumulated.csv';\n\n const contentDispositionHeader =\n response.headers['content-disposition'];\n if (contentDispositionHeader) {\n if (\n contentDispositionHeader &&\n contentDispositionHeader.indexOf('attachment') !== -1\n ) {\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n const matches = filenameRegex.exec(contentDispositionHeader);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n }\n\n const objectUrl = window.URL.createObjectURL(blobby);\n const anchor = document.createElement('a');\n document.body.appendChild(anchor);\n anchor.href = objectUrl;\n anchor.download = filename;\n anchor.click();\n window.URL.revokeObjectURL(objectUrl);\n document.body.removeChild(anchor);\n\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS,\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_PROGRESS,\n });\n });\n };\n}\n\nfunction downloadAllAccumulatedCsv(\n measurementCardId: string,\n filters: StackQueryRequest,\n) {\n return (dispatch: any) => {\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS,\n progress: -1,\n });\n\n const request: DownloadAccumulatedFromFilterRequest = {\n ...filters,\n measurementCardId,\n };\n\n ApiService.downloadAccumulatedCSVFromFilter(request, (progressEvent) => {\n if (progressEvent.loaded && progressEvent.total) {\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS,\n progress: Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n ),\n });\n }\n })\n .then((response) => {\n const blobby = response.data;\n\n let filename = 'accumulated.csv';\n\n const contentDispositionHeader =\n response.headers['content-disposition'];\n if (contentDispositionHeader) {\n if (\n contentDispositionHeader &&\n contentDispositionHeader.indexOf('attachment') !== -1\n ) {\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n const matches = filenameRegex.exec(contentDispositionHeader);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n }\n\n const objectUrl = window.URL.createObjectURL(blobby);\n const anchor = document.createElement('a');\n document.body.appendChild(anchor);\n anchor.href = objectUrl;\n anchor.download = filename;\n anchor.click();\n window.URL.revokeObjectURL(objectUrl);\n document.body.removeChild(anchor);\n\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS,\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch({\n type: UPDATE_ACCUMULATED_CSV_DOWNLOAD_ALL_PROGRESS,\n });\n });\n };\n}\n\nfunction getStackMapInfoById(stackId: string) {\n return (dispatch: any) => {\n dispatch({ type: UPDATE_STACK_MAP_INFO }); // clear\n ApiService.getStackMapInfoById(stackId)\n .then((response) => {\n dispatch({ type: UPDATE_STACK_MAP_INFO, mapInfo: response?.data });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction updateStackFilterOptions(\n filterOptions?: StackFilterOptionsResponse | null,\n) {\n return { type: UPDATE_STACK_FILTER_OPTIONS, filterOptions };\n}\n\nfunction updateStackList(\n stacks: ListStacksResponseItemPaginatedResponse | null,\n filters?: StackQueryRequest,\n) {\n return { type: UPDATE_STACK_LIST, stacks, filters: filters ?? {} };\n}\n\nfunction updateStackMeasurementCard(\n measurementCard?: MeasurementCardResponse | null,\n): UpdateStackMeasurementCard {\n return { type: UPDATE_STACK_MEASUREMENT_CARD, measurementCard };\n}\n\nfunction getOrganizationMeasurementCard(orgId: string) {\n return (dispatch: any) => {\n dispatch(updateStackMeasurementCard(undefined)); // indicate loading\n ApiService.getOrganizationMeasurementCard(orgId)\n .then((response) => {\n dispatch(updateStackMeasurementCard(response.data));\n })\n .catch((error) => {\n dispatch(updateStackMeasurementCard(null));\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction refreshStacks() {\n return (dispatch: any, getState: () => ApplicationState) => {\n dispatch(getStacks(getState().stacks.filters));\n };\n}\n\nfunction getStacksForSawmillUser(filters: StacksBySawmillQueryPagedRequest) {\n return (dispatch: any) => {\n // TODO: do not request new coordinates if pagination is the only filter change\n if (filters.from && filters.to) {\n dispatch({\n type: SIGNAL_STACK_COORDINATES_LOADING,\n });\n ApiService.getSawmillStackMapList({ ...filters, page: 1, pageSize: 1000 }) // same filters but 1000 points\n .then((response) => {\n dispatch({\n type: UPDATE_STACK_COORDINATES,\n coordinates: response?.data?.data ?? [],\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch({\n type: UPDATE_STACK_COORDINATES,\n coordinates: [],\n });\n });\n\n dispatch({\n type: SIGNAL_STACK_LIST_LOADING,\n });\n const stackQueryRequest: StackQueryRequest = {\n sawmillIds: filters.sawmillIds,\n from: filters.from,\n to: filters.to,\n departmentIds: filters.departmentIds ?? [],\n };\n ApiService.getSawmillStackList(filters)\n .then((response) => {\n dispatch(updateStackList(response.data, stackQueryRequest));\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch(updateStackList(null, stackQueryRequest));\n });\n }\n };\n}\n\nfunction getStackFilterOptions(filters: StackFilterOptionsQueryRequest) {\n return (dispatch: any) => {\n // dispatch(updateStackFilterOptions(undefined)); // signal loading\n ApiService.getStackFilterOptions(filters)\n .then((response) => {\n dispatch(updateStackFilterOptions(response.data));\n })\n .catch((error) => {\n dispatch(updateStackFilterOptions(null)); // signal no data\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction getStacks(filters?: IStackQuery) {\n return (dispatch: any, getState: () => ApplicationState) => {\n if (\n filters?.departmentIds &&\n filters.departmentIds.length > 0 &&\n filters.dateType\n ) {\n if (filters.from && filters.to) {\n const prevFilters = getState().stacks.filters;\n if (\n !prevFilters ||\n prevFilters.from !== filters.from ||\n prevFilters.to !== filters.to ||\n prevFilters.departmentIds !== filters.departmentIds\n ) {\n dispatch(\n getStackFilterOptions({\n from: filters.from,\n to: filters.to,\n departmentIds: filters.departmentIds,\n }),\n );\n }\n }\n\n if (filters.showMap === 'true') {\n // TODO: do not request new coordinates if pagination is the only filter change\n dispatch({\n type: SIGNAL_STACK_COORDINATES_LOADING,\n });\n ApiService.getStackMapList({ ...filters, page: 1, pageSize: 10000 }) // same filters but 10000 points\n .then((response) => {\n dispatch({\n type: UPDATE_STACK_COORDINATES,\n coordinates: response?.data?.data ?? [],\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch({\n type: UPDATE_STACK_COORDINATES,\n coordinates: [],\n });\n });\n }\n dispatch({\n type: SIGNAL_STACK_LIST_LOADING,\n });\n ApiService.getStackList(filters)\n .then((response) => {\n dispatch(updateStackList(response.data, filters));\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch(updateStackList(null, filters));\n });\n } else {\n // no deptId => clear stack list\n dispatch(updateStackList(null, filters));\n dispatch({\n type: UPDATE_STACK_COORDINATES,\n coordinates: [],\n });\n dispatch(updateStackFilterOptions(null));\n }\n };\n}\n\nfunction getStackById(stackId: string) {\n return (dispatch: any) => {\n dispatch({\n type: UPDATE_STACK,\n });\n\n ApiService.getStackById(stackId)\n .then((response) => {\n dispatch({\n type: UPDATE_STACK,\n stack: response.data,\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch({\n type: STACK_ERROR,\n });\n });\n };\n}\n\nfunction deleteStackById(stackId: string) {\n return (dispatch: any) => {\n dispatch({\n type: STACK_DELETE,\n stackId: stackId,\n });\n ApiService.deleteStack(stackId)\n .then(() => {\n dispatch({\n type: STACK_DELETE_SUCCESS,\n stackId: stackId,\n });\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n dispatch({\n type: STACK_DELETE_ERROR,\n stackId: stackId,\n });\n });\n };\n}\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\n\ninterface LayoutProps {\n children?: React.ReactNode;\n}\n\nconst useStyles = makeStyles({\n pageToolbar: {\n backgroundColor: 'rgba(217, 220, 225, 1)',\n padding: '1rem',\n boxSizing: 'border-box',\n boxShadow: '0px 2px 7px 0px rgba(0,0,0,0.28)',\n // position: 'relative',\n zIndex: 10,\n minHeight: '7.313rem', // 85px\n },\n});\n\nconst PageToolbar: React.FC = (props) => {\n const { children } = props;\n const classes = useStyles();\n return
{children}
;\n};\n\nexport { PageToolbar };\n","import { UPDATE_SAWMILL_LIST } from '../store/sawmill';\n\nimport { ApiService } from '../services/apiService';\nimport { notificationActions } from './notificationActions';\nimport { ApplicationState } from 'store';\nimport { AxiosError } from 'axios';\nimport { SawmillResponse } from '.generated/api';\n\nexport const sawmillActions = {\n getSawmillsByOrganizationId,\n addSawmillToOrganization,\n renameSawmill,\n deleteSawmill,\n addUserToSawmill,\n assignStacksToSawmill,\n updateSawmillUser,\n removeSawmillUser,\n};\n\nfunction updateSawmillList(sawmills?: SawmillResponse[]) {\n return { type: UPDATE_SAWMILL_LIST, sawmills };\n}\n\nfunction getSawmillsByOrganizationId(organizationId: string) {\n return (dispatch: any, getState: () => ApplicationState) => {\n dispatch(updateSawmillList());\n ApiService.getSawmillList({ organizationId, page: 1, pageSize: 1000 })\n .then((response) => {\n dispatch(updateSawmillList(response.data.data));\n })\n .catch((error) => {\n dispatch(updateSawmillList([]));\n notificationActions.enqueueErrorResponse(error);\n });\n };\n}\n\nfunction addSawmillToOrganization(\n organizationId: string,\n name: string,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.createSawmill(organizationId, name)\n .then((response) => {\n const sawmills = getState().sawmills.sawmills ?? [];\n dispatch(\n updateSawmillList([\n ...sawmills,\n {\n id: response.data.id,\n name: response.data.name,\n organizationId,\n users: [],\n },\n ]),\n );\n callback && callback();\n })\n .catch((error) => {\n callback || dispatch(notificationActions.enqueueErrorResponse(error));\n callback && callback(error);\n });\n };\n}\n\nfunction renameSawmill(\n sawmillId: string,\n name: string,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.renameSawmill(sawmillId, name)\n .then(() => {\n const sawmills = getState().sawmills.sawmills ?? [];\n const sawmillIndex = sawmills.findIndex(\n (sawmill) => sawmill.id === sawmillId,\n );\n if (sawmillIndex !== -1) {\n sawmills[sawmillIndex] = { ...sawmills[sawmillIndex], name: name };\n dispatch(updateSawmillList(sawmills));\n }\n callback && callback();\n })\n .catch((error) => {\n callback || dispatch(notificationActions.enqueueErrorResponse(error));\n callback && callback(error);\n });\n };\n}\n\nfunction deleteSawmill(\n sawmillId: string,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.deleteSawmill(sawmillId)\n .then(() => {\n const sawmills = getState().sawmills.sawmills ?? [];\n\n dispatch(\n updateSawmillList(\n sawmills.filter((sawmill) => sawmill.id !== sawmillId),\n ),\n );\n\n callback && callback();\n })\n .catch((error) => {\n callback || dispatch(notificationActions.enqueueErrorResponse(error));\n callback && callback(error);\n });\n };\n}\n\nfunction addUserToSawmill(\n sawmillId: string,\n email: string,\n name?: string,\n phone?: string,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.addSawmillUser(sawmillId, { email, name, phone })\n .then(() => {\n const sawmills = getState().sawmills?.sawmills ?? [];\n const sawmillIndex = sawmills.findIndex(\n (sawmill) => sawmill.id === sawmillId,\n );\n if (sawmillIndex !== -1) {\n const sawmill = sawmills[sawmillIndex];\n sawmills[sawmillIndex] = {\n ...sawmill,\n users: [...sawmill.users, { email, name, phone }],\n };\n dispatch(updateSawmillList(sawmills));\n }\n callback && callback();\n })\n .catch((error) => {\n callback || dispatch(notificationActions.enqueueErrorResponse(error));\n callback && callback(error);\n });\n };\n}\n\nfunction assignStacksToSawmill(\n sawmillId: string,\n stackIds: string[],\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.assignStacksToSawmill(sawmillId, stackIds)\n .then(() => {\n callback && callback();\n })\n .catch((error) => {\n callback || dispatch(notificationActions.enqueueErrorResponse(error));\n callback && callback(error);\n });\n };\n}\nfunction updateSawmillUser(\n sawmillId: string,\n email: string,\n name?: string,\n phone?: string,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.updateSawmillUser(sawmillId, email, {\n name,\n phone,\n })\n .then(() => {\n const sawmills = getState().sawmills.sawmills ?? [];\n const sawmill = sawmills.find((sawmill) => sawmill.id === sawmillId);\n if (sawmill) {\n const sawmillUserIndex = sawmill?.users.findIndex(\n (sawmillUser) => sawmillUser.email === email,\n );\n\n if (sawmillUserIndex !== -1) {\n const sawmillUser = sawmill.users[sawmillUserIndex];\n sawmill.users[sawmillUserIndex] = { ...sawmillUser, name, phone };\n dispatch(updateSawmillList(sawmills));\n }\n }\n callback && callback();\n })\n .catch((error) => {\n callback || dispatch(notificationActions.enqueueErrorResponse(error));\n callback && callback(error);\n });\n };\n}\n\nfunction removeSawmillUser(\n sawmillId: string,\n email: string,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.removeSawmillUser(sawmillId, email)\n .then(() => {\n const sawmills = getState().sawmills.sawmills ?? [];\n const sawmill = sawmills.find((sawmill) => sawmill.id === sawmillId);\n if (sawmill) {\n sawmill.users = sawmill.users.filter(\n (sawmillUser) => sawmillUser.email !== email,\n );\n dispatch(updateSawmillList(sawmills));\n }\n callback && callback();\n })\n .catch((error) => {\n callback || dispatch(notificationActions.enqueueErrorResponse(error));\n callback && callback(error);\n });\n };\n}\n","import React from 'react';\nimport clsx from 'clsx';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n position: 'relative',\n },\n backdrop: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 1300,\n backgroundColor: 'rgba(255, 255, 255, 0.7)',\n },\n spinner: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n margin: 'auto',\n },\n}));\ninterface OverlaySpinnerProps {\n isLoading?: boolean;\n children: React.ReactNode;\n className?: string;\n}\n\nconst OverlaySpinner: React.FC = ({\n isLoading,\n children,\n className,\n}) => {\n const classes = useStyles();\n return (\n
\n {children}\n {isLoading && (\n
\n \n
\n )}\n
\n );\n};\n\nexport default OverlaySpinner;\n","import React from 'react';\nimport { SvgIcon } from '@material-ui/core';\n\nconst SawmillIcon: React.FC = (props: any) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default SawmillIcon;\n","import React, { useEffect, useState } from 'react';\nimport { useParams, useHistory, useLocation } from 'react-router-dom';\nimport {\n ListStacksResponseItem,\n StackStateEnumDto,\n OrganizationDepartmentResponse,\n} from '../.generated/api';\n\nimport {\n makeStyles,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TablePagination,\n IconButton,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n Checkbox,\n Drawer,\n List,\n ListItem,\n ListItemText,\n RadioGroup,\n Radio,\n FormControlLabel,\n ListItemIcon,\n Divider,\n LabelDisplayedRowsArgs,\n} from '@material-ui/core';\n\nimport { Delete, GetApp, FiberManualRecord } from '@material-ui/icons';\n\nimport { primaryColor, theme } from 'theme/theme';\nimport { useTranslation } from 'react-i18next';\nimport 'translations/translations';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport { stackActions } from 'actions/stackActions';\nimport IconSpinner from './spinners/ButtonSpinner';\nimport { sawmillActions } from 'actions/sawmillActions';\nimport OverlaySpinner from './spinners/OverlaySpinner';\nimport { notificationActions } from 'actions/notificationActions';\nimport SawmillIcon from 'icons/SawmillIcon';\n\nconst useStyles = makeStyles({\n container: {\n overflow: 'auto',\n flex: 1,\n },\n pagination: {},\n tableHeadCell: {\n backgroundColor: 'rgba(237, 240, 242, 1)', // transparent background is no good for sticky header\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n position: 'relative',\n '& > a': {\n color: 'inherit',\n },\n paddingTop: 0,\n paddingBottom: 0,\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n cursor: 'pointer',\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n measuredIcon: {\n position: 'absolute',\n right: '100%',\n fontSize: '1rem',\n marginRight: '-0.5rem',\n },\n spinner: {\n height: '22px',\n width: '22px',\n },\n dialogContent: {\n height: 'auto',\n maxHeight: '33vh',\n },\n drawer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n backgroundColor: 'rgba(217, 220, 225, 1)',\n },\n checkbox: {\n padding: 0,\n },\n radio: {\n margin: 0,\n },\n});\n\ninterface ParamTypes {\n orgId: string;\n}\n\nfunction isMeasured(state: StackStateEnumDto): boolean {\n return (\n state === StackStateEnumDto.MEASURED ||\n state === StackStateEnumDto.ASSIGNED_TO_SAWMILL\n );\n}\n\nfunction isPreRegistration(state: StackStateEnumDto): boolean {\n return state === StackStateEnumDto.PRE_REGISTRATION;\n}\n\nfunction dateFromSelectedDateType(\n stack: ListStacksResponseItem,\n dateType: string,\n) {\n switch (dateType) {\n case 'LastChanged': {\n if (stack.lastModifiedDateTime)\n return new Date(stack.lastModifiedDateTime).toLocaleDateString(\n navigator.language,\n );\n return '';\n }\n case 'PreRegistration': {\n if (stack.registrationDateTime)\n return new Date(stack.registrationDateTime).toLocaleDateString(\n navigator.language,\n );\n return '';\n }\n case 'Measured': {\n if (stack.measurementDateTime)\n return new Date(stack.measurementDateTime).toLocaleDateString(\n navigator.language,\n );\n return '';\n }\n case 'AssignedToSawmill': {\n if (stack.assignedToSawmillDateTime)\n return new Date(stack.assignedToSawmillDateTime).toLocaleDateString(\n navigator.language,\n );\n return '';\n }\n case 'Invoiceable': {\n if (stack.invoiceableDateTime)\n return new Date(stack.invoiceableDateTime).toLocaleDateString(\n navigator.language,\n );\n return '';\n }\n default:\n return '';\n }\n}\n\ninterface StacksTableProps {\n onPageChanged?: (page: number) => void;\n onPageSizeChanged?: (page: number) => void;\n}\n\nfunction StacksTable({\n onPageChanged,\n onPageSizeChanged,\n}: StacksTableProps): React.ReactElement {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n const history = useHistory();\n const dispatch = useDispatch();\n const { orgId } = useParams();\n\n const [selectedStackIds, setSelectedStackIds] = useState([]);\n const [isAssignDialogOpen, setAssignDialogOpen] = useState(false);\n const [isAssignDialogLoading, setAssignDialogLoading] = useState(false);\n const [selectedSawmill, setSelectedSawmill] = useState('');\n const location = useLocation();\n const [dateType, setDateType] = useState('Invoiceable');\n\n useEffect(() => {\n const query = new URLSearchParams(location.search);\n const dateType = query.get('dateType');\n if (dateType) setDateType(dateType);\n }, [location]);\n\n const [\n confirmStackDelete,\n setConfirmStackDelete,\n ] = useState();\n\n const { stacks, filters, sawmills, measurementCard } = useSelector(\n (state: ApplicationState) => ({\n stacks: state.stacks?.stacks,\n filters: state.stacks?.filters,\n sawmills: state.sawmills?.sawmills ?? [],\n measurementCard: state.stacks?.measurementCard,\n }),\n );\n\n const {\n stacksDeleting,\n archiveDownloadProgress,\n accumulatedCsvDownloadProgress,\n } = useSelector((state: ApplicationState) => ({\n stacksDeleting: state.stacks?.stacksDeleting,\n archiveDownloadProgress: state.stacks?.archiveDownloadProgress,\n accumulatedCsvDownloadProgress:\n state.stacks?.accumulatedCsvDownloadProgress,\n }));\n\n const departments = useSelector((state: ApplicationState) => {\n const deptMap: Record = {};\n const departments = state.organization?.organization?.departments;\n if (departments) {\n for (const dept of departments) {\n deptMap[dept.departmentId] = dept;\n }\n }\n return deptMap;\n });\n\n // reset sawmill selection\n useEffect(() => {\n setSelectedSawmill(sawmills.length === 0 ? '' : sawmills[0].id);\n }, [sawmills]);\n\n // sawmill radio select\n const handleSawmillRadioChanged = (\n e: React.ChangeEvent,\n ) => {\n setSelectedSawmill(e.target.value);\n };\n\n const handleAssignClicked = () => {\n if (selectedSawmill.length > 0 && selectedStackIds.length > 0) {\n setAssignDialogLoading(true);\n dispatch(\n sawmillActions.assignStacksToSawmill(\n selectedSawmill,\n selectedStackIds,\n (error) => {\n setAssignDialogLoading(false);\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n } else {\n dispatch(stackActions.refreshStacks());\n setAssignDialogOpen(false);\n }\n },\n ),\n );\n }\n };\n\n const handleAssignDialogClose = () => {\n isAssignDialogLoading || setAssignDialogOpen(false);\n };\n\n function handleDownloadStackArchiveClick() {\n dispatch(stackActions.downloadStackArchive(selectedStackIds));\n }\n\n function handleDownloadAccumulatedCsvClick() {\n if (measurementCard) {\n dispatch(\n stackActions.downloadAccumulatedCsv(\n measurementCard.id,\n selectedStackIds,\n ),\n );\n }\n }\n\n const deleteStack = () => {\n if (confirmStackDelete) {\n dispatch(stackActions.deleteStackById(confirmStackDelete.stackId));\n setConfirmStackDelete(undefined);\n }\n };\n\n const cancelDeleteStack = () => {\n setConfirmStackDelete(undefined);\n };\n\n const handleChangePage = (event: unknown, newPage: number) => {\n if (onPageChanged) {\n onPageChanged(newPage);\n }\n };\n\n const handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n if (onPageSizeChanged) {\n onPageSizeChanged(Number(event.target.value));\n }\n };\n\n // checkbox select logic\n const handleSelectAllClick = (e: React.ChangeEvent) => {\n if (e.target.checked && stacks) {\n setSelectedStackIds(\n stacks.data\n .filter((stack) => isMeasured(stack.state))\n .map((stack) => stack.stackId),\n );\n } else {\n setSelectedStackIds([]);\n }\n };\n\n const handleSelectRowClick = (stackId: string) => {\n const selectedIndex = selectedStackIds.indexOf(stackId);\n let newSelected: string[] = [];\n\n if (selectedIndex === -1) {\n newSelected = newSelected.concat(selectedStackIds, stackId);\n } else if (selectedIndex === 0) {\n newSelected = newSelected.concat(selectedStackIds.slice(1));\n } else if (selectedIndex === selectedStackIds.length - 1) {\n newSelected = newSelected.concat(selectedStackIds.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelected = newSelected.concat(\n selectedStackIds.slice(0, selectedIndex),\n selectedStackIds.slice(selectedIndex + 1),\n );\n }\n\n setSelectedStackIds(newSelected);\n };\n\n const isSelected = (stackId: string) =>\n selectedStackIds.indexOf(stackId) !== -1;\n\n const numSelected = selectedStackIds.length;\n const rowCount =\n stacks?.data.filter((stack) => isMeasured(stack.state)).length ?? 0;\n\n function stateToString(state: StackStateEnumDto) {\n switch (state) {\n case StackStateEnumDto.ASSIGNED_TO_SAWMILL:\n return t('stacks_page.table.assigned_to_sawmill');\n case StackStateEnumDto.MEASURED:\n return t('stacks_page.table.measured');\n case StackStateEnumDto.PRE_REGISTRATION:\n return t('stacks_page.table.not_measured');\n default:\n return '';\n }\n }\n\n function toSnakeCase(str: string) {\n // TODO refactor 'preregistration' keys in translation files to match the others\n if (str === 'PreRegistration') return 'preregistration';\n const snakeCase = str.replace(/[A-Z]/g, (match, offset) => {\n if (offset === 0) {\n return match.toLowerCase();\n }\n return `_${match.toLowerCase()}`;\n });\n return snakeCase;\n }\n\n return (\n <>\n \n \n \n \n \n 0 && numSelected < rowCount}\n checked={rowCount > 0 && numSelected === rowCount}\n onChange={handleSelectAllClick}\n />\n \n \n {t('stacks_page.table.stack_no')}\n \n \n {t('stacks_page.table.stack_id')}\n \n \n {t('stacks_page.table.department')}\n \n \n {t('stacks_page.table.registrator')}\n \n \n {t('stacks_page.table.surveyor')}\n \n \n {t('stacks_page.table.status')}\n \n \n {t('stacks_page.date_type.' + toSnakeCase(dateType))}\n \n \n \n \n \n {stacks?.data?.map((stack: ListStacksResponseItem) => (\n {\n history.push(\n `/organization/${orgId}/department/${stack.departmentId}/stack/${stack.stackId}`,\n );\n }}\n >\n \n {isMeasured(stack.state) && (\n {\n event.stopPropagation();\n handleSelectRowClick(stack.stackId);\n }}\n />\n )}\n \n\n \n {stack.stackNumber}\n \n \n {stack.polterId ?? ''}\n \n \n {departments[stack.departmentId] &&\n departments[stack.departmentId].name}\n \n \n {stack.registrator}\n \n \n {stack.surveyor}\n \n \n \n {stateToString(stack.state)}\n \n \n {dateFromSelectedDateType(stack, dateType)}\n \n \n {isPreRegistration(stack.state) && (\n \n {\n e.stopPropagation();\n setConfirmStackDelete(stack);\n }}\n aria-label=\"delete\"\n >\n \n \n \n )}\n \n \n ))}\n \n
\n
\n {\n return `${info.from}-${info.to} ${t('pagination.of')} ${info.count}`;\n }}\n labelRowsPerPage={t('pagination.rows_per_page') + ':'}\n nextIconButtonText={t('pagination.next_page')}\n />\n 0}\n >\n
\n setAssignDialogOpen(true)}\n color=\"secondary\"\n startIcon={}\n >\n {t('stacks_page.dialog.assign_to_sawmill')}\n \n \n \n \n }\n >\n {t('stacks_page.table.download_reports')}\n \n \n \n \n }\n >\n {t('stacks_page.table.download_stacks')}\n \n
\n \n \n \n {t('stacks_page.confirm_delete.title')}\n \n \n \n {t('stacks_page.confirm_delete.text', {\n stackNumber: confirmStackDelete?.stackNumber,\n })}\n \n \n \n \n \n \n \n \n \n {\n e.preventDefault();\n handleAssignClicked();\n }}\n >\n \n {t('stacks_page.dialog.assign_stacks_to_sawmill')}\n \n \n \n \n {sawmills.map((sawmill, i) => (\n \n \n \n
\n \n {sawmill.name}\n }\n label=\"\"\n className={classes.radio}\n />\n \n {i + 1 < sawmills.length && (\n \n )}\n \n ))}\n \n \n \n \n \n \n {t('stacks_page.dialog.assign')}\n \n \n \n \n
\n \n );\n}\n\nexport { StacksTable };\n","import React, { useEffect, useState } from 'react';\nimport { da, de, enCA } from 'date-fns/locale';\nimport {\n MuiPickersUtilsProvider,\n KeyboardDatePicker,\n} from '@material-ui/pickers';\nimport DateFnsUtils from '@date-io/date-fns';\nimport { useTranslation } from 'react-i18next';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport { Grid, IconButton } from '@material-ui/core';\n\nexport function now(): Date {\n const date = new Date();\n // used as to date\n date.setHours(23);\n date.setMinutes(59);\n date.setSeconds(59);\n date.setMilliseconds(0);\n return date;\n}\n\nexport function lastMonth(): Date {\n const date = now();\n // used as from date\n date.setMonth(date.getMonth() - 1);\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n return date;\n}\n\nexport function utcToLocalWithoutTz(utc: Date) {\n return new Date(\n utc.getUTCFullYear(),\n utc.getUTCMonth(),\n utc.getUTCDate(),\n utc.getUTCHours(),\n utc.getUTCMinutes(),\n utc.getUTCSeconds(),\n );\n}\n\nexport function localToUTCWithoutTz(local: Date) {\n const utc = new Date(\n Date.UTC(\n local.getFullYear(),\n local.getMonth(),\n local.getDate(),\n local.getHours(),\n local.getMinutes(),\n local.getSeconds(),\n ),\n );\n return utc;\n}\n\ntype DateRangeProps = {\n clearable?: boolean;\n\n defaultStartDate?: Date | null;\n defaultEndDate?: Date | null;\n\n startDate?: Date | null;\n endDate?: Date | null;\n\n onChange?: (from: Date | null, to: Date | null, valid: boolean) => void;\n\n itemClass?: string;\n\n utc?: boolean; // whether input/output dates should be utc dates\n};\n\nconst DateRangePickerComponent: React.FC = (props) => {\n const [startDate, setStartDate] = useState(\n props.defaultStartDate ?? null,\n );\n const [endDate, setEndDate] = useState(\n props.defaultEndDate ?? null,\n );\n const { t } = useTranslation(['translations']);\n\n useEffect(() => {\n if (props.startDate !== undefined) {\n setStartDate(\n props.utc && props.startDate\n ? utcToLocalWithoutTz(props.startDate)\n : props.startDate,\n );\n }\n }, [props.startDate, props.utc]);\n\n useEffect(() => {\n if (props.endDate !== undefined) {\n setEndDate(\n props.utc && props.endDate\n ? utcToLocalWithoutTz(props.endDate)\n : props.endDate,\n );\n }\n }, [props.endDate, props.utc]);\n\n const getLanguage = (): Locale => {\n const language = navigator.language;\n switch (language) {\n case 'da-DK':\n return da;\n case 'en-US':\n case 'en-CA':\n return enCA;\n case 'de-AT':\n case 'de-DE':\n case 'de-CH':\n return de;\n default:\n return enCA;\n }\n };\n\n const getFormat = (): string => {\n const language = navigator.language;\n switch (language) {\n case 'da-DK':\n case 'de-AT':\n case 'de-DE':\n case 'de-CH':\n return 'dd/MM/yyyy';\n case 'en-US':\n case 'en-CA':\n return 'MM/dd/yyyy';\n default:\n return 'dd/MM/yyyy';\n }\n };\n\n const notifyChange = (from: Date | null, to: Date | null) => {\n if (props.onChange) {\n let valid = true;\n if (from) {\n if (isNaN(from.getTime())) {\n // invalid date\n valid = false;\n } else {\n from.setHours(0);\n from.setMinutes(0);\n from.setSeconds(0);\n from.setMilliseconds(0);\n }\n }\n if (to) {\n if (isNaN(to.getTime())) {\n // invalid date\n valid = false;\n } else {\n to.setHours(23);\n to.setMinutes(59);\n to.setSeconds(59);\n to.setMilliseconds(0);\n }\n }\n\n if (from && to && from > to) {\n valid = false;\n }\n\n props.onChange(\n props.utc && from ? localToUTCWithoutTz(from) : from,\n props.utc && to ? localToUTCWithoutTz(to) : to,\n valid,\n );\n }\n };\n\n const setStartDateFn = (date: Date | null) => {\n setStartDate(date);\n notifyChange(date, endDate);\n };\n\n const setEndDateFn = (date: Date | null) => {\n setEndDate(date);\n notifyChange(startDate, date);\n };\n\n const invalidOrderMessage = t('date_range.invalid_range');\n const invalidDateMessage = t('date_range.invalid_date');\n\n const invalidFrom = !!startDate && isNaN(startDate.getTime());\n const invalidTo = !!endDate && isNaN(endDate.getTime());\n const orderError = !!startDate && !!endDate && startDate > endDate;\n\n return (\n \n \n {\n setStartDateFn(null);\n }}\n >\n \n \n ),\n }\n : undefined\n }\n />\n \n \n {\n setEndDateFn(null);\n }}\n >\n \n \n ),\n }\n : undefined\n }\n invalidDateMessage={invalidDateMessage}\n />\n \n \n );\n};\n\nexport { DateRangePickerComponent };\n","import React, { useState, useEffect } from 'react';\nimport clsx from 'clsx';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n makeStyles,\n Button,\n Card,\n CardContent,\n IconButton,\n Grid,\n CardHeader,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport 'translations/translations';\nimport { useMap } from 'react-leaflet';\nimport { StackStateEnumDto, StackMapInfoResponse } from '.generated/api';\nimport { Cancel } from '@material-ui/icons';\nimport { stackActions } from 'actions/stackActions';\nimport { ApplicationState } from 'store';\nimport OverlaySpinner from './spinners/OverlaySpinner';\n\nconst useStyles = makeStyles((theme) => ({\n fixCardPadding: {\n paddingTop: '0rem',\n paddingBottom: '0rem',\n marginTop: '-1.875rem',\n marginBotton: '-1.875rem',\n },\n paddingBottom: {\n paddingBottom: theme.spacing(2),\n },\n cardContent: {\n paddingTop: 0,\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n },\n buttonMargin: {\n margin: 0,\n },\n}));\n\nfunction lastChanged(stack: StackMapInfoResponse) {\n const lastModifiedDateTime = new Date(stack.lastModified);\n if (lastModifiedDateTime) {\n return lastModifiedDateTime.toLocaleDateString(navigator.language);\n }\n return '';\n}\n\ninterface ParamTypes {\n orgId: string;\n}\n\ninterface CardItemProps {\n label: string;\n value: string;\n}\nconst CardItem: React.FC = ({ label, value }) => {\n return (\n \n \n \n {label}\n \n {value}\n \n \n );\n};\n\ninterface StacksMapInfoCardProps {\n // eslint-disable-next-line @typescript-eslint/ban-types\n closeSelectedStackInfo: Function;\n disableStackDetailLink?: boolean;\n}\n\nconst StacksMapInfoCard: React.FC = ({\n closeSelectedStackInfo,\n disableStackDetailLink,\n}) => {\n const classes = useStyles();\n const history = useHistory();\n const { t } = useTranslation(['translations']);\n const map = useMap();\n const dispatch = useDispatch();\n\n const { orgId } = useParams();\n\n const mapInfo = useSelector(\n (state: ApplicationState) => state.stacks.mapInfo,\n );\n\n const closePopup = () => {\n map.closePopup();\n closeSelectedStackInfo();\n };\n\n const openStackDetails = () => {\n if (mapInfo) {\n // TODO: need departmentId in mapInfo\n history.push(\n `/organization/${orgId}/department/${mapInfo.departmentId}/stack/${mapInfo.stackId}`,\n );\n }\n };\n\n const handleDownloadReport = () => {\n if (mapInfo) {\n dispatch(stackActions.downloadStackArchive([mapInfo.stackId]));\n }\n };\n\n return (\n \n \n \n \n closePopup()} color=\"secondary\">\n \n \n \n \n }\n >\n \n \n \n \n \n \n\n \n {!disableStackDetailLink && (\n \n openStackDetails()}\n >\n {t('stacks_page.map_info_card.see_details')}\n \n \n )}\n \n \n {t('stacks_page.map_info_card.get_report')}\n \n \n \n \n \n {t('stacks_page.table.last_changed')}: \n {mapInfo && lastChanged(mapInfo)}\n \n \n \n \n \n );\n};\n\nexport { StacksMapInfoCard };\n","import React, { useState, useEffect } from 'react';\nimport { ApplicationState } from 'store';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { makeStyles } from '@material-ui/core';\nimport L, { LatLng } from 'leaflet';\nimport {\n MapContainer,\n TileLayer,\n CircleMarker,\n Popup,\n useMap,\n} from 'react-leaflet';\nimport MarkerClusterGroup from 'react-leaflet-cluster';\nimport styled from 'styled-components';\nimport 'translations/translations';\nimport { StackCoordinateResponse, StackStateEnumDto } from '.generated/api';\n\nimport { StacksMapInfoCard } from 'components/StacksMapInfoCard';\n\nimport {\n primaryColor as measured,\n warningColor as notMeasured,\n buttonPrimaryColor,\n} from 'theme/theme';\nimport 'leaflet/dist/leaflet.css';\nimport 'theme/leafletFade.css';\nimport { stackActions } from 'actions/stackActions';\n\nconst useStyles = makeStyles({\n mapBottomPadding: {\n // paddingBottom: '1.5rem'\n },\n mapSizing: {\n width: '100%',\n height: '100%',\n minHeight: '100%',\n zIndex: 1,\n },\n});\n\nconst StyledPop = styled(Popup)`\n .leaflet-popup-content-wrapper {\n border-radius: unset;\n background: unset;\n box-shadow: unset;\n }\n .leaflet-popup-tip-container {\n opacity: 0;\n }\n`;\n\ntype StackWithPosition = {\n coordinate: StackCoordinateResponse;\n position: L.LatLng;\n};\n\ninterface FitBoundsProps {\n bounds: L.LatLngBounds;\n}\n\n// FitBounds component is a hack to update map bounds, since MapContainer will not update bounds when bounds property changes.\nfunction FitBounds({ bounds }: FitBoundsProps) {\n const map = useMap();\n useEffect(() => {\n map.fitBounds(bounds, { padding: [50, 50] });\n }, [map, bounds]);\n\n return null;\n}\n\ninterface StacksMapProps {\n disableStackDetailLinks?: boolean;\n}\n\nconst StacksMap: React.FC = ({ disableStackDetailLinks }) => {\n const dispatch = useDispatch();\n let timeout: number | undefined;\n // eslint-disable-next-line @typescript-eslint/ban-types\n const debounce = (func: Function, wait: number) => {\n clearTimeout(timeout);\n timeout = setTimeout(func, wait);\n };\n const classes = useStyles();\n\n const coordinates = useSelector(\n (state: ApplicationState) => state.stacks?.coordinates,\n );\n\n const [stacks, setStacks] = useState([]);\n\n const worldBounds = new L.LatLngBounds([60.0, -150.0], [-60.0, 150.0]);\n const [mapBounds, setMapBounds] = useState(worldBounds);\n\n const [selectedStack, setSelectedStack] = useState<\n StackWithPosition | undefined\n >(undefined);\n\n const [selectedStackMarkerColor, setSelectedStackMarkerColor] = useState<\n string | undefined\n >(notMeasured);\n\n useEffect(() => {\n if (coordinates && coordinates.length > 0) {\n const latitudes = coordinates.map((coordinate) => coordinate.latitude);\n const longitudes = coordinates.map((coordinate) => coordinate.longitude);\n const bounds = new L.LatLngBounds(\n [Math.min(...latitudes), Math.min(...longitudes)],\n [Math.max(...latitudes), Math.max(...longitudes)],\n );\n\n setStacks(\n coordinates.map(\n (coordinate): StackWithPosition => ({\n coordinate,\n position: new LatLng(coordinate.latitude, coordinate.longitude),\n }),\n ),\n );\n setMapBounds(bounds);\n } else {\n setStacks([]);\n setMapBounds(worldBounds);\n }\n\n setSelectedStack(undefined);\n }, [coordinates]);\n\n const showSelectedStackInfo = (newStack: StackWithPosition) => {\n dispatch(stackActions.getStackMapInfoById(newStack.coordinate.stackId));\n // reset to restart css animation\n setSelectedStack(undefined);\n if (newStack) {\n setSelectedStackMarkerColor(getMarkerColor(newStack));\n setSelectedStack(newStack);\n }\n };\n\n const closeSelectedStackInfo = () => {\n setSelectedStack(undefined);\n };\n\n const getMarkerColor = (stack: StackWithPosition) => {\n return stack.coordinate.state === StackStateEnumDto.PRE_REGISTRATION\n ? notMeasured\n : measured('100');\n };\n\n const getMarkerOpacity = (stack: StackWithPosition): number => {\n return stack.coordinate.stackId === selectedStack?.coordinate.stackId\n ? 1\n : 0;\n };\n\n return (\n \n \n \n {stacks.map((stack: StackWithPosition, index) => {\n return (\n showSelectedStackInfo(stack),\n }}\n >\n {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n debounce(function () {}, 50);\n }}\n onClose={() => {\n debounce(function () {\n closeSelectedStackInfo();\n }, 50);\n }}\n >\n \n \n \n );\n })}\n \n {selectedStack !== undefined && (\n \n )}\n \n \n );\n};\nexport { StacksMap };\n","import { OrganizationDepartmentResponse } from '.generated/api';\nimport { IUserAccess } from 'store/models';\nimport { RelationItem } from 'store/models/UserAccess';\n\nlet departments: OrganizationDepartmentResponse[] | undefined;\n\nexport const getAuthorizedDepartments = (\n orgId: string,\n userAccess: IUserAccess | undefined,\n orgDepartments: OrganizationDepartmentResponse[] | null | undefined,\n accessibleDepartments: RelationItem[] | undefined,\n): OrganizationDepartmentResponse[] | undefined => {\n if (\n !userAccess?.organizations?.find((org) => org.id === orgId) &&\n !userAccess?.isGlobalAdmin\n ) {\n departments = orgDepartments?.filter(\n (dept) =>\n !!accessibleDepartments?.find(\n (accessibleDept) => dept.departmentId === accessibleDept.id,\n ),\n );\n } else {\n departments = orgDepartments || undefined;\n }\n\n return departments;\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport {\n makeStyles,\n Drawer,\n CardHeader,\n IconButton,\n CardContent,\n Button,\n} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\n\nconst useStyles = makeStyles((theme) => ({\n drawer: {\n marginTop: '6.8rem',\n paddingBottom: '6.8rem',\n width: '19rem',\n },\n resetButton: {\n margin: 0,\n width: '100%',\n },\n resetButtonContainer: {\n width: '100%',\n padding: theme.spacing(2),\n },\n}));\n\ninterface FilterDrawerProps {\n open?: boolean;\n onClose?: () => void;\n onResetFilters?: () => void;\n children: React.ReactNode;\n}\n\nconst FilterDrawer: React.FC = ({\n open,\n onClose,\n onResetFilters,\n children,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n return (\n \n \n \n \n }\n />\n {children}\n
\n \n {t('filter_drawer.reset_filters')}\n \n
\n \n );\n};\n\nexport default FilterDrawer;\n","import React from 'react';\n\nimport { Checkbox, ListItemText, MenuItem, TextField } from '@material-ui/core';\n\ninterface MultiSelectFilterProps {\n label: string;\n items: Array<{ value: string; label: string }>;\n values?: string[];\n onSelect?: (values: string[]) => void;\n}\n\nconst MultiSelectFilter: React.FC = ({\n label,\n items,\n values,\n onSelect,\n}) => {\n const handleChange = (\n e: React.ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n ) => {\n onSelect && onSelect(e.target.value as string[]);\n };\n\n return (\n \n values\n ?.map((value) => items.find((item) => item.value === value)?.label)\n .join(', ') ?? '',\n }}\n onChange={handleChange}\n >\n {items.map(({ label, value }) => {\n const checked = values && values.indexOf(value) > -1;\n return (\n \n \n \n \n );\n })}\n \n );\n};\n\nexport default MultiSelectFilter;\n","import {\n FieldBooleanResponse,\n FieldWithOptionsResponse,\n MeasurementCardResponse,\n OptionResponse,\n StackFilterOptionsResponse,\n} from '.generated/api';\nimport { apiTranslate } from 'translations/translations';\n\nexport type TranslatedFilterOptions = {\n registrators?: {\n title: string;\n options: Array<{ label: string; value: string }>;\n };\n surveyors?: {\n title: string;\n options: Array<{ label: string; value: string }>;\n };\n treeSpecies?: {\n title: string;\n options: Array<{ label: string; value: string }>;\n };\n assortments?: {\n title: string;\n options: Array<{ label: string; value: string }>;\n };\n assortmentLength?: {\n title: string;\n };\n areaNumber?: {\n title: string;\n };\n fullMeasurement?: {\n title: string;\n trueLabel: string;\n falseLabel: string;\n };\n};\n\nconst translateFieldOptions = (\n optionIds?: string[],\n fieldOptions?: OptionResponse[],\n) => {\n if (!(optionIds && fieldOptions)) {\n return [];\n }\n\n const translatedOptions: { label: string; value: string }[] = [];\n for (const optionId of optionIds) {\n const option = fieldOptions.find(\n (fieldOption) => optionId === fieldOption.key,\n );\n if (option) {\n translatedOptions.push({\n value: option.key,\n label: apiTranslate(option.text),\n });\n }\n }\n\n return translatedOptions;\n};\n\nexport const translateFilterOptions = (\n measurementCard: MeasurementCardResponse,\n filterOptions: StackFilterOptionsResponse,\n) => {\n const translatedOptions: TranslatedFilterOptions = {};\n\n {\n const registratorField = measurementCard.fields.find(\n (field) => field.id === filterOptions.fieldIds.registrator,\n );\n if (registratorField) {\n translatedOptions.registrators = {\n title: apiTranslate(registratorField.title),\n options:\n filterOptions.registrators?.map((option) => ({\n label: option,\n value: option,\n })) ?? [],\n };\n }\n }\n\n {\n const surveyorField = measurementCard.fields.find(\n (field) => field.id === filterOptions.fieldIds.surveyor,\n );\n if (surveyorField) {\n translatedOptions.surveyors = {\n title: apiTranslate(surveyorField.title),\n options:\n filterOptions.surveyors?.map((option) => ({\n label: option,\n value: option,\n })) ?? [],\n };\n }\n }\n\n {\n const treeSpeciesField = measurementCard.fields.find(\n (field) => field.id === filterOptions.fieldIds.treeSpecies,\n ) as FieldWithOptionsResponse;\n if (treeSpeciesField) {\n translatedOptions.treeSpecies = {\n title: apiTranslate(treeSpeciesField.title),\n options: translateFieldOptions(\n filterOptions.treeSpecies,\n treeSpeciesField.options ?? undefined,\n ),\n };\n }\n }\n\n {\n const assortmentField = measurementCard.fields.find(\n (field) => field.id === filterOptions.fieldIds.assortment,\n ) as FieldWithOptionsResponse;\n if (assortmentField) {\n translatedOptions.assortments = {\n title: apiTranslate(assortmentField.title),\n options: translateFieldOptions(\n filterOptions.assortments,\n assortmentField.options ?? undefined,\n ),\n };\n }\n }\n\n {\n const assortmentLength = measurementCard.fields.find(\n (field) => field.id === filterOptions.fieldIds.assortmentLength,\n );\n if (assortmentLength) {\n translatedOptions.assortmentLength = {\n title: apiTranslate(assortmentLength.title),\n };\n }\n }\n\n {\n const areaNumber = measurementCard.fields.find(\n (field) => field.id === filterOptions.fieldIds.areaNumber,\n );\n if (areaNumber) {\n translatedOptions.areaNumber = {\n title: apiTranslate(areaNumber.title),\n };\n }\n }\n\n {\n const fullMeasurement = measurementCard.fields.find(\n (field) => field.id === filterOptions.fieldIds.fullMeasurement,\n ) as FieldBooleanResponse;\n if (\n fullMeasurement &&\n fullMeasurement.trueLabel &&\n fullMeasurement.falseLabel\n ) {\n translatedOptions.fullMeasurement = {\n title: apiTranslate(fullMeasurement.title),\n trueLabel: apiTranslate(fullMeasurement.trueLabel),\n falseLabel: apiTranslate(fullMeasurement.falseLabel),\n };\n }\n }\n\n return translatedOptions;\n};\n","import React, { useEffect, useState } from 'react';\nimport {\n IconButton,\n InputAdornment,\n makeStyles,\n Paper,\n TextField,\n} from '@material-ui/core';\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport { buttonPrimaryColor } from 'theme/theme';\nimport clsx from 'clsx';\n\nimport SearchIcon from '@material-ui/icons/Search';\n\nconst useStyles = makeStyles(() => ({\n paperRoot: {\n position: 'absolute',\n zIndex: 9999,\n padding: '0',\n top: '50px',\n width: '100%',\n borderRadius: '0 0 4px 4px',\n boxShadow: 'none',\n borderTop: 'none',\n borderRight: `2px solid ${buttonPrimaryColor()}`,\n borderBottom: `2px solid ${buttonPrimaryColor()}`,\n borderLeft: `2px solid ${buttonPrimaryColor()}`,\n },\n container: {\n position: 'relative',\n },\n fieldWithDD: {\n borderColor: buttonPrimaryColor(),\n '& .MuiOutlinedInput-root': {\n fieldset: {\n borderColor: buttonPrimaryColor(),\n },\n },\n },\n textField: {\n '& .MuiOutlinedInput-root': {\n paddingRight: 0,\n },\n },\n dropdown: {\n paddingRight: '0',\n paddingLeft: '0',\n margin: '0',\n },\n dropdownOption: {\n display: 'block',\n listStyle: 'none',\n padding: '0.5rem 0.8rem',\n cursor: 'pointer',\n color: '#000',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\n },\n },\n}));\n\ntype AutocompleteProps = {\n onSelect?: (option?: OptionType) => void;\n getOptionLabel: (option: OptionType) => string;\n options: OptionType[];\n onChange?: (name: string) => void;\n value?: OptionType;\n label?: string;\n};\n\nfunction Autocomplete(\n props: AutocompleteProps,\n): React.ReactElement {\n const { onSelect, onChange, value, label, options, getOptionLabel } = props;\n const classes = useStyles();\n const [filteredOptions, setFilteredOptions] = useState([]);\n\n const [storedValue, setValue] = useState('');\n const [sortedOptions, setOptions] = useState([]);\n\n useEffect(() => {\n setValue(value ? getOptionLabel(value) : '');\n }, [value]);\n\n useEffect(() => {\n // sort options by lowercase label\n setOptions(\n options.sort((a, b) =>\n getOptionLabel(a)\n .toLowerCase()\n .localeCompare(getOptionLabel(b).toLowerCase()),\n ),\n );\n }, [options]);\n\n const filterOptions = (value: string) => {\n const lowerCaseValue = value.toLowerCase();\n return sortedOptions.filter(\n (option) =>\n getOptionLabel(option).toLowerCase().indexOf(lowerCaseValue) > -1,\n );\n };\n\n const handleFocus = () => {\n if (storedValue.length > 0) {\n setFilteredOptions(filterOptions(storedValue));\n }\n };\n\n const handleClickAway = () => {\n const lowerCaseValue = storedValue.toLowerCase();\n const option = filteredOptions.find(\n (option) => getOptionLabel(option).toLowerCase() === lowerCaseValue,\n );\n if (option) {\n handleSelect(option);\n } else {\n setValue(value ? getOptionLabel(value) : '');\n setFilteredOptions([]);\n }\n };\n\n const handleKeyDown = (\n e: React.KeyboardEvent,\n ) => {\n if (e.key === 'Tab') {\n // e.preventDefault();\n handleClickAway();\n }\n };\n\n const handleSubmit = (event: React.FormEvent) => {\n event.preventDefault();\n\n // select closest match on submit\n if (storedValue.length === 0) {\n onSelect && onSelect(); // clear selection\n } else {\n const filtered = filterOptions(storedValue);\n if (filtered.length > 0) {\n handleSelect(filtered[0]);\n }\n }\n };\n\n const handleChange = (\n e: React.ChangeEvent,\n ) => {\n const { value } = e.target;\n\n setValue(value);\n onChange && onChange(value);\n\n if (value.length === 0) {\n setFilteredOptions([]);\n } else {\n setFilteredOptions(filterOptions(value));\n }\n };\n\n const handleSelect = (option: OptionType) => {\n setValue(getOptionLabel(option));\n if (value !== option) {\n onSelect && onSelect(option);\n }\n setFilteredOptions([]);\n };\n\n return (\n \n
\n
\n \n \n \n \n \n ),\n }}\n className={clsx(\n filteredOptions.length > 0 ? classes.fieldWithDD : '',\n )}\n classes={{ root: classes.textField }}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n disabled={options.length === 0}\n />\n \n\n {filteredOptions.length > 0 && (\n \n
    \n {filteredOptions?.map((option, index) => {\n return (\n handleSelect(option)}\n >\n {getOptionLabel(option)}\n \n );\n })}\n
\n
\n )}\n
\n
\n );\n}\n\nexport { Autocomplete };\n","import React, { useEffect, useState } from 'react';\n\nimport { Slider, Typography, makeStyles } from '@material-ui/core';\nimport { buttonInactiveColor, buttonPrimaryColor } from 'theme/theme';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: '#d8d8d8',\n height: 3,\n padding: '13px 0',\n paddingTop: '2rem',\n },\n active: {\n color: buttonPrimaryColor(),\n },\n valueLabel: {\n left: 'calc(-50% + 8px)',\n top: -22,\n '& *': {\n background: 'transparent',\n color: '#000',\n },\n },\n thumb: {\n color: buttonPrimaryColor(),\n height: 27,\n width: 27,\n backgroundColor: '#fff',\n border: '1px solid currentColor',\n marginTop: -12,\n marginLeft: -13,\n boxShadow: '#ebebeb 0 2px 2px',\n '&:focus, &:hover, &$active': {\n boxShadow: '#ccc 0 2px 3px 1px',\n },\n '& .bar': {\n height: 9,\n width: 1,\n backgroundColor: 'currentColor',\n marginLeft: 1,\n marginRight: 1,\n },\n },\n track: {\n height: 3,\n },\n rail: {\n color: '#d8d8d8',\n opacity: 1,\n height: 3,\n },\n sliderContainer: {\n paddingLeft: 13,\n paddingRight: 13,\n },\n sliderContainerDisabled: {\n paddingLeft: 5,\n paddingRight: 5,\n },\n disabledText: {\n color: buttonInactiveColor(),\n height: 0,\n },\n}));\n\nconst ThumbComponent: React.FC = (props) => {\n return (\n \n {props.children}\n \n \n \n );\n};\n\ninterface RangeFilterProps {\n label: string;\n min?: number;\n max?: number;\n step: number;\n value?: number[];\n disabledText?: string;\n onChange?: (value: number[]) => void;\n}\n\nconst RangeFilter: React.FC = ({\n label,\n min,\n max,\n step,\n onChange,\n value,\n disabledText,\n}) => {\n const classes = useStyles();\n\n const [storedValue, setValue] = useState();\n\n const handleChange = (event: unknown, newValue: number | number[]) => {\n setValue(newValue as number[]);\n };\n\n const handleChangeCommitted = (\n event: unknown,\n newValue: number | number[],\n ) => {\n if (onChange) {\n onChange(newValue as number[]);\n }\n };\n\n const disabled = min === undefined || max === undefined || min === max;\n const active =\n disabled || !storedValue\n ? false\n : storedValue[0] !== min || storedValue[1] !== max;\n\n useEffect(() => {\n setValue(value);\n }, [value]);\n\n // if disabled we show a thumb on each side of the rail, hence the hardcoded [0,1]\n const rmin = disabled ? 0 : (min as number); // disabled = false => min is defined\n const rmax = disabled ? 1 : (max as number); // disabled = false => max is defined\n const rvalue = disabled ? [0, 1] : storedValue ?? [rmin, rmax];\n\n return (\n <>\n {label}\n {disabled && disabledText && (\n
{disabledText}
\n )}\n \n \n \n \n );\n};\n\nexport default RangeFilter;\n","import React from 'react';\n\nimport { MenuItem, TextField } from '@material-ui/core';\n\nimport { useTranslation } from 'react-i18next';\n\ninterface SelectFilterProps {\n label: string;\n options: Array<{ value: string; label: string }>;\n value?: string;\n onSelect?: (value: string) => void;\n showAllOption?: boolean;\n}\n\nconst SelectFilter: React.FC = ({\n label,\n options,\n value,\n onSelect,\n showAllOption = true,\n}) => {\n const { t } = useTranslation(['translations']);\n return (\n ,\n ) => onSelect && onSelect(e.target.value as string)}\n >\n {showAllOption && (\n {t('stacks_page.table.all')}\n )}\n {options.map(({ label, value }) => (\n \n {label}\n \n ))}\n \n );\n};\n\nexport default SelectFilter;\n","import React, { useEffect, useState, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useParams, useLocation, useHistory } from 'react-router-dom';\nimport { stackActions } from 'actions/stackActions';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {\n Divider,\n Typography,\n Button,\n FormControlLabel,\n Switch,\n Grid,\n TextField,\n InputAdornment,\n IconButton,\n} from '@material-ui/core';\nimport { PageToolbar } from 'components/PageToolbar';\nimport { StacksTable } from 'components/StacksTable';\nimport {\n DateRangePickerComponent,\n now,\n lastMonth,\n} from 'components/DateRangePicker';\nimport { ApplicationState } from 'store';\nimport { StacksMap } from 'components/StacksMap';\nimport { getAuthorizedDepartments } from 'helpers/authorizedDepartments';\n\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport SearchIcon from '@material-ui/icons/Search';\n\nimport OverlaySpinner from 'components/spinners/OverlaySpinner';\nimport FilterDrawer from 'components/FilterDrawer';\nimport MultiSelectFilter from 'components/MultiSelectFilter';\nimport {\n TranslatedFilterOptions,\n translateFilterOptions,\n} from 'helpers/filterOptions';\nimport { Autocomplete } from 'components/Autocomplete';\nimport RangeFilter from 'components/RangeFilter';\nimport SelectFilter from 'components/SelectFilter';\nimport { sawmillActions } from 'actions/sawmillActions';\nimport { StackDateTypeDto, StackStateEnumDto } from '.generated/api';\nimport { GetApp } from '@material-ui/icons';\nimport IconSpinner from 'components/spinners/ButtonSpinner';\nimport { IStackQuery } from '../store/models/IStackQuery';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n minHeight: '100%',\n },\n toolbar: {\n display: 'flex',\n },\n filterContainer: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n filterRow: {\n marginTop: theme.spacing(1),\n },\n overlaySpinner: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n },\n datePickerContainer: {\n padding: theme.spacing(2),\n },\n flexGrow: {\n flexGrow: 1,\n },\n map: {\n width: '100%',\n height: '33vh',\n minHeight: '33vh',\n },\n table: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n overflow: 'hidden',\n backgroundColor: '#ffffff',\n },\n filterSelect: {\n width: '18rem',\n },\n filterButtonRoot: {\n margin: 0,\n minWidth: 0,\n padding: 14,\n },\n filtersApplied: {\n marginLeft: theme.spacing(2),\n },\n selectContainer: {\n maxWidth: '100%', // ensures ellipsis in select dropdown\n },\n}));\n\nconst stringToBool = (s?: string): boolean | undefined => {\n if (s === 'true') {\n return true;\n }\n if (s === 'false') {\n return false;\n }\n return undefined;\n};\n\nconst boolToString = (b?: boolean) => {\n if (b === true) {\n return 'true';\n }\n if (b === false) {\n return 'false';\n }\n return '';\n};\n\ninterface ParamTypes {\n orgId: string;\n deptId: string;\n}\n\nconst DEBOUNCE_TIME = 300;\n\nconst Stacks: React.FC = () => {\n const defaultPageSize = 50;\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const dispatch = useDispatch();\n const history = useHistory();\n const location = useLocation();\n const prevLocation = useRef(location);\n const { orgId, deptId } = useParams();\n const [filters, setFilters] = useState(undefined);\n\n const [\n translatedFilterOptions,\n setTranslatedFilterOptions,\n ] = useState({});\n\n const [extendedFiltersVisible, setExtendedFiltersVisible] = useState(false);\n const [departmentIds, setDepartmentIds] = useState([]);\n const [showMap, setShowMap] = useState(true);\n const [searchString, setSearchString] = useState('');\n\n const userAccess = useSelector(\n (state: ApplicationState) => state.isLoggedIn?.userAccess,\n );\n\n const orgDepartments = useSelector(\n (state: ApplicationState) => state.organization?.organization?.departments,\n );\n\n const {\n measurementCard,\n stacks,\n filterOptions,\n isLoadingStacks,\n isLoadingCoordinates,\n updatedAt,\n filtersApplied,\n accumulatedCsvDownloadAllProgress,\n } = useSelector((state: ApplicationState) => state.stacks);\n\n const sawmills = useSelector(\n (state: ApplicationState) => state.sawmills?.sawmills ?? [],\n );\n\n const [change, setChange] = useState('');\n\n const firstUpdate = useRef(true);\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n const delayDebounce = setTimeout(() => {\n history.replace({ search: change });\n }, DEBOUNCE_TIME);\n\n return () => clearTimeout(delayDebounce);\n }, [change]);\n\n const updateFilter = (name: string, value?: string) => {\n const query = new URLSearchParams(location.search);\n if (value && value.length > 0) {\n query.set(name, value);\n } else {\n query.delete(name);\n }\n setChange(query.toString());\n };\n\n const updateListFilter = (name: string, values: string[]) => {\n const query = new URLSearchParams(location.search);\n query.delete(name);\n for (const value of values) {\n query.append(name, value);\n }\n setChange(query.toString());\n };\n\n const updateShowMap = (value: boolean) => {\n const query = new URLSearchParams(location.search);\n query.set('showMap', boolToString(value) ?? '');\n setChange(query.toString());\n };\n\n const handleAssortmentLengthChange = (value: number[]) => {\n const query = new URLSearchParams(location.search);\n if (\n value[0] === filterOptions?.assortmentLengthMin &&\n value[1] === filterOptions?.assortmentLengthMax\n ) {\n query.delete('assortmentLengthMin');\n query.delete('assortmentLengthMax');\n } else {\n query.set('assortmentLengthMin', value[0].toString());\n query.set('assortmentLengthMax', value[1].toString());\n }\n setChange(query.toString());\n };\n\n const handleSearchChange = (e: React.ChangeEvent) => {\n setSearchString(e.target.value);\n };\n\n const handleSearchSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n updateFilter('search', searchString);\n };\n\n const handleDateRangeChange = (\n from: Date | null,\n to: Date | null,\n valid: boolean,\n ) => {\n if (!valid) {\n return;\n }\n\n const query = new URLSearchParams(location.search);\n if (from) {\n query.set('from', from.toISOString());\n } else {\n query.delete('from');\n }\n\n if (to) {\n query.set('to', to.toISOString());\n } else {\n query.delete('to');\n }\n\n setChange(query.toString());\n };\n\n const handlePageChanged = (newPage: number) => {\n const query = new URLSearchParams(location.search);\n if (newPage === 0) {\n query.delete('page'); // default page 1\n } else {\n query.set('page', (newPage + 1).toString());\n }\n history.push({ search: query.toString() });\n };\n\n const handlePageSizeChanged = (pageSize: number) => {\n const query = new URLSearchParams(location.search);\n query.delete('page'); // default page 1\n if (pageSize === defaultPageSize) {\n query.delete('pageSize');\n } else {\n query.set('pageSize', pageSize.toString());\n }\n history.push({ search: query.toString() });\n };\n\n // Set default filter values in stack overview\n useEffect(() => {\n if (location.search === '') {\n const searchParams = new URLSearchParams();\n searchParams.set('dateType', StackDateTypeDto.INVOICEABLE);\n searchParams.set('from', lastMonth().toISOString());\n searchParams.set('to', now().toISOString());\n location.search = searchParams.toString();\n }\n }, [location]);\n\n const handleResetFilters = () => {\n setChange('');\n };\n\n const handleShowMapChange = (event: React.ChangeEvent) => {\n updateShowMap(event.target.checked);\n };\n\n function handleDownloadAccumulatedCsvClick() {\n if (measurementCard) {\n dispatch(\n stackActions.downloadAllAccumulatedCsv(measurementCard.id, {\n ...filters,\n departmentIds: departmentIds,\n }),\n );\n }\n }\n\n // fetch measurement card and sawmills\n useEffect(() => {\n if (orgId) {\n dispatch(stackActions.getOrganizationMeasurementCard(orgId));\n dispatch(sawmillActions.getSawmillsByOrganizationId(orgId));\n }\n }, [orgId]);\n\n // translate filter options\n useEffect(() => {\n if (measurementCard && filterOptions) {\n setTranslatedFilterOptions(\n translateFilterOptions(measurementCard, filterOptions),\n );\n } else {\n setTranslatedFilterOptions({});\n }\n }, [measurementCard, filterOptions]);\n\n useEffect(() => {\n const query = new URLSearchParams(location.search);\n const dateType = query.get('dateType') ?? undefined;\n const from = query.get('from') ?? undefined;\n const to = query.get('to') ?? undefined;\n const states = query.getAll('states');\n const sawmillIds = query.getAll('sawmillIds');\n const registrators = query.getAll('registrators');\n const surveyors = query.getAll('surveyors');\n const treeSpecies = query.getAll('treeSpecies');\n const assortments = query.getAll('assortments');\n const assortmentLengthMin = query.get('assortmentLengthMin') ?? undefined;\n const assortmentLengthMax = query.get('assortmentLengthMax') ?? undefined;\n const areaNumber = query.get('areaNumber') ?? undefined;\n const fullMeasurement = query.get('fullMeasurement') ?? undefined;\n const search = query.get('search') ?? undefined;\n const page = query.get('page') ?? undefined;\n const pageSize = query.get('pageSize') ?? undefined;\n const showMapValue = query.get('showMap') ?? 'true';\n\n setSearchString(search ?? '');\n setShowMap(JSON.parse(showMapValue));\n\n let queryChanged = false;\n\n if (!dateType) {\n query.set('dateType', StackDateTypeDto.INVOICEABLE);\n queryChanged = true;\n }\n\n if (!from && !to) {\n // default date filter is last month\n query.set('from', lastMonth().toISOString());\n query.set('to', now().toISOString());\n queryChanged = true;\n }\n\n if (queryChanged) {\n setChange(query.toString());\n }\n\n // set filters from query params\n setFilters({\n departmentIds: [], // TODO: DHM: Test if this works\n dateType: dateType ? (dateType as StackDateTypeDto) : undefined,\n from,\n to,\n sawmillIds,\n states: states\n ? states.map((state) => {\n return state as StackStateEnumDto;\n })\n : undefined,\n registrators,\n surveyors,\n treeSpecies,\n assortments,\n assortmentLengthMin: assortmentLengthMin\n ? parseFloat(assortmentLengthMin)\n : undefined,\n assortmentLengthMax: assortmentLengthMax\n ? parseFloat(assortmentLengthMax)\n : undefined,\n areaNumber: areaNumber ? parseInt(areaNumber) : undefined,\n fullMeasurement: stringToBool(fullMeasurement),\n search,\n page: page ? parseInt(page) : undefined,\n pageSize: pageSize ? parseInt(pageSize) : defaultPageSize,\n showMap: showMapValue,\n });\n }, [location]);\n\n useEffect(() => {\n if (filters && departmentIds) {\n dispatch(\n stackActions.getStacks({ ...filters, departmentIds: departmentIds }),\n );\n }\n }, [filters, departmentIds]);\n\n useEffect(() => {\n if (userAccess && orgDepartments) {\n if (deptId === 'all') {\n const departments = getAuthorizedDepartments(\n orgId,\n userAccess,\n orgDepartments,\n userAccess.departments,\n );\n\n setDepartmentIds(\n departments\n ? departments.map((department) => department.departmentId)\n : [],\n );\n } else {\n setDepartmentIds(deptId ? [deptId] : []);\n }\n }\n }, [deptId, userAccess, orgDepartments]);\n\n return (\n
\n \n
\n {t('stacks_page.title')}\n
\n \n }\n label={t('stacks_page.show_map')}\n />\n
\n \n
\n \n \n updateFilter('dateType', value)}\n value={filters?.dateType}\n label={t('stacks_page.date_type.title')}\n options={[\n {\n value: StackDateTypeDto.PRE_REGISTRATION,\n label: t('stacks_page.date_type.preregistration'),\n },\n {\n value: StackDateTypeDto.MEASURED,\n label: t('stacks_page.date_type.measured'),\n },\n {\n value: StackDateTypeDto.INVOICEABLE,\n label: t('stacks_page.date_type.invoiceable'),\n },\n {\n value: StackDateTypeDto.ASSIGNED_TO_SAWMILL,\n label: t('stacks_page.date_type.assigned_to_sawmill'),\n },\n {\n value: StackDateTypeDto.LAST_CHANGED,\n label: t('stacks_page.date_type.last_changed'),\n },\n ]}\n showAllOption={false}\n />\n \n \n \n
\n \n \n \n \n \n ),\n }}\n />\n \n
\n \n \n setExtendedFiltersVisible(!extendedFiltersVisible)\n }\n >\n \n \n {!!filtersApplied && (\n \n {t('stacks_page.n_filters_applied', {\n count: filtersApplied,\n })}\n \n )}\n \n
\n \n \n \n \n }\n >\n {t('stacks_page.table.download_all_stacks')}\n \n \n \n
\n {t('stacks_page.showing_n_results', {\n count: stacks ? stacks.data.length : 0,\n })}\n {updatedAt && ` - ${updatedAt.toLocaleString()}`}\n
\n \n {showMap && (\n
\n \n
\n )}\n
\n \n
\n \n {\n setExtendedFiltersVisible(false);\n }}\n >\n \n \n updateListFilter('states', values)}\n // onSelect={handleStatusChange}\n label={t('stacks_page.table.status')}\n items={[\n {\n value: 'AssignedToSawmill',\n label: t('stacks_page.table.assigned_to_sawmill'),\n },\n {\n value: 'PreRegistration',\n label: t('stacks_page.table.not_measured'),\n },\n {\n value: 'Measured',\n label: t('stacks_page.table.measured'),\n },\n ]}\n />\n \n\n {translatedFilterOptions.registrators && (\n \n updateListFilter('registrators', values)}\n values={filters?.registrators ?? undefined}\n label={translatedFilterOptions.registrators.title}\n items={translatedFilterOptions.registrators.options}\n />\n \n )}\n\n {translatedFilterOptions.surveyors && (\n \n updateListFilter('surveyors', values)}\n values={filters?.surveyors ?? undefined}\n label={translatedFilterOptions.surveyors.title}\n items={translatedFilterOptions.surveyors.options}\n />\n \n )}\n\n {translatedFilterOptions.treeSpecies && (\n \n updateListFilter('treeSpecies', values)}\n values={filters?.treeSpecies ?? undefined}\n label={translatedFilterOptions.treeSpecies.title}\n items={translatedFilterOptions.treeSpecies.options}\n />\n \n )}\n\n {translatedFilterOptions.assortments && (\n \n updateListFilter('assortments', values)}\n values={filters?.assortments ?? undefined}\n label={translatedFilterOptions.assortments.title}\n items={translatedFilterOptions.assortments.options}\n />\n \n )}\n\n {translatedFilterOptions.fullMeasurement && (\n \n updateFilter('fullMeasurement', value)}\n value={boolToString(filters?.fullMeasurement ?? undefined)}\n label={translatedFilterOptions.fullMeasurement.title}\n options={[\n {\n value: boolToString(true),\n label: translatedFilterOptions.fullMeasurement.trueLabel,\n },\n {\n value: boolToString(false),\n label: translatedFilterOptions.fullMeasurement.falseLabel,\n },\n ]}\n />\n \n )}\n\n \n updateListFilter('sawmillIds', values)}\n values={filters?.sawmillIds ?? undefined}\n label={t('stacks_page.sawmill')}\n items={sawmills.map((sawmill) => ({\n label: sawmill.name,\n value: sawmill.id,\n }))}\n />\n \n\n {translatedFilterOptions.areaNumber && (\n \n option.toString()}\n // onSelect={handleAreaNumberSelect}\n onSelect={(value) =>\n updateFilter(\n 'areaNumber',\n value !== undefined ? value.toString() : undefined,\n )\n }\n value={\n filters?.areaNumber != null ? filters.areaNumber : undefined\n }\n />\n \n )}\n\n {translatedFilterOptions.assortmentLength && (\n \n \n \n )}\n \n \n
\n );\n};\n\nexport { Stacks };\n","import React from 'react';\nimport { makeStyles, Typography, Grid } from '@material-ui/core';\nimport { useTranslation, TFunction } from 'react-i18next';\nimport { apiTranslate } from 'translations/translations';\nimport {\n FieldResponse,\n FieldTypeEnumResponse,\n PositionResponse,\n DeductionsResponse,\n FieldWithDeductionsResponse,\n FieldBooleanResponse,\n FieldWithManualAreaResponse,\n ManualAreaResponse,\n FieldWithKeyValuePairStringIntResponse,\n FieldWithOptionsResponse,\n FieldWithOptionsMultiSelectResponse,\n OptionResponse,\n} from '../../.generated/api';\n\nconst useStyles = makeStyles((theme) => ({\n title: {\n textAlign: 'left',\n width: '100%',\n fontWeight: 'bold',\n },\n key: {\n width: '100%',\n textAlign: 'left',\n fontFamily: 'Kobenhavn',\n color: theme.palette.secondary.main,\n fontSize: '0.8rem',\n },\n value: {\n textAlign: 'right',\n fontWeight: 600,\n fontFamily: 'Kobenhavn',\n color: theme.palette.primary.main,\n fontSize: '1rem',\n },\n unit: {\n fontWeight: 'bold',\n textAlign: 'left',\n },\n image: {\n width: '100%',\n },\n}));\n\nfunction formatList(\n items: string[],\n classNameValue: string,\n): React.ReactElement {\n return (\n \n {items.map((item, i) => (\n \n {item}\n \n ))}\n \n );\n}\n\nfunction formatDoubleWithFixed(v: number, unit: string, fixed: number): string {\n return `${v.toFixed(fixed)} ${unit}`;\n}\n\nfunction formatDouble(v: number, unit: string): string {\n return formatDoubleWithFixed(v, unit, 3);\n}\n\nfunction formatDoubleArray(\n values: number[],\n unit: string,\n classNameValue: string,\n): React.ReactElement {\n return formatList(\n values.map((v) => formatDouble(v, unit)),\n classNameValue,\n );\n}\n\nfunction formatIntArray(\n values: number[],\n unit: string,\n classNameValue: string,\n): React.ReactElement {\n return formatList(\n values.map((v) => formatInteger(v, unit)),\n classNameValue,\n );\n}\n\nfunction formatBoolean(v: FieldBooleanResponse): string {\n if (v.defaultValue === true) {\n return apiTranslate(v.trueLabel ?? {});\n }\n if (v.defaultValue === false) {\n return apiTranslate(v.falseLabel ?? {});\n }\n return '';\n}\n\nfunction formatDate(v: string): string {\n const date = new Date(v);\n return date ? date.toLocaleDateString(navigator.language) : '';\n}\n\nfunction formatInteger(v: number, unit: string): string {\n return `${v} ${unit}`;\n}\n\nfunction formatMultipleOptions(\n selectedKeys: string[],\n options: OptionResponse[],\n classNameValue: string,\n): React.ReactElement {\n const values = options\n .filter((option) => selectedKeys.includes(option.key))\n .map((option) => apiTranslate(option.text));\n return formatList(values, classNameValue);\n}\n\nfunction formatString(v: string): string {\n return v;\n}\n\nfunction formatText(v: string): string {\n return v;\n}\n\nfunction formatImage(value: string, className: string): React.ReactElement {\n return ;\n}\n\nfunction formatKeyValuePairStringInt(\n v: Record,\n options: OptionResponse[],\n unit: string,\n classNameKey: string,\n classNameValue: string,\n) {\n return (\n <>\n {Object.keys(v).map((key) => {\n const option = options.find((option) => option.key === key);\n const translatedValue = option ? apiTranslate(option.text) : '';\n return (\n \n \n {formatString(translatedValue)}\n \n \n {formatInteger(v[key], unit)}\n \n \n );\n })}\n \n );\n}\n\nfunction formatDeductions(\n { deductionsCount, averageCount }: DeductionsResponse,\n keyUnit: string,\n classNameValue: string,\n): React.ReactElement {\n const items: string[] = [];\n\n if (averageCount) {\n items.push(`Ø: ${averageCount}`);\n }\n\n if (deductionsCount) {\n for (const { item1, item2 } of deductionsCount) {\n items.push(`${item1} ${keyUnit}: ${item2}`);\n }\n }\n\n return formatList(items, classNameValue);\n}\n\nfunction formatPosition(\n { latitude, longitude, height, accuracy }: PositionResponse,\n classNameKey: string,\n classNameValue: string,\n t: TFunction,\n): React.ReactElement {\n return (\n \n \n {t('stack_page.latitude_abbrev')}:\n \n \n {latitude && latitude.toFixed(7)}\n \n \n {t('stack_page.longitude_abbrev')}:\n \n \n {longitude && longitude.toFixed(7)}\n \n \n {t('stack_page.accuracy')}:\n \n \n {accuracy && accuracy.toFixed(0)} m\n \n \n {t('stack_page.height')}:\n \n \n {height && height.toFixed(0)} m\n \n \n );\n}\n\nfunction formatManualArea(\n {\n sectionAHeights,\n sectionALength,\n sectionBHeights,\n sectionBLength,\n }: ManualAreaResponse,\n {\n sectionAHeightsTitle,\n sectionALengthTitle,\n sectionBHeightsTitle,\n sectionBLengthTitle,\n }: FieldWithManualAreaResponse,\n unit: string,\n classNameKey: string,\n classNameValue: string,\n) {\n return (\n \n {\n // section A\n }\n \n {apiTranslate(sectionALengthTitle)}:\n \n \n {formatDoubleWithFixed(sectionALength, unit, 2)}\n \n \n {apiTranslate(sectionAHeightsTitle)}:\n \n \n {sectionAHeights && sectionAHeights.length > 0\n ? formatDoubleWithFixed(sectionAHeights[0], unit, 2)\n : null}\n \n {sectionAHeights &&\n sectionAHeights.map((height, i) => {\n if (i === 0) {\n return null;\n }\n return (\n \n \n \n {formatDoubleWithFixed(height, unit, 2)}\n \n \n );\n })}\n\n {\n // section B\n }\n \n {apiTranslate(sectionBLengthTitle)}:\n \n \n {formatDoubleWithFixed(sectionBLength, unit, 2)}\n \n\n \n {apiTranslate(sectionBHeightsTitle)}:\n \n \n {formatDoubleWithFixed(sectionBHeights, unit, 2)}\n \n \n );\n}\n\ntype FieldViewProps = {\n field: FieldResponse;\n};\n\nconst FieldView = ({ field }: FieldViewProps): React.ReactElement => {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n let formattedValue;\n const unit = field.units?.display ? apiTranslate(field.units.display) : '';\n\n switch (field.fieldType) {\n case FieldTypeEnumResponse.DOUBLE:\n formattedValue = formatDouble(field.defaultValue, unit);\n break;\n case FieldTypeEnumResponse.ARRAY_OF_DOUBLE:\n formattedValue = formatDoubleArray(\n field.defaultValue,\n unit,\n classes.value,\n );\n break;\n case FieldTypeEnumResponse.ARRAY_OF_INT:\n formattedValue = formatIntArray(field.defaultValue, unit, classes.value);\n break;\n case FieldTypeEnumResponse.BOOLEAN:\n formattedValue = formatBoolean(field);\n break;\n case FieldTypeEnumResponse.DATE:\n formattedValue = formatDate(field.defaultValue);\n break;\n case FieldTypeEnumResponse.INTEGER:\n formattedValue = formatInteger(field.defaultValue, unit);\n break;\n case FieldTypeEnumResponse.MULTIPLE_OPTIONS: {\n const optionsField = field as FieldWithOptionsMultiSelectResponse;\n formattedValue = formatMultipleOptions(\n optionsField.defaultValue,\n optionsField.options ?? [],\n classes.value,\n );\n break;\n }\n case FieldTypeEnumResponse.STRING:\n formattedValue = formatString(field.defaultValue);\n break;\n case FieldTypeEnumResponse.TEXT:\n formattedValue = formatText(field.defaultValue);\n break;\n case FieldTypeEnumResponse.OPTIONS: {\n const optionsField = field as FieldWithOptionsResponse;\n const option = optionsField.options?.find(\n (option) => option.key === optionsField.defaultValue,\n );\n const translatedValue = option ? apiTranslate(option.text) : '';\n formattedValue = formatString(translatedValue);\n break;\n }\n case FieldTypeEnumResponse.KEY_VALUE_PAIR_STRING_INT: {\n const keyValuePairStringIntField = field as FieldWithKeyValuePairStringIntResponse;\n formattedValue = formatKeyValuePairStringInt(\n keyValuePairStringIntField.defaultValue,\n keyValuePairStringIntField.options ?? [],\n unit,\n classes.key,\n classes.value,\n );\n break;\n }\n case FieldTypeEnumResponse.IMAGE:\n formattedValue = formatImage(field.defaultValue, classes.image);\n break;\n case FieldTypeEnumResponse.POSITION:\n formattedValue = formatPosition(\n field.defaultValue,\n classes.key,\n classes.value,\n t,\n );\n break;\n case FieldTypeEnumResponse.DEDUCTIONS: {\n const deductionsField = field as FieldWithDeductionsResponse;\n const keyUnit = deductionsField.keyUnit?.display\n ? apiTranslate(deductionsField.keyUnit.display)\n : '';\n formattedValue = formatDeductions(\n field.defaultValue,\n keyUnit,\n classes.value,\n );\n break;\n }\n case FieldTypeEnumResponse.MANUAL_AREA:\n formattedValue = formatManualArea(\n field.defaultValue as ManualAreaResponse,\n field as FieldWithManualAreaResponse,\n unit,\n classes.key,\n classes.value,\n );\n break;\n default:\n formattedValue = 'Unexpected type: ' + field.fieldType;\n break;\n }\n\n return (\n <>\n \n \n {field.title ? apiTranslate(field.title) : null}\n \n \n \n
{formattedValue}
\n
\n \n );\n};\n\nexport { FieldView };\n","import React from 'react';\nimport { Grid, Typography, makeStyles } from '@material-ui/core';\nimport { StackSection } from 'store/stack';\nimport { FieldView } from './FieldView';\nimport { apiTranslate } from 'translations/translations';\n\ntype SectionProps = {\n section: StackSection;\n};\n\nconst useStyles = makeStyles((theme) => ({\n title: {\n padding: '0.4rem 1rem 0.4rem 1rem',\n width: '100%',\n backgroundColor: theme.palette.secondary.light,\n },\n content: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n}));\n\nconst SectionView = ({ section }: SectionProps) => {\n const classes = useStyles();\n return (\n <>\n
\n \n {section.title ? apiTranslate(section.title) : null}\n \n
\n\n \n \n {section.fields?.map((field, i) => (\n \n ))}\n \n \n \n );\n};\n\nexport { SectionView };\n","import {\n AddressInformationResponse,\n ContactInformationResponse,\n ContractInformationRequest,\n ExportFormatEnumDto,\n RoleEnumDto,\n StackNumberingEnumDto,\n UserModelDto,\n} from '../.generated/api';\n\nimport { AxiosError } from 'axios';\nimport { notificationActions } from 'actions/notificationActions';\n\nimport { ApiService } from 'services/apiService';\nimport { ApplicationState } from 'store';\n\nfunction getOrganizations() {\n return (dispatch: any) => {\n dispatch({\n type: 'ORGANIZATION_LIST_SUCCESS',\n organizations: undefined,\n });\n ApiService.getOrganizationsDetailed()\n .then((response) => {\n dispatch({\n type: 'ORGANIZATION_LIST_SUCCESS',\n organizations: response?.data?.data ?? null,\n });\n })\n .catch((error) => {\n dispatch({\n type: 'ORGANIZATION_LIST_SUCCESS',\n organizations: null,\n });\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction clearOrganization() {\n return { type: 'GET_ORGANIZATION_SUCCESS', organization: undefined };\n}\n\nfunction getOrganizationById(organizationId: string) {\n return (dispatch: any) => {\n ApiService.getOrganizationById(organizationId)\n .then((response) => {\n dispatch({\n type: 'GET_ORGANIZATION_SUCCESS',\n organization: response.data,\n });\n })\n .catch((error) => {\n dispatch({\n type: 'GET_ORGANIZATION_ERROR',\n error: error.response?.data?.errorMessage,\n });\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction createOrganization(name: string, country: string) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.createOrganization(name, country)\n .then((response) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_ORGANIZATION_SUCCESS',\n organization: response.data,\n });\n dispatch({ type: 'SET_STEP', step: 2 });\n dispatch(organizationActions.getOrganizations());\n })\n .catch((error) => {\n // TODO MAL: use error code once that exists\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'UPDATE_ORGANIZATION_ERROR',\n error: error.response?.data?.errorMessage,\n });\n });\n };\n}\n\nfunction updateCurrentContract(\n organizationId: string,\n currentContract: ContractInformationRequest,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n ApiService.updateContractInformation(organizationId, currentContract)\n .then(() => {\n dispatch({\n type: 'UPDATE_CURRENT_CONTRACT',\n currentContract,\n });\n callback && callback();\n })\n .catch((error) => {\n if (callback) {\n callback(error);\n } else {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction getCurrentContract(organizationId: string) {\n return (dispatch: any) => {\n dispatch({\n type: 'UPDATE_CURRENT_CONTRACT',\n currentContract: undefined,\n });\n ApiService.getCurrentContract(organizationId)\n .then((response) => {\n dispatch({\n type: 'UPDATE_CURRENT_CONTRACT',\n currentContract: response.data,\n });\n })\n .catch((error) => {\n dispatch({\n type: 'UPDATE_CURRENT_CONTRACT',\n currentContract: null,\n });\n if (error.response?.status !== 404) {\n // 404 means no contract available\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction getNextContract(organizationId: string) {\n return (dispatch: any) => {\n dispatch({\n type: 'UPDATE_NEXT_CONTRACT',\n nextContract: undefined,\n });\n ApiService.getNextContract(organizationId)\n .then((response) => {\n dispatch({\n type: 'UPDATE_NEXT_CONTRACT',\n nextContract: response.data,\n });\n })\n .catch((error) => {\n dispatch({\n type: 'UPDATE_NEXT_CONTRACT',\n nextContract: null,\n });\n if (error.response?.status !== 404) {\n // 404 means no contract available\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction updateNextContract(\n organizationId: string,\n contract: ContractInformationRequest,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n ApiService.updateNextContract(organizationId, contract)\n .then(() => {\n dispatch({\n type: 'UPDATE_NEXT_CONTRACT',\n nextContract: contract,\n });\n callback && callback();\n })\n .catch((error) => {\n if (callback) {\n callback(error);\n } else {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction getOrganizationLogo(organizationId: string) {\n return (dispatch: any) => {\n ApiService.getOrganizationLogo(organizationId)\n .then((response) => {\n dispatch({\n type: 'UPDATE_ORGANIZATION_LOGO',\n logo: response?.data?.image,\n });\n })\n .catch((error: AxiosError) => {\n // clear logo\n dispatch({\n type: 'UPDATE_ORGANIZATION_LOGO',\n logo: '',\n });\n if (error.response?.status !== 404) {\n // 404 means no logo available\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction updateOrganizationLogo(organizationId: string, file: string | Blob) {\n return (dispatch: any, getState: () => ApplicationState) => {\n const state = getState();\n const oldLogo = state.organization?.logo;\n dispatch({\n type: 'UPDATE_ORGANIZATION_LOGO',\n logo: undefined,\n });\n ApiService.updateOrganizationLogo(organizationId, file)\n .then(() => {\n dispatch(getOrganizationLogo(organizationId));\n })\n .catch((error) => {\n dispatch({\n type: 'UPDATE_ORGANIZATION_LOGO',\n logo: oldLogo,\n });\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction addContractualInfo(\n organizationId: string,\n contractinformation: ContractInformationRequest,\n) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.updateContractInformation(organizationId, contractinformation)\n .then(() => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({ type: 'SET_STEP', step: 3 });\n dispatch(organizationActions.getOrganizations());\n })\n .catch((error) => {\n // TODO MAL: use error code once that exists\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_ORGANIZATION_FAILURE',\n error: error.response?.data?.errorMessage,\n });\n });\n };\n}\n\nfunction addAdminToOrg(\n organizationId: string,\n email: string,\n name: string,\n phone: string,\n) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.addOrganizationAdmin(organizationId, email, name, phone)\n .then(() => {\n dispatch(organizationActions.getOrganizations());\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({ type: 'SET_STEP', step: 4 });\n })\n .catch((error) => {\n // TODO MAL: use error code once that exists\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_ORGANIZATION_FAILURE',\n error: error.response?.data?.errorMessage,\n });\n });\n };\n}\n\nfunction editMeasurementCard(\n organizationId: string,\n measurementCardId: string,\n stackNumbering: StackNumberingEnumDto,\n exportFormat: ExportFormatEnumDto = ExportFormatEnumDto.CSV,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.updateMeasurementCardInformation(\n organizationId,\n measurementCardId,\n stackNumbering,\n exportFormat,\n )\n .then(() => {\n dispatch(organizationActions.getOrganizations());\n dispatch(organizationActions.getOrganizationById(organizationId));\n dispatch({\n type: 'UPDATE_ORGANIZATION_SUCCESS',\n });\n if (callback) {\n callback();\n }\n })\n .catch((error) => {\n dispatch({\n type: 'UPDATE_ORGANIZATION_ERROR',\n error: error.response?.data?.errorMessage,\n });\n if (callback) {\n callback(error);\n }\n });\n };\n}\n\nfunction assignMeasurementCardToOrg(\n organizationId: string,\n measurementCardId: string,\n stackNumbering: StackNumberingEnumDto,\n exportFormat: ExportFormatEnumDto = ExportFormatEnumDto.CSV,\n) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.updateMeasurementCardInformation(\n organizationId,\n measurementCardId,\n stackNumbering,\n exportFormat,\n )\n .then(() => {\n dispatch(organizationActions.getOrganizations());\n\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({ type: 'SET_FLOW_COMPLETED' });\n })\n .catch((error) => {\n // TODO MAL: use error code once that exists\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_ORGANIZATION_FAILURE',\n error: error.response?.data?.errorMessage,\n });\n });\n };\n}\n\nfunction createDept(\n organizationId: string,\n departmentName: string,\n departmentNumber?: number,\n) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.createDeptment(organizationId, departmentName, departmentNumber)\n .then((response) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_DEPARTMENT_SUCCESS',\n department: response.data,\n });\n dispatch({ type: 'SET_STEP', step: 2 });\n dispatch(organizationActions.getOrganizationById(organizationId));\n })\n .catch((error) => {\n // TODO MAL: use error code once that exists\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_DEPARTMENT_FAILURE',\n error: error.response?.data?.errorMessage,\n });\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction addUserToOrganization(\n organizationId: string,\n user: UserModelDto,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.addUserToOrganization(organizationId, user)\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction editUserInOrganization(\n organizationId: string,\n email: string,\n name: string,\n phone: string,\n roles: RoleEnumDto[],\n enableAutoEmails: boolean,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.editUserInOrganization(\n organizationId,\n email,\n name,\n phone,\n roles,\n enableAutoEmails,\n )\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction addContact(\n organizationId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.addOrganizationContact(organizationId, name, email, phone)\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction editContact(\n organizationId: string,\n contactId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.updateOrganizationContact(\n organizationId,\n contactId,\n name,\n email,\n phone,\n )\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction deleteContact(\n organizationId: string,\n contactId: string,\n callback: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n ApiService.deleteOrganizationContact(organizationId, contactId)\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n callback();\n })\n .catch((error) => {\n callback(error);\n });\n };\n}\n\nfunction updateOrganizationName(\n organizationId: string,\n organizationName: string,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n ApiService.updateOrganizationName(organizationId, organizationName)\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n if (callback) {\n callback();\n }\n })\n .catch((error) => {\n if (callback) {\n callback(error);\n } else {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction updateOrganizationAddressDetails(\n organizationId: string,\n organizationAddress: AddressInformationResponse,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n dispatch({\n type: 'ORGANIZATION_REMOVE_ERROR',\n });\n ApiService.updateOrganizationAddressDetails(\n organizationId,\n organizationAddress,\n )\n .then(() => {\n dispatch({\n type: 'ORGANIZATION_REMOVE_ERROR',\n });\n\n dispatch(organizationActions.getOrganizationById(organizationId));\n\n dispatch({\n type: 'UPDATE_ORGANIZATION_SUCCESS',\n });\n\n if (callback) {\n callback();\n }\n })\n .catch((error) => {\n dispatch({\n type: 'UPDATE_ORGANIZATION_ERROR',\n error: error.response?.data?.errorMessage,\n });\n if (callback) {\n callback(error);\n } else {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction updateOrganizationContactDetails(\n organizationId: string,\n organizationContactInformation: ContactInformationResponse,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n dispatch({\n type: 'ORGANIZATION_REMOVE_ERROR',\n });\n\n ApiService.updateOrganizationContactDetails(\n organizationId,\n organizationContactInformation,\n )\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n dispatch({\n type: 'UPDATE_ORGANIZATION_SUCCESS',\n });\n if (callback) {\n callback();\n }\n })\n .catch((error) => {\n dispatch({\n type: 'UPDATE_ORGANIZATION_ERROR',\n error: error.response?.data?.errorMessage,\n });\n if (callback) {\n callback(error);\n }\n });\n };\n}\n\nexport const organizationActions = {\n createOrganization,\n clearOrganization,\n getOrganizationById,\n addAdminToOrg,\n addContractualInfo,\n updateCurrentContract,\n getCurrentContract,\n getNextContract,\n updateNextContract,\n getOrganizations,\n editMeasurementCard,\n assignMeasurementCardToOrg,\n createDept,\n addContact,\n editContact,\n deleteContact,\n updateOrganizationName,\n updateOrganizationContactDetails,\n updateOrganizationAddressDetails,\n getOrganizationLogo,\n updateOrganizationLogo,\n addUserToOrganization,\n editUserInOrganization,\n};\n","import { RoleEnumDto, UserModelDto } from '.generated/api';\nimport { organizationActions } from 'actions/organizationActions';\nimport { ApiService } from 'services/apiService';\nimport { notificationActions } from 'actions/notificationActions';\nimport { AxiosError } from 'axios';\nimport { ApplicationState } from 'store';\n\nfunction clearDepartment() {\n return {\n type: 'GET_DEPARTMENT_SUCCESS',\n department: undefined,\n };\n}\n\nfunction getDepartmentById(departmentId: string) {\n return (dispatch: any) => {\n ApiService.getDepartmentById(departmentId)\n .then((response) => {\n dispatch({\n type: 'GET_DEPARTMENT_SUCCESS',\n department: response.data,\n });\n })\n .catch((error) => {\n dispatch({\n type: 'GET_DEPARTMENT_ERROR',\n error: error.response?.data?.errorMessage,\n });\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction createDept(name: string, organizationId: string) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.createDeptment(name, organizationId)\n .then((response) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_DEPARTMENT_SUCCESS',\n department: response.data,\n });\n dispatch({ type: 'SET_STEP', step: 2 });\n dispatch(organizationActions.getOrganizationById(organizationId));\n })\n .catch((error) => {\n // TODO MAL: use error code once that exists\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_DEPARTMENT_FAILURE',\n error: error.response?.data?.errorMessage,\n });\n });\n };\n}\n\nfunction updateDepartmentInfo(\n departmentId: string,\n departmentName: string,\n departmentNumber?: number,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any) => {\n ApiService.updateDepartmentInfo(\n departmentId,\n departmentName,\n departmentNumber,\n )\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n if (callback) {\n callback();\n }\n })\n .catch((error) => {\n if (callback) {\n callback(error);\n } else {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction addAdminToDept(\n organizationId: string,\n departmentId: string,\n email: string,\n name: string,\n phone: string,\n) {\n return (dispatch: any) => {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n\n ApiService.addDepartmentAdmin(departmentId, email, name, phone)\n .then(() => {\n dispatch(organizationActions.getOrganizationById(organizationId));\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({ type: 'SET_FLOW_COMPLETED' });\n })\n .catch((error) => {\n // TODO MAL: use error code once that exists\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: false });\n dispatch({\n type: 'CREATE_DEPARTMENT_FAILURE',\n error: error.response?.data?.errorMessage,\n });\n });\n };\n}\n\nfunction addUserToDepartment(\n departmentId: string,\n user: UserModelDto,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.addUserToDepartment(departmentId, user)\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction editUserInDept(\n departmentId: string,\n email: string,\n name: string,\n phone: string,\n roles: RoleEnumDto[],\n enableAutoEmails: boolean,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.editUserInDeptment(\n departmentId,\n email,\n name,\n phone,\n roles,\n enableAutoEmails,\n )\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction addContact(\n departmentId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.addDepartmentContact(departmentId, name, email, phone)\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction editContact(\n departmentId: string,\n contactId: string,\n name: string | undefined,\n email: string | undefined,\n phone: string | undefined,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.updateDepartmentContact(\n departmentId,\n contactId,\n name,\n email,\n phone,\n )\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction updateCustomerNumber(\n departmentId: string,\n customerNumber: string | null,\n callback?: (error?: AxiosError) => void,\n) {\n return (dispatch: any, getState: () => ApplicationState) => {\n ApiService.updateDepartmentCustomerNumber(departmentId, { customerNumber })\n .then(() => {\n const department = getState().department.department;\n if (department) {\n dispatch({\n type: 'GET_DEPARTMENT_SUCCESS',\n department: { ...department, customerNumber: customerNumber },\n });\n }\n callback && callback();\n })\n .catch((error) => {\n if (callback) {\n callback(error);\n } else {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n });\n };\n}\n\nfunction deleteContact(\n departmentId: string,\n contactId: string,\n callback: (error?: string) => void,\n) {\n return (dispatch: any) => {\n ApiService.deleteDepartmentContact(departmentId, contactId)\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n callback();\n })\n .catch((error) => {\n // TODO MAL: handle error in a more general way instead of using a callback\n callback(error.response?.data?.errorMessage ?? error.message);\n });\n };\n}\n\nfunction addEmailToDepartmentMailingList(departmentId: string, email: string) {\n return (dispatch: any) => {\n ApiService.addEmailToDepartmentMailingList(departmentId, email)\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nfunction removeEmailFromDepartmentMailingList(\n departmentId: string,\n email: string,\n) {\n return (dispatch: any) => {\n ApiService.removeEmailFromDepartmentMailingList(departmentId, email)\n .then(() => {\n dispatch(departmentActions.getDepartmentById(departmentId));\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n };\n}\n\nexport const departmentActions = {\n getDepartmentById,\n clearDepartment,\n createDept,\n updateDepartmentInfo,\n updateCustomerNumber,\n addAdminToDept,\n addUserToDepartment,\n editUserInDept,\n addContact,\n editContact,\n deleteContact,\n addEmailToDepartmentMailingList,\n removeEmailFromDepartmentMailingList,\n};\n","import React from 'react';\nimport { makeStyles, CircularProgress } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n}));\n\ninterface PageSpinnerProps {\n isLoading?: boolean;\n children: React.ReactNode;\n}\n\nconst PageSpinner: React.FC = ({ isLoading, children }) => {\n const classes = useStyles();\n return (\n <>\n {isLoading ? (\n
\n \n
\n ) : (\n children\n )}\n \n );\n};\n\nexport default PageSpinner;\n","import React, { useEffect } from 'react';\nimport {\n Divider,\n Typography,\n makeStyles,\n Button,\n Grid,\n Paper,\n} from '@material-ui/core';\nimport { useParams, useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { ApplicationState } from 'store';\nimport { PageToolbar } from 'components/PageToolbar';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { stackActions } from 'actions/stackActions';\nimport { SectionView } from 'components/stackDetail/SectionView';\nimport { departmentActions } from 'actions/departmentActions';\n\nimport { StackStateEnumDto } from '.generated/api';\nimport PageSpinner from 'components/spinners/PageSpinner';\n\ninterface ParamTypes {\n orgId: string;\n deptId: string;\n stackId: string;\n}\n\nconst useStyles = makeStyles(() => ({\n toolbarTitle: {\n minHeight: '1.8rem',\n },\n content: {\n padding: '2rem',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n overflowY: 'auto',\n },\n buttonClass: {\n marginLeft: 0,\n },\n alignRight: {\n textAlign: 'right',\n },\n paper: {\n padding: 0,\n },\n}));\n\nconst Stack = (): React.ReactElement => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const history = useHistory();\n const { t } = useTranslation(['translations']);\n const { stackId, deptId } = useParams();\n\n const department = useSelector(\n (state: ApplicationState) => state.department.department,\n );\n const stack = useSelector((state: ApplicationState) => state.stack);\n\n const handleBack = (): void => {\n history.goBack();\n };\n\n async function handleDownloadReport() {\n if (stackId) {\n dispatch(stackActions.downloadStackArchive([stackId]));\n }\n }\n\n useEffect(() => {\n dispatch(stackActions.getStackById(stackId));\n }, []);\n\n useEffect(() => {\n dispatch(departmentActions.clearDepartment());\n if (deptId) {\n dispatch(departmentActions.getDepartmentById(deptId));\n }\n }, [deptId]);\n\n return (\n <>\n \n \n {department && department.name}\n \n \n \n \n \n {t('common.back')}\n \n \n \n
\n \n {t('stack_page.get_report')}\n \n
\n
\n \n
\n \n
\n \n {stack.sections?.map((section, i) => (\n \n \n \n ))}\n \n
\n
\n \n );\n};\n\nexport { Stack };\n","import React, { ReactFragment } from 'react';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport { SnackbarContent, makeStyles } from '@material-ui/core';\nimport { buttonPrimaryColor, errorColor } from 'theme/theme';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(() => ({\n error: {\n backgroundColor: errorColor,\n },\n success: {\n backgroundColor: buttonPrimaryColor(),\n },\n}));\n\ntype SnackProps = {\n isOpen: boolean;\n handleClose: () => void;\n action?: ReactFragment;\n message?: string;\n variant?: string;\n};\n\nconst SnackbarComponent = (props: SnackProps) => {\n const { handleClose, isOpen, action, message, variant } = props;\n const classes = useStyles();\n\n const snackbarStyles = clsx({\n [classes.error]: variant === 'error',\n [classes.success]: variant === 'success',\n });\n\n return (\n \n \n \n );\n};\n\nexport { SnackbarComponent };\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogTitle,\n makeStyles,\n Step,\n StepLabel,\n Stepper,\n Typography,\n Link as MuiLink,\n DialogContent,\n Grid,\n} from '@material-ui/core';\nimport { ApplicationState } from 'store';\nimport { useTranslation } from 'react-i18next';\nimport { SnackbarComponent } from 'components/SnackbarComponent';\n\nimport 'translations/translations';\nimport { Link } from 'react-router-dom';\nimport OverlaySpinner from 'components/spinners/OverlaySpinner';\n\ntype DialogProps = {\n isOpen: boolean;\n handleClose: () => void;\n title: string;\n children: React.ReactNode;\n snackLinkText?: string;\n snackLink?: string;\n message: string;\n fullWidth: boolean;\n contentHeight?: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n alignCenter: {\n textAlign: 'center',\n },\n snackLinkStyle: {\n color: '#fff',\n paddingRight: theme.spacing(1),\n paddingLeft: theme.spacing(3),\n },\n noMarginBottom: {\n marginBottom: 0,\n },\n lastButton: {\n marginRight: 0,\n marginBottom: 0,\n },\n}));\n\nconst FlowDialog: React.FC = (props) => {\n const {\n children,\n handleClose,\n isOpen,\n title,\n snackLinkText,\n snackLink,\n message,\n fullWidth,\n contentHeight,\n } = props;\n const [snackIsOpen, setSnackOpen] = useState(false);\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n const classes = useStyles();\n const childrenArr = React.Children.toArray(children);\n\n const dialogHeight = contentHeight || '10rem';\n const style = {\n height: `${dialogHeight}`,\n };\n\n const isProcessing = useSelector(\n (state: ApplicationState) => state.flowDialog?.isProcessing,\n );\n\n const stepToShow = useSelector(\n (state: ApplicationState) => state.flowDialog?.step,\n );\n\n const callbackFn = useSelector(\n (state: ApplicationState) => state.flowDialog?.callbackFn,\n );\n\n const isButtonDisabled = useSelector(\n (state: ApplicationState) => state.flowDialog?.buttonDisabled,\n );\n\n const isCompleted = useSelector(\n (state: ApplicationState) => state.flowDialog?.isCompleted,\n );\n\n const handleCancel = () => {\n handleClose();\n dispatch({ type: 'SET_STEP', step: 1 });\n };\n\n const nextStepFn = () => {\n if (callbackFn) {\n dispatch({ type: 'SET_IS_PROCESSING', isProcessing: true });\n callbackFn();\n }\n };\n\n const handleCloseSnack = () => {\n setSnackOpen(false);\n };\n\n useEffect(() => {\n if (isCompleted) {\n setSnackOpen(true);\n handleClose();\n } else {\n setSnackOpen(false);\n }\n }, [isCompleted]);\n\n useEffect(() => {\n dispatch({ type: 'CLEAR_FLOW_COMPLETED' });\n }, []);\n\n return (\n <>\n \n \n \n {t(title)}\n \n {childrenArr.map((child: React.ReactNode, index) => {\n const title =\n React.isValidElement(child) && child?.props.stepTitleString;\n const stepProps: { completed?: boolean } = {};\n\n return (\n \n {t(title)}\n \n );\n })}\n \n \n {childrenArr.map((child: React.ReactNode, index) => {\n if (React.isValidElement(child) && stepToShow === index + 1) {\n return (\n \n \n \n {child}\n \n \n\n \n \n {t('common.close')}\n \n nextStepFn()}\n disabled={isButtonDisabled}\n className={classes.lastButton}\n >\n {t(child.props.buttonText)}\n \n \n \n );\n }\n return null;\n })}\n \n \n\n \n {snackLink && (\n \n {snackLinkText}\n \n )}\n \n }\n />\n \n );\n};\n\nexport { FlowDialog };\n","export default __webpack_public_path__ + \"static/media/gbr.aac36550.svg\";","export default __webpack_public_path__ + \"static/media/dnk.ce01f2b2.svg\";","export default __webpack_public_path__ + \"static/media/deu.67bf05d4.svg\";","export default __webpack_public_path__ + \"static/media/pol.0882b3e3.svg\";","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n FormControl,\n Grid,\n InputLabel,\n makeStyles,\n MenuItem,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { ApplicationState } from 'store';\nimport { organizationActions } from 'actions/organizationActions';\nimport 'translations/translations';\nimport { Country, getCountries } from 'helpers/countries';\n\ntype StepProps = {\n stepTitleString: string;\n buttonText: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n noMargine: {\n marginTop: 0,\n },\n flagStyles: {\n width: '2em',\n height: '1rem',\n marginRight: '0.5em',\n position: 'relative',\n top: '0.15rem',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\nconst CreateOrganizationStep: React.FC = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation(['translations']);\n const [organizationName, setOrganizationName] = useState('');\n const countries = getCountries(t);\n const [selectedCountry, setSelectedCountry] = useState(\n countries[0].alpha2Code,\n );\n const organizationError = useSelector(\n (state: ApplicationState) => state.organization?.error,\n );\n\n const classes = useStyles();\n\n const handleChange = (e: React.ChangeEvent) => {\n const { value } = e.target;\n setOrganizationName(value);\n if (value.length >= 2) {\n dispatch({ type: 'ORGANIZATION_REMOVE_ERROR' });\n dispatch({ type: 'DISABLE_BUTTON', disabled: false });\n }\n };\n\n const handleSelect = (value: string) => {\n setSelectedCountry(value);\n };\n\n const callbackFn = () => {\n dispatch(\n organizationActions.createOrganization(organizationName, selectedCountry),\n );\n };\n\n useEffect(() => {\n if (organizationName.length >= 2) {\n dispatch({ type: 'SET_CALLBACK', callbackFn });\n }\n });\n\n useEffect(() => {\n dispatch({ type: 'ORGANIZATION_STATE_RESET' });\n }, []);\n\n useEffect(() => {\n if (organizationName.length < 2) {\n dispatch({ type: 'DISABLE_BUTTON', disabled: true });\n }\n }, [organizationName, dispatch]);\n\n return (\n <>\n \n \n \n {!!organizationError && organizationError}\n \n \n \n \n {t('labels.select_country_dd')}\n ,\n ) => handleSelect(e.target.value)}\n label={t('labels.select_country_dd')}\n id=\"countryDD\"\n >\n {countries?.map((country: Country, index) => {\n return (\n \n \n {country.name}\n \n );\n })}\n \n \n \n \n );\n};\n\nexport { CreateOrganizationStep };\n","import flagUk from 'static/flags/gbr.svg';\nimport flagDK from 'static/flags/dnk.svg';\nimport flagDE from 'static/flags/deu.svg';\nimport flagPL from 'static/flags/pol.svg';\nimport { TFunction } from 'react-i18next';\n\nexport interface Country {\n name: string;\n alpha2Code: string;\n flag: string;\n}\n\nexport const getCountries = (t: TFunction): Country[] => {\n return [\n {\n name: t('countries.uk'),\n alpha2Code: 'UK',\n flag: flagUk,\n },\n {\n name: t('countries.dk'),\n alpha2Code: 'DK',\n flag: flagDK,\n },\n {\n name: t('countries.de'),\n alpha2Code: 'DE',\n flag: flagDE,\n },\n {\n name: t('countries.pl'),\n alpha2Code: 'PL',\n flag: flagPL,\n },\n ];\n};\n","import React, { useEffect, useState } from 'react';\nimport { Grid, makeStyles, TextField, Typography } from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { ApplicationState } from 'store';\nimport { organizationActions } from 'actions/organizationActions';\nimport { ValidatedTextInput } from 'components/ValidatedTextInput';\nimport 'translations/translations';\n\ntype StepProps = {\n stepTitleString: string;\n buttonText: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\nconst AddUserToOrganizationStep: React.FC = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const [inputs, setInputs] = useState({\n contactName: '',\n contactEmail: '',\n contactPhone: '',\n });\n const [emailError, setEmailError] = useState(false);\n\n const organizationId = useSelector(\n (state: ApplicationState) => state.organization?.id,\n );\n\n const organizationError = useSelector(\n (state: ApplicationState) => state.organization?.error,\n );\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInputs((inputs) => ({ ...inputs, [name]: value }));\n };\n\n const handleEmailChange = (name: string, value: string, error: boolean) => {\n setInputs((inputs) => ({ ...inputs, [name]: value }));\n setEmailError(error);\n };\n\n useEffect(() => {\n handleButtonState(\n inputs.contactName,\n inputs.contactEmail,\n inputs.contactPhone,\n emailError,\n );\n }, [inputs, emailError]);\n\n const handleButtonState = (\n contactName: string,\n contactEmail: string,\n contactPhone: string,\n error?: boolean,\n ): void => {\n if (error) {\n dispatch({ type: 'DISABLE_BUTTON', disabled: true });\n return;\n }\n\n if ((contactName !== '' || contactPhone !== '') && contactEmail === '') {\n dispatch({ type: 'DISABLE_BUTTON', disabled: true });\n return;\n }\n\n dispatch({ type: 'DISABLE_BUTTON', disabled: false });\n };\n\n const callbackFn = () => {\n if (inputs.contactEmail !== '') {\n dispatch(\n organizationActions.addAdminToOrg(\n organizationId,\n inputs.contactEmail,\n inputs.contactName,\n inputs.contactPhone,\n ),\n );\n } else {\n dispatch({ type: 'SET_STEP', step: 4 });\n }\n };\n\n useEffect(() => {\n dispatch({ type: 'SET_CALLBACK', callbackFn });\n });\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n {!!organizationError && organizationError}\n \n \n );\n};\n\nexport { AddUserToOrganizationStep };\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { MenuItem, TextField } from '@material-ui/core';\nimport { LevelOfInvoiceEnumDto } from '.generated/api';\n\ninterface LevelOfInvoiceSelectProps {\n onChange: (e: React.ChangeEvent) => void;\n value?: string;\n required?: boolean;\n}\nconst LevelOfInvoiceSelect: React.FC = (props) => {\n const { t } = useTranslation(['translations']);\n return (\n \n \n {t('labels.organization')}\n \n \n {t('labels.department')}\n \n \n );\n};\n\nexport default LevelOfInvoiceSelect;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { MenuItem, TextField } from '@material-ui/core';\nimport { SettlementTypeEnumDto } from '.generated/api';\n\ninterface SettlementTypeSelectProps {\n onChange: (e: React.ChangeEvent) => void;\n value?: string;\n required?: boolean;\n}\n\nconst SettlementTypeSelect: React.FC = (props) => {\n const { t } = useTranslation(['translations']);\n\n return (\n \n {Object.values(SettlementTypeEnumDto).map((settlementType) => (\n \n {t(\n `organization_page.contract.settlement_type.${settlementType.toLowerCase()}`,\n )}\n \n ))}\n \n );\n};\n\nexport default SettlementTypeSelect;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { MenuItem, TextField } from '@material-ui/core';\nimport { AccountingEnumDto } from '.generated/api';\n\ninterface AccountingSelectProps {\n onChange: (e: React.ChangeEvent) => void;\n value?: string;\n required?: boolean;\n}\n\nconst AccountingSelect: React.FC = (props) => {\n const { t } = useTranslation(['translations']);\n\n return (\n \n {Object.values(AccountingEnumDto).map((accounting) => (\n \n {t(\n `organization_page.contract.accounting_type.${accounting.toLowerCase()}`,\n )}\n \n ))}\n \n );\n};\n\nexport default AccountingSelect;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { MenuItem, TextField } from '@material-ui/core';\nimport { CurrencyEnumDto } from '.generated/api';\n\ninterface CurrencySelectProps {\n onChange: (e: React.ChangeEvent) => void;\n value?: string;\n required?: boolean;\n}\n\nconst CurrencySelect: React.FC = (props) => {\n const { t } = useTranslation(['translations']);\n return (\n \n {Object.values(CurrencyEnumDto).map((currency) => (\n \n {t(`organization_page.contract.currency.${currency.toLowerCase()}`)}\n \n ))}\n \n );\n};\n\nexport default CurrencySelect;\n","export const customerNumberRE = /^[0-9]{0,6}$/;\nexport const guaranteedVolumeRE = /^[0-9]{0,6}$/;\n","import React, { useEffect, useState } from 'react';\nimport { Grid, MenuItem, TextField, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport 'translations/translations';\nimport { organizationActions } from 'actions/organizationActions';\nimport { ApplicationState } from 'store';\nimport { DateRangePickerComponent } from 'components/DateRangePicker';\nimport {\n LevelOfInvoiceEnumDto,\n SettlementTypeEnumDto,\n AccountingEnumDto,\n CurrencyEnumDto,\n} from '.generated/api';\nimport LevelOfInvoiceSelect from 'components/LevelOfInvoiceSelect';\nimport SettlementTypeSelect from 'components/SettlementTypeSelect';\nimport AccountingSelect from 'components/AccountingSelect';\nimport CurrencySelect from 'components/CurrencySelect';\n\nimport { customerNumberRE, guaranteedVolumeRE } from 'helpers/validation';\n\ntype StepProps = {\n stepTitleString: string;\n buttonText: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n topMargin: {\n marginTop: theme.spacing(3),\n },\n datePickerItem: {\n width: '50%',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\nconst AddContractInfoStep: React.FC = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n\n const organizationId = useSelector(\n (state: ApplicationState) => state.organization?.id,\n );\n\n const organizationError = useSelector(\n (state: ApplicationState) => state.organization?.error,\n );\n\n const [inputs, setInputs] = useState({\n customerNumber: '',\n startDate: '',\n endDate: '',\n levelOfInvoice: '',\n fullMeasurementPrice: '',\n pieceMeasurementPrice: '',\n settlementType: '',\n accounting: '',\n currency: '',\n guaranteedVolume: '',\n });\n\n const handleCustomerNumberChange = (\n e: React.ChangeEvent,\n ) => {\n const { value } = e.target;\n if (!customerNumberRE.test(value)) {\n return;\n }\n setInputs((input) => ({ ...input, customerNumber: value }));\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInputs((inputs) => ({ ...inputs, [name]: value }));\n };\n\n const onStartDateChange = (dateValue?: Date) => {\n if (dateValue) {\n setInputs((inputs) => ({\n ...inputs,\n startDate: dateValue.toISOString(),\n }));\n } else {\n setInputs((inputs) => ({\n ...inputs,\n startDate: '',\n }));\n }\n };\n\n const onEndDateChange = (dateValue?: Date) => {\n if (dateValue) {\n setInputs((inputs) => ({\n ...inputs,\n endDate: dateValue.toISOString(),\n }));\n } else {\n setInputs((inputs) => ({\n ...inputs,\n endDate: '',\n }));\n }\n };\n\n const handleDateRangeChange = (\n from: Date | null,\n to: Date | null,\n valid: boolean,\n ) => {\n onStartDateChange(from && valid ? from : undefined);\n onEndDateChange(to && valid ? to : undefined);\n };\n\n const handleGuaranteedVolumeChange = (\n e: React.ChangeEvent,\n ) => {\n const { value } = e.target;\n if (!guaranteedVolumeRE.test(value)) {\n return;\n }\n setInputs((input) => ({ ...input, guaranteedVolume: value }));\n };\n\n const callbackFn = () => {\n if (\n organizationId &&\n (inputs.startDate || inputs.endDate || inputs.customerNumber)\n ) {\n dispatch(\n organizationActions.addContractualInfo(organizationId, {\n startDate: inputs.startDate,\n endDate: inputs.endDate,\n customerNumber:\n inputs?.levelOfInvoice === LevelOfInvoiceEnumDto.DEPARTMENT ||\n inputs.customerNumber === ''\n ? null\n : inputs.customerNumber,\n levelOfInvoice: inputs.levelOfInvoice as LevelOfInvoiceEnumDto,\n fullMeasurementPrice: parseFloat(inputs.fullMeasurementPrice),\n pieceMeasurementPrice: parseFloat(inputs.pieceMeasurementPrice),\n settlementType: inputs.settlementType as SettlementTypeEnumDto,\n accounting: inputs.accounting as AccountingEnumDto,\n currency: inputs.currency as CurrencyEnumDto,\n guaranteedVolume: inputs.guaranteedVolume,\n }),\n );\n } else {\n dispatch({ type: 'SET_STEP', step: 3 });\n }\n };\n\n useEffect(() => {\n dispatch({ type: 'SET_CALLBACK', callbackFn });\n });\n\n useEffect(() => {\n if (\n inputs.startDate.length > 0 &&\n inputs.endDate.length > 0 &&\n inputs.levelOfInvoice.length > 0 &&\n inputs.fullMeasurementPrice.length > 0 &&\n inputs.pieceMeasurementPrice.length > 0 &&\n inputs.settlementType.length > 0 &&\n inputs.accounting.length > 0 &&\n inputs.currency.length > 0 &&\n inputs.guaranteedVolume.length > 0\n ) {\n dispatch({ type: 'DISABLE_BUTTON', disabled: false });\n } else {\n dispatch({ type: 'DISABLE_BUTTON', disabled: true });\n }\n }, [inputs]);\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 \n \n \n {!!organizationError && organizationError}\n \n \n );\n};\n\nexport { AddContractInfoStep };\n","import React, { useEffect, useState } from 'react';\nimport {\n Grid,\n makeStyles,\n FormControl,\n Typography,\n InputLabel,\n Select,\n MenuItem,\n} from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport { organizationActions } from 'actions/organizationActions';\nimport {\n ExportFormatEnumDto,\n MeasurementCardDetails,\n StackNumberingEnumDto,\n} from '.generated/api';\nimport { ApiService } from 'services/apiService';\n\ntype StepProps = {\n stepTitleString: string;\n buttonText: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\nconst AddMeasurementCardStep: React.FC = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const [measurementCards, setMeasurementCards] = useState<\n MeasurementCardDetails[]\n >([]);\n const [inputs, setInputs] = useState({\n stackNumbering: StackNumberingEnumDto.AUTO_GENERATED,\n measurementCard: '',\n exportFormat: ExportFormatEnumDto.CSV,\n });\n const [measurementCardsError, setMeasurementCardsError] = useState(\n '',\n );\n\n const organizationError = useSelector(\n (state: ApplicationState) => state.organization?.error,\n );\n\n const organizationId = useSelector(\n (state: ApplicationState) => state.organization?.id,\n );\n\n const handleSelect = (\n inputName: string,\n e: React.ChangeEvent<{ name?: string | undefined; value: unknown }>,\n ) => {\n const { value } = e.target;\n setInputs((inputs) => ({ ...inputs, [inputName]: value }));\n };\n\n const callbackFn = () => {\n dispatch(\n organizationActions.assignMeasurementCardToOrg(\n organizationId,\n inputs.measurementCard,\n inputs.stackNumbering,\n inputs.exportFormat,\n ),\n );\n };\n\n useEffect(() => {\n dispatch({ type: 'SET_CALLBACK', callbackFn });\n });\n\n useEffect(() => {\n ApiService.getMeasurementCardList()\n .then((response) => {\n const details = response?.data?.details;\n if (details && details.length > 0) {\n setMeasurementCards(details);\n setInputs((inputs) => ({\n ...inputs,\n measurementCard: details[0].measurementCardId || '',\n }));\n }\n })\n .catch((error) => {\n setMeasurementCardsError(error?.response?.data?.errorMessage);\n });\n }, []);\n\n return (\n <>\n \n \n \n {t(\n 'organizations_page.create_org.add_measurement_card_step.stack_numbering',\n )}\n \n handleSelect('stackNumbering', e)}\n label={t(\n 'organizations_page.create_org.add_measurement_card_step.stack_numbering',\n )}\n id=\"stackDD\"\n >\n \n {t(\n 'organizations_page.create_org.add_measurement_card_step.autogenerated',\n )}\n \n \n {t(\n 'organizations_page.create_org.add_measurement_card_step.manuel',\n )}\n \n \n \n \n \n \n \n {t(\n 'organizations_page.create_org.add_measurement_card_step.measurement_card',\n )}\n \n handleSelect('measurementCard', e)}\n label={t(\n 'organizations_page.create_org.add_measurement_card_step.measurement_card',\n )}\n id=\"cardDD\"\n >\n {measurementCards?.map((card, index) => {\n return (\n \n {card.measurementCardName}\n \n );\n })}\n \n \n \n {/*\n \n \n \n {t('organization_page.measurement_card.labels.export_format')}\n \n handleSelect('exportFormat', e)}\n label={t('organization_page.measurement_card.labels.export_format')}\n id=\"stackDD\"\n >\n \n {t('organization_page.measurement_card.export_formats.csv')}\n \n \n \n \n */}\n \n {!!organizationError && organizationError}\n {!!measurementCardsError && measurementCardsError}\n \n \n );\n};\n\nexport { AddMeasurementCardStep };\n","import React, { useState } from 'react';\nimport { generatePath, Link, useHistory } from 'react-router-dom';\nimport {\n Button,\n IconButton,\n makeStyles,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { primaryColor, theme } from 'theme/theme';\nimport { useTranslation } from 'react-i18next';\nimport 'translations/translations';\nimport { useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport {\n LevelOfInvoiceEnumDto,\n ListOrganizationsDetailedResponseItem,\n} from '.generated/api';\nimport clsx from 'clsx';\nimport { AuthRoutes } from 'shared/Routes';\nimport { FiberManualRecord } from '@material-ui/icons';\nimport { utcToLocalWithoutTz } from './DateRangePicker';\nimport { ApiService } from 'services/apiService';\n\nconst useStyles = makeStyles({\n table: {\n minWidth: '41rem',\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n tableCell: {\n color: primaryColor(),\n position: 'relative',\n },\n tableRow: {\n textDecoration: 'none',\n cursor: 'pointer',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n paddingLeft: {\n paddingLeft: '2rem',\n },\n statusIcon: {\n position: 'absolute',\n right: '100%',\n fontSize: '.85rem',\n marginRight: '-0.5rem',\n marginTop: '0.19rem',\n },\n});\n\nconst getFormattedDate = (\n dateString: string | undefined,\n): string | undefined => {\n const format = navigator.language;\n if (dateString) {\n const dateObject = utcToLocalWithoutTz(new Date(dateString));\n return dateObject.toLocaleDateString(format);\n } else {\n return undefined;\n }\n};\n\nconst OrganizationsTable: React.FC = () => {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n const history = useHistory();\n\n const organizations = useSelector(\n (state: ApplicationState) => state.organizations?.organizations,\n );\n\n const [organizationsData, setOrganizationsData] = useState(organizations);\n\n const isGlobalAdmin = useSelector(\n (state: ApplicationState) =>\n state.isLoggedIn?.userAccess?.isGlobalAdmin ?? false,\n );\n\n const getLevelOfInvoice = (levelOfInvoice?: LevelOfInvoiceEnumDto) => {\n switch (levelOfInvoice) {\n case LevelOfInvoiceEnumDto.ORGANIZATION:\n return t('labels.organization');\n case LevelOfInvoiceEnumDto.DEPARTMENT:\n return t('labels.department');\n default:\n return '';\n }\n };\n\n const handleDelete = async (\n org: ListOrganizationsDetailedResponseItem,\n event: React.MouseEvent,\n ) => {\n event?.stopPropagation();\n const confirmed = window.confirm(\n t('organizations_page.delete.confirm', {\n organization: org.organizationName,\n }),\n );\n if (confirmed) {\n const doubleConfirmed = window.confirm(\n t('organizations_page.delete.second_confirm', {\n organization: org.organizationName,\n }),\n );\n if (doubleConfirmed) {\n const reponse = await ApiService.deleteOrganization(org.organizationId);\n if (reponse.status !== 204) {\n alert(t('organizations_page.delete.error'));\n return;\n } else {\n alert(t('organizations_page.delete.success'));\n }\n setOrganizationsData((prevData) =>\n prevData!.filter(\n (item) => item.organizationId !== org.organizationId,\n ),\n );\n }\n }\n };\n\n return (\n \n \n \n \n \n {t('organizations_page.table.name')}\n \n \n {t('organizations_page.table.contact_person')}\n \n \n {t('organizations_page.table.contact_no')}\n \n \n {t('organizations_page.table.email')}\n \n \n {t('organizations_page.table.level_of_invoice')}\n \n \n {t('organizations_page.table.contract_expires')}\n \n {isGlobalAdmin && (\n \n {t('organizations_page.table.state')}\n \n )}\n {isGlobalAdmin && (\n {''}\n )}\n \n \n \n {organizationsData?.map(\n (org: ListOrganizationsDetailedResponseItem) => (\n {\n history.push(`/organization/${org.organizationId}`);\n }}\n className={classes.tableRow}\n >\n \n {org.organizationName}\n \n \n {org.administrator}\n \n \n {org.contactPhoneNumber}\n \n {org.email}\n \n {getLevelOfInvoice(org.contractInformation?.levelOfInvoice)}\n \n \n {getFormattedDate(org.contractInformation?.expireDate)}\n \n {isGlobalAdmin && (\n \n \n {org.active\n ? t('organizations_page.table.active')\n : t('organizations_page.table.inactive')}\n {org.warnings.isMissingCustomerNumber && (\n
\n {t('organizations_page.table.customer_no_missing')}\n
\n )}\n {org.warnings.departmentsWithMissingCustomerNumber.length >\n 0 && (\n
\n {`${t(\n 'organizations_page.table.customer_no_missing',\n )}: `}\n {org.warnings.departmentsWithMissingCustomerNumber.map(\n (dep, i) => (\n \n event.stopPropagation()\n }\n >\n {dep.departmentName}\n {i + 1 <\n org.warnings\n .departmentsWithMissingCustomerNumber\n .length && ', '}\n \n ),\n )}\n
\n )}\n
\n )}\n {isGlobalAdmin && (\n \n handleDelete(org, event)}>\n \n \n \n )}\n \n ),\n )}\n
\n
\n
\n );\n};\n\nexport { OrganizationsTable };\n","import React, { useEffect, useState } from 'react';\nimport { Button, Divider, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FlowDialog } from 'components/flowDialog/FlowDialog';\nimport { CreateOrganizationStep } from 'components/createOrganizationFlow/CreateOrganizationStep';\nimport { AddUserToOrganizationStep } from 'components/createOrganizationFlow/AddUserToOrganizationStep';\nimport { AddContractInfoStep } from 'components/createOrganizationFlow/AddContractInfoStep';\nimport { AddMeasurementCardStep } from 'components/createOrganizationFlow/AddMeasurementCardStep';\nimport { OrganizationsTable } from 'components/OrganizationsTable';\nimport { PageToolbar } from 'components/PageToolbar';\nimport { ApplicationState } from 'store';\nimport PageSpinner from 'components/spinners/PageSpinner';\nimport { organizationActions } from 'actions/organizationActions';\n\nconst useStyles = makeStyles(() => ({\n buttonClass: {\n marginLeft: 0,\n marginRight: 0,\n },\n headingButton: {\n textAlign: 'right',\n position: 'relative',\n top: '0.5rem',\n minHeight: '3rem',\n },\n\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n}));\n\nconst Organizations: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const [isOpen, setIsOpen] = useState(false);\n\n const organizationName = useSelector(\n (state: ApplicationState) => state.organization?.name,\n );\n\n const organizationId = useSelector(\n (state: ApplicationState) => state.organization?.id,\n );\n\n const userAccess = useSelector(\n (state: ApplicationState) => state.isLoggedIn?.userAccess,\n );\n\n const organizations = useSelector(\n (state: ApplicationState) => state.organizations?.organizations,\n );\n\n const handleOpenDialog = (): void => {\n dispatch({ type: 'SET_STEP', step: 1 });\n setIsOpen(true);\n };\n\n const handleCloseDialog = (): void => {\n setIsOpen(false);\n };\n\n useEffect(() => {\n dispatch(organizationActions.getOrganizations());\n }, []);\n\n return (\n <>\n \n \n {t('organizations_page.title')}\n \n \n
\n {userAccess?.isGlobalAdmin && (\n \n +\n {t('organizations_page.create_organization_btn')}\n \n )}\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport { Organizations };\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Grid, makeStyles, TextField, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport 'translations/translations';\nimport { organizationActions } from 'actions/organizationActions';\nimport { ApplicationState } from 'store';\n\ninterface ParamTypes {\n orgId: string;\n}\n\ntype StepProps = {\n stepTitleString: string;\n buttonText: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n noMargine: {\n marginTop: 0,\n },\n flagStyles: {\n width: '2em',\n height: '1rem',\n marginRight: '0.5em',\n position: 'relative',\n top: '0.15rem',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\nconst CreateDepartmentStep: React.FC = () => {\n const dispatch = useDispatch();\n const [inputs, setInputs] = useState({\n departmentName: '',\n departmentNumber: '',\n });\n const { t } = useTranslation(['translations']);\n const { orgId } = useParams();\n const classes = useStyles();\n\n const deptError = useSelector(\n (state: ApplicationState) => state.department?.error,\n );\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInputs((inputs) => ({ ...inputs, [name]: value }));\n };\n\n useEffect(() => {\n dispatch({\n type: 'DISABLE_BUTTON',\n disabled: inputs.departmentName.length < 2,\n });\n }, [inputs]);\n\n const callbackFn = () => {\n dispatch(\n organizationActions.createDept(\n orgId,\n inputs.departmentName,\n parseInt(inputs.departmentNumber),\n ),\n );\n };\n\n useEffect(() => {\n // capture changed input\n dispatch({ type: 'SET_CALLBACK', callbackFn });\n }, [inputs]);\n\n useEffect(() => {\n dispatch({ type: 'DEPARTMENT_STATE_RESET' });\n }, []);\n\n return (\n <>\n \n \n \n \n \n \n {!!deptError && deptError}\n \n \n \n );\n};\n\nexport { CreateDepartmentStep };\n","import React, { useState } from 'react';\nimport { makeStyles, Paper, TextField } from '@material-ui/core';\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport { useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport { OrganizationResponse, UserModelDto } from '.generated/api';\nimport { buttonPrimaryColor } from 'theme/theme';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(() => ({\n paperRoot: {\n position: 'absolute',\n zIndex: 9999,\n padding: '0',\n top: '50px',\n width: '100%',\n borderRadius: '0 0 4px 4px',\n boxShadow: 'none',\n borderTop: 'none',\n borderRight: `2px solid ${buttonPrimaryColor()}`,\n borderBottom: `2px solid ${buttonPrimaryColor()}`,\n borderLeft: `2px solid ${buttonPrimaryColor()}`,\n },\n container: {\n position: 'relative',\n },\n fieldWithDD: {\n borderColor: buttonPrimaryColor(),\n '& .MuiOutlinedInput-root': {\n fieldset: {\n borderColor: buttonPrimaryColor(),\n },\n },\n },\n dropdown: {\n paddingRight: '0',\n paddingLeft: '0',\n margin: '0',\n },\n dropdownOption: {\n display: 'block',\n listStyle: 'none',\n padding: '0.5rem 0.8rem',\n cursor: 'pointer',\n color: '#000',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\n },\n },\n}));\n\ntype UserAutocompleteProps = {\n onSelectOption: (user: UserModelDto) => void;\n onChangeName: (name: string) => void;\n label: string;\n value: string;\n};\n\nconst UserAutocomplete: React.FC = (props) => {\n const { onSelectOption, onChangeName, label, value } = props;\n const classes = useStyles();\n const [filteredUsers, setFilteredUsers] = useState([]);\n const [isPopoverVisible, setisPopoverVisible] = useState(false);\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n\n const handleChange = (\n e: React.ChangeEvent,\n ) => {\n const { value } = e.target;\n onChangeName(value);\n\n const tempUsers: UserModelDto[] = [];\n setFilteredUsers(tempUsers);\n if (value.length > 2) {\n organization?.users?.forEach((user) => {\n if (user.name.toLowerCase().indexOf(value.toLowerCase()) > -1) {\n tempUsers.push(user);\n }\n });\n setFilteredUsers(tempUsers);\n if (tempUsers.length > 0) {\n setisPopoverVisible(true);\n }\n }\n };\n\n const handleClickAway = () => {\n setisPopoverVisible(false);\n };\n\n const handleSelect = (user: UserModelDto) => {\n onSelectOption(user);\n\n setisPopoverVisible(false);\n };\n\n return (\n \n
\n ) => {\n // disable form submit here since the form tag is only used to disable autocomplete in browser.\n event.preventDefault();\n }}\n >\n 0 ? classes.fieldWithDD : '',\n )}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n />\n \n\n {isPopoverVisible && filteredUsers.length > 0 && (\n \n
    \n {filteredUsers?.map((user, index) => {\n return (\n handleSelect(user)}\n >\n {user?.name} - {user?.userEmail}\n \n );\n })}\n
\n
\n )}\n
\n
\n );\n};\n\nexport { UserAutocomplete };\n","import React, { useEffect, useState } from 'react';\nimport { Grid, makeStyles, TextField, Typography } from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { ApplicationState } from 'store';\nimport { departmentActions } from 'actions/departmentActions';\nimport { ValidatedTextInput } from 'components/ValidatedTextInput';\nimport 'translations/translations';\nimport { useParams } from 'react-router-dom';\nimport { UserAutocomplete } from 'components/UserAutocomplete';\nimport { UserModelDto } from '.generated/api';\n\ninterface ParamTypes {\n orgId: string;\n}\n\ntype StepProps = {\n stepTitleString: string;\n buttonText: string;\n};\n\nconst useStyles = makeStyles((theme) => ({\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\nconst AddAdminToDepartmentStep: React.FC = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const { orgId } = useParams();\n const [inputs, setInputs] = useState({\n contactName: '',\n contactEmail: '',\n contactPhone: '',\n });\n const [emailError, setEmailError] = useState(false);\n\n const departmentId = useSelector(\n (state: ApplicationState) => state.department?.id,\n );\n\n const departmentError = useSelector(\n (state: ApplicationState) => state.department?.error,\n );\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInputs((inputs) => ({ ...inputs, [name]: value }));\n };\n\n const handleChangeName = (name: string) => {\n setInputs((inputs) => ({ ...inputs, contactName: name }));\n };\n\n const handleEmailChange = (name: string, value: string, error: boolean) => {\n setInputs((inputs) => ({ ...inputs, [name]: value }));\n setEmailError(error);\n };\n\n const setExistingUser = (user: UserModelDto) => {\n setInputs((inputs) => ({\n ...inputs,\n contactName: user.name,\n contactEmail: user.userEmail,\n contactPhone: user.phone,\n }));\n };\n\n useEffect(() => {\n handleButtonState(\n inputs.contactName,\n inputs.contactEmail,\n inputs.contactPhone,\n emailError,\n );\n }, [inputs, emailError]);\n\n const handleButtonState = (\n contactName: string,\n contactEmail: string,\n contactPhone: string,\n error?: boolean,\n ): void => {\n if (error) {\n dispatch({ type: 'DISABLE_BUTTON', disabled: true });\n return;\n }\n\n if ((contactName !== '' || contactPhone !== '') && contactEmail === '') {\n dispatch({ type: 'DISABLE_BUTTON', disabled: true });\n return;\n }\n\n dispatch({ type: 'DISABLE_BUTTON', disabled: false });\n };\n\n const callbackFn = () => {\n if (inputs.contactEmail !== '') {\n dispatch(\n departmentActions.addAdminToDept(\n orgId,\n departmentId,\n inputs.contactEmail,\n inputs.contactName,\n inputs.contactPhone,\n ),\n );\n } else {\n dispatch({ type: 'SET_FLOW_COMPLETED' });\n }\n };\n\n useEffect(() => {\n dispatch({ type: 'SET_CALLBACK', callbackFn });\n });\n\n return (\n <>\n \n \n \n \n \n \n \n \n {!!departmentError && departmentError}\n \n \n );\n};\n\nexport { AddAdminToDepartmentStep };\n","import React from 'react';\nimport {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n makeStyles,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { history } from 'helpers/history';\nimport { useParams } from 'react-router-dom';\nimport { primaryColor } from 'theme/theme';\nimport { OrganizationDepartmentResponse } from '.generated/api';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(() => ({\n tableContainer: {\n width: '100%',\n },\n tableContainerWide: {\n marginTop: '1rem',\n marginLeft: '-1.5rem',\n width: 'calc(100% + 3rem)',\n },\n table: {\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n cursor: 'pointer',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n}));\n\ninterface ParamTypes {\n orgId: string;\n}\n\ntype TableProps = {\n departments: OrganizationDepartmentResponse[] | undefined;\n handleDepartmentClick?: (departmentId: string) => void;\n inTab: boolean;\n};\n\nconst DepartmentsTable: React.FC = (props) => {\n const { departments, inTab, handleDepartmentClick } = props;\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n const { orgId } = useParams();\n\n const handleClick = (departmentId: string) => {\n if (handleDepartmentClick) {\n handleDepartmentClick(departmentId);\n } else {\n history.push(`/organization/${orgId}/department/${departmentId}`);\n }\n };\n\n return (\n \n \n \n \n \n {t('organization_page.departments.table.name')}\n \n \n {t('organization_page.departments.table.admin')}\n \n \n {t('organization_page.departments.table.users')}\n \n \n \n \n {departments?.map((dept: OrganizationDepartmentResponse) => (\n handleClick(dept.departmentId)}\n className={classes.tableRow}\n >\n {dept.name}\n \n {dept.administrator}\n \n \n {dept.numberOfUsers}\n \n \n ))}\n \n
\n \n );\n};\n\nexport { DepartmentsTable };\n","import React, { useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n Button,\n CircularProgress,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport { FlowDialog } from 'components/flowDialog/FlowDialog';\nimport { CreateDepartmentStep } from 'components/createDepartmentFlow/CreateDepartmentStep';\nimport { AddAdminToDepartmentStep } from 'components/createDepartmentFlow/AddAdminToDepartmentStep';\nimport { DepartmentsTable } from 'components/DepartmentsTable';\nimport 'translations/translations';\nimport { useTranslation } from 'react-i18next';\nimport { ApplicationState } from 'store';\n\nconst useStyles = makeStyles((theme) => ({\n alignRight: {\n textAlign: 'right',\n },\n buttonClass: {\n marginLeft: 0,\n },\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n}));\n\nconst DepartmentsTab: React.FC = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { t } = useTranslation(['translations']);\n const [isOpen, setIsOpen] = useState(false);\n\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n\n const departmentName = useSelector(\n (state: ApplicationState) => state.department?.name,\n );\n\n const departmentId = useSelector(\n (state: ApplicationState) => state.department?.id,\n );\n\n const departmentError = useSelector(\n (state: ApplicationState) => state.organization?.error,\n );\n\n const handleOpenDialog = (): void => {\n dispatch({ type: 'SET_STEP', step: 1 });\n setIsOpen(true);\n };\n\n const handleCloseDialog = (): void => {\n setIsOpen(false);\n };\n\n return (\n <>\n {!organization?.departments ? (\n
\n {departmentError ? (\n \n {departmentError}\n \n ) : (\n \n )}\n
\n ) : (\n
\n
\n \n +\n {t('organization_page.create_dept_btn')}\n \n
\n \n
\n )}\n \n \n \n \n \n );\n};\n\nexport { DepartmentsTab };\n","import { Card, withStyles } from '@material-ui/core';\n\nconst StyledCard = withStyles(() => ({\n root: {\n padding: '0.1rem 1rem',\n minWidth: '8.5rem',\n },\n}))(Card);\n\nexport default StyledCard;\n","import { CardContent, withStyles } from '@material-ui/core';\n\nconst StyledCardContent = withStyles(() => ({\n root: {\n padding: '0 1rem 2rem 1rem',\n },\n}))(CardContent);\n\nexport default StyledCardContent;\n","import React from 'react';\nimport { IconButton, CardHeader } from '@material-ui/core';\n\nimport Card from 'components/StyledCard';\nimport CardContent from 'components/StyledCardContent';\n\nimport { CancelOutlined } from '@material-ui/icons';\nimport CheckIcon from '@material-ui/icons/Check';\nimport EditIcon from '@material-ui/icons/Edit';\n\nimport OverlaySpinner from 'components/spinners/OverlaySpinner';\n\nimport { useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\n\ninterface EditCardProps {\n editMode: boolean;\n isLoading: boolean;\n isValid?: boolean;\n onEdit: () => void;\n onSave: () => void;\n onCancel: () => void;\n title?: string;\n children: React.ReactNode;\n requireGlobalAdmin?: boolean;\n}\n\nconst EditCard: React.FC = ({\n editMode,\n isLoading,\n isValid,\n onEdit,\n onSave,\n onCancel,\n title,\n children,\n requireGlobalAdmin,\n}) => {\n const userAccess = useSelector(\n (state: ApplicationState) => state.isLoggedIn.userAccess,\n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n ) : (\n (!requireGlobalAdmin || userAccess?.isGlobalAdmin) && (\n \n \n \n )\n )\n }\n >\n {children}\n \n \n );\n};\n\nexport default EditCard;\n","import React, { useState, useEffect } from 'react';\nimport { Grid, TextField, Typography } from '@material-ui/core';\n\nimport EditCard from 'components/EditCard';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport { OrganizationResponse } from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\nimport { organizationActions } from 'actions/organizationActions';\nimport { notificationActions } from 'actions/notificationActions';\n\nconst OrganizationCard: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n\n const [editMode, setEditMode] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [input, setInput] = useState({ name: '' });\n const [isMounted, setIsMounted] = useState(true);\n\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n\n // track unmount\n useEffect(() => {\n return () => {\n setIsMounted(false);\n };\n }, []);\n\n // track organization\n useEffect(() => {\n resetInput();\n }, [organization]);\n\n const resetInput = () => {\n if (organization) {\n setInput({ name: organization.name });\n } else {\n setInput({ name: '' });\n }\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInput((input) => ({ ...input, [name]: value }));\n };\n\n const handleSave = () => {\n if (organization) {\n setIsLoading(true);\n dispatch(\n organizationActions.updateOrganizationName(\n organization.organizationId,\n input.name,\n (error) => {\n if (isMounted) {\n setIsLoading(false);\n setEditMode(!!error);\n }\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n },\n ),\n );\n }\n };\n\n const handleEdit = () => {\n resetInput();\n setEditMode(true);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n };\n\n return (\n 0}\n title={t(\n 'organization_page.organization_information.labels.organization',\n )}\n onEdit={handleEdit}\n onCancel={handleCancel}\n onSave={handleSave}\n >\n {editMode ? (\n \n \n \n \n \n ) : (\n <>\n \n {organization && (organization.name ?? '')}\n \n \n )}\n \n );\n};\n\nexport default OrganizationCard;\n","import React, { useState, useEffect } from 'react';\nimport {\n Grid,\n TextField,\n Typography,\n makeStyles,\n Link,\n} from '@material-ui/core';\n\nimport EditCard from 'components/EditCard';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport { OrganizationResponse } from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\nimport { organizationActions } from 'actions/organizationActions';\nimport { notificationActions } from 'actions/notificationActions';\n\nconst useStyles = makeStyles(() => ({\n label: {\n fontWeight: 'bold',\n },\n link: { fontWeight: 'normal' },\n}));\n\nconst ContactInformationCard: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n const classes = useStyles();\n\n const [editMode, setEditMode] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [input, setInput] = useState({ email: '', phone: '', webSite: '' });\n const [isMounted, setIsMounted] = useState(true);\n\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n\n // track unmount\n useEffect(() => {\n return () => {\n setIsMounted(false);\n };\n }, []);\n\n // track organization\n useEffect(() => {\n resetInput();\n }, [organization]);\n\n const getClickableLink = (link: string) => {\n return link.startsWith('http://') || link.startsWith('https://')\n ? link\n : `http://${link}`;\n };\n\n const handleSave = () => {\n if (organization?.contactInformation) {\n setIsLoading(true);\n dispatch(\n organizationActions.updateOrganizationContactDetails(\n organization.organizationId,\n input,\n (error) => {\n if (isMounted) {\n setIsLoading(false);\n setEditMode(!!error);\n }\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n },\n ),\n );\n }\n };\n\n const resetInput = () => {\n if (organization?.contactInformation) {\n setInput({\n email: organization.contactInformation.email ?? '',\n phone: organization.contactInformation.phone ?? '',\n webSite: organization.contactInformation.webSite ?? '',\n });\n } else {\n setInput({ email: '', phone: '', webSite: '' });\n }\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInput((input) => ({ ...input, [name]: value }));\n };\n\n const handleEdit = () => {\n resetInput();\n setEditMode(true);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n };\n\n return (\n \n {editMode ? (\n \n \n \n \n \n \n \n \n \n \n \n ) : (\n <>\n \n \n {t('organization_page.organization_information.labels.phone')}:\n \n  \n {input.phone}\n \n \n \n {t('organization_page.organization_information.labels.email')}:\n \n  \n {input.email && (\n \n {input.email}\n \n )}\n \n \n \n {t('organization_page.organization_information.labels.website')}:\n \n  \n {input.webSite && (\n \n {input.webSite}\n \n )}\n \n \n )}\n \n );\n};\n\nexport default ContactInformationCard;\n","import React, { useEffect } from 'react';\nimport { Button, makeStyles } from '@material-ui/core';\n\nimport Card from 'components/StyledCard';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport { useTranslation } from 'react-i18next';\nimport { organizationActions } from 'actions/organizationActions';\n\nimport OverlaySpinner from 'components/spinners/OverlaySpinner';\n\nconst useStyles = makeStyles(() => ({\n root: {\n position: 'relative',\n padding: 0,\n display: 'flex',\n minHeight: '10rem',\n },\n button: {\n margin: 'auto',\n width: '100%',\n },\n buttonContainer: {\n backgroundColor: 'white ',\n textAlign: 'center',\n position: 'absolute',\n margin: 'auto',\n left: 0,\n right: 0,\n bottom: 0,\n width: '100%',\n },\n image: {\n display: 'block',\n marginBottom: 'auto',\n marginLeft: 'auto',\n marginRight: 'auto',\n maxWidth: '100%',\n },\n}));\n\nconst UploadLogoCard: React.FC = () => {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n\n const { organizationId, logo } = useSelector((state: ApplicationState) => ({\n organizationId: state.organization?.organization?.organizationId,\n logo: state.organization?.logo,\n }));\n\n useEffect(() => {\n if (organizationId) {\n dispatch(organizationActions.getOrganizationLogo(organizationId));\n }\n }, [organizationId]);\n\n const handleUploadLogo = (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n const file = event.target.files[0];\n\n if (file && organizationId) {\n dispatch(\n organizationActions.updateOrganizationLogo(organizationId, file),\n );\n }\n }\n };\n\n return (\n \n \n {logo && logo.length > 0 && (\n \n )}\n\n
\n \n {t('organization_page.organization_information.labels.upload_logo')}\n\n \n \n\n
Max. 500KB
\n
\n
\n
\n );\n};\n\nexport default UploadLogoCard;\n","import React, { useState, useEffect } from 'react';\nimport { Grid, TextField, Typography } from '@material-ui/core';\n\nimport EditCard from 'components/EditCard';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport { OrganizationResponse } from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\nimport { organizationActions } from 'actions/organizationActions';\nimport { notificationActions } from 'actions/notificationActions';\n\nconst AddressCard: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n\n const [editMode, setEditMode] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [input, setInput] = useState({\n street: '',\n city: '',\n zipCode: '',\n country: '',\n streetNumber: '',\n });\n const [isMounted, setIsMounted] = useState(true);\n\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n\n // track unmount\n useEffect(() => {\n return () => {\n setIsMounted(false);\n };\n }, []);\n\n // track organization\n useEffect(() => {\n resetInput();\n }, [organization]);\n\n const resetInput = () => {\n if (organization?.addressInformation) {\n setInput({\n street: organization.addressInformation.street ?? '',\n city: organization.addressInformation.city ?? '',\n zipCode: organization.addressInformation.zipCode ?? '',\n country: organization.addressInformation.country ?? '',\n streetNumber: organization.addressInformation.streetNumber ?? '',\n });\n } else {\n setInput({\n street: '',\n city: '',\n zipCode: '',\n country: '',\n streetNumber: '',\n });\n }\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInput((input) => ({ ...input, [name]: value }));\n };\n\n const handleSave = () => {\n if (organization) {\n setIsLoading(true);\n dispatch(\n organizationActions.updateOrganizationAddressDetails(\n organization.organizationId,\n input,\n (error) => {\n if (isMounted) {\n setIsLoading(false);\n setEditMode(!!error);\n }\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n },\n ),\n );\n }\n };\n\n const handleEdit = () => {\n resetInput();\n setEditMode(true);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n };\n\n return (\n \n {editMode ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n <>\n \n {input.street} \n {input.streetNumber}\n \n \n {input.zipCode} \n {input.city}\n \n {input.country}\n \n )}\n \n );\n};\n\nexport default AddressCard;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\n\nimport OrganizationCard from './OrganizationCard';\nimport ContactInformationCard from './ContactInformationCard';\nimport UploadLogoCard from './UploadLogoCard';\nimport AddressCard from './AddressCard';\nimport PageSpinner from 'components/spinners/PageSpinner';\nimport { ApplicationState } from 'store';\nimport { useSelector } from 'react-redux';\n\nconst useStyles = makeStyles(() => ({\n container: {\n margin: '0',\n maxWidth: '100%',\n },\n cardContainer: {\n width: '14rem',\n flexGrow: 1,\n flexShrink: 1,\n },\n uploadLogoContainer: {\n width: '14rem',\n flexGrow: 0,\n flexShrink: 0,\n },\n}));\n\nconst OrganizationDetailsTab: React.FC = () => {\n const classes = useStyles();\n\n const organization = useSelector(\n (state: ApplicationState) => state.organization.organization,\n );\n\n return (\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport { OrganizationDetailsTab };\n","import React, { useEffect, useState } from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Grid,\n makeStyles,\n TextField,\n Typography,\n} from '@material-ui/core';\n\nimport { useTranslation } from 'react-i18next';\n\nimport 'translations/translations';\nimport { ContactDto, UserModelDto } from '.generated/api';\nimport { ValidatedTextInput } from 'components/ValidatedTextInput';\nimport { organizationActions } from 'actions/organizationActions';\nimport { useParams } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { UserAutocomplete } from 'components/UserAutocomplete';\nimport clsx from 'clsx';\nimport OverlaySpinner from 'components/spinners/OverlaySpinner';\n\ntype DialogProps = {\n isOpen: boolean;\n handleClose: () => void;\n contact?: ContactDto;\n};\n\ninterface ParamTypes {\n orgId: string;\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: '0.1rem 1rem',\n minWidth: '8.5rem',\n },\n alignRight: {\n textAlign: 'right',\n },\n noMarginBottom: {\n marginBottom: 0,\n },\n lastButton: {\n marginRight: 0,\n marginBottom: 0,\n },\n dialogContentHeigh: {\n height: '15rem',\n },\n dialogContentAuto: {\n height: 'auto',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\ntype Contact = {\n name?: string;\n email?: string;\n phone?: string;\n};\n\nconst CreateEditContactDialog: React.FC = (props) => {\n const { isOpen, handleClose, contact } = props;\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const dispatch = useDispatch();\n const { orgId } = useParams();\n\n const [isLoading, setIsLoading] = useState(false);\n const [isButtonDisabled, setIsButtonDisabled] = useState(true);\n const [newContact, setNewContact] = useState({\n name: '',\n email: '',\n phone: '',\n });\n const [error, setError] = useState();\n\n const handleChange = (\n e: React.ChangeEvent,\n ) => {\n const { value, name } = e.target;\n setNewContact((newContact) => ({ ...newContact, [name]: value }));\n };\n\n const handleEmailChange = (name: string, value: string, error: boolean) => {\n setNewContact((newContact) => ({ ...newContact, [name]: value }));\n };\n\n const handleChangeName = (name: string) => {\n setNewContact((newContact) => ({ ...newContact, name }));\n };\n\n const addOrEditCallback = (error?: string) => {\n setIsLoading(false);\n if (error) {\n setError(error);\n return;\n }\n handleCloseDialog();\n };\n\n const handleCloseDialog = () => {\n setIsButtonDisabled(true);\n setNewContact({\n name: '',\n email: '',\n phone: '',\n });\n setError(undefined);\n\n handleClose();\n };\n\n const handleCreate = () => {\n setIsLoading(true);\n setError(undefined);\n if (contact) {\n dispatch(\n organizationActions.editContact(\n orgId,\n contact.id,\n newContact.name,\n newContact.email,\n newContact.phone,\n addOrEditCallback,\n ),\n );\n } else {\n dispatch(\n organizationActions.addContact(\n orgId,\n newContact.name,\n newContact.email,\n newContact.phone,\n addOrEditCallback,\n ),\n );\n }\n };\n\n const setExistingUser = (user: UserModelDto) => {\n const contact: Contact = {\n email: user.userEmail,\n name: user.name,\n phone: user.phone,\n };\n setNewContact(contact);\n handleEmailChange('email', contact.email ?? '', false);\n };\n\n useEffect(() => {\n if (contact) {\n setNewContact({\n name: contact.name ?? undefined,\n email: contact.email ?? undefined,\n phone: contact.phone ?? undefined,\n });\n setError(undefined);\n }\n }, [contact]);\n\n useEffect(() => {\n if (!!newContact.name || !!newContact.email || !!newContact.phone) {\n // we have at least one entered value\n setIsButtonDisabled(false);\n } else {\n setIsButtonDisabled(true);\n }\n }, [newContact]);\n\n return (\n \n \n \n \n {contact\n ? t('organization_page.contacts.dialog.title_edit')\n : t('organization_page.contacts.dialog.title_create')}\n \n \n\n \n \n \n {contact ? (\n \n ) : (\n \n )}\n \n\n \n \n \n\n \n \n \n \n \n {error}\n \n \n {t('common.cancel')}\n \n \n {contact ? t('common.save') : t('common.create')}\n \n \n \n \n );\n};\n\nexport { CreateEditContactDialog };\n","import React, { useEffect, useState } from 'react';\nimport {\n IconButton,\n makeStyles,\n Menu,\n MenuItem,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n} from '@material-ui/core';\n\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport { ContactDto, OrganizationResponse } from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\nimport 'theme/iconClasses.css';\n\nimport { primaryColor } from 'theme/theme';\nimport { CreateEditContactDialog } from 'components/organizationTabsContent/CreateEditContactDialog';\nimport { organizationActions } from 'actions/organizationActions';\nimport { notificationActions } from 'actions/notificationActions';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles((theme) => ({\n alignRight: {\n textAlign: 'right',\n },\n marginRight: {\n marginRight: '0.6rem',\n },\n root: {\n padding: '0.1rem 1rem',\n minWidth: '8.5rem',\n },\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n addButton: { marginLeft: '0' },\n actionsButton: {\n padding: '0',\n },\n buttonRoot: {\n marginRight: 0,\n },\n tableContainer: {\n marginTop: '1rem',\n marginLeft: '-1.5rem',\n width: 'calc(100% + 3rem)',\n },\n table: {\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n },\n rowInactive: {\n background: 'rgba(240, 241, 243, 1)',\n opacity: '0.6',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n paper: {\n padding: '0',\n },\n}));\n\nconst ContactsTabTable: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n const classes = useStyles();\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n const [contacts, setContacts] = useState([]);\n const [contact, setContact] = useState();\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n\n const handleOpenDialog = () => {\n setIsMenuOpen(false);\n setIsDialogOpen(true);\n };\n\n const handleCloseDialog = () => {\n setIsDialogOpen(false);\n };\n\n const handleRemoveFromList = () => {\n if (contact && organization) {\n dispatch(\n organizationActions.deleteContact(\n organization.organizationId,\n contact.id,\n (error) => {\n setIsMenuOpen(false);\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n },\n ),\n );\n }\n };\n\n const handleShowContextActions = (\n event: React.MouseEvent,\n contactRow: ContactDto,\n ) => {\n const tempContact: ContactDto = {\n id: contactRow.id,\n name: contactRow.name ?? '',\n email: contactRow.email ?? '',\n phone: contactRow.phone ?? '',\n };\n setContact(tempContact);\n setAnchorEl(event.currentTarget);\n setIsMenuOpen(true);\n };\n\n const handleHideContextActions = () => {\n setIsMenuOpen(false);\n };\n\n const getContacts = () => {\n setContacts(organization?.contacts ?? []);\n };\n\n useEffect(() => {\n getContacts();\n }, [organization?.contacts]);\n\n return (\n <>\n \n \n \n \n \n {t('organization_page.contacts.table.contact_name')}\n \n \n {t('organization_page.contacts.table.contact_email')}\n \n \n {t('organization_page.contacts.table.contact_phone')}\n \n \n {t('common.actions')}\n \n \n \n \n {contacts?.map((contactRow: ContactDto, index: number) => (\n \n \n {contactRow.name}\n \n \n {contactRow.email}\n \n \n {contactRow.phone}\n \n \n handleShowContextActions(e, contactRow)}\n color=\"secondary\"\n className={classes.actionsButton}\n >\n \n \n \n \n {t('common.edit')}\n \n \n {t('organization_page.contacts.labels.remove_contact')}\n \n \n \n \n ))}\n \n
\n
\n \n \n );\n};\n\nexport { ContactsTabTable };\n","import React, { useState } from 'react';\nimport { Button, makeStyles } from '@material-ui/core';\nimport 'translations/translations';\nimport { useTranslation } from 'react-i18next';\nimport 'theme/iconClasses.css';\nimport { ContactsTabTable } from 'components/organizationTabsContent/ContactsTabTable';\nimport { CreateEditContactDialog } from 'components/organizationTabsContent/CreateEditContactDialog';\n\nimport { primaryColor } from 'theme/theme';\nimport { ApplicationState } from 'store';\nimport { useSelector } from 'react-redux';\nimport PageSpinner from 'components/spinners/PageSpinner';\n\nconst useStyles = makeStyles((theme) => ({\n alignRight: {\n textAlign: 'right',\n },\n marginRight: {\n marginRight: '0.6rem',\n },\n\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n addButton: { marginLeft: '0' },\n actionsButton: {\n padding: '0',\n },\n buttonRoot: {\n marginRight: 0,\n },\n tableContainer: {\n marginTop: '1rem',\n marginLeft: '-1.5rem',\n width: 'calc(100% + 3rem)',\n },\n table: {\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n paper: {\n padding: '0',\n },\n}));\n\nconst ContactsTab: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n\n const contacts = useSelector(\n (state: ApplicationState) => state.organization?.organization?.contacts,\n );\n\n const handleOpenDialog = () => {\n setIsDialogOpen(true);\n };\n\n const handleCloseDialog = () => {\n setIsDialogOpen(false);\n };\n\n return (\n <>\n \n
\n \n +\n\n {t('organization_page.contacts.labels.add_contact')}\n \n
\n\n \n \n
\n \n );\n};\n\nexport { ContactsTab };\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n makeStyles,\n} from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport OverlaySpinner from './spinners/OverlaySpinner';\n\nconst useStyles = makeStyles({\n dialogContent: {\n height: 'auto',\n },\n});\n\ninterface ConfirmDialogProps {\n isOpen?: boolean;\n isLoading?: boolean;\n onConfirm?: () => void;\n onCancel?: () => void;\n title: string;\n text: string;\n confirmButtonText: string;\n}\n\nconst ConfirmDialog: React.FC = ({\n isOpen,\n isLoading,\n onConfirm,\n onCancel,\n title,\n text,\n confirmButtonText,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n return (\n \n \n {title}\n \n {text}\n \n \n \n \n \n \n \n );\n};\n\nexport default ConfirmDialog;\n","/* eslint-disable prettier/prettier */\nimport React, { useState, useEffect } from 'react';\nimport {\n Grid,\n makeStyles,\n MenuItem,\n TextField,\n Typography,\n} from '@material-ui/core';\n\nimport EditCard from 'components/EditCard';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport {\n ContractInformationRequest,\n LevelOfInvoiceEnumDto,\n SettlementTypeEnumDto,\n AccountingEnumDto,\n CurrencyEnumDto\n} from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\nimport { organizationActions } from 'actions/organizationActions';\nimport { notificationActions } from 'actions/notificationActions';\n\nimport {\n DateRangePickerComponent,\n utcToLocalWithoutTz,\n} from 'components/DateRangePicker';\nimport { AxiosError } from 'axios';\nimport LevelOfInvoiceSelect from 'components/LevelOfInvoiceSelect';\nimport SettlementTypeSelect from 'components/SettlementTypeSelect';\nimport AccountingSelect from 'components/AccountingSelect';\nimport CurrencySelect from 'components/CurrencySelect';\nimport ConfirmDialog from 'components/ConfirmDialog';\n\nimport {\n customerNumberRE,\n guaranteedVolumeRE\n} from 'helpers/validation';\n\nconst useStyles = makeStyles((theme) => ({\n datePickerItem: {\n width: '25%',\n },\n}));\n\ninterface ContractCardProps {\n isNextContract?: boolean;\n}\n\nconst ContractCard: React.FC = ({ isNextContract }) => {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n\n const [editMode, setEditMode] = useState(false);\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [input, setInput] = useState({\n customerNumber: '',\n startDate: '',\n endDate: '',\n levelOfInvoice: '',\n fullMeasurementPrice: '',\n pieceMeasurementPrice: '',\n settlementType: '',\n accounting: '',\n currency: '',\n guaranteedVolume: '',\n });\n const [isMounted, setIsMounted] = useState(true);\n\n const { organization, contractInformation } = useSelector(\n (state: ApplicationState) => ({\n organization: state.organization?.organization,\n contractInformation: isNextContract\n ? state.organization?.nextContract\n : state.organization?.currentContract,\n }),\n );\n\n // track unmount\n useEffect(() => {\n return () => {\n setIsMounted(false);\n };\n }, []);\n\n // track organization\n useEffect(() => {\n resetInput();\n }, [organization, contractInformation]);\n\n const resetInput = () => {\n if (contractInformation) {\n setInput({\n customerNumber: contractInformation.customerNumber ?? '',\n startDate: contractInformation.startDate,\n endDate: contractInformation.endDate,\n levelOfInvoice: contractInformation.levelOfInvoice,\n fullMeasurementPrice: contractInformation.fullMeasurementPrice.toString(),\n pieceMeasurementPrice: contractInformation.pieceMeasurementPrice.toString(),\n settlementType: contractInformation.settlementType.toString(),\n accounting: contractInformation.accounting.toString(),\n currency: contractInformation.currency.toString(),\n guaranteedVolume: contractInformation.guaranteedVolume ?? '',\n });\n } else {\n setInput({\n customerNumber: '',\n startDate: '',\n endDate: '',\n levelOfInvoice: '',\n fullMeasurementPrice: '',\n pieceMeasurementPrice: '',\n settlementType: '',\n accounting: '',\n currency: '',\n guaranteedVolume:'',\n });\n }\n };\n\n const handleCustomerNumberChange = (\n e: React.ChangeEvent,\n ) => {\n const { value } = e.target;\n if (\n value.length > input.customerNumber.length && // always allow character deletion\n !customerNumberRE.test(value)\n ) {\n return;\n }\n setInput((input) => ({ ...input, customerNumber: value }));\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n const { name, value } = e.target;\n setInput((input) => ({ ...input, [name]: value }));\n };\n\n const onStartDateChange = (dateValue?: Date) => {\n if (dateValue) {\n setInput((input) => ({\n ...input,\n startDate: dateValue.toISOString(),\n }));\n }\n };\n\n const onEndDateChange = (dateValue?: Date) => {\n if (dateValue) {\n setInput((input) => ({\n ...input,\n endDate: dateValue.toISOString(),\n }));\n }\n };\n\n const handleDateRangeChange = (\n from: Date | null,\n to: Date | null,\n valid: boolean,\n ) => {\n onStartDateChange(from && valid ? from : undefined);\n onEndDateChange(to && valid ? to : undefined);\n };\n\n const handleGuaranteedVolumeChange = (\n e: React.ChangeEvent,\n ) => {\n const { value } = e.target;\n if (!guaranteedVolumeRE.test(value)) {\n return;\n }\n setInput((input) => ({ ...input, guaranteedVolume: value }));\n };\n\n const getFormattedDate = (\n dateString: string | undefined,\n ): string | undefined => {\n const format = navigator.language;\n if (dateString) {\n const dateObject = utcToLocalWithoutTz(new Date(dateString));\n return dateObject.toLocaleDateString(format);\n } else {\n return undefined;\n }\n };\n\n const saveHandler = (error?: AxiosError) => {\n if (isMounted) {\n setIsLoading(false);\n setEditMode(!!error);\n }\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n };\n\n const handleSave = () => {\n if (organization && input?.startDate && input?.endDate) {\n setIsLoading(true);\n const inputToSave: ContractInformationRequest = {\n customerNumber:\n input.levelOfInvoice === LevelOfInvoiceEnumDto.DEPARTMENT ||\n input.customerNumber.length === 0\n ? null\n : input.customerNumber,\n startDate: input.startDate,\n endDate: input.endDate,\n levelOfInvoice: input.levelOfInvoice as LevelOfInvoiceEnumDto,\n fullMeasurementPrice: parseFloat(input.fullMeasurementPrice),\n pieceMeasurementPrice: parseFloat(input.pieceMeasurementPrice),\n settlementType: input.settlementType as SettlementTypeEnumDto,\n accounting: input.accounting as AccountingEnumDto,\n currency: input.currency as CurrencyEnumDto,\n guaranteedVolume: input.guaranteedVolume,\n };\n dispatch(\n isNextContract\n ? organizationActions.updateNextContract(\n organization.organizationId,\n inputToSave,\n saveHandler,\n )\n : organizationActions.updateCurrentContract(\n organization.organizationId,\n inputToSave,\n saveHandler,\n ),\n );\n }\n };\n\n const handleEdit = () => {\n if (isNextContract) {\n handleConfirmDialogYes();\n } else {\n setConfirmDialogOpen(true);\n }\n };\n\n const handleConfirmDialogYes = () => {\n resetInput();\n setConfirmDialogOpen(false);\n setEditMode(true);\n };\n\n const handleConfirmDialogNo = () => {\n setConfirmDialogOpen(false);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n };\n\n const getLevelOfInvoice = (levelOfInvoice: LevelOfInvoiceEnumDto) => {\n switch (levelOfInvoice) {\n case LevelOfInvoiceEnumDto.ORGANIZATION:\n return t('labels.organization');\n case LevelOfInvoiceEnumDto.DEPARTMENT:\n return t('labels.department');\n default:\n return '';\n }\n };\n\n const getSettlementType = (getSettlementType: SettlementTypeEnumDto) => {\n return t(`organization_page.contract.settlement_type.${getSettlementType.toLowerCase()}`) || '';\n };\n\n const getAccounting = (getAccounting: AccountingEnumDto) => {\n return t(`organization_page.contract.accounting_type.${getAccounting.toLowerCase()}`) || '';\n };\n\n const getCurrency = (getCurrency: CurrencyEnumDto) => {\n return t(`organization_page.contract.currency.${getCurrency.toLowerCase()}`) || '';\n };\n\n return (\n 0 &&\n input.endDate.length > 0 &&\n input.fullMeasurementPrice.length > 0 &&\n input.pieceMeasurementPrice.length > 0\n }\n title={\n isNextContract\n ? t('organization_page.contract.next_contract_title')\n : t('organization_page.contract.current_contract_title')\n }\n onEdit={handleEdit}\n onCancel={handleCancel}\n onSave={handleSave}\n requireGlobalAdmin\n >\n {editMode ? (\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n 0 ? new Date(input.startDate) : null\n }\n defaultEndDate={\n input.endDate.length > 0 ? new Date(input.endDate) : null\n }\n />\n \n\n ) : (\n <>\n \n \n {t('labels.level_of_invoice')}\n : \n \n {contractInformation &&\n getLevelOfInvoice(contractInformation.levelOfInvoice)}\n \n \n \n {t('organization_page.contract.labels.customer_no')}\n : \n \n {contractInformation?.customerNumber ?? ''}\n \n \n \n {t('organization_page.contract.labels.full_measurement')}\n : \n \n {contractInformation?.fullMeasurementPrice ?? ''}\n \n \n \n {t('organization_page.contract.labels.piece_measurement')}\n : \n \n {contractInformation?.pieceMeasurementPrice ?? ''}\n \n \n \n {t('organization_page.contract.labels.settlement_type')}\n : \n \n {contractInformation &&\n getSettlementType(contractInformation.settlementType)}\n \n \n \n {t('organization_page.contract.labels.guaranteed_volume')}\n : \n \n {contractInformation?.guaranteedVolume ?? ''}\n \n \n \n {t('organization_page.contract.labels.accounting')}\n : \n \n {contractInformation &&\n getAccounting(contractInformation.accounting)}\n \n \n \n {t('organization_page.contract.labels.currency')}\n : \n \n {contractInformation &&\n getCurrency(contractInformation.currency)}\n \n \n \n {t('organization_page.contract.labels.contract_date')}\n : \n \n {getFormattedDate(contractInformation?.startDate)}\n  - \n {getFormattedDate(contractInformation?.endDate)}\n \n {/* \n \n {t('organization_page.contract.labels.retention_duration')}:\n  \n \n {contractInformation?.retentionDuration}\n */}\n \n )}\n \n \n );\n};\n\nexport default ContractCard;\n","import React, { useEffect } from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\n\nimport ContractCard from 'components/organizationTabsContent/ContractCard';\nimport { organizationActions } from 'actions/organizationActions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useParams } from 'react-router';\nimport PageSpinner from 'components/spinners/PageSpinner';\nimport { ApplicationState } from 'store';\n\nconst useStyles = makeStyles(() => ({\n container: {\n margin: 0,\n maxWidth: '100%',\n },\n}));\n\nconst ContractTab: React.FC = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { orgId } = useParams<{ orgId: string }>();\n\n const { currentContract, nextContract } = useSelector(\n (state: ApplicationState) => ({\n currentContract: state.organization?.currentContract,\n nextContract: state.organization?.nextContract,\n }),\n );\n\n useEffect(() => {\n if (orgId) {\n dispatch(organizationActions.getCurrentContract(orgId));\n dispatch(organizationActions.getNextContract(orgId));\n }\n }, [orgId]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport { ContractTab };\n","import React, { useState, useEffect } from 'react';\nimport {\n Grid,\n FormControl,\n Typography,\n InputLabel,\n Select,\n MenuItem,\n} from '@material-ui/core';\n\nimport EditCard from 'components/EditCard';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport {\n MeasurementCardDetails,\n OrganizationResponse,\n StackNumberingEnumDto,\n ExportFormatEnumDto,\n} from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\nimport { organizationActions } from 'actions/organizationActions';\nimport { notificationActions } from 'actions/notificationActions';\nimport { ApiService } from 'services/apiService';\n\nconst MeasurementCard: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n\n const [editMode, setEditMode] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [input, setInput] = useState({\n stackNumbering: StackNumberingEnumDto.AUTO_GENERATED,\n measurementCardId: '',\n measurementCardName: '',\n exportFormat: ExportFormatEnumDto.CSV,\n });\n const [isMounted, setIsMounted] = useState(true);\n\n const [measurementCards, setMeasurementCards] = useState<\n MeasurementCardDetails[]\n >([]);\n\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n\n // track unmount\n useEffect(() => {\n return () => {\n setIsMounted(false);\n };\n }, []);\n\n // track organization\n useEffect(() => {\n resetInput();\n }, [organization]);\n\n const resetInput = () => {\n setInput((inputs) => ({\n ...inputs,\n stackNumbering:\n organization?.stackNumbering || StackNumberingEnumDto.AUTO_GENERATED,\n }));\n\n setInput((inputs) => ({\n ...inputs,\n measurementCardId: organization?.measurementCardId || '',\n }));\n\n setInput((inputs) => ({\n ...inputs,\n measurementCardName: organization?.measurementCardName || '',\n }));\n\n setInput((inputs) => ({\n ...inputs,\n exportFormat:\n organization?.defaultExportFormat || ExportFormatEnumDto.CSV,\n }));\n };\n\n const handleSelect = (\n inputName: string,\n e: React.ChangeEvent<{ name?: string | undefined; value: unknown }>,\n ) => {\n const { value } = e.target;\n setInput((inputs) => ({ ...inputs, [inputName]: value }));\n };\n\n const handleSave = () => {\n if (organization) {\n setIsLoading(true);\n\n dispatch(\n organizationActions.editMeasurementCard(\n organization?.organizationId,\n input.measurementCardId,\n input.stackNumbering,\n input.exportFormat,\n (error) => {\n if (isMounted) {\n setIsLoading(false);\n setEditMode(!!error);\n }\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n }\n },\n ),\n );\n }\n };\n\n const handleEdit = () => {\n resetInput();\n setEditMode(true);\n };\n\n const handleCancel = () => {\n setEditMode(false);\n };\n\n useEffect(() => {\n if (editMode) {\n ApiService.getMeasurementCardList()\n .then((response) => {\n const details = response?.data?.details;\n if (details && details.length > 0) {\n setMeasurementCards(details);\n setInput((inputs) => ({\n ...inputs,\n measurementCard: details[0].measurementCardId || '',\n }));\n }\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n }\n }, [editMode]);\n\n return (\n \n {editMode ? (\n \n \n \n \n {t('organization_page.measurement_card.labels.stack_numbering')}\n \n handleSelect('stackNumbering', e)}\n label={t(\n 'organization_page.measurement_card.labels.stack_numbering',\n )}\n id=\"stackDD\"\n >\n \n {t(\n 'organization_page.measurement_card.stack_numbering_types.autogenerated',\n )}\n \n \n {t(\n 'organization_page.measurement_card.stack_numbering_types.manuel',\n )}\n \n \n \n \n \n \n \n {t(\n 'organization_page.measurement_card.labels.measurement_card',\n )}\n \n handleSelect('measurementCardId', e)}\n label={t(\n 'organization_page.measurement_card.labels.measurement_card',\n )}\n id=\"cardDD\"\n >\n {measurementCards?.map((card, index) => {\n return (\n \n {card.measurementCardName}\n \n );\n })}\n \n \n \n {/*\n \n \n \n {t('organization_page.measurement_card.labels.export_format')}\n \n handleSelect('exportFormat', e)}\n label={t(\n 'organization_page.measurement_card.labels.export_format',\n )}\n id=\"stackDD\"\n >\n \n {t('organization_page.measurement_card.export_formats.csv')}\n \n \n \n \n */}\n \n ) : (\n <>\n \n {t('organization_page.measurement_card.labels.measurement_card')}\n : \n {input.measurementCardName}\n \n \n {t('organization_page.measurement_card.labels.stack_numbering')}\n : \n {input.stackNumbering}\n \n {/*\n \n {t('organization_page.measurement_card.labels.export_format')}\n : \n {input.exportFormat}\n \n */}\n \n )}\n \n );\n};\n\nexport default MeasurementCard;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\n\nimport MeasurementCard from './MeasurementCard';\n\nconst useStyles = makeStyles(() => ({\n container: {\n margin: 0,\n maxWidth: '100%',\n },\n}));\n\nconst MeasurementCardTab: React.FC = () => {\n const classes = useStyles();\n\n return (\n <>\n \n \n \n \n \n \n );\n};\n\nexport { MeasurementCardTab };\n","import React, { useEffect, useState } from 'react';\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n FormControlLabel,\n Grid,\n makeStyles,\n Switch,\n TextField,\n Typography,\n} from '@material-ui/core';\n\nimport { useTranslation } from 'react-i18next';\n\nimport 'translations/translations';\nimport { RoleEnumDto, StateEnumDto, UserModelDto } from '.generated/api';\nimport { ValidatedTextInput } from 'components/ValidatedTextInput';\nimport { organizationActions } from 'actions/organizationActions';\nimport { useParams } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport clsx from 'clsx';\nimport OverlaySpinner from 'components/spinners/OverlaySpinner';\n\ntype DialogProps = {\n isOpen: boolean;\n handleClose: () => void;\n user?: UserModelDto;\n};\n\ninterface ParamTypes {\n orgId: string;\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: '0.1rem 1rem',\n minWidth: '8.5rem',\n },\n alignRight: {\n textAlign: 'right',\n },\n noMarginBottom: {\n marginBottom: 0,\n },\n lastButton: {\n marginRight: 0,\n marginBottom: 0,\n },\n dialogContentHeigh: {\n height: '18rem',\n },\n dialogContentAuto: {\n height: 'auto',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\nconst CreateEditUserDialog: React.FC = (props) => {\n const { isOpen, handleClose, user } = props;\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const dispatch = useDispatch();\n const { orgId } = useParams();\n\n const [isLoading, setIsLoading] = useState(false);\n const [missingEmail, setMissingEmail] = useState(true);\n const [newRoles, setNewRoles] = useState([]);\n const [newUser, setNewUser] = useState({\n name: '',\n userEmail: '',\n phone: '',\n state: StateEnumDto.ACTIVE,\n roles: [],\n enableAutoEmails: true,\n });\n const [error, setError] = useState();\n\n const handleChange = (\n e: React.ChangeEvent,\n ) => {\n const { value, name } = e.target;\n setNewUser((newUser) => ({ ...newUser, [name]: value }));\n };\n\n const handleChangeRoles = (e: React.ChangeEvent) => {\n const { checked, name } = e.target;\n if (!checked) {\n setNewRoles(newRoles.filter((role) => role !== name));\n }\n if (checked) {\n setNewRoles(newRoles.filter((role) => role !== RoleEnumDto.NOT_SET));\n switch (name) {\n case RoleEnumDto.ORGANIZATION_ADMIN:\n setNewRoles((newRoles) => [\n ...newRoles,\n RoleEnumDto.ORGANIZATION_ADMIN,\n ]);\n break;\n case RoleEnumDto.REGISTRATOR:\n setNewRoles((newRoles) => [...newRoles, RoleEnumDto.REGISTRATOR]);\n break;\n case RoleEnumDto.SURVEYOR:\n setNewRoles((newRoles) => [...newRoles, RoleEnumDto.SURVEYOR]);\n break;\n case RoleEnumDto.INTEGRATION:\n setNewRoles((newRoles) => [...newRoles, RoleEnumDto.INTEGRATION]);\n break;\n }\n }\n };\n\n const handleEmailChange = (name: string, value: string, error: boolean) => {\n setNewUser((newUser) => ({ ...newUser, [name]: value }));\n\n if (!error && value !== '') {\n setMissingEmail(false);\n } else {\n setMissingEmail(true);\n }\n };\n\n const handleChangeEnableAutoEmails = (\n e: React.ChangeEvent,\n ) => {\n const { name, checked } = e.target;\n setNewUser((newUser) => ({ ...newUser, [name]: checked }));\n };\n\n const addOrEditCallback = (error?: string) => {\n setIsLoading(false);\n if (error) {\n setError(error);\n return;\n }\n handleCloseDialog();\n };\n\n const handleCloseDialog = () => {\n setNewUser({\n name: user?.name || '',\n userEmail: user?.userEmail || '',\n phone: user?.phone || '',\n state: user?.state || StateEnumDto.ACTIVE,\n roles: user?.roles || [],\n enableAutoEmails:\n user?.enableAutoEmails !== undefined ? user.enableAutoEmails : true,\n });\n setNewRoles(user?.roles || []);\n setError(undefined);\n\n handleClose();\n };\n\n const handleCreate = () => {\n setIsLoading(true);\n setError(undefined);\n if (user) {\n dispatch(\n organizationActions.editUserInOrganization(\n orgId,\n user.userEmail,\n newUser.name,\n newUser.phone,\n newRoles.length > 0 ? newRoles : [RoleEnumDto.NOT_SET],\n newUser.enableAutoEmails,\n addOrEditCallback,\n ),\n );\n } else {\n dispatch(\n organizationActions.addUserToOrganization(\n orgId,\n {\n name: newUser.name,\n userEmail: newUser.userEmail,\n phone: newUser.phone,\n state: newUser.state,\n roles: newRoles.length > 0 ? newRoles : [RoleEnumDto.NOT_SET],\n enableAutoEmails: newUser.enableAutoEmails || true,\n },\n\n addOrEditCallback,\n ),\n );\n }\n };\n\n useEffect(() => {\n if (user) {\n setNewUser(user);\n setNewRoles(user.roles);\n setMissingEmail(false);\n setError(undefined);\n }\n }, [user]);\n\n return (\n \n \n \n \n {user\n ? t('organization_page.users.dialog.title_edit')\n : t('organization_page.users.dialog.title_create')}\n \n \n\n \n \n \n \n \n\n \n \n \n {!user && (\n \n \n \n )}\n \n \n role === RoleEnumDto.ORGANIZATION_ADMIN,\n )}\n onChange={handleChangeRoles}\n name={RoleEnumDto.ORGANIZATION_ADMIN}\n color=\"primary\"\n />\n }\n label={t(`enums.roles.${RoleEnumDto.ORGANIZATION_ADMIN}`)}\n />\n role === RoleEnumDto.REGISTRATOR,\n )}\n onChange={handleChangeRoles}\n name={RoleEnumDto.REGISTRATOR}\n color=\"primary\"\n />\n }\n label={t(`enums.roles.${RoleEnumDto.REGISTRATOR}`)}\n />\n role === RoleEnumDto.SURVEYOR,\n )}\n onChange={handleChangeRoles}\n name={RoleEnumDto.SURVEYOR}\n color=\"primary\"\n />\n }\n label={t(`enums.roles.${RoleEnumDto.SURVEYOR}`)}\n />\n role === RoleEnumDto.INTEGRATION,\n )}\n onChange={handleChangeRoles}\n name={RoleEnumDto.INTEGRATION}\n color=\"primary\"\n />\n }\n label={t(`enums.roles.${RoleEnumDto.INTEGRATION}`)}\n />\n \n \n \n }\n label={t('organization_page.users.labels.enable_emails')}\n />\n \n \n \n \n {error}\n \n \n {t('common.cancel')}\n \n \n {user ? t('common.save') : t('common.create')}\n \n \n \n \n );\n};\n\nexport { CreateEditUserDialog };\n","import React, { useEffect, useState } from 'react';\nimport {\n IconButton,\n makeStyles,\n Menu,\n MenuItem,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n} from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport {\n OrganizationResponse,\n StateEnumDto,\n UserModelDto,\n} from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\n\nimport { primaryColor } from 'theme/theme';\nimport { CreateEditUserDialog } from 'components/organizationTabsContent/CreateEditUserDialog';\nimport 'translations/translations';\nimport 'theme/iconClasses.css';\nimport clsx from 'clsx';\nimport { ApiService } from 'services/apiService';\nimport { useParams } from 'react-router-dom';\nimport { organizationActions } from 'actions/organizationActions';\nimport { notificationActions } from 'actions/notificationActions';\n\nconst useStyles = makeStyles((theme) => ({\n alignRight: {\n textAlign: 'right',\n },\n marginRight: {\n marginRight: '0.6rem',\n },\n root: {\n padding: '0.1rem 1rem',\n minWidth: '8.5rem',\n },\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n addButton: { marginLeft: '0' },\n actionsButton: {\n padding: '0',\n },\n buttonRoot: {\n marginRight: 0,\n },\n tableContainer: {\n marginTop: '1rem',\n marginLeft: '-1.5rem',\n width: 'calc(100% + 3rem)',\n },\n table: {\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n },\n rowInactive: {\n background: 'rgba(240, 241, 243, 1)',\n opacity: '0.6',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n paper: {\n padding: '0',\n },\n}));\n\ninterface ParamTypes {\n orgId: string;\n}\n\nconst UsersTabTable: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n const { orgId } = useParams();\n const dispatch = useDispatch();\n const organization = useSelector(\n (state: ApplicationState) => state.organization?.organization,\n );\n const [users, setUsers] = useState([]);\n const [user, setUser] = useState();\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n\n const handleOpenDialog = () => {\n setIsMenuOpen(false);\n setIsDialogOpen(true);\n };\n\n const handleCloseDialog = () => {\n setIsDialogOpen(false);\n };\n\n const handleToggleActive = () => {\n if (!user) {\n return;\n }\n\n if (user.state === StateEnumDto.ACTIVE) {\n ApiService.deactivateUserInOrganization(orgId, user.userEmail)\n .then(() => {\n setIsMenuOpen(false);\n dispatch(organizationActions.getOrganizationById(orgId));\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n } else {\n ApiService.activateUserInOrganization(orgId, user.userEmail)\n .then(() => {\n setIsMenuOpen(false);\n dispatch(organizationActions.getOrganizationById(orgId));\n })\n .catch((error) => {\n dispatch(notificationActions.enqueueErrorResponse(error));\n });\n }\n };\n\n const handleShowContextActions = (\n event: React.MouseEvent,\n userRow: UserModelDto,\n ) => {\n setUser(userRow);\n\n setAnchorEl(event.currentTarget);\n setIsMenuOpen(true);\n };\n\n const handleHideContextActions = () => {\n setIsMenuOpen(false);\n };\n\n useEffect(() => {\n if (organization?.users) {\n setUsers(organization?.users);\n }\n }, [organization?.users]);\n\n return (\n <>\n \n \n \n \n \n {t('organization_page.users.table.user_name')}\n \n \n {t('organization_page.users.table.user_email')}\n \n \n {t('organization_page.users.table.user_phone')}\n \n \n {t('organization_page.users.table.user_roles')}\n \n \n {t('organization_page.users.table.user_state')}\n \n \n {t('common.actions')}\n \n \n \n \n {users?.map((userRow: UserModelDto, index: number) => (\n \n \n {userRow.name}\n \n \n {userRow.userEmail}\n \n \n {userRow.phone}\n \n \n {userRow.roles.map((role, index) => (\n \n {t(`enums.roles.${role}`)}\n
\n
\n ))}\n
\n \n {userRow.state}\n \n \n handleShowContextActions(e, userRow)}\n color=\"secondary\"\n className={classes.actionsButton}\n >\n \n \n \n \n {t('common.edit')}\n \n \n {user && user.state === StateEnumDto.ACTIVE\n ? t('organization_page.users.labels.deactivate')\n : t('organization_page.users.labels.activate')}\n \n \n \n \n ))}\n
\n
\n
\n \n \n );\n};\n\nexport { UsersTabTable };\n","import React, { useState } from 'react';\nimport { Button, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { UsersTabTable } from 'components/organizationTabsContent/UsersTabTable';\nimport { CreateEditUserDialog } from './CreateEditUserDialog';\nimport { primaryColor } from 'theme/theme';\nimport 'theme/iconClasses.css';\nimport 'translations/translations';\n\nconst useStyles = makeStyles((theme) => ({\n alignRight: {\n textAlign: 'right',\n },\n marginRight: {\n marginRight: '0.6rem',\n },\n\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n addButton: { marginLeft: '0' },\n actionsButton: {\n padding: '0',\n },\n buttonRoot: {\n marginRight: 0,\n },\n tableContainer: {\n marginTop: '1rem',\n marginLeft: '-1.5rem',\n width: 'calc(100% + 3rem)',\n },\n table: {\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n paper: {\n padding: '0',\n },\n}));\n\nconst UsersTab: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const classes = useStyles();\n\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n\n const handleOpenDialog = () => {\n setIsDialogOpen(true);\n };\n\n const handleCloseDialog = () => {\n setIsDialogOpen(false);\n };\n\n return (\n <>\n
\n \n +\n\n {t('organization_page.users.labels.add_user')}\n \n
\n\n \n\n \n \n );\n};\n\nexport { UsersTab };\n","import React from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n makeStyles,\n Typography,\n} from '@material-ui/core';\n\nimport { useTranslation } from 'react-i18next';\nimport OverlaySpinner from 'components/spinners/OverlaySpinner';\n\nconst useStyles = makeStyles((theme) => ({\n noMarginBottom: {\n marginBottom: 0,\n },\n lastButton: {\n marginRight: 0,\n marginBottom: 0,\n },\n dialogContentHeight: {\n height: '15rem',\n },\n dialogContentAuto: {\n height: 'auto',\n },\n error: {\n color: theme.palette.error.main,\n textAlign: 'right',\n fontSize: '0.8rem',\n },\n}));\n\ntype DialogProps = {\n title: string;\n isOpen?: boolean;\n isLoading?: boolean;\n editMode?: boolean;\n canSubmit?: boolean;\n error?: string;\n onSubmit?: () => void;\n onClose?: () => void;\n children?: React.ReactNode;\n};\n\nconst CreateEditDialog: React.FC = ({\n title,\n isOpen,\n isLoading,\n editMode,\n canSubmit,\n error,\n onClose,\n onSubmit,\n children,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation(['translations']);\n\n const handleClose = () => {\n if (!isLoading) {\n onClose && onClose();\n }\n };\n\n return (\n \n \n \n {title}\n \n\n \n {children}\n \n {error}\n \n \n {t('common.cancel')}\n \n \n {editMode ? t('common.save') : t('common.create')}\n \n \n \n \n );\n};\n\nexport { CreateEditDialog };\n","import React, { useEffect, useState } from 'react';\nimport { Grid, TextField } from '@material-ui/core';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { useDispatch } from 'react-redux';\nimport { sawmillActions } from 'actions/sawmillActions';\nimport { AxiosError } from 'axios';\nimport { notificationActions } from 'actions/notificationActions';\nimport { CreateEditDialog } from './CreateEditDialog';\nimport { ValidatedTextInput } from 'components/ValidatedTextInput';\nimport { SawmillUserResponse } from '.generated/api';\n\ntype CreateEditSawmillUserDialogProps = {\n isOpen: boolean;\n handleClose: () => void;\n sawmillId: string;\n sawmillUser?: SawmillUserResponse;\n};\n\nconst CreateEditSawmillUserDialog: React.FC = ({\n isOpen,\n handleClose,\n sawmillId,\n sawmillUser,\n}) => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n\n const [isLoading, setIsLoading] = useState(false);\n const [isInputValid, setInputValid] = useState(true);\n const [isEmailValid, setEmailValid] = useState(true);\n const [newSawmillUser, setNewSawmillUser] = useState<{\n name: string;\n email: string;\n phone: string;\n }>({\n name: '',\n email: '',\n phone: '',\n });\n\n const handleEmailChange = (name: string, value: string, error: boolean) => {\n setEmailValid(!error);\n setNewSawmillUser((newSawmillUser) => ({\n ...newSawmillUser,\n [name]: value,\n }));\n };\n\n const handleChange = (\n e: React.ChangeEvent,\n ) => {\n const { value, name } = e.target;\n setNewSawmillUser((newSawmillUser) => ({\n ...newSawmillUser,\n [name]: value,\n }));\n };\n\n const createEditCallback = (error?: AxiosError) => {\n setIsLoading(false);\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n } else {\n handleCloseDialog();\n }\n };\n\n const handleCloseDialog = () => {\n setNewSawmillUser({\n name: '',\n email: '',\n phone: '',\n });\n handleClose();\n };\n\n const handleSubmit = () => {\n setIsLoading(true);\n if (sawmillUser) {\n dispatch(\n sawmillActions.updateSawmillUser(\n sawmillId,\n sawmillUser.email,\n newSawmillUser.name.length > 0 ? newSawmillUser.name : undefined,\n newSawmillUser.phone.length > 0 ? newSawmillUser.phone : undefined,\n createEditCallback,\n ),\n );\n } else {\n dispatch(\n sawmillActions.addUserToSawmill(\n sawmillId,\n newSawmillUser.email,\n newSawmillUser.name.length > 0 ? newSawmillUser.name : undefined,\n newSawmillUser.phone.length > 0 ? newSawmillUser.phone : undefined,\n createEditCallback,\n ),\n );\n }\n };\n\n // validate\n useEffect(() => {\n setInputValid(newSawmillUser.email.length > 0 && isEmailValid);\n }, [newSawmillUser]);\n\n // initialize\n useEffect(() => {\n if (sawmillUser) {\n setNewSawmillUser({\n email: sawmillUser.email,\n name: sawmillUser.name ?? '',\n phone: sawmillUser.phone ?? '',\n });\n } else {\n setNewSawmillUser({\n name: '',\n email: '',\n phone: '',\n });\n }\n }, [sawmillUser]);\n\n return (\n \n \n \n \n \n \n \n \n {!sawmillUser && (\n \n \n \n )}\n \n \n );\n};\n\nexport { CreateEditSawmillUserDialog };\n","import React, { useState } from 'react';\nimport {\n IconButton,\n makeStyles,\n Menu,\n MenuItem,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n Card,\n CardContent,\n CardHeader,\n} from '@material-ui/core';\n\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApplicationState } from 'store';\nimport 'translations/translations';\nimport {\n OrganizationResponse,\n SawmillResponse,\n SawmillUserResponse,\n} from '../../.generated/api';\nimport { useTranslation } from 'react-i18next';\nimport 'theme/iconClasses.css';\n\nimport { primaryColor } from 'theme/theme';\nimport { CreateEditSawmillUserDialog } from './CreateEditSawmillUserDialog';\nimport { sawmillActions } from 'actions/sawmillActions';\nimport ButtonSpinner from 'components/spinners/ButtonSpinner';\nimport { notificationActions } from 'actions/notificationActions';\n\nconst useStyles = makeStyles((theme) => ({\n alignRight: {\n textAlign: 'right',\n },\n marginRight: {\n marginRight: '0.6rem',\n },\n root: {\n padding: '0.1rem 1rem',\n minWidth: '8.5rem',\n },\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n addButton: { marginLeft: '0' },\n actionsButton: {\n padding: '0',\n },\n buttonRoot: {\n marginRight: 0,\n },\n content: {\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n },\n table: {\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n },\n rowInactive: {\n background: 'rgba(240, 241, 243, 1)',\n opacity: '0.6',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n menu: {\n padding: '0',\n },\n}));\n\ninterface SawmillCardProps {\n sawmill: SawmillResponse;\n onEdit?: (sawmill: SawmillResponse) => void;\n onDelete?: (sawmill: SawmillResponse) => void;\n}\n\nconst SawmillCard: React.FC = ({\n sawmill,\n onEdit,\n onDelete,\n}) => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n const classes = useStyles();\n\n const [sawmillUsersLoading, setSawmillUsersLoading] = useState<\n SawmillUserResponse[]\n >([]);\n\n const [activeSawmillUser, setActiveSawmillUser] = useState<\n SawmillUserResponse | undefined\n >();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [isDialogOpen, setDialogOpen] = useState(false);\n\n const handleCloseDialog = () => {\n setDialogOpen(false);\n setActiveSawmillUser(undefined);\n };\n\n const handleEditSawmill = () => {\n handleHideContextActions();\n onEdit && onEdit(sawmill);\n };\n\n const handleDeleteSawmill = () => {\n handleHideContextActions();\n onDelete && onDelete(sawmill);\n };\n\n const handleAddSawmillUser = () => {\n setAnchorEl(null);\n setDialogOpen(true);\n };\n\n const handleEditSawmillUser = () => {\n handleHideContextActions();\n setDialogOpen(true);\n };\n\n const handleDeleteSawmillUser = () => {\n handleHideContextActions();\n if (activeSawmillUser) {\n setSawmillUsersLoading((sawmillUsersLoading) => [\n ...sawmillUsersLoading,\n activeSawmillUser,\n ]);\n\n dispatch(\n sawmillActions.removeSawmillUser(\n sawmill.id,\n activeSawmillUser.email,\n (error) => {\n error && dispatch(notificationActions.enqueueErrorResponse(error));\n setSawmillUsersLoading((sawmillUsersLoading) =>\n sawmillUsersLoading.filter(\n (sawmillUser) => sawmillUser !== activeSawmillUser,\n ),\n );\n },\n ),\n );\n }\n };\n\n const handleShowContextActions = (\n event: React.MouseEvent,\n sawmillUser?: SawmillUserResponse,\n ) => {\n setActiveSawmillUser(sawmillUser);\n setAnchorEl(event.currentTarget);\n };\n\n const handleHideContextActions = () => {\n setAnchorEl(null);\n };\n\n return (\n \n handleShowContextActions(e)}\n color=\"secondary\"\n >\n \n \n }\n />\n \n \n \n \n \n \n {t('organization_page.users.table.user_name')}\n \n \n {t('organization_page.users.table.user_email')}\n \n \n {t('organization_page.users.table.user_phone')}\n \n \n \n \n \n {sawmill.users.map(\n (sawmillUser: SawmillUserResponse, index: number) => (\n \n \n {sawmillUser.name}\n \n \n {sawmillUser.email}\n \n \n {sawmillUser.phone}\n \n \n \n \n handleShowContextActions(e, sawmillUser)\n }\n color=\"secondary\"\n className={classes.actionsButton}\n >\n \n \n \n \n \n ),\n )}\n \n
\n
\n
\n \n {activeSawmillUser ? (\n <>\n \n {t('common.edit')}\n \n \n {t('common.delete')}\n \n \n ) : (\n <>\n {t('common.edit')}\n \n {t('common.delete')}\n \n \n {t('organization_page.users.labels.add_user')}\n \n \n )}\n \n\n \n
\n );\n};\n\nexport { SawmillCard };\n","import React, { useEffect, useState } from 'react';\nimport { Grid, TextField } from '@material-ui/core';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { useParams } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { sawmillActions } from 'actions/sawmillActions';\nimport { AxiosError } from 'axios';\nimport { notificationActions } from 'actions/notificationActions';\nimport { CreateEditDialog } from './CreateEditDialog';\nimport { SawmillResponse } from '.generated/api';\n\ninterface ParamTypes {\n orgId: string;\n}\n\ntype CreateEditSawmillDialogProps = {\n isOpen: boolean;\n handleClose: () => void;\n sawmill?: SawmillResponse;\n};\n\nconst CreateEditSawmillDialog: React.FC = ({\n isOpen,\n handleClose,\n sawmill,\n}) => {\n const { t } = useTranslation(['translations']);\n const dispatch = useDispatch();\n const { orgId } = useParams();\n\n const [isLoading, setIsLoading] = useState(false);\n const [isInputValid, setInputValid] = useState(true);\n const [newSawmill, setNewSawmill] = useState<{ name: string }>({\n name: '',\n });\n\n const handleChange = (\n e: React.ChangeEvent,\n ) => {\n const { value, name } = e.target;\n setNewSawmill((newSawmill) => ({ ...newSawmill, [name]: value }));\n };\n\n const createEditCallback = (error?: AxiosError) => {\n setIsLoading(false);\n if (error) {\n dispatch(notificationActions.enqueueErrorResponse(error));\n } else {\n handleCloseDialog();\n }\n };\n\n const handleCloseDialog = () => {\n setNewSawmill({\n name: '',\n });\n handleClose();\n };\n\n const handleSubmit = () => {\n setIsLoading(true);\n if (sawmill) {\n dispatch(\n sawmillActions.renameSawmill(\n sawmill.id,\n newSawmill.name,\n createEditCallback,\n ),\n );\n } else {\n dispatch(\n sawmillActions.addSawmillToOrganization(\n orgId,\n newSawmill.name,\n createEditCallback,\n ),\n );\n }\n };\n\n // validation\n useEffect(() => {\n setInputValid(newSawmill.name.length > 0);\n }, [newSawmill]);\n\n useEffect(() => {\n if (sawmill) {\n setNewSawmill({\n name: sawmill.name,\n });\n } else {\n setNewSawmill({\n name: '',\n });\n }\n }, [sawmill]);\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport { CreateEditSawmillDialog };\n","import React, { useEffect, useState } from 'react';\nimport { Button, Grid, makeStyles } from '@material-ui/core';\nimport 'translations/translations';\nimport { useTranslation } from 'react-i18next';\nimport 'theme/iconClasses.css';\n\nimport { primaryColor } from 'theme/theme';\nimport { ApplicationState } from 'store';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PageSpinner from 'components/spinners/PageSpinner';\nimport { SawmillCard } from './SawmillCard';\nimport { CreateEditSawmillDialog } from './CreateEditSawmillDialog';\nimport { SawmillResponse } from '.generated/api';\nimport { sawmillActions } from 'actions/sawmillActions';\nimport { useParams } from 'react-router';\nimport ConfirmDialog from 'components/ConfirmDialog';\n\nconst useStyles = makeStyles((theme) => ({\n alignRight: {\n textAlign: 'right',\n },\n marginRight: {\n marginRight: '0.6rem',\n },\n\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n addButton: { margin: 0, marginTop: theme.spacing(1) },\n actionsButton: {\n padding: '0',\n },\n buttonRoot: {\n marginRight: 0,\n },\n tableContainer: {\n marginTop: '1rem',\n marginLeft: '-1.5rem',\n width: 'calc(100% + 3rem)',\n },\n table: {\n color: primaryColor(),\n },\n tableHead: {\n backgroundColor: 'rgba(240, 241, 243, 1)',\n color: primaryColor(),\n },\n tableHeadCell: {\n fontWeight: 'bold',\n color: primaryColor(),\n padding: '0.7rem 1rem 0.5rem 1rem',\n },\n tableCell: {\n color: primaryColor(),\n },\n tableRow: {\n textDecoration: 'none',\n },\n textBold: {\n fontWeight: 'bold',\n color: primaryColor(),\n },\n preDataView: {\n marginTop: '3rem',\n textAlign: 'center',\n },\n error: {\n color: theme.palette.error.main,\n },\n paper: {\n padding: '0',\n },\n}));\n\nconst SawmillsTab: React.FC = () => {\n const { t } = useTranslation(['translations']);\n const { orgId } = useParams<{ orgId: string }>();\n const dispatch = useDispatch();\n const classes = useStyles();\n\n const { sawmills } = useSelector((state: ApplicationState) => state.sawmills);\n const [activeSawmill, setActiveSawmill] = useState<\n SawmillResponse | undefined\n >();\n const [deleteInProgress, setDeleteInProgress] = useState(false);\n const [confirmSawmillDelete, setConfirmSawmillDelete] = useState<\n SawmillResponse | undefined\n >();\n\n const [isDialogOpen, setDialogOpen] = useState(false);\n\n const handleDialogClose = () => {\n if (!deleteInProgress) {\n setDialogOpen(false);\n setActiveSawmill(undefined);\n }\n };\n\n const handleEditSawmill = (sawmill: SawmillResponse) => {\n setActiveSawmill(sawmill);\n setDialogOpen(true);\n };\n\n const handleDeleteSawmillClicked = (sawmill: SawmillResponse) => {\n setConfirmSawmillDelete(sawmill);\n setDeleteInProgress(false);\n };\n\n const handleDeleteSawmillConfirmed = () => {\n if (confirmSawmillDelete) {\n setDeleteInProgress(true);\n dispatch(\n sawmillActions.deleteSawmill(confirmSawmillDelete.id, () => {\n setConfirmSawmillDelete(undefined);\n }),\n );\n }\n };\n\n const handleDeleteSawmillCanceled = () => {\n setConfirmSawmillDelete(undefined);\n };\n\n useEffect(() => {\n if (orgId) {\n dispatch(sawmillActions.getSawmillsByOrganizationId(orgId));\n }\n }, [orgId]);\n return (\n <>\n \n \n \n
\n setDialogOpen(true)}\n variant=\"contained\"\n color=\"primary\"\n className={classes.addButton}\n >\n +\n\n {t('organization_page.sawmills.labels.add_sawmill')}\n \n
\n
\n {sawmills &&\n sawmills.map((sawmill) => (\n \n \n \n ))}\n \n
\n
\n \n \n );\n};\n\nexport { SawmillsTab };\n","import React, { useEffect, useState } from 'react';\nimport {\n Divider,\n Tab,\n Tabs,\n Typography,\n makeStyles,\n Box,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { PageToolbar } from 'components/PageToolbar';\nimport { DepartmentsTab } from 'components/organizationTabsContent/DepartmentsTab';\nimport { OrganizationDetailsTab } from 'components/organizationTabsContent/OrganizationDetailsTab';\nimport { ContactsTab } from 'components/organizationTabsContent/ContactsTab';\nimport { ContractTab } from 'components/organizationTabsContent/ContractTab';\nimport { MeasurementCardTab } from 'components/organizationTabsContent/MeasurementCardTab';\nimport { UsersTab } from 'components/organizationTabsContent/UsersTab';\nimport { useSelector } from 'react-redux';\nimport { history } from 'helpers/history';\nimport 'theme/iconClasses.css';\nimport { ApplicationState } from 'store';\nimport { SawmillsTab } from 'components/organizationTabsContent/SawmillsTab';\n\nconst useStyles = makeStyles(() => ({\n alignRight: {\n textAlign: 'right',\n },\n buttonClass: {\n marginLeft: 0,\n },\n toolbarTitle: {\n minHeight: '1.8rem',\n },\n plusIcon: {\n display: 'inline-block',\n fontSize: '1.5rem',\n lineHeight: 0,\n marginRight: '0.5rem',\n },\n\n flexContainer: {\n justifyContent: 'space-between',\n },\n\n root: {\n marginBottom: '-1rem',\n },\n tabPanel: {\n flex: 1,\n },\n tabBox: {\n height: '100%',\n },\n}));\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n value: any;\n}\n\nfunction TabPanel(props: TabPanelProps) {\n const { children, value, index, ...other } = props;\n const classes = useStyles();\n return (\n